I got kind of behind here--while we were in Sebastapol working out perl 6 design stuff for four days (with half of the fifth spent socializing and wandering around on the California coast) I only got through two of the days before being derailed by other stuff. So, here's a quick wrapup of the event. (chromatic took extraordinary notes, and I'm going to work up an article on the happening for perl.com in my (depressingly non-copious) free time)
The end result of the four days was a complete hammering out of the semantics, and almost all of the syntax, involved in subroutines, including such interesting fun things as AUTOLOAD, lexical subs, named arguments, and other frobnitzes. This is good, and Larry is closing in on an Apocalypse for it. (There's actually a first draft in my inbox this morning, though I've not looked at it yet)
Once the Apocalypse is out, I expect that Damian'll get the Exegesis out in a few weeks, with the Synopsis either following or preceding, depending on how the tides and moon phases work out. We'll see there. (Damian's also in the position of potentially doing it interleaved with other, actually paying, work, so there may be a bit of a delay here or there)
We also got a lot of the semantics of objects beaten out. While homogeneous object systems are relatively simple--you just choose a half dozen "object model" features from the big list--heterogeneous systems are much more difficult, since you need to be able to inherit from parent classes that might have completely different systems without knowing, which means transparent delegation masquerading as inheritance, construction protocols, and much chicken blood.
Much of the prodding was on my account, since I want to mix and match ruby, python, perl 5, perl 6,
We also worked some on the semantics of perl 6's object system, which is significantly more 'classical' an OO system than perl 5's model. Perl 5's model is not going away, it's merely going to live along side the new object model, so if you loathe the "go for it, good luck" style we have now, you can use the more structured model, but if you like the wild-west object model of perl 5, well, you can use that too. And you can mix them, within reason. Best of both worlds, I think.
Oh, and there's some pie in Guido's future, but more on that later.
Today (or, rather, yesterday, as it's tomorrow already) was taken up mainly by the discussion of subroutine/method args, including interesting bits on variadic and named arguments, and metadata/OOB data for sub dispatching. (Including accessing caller's topics and AUTOLOAD info)
Yesterday was the first perl 6 design day here in lovely (if a touch chilly) Sebastapol. Larry, Damian, Allison, and chromatic are here as well, as we try and hash out some of the pending stuff for perl 6.
This time 'round it was mainly sub stuff. Pre, post, and wrapping handlers for subs for design by contract work, some discussion of lexical scope visibility, and working on the roadmap for the rest of the apocalypses. (Some being more important than others)
The O'Reilly main complex, for those folks who've never been here, are really nice. They bear a striking resemblance to a condo complex, but nice nonetheless.
I ended up challenging the python folks to an interpreter duel of sorts, and Guido took me up on it. Details at OSCON 2003, the duel at OSCON 2004. There will at least be flinging cream pies involved...
This is one of those 'begging' sorts of journal entries, but I'm currently at something of a loss.
The folks with the German Perl Workshop asked me, last fall, if I'd be willing to come out and speak. As I had a good-paying job pending, I said sure--I figured either the job would come through, or the GPW folks would have funding sufficient to get me out.
Well...
That good job is, 11 fricking weeks later, still pending. (I assume it's just dead and they've not had the courtesy of returning my calls and e-mail) I'm still unemployed and, while job hunting, not in a position to spring for the tickets. The GPW, meanwhile, is also short of cash, and while they've graciously offered to put me up if I can get out, there's still that whole "getting out" problem.
That leaves me needing sponsorship of some sort, either corporate, personal, or training. (Yes, I do teach beginning, intermediate, and advanced perl classes, and'll speak to companies about perl 6 and/or parrot) Unfortunately, as my stint as a fundraiser for TPF shows, I'm not that good at rustling up cash.
So, anyone know of a company or companies interested in helping an itinerant Perl Guy make it to Germany for March?
That's the thing that I've been running into lately. I'm looking for work, as I'm currently unemployed and uncontracted (and untraininged, and other un-like words). As such I've been putting in applications some places, and doing interviews. Everyone seems absolutely amazed that I have to look for work. Go figure.
So, yes, I am job hunting, as I've grown fond of eating and other such crass material things. Resume/CV is at http://www.sidhe.org/~dan/cv.html (with a word version of the real resume hanging off it as soon as I get it up) if you need work done.
For the record, Larry (yes, that Larry) is also looking for work, and Damian is always looking for more training gigs.
A while ago I was musing on spam, and the increase in volume I've seen recently.
Well, I admit it. I think I'm part of the problem. But, then, I think that everyone running silent anti-spam software is too. While on the one hand SpamAssassin keeps spam out of my mailbox, running it doesn't keep that spam out of anyone else's mailbox, and neither does it do anything to keep the spam off my machine in the first place. IP blocking, though, does do that.
I think it's time to build a widget to help automate the generation of the "you suck, get lost" IP list from the spam that SpamAssassin identifies.
Well, the infrastructure, API, and protocols are in. Parrot can now automatically wrap most any C library, generating shims that look like regular parrot subs to parrot, but call into the library for you. Which means that, if you've set things up right, you can do:
loadlib P1, "sdl"
dlfunc P0, P1, "SDL_Init", "ii"
set I5, 255
invoke
unless I5, OK
hcf "SDL_Init failed!"
OK:
print "SDL_Init worked just fine"
exit
Well, OK, except for the hcf part, since exceptions aren't in yet. Soon, though...
Well, the LL2 workshop's come and gone this year. A good time was had by pretty much anyone who wasn't really fond of Lisp Macros (I admit I took a potentially unwarranted shot at the lisp folks, but I think I can live with that. Dunno if it showed on the audio), but that's OK.
Video's up at the LL2 site if anyone wants it.
Update looks like both the audio and in some cases the video of the audience is in the stream. Haven't looked enough to find the snide comment, but I probably ought...
The one thing I found most interesting was how many people (mainly at amazon, though I'm sure there are other places locally) didn't know I was coming, or that there's even a Seattle perl user's group. Pity, it'd have been cool to speak at Amazon, or to have a bunch of them come to one of the talks.