Bumped off Unofficial Planet Python

, | Tweet this

I used to be subscribed to Unnoficial Planet Python (http://www.planetpython.org/) but for some reason, I was unsubscribed. I didn't get any email about it, so I'm not sure what the problem was. I emailed Ryan (his email address is on the site) twice and haven't heard anything.

I am still subscribed to Planet Python (http://planet.python.org/), so I'm puzzled.

This is a minor issue because I'm not subscribed many places (subscribed is probably not the right word to use), so it reduces my audience significantly and prevents me from participating as much as I could be [1].

Anyhow, if anyone knows of a better way to get me re-subscribed to the Unofficial Planet Python, that'd be super.

[1] - Since I've been in grad school, my blog has been quiet-ish but that ends in May.

01/11/2007 - Ryan got in touch with me and I'm back on again. w00t!

Mudos under Ubuntu

, | Tweet this

I installed Mudos on my laptop which is running Ubuntu Edgy. I had two problems compiling the source for v22.2b14.

The first issue is this error when running make:

make: *** No rule to make target `obj/malloc.o', needed by `driver'.  Stop.

The solution, bizarrely, is to just run make again. I don't know what the issue is, but discovered this in the depths of the mailing list archives.

The second issue I get when compiling is this error:

socket_efuns.c: In function 'get_socket_addres':
socket_efuns.c:1198: error: invalid lvalue in unary '&'
make: *** [obj/socket_efuns.o] Error 1

Doing this change fixes the issue:

$ diff socket_efuns.c.orig socket_efuns.c
1198c1198,1199
<     addr_in = &(local ? lpc_socks[fd].l_addr : lpc_socks[fd].r_addr);
---
>     // addr_in = &(local ? lpc_socks[fd].l_addr : lpc_socks[fd].r_addr);
>     addr_in = local ? &lpc_socks[fd].l_addr : &lpc_socks[fd].r_addr;

After that, everything works wonderfully.

New year 2007!

, | Tweet this

Today is the start of the new year. I went through my web-site and updated a bunch of stuff to reflect changes in status, direction, and what's coming up. I also spent some time updating my resume.

Writing resumes is a pain in the ass. I've done a lot of stuff and it's hard to prove that I did it and that I did it well since most of it is locked behind NDAs and Confidentiality agreements and all that. Even if it wasn't, it's a lot of stuff and I only remember bits and pieces of it and I don't remember all the gory details. The whole thing feels like marketing: "Hire me because it'll be AWESOME!"

I threw in a section of technology smorgasbord--acronyms, "technologies", applications, ... blah blah blah. Most people have all that stuff on their resume regardless of whether they have much experience with it. It's hard to know how to get across my experience/knowledge level in those things--am I an expert or just an advanced user? If I under-rate myself to err on the side of accuracy, will a company skip over me because their HR department is looking for people with 25 years of Java experience?

It's hard to get across in a resume that I work pretty hard, I work pretty smart, and I get along with other people pretty well. It's hard to get across that I'm somewhat quiet but I work hard at communicating comprehensively and accurately without overloading someone with lots of stuff. It's hard to get across that the people I've worked with over the years really liked working with me and that together we've done a lot of really great stuff, but for some reason it doesn't seem as great when I look at the things other people my age have accomplished. It's hard to get across that over the last 10 years, I've grown a lot and so far I keep growing--I am not a stick in the mud. It's easy to get across that I really love this stuff and that I practically dream about it because I can say that in a single sentence.

The only evidence I have that's publicly available is the work I've done on Lyntin and PyBlosxom. I cut a lot of teeth on Lyntin, but I'm really happy with where I left it. I'm not as happy with PyBlosxom, but I think that's mostly just a function of how much work I wanted to do versus how much time I actually spent on it.

My resume is here. I'm Will Guaraldi and I'm looking for a job in May 2007.

PyBlosxom status: 01/01/2007

, | Tweet this

My semester break is drawing short and I didn't get much of what I wanted to get done done. I merged Lance's documentation fixes in, I'm fiddling with a new pyblcmd script, and I'm cleaning up things I started, but never finished.

Ryan is going hog-wild with getting the comments plugin to a better place.

I was thinking of switching the web-site to use MediaWiki and in doing so solve a bunch of issues we have, but I think I'm going to wait on that for a while. In the meantime, I do plan on doing a web-site update and make it look more like some other Python-project web-sites. In the process of doing that, I think I may move it over to be statically rendered.

That's it for this status report--trying to keep it short and sweet while getting across that some things are happening, but it's slow going.

Many thanks to Lance and Ryan and all the other folks who have been putting time and energy into PyBlosxom over the last few months. You guys rock!

Sprint PCS, the final chapter

, | Tweet this

A couple of weeks ago, I started a family account at Working Assets and switched S over from Verizon and me over from Sprint PCS. The switch-over was a little dicey partially because there were so many numbers involved and I think they had set us up a little wonky. I switched us over one at a time because I figured we'd have issues, so we were sufficiently prepared to have a phone out of service for a few days. I tried calling Sprint PCS to cancel my account and make sure everything was ok, but all the numbers I could find required a valid Sprint PCS number to get through to someone. Regardless, everything's great now, we have two new phones, we're saving about $20 because we have a family plan, and S can call me whenever she wants for free. w00t!

Today I got a bill from Sprint PCS with a $150 termination fee. I tried calling the telephone number on the bill and couldn't get through to anyone because you need a valid Sprint PCS number. I finally called 1-800-SPRINT-1 (their telesales number), got through to someone who was really annoyed because I called the wrong number, but she patched me through to Customer Service. Then I talked to a really patient and wonderful person who's name I don't recall. We worked through the timing of events and it turns out that my 2-year contract started on the next billing cycle and not (as the Sprint PCS representative at the store told me) when I paid for the new phone and switched over. Anyhow, bottom line is that I cancelled a couple of days too early. She put me on hold for 10 minutes or so and then when she came back she happily told me that they waived the cancellation fee after noting that I had been a good customer for 6 years or so.

From this I note the following things:

  • It's good to have copies of the paperwork in front of you so that you can tell them all the specifics: bills, credit card bills, receipts, things you've signed, promotions you took advantage of, .... Sure they have stuff in their system, but I think the line-items in their system are somewhat open to interpretation.
  • It's good to be polite and courteous. The person on the other end of the phone isn't responsible for the mix-up--they're helping you to sort it out within the bounds of the wonky system they're in.
  • It's good to allocate lots of time for working through issues with big companies because it often requires talking to multiple people (keep logs of all chats and who said what), sitting on hold, and explaining the details again and again.

At the end of the day, everything seems kosher and I've completed one of the major tasks for "winter break". w00t!

bluesock upgrade almost done....

, | Tweet this

I decided that one of the things I would do during "winter break" was to upgrade the hardware that bluesock.org sits on. There were a couple of minor issues, but otherwise the upgrade has gone very very smoothly. This time around, I'm writing up a massive "everything about this server" document. I think I may build a template out of it since it's the sort of thing that would be useful for other machines I have. It's much easier to deal with all the machines when I have an accounting of what went into them.

Anyhow, bluesock.org now has twice the oomph. Unfortunately, "upgrade bluesock" took several days to do, but it was only a single item in my todo list of around 25 items. I need to start adding items like "pat yourself on the back" and "take a nap" to my todo list--items that don't take too long to do and aren't as torturous when you look at a list of 25 of them.

Status 12/13/2006

, | Tweet this

I've finished my third (out of four) semester of grad school on the way to get my Masters in Computer Science. This semester was really tough, partially because I didn't have the experience and knowledge coming into my classes that I needed. Even so, I learned a huge amount of stuff, much of it immediately applicable, and ended up with an A and a B+.

I'm taking a compilers course next semester with Olin Shivers which should be really exciting and I'm going to do a project on DAJ input specification stuff (I still have to work out the project statement).

Between now and next semester, I've got a boatload of stuff to do. I'm going to catch up on PyBlosxom, help Ryan with the contributed plugins (and comments), work with Lance to get the documentation updated, and hopefully release a version of PyBlosxom that is a radical improvement in the maturity of the project code, infrastructure, and process.

It'll be a busy month....

Status 12/07/2006

, | Tweet this

I had my last class of Semantics in Programming Languages today. We finished up with proving adequacy between the denotational semantics of the Untyped Lambda Calculus (the P-omega semantics from Scott) with the operational semantics. It was pretty wild stuff... Most of it a little over my head but mostly because we zipped through it due to the impending termination of class (class turns out not to be bottom--it does in fact terminate).

I have a bit more to do on a project for my Advanced Software Development class and I think I'm going to write up a case-study for using DAJ to build a unit tester with test cases described by a DSL. DAJ has all the pieces to make this very easy to design, build, maintain, and modify.

I'm going to be doing a research project related to DAJ next semester which I'm excited about. But... that's a month away at least. For now I'm going to prioritize and cruise through my backlog of stuff I've been sitting on. Like finishing up the work I was doing on PyBlosxom over the summer.

Deleting tickets in Trac

, | Tweet this

I'm having problems with spam in my Trac instance which keeps track of my PyBlosxom plugins. It's ... irritating. Anyhow, now that classes are almost over, I decided to poke around and figure out how to delete them rather than mark them as "invalid". Turns out it's really easy:

trac-admin [project-dir] ticket remove [ticket-number]

Apache not serving static files correctly?

, | Tweet this

I innocently did an apt-get dist-upgrade today and suddenly Apache wouldn't serve any static files, but anything generated by CGI scripts worked super! Apache would send the headers for static files complete with a Content-Length correctly but wouldn't send any data in the HTTP response (even for an HTTP 200).

I spent hours trying to figure out what was going on under the assumption that I did a bad upgrade. I skimmed documentation, made sure my conf files were ok, did dozens of Google searches and then finally gave up and walked away for a couple of hours.

Long story short I finally hit gold with the right mantra of search terms and bumped into the EnableSendFile directive. I added:

EnableSendFile Off

to my Apache conf file and it works fine now.

I mention it in case someone else does a dist-upgrade with Debian testing on or around November 15th, 2006 and discovers themselves in the same boat.