Advertisement

Hacking in NYC

  • Jun. 12th, 2007 at 9:20 PM
python - import this

While Liz took her exam today, I holed up in the hotel room (for the most part, I dislike NYC) and, freed from the distractions of house and work, busted out my inner geek and started getting traction on a TurboGears project I'd been meaning to start for the past year-and-a-bit.

I'm very pleased to say that things are starting to improve on the documentation front, and for many of the places that the docs are still a bit lacking, you can generally find answers or examples with a little well-targeted Googling. I'm (still) a little annoyed that the identity package ties visit tracking into the basic identity framework--I'll probably end up hacking around that eventually, but for now the fact that it Just Works is pretty nice. Similarly, Patrick Lewis's Registration for TurboGears was a very helpful find that simultaneously saved me a lot of annoyance and which will make some good example material to dissect and grok. Plus I can get back to writing the meat of the application instead of mucking around with a problem that has been solved over and over again. (I guess that's sort of the TG philosophy, and I should not be surprised, but it's nice to see it actually working instead of being just a nice idea.)

Additionally, I'm finding Bazaar to be a nice fit for my brain and available time. For some reason, getting a Subversion repository going always manages to sap any and all of my motivation for actually writing code. In contrast, Bazaar is just a few quick keystrokes away and without any tedious fiddling about figuring out how I want to structure things. Like the other things that have made me happy today, it Just Works.

Hopefully this means I can actually start to build some momentum, learn a few things, and eventually have something to show for it.

PyCon 2007 (Part Three)

  • Feb. 25th, 2007 at 11:22 PM
python - import this

Since I was unable to attend the sprints, my PyCon experience wrapped up on Sunday. Here are my highlights and thoughts on the third day...

Robert M. Lefkowitz (r0ml), the fourth and final keynote speaker for PyCon 2007, completely and utterly amazed me. As the talk began, I thought we were in for 90 minutes off dreary academia, but my first impression was almost immediately dispelled by the fascinating rhetorical journey through the meaning of "computer literacy" and, at a more fundamental level, the idea of literacy itself. This talk raised many interesting questions, such as: where is the canon of programming? is it better to express algorithms in code or English? why aren't the keywords of programming languages localized? how do we read code aloud? A great counterpoint to the OLPC talk was this question--how many underprivileged Brazilian kids with OLPC machines who press the "view code" button are going to know enough English to be able to (re)program them? Best quote of the talk: "Great programmers break the rules elegantly; bad programmers break the rules without realizing it." Sprinkled throughout were references to so many interesting books that I think my Amazon wishlist just grew two sizes. This talk had people buzzing about it all day, and during the closing remarks we heard that there is interest in having that same talk professionally recorded and uploaded to YouTube. Mind-blowingly good.

Sadly, however, this talk, coupled with being out too late the night before, and a general lack of sleep, left me pretty fuzzy-headed for the rest of the day. I was barely conscious during the "Easy Creation of Interactive Tutorials" presentation, which I could tell looked really neat but which I couldn't summon the energy to fully pay attention to. What I got out of it amounted to this entry in my notes: "crunchy turns simple HTML + Python code into coolness." Yessir, I sure was insightful,

Luckily, I was a little more alive for Kevin Dangoor's "Wonderful World of Widgets on the Web" talk, which discussed ToscaWidgets, the subproject that recently exploded out of TurboGears. In case anyone hasn't noticed, user are demanding nicer and more graphical interfaces on their web applications, and ToscaWidgets seems to do a good job of being a fairly declarative Python encapsulation of the HTML, CSS, and JavaScript necessary to render the widget to the web. Kevin demoed a TinyMCE widget, showed us how to hook up a FormEncode validator to a widget to get automatic error handling and type conversion, illustrated nice graceful degradation capabilities in a ratings widget (for users who don't have JavaScript) and more. As a nice bonus, widgets are easy to add to the Cheeseshop so that they can be easy_installed at a moment's notice. I think it's great that this package is being factored out of the core TurboGears code and released into the wild for other projects to take advantage of; it's a prime example of the "rising tide floats all boats" philosophy that I really admire about TG.

Titus Brown's "Testing Tools for Programmers" talk discussed a collection of simple, easy-to--use tools that he developed that work nicely in concert with one another: twill does functional web testing (really lacking only JavaScript support); wsgi_intercept lets twill talk directly to WSGI apps, allowing you to use the same twill script to test both the WSGI app itself and the complete web stack with a live server; scotch (a pun on WSGI's whisky-like pronunciation) lets you record and replay WSGI data and generate twill scripts; and figleaf is a code coverage recording tool that can combine coverage from multiple runs and emit a unioned result for your perusal. There's still a great need for documentation on these tools, but they're otherwise ready to make your life a lot less sucky. And he remains eminently quotabe--on testing and WSGI,"You have no excuse. Test your web apps. If you're not using WSGI, there's something else wrong with you," and in reference to starting a "testing-in-python" mailing list, "[I wanted to] get some cross-talk happening in the testing community like there isn't in the web community." Good stuff; you can check it out yourself.

I had some familiarity with trac before, but I still found new stuff to love in the "Software Development With Trac" presentation, specifically the bitten plugin, which glues in a dashboard of continuous integration results, stats and graphs about lines of code over time, passing and failing tests, and more--you can click on a failing test and jump right to the relevant source code! This killer feature pushed me off the fence, and I'm now very excited about trying to bring trac into my office.

Not tremendously excited by any of the late afternoon sessions, I went to an open space talk led by Gary Bernhardt of our local ClePy group. Gary's been working on a thing so far called RESTdb, which is a RESTful database application queried via HTTP verbs instead of SQL. Like SQLObject and SQLAlchemy, RESTdb is very delcarative, creating the database from the Python code. But unlike a relational database, the client knows nothing of the database schema, just the names of resources that it wants to access. The project is only two weeks old so far, but it can already do many interesting things, and can easily support 10,000 local machine queries per second. Some challenges of a RESTful database include the impossbility of the client to introspect the database at all, and that you don't do joins (since it's not a relational database), so you have to think a little differently. The room wrapped up its allotted time with a great discussion of what REST is and isn't, and a good time seemed to be had by all.

Highlights of the final round of lightning talks included a very cool demo of pyglet, a pure-Python "to the metal" game engine that's programmable via XML documents; a demonstration of how to solve the Rubik's cubes that we all received in the Big Piles o' Swag (including solving it behind your back!); some talk about a bizarre and interesting alternate Python implementation called RPython that specially compiles your Python code to make it much, much faster, but which also stands a good chance of hurting your brain in doing so ("it's like writing C in Python" and "you can take drugs or write RPython"); some stuff that I couldn't quite follow about xerblin; and the worst and best ways to do document tree conversion (which I wasn't able to take any notes on as I was already running late to pick up the waiting cab).

I managed to score a few more T-shirts today, and I put in an order for a medium Python zip-up sweatshirt (which had sold out nearly instantaneously on Friday). I think that brings the T-shirt total up to at least eight or nine; I'll have to get a final count when I get home and start unpacking. I expect it'll be like opening a series of Russian nesting dolls...

Sadly, there are no results yet for the photo contest--hopefully I'll hear about the results in a day or two. I don't want to toot my own horn too much, but of what was submitted to flickr in time for the contest deadline, most of it fell into one of a few categories: photos of the OLPC laptop, photos of speakers speaking, photos of acquaintances in the hall or meeting rooms, and photos of meeting rooms or hallways with random crowds milling about. I posted a couple of uncorrected candids from the hotel bar of Dave Stanek and Gary Bernhardt poring over a laptop that (I think) really captured the collaborative and fun spirit of PyCon. But we'll see what the judges think... I will post the rest of my photos to my flickr account once I get home and have a chance to offload them from the camera.

Now I'm on the plane, killing time, and being That Guy With The Laptop Out, which is something I'm enjoying because I never get the opportunity when I'm traveling elsewhere. Really, I'm making up for a damaged headphone earpiece that's preventing me from chilling with my iPod for the duration of the flight. I get in around 11 PM, then it's straight to bed so that I can be in early at work for a two-day training session.

As always, the Python community continues to impress me with its warmth, openness, and welcoming nature. It's amazing to be surrounded by almost 600 strangers (I think the final number was 593!) and feel right at home; and it's really rewarding to be able to turn PyCon acquaintances into good friends. I can't wait for next year!

Getting Twisted Again

  • Jan. 23rd, 2006 at 11:10 PM
python - import this

One of the reasons I haven't been messing much with TurboGears lately (aside from the current heavy development activity and resulting instability and lack of recent docs--plus the week it took me to catch up on the mailing list after a week of jury duty) is that I recently received a review copy of Twisted: Network Programming Essentials from O'Reilly, as part of the user group review program that ClePy is part of, and I'm trying to wrap my head around it again. I'm supposed to post a review within the next few weeks, so I'm trying to put down a chapter each night (not counting chapter one, which for me amounted to simply ignoring it and just emerging a lot of packages). So far, so good... I've reported a couple of minor errors that will hopefully be corrected in a future printing, and the important concepts seem to be sinking in, so my rapidly degenerating brain matter will tally that as a success.

Once that and my current work challenges get settled down, it's back to TurboGears for me! I hope to be sufficiently clueful by the time the PyCon sprint rolls around.

Stay tuned!

December Clepy Meeting

  • Dec. 5th, 2005 at 10:57 PM
python - import this

Tonight was another fun-filled episode of Clepy, our little Python group that could. I presented "Fun With RSS", a quickie overview of RSS, feedparser, and PyRSS2Gen, plus a little bit of fun combining the two. David Stanek introduced us to IPython, the Python interactive shell on steroids.

We had some nice discussion of some miscellaneous things as well, including PyCon and why you should go (registration is now open!).

We may consider adopting feedparser as its author, Mark Pilgrim, doesn't appear to be maintaining it any more; I've dropped an email his direction, but given his stated desire to find a hobby that doesn't involve computing, who knows if I'll get a response? (Okay, so a bit of googling about shows recent evidence of his continued existence, so maybe I'll try some additional addresses before shouting "fork!" too loudly.)

We're also planning on replacing the Plone installation of clepy.org with a shiny TurboGears-powered setup. This would at least give us an opportunity to contribute back to TG (through fixes, donated functionality, and general advocacy), as well as build some programming comeraderie through sprints (in person or online) to implement the features we want. Plus it might actually spur some mailing list activity during the weeks between meetings. ;-)

Fun With RSS and Python

  • Nov. 15th, 2005 at 10:30 PM
wash - leaf on the wind
I should have looked into this stuff a while ago, because it's entirely too handy and, in a word, pythonic. I will probably rewrite my crufty home-brew LiveJournal RSS parser using Mark Pilgrim's excellent Universal Feed Parser. Additionally, since I'm not sure if Planet allows easy filtering based on category, and I might like my occasional TurboGears rambling to show up there, I think I will combine feedparser with PyRSS2Gen to build a simple little program to pull, filter, and re-emit RSS feeds.

Of course, knowing my luck, something like that already exists, but at least it'll be fun. ;-)

Basically, it would be something like this... )

TurboGears Gets Presentable

  • Nov. 7th, 2005 at 11:34 PM
wash - leaf on the wind
Tonight's ClePy meeting went pretty well; my presentation introducing the TurboGears web framework managed to not bomb and was in fact well received. Some of that I will chalk up to general politeness (thanks to my combination of false modesty and self-esteem issues), but mostly I think it was pretty good. There was an awful, awful lot of material to try to cover; I tried to hit the high points of the project, its components, some basic examples, and the more pressing issues being discussed on the mailing list.

Should you find yourself in need of insomnia remedies (or perhaps causes if you, like me, like to read documentation late into the night), my presentation is available online, chock full of links to more things you can and probably should read if you are so motivated.

The short, short version: though not yet fully baked, TurboGears is maturing rapidly and (in my opinion) making some very good choices along the way; TG is already emerging as a strong contender in the Python "framework wars." If you're a Python geek, or a web application geek, it's well worth your time to check it out.

[Updated @ 23:55]: Kevin Dangoor has just unleashed a new screencast tutorial on the world to show off some of the features in the forthcoming 0.9 version of TurboGears--behold TurboTunes!

Adventures in the Weekend Zone

  • Nov. 7th, 2005 at 12:06 AM
mal - turbulence/explode
I managed to fritter away Friday night and almost all of Saturday with the skill and grace of a consummate slacker, knowing full well that I had Stuff To Do and that by gum, I was going to put it off as long as I could. I had almost forgotten I could procrastinate so well!

Saturday night I attended the WVIZ World Series of Wine at the Terrace Club overlooking Jacobs Field. I tried quite a few mediocre things but, thanks to Liz's careful pre-screening of the table listings, I mostly experienced tasty winners. Especially wonderful treats were the Carneros Creek "Grail" Pinot Noir, a Bordeaux vertical, Merryvale's Sherry, and a 2000 Barolo from the "Connoisseur's Table." I paced myself pretty well, dumped a lot, and managed to remain well-behaved until we got home, by which point the little sips I'd had throughout the evening managed to gang up and do me in. The subsequent morning hours were not fun.

For a couple of hours, it looked like I might not even get the chance to finish up my presentation for ClePy as the suddenly wild and wicked weather took out the power in our neighborhood, as well as several nearby trees. Let me tell you--it's not a lot of fun shutting down computers with a hangover, as each of the UPS's screams its own particular pattern of loud alarm noises. Once that particular battle with the forces of darkness was complete, I used the opportunity to sleep off the previous night's excesses, and I was feeling significantly more human by the time we had the power back. Liz took me out for some comfort food, and the rest of the afternoon and evening were spent thinking about and digesting TurboGears.

I'll post the presentation tomorrow after the ClePy meeting on the offchance that it might be of some value to someone, somewhere.

Buried Alive!

  • Nov. 2nd, 2005 at 11:40 PM
nausicaa - one of those days
Most weeks, I feel like for every N items on my plate, I have enough time to accomplish N-1 or N-2 of them, and I'm generally okay with that. If things slide a little, so what, as long as I get to them eventually. This week, I feel like I can only get to N/2 of the things I need to, and for this week's particular value of N, I am really starting to feel thoroughly farked.

I have a huge amount of exciting but challenging stuff to deal with at work (which I can't go into). I'm excited by its excitingness but a bit fearful of its scope and ambition.

On Monday, I'm supposed to give a presentation to our local Python group about TurboGears. I've barely had time to keep up with the traffic on the mailing list, let alone do more than the most trivial experiments with actual code. It doesn't help that our last meeting had a really well executed presentation on a similar theme, so whether I want to admit it or not, the bar has been set.

I also need to squeeze in another presentation for work sometime in the next week on some unrelated topics. Hopefully that will come together quickly, but it's One More Thing.

House stuff continues to be crazy; it seems like there's always something new cropping up, or something old that becomes more complicated. I'm woefully behind on my rotating cleaning schedule, and every day that I think I am going to be getting back into my workout schedule proves me wrong. And I'd like to think I could find time for a simple trip to the car wash and some errands, maybe even cook up a real meal again. Hah! In my dreams.

I lost the past weekend to travel (for good cause, so I'm not upset about that or anything); tomorrow night is blocked off for MirrorMask (finally!); Saturday potentially takes a significant dent from the World Series of Wine; and there's more travel/vacation in my very near future too.

In a word: overwhelmed! I suppose I should be Doing Stuff instead of whining about it on my blog, but I have to do something to balance out the lack of cat photos. ;-)

...

Unrelated to all that, I found this presentation on "identity 2.0" to be pretty interesting, and shockingly relevant for those of us who build stuff for the web.

The Sleepy Cat Health Care Plan

  • Oct. 17th, 2005 at 9:59 PM
mal - turbulence/explode

10-16-05_1926.jpg
Originally uploaded by mikepirnat.
It's funny how much better life is when you have cats pin you down in bed for several days on end. I'm feeling significantly better, and quite thankful to have shaken off the worst of what by all accounts is the Cold From Hell. Everyone seems to be getting it, and it seems to be a uniformly miserable experience. It does make for some fun conversations, though--"Have you gotten The Headache yet?" and similar.

...

In other news:

I thoroughly enjoyed the Wallace and Gromit movie, which is not so much laugh-a-minute as it is a constant good-natured chuckle. It's a delightful little film.

I was not prepared for the "Madagascar Penguins" Christmas-themed short cartoon though--is it just me, or does Christmas start sooner every year? It was a cute cartoon, but it probably won't even be playing when it's even remotely seasonal. Can we please, pretty please, with Jack Skellington on top, please not start with the holiday cheer until after Halloween?

I determined that my lack of forward motion on experimenting with TurboGears was the lack of a proverbial itch to scratch (well, that and the whole coughing up my lungs thing). Luckily, I think I've managed to uncover an itch from some ages back, so at least now I have a little direction and focus. It's also been a bit of fun to hang on the #turbogears IRC channel and occasionally have something useful to contribute.

On house-related matters, not only am I now the proud owner of attic insulation (installed even), we are halfway to having bathroom fans that are actually effective at circulating air and moisture out of the house. Much rejoicing! To counterbalance this otherwise sunny progress report, however, it seems that our lawn mower has, with a saddening sigh, released the last of its Magic Blue Smoke, and try as we might to convince it otherwise, it seems that it shall mow no more. The timing was oddly perfect--the first dry day that both of us have been in good enough health or schedule to allow us to partake lawn maintenance, and boom! It wouldn't be that bad, except both neighbors mowed their lawns this weekend, so ours bears an increasing resemblance to jungle foliage. Definitely not high on the curb appeal scale.

Sick Daze

  • Oct. 12th, 2005 at 4:01 PM
mike of the living dead
Ugh. I managed to quite efficiently catch Liz's cold, so now I am enjoying a day of too-low temp, coughing, sneezing, sore throat, and overall blecchy gunk.

On the plus side, I have had some lovely naps (the cats have even deigned to bless me with their magnificent presence), played a bit of LotR: The Third Age (I'll be done with that game eventually, I swear!), messed a tiny bit with TurboGears, answered a phone question for work, and enjoyed marvelous leftover chicken vindaloo.

Mad props to Liz for having the patience to put up with me throwing this little monkey wrench into her day. I guess since I spent much of the weekend looking after her, it all works out. Yay for love!

Back to sleep for a bit, I think.

TurboGears Sprint

  • Oct. 9th, 2005 at 11:06 PM
mal - turbulence/explode

10-08-05_1501.jpg
Originally uploaded by mikepirnat.
David Stanek and I drove up to Ann Arbor on Saturday to participate in the first ever TurboGears sprint. We had some great discussion on the drive up and back, and while there we had a great time meeting some fellow Python folks, tinkering on TurboGears a bit, and noshing on pizza and munchies.

Most of the sprint was spent on getting up and running with TG, and wrapping brains around its workings, but static friction was overcome on at least a few fronts... One team started working on adding CRUD features; another is working on improving the error reporting in the Kid templating engine (to provide insight into where in the Kid template a problem occurred, as opposed to where in the Python code); a third group started work on being able to get interactive shell access into a running TurboGears application; Dave and I researched Scriptaculous and Dojo to see how they worked and what nifty animation tricks and things might be worth incorporating into MochiKit.

Overall, it was a very positive day. I'm really excited to see how TurboGears will evolve over the coming weeks and months.
If there's a bright center of the Internet, you're on the blog that it's furthest from. Rants, raves, and assorted ramblings from my little patch of the periphery of known space.

Latest Month

November 2009
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930     

Syndicate

RSS Atom
Powered by LiveJournal.com
Designed by Tiffany Chow