Archive for the 'general software' Category

23
Feb
08

How not to implement Undo

Lotus Notes 7 has an undo feature.  I think it would be better off without one.  This train wreck of a feature does not have a redo option, and is unpredictable in terms of how much it is going to undo.

So, here I am typing away and I mistype a few characters, so I hit Ctrl-Z expecting a behavior like every other application I use.  Surprise, Lotus Notes decides to remove an entire paragraph.   I groan, and try to undo the undo (redo).  Ack, it can’t do that!

25
Jan
08

Secure Automatic Login for Vista

imageI, like quite a few computer owners, am almost the only person to use my machine.  It always has annoyed me that when I boot up my machine I can’t just walk away and come back to a ready to use machine.  That’s because it will load Windows fine, but when that’s done I still won’t be logged in.  So I enter my password and then wait while resources get sucked up by various applications that start loading.

One could argue with why these applications load at this time, or why they need to suck up so many resources that the it’s hard to use the machine for a minute or two longer but that’s another post.  The other way to avoid this problem is to have your user automatically logged in.  But I’ve never been comfortable with the idea of my computer not needing a password, despite it being locked inside my apartment, and the knowledge that a determined person who was inside my apartment already could surely defeat that protection given ample time.

I’ve finally found the solution to this problem.  First, start with the automatic login.  Tap Window-R and type netplwiz.  This loads the Advanced User Accounts Control Panel.

If you have more than one user configured make sure your user name is selected.  Next, uncheck the box "Users must enter a username and password to use this computer."

image As I mentioned the problem is now your computer boots up and is wide open.  The fix is to take advantage of Vista’s much enhanced task scheduler.  You can either run taskschd.msc /s or choose Task Scheduler from Administrative Tools.  Choose Action\Create Task.

 

On the General tab make sure "Run with highest privileges" and "Run only when user is logged on" are both checked. 

General Task Properties

Go to the triggers tab and click New and select, Begin the task: "At log on".  Make sure "Enabled" is checked too before clicking OK.

image

imageAlmost done now.  On the Actions tab, click New again.  Select Action: "Start a program".  In Program/script, type %SYSTEMROOT%\system32\rundll32.exe.  Last, in Add arguments, type user32.dll, LockWorkStation.  Click okay, click Run now to test, or reboot. 

In my testing you won’t even see the desktop.  All your user login work will be taken care of and you’ll see just the login screen.  For a small bit of added security, go back to netplwiz, and on the Advanced tab choose "Require users to press Ctrl-Alt-Delete".

10
Jan
08

When (not) to document?

Documentation, it’s a boring job, but someone has to do it, right?  That’s what process advocates say, but maybe that view is overstated.  To think about that question, consider the reasons and flaws of documentation.  On the plus side, it’s hard to argue documentation is bad; it’s additional data.  In theory, documentation helps others understand something non-intuitive.  Managers hope documentation will allow replacement of one employee with another.  They say in case of accident (“hit by a bus”), but we know the reason is in case one employee quits or demands more money.  In another case, it educates users, and reduces the need for hands on training.

Documentation doesn’t always live up to those goals, but it at least partially accomplishes them.  But I see two primary problems with over-documentation.  The first, it is better not to need documentation, then to have it.  A goal of 100% documentation not only distracts from the quest to reduce it’s need, but as I’ll explain, it’s often an obstruction as well.  The second problem, is time.  Creating, maintaining, organizing and disseminating documentation is time consuming.

The second problem is obvious, and there is little to be said.  Each project must make it’s own decisions on when and how much documentation is appropriate.  Whatever that decision is, insure the entire lifecycle of documentation cost is considered.

The idea of fulfilling the goals of documentation through intuitive design is much more interesting.  It’s a commonly accepted practice in the development world that the design of classes, method names and other elements of code should strive to not need documentation. 

If you have the choices of creating a method void Execute(byte[] array, string input), and then providing documentation stating, “The Execute(ref byte[] array, string input) method reads the contents of a file with the input path input into a byte array, array.”, or simply creating a method byte[] ReadFromFile(string filePath) with no documentation, any rational developer would choose the second.

It’s not impossible to do both, especially in the case above, but it can be difficult.  I already pointed out it’s time consuming, but documenting what doesn’t require documenting is most tedious.  Repetition is the fuel of tedium, so don’t repeat yourself.

It’s not just code that benefits from the rule of eliminating the need for documentation.  The highest goal of any user interface designer should be an application that is intuitive, an application that trains the user through use.  RTFM is a nice phrase, but it’s been repeated so many times we should question it’s wisdom.

16
Nov
07

Browser Bias

Jeff Atwood writes about the higher expectations users have of internal software due exposure to Internet software.

It’s a good point, but there remains a stone unturned.  Why do users, who have no knowledge of the technical details, proclaim browser based software to be better.  One simple reason is, the internal software they were subjected to was not browser based, many times having been written before those tools were available.

Internal software sucks not because it’s not written in Javascript.  No, it sucks because no one cares enough to fix it.  Management can’t put a cost benefit study behind the fixes, users can’t switch to another platform, and developers aren’t half as motivated to create a piece of software for that overpaid salesperson (every company has at least one), as they are to create a piece of software that might bring them fame and fortune among the wider world.  And we haven’t even begun to consider the consequences of scale.

Thus internal software sucks, and when compared to a project someone loves, it looks horrible.  And that explains the irrational bias I’ve observed among pundits, executives and “hip” users toward browser based software.

08
Nov
07

Friendly Installation

I use Windows Live Writer for all my blog writing.  It’s a great tool, far easier than writing in the blogger HTML form and risking loosing hours of work when something wonks out in the browser.

So, when they released a new version today, I wanted it.  I was initially disappointed by the indications on their site that it was now part of a suite, because I didn’t really want all that other junk.  I hate that.

Fortunately, things are better than that.  There’s a suite, but it’s easy to select only the things you want to install.  Some demon possessed me to install messenger even though I never use it (especially pointless since I use run Yahoo Messenger all the time, but only use it for playing LaunchCast music).

All that is normal, what I found surprising was the installer.

image

There are a few things to note here.  One is you can change your installation options, after you start installing.  That’s a pretty cool feature I think.  Maybe not applicable to all kinds of software, but common enough others should take note.  Another is trivial but funny: the message “Feel free to do other things while you wait.”

Now, I’ve never been the patient installer.  Only on the most incompatible and broken pieces of software do I actually leave all other applications closed during an install (you might ask why I would install such software?  Because I work in a world where I don’t always get to choose my software ;( ).  So, it’s nice to have that practice validated, even if most of those “please close all other applications” warnings were really lies.

25
Aug
07

"Locked" Systems

It seems everyday you hear about a locked system’s protections being circumvented.  Today there is the XBox 360, yesterday the Apple iPhone.  I used to think the process of locking up these systems was completely useless and a generally bad idea, but today I had a thought.  Maybe there is a silver lining to the thundercloud of proprietary lock in technology.

What could that be?  Well simple, you’re hearing about some useless proprietary barrier being broken, rather than a new virus or set of malware.  Hackers will hack, and it may just be that the combination of high flying press and the pseudo philanthropic respect given to proprietary barrier hackers can create a brain drain in the area of the really nasty stuff.  Maybe.  I’m sure there will still be virus and malware writers, but maybe they’ll be a little less smart, a little less numerous.

The problem is we let companies like Apple waste our law enforcement and legal system resources on chasing down the proprietary barrier hackers.  We shouldn’t let them do that.  There’s no excuse for chasing down some guy who let people use the phones they already paid for when there’s hackers out there destroying our email system, scaring grandparents around the world and wrecking peoples lives through identity theft.  Priorities.

27
May
07

WinFS becomes SharePoint?

WinFS officially died a little under a year ago. As a project this is definitely true, but Microsoft stated they hadn’t given up on the vision. In the past year there hasn’t been much information on how this vision is being pursued. My guess is no one wants to be associated with the bad publicity that followed the WinFS project’s end. Thus, if you want to understand how the vision is moving forward you’ll have to look at results rather than press releases.

SQL Server was an obvious benefactor of the technology aspects, but has little to nothing to do with the user side unless we’re expecting user’s to learn SQL. For that side I think the lurking replacement is SharePoint. SharePoint stores documents in a database, automatically indexes them, attaches user and application customizable properties through lists and IFilters, and supports various mechanisms for change notifications. There’s a lot more to SharePoint than just the document capabilities, but in that area the main thing missing from the WinFS vision is that SharePoint is a server.

There are some major technological differences, mostly for the better. One is that where WinFS relied upon GUID’s for all items, SharePoint relies upon the URL. This makes SharePoint fit in with the rest of the global URL based landscape than WinFS ever would have. It also makes those descriptors much more human oriented. URL’s can be hard to remember too, but there is a much better chance of remembering enough for a search to figure out your intent.

For a business user the server aspect isn’t a big difference. The “My Site” feature, combined with offline capability tools (Outlook, Drafts, etc.), makes it more attractive to abandon My Documents in favor of My Site. You’re IT staff will love you for it too because now it’s easy to backup and manage those files. Sharing becomes a breeze, and if you ever want to access a file remotely it should at least be possible (though you may still have VPN issues hurdles, depending on how liberal you IT department is).

For the home user, or micro business users who won’t have even a single server the server aspect is a big difference. I’m not sure how the vision plans to address this, but I can see four possibilities. All are wrought with some difficulties, so it’s hard to say which is more likely. One possibility is an extension of the “Live” concept, to provide those micro users with a hosted solution. Google has made a great deal of progress in convincing users to give them all their data, but it’s unlikely the marketplace will easily accept having Microsoft host their personal files. Micro business users might trade physical control for the efficiency possibilities, but home users won’t. But then, maybe home users don’t need the WinFS vision? Can’t please everyone, right?

Microsoft could also try a third party variation of the “Live” concept. In a sense this makes sense since you get past the generally prevalent mistrust of Microsoft, but provide the same capabilities. The problem is, who is the third party? Despite the institutionalized fear of Microsoft and big corporations in general, consumers consistently place more trust in the known than the unknown. All the well known companies that enjoy greater trust have their own plans and are extremely unlikely to be found selling SharePoint services.

The third possibility is best described by Home Server. So far SharePoint like capabilities aren’t built in, but maybe they should be? It’s likely to enjoy more emotional trust than hosted services, certainly privacy, but it adds an IT management aspect. Microsoft is clearly trying to minimize the IT management aspects of Home Server, but they can’t control power outages, DSL problems, or the cat chewing up the wires. Most users are desperately trying to minimize those concerns so I’m not sure this is the solution for everyone.

The fourth possibility is to put the capability back on the desktop machines like WinFS originally intended. To do this you must however sacrifice quite a bit of what’s unique about the SharePoint way of managing files, such as reliability. Of all the possibilities, this seems the least likely to see soon. One reason is that it’s technically the most distant from the capabilities already available. Another is there isn’t the same kind of demand. It doesn’t fit the vision of corporate IT departments, or most smaller business users. The other users care less about the whole concept. Most will be satisfied with Vista’s indexing capabilities. Some might enable previous versions, but most won’t unless it’s done for them (Which maybe it should be).

18
Mar
07

Hidden functionality in Remote Desktop and Virtual PC shortcuts

Today, most computer users use a mouse to access virtually everything. Perhaps more than they should. In many programs there is functionality that is only accessible through the mouse, and virtually all programs have a great deal of functionality that would be extremely painful to access without a mouse.

You can find plenty of gripes from hardcore keyboarders on this common oversight. I don’t consider myself a hardcore keyboarder, I think GUIs are great tools, and have a lot to offer even the most technical of computer user. Still I agree that if GUI applications thought a bit more about how to leverage the power of the keyboard better, they could be much better too. A mouse-menu, or mouse-toolbar, or mouse-anything combination will be slower than a memorized keyboard shortcut. So when there’s no keyboard shortcut available, you’ve installed a speed bump.

As bad as that is, the reverse is even worse. When the only way to access some functionality is through the keyboard, and it’s not so intrinsic, or so obvious that no training is required, you’ve installed hidden functionality.

One of the great things about GUI’s is that they are graphical. This means you can see them! If there is functionality there, generally it’s got a button, a menu item, or something that screams, “I do something”. It’s still possible to make these obtuse or impossible to understand, but at the very least there is a clue that something is possible, and almost always it’s a bit better than that.

Usually, GUI menu’s benefits even the keyboarder because they serve as a quick reference or learning tool for keyboard shortcuts.

Another problem with keyboard shortcuts as the only access mechanism is precedence and complexity. With a GUI element, as long it doesn’t end up off the screen, invisible or covered up, it’s accessible. For example, I use Remote Desktop and Virtual PC a lot. The multiple layers can make shortcuts complicated.

Take Ctrl-Alt-Del as an example. In Virtual PC, you use Right-Alt-Del. In Remote Desktop it’s Ctrl-Alt-End. Luckily both are smart enough to provide a GUI element for these (Action, Ctrl-Alt-Del for Virtual PC; Start, Windows Security for Remote Desktop) in case you don’t already know the shortcut (Remote Desktop unfortunately doesn’t tell you the shortcut, so you have to find that out on your own. But what if you’re in a Virtual PC session, remote to another machine, and then open a Virtual PC session? I haven’t found a shortcut key that works here, so you have to revert to the GUI.

Or how about Alt-Enter? In Virtual PC it’s Right-Alt-Enter. In Remote Desktop it’s Ctrl-Alt-Break. The same situation is true here for GUI elements, and Remote Desktop still fails to give any visual cue about the shortcut. Also, when maximized the GUI element for Virtual PC is unavailable (true of the Ctrl-Alt-Del replacement too). Worse, if you’re in a VPC session, inside a Remote Desktop, inside a VPC session there is no shortcut or GUI element (since Alt-Enter maps to the highest level VPC session). The solution to get out is to invoke the Ctrl-Alt-End, then minimize your VPC window, then right click on the taskbar panel and choose Size.

Maybe VPC-RD-VPC is an odd thing to do, but I do it (firewalls and VPNs are the reason).

18
Mar
07

In search of bits (an additional 32, to be exact)

Jeff Atwood writes about the ~3.5GB barrier, of which I’m unfortunately familiar.  Even with a 64-bit CPU and a 64-bit OS my BIOS has held me back.

Now what, on a desktop would one need more than 3.5GB for today?  Well a perfect example came up this weekend as I’ve been setting up a whole test server environment, complete with 5 machines in VMs.  I managed to do it in the measly 3.5GB, but that once I loaded that fifth and final VM, you could tell the system was finally feeling the strain.  Another 0.5GB (or better yet another 2.5GB) and there would have been no problem.

But the work is now complete, the VM’s saved to hard disk, but it’s a clear demonstration that the 32bit barrier is not just a server issue.  Admittedly, it’s at least another year, possibly three before the average PC user begins to grumble about that barrier, but for technical people who really use their machines, it’s here now or just over the horizon.

Since these are the type of people who guide the rest of the industry, companies really need to get off their butts and start making 64 bit compatible drivers, tools, and the whole bag.  Many are, but many aren’t. 

If the gamers, the developers, the IT staff abandon your product, you’re as good as gone.

22
Feb
07

Too much?

Is there something wrong when you boot up your PC, load Virtual PC and your Windows XP VM, and then from inside that VM go and run your companies VPN software, remote desktop to your work computer, and load up another Virtual PC image on that machine? 

That’s 4 levels of indirection.. hmm.  Though, in reality the VM I boot up at work is to run a server, which I then access through a web browser.. is that better? or worse?




Pages

Top Clicks

  • None

a


Follow

Get every new post delivered to your Inbox.