Software Dictators

If you run any version of Windows with auto-update enabled then you are familiar with this little box:

Use it as reminder of something you should never do.

What’s wrong it? Computer will close whatever you had open and reboot and unless you are at your machine to see this dialog your open apps are gone. Even if you see it your options are to Postpone or Restart right now. In essence you have no choice. Your computer is taken over by software dictator.

I have backup scheduled in the middle of the night. Of course, the Windows updates get installed when computer wakes up from sleep to perform backup, and since that function in Windows does not anticipate that there might be no human seeing Windows Update message, it reboots the machine and interrupts the backup in the middle. Many times I have lost all state I had in open apps until I had this turned off.

The only remotely acceptable option for that Windows Update dialog would be if your desktop and all open apps are returned to exact same state as before reboot. But, they are not.

Contrast that with how Mac OS X handles the OS updates. It does not show any dialog whatsoever. It does not stop your work-flow. The Update icon in dock-bar starts bouncing to let you know something is up and when you click it, you see this (note that icon in dock stops bouncing and just sits there after certain time interval):

And you are free to ignore it as much as you want. You can keep it open for weeks until you decide that updates can be installed and machine rebooted. This design is not taking over your machine and breaking your work-flow to install an update which in no way is what you need right that moment.

On Windows, its race to disarm the reboot ticking bomb.

Software should never be designed so it forces the user to do anything out of the context of his current work-flow.What I mean by that is following; Showing Yes/No/Cancel message box that asks user to save data when application is being closed is in context. It is direct response to user action. Showing Software Update dialog when an application is started is completely unacceptable since it is not what user wants to do. It is not in context of his intent.

When you are not in control of your machine you gets frustrated. There is one more decision to make, one more interruption to take which drives all of us nuts. And because of that we label software and even whole operating systems as hard to use, frustrating and just not pleasant.

This design point is easily overlooked. I’ve made more mistakes like this than I can count. But its contribution to pleasing, easy to use software is huge. Keep it in mind.

Tagged with:
 

We just released new DotNetBar for Windows Forms 8.9 and it includes all new Switch Button control. Here is screen-shot that shows sample usage for new Switch Button control:

In screen-shot above we customized OFF state background on middle switch to better express the state control represents. Following screen-shot shows the default appearance of control in Office 2010 style:

Control colors can be completely customized per-instance and for all instances by changing Office2007Color table. Here is screen-shot that shows control with customized colors:

Switch button will also animate the state transition to provide pleasing visual effect:

In this release we also added iCal import/export to our Calendar/Schedule control. iCal is an industry standard (RFC5545) for calendar data exchange. For more details on how to use that see Schedule Control Knowledge Base article.

There are 50 new features and enhancements in this release. Here are detailed Release Notes.

If you have DotNetBar license download latest release on Customer Only web site. Fully functional trial version is also available.

Tagged with:
 

Latest version of DotNetBar for WPF 5.9 has been released and it follows our DotNetBar for Windows Forms with inclusion of Office 2010 style Backstage support for the Ribbon control. Setting this up is really easy thanks to design-time support we added just for Backstage. Here is screen-shot taken from RibbonPad sample that is included with DotNetBar for WPF install:

You can easily switch between Office 2010 style Backstage Application menu and Office 2007 style Application menu using single property. Click-here to read Knowledge Base article that covers the Ribbon Backstage setup.

If you have current DotNetBar license download latest release on Customer Only web site. Fully functional trial version is also available. We are working on more new exciting features so stay tuned.

Tagged with:
 

Hi Everyone,

Couple of days ago we posted first build of our all new product: DotNetBar for Silverlight. DotNetBar for Silverlight is written from ground-up for Silverlight platform and in this first version we are including Schedule/Calendar control, Navigation Pane and nice analog Clock controls. Here is screen-shot of our Silverlight scheduler control:

Highlight of this release is our Schedule control. We included Day, Week, Month and Timeline views. There is MVVM support out of box. There is rich recurring appointments engine. Multiple resources are supported. The API that you use to work with appointments is same across all platforms we develop for: WPF, WinForms and Silverlight which means that if you have code which is written to work against our CalendarModel you can port it as is when you move through platforms.

Check-out live-demo page for an demonstration of these new controls right inside your browser. Live-demo will update as we finalize this release.

We are working feverishly so you will see more new controls added in coming weeks. Click-here to download DotNetBar for Silverlight. Please feel free to let me know if you experience any problems or would like to request new Silverlight controls that we should add. Mini Scheduler web-site.

 

You asked and we did it. Latest version of DotNetBar for Windows Forms 8.8 includes Office 2010 Backstage support for the Ribbon control and it works really nice. Setting this up is piece of cake and I will go over that later but for now… Behold, the Backstage:

Here are more Backstage views from RibbonPad sample that we included with DotNetBar:

DotNetBar Backstage support also implements KeyTips for keyboard access that are displayed if you use Alt key to open up the Application Menu:

And you can easily switch between Office 2010 style Backstage Application menu and Office 2007 style Application menu using single property. Click-here to read Knowledge Base article that covers the Ribbon Backstage setup with DotNetBar.

If you have current DotNetBar license download latest release on Customer Only web site. Fully functional trial version is also available. We are full steam on more exciting features that I can’t wait to share with you, but only after they are fully baked :-)

So yeah, this would be official announcement of 8.8 release.

Tagged with:
 

Latest 8.8 release of DotNetBar for Windows Forms includes all new Year view for Scheduling/Calendar control. In this view you can see all calendar days with appointments for whole year. This is what it looks like:

Note the marked dates on calendar. They indicate that there are appointments on those dates. When day is clicked control will automatically take you to the view you specify to see details for that day or you can choose to execute any custom action you wish.

CalendarView.YearViewStartDate and CalendarView.YearViewEndDate will determine the number of months displayed in the calendar. The maximum number of displayable months is currently set to 120. Why 120 you might ask? Why is winter cold? :-)

Month days that have CalendarItems associated with them will, by default, have their date text displayed in Bold.  The background coloring of these items can be set to several different built-in styles (via the CalendarView.YearViewAppointmentLinkStyle property).  Day cells that do not have associated CalendarItems are, by default, displayed in the normal text and background, color and style.

There are two types of day cells displayed in the calendar months – those that have associated CalendarItems (Appointments or CustomCalendarItems), and those that do not.

Day cells that have CalendarItems associated with them will, by default, have their date text displayed in Bold.  The background coloring of these items can be set to several different built-in styles (via the CalendarView.YearViewAppointmentLinkStyle property).

In the above example, cells with associated CalendarItems are being displayed in the blue diagonal gradient with bolded text.  All others, displayed in their normal defaults, signify no associated CalendarItems.

CalendarView.YearViewAppointmentLink – This property establishes how the user interacts with those cells that contain Appointments (or CalendarItems in general).  The possible settings for this property are defined in the eYearViewDayLink enum, and are as follows:  “None”, “Click”, “CtrlClick”, and “DoubleClick”.  You can combine these such that, for instance, a Click or a DoubleClick will cause the link to be activated.   The default is eYearViewDayLink.Click. This can be done like the following:

CalendarView.YearViewAppointmentLink = (eYearViewDayLink.CtrlClick | eYearViewDayLink.DoubleClick);

CalendarView.YearViewNonAppointmentLink – This property establishes how the user interacts with those cells that do not contain Appointments (or CalendarItems in general).  The possible settings for this property are, again, defined in the eYearViewDayLink enum, and may be combined to give the desired interaction.  The default is eYearViewDayLink.DoubleClick.

When a selection link is established (via the means established in the above YearViewApplintmentLink and YearViewNonAppointmentLink properties), you can have any Calendar display view activated by default when the corresponding day cell is selected.  This can be accomplished via the CalendarView.YearViewLinkView property.

The CalendarView.YearViewLinkView property sets which view (None, Day, Week, Month, or TimeLine) is “linked” to the calendar day cell selection. When enabled, clicking (or hitting enter or the Spacebar) on a cell will cause the LinkView to be activated and positioned at the day/time previously selected in the YearView.  The default is eCalendarView.Day.

There are many other very useful customization options and you can find all details in Knowledge Base Schedule control article under “Year View” section.

Schedule control in DotNetBar includes 5 different views for your appointments and each of them can be customized to fit your need. I think this is one of the best Schedule controls available. We are working to make it the best Schedule control in the world and we will not stop until it is. The plot is thickening :-) Stay tuned.

Tagged with:
 

Today we released DotNetBar for WPF 5.8 with Office 2010 Black color scheme:

Now DotNetBar for WPF supports all Office 2010 color schemes: Blue, Silver and Black. Here are couple of other improvements included:

  • Schedule control now provides ability to skip recurring appointment instances using AppointmentRecurrence.SkippedRecurrences collection
  • Schedule control allows working hours to be specified per owner and per specific date
  • Number of other bug fixes

DotNetBar for WPF 5.7 includes 18 controls that help you create professional WPF Applications with ease. You can download latest release from our Customer Only web site now or if you do not own a license give it a try :-) You might like it and we keep on top of any issues so you know we always got your back.

Tagged with:
 

Back in February I posted about the Apple iPad and I concluded that iPad perhaps may replace not only netbook, but also laptop and main machine for many people.

Now, 2 million of iPads have been sold in less than 60 days and I think I may have been close to the mark with observations. Here is what Steve Jobs on The D Conference had to say about tablets and PC’s:

When we were an agrarian nation, all cars were trucks. But as people moved more towards urban centers, people started to get into cars. I think PCs are going to be like trucks. Less people will need them. And this is going to make some people uneasy.

Watch this:

iPad is getting lot of mind-share and there is excitement around it that is much larger than it ever was with Windows based tablet PC’s. Why is that?

I had Tablet PC since 2002 when we added Tablet PC support to DotNetBar and I just have not been impressed. Not back then and not today. The tablet features are bolted on top of mouse/keyboard based operating system and are not forefront of the UI experience. They actually get in your way while you are trying to do something. Who wants to write with pen on screen when typing is faster? Who wants to poke into the small areas of screens with pen when using mouse is easier? It is much easier to not use the pen and use mouse and keyboard instead because UI does not fit the tablet device. That’s why I think the latest crop of Windows 7 based tablets don’t stand a chance. Not much has really changed, it is same old, same old.

As consumer, on one side you have iPad tablet with Operating System that is specifically designed for touch input, which works great and is super responsive. It has such strong focus on touch input that using real keyboard with it, is not such great experience. And you can forget about connecting mouse to it, you simply don’t have a need to do it. I am not saying that as anything bad, but to highlight purpose driven touch design. iPad OS* is also designed to work on low powered processors which are both cheaper and use less energy. iPad costs $499, it is fast and battery lasts 10 hours.

On the other side you have Windows 7 based tablets with Operating System that is not designed for touch input. Arguably, Windows 7 tablet functionality is not that much different from first Windows XP Tablet PC extensions from 2002 and in my opinion it stinks. The Windows Tablets are also at least $200 more expensive than iPad, touch input is awkward and unresponsive, they are not really that fast and battery last only 2-3 hours.

I do not think Windows 7 tablets have appeal. They have not sold well back in 2002 they will not sell well today either.

Bright light on horizon is Windows Phone 7 (almost carbon copy of iPhone OS) which is Silverlight powered OS but I have two concerns with it.

It seems that operating system and core apps are not written in Silverlight, which means that Silverlight is second rate citizen on the platform. That may be big downside. If all system applications are not written in Silverlight it is very significant. Significant in sense that API that system apps are using is not directly what Silverlight apps are using and Silverlight based apps will be slower than native phone apps and that will  provide worse user experience. That can easily sink the whole platform since these are not devices with plenty of processing power. There is nothing worse on touch platform when you touch the screen and it does not register. It is frustrating. On iPhone system apps and third-party apps are all written with Objective-C and use same API’s.

My second concern is that for some reason Microsoft says that WP7 is designed for devices with screen size of 3 inches or less and that there are no plans to put in the tablet. But, that does not make sense to me since whole WP7 user experience is panoramic based i.e. it is displaying part of the bigger canvas, something like looking through the window.

So you swipe and zoom to move around… Why would that not translate to bigger screen is puzzling to me. Just look at image above and it is obvious. I think this might be classic case of misdirection to disguise true intent. I think tablets running Windows 7 Phone OS will happen probably next year. Unless Microsoft wants to protect its cash cow (Windows 7 platform), in which case it will lose again on tablet and phone market.

So in opening round I think it is safe to say that tablet (iPad) that was designed from ground up for touch input won. Apple took risk to start from scratch. They abandoned all existing Mac OS X apps, created something new and it paid off. Windows was trying to have it all. Backwards compatibility to keep all existing apps and OS investment, and have just bolted on some tablet features that were poor fit for the device. Purpose won over a bolt-on.

* There is no separate OS for iPad, rather it is all one iPhone operating system with iPad specific user interface features
 

We just released new DotNetBar for Windows Forms 8.7 with over 30 new features and enhancements. This release includes Office 2010 Black theme, ListView style Tile view for advanced tree control and 11 new column types for DataGridViewX control, including date/time, numeric, progress-bar, slider etc.

Office 2010 black color scheme:

We also added highly requested ListView style Tile view to the advanced tree control. Now you can use it instead of ListView and have all customization richness and stability of our AdvTree control. Here is screen-shot that shows new tile view:

Make sure to check-out updated Tree control sample project which shows how to setup and use new Tile view. Updated sample also shows how to use tile view and data-binding and grouping to create neat data presentation.

Other improvements made in latest release:

  • 11 new DataGridViewX column types. Please see updated DataGridViewX sample project.
  • SuperTabControl Backstage style color scheme improved to look like Office 2010 RTM
  • Schedule control appointment display now supports text-markup and you can also specify the template for the displayed appointment content using Appointment.DisplayTemplate property. Supported template tokens are: [StartTime], [StartDate], [EndTime], [EndDate], [Subject], [Description], [Id], and [Tag]. For example you can set Appointment.DisplayTemplate to:
    Appointment.DisplayTemplate = "<font color="Red">[Subject]</Font><br />[Description]"
  • Calendar/Schedule control AppointmentRecurrence.SkippedRecurrences property added to specify the dates when recurring instances are skipped
  • Calendar/Schedule control now support per-owner work days through Owner.CalendarWorkDays collection
  • Much, much more… Here are detailed Release Notes.

If you have DotNetBar license download latest release on Customer Only web site. Fully functional trial version is also available.

 

Oh, what a way to start Monday. So I was about to check-in some new code but Subversion server was not responding. Sure, I thought maybe it just needs rebooting… Happens now and then. I go into the server room (well it is just a closet) and reboot.

Clickety, clikety, click is not noise you want to hear from hard-disk where source code lives, yet, that’s what I heard. Machine is not booting up either. I pulled it apart took hard-disk out, put it into the USB enclosure to try to get data off just in case, but no luck. It is gone. Just like that… Now, I am thinking, we’ll see how good our backup is.

I knew backup procedure we have is fairly solid, but since I wrote about backup before, I knew that Murphy does not look favorable on those that preach about backup. They get hit the worst, so that was in the back(up) of my mind.

Now we have triple backup for this server. Two of these backups are off-site (Mozy and Syncplicity) and one is on site on Drobo-box. I first reach for Drobo to see is everything there. As you might expect, Murphy left his calling card, one week of backups was missing. Okey, not a big deal, but I wanted it all. I check Syncplicity and everything is there to the last minute and it downloads fairly fast. Whew, that was close. I check Mozy and everything is there too, but you can’t restore nothing from that place, restore speed is like 400 bytes-per-second…

So yesterday was spent re-building the server. It is good exercise, but tedious…

Couple of lessons here, and I’ll test Murphy again by preaching about backup:

  • Automated backup is great, but something needs to monitor whether software that is doing it actually runs and has not crashed. That happened here where Drobo backup was 1 week behind because software crashed and nobody knew. It could have been worse.
  • Online backups are great, BUT nothing beats in house backup. We will be adding another Drobo, this time Drobo FS to have redundant in house backup. We’ll be also actively monitoring whether software that is doing backups is actually running and doing its job.
  • Online backups where you can’t access your files easily is worthless. We’ll be switching from Mozy to DropBox since we are already using DropBox and it is working really nice.

Luckily what could have turned into huge disaster was just minor annoyance. The source server is back up and running with nothing lost. Having real-time backup sync off-site using Syncplicity and DropBox really makes it so you don’t have to sweat when failures happen even if your local backup fails. And failures even multiple ones will happen. This HDD that failed was just 5 years old.

You can really never have enough backup… Stay backedup!

 

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

© 2009 Denis Basaric: DevComponents Blog