St. Martin

July 23rd, 2008 | |

This year’s family vacation was a 5 day adventure on St. Maarten/St. Martin, the 87 k^2 Caribbean island split horizontally into sides governed by the French and Netherlands Antilles. We stayed on the French side in a condo on the water in Orient Bay, a location renown for it’s nudist resorts.

The place lives up to its reputation. Mother, hopeful for a McKellar Christmas card opportunity, tried to snap a shot of an octagenarian in nothing but sneakers and ankle socks power-walking along the beach as part of his early-morning routine while Father, predictably goofy, ogled the bodies and tried to engage them in conversation, eager to use his French on whoever would listen. Olivia and Max were horrified by the man thongs and topless grandmothers, but I think the exposure to body-positive cultures was good for them.

Literally within a half-hour of reaching the condo, Max’s hunter-gather instincts kicked in, with his sights set on fresh coconut. After volleying old coconuts at one ripe specimen hanging from the tree in our yard to knock it down, we husked it with a screwdriver and hammer (a non-trivial effort), froze the juice to make popsicles, and enjoyed the flesh while lounging in the backyard.

Most days were spent at a beach or perambulating along the streets of Marigot and Phillipsburg. Most nights were spent, well, at a beach, watching international news, or bonding over card games (I taught my siblings Sheepshead!) and guavaberry liquor.

The promised wireless proved fictitious, so addict that I am I had to get creative about how I was going to keep up with zephyr and work on my mad sploitz while on vacation. After surveying the area surrounding the condo, I determined that, somewhat bizarrely, the only password-free wireless was in about a 6×6x6 cube of connectivity obtained by perching on a brick wall framing the neighbor’s lawn. To get power I had to connect my power brick cable through an adapter to a multiple outlet strip I’d found hiding under Olivia’s bed to an extension cord scavenged from a downstairs lamp and plug that into an outlet near the front door of the neighbors 2 doors down. In an effort to bolster my C for 6.828 in the fall (and also because it’s just a lot of fun) I’ve been going through Hacking: The Art of Exploitation, which I stole from dvp and never returned. My PowerPC Mac doesn’t use x86 assembly so that made my self-education a bit of a challenge, but spawning a root shell using buffer overflows for the first time was quite satisfying.

MTV Hits was the only music channel on the television, so I caught up on my pop music and the endless supply of mediocre rap and dance tracks. Olivia and Max, always Keepin’ It Real (I am too white, both literally and figuratively, Olivia says), taught me the Soldja Boy (a dance), while I supplied music from my radio show for a number of spontaneous dance sessions.

Midway through the trip, maggied and I discovered that we were in fact both vacationing on the island! We met for lunch in Phillipsburg so she could experience the antics of the McKellar clan. She can now vouch for my parents’ happy-go-lucky and slightly senile ways.

I’m not much for relaxing (couldn’t you tell), so after day 5 I was happy to hop on a plane, a wee bit tanner, substantially more freckled, and eager to resume work the next day.

A few photos from the adventure can be seen here.

Goodbye, Kai

June 19th, 2008 | |

Yesterday evening was the Committee on Academic Performance end of semester dinner and a close on some of the most interesting cases I’ve experienced as a member of this committee.

What do you do with a student who has a 2.7 cumulative GPA, was on warning, managed a 0.0 GPA this semester, and who is up against a vote for required withdrawal but has actually completed a music degree (minus some of the GIRs) with a 5.0? His parents refuse to let him get anything other than an engineering degree and he either can’t (perhaps for monetary reasons?) or won’t stand up to them. I only half-jokingly suggested printing off a fake chemical engineering degree for the benefit his parents and encouraging him to run away with the earned music degree.

What do you do with a student who’s in academic trouble because she has taken on 2 jobs in an effort to pay for tuition herself; her wealthy, deadbeat, divorced father refuses to file the paperwork for financial aid, but she doesn’t qualify to apply for aid as an independent (I had a long talk with the representatives from Financial Aid about the seemingly unsympathetic policies regarding uncooperative parents. To qualify as an independent, you must be 24, have a dependent, have served in the military, or a satisfy one of a small number of other criteria. If your family refuses to pay, tough luck - you generally have to demonstrate proof of abuse to get considered).

What do you do with an international student is who is consistently failing at MIT but writes you a heart-wrenching letter describing how if he’s forced to withdraw he will have to return to his home country, only to be ripped away from his family by conscription into years of perilous military service? The advisor cannot do much but relay the unfortunate story, admit he’s had his chance, and hope for the best.

A particularly difficult, nuanced, and sometimes divisive case involved a discussion of the precedents and formulation of future policy for awarding posthumous degrees.

I’ve really grown into my position as the senior student representative on the committee - I’m proud to say that I’ve both given speeches that have turned the vote around in cases recommending requiring a student to withdraw and been the lone hardass ‘No’ vote for sob-story petitions from students who claim they don’t know how to fill out add/drop forms.

Sitting next to Eric Grimson, my academic advisor and fellow CAP member, we’d chat about life in the department and I’d try to tease out stories about the AI Lab in 70s and 80s. We’d listen to longtime friends Ri Romano from the Registrar and Paul Lagace from Aero-Astro banter about life at MIT back in the day, while Ayida Mthembu from Student Support Services regaled us with stories of the Black Power movement while she was in college at UCLA. The familiar faces from Medical, S^3, Freshman Advising, and Financial Aid, the warm, talkative professors, and the benevolent leadership of Kai von Fintel, who is leaving us to become Associate Dean of the School of Humanities, Arts, and Social Sciences, have made this an illuminating and enriching experience - one that I think I’ll look back upon after leaving MIT as one of my most valuable.

I look forward to continuing in my capacity as a committee member in the fall.

ITA

June 15th, 2008 | |

This summer I am working at ITA Software, a company just down the road on Portland Street, founded by MIT alums from the AI Lab in 1996 and one of the largest users of Lisp outside of CSAIL. ITA created the behind-the-scenes pricing, shopping, and availability management system used by United, CheapTickets, Orbitz, and other online reservation companies.

I am interning in the Software Operations division. To quote the website:
Software Operations is responsible for deploying and maintaining ITA’s code base in production. We deploy, upgrade, patch, and fix our running code, and spend our spare time automating and innovating to streamline the processes and improve service levels.

My initial responsibilities involved running, reporting on, triaging, debugging, and rerunning a daily battery of test suites for various deployment environments. Starting this week, I’ll be one of four interns working on what I’ve dubbed “magic intern project”. The actual title is the “BI (business intelligence) project”, which leads naturally to the creation of an IRC channel with the topic set to “Let’s call me…bi-curious” (which my boss found amusing). This project entails consolidating data from the backends for a variety of infrastructure management tools (tix, bugzilla, etc.) to do some analysis on and extrapolate trends for how these tools are used and presenting the results in a web front-end. In my free time I’ve been playing with relational database management systems, boning up on my shell scripting, and revisiting python from an object-oriented perspective.

To say that the atmosphere at ITA is casual is an understatement - I think the trio of guys with whom I shared a corner room for the first few weeks swear more than my hallmates on Beast, even interns set their own hours (although I’ve been sticking to a 10-6 schedules because that’s most compatible with handling the test suites), and the Friday 3pm meeting consists of the Ops people crammed into the boss’s office for beer, music, a little guitar, and perhaps tiaras if it’s Casual Princess Friday (I’ve yet to experience this variant…), under the reflecting lights of a discoball. My living expenses have dropped dramatically since the rows of breakfast cereals, candy, and snacks, refrigerators stocked with milk, juice, sodas, and real food, and espresso and coffee machines take care of caffeine, breakfast and lunch, and the company is supplying me with a summer T pass, despite the building being a 9 minute walk from campus.

Camaraderie abounds - regulars stop by my office in the morning to sip coffee and chat, people team up for rounds of bughouse at lunch, the interns go out together, and the company holds weekly game and movie nights. This past Friday we surprised an intern with birthday cake and games of chess, and one of my bosses wants to start a game of Assassin. My bosses are friendly, approachable, and entertaining. All in all it’s been a pleasurable internship thus far and I expect to learn a lot this summer.

Nightfly Redux

May 29th, 2008 | |

The Nightfly is back! The first show since my semester-long hiatus is tonight at midnight, with the same theme as usual: a bluesy, funky mix of the old, the classic, the new, and the out there. A dangerous addition to the mix is the havoc wrought on my brain by 21M.263: Music Since 1960 this past term, as I now fully intend to inflict Terry Riley, Steve Reich, Philip Glass, et al on my audience as we settle in for the season. I’ll be keeping old playlists here.

Tonight’s show promises to be particularly groovy *spontaneous dancing to the Ohio Players as I refine the playlist*.

The Nightfly
88.1FM WMBR
Thursday nights: midnight - 1pm

My friend joeg is a new DJ this season. Call in and let him school you on music of the 80s (although his show draws from several decades) on Droppin’ Knowledge, which is Thursdays from 4-5pm.

You can see a full schedule here.
For WMBR’s website click here.

In Summary

May 16th, 2008 | |

What a term. Did I have much of a life beyond classes? No.

6.005 - Principles of Software Development: You know you’re in trouble when people say they are glad they were able to take 6.170 instead…6.005 was awesome for teaching me Java, teaching me a lot of useful design patterns, gaining experience with writing largish software projects, giving me lots of code samples to use when applying to jobs, and making me way more hirable. The downside was that this class should be 18 units and taught me to hate people. Not really, but several unpleasant experiences with randomized partners definitely drilled home the lessons about software engineering in the context of multiple programmers. Daniel Jackson, who is a fun and engaging lecture, is very invested in this class, though, and actively sought feedback throughout the semester (I attended both the breakfast and lunch he hosted for student feedback, in fact). My TA, akishore, was the best TA I’ve ever had - very knowledgeable, always available outside of class, friendly, engaging, and understanding during minor crises; as I discovered during the Festival Jazz Ensemble’s Herb Pomeroy memorial concert, he’s also an excellent tenor trombonist!

6.033 - Computer Systems Engineering: We were all told this would be awesome, and it was, both for the material and because all of SIPB was in it. The class basically teaches “a bunch of material a reasonably competent computer science major should know before graduating” regarding operating systems, networks, and security and features 2 design projects. Lecturers rtm and Dina Katabi were “adorable”, as I like to say, although they had to compete with the block of constant on- and off-topic zephyring in the back. Lewis Girod, mild-mannered and endearing Cannytrophic denizen (wdaher, jhawk and I even ventured to a Cannytrophic party in part to investigate), was my recitation instructor.

6.034 - Artificial Intelligence: Such high hopes. Such disappointment. The material (machine learning and classification, search, constraint satisfaction, logic, natural language processing) was engaging if taken out of context, but the disorganized staff and a series of delayed or cancelled assignments really ruined the experience for me. However, I don’t appear to have learned my lesson, as I’ll be taking 6.864 (Advanced Natural Language Processing) next term with one of the AI professors.

6.042 - Mathematics for Computer Science: the excellent company at Table 7, including El Presidente njess, lizdenys, akashs, amy_jo, and our extended family at Sunny’s Diner made up for the 9:30 am TEAL-style lecture and actually-mostly-okay but sometimes frighteningly enthusiastic lecturer Albert Meyer. The material, which I was surprised to enjoy so much, was a mish-mash of useful introductions to concepts that will show up in other CS classes - everything from proofs and partial orders to graphs, counting, generating functions, and probability.

21M.263 - Music Since 1960: Class 1: 20 minutes spent watching a video of a guy in a helicopter making scratching noises on a cello. Insufferable. “This is not music”. Considered switching music classes. Class 7: minimalism. Einstein on the Beach. I am in love. The music in this class ranged from repulsive and disturbing to trippy and mesmerizing to subtle and cerebral, but always engaging and worthy of discussion and analysis. Professor Cuthbert, the only humanities professor nominated for this year’s Big Screw, is somewhat eccentric and a fascinating character to watch - I thought he did an excellent job of easing a class with a wide range of backgrounds into some pretty challenging music. I was pleasantly surprised by the quality of in-class discussion and the genuine interest of the students in the material.

Classes: Spring ‘08

February 3rd, 2008 | |

This semester I am taking No. Chemistry. Classes. I cannot emphasize how excited I am to finally take a semester as an actual computer science major. Eric Grimson, my CAP compadre and the EECS department head, will be my Course 6 advisor. My classes are as follows:

6.005 - Principles of Software Development: This new class, a replacement for the infamous 6.170, will be in just its second semester of existence; Maslab got me excited about writing some fun, moderately sized projects in Java, and the class was extremely well received last semester, so I have high hopes (and will possibly even be employable afterwards).

6.033 - Computer Systems Engineering: Approximately all of SIPB is taking this class, and wdaher and yoz are TAing, so it’s guaranteed to be a party.

6.034 - Artificial Intelligence: Featuring TLP and a very appealing syllabus, I look forward to a stimulating class and the opportunity to use Scheme in this new context.

6.042 - Mathematics for Computer Science: Necessary, fundamental material, taught by the perennial Albert Meyer. We’ll see how I handle the TEAL format and mandatory 9:30am lectures/group problem-solving sessions.

21M.263 - Music Since 1960: My 8th HASS and another step towards the music minor. Taught by Cuthbert, this class should be good fuel for my radio show.

My schedule lives here.

IAP

February 3rd, 2008 | |

True to form, I managed to overcommit myself this January. I was basically working 16 hour days every day when I was being responsible, but that was okay because I was having plenty of fun when I was punting during the myriad IAP adventures to make up for the hosage.

The month was dominated by Maslab (6.186), the Mobile Autonomous System Laboratory, an autonomous robotics competition in which I participated with maggied, khalsah, and dfelds. In several ways the class is a more grown-up version of 6.270, which I did with maggied last year; teams are given a computer running debathena and an opportunity to use basic parts likes wheels or IR sensors provided by the lab, but everything must be designed, machined, and constructed by the teams.  I ended up being mostly a hardware person and was responsible for the assembly, mounting, and maintenance of our IR sensors, bump sensors, gyroscope, and rotary encoders, as well as taking the robot on innumerable test runs, although I had a relatively robust Wandering class (we use Java) by the end. Maslab was first and foremost an exercise in team dynamics.

Our team’s journal, final paper, and amusing anecdotes live here, here, and here.

My weekdays actually started with Infolab from 9-noon. I am very excited about one of our new projects which involves scraping Wikipedia infoboxes; given their size and scope this is going to require completely revamping and automating how we construct classes and natural language annotations, and I want to apply these changes towards bolstering our treatment of collectives and superlatives as well as scraping interesting web 2.0 sites.

I organized the Student Information Processing Board’s IAP class offerings and additionally taught an Introduction to LaTeX class through SIPB IAP as well as an Introduction to Blues Piano class, both of which were very well attended (I actually had to split the LaTeX class into two sessions to handle the overflow) and a great deal of fun (thanks to all the SIPB folks for supporting/entertaining me).

This year I participated in Mystery Hunt with GroovyTron, the Mayhem splinter engendered by huberth and including glasser, alexmv, dvp, and a slew of other Guild types/Randomites. Palindrome’s hunt, themed as the unsolved murder of Dr. Awkward, was long, difficult, and had an unsatisfying structure with an aggressive puzzle release schedule that left almost no one ahead of that curve. However, wrap-up made me appreciate select puzzles and the team management difficulties they had to address in the months leading up to the hunt.

The Committee on Academic Performance end of semester session was relatively straightforward, and at this point I’m familiar enough with the faculty and staff that the banter with Paul Lagace, Eric Grimson, et al is my favorite parts of the commitment. In addition, I had The Nightfly every Monday (and I hope to continue my radio show through the spring semester).

6.004: A Love Story in 9 Parts

December 30th, 2007 | |

6.004 grades are determined by performance on 5 quizzes and the completion of 8 labs plus several optional assignments. The labs, which take you on a pretty epic journey from humble beginnings with CMOS circuits and building your own gate library to the beta and a simple OS, are generally low stress/high reward and thus quite satisfying.

Lab 1: Learn the jsim syntax, play with CMOS circuits, and write a CMOS circuit that implements the logic F(A,B,C) = C+A.B. Here you can see the always sexy green-on-black jsim plot window on the left. The satisfaction of the “verification succeeded!” pop-up will never get old.

Lab 2: Implement a 4-bit ripple-carry adder. I used cascading XORs (as opposed to NANDs). Here is a plot with the input bits (a and b) and the output (s).

Lab 3: Build an arithmetic and logic unit (ALU) which takes two 32-bit inputs and can perform comparisons (CMPEQ, CMPLT, CMPLE), boolean logic (AND, OR, XOR, “A”), left and right shifts (SHL, SHR, SRA), and basic arithmetic (ADD, SUB). I also did the optional design problem of implementing a multiplier for my ALU, which I scripted in python. Here are a basic plot and zoomed-in image which show the inputs, operations, and outputs.

Lab 4: write the finite state machine (FSM) controller for a Turing machine which checks to see if a string of left and right parentheses is “balanced”. This lab (which used TMSim, our first departure from JSim) was a relatively open-ended assignment with many possible implementation and was my favorite 6.004 lab. I completed it in the minimum two states. A video of the FSM in action can be seen here.

Lab 5: Write a scoring subroutine in Beta assembly for “Moo”, a numeric version of Mastermind. I just hand-compiled the C-implementation given to us in the lab handout.

Lab 6: The Beta! Written in jsim, this project, easily the longest of the labs, was completed in several stages. A program counter (PC), 3-port memory register file (regfile), and control logic (CTL) were combined with the ALU from lab 3 to create a basic block. Support was then added for interrupts and illegal instructions, supervisor mode, branching, and jumping. The greatest debugging problem was discovering that my ALU didn’t shift right arithmetically correctly, despite passing lab 3 verification (oof).

Here is the unpipelined beta diagram, and here is a summary of the beta instructions and opcodes.

Here are the epic plot output of the checkoff code and a zoomed-in image showing some actual instruction execution.

Lab 7: Implement software support in BSim for 2 new beta instructions: byte-store (STB) and byte-load (LDB). Some code and output are here.

Lab 8: Extend a simple timesharing system in BSim. The original OS accepted keyboard input and echoed the characters to the console. After hitting return, the whole line was translated into Pig Latin and outputted to the console. The prompt would display the hex count of the number of time the user-mode processes had been scheduled thus far. We made several additions: a mouse interrupt handler, a Mouse() supervisor call which then allows you to display the number of total clicks at the prompt, a fourth user-mode process which reports the coordinates of the click, and (the best part) using semaphores to synchronize mouse reporting with other I/O.

A video of the timesharing system in action can be seen here.


Design Project: Optimize your beta to gain points based on how well it does against four benchmarks. I ended up getting 8 points by: axing my multiplier, axing my shift-right (the benchmarks never used it!), eliminating 1 memory port, switching from a generic adder to a +4 incrementing circuit for the PC, switching to negative logic on several critical paths, and changing my ripple-carry adders to carry-select adders.


What an adventure.

A Scheme Halloween

November 22nd, 2007 | |

I am taking 6.001 - Structure and Interpretation of Computer Programs this semester. This is the last time the class will be taught, as Course 6 is phasing in a new curriculum, and to come full circle the class is being taught by Gerald J. Sussman, the man who helped develop Scheme in the 70s, wrote SICP, and taught the first several incarnations of the class. It is my favorite class to date at MIT and I am frequently accused of fangirling Sussman.

The idea struck upon me several weeks into term to come to 6.001 lecture in a Scheme-related costume, seeing as how the October 30th lecture would be the last pre-Halloween 6.001 lecture ever. Encouraged by jhawk and others to expand this idea, mail went to several hundred people through a variety of mailing lists:

Date: Sat, 27 Oct 2007 21:06:25 -0400 (EDT)
From: Jessica T McKellar 
To: sipb-office@mit.edu
Subject: 6.001 lecture - Tuesday 10am 32-123 (fwd)

Hi all,

Relive the glory days of .001, or experience them for the
first time before the end of an era.

Be a cons cell! Velcro yourself to your friends to make a
box-and-pointer diagram! Wear your favorite lambda
expression!

October 30th, 6.001 lecture, featuring the illustrious,
adorable, and ever-quotable Gerald J. Sussman: Tuesday,
10am, 32-123. Costumes encouraged.

-Jessica

Vinayak and I went as a box-and-pointer diagram; jhawk was a Lisp machine. Dozens of random non-students showed up, and Sussman looked quite pleased with the efforts. We even made the front page of The Tech.

A few photos can be seen here.

This is The Nightfly on WMBR 88.1…

November 22nd, 2007 | |

Over the summer, Arfox convinced me to apply for a radio show on WMBR in the fall. I did, and coerced Vinayak and Drew into applying as well, and we were all slotted! My show, The Nightfly, is on Monday at 1am; Vinayak and Drew have Auditory Stimuli at 2am on Thursdays, and Arfox brings us Intentionally Left Blank at noon on Saturdays. The studio is a cozy set of rooms in the basement of Walker.

A full schedule can be found here.

If you’d like to listen to a show and aren’t near a radio you can listen to a live stream off the main site. Shows are also archived for about 2 weeks.

My shows are blues/soul/funk oriented, with an effort to mix some of the surprisingly soulful modern pop/rock I’ve found into a solid classic r&b playlist. Old playlists can be found here.

I’ve had 8 shows so far; highlights include Show 2, when my father called for the first time and pretended he was Dr. John, Show 7, when Waseem was a guest DJ who engaged the audience in a rousing discussion about arch-nemeses, and Show 8, which was ALL 90s POP. I promise you no more and no less than 1 Beck song per show. The running commentary provided by Zephyrland and 2E/SIPB in particular have become an integral part of the experience.