Digiwar - the Yeep-blog

March 7th, 2007

Vista software incompatibility

I’ve been running Vista ever since it came out on MSDN and I’m pretty happy with it. There were two things that bothered me more then anything, The first one is Rundll32 crashes when I have a folder contianing videos in thumbnail mode and apparent random crashes of Explorer.exe.

Unable to find a good answer in the event log and getting around two crashes an hour, I decided to take matters into my own hands.

I’m a software developer, but thruth be told, I haven’t touched anything else then C# in a few years now and I’ve never debugged programs I didn’t have the source code of, but having learned some tricks at last november’s TechEd, I installed the Debugging Tools for Windows and set WinDBG to be the JIT Debugger. Then I waited for a crash. And I didn’t have to wait long.

The first crash was explorer.exe. I didn’t even to debug it. I noticed it crashed inside CoFreeUnusedLibrariesEx call, which means it’s a refcounting issue (at least that’s what I think that’s usually the problem in a case like this), and I saw that the faulting module was heshell.dll, which is part of the free hex editor I installed a few weeks before. I just uninstalled the program and I haven’t see the crash since.

Then I waited for the thumbnail crash. And when it happened, it happened a lot. WinDBG must’ve popped up around 20 times for just one folder. In all cases the faulting module was iac25_32.ax, which is an Intel Indeo Audio codec. I figured it must be part of the K-Lite codec pack I have installed. So I removed it, then reinstalled it, without installing any Indeo codec. Unfortunatly it was still there. Then I tried removing it by hand, but it was protected. So I had to take ownership of the file, edit the security settings to allow me to delete it and then I was, finally, able to delete it.
So far I haven’t seen a crash.

I love Vista and I love WinDBG :-)

[Last played: Devil Driver - Revelation Machine]

February 2nd, 2007

It’s been a while

Just a notice that the blog isn’t dead. It’s just that I’m totally addicted to World of Warcraft. I’ve been playing it since the european launch and I’m playing it really heavy the last couple of months. And now the expansion has been released, so I’m more engrossed in the game then ever.

On another note, there are some nice changes considering my work at my work. Usually I did webservices in ASP.NET, but now I’m also working on some web applications in ASP.NET and even some Windows Mobile stuff. So I might just pickup on stuff and feel the need to post it here. I might cover some architectual things we’ve been discussing at work. I’ll think about it, for now, I just need to finish just one more quest….

[Last played: Devil Driver - Revelation Machine]

November 18th, 2006

Windows Vista

So on friday Windows Vista was available for download at MSDN. Actually, it was available thursday night, so I got lucky and downloaded it before the big rush I guess.

After I got the download in, I burned it to DVD and started installing it on my laptop. Now, I use this laptop for work. I develop webapplications and webservices for both .NET 1.1 and .NET 2.0 on it. So I need both Visual Studio 2003 and Visual Studio 2005 working. Can you see where this is going?

The first hurdle I encountered was the vast difference in the interface. I wanted to install IIS, but it took me a while before I found it. In hindsight it’s pretty logical, but I was thinking too much in Windows XP. Windows Vista comes with IIS7, which is different then IIS6 or IIS5 (both of which look remarkebly the same from the management interface point of view). I spend some time looking at the options, then added a webapplication and worked to get it running correctly. As with IIS6 I had some trouble getting all the security setup correctly. Then I spend a lot of time getting it to run on ASP.NET 1.1. Apparently, by default, it runs on ASP.NET 2.0 and even an ASP.NET 1.1 application will, in fact, be run on ASP.NET 2.0. There is some sort of backwards-compatibilty in there to make it work. But I really wanted it to work in ASP.NET 1.1. So I had a lot of tweaking to do, but after a few hours of Googling, trying and cursing, I was able to make it work.

What you have to do is install .NET 1.1, then add the ASP.NET .1. ISAPI filter DLL to the “ISAPI and CGI restrictions” part of the configuration and set it to ‘allow’. Then select the ASP.NET 1.1 Application pool and your done. In my case I also needed to comment out some stuff in the globalk web.config and the local web.config. I’ll see how I can make it run with both ASP.NET 1.1 and ASP.NET 2.0 later, when I fix my remaining problems.

So, the website was working. Not to get Visual Studio 2003 up and running.
The thing is, it’s not supported. That’s right. Microsoft puts great pride in their ‘backwards compatibilty’ layers, some of which stop Windows from utilizing it’s full potential, but they won’t make VS2003 work on their new OS. By the way, do wanna now what old development enviroment did they spend time on? Visual Basic 6.
That’s no joke. Apparently the reason is that migrating from .NET 1.1 to .NET 2.0 is easier then VB6 to something else. And in that they are correct, however that doesn’t help me a s developer at all! If operations won’t install .NET 2.0 on the production machines, then I can’t update the codebase. So I’ll need to run VS2003.
To make things even more interesting, even VS2005 isn’t fully supported(!!!!!!!!!!!!!!!) Even after you install servicepack 1 (which is currently in beta) there will still be ‘issues’.
So let me get this straight….even though Vista was in development for over 5 years, they can’t make an application they released last year compatible? And here I thought Steve Balmer thought developers where so important.

Currently I can’t get VS2003 to open a web project. It’s complains that the source directory does not match the IIS share. And from what I read on the internet, this isn’t even supposed to be the problem. The real problem is related to debugging.

It’s really simple. If I can’t get VS2003 to work with Vista, I can’t upgrade and I’ll go back to Windows 2003 Server. Then only after we upgraded all .NET 1.1 applications to .NET 2.0 and Microsoft got their act together to get VS2005 working perfectly on Vista, can I upgrade to Vista. And this goes for my home machine too. Sure I play games on it, but I also develop some stuff as a hobby. If I can’t run VS2005, I’m not upgrading anytime soon. Shiny aero glass windows or not.

[Last played: Testament - The Haunting]

October 16th, 2006

Managed C++

I needed SNMP support for an ASP.NET application that I maintain. There are several options for getting SNMP in .NET. One apparently is that SNMP is supported by means of WMI. I couldn’t find it.

Perhaps that’s because I only needed to support sending SNMP traps and not receiving SNMP requests and what have you not.
For sending SNMP traps there are several libraries available, but the Win32 API itself also supports it. So I decided to use that.

There are two ways for using the ‘old’ Win32 API from .NET.
One is P/Invoke. You sort of import the Win32 API into your C# application and then call it from there as a static function.
The other way is create a Managed C++ library. From Managed C++ you can combine both managed and unmanaged code. I’ve done the first, so I decided to try the second.

It has been close to 2 years since I had last worked with C++. Since then I’ve done only C# and boy have I become sopiled.
I thought the C++ code looked ugly and I really missed the all the stuff the Visual Studio editor does for me in C#. It’s the same editor for C++, so why doesn’t it do that stuff for me too?
The C++ intellisense isn’t even a tenth as good as the intellisense for C# and there are a lot of little things. I understand that some things are there because it’s set in stone (the ANSI C++ standard), but Microsoft has already made some unofficial additions to their C++ compiler, why not add a few more to make life easier for developers.

All in all it was an interesting exercise. Also because I needed both a .NET 1.1 and a .NET 2.0 class library, so I also discovered some of the changes between Managed C++ 1.x and Managed C++ 2.0. Let me tell you 2.0 is an enormous improvement!

I really hope I won’t have to do much C++ stuff in the future. I loved programming in C++ and it has taught me a lot of things about OOP, but C# is way more fun and a lot easier to be productive in. The code looks cleaner. I like it way better then C++.



[Last played: Rage Against The Machine - Wake up]

August 21st, 2006

Firefox memory

A little while back I wrote how I was getting annoyed by Firefox more and more. So last weekend I talked some computer stuff with some friends and I mentioned the “Firefox eats my RAM”-problem. I one of my friends told me the old story of how this was a feature.I explained it was a bug, because with no tabs open, so no need to conserve history, it still ate a lot of memory.

Today I was viewing a lot of photos and Firefox and ofcourse this used up a lot of RAM. So I closed all the tabs, but still the RAM is lost. And now I made a screenshot of it:

Now some people may argue that it’s virtual memory or something. But I checked with Process Explorer. And it’s around 200MB of private bytes and a working set of 210MB. No tabs open or anything. How is this a feature?

[Last played: Rage Against The Machine - Settle for nothing]

August 14th, 2006

Misconfigured webservers and semi-valid icons

Last night I implemented favicon icons in Feed Vortex. I’d seen this in FeedDemon and I really liked it. Instead of the icons I designed for Feed Vortex (which are pretty ugly), you can see the icons the site a feed belongs to uses. This adds some color and some familiarity to the feed list in Feed Vortex.
But downloading the icons is harder then you might expect. I expected to just get the favicon.ico at the root of the site and be done with it. Boy was I wrong.

One thing that I ran into was that some sites didn’t have a favicon.ico at their root, but at some other location. They tell the browser this by adding a

tag to the page. Fair enough. Maybe I’ll figure out a way around this, but this seems like a correct way to have the favicon at another position.

But then there are sites like www.apple.com that are simply misconfigured. Sure, apple.com has a favicon.ico at the right place. But they serve it as “text/plain”. In other words, I ask for the icon file and apple.com says: “Sure, here is the file. By the way, it’s just a text file.” But it isn’t. It’s a valid icon file…..well, semi-valid, but I’ll get to that later.

There are also sites like the mono-project.com website. They don’t have a favicon.ico, but instead of returning a “404 -page not found” error. They send a “304 page moved” HTTP code and then serve a normal webpage with the “200 Everything is A-okay” HTTP code. So Feed Vortex never knows there is no icon, it just doesn’t understand the data. It expects an image file, but gets an HTML file. I must admit that my website is also guilty of this and I need to fix this ASAP. But this is apparently the default configuration my webhost uses.

And then there are the semi-valid icon files. Sometimes a website serves an icon file and Firefox sees and understands it. Internet Explorer sees and understands it. Hell, even Windows explorer can read it, but the .NET Bitmap class can’t and tells me it’s invalid data. Livejournal.com has such an icon.

All in all this wasn’t the simple ordeal I thought it would be, but most of my feeds now have nice icons and I’ll figure out a way to deal with the others in time.

[Now playing: Shakira - Suerte]

August 12th, 2006

What company? I bought this game for me!

You’ve probably seen it before sometimes. You install an application and it’s Installshield installer requires(!!) you to fill in a company name. I just had it again with the demo of Dark Messiah of Might and Magic. It’s a game for crying out loud! Why the hell do I need to fill in a company name?

It’s a case of laziness. From what I know of the games industry, and this can be wildly inaccurate, the developer sends to files to the production company and they put it in an installer. They just take the default wizard and slap on a custom background or two and they’re done.

So effectively the game developer may have created the perfect game, but because of the lazy production company (the EAs of this world) the Out Of The Box experience you get starts off pretty bad. I’m sure many people have called the support desk to ask why the “next” button is grayed out. And then the support desk needs to explain that you need to fill in the “Company name” box, even though you are just a normal user who bought the game for fun and not for corperate use.

Update
To make things even worse. After filling in a dot (”.”) as a company name and pressing”next”. I’m at the “Select install destination” page. I always install games and applications on my D: drive, so I click “browse” and select a directory on the D: drive. I click okay and the page tells me that the game requires “0k” of space on the destination drive. Weird….so I click “Next”. And I’m presented with the same page, only this time with the space requirement filled in.

I hate lazy programmers.
[Now playing: Spineshank - Slavery]

August 10th, 2006

Why is Apple so loved?

I don’t want to bash Apple, but I don’t get the hype. They’re just as bad with software as Microsoft is. In fact, I’d say Apple is worse on marketing, because they continue to bash on Microsoft. Just look at this post by Robert McLaws and the accompanying pictures. It says it all. Apple can only get attention by bashing the big boy.

At this conference they revealed 10 awesome new features for their next version of Os X. Paul Thurrott has a nice overview of those ‘features’.

And while Apple bashes Microsoft and Windows Vista, Quicktime 7 is still crashing on my computer, just like it has for the last few months. Half the time when I open a HD trailer I get the all-too familiar “select your debugger” screen. And yesterday I tried installing Quicktime 7 on my PC at work, only to have it fail at the final step in the installer. Some vague error about a function in a DLL. I did have a Quicktime Player icon on my desktop, but it couldn’t be started. In fact, the uninstaller also couldn’t be started. It also crashed. After a reboot the Quicktime quickstarter did start (why do they even install that shit? I don’t want it!), but selecting any option from it resulted in a crash.

I did some Googling and read that my best bet was to install an older version of Quicktime, uninstall that, then reinstall Quicktime 7. That fixed it for a lot of people. But not for me. I couldn’t even install the older version, it complained Quicktime was already installed, but I couldn’t uninstall it. So to regedit I went and spend a good 10 minutes deleting all sorts of Quicktime references. After that I could install Quicktime 6, but it also crashes……figures.

In the end I just downloaded and installed the Quicktime Alternative. It works perfectly.

[Last played: Tracy Bonham - Navy bean]

August 5th, 2006

Firefox lies

Allright, so I talked about my growing problems with FireFox recently. So now I was at the biggest webpage on the internet and found a hidden Firefox advertisement in there. The webpage says you should use Firefox, because: “It offers improved speed, security, and simplicity. It’s tabs feature alone makes it worth switching. It’s free.”

Okay, let me give my opinion about that:

  1. Internet Explorer starts about 3 times as fast as Firefox and in a recent test where someone tested the Javascript speeds of Firefox, Opera and Internet Explorer, they found that Firefox was the slowest! Opera was the fastest by far, even twice as fast as Internet Explorer (number two) on most tests.
  2. It’s true that Internet Explorer has had more security leaks then Firefox, but Firefox has them as well. And Firefox isn’t used nearly as long and nearly as much as Internet Explorer. It’s the same argument you hear from Apple fans: “Mac is more secure”. No it isn’t. It’s just that the bad guys aren’t interested in investing time on a system that about 1% of the computer users use, when they can attack a system that over 90% of the users use. Internet Explorer has way more marketshare and is therefore a more economical target for crackers. As Firefox gains more marketshare this will change and then we’ll see if it’s secure. It is absolutely true that Firefox responds more quickly to security problems then Microsoft. This is because Internet Explorer is so entangled in Windows and all kinds of applications and it’s available in a gazillion languages. So testing and making sure a security fix doesn’t break someone’s program are very difficult. Because if the fix breaks someone’s program then that’s probably because “Microsoft really wanted to break the program” (just read some of Raymond Chen’s articles and you’ll know that Microsoft takes compatibility very seriously). Ofcourse as an enduser I don’t really care. My browser is vulnerable, so it needs to be fixed, fast. Just keep the economics in mind. A very important thing that most people ignore.
  3. Why is Firefox more simple then Internet Explorer? I think their equally simple. Ofcourse, I’m, no average Joe when it comes to computers, so maybe I’m wrong, but I don’t see any fundamental differences in the two browsers from a usage perspective.
  4. Tabs? Internet Explorer 7 has tabs. And Internet Explorer 6 with the MSN toolbar has tabs. Maxthon has tabs. Avant browser has tabs. Opera has tabs. In fact, I think Opera was the first browser ever to have tabs.
  5. Internet Explorer is free. So are Maxthon, Avant browser and Opera.

I just see a bunch of bullshit arguments.

Extreme Tech has done a browser comparison between Firefox 2.0 beta 1, Internet Explorer 7 beta 3 and Opera 9.0. They have a nice table showing the differences between the browsers. Have a look.

Update:
WildEnte informed that Opera is also free. I hadn’t checked out Opera for a few years, so I was still under the impression it wasn’t.

[Now playing: Rob Zombie - Demon Speeding]

July 19th, 2006

InternetGetCookie/InternetSetCookie (WinInet) changed with Internet Explorer 7

So last week I was implementing the Google Authentication for Installed Applications in Feed Vortex and after I solved the cross-thread GUI access problems I ran into a new batch of problems. You see, Google authenticates using cookies, but when you use the Google Authentication API for desktop applications you only get the value that needs to be stored in the cookie and not the cookie itself. Since I P/Invoke the WinInet functions, I needed to store the cookie using the InternetSetCookie API and then the WinInet APIs themselves will figure out what cookie to get.

But it wasn’t so simple. Using Fire Fox I noticed that Google stores its cookies with the domain “.google.com” and the path “/”. But when I try to do that I get error 12006 (ERROR_INTERNET_UNRECOGNIZED_SCHEME). Allright, so I add “http://” to the front, but then I confronted with error 123 (ERROR_INVALID_NAME). This confused me. But then I remembered I was running IE7 Beta 3 on my desktop, so I put the code on my laptop which still uses goold old IE6 and it works.

One of the changes for IE7 is their more secure URL cracking methods. But apparently IE7 also updates the WinInet.dll, which other applications use. So it’s new security fixes will have effect on other applications, not just applications that use an embedded IE, but all applications that use WinInet. So I spend half a day figuring out what to do. And in the end I found out that using “http://www.google.com” as the cookie domain works as well.

[Now playing: The Project Hate MCMXCIX - With Desperate Hands So Numb]

July 12th, 2006

Reboot-craze

What is it with rebooting these days? I was so happy with Windows 2000 and then with Windows XP where Microsoft removed tens, maybe even hundreds of reasons Windows needed to reboot. Only driver updates or service pack installs should require a reboot.

Yet, when I wanted update Acrobat Reader, I had to reboot a total of 4 times(!!!!!) It’s just a program to read and render files! Why would it need a reboot?

Then I wanted to uninstalled a game. After uninstalling, it also wanted to reboot? Why? It’s a fucking game!!

Are developers getting lazy again? Just making you reboot after everything to make sure it works? Or do they install some really nasty piece of malware, under the guise of “protecting their intellectual property”, like Sony did.

Whatever is the case, it just sucks!

[Last played: Nightwish - Beauty Of The Beast]

July 12th, 2006

Treeview boldness

This is something I’ve had on my “to-write”-list for some time now.

When I started working on Feed Vortex I wanted to have a treeview with the feeds you we’re subscribed to and when you’d have unread articles the feed would have its name in a bold font and the number of unread articles would be in paranthesis behind the name of the feed.

It was pretty simple: just get the font object from the treenode, make it bold and put it back. Easy as that.

Until I looked at the treeview. The longest feed label seemed truncated. I first thought this had to do with the window I had put the treeview on, but this wasn’t the case. It turns out that the treeview determines how much space it should reserve for its labels only when you create it, or add a new treenode to it. Basing it on the font it has at that time.

So the solution was actually pretty simple. Create the treeview with a bold font by default and then add a treenode with a regular font. The other way around doesn’t work. Also, just to be sure, I added some additional spaces to the end of the label, just to make absolutely sure I have enough space left to display the label when I set the font to bold.

[Last played: Nightwish - Beauty Of The Beast]

May 13th, 2006

“I’m a mac and I’m a PC”

You’ve probably seen the new Apple advertisements. If not, take a look here. I think they’re pretty funny.
I think they are typical advertisements. I mean, they are from a company that tries to sell it’s own product, so ofcourse their product is the hip new cool youngster.
A few years ago Apple flamed the Intel CPU in their ads. Now their “cool new” product is powered by that same CPU. So maybe in a few years they’ll go from flaming Windows to flaming compnaies like Dell and HP when they stop with Mac OS and become just a hardware platform?

Anyways, have a look at the ads and then read this comic. You’ll love it :-)

[Now playing: Killswitch Engage - Breathe Life]

May 13th, 2006

FeedME / Feed Vortex homepage

I’ve recently created a whole new homepage for my Feed Reader. The idea is that I’ll put general announcements concerning Feed Vortex on there. Ofcourse, the technical articles will still be posted here. If you are interested have a look at: http://www.feedvortex.com

[Now playing: Killswitch Engage - When Darkness Falls]

April 27th, 2006

Small update on FeedME

The plug-in redesign is as good as done. It’s not useful right now, a lot of stuff is still hardcoded, but the basics are there. If I ever decide to make this plug-in thing work I should be able to do so without too much effort.

I also had to deal with some bugs in the Google Reader. Hey, it’s beta and the API is not officially release, so this was to be expected. Wasn’t fun though.
Google Reader seemed to give me lot’s of duplicate articles when I requested the articles for a particular feed. I don’t know what caused it, but, for instance, the Channel9 feed gave me over 2500 articles. After some examination I noticed that a lot of then were duplicate. I’ve seen some articles reappear 44 times. So I filled a bug report for this in the Google Reader group and implemented a little check when downloading feeds. FeedME now checks if an article with that feed ID has already been downloaded and if it is, it won’t be added to the article list.
Ofcourse I still see duplicates, but far less. The unread article count went from 2500+ to around 150. And the duplicates I see now can simply be marked as read so they won’t reappear. If you mark articles with the same feed ID as read, you’ve effectively marked all of them as read. And sometimes that’s not what you want and it will make wonder where your unread articles went to. I speak from experience…

So what’s still to come?
First the new website. I’m working on this, but it takes some time.
An installer. Yes, I want you to be able to simply double click something and have FeedME installed. Right now it’s just a zip file which you need to extract and copy somewhere manually.
And finally support for labels. FeedME already uses labels and shows them by pretending they’re folders. But you cannot add, remove or edit labels just yet. This needs to be possible as well.
After that, it’s beta 1 baby!



[Last played: Devil Driver - The fury of our maker's hand]