2006 Blog Entries

Kohjinsha SA1F Mini-Review

There are few things less useful than gadget reviews where the reviewers simply show a few photos and rehash the published specs. All too often that's because the reviewers haven't had more than a few hours to work with the subject machine. I've now had a few days of hands-on time (including one business trip) with my Kohjinsha SA1F00B, so hopefully I can offer something a little more insightful.

... Read the whole review ...

kj_vs_z.jpg

But *Can* it Run Linux?

So we've established that I probably won't try to install Linux on my Kohjinsha SA1F00B, but the question remains "would it be possible?" The answer is a qualified "yes." As the photo below shows, I was able to boot Knoppix 5.0 via an external USB optical drive.

linux_on_sa1f.jpg

However, there were a host of problems:

  • No native display driver for the Geode's video adapter. Knoppix is running the display in VESA VGA mode. That means you don't get an option for the native 800x480 resolution. The closest setting is 800x600 but that causes scaling in the vertical dimension and hurts quality quite a bit.
  • WiFi adapter didn't appear to be detected.

  • Bluetooth adapter didn't appear to be detected.
  • Keyboard is using a US keymap which doesn't match the actual keyboard layout.

There were plenty of things I didn't try, but it does show that Linux will run on the SA1F. But getting it to run well is going to take someone a lot more motivated than I :)

But Does it Run Linux?

Linux on Kohjinsha? No thanks

When I first placed my Kohjinsha order, I debated between the 40GB and the 80GB models. I eventually went with the 80GB largely because I figured I'd want to install Linux and get some dual-boot magic going. Now, after a few days of using the system, I'm not so sure that's going to happen.

That will come as a surprise to those who know me. I've long advocated Linux over Windows on the desktop. I've been quick to point out the weak security of the Windows platform, the disadvantages of a proprietary closed operating system, and the stupidity of Microsoft's attempts to thwart piracy at the expense of legitimate users. Let's look at those individually for a moment.

Security, though once non-existent, is really not that bad in a properly configured Windows XP system with a properly educated and security conscious user. Will XP ever be as secure as Linux? Not very likely. But remember that a fundamental idea behind security is that any system can be broken -- it's simply a question of what it will cost. There is an old adage that if you and I are being chased by a bear, I don't have to be able to outrun the bear, I only have to outrun you. That applies to infosec as well. There are so many old and unpatched systems on the net these days, that an up to date and properly managed XP system is a much less attractive target. Hackers want quantity and so they go after the weakest systems they can find in large numbers.

As for the closed, proprietary nature of Windows -- it is philosophically annoying, but is it realistically a limiting factor? Sure, if I find a bug in the Linux kernel I can fix it and I can't do the same with Windows. But reality is that I don't really want to spend my valuable time hacking kernels. It's hard work and I have more important things to do. I hit a kernel bug in any OS and I'm likely going to work around it and wait for someone else to provide a fix.

The behavior of Microsoft assuming their users are guilty of piracy until proven innocent I can't defend. I blame that one on shareholders screaming for higher profits more than any internal Microsoft forces. It's short sighted and "Wrong", but the pragmatic side of me says that as long as it doesn't get in my way, the cost to me is pretty low.

What's my time worth?

And cost is really what it boils down to here. Not so much cost in terms of dollars, but cost in terms of productivity. Here I am with this slick little micro-laptop with Windows on it and everything works. It goes to sleep when I close the lid. It wakes up when I open the lid. It manages the CPU and HD to maximize battery life. It has keys to turn on/off WiFi and Bluetooth. It has a VGA port and I can easily switch between built-in and external displays. It has slots for CF, SD, and MemoryStick cards that work. How much time would I have to invest to get all that hardware working properly in Linux? I've fought with Linux on laptops before. And though I usually emerge victorious, it can take weeks or even months to sort out all the driver and configuration issues. And even when it all works, its often not quite as seamless as the same functionality under Windows.

I liken putting Linux on the Kohjinsha to buying a new sportscar and then immediately ripping out the engine and trying to build and install my own custom one. Sure, when I finish (if I ever finish) it may perform better. But every hour I spent in the garage is an hour I didn't get to enjoy driving it. I think being a Mac owner has spoiled me. I've rediscovered the joy of actually using a machine instead of constantly tinkering.

But of course the other factor playing into the "cost" equation is that apart from being a little more vigilant in terms of security, staying with Windows doesn't really force me to give up anything. One of the first things I did was install Cygwin. And though it's not perfect, it does give me a comfortable command line interface with most of the *NIX tools that I've come to depend on.

Add to that Firefox, Thunderbird, Gaim, VNC, MPlayer, Skype, etc. and now I'm running most of the same application software that I'd be running were I to switch to Linux. Add in a couple handy utilities like Launchy and VirtuaWin and now I'm less likely to experience boughts of nausea induced by the standard (and quite horrible) XP shell.

No Open Source OS != No Open Source Apps

Last, but not least, staying with Windows has the upside of allowing me to run commercial apps that just don't exist for Linux. Microsoft Office (OpenOffice is good but its document conversion to/from MS formats still lacks fidelity) and my employer's proprietary VPN software, though I despise them greatly, are a necessary evil and required for me to do my job. Much of the time I spend using the Kohjinsha will be spent running one or more of those apps -- which means booting Windows.

Don't get me wrong, I'm not advocating Windows everywhere (or even most places). My router, web server, email server, MythTV box, and others will continue to be Linux boxes. My desktop at home will remain a Mac. But the Kohjinsha is going to stay Windows for the forseable future. Reminds me of the Dr. Strangelove subtitle: "How I Learned to Stop Worrying and Love the Bomb" :)

It's Here!

Thanks to some blindingly fast shipping from the good folks at Conics.net my Kohjinsha SA1F00B has arrived! That's a mere 3 days from when my Paypal eCheck cleared. This is the second time I've ordered from Conics and they just seem to get quicker each time. If you're looking to order any Japan-only electronics, I highly recommend them.

No time tonight for a detailed review or photos (don't worry, they'll be coming soon), but here are a few initial thoughts:

  • It's hard to believe how small it is
  • 800x480 is much more usable than I expected
  • Display size and quality is quite good
  • Keyboard is going to take some getting used to (and possibly a bit of remapping)

I'm traveling Wednesday so I'll get a chance right away to take this little guy on the road and see how it works out. More to come.

Kohjinsha SA1F00A Disassembled

Looks like the good folks at ITmedia +D PC User have not only reviewed the Kohjinsha SA1F00A, they've completely disassembled one!

kohjinsha_sa_insides.jpg

Both articles are in Japanese so you may need to get your machine translation mojo on to read them. Some of the points I took away were:

  • Keyboard is not bad for basic touch-typing, but the size and placement of the "periphery keys" (function keys, arrows, etc.) takes some getting used to.
  • Hard drive is a standard laptop size 2.5" 4200 RPM, and not the 1.8" that you might expect to find in a machine this small. Presumably that's helping to keep the price down.
  • The LCD is viewable in full sunlight -- a good feature since I want something I can use when riding in a car.
  • The LCD used is one commonly used automotive GPS navigation systems, which may mean it will also be fairly rugged.
  • Battery life with the LCD on full brightness and the CPU doing MPEG2 playback was only about 2.5 hours. Not bad, but could be better. If you figure Kohjinsha's quoted 5 hour number is best case, average use will probably put it a little under 4 hours.
  • There is no latching mechanism for the LCD. It presumably relies on hinge friction to remain in the down position. The review noted that in tablet mode the LCD had a tendancy to want to spring up a little.

I now have a "B" model on order and with luck it will arrive in a couple weeks. If you're eager to read an English language review, stay tuned!

More Kohjinsha Images

A little web spelunking has turned up some nice pics of the Kohjinsha SA1F00A and the promise of an English language review:

A Brilliant Example of Bad/Good Design

Joel Spolsky really hits the nail on the head with this post. Some will dismiss this as Vista bashing, but it's not. It's a concrete example of the thought process needed to make the jump from average (or even good) design to great design.

The Perfect Portable

I've been a fan of the Sharp Zaurus since its introduction in 2001. I've been using a Sharp SL-C760 imported from Japan for the last three years or so. My Zaurus is the latest in a long line of portable computing devices that have served me well over the years, including two Handspring Visors, a Compaq Contura Aero "sub-notebook", a Sharp calculator with a built in BASIC interpreter, and an assortment of laptops. The Zaurus has served me well as a sort of micro-laptop. I really only have a few major complaints:

  1. To use it the way I like I must always carry around a bag of accessories including wireless cards, memory cards, battery pack, and a folding IR keyboard.
  2. It's ARM processor and somewhat non-standard Linux environment means that porting software applications to the Zaurus is often a complicated affair.
  3. I can't get into my company's VPN since only Windows clients are supported.

Still the Zaurus has come closer to being the "perfect portable" than anything else I've seen ... until I spotted this post on Engadget.

kohjinsha_01.jpg

The Kohjinsha SA1 is definitely in a different class than the Zaurus, but given the oddball way I use the Zaurus (not as a PDA), the SA1 may actually be a better fit for my needs. From my cleaned up version of the Google translated KohjinshaSpecs, one can see that we're talking about a system that is about the size of a hardbound novel and weighs in at under 1 kg. Big by PDA standards, but look at what you get:

  • Real keyboard
  • Built-in WiFi and Bluetooth

  • 40GB hard drive
  • 512MB of RAM
  • 7" screen
  • x86 compatible CPU
  • 5 hour battery life

It's not pocketable, but once I add all the accessories, neither is the Zaurus. And since the Kohjinsha has everything in one sleek package, it might be a lot easier to grab it and run to my next meeting than it is to disassemble the Zaurus setup, bag all the goodies, and then unpack and re-setup at my destination.

It looks like Conics will have these available for import in early December. I'm still waiting for pricing on accessories (such as an extra battery) and should hear back from them next week. Could we be looking a new "perfect portable"? I may just have to order one and find out!

Language Wars

Joel Spolsky has some excellent thoughts on choosing a programming langage. He points out that no matter how good a programming language is, if it doesn't have a large ecosystem, you take a serious risk using it for commercial development. Several years ago I would have had major problems with this conclusion. However experience has shown me that the ability to get answers quickly and "borrow" example code from other projects usually far outweighs any productivity gains offered by the latest "sexy" new language.

Goodbye Firedrop2, Hello MoinMoin

Switching tools is becoming a much too common theme here at Superdave's Soapbox. From Blogger.com to Typo to Firedrop2 and now MoinMoin. What's MoinMoin and why yet another switch?

The MoinMoin package is one of my two favorite Wiki tools (with the other being TWiki). MoinMoin is written in Python and has the distinction of being full featured and at the same time blindingly fast. It works well with FastCGI and fcgid so it's surprisingly responsive even on the antique Thinkpad that runs this website.

The more interesting question is "why?" The answer to that is that a personal wiki is an extremely useful tool. If you've never used a wiki you should read Why Wiki Works. But you still can't properly wrap your brain around the concept until you've actually tried it. Wikis are a bit like spreadsheets -- the concept is simple to the point of being obvious, but that simplicity hides a vast reservior of potential energy.

Wikis make great PIMs. This is evidenced by the growth of serverless wikis like TiddlyWiki. Being able to take notes that are automatically hyperlinked, full text searchable, and need no special application software beyond a modern web browser should be a mighty attractive proposition to just about anyone. The down side of a serverless personal wiki is that you have to have the data files with you. And though it's not a major difficulty to carry a USB flash drive everywhere, running a personal wiki on a real web server is still much more convenient.

Ok, so setting up a personal wiki on my web server makes sense, but why use it as a blog too? Surely a dedicated blogging tool would be easier and more effective? Well, I thought so too. But I found that writing hyperlinks into blog posts, embedding pictures, and attaching files for download were all much more difficult than they should be. Now granted, I was using low-end blogging tools and it's probably a bit easier with a full blown blog content management system. But with even the simplest wiki tool those tasks become trivial. And, since my blog posts are really for my own benefit (to help me collect my thoughts on various topics), it makes sense that they should be integrated into my personal wiki.

I can't take credit for the idea of using a wiki as a blogging tool. I first encountered it on Rui Carmo's excellent The Tao of Mac blog. And though I'm sure many others have also adopted this approach, Rui wields the wiki-as-blog tool the way Picasso wielded a paint brush. I've a long way to go before I reach that level of mastery, but if I can achieve even a fraction of what Rui has, I'll be quite satisfied.

Unfortunately, neither MoinMoin nor any other wiki tool that I'm familiar with comes ready to blog out-of-the-box. I've managed to get the basics working but it's going to take a good bit more customizing to get things the way I want them. I'll try to post details here as I get them hammered out, so stay tuned.

Categories: CategoryRamblings, CategoryBlogging

CSS: Cascading Satan Spawn

The evolution of HTML during the three year period from 1993 through 1995 is probably one of the wildest rides in computing history. Once HTML escaped from the labs where it was born, it spread and mutated at an unbelievable rate. It was easy for ordinary people (i.e. non-programmers) to create HTML documents and it was easy for browser implementors to add new non-standard features to HTML.

The W3C fought a valiant, but futile, battle to make the HTML standard keep pace with the browsers. But when 1995 brought us tables, frames, and Microsoft Internet Explorer, the downward spiral of a non-standard standard was readily apparent. Web authors wanted more and more control over the presentation of their content and they embraced these new developments in an alligator style death roll. HTML files became a "tag soup" that became increasingly difficult for both humans and browsers to decipher.

The W3C knew that many of these HTML extensions were a complete violation of the design philosophy behind HTML. HTML was intended to describe the structure of a document (headings, paragraphs, lists) and to provide a means of linking to other documents (hypertext). It was supposed to be up to the reader (or the reader's web browser) to decide exactly how a "level 3 heading" was supposed to look. For research results and technical information (HTML's original target audience) that was fine. But when HTML fell into the hands of desktop publishers, they were determined to control presentation "by any means necessary."

Cascading Style Sheets (CSS) was proposed by W3C as the solution to the obfuscated mess that HTML documents had become. By seperating the definition of the presentation "styles" from the structure of the document, web publishers could have the control they wanted without muddying the content. And viewers could once again restore their ability to control content presentation by simply replacing the publisher's specified styles with their own. It seemed like a great idea and when Microsoft announced that the relatively new Internet Explorer browser would embrace CSS, its success seemed guaranteed. Here was the silver bullet that would turn HTML back into something that people could easily create and understand.

So here we are today. CSS has been available in some form now for about ten years. It seems reasonable to expect that hand-coding a nice looking web page today should be a piece of cake. It was with that expectation that I set out to restyle this blog.

I was originally using a stylesheet that came with Firedrop2. It was nice looking, but I had a number of nagging concerns about the way it worked. The pages would "break" if I sized my browser's default font too large. And if I sized the browser window too small the page became largely unreadable. A quick look at the stylesheet revealed extensive use of absolute sizes and positioning -- not a good recipe for a "fluid" web page.

My desired layout was not at all complicated. A banner with navigation links spanning the page at the top, followed by two columns (one for content and one for links), followed by a footer spanning the page at the bottom. Other requirements for the layout were that it be fluid such that the content column would grow or shrink to fit a wide range of browser window sizes. The layout also needed to work across a variety of web browsers including the big three (IE, Firefox, Safari) as well as some of the less common such as Opera, Dillo, and even Lynx. I also didn't want the column layout to depend on their contents appearing in a specific order in the HTML code.

That last requiremnt is partly driven by the desire to support non-CSS enabled browsers like Lynx. When Lynx renders my blog pages, it simply displays the HTML elements in the sequence in which it encounters them. So it's desireable to have the blog entries appear in the HTML file before the link lists. But for my CSS layout, I may decide that I want the links column to appear on the left side of the page. That little twist rules out all of the simplistic "float" techniques that I was familiar with. Time to consult the Oracle of Google.

A day or two of spare-time searching and surfing lead me to Matthew Lavine's excellent In Search of the Holy Grail article. The technique it describes is intended to support a three-column layout, but it works just fine for two columns. By using relative placement and negative margins, this technique doesn't suffer from many of the classic float problems and it meets my requirements for column positions being independent of their order within the HTML.

This "Holy Grail" technique is brillian in both its simplicity and effectiveness. But after understanding how it works, it seems pretty clear that this isn't the way CSS intended for people to accomplish this type of layout. But on further study of the CSS specs, it's not clear that there are any features that were really intended to support such a layout. That's where my severe disappointment with the state of CSS kicks in.

Most people will go on about how browser incompatibility is the great source of CSS frustration. And though I'll grant that is a big problem, I think folks may be missing the root cause of CSS difficulties. Most modern browsers do a pretty good job of supporting the core features of CSS2. Supporting ancient versions of user installed browsers such as Netscape and Opera may be important for some, but in most cases if the user was able to download and install a browser in the first place, keeping it reasonably up to date probably isn't a big challenge. IE 5.x is probably the only antique browser that merits use of various CSS hacks to keep it from mangling your layout.

The real problem here, the root cause of much CSS frustration, is that CSS totally misses the opportunity to specify the kinds of things that web designers really want. Columns have been a fundamental layout concept since the the invention of the printing press. So why can't I specify something like:

div.links {
  display: column;
  position: right;
}

In the last ten years of CSS standards development did it not occur to the W3C that a multi-column layout is a pretty fundamental "style"? It seems to me that much of CSS is defined at a far lower level than necessary. In an attempt to avoid the mistakes of early HTML standards that were overly restrictive, they've swung too far in the other direction and produced something that's overly flexible. No wonder browsers are loaded with CSS bugs -- the complexity of the standards, particularly with respect to the interaction of various elements, is just too great.

And if you think CSS3 is going to help in this regard, think again. From the draft specs I've seen it seems to take us farther into the weeds in terms of increased low level controls. Not to mention the fact that despite ten years of CSS evolution, many browsers are nowhere near fully compliant with the CSS2 specification. Are we looking at another ten years before we see reliable CSS3 support?

With no good solution in sight, I guess the best we can do is applaud the efforts of sites like A List Apart to provide good recipes for CSS development. And to those web developers who have learned how to use CSS effectively to produce attractive, fluid, robust, compatible websites, I salute you. Never again will I underestimate the difficulty of your tasks!

Categories: CategoryRamblings, CategoryBlog

Goodbye Typo, hello Firedrop2

After setting up a Typo powered blog on my server and migrating all of my old blog posts over to it, I can now definitively say two things:

  1. Typo is a terrific application and I really enjoy using it.
  2. I'm dumping Typo.

Don't feel bad Typo, it's not you, it's me. Well, actually it's my server. Typo probably qualifies as "Web 2.0" software and I have "Web 0.5" server. With Typo all the content is dynamically generated from database records at HTTP request time. In addition the site is self managing -- you use the website itself to configure and manage content. To top it all off, it's sprinkled with snazzy AJAX features that give you things like a live formatted page preview as you type up a blog entry.

All those things are wonderful -- unless your web server happens to be nothing more than an old IBM Thinkpad 600E laptop! We're talking Pentium II, 300 MHz, and under 256M of RAM. With a few decent size blog entries on the main page, it was taking 15 to 20 seconds to load. And that was after switching to Lighttpd, FastCGI, and SQLite. And that's with virtually no other load on the server. Were I to accidentally write anything that became even the least bit popular, the server just wouldn't survive.

What I really need is an "old-school" blogging application. There was a time not so long ago when blogs were created off-line on a desktop PC and then uploaded as static web pages to the server when an entry was added or changed. Firedrop2 to the rescue!

Firedrop2 is an interesting mix of old-school off-line content management and cutting edge mark-up technology. Firedrop2 lets you write your blog entries in normal HTML, but it also supports human friendly formats. I've written at length about the value of writer friendly mark-up formats. Firedrop2 embraces that concept with not just one but four alternative mark-up specifications. reStructuredText, Markdown, Textile, and Sextile are all supported in addition to classic HTML.

Another excellent feature of Firedrop2 is that it is written in Python and uses wxWidgets for its GUI so it is portable to any system that can run Python and wxWidgets. That means Windows, OS X, Linux, and probably even BSD are all capable of running Firedrop2. If you change platforms, or like me routinely use all three major OSs, then Firedrop2 eliminates the worry of having your blog tied to off-line management software that only runs on one OS. And Firedrop2 is Open Source, so you need not worry about your blog being tied to proprietary software.

Firedrop2 isn't perfect. The down side of static web pages is that it makes dynamic content like reader comments a little more difficult. Fortunately Firedrop2 offers Haloscan support for comments, but now you're relying on a third-party to store and provide your post comments. The other weakness is the limited set of templates and CSS styles available. Hopefully Firedrop2 can gain enough popularity that we'll see more high quality themes contributed by the user community.

So as much as I'd like to run Typo, Firedrop2 really looks like a much better solution for my blog. I've once again migrated all my content and switched my server over to the static Firedrop2 pages (you're reading that now). Only time will tell how well it works.

Categories: CategoryBlogging

Blog Relocation

When I created this blog I was totally new to blogging. Blogger.com was a great way to get started. I could have set up something like WordPress or Movable Type on my own server, but I was concerned about the security of the server and the amount of effort required for a proper setup. Google for "wordpress exploit" and you'll get over eight thousand hits. It's certainly possible to do it right, but it's not a job to take lightly. Given that this was just an experiment with no long term plans, I wanted to focus on content and not get lost in the tools.

Though I haven't been able to write nearly as much as I want to, I do like having the blog available on the rare occasion when I do get to write up my thoughts. So given that I am going to keep my blog around long term, it's time to re-evaluate where I keep it hosted. I still think Blogger.com is a great tool, but I would really like something where I have a little more control. And though it's extremely unlikely to happen in the short term, who knows where Blogger will be ten years from now. If my writings are in my database on my server in an open format, I know I'll always have complete and unrestricted access to them.

I still have concerns about traditional tools like WordPress, but the advent of new web application frameworks like Ruby on Rails and Turbogears is leading to lighter (the heavy lifting is done by the framework) and more robust web applications. One that caught my eye is Typo. Typo is a Rails app that implements a simple yet capable blog. I've found that it's easy to install and even easier to use. I had it up and running on my own server in a couple of hours. Typo looks good and offers Markdown support (similar to reStructuredText) which I find very appealing.

As a result, this will be my last post here on Blogger.com. From now on all new posts will be on my own site:

Hope to see you there!

Categories: CategoryBlogging

Superdave: BlogEntry/2006 (last edited 2008-06-25 13:32:16 by localhost)