Archive for February, 2008
(See what happens when I have a few hours of free time? My entire post backlog gets typed out and published. ;-) And my brain feels tremendously more put-together and decompressed as a result - writing is my mode of reflection and making sense of my own thoughts.)
Through the blog of Marcin, I ran across this post by Dave Pollard. (Marcin focuses on an entirely different segment of the post than I do, but our thoughts on things tend to diverge, though I find his endlessly fascinating.)
My favorite bit: things he’s learned, cribbed largely from lessons he’s learned from other people past and present - which is partly how wisdom grows; people pass it down.
- We do what we must, then we do what’s easy, then we do what’s fun (Pollard’s Law).
- Things are the way they are for a reason; if you have any hope to change something, first understand what that reason is. It’s rarely obvious.
- Life’s meaning, and an understanding of what needs to be done, emerges, most often, from conversation in community with people you love. (from Nancy White)
- Community is born of necessity.
- Communities can only succeed when their members have no choice but to make them work.
- To get people to change, first Let-Yourself-Change, to become a model that shows people personally, one-to-one, a better way to live, rather than just telling them what to do. (from Gandhi)
- You never change things by fighting the existing reality. To change something, build a new model that makes the existing model obsolete, a working model of a better way, one that others can follow. (from Bucky Fuller) You want to save the world? Do it bottom up, not top down.
- Never doubt that a small group of thoughtful, committed citizens can change the world. Indeed, it is the only thing that ever has. (From Margaret Mead)
- To be nobody-but-yourself - in a world which is doing its best, night and day, to make you everybody else - means to fight the hardest battle which any human being can fight; and never stop fighting. (from E.E. Cummings)
- Our civilization is in its final century.
To state the last one in other words, “this too shall pass.” And #6 is something I’ve been trying to explain to people frustrated by their inability to make Grand Sweeping Changes to What Other People Do in their world - it’s similar to the Catholic philosophy of evangelism, which doesn’t involve holding up signs on street corners but instead quietly and steadily going about living in as Christ-like a manner as you can, explaining your beliefs when asked but never trying to push them on others, and knowing that your example may be inspiring others in a way you yourself might never know. (I was raised Catholic, and although I don’t practice much now - for reasons I’ll probably discuss here someday - it’s had a deep impact on how I live and think.)
Pollard’s post is interesting food for thought, especially the several parts I disagree with, most of all this one:
“The real, authentic me would not take on commitments that would be unreasonable and tedious to discharge. The real, authentic me would not procrastinate. The real, authentic me would not find himself fretting about my work backlog, or watching TV because I’m just too tired to do anything else.”
I don’t know. The “real, authentic me” is human, and real, authentic humans aren’t perfect. I think the “real, authentic me” messes up, procrastinates, and occasionally collapses in exhaustion or gets bored to death. But the real me also knows those shortcomings, accepts her imperfection, and still keeps trying to get asymptotically closer to it. Which is probably what Pollard meant in the first place. I feel like I should insert something about the journey being more important than the destination here.
Saturday, February 9th, 2008 | Uncategorized | No Comments »
I just finished my first week of work, and I have a table-spot in a former stair-making factory next to a neon blue room called The Porn Palace. (No, it’s not actually. I’ll explain later.)
The Open Planing Project (TOPP) is an funky place to be, and a nice follow-up to Olin and OLPC in that it’s a hackerish place full of smart people and chaos that I haven’t figured out yet and don’t expect to ever fully understand. (This is good; when I understand things, I get bored.) I like environments that are full of undefined flux because I’m usually able to do more within (and with) them. I’d like to think that means I’m a creative person, as per John Gardner (”The truly creative person is not an outlaw but a lawmaker”), but the truth is probably somewhere closer to “I’m easily excited by shiny things.”
Oh, yes. What does TOPP do? Good question. My own image isn’t wholly stable either; the picture in my head morphs, constructivist-style, every time someone tries to explain it to me. We’re out to save the world, of course. Or rather, out to help the world save itself. (I think) we build tools to enable people to gather, contribute, and manipulate information about their local and not-so-local communities, tools to find and collaborate with like-minded people, and run events and programs to encourage them to become activists about whatever they care about.
In particular, there’s geoserver (an immensely powerful and popular geospatial data manipulation program - think the back-end of Google Maps, but nonproprietary) and openplans, which is sort of like sourceforge for non-coding projects. Openplans.org provides free, hosted, integrated tools (blogs/wikis/mailing lists/tasklists/etc) to grassroots groups to help them communicate and catalyze themselves more easily and effectively. Having been “The Computer Person” for far too many grassroots/project teams and therefore the one who’s sat through several dozen blog/wiki/mailing-list/task-list/etc setups, I like this immensely. Consequently, I’m working on openplans.
There are other small projects in the office just starting up, but openplans (the software running on openplans.org, though anyone can download and install it on a local server) and geoserver are the two main ones, along with an implementation of the latter at nycstreets.org which specifically catalyzes action around traffic and urban planning in New York that make communities more vibrant and livable (less parking lots, more parks, that kind of thing).
And the best part is that they’re open-source, so sharing things about my projects not only isn’t violating any NDAs, it’s part of my job. Rock. (And - and - and - PYTHON! YAY!)
I’m still not sure what I’m doing; the “what is Mel doing?” meeting got pushed back on 4 consecutive days due to high localized levels of randomness, so I finally settled on an Official Project (which was what I had started doing anyway) yesterday afternoon. It’s stil being fleshed out so I’ll write about it here (or more likely, on the TOPP blog and then link to it from here) when that’s a wee bit more settled. Suffice it to say that it works nicely with my dual obsessions of learning about software and teaching other people how to use it, and requires that I do a lot of of doc writing in addition to my coding (which makes me happy - I’m weird like that).
In the meantime, lack of official assignments have never stopped me from doing work. (I usually prefer finding my own tasks to do, actually.) In addition to learning the bewildering new array of tools (couchdb is pretty sweet, and pylons equally so, though I have not figured out how to use nosetests yet), processes, software, and people, I repeatedly hit walls building the openplans stack on David’s tower on Thursday and decided to go MEL SMASH! on the documentation, with a lot of help from the Very Smart Developers (thank you for putting up with my incessant questions, guys).
We now have new-dev-coherent build instructions (still needs some tuning, as I’m consolidating them into a script and want to test them on other platforms to make sure they’re not Ubuntu-specific, and a lot of other really good feedback from the openplans devs). This wasn’t a huge job or anything, but is slightly less trivial than it sounds; my first build of the software stack took 3 people (2 of whom had been through umpteen builds before) and 5 hours because of some undocumented library requirements that took some digging through error messages to figure out (and it was apparently a relatively smooth, fast, low-manpower install, which scares me slightly). I can now complete a build in under an hour with most of that hour spent doing Other Things while files download in the background. This is good.
My big overarching goal is to make as much of openplans accessible to external developers as possible. I’m dogfooding here, since as a new intern I’m essentially in the position of an “external developer” coming in, only with the more-relaxed time and space required to document and improve the process since I’m not pressed to start fixing bugs as soon as possible. They usually give interns Barrett-2* problems, and my project falls into that category. (I say “usually” because I’m either the second or third intern ever, or… in any case, numbered low enough to count on one hand without using binary.)
* from Prof. Dave Barrett, Olin’s SCOPE (senior engineering capstone) program coordinator. Barrett-1 problems are mission-critical, live-or-die ones. Barrett-3 problems are ones that don’t matter at all. Barrett-2 problems are ones that would be super-helpful to solve, but aren’t in the critical path of deployment, and which consequently none of the normal employees has time to do.
This is kind of silly, but I love the free lunches, which are usually large enough that I don’t have to eat dinner as well. Really nice perk, and it means I’m eating much better than I would otherwise (when I make my own food, I eat the cheapest stuff I can get that’s vaguely nutritional, meaning bowls of vegetables and rice and beans which aren’t too tasty). This week we went to a nearby burrito place, and I got a huge, steaming beauty the size of a small infant, slathered with two types of salsa, guacamole, and sour cream. The day before that was Indian food. I am stunned at the prices New York restaurants manage to charge.
The space itself is amusing, as I mentioned at the start of this post. It’s in Manhattan and in a former stair factory (there’s still a winch on one loft ceiling) that got turned into 3-4 different apartments, and then our office. One of these former apartments was apparently owned by a shoe designer with an obsession for Greco-Roman interior design, and is rife with figurines of cow heads, ornate tile patterns, gold-painted fixtures, huge plaster figureheads on the walls, and Very Large Ionic Columns proudly lifting up the loft and encircling the neon-blue-lit room. This section of the office is referred to colloquially as the Porn Palace, which makes for interesting room-scheduling emails.
So that’s what I’ve been doing with my life lately. Over this weekend (among other fun things) I’m going to sit down and figure out how I’m going to re-fit everything else back into my life as well, although I think I’ve started to carve out more time for OLPC and some other projects that I was doing before while still getting sleep. It’d help if I lived in the city and didn’t have a 2.25 hour commute to New Jersey each way (yes, I spend over 4 hours in transit daily) but I’ll take what I can get, which in this case is free rent (hurrah for uncles!) that allows me to save up to run the OLPC Chicago grassroots office this summer. (My parents will complain here about me using all my time/energy/money to do things other than taking care of myself, to which I reply “but I’m happy doing this, and more helpful.”)
It’s a good way to start off the Chinese New Year.
Saturday, February 9th, 2008 | Uncategorized | 4 Comments »
On Bunnie’s name that ware contest, I stare befuddled at the boards, maybe searching for a couple of part numbers at best. And then watch people comment within minutes with detailed analyses of how the thing was designed, sometimes manufactured, sometimes even commentary on the above two - and guesses (some correct!) about exactly which consumer product it is.
Whenever I’ve taken something electronic apart - fairly rare, given the lack of scrap gadgets in my life and the early-childhood moratorium on disassembling things like my hearing aids - my reaction usually consists of two things: (1) Ooh, that’s pretty, and (2) I have no idea how this works. And usually the “ooh, that’s pretty” part refers to how they did the physical layout, packaging, and injection molding, which is something I had a brief exposure to before college because next to my dad’s office is one of their company’s small manufacturing plants.
When I watch someone else take something electronic apart (five times: once with a Segway in Gill’s robotics class, an electric toothbrush and a mouse at Continuum, and an XO and Classmate at OLPC), it’s all I can do to keep my understanding afloat amidst the rapid fire commentary (and then only by writing down the terms I don’t get and googling them later. “Oh, BGA means ball-grid-array. Ohhhhh.”)
The nice thing is that once I “get” a tear-down, I can explain it to other people pretty well, particularly non-engineers. I don’t want to just be a geek-to-english translator for the rest of my life, though - I want to speak fluent hackerese and be able to analyze tear-downs myself, and maybe even someday design things that other people tear-down. (Yeah, I’ve made things. Simple things. But they kind of suck and would never be manufacturable.)
Or maybe I can just keep trying to get Better At Stuff by working out puzzles (I’ve forgotten the orthagonality of sines proof - vital to the workings of the Fourier transform - and am trying to figure it out again without references) and Building Cool Things once I… have enough money to buy parts and equipment. I’m starting easy with building a generic USB peripheral kit for the XO and then customizing firmware on its PIC (…not my idea; I have a suspicion AVRs would be easier to program under Linux) for DyD’s telehealth module.
DyD also introduced me to an electronics chatroom (#electronics on irc.freenode.net) and I’ve started subscribing to electronics blogs in an attempt to catch the crosstalk I so often just can’t hear in labs, classes, and workspaces. (Bob Pease articles, introduced to me a few years back by Gallimore, are awesome, but take forever for me to get because I have to trace every wire in his circuit diagrams and look up half the terms he uses.) I’m mostly looking for online stuff now because I can’t yet afford a non-student IEEE membership renewal. (Or my ACM one. Or my ASEE one.They’re electrical engineering, computer, and engineering education societies, respectively.) At least until my first paycheck comes in, and I should really be spending that on… food, and buses.
To the non-techies in my life - apologies for the rapid-fire commentary. Translation (engineers, feel free to correct me): the Fourier transform is an important math tool for engineers that lets you separate signals into their frequency components - the easiest way to explain it is that it translates the music you hear into the flashing bass and treble bars looking pretty on your equalizer, and can go in the opposite direction as well.
USB (Universal Serial Bus) is a protocol, a language computers use to talk with one another, and it’s the language your mouse/camera/thumbdrive uses to talk to your laptop (”Hi, I’m a mouse! I’m moving left! I clicked!”) when you plug them in. Universal == works with everything. Serial == messages come in to the same single place, one at a time, one after another, in contrast with parallel when they all come in at the same time but into different places. The difference between people lining up to pass through a single door (serial) or everyone stepping at the same time through different doors into the same building (parallel). Bus == the fancy word engineers use to describe a pathway that data can run through - most of the time, this means wires.
I’m building a generic peripheral kit to make it easy for kids to make their own USB game controllers/keyboards/joysticks/etc - I hope. The software you write to go inside the mouse/keyboard/joystick/whatever so it can talk to your computer usually runs on a really small computer called a microcontroller (mcu), and we call these instructions firmware. The PIC and the AVR are two brands of microcontrollers, just like Whirlpool is a brand of washing machine, and since I like being platform-flexible I’m going to try to make the peripheral kit with several options for mcu brands if I can. The XO is the laptop designed by OLPC, but I think most of you knew that already.
In the meantime, I’m learning a lot about software, which makes me extraordinarily happy. Lots and lots and lots. More on this soon.
Saturday, February 9th, 2008 | Uncategorized | No Comments »
In New Jersey. Lugging all of one’s worldly possessions (minus books and electronics-that-are-not-laptops) via Fung Wah is dirt cheap, but my back really hates me now.
Ebullient amounts of thanks to everyone in Boston who made it worth not sleeping for 3 days - my aunt and her family and their fridge full of soy milk, the OLPC folks at 1cc who welcomed a tired geek with luggage and strange Filipino candy with open arms (it was great to see folks from this summer again, and meet some new people in person at last), the Maker House crew who groggily opened their futon to me at 1am (apparently a climbing wall was erected in the living room in my absence), and to my Olin buddies who came all the way out to Cambridge to discuss several dozen OLPC projects simultaneously, kept me up ’till dawn talking about Life and Doing Things and other Good Stuff, and allowed me to sleep on their beanbag chair.
If you’re in New York and would like to get together, drop me a line. I start work on Monday. I’m excited. And I hope I can figure out my weird wifi bug tomorrow before I start coding on bandersnatch (my laptop) full time.
Time for an excessively luxurious 5 hours of sleep before waking for meetings and church - I swear I’ll get more rest tomorrow night, mom.
Saturday, February 2nd, 2008 | Uncategorized | No Comments »