Tuesday, February 26, 2008

You might argue both, but that's beyond the point :-) I've been thinking lately about how different programmers get their work done. If you look over the shoulders to 3 programmers, none of them is working the same way. The first difference I tend to notice is the use of keyboard shortcuts. Personally I've always been a fan of shortcuts, especially in development environments like Visual Studio, but also general shortcuts in Windows or other applications. For instance I never do File -> Open. I always use ctrl -> O and it always annoys me when a program does not support the most common shortcuts. However, I still feel I can learn and use more of them.

We can divide developers into three groups related to the above:

  1. Love the mouse and rarely use shortcuts
  2. Use mouse often, but use shortcuts for the most common actions
  3. Use the mouse only when there's no shortcut for the action.

I think I can put myself in category 2 and I'm not sure if I want to or are able to be in category 3. One important aspect to consider before I dig myself to deep into this, is that you don't necessarily produce better software by using a lots of shortcuts (obviously). However I'm quite sure that a developer in group 3 produce code faster than a group 1 developer. But one can argue (if you're a bit extreme) that the quality of the code produced by group 1 is better, because they get more time to think :-) But seriously you can't use this type of groupings for defining developers, but in general I think many developers could benefit from using more shortcuts.

Here are the most common shortcuts in Visual Studio 2005 as I see it:

Builds    
Ctrl+B, Ctrl+S Build BuildSelection
Ctrl+Shift+B Build BuildSolution
Ctrl+Break Build Cancel
     
Debugging    
F5 Debug Start
Ctrl+F5 Debug StartWithoutDebugging
Shift+F5 Debug StopDebugging
F10 Debug StepOver
F11 Debug StepInto
Ctrl+F10 Debug RunToCursor
Shift+F11 Debug StepOut
Ctrl+Shift+F10 Debug SetNextStatement
F9 Debug ToggleBreakpoint
Ctrl+Shift+F9 Debug DeleteAllBreakpoints
     
Navigation    
F12 Edit GoToDefinition
Ctrl+F12 Edit GoToDeclaration
     
Other    
Shift+Alt+Enter View FullScreen
Ctrl+Shift+F12 View NextError
Ctrl+Alt+P Tools AttachtoProcess
Shift+Alt+A Project AddExistingItem
Ctrl+K, Ctrl+M Edit GenerateMethodStub

You probably know where and how already, but if you go to Tools -> Options -> Keyboard in Visual Studio you can define your own shortcuts. This is a great feature of Visual Studio that let you create custom shortcuts for almost every action you can do with a mouse. You can either change an existing shortcut or define new ones. Here's a screenshot of the shortcut dialog in VS:

image

Commands are displayed alphabetically after some type of menu structure (e.g. Edit.Copy), though there a many more commands than you can find in the menu. This list is of course populated dynamically which means you'll find commands for 3rd party VS plugins like e.g. ReSharper. One thing to be aware of though is existing shortcuts. If you for instance want to have the shortcut Ctrl+V, Ctrl+A, you will override the Ctrl+V command for Paste, which is probably not what you want.

Tuesday, February 26, 2008 2:53:51 AM (W. Europe Standard Time, UTC+01:00)
 Thursday, February 21, 2008

suits Before installing SP1 I could right click anywhere in Windows Explorer and select search to do searches in that folder. After SP1 it's gone! Why? Blame "us" (the Europeans or actually EU). They (I say they, because Norway is not part of EU :-) ) found a "new" game to play with MS. It's called Antitrust and it's about Suits meeting up in in European courts to talk about software. Browsers are especially popular, but sometimes they talk about other types of software as well. The looser of the Game (usually MS) have to become agile and change their software so the Europeans can get their price. This time MS didn't want to play, so they just gave the EU the price.

What's the price you might ask? A pluggable search architecture. If you are a provider of a desktop search engine, users can now set your search engine as default search in Windows. So what if I want to have the contextual search like it was? Then you can change a registry key as described here or just use Windows key + F as I do.

Thursday, February 21, 2008 8:43:14 AM (W. Europe Standard Time, UTC+01:00)
 Saturday, February 16, 2008

As mentioned on the Vista blog, Microsoft changed their mind regarding the release date of Vista. The original statement was that it would not be available until mid march (though it was already in RTM). You can now find the download at MSDN Subscriber Downloads. You'll will not find it in your normal subscriber download page, but on the front page where you have a list of Top Subscriber Downloads, like this:

VistaSP1OnMSDN 
I installed SP1 Friday night and it took it's time, but there were no problems. My first concern was if all my drivers would still work after installation, or if I had to reinstall some of them (as mentioned on the Vista blog). After initial boot everything was fine so no problems there.

The next morning however I went out for 30 minutes leaving my laptop on. When I came back it had restarted. I inspected the System log only to find this:

The previous system shutdown at 10:29:45 on 16.02.2008 was unexpected. 

Nice! In the Security log the only trace I could find of a shutdown was this:

Audit events have been dropped by the transport.  The real time backup file was corrupt due to improper shutdown.

I'm quite sure that this was not related to any external event (like power failure or the like). If it was, my laptop would still be turned off when I came back. I really hope this was a one time incident and that I don't have to worry about this in the future.

Saturday, February 16, 2008 11:19:12 AM (W. Europe Standard Time, UTC+01:00)
 Tuesday, February 12, 2008

ndc2008Logo If you want to attend the first ever Norwegian Developers Conference you should keep an eye on this site: http://www.ndc2008.no/ They will start to sell conference passes from 1st of March and I will definitely be in the virtual cue. Unofficial rumors say that a two day conference pass will cost around 3000 Norwegian kroner (about $500 or €380). B.t.w. I wonder what the url will be next year? ;) Hopefully they'll get the www.ndc.no domain by then. Looks like it's not used for anything else than sponsored links (that's why I'm not linking). Someone probably whispered that MS is involved in the conference and their dreaming of an insane price for the domain, which their probably going to get... yea right!

Events | Microsoft | NDC
Tuesday, February 12, 2008 9:49:08 PM (W. Europe Standard Time, UTC+01:00)

NNUG_JavaBin The 27th of February Anders Norås will come and have two presentations on Domain Specific Languages (DSL). First we only planned one, but when I asked Anders if the presentation would be strictly .Net he suggested having two presentations, one on .Net and one on Java :) I thought this was a great opportunity to get the two local communities in Bergen together under the same roof. Sometimes there is sessions that is not directly connected to a technology platform and these types of presentations are great for joining forces and share experiences. Hopefully NNUG will visit JavaBin next time something like this comes around.

I will post more info about the sessions later and if you're a member of NNUG you will get the meeting invitation shortly. The same goes for JavaBin members.

Really looking forward to this and I hope to see you there.

.Net | Events | Java | NNUG
Tuesday, February 12, 2008 10:39:29 AM (W. Europe Standard Time, UTC+01:00)
 Friday, February 08, 2008

Update: I've found a temporary solution. After inspecting which files was in our package I found a 3rd party component that we don't use anymore but still had a reference to. This was references by our business layer, which all our web services use, hence this dll was in every bin folder on every web service. Since the size of the file was quite big it was enough to get the installation down to a reasonable size and avoiding the described error message.

For a while now our msi file that contains the application server for our product has not been working. Not an msi that our customers have, but one we're about to ship in two weeks. I've had my hands full for a long time, but today I finally got around to check what was causing the problem. Here's a screen shot of the error I get:

MsiInstallError

After a quick Google search I found that this is related to a bug on Windows Server 2003 and Windows XP. Cause:

This problem occurs if the Windows Installer process has insufficient contiguous virtual memory to verify that the .msi package or the .msp package is correctly signed. 

Fantastic! I will not go and ask all our customers to install the hotfix on their servers. That's just to stupid. About now you're probably thinking something like "How big is their app-server really?" or "What product can get to big for an msi file?". I can tell you... The size of the msi is 576MB. No images, no database, just pure .Net dll's! And actually we're not alone. Visual Studio Service Pack 1 had the exact same problem! Go figure. And even better, there is no hotfix for this on Windows XP.

Have we been coding like mad men for a decade and producing tons of code? I wish (or maybe not) :) The answer is simpler than you might think. Our application server contains web services only. At the beginning of our project we took an architectural decision to have our web services separated in virtual directories (or projects in VS). This to be able to update parts of our application without affecting the whole system. This was part of a master plan around the smart client principle and would let us deploy small modules into our application which dynamically loads the new behavior. As it turns out we have almost never done this in production. The drawback of this is of course that you get many of the same dll's scattered around in many virtual directories. And when you have many web services (by web services I mean asmx files and not web methods, 43 to be exact), and each one is dependent on your business and data access layer (which is quite huge) and more, megabytes is piling up.

So what's the solution? Well, since we don't really use this as intended we can just merge our web services into one and we will be home free. Except you don't do that two weeks before deployment with acceptance testing coming up. So I have to think of something else. The only solution I can see now is to find some way of making the msi smaller, which at the current time I don't have the faintest idea of how to accomplish. I can use a setup launcher (exe) which will probably solve it, but that will not make our customers very happy. Hopefully I'll figure something out during the weekend, or maybe you have a solution?

Friday, February 08, 2008 10:37:08 PM (W. Europe Standard Time, UTC+01:00)
 Wednesday, February 06, 2008

Windows_Vista_logo.jpgVista Service Pack 1 is now finished. The Vista team announced on their blog that they now have released SP1 to manufacturing (RTM). They also say that:

"...we have made great progress in performance, reliability and compatibility."

and

"...copying or moving files around your PC, your home network or your corporate network should now be much faster -- up to 50% faster in some scenarios (according to our internal tests)."

This has annoyed me a lot on my HP:

"In addition, on many kinds of hardware, resuming a Windows Vista-based PC from sleep is faster on Service Pack 1."

So when and where can I download? It will be available trough Windows Update in mid March (and auto download in mid April if you have this enabled). So why not today? During beta testing some issues was found related to some device drivers "that did not follow our guidelines for driver installation". So the next month will be used to:

"...giving us time to work with some of our hardware partners to make adjustments to the installation process for the affected drivers." 

If  you don't want Vista to update itself to SP1 when it's available, check out my previous post on how to block the update.

Wednesday, February 06, 2008 7:44:46 AM (W. Europe Standard Time, UTC+01:00)
 Sunday, February 03, 2008

Jens Schaller has started to write some Vista tips/tricks/tweaks. He's written 3 great tips (1,2,3) for now and will be doing one for each day in February. I immediately started using Ctrl+Shift+Enter to open apps in admin mode! Looking forward to the other ones already.

Sunday, February 03, 2008 11:56:06 PM (W. Europe Standard Time, UTC+01:00)
 Saturday, February 02, 2008
Mark 17th and 18th of July June (Programutvikling's event site mention both June and July, but June is the correct month) in your calendar. Microsoft Norway and Programutvikling has managed to attract some great names. Check this out: Scott Hanselman, Roy Osherove, David Chappell, Mats Torgersen, Rafael Lukawiecki and Mary Poppendieck! Is that a great line-up or what? I wonder if they got this idea from my Developer Conference in Bergen post? ;)

For now there's not much information out there, but you'll definitely hear more the coming months. Rune Grothaug's blog from the Microsoft DPE team is a great source for events in Norway. Programutvikling has the event on their site here.
Saturday, February 02, 2008 12:22:49 AM (W. Europe Standard Time, UTC+01:00)
 
Aggregate Me!
Feed your aggregator (RSS 2.0)  Rss
Locations of visitors to this page