Monthly Archives: February 2007

Eclipse and PyDev

For the past few months, I’ve either been using “Stani’s Python Editor” or just SciTE to code and edit my python work. I thought SPE was pretty nice, and was generally happy with it. A few weeks ago, I started hearing about PyDEV – a python editing plugin for eclipse. Figured it was time to check it out. (This is all Windows specific crap – on my real development machine, I use TextMate)
Well, PyDEV works pretty darn well. Took ages to get my Eclipse install up to date (figuring out what you’re supposed to download at Eclipse is getting a LOT harder – what the hell is all that stuff?), and then a few bits more to get the PyDEV pieces installed. Once installed, it just started working like a champ.

It has some basic code completion functionality that I’m still tripping over, but which feels like it’ll be handy when I get used to it. Somewhere in there, it enables the use of PyLint (I’ve typically used PyChecker from the command line) – although I haven’t seen it function as yet. Logilab was down when I originally installed PyDev, and since I’ve added it – I don’t seem to be able to get the functionality invoked. I probably have some subtle misconfiguration…

The whole eclipse environment does take some getting used to – and it appears to even have some functionality for refactoring. Again, I haven’t used it (or figured out how to use it).

Overall, it’s a pretty nice setup – although I’ve had some problems getting various pieces to work properly.  It runs unit tests nicely, and if I could figure out the PyLint thingy, I suspect it would keep my code looking a hell of a lot cleaner too. (Either that or I’d get annoyed with PyLint… a possibility as well).

Lineoleum

For the record, laying lineoleum (felt backed vinyl) sheeting just sucks.

We got the cutting done OK, and the sheets fit nicely without hideous gaps and the like. But the glueing – in a small room (5×8 bathroom – two of them). OMFG.

We learned a lesson today. Pay someone who knows that shit to do it.

Where “higher education” misses the mark

Last night, I saw the article Google class debuts at the UW, and of course I had to check it out. Aside from the usual “what’s google doing now” antenna that quivered, I worked at a University for seven years, giving me a pretty good inside view (I think).

It always struck me that the transition from College/University to a full time job was fraught with peril (for the students/prospective employees) because (WARNING: basty generalization here) Universities do a completely shitty job of keeping up with change. I think a large part of this has to do with the rewards system for faculty at Universities – but that’s an entirely different story.

I’ve got to say, I’m impressed with what this Christophe Bisciglia is attempting to do. The way the article is written smacks of elitism on his part, but I don’t know Christophe, so it would be unfair to cast him in any sort of negative light because of what Laurie Burkitt at the PI wrote. Especially when she mis-spells his name right at the front of the article. This kind of forward looking, changing things attempt is something that a lot of companies won’t do. My cynical side says it’s because the bean counters can’t figure out how it benefits the bottom line. I’m impressed that Google is letting/encouraging Christophe to take a stab at closing that gap. I thought it was particularly cool that Christophe appears to be doing all the Map/Reduce algorithm teaching with Hadoop - at least that’s my guess based on this handout.

One of my personal pet peeves is that new employees straight from college/University usually don’t have a clue about how to use Source Control. It seems strange to me that something as basic as source control is missed out in the curriculum – but then I think quite a bit of the pragmatic learning that comes with just being in the job can get missed. Even just getting the concepts of source control into heads would be useful. It can be pretty abstract if you dive into the esoterica of it, but the fundamentals are really pretty straightforward: checking out, editing, checking in, reverting to a specific version, rolling back a change.

Working on a team is another one of those things. I know a lot of places try to work on that skill, but it doesn’t come through much. I suspect it’s because the teams have limited time together, and it’s driven entirely by a student’s motivation. Even still, most of what you see coming from academia focuses on the individual (I’m not asserting thats incorrect – just the way it is) student, and group function doesn’t come through all that much. Sports, actually, I think does the best there.

And to round this little blather out, I think the flip side of the coin is that nobody appears to want to hire entry level staff. You look through craigslist, job postings on Monster or Jobster, whatever – everyone is looking for at least 3-4 years experience. Most of them are looking for “Senior … blah blah” whatevers. What’s up with that? Well – no, I know exactly what’s up with that. Nobody wants to be the first to train someone into “their way” of doing things. Hopefully Christophe’s stab will be more generic than Googly specific and it’ll help everyone.

Its that cold spring rain

The flowers are making their way up, a few cherry trees have their early blossoms, and it’s damnably cold outside.

There’s a bitter cold winter wind that I remember from Missouri – it’s nothing like that. This is a damp, wet cold. In the various flavors of cold, this is the kind that I think I prefer. It’s a little hard to wear against this cold – a rainproof wind breaker and sweater mostly does the trick, but your hands and feet really feel it. The worst part is that it really takes some work to get warm again.

Guess that’s why its the season of BarleyWine – although I have yet to find any up here in Seattle. Probably just haven’t looked hard enough.

SEAPIG

I finally made it to a SEAPIG meeting last night. The SEAPIG crew and Google hosted a meeting off their normal schedule, roughly entitled “How python is being used at Google”. Man, talk about a turnout!

Talking with some of the regulars there last night, the usual crowd is anywhere between 5 and 8. Last night we easily hit 45 or 50. Google hosted us in their Fremont offices, and even provided food. Whoa – that’s going to set a whole new bar for attracting people to programming user’s groups. Food? They also sensibly had a post-meeting across the street at the Red Door – a fine drinking establishment (they have Guinness on tap).

So aside from finally catching up with folks who’s names I’ve been watching while lurking on the mailing list, I picked up a couple of tidbits. First is that “pydev” – an eclipse plugin for developing python – doesn’t suck. I’m getting my Eclipse environment updated this afternoon to give it a shot. I’ve used Stani’s python editor most commonly. Not unhappy with it, but I’m curious how PyDev has actually come along.

The second was an interesting late-night observation about how to get help on a open-source project’s mailing list. Seems like one of the critical aspects to getting help is to just get a dialogue going.  And we came to a consensus (to be tried on some poor unsuspecting mailing list somewhere) that if you asked too complex a question, folks who might have opened a dialog to start helping a newbie would be scared off. Fear of looking dumb, just not knowing the answer, whatever. I know I’ve seen some complex questions and just passed over them, where I’ve gone out of my way to answer a few of the more “newbie” questions that were really simple. The trick of it is, dialog seems to encourage more dialog. You suddenly seem to get a higher chance of more people getting involved in the conversation. That leads to more ideas – and just getting more people involved is often enough to help solve the problem. It’ll be interesting to see how that pans out.

Ignite and the Egg Canon

Ignite Seattle is tomorrow night – and yeah, you bet I’m going to be there. I’m looking forward to seeing the “egg canon” – according to the Make blog entry, there wasn’t enough vertical space to really make it work – so they’re building a slingshot “canon” to hurl the egg at near-relativistic speeds at the wall! Look out 9th dimension!

If you’re not doing anything tomorrow evening, stop by and see what it’s all about. After the undoubtably messy egg slamming, there’ll be a series of talks that are sort of “slam powerpoint”. You get 20 slides and 5 seconds per slide. And then you’re done. The speaker doesn’t have any control over when the slides move.

Szechuan Bean Flower

For the local Seattle crowd –

If you’re looking for damn good Szechuan meal, head to Szechuan Bean Flower – a little hole in the wall place across Aurora from the Oak Tree plaza. It’s in my list of top szechuan places in ALL of Seattle and surrounding areas. Right along with that joint in Greenwood, the one at 14th and Yessler, and the one in that open street mall in Bellevue.

Its location has crappy parking (ON Aurora, as you head south – right in front of the restaraunt) – but don’t let that even slow you down. Aside from having just incredible food… the staff is friendly, the food is not expensive, and you can try things there you’d never find in your standard “americanized” chinese restaurant.

Karen and I went there tonight, because I was craving what I’ll call “mandarin spicy fish”. It’s not on their menu, but it had been – and they whipped it up for me. Karen got szechaun fish to “contrast and compare”. The szechuan fish is a dry, spicy fried fish; the “mandarin” one is a little sweeter, a little less spicy, and has a dark reddish sauce on it. We also ordered a fried tofu and mixed veggies thing that we couldn’t even finish – but it means yummy leftovers are in the fridge. Heh – that was the idea.

The Seattle Times has a review on it from a year ago – still right on the money.

Oh – and they even translated some of the menu that was written in chinese on the whiteboard against the back wall. I don’t remember all the dishes, but it was clear some of them probably weren’t to the standard american food palate, but they sounded interesting. I’m tempted to just blind order off that board and see what comes out – but for the meantime, I think I’ve got plenty to explore that’s still listed in english on the regular menu.

Mmm. Damn good. Go there.

Yahoo pipes – quartz composer for RSS

I saw the various bits of web spoo about Yahoo Pipes this past week, and the first thing that came to mind was “Wow – it looks like just Quartz Composer!”.

I guess that’s a good thing – the visual data-flow style “language” (is markup a better term) is fairly easy to follow, even if it takes up a crap-ton of visual space. There’s some good examples out there now, even with the lurch that Yahoo had launching the ‘product’. I’m not even sure that I can really describe it as a product. Although I don’t know what else to call it.

Conceptually, I think it’s brilliant. It’s taking the concept of unix pipes (which I have embraced from years ago in my hacky shell “gettin’ something done” scripting) and applying it to something that you might call reasonably structured data – RSS.

I actually rather expect the structure of RSS to make things more difficult, even while it enables significantly more power to the process as well. With ye olde Unix style pipe, the most powerful tools worked from data streams of plain text delimited with line endings. The mighty grep, find, awk, sed combination. There’s still problems I solve with a habital scattering of those commands between |’s.

RSS (I’m including Atom in this horrific overloading of a specific term) has the benefit of being reasonably consistent in structure. There’s all sorts of nasty additions and complications to it, but you’ve got to admit – it’s a hell of a lot more regularly structured than the results of JDBC, ODBC, or Web (xml trash) Services. It’s simple. It has a few syntactic regular structures – and it can hold a representation of just about anything, albeit some less efficiently than others. Shoot – I’m using it day to day in not only web feeds, but build systems results and dashboards metrics for services that I manage.

“Back in the day” (where the hell did that phrase come from anyway?) I fiddled with a language called Prograph that I desperately wanted to love. It was clunky, and ultimately not fulfilling in it’s efficiency of getting things done – but I wanted a visual mechanism for programming – I dunno, cause I’m a visual kind of guy. Variations of that markup/language live on in the form of Marten and the open source project The Open Prograph Initiative. A neat concept, and I think the precursor to what Yahoo Pipes (or equivilant kinds of things) could be.

And of course I’d be remiss without mentioning the MacOS X platform specific goody that’s more generic – Anthracite – a product that Joe Pezillo has been cobbling on for a good couples of years. It does the RSS routing and twiddling thing too – as well as a whole lot of other data types. And then of course there’s Automator – no forking in it with simple use, but effectively another set of pipes where you stage data flowing from one process to another, hopefully coming out with something useful in the end.

The thing that really brings Pipes to the front is that it’s editable on the web. “Just a matter of time” maybe, before someone did it – made a visual dataflow that you could edit with the javascript/ajaxy goodness that’s been worming back into the foreground again. Still, just having done it is a major step forward.

Beyond all that babbling, I don’t really know where it’s going to go – or how useful it’ll ultimately be to me personally. Of course I’ll fiddling and find out, but at the moment I’m just excited by seeing that it exists.