fogbound.net




Fri, 29 Dec 2006

eAccelerator Weirdness

— SjG @ 4:52 pm

I’ve been busy setting up a new hosting environment for a bunch of static HTML and PHP-based web sites on a Go Daddy Virtual Server. It was going swimmingly, until I came to an old CMS Made Simple site (running 0.10.x), which merely returned blank pages. Newer versions of CMS Made Simple ran fine. I could find nothing in the virtual host’s web error logs, the php log, the mysql error logs, the eaccelerator error logs, or any other system logs — except in the main Apache error log, there was:

child pid XXXXX exit signal Segmentation fault (11)

Searching around, this looks like it could be some kind of threading issue; however, I’m following the recommendations and using the Apache 2 prefork MPM.

Eventually, the (weak) solution I came up with is to turn off eaccelerator for that virtual host. This remedies the situation, although I can’t say it makes me very happy, since I don’t understand exactly what’s going on (or what the problem is).

I’d welcome insight into this.

Details: Fedora Core 4, Apache/2.0.54 (Fedora), PHP 5.0.4, eAccelerator 0.9.5.


Thu, 28 Dec 2006

The Wind-Up Bird Chronicle

— SjG @ 2:09 pm

Haruki Murakami, Vintage, 1997

This isn’t the first time I’ve read The Wind-Up Bird Chronicle. It may not be the last.

Wind-Up Bird seems to me the culmination of Murakami’s prior work. It has all of his hallmarks: a strangely detached narrator, dreamworlds that intersect with reality in nysterious ways, people responding to unseen forces, wells, and teenage girls of questionable mental stability.

Filed in:

Who Controls the Internet?: Illusions of a Borderless World

— SjG @ 12:30 pm

by Jack Goldsmith and Tim Wu, Oxford University Press, 2006

This interesting three-part book describes the evolution of the Internet from an academic network governed by utopian techno-idealists into an increasingly partitioned collection of networks under the control of national governments. It also predicts that the future will continue in this direction of many localized nets.

The overall conclusion of the book is that this evolution is a (mostly) Good Thing[tm], as human beings can’t be trusted to conduct business without the treat of violence. The assumption that the purpose of the internet is to facilitate business is not really questioned. Of course, I’m oversimplifying their case. There is also discussion of the value of information, its relationship to proximity, and the desire to allow enforcement of local standards.

I remember many of the events described in the history — most notably, the transfer of the DNS Root and its aftermath — but can’t say I really appreciated their significance at the time. I do recall being impressed with the anarchic, cooperative culture of the early internet. The philosophy of the Cypherpunks (e.g., “information wants to be free”) is a compelling idea, except when it comes to my credit card number. John Gilmore’s famous saying that “the net interprets censorship as damage, and routes around it” is also a sentiment I still feel is powerful, but I fear that the mechanisms of censorship are getting ever more sophisticated. I also still have hope that ubiquitous communication can help humanity.

However, Wu and Goldsmith’s points are well made. I remember, in particular, believing in 1995 that the internet was going to connect everyone in the world, and promote an unprecedented era of communication and peace. After all, I was in communication with people all over the world using the internet (in English, of course). Then, in December of ’95, I embarked on a trip through Asia and the Middle-East. Something about these utopian beliefs kept nagging at the back of my mind as my travels progressed, and I met people in different countries and from different backgrounds. It wasn’t until months later, on a bus ride through the Sinai Peninsula, where from my window I could see Bedouins struggling against a mini-sandstorm that the realization broke through. Yes, these people and I share a common humanity — but then, that was about the limit of what we shared. If I were to visit with them, I could perhaps learn of their beliefs, culture, hopes, expectations, and so on. But simply tapping words into a keyboard from half a world away, such an exchange would be nearly impossible. How could I begin to understand their world without seeing, feeling, and smelling it?

Well, today, I have friends I have never personally met, throughout many nations that I have never visited. I chat with them, some daily, as I work on projects. I communicate with them mostly in English, a little bit in German, and even less in Spanish. Does this contradict my pessimism above? Well, yes and no. We have a common starting point (e.g., the projects), and, to be frank, relatively common culture: we are, for the most part, Europeans, Americans, Australians.

So maybe the internet is not the borderless world we once hoped for, but it’s also not (yet) the parochial collections of fiefdoms that it could become.


Tue, 19 Dec 2006

In the Company of Crows and Ravens

— SjG @ 9:40 pm

John M. Marzluff & Tony Angell, Yale University Press, 2005

The subject of animal intelligence is emotionally charged and controversial, often pitting steely-eyed, cold-hearted scientists against pet-owners and their fuzzy, big-eyed companions. The scientists want to see repeatable experimental data before making a judgement call, whereas the pet owners are overwhelmed with evidence.

In the Company of Crows and Ravens falls into both camps simultaneously.

On the side of science, the book documents examples of culture among animals — learned behaviors that have are localized to specific groups and which are passed on from generation to generation. It describes the co-evolution of human and animal culture, and gives concrete examples of where the behavior of one species influences a cultural practice or tradition in another. On its main subject, the family corvidae, it describes experiments confirming the ability to recognize individuals of other species, the use of group-specific vocabulary, and documents observed shifts in group behaviors in response to outside influences which is then taught to others outside the influence area. It even documents observations of brand loyalty among crows, and cultural place memories.

On the other side, however, the book is a paean to corvids, their cleverness, and their playful ways. It is clear that the authors love these birds, respect them, and maybe even want them to be smarter and more talented than the actual average crow.

Filed in:

Sun, 22 Oct 2006

Reverse SSH tunnels in Mac OS X

— SjG @ 9:02 am

I’m one of the many people who will be using VNC to do remote assistance for a relative using Windows.

There are a number of tutorials out there. Most of them fail because they require the ability to VNC in to the remote system, which won’t work in my case because the remote Windows box is behind a firewall/router that I can’t configure. There are also several reverse approaches out there, where the user needing assistance initiates the connection. The first of these I say was Gina Trapani’s approach at Geek to Live, which uses UltraVNC on both ends. This is almost the solution I want, except that it requires Windows on my end as well. It also assumes that I’m at a fixed location.

In the comments, I came across Fazal Majid’s response. He had the same requirements as I do, and links to his source where he built a customized VNC server that targets a fixed IP address. Fazal’s approach matches my needs exactly.
But then I ran into the problem of the last step: the reverse SSH tunnel from my known server (which gets hard-coded into the executable) to my notebook running Chicken of the VNC.
Building reverse SSH tunnels is really not that difficult. But when I created the setup, I was able to make it work from a Linux machine and from a Cygwin terminal under Windows, but it mysteriously failed under Mac OS. Using lots of -v flags, I kept seeing the service for the port on the Mac side refusing the connection from the tunnel. The ssh debug looked like:

debug1: remote forward success for: listen 5900, connect localhost:5500
debug1: client_input_channel_open: ctype forwarded-tcpip rchan 2 win 131072 max 32768
debug1: client_request_forwarded_tcpip: listen localhost port 5900, originator ::1 port 60475
debug1: channel 0: new [::1]
debug1: confirm forwarded-tcpip
debug3: channel 0: waiting for connection
debug1: channel 0: not connected: Connection refused
debug2: channel 0: zombie
debug2: channel 0: garbage collecting
It turns out that this means the tunnel doesn’t even see the service. After wasting time with firewall tests and a lot of other false leads, I finally noticed the [::1] notation in there. Yup, that’s an IPv6 address. The solution is to make sure the ssh tunnel is using IPv4. For reference, the command that works is:

ssh -nNT4 -R 5500:localhost:5500 -l my_username myhost.com