More work with analog and digital

September 14th, 2008

When last we saw our hero (me), we had a sort of sketchy resistometer. The code is set up poorly and the LEDs don’t work properly. Let’s see if we can fix that.

The first thing we need to go over is the interaction of parallel and serial electric circuits. In our previous design the LEDs were all in parallel, and that parallel array is connected to a single resister. It looks something like this…

Diagram of parallel LEDs

Diagram of parallel LEDs

Here’s the problem: because behind each of these LEDs is the micro-controller, and each of the micro-controller pins provides separate power source, as each LED comes online the current flowing through the parallel circuits adds up as it hits the resister. While the voltage remained constant in theory, the increasing current across a single resister (thanks to Ohm’s law) pushed the voltage up. The single resistor creates a bottleneck that reduces the proportional power across the circuit as each LED comes online.

The solution is to give each LED its own resistor. Because I’m lazy and didn’t really want to cut a whole bunch of resistors, I scaled the design back from 8 LEDs to a mere 5. This meant rewriting the code with new intervals, but I had to do that anyway due to the greater-than/less-than confusion in the last version. So here’s my redesigned LED array:

LED array

LED array

Then I reconnected my input device, the potentiometer. Which excitingly looks like this:

The exciting new circuit

The exciting new circuit

Then the code needed to be rewritten, which was pretty easy:

void loop()
int inputValue = analogRead(5);

if(inputValue < 200) digitalWrite(6,HIGH);
else digitalWrite(6,LOW);
if(inputValue < 400) digitalWrite(5,HIGH);
else digitalWrite(5,LOW);
if(inputValue < 600) digitalWrite(4,HIGH);
else digitalWrite(4,LOW);
if(inputValue < 800) digitalWrite(3,HIGH);
else digitalWrite(3,LOW);
if(inputValue < 1000) digitalWrite(2,HIGH);
else digitalWrite(2,LOW);

And then we boot it up and we get this lovely little thing:

Exciting, right?

From here on out I'm going to be working on getting this thing converted from a resistometer to a deciblemeter which reads the volume of ambient noise. The output, and even the code, will probably be mostly the same. The hard part, or at least complicated part, is figuring out how to use a voltage-producer instead of a variable resistor as an input. I've got some emails out about that. We'll see what happens.


Analog input on digital circuits

September 14th, 2008

Digital circuit design is a really useful skill for someone who intends to be building electronic devices. Understanding the logic of binary states is something you certainly need if you want to do anything with a micro-controller, and if you want to integrate complex software controls with you tiny devices you do want to use a micro-controller.

However, most of the world is analog, not digital. While there are certainly a lot of interfaces you can design that are purely digital, there are many sorts of interactions that are analog only. Thus, in order to do some of the really interesting stuff in electronics design you need to understand analog inputs and how to handle them.

The first thing to understand is that while you may be using analog devices, if they are connected to a micro-controller then their inputs are being converted to a digital format. So while the number of states an analog device can have are actually infinite, when building circuits they are limited by the precision of your micro-controller’s analog inputs. The Arduino uses a 10-bit analog input system, which allows for 1024 (0-1023) possible states. Roughly: the Arduino can measure analog inputs to within about 0.1% precision.

In order to play around with this I decided to set up a series of LEDs (that is, multiple outputs) to indicate variable resistance levels. More LEDs light up as resistance increases.

Step one is setting up the LEDs. This is pretty simple. You might notice that I’ve got a single resister on the ground connector rather than one for each LED. The idea here is to use the sequencing features of electric circuits to save on resisters. This should result in the same effect as a separate resister for each LED. (Note: This is not actually true, as we’ll see later on in the post.)

LED array

LED array

Next we need to hook up our input: a variable resister. In this case we’re using a potentiometer. Like all variable resisters we need three connections: power, ground, and the input pin for the micro-controller. Here’s the potentiometer set up on the breadboard.

Add the potentiometer

Add the potentiometer

Now that we have our circuits put together, we need to connect them to the micro-controller. Remember that since each LED is lit separately, it needs its own pin on the board.

Connect it all to the Arduino

Connect it all to the Arduino

Now all that’s left is to do our code. It’s pretty simple: the Arduino can sense 1024 possibilities, round that off to 1000 for ease of use. There are 8 LEDs which gives each one an equal integral of 125 values. Simply divide them up and have a series of non-interfering IF statements.

void loop()
int inputValue = analogRead(5);

if(inputValue > 125) digitalWrite(9,HIGH);
else digitalWrite(9,LOW);
if(inputValue > 250) digitalWrite(8,HIGH);
else digitalWrite(8,LOW);
if(inputValue > 375) digitalWrite(7,HIGH);
else digitalWrite(7,LOW);
if(inputValue > 500) digitalWrite(6,HIGH);
else digitalWrite(6,LOW);
if(inputValue > 625) digitalWrite(5,HIGH);
else digitalWrite(5,LOW);
if(inputValue > 750) digitalWrite(4,HIGH);
else digitalWrite(4,LOW);
if(inputValue > 875) digitalWrite(3,HIGH);
else digitalWrite(3,LOW);
if(inputValue > 1000) digitalWrite(2,HIGH);
else digitalWrite(2,LOW);

Observant people will note that my code has an unfortunate little error: while my circuit theoretically measures resistance, lighting more LEDs as resistance goes up, what this code actually does is light more LEDs as resistance drops. This is easily fixed by swapping all greater-than symbols for less-than symbols in the IF statements.

Let’s watch this baby in action.

The key thing to note here is that as more and more LEDs are lit, they all get dimmer. This little problem had me banging my head against the wall until I thought it must be a simple power-drain problem with not enough current to light all the LEDs. Except this thing is running on a 500mA power supply, and there’s no way these things need 100mA a piece. The problem is actually one of the interaction between parallel and serial circuits, which I’ll talk about more in the next post.


Where’s my life

September 10th, 2008

This is just a general update intended to keep you all abreast of a couple of things.

First, in an effort to cut down on spamming the people who read my LiveJournal, I’ve reset which categories crosspost over there. My ITP category doesn’t anymore because I expect to be making five or six or ten rather long posts a week to that one, and if you just want to keep up with my life, well… you don’t care (at least not enough to read 2000 words) that I built a digital switch that makes an LED blink on and off. If you find yourself wanting to follow my ITP work it’s all at my big WordPress blog (

Second, school is going pretty incredibly awesome. I managed to get into Clay Shirky’s “Election 2008″ class. We’re analyzing the impact of social media on the election, and with only one class meeting behind us, things are shaping up to be incredibly insightful as well as challenging and fun.

Third, I probably mentioned this already, but there’s a standing invitation to crash at my place in Brooklyn if you want to visit. I’m within easy travel of both JFK and LGA airports, and EWK (Newark) isn’t all that hard to get to or from either. I’ve even got something more comfortable than the floor for you to sleep on as I just purchased and assembled a surprisingly comfortable piece of IKEA furniture that is a chair that folds out into a bed. It’s like a futon only it takes even less space.

Fourth, and most introspectively, I find myself running into a problem I haven’t really struggled with for nearly two years. Or, at least, not struggled with in quite this way: Arrogance. I suspect (and hope) that this is a temporary thing having to do with how extensive my technical background is, but one of the things I was looking forward to when planning to come to ITP was being challenged by other students. I was really excited to be around people smarter than me who could push my limits. Unfortunately, so far, I’ve been sort of the go-to guy for technical support. I’ve done web admin, I’ve built circuits, I program. All of this means that I’m good at the technical things that everyone else seems to be struggling with at the moment.

Of course I totally acknowledge that most of these people blow me out of the water when it comes to sheer creativity. When asked to design a “creative” electronics switch, people came up with everything from keyboard combination locks to salsa-dance-instructing systems. I had nothing really exciting. There are all these creative people here, but so far I’ve only seen them being creative in this sort of artistic realm. (I’m pretty sure that this is, again, a time issue, and that I’m going to find out there’s a lot more creativity there under the surface as the semester progresses.)

Anyway, fully realizing that I sound like something of a jerk, I’m starting to feel like I’m the top of the class. Like I’m the one everyone else has to catch up to. It’s not something I’m happy about feeling. I like to think I got past aspiring to be better than everyone else a few years ago. Clearly I haven’t completely, but the real kicker here is that while I don’t really care about being “better” than other students, it’s actually somewhat discouraging to feel like there’s no one on my level. This is an aggravating feeling since I know it’s not true. There are a lot of smart people here who are way above my level, they just don’t have the technical training that I sort of take for granted.

As I said, given time I fully expect this to work itself out, but I wanted to get it down now so I’d have it for later to come back and consider.

Fifth, I’ve just about finished prototyping my big summer project. I’m working on a streaming-media site that allows for social viewing of videos. The problem with trying to watch things online at the moment is that it’s hard to do so in groups. Coordinating viewing, especially at the micro level, is incredibly hard. Even if you manage to get five or six people to start a video at the same time, if anyone has to get up for anything coordinated pausing is virtually impossible. So I figured I’d design a system that allows one person to pause for everyone. It’s just about ready to go, and I’m pretty excited. I’m sure you’ll be hearing more about it.

With that, I’m off. I miss you all, but know that classes are awesome and despite my whole “arrogance” worry, school is rocking my world.


Since I didn’t migrate, a documentation of my upgrade

September 10th, 2008

Since I’ve had a WordPress blog for quite some time, and since I actually ended up writing both of my previous responses into my WordPress blog here and then using a nice copy+paste to get the content into HTML, there wasn’t a process to document for this week’s assignment. However, simply saying so seemed as if it would be something of a cop-out, and besides, there was some documentation I could do anyway!

See, due to the roadtrip I took this summer, the blog went un-administrated and un-updated for about four months. This meant that I fell behind a number of WordPress versions, and it was time to get that fixed. Since I didn’t have to install WordPress itself, I figured I’d run the upgrade process and document that.

At some point everyone using WordPress (and not using the “shut up and don’t tell me about updates” plugin) will notice at the top of their management page a notice that they’re out of date and that they should update. When it comes to WordPress it is extremely important that you do this in a timely manner because, unfortunately, WordPress is one of the most poorly secured widely used software packages on the net. There’s so much PHP, and there is absolutely no plugin vetting process. These two things combine to create any number of security loopholes that can be used by Bad People to hack your site. So when WordPress asks to be updated, it’s worth listening.

The process is pretty painless. In fact, it’s very similar to doing a WordPress installation. You download the latest version of the software package. You edit your config.php file (more on this later). You upload everything to the target directory. Then, instead of going to …/wp-admin/install.php you simply go to …/wp-admin/upgrade.php

Finally, you go have yourself a milkshake. (This is an important step, and not to be ignored.)

The main reason you can download the entire software package again and not worry about overwriting the existing files is that WordPress keeps everything you actually care about in the MySQL database that it connects to. All those files you upload to the internet when installing WordPress are just interface: they tell the system how to read and display information in the database and how to put new information there. Once you understand this, then the re-uploading the WordPress files thing makes sense.

What might not make sense is re-creating a config.php file. You did that once already, right? That’s how you made the site work the first time. Your database is the same, so is your username and password. Why can’t you just use that file? The answer is that the people developing WordPress keep changing what’s in that file. For instance, I was upgrading from a pre-2.5 version of the package so my original config.php file didn’t have any of the pass-phrase stuff entered in. WordPress will throw some funky errors if you try to upgrade without first fixing your config file. More interesting, to me at least, than the addition of new options in the config file, is the removal of old options. While I had to add three lines of config to upgrade, I had to removed two old ones. Apparently the WordPress team has someone making sure that they don’t just keep adding stuff, and in my book that’s entirely a good thing.

I went to the upgrade page, clicked a button, and WordPress conveniently checked all my files and then reformatted my database to the new information schema. This is important because many features the system adds requires information to be organized in a different way. Back in version *mumble*, where they introduced tags and categories to the software, the entire organizational structure had to be rebuilt from the ground up because the original design just couldn’t handle the things.

Anyway, all went well, my blog is updated and running smoothly (though I did have to re-install one of my plugins). Now I’m off to get a milkshake.


Orality and Literacy Chapters 1-4

September 8th, 2008

Orality and Literacy is a 1988 book by Walter J. Ong. It is a discussion of the differences in thought patterns in “primary oral” cultures (those cultures without writing, or which have not yet internalized writing) and literate cultures. The first four chapters introduce the basic subject of study and focus on two things: 1) The ways that lack of literacy impact human thought processes, and 2) The way that the development of writing technology change the human thought processes.

Ong supports neither orality or literacy as superior to the other, but he does note that many valuable developments in human society are simply not possible without the development of literacy. The core issues at work behind the shifts in thinking from orality to literacy (and vice versa) are memory and abstraction.

Early in the book Ong makes quite a big deal about the orality of non-literate language itself being important and necessary to the issues he is discussing. I feel that this is a mistake, though it actually has little bearing on the rest of his thinking. Ong seems to feel that the absolute impermanence and invisibility of spoken speech is a big part of what influences its development. He may well be right, but I do think it is unnecessary to put so much weight on the spoken word when it might have been the case that we all ended up communicating with sign language, or via smell. The dominance of spoken language is not really a historical accident, but is certainly attributable to the specific situations of early humanity: the need for long distance, large audience communication. Sound is just better at that than most media.

As I mentioned, this erroneous focus on aural transmission does nothing to dull Ong’s real point which is that oral conversation is impermanent. Oral records exist literally only in memory. It is impossible to go back and examine a conversation even as it is in progress. (This contrasts fascinatingly with things like email or IM conversations where the entire record of discussion is available verbatim at all times.)

According to Ong, and I certainly think he is correct, the need to remember everything forces an entire set of thought organization and speech patterns on primary oral cultures. Everything worth knowing must be easy to remember because otherwise not enough people will remember it for it to continue being useful to society. This means that things worth knowing must be set into formulaic phrases in order to allow them to better fix themselves in memory. What’s more, these phrases must be repeated constantly in order to reinforce that memory. Primary oral speech patterns are thus full of formulaic phrasings which are oft-repeated.

In addition to forcing this sort of highly mnemonic structure on language, primary oral situations also generate a sort of low-abstraction thought pattern. Since oral language is impermanent it is used only in immediate situations. When I talk about something (Ong uses the example of a tree) in an oral situation I mean a specific tree. Or, perhaps, I mean a tree in a specific location (as in “we should plant a tree here”). Even when recounting events that have occurred in the past I convey the situation in which they occurred: “We were out in the backyard and I was saying we should plant a tree there”. With such a direct level of connection between spoken utterance and direct experience high level abstraction doesn’t occur.

Ong’s book comes at a fascinating time historically. He makes clear distinctions between chirographic (cultures with hand-writing) and typographic (cultures with printing presses) cultures. Though literacy obtains in each, the impact of literacy on thought changes as writing technology does. Writing in the mid and late 80s, Ong missed the explosion of the next big writing technology: the internet.

The reason the internet pertains here is that, while Ong doesn’t seem to make a big deal of this, perhaps because he does not fully recognize it, the entire orality/literacy duality turns on one class of technology: memory aids. Writing is the first, easiest, and perhaps most flexible memory aid ever produced. Chirographic cultures are able to use it primarily for aiding personal memory: writing thoughts as they occur. But production is too slow and expensive to generally externalize one person’s or group’s memory to the culture at large. The printing press adds to the advantages of chirography the ability to mass-produce certain works and thus make them generally available. This allows certain thoughts to become generally stored in the cultural external memory.

The internet, and computer technology in general, allows for even more off-loading to external memory. And, perhaps more importantly, allows one to carry and/or access an entire library near-instantaneously. In a purely typographic culture one might know that one has access to an idea or thought, but must find the book which contains it and then find that thought. We are rapidly moving to a point where anyone can instantly search their library (or Wikipedia for that matter) for just the thought they are looking for. This large-scale near-instant access of printed material is beginning to produce yet another shift in thought processes.

The key observation Ong has is that as memory becomes less and less important humans are able to devote less and less of their linguistic and mental structures to it. This allows language and thought to shift in other directions, focusing on solving other problems. It’s a shift that I suspect we’re about to undergo again.


Reaction to the NYC Waterfalls

September 5th, 2008

For those who aren’t familiar, and I suspect that’s true of many people, the NYC Waterfalls are a public art project. The basic construction is a scaffolding system with a set of pumps placed near the East River. Water is pumped up to the top of the scaffolding and allowed to fall. The effect is, in some ways, quite waterfall-like, hence the name.

The first time I saw the waterfalls was while my dad was in town at the beginning of August. We had hopped the Q-train, I think on the way back from Central Park or something. The train goes across the Manhattan Bridge, and it has an excellent view of the Brooklyn Bridge. One of the waterfalls (there are four) is erected beneath the Brooklyn Bridge on the Brooklyn side. He asked what it was, and I wasn’t sure. That particular waterfall, due to its placement, looks almost like part of an industrial process. It’s hard to see it as free-standing as opposed to some auxiliary structure attached to the bridge.

I didn’t think anything more of it until we got to our first meeting of Comm Lab here at ITP where one of the week one assignments is to visit the waterfalls and write a reaction. Upon realizing that this was an art project, my initial reaction was relatively negative. A sort of “you’re spending public money on what now?” thing.

Having hopped on the IKEA ferry which goes by three of the four waterfalls, and viewing them myself, I was less than impressed. They’re sort of cool, yeah, but nothing spectacular. They don’t evoke the same sense of wonder that real waterfalls do. I suspect that this is due to the lack of waterfall context. Part of what makes waterfalls so awe-inspiring is the sharp cut in the landscape that accompanies them. The sense of insane natural power involved in carving rock and all that water rushing down. When it’s man-made some of that impact is somehow gone.

That said, I can’t actually be unhappy about the waterfalls for one simple reason: while we were waiting in line for the ferry I watched this family a couple of places in front of us. One of their children was a boy who looked to be maybe seven or eight. (Sadly I’m really bad with ages of this sort, which is deeply ironic considering how much time I spent working with kids in the age bracket.)

Anyway, there was this kid, and he was so excited by the prospect of getting on the ferry. He wanted to see the waterfall! He wanted to go to the waterfall! He wanted to play at the waterfall! (I suspect that playing at the waterfalls is not actually permitted, but he didn’t care about that.) So while I, with my world traveling and my viewing of massive natural waterfalls may find the constructed forms lacking and almost a mockery, there is value in them nonetheless.

That value is for the city of New York. I suspect that it’s something I’m going to have a hard time maintaining a proper view of. ITP is an international community, it is peopled by the well-traveled and in many cases by the travel-obsessed (like myself), but New York City itself is like any other place: a huge percentage of the population never leaves. There are kids, probably thousands of them, who will never come closer to a waterfall than this in their entire lives.

While the New York waterfalls may be sad ghosts of the real phenomena they try to emulate, there is power and suggestion in them anyway. A kid seeing them, and applying sufficient imagination, may grasp some of the wonder that comes from such structure. Perhaps they will not experience the same thing that (say) Niagara can instill, but then again maybe they will.


Physical Computing Lab 1

September 4th, 2008

In less I hate the world news, here’s my first real project at ITP. Physical Computing Lab 1 is really more of a “get your feet wet” lab than anything else. The linked lab there is actually more complex than the one we actually were requested to execute.

We’re using the Arduino chipset and codebase for digital control, and the first project was just a “learn about digital design, do a tiny bit of programming”.

We were asked to design a system that, when a switch is activated an LED flashes on and off; when the switch is not activated, the LED stays off.

Most people come out of high school with at least a rudimentary understanding of electricity and thus know how to right a switch-to-light bulb circuit. That’s the first lesson that has to be unlearned for people doing digital work, and that’s probably the important bit (beyond “you can do it”) that this first lab teaches. See, in digital circuit design, inputs and outputs are independent circuits. Instead of rigging the switch to the light circuit, you design a switch circuit connected to the controller and a LED circuit connected to the controller. Their only link is that controller. It looks something like this:

Conceptual Diagram

This means that two separate circuits need to be designed: an LED circuit and a digital switch circuit. The LED circuit is simple, and doesn’t require explanation of the difference between analog and digital switching, so let’s start with that.

An LED circuit is almost precisely identical to the classic light bulb circuit. It takes power from some source, feeds it through an LED, and runs that to ground. You’ve probably seen this before. There, is, however, an important exception here. See, the current that the Arduino puts out is actually too high for a standard LED and would burn it out. This means we want to slow that current down so we use a resistor. 220ohms is about right for our purpose here, so we end up with a circuit that looks a lot like this:

Diagram of the LED circuit

Of course I didn’t have a 220ohm resistor handy, so I did the next best thing: I grabbed a pair of 100ohm resistors and linked them in series. When you line resistors up like this in a circuit, you add their resistance together. It’s quite convenient. So the actual circuit I built looks like this:

Alternate LED circuit diagram

My actual design is very exciting. It looks like this:

Image of my LED circuit

With the LED circuit completed, the next step was to design a switch circuit. The traditional analog switch is simple: a switch with a power source at one end and ground at the other. Unfortunately, digital switches are a bit more complex. See, digital switches are constantly looking for an input. If they sense one then they are “on”, if there is no input then they are “off”. For analog purposes an open switch doesn’t let enough current across to do anything significant, but in a digital switch system an open switch may still allow static electricity or power generated by magnetic interference flow to the sensor, confusing it. This means that all digital switches need to be grounded in order to keep them at zero current when they are open.

It’s the “when they are open” part that gets problematic because we need to ensure that when the switch closes that the current doesn’t flow into the ground, but into the digital sensor. We accomplish this with a huge, ginormous resistor. When the switch is open there is a single loop: sensor to ground. This means that no matter how big the resistor is, the loop stays closed and the sensor is grounded out. When the switch is closed, however, the current from the switch has two potential directions: to the sensor, or to ground. By putting a large resistor on the ground side we ensure that the power flows to the sensor, switching it on.

Another diagram (it’s worth noting that in this particular circuit the system is so low on resistance that you can use just about any resistor you want here):

A diagram of a digital switch

Since I didn’t feel like getting out an actual switch, I built my own… sort of. I simply left an exposed section of wiring at the end of my power lead, and another one between the resistor and the micro controller. The switch is “closed” whenever I touch the exposed wires together, and “open” the rest of the time. It looks like this:

This totally \"awesome\" switch I designed.

Now all we have to do is connect our two separate circuits to the controller. We already know how to do this with the switch since it’s wired to an input, and doing it with the LED is just as simple. Since we want the LED to be an output of the circuit instead of an input, we want to connect the power end of the LED circuit to one of the controller pins.

What we get looks something like this:

Combined circuit diagram

What we have here are two circuits linked by a micro controller. The first circuit is a simple light: when the controller gives the signal, the light turns on. The second circuit is a simple switch: the controller constantly listens to see if there is power flowing across the switch or not. Using my amazing breadboard-less skills, it looks like this:

The modern sculpture of my complete design!

Now that we have our exciting digital system, we need to do something with it. There are all sorts of possibilities now because we have a switch and a light. We could make the light simply turn on when the switch is closed, we could make it flash, we could even make it flash at a rate based upon how long the switch has been closed. For now let’s just do something simple, but at the same time let’s do something that actually requires a micro controller to do. That means no flash rates based on how long the switch has been closed, but it also means no simple “close the switch, turn on the light” since we can do that in pure analog systems. Leaving us with the second option: “when the switch is closed, the light pulses”.

With the circuit designed, the actual command system is entirely software-based. Arduinos use a very simple codebase, so here’s all we have to code up:

void setup()
pinMode(2,OUTPUT); // Set this pin as an output,
// It is where we plug in the LED
pinMode(3,INPUT); // Set this pin as an input,
// It is where we plug in the switch

void loop()
if(digitalRead(3)) // If there is current on the switch's pin
digitalWrite(2,HIGH); // Output current to the LED
delay(1000); // Wait one second
digitalWrite(2,LOW); // Stop outputting current to the LED
delay(1000); // Wait one second
} // Repeat the loop code indefinitely

Load that code into the Arduino and you’re all set to go. With a little work, you too can have an amazing circuit like mine. Here’s a nice 30 second video of it in action:


Surprise! We want all your money!

September 4th, 2008

Let me get the really fury-making part out of the way.

I checked my T-Mobile cell phone bill online today while I was going through a number of rather routine record-keeping things. Apparently I owe them $600+. All of which were accrued in August. See, back in May I purchased a new phone, a T-Mobile Dash. I’ve been very pleased with the hardware and software package for the most part. I’ve had a few problems, but nothing too cripplingly bad.

Along with the phone I purchased an unlimited data plan. This allows me to send and receive email and do some web surfing, and is totally worth it for my purposes. My only complaint was that the built in IM client on the Dash didn’t include support for the Jabber protocol, and thus had no way for me to carry gTalk with me. A problem such as this is easily remedied with the downloading of third-party software, so I grabbed a trial version of something-or-other which I used for a few weeks before deciding that IMing by phone just wasn’t that useful. Thus I uninstalled the software.

Skip ahead to my road trip. Specifically to Philadelphia where my laptop suddenly died (still working on fixing that). I was brutally disconnected from my social network and had to fall back almost completely to the phone. Good thing, thought I, that the Dash has an IM client built in. So I started using it to keep in touch with people.

Now my bill comes due and I discover something rather insane: T-Mobile’s built in client treats IMs as text messages.

Let me repeat that: T-Mobile’s built in IM client on a smart phone with a data plan treats IMs as text messages.

Since I don’t have a text message plan on my phone, much preferring to simply pay for the dozen or two I use a month as I use them, the 2,000 or so IM send/receives for the month have racked up quite the impressive bill.

I spent about an hour on the phone today bouncing from department to department at T-Mobile. First I spoke to billing and was told by both the employee and her supervisor that “no one could credit my account for those charges”. This, I knew, was a blatant lie (due to my long association with the most excellent N), and was just what they were saying to make me stop arguing. Now, I should say I was as polite as possible, understanding that these people don’t make policy, they just carry it out.

After the nice, but lying and unhelpful, people in billing, I got in touch with technical support. This was because I was curious about the whole not-being-charged with the third party software. Tech support insisted that all IM software for phones, no matter who created it, should use the SMS servers. Thus I had been using Mystical Software That Shouldn’t Exist. When I asked if it was possible that the software just used my data plan instead, tech support seemed to think not.

So back to billing, where apparently I was connected to a different call center (as the supervisor I had spoken with before wasn’t at this one), so the story was repeated. The nice lady kept insisting that these charges were my fault for “uninstalling the software that let you have free IMs”. She was nice about it, but insistent. Finally she admitted that she couldn’t override a decision made by a supervisor (during my first call to billing), but that she could transfer me to her own supervisor and I could talk.

I was then placed on hold while she did so, and after about three or four minutes I was disconnected. Having managed to spend an hour on the phone accomplishing not much, I decided to skip it and take another shot later.

But that’s not actually what I wanted to talk about here. What I wanted to talk about was how utterly insane a move this is for T-Mobile. Or, rather, how underhanded it is. See, IM is an inherently data-based system. The only reason that you might have for billing them on an SMS basis is that for a long time you didn’t have pure-data plans for phones. What T-Mobile has done, in effect, is to cripple (making specifically less-efficient) their IM clients in order to make more money. That’s all this is. And that, more than the money, infuriates me (and giving how much money we’re talking about, that’s a lot of fury).

Anyway, I just needed to vent, and now that that’s done I shall return you to your regularly scheduled whatever-you-were-doing.


A quick update for those watching from home

September 3rd, 2008

It’s been a while, huh?  Well, I figured I’d run an update so that people could catch up with what’s going on with me these days.

Back at the beginning of the month I successfully got moved into my apartment in Brooklyn with some cool roommates.  So far it’s been quite a good experience.

Yesterday classes at ITP started, and they started well.  My Communications Lab course is using Scott McCloud’s Understanding Comics as one of its texts, and that’s a good thing.

Basically everyone I know has a standing invitation to crash on my couch if you want to visit NYC.  You handle travel and I’d love to put you up.  Just give me a day or two notice so I can warn the roomies.

Real quick note: I’m going to start using this blog quite a bit more than I have been.  Specifically I’ll be using it for projects and stuff for classes here at ITP.  You may or may not notice the nice new categories I’ve established (if you’re reading on a LiveJournal cross-post you won’t, since my blog only cross-posts stuff from the “life” category) then you’ll see what I mean.  It’s possible to follow only a single category, so if you don’t care what I’m doing over at ITP either just keep using the LiveJournal or read stuff at which will avoid all categories not directly tied to stuff happening in the everyday world.

Anyway, I’m hoping to get back to a post-a-weekday format here (as always), so I suppose we’ll see what happens.

Hope you’re all doing well.


Let’s do this thing

May 18th, 2008

Current plans are for me to be on the road at 06:00 en route to Houston, TX. That should have me pulling in right around 17:00 or so. Man… I’m pumped.

I’ve got my phone, I’ll be checking my email along the way. You know how to get in touch with me.

Don’t forget to check the crazy roadtrip website (which I hope to have actually bug-free soon) for what I hope turns out to be relatively updated updates…

Later skaters.


Blog migration complete

May 12th, 2008

I have managed to import my entire LiveJournal archive into this blog. While I couldn’t get the tag structure copied (because LiveJournal’s export feature sucks and doesn’t support tag exports apparently) I did get comments and everything else. With that done I’ll be moving my base of operations to here. I’ll still be cross-posting to my LiveJournal, of course, for those who want to simply follow along there, but I’ll be primarily operating out of

I’ll actually be producing more posts than I’ll be putting up at my LiveJournal. I’m going to operate under the assumption that people who are following along there are mostly interested in keeping up with day-to-day stuff. So I’ll be maintaining a category here called life that will cover that, and only posts in that category will be put up on LiveJournal. I’ve also managed to get my archives from my old blog Musings and Mental Meanderings brought over, and if you’re looking for those they can be found in the musings category.

At the moment those are my only two categories, but I’ll probably be adding more as time goes on. If you want to follow everything I’m up to from life to research to projects to essays then this blog is the place. And if you just want to follow some things? Well, you can do that too.


A door closes, looking ahead

May 8th, 2008

Today has been a day of change in many ways. Let’s go through those, shall we?

First of all, today was my last day at work. While my resignation doesn’t officially kick in until Saturday, and while I do have to go pick up a paycheck tomorrow, I’m no longer on the schedule and I’m not on call. While it’s conceivable that someone might want me to cover a shift int he next two days, it’s exceedingly unlikely. It feels odd, but after three and a half years of dispatch I’m ready to move on. I’m ready for a change.

Second, I’ve mentioned that I’ve been working on this big web application which I’ve been planning to use to track my roadtrip. Well, it’s done and it’s now online. You can go check things out at All the features work, and as far as I know there are no bugs in the current version. I know there are some interface issues which I need to resolve. Primarily: because it’s basically a series of blogs linked by a map, I need to figure out a good way of showing users recent updates so they can keep up with traffic. If you’ve got suggestions I’d love to hear them.

Third, I’ve actually worked up a tentative itinerary for the roadtrip. It’s… extensive. And having it down on paper really makes it seem more immediate (and gives me a sense of just how big an undertaking this is). If you’re curious, you can check it out online too since I have a spreadsheet. (Wow, my entire life is on the internet.)

Fourth, you’ll probably notice that this is coming from yet another new blog. I’ve managed to import all my old blog posts from “Musings and Mental Meanderings” as well as the one post I made from the blog I thought I would use for my personal life. I’ve decided to simply put all my posts in one place and use WordPress’ category system to allow people to read selectively. For the moment I’m only going to be posting to the one category: “life”. I’ll use tags to differentiate within that. I presume that I’ll eventually add one for research or essays as well.

As more categories come online I figure I’ll put together a tutorial or something on how to use them. I think that’s it for now.

Huh… all these changes and I don’t feel any different.


Life, it does go on

May 1st, 2008

In addition to being a post about my day this is also the first test of me using a cross-posting utility to post to a WordPress blog and my LiveJournal at the same time.  We’ll see how that goes.

Took two of my four exams today, and now those are out of the way.  They were for two of my less stimulating classes, both in the sociology department.  I don’t understand (except that really I do) how we can make learning so grueling.  I mean, sure learning is often difficult and requires effort, but it should be fun!  I tend to feel that if a class makes you dread going, and dread executing assignments, then it must be doing something wrong.

I mean, come on people…  You really have to work to take a field I find fascinating and then make me tune you out when you talk about it.

Anyway, just the two exams left.  It’s not long now.


Huh… I don’t feel any different

April 29th, 2008

Today marked the last meeting of a class of my undergraduate career. I presented my final project in Web Applications with XML and JSP today. The project is actually something I’m pretty excited about, and I’ll probably talk about it more soon since it’s part of my plans for the road trip this summer. That’s for later though, for now I thought I should have a post commemorating my last day of classes.

In other news I’m seriously contemplating setting up a WordPress install to take up most of the content that goes here. If I do I’ll mirror it to this journal, of course, but I’m finding that more and more of the people that I’d like to link to a blog about my life so that they can keep up with me don’t really need the LiveJournal thing. A simple (and easy to remember) blog URL is probably a lot less trouble for them.

I’ll probably work on that sometime this week or something.

Anyway, I’m keeping this short.


I now enslave myself financially for love of knowledge

April 21st, 2008

In the continuing saga of my plans to attend grad school I received my financial aid packet from NYU today. There are still details to work out, of course, but the bottom line is that I can do this, and it will be awesome.

Beyond that I’m just tired. Mondays are my long day (class starts at 08:00, work ends at 21:00, sometimes I have a one hour break for lunch). Coming out of a Saturday+Sunday 12 hour shift cycle means that I’ve had not nearly enough sleep. Fortunately I don’t have to work tomorrow so I’ll sleep in to the decadent hour of 08:00.

It’s really dawning on me just how close all of this is. My last final is May 7, my last day of work is May 8, and on May 10 I officially graduate. Hopefully I’m on the road for the beginning of my trip by May 24 at the very latest. Then it’s ten weeks of driving and visiting and hanging out.

Someone at some point said, perhaps in jest, that I could write a book about this road trip thing. At first I thought that was ridiculous. I mean… people who do cross-country journeys and go on to write books about them have interesting things to say, what would I talk about? Then I realized that I have an angle on this that I find fascinating. I could, very legitimately I feel, write a book entitled Road Tripping Across the Internet. Looking over my list of people to visit, almost every single one of them is someone I met online in one place or another.

Think about that: I’m taking a trip that involves hanging out with more than 50 different people, and with only two or three exceptions every single one of those relationships was first formed somewhere online. Wouldn’t that be a neat book? I like to think so. I’ll be making notes all along the trip anyway, just in case.

Speaking of the trip, I’m working on a project for my web apps class that I plan to use for the summer. More details to come, but it’s sort of an experimental blog/forum system organized primarily around physical locations. We’ll see what happens.


At least I post this week

April 18th, 2008

I’ve been crazy busy, but things have been progressing well, I think.

I made a final decision regarding graduate school. My acceptance of NYU’s offer went into the mail today. I’m more than a little pumped.

I’ve got most everything I need to do in all my classes completed. The only thing left now is my final project for my web applications class, and that’s mostly a fun one anyway.

Less than two weeks of class left. My last day of work is May 8. My last interaction with the university here will probably be May 10. I’m hoping to get my stuff from the apartment packed and ready to take to move when I’m ready by May 16. Things are coming to a head, and I’m excited.

Also: tired.


Ah bureaucracy, I haven’t missed you

April 7th, 2008

Ever since I received my acceptance letter from NYU I’ve been slinging stuff back and forth with their financial aid department. My preference is still to be up that way, but I’m going to need far more on the way of aid to do that than I will if I attend GaTech. And with the GaTech response deadline originally April 15 (they very graciously gave me an extension), I had very little time to find out if I had it.

First I call financial aid only to be told that I’m not in the system at all. So I call the guy in charge of aid for my school but have to leave a message. I don’t hear back so I give him another call a few days later and he pokes around and tells me my SSN was entered into the system wrong and that’s what had happened. He fixes it. So I call financial aid again and they confirm that the SSN is in the system, but they tell me it will take a couple of days for them to process my FAFSA now that they know which one to process. I decide to stop bothering them for a few days.

Today I call to see if it’s been handled and the guy I talk to is extremely helpful. He tells me that, oh, they have to send in a specific request to get the thing processed and that hasn’t been done yet. He offers to immediately send an email to the appropriate people, but he warns that it won’t get done before they close for the day. I should call back tomorrow he says.

So that’s what I plan to do.

In only slightly related news, the NYC housing market is radically different from the one I’m used to. Around here our entire rental market turns over in August with the beginning of the Fall semester. This means that most rental properties are projected out to open in August sometime and you need to get in as early as you can to insure widest selection options. NYC is apparently significantly different. Turnover is, of course, higher, and this apparently leads to a market in which availability tends to project out about a month or so. That means that I probably won’t know until sometime in June or July where I’m living or how much it will cost. That’s a new sort of uncertainty for me and should be interesting.

It’s also possible that I just fail to understand how this works. That wouldn’t surprise me either.


Missed a day, but what the hey

April 3rd, 2008

I’m not too worried about failing to post yesterday. Sleep was more important considering the day I had today.

Woke up at 05:00 to get ready for the trip to Atlanta to check out the program at Georgia Tech. Made good time and arrived without incident and without getting lost or missing any turns. Found the building that most of the HCI labs are in and discovered that it’s actually more of an architectural nightmare than Haley. I suppose that it may be less confusing if you spend time in the building, but it’s basically a maze of corridors with no obvious visible landmarks. It also doesn’t seem to be symmetrical.

Anyway, the trip was good and the tour/orientation thing was also good. I met a number of other prospective students, and some of them were dang sharp. Good conversations were had with them. A lot of questions were answered about all sorts of things, which was nice and tremendously helpful. The only truly weak parts of the experience (at least from the standpoint of recruiting) were that A) the actual lab tour was terribly unorganized and sort of aimless, B) the classes we sat in on were so-so, and C) there was little direct contact with professors.

I still found the entire thing to be very helpful in working toward a decision between NYU and GaTech. The short version is this: both schools are serious, but GaTech is serious business and NYU is serious fun. Perhaps a bit more clearly stated GaTech is focused on industrial research and direct application while NYU is more exploratory and interdisciplinary. Needless to say that second approach draws me in.

Ironically I’m coming to believe that the lack of an ITP PhD is a huge point in the program’s favor rather than a disadvantage. I don’t know if this is the case, but there’s a strong sense at GaTech that the master’s students are sort of second class citizens. The real money and time and energy are spent on the PhD students. Which makes sense, I suppose. But it means that ITP, without that higher level to suck up time and energy from the faculty, has more of that time and energy to devote to the class of students I’ll find myself in.

The point of all this is that this visit was extremely valuable because it helped me get a feel for the program at GaTech and that helped me a bit with deciding that it’s probably not as good a fit as the program at NYU.

Now all I have to do is figure out this whole “money” thing.


Not really very coherent

April 1st, 2008

I was hoping that today would present an opportunity for a bit more reasoned post on the grad school choice thing, but being keyed up (and poking around with NYU’s online system) kept me up waaaay too late. With the early morning (05:00) shift I had today this meant I am woefully short on sleep. Honestly I should probably be in bed now, but…

Today was mostly me leveling out the emotional high of the letter. Part of it is, of course, that I got accepted, but much of it is simply knowing. I don’t have to put off decision-making. I can move forward and get something done, and that’s emotionally stimulating for me. So despite being low on sleep I’ve been pretty active.

Met up with the Nikki for a late lunch thing. Talked about grad school for me and interesting history stuff for her. (I gave her an idea for a master’s thesis free of charge. I’m such a good friend.) Then we headed back to my place to poke around youtube for a bit which eventually led to Soul Caliber 3. Will joined us for some animated violence and we passed the controllers around a bit. Quite a bit of fun, really. I love that game more than, perhaps, I should.

Just as she took off for Japanese stuff Marie called. Marie and Deli and I decided on food (after twenty minutes we settled on Arby’s as our location) and I called Claire (who I’d run into on my way out of work this morning) to see if she wanted to join us. She said she’d meet us there. Then, of course, on the way over there we decide that we don’t want Arby’s after all. No, we want Chick-fil-et. So I called Claire to give her the update.

It turned out to be pretty good though, so I call it a win.

Ran into Tabor, who I’ve seen around but probably haven’t talked to in four or five years. He’s going to be heading off to TX this summer and we talked about the possibility of me visiting him during the roadtrip which would rock. On the way home somehow the topic of Deli’s friend Tate came up in conversation and it turns out she’s likely moving to DC. So there’s another person to visit this summer.

Then we got back to my place and watched an episode of Bones. I’ve seen them all, but I’ve been slowly getting Deli through the series as it’s quite good and since she has good taste she recognizes that.

That’s a decent summary.


The best of times, the worst of times

March 31st, 2008

(Apologies to Nikki for not using the far more amusingly cheesy title I proposed earlier.)

Some of you may know that I’ve been waiting to hear back from grad schools for a while now. More specifically, I heard back from everyone but NYU, the program with the earliest application deadline by far. I was really starting to get worried what with the decision deadline for GaTech being April 15.

So I called the admissions office this morning to ask and they said “Oh, we just mailed stuff out Thursday, so you should get it soon.”

And I did.

And I’m in.

NYU’s Tisch school of the arts has offered me admission for the Fall of 2008.

Which leads to a conundrum: I must now make a choice. I’ve spoken rather a lot with Amy Bruckman at GaTech via email and phone, and she’s sharp. And the work she’s doing? Constructivist educational theory applied to groups via computer-mediated social networking? That’s… sort of exactly what I want to do in the long term. I mean… it’s like someone took my interests and then designed a research program around them. So there’s Georgia Tech looming large in my mind.

But Georgia Tech is in Atlanta, and I am not much of a fan of Atlanta.

NYU, on the other hand, has Clay Shirky. And reading Clay Shirky is what got me into the field the way I am now. I’ve had a chance to visit the ITP labs and talk with some students (something I’m going to due for HCI this Thursday), and it looked pretty dang awesome. Also: NYU is in NYC, which is one of my top five favorite cities in the US. It is full of cool people and places, and that’s a part of education too.

So now there’s a choice. I’m leaning rather heavily toward NYU, but here’s where I throw things open: what do you people think? What’s a good fit? Why should I consider one or the other differently than I am now?