Main

General Archives

December 6, 2006

Waiting for Vista... Support

Yesterday I worked up the motivation to take the Vista plunge: installing Vista Enterprise on my work machine.

Before I started, I did a last minute check. I mean, if I'm going to put it on my main work machine, then it had better support all the software that I need to do my work.

Vim7: check. Outlook: check. IE check. Perforce: check.... Powershell: No. Cygwin: No. Juniper VPN client: No.

Oh well. Maybe when Workstation 6.0 gets out the door, I can run an XP VM to get all the tools that I need. Until then, I guess I'm playing the waiting game.

December 10, 2006

Windows Live Writer

I know I've written about the beta Windows Live Writer program before, but this thing is truly awesome. Once in a while, a program comes along that seems like it just works like "magic" and this is definitely one of them. I'm sure there are various blogging XMLRPC API's that it uses, but it amazes me how it can pick up the look and feel of your blog, and present it to you while you're creating a post.

There was a slight hickup while using it with Movable Type. First of all,  you have to point it at your admin interface. For my blogs, my admin interface has an entirely different URL than the viewing interface. Second of all, for XMLRPC-based posting, MT maintains a separate password for each author, which can be set in the author configuration screen.

Also, while Live Writer can set the categories for your post, it doesn't seem to support MT tags yet. It does let you specify tags specific to a partiuclar service, for example:

Technorati tags: ,

But that's just some magic templated text, not something it's doing with the MT API. Oh well, hopefully they'll get that in some future version. I can always post first and tag later.

December 12, 2006

Guess I'm buying a DS

They announced Dragon Quest IX for the DS. Whatever is left of my gamer pride depends heavily on my claim that I've played every installment of the Dragon Quest series, and one little new console here or there isn't going to stop me now.

December 29, 2006

Mutlilingual blogging

I've restarted my Japanese blog. I used to have a good number of visitors when I was involved in all that Momonga and Gentoo JP stuff. Ah, good old college days.

I've never seen blog software that handles multilingual blogging perfectly. I've seen hacks for various existing solutions, but they all don't really get at the core of the problem. What you really want is another dimension of metadata on your posts, somewhat like categories. But it is also essential that users be able to filter easily by language. And it should allow you to have multiple translations of the same post in different languages, but only one version should get shown to the user, based on their language preferences.

But admittedly, the market for such features is very small. I mean, we're still in a day and age where most software companies can't even get their translation/localization story straight. Internationalization is still mostly an afterthought for all but the biggest software players. And it's not like there's a huge multilingual blogging population out there to start with. Oh well.

I've been very hesistant to maintain multiple blogs in different languages up until now. It would mean dealing with multiple Wordpress/Textpattern installations, with their own databases and settings, and updating each as new stuff came out.

But Movable Type changed all that. It's now really easy for me to post to multiple blogs. The one installation takes care of them all.

January 4, 2007

Happy New Years

I'm debating whether I should create yet another blog that's more like a journal. At least that would let me concentrate on tech-related things here.

Anyways, since I haven't really gotten around to that yet, this space will have to do. I need to write down my new year's resolutions.

  • Waste Less Time: Try to spend less time doing things that amount to nothing. This is intentionally a very broad resolution. The point is to minimize that feeling after you feel like you've just wasted the past [insert amount of time] doing nothing worthwhile.
  • Be more aggressive about buying things that enhance my life: It seems aside from the basic necessities, there are two kinds of purchases. Purchases that somehow expand or enhance your life experience, and those that don't. I've spent a lot of time the last year regretting the fact that I hadn't been more aggressive in former type of purchasing. Whether it be adding another monitor to my setup, or buying a printer, or a DS Lite, or a cellphone, or a digital piano, and on and on. I've just sat and waited, and to some extent I feel like I've missed out on things.

    There's a certain joy to being at the front of the technology curve. But there's also a lot you can learn from it. Keeping yourself exposed to all the latest stuff, understanding the current problems, etc, are all important aspects of keeping yourself relevant as a technology developer.

    So this resolution is about trying to be less trigger-shy when it comes to things that will help me stay ahead and broaden my experience.

  • Corollary: Waste less money on things that don't matter: This is just the flip side of the previous item. Actually, the two combine into a single mindset of being more conscious about why I'm buying things.
  • Keep in touch with people: There's so many people on my various buddy lists that I talked to for maybe a year or two of my life, then dropped. It'd be nice to reconnect with them, and try to keep something gonig.

January 17, 2007

Moving to x64

At work, I finally took the plunge into running a 64 bit host OS on my main desktop. I've been hesitant the past several months, but a 2GB memory upgrade (pushing me up to the magic 4GB) finally pushed me over the edge.

It's not that you can't use 4GB on a 32 bit windows install. Rather it had more to do with my hardware. I have an HP xw9300 workstation, which uses AMD Opterons over a hyper transport bus. What I didn't realize is that the topology of the memory and the CPU's is different from plain old SMP. In AMD's picture, each CPU has it's own memory banks, and pairs of CPU/Memory are connected to each other over the Hyper Transport bus.

That's all fine and dandy, except that XP 32 bit doesn't understand this topology. So installing 2GB on each CPU's memory bank still only yielded a total of 2GB physical memory showing up in the task manager's performance tab. Curiously the CPU-Z could see things just fine, and XP still seemed to understand that there were 2 physical CPU's. I've been running XP for a while now.. makes me wonder what it's been doing all this time.

Feels a little weird to me that we've finally hit the point where a fairly reasonable developer configuration can pass the 4GB barrier. Seems not too long ago that we were still dealing with 16bit legacy applications on a 32 bit platform.

Thankfully, this time around, the bit-doubling transition is much easier. On windows, as long as you have x64 drivers for your hardware, you're set. Most apps, including 32 bit ones, worked out of the box on my new Server 2003 x64 install (I chose w2k3/x64 because I needed the nfs server). It's certainly far less troublesome than the DOS to Win95 transition, with the mixing of real mode and protected mode programs.

The only app that doesn't work is Rhapsody.. and I've read on their forums that it doesn't work on XP/x64 either. There's no reason why this program shouldn't work. It's probably just something really dumb that hopefully they'll fix very soon. Fortunately, the Rhapsody player engine still appears to work, so I can at least use yotta music to stream Rhapsody to work.

March 11, 2007

My First Flash Applet

I finally got around to teaching myself a little Macromedia Flash. Here is my first result.

The more flash I learn, the more I find it is a superior platform for doing graphic design on the web. It has much more precise layout mechanism, and it appears to completely solve the font problem.

I haven't gotten into the scripting at all yet, but so far I like what I see.

March 30, 2007

A New GUI, A New Stylesheet

As you can see, I've loaded a new stylesheet for this blog. Partially because I just wanted a change, but also partially because this page looks funny on a Mac.

Why, you ask? Well, for some reason Safari likes to do bad things to the text when it's rendering light text on dark backgrounds. This post actually claims that OSX applies a gamma correction to text before it renders it, which supposedly makes it good for black on white, but not the other way around. Don't know how true that is, but there is certainly a difference.

Also, it seems that it's much easier to spot bold text with dark text on a light background.

Why do I care how the page looks on a mac? I'm experimenting with using my mac mini at work as my primary work GUI. I've spent a lot of time over the past few days trying to tweak Ubuntu to look exactly how I want (and I've realized significant font rendering gains, more coming on that later) but, in the end, things still aren't quite right, and I don't want to spend any more time tweaking things. It just feels more and more pointless when you know that there are other platforms that just get it right from the start.

Anyways, it's not like I've moved completely to OSX (I tried that at work before, but gave up). I've just switched to it as my GUI machine, meaning that all my actual editing happens on a Linux machine through ssh, and I still use Outlook in a VMware Fusion virtual machine.

April 5, 2007

Feisty on an X60: next obstacles

Further reading of the ThinkWiki led to this page which details installing Feisty onto a T60. While the hardware isn't exactly the same, the symptoms described on that page (especially with regards to problems with suspend to RAM) sounded familiar, so I tried their suggested fixes, which seem to work.

So now my X60 suspends and resumes pretty reliably. But issues remain.

Joining a WEP-based wifi network seems to take forever, and sometimes just never works at all. I've also seen instances where the network manager seems to forget that I have a wired ethernet card (which is always detected correctly on startup).

The last little bit I'd want to work before I could switch was the hard drive shock protection system. To my surprise, it looks like a lot of code has already been written for it. ThinkWiki has this page about it.

Unfortunately, while Feisty seems to come with the required kernel module, none of the userland utilities worked. They have a fancy gl-based utility that graphically shows the tilt of your laptop, which showed nothing, as well as a command line utility that continually prints readouts from the accelerometer, which also produced no useful output.

April 10, 2007

Feisty on the X60 Part 3 (The HDAPS sequel)

I upgraded to the new Feisty kernel, 20-14, and lo and behold, my accelerometer readout started working. I can now run hdaps-pivot to get values as well as hdaps-gl to see a rotating GL rendring of my laptop.

That's cool. Wait, no it's not.

It turns out, although now it can read out values from the accelerometer, that's all it does. To get actual hard disk protection, you need a userspace daemon, and a kernel patch. Which leads you to this page.

To paraphrase, the patch is out there, it's for an older kernel, and it's too intrusive for Ubuntu guys to feel comfortable including it.

Fantastic.

I guess the old bit of wisdom is still true: if you really want to use Linux, you'd better be ready to compile anything yourself.

Maybe someday I'll get around to patching my kernel. I found out about apt-build, which looks like it might make the process of doing so just a tiny bit less painful.

April 17, 2007

Feisty Screenshot

Still no hard drive protection, but everything else seems pretty good. Suspend and resume works, and joining wi-fi networks seems reliable as well. I've got pretty much the best font settings I can hope for with this amount of work.

One thing I noticed was that because the X60's screen doesn't have the greatest viewing angle, the quality of fonts varies greatly depending on how you look at the screen. Things look particularly crappy if you looking at the screen from below (relative to perpendicular).

I thought maybe a gamma calibration would help, but then realized it was impossible since the calibration pattern looked different from every angle that I looked at it.

Oh well.

So maybe the only thing left to do is get a SSD drive. That makes hard drive protection support irrelelavant.

April 24, 2007

WS6 and TurboPrint

Well, it looks like my little tutorial on setting up WS 5.5.3 on Feisty was pretty popular.

Unfortunately, (or fortunately perhaps, I don't know) I've upgraded my Workstation to an RC release of WS6.

The reason? Printing.

There's not special install trick here. Once WS6 is released, you should be able to just use the standard tar installer to get it on to a Feisty system.

I recently bought a Canon Pixma iP6700D printer. I was using it under XP just fine, and assumed it would work fine under WS 5.5.3, but any access to the printer would cause a BSOD in the guest.

While looking around for alternatives, I actually found TurboPrint which appears to be a set of commercial drivers for photo printers for use under linux. Didn't try it myself quite yet, but I'm fairly interested.

Anyhow, upgrading to WS6 fixes the BSOD issue. That's important enough to me to deal with the slight riskiness of running a release candidate build.

June 28, 2007

Cheap NAS

After days of price research, I finally gave in and purchased a D-link DNS 323 2-bay home NAS appliance from Newegg, along with a couple 500GB Samsung drives, for a total of $415 or so (just over 80 cents per gig in a RAID 1 configuration).

Yeah that's a bit expensive compared to just sticking the hard drives in my desktop, but hopefully some of it will be made up by power savings. I was planning to use the desktop as a file server, since it has the most space, but now I can just run this tiny device, and set my desktop to go to sleep after a few hours.

As to whether the math actually works out. That's TBD. It also looks like a bunch of people are using Amazon S3 to do their backups, but I'm sure that's more expensive for hundreds of gigs of data, and a lot slower.

The cool thing about this D-link device is that it runs linux. And it looks like you can install stuff onto it w/o even flashing the firmware.

July 27, 2007

Another battle in the Feisty font war

Despite starting an Ubuntu tips site, I've been trying out using windows at work. The main reason? Fonts.

Yes, fonts can look pretty or ugly, but there is one major advantage that Windows has with regards to fonts. That is: small fonts look good.

At work, the more information I can keep on my screen at once, the better. I use a small programming font (proggy clean), which works fine on both Windows and Linux. What isn't available on Linux, however, is a small, readable, UI font. Having such a font can make a huge difference, as it reduces the space needed by menus and the like, and also allows lots of information display in applications like a mail reader.

So last night I tried to see, again, if I could win this battle. The goal was simple, find an 8pt UI font and font rendering settings that I would be happy with. I tried a long list of things:

  • Various hinting settings
  • Luxi fonts from the ubuntu 't1-xfree86-nonfree' package.
  • Patched freetype/cairo/xft libraries that you can get from Ubuntu forums
  • Redhat liberation fonts
  • Lots of different fonts.conf settings. Turning off anti-aliasing, doing things different based on weight or font family.

It was pretty much all in vain. After hours of fiddling, I still couldn't come up with a configuration that I liked as much as the Windows default. That's just too sad.

But I did find some intersting links out of it, which I present here.

August 6, 2007

Projects

A small list of little programs I need to write:

  • A better task switcher for windows XP (and maybe vista, though that seems a lot harder). It will highlight the frame of the window you're about to switch to, just like metacity does.
  • A better compose window for outlook. One that has a real text editor in it, with real quoting. Or a better quotefix type program.
  • Blackberry app to automatically sync shrinked down versions from photos from your photo site to your device for local viewing.

August 8, 2007

Random thoughts for the day

imac

The new iMac looks kinda ugly to me. What's with the black border around the screen? is that a beard? And the keyboard looks bugly, though bluetooth 2.0 is nice, I think. Who knows if it actually works better.

outlook quoting

Tried this outlook QuoteFix macro thing but it doesn't quite work. Now I'm thinking about a two part solution: a vb macro that does the same thing as QuoteFix to create a reply and then pull out the text to format it, but for the actual formatting part, run a separate python script. I should be able to write a much better quoting engine in python.

Lifehacker

Lifehacker.com is a fantastic site.

Inbox zero

I watched this Google tech talk about managing email, much to the dismay of my roommate. While the talk is very fluffy and hand wavy and certainly not worth 40 minutes of your time watching, I've tried to adopt the suggested way of dealing with email anyways. So far it seems to work well. The gist of the approach is to essentially always keep your inbox empty. Every time you check your inbox, you should 'process' your messages (i.e. do something with them) rather than just read them.

To me, that means: If it's crap, delete it. If its something I can read in a few seconds, read it, and archive. If it's something that I know I'll need later, put it in a 'saved info' folder. If I just 'might' need it later, then just archive it. If I need to reply, and can do it right away, then do it and archive. If I need to reply later, then move it to some folder or mark it some how.

Sounds stupid, but I actually noticed a couple changes:

First, keeping my inbox clear really saves me time in the long run. Algorithmically speaking, the cost incurred in processing an email is amortized over each subsequent glance at the inbox. Before, I had thousands of messages in my inbox, and a single checking of that inbox was essentially a linear scan through to confirm "in-progress" threads. The more threads and messages, each check was more costly and more error prone. Now, I often find myself staring at an empty inbox. It's actually kind of jarring. Makes me feel like I get a lot less mail than I thought I was getting. But more importantly, each check is a quick binary decision: is there any mail in my inbox?

Second, having an empty inbox is peace of mind. In retrospect, having a full inbox always made me feel like I had some set of pending tasks that I could never keep in my head. That there were N threads that I had to respond to. Even if there were no such threads. The sight of threads existing was enough to make me worry that I missed one in the list somewhere.

This kind of scheme works pretty well with gmail, but outlook is more of a challenge. I had to fiddle with my filtering rules quite a bit. Maybe I'll write about that some time.

August 16, 2007

OutlookSmartQuote initial release

If you're like me, you're stuck with Outlook at work because your company runs an Exchange server. Sure Exchange has IMAP and POP support, but it's never quite the same as using outlook.

You've mostly tamed Outlook, except for one small problem. All your programmer colleagues insist on using plain-text messages. And when you use Outlook's plain-text reply facilities, you get super frustrated by it's inability to quote and re-flow messages correctly.

Sure there's Outlook-QuoteFix, but it doesn't work very reliably, and it still get some cases wrong.

Well I've hacked up an attempt at fixing this problem. For the impatient, click here to download OutlookSmartQuote 0.5.

This is a 30 minute attempt at packaging up something that I've gotten fairly reliably working on my own machine.

It's based on the QuoteFix macro but instead of using Outlook's crappy reflow algorithm, I implemented my own in python. So yes, you need a python interpreter, and you need to tell the macros about where they are (see the install.txt file in the zip file for details) but the end result is IMHO much better quoting.

It's still very basic, and I'm sure the install document sucks and is missing a bunch of stuff I forgot to write down, but hopefully someone will find it useful.

August 23, 2007

Nikon Full Frame sensor

Nikon's new D3 camera has a full frame sensor! Their marketing data calls it "FX" format. Whatever. Does this mean that 1.5x crop sensors are on the way out? They made all that noise about how DX is big enough and that it makes it easier to build new lenses. Was that all FUD? Does the pixel size just matter too much?

August 26, 2007

Swiit

Qian and Matt conspired to get me a Wii for my birthday, and I'm having tons of fun with it.

By far the best of the Wii sports is boxing. The minimum amount of movement required is pretty high, and it demands a considerable amount of skill and quick thinking. And it makes my arms sore.

August 31, 2007

First Post!

My awesome friends felt so sorry for me that they bought me a Blackberry Curve for my birthday. All I can say is that this thing rocks.

And I managed to post this without the damn thing crashing.

September 4, 2007

Blackberry Internet performance

So I've had the Curve for several days now, and it still impresses. The autotext typing feature is particularly handy, though I don't feel like I've figured out the optimal hand position for typing lots of text. I still mistype a lot of keys like n/b or s/a. Maybe it's just practice.

One thing I can't figure out though, is what affects the performance of the browser. All weekend, loading web pages was painfully slow. The browser would get stuck at the "Requesting" step for ages. It seemed to be a little faster in areas that had better signal, but it wasn't night and day. But now, I'm at home, and signal is hovering around one or two bars and surfing is much snappier. Is it the some other part of the AT&T network that is causing the slowdown?

Blackberry Internet performance

So I've had the Curve for several days now, and it still impresses. The autotext typing feature is particularly handy, though I don't feel like I've figured out the optimal hand position for typing lots of text. I still mistype a lot of keys like n/b or s/a. Maybe it's just practice.

One thing I can't figure out though, is what affects the performance of the browser. All weekend, loading web pages was painfully slow. The browser would get stuck at the "Requesting" step for ages. It seemed to be a little faster in areas that had better signal, but it wasn't night and day. But now, I'm at home, and signal is hovering around one or two bars and surfing is much snappier. Is it the some other part of the AT&T network that is causing the slowdown?

September 21, 2007

The burden of choice

Every once in a while, I type something like "Linux vs Windows" into google, in a foolish attempt to assess the general landscape (and often find outdated articles)

This time, I came across this article. The author argues that the choice provided by open source software results in a usability nightmare for people who don't care for the choice.

The one paragraph that really rang true:

The tradeoffs made by the open source community between usability vs. choice will become increasingly important as various distributions and organizations (such as SuSe and Lindows) try to move Linux into the general desktop market space. It's extremely important for the open source community to be responsive not only to users' freedom to choose, but also to users' freedom not to have to choose.

With bazillions of distros, and bazillions of alternative programs that all try do the same thing, a Linux user has to spend a lot of time finding the right combination of tools to build exactly the experience he or she wants. And it's true that no average user is going to do this. It just doesn't matter.

Distro's like Ubuntu will come along and try to collect all the best-of-breed selections. But even users of Ubuntu know, not everything is quite up to snuff. Best-of-breed doesn't really mean anything if the the user still can't do what they need to (connect to an exchange server, for example).

Choice is good when it lets you choose a better solution over one that already works. Choice sucks when you have to choose between a bunch of halfway solutoins that all don't work in some way, and you wonder why all these people don't cooperate together to at least make a baseline that works.

September 23, 2007

Competition

Just came across Ubuntu unleashed which appears to be a Ubuntu tips site similar to my ubuntutips.net project. And damn, he has a 100,000 hits already..

Oh well. It's all for free, so there's no reason you can't have two right? Mine's gonna be better anyways ;-)

October 16, 2007

Off to Xi'an

We've been in China for roughly a week, and today we're preparing to take the overnight train to Xi'an (from Tianjin).

Though there is much to say about China (based on what I've seen in Beijing and Tianjin), the one phrase I could say to describe it is "under construction". There are new construction projects everywhere. In many places you see juxtapositions of very modern high-rise apartments, slightly shabbier looking apartments from the 70s and 80s (although many of them are nice on the inside), and older style "hu tong"s (small side streets). One minute you'll be walking through a street that looks like Vegas, and the next you'll be walking along a quiet narrow road that looks like it hasn't changed since the 50's. You definitely get the sense that things are changing, and very quickly. I suppose you can attribute a lot of it to the 2008 games, and yet some of the buildings being built don't look like they will be done by the games.

November 1, 2007

Gutsy on a Thinkpad X60

I guess this is a sequel to my previous posts about running Feisty on my X60.

Except there isn't really much to write about. Things worked mostly out of the box. The only recommendation I'd have is to tweak the font settings (System > Preferences > Appearance) so that you use subpixel rendering and full hinting. It looks like Ubuntu finally included the subpixel rendering patches that everyone who cared was already using anyways, so you can get pretty good results with a simple configuration change.

It's still not perfect.. especially for fonts that don't have good hints (and Arial still looks like crap), but it has pretty much gotten to the "good enough" level for normal use for me. One big improvement is that the text, when viewed off angle on my X60 screen don't look nearly as crappy as they used to. The degrade pretty much along the same lines as XP.

Compiz worked out of the box, and I didn't have to set any drivers or anything. I had to explicitly enable the wireless driver, but after doing so, it's been working fine. Suspend and resume seem to work ok. I've had one issue in mabe 20-30 cycles.

Docking and undocking still doesn't work out of the box, but it seems like there might be hope for this one. I'll have to work on it later.

HDAPS, the harddrive protection system seems to exist in a half-baked state. "hdapsd" the daemon that monitors the hdaps output and parks the hard drive has a package in the repository, but the default kernel seems to lack the patch that actually allows this to work. Here's the bug that talks about this. On the bright side, it looks like people are actually working to include a real patch that has a chance of getting upstreamed, so maybe by the time Hardy comes around, it'll work.

Overall, a pretty good improvement, though I hear lots of users are running into upgrade issues. Since I didn't really use Feisty on this machine much, I did a clean install, and things seemed to work as about as well you could expect.

Updated to Movable Type 4

Ok, here's my first post using the MT4 interface.. Upgrade seems to have gone mostly fine.. except where did my categories go? I hope I didn't lose them..

Nevermind, the interface just looks different.. Ah, progress.

Update: beware the templating changes.. apparently MT4 templates are way different from MT3 ones, and blindly picking a new MT4 style in the style chooser will lead to very weird results. Here's a post about how you might actually go about upgrading your template.

November 30, 2007

High-DPI displays: A way to displace Windows on the desktop?

I'm pretty sure I understand almost everything there is to understand in terms of font configuration on Linux. While configuration is a mess (qt settings, xft settings, xrdb settings, fontconfig settings, gnome settings), the even more frustrating part is that even if you understand all this settings, the result you can get out of it is still not that great.

It turns out MS has put a huge amount of time into making fonts look good on low-res displays. This comes in the form of TrueType hinting, as well as the ClearType rendering method. While the most recent Ubuntu release has both of these partially implemented, the output still does not match the quality found on XP or Vista. (and XP is how many years old?)

But if you step back a bit, you just realize that this is a really hard problem. The fact that there is a whole interpreter infrastructure just to help you render fonts on low-DPI displays is evidence of this.

But how did things end up this way? I tend to think that it's because of MS's emphasis on backwards compatibility, and the fact that their original API's were not resolution independent. In combination, this means that even on a brand spanking new computer, if you run old code and at the same time try to set the DPI really high, you get bad results.

But the real point I'm trying to make is that support for high-DPI gui's might be a way competitors can displace Microsoft on the desktop. Both Apple and Linux have a smaller set of legacy apps, and also have better architectures for possibly supporting DPI scaling, even for older apps. While new Windows technologies like WPF have DPI-scaling built in, as long as commonly used apps aren't ported over, the DPI problem will continue to exist on the Windows desktop. Apple could conceivably transition most of their own programs over in a few releases. Linux might take a bit longer, but the core pieces are already there (automatic layout of GUI's and technologies such as SVG that enable the smooth scaling of bitmaps and the like). In fact, I'd wager that even today, you can probably get a better experience on Linux using a 200 DPI display then you could on windows, just due to the extra configurability.

Supporting high DPI displays also gets around one of Linux's main problems. When the resolution increases, technologies like TrueType hinting and ClearType become irrelevant. Font rendering becomes relatively simple and -- at a high enough DPI -- better than anything ClearType can produce at lower DPI's. This could be an area where Linux's flexibility could lead it to bring a much awaited technology to masses, faster than Windows can, and in the process win over a few converts.

Of course, given the way things go, Apple will probably get there first.

December 3, 2007

Poor man's high resolution monitor

Many people have been waiting for high PPI monitors for a long time. There's a brief period a few years back where laptop companies offered WUXGA 15.4 inch screens, but it appears those monitors proved unpopular among the general population who still had to deal with tiny fonts in windows.

The poor man's way of making your monitor seem like it has greater resolution is to sit farther back from the surface of the screen. But how much farther back? Well, let's do a little math.

dpi vs distance.png

The equation in the diagram relates PPI, distance from the screen, and the angle of the arc covered by a single pixel in your field of vision (theta). For two different configurations, if the value of theta is equivalent, the percieved PPI of a screen should also be equivalent.

Here are a few set of values that I calculated:

X (in inches) Y theta (in degrees)
18 96 3.315 e -2
18 200 1.591 e -2
36 96 1.651 e -2
18 150 2.122 e -2
28 96 2.131 e -2

96 PPI and 18 inches is a pretty standard setup. I tried doubling either the PPI or the distance to see what would happen, but as you can see from the equation, since X and Y play both equal parts in the denominator, doubling either variable produces the same effect.

The last two rows I used to figure out, how from on a 96 PPI monitor would I have to sit to percieve 150 PPI.

So I've tried pushing my screens back at work to see how it works out. I don't have a tape measure so I can't be exact about the values, but there seems to be a positive effect so far. However, there's also something very jarring about reading monitors that are so far away. I'm not sure if my eyes are just not accustomed to it, or whether humans have a natural reading distance for small text.

But the whole point of this was to see if it would make the color fringing on my Ubuntu-rendered subpixel anti-aliased text less noticeable, and it seems to at least partially have that effect.

Update I left out a critical step in simulating the high DPI experience.. which is to adjust your font sizes. In Gnome this is easy, just go to the font control panel, hit "Details" and then set the DPI to a higher value. This should get reflected in most of your apps. Without doing this, you're essentially just looking at really small text. If you double your percieved DPI without modifying the fonts, then you essentially made your 8pt font now look like a 4pt font. Doubling your font DPI setting will make your 8pt font 8pt again, giving it twice as many pixels to render with.

December 26, 2007

Display price update


Over a year ago, I wrote up a quick and dirty analysis of display prices. Seems like a good time to revisit that now.

First, I'll note the differences in prices since last time:

  • A Dell 30 inch (3007WFP-HC) is now $1189 (down from $1700 for the non-HC version)
  • Apple's 30 inch is now $1800 (down from $2000)
  • There are several other 30 inch contenders, including Gateway (~$1700), Samsung 305T (~$1250)
  • Low end 20 inch displays are now $250 ~ 300 (down from $400)
  • High end 20 inch displays are now $800 ~ 1000 (down from $1200)
  • Low end 24 inch LCD displays bottom out around $350
  • High end 24 inch LCD's are around $700, except for the Eizo's which are still around $1300 (down from $1700)

Also new is the introduction of the 27inch form factor, which still sports a 1900x1200 resolution, which enter around $1000.

Based on this info, I calculated the same price per display square inch, and price per kilo-pixel as I did last time. For the price of each monitor size, I looked around and found that model that I would pay for, and took that as a representative price. I'm probably picker than most, so results may be different for you.

Diagonal SizePrice$/sq inch$ / kpixel
20 (4:3) 350 1.82 0.18
24 600 2.31 0.26
27 1000 3.04 0.44
30 1200 2.96 0.29

As expected, the 30-inch model is cheaper per-pixel than the 27 inch models. The 27 inch models seem like an especially bad idea if pixel count is what you're after. The 20 inch is still the cheapest, both in terms of physical display area, and pixel count. The price per pixel of the 24 is closer to that of the 30 than it is of the 20.

Update: Some math corrected.. my spreadsheet had the 24 and 27 inch models as having 1600x1200 resolution instead of 1900x1200. That makes them a bit cheaper in the price per pixels column.

December 31, 2007

Just in case you use big words


I was looking at the KB page for the recent Windows Home Server bug, and noticed that the site search bar is huge! Perhaps it's meant to contain the extra expletives that users are likely to type in along with their query.

MS Knowledge Base Screenshot

State of FOSS Review 2007

It's the end of the year, and my office is empty, so seems like as good a time as any to reflect on the past year of FOSS developments.

Noteworthy Happenings

Ubuntu 7.04 and 7.10 were released: While perhaps not as revolutionary as the original Ubuntu releases, these releases represented incremental improvements, and solid steps forwards for Ubuntu as a viable desktop alternative. Dell also started selling Ubuntu pre-installed on a limited line of laptops, though the uptake, as far as I understand it, has been pretty small. The newest Ubuntu release also brough 3D desktop effects to the masses, though not without its problems.

Several media-covered Linux-based devices released: This includes the Asus eee PC as well as the OLPC, and the Wallmart gPC. All these are instances of Linux based systems finding niche markets to fill.

ATI's major shift in attitude: After AMD bought them, they became much more agreeable to opening specs for their drivers.

That's far from a complete list, just what comes to mind.

Commentary

Money still makes the world go 'round

As far as I can tell, nothing happened this year to show otherwise. The most successful projects were those with significant commercial interest and financial backing supporting them. The canonical example is Firefox. The Google-Mozilla partnership is a key example of how development of open source technologies can be developed for money but be distributed for free. Another example in the same domain is WebKit. With Apple, Nokia, and now Adobe and Trolltech all riding no the same code base, there is a lot of money interest in advancing this piece of code for the benefit of all.

As far as a desktop operating system, there are few instances where desktop Linux distributions have been connected to strong revenue streams, at least not directly (I don't quite count Ubuntu, even though it's backed by Shuttleworth's money. I'll count it when it's financially self-sustaining). There is a lot of peripheral work happening that makes one hopeful for the future however. Companies like Intel have realized that being tied to Microsoft is not necessarily a good thing. Support for the latest CPU features seems to always happen in Linux first, and I'm sure Intel's contributions have a big part to do with that. I've been told also that many Intel engineers are working on core ACPI support. Advancing the Linux platform features for desktop and laptop scenarios can only benefit Intel, providing that they can do it cost-effectively.

On the other hand, devices like the gPC, eee PC, and OLPC may not have been possible without Linux. Sure, there are devices like the UMPC's, but seriously, who's going to pay a $1000+ for these devices? Linux on the small form factor allowed super-cheap devices with lots of functionality for the price. Better yet, these devices actually sell, which provides financial incentive for developers of the software running on them to advance the platform.

If you look at it in the context of the lessons described in the Innovator's Dilemma, small form factor machines might just be the "new use case" that Linux needs to really go main stream.

FOSS does provide value and facilitates innovation

Just not in the way that people traditionally think. FOSS software 'products' usually don't succeed in the traditional sense of shrink-wrapped or consumer-purchased software. By themselves, they don't provide turn-key solutions for a user's problems.

Instead, FOSS is really good at producing good quality commodity software components. These are reasonably solid implementations of commodity software ideas. For example, a good XML library, or a good mail sending mechanism, etc. While these components aren't useful to end users directly, their free (as in speech) availability to commercial companies greatly improves the companies' ability to produce new value by re-using them.

WebKit is a great example.. it allows Apple to develop a slick browser, while all of the core HTML code is essentially commodity (though they have made their share of improvements). Adobe is able to develop a radical idea like the Adobe Integrated Runtime because it can just re-use webkit, and not have to develop a HTML rendering library all on their own.

VMware is another great example of this. We use open source software components all over the place, whether it be GTK, libxml, or a bunch of random Linux/Unix tools. A huge part of our internal developer environment is based on free tools, and we have a fairly high number of Linux fans as developers. We also try to work with the community where it makes sense, whether it be submitting patches to GTKmm, or trying to get a fair paravirtualization framework into the kernel. If you ask many of our developers, they will say without a doubt that our ESX product (the main money maker) would not have been possible if Linux didn't exist.

A great number of web companies also work the same way, whether it be Facebook, or Google, or Yet Another Web 2.0 startup. The free availability of Linux, MySQL, Apache, and various server-side programming environments really lowers the barrier for new companies who want to build upon existing technologies.

You could even look at distributions as an example of this. They provide a lot of value (an entire OS package with a lot of built in features) for free! Surely this would not be possible were it not for the myriad of open source projects that are out there producing good code.

So while it will probably remain for at least the medium-term that "products" that land in the user's hands will be produced by "companies", FOSS has already provided immense value to companies who know how to leverage it to further their own products.

FOSS keeps companies (and prices) honest

That's all great for companies, but what about Joe consumer?

I just talked about how FOSS technologies allows companies to create high-value products at less cost by re-using commodity technologies. There's a corollary effect that benefits the consumer as well.

Lower production cost for a product should result in lower prices. But even then, a company may choose to try to sell a product for a price higher than what you're willing to pay for. Especially if the market is willing to pay it (perhaps it's also ironic that I mention this since VMware is accused of doing the same thing). But here's the deal.. if the product is partially based on freely available commodity technologies, then a company can only really charge money for the parts of the product which are not free. If a commercial product is mostly built with freely available parts, then it should be close to free.

With time, as more and more consumers and corporations use open source products, the feature set available in FOSS products tends to increase. This also means that the functionality using just baseline open source software tends to increase. Assuming the cost of this baseline functionality is virtually free, companies that provide non-free solutions will be immediately measured against the free solution. This essentially limits companies from setting prices on their products too high. If they do, it creates a gap for other companies to come in, leverage more free software, and produce a "good enough" product for a lower price.

There are so many examples of this effect that I'll just talk about a few that I know about.

Home NAS server based on Linux: For the power user, these storage devices (available from numerous vendors) provide a huge amount of functionality. The DLink DNS-323 not only does basic file service, but has an FTP server, an ITunes server, and a UPnP server, all based on open source code. Further more, with a little work, you can install all types of other servers. All for less than $200. Windows Home Server debuted at less than $200, and it's still unclear that they will even succeed at this price given all the alternatives.

Linksys WRT54G router: This is another famous one. Firmware's based on Open source code now give this less than $50 router the features of a high-end enterprise product.

$3 Windows XP in China: Microsoft has to sell XP in china for $3 a piece to get anyone to buy it. This isn't entirely due to Linux, since the main problem is the pirated copies of Windows all over the place, but the availability of the Linux alternative clearly has an effect here.

Vista Ultimate for $400: If you look at XP, and see it was several hundred dollars for a full version, and then look at Vista, look at the new features, and do the math, you might be able to somehow justify that Vista Ultimate can be worth $400 dollars. But these days, instead, you look at Ubuntu. You say, what do I get in Vista that I can't get in Ubuntu. Is that really worth $400?

Apple computers: I claim that Apple machines would be way more expensive, and way less featureful if it weren't for open source software. They use OSS in tons of places to add features to their platform.. whether it be gcc, or WebKit for Safari, sqlite for spotlight, or the BSD stack. It's clear that Apple is winning a lot of converts from the Unix/Linux world because of their inclusion of all the basic Unix features. And at what cost? It's probably far cheaper for them to maintain their Unix tools than it is to develop all their core closed-source code. And yet, their small investment has won them a lot of new users and a lot more hardware sales.

Windows is here to stay (especially on the desktop)

For a while at least. I know I just wrote all about how FOSS is great and its changing the world. But here's the thing, Windows has lots of aspects that aren't so easily commoditized. Therein lies it's real strength. Some of these aspects include:

User Community: Open source projects like to talk about their big communities. They should, as community is fundamental to their success. However, look a the size of the community around Windows. It is astronomically large compared to Linux or even the Mac.

A larger community leads to more diversity. The diversity of software on windows (at least in areas where MS allows it) is amazing. The stuff you can find for free is also amazing. Have some problem with XP? Google is much more likely to find the answer for you than some random problem with some random Linux distro.


Great Commercial Applications: Nobody is going to contest the fact that there are still great commercial apps available on Windows for which no FOSS equivalent exists. Photoshop (and the entire Adobe/Macromedia suite), Office, Games, Sound Editing and production apps.

Porting these applications to Linux or even OSX is non-trivial. Companies are unlikely to invest in these efforts without a crystal-clear business case.

Also, since the Windows platform represents so many users, many of the best open source applications are available on Windows. Firefox, Thunderbird, Vim, Emacs, Pidgin, MySql, Apache, Gimp, Cygwin, the list goes on. The more such programs that are available on Windows, the less the advantage of running an open source OS to run these apps. (Note however, that if these apps become the best-of-breed apps on the platform, then running Windows becomes less important)


Infrastructure and Eco-system: This is related to community, but slightly different. There's a machine like aspect to the Windows software and hardware world. And many a company's financial livelihood depends on this machine, for better or for worse. There are many aspects to this machine, but some of the more important ones are:

  • The WHQL process
  • Stable driver frameworks and application API's
  • Strong documentation
  • Backwards Compatibility
  • Best-of-breed Application development environments (VS, IIS, .NET)

To put it another way, all these "features" allow other companies to make money off of Windows. If a software company wants to produce a new desktop software product, not only will it choose to support Windows first because it has the biggest market share, it also has the best environment for deploying a new application. And this is no coincidence. MS has spent tons of money to make this work well (which also leads to the mystery of why they broke it so much with Vista), and Linux (especially on the desktop) has got a long way to go to figure to match Windows in these aspects.

That's not to say that distributing third party apps on Linux is impossible. Google, VMware, and a handful of other companies have shown that it can be done. The problem really is that it's still really hard. Hard enough to make it unattractive. Hard enough to make Linux not the first choice.

What's even more unclear is whether the FOSS world will be able to solve this problem. FOSS projects tend to have a "you become OSS too, or screw off" attitude. Such is the case with kernel drivers, and in practice, with other components as well. Purely FOSS projects are not good at maintaining backwards compatibility, stable API's (both source-level and binary), and documentation. This is not usually because the project members are incapable, rather, it is a dynamic of the development model. These problems are really, hard, require lots of work, and the community hasn't figured out how to solve them without paying people to do the work.

There are exceptions, of course, like the Linux syscall interface. Or the basic X protocol. Even glibc, or the python language. But these things are all really basic. Microsoft extends this stability, compatibility, and documentation much more broadly across all their products and technologies.

This also applies to hardware itself. If you're a hardware company, and you want to get your new device out there as quickly as possible, which platform are you going to choose? If you go with Windows, you get a stable driver interface that you know will work for at least a few years, as well as lots of potential users. You can also distribute the driver with the hardware, and update it on your own schedule. If you go with Mac, you can still write a driver, but who knows if Apple will break the driver interface. If you go with Linux, you can write the code, even submit it to the kernel, but who knows when the next distro release will pick it up? What if you want to keep some of the code closed? play nasty binary blob tricks like the intel driver or the nvidia driver?

Anyways, the point is there are still lots of aspects of Linux that make it less suitable for the desktop. It's not surprising really. It's Microsoft's turf, and they've mostly succeeded at it for the last 15 years.

Evolving the Open Source development model

If open source is to succeed more and more, the development model needs to evolve. Companies continually evolve their development processes as the competition environment changes.

One of FOSS fundamental strengths is it's ability to connect developers to their users in a way that cuts through a bunch of bullshit. It's not just about the source code. It's about the open development model -- which means open discussion forums, open bug tracking systems, open decision making systems. This strength also lets hobby developers, user-developers contribute back to the project relatively easily. The easier this is, the better for everyone.

Here are a few areas where I think there can be improvement:

Reporting of crashes: Right now, on most Linux distros, users have to install weird debug packages to get any kind of useful backtrace info on a crash. That's a big burden. A windows-like PDB (separate debugging info file) could be a huge benefit here.

Improve the communication chain from the user to the developer: I think Launchpad.net is fantastic in this regard. There is not really that big of a reason why every OSS project should have it's on bugtracking system. There is, on the other hand, a huge benefit of consolidating various bug tracking system into one that is cross-linked and comprehensive. The easier it is for a motivated user to contribute problem reports back to a developer, the better.

Make it easier to hack on things: It's surprisingly easy to start hacking on windows, even for a component that is in the middle of a complex dependency chain ( a dll for example). Download the source code, build it, replace the dll, and go. I don't think it's so easy on Linux. Complex package managers are partially to blame. How do I hack on just cairo and pango, for example? I have to check out their trees, then know enough about my distro's layout to rename files and make symlinks and do all kinds of hacky stuff just to make it use my local versions.

Another way to put this is that for Linux development, the developer's environment can look very different from the user's. A different kernel, different libraries, different compiler. All are possibilities. The more the development environment can be standardized, the more efficient the development environment can be.

A wild and crazy idea maybe is a more unified distro and upstream development system. The distro side doesn't take tarball drops from upstream, but rather just integrates their source control directly. The distro builds its packages by synching to known revisions in the upstream tree (maybe also maintaining patches locally), but then also gives the power for the end user to do the same. So as a user, I could check out the same sources that the distro is using, rebuild the same piece of my installed system, and also get all the benefits of a SCM system for my local changes (which also makes it easy for me to send patches).

I still use Windows

Lastly, I'll just note my personal reasons for still using Windows (XP 32), so that I can re-evaluate next year.

Applications: Some apps I want are only on Windows; some commercial (Lightroom), some free (FABDVD Decryptor). The OSS apps I want are mostly on Windows too (Firefox, Gimp, Python). Notable exception is Rhythmbox, but I can live with iTunes. I also like gnome-terminal over PuTTy, but I can also live with the latter.

Other features: Font rendering is still better on Windows. Though I don't mind the Mac's rendering so much either. Color management. Solid support for input methods. Webcam/skype. Blackberry. Occasional games.

I could see moving back to a desktop form factor Mac in the next year though, especially now that VMware Fusion is available.

Finally

Longest blog post evar. I wrote it mostly for myself to solidify a lot of the stuff I've been thinking about recently. Hopefully someone else will at least find part of it interesting.

January 11, 2008

Dell 3007WFP-HC continued

I just came back from the Apple store to check out the somewhat older 30 inch cinema display.

It also has a noticeable anti-glare coating. But I have to say I didn't find it as distracting as on my Dell. While it was fairly prominent, it seemed to produce less color variation. It's important to note that this wasn't apples-to-apples: the Apple has more ambient light than my room at home, and the white point of the screen also seemed different.

The glossy screens have none of this effect at all, so it really must be the anti-glare coating. I've always preferred the matte coating to the glossy, but I when the matte is this salient, the glossy seems a bit better.