More on my broken S-presso

I mentioned a few days ago that my Asus S-presso PC quit working.

Last night, I opened up and did a bit of surgery in a failed attempt to revive it. I had been thinking that the power supply died, since none of the fans spin up. However, when I opened it up, I could see that the Power LED on the motherboard lights up when the power supply is plugged in. So the power supply is not completely dead, though it’s still possible that it’s not supplying all of the various voltages that a modern PC needs. Or it could be that the power supply is fine and the motherboard is the culprit. I unplugged and reseated various connections including the two connections from the power supply to the motherboard and I also pulled the massive CPU heat sink/fan off and made sure that the Pentium 4 processor wasn’t a molten mass of silicon before cleaning up tons of dust in the fan and heat sink and reinstalling it. No fried processors or capacitors that I could see or smell, so I put it back together and stuck it in the garage for the time being.

My thought is that I may not even need this little Linux PC anymore, since I have:

  • Samsung ML-2571N networked laser printer – I no longer need a server to expose my printer to the network.
  • Linksys NSLU2 (running Unslung) – Provides access to my external hard drives and provide miscellaneous server niceties like acting as an SSH proxy and firefly/mt-daapd (iTunes server) and byrequest (TiVo HMO server) if I so choose. Basically a tiny little Linux server that takes up almost no space and uses a fraction of the power of a bona fide PC.
  • DreamHost web hosting account – Hosts this web site and also hosts a Subversion repository that I use for a few miscellaneous things.
  • MacBook Pro – Since I have VMware Fusion (and 4 GB of RAM), I can do just about any miscellaneous playing around on this machine – Mac stuff, Windows stuff, Linux stuff, FreeBSD stuff.

So my thought is that there’s not too much point in trying too hard to resurrect this little Linux box or buying a new rig to replace it. In fact, by not having this box, I could save a bit of electricity and improve aesthetics by getting rid of the long, ugly Ethernet cable that is running around the room (never got around to running it under the carpet). So perhaps I’ll just sell this PC for parts.

SSH through an HTTP proxy

To SSH (OpenSSH) through an HTTP proxy, you can use the ProxyCommand config option with one of several programs that know how to talk to an HTTP proxy using the HTTP CONNECT method. The one I use is called corkscrew and it works equally well on Linux and Cygwin.

Something like this will do the trick to let you connect through an HTTP proxy to a home server that has an sshd running on port 1234.

Host home
	User            	marc
	HostName        	dns.home.org
	Port            	1234
	ServerAliveInterval 	30
	ProxyCommand    	/usr/bin/corkscrew proxy.corporation.com 3128 %h %p

Once you have one host that you can connect to through the proxy, you can even use that host to get to other hosts.

Host webhost
	User            	marc
	HostName        	dns.webhost.com
	ServerAliveInterval 	30
	ProxyCommand    	/usr/bin/ssh home nc -w 600 %h %p

Hacking OS X’s Python dbhash and bsddb modules to work

By default on my Leopard system, the dbhash and bsddb Python modules cannot be loaded.

marc@hyperion:~$ python
Python 2.5.1 (r251:54863, Oct  5 2007, 21:08:09)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import dbhash
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.5
        /lib/python2.5/dbhash.py", line 5, in <module>
    import bsddb
  File "/System/Library/Frameworks/Python.framework/Versions/2.5
        /lib/python2.5/bsddb/__init__.py", line 51, in <module>
    import _bsddb
ImportError: No module named _bsddb

I managed to get it to work though by installing bsddb3 from the pybsddb site and hacking the file /System/Library/Frameworks/Python.framework/Versions/2.5
/lib/python2.5/dbhash.py
:

marc@hyperion:~$ diff -u dbhash.py.orig dbhash.py
--- dbhash.py.orig      2007-11-28 10:16:33.000000000 -0800
+++ dbhash.py   2007-11-28 10:36:52.000000000 -0800
@@ -2,7 +2,7 @@

 import sys
 try:
-    import bsddb
+    import bsddb3 as bsddb
 except ImportError:
     # prevent a second import of this module from spuriously succeeding
     del sys.modules[__name__]

Here’s the patch.

Now it works:

marc@hyperion:~$ python
Python 2.5.1 (r251:54863, Oct  5 2007, 21:08:09)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import dbhash
>>> dir(dbhash)
['__all__', '__builtins__', '__doc__', '__file__', '__name__', 'bsddb',
'error', 'open', 'sys']

Emacs: Writing to read-only files

Just found this little gem regarding read-only buffers in Emacs:

A buffer visiting a write-protected file is normally read-only.

Here, the purpose is to inform the user that editing the buffer with the aim of saving it in the file may be futile or undesirable. The user who wants to change the buffer text despite this can do so after clearing the read-only flag with C-x C-q.

This is cool, because Perforce makes files read-only by default (to encourage you to open them before you edit them, though you can do this after the fact if you’re careful) and because I’ve been making the files for my web site read-only as a small measure to deter site defacement. I had been using vim for editing my web site files because w! can write to read-only files, but now it looks like I have a convenient way to use Emacs as well.

Shuttle bus breakdown

I take a shuttle bus to work every day that I can.

Today our bus broke down right by the interchange between highways 85 and 280. Luckily another bus was nearby and was able to pick us up  around 15 minutes later or so.

The buses seem to have a pretty fair amount of mechanical problems. Not too long ago, another bus breakdown made the bus more than 30 minutes late to pick us up at the light rail station and we all took our cars that day. A few weeks before that, there was a mechanical problem with the bus just after it picked us up and we had to wait for another bus to come out.

So that’s at least 3 mechanical problems there and I’ve only been working here since early August.

The bus works well most of the time, though, and is very convenient when it does.

Finished The Rise of Endymion and the Hyperion series

A few nights ago I finished reading The Rise of Endymion and thus, the entire 4-book Hyperion series.

  • Total # of books read: 4
  • Total # of pages read: 2336

That’s a lot of pages and if that scares you, then I might suggest reading only the first two books. The first two books comprise one cohesive story and the second two books comprise another story which is related to the story in the first two books, but largely independent and different (the events of the second two books occur hundreds of years after the events in the first two books and with mostly different characters). The first two books were more enjoyable to me then the latter two (and also shorter!). This is not to stay that the latter two books were not enjoyable – they are. However, if you read them looking for answers to the mysteries in the earlier books, you might be disappointed in the end. In fact, some earlier explanations get a bit muddier and there are some new mysteries, some which are explained well and others which aren’t. In particular, the origins of the enigmatic Shrike seem a bit different in the latter two books and never get satisfactorily explained, IMHO. Also, the first two books are more pure science fiction, whereas the latter two get a lot more into mysticism and “quantum love” and a sort of sci-fi spin on some of the ideas of Buddhism. Some elements of the first two books like an oft-mentioned future war between deities get ignored. I did still enjoy the latter two books, so if you have the time, go ahead and read all four books.

Book # of pages (paperback)
Hyperion 512
The Fall of Hyperion 528
Endymion 576
The Rise of Endymion 720