Blog Closed

This blog has moved to Github. This page will not be updated and is not open for comments. Please go to the new site for updated content.

Saturday, June 28, 2008

Back in PA

Back in PA now, spending the weekend at Dana's. Wednesday and Thursday I was up in MA for the big interview. I'll post more information about that later.

Dana's parents are away for the weekend, visiting her sister in Lancaster. We spent much of the day today running around, trying to tie up some more loose ends for the wedding. She bought the shoes she'll be wearing under her dress, she bought some flip-flops for the bridesmaids too. We had to take back one of the engraved gifts we bought because the date was wrong on it.

I spent a little bit of time yesterday and today working on Parrot some more. Without getting into too much detail here (I have a second blog dedicated to the technical details), I've been having some problems with managing all the different types of items that Parrot uses. I've got a solution in mind, but it's going to require some relatively invasive changes throughout the codebase to implement. However, the benefit is that we will be able to migrate more items to the memory management subsystem, increase consistency, decrease individual memory allocations, and improve overall system performance. Of course, this pushes back my "code complete" status, which I previously thought I had achieved. I'm willing to do the extra work to produce a better product, however.

Midterm evaluations for the GSOC project start on July 7th, and following those is my next paycheck. I've been working on this as hard as I can, and I am pleased with my results so far. I hope that other people are as pleased with it as I am.

Next week, it's back to work. I want to finish all the new details that i've been working on ASAP, and try to get cracking on testing and debugging. Fortunately, I was able to compile early last week, so much of that work will benefit me now.

Wednesday, June 25, 2008

A day to travel

Today is the big day, or the big day before the big day. In about four and a half hours I'll be catching a plane to Boston. Tomorrow, bright and early, I put on my suit and go in for the interview. We start off with a technical interview, and if I fail that it's game over: Do not pass go, do not go talk to anybody else at the company. I have high hopes that I will ace the technical part, I've been getting daily practice and am confident in my performance.

Thursday night I come home and drive directly up to Dana's house for the Weekend. Dana's sister, Jac, is pregnant with a baby girl. The pregnancy isn't new, but knowing the gender is. Dana's parents are going out to Lancaster for the weekend to visit, leaving Dana and I "on our own" for the weekend. One day, we're going to be "on our own" every day, in our own house. I find myself looking forward to that one day more and more ardently.

Geoff joined me for a short jog last night. We took my jogging route, but incorporated some details from his routine too. He likes to sprint the last leg, something which I have never done but he claims it's beneficial. My cardiovascularity [sic] stayed strong throughout, the difference in performance from even two weeks ago is astounding to me. My leg muscles are supporting the endeavor extremely well also, having none of the calve or ankle pain that plaged me the first two weeks. I am however having some point-pain on my shins that is bothersome, which turns into soreness. I think I need to try running on softer surfaces for a while.

Jimmy came over yesterday evening and we watched a new show "Wipeout". It was the kind of mindless entertainment that we used to have back in highschool, and was a welcome diversion from my regular evening schedule. Wipeout didn't have all the absurdities that our old standby MXC used to have. It was plenty funny though, and I think we are going to try to watch it again next week (Jimmy may even stop by for it again). With Lost and House seasons over, I haven't had anything to watch in a long while. I do need to find more entertainment that isn't computer-based, for my own sanity if nothing else.

I'm off to get ready now. I need to double check that I've packed everything, get dressed, eat, and run through my checklist one more time. I'll post updates as they come, if I find internet access before thursday night.

Monday, June 23, 2008

School: The Beast That Never Dies

I just can't seem to put the lid on this last semester, it's as if it was intended to be never-ending. On May 5th, I submitted four copies of my printed thesis to the library binding office, so they could be hard bound. Those four copies each had a special purpose: One to the engineering library, one to the EE department, one to my advisor, and one for myself. Getting these delivered to the proper places is like some last requirement, and one that I would like to fulfill post-haste. I don't know if it's a real requirement per se, I don't need to get any signatures of receipt, and I didn't need to do it before I submitted my signed graduation plan, but it's still something that I am bound and determined to do.

I submitted the copies on May 5th, and was told that the binding process would take about a week or two. Later, I was told by a different person in the office that the process typically took about three or four weeks to complete. In either case, I was assured that I would receive a phone call when they were finished, so I could pick them up. Nearly two months later, having not heard a peep from them, I called and left a message. If somebody knows what the status of my thesis is, could they give me a call? Lo and behold that this morning I receive a call: They've looked in the pile of completed bound theses, and mine are apparently finished! I can come down to campus and pick them up at my leisure.

Temple moved to a system of mailing out all diplomas, instead of handing them out at commencement. Instead, students at the ceremony received a dummy diploma, with the real one to follow in the mail. Having not heard any details about it, I send an email to the graduate coordinator of the engineering school, and was told that nobody really knew when all the diplomas were to be mailed, but that if I hadn't received mine by June 23rd, that I should send another email. Today is the 23rd, and I'll be waiting diligently for the mail at 4:00pm. Maybe, if my luck stays consistent, my diploma was lost in a warehouse or mailed to the wrong address, or is being otherwise delayed for some unknown reason. If all goes expectedly, by this evening I should be sending out a relatively grumpy email.

Griping aside, I picked up a book last weekend at Barnes & Nobels, "Introduction to Dynamic Systems". The book, which appears to be a digital reproduction of an original from 1979, was on clearance sale for less then 3$, and we all know I'm a sucker for under-priced technical books. I can't walk past a math, science, or programming book marked "clearance" without digging instinctively through my wallet. What's more sad then my pathological desire to buy these books in the first place is that I read them also, for leisure. I can sit down with a good textbook and be entertained the way my mother is by the Oprah book of the month, or my brother by his latest fantasy/fiction epic. "Dynamic Systems", in this case, is really synonimous with the field I've come to know as "Control Systems". Since I've taken several classes on controls at Temple (actually, I took all the courses that they still offered), most of the material in this book is just a refresher. Some of the differential equations topics are a bit fuzzy, but well within the realm of my possible understanding. It's good to keep learning even when school is out, there is so much knowledge out there and I can't possibly have scratched the surface yet.

I dont know whether I am heading down to Temple today or tomorrow, If I go tomorrow I can both pick up my thesis and complain that I haven't received my diploma in person (I'm decidedly assured that I will not have received it by then). I can't go wednesday or thursday because I will be in MA. Friday, I will probably be at Dana's for the weekend.

Sunday, June 15, 2008

Running progress

I had a blog entry written up on Friday morning, but I hit "save" instead of "publish", so it basically disappeared. Dana mentioned that I hadn't been blogging regularly on Saturday afternoon, so I checked it and published it then.

I went out running just now, and am pretty impressed with my progress. Last thursday night I ran one and a half laps around my road (which I estimate to be between 1/8 and 1/4 of a mile, round-trip). Tonight, I went out and did about three and a half laps. Thursday I had run in the morning as well, so I may have just been more tired, but I'm still happy to have any numerical progress at all to show for my efforts. My legs did better this time. My breating, while not entirely comfortable, wasn't the rapid downward spiral that it had been previously. I hit a bit of a plateu where I was able to keep up with my oxygen needs, even if I had to take big gulps of air through the mouth. "In through the nose and out through the mouth" disappeared by the beginning of lap 2. Tonight, what stopped me was an ache in my right shin (where I hit it on my car door earlier today) and a burning ache in the arches of my feet. My arches felt fine through the third lap, but quickly told me when my time was up.

In the mornings I tend to run around my yard, because it's shaded and there isn't any traffic back there. At nights, I'm free to hit the open road. If I can get a little bit more stamina up, I want to go down the street to the elementary school. I can still remember where all the mile markers on school property, so I will be better able to judge my progress over there. Of course, I don't want to be running around school property during hours, but after dark is fine and daytimes after the semester ends should be okay as well.

I did a little bit of work on Parrot today. I fixed up a bug in the lexical analyzer and submitted a patch for it. I've been taking on a few lex-related bugs recently, as few of the other developers seem to know Lex very well. I'm not super-strong with it myself, but I know enough to read and understand it. Understanding is the first step in software development for a few reasons: (1) you can find where problems are, (2) you can find other code snippets that solve the problem, (3) you can copy+paste code to fix problems. I dont know that I'm at the stage yet where I could freehand write enough code to implement a full lexer myself, because it's not ingrained enough in my mind to make sure I don't forget any key details. With a little practice and a good opportunity, I might just be able to surprise myself.

I started work on another bug, something dealing with the handling of macro-local parameters. In Parrot, macros are pure-text replacements, so they are handled entirely by the lexer (the text-replacement behavior is similar to C's preprocessor, although I don't know whether the preprocessor is implemented entirely in the lexer or not). Handling macro-local parameters is a multistep problem: First, we need to find the names of the variables and store them in a table. After expansion, macro-local variables must be transformed to have a globally-unique name. Second, we must expand the macro-local variable declarations into local declarations of variables with the unique identifiers. The transformed string must be parsed like normal and the tokens passed to yacc, transparently.

Tomorrow morning, it's back to work on the GC. I have a weekly progress report to write up which I will probably do in late morning or early afternoon. I also want to write a use.perl blog post about some progress I've made, probably tomorrow afternoon. Tuesday morning it's the #parrotsketch design meeting where I give a brief summary of my work to the team. I always like those meetings, but they are always very brief. The rest of the week is work, work, work again till Dana comes out to rescue me on Friday afternoon.

Friday, June 13, 2008

Week Review, and Weekend Plans

This week has been incredibly productive in terms of my GC project. I was able to get a lot of my last questions answered, a lot of the last implementation details figured out, and write a lot of good code. I believe that code "goodness" is iterative: it is through editing, revising, reviewing, and refactoring that code moves from first conception to maturity and quality. This is very much like book authoring at Wikibooks, because quality work there is an iterative process as well. Maybe that's why I like it so much. I wanted to have the last bits of the main tracing code finished by today, but that isn't going to happen. After that there are a few details to iron out, a few places where improvement is needed, full testing and debugging.

This doesn't count my desire to make a fully-threaded version of it available by the end of the summer as well. I have a few options for how I want to implement threading in the GC, but the technical details of that are far beyond the scope of this little blog. At the very end, I am going to need to tweak and adjust all the different parameters to ensure the GC operates as efficiently as possible.

This project has been a real booster for my programming skills, I'm pulling out C voodoo that I didn't even know I still had. Bitfields, linked lists, state machines, crazy data structures, esoteric keywords, it's geek nirvana here. I don't just have to make this software work, I'm feeling distinct pressure to make sure it works right. I find myself worrying about optimal pointer alignments, spacial locality optimizations, control-flow short-circuiting. It's fun stuff, and it's definitely good practice.

I've been running faithfully this week, every morning I've been going out for about 20 minutes, and last night I ran a little bit as well. It was better to go out at night with the cool air, but mornings have been pleasant enough too. My performance has improved every day so far, although in different ways. My respiratory endurance has improved noticably in the span of a single week, and I was able to go more then twice as far today as I could on monday without needing to gasp for air. It's no longer bad air flow that limits me, it's my ankles and calves. Pain in my ankle and in my calf muscle bring me to a stop before my lungs do. I definitely don't want to injure myself, so I'm not going to push anything yet.

This weekend we've got the tasting for the wedding food. My parents and hers are joining us at the country club to sample some choices and make the final decisions about what we want to have at the wedding.

I have a job interview in two weeks with The MathWorks, the company that makes MATLAB (the software I did my thesis in, and which I've discussed on the blog here before). I'm starting to get really excited about it, because I think it could turn into one of those dream jobs that you read about the the graduating-engineering-student magazines. The whole thing starts off with a technical interview, which is another reason why I'm glad to be practicing my C-foo so much. But, if I do poorly on that, I get sent right back home again. A little bit of pressure, but I think I'm up for the challenge.

Dana is worried about the situation though, she isn't too happy with the prospect of moving up to MA. I can't blame her, it is a big step for us to take. However, it's not a surprise either. I've been trying to ease her into the idea that we will likely need to do some moving when I get my first job, and I figure that MA is much better then TX, AZ, CA or Dubai. I'm going in to the interview with my hopes up and my fingers crossed, and we can worry about relocation and acclimatization if I manage to get an offer (which, of course, is no guarantee).

Tuesday, June 10, 2008

Getting in to shape

I have decided that I'm decidedly out of shape. It's the kind of thing that sneaks up on you, and you don't realize it until you're gasping for air with your hands on your head. The important part is that I'm doing something about it now, even if I have to start slow and small.

Yesterday I took the dogs out with me to run, but when the neighbor came home Jack took off running and barking like a thunder bolt. I had to stop my routine (which, since it was the first time I did anything, can hardly be called a "routine") to chase him down and bring him home. Today, I was smarter and I left the dogs inside. They spent the entire time watching me from the window with anxious and confused looks on their faces, something that's a little bit awkward at first. That's the price they pay for misbehaving, especially since i'm not the type to beat or abuse them.

I'm trying desperately to remember all the lessons I learned, or should have learned, in highschool gym class. Back then the classes were a complete waste of time: boring, repetitive, and taught by inept teachers. We used it more as a chance to socialize and rest then as a time to learn anything practical or to stay fit. I got more benefit, and still have more vivid and valuable memories, from the times when I took karate as a young kid. It's those lessons that are probably saving me from a season-ending hamstring injury right now.

I start off with some stretches. I don't know how long to do each stretch for, so I typically go for a count of 5 or 10 or until I get bored. I reach down to touch my toes (which I can still do, miraculously), then spread my legs apart wide and touch the floor. On the floor, I stretch out one leg, then the other, and then I do that thing the gym teachers always called the "butterfly". I do a few other stretches whose names I dont know and that I can't really describe real well, and then I start walking.

I walk for two reasons: to make sure there aren't any sticks, branches, stones, or reptiles in the places I plan to run, and to make sure everything is feeling okay before I start. As I mentioned before, I've never really owned running shoes before, so the over-zealous arch support takes some getting used to. That, and in my ineptitude I could easily have injured myself while trying to perform all those stretches. God only knows if I'm doing any of them correctly.

I run until I start gasping almost uncontrollably, and then I walk for a while so I catch my breath. This is, as Richard Simmons used to say in those videos from gym class, is called the "cool down" period. After that, I go through my stretch regiment again, and then finally wind up back on the computer where the blogging happens.

Monday, June 9, 2008

Up and at'em

I've been spending an inordinate amount of time in front of my computer recently, which wouldn't be so bad if my computer were running laps around my yard. This, sadly, is not practical (and probably not possible). My productivity has been very high recently, but I worry about the effects this lifestyle is having on my health. "Balance in all things", it seems, is a mantra worth investigating here. I bought a pair of running shoes this weekend, the first pair of dedicated athletic shoes I've ever owned. It's a strange and new experience for me, and to see why, here is a general shoe-related timeline:
  • Middle School: Back in Middle School (Junior High, as it is known in other places), I rarely had appropriate footwear. Frequently, I wore old sneakers that I borrowed from my father. Once, in a low point, I ran a mile wearing hiking boots.
  • High School: I had a pair of sneakers, which I purchased from PayLess for about 20$ that lasted me through most of highschool. I also wore them on more then one occasion for field trips where my other footwear (typically sandals) were not appropriate. This included the streamstudy fieldtrip we took during biology class. Pockets in the soles of the shoes filled with water and would make squishing noises years later in tennis class.
  • College: College didn't have a gym requirement for me to take, so I didn't take one. I wore sandals through most of college (including through the winters). Later, at the dual insistance of Dana and my mom, I bought a pair of closed-toed shoes: Combat boots. These were good for hiking cross-city when Septa went on strike, but were very bad for running.
  • Grad School: Dana finally talked me into getting a pair of sneakers for summer wear, even if I was going to keep my combat boots for winter. These sneakers were comfortable and stylish, but hardly supportive or athletic in any way.
Now that I finally have a good pair of shoes for running, it's become too hot outside to do it. We're in the middle of a heat wave, 98 degrees outside, and I'm not going to go out and bake in the sun all day. I did go out this morning for a little bit, however. I ran for about a quarter of a mile before my body decided it wanted more oxygen then I was delivering through normal breathing. My legs felt good and strong, but my cardiovascular core was clearly not up to the task. Even if my muscles haven't atrophied through weeks and months of doing computer work for long hours, my endurance and stamina has.

From this point forward, I need to try to ensure I get at least some exercise incorporated into my daily routine. At school I took the stairs often because the elevator was in such lousy condition, so that got my heart rate up a little bit. Here at home, I don't even have that. In place of stair climbing I have to go out and run a lap, and I get to wear my fancy new shoes.

Wednesday, June 4, 2008

Schedule Changes

Just got a call from Dana, she bought me tickets to see NIN in concert! Box-seat, catered food&drink, tickets for two. Dana isn't going, of course, because NIN isn't her style of music. However, Dave is going with me. Geoff would have been another good candidate for it, but he's going to be in Mexico by then. Dana said she felt bad about last year's Tool concert, when I found 8th row seats for sale, and she said I shouldn't go (we were on a tight budget, and I had school the next day, so it was probably the more logical decision to make). Plus, this counts as a birthday+ graduation + anniversary combined gift. Awesome!

Johnny called me up this morning, had to cancel lunch tomorrow because of problems with his business. That's fine, I understand that (I've dealt with the ugly nature of seasonal business before), and said we could reschedule. We talked wikibooks a little bit, too. Wikibooks has been slow lately, and that makes me sad. Of course, my schedule has kept me plenty busy, so I'm not helping with that at all. One day, I'll get in there and really whip up a storm. I told Johnny that we should reschedule, if he can find some spare time to visit.

In lieu of lunch tomorrow, I miraculously have another phone interview scheduled for tomorrow afternoon. That's two in one week, a personal best! A recruiter from Aerotek called me this morning about a position over in NJ with pay that is closer to my minimum then the previous offer was. I dont know how excited I am getting about this position, I think i'm qualified for it but it might not be up my alley. I talked to Dana about it and she thinks I should consider all options, but that we can wait a little bit for a "dream job". If my interviews tomorrow or friday pan out, a "dream job" might be exactly what I get. As last time, I'm not going to post any details here because I don't need to speculate and I don't want to jinx myself.

Tuesday, June 3, 2008

Busy Week in June

It's only Tuesday, and this is already shaping up to be a busy week for me. That certainly isn't a problem or anything, it's good to stay active.

Today was the first weekly #parrotsketch meeting that I had to participate in for my GSOC project. #parrotsketch is a meeting held every tuesday at 2:30 where people give brief reports about their work for the previous week. My report was only a few lines long and was over in less then a minute, but it was thrilling nonetheless.

Got my first payment from Google out of the bank today. It's not much (only 500$) but if I stay on a strict budget it should support me for a while. The other students in the program are all talking about doing cool stuff with their money: buying new computers or peripherals, buying music/movies, videogames, etc. Me? I'm subsisting and paying bills. It may not be glamorous, but I wouldn't have it any other way. It's good to have priorities, and it's good to be getting on with life.

Thursday, Johnny is in town and we are going to try to do lunch. Summer is his busy month, doing landscaping work (hence is travels to my area) in the mornings and doing farm work in the afternoons. I'm glad to have a chance to get together with him, we talk so rarely anymore because of our conflicting schedules (he's online around 5am, I don't wake up will 8ish).

Friday, I've got a technical phone interview lined up at 1pm. I dont want to give out any details yet lest I jinx myself. Rather then gossiping, my time is better spent brushing up on my technical prowess. I hope I don't goof this one up like I did my technical interview with Google! For people who don't know, i had a relatively good interview with them but said, in a moment of sheer ignorance that the UNIX fork command launched a separate process instead of duplicating the current one. I may kick myself forever for that snafu.

Beyond those few things, I have the standard cadre of tasks to attend to: more Parrot-related work, blogging, some cleaning, dealing with the dogs, etc. I also plan, as vaguely as a plan can be, to start some kind of regular exercise regimen. I feel like i've been to lethargic with all the computer hours I've been logging.

Sunday, June 1, 2008

Weekend Review

Coming back from a good weekend, and already i'm feeling like i need to get in front of the computer to work work work. The problem with doing something right (which, if you follow the old adage, is how things worth doing should be done) is that you have to spend so much time and energy on it. Parrot's garbage collector, if we want to do it right, is going to require a lot of my effort.

Cousin Liesa was back home this morning. She got back from her tour in Iraq last week, and is parked at Fort Dix in Jersey for a while to debrief or decompress, or whatever. After that, she has to stay on the fort for a while to get a medical problem taken care of, then from what I gather she's on some kind of leave for a while. Her contract with the national guard is up in March, but apparently she stays in some kind of indentured servitude to the army for two years after that: She doesn't need to do the "one weekend a month" anymore, but she can be called up again if the army finds need of her. I don't like to talk politics much, especially not on this blog, but I find it hard to believe that the current administration won't find use of her before the next president takes office.

Dana and I went to target today, there was a good sale on clothing and I took the opportunity to fill a few holes in my aging wardrobe. I have plenty of "nice" clothes for job interviews and the like (if I ever manage to get one lined up), and I also have a few sets that I could wear to the first few weeks of a new job (if I ever manage to get hired). However, my daily wear--shorts and tee-shirts--are quickly degrading and need to be replaced. We got a few pairs of regular shorts and two pairs of athletic shorts. My intent, far-fetched as it may be, is to start some sort of exercise regimen to improve my energy levels. Because I spend so much of my time parked in front of the computer screen, i feel like i don't get in enough activity any more and that's taking a toll on me. What I'll probably do is go running tomorrow, come back home panting and dehydrated, wake up the day after sore, and give up the enterprise entirely. Until then, I've managed to justify the purchase of two new pairs of athletic shorts. Plus, it probably helps to stimulate the economy (even though I got them on a massive sale and they were made in Honduras).

Dana also baked a batch of nice brownie-cupcakes, and that's always appreciated.

Got a long week of work ahead of me, and I need to ramp up my job-search efforts as well. I'm going to be busy busy, but that's the way I like it, I think.