You know how difficult is to test a web site on the many (conflicting) versions of Internet Explorer browsers that were created. While most of us don't even bother to test for anything lower than IE 6.0, there are major differences between IE6, 7 and 8. I used to use something called MultipleIEs before that contained IE versions up to 6, but now I found something that looks even better: IE Collection, boasting IE versions up to and including Internet Explorer 8.0.

I have installed it and so far I had no major issues with it. It does seem to change some part of the default IE configuration, so take a look there after you finish installing it.

and has 0 comments
Today Internet Explorer 8 appeared to me in the Automatic Updates list. I have been using IE8 for months now and so I was glad that the official release finally came out. So I downloaded and installed IE8.

The installation process has several steps. First is the removal of any previous version of IE, then a reboot, then several small steps of the setup program: Downloading IE8, Downloading IE8 updates, Installing IE8, Installing updates, Finishing installation. Well, for me, at the Installing updates step it threw an error that said the installation cannot complete because the station is shutting down, then my computer restarted.

I did have Internet Explorer available, though, so I tried a few pages. After the pages loaded, I was invariably getting an error and IE closed. "Internet Explorer has encountered a problem and needs to close. We are sorry for the inconvenience.". Well, so was I!

I was trying the installation of IE the third time now and suddenly a Java update traybar icon appeared. I updated Java, then I was amazed to see that IE was no longer crashing! So, my solution for Microsoft IE errors: update Sun Java! :)

Well, the Java update probably completed some steps that the installer failed to. But still :)

And interesting link I found regarding any IE error that causes the browser to excuse itself and leave is on Sandi's Site

and has 0 comments

I haven't been writing for a while, but that is because I was working! Amazingly so, as I am not known for my willingness to work. But that also has its boons, you know, as I will not only gain material wealth for my wife's shoes, but also material for the blog! :) You will have to wait a bit for that, though.

Instead, I will talk about three little gems I found while browsing ShellCity. In case you don't know, ShellCity is a blog dedicated to the tools, not the result. Every day four free utilities are being presented in this retro looking site. Anyway, without further ado:

Fences. This allows you to organize your many desktop icons by grouping them into labeled transparent folder like structures. Not only does it make your desktop look better and feel better, but when you change your desktop resolution, it also remembers the location of these groups so that when you revert, you get them in the same position! Great thing to have and my favourite in this post.

MSVDM, or the Microsoft Virtual Desktop Manager. This is pretty old stuff, but I've only recently discovered it. It is NOT an exe file and it will not be installed in the Start menu! Instead it is a taskbar toolbar. It shows four buttons which allow you to switch between four different desktops. The desktop icons remain on all of the desktops, but you can define a different background for each and the opened windows are different from desktop to desktop. So, what you use it for is to open a group of utilities based on context. As an example, open a Visual Studio and some browser windows regarding a certain project, then open another Visual Studio and some other browser windows for another project that you work on simultaneously.

WizMouse. This one is not something you immediately go Wow! about. It sits in the traybar and does only one thing: it scrolls windows when you move the scrollwheel. But it doesn't scroll the active window, but the window directly under the mouse pointer! A lot of annoyance is saved by this.

Hope it helps you all. Till next time!

and has 0 comments
Update: There are some major issues with this addon, because on some sites (like YouTube, but not only) Internet Explorer simply closes with an error. It has become more and more annoying until I've decided to uninstall it.

What a nice little gem this is. I've just installed it, so I can't really say it is all good, but from what I've seen so far it is a wonderful addition to Internet Explorer (7 or 8!).

A few of the features that I've already observed:
  • It automatically recovers the pages and tabs opened when an computer or INTERNET explorer crash occurred.
  • Small download manager, FireFox style
  • Ad blocker - although it doesn't protect you from the javascript errors that occur when blocking ads
  • Mouse gestures
  • Background preloading of links when computer is idle enough and DNS prefetching
  • User scripts that can do all kinds of stuff, from moving YouTube windows where there is space and then showing them bigger to showing frames next to Google search results so you can open and preview the sites directly.
  • Tab history manager
.

But it does so much more. I am quite amazed by it. So get it, it's free: IE7Pro

I went to this presentation of a new Microsoft concept called Windows Azure. Well, it is not so much as a new concept, more like them entering the distributed computing competition. Like Google, IBM and - most notably - Amazon before it, Microsoft is using large computer centers to provide storage and computing as services. So, instead of having to worry about buying a zillion computers for your web farm, manage the failed components, the backups, etc. you just rent the storage and computing and create an application using the Windows Azure SDK.

As explained to me, it makes sense to use a large quantity of computers, especially structured for this cloud task, having centralized cooling, automated update, backup and recovery management, etc, rather than buying your own components. More than that. since the computers run the tasks of all customers, there is a more efficient use of CPU time and storage/memory use.

You may pay some extra money for the service, but it will closely follow the curve of your needs, rather than the ragged staircase that is usually a self managed system. You see, you would have to buy all the hardware resources for the maximum amount of use you expect from your application. Instead, with Azure, you just rent what you need and, more importantly, you can unrent when the usage goes down a bit. What you need to understand is that Azure is not a hosting service, nor a web farm proxy. It is what they call cloud computing, the separation of software from hardware.

Ok, ok, what does one install and how does one code against Azure? There are some SDKs. Included is a mock host for one machine and all the tools needed to build an application that can use the Azure model.

What is the Azure model? You have your resources split into storage and computing workers. You cannot access the storage directly and you have no visual interface for the computing workers. All the interaction between them or with you is done via REST requests, http in other words. You don't connect to SQL Servers, you use SQL Services, and so on and so on.



Moving a normal application to Azure may prove difficult, but I guess they will work something out. As with any new technology, people will find novell problems and the solutions for them.

I am myself unsure of what is the minimum size of an application where it becomes more effective to use Azure rather than your own servers, but I have to say that I like at least the model of software development. One can think of the SDK model (again, using only REST requests to communicate with the Azure host) as applicable to any service that would implement the Azure protocols. I can imagine building an application that would take a number of computers in one's home, office, datacenter, etc and transforming them into an Azure host clone. It wouldn't be the same, but assuming that many of your applications are working on Azure or something similar, maybe even a bit of the operating system, why not, then one can finally use all those computers gathering dust while sitting with 5% CPU usage or not even turned on to do real work. I certainly look forward to that! Or, that would be really cool, a peer to peer cloud computing network, free to use by anyone entering the cloud.

I finally bought myself a laptop and I had to figure out how to transfer files from my computer to the new device. I'll spare you the details, the thing is that I finally decided to use a 4Gb flash stick that my wife had from work.

I wanted to copy about four episodes from a tv series (that's less than 1.5Gb) and it said it needed to do it in 30 minutes. I thought, well, maybe the stick is slow. I was in no hurry, so I let it copy. I noticed that it worked in great bursts of data. First copy fast, then wait, then copy again, then wait again. When I moved it to the laptop, the file system was corrupt. What the.. ? So I formatted the stick. Apparently, I had only the FAT32 option, not NTFS. Then started copying again.

I Googled for it and found out that Windows XP does not enable write caching for removable drives. Me being me, I immediately went to the hardware properties of the stick and changed the way it worked from 'Optimize for quick removal' to 'Optimize for performance' (which specified that it enabled write caching). Wow! I am so smart. But I continued Googling anyway and I've learned that the setting doesn't really change anything, other than giving you the option of formatting with NTFS, which then would allow write caching.

But there was also another option, even with 'Optimize for quick removal' on: use the Windows XP command line utility Convert which is used to convert a FAT drive to an NTFS drive. I stopped the copying, only to notice that the file system was corrupt again. I deleted the files, ran chkdsk K: and then convert K: /fs:ntfs /v /NoSecurity. While the copying went a lot smoother, it still took 15 minutes to copy the damn thing. At least I could read it at the other end, anyway.

I don't exclude the possibility that drivers or stick hardware were at fault (since it is the first time this is happening to me), but be aware that you can always have this option of using NTFS instead of FAT32.

Disadvantages of using NTFS and write caching:
  1. You need to use the software option of removing the USB stick and wait until it says it is safe to remove it, otherwise you might have write errors
  2. NTFS has this ugly write last access time option that you can only remove it through a registry hack.
  3. NTFS sticks cannot be used for some devices like mp3 players and such, since they only know FAT32 access. Windows 98 is also oblivious to NTFS, although there are third party NTFS drivers for it


Almost all information here can be found in more detail at this link: Tips for USB pen drives.

and has 1 comment
The problem is that Windows XP only accepts serial-ATA drivers from the floppy diskette. You don't have one. What are you to do?

Google gave me a few ideas, but I had to piece them together. So, here is what you need:
  1. download the SATA drivers for your laptop
  2. download Virtual Floppy Drive by Ken Kato - at this time it is at version 2.1 - if your SATA drivers are in the form of a floppy disk image generator (a single exe that asks for a disk in the floppy drive)
  3. download nLite - at this time 1.4.9.1
  4. get a windows XP installation disk
  5. have a writable CD and a CD writer ready
.

And here is what you do on another computer (one that is working :)) :
  1. (if you already have the SATA driver files, skip this)Go to My Computer, Properties, Hardware, Device Manager and disable your floppy drive, if you have any
  2. (if you already have the SATA driver files, skip this)Install and run Virtual Floppy Drive and create an empty image on A:
  3. (if you already have the SATA driver files, skip this)Run the stupid SATA drivers you downloaded - that only want a diskette to format with their files, they can't simply unzip them somewhere - and you will get the drivers in file form on the virtual diskette
  4. Start nLite and select the Drivers and the Bootable ISO options then Insert multiple drivers and give it the drive A: as a source
  5. Create the ISO image, then write it on a blank CD - writing CDs from images is different from just dragging and dropping files in the CD writer window, BTW


That should do it! Use the newly created CD as the XP installation disk without pressing F6 for loading SCSI drivers.

I've stumbled upon a little VS2008 addon that I think could prove very useful. It's called Clone Detective. Here is how you use it:
  • Make sure VS2008 is closed
  • Download and install the setup file
  • Additionally the source is freely available!
  • Open VS2008 and load a solution up
  • Go to View -> Other Windows -> Clone Explorer
  • Click the Run Clone Detective button


Now you should be able to see the percentage of cloned code in each file and also see the cloned code as vertical lines on the right vertical border next to the code.

and has 2 comments
No, it's not one of the The World Sucks rants, it's actually very serious. I was terribly annoyed that after installing Windows XP SP3 my Internet Explorer 7 browser would (sometimes) freeze when closing tabs. I could replicate the bug easily enough by folowwing these steps:
  1. Open Internet Explorer
  2. Go to https://siderite.dev
  3. Scrollwheel click on Sign in, thus opening it in another tab
  4. Wait until the title of the second tab changes to Redirecting (because I have the cookie from a previous login)
  5. Press F5 (Refresh) in the first tab
  6. Click on the second tab and close it while the first tab is refreshing


At this time Internet Explorer would freeze with no error message. Waiting for a few seconds I could access the context menu on the taskbar button and choose Close or click on the X Close button, but everything inside the Internet Explorer window would be inactive. If I would switch tasks back and forth, the IE window would appear completely blank inside.

Now, whenever you look for the solution for this you get three answers:
  • Check the Warn me when closing multiple tabs option in the Internet Explorer tabs settings.
  • Run IExplore.exe with the -extoff command line parameter which will disable all add-ons and this will tell you if the addons are causing this
  • Check for spyware/malware


I did all this and nothing changed! I've reinstalled all addons. I've reinstalled IE7. I've switched to IE8 beta! Nothing worked. Then I proceeded in uninstalling all addons, see what happends. Finally, it wouldn't cause any issues. It was just after I've uninstalled Google Toolbar! I suspect the cause for the bug is coming from the popup blocker which interprets tabs as popups and tries to close them. Then there is the setting in GT that is trying to preserve any software from modifying its settings. Maybe that is why -extoff doesn't affect it!

Just to be sure I installed it again and tested the bug and I could replicate it. Something in Windows XP Service Pack 3 messes Google Toolbar up!

Bottom line: uninstall Google Toolbar until I can find out which part of it actually causes the bug.

and has 0 comments
It started with web sites. They would put a small picture in the header of the site that on mouse over would fill the entire page with rubbish. We fixed it, usually, by using some utilities or by changing the ip of the offending ad to some non-sense ip.

Now they used the same ploy for Windows Live Messenger (formerly known as MSN). One could say that Microsoft doesn't need more money, but apparently they do. On YOUR expense! So, how can one get rid of the annoying flash ad at the bottom of MSN? Easy! Follow these steps (tested on version 8.5):
  1. Open folder Program Files\Windows Live\Messenger
  2. Copy file msgsres.dll to msgsres.dll.bak
  3. Find a text or hex editor that does not break a binary file on save (That means NO Notepad or Wordpad). Myself I used the text editor from FAR Manager, but there are tons of good freeware editors online. Just Google it.
  4. Open the msgsres.dll file with the text editor, look for
    <Element Id=Atom(AdBrowserCont) Layout=VerticalFlowLayout(0,0,3,0) Visible=false Padding=Rect(8,2,0,2)>
    and replace one letter from AdBrowserCont. I changed the A to an X, but it doesn't matter. What is important is not to change the length of the file; just replace, do not insert or delete anything.


That is all. The ad container will still appear and show the Windows Live Messenger window, but no ad will be loaded.

Of course, this is the do-it-yourself version. There is an utility that is largely recommended on the web to fix MSN, Windows Live Messenger and Yahoo Messenger ad issues, and that is A-patch, but I haven't tested it yet.

and has 2 comments

A while ago there was this site called Pandora (similar to lastFM, but better) that tried to match songs based on their internal structure not user preference. By choosing which songs you liked or you didn't like it would guess your preferences and try to play only songs you would listen to.

Apparently Winamp has a little known (or blogged) addin that does this. It is called the Nullsoft Playlist Generator and comes bundled with WinAmp. This is how you use it:
  1. Open Winamp and go to Media Library
  2. Create a playlist (or more) and add all your songs there
  3. Right click on the playlist and select Send To: Add to Local Media
  4. Go to Options, Preferences, Plug-ins, Media Library and click on Nullsoft Playlist Generator
  5. Click on Configure selected plug-in, select your options and click Scan. I recommend the background scanning option.
  6. After the scan is complete (or during it) you can right click on any song and select "Play similar song to..." and you will listen to songs that this software thinks are similar



That's it. The analysis is pretty superficial, but still better than nothing. It is perfect when you have gigs of songs and you don't want to browse forever, selecting which one you want or you don't want.

and has 0 comments

Finally, another book finished. It is not that I am illiterate, really, but lately I have been listening to podcasts every single free minute. I even fall asleep like that sometimes.

Anyway, this book is rather well written and gives some interesting insights into the Microsoft "puzzle" hiring interviews, revealing as well the highly competitive culture behind the system, as well as the most obvious flaws. One of the most famous such puzzles is in the very title of the book. The interviewer would ask one how would they move mount Fuji. The expected answer is a detailed analysis of the process and the more situations and data the candidate thinks of, the better. Of course, there are really stupid puzzles as well, used only to assess how the prospective employee reacts under stress. Others are deceptively simple, but hard to guess.

I will give you one. Please think about it as long as it takes to be CERTAIN the response is right. In fact, I won't even give you the answer. Here it goes:

You have four cards on the table. Each card has a digit on a side and a capital letter on the other. As placed on the table you see the cards like this:

4 G E 3



The request of the puzzle is this: what cards must be turned in order to verify that the four cards on the table verify the rule "Every card with a vowel has an even number on the other side". You need to give the exact cards not the number of cards and (of course) turn only the ones that you need, so as little card turning as possible.

I was reading this post where Jeff Atwood complained about too many shiny tools that only waste our time and of which there are so many that the whole shining thing becomes old.

Of course, I went to all the links for tools in the post that I could find, and then some. I will probably finish reading it after I try them all :)

Here are my refinements on the lists that I've accessed, specific with .NET programming in mind and free tools:
  • Nregex.com - nice site that tests your regular expressions online and let's you explore the results. Unfortunately it has no profiling or at least a display of how long it took to match your text
  • PowerShell - Great tool once you get to know it. It comes complete with blog, SDK and Community Extensions
  • PowerTab - adds Tab expansion in PowerShell
  • Lutz Roeder's Reflector - the .NET decompiler and its many add-ons
  • Highlight - a tool to format and colorize source code for any flavour of operating system and output file format.


There are a lot more, but I am lazy and I don't find the use for many of them, but you might. Here is Scott Hanselman's list of developer tools from which I am quite amazed he excluded ReSharper, my favourite Visual Studio addon.

I've stumbled upon a link toward SQL 2000 best practices analyzer. Aparently, it is a program that scans my SQL server and tells me what I did wrong. It worked, somewhat, because at some tests it failed with a software exception, but then I searched the Microsoft site for other best practices analyzers and I found a whole bunch of them!

Here are a few links that seemed interesting:

The last link is for a framework that loads all analyzers so you can run them all. It's a pretty basic tool, there is still work to be done on it, but you can also make your own analyzers and the source code for the program and the included ASP.Net plugin is also available.

Acquires, purchases, whatever... they paid for it and they will have it. Sun will have MySql. Does that mean that they want to go towards easily usable SQL servers or that they want to compete with Oracle? PostgreSQL would have been a more appropriate choice in that case. Will MySql for Java be like SQL server is for .NET ? Anyway, 1 billion dollars is selling short, I think. Youtube was two. Is a media distribution software more important than a database server?

Here is the official announcement.

Small quote: MySQL's open source database is the "M" in LAMP - the software platform comprised of Linux, Apache, MySQL and PHP/Perl often viewed as the foundation of the Internet. Sun is committed to enhancing and optimizing the LAMP stack on GNU/Linux and Microsoft Windows along with OpenSolaris and MAC OS X. The database from MySQL, OpenSolaris and GlassFish, together with Sun's Java platform and NetBeans communities, will create a powerful Web application platform across a wide range of customers shifting their applications to the Web.