Garden

Baby basil

Building on my success last year of managing to not kill a basil seedling, this summer I’ll try having a garden. To that end, I started in March with basil, rosemary, peppers, and tomato seeds. So far, some 24 plants, mostly tomatoes and peppers, have survived to the hardening-off stage and are ready to go in the ground in a couple weeks’ time.

On top of that, I have a few basil plants that will remain indoors, and a couple of very poor looking rosemary sprouts that may never reach adulthood. This represents quite a few levels up in my plant-tending acumen, as until now the only things I have been good at growing are dandelions in my lawn.

Plants

Halloween, 2014 ed.

2014 Halloween CostumesI believe I added just enough blog posts this year that there are not two years’ Halloween posts on the front page at the same time. That would be sad.

Alex told me in September that October was his favorite month of the year, “because Halloween.” And every day for the last few weeks, he would ask, “is it Halloween today?” I can only hope that this year’s candy crawl met his expectations. He went as Captain America, a decision that was entirely his own. Ian went as a penguin, or at least he wore parts of his penguin costume throughout the night, rarely all at once.

2014 PumpkinsFor jack-o-lanterns we went with a space theme this year: a space shuttle on one and Kodos on the other. I tried etching rather than carving but I couldn’t get the technique down, so I wound up carving for the most part. One fun addition, albeit short-lived, was the use of sparklers instead of LED candles as lighting. Next year we’ll use rocket engines.

Pumpkins all Pumpkiny

It is a bit late for a Halloween post, but insert lame excuse here. Consider it a counter-balance to the force that causes Christmas decorations to show up in stores in September.

IMG_4305This year I chose Toopy and Binoo, a Canadian children’s cartoon pair that you have probably never heard of, as subjects for my pumpkin carving. Unfortunately, the pumpkins shriveled quite quickly, and the designs didn’t lend themselves well to preservation, so by Halloween, they grew a toothpick scaffolding to maintain their facade. Next year, I believe I’ll try not cutting all the way through to avoid such issues. (I’m not sure what that technique is called, but some of the more artistic neighbors employed it to great effect.)

5 minute pumpkinImprovised pumpkin lightInside these gourds I used little battery-powered LED lights made for the purpose instead of actual candles. While LED lights don’t look nearly as nice as real candles, one need not care so much about potentially setting things on fire. On the evening of the 31st, as a few groups of kids had already arrived and absconded with their hard-earned treats, I found myself with a third pumpkin untouched by blade, but no light (or candle) to go in it, should I decide to carve it. Then, I remembered my extra spools of SMT LEDs from the cabinet lighting project. I calculated that a 9 volt battery could power three such LEDs for about 10 hours (that estimate was conservative by a factor of 3, it turned out — I need to go back to EE school). Thanks to various other projects, I already had some speaker wire with alligator clips on each end, so, in the course of 5 minutes, I threw together a functional pumpkin light, carved a few holes in the pumpkin, and called it a day. No need to clean out the guts when open flames are not a factor.

IMG_4423For his first Halloween, Ian went as a dragon. Typical of his recent enthusiasm for all things space-related, Alex went as an astronaut. Instead of saying “trick-or-treat,” he would announce, “Hi, I’m Alex. I’m an astronaut!” Much candy was received, all the same.

New house, new projects

This year I attained permanent residency in Canada, and our family also attained permanent residency in a different way, by buying our first, and probably last, house. We moved into it a few months ago, a fact I neglected to remark here, so if you are mailing me something, and for some reason read my blog, you’ll want to ask me for my new address.

With the house comes plenty of things to work on that are only marginally interesting, so I shall proceed to bore you with them from time to time.

I completed my first mini-project this weekend: installing task lighting in the kitchen. Our builder wanted to charge hundreds of dollars to put in (environmentally unsound) Xenon lights under the cabinets in the kitchen. I, having zero experience with house wiring, thought “I can do that!” Thus, we opted to have them install just the house wiring but we would take care of the lights.

led-spoolWhen I was a wee undergrad, LED lighting was then just around the corner. Installations existed, but they were terrifically pricey. Now, hundreds of years later, you can get lots of them on a spool for a few tens of dollars. The particular ones I purchased (from Amazon) come as a ribbon of copper with sticky tape on the back. The ribbon is essentially one 16-foot wire with groups of three small LEDs and a resistor in series, and each group connected in parallel. To use it, you just cut to length, and then solder on power and ground from the +12 volt DC power supply (sold separately). I went for ‘warm white’ LEDs (2700K) which are a bit into the yellow spectrum; they are quite a bit softer than your average super bright white LED.

led-wiring2.jpgI mounted the LEDs via the aforementioned tape on the back of the cabinet valence, and the power supplies on the cabinet undersides. The power supplies are designed to plug into a wall socket, but since we had junction boxes for the lighting pre-installed, I simply cut the ends off the cords and wired the DC supplies directly into the boxes. The house lines were already wired to a circuit with a wall switch, so that was all that was required. Each strip worked the first time.


Under cabinet lightingAll in all, it was a pretty uneventful install — the kind you want when dealing with A/C. I still need to staple up some hanging wires to the cabinet underside, but otherwise it’s finished, and the end result looks great.

Olio

I neglected to write up anything on the blog in November despite it being the penultimate of months, so here’s a meandering catch-up post to atone. My apologies for the gratuitous self-linking that is about to ensue.

On Halloween: our 2-year old went as Kung Fu Panda (his favorite movie, and yes, shame on his parents for letting him watch movies) for Halloween this year. He was quite excited to learn that you can just go ask for candy from strangers and they will give it to you. He has mastered enough language to say “Pumpkin Scary,” which he did given every opportunity on seeing the skull I had carved on the pumpkin on the right. The other pumpkin is supposed to be McQueen from the Disney Cars property; Alex called it “Pumpkin Car.” They are now composting. So it goes.

On Thanksgiving: being a half-US, half-Canadian family, we get to celebrate both Thanksgivings: the fake one and the real one. And so we did. It was great spending time with the family and meeting up with some old friends in Atlanta, though we learned painful lessons about air travel with young children.

On Canada: I’ve now been in Canada for a little over a year. Among the observations I had detailed previously, I can now add these:

  • We do have a few days here in the summer that qualify as hot, but no, it does not get Georgia-in-August-hot.
  • Canadian Coca-cola is superior to non-KFP USA Coke, and despite what the PR machine in Atlanta will tell you, you can easily tell the difference between sugar and HFCS when you’re used to one or the other.
  • Canadian TV is even more a wasteland when there is no hockey.

On Bash Goto: per my last post, I considered how hard it would be to write an x86 emulator in bash. Conclusion: despite the potential good fun in simulating %eip using ‘nl’ and sed, I’ll leave this task to someone else. However, I did improve my actual implementation of this somewhat. One easy win is to put the jump labels inside comments so that an ordinary run of the script won’t barf. And so that is what I did.

On Work: while I’ve been a contractor in name for the last year, I have now taken on some other contracts and thereby made this status more official. It was a tough decision to go this route versus, say, working on a salaried basis with some large, hypothetical mobile chipmaker with a Canadian presence, but so far I am happy with the choice. Most recently, I have been doing some Linux mesh networking stuff with Cozybit. It may be a while before any of it finds its way upstream (there are NDAs involved) but I claim that it is cool stuff. In the meantime, I get to continue slaying big data dragons at LP/Xmarks.

On HBase: speaking of HBase, two things have recently come to my attention. First, there is Hannibal, a cluster monitoring tool which was inspired by my post about beating gnuplot over the head with perl. I had nothing to do with its implementation otherwise, but it looks pretty cool. Secondly, I recently had an enquiry about my cache-oblivious code from some HBase folks. I’m not working on that either, but I am hopeful that something comes of it since it would be great if these ideas (not my own) percolate out into mainstream practice.

Halloween!

Jack-o-lanterns 2011 I made two Jack-o-lanterns this year. On the left we have Elmo and Cookie Monster, a nod to our 16-month-old’s second Halloween. On the right, my best attempt at a cacodemon from the old video game Doom. My general technique is to sketch up the design in Inkscape, print it out, transfer the design to the pumpkin somehow, then go to work with one of those little pumpkin carving saws. The cacodemon was a bit simpler so I skipped Inkscape and free-handed it with a sharpie.


Pumpkin seedsWe tried toasting the pumpkin seeds. While edible, I found the eating experience akin to that of eating un-popped popcorn kernels. I’ll probably give this experiment a miss next year.


IMG_9177 In Canada, giving out chips is almost as popular as giving out candy. As new Canadians, we are following suit: visitors to our house will get tiny bags of Doritos. I guess that means no Coffee Crisps, Aero bars, or Smarties for me (these locally available confections have yet to cross the Lake).


IMG_9175I also had grandiose plans to make Alex a costume, but faith in my fabric sewing skills waned a bit as the deadline approached. Angeline saved the day by picking up a costume at the local Carter’s, so he’ll be a tiger this year. Fear.

Hello from Canada!

My family picked up and moved from the DC area to the surroundings of Toronto last week, and we still have all our limbs intact! My wife and son are here as citizens, while I am a lowly visitor, at least until my immigration paperwork goes through.

We are in the so-called Greater Toronto Area (GTA), which means we are in the part of Canada that is not Montreal, Vancouver, or Toronto itself. That’s Greater-with-a-capital-G: it’s about a 90 minute drive to get downtown from here.

So far my experience as a Canadian resident is much the same as that as a US resident. One must just learn the proper mental substitutions: Comcast is now Rogers, Target is Zellers, Digiorno is Delissio, Nabisco is Mr. Christie, bathroom is washroom, miles are kilometers, degrees Fahrenheit are now degrees Celsius, Throwing Away Garbage is now Composting.

Things are expensive. A whole chicken costs $12, while it would be $7 at our previous place. And the Canadian dollar is more or less at parity with USD these days so that’s still real money. Albeit money that comes in various pretty colors and shiny coins.

We live near one “Taunton Road.” I can’t shake the image of the internal organs of Hothian beasts whenever I drive on this one.

Moving our 92 boxes worth of earthly goods (among them, over 600 books) turned out to be easier than we expected, apart from the two weeks of packing time. Customs took us about two hours in all. The movers delivered our stuff within a week. It will still be some time before various wrinkles, such as managing to receive snail mail, are ironed out, but hopefully before long this house we are renting will feel like home.

To our stateside friends, look us up if you happen this way. Our email addresses survived the move but not much else in the way of contact info.

me &= ~grad_school

An unassuming cardboard tube arrived in the mail the other day, containing my MSCS diploma from Hopkins. Thus passes my academic career. I doubt the experience will ever pay for itself financially, but I did learn a great deal, even as a crusty practitioner of some years. Returning to the student life of never-ending deadlines took quite some getting used to, and the corresponding lack of sleep was good training for Alex’s concurrent arrival. (Said arrival also made up my mind to not pursue the thesis option.)

In the main, the classes were excellent, but the small size of the school means the catalog is limited compared to Georgia Tech. For example, I would have liked a class or two on the hardware side. Hopkins only offered the equivalent of GT’s CMPE 2510 (MIPS architecture with the Hennessy and Patterson book).

Through projects and reading papers, I gained a new appreciation for the difficulty of good science, and the prevalence of bad. I’ll always be an engineer first, as I lack the patience to do science well. Banging out a project out in 2-6 weeks was de rigeur; here are some of them:

  • A handwriting recognition program based on HMMs (basic stuff, but I had no prior machine learning experience)
  • A user-space version of mac80211 hwsim. With the simulator, I evaluated the Linux rate controllers for different rates of packet loss, and found and fixed a bug in Pid. There are a few things in Minstrel that can still be improved, but there’s no surprise that it is much better than Pid.
  • A failed investigation into cache-oblivious data structures for filesystems. It’s tough to beat B-Trees at their own game. Still, I’m very excited about CO algorithms since this stuff wasn’t even around when I was an undergrad. Hopefully the right problem will come along.
  • Demand paging and swap support for xv6. This was a class assignment, but I had a lot of fun putting it together. [Code deleted from the internet at prof’s request.] The swap daemon was crap due to time constraints, but most groups didn’t get beyond identity mapping.
  • An evaluation of parallel algorithms on massive graphs. I now have a better appreciation for the ease of implementation, and horrible performance, of barrier synchronization.
  • A streaming categorical ranking system for twitter graphs. Note to NoSQL graph DB developers: Postgres is still much faster.

There are of course writeups associated with all of these, but my latent inner perfectionist is not very happy with most of them. I might revisit them with more rigor if I get bored some day.