Archive for the 'Software' Category

Page Turned on the eBook?

Thursday, March 12th, 2009

It has been an exciting couple of weeks for eBooks!

O’Reilly Adopts Bookworm

O’Reilly Publishing has adopted Bookworm, a web site for online eBook reading and storage. Bookworm is built on open software and the open epub standard. Bookworm looks pretty slick!

Once you upload your ebooks, you can transfer them from Bookworm to the Stanza app on your iPhone. Unfortunately, Stanza is still kind of rough around the edges. Paging is little different from Palm-era ebook readers, and pre-formatted text often gets cut off at less than its full width.

Still, my enthusiasm for the epub standard makes me think Bookworm itself has a good chance to succeed, at least to some extent. epub piggybacks on HTML, and consequently has good support for things like tables. There is also support for generating epub content from books expressed in another attractive format, DocBook XSL.

Kindle for iPhone

Then, Amazon released a Kindle App for the iPhone.

Kindle for iPhone seamlessly downloads all your purchased Kindle content and can sync your current page across iPhone and Kindle Wireless Reading Device (”Kindle”).

The App is pretty well done. Paging is accomplished using the cool finger-flit motion familiar from other iPhone apps.

However, unlike Stanza and the Kindle Wireless Reading Device, there’s no integrated search. And the Mobi format underlying Kindle content still lacks support for real tables.

Perhaps most disappointingly, there appears to be no way to load content that was not purchased through Amazon into Kindle for iPhone. Hopefully, this facility will come soon, along with some way to read Kindle content on a Desktop.

Nevertheless, having all my Kindle content available to my iPhone has proven to be convenient. It’s especially useful for reading when your range of motion is limited, like on a crowded train. The iPhone also makes it possible to read in the dark or in extreme cold. The e-ink technology that underlies the Kindle Wireless Reading Device looks great, but it isn’t backlit and the tiny little colored spheres that underly it won’t spin properly at low temperatures.

Effectiveness and Efficiency

Saturday, January 17th, 2009

This holiday season, I received two books describing how we can help the environment.

The first one, the New York Times’ green book, was a disappointment. The celebrity vignettes were well-intentioned, if at times bizarre (William McDonough and Cameron Diaz?)

Some of the advice in this book isn’t very good. Take the following travel tip:

Seek out locations that aren’t overexposed, overcrowded, or in environmenmentally sensitive areas. Overcrowding in already densely populated areas can lead to increased pollution by wastewater, garbage, heating, noise, and traffic emissions.

Unfortunately, the impact of tourism on the environment is more complicated.

As any trail designer will tell you, concentrating visitors in certain areas can actually be good for the environment, because it limits overall damage. Similarly, it hurts the environment less to ride the teacups at “overexposed, overcrowded” Disney World than it does to ride an airboat through the environmentally sensitive Everglades.

But you can also visit the Everglades without particularly hurting the environment, provided you stay on the boardwalks and paved paths. In fact, you might become so enchanted with the amazing bird, alligator, and otter populations that you are moved to reduce your environmental impact upon returning home.

What’s more, income from legitimate eco-tourism empowers some communities to avoid unsustainably harvesting their natural resources!

We generate pollution everywhere. In a densely-populated city, the larger shared buildings waste less heat. Destinations are closer together, so we don’t have to drive as far. That means less pollution, not more.

The chapter on school advises:

Try using a digital library or the World Wide Web instead of traveling to your local branch to do research. You’ll save time and money. The circulation of books from public libraries is 1.9 billion a year, or about 7 items checked out per person. If every American checked out and researched online a single book a year, we would save three hundred million trips to the bookshelves.

These numbers sound fishy to me, but let’s assume they’re right. Let’s further assume that no one ever walks or bikes to the library, which has minimal environmental impact.

I’m all for the Internet, but do we really want to discourage kids from using the library? The Internet is a gigantic but profoundly non-authoritative source of information. Information published in books has to pass a higher threshhold of quality and suitability.

Electronic books are great, but the availability of titles remains limited. And e-book delivery platforms are still pretty expensive.

In order to function as citizens of a participatory democracy, it is imperative that we remain well-informed. Without resources like libraries we wouldn’t be able to cope effectively with the challenges that affect our environment.

Then the chapter on work goes on to give this contradictory advice:

More than two hours of the average office worker’s time is used per day sending e-mails and surfing the Internet. Internet data servers use as much energy in the United States as is used by all U.S. TVs combined.

And the final fifty-one pages of the book are, you guessed it, references to Internet data servers! Why pulp trees to print web addresses that will already be out of date when the book is published? Why not set up a single web site, include the URL at the end of the book, and maintain links to everything from there?

Clearly, there is work to be done improving the energy efficiency of Internet server farms. Instead, the authors of the green book would have us to communicate and read less! Unless we’re using the Internet to avoid a trip to the library.

It is unreasonable to expect that we should stop living our lives to help the environment. Ultimately, the whole point of environmentalism is to enrich our lives by securing the wonder of nature for ourselves and our descendants.

The book’s saving grace is a page on which Will Ferrell recounts the “limitless joy” that driving his electric car to the hazardous waste facility affords him. For my money, they should have let Ferrell write the whole book.


I’m glad to say that I really did enjoy Living Like Ed, A Guide to the Eco-Friendly Life, by Ed Begley Jr. Ed is the real deal. His book is full of great information, much of which I had never read anywhere else.

Unconventionally Green

Monday, November 10th, 2008

First off, Robert Reich has just written much of what I wrote here on Tuesday, but way smarter. Here’s hoping this guy gets a prominent cabinet position.

Next, this weekend’s Green Festival at the Washington DC Convention Center. If nothing more, it was great to see so many people show up in the name of living in harmony with the environment… even if some of it did involve holistic vegan Yoga massage.

I got to meet William McDonough at a book signing (not sure whether his bow-tie was biodegradable) and talk to several solar contractors. I was pleased to see The Washington Area Bicyclist Association and the Anacostia Watershed Society were there to represent.

One group that was new to me was The Electric Vehicle Association of Greater Washington DC. These folks brought a Prius modified with a kit to permit recharging by plug, without gasoline. It was neat to see and hear about one of these things first-hand.

Another interesting attendee was Burr Technologies. This company is trying to assemble computers that use less power, primarily by the use of more efficient power supplies that can be passively cooled, without resorting to a fan. In the same vein, this month brings the news that researchers at Penn State have made progress with the use of electrocaloric plastics for high-efficiency electric cooling, which would be perfect for computer chips. Having grown disenchanted with “Sleep Mode”, I think these folks may be onto something.

Start Me Up?

Computers have to load instructions into memory when first starting up. This process can take a long time. As Peter Gibbons learned in Office Space, the same is true for shutdown, when your computer has to clean-up open resources.

Well-intentioned engineers came up with Sleep Mode as a solution: instead of turning a computer off, just dump the system state to the hard drive, power down most components, and reload the state later, if needed.

Unfortunately, sleep mode hasn’t worked out so well. Even today, many non-Mac laptops struggle to wake when opened, presumably a consequence of poor software/hardware integration.

But even systems that wake up successfully when roused by an operator have come smashing up against a broken abstraction of the Network Age.

A “server” is any computer that provides services to another computer. When most clients were little more than screens or teletypes, this was a useful distinction. Today, it’s often hard to distinguish the server from the client. If you stream downloaded television shows from your desktop computer to a set-top box, or sync your calendar from your desktop to a mobile device, which machine is the server? And what happens if that “server” happens to be asleep when you need its services?

Efforts to address this, like Wake-on-LAN mode, have not seen wide adoption. So maybe the better solution is to reduce the computer’s energy footprint all the time.

Social Network Ride-sharing

Wednesday, September 5th, 2007

Josh Bell from the old neighborhood has written an interesting article about Ride-Sharing over Facebook.

Time to start yet another social-networking account?

Automobile Drivers Are Not Rational Players! Is Photoshop?

Thursday, August 23rd, 2007

I now commute by bicycle, partly because it’s fun, but primarily to limit my greenhouse gas emissions.

I’ve only recently started thinking about the fact that I always change out of lanes when I can’t keep pace with the prevailing speed of traffic. However, if I see a red light or a stopped car ahead, I typically have continued on in that lane with the understanding that I’m not reducing overall traffic throughput.

Unfortunately, this seems to preoccupy many automobile drivers behind me. They apparently cannot bear to be going any slower than physically possible. They will often elect to switch out of their lane (or switch partially out of their lane), speed up, pass me, switch back, and then slam their breaks on when they realize they are about to smash into the right side of a garbage truck.

I presume that they didn’t notice anything beyond my bicycle intruding on their fundamental human right to (briefly) change their position with respect to the positions of other objects at a large rate.

Aside from being dangerous, these irrational drivers are wasting fuel. So from now on, I resolve to switch out of my lane if I can’t keep pace with the car behind me, regardless of overall traffic throughput.


I am intrigued by all these little, split-second decisions our minds make, often without conscious direction. For example, I have gotten really good at catching fumbled objects. I marvel at it because I know how hard it would be to teach a computer the same trick.

Earlier this year, I read Jeff Hawkins’s interesting book On Intelligence. Hawkins believes that the ability to recognize patterns and sudden departures from them is central to intelligent action. He goes into great detail describing the sophistication of sensory perception. Hawkins further believes that our minds accomplish this through the application of an as-yet undiscovered, high-level, invariant mechanism.

What if Hawkins is right about the centrality of patterns, but not about the mechanism? What if intelligence is little more than the ruthless application of a zillion simple edge-detection and flood-fill algorithms?

Perhaps I will start treating Photoshop with a little more respect.

Kate Pierson Muppet

Monday, July 9th, 2007

A muppet, a wiki, and a B-52 member all intersect at one single web page. Truly the highest and best use of the Internet.

Zion & Desktop Matters

Sunday, March 18th, 2007

I’m finally caught up on sleep from the Desktop Matters conference and subsequent hiking trip to Zion last weekend. Both were great!

Some thoughts:

  • With the new Apps Framework, progress on the Binding JSR, and some great RAD tools, desktop Java has become a serious contender. If they can nail the deployment problem, look out!
  • The real night sky makes the city sky seem like one viewed from some other planet.
  • When clinging for dear life to a chain along a steep, narrow ridge, gloves are helpful.

The March of Progress

Sunday, November 12th, 2006

By now you’ve probably noticed the notorious soothing gradient title block that indicates this blog has defected to WordPress.

When I started up the blog, I wrote a short program (actually an extensible stylesheet) to manage it. I wanted something that was simpler to maintain than the other blog software I’d encountered. I didn’t want to have to bother with anything beyond a webserver and a filestore. Other blog management systems required a relational database and some kind of common gateway interface or application server.

I also wanted to host my blog from my own account.

My custom software didn’t handle user comments. Comment spam was becoming a serious problem at the time and there was a school of thought that soon, everyone would have a blog and therefore user comments would become unnecessary.

In retrospect, that was naive. Comments are a big part of what makes blogs fun. I made an attempt to retrofit a comment facillity onto my software in a manner that I hoped would preserve its minimalist design. Although a special add-on was needed to harvest the comments, they were directed into ordinary files and served up through unobtrusive client-side scripting. It probably needed a good week of additional work before it was ready for the sunshine.

But there had been two developments in the meantime.

One, the migration paths between standard blog management offerings got better. WordPress in particular gained a very serviceable feed import facillity. The existence of good migration paths diminished the chance that I would get stuck on some system that ultimately proved to be a dud.

Two, I came into contact with some excellent software that muted the pain I had traditionally associated with web application deployment. Fantastico, cPanel and Ensim made MySQL database installation easier. I was also impressed by how easily I had been able to roll out the Simple Machines Forum software, which like WordPress is implemented using highly-portable server-side scripting.

The Plunge

With a little help from Max at my hosting facillity, everything is now ported over. And although it wasn’t Macintosh-easy, I am nevertheless pleased with the results. I did need to play around with line breaks, but I don’t fault WordPress for that since a variety of odd practices have sprung up for grafting styled content into RSS feeds that were never formally part of the spec.

So what about my custom blogging software? I’m still using it extensively to power my webcomic, where I’ve coupled it with ComicsML to acheive some interesting layout and accessibility features. More on this, later.

Symmetry

Friday, August 11th, 2006

I’ve been sitting on this one for a while. It’s topical. It’s relevant… it’s time.

Here goes: the best idea I have ever had, or am likely ever to have. My solution to the airport carry-on luggage crisis. I think you will agree it leverages America’s strength in information technology in an exciting and entirely novel way.

  1. When you get to the airport, an attendant helps you take inventory of every item you have with you.
  2. This inventory is entered into a database.
  3. You are matched up - in real time - with another person at your destination who has approximately the same stuff.
  4. When you reach your destination, you take that person’s stuff. They in turn will take yours, which you have thoughtfully left behind for them.

This plan would entail a number of additional benefits:

  • Lower air fares and lessened climate change from diminished fuel use.
  • No point in asking whether you have had your things with you at all times: nobody will have.

Goodbye, Dynamic DNS

Tuesday, July 11th, 2006

IP addresses are a lot like telephone numbers for computers. You need one to interact with the Internet. Unfortunately, there aren’t enough IP addresses to go around. I don’t understand the motivations of the Internet’s Founding Parents well enough to say whether this resulted from a desire for economy or merely a failure to anticipate the eventual hugeness of our interconnecting network of networks. But it has unquestionably resulted in some expensive and confusing compromises.

The most common of these compromises has been something called Dynamic Host Configuration Protocol (DHCP). When you deposit a dollar into a bank account, the bank turns around a lends out a portion of that dollar. They can do that because they only need to keep enough cash on hand to cover the worst case withdrawl scenario.

DHCP is essentially the same thing, but with IP addresses instead of dollars. Your Internet service provider buys enough IP addresses to cover what they anticipate to be the worst case Internet usage scenario, and deals out an IP address to you as needed.

They will take this back if you stop using the Internet for a while and give your IP Address to someone else. Sometimes they will even do this while you are still using the IP Address. I have wondered whether they might not do this to incent you to buy more expensive service packages, but let’s be charitable and assume that there’s some legitimate technical reason for doing so, like the need to reboot their server or something.

The upshot is that DHCP works fine for Internet consumption, but terrible for Internet publishing. Imagine your telephone number changed at sporadic and unpredictable intervals. It would still be relatively easy to make outgoing calls. But it’d be very hard to receive calls. No one would ever know your number!

This left those interested in Internet publishing scrambling for other alternatives. There’s another scheme called Virtual Hosts in which several web site domain names share a single, fixed IP address. But somebody still needs to buy that IP address. And like any scarce resource, the marketplace charges a premium for them. Plus most of those somebodies charge extra to let you run exactly the kinds of software you want (not unreasonable, since it takes work to administer all that software safely.)

So many gave up and published their content on other people’s web sites. That’s why most blogs are associated with a collective, often owned by a big company. But it wasn’t supposed to be this way! Those Founding Parents of the Internet never intended having a read/publish chasm. Even something as basic as pushing updates to visitors on a newspaper website is fabulously more complicated than it ever needed to be.

A few years ago I learned about a hack called Dynamic Domain Name System (Dynamic DNS). Basically, it employs a highly-responsive central registry to keep track of those etherial IP Address dealt out by DHCP. Whenever DHCP changes your IP, a program running on your computer notifies the registry. Everytime someone requests a resource from your web site, the Dynamic DNS registry nameserver resolves to your current IP address. Allowing you to publish a web site on your own computer without paying for a static IP address. In theory.

My brother and I both wanted to put up web sites on the cheap, so I set up a Dynamic DNS solution (hence bros.dyndns.org.) It worked okay. I’m not a network person, and getting Apache web server to do what we needed proved to be a little bit of a chore. But I learned a lot.

The biggest catch (and I don’t really understand why) was that I could never resolve my dynamic domain names from my own local network. I had to cheat by setting up entries in a special hosts file. This had the effect that certain DNS problems could be completely invisible to me, and I could never be sure our sites were ever really “up” without going out thru some kind of jurry-rigged HTTP mirror.

The other problem was my router. My router presents a bunch of disparate, fake IP addresses to the world a single, real (and DHCP-provided) IP Address. This enables me to use the Internet from more than one device on my local network over a single Internet account. Perhaps I didn’t really need a local network, but it made me feel more secure not to have our web sites served on the same computer I did my work on. And I didn’t need to worry about taking the sites down whenever I needed to reboot my desktop computer.

The combination of Dynamic DNS with a local router proved to be pretty much a disaster. Those fake IP Addresses were dealt out by the router, in much the same way that the DHCP server dealt out real IP addresses. The router was then configured (manually) to forward web requests to the appropriate fake IP Address. If the power went out and the computers rebooted, there was no guarantee they would get the same fake IP address! The practical effect of all this was that our web sites would often go down without my realizing it.

I probably could have set up a scheme in which all the machines on my local network, including visiting laptops, were permanently rooted to assigned, particular fake IP addresses. When the laptops left, they would have to have been de-configured back to potluck mode before they could be used on another local network.

At some point, you have to ask whether the configuration is serving your needs or you’re serving its. In fact, just seeing this all written out here in the blog entry makes me appreciate how unreasonable it was to go to all the trouble.

What ultimately pushed me over the edge was energy conservation. I have been looking closely at how many amps I draw lately, and could no longer justify having an entire computer on 24/7 just to serve a few dozen files. What if Al Gore found out, after all!

So this weekend, I took the plunge, purchased a remote Virtual Host account, and moved everything over. The new arrangement will cost a little more, but there should be a significant improvement in uptime. Thanks to Max over at webwizarddesign for all his help! I’m looking forward to not having to care about all this stuff anymore.