
Back to Blog index.
As software developers, we almost always want to keep quality of our work high. But, it isn't enough that just the code is good. Your application must also be easy to install *and* update. Here's a rant regarding Adobe Reader 7.0 and also a perfect example how you should not build your installation routines. In fact, I ran into this situation exactly today, so here goes the play.
Act I. I'm helping to set up a W2K3 server from scratch. I need to open some PDF files on the server. Customer doesn't have yet have Internet connection (new location), so I go to my laptop to download Adobe Reader 7. Problem 1: Adobe only provides a 500k "smart installer", which obviously requires an Internet connection to fetch the rest of the files. Show stopper.
I spent 15 minutes on their web site looking for a network/full install package, but just can't find it. I conclude I must be blind and resort to installing Adobe Reader 7.0.0 from an older CD that I happened to have.
Act II. The server now has an Internet connection. Reader starts to complain about missing 7.0.8 update. Okay, I believe in keeping computers up to date, so I say okay. Problem 2: The updates are not cumulative, so I need to install 7.0.5, 7.0.7 and then finally 7.0.8. Luckily, this is automatic, so good so far.
Problem 3: The installation of 7.0.5 requires a reboot. This sucks! I reboot, 'cause what else can I do? Well, server is again up (booting a AD PDC takes ages!) and the installation resumes. Problem 4: update 7.0.7 also requires a reboot. This sucks big time! Problem 5 after 2nd reboot: update 7.0.8 still requires a reboot!!
Does Adobe really think I can reboot a production server three times just to get updates to their software? And, what on earth can there be that requires a reboot? Or, that they don't give me the full install file on their web pages?
No more Adobe products for me, thank you!
Unless you are Ansel Adams already, there might be some topics with your exposure techniques that could use improvement. I confess that's the case at least with me.
Now, you might have heard of the "Zone System". But what is this system, anyway? Take Norman Koren's introduction and you will know better. It is a very good text, so worth reading and keeping.
Are you working for a small (say, less than 20 people) ISV and looking for ways to develop, market and promote your Windows Vista compatible applications? If yes, Microsoft's Project Glidepath might be what you are looking for.
By definition, it is "designed to provide the knowledge you, as a MicroISV, need to be successful by providing step-by-step instructions for everything from how to get started with Windows Presentation Foundation to how to write and publish a press release."
Sounds good to you? Go download it at http://www.projectglidepath.net/.
Scott Mitchell has written a very good tutorial about ASP.NET application development and the crucial step of accessing the data in a proper way. The examples are in VB.NET.
Of course, for very simple web applications, a DAL (Data Access Layer) might be overkill, but it is better to get into the habit of having a proper foundation for your applications as they have the tendency to grow.
MSDN's Coding4Fun has a great example of combining carpenter skills with electronics and programming. The result is a programmable (in C# of course) disco dance floow. I want mine, too!
Happy Midsummer! The longest day of the year has just passed, and nice and warm weather is here to stay the whole weekend. I'm heading to watch the bonfires, I'm quite sure there will be plenty of people there.
I had the pleasure to attend yesterday the Finnish MVP meeting at an island called Saunasaari, a 15 minute boat trip from Helsinki.
There were seven Finnish MVPs (me included) and two Microsoft local representatives, and we had a fun evening of sauna, swimming in the ocean and a very nice dinner. Thanks to Microsoft Finland for arranging the event!
When new programming APIs come available, there's usually a lot to learn. The Windows Presentation Foundation (WPF, aka Avalon) is no exception here, and after downloading Vista Beta 2, I wanted to see how I could get started with WPF and XAML. This is the first Vista beta release I could get WPF and XAMLPad to work properly, previous betas required too much tweaking and I didn't have that time then.
Now, the WPF documentation (part of the Windows SDK) is currently preliminary, and although the reference portion seems to be good already, there is very little high-level, introductory material for example about layout. Or, at least I haven't been able to find it yet.
When I started with XAML, I wanted to buidl those similar-looking applications as I did with Win32. You know, a treeview on the left, a status bar at the bottom and a listview on the left.
To get this done, a DockPanel is what you need. Here's a simple piece of code that also demonstrates using colors and adding images to your application:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowTitle="DockPanel Sample">
<DockPanel LastChildFill="True">
<Border Height="40" Background="Gray" BorderThickness="0" DockPanel.Dock="Top">
<TextBlock Foreground="White">Dock = "Top"</TextBlock>
</Border>
<Border Height="50" Background="Gray" BorderThickness="0" DockPanel.Dock="Bottom">
<TextBlock Foreground="White">Dock = "Bottom"</TextBlock>
</Border>
<Border Width="200" Background="LimeGreen" BorderThickness="0" DockPanel.Dock="Left">
<TextBlock Foreground="White">Dock = "Left"</TextBlock>
</Border>
<Border Background="Black" BorderThickness="0">
<TextBlock Foreground="White">
<Image Width="100" Source="C:\Users\Public\Pictures\Sample Pictures\Forest flowers.jpg"/>
<Image Width="100" Source="C:\Users\Public\Pictures\Sample Pictures\Garden.jpg"/>
<Image Width="100" Source="C:\Users\Public\Pictures\Sample Pictures\Waterfall.jpg"/>
<Image Width="100" Source="C:\Users\Public\Pictures\Sample Pictures\Toco Toucan.jpg"/>
</TextBlock>
</Border>
</DockPanel>
</Page>
Here's the result of using this code in XAMLPad:

Here, the DockPanel tag holds the area for the so-called "Borders" inside the DockPanel element. Each Border can have a width and height, or both. For example, to get space for a menu bar, you could add a border with the height of 40 pixels.
Of course, you also need to specify where you want to dock that border. This is done with the DockPanel.Dock property, valid values are Top, Left, Bottom and Right.
Finally, to get some content inside the panels, you can put a TextBlock component and some text into it. Of course, you can also nest TextBlocks and Images, as is done with the black border element at the middle of the screen.
Hope this gets you going with XAML!
Some applications, for example text editors can change the default View Source editor in Internet Explorer. How I hate when this happens, especially when the installation program doesn't ask if you would like this to be done.
Okay, here's the registry key you need to edit (or delete) if you want to return back to the default editor, i.e. Notepad.exe.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ ...View Source Editor\Editor Name
Of course, if you want to go the other way around, just create this registry key and restart IE.
Seems like Microsoft is really into community-enhanced content. The latest proof of this is the MSDN Wiki page. Sounds great!
Now, in fact I expected a bit more, since to me Wiki immediately brings into mind the Wikipedia, which I have learned to use and love. The MSDN Wiki doesn't allow you to edit the content directly (which I would love), but instead lets the community add comments to the site. But that's a good start, and in the future Microsoft might enable the community to edit the whole contents of those documentation pages.
The June issue of Tietokone has my latest article about Microsoft's SyncToy utility. Personally, I have found SyncToy to be useful in taking backups to my external USB hard drive. As an additional plus, SyncToy is a .NET application.
WinFX was the new name for the new, Vista-related programming interfaces, but to many developers this name was confusing and vague. I found that S. Somasegar (Corporate Vice President, Developer Division) had announced a new name for WinFX on his blog: .NET 3.0.
I warmly welcome this new name. It is clear, informs developers that it is a new version of something that we already have (.NET) and helps Microsoft to market WinFX APIs better. The bad news is that I happened to like the word WinFX. :-)
UPS brought my new toy today: the Canon EF 70-200mm f/2.8 lens. It's no plastic lens for sure, it weighs 1.3 kilograms, which is more than my EOS 5D body.
Since it's a fine day today, I definitely wanted to take the lens outside for a walk. Even with just less than 100 shots, I can surely say it is sharp. Way sharp. In case you are interested, I bought mine from B&H Photo Video in the USA.
As you probably know, the next version of Office is soon here. Previously known as "Office 12", the new version is now called the 2007 Office System. Yes, you read right: the version number is before the name (which I think is pretty odd choice, but I guess I'll adjust).
Now, just like with Windows Vista, 2007 Office is going to be a major upgrade to the previous Office 2003 version. Microsoft has often touted it's support for developers, and 2007 Office isn't going to be different. In fact, currently there's a major push going on for developers on MSDN. Go and check this information out as you don't want to get left behind.
I finally had the time to post-process (PP) and upload some of my landscape and nature shots to my site. More pictures are coming, especially those somewhat more surreal shots I have. Feel free to send me some e-mail with your comments.
Happy June! Here in Helsinki, it's getting really nice an warm. Which is just what I need. Now, a rainy day is still nicely spent programming with Visual Studio 2005, and here's my today's tip for the keyboard-oriented developer: the Clipboard Ring.
What is the Clipboard Ring? If you have used older Visual Studio versions, or, say, Office programs, you might have noticed that you can copy or cut multiple items, and then paste them all in the order you want.
This is how the feature works in Visual Studio 2005 (say, C#). First, copy (Ctrl+C) or cut (Ctrl+X) some text in the Code Editor to the clipboard. Don't worry about replacing the previous contents of the clipboard with your new stuff. Now, go to the location where you want to paste. Instead of pressing Ctrl+V, press Ctrl+Shift+V.
The selection will now match the contents of the latest piece of code you copied. At this point (don't move the cursor!) you can press Ctrl+Shift+V to cycle through all the (up to 20) previous things you copied. Very nice!
› Blog Archive