• Harvard, March 31, 5:30pm, Science D
• MIT, April 1, 4:30pm, room 34-101
According to the Boston.pm mailing list, the MIT talk will be on "Ballstic Programming", and the Harvard talk might be the same but nobody is totally sure.
I lean towards the Harvard one coz it's closer to me, but could go to either. Anyone want to join?
I'm interested to see that the number of new users started to drop off a few years ago, but the activity of existing users has been increasing so much that the archive's overall activity continues to trend upwards.
If I had to guess a single reason for this, it'd involve the community getting better over the last several years at corralling many hackers together into large, frequently updated projects, which then get stored in the CPAN under a single username (as that's a limitation of the system). I think, for example, of DBIx::Class's recent ascendency, and clear community dominance, over the thousand SQL-abstraction modules that came before it. So you have fewer instances of people creating new CPAN author accounts just to upload their own wheel-reinventions.
I don't know why I care about stuff like this, but it seems that I do. It's pragmatically meaningless to me; jobs.perl.org continues to have more postings every month than the one before, and the rare times I run into a direct challenge of Perl's authority in my professional life, I have always been able to swat it down easily. (I mean, usually they're something like "So-and-so told me that Perl is just a glue language, and it's outdated even for that. And that it's ugly and unmaintainable! He said we should use PHP instead." Hurr.)
And it's not like I'm against learning new languages. I'm picking up C# for another project, right now. (Yes, there's an overdue post there.) But switching one's home language in a particular work-area, and then flaunting it (while being an in-circles ultra-popular cartoonist), I dunno. Imagine a media personality you enjoy, and who happens to be a Red Sox fan, going onto the Daily Show to renounce the team and put on NY pinstripes while the audience cheers. (Er, also imagine that you grew up in a Boston-area sports-loving house, OK?) I feel like that. It's nothing that affects me directly, but I still feel a loss, somewhere.
• I have a copy of the volity.net webclient alpha mostly running on Brie, my creamy white MacBook. This is very important, not just because Brie's become my primary all-sorts work machine, but because I left volity.net's codebase in a sad state when I last touched it, way out of synch with Subversion. No more of that.
The webclient daemon's regression tests all pass again, as of this evening, and I'm raring to write more tests. Recent work for clients saw me learning to really learn to rock Test::WWW::Mechanize and I am honestly looking forward to writing a mechanized agent that will try to play Tic-Tac-Toe games over the web and report back to me. (I may need to write and install a deterministic TTT bot to complement it.)
I have a goal to launch the damn alpha by April 1, and feel it's entirely realistic. I'll miss it only if I get too distracted by pay-money-work, which isn't impossible, but even in that case I'm gonna get a lot of good work done.
• My consulting business's brand-identity work is down to negotiating business card design, which is just a peewee version of the website's design. I am nearly there! I will be so happy when I can finally announce the business's name and identity loud n proud, though I haven't been exactly keeping it a secret in the meantime. (Have begun renegotiating my open contracts to point at the company, rather than at me personally.)
• Idled in the The Burren with taskboy3000 this evening to discuss the format of upcoming Gameshelf shoots, the likes of which you have never seen before, at least not on this particular show. Mailed our director about it. He seems really energized about our trying new things, and quite into playing his role through all of it. We are lucky to have him on-board.
Is there a word for when a baby decides that a certain person in a certain setting is a fascinating source of visual data, and so stares and stares? Mr. T. Boy had one of these attached to him tonight, from the next table over. Very amusing.
- Yellow flags:
- Company name written in lowercase
- Entire job spec contained within ad
- Red flags:
- Email address a GMail address, even though this is supposedly a paper company
- Googling this company's name returns no relevant hits
- Mention of "bids"
- "We'll pay you via PayPal"
Edit: Looks like j.p.o shot it down already, which is the first time I've seen em apparently yank a dumb ad. (Not that they get a lot of dumb ads, them not exactly being Craig's List.) Nice going! Too bad I didn't get a screenshot, though...
Maybe a little too cute, though. For the love of gord: don't compare your project to "Star Wars: Episode 1" in the first five slides. You are basically saying "Yay lightsabers Ha ha ha :( fuck we're doomed". *slap* Snap out of it!!
It reminds me of a podcast I heard recently that featured a community luminary giving a presentation on Perl 6 syntax, and stating at the beginning that the entirety of the talk could be rendered obsolete this time next year. Well then! Thank for letting me know that now is a good time to hit the fast forward button on my iPod. (More than that, even; this was the beginning of the end of my assumption that Perl 6 will ever see a release.)
I dunno what it is with Perl people and their rush to out-self-efface each other, but it's not a very good way to win converts, yo.
To this I say: Bleah. I used to agree with this sentiment, and for years used modules like Class::DBI, which treat tables as classes and rows as instances. Clever, and easy to work with! But now try doing a right join. Ha ha, no, I know: show me how do to a subselect with that. Yeah. Either you punt and shove raw SQL into your code anyway, or you insist on doing it "Perlishly" with loops and checks, in which case a query that should have taken a tenth of a second takes several seconds or more.
In fact, I'll wager that your code is already running at horrible efficiency because you're pounding the crap out of your DB with unneccessary loop-based SELECTs instead of carefully doing case-by-case SQL queries that get exactly the rows you need, each holding exactly the columns you care about, every time you call an information-seeking object method. I'll also bet your INSERTs are ass-slow because you're not using bind values in them. Actually, you're not using bind values anywhere, right? Yeah, see.
My friend, if you're going to work with a little raw SQL, I argue you're already blown it, and may as well just let it all hang out, throwing out your half-useful abstraction layer. There is no sin in openly acknowledging that you're using an SQL database by actually writing SQL. If the fastest way to get some particular information out of the DB is to write a crazy-long and baroque query, then you should do so. Let the database do the work it's optimizied for and stop treating it like a set of config files that you'll need to write your own logic around.
Another way to put it: If you're writing nested loops in your SQL-driving Perl, you're probably doing it wrong.
Client is doing the dance of joy about the work I put in yesterday. Great, super. But now my plate is empty again. I need more clients.
When it was time to do some Volity work tonight, I instead chose to let off a lot of steam in Resident Evil 4, which I haven't played in a couple of weeks. Advanced two chapters in about three hours of play.
Happily ignoring the advice in the two non-spoiler strategy GameFAQs docs I read about weapons choices. Everyone hates the machine gun! I think they're full of it. The machine gun is hella fun. You can even kill some bosses with it, once you get good. Poopy on you, silly min-maxer GameFAQ kiddies.
This is the first time that, faced with a small-scale task, I encouraged myself to think of a way to make it scale better than the most obvious solution. And then implemented and documented this solution in an aesthetically pleasing way. I swear to god I've been logging into their server just to admire my own handiwork. I haven't done this in a long time. Actually I may have never done it with source code, only with my art or prose. This is what that book has given me.
It's most likely that I spend so much time on enormous projects that it's not clear to me how much I've grown as a programmer until I get the chance to use what I've learned in a small space like this.
Super-geeky highlights included daerr fixing a bug that someone found in my example code and checking it into Subversion while the discussion about it was still going on, as well as this exchange:
ME: By the way, I just posted a new release of Frivolity [the Perl libraries] this morning, so it's probably still percolating its way across the CPAN even now...
SOME GUY: [looking up from his laptop] It's up. I just checked.
ME: ... OK then. It's up!
Even Uri liked it! He rushed us after the talk to say that he hated games but he thought our network utilization was quite clever, though clearly we ought to be using his modules instead of our POE-based solution. That's our Uri.
I avoided talking about our business model during this presentation; that's quite literally a slideshow unto itself, the sort of thing I wouldn't be able to start explaining to a roomful of professional and business-cynical geeks without spending another half-hour backing it all up. We did talk about it afterwards to some folks who asked, though.
Anyway, I am pumped to start submitting to some really-real conferences' CFPs, now. We have missed Oscon's deadline, but they're not the only game in town. (Nor are they particularly in town, being in Portland OR.) Suggestions are welcome.
I will be posting a Flash version of the presentation soon, with audio track. This is because Keynote 3 is a pretty bitchin piece of software.
Also, I finally plugged my K-1 information into Turbotax, and even though I withdrew some taxable money from Volity's coffers last year, it's more than made up for by the fact that the company lost a lot of dough. So much so, in fact, that I'm ending up with a net refund. It's rather shocking.
Feeling really deflated today. I'm objectively aware that there's interesting stuff for Volity on the horizon but right now all I can see is business crap that nobody told me about, until it happened to come up in conversation recently: oops, yes, I probably should have distributed tax information to people a month or two ago, eh? At least I'm on it now instead of a month from now, but I could still hear our accountant's eyes rolling at me over the phone yesterday. I am going to meet with him next week, which I predict will be me saying "Dude, whatever. You do it. I'll pay you." repeatedly. I loathe this shit.
One of the horizoney things: I'm tentatively scheduled to present about Volity at the April 10 Boston Perl Mongers meeting, at 7:15pm at MIT, E51-376. I'd love to see some familiar faces there! I haven't been to a Boston.pm meeting in years, but will probably attend next week's (Tuesday, March 13, same time & location) to get a feel for it.
Hey! Various things have been conspiring to make me feel loserly lately. For the most part it doesn't work, because I am oblivious, but I do admit to letting myself get pretty stressed out over something unexpected that happened with the Google checkout stuff. My friends, I got scooped. In the best possible way, and with plenty of silver lining, yes. But a scoop is a scoop, still.
Long story short, a Google employee who was working on the same problem saw my stub site of SourceForge and got in touch, letting me have a butcher's at his own code. Yes, it's more feature-complete than mine. In fact, it's more or less all there. After a couple of days of resistance, throughout which daerr talked sane at me, I've decided to embrace this other fellow's solution. In fact I just now sent him a lengthy letter with a laundry list of some issues I had with it - mostly superficial stuff about Perl/CPAN style, with which he's clearly unfamiliar - and attached a snapshot of all the code and tests I'd written as of Monday night. He sez he'll be happy to give me credit, which is great, but I bend the knee just the same.
If it was some random individual, I very well may have pressed forward with my own solution. But this is going to be Google's Own Blessed Version, so there doesn't seem to be much point in competing. Beyond that, I think they'll do a better job (or at least care more about) maintaining it that I ever would with my module. I appreciate the opportunity to apply my Perl expertise to work with and even coach another smart programmer - in a way, it's like my project blew up into full-blown open-sourciness sooner than I expected.
And, hey, it never hurts to be on good terms with more people inside Google.
But it's still the first time I really got shown up like this with a project, and there is an owie involved.
If you want in, just tell me your SF username and I'll add you. I plan on being promiscuous with commit bits, as always.
There isn't any code yet because I'm still baking up the first alpha, but it's getting there. Lord willing and the crick don't rise, there'll be stuff in subversion before the Monday night Volity meeting.
This is going to be the tightest Perl code I've ever written. Volity's Perl libraries are quite good (I am told), but they're based on programming philosophies I held three years ago, and I've gone up a level or two since then.
Christ, those Splunk banner ads are irritating.
So while I'm in this frame, I'd like to pose a question to y'all: do any of you know of any conferences that I should give a talk about Volity at? The topics of the overall conference could be one of: XML, Perl, Python, Games, SVG, Micropayments, Jabber... we actually lay across many areas. (I conspicuously leave Java out of the list because I don't wanna go to a Java conference.)
I am going to see about doing one at Boston.pm soon, even though I haven't been to a Boston.pm meeting in years.
I'm now a fair ways into my own implementation. (Or Volity's own; I haven't decided who'll claim ownership of it yet. Hm.) I put it down for a couple of weeks to chase sXBL but I have since then pledged to the Andys to have it done this month.
I have finished reading Perl Best Practices and learned something I already knew, that one should start to write the test suite before one writes the module. The book contained some practical advice on how to do this, which I sheepishly admit I've never really done. Since I plan on sharing this module, and want it to be awesome-good, it will need a really solid test suite. So, that's my plan for today.
The sXBL stuff is coming along nicely, too, but no promises for when I'll have a demo ready. You'll know it when you see it. The demo I have in mind is sufficiently cool that I think you'll be impressed even if you don't care a lick about any of this...