prog: (monkey)
The three 'P'-language-specific badge ribbons that the O'Reilly Open Source Convention (going on right now) offers to its attendees:

What could it be? )
prog: (Default)
When an automated software test says "Result: FAIL", my first reaction is to dismiss it as cheap sarcasm.
prog: (monkey)
Larry Wall, creator of Perl, is giving two free-and-open-to-the-public talks in Cambridge next week:

• Harvard, March 31, 5:30pm, Science D

• MIT, April 1, 4:30pm, room 34-101

According to the 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?
prog: (monkey)
[ profile] daerr just posted some interesting graphs that measure changes in the CPAN's activity rates over the last decade or so. (CPAN being Perl's distributed, internet-based archive of code libraries and other stuff, and approximately 51 percent of what makes Perl my favorite programming language.)

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.
prog: (Default)
Man, nothing was bumming me out so much yesterday as learning that Randall "xkcd" Munroe publicly switched his (non-Lisp) programming allegiance from Perl to Python. I read that cartoon when it was new, but I didn't bother rolling over the alt text (I seldom do) until [ profile] radtea made reference to it yesterday. Munroe drew the cartoon just a few months after drawing a great one that celebrated Perl (if somewhat backhandedly), so I just thought he was giving equal measure to both languages.

I don't know why I care about stuff like this, but it seems that I do. It's pragmatically meaningless to me; 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.
prog: (Volity)
[ profile] classicaljunkie volunteered to help clean up my tags, found the LJ page that lets you mass-delete them after sorting by usage, and (with my blessing) nuked all tags I've used only once. This cleared up well over half of my alloted 1,000 tag-slots. So, my new posts have tags again. Aren't you pleased.

• I have a copy of the 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'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 [ profile] 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.
prog: (Default)

Let's see:

  • 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...

prog: (monkey)
From [ profile] daerr, a cute slideshow about Perl 5.10.

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.
prog: (Default)
They say that every Perl hacker's journeyman project is an HTML templating system. I'm learning about a variant, running into clients who each developed their own SQL abstraction modules before hiring me. Like every other SQL abstraction module, it really has just one purpose: an attempt to avoid having to embed one programming language (SQL) inside another one (Perl).

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.


Oct. 2nd, 2007 09:27 pm
prog: (ambrose)
Fired off three job things today. Two of them sound like good fits, one especially so. It involves another Big Name Perl Dood, and I totally name-checked people in my email to him. I'm hopeful I'll hear something back.

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.

Speaking of killing bosses with machine guns, Someone close to me is getting shafted hard by their job, he said vaguely but meaningfully. Multiple parties are upset at this. I look forward to seeing how it falls out. (And participating in this, to the degree that I can.)
prog: (Default)
I see a software planning discussion that gets into how they should be ready to adapt when Perl 6 is released, and I think of bumper stickers that warn that the car may veer out of control when its driver gets raptured.
prog: (Default)
I wrote the most beautiful little Perl program for a client last week, the first small, complete program I've created since reading Perl Best Practices. It performs an analysis of potentially enormous amounts of company data, but it's wicked scalable. The client will be able to keep the program lodged in its cron schedule even if they later find themselves managing millions of user-run content channels (they're just into five digits now). O to the (l to the o-g n), yo.

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.
prog: (monkey)
Is it one of y'all who has my old copy of "Mastering Algorithms with Perl"?
prog: (Default)
The presentation last night went great. Far better than I expected. I recognized only [ profile] ahkond and an editor I knew from O'Reilly (and who I was in contact with last year about this-n-that) as people who showed up specifically to hear me, but there were maybe 30-35 people all told. Everyone seemed attentive, and as soon as I got to the slides with code examples there was a lot of discussion. Lots of requests from various people for me to back up a slide and explain things further. Sometimes other folks in the crowd would grok it quickly, and then answer those questions for me! This is rather a best-case scenario for technical presentations.

Super-geeky highlights included [ profile] 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.
prog: (Default)
Perl Mongers meeting is in less than two hours. Eee. I'm not exactly nervous about it but let us say that I'm pretty keyed up. (MIT E51-376 7:15pm, if you've got nothing better to do.)

Wish me luck!
prog: (galaxians)
I got my first more-or-less Jmac's Arcade fan mail today from the fellow behind a video podcast called Coin-Op TV. I've so far only watched the most recent episode, which features interviews with stuntmen and T-shirt vendors at a J-pop convention. Scrolling down the page I see a lot of more game-related stuff, though. Wow, there's an interview with PONG's creator?! Cool. I shall watch it more later.

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 meeting in years, but will probably attend next week's (Tuesday, March 13, same time & location) to get a feel for it.


Nov. 29th, 2006 10:08 pm
prog: (tom)
Look at all the unfinished LJ posts I have here. Oh wait you can't. Um...

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 [ profile] 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.
prog: (monkey)
All righty, new SourceForge project for Google Checkout in Perl:

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.
prog: (Default)
I thought I'd work on ITA matters today even though the office is closed (or, if not officially closed, will be empty enough to count as such), but then I ran into [ profile] taskboy3000 at the Diesel and got fired up enough about Volity in the ensuing conversation that I wanna work on finishing the damn Google thing instead, and so that's what I'm doing. (I hope. It's after 1pm as I write this, three hours after my suspected get-started deadline. We'll see what happens.)

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 soon, even though I haven't been to a meeting in years.
prog: (Default)
My LJ post asking why there isn't any Google Checkout implemented in Perl is now the #4 Google hit for ["google checkout" perl]. This has happened to me before, but only in my SVG adventures, a problem space with far fewer participants. It's nice to feel like I'm riding the edge of something Perlish, for once.

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...

June 2014

1234 567


RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 20th, 2017 11:46 pm
Powered by Dreamwidth Studios