Finally Feeling Better(tm) 1/23/10
At least physically. Mentally, I feel as if I'm riding through a bit of a cluster right now. On the other hand, I'm at the point where I'm surprised if there isn't at least one part of my life blowing up or horribly neglected. You probably want to hear about other thinks. I had a head full of philosophical thoughts for a while, but I edit photos instead. Now I'm caught up with everything between here and thanksgiving.
I took surprisingly few photos in Cambridge. Its a beautiful town, but I seem to have self-moderated my itchy shutter finger. Most of the ones I took I liked though, a nice surprise. Though several depart from my traditional photographic aesthetics. If it looks pleasing/interesting, how can it hurt?
Unsharp mask is equivalent to a free F-stop or two. Wow. I'll wax philosophical later when I'm more in the mood. It has a bad habit of producing many more questions than answers. I'd also like to promise more photos, but with the semester starting Monday, it would be made in bad faith.
Logical Break 12/17/09
I'm getting a feeling for what it might mean to work as a cs prof or grad student in that I've got several projects ahead of me and don't really mind sitting down and ironing things out. I've been quiet mainly due to homework and projects. I'm done with classes now. I'm about done with IP over DNS for the time being. I'm writing a thread safe node compressed patricia trie fragment cache for it(say that ten times fast), and making some documentation for a future acm presentation, but that will be it for a while. I could use a break. I want to work on things like pictures for a bit before I start getting serious on developing a modern thread safe malloc for next semester's research(and to keep a promise to the plan 9 community).
I do want to take some time to talk about the project though(I'll probably make a project website at some point). The idea is to use domain names as a covert communication channel in such a way that it interoperates seamlessly with regular servers and caches. In this way, its very much a VPN over DNS solution. Unfortunately, dns imposes all sorts of limits that restrict the data rate to about 55 bytes/packet. The synchronous client achieves 900B/sec, the asynch bursts 9K/sec before it triggers DOS protection.
I had to write over 3k lines of code for this project, ranging among network APIs, lock free queues, data transforms, and way way too much dns code. I really enjoy developing threaded applications as it challenges me to critically examine intercommunication, time, and resource needs. Not to mention being a bad ass approach to dealing with modern hardware. It makes me pine for a several hundred core arm or mips chip to work on(so know how to do that), but that's another conversation entirely. My favorite piece of code to come out of this is a tun API that starts a thread to en-queue packets on a lock free queue and call a function pointer on receipt. A nice no spinner approach to the aio problem, and one that encourages modular handler design: handlers for short tasks can run inside the receiving thread, while larger tasks can be sent to other threads with small handlers. I can't wait to see grand central dispatch.
Anywho, here are some flow charts for the clients and server to give you an idea of what goes into such a monstrosity. Grey boxes are threads, blue are functionalities. Blue boxes outside of threads represent thread safe shared resources. If you want to know more, please ask. Otherwise I'll leave it at this and get back to my 1000 new photo backlog.
Where did I go? 11.11.09
Something I might ask after being teleported. But a fair question. Mostly, I've been insanely busy. Or I feel that way. School and work have combined into a mind numbing blur. I wrote my first threaded program, my first thread safe data structure, and my first lock free thread safe data structure in the past three days. I've got a midterm in number theory tomorrow.
I exist, I just don't have much time to document it at the moment. I have Halloween pictures I've been meaning to upload, I just never remember them while I', at home. I think I have 2 more weeks till I go visit Karl. I think I may bring some fabric with me in hope I can return with a kilt and a little more millage on one of his sewing machines.
Break 10/21/09
Let me repeat that the month-day-year ordering is a pain in the neck as it defeats simple sorting. My actual entries are titled year-month-day-title as sort descending knows exactly what to do with that.
I should be writing a chat server and studying for my midterm tomorrow. Instead I'm taking a dinner/blog break. And I had a nightmare this morning during my 1 hour nap between when the cute one left for class and my need to leave for the same.
I was in a small work closet attached to an archaic underground lab, somewhat FMA or Indiana Jones style, with a large entourage. We had just found the cure to some sickness(swine flu?), and everyone except myself and a random lackey had followed those carrying it out of the room and up a floor or two to the surface. Still filled with the thrill of success, I started looking around again in case there were other important tidbits hiding in the dark recesses obscured by the single dim incandescent bulb overhead, still intact despite the years of neglect.
Without preamble, the lackey said as an aside, "Of course, his ghost will be very angry now." I looked at him and uttered a dumbfounded, "What???" He said, "See?" and followed his eyes as he turned his flashlight towards the ceiling. As it reached the top of the wall, it revealed an unnaturally deep shadow that grew as it crossed onto the ceiling, as if there were something in between the flashlight and the ceiling, but not the incandescent bulb and the rest of the room.
However, the transit was uninterrupted and in less than a breath the flashlight came to rest on the bulb. Except there was a circle of pure darkness perfectly occluding the light above our heads, though the room was still illuminated as before. I instantaneously felt the triumph drain out of me to be replaced with powerlessness. The light overhead flickered, each flash showing the shadow had surged in size, closer to us, hungering for a long enough break to consume us. I knew it was too late as I started to turn to flee, that even if I did lift my foot, sunlight was too far away, that even the instantaneous quickness of my voice could not reach another soul before the shadow overtook me. The light flickered out.
I shot out of bed. It was really eerie to go from so powerful and commanding to helpless so quickly. The part of the dream after he said see literally took about a second, no more than two. Anywho, back to work.