Tuesday, June 20, 2006

To Switch or not to Switch, that is the Question

Last week I read Tim Bray's post about potentially switching to Ubuntu. That night I stopped by a computer store on the way home (actually as a way to avoid sitting in traffic...) and swapped out the hard-drive on my Dell D610. I downloaded the latest Ubuntu install ISO and gave it a whirl. I must say that the Linux installers have come a _long_ way from what I used back in '96 or even just a year to two ago. That really got my expectations up. The my first install hung. It just sat they trying to install gnome_panel for a hour or two. I tried again. It worked!

Mostly... I still can't get the wireless to work. The driver finds the device just fine, but it defaults to not-activated, and no amount of fn-key twiddling, rebooting, or bios prodding could get it to activate. I was impressed that I could just slap an pcmcia card in and in minutes had wireless up and running. That get me smiling again.

Then I found that suspend didn't quite work (my trackpad didn't work on resume).

I've swapped back my Windows drive, since it has my email, etc on it.

It looks like I may need to change the minipci wireless card (or live with a pcmcia card) to get wireless running reliably under Linux thanks to Broadcom's reluctance to document their chipsets. How compatible are the various mini-pci cards? Is it really a standard form-factor (i.e. can I buy any mini-pci wireless card and replace the Broadcom card?) From one oneline site I found, it shows an Intel mini-pci card that appears to be longer and skinnier than the pictures in the Dell service manual.

Maybe I should just get coLinux working fully and live with that until my next laptop?

MSBorg and Bill...

Unless you have been living under a rock, you know that Microsoft announced that Bill Gates is stepping down. Being an ex-Microsoftie, and a techie living in Seattle, one can't help but have been talking about it.

Microsoft has lost its luster. It is bogged down in a middle-management morass of mediocreness. Microsoft's main business is focused around Windows and Office. Both have been so successful as to be their own worst enemy. How can you sustain growth when you are the dominant player in a limited growth market? XBox is promising, but that market is so competitive, I don't ever see it being the cash cow that Windows or Office is.

My dream (as a Microsoft stock holder) is that Microsoft accept that Windows and Office are commoditized and move on. Stop trying to tie everything to Windows. Leveraging Windows is one thing, but be sure to avoid shackling every new venture with a Windows legacy. One of the failings of the Windows CE platform is that it was designed as Windows-lite. I don't want Windows on my phone. I want my phone to be a phone and have good integration with my Windows apps. There is a huge difference between the two. Just read the reviews of the Palm Treo 700w vs 700p. Every comparison I have read favors the 700p. Why? Windows CE has more functionality, and some amazing apps. Palm has a simple platform that is targeted for what one actually uses the device for.

Windows Live (aka MSN? Microsoft branding has never made any sense to me...) has some interesting potential. One of the reason I believe Google has done so well is to leverage an amazing service and storage infrastructure to build new applications. In order to deliver MSN/HotMail/MSN-Search/etc, Microsoft must have some level of similar infrastructure. They need to unify and leverage that in the same way that they leveraged Windows and Office to propel growth through the 90s.

Presenting your service on the web has a huge advantage over traditional desktop apps: accountability. If some group releases a new Google Beta, management can trivially watch add revenue directly related to that new venture. Web logs can produce incredibly useful data about how many new users that beta is bringing into the Google fold, how much revenue, how many click-thrus on the adds. When a similar group add a feature to Windows Vista, how does management know if anyone even uses it?

Microsoft will never again be the company it was. Time does not flow in reverse. But Microsoft is a company to be reconned with, and I can only hope that the recent management shake-ups will lead to a slightly more nimble homunculus.

Thursday, June 15, 2006

XmlLite

I just saw Oleg's annoucement about XmlLite! XmlTeam Blog... you should be all over this! I contributed a bit to this (in many ways), and can definitely say that any 'native' C/C++ MS developer should be taking a peek. Basically, it is an System.Xml.XmlReader-like API in native code, with a blazing fast parser underneath. It also provides lots of hooks for controlling entity resolution, memory allocation... everything that a system's level developer would want.

Wednesday, June 14, 2006

Acting like the Evil Empire (we know and love)

Microsoft recently released Beta 2 of Vista. but the MS download servers are overloaded. So two enterprising souls published a Torrent of their download. Why Microsoft doesn't embrace BitTorrent for their downloads is beyond me. As an MSDN Subscriber, I would love such a feature. So there are some people out there who are ahead of the Microsoft curve (not that is is hard to outrun a glacier). How does Microsoft reward them? Cease and Decist. It just makes you feel that might really still be the Evil Empire of yore.

(via Scripting News)

Java: Integer.toHexString()

So who out there would expect this code to work?

void write(PrintStream out, int x) throws IOException
{
  out.println(Integer.toHexString(x));
}
int read(BufferedStream in) throws IOException
{
  return Integer.parseInt(in.readLine(), 16);
}


I sure did. Nothing in the docs for toHexString() or parseInt(s, radix) indicates that it parseInt can't handle the output of toHexString(). How can this not be a bug? But sure enough, parseInt() can't read back in the result of toHexString() if the original value was negative (i.e. the high bit was set).

Why can't I just have unsigned int (and unsigned byte)? sigh...

Tuesday, June 13, 2006

XQuery ... almost

W3C just announced XSLT 2.0, XML Query and XPath 2.0 Candidate Recommendations. I remember, back in 2000, betting on when XQuery would ship. None of us expected that it still would not be a finalized reality in 2006! XML was supposed to be simple! Any XML spec that takes that long to finish should be walked away from. Cut your losses and run!

Don't get me wrong, XQuery is chock-a-block full of amazing ideas. So toss out some of the decisions that made it take 7 years to produce a query language which doesn't even include update! XPath had its problems, but the spec was just a few pages. XPath was too simple, and all the database vendors wanted a query language that fit their existing models... so they designed a language that requires man-decades of development to implement!

Given that we are still figuring out what a semi-structured database really is, and how XML fits into the big picture, why is the W3C asking us to commit to such a juggernaught? And can someone please fix the type-system? The XML-Schema data-types is bad enough for text-validation, but as the type-system behind a programming language it is a colossal mistake.

KEXP - The Church of Good Music

I often listen to KEXP on my drive into work in the morning. They are doing a pledge drive right now, and they closed one plea for donations with the choice quote: "KEXP - The Church of Good Music."

Then John when on to make me happy (and feeling old) by playing a medley of TMBG, King Missile, and Morrissey.

Monday, June 12, 2006

It isn't about AutoBoxing

I was just reading the latest Dr Dobbs, and there is an article about Java 5/6 and performance. One of the items mentioned was AutoBoxing. This reminded me how this is yet another case where Java copied the wrong thing from C#. C# has AutoBoxing and ain't it cool! Lets be like cool C# and have AutoBoxing too! Arrrgg. I think the problem is that a lot of people collude 2 aspects of C#/CLR. On one hand, there is AutoBoxing. The side effect of that is that 'int' is equivalent to 'System.Int32'. The second part is what is so powerful. I really find it frustrating that I can't do things like 2.toString(). Why do I have to type Integer.MAX_VALUE, rather than int.MAX_VALUE?

To me, this is just another example of how Java is still playing catch-up to C#. I love Java's cross-platform-ness, and I generally find that Eclipse is an amazingly productive IDE, but if I still find myself missing features from C# on a daily basis. I've mentioned some of these before, but the short list of features I miss are:
  • IFDEF - C# gets this correct. C++ macros are dangerous, but basic IFDEFs are ultimately a requirement of every project I've ever used.
  • Struct - I want arrays of structures, not arrays of references to objects
  • Enumerations - Fixed in Java 1.5 (mostly) but most corporate environments will still be targeting 1.4 for years to come.
Since writing my original rant, NetBeans' profiler has been released and is justification to have NetBeans installed on any Java developer's machine. I vastly prefer Eclipse over NetBeans, but for profiling, NetBeans' profiler is competitive with a lot of the commercial offerings costing hundreds of dollars.

I've never tracked the JSR process. Are there any JSR's for IFDEF or Struct? If not, I tihnk it is time for me to try and stir something up.

Monday, June 05, 2006

If anyone wants to get me a present...

In case anyone with a few million burning a hole in their pocket were wondering what I might like for a present: http://www.wists.com/chateaux.html. I'm really not too picky. Most any one will do...