Mike Schaeffer's Weblog
Fri, 27 May 2005
Anti Grain Geometry
I just found about it, but I already think it might end up in vCalc. Anti Grain Geometry is a open source 2D rendering library with a very liberal license. The feature set looks pretty comprehesive: it supports anti-aliasing, affine transforms, sub-pixel resolution, and alpha blending. Even better, it's designed as a lightweight set of C++ classes, so it shouldn't bloat or slow down vCalc too much. About the only hole is that it doesn't have any kind of built in text rendering; However, even there there are are detailed instructions for using the Windows True Type renderer to generate glpyhs.

All I need now is time...



reddit this! Digg Me!

[/tech/general] permanent link

Dell Service Manuals
This is cool... I knew IBM (er, Lenovo) did this, but Dell does it too. They have an online site with all of the service manuals and documentation for every machine they've ever sold. This includes detailed instructions on disassembling and rebuilding laptops.

Even more cool is that the archive goes back to the beginning, back when Dell was called PC's Limited.

Note: The IBM link above is actually still on the IBM site... I expect the link to break whenever Lenovo takes the contents.

reddit this! Digg Me!

[/tech/general] permanent link

Tue, 17 May 2005
Seymour Cray
For some reason, I've been thinking a lot lately about Seymour Cray. When I was growing up, I remember asking my dad about who made the fastest computers in the world, and the answer at the time was Cray. I don't know if he meant the man or the company, but for a while both were true. I suppose it made an impression.

I've found a bunch of good things online about the man and his work: Reading through them, a couple of things made impressions on me:
  • He didn't mind throwing bad ideas away (or saving them for later). The Cray 1 took a very different approach from the CDC 8600.
  • Cray failed a lot. He was always pushing the limits and taking risks, and paid the price of those risks. The CDD 8600 failed, as did several designs for the Cray 2. The Cray 3 failed to sell, and the 4 doesn't seem to have hit the prototype stage at all. Even the Cray 2 doesn't seem to have been an unqualified success, thanks to issues with memory bandwidth.
  • He had a very 'startup mentality'. His career seems to be a repeating story of initial success, spin off lab, and spin off company.
  • A lot of his design problems weren't electronic at all. He seems to have struggled as much (if not more) with packaging and cooling as with anything else.
  • He had a keen sense of style. With the possible exception of the Connection Machine CM-1/2, his machines were the most visually striking of the major supercomputers. Maybe it's superficial, but it can't have hurt the sales or publicity.
  • He knew what he had accomplished. There's a story about his suprise when Steve Chen developed the X-MP from the Cray 1 and doubled (?) the performance. Of course, the story goes on to describe how Cray ended up appreciating the new design.
Anyway, I have nothing but the utmost respect for the man and his accomplishments. R.I.P, Mr. Cray.

reddit this! Digg Me!

[/tech/general] permanent link

Better Text for GDI Applications
This is well documented on MSDN, but it's still pretty cool.

I've never been happy with the text quality of the vCalc display: it's jagged and at a font size that doesn't rasterize well on the displays I have access to. Well, as it turns out, this is relatively easy to fix. The LOGFONT structure that GDI uses to select fonts has a field, lfQuality, that is used to select the quality of the text rendering. Back in olden days, this field was used to do things like disallow scaling of bitmap fonts (if you don't know what that is, be thankful: it was awful). These days, it's used to turn on Antialiasing and Cleartype (on winXP). Thus, this one line of code:...

lf.lfQuality = CLEARTYPE_QUALITY;

...transformed this...


...into this.


There's also a setting for anti-aliasing:

lf.lfQuality = ANTIALIAS_QUALITY;

Anti-aliasing (in Windows) dates back to the Windows 95 Plus pack, so this setting should be much more widely supported. However, it's also much less powerful: it doesn't do any of the sub-pixel stuff and it is enabled far less often. In my experimentation, non-bold fonts had to be pretty big before anti-aliasing was used at all.

The other caveat is that this doesn't automatically buy you decent formatting of the text you display. That is, if you're still computing text positioning on per-pixel increments, you'll still get mediocre layout. vCalc does this, but it also has very minimal text layout requirements for now.

reddit this! Digg Me!

[/tech/general] permanent link