Not Doing

SEP 02 2010

My new phone is an E72.

I’m using it to type this post in vim, which is inside a screen session, which resides on SDF, which I’m connected to using PuTTY for Symbian OS. The fact that I can do this comfortably makes the phone a nice piece of technology, but I’m not writing to sing its praises. I’m writing to help me make some mindful choices about what I want this tool to be.

When I was in college and very new to this thing called the internet, Stephen Talbott’s NetFuture essays spoke strongly to me about examining the technologies we use to solve our problems. I didn’t do much about it back then besides taking philosophy electives, but I suppose it paved the way for today by exposing my mind to the questions in the first place. It’s unfortunately still true that I don’t ask “why” often enough. The only difference is that I know a bit more about the world, and I can bring this better experience to bear.

I’ve had my phone less than two days but I already have ideas on the things that it will not be doing.

It will not be syncing with my work email account. I might make an exception for the calendar, if I can figure out how to do it, but I don’t have a good reason to regularly check work email outside of work. Did I choose the right phone, if I’m not going to use its business connectivity features? I don’t know anymore, but what’s done is done. I wasn’t in this contemplative mood when I was choosing a new phone.

It will not contain a Twitter client, a Facebook client, or any client for any similar social web service. Easy sharing easily leads to oversharing. I don’t have a good reason to give or receive such painfully real-time updates, except for the MMDA Twitter account. I’ll have to find an alternate source for that traffic data or make a exception for following this one account.

It will not contain games. The last thing I need my phone to do is to provide some potential time sinks.

Now I need to come up with a list of do’s that would make this thing mindfully useful.

Rich Internet Application Framework Roundup

JUL 08 2010

After checking out the obligatory Wikipedia software list, Google Web Toolkit, JavaFX and Vaadin (which is apparently based on GWT) seem worthy of a deeper look.

What I really want to know, though, is what eyeOS 2.0 is using as a widget framework.

Node.js on SDF

JUL 07 2010

I’ve gotten node.js to run on NetBSD, and here’s a random screenshot to prove it:

http://nerfling.chaosnet.org:61848/

I borrowed a trick from the SDF Ruby on Rails tutorial and started the server on a port equal to my uid. Technically, nothing stops me from listening on any port that isn’t taken, but I do want to be a good neighbor on this multi-user system (so to speak). I have to wonder what people with uids greater than 65535 should do though. I’m sure they already exist.

Yesterday’s problems with v8 context initialization turned out to be a problem with user limits. A ktrace session pointed me in the right direction:

11015      1 mksnapshot RET   mmap -1 errno 12 Cannot allocate memory
11015      1 mksnapshot CALL  write(2,0x7f7fffffd520,0x29)
11015      1 mksnapshot GIO   fd 2 wrote 41 bytes
      "
       #
       # Fatal error in v8::Context::New()
       # "

Some more digging revealed that v8 tries to allocate a large chunk of memory while initializing its heap, so I did this:

% limit datasize
datasize     262144 kbytes
% limit datasize 589824k

And the build went smoothly.

So my NetBSD compatibility fork is here, but there’s still one nagging issue that stops me from declaring it as finished. Essentially, the compiled binary works fine like this:

% node example.js

But it locks up after the first write if I try to redirect stdout anywhere else, like this:

% node example.js > /dev/null

The first symptom I observed was that several tests would hang when I run them through tools/test.py, but not when I execute them from the shell. The test runner redirects stdout and stderr to temporary files, which apparently makes a big difference.

I’m looking at some libeio code with mild suspicion but there’s no time to dig deeper today.

About

Personal history and random code adventures