Tuesday, May 30, 2006

William Bartholomew posted a trick to the [ausDotNet] mailing list this arvo about when you need to know what is going on with an MSI installer, specifically the kind that come wrapped in a .exe bootstrapper.  It was in response to troubles Dr. Pete was having with the (acquired) Microsoft Office Groove 2007 Beta client...

See if you can extract the MSI packagr from the installer, usually OG-EN.exe /x c:\temp\
Then, you can use msiexec /i c:\temp\msifilename.msi /v* c:\temp\install.log
Then, open up install.log and see what it's complaining about.
Tuesday, May 30, 2006 5:39:23 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Monday, May 29, 2006
In my current development box at work I am blessed with a pretty nice dual-head video card.  Off it I run my vintage Gateway VX900 19" CRT plus a shiny new Dell 1704FPT LCD.  The LCD lives on DVI and the CRT lives on 15-pin VGA dsub.  All pretty normal.

A few weeks ago I decided to try rotating the LCD into the vertical orientation and I have to say I'm hooked. 

What I like most about it is some windows like browsers, Acrobat, Word look better vertical however some windows are more useful horizontal, like Outlook, Visual Studio etc - this way I can keep both. 
 
I am convinced that there is less eyestrain reading documents in the vertical orientation much like we do with hard copy because the eye has a shorter distance to scan left to right.

Now my desktop is thus:





To be fair, some things suck about it:
  • Some apps just don't know what to do, and pop-up a window too tall on the horizontal window or too wide on the vertical window.
  • My CRT can do higher resolutions than 1280x1024, but it feels goofy dragging windows between screens and having them shrink and grow.  Freaks me out :)
If you have a vid card + driver that supports it, plus the right hardware I say try it out.  You might like it :)

Monday, May 29, 2006 1:10:42 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, May 23, 2006
I just got this message from Skype about a security update:



Apart from the stray non-printable control char after the question mark, this is pretty much the way security update notices should go out for consumer applications.

The security fix only works if people download and run the update, and if the message can't be read by the intended audience because it is deep in techno-babble your patch is all for zip.

It reminds me of way-back-when comparing iptables on Linux 2.4 vs. IPF in OpenBSD 2.x.  The one factor that made OpenBSD more secure for me in this case was the rules were written in words the config file rather than as parameters to iptables making them less error prone and hence more secure.  I believe both those tools are now left to history now anyway...

Anyway, well done Skype :-)

(NB:  They also blog :-)

Tuesday, May 23, 2006 6:19:12 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Monday, May 22, 2006
...from now on you can find your own :-)

I keep finding things on flickr that I can't believe how cool they are.

Today's link is to the Stick Figures In Peril photo pool.  Who could not like the idea of people sharing photos of stick figures in peril? 

MLP
Monday, May 22, 2006 9:52:06 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
Hey,

Just a quick note, sorry if anyone has visited this site and been welcomed with an ugly message like:

Server Error in '/' Application.

Could not find a part of the path "C:\Inetpub\[...]\blockedips.config".

There is a bug in the software that makes this bug happen, but the developers are onto it and a fix is coming.

Thanks :-)
Monday, May 22, 2006 8:20:51 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Wednesday, May 17, 2006
I love it when a word comes to the surface that really fits its need. 

Julian Burnside (offical web site caution: Ugly!, selected history) wrote well on it in his book Wordwatching although he was talking about Black Holes:  Places in English where dispite our vast vocabularly and rich idomatic variations, it [English] lacks words for some common and useful ideas. (p19).  These black holes are unnaturalized foreign words.  Faux pas and deja vu make for common French examples and Schadenfreude from German.  The point of these are that the word as it is fits exactly the sentament. 

Douglas Adams, famed creator of The Hitchhikers Guide to the Galaxy also took on this subject in his book The Meaning of Liff (with John Lloyd, who later produced Blackadder), where he took little-used British place names and gave them definitions so that they could be used in conversation.  Kind of like a Robin Hood for the language:  Take a word from where no one cares much and give it to common usage.  Adams' purpose is closer aligned with this blog post than Burnside's broad historical take.  For example Skibbereen (in reality a city in West Cork, Ireland) should now mean: the noise made by a sunburned leg leaving a plastic chair.  The point of this further distraction is the meaning is not only familiar adn unnamed but modern.

To the point of all this, today I learned about the phrase Yak Shaving.  It describes situation you get yourself into when in order to do a given task you must first do another task, which itself cannot be done until you do a third task, and before long you are doing something that is completely unrelated to the task you actually intended to do but logically must preceed it.

The Wikipedia article has an excellent (allbeit New York-centric) example, as follows:

I want to wax the car today.

Oops, the hose is still broken from the winter. I'll need to buy a new one at Home Depot.

But Home Depot is on the other side of the Tappan Zee bridge and getting there without my EZPass is miserable because of the tolls.

But, wait! I could borrow my neighbor's EZPass...

Bob won't lend me his EZPass until I return the mooshi pillow my son borrowed, though.

And we haven't returned it because some of the stuffing fell out and we need to get some yak hair to restuff it.

And the next thing you know, you're at the zoo, shaving a yak, all so you can wax your car.


NB: This example actually refers to shaving a Yak, but that is only to illustrate the point.  Really it can be any kind of multi-level distraction.

Wednesday, May 17, 2006 11:17:50 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
The UI has had a bit of a make over.  It renders well in Firefox (watch the vids!)

While giving flickr a congratulatory aimless surf and tagging some of my own recent photos, I came across some exceedingly cool graffiti and also this bit of chalk graffiti from the streets of London.  I'm a big fan of stencil graffiti and there is just too much cool stencil and chalk work on flickr.  Go on, you have to check this out!

One thing I like most about flickr however is that the Yahoo! juice is just subtly in the background.  I'm not a big fan of Yahoo!  I don't hate them, I just never learned to love them.  To me now, flickr is 0%-suck.  If the Yahoo! banner was in your face all the time it would never be able to not suck at least a little.  MSN/Hotmail/Live - Are you listening?

On the topic of graffiti, I'm not a fan of tagging.  Nothing too deep, just that for the most part it's ugly.  It was interesting to see that Marc Ecko's tagging of Air Force One turned out to be a hoax.  Had to be really and I don't think anyone actually thought he did it, but the concept rings true.

Wednesday, May 17, 2006 9:06:29 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Friday, May 12, 2006

It's all in the GetProcessesByName method of System.Diagnostics.Process.  I have included a sample below.  This sample is the kind of code you may have in Sub Main() if you are staring an application with a Sub Main().  In the sample, "MyApplication" is the name you have given your project in Project Properties. 

NB: GetProcessesByName can throw InvalidOperationException when it cannot retrieve the process information.



Dim ThisIsTheOnlyRunningInstance As Boolean

'Try to get the list of running processes to determine if to continue in this thread
Try
    ThisIsTheOnlyRunningInstance = (Diagnostics.Process.GetProcessesByName("MyApplication").Length = 1)

Catch ex As InvalidOperationException
    'GetProcessByName can throw and InvalidOperationException when for any reason it cannot complete.
    MessageBox.Show("Could not determine if this is the only copy running."), _
                              "Starting my application", _
                              MessageBoxButtons.OK, MessageBoxIcon.Information)
End Try


If ThisIsTheOnlyRunningInstance Then
    'Enable XP Visual Styles
    Application.EnableVisualStyles()
    Application.DoEvents()
    'Start the app
    Application.Run(
New MainForm)

Else
    MessageBox.Show("There is already another copy running on this computer.", _
                    "Starting my application", _
                    MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Friday, May 12, 2006 12:24:06 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 

Even embracing its manifold faults, I'm still a fan of Microsoft Exchange server.  It has been a tempestuous relationship of the years but I'm still there. 

However I have recently had cause to look at MailEnable and I have to say I am very impressed. The web mail is better than I expected and I think it's a keeper.  There are still a couple of configuration items I need to get straight but initial impressions are good.
Friday, May 12, 2006 9:20:17 AM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, May 09, 2006

Something more we can all do:  Sender Policy Framework.

http://www.openspf.org/index.html

also

http://www.ietf.org/rfc/rfc4408.txt


The gist of it is the SPF record in the DNS identifies all the valid hosts that are allowed to send mail for that domain.  Mail should not be accepted for domains with an SPF record if the originating host is not in the SPF record.

Anything that reduces spam gets my vote!

You can check your domain for this and related details at DNS Report.

Tuesday, May 09, 2006 5:22:11 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  |