Advertisement

wash-leaf on the wind3

Robert Kern asked me to share my Atomisator configuration for the Unified Python Planet. So, here it is:



[atomisator]

# sources
sources = 
    rss http://www.planetpython.org/rss20.xml 
    rss http://planet.python.org/rss10.xml

# filters
# "doublons" is French for "duplicates" --  this is what de-dups the feed
filters =
	doublons
	
# enhancers
# I'm not using any, just leave this blank (default)
enhancers =

# outputs
outputs =
    rss /home2/mpirnat/webapps/pirnatwp/static/unified_python_planet.xml "http://feeds2.feedburner.com/UnifiedPythonPlanet" "Unified Python Planet" "A uniqued union of the Official and Unofficial Python planet feeds.  Generated by Atomisator FTW!" 

# database
database = sqlite:///atomisator/unified_python_planet.db


The example configuration files that come with Atomisator are really good at illustrating how you would use them; I've omitted the explanatory comments from my example, but they're in the examples and will point you in the right direction. Thanks again to Tarek for this very handy tool!



The Diaper Pattern Stinks

  • May. 9th, 2009 at 2:49 PM
wash-leaf on the wind3

I mentioned the "Diaper Pattern" in a recent post and got some comments asking what the term meant. I had hoped to just link to an explanation, thinking it was a well-known antipattern, but several minutes of frustrated Googling have left me convinced that there's actually a tiny knowledge gap to be filled here.



"Diaper Pattern" is a term that I picked up from working with Matt Wilson and David Stanek. It's an anti-pattern about naively over-broad exception catching. A very basic example in Python might be:



try:
    do_something_that_might_throw_various_exceptions()
except Exception:
    pass


If anything at all goes wrong in do_something, the except will catch and silence it--but we know that errors should never pass silently (unless explicitly silenced). It's called a Diaper because it catches all the shit.



In practice, unless you have a good reason to catch everything, it's a lot better to only catch the specific exceptions that need special handling, so that you'll know right away about any runtime surprises and where they came from:



try:
    do_something_that_might_throw_various_exceptions()
except IOError, e:
    # handle just IOErrors; let everything else make noise


Maybe it's just a coincidence, but I've heard the term used more by developers who have young children than by those without kids.



The Zen of Doing It Wrong

  • May. 6th, 2009 at 2:50 PM
wash-leaf on the wind3

A coworker unearthed this little treasure today... I think it's a vestigial structure to assist Diaper (anti)Pattern treatment during testing or debugging, but it's still gross to see it in real, live production code. (Oddly enough, I couldn't find a good "Diaper Pattern" link whilst Googling about--surely I'm not the only one who uses this term?) Anyway, without further ado:



        try:
            os.remove(filename)
        except:
            raise
            pass
        try:
            os.remove(os.path.join(TMP,'out-%s' % base_filename))
        except:
            raise
            pass
        try:
            os.remove(os.path.join(TMP,'properties_%s.lock' % brandid_human))
        except:
            raise
            pass


If an exception is raised, raise an exception... It has a certain zenlike beauty to its awfulness. The use of the Diaper Pattern is bad enough, but this guarantees blowouts!



Return to Clepy; Possible End of the Universe

  • Apr. 13th, 2009 at 11:15 PM
wash-leaf on the wind3

Forget the LHC--a far surer sign that the end times are nigh is that I've finally been able to attend Clepy for the first time in about 15 months. (In case I do actually cause the implosion of the universe, let me take this opportunity to apologize in advance. Sorry about that; my bad!)



We had an extra-long social period at the start of this month's meeting (while there were some misadventures with pizza delivery), but the bonus casual time was great for meeting new people and getting caught up with people I hadn't seen in a long time.



The main focus of the meeting tonight was a live demo of Gary Bernhardt's TDD tools, Dingus and Mote. I'd seen a little bit of Dingus from following Gary on Twitter, but had not ever seen it in action, and Mote was brand new to me. Dingus is a mocking library that attempts to aggressively and magically isolate the code under test from everything external to it. Mote is a lightweight spec-runner (not "test-runner!") that wants to remove as much verbosity as possible. Thanks to some nifty decorator-fu that makes it super-easy to rig up automatic Dingus isolation in your Mote specs, the two combine to form some kind of TDD Voltron. Mote's a little rough around the edges, but it's brand new and under heavy development, and shows a ton of potential. If you're interested in testing or TDD, check out these tools!



The unsung star of tonight's presentation was Gary's .vimrc, which contains powerful magics for quickly running tests from within vim and displaying their success or failure as a green or red line at the bottom of the buffer. There's plenty more fascinating arcana in there, so it's nice to know that his dot files are on bitbucket too. I'll eventually peruse and dissect them.



This was Clepy's first meeting at LeanDog's floating headquarters; I was really pleased with it as a venue. It's centrally located, easy to get to and from, is highly geek-friendly, and is quite novel as a meeting space. (It's on a boat! Next to a submarine! How great is that?!) I hope we can continue to meet here as it really seems like a positive change. It was also great to see new faces and meet new people tonight; it seems like the group has really started to thrive independently of AGI.



Above all, I really hope to be able to start attending regularly again, even if it does trigger the apocalypse.



A More Excellent Unified Python Planet

  • Mar. 28th, 2009 at 11:34 PM
wash-leaf on the wind3

Good news, everyone!



After a couple days of playing Twitter tag with Tarek Ziade, we finally met up for lunch at PyCon, where, in addition to having a lovely conversation, he was kind enough to give me a personal tour of his Atomisator framework for data aggregation.



Atomisator is much savvier than Yahoo Pipes at things like removing duplicates and not mangling content, so I've kicked Pipes to the curb and hooked up the Unified Python Planet feed to my Atomisator output.



What this means for you, lucky reader, is that everyone who subscribes to the Unified Python Planet should not only stop getting duplicates, but, more importantly, have legible code samples directly in the feed. (It's okay if you need to take a moment to process this joyous news. It makes me pretty damn happy.)



Please let me know if you experience any flakiness with the new, improved feed.



I want to give major, major thanks to Tarek! Atomisator is really well suited to this purpose, as well as some other stuff I'm now curious to tinker with.



Python: You're Doing It Wrong

  • Nov. 25th, 2008 at 12:33 PM
wash-leaf on the wind3
A coworker just showed me this little gem--a maintenance script that's got no author attribution and isn't in source control, so whoever has perpetrated this crime against all that's good and holy remains anonymous and (for the moment) safe from our wrath. I'm so completely taken aback by this--I... I don't know what to say. I just have to share.

#!/usr/bin/env python
import os,sys
C=os.chdir
S=os.system
M=os.mkdir
J=os.path.join
A=os.path.abspath
D=os.path.dirname
E=os.path.exists
W=sys.stdout.write
V=sys.argv
X=sys.exit
ERR=lambda m:W(m+"\n")
PRNT=lambda m:W(m+"\n")
assert len(V)==2,"you must provide a sandbox name"
SB=V[1]
H=A(D(__file__))
SBD=J(D(H),SB)
C(SBD)
PST=J(SBD,'bin/paster')
VAR=J(SBD,'var')
ETC=J(SBD,'etc')
S("mkdir -p "+VAR)
PRNT("restarting "+SB)
CMD=";".join(['source %s'%J(SBD,'bin/activate'),PST+" serve --daemon --pid-file=%s/sandbox.pid --log-file=%s/sandbox.log %s/sandbox.ini start"%(VAR,VAR,ETC)])
PRNT(CMD)
S(CMD)
PRNT("All done!")
X(0)


Weep for us.

Originally published at Mike Pirnat.
» Click here « to leave any comments.

A Unified Python Planet

  • Nov. 2nd, 2008 at 11:22 AM
wash-leaf on the wind3
I subscribe to both the official and unofficial Python planet feeds because they've each got some content that's unique to one or the other, but the overlap and duplication has really been bugging me lately. So I suddenly remembered the joy that is Yahoo Pipes and glued both of them together with a unique-ifying filter to eliminate duplicates, and, feeling generous, I stuck a friendlier Feedburner URL around it--you can get it at http://feeds.feedburner.com/UnifiedPythonPlanet.

It makes me pretty happy so far, except that somewhere in Pipes land I seem to be losing newlines in pre elements (which appears to be a bug in Pipes itself, argh), which is a little (very) annoying when trying to read people's code samples. I may end up replacing the Pipes side with a little bit of Python (a little Feedparser and PyRSS2Gen ought to do the trick) if I get the time later today.

Anyway. I figured I should share it, on the offchance it makes anyone else's life better. (Or if such a creature already exists, let me know and I'll gladly use that instead.)

Originally published at Mike Pirnat.
» Click here « to leave any comments.

Hopefully Minimizing Wheel Reinvention

  • Apr. 23rd, 2008 at 7:41 PM
python - import this

Dear Lazyweb:

I have a number of programming itches that I'd like to scratch that are just slightly large enough that I'd really love to just use something that already exists (if available). I'd spend a while digging around, but, well... I'm lazy, and I'm busy. So hopefully some of you have suggestions. I am looking for:

  • an MSN Messenger client library (preferably in Python)
  • a Twitter client library (preferably in Python)
  • a solution for cross-posting between LiveJournal and Wordpress (either direction) that supports (or could be made to support with a minimum of pain) multiple LJ blogs on one end and multiple WP users on a shared blog (not that my wife really posts that much any more) on the other
  • a hosting provider that's friendly to IM bots and is affordable (for some value of "affordable" that I have yet to precisely define, but which in all likelihood simply means that it won't cause marital unrest)

I may award bonus points if the MSN and Twitter suggestions are both written against Twisted. I know Twisted's got some MSN support, but I've not looked into it too closely and was a little disappointed by the state of the official docs and examples.

I currently host with WebFaction and though I'm normally entirely satisfied with them, I seem to recall that at one point they frowned on running IM bots on their shared hosting platforms, although I can't immediately find anything expressly prohibiting it in their terms of service, AUP, knowledgebase, and support forums.

Thanks in advance!

Tags:

Wait, How Old Is My Kid Again?

  • Apr. 22nd, 2008 at 11:08 PM
python - import this

The thing about being a relatively new parent is that life very quickly becomes a complete blur, and after a certain point you've no sense of what day it is, let alone how many weeks old your little bundle of joy is. This makes life tricky, since there are certain milestone weeks that are usually the harbingers of sudden shifts into higher levels of fussiness and sleep regression.

So what's a frazzled dad to do?

Well, I do have Python, and I seem to have Google Reader open an awful lot, and cron jobs are a lot better at remembering to do things than I am... So here's my fifteen-minute solution that I whipped up the other week in between putting Claire down for her morning nap and getting ready for work. (File names and URLs have been changed to protect the innocent; some brackets have been HTML-encoded to display properly as LiveJournal seems to disrespect pre tags.)

Here be source code... )

You will, of course, have to install dateutil (via easy_install) and PyRSS2Gen (the old-school tarball way) so that they can do the heavy lifting for you.

Then all that's left is to cron it to run daily, and point your favorite RSS reader at the feed. Voila! You're on top of exactly how old your kid is, and quickly on your way to becoming Parent of the Year.

Google App Engine Set to Rock My Socks

  • Apr. 8th, 2008 at 9:59 AM
python - import this

Google App Engine seems pretty freaking sweet to me. In short:

  • write apps in Python
  • deploy on Google's infrastructure
  • access to existing Google goodness like BigTable, email, and authentication
  • free account can use up to 500MB of storage and serve ~5M page views/month
  • non-free accounts coming soon
  • can upload additional modules as long as they fit the sandbox rules

Unfortunately the beta test pool filled up almost immediately, so I don't get to play with this yet... But it's definitely exciting that Python's in such a spotlight lately.

And check out the video of Guido van Rossum talking about App Engine...

Tags:

PyCon 2010 in Cleveland? Yes Please!

  • Mar. 30th, 2008 at 12:05 AM
python - import this

There's a lot of excitement on the ClePy mailing list about trying to bring PyCon to Cleveland in 2010. David Stanek is leading the charge, getting folks talking, and planning, and motivated.

Clevelanders who want to help out bringing Python's premier conference to our fair city should head on over to the bid page on the Python wiki and lend their names and support.

Non-Clevelanders, have no fear! Cleveland's really quite misunderstood and under-appreciated. We've got a great restaurant scene (we're home to the newest Iron Chef!), tons of attractions (like the Science Center and Rock Hall), world-class museums and other cultural institutions (maybe a few of you have heard of the Cleveland Orchestra, which is rated among the top 3-5 worldwide), the nation's second largest performing arts center, beautiful parks and lake views, and more--all within walking distance of either the likely conference site or available with a quick jaunt on the rapid transit system. Plus the river hasn't caught on fire for decades, but you can savor the legacy with really good local beer. ;-)

In short, there's plenty to love about bringing PyCon to Cleveland. Let's do it!

Processing PyCon 2008

  • Mar. 16th, 2008 at 10:45 PM
python - import this
Stairway
Stairway
Originally uploaded by mikepirnat.

The security line at O'Hare was almost non-existent, so now I've got a bit of time to kill and (since "free wireless network" doesn't seem to want to give me any DNS) have the laptop open, it's probably time to digest and process my PyCon experience.

Overall, I felt strangely disconnected this year. I didn't end up dining with any of the circles I'd overlapped with in years past, didn't go to any parties, didn't stay up late hacking on personal projects, didn't hang out on the IRC channel (thanks a lot, wonky wi-fi), didn't have a presentation to worry about, and didn't end up being able to wake up in time to get my name on the list for Lightning Talks. Heck, since I didn't have the laptop out much, I barely even took notes this year.

What I did do was shoot a lot of photos, some of them acceptable, nearly filling my 2GB card over the course of the conference. I've only had time to upload one as I just haven't had the time, motivation, or energy to sort through everything at the hotel. (And it's not like uploading via the sippy-straw of the hotel's in-room wireless would have been terribly practical either.) I enjoyed briefly meeting Ted Leung before the opening keynote, and was amazed (and somewhat intimidated) by the number and variety of fancy camera toys he'd brought with him as he performed his duties as official photo dude. A number of folks stopped me and asked me questions about my camera and flash; I tried not to sound like too much of a moron when answering them. The weird thing is that everyone assumes if you are toting a DSLR around that you can't possibly take bad pictures with "a camera like that," when in reality shooting with a DSLR is the fastest way to find out exactly how much you suck at photography. I can get some good (and sometimes above-average) results, but I really have to work at it, so I try to stay humble. Also it helps to never show anyone your bad shots. ;-)

While I'm still on the camera talk, I learned that I need to bring extra batteries for the flash, recharge the camera battery while I sleep or bring a spare, and that I should probably buy a spare memory card so that I don't feel any last-day storage pressures when I've been too lazy to dump things down to my laptop. I've also learned to swallow my pride and kick the camera over to automatic metering when the lighting is tricky and I need to shoot quickly--I have some almost-good shots ruined by camera shake that could have been avoided if I hadn't been trying to be all manly and shooting in full manual with no flash. Finally, a happy discovery--the bad-ass heavy-grade Gorillapod that my wife gave me for Christmas makes an excellent hybrid of monopod (albeit rather short) and grip/brace. I found that I could keep the camera very steady by placing two of the legs against my body and supporting the camera with the third, making it easy to track and shoot moving subjects without too much wobble.

On the dining front, the huge posse of Cleveland folks managed to get out to some tasty meals. On Wednesday night we lucked into an unheard of thirty-second wait for a table at Frontera Grill and enjoyed a meal that simply cannot be described in words. Friday night we (along with Bill Zingler, a compadre from the Turbogears sprint in '06) hoofed it down to Ram, a grill and brewhouse, where the beer and food were pretty good. We didn't stay for too long though as we were greatly outnumbered by a vast sea of douchebaggery--drunken BMW-driving jerks in their sport jackets acting out a sad, strange re-enactment of their college (or more likely high school) days. We rounded things out on Saturday with a visit to the local Giordano's for deep-dish pizza, a first for one of our number, where we proceeded to annihilate their supply of Fat Tire.

Gosh, that's an awful lot of text without really even talking about the conference... Which might in itself be a comment about the conference.

Everyone knows the wireless network was stinky, so I won't spend too much time one that. It wasn't until this afternoon that I was able to even connect in any way approaching reliability. By then, really, there wasn't much point.

It seems like the consensus is that the Lightning Talks really suffered this year from the overwhelming dominance of the (lackluster) sponsor talks, to which I can only agree. It was really disappointing to see so little time available to community speakers during what, to me, is really the heart and soul of PyCon. There were a few gems on Friday and Saturday, but mostly... ho-hum.

And I was underwhelmed by a lot of the presentations too. A lot of things that I thought would be really useful or deep ended up being too light, too dull, or just not well presented. I seemed to have a knack for picking a lot of duds. Even two thirds of the tutorials that I attended (Eggs and Testing) were letdowns, due to the lack of being able to do any of the exercise material thanks to the network (Eggs), and the repetition of material from last year's PyCon (Testing).

The big wins for me were the Advanced SQLAlchemy tutorial (slide runner rocks! and if it's possible to be in love with an ORM, I think I am!), Kevin Dangoor's talk about TG2 and Dojo, and John Harrison's insanely cool Halloween laser-zapping extravaganza, which was probably the most fun presentation I've been to in four years of attending PyCon. The first two will have practical benefit for me in my daily existence, and the latter--complete with head-tracking, 3D VR goodness--was just frickin' awesome. A note to future PyCon presenters when coming up with your proposals--lasers, lasers, LASERS!

I don't mean to be so down on PyCon. I had a good time, I was just exhausted from one end to the next. Exhausted before I even left, exhausted while I was there, and (surprise surprise) exhausted now that I'm home. I did really enjoy meeting folks, networking a bit, and soaking in the vibe... It just didn't manage to leave me as energized as I'd gotten used to, spoiled as I've been by PyCons past. Though stumbling across the excellent performance of "Stairway to Heaven" in the atrium thoroughly lifted my spirits. So few people seemed to even notice that it was almost like a private gift just for me.

I've got about seven hundred photos to wade through to find promising candidates to share; please bear with me as the lucky few take their time to escape into my Flickr stream.

Google Chart API Released

  • Dec. 6th, 2007 at 9:35 PM
python - import this

I've been looking for a decent chart or graph library lately for a soon-to-be-hatched personal project, and been largely disappointed by the state of what's available for Python. The freely available choices all felt a bit clunky to me, either in usage or in output (or in some cases, both), and the strongest contender (ChartDirector) was disqualified because of the licensing cost. I'd also looked at a few Javascript libraries, but really didn't want to be stuck depending on client-side scripting for a variety of reasons (not the least of which is load on the client--it's amazing what a couple of simple charts in a Google Spreadsheets document will do to the performance of even pretty studly machines).

So I was pretty happy today to see Google announce today that they are making their Google Chart API available for public use. It's a pretty straightforward, stateless HTTP service: just fire off a properly-formatted GET and receive a PNG image in return. They support line charts, bar charts, pie charts, Venn diagrams, and scatter plots, labels, legends, and a plethora of coloring and styling options. And the output appears fairly pleasing to my eye.

There are a couple of caveats, though...

  • You are limited to 50,000 queries per user per day, which may pose some scalability concerns if you plan to build something big on this.
  • You have to be careful about the number of data points you submit in your request as you can quickly exceed the allowable URL length, and furthermore you might end up with illegibly smooshed-together data points due to the scale of your output.
  • There's always the "OMG Google will absorb all our data and become sentient, turn evil, and unleash an army of death robots on us all, run for your lives!" paranoia, but that's really just silly talk.

WIth those hazards in mind, this still seems like it will be very useful for me, at least in the short term. I am of course open to other suggestions and opinions if people would like to share them; if you've had good experiences with some charting library that might fit my needs, please let me know!

Tags:

python - import this

I missed the September ClePy meeting because I was too busy helping my wife fork a child process (there seems to be an awful lot of that going around the Python community lately, based on what I've seen on the Planet feeds--something in the water, perhaps?). But I hear that Brian Beck put together some nice slides for his talk on his Pagoda CMS system, and Nick Barendt clued folks into how to run their own open-source PBX with Asterisk and AGI.

Asterisk turned up again during open discussion at this Monday's meeting; while getting caught up, I got the scoop on Asterisk (since I'd missed the talk and been too busy with baby and work to read Nick's PDF) and we had a good time talking about crazy PBX tricks; the coolest idea was to use Asterisk to hook up your desk phone as a combination lock to trigger a secret door to your underground lair (awesome!).

The meeting proper was a short one due to the sudden absence of one of our speakers; Monday's lone presenter was Gary Bernhardt, who put three great packages together--httplib2, Beautiful Soup, and Feedparser--for a discussion of "Talking to the Web with Python." In a particularly interesting example, Gary showed us how to combine Beautiful Soup with Feedparser to build a Technorati-ish blog link extractor in eight lines of code. Note that combining these in a nice, sparse nested loop structure (or even in a super-l33t list comprehension) is a fabulous way to peg your CPU (you have been warned).

Our next meeting will be November 5--if chance finds you in the greater Cleveland area, drop on by!

AGI Hack Day: Mission Accomplished!

  • Sep. 28th, 2007 at 3:48 PM
python - import this

Hackers Only
Originally uploaded by aaronoliver3000.

Once upon a time, some Python developers here at AG Interactive said, "Gosh, we should totally do one of those fancy Hack Day things." And they went unto their manager, who said, "What excellent timing, I think we should totally do one of those fancy Hack Day things too. Let's make it happen." And so they did. And it was good.

I'm very, very pleased to report that our first-ever AGI Hack Day was a smashing success. Roughly fifty people, divided into fourteen self-organized teams, spent 24 hours putting together prototypes of whatever great ideas came to mind, covering ground from new product ideas to deeply geeky internal architecture improvements, and then presented their work in three-minute demos similar to the PyCon lightning talks. Prizes were awarded today in the "fun" categories ("Funniest Hack," "Hacker's Choice," etc.); a forthcoming second round of demos for our senior team will yield the big winners.

Hack Day has definitely been a big score for our culture. The atmosphere has been so alive and vibrant, with a hum of excitement and activity, a certain je na sais quois of Cool Stuff In Progress. It's been fun just to be around it. One very good choice that we made was to open up the event to non-developers, so that our talented system admins, UI gurus, product managers, and even QA folks were able to jump in and come up with great ideas. A few adventurous souls liveblogged their experiences, and photos have been appearing on Flickr (including some excellent late-night Guitar Hero shred-nanagins).

The response from the company has been very positive, so I think we can look forward to many more excellent AGI Hack Day events in the future.

Diminished Postality

  • Aug. 27th, 2007 at 11:30 PM
wash-leaf on the wind3

For the record (in case anyone was still in suspense about this)... Apparently if you send an email to the USPS's web tools customer support box saying that nothing you try on their test server is working as documented, you'll get a lovely form letter about a day later congratulating you on successfully completing all testing and granting you access to the USPS's production systems, and suddenly everything miraculously Just Works.

Nothing quite like my tax dollars at work. :-)

Tags:

Going Postal

  • Aug. 21st, 2007 at 9:28 PM
jayne - damage my calm

I spent the better part of today cooking up a nice little interface to the US Postal Service's rate calculation APIs, and like a good little dev I've even been writing little py.test cases to poke at it. But once it came time to stop stubbing out the live IO and see if their test server would yield up any joy, my hopes were dashed and torn asunder. Because as lovely as all of the API documentation is, no matter how thoroughly they describe the input and output XML schemas, no matter how slick and (literally) head-turning their diagrams are, none of it matters two hoots when the test server says that there's no service with the API name that the docs tell you to use.

Even better, all of the preliminary canned example requests that are supposed to be no-brainers to bounce off of their test server get a lovely and oh-so-enlightening "the parameter is invalid" response. Yes, thank you, it's all clear to me now! Clearly--the parameter... It's invalid! What was I thinking?

United States Postal Service... you're on notice.

Seriously, though, if anyone else has had to integrate with the USPS APIs and has advice, I'd love to hear it. I did encounter some rumors and hearsay that "some" of the APIs were recently "broken" and "undocumented," but I'd really like to believe that there's a simpler (and friendlier-to-deadlines) explanation than that.

Tags:

Google at the August ClePy Meeting

  • Aug. 7th, 2007 at 1:00 AM
python - import this

History Lesson (1997)
Originally uploaded by mikepirnat.

At tonight's (now yesterday's) ClePy meeting, special guest presenter Brian Fitzpatrick, Engineer Manager for Google's Chicago office, gave a talk entitled "Google, Bigtable, and Scalable Version Control." I'd heard a bit about how GFS and Bigtable work before at a previous Google talk, but it was very cool to see it applied as the back-end for Subversion.

That developed into an interesting discussion on what sorts of bottlenecks the big G has to worry about, which segued into a nifty bit of stuff on a storage/data transmission system that Google's working on to allow scientists to shove 100+TB data sets around--sort of a Drobo on steroids, with a cool padded metal container for shipping that totally looks like it's from a spy movie, because, when it comes down to it, you still can't beat FedEx for data throughput on a sufficiently large scale (unless you are blessed enough to have Internet2 piped directly to where you need it).

From there we got into an entertaining discussion on the pros and cons of distributed and centralized version control systems, had some philosophical disagreement between the two, and managed to work in a Car Talk joke, and got the scoop on some forthcoming goodness in SVN-land. Matt Wilson has some good notes on this, including a clever joke about distributed VCS. Fitz made some great points in defense of centralized VCS that are making me rethink the take-my-toys-and-go-play-by-myself approach I've taken to try to get some personal momentum on Shindig, and maybe even managed to shame me into starting to commit publicly. Then again, I am in such deep love with committing frequently that perhaps I'll find some middle path, using Bazaar for versioning things in between SVN commits. Or something. We'll see.

A bunch of us hung out afterward at the nearby Max & Erma's for drinks and continued chatter, and from what I could tell the conversations were all pretty interesting. (No notes from that as I was busy enjoying beer and talk.)

I really want to thank Brian for the engaging talk and discussions (and for picking up the tab at the bar), and Susan Loh for getting everything squared away on the Google side (including taking care of pizza and beverages for the meeting, logo swag, etc.). Hopefully we can be a destination for future tech talks.

harry potter-summoner geeks

I'm really excited by the amount of progress I've made over the last couple of weekends, hacking away at what for now is known as Shindig, a group management blog/calendar app written against TurboGears. Its primary purpose is to be something easier and faster for me to maintain than ClePy's current Plone site. I'm sure much of what it solves has already been done, but I want something exactly tuned to giving me the most streamlined workflow possible, and, let's face it, it's just plain fun to write code.

So ordinarily, I'd be psyched about how much I'd be able to get done this weekend... Except that the stupid Harry Potter book is showing up in the mail tomorrow, and that basically means that it will consume every waking, lighted hour until it's done. I love the books, I really do, but it's really putting a crimp on my Python geek-out sessions. But I have to be done reading by Monday, that's for sure, or else I will have to gouge my eyes out to avoid spoilers. My predictions: Snape dies (he's obviously been set up for a hard-core double-agent redemption arc, so he'll probably save the day somehow), Harry lives (and will be the best Defense Against the Dark Arts teacher ever), and Ron and Hermione will finally succumb to the powerful call of teenage hormones and romantic comedy conventions and hook up in a major way.

Oh, yes, and I'm going to see Howard Shore conducting the Cleveland Orchestra in performance of his Lord of the Rings Symphony tomorrow night, so that knocks out a couple more hours of potential coding time. Which I guess I can live with; enjoying some of my favorite music, conducted by its composer, performed by one of the world's foremost orchestras, under the night sky, with a picnic and a nice glass of wine... Should be a real treat.

...

Tonight marks 24 hours since the arrival of the Apple TV. So far, I'm very, very impressed. I have modest needs, primarily to replace an aging SlimP3 that's prone to chronic buffer under-runs ever since I replaced my dying firewall, and it solves all of my most common use cases with total aplomb. I've been delightfully impressed by its streaming performance, which, even with an 802.11b/g setup, is nothing short of freaking amazing. I'm also very satisfied with the image quality out of the component video cables (chosen since our altar to the television gods predates HDMI by a generation or so). My advice so far, to any prospective owners, boils down to two points:

  1. Don't do your initial sync over wireless if you don't have 802.11n hardware. Wired ethernet is your friend by orders of magnitude.
  2. Its case serves as its heat sink, which is to say it gets hot like you wouldn't believe. Don't set it on top of your DVD player or other hardware (unless you want to cook your gear), and make sure that it gets plenty of airflow. Honestly, I used oven mitts to bring it upstairs to wire it into my switch to finish the initial sync. Yikes!

Beware of the YouTube integration; Liz and I must have spent an hour tonight watching videos of cats doing stupidly cute things. It is a powerful and addictive time-sink.

...

Finally, I'm happy to report that the first of two freebie poster-size prints from Shutterfly arrived today and it looks great. I picked up a 50mm prime lens for my Canon (Digital Rebel XT) recently, and the folks at Amazon threw in a coupon for one free 11x14 and 16x20 print. The 16x20 (which I expect sometime Saturday or Monday) will probably end up framed and in our dining room, next to some other wine-related art, and the 11x14 (which showed up today) will probably find a home in our living room. I'm really quite tickled--I've never printed any of my work larger than 5x7 before--but I fear that I could start going poor making prints of my better photos. Oh well; Liz said I should find a hobby.... ;-)

July Clepy Meeting, Sprint Thoughts

  • Jul. 2nd, 2007 at 11:30 PM
python - import this

We had a shorter and lighter ClePy meeting tonight, which ended up working out just fine. Dan Buch gave an entertaining talk on how he fell into and out of love with Grok, a frameworkish sort of thing for Zope 3. We had a pretty informal discussion of the state of things, in framework land (especially the TurboGears 2 new), in Python (relating to the recent Python 3000 kerfluffle), and in what we're up to in our own projects.

Since we ended a bit earlier than usual, we popped down the street for a bite to eat and a round of beer and more chatter. We talked a little bit about the general failure of our sprints to, well, happen, and will hopefully be kicking around some ideas on how to make the project into something that people are excited about contributing to. Personally, I think the "let's integrate a bunch of existing, mature products" approach that we planned is what's hurting us the most. Taking four or five disparate (and probably more-complicated-than-necessary) things and getting them all to play nicely and be consistent with one another just feels too much like real work. I think we'd be much happier creating something small, simple, and original, even if it's not tremendously groundbreaking or the category of problem has already been done.

Next month we'll be sponsored by and hosting a presentation from Google. The topic and speaker are still to be determined, but there will be swag, so that's good enough for me. :-)

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