As a frequenter of (admittedly sausage-fest) technology conferences, I, too, have wondered where all the ladies are hiding. Nothing’s been proven, but there are theories about why tech culture… and in particular, open source culture… attracts such paltry female numbers. Unfortunately the most vocal theorists are the ones that suggest that boorish, sexually threatening men are scaring off all the women, and suppressing their status in the community. They are also threatened when sex is spoken of at all at a tech conference, even by a woman.
I’m pretty sure that “silencing women” is not the cutting edge of contemporary feminism, but hey, I’m just a dude.
If you want to feign the appearance of death, quit Facebook. I’m not sure how long it’s been since I quit… 6 months? 10 months? It doesn’t matter. But articles like this help reinforce my decision, when I find myself tempted to return.
Interestingly, that article ended:
But for all our complaints, both you and Facebook know by now, few people ever actually quit Facebook.
Really? I would have thought that far more than a few surly, antisocial snobs like myself would have deemed Facebook unworthy of their time. I wonder what the numbers really are.
I do know this. Every couple weeks, one of my friends contacts me via some other medium… so far I’ve gotten emails, postcards and a Tweet. Most are some version of:
Are you alive?
[reposted from software.unh.edu]
Here I am once more at the best organized open source gathering in the world, OSCON. This is my third trip to Portland, OR for this event, having attended in 2008 and 2010. Portland is a modern and vibrant, lush, young, exciting. I would live here in a heartbeat.
This time at OSCON, I’ve registered for the extra half-day tutorial sessions. These are more intensive than the shorter sessions of the conference proper. I will attend four of these, today and tomorrow. Instead of posting notes in real time as I usually do, I will summarize these tutorials after the fact.
Monday morning – Damian Conway on ‘Presentation Aikido’
As some of you might know, I occasionally like to give presentations on technical topics. This probably comes from attending a lot of them, and feeling the benefit of this format for information exchange. It may also be a symptom of my having majored in theatre, while ending up working in computers. Either way, selecting Damian Conway’s talk was a no-brainer for me, as I’d love to do a much, much better job at giving what I call ‘good slide show’.
Damian is a genius and a master showman, in addition to being the author of Perl Best Practices and other books. Confidence in his methods, if not proven to you in the pudding as he speaks (it will be), is supported by the fact that Damian’s sole income is from speaking engagements. I hadn’t known this, and wonder how long that’s been the case.
I took pretty detailed notes on Damian’s talk, despite the hardcopy he also provided, but will only bullet out a few favorite quotes and observations…
- “I like telling anecdotes. It humanizes me.” [humanizing oneself can be important when giving technical talks. -ed.]
- “Prowl the stage like a lion.”
- Damian introduced me the Takahashi method of presenting slides. Obviously very influential but I hadn’t known there was a name for it.
- Content, Damian explains, doesn’t matter so much as style in giving presentations. So true. Of course, if you have both, you have a real winner.
- Oops. I’ve definitely made a couple mistakes Damian is pointing out. Putting complete sentences on slides. Overwhelming the audience with information or too-complex charts.
- If you don’t have your own style, steal from those who have the best style. Bang & Olufsen and the Japanese are given as examples.
- Damian’s approach to presenting to humans is a zoological study. Many of his insights on the social dynamics of speaking to a group are insights on speaking to a group of primates. Can’t argue with any of it; he’s one of the best speakers I’ve ever seen. Anyone got a banana?
- Damian admires David Attenborough for the way he engages with his subject matter (usually, animals) in his documentaries. Oddly I discovered Attenborough recently, having watched his Life of Mammals series early this summer.
I could say so much more about Damian Conway and this talk, but I won’t. You might have the chance to see it sometime. I can think of no reason not to attend his ‘Advanced Vim’ tutorial this afternoon (Tuesday), despite several other interesting offerings. I could certainly stand to be better at Vim, and Damian never disappoints, promising even more style than content, entertainment being king.
Monday afternoon – Joshua Marinacci on ‘HTML5 Canvas Deep Dive’
‘Canvas’ is a new feature available in modern browsers. If SVG is the Adobe Illustrator of the web (vector graphics), Canvas is the Photoshop (bitmap, pixel-oriented graphics). I am sure graphics experts would correct me on several points here, but these generalizations are good enough for the rest of us.
To be honest, I knew from the beginning of this talk that I wouldn’t be programming directly against canvas in my day to day work. So although the low-level exercises we did were fun, my mind was elsewhere. For a business programmer like me, it’s only important to know which browsers support canvas, and what options might be available for it. For instance, I have begun switching from the Flash-based charting solution to RGraph, which uses canvas and therefore support iOS devices.
I think it would be a blast to work on graphics projects again… I used to do a fair amount of Flash and other graphics work… but in recent years I’ve been asked for practical machines more than glossy covers… content, I suppose, over style. So my skills have slipped in the aesthetics department.
Tuesday morning – Remy Sharp on ‘Is HTML5 Ready for Production?’
Similar to Monday’s second talk, this is an HTML5 talk with coverage of canvas and plenty of little exercises for us to do. So, this is mostly a tutorial, although Remy does address the ‘production ready?’ issue by pointing out that even CSS 2.1 isn’t completing implemented, to spec, in all modern browsers, but we’ve all been cherry picking the best-supported features for years. True. Specs are almost always implemented incompletely, so we really need to make judgment calls about feature support on a case-by-case basis. This is part of what continues to make professional web development a challenging and expert-oriented field.
The most enlightening portion of this talk, for me, was Remy’s explanation of Web Storage as a replacement for cookies. Web Storage is its own spec, separate from HTML5 (like many features are, actually, despite being bundled with HTML5 in common parlance), and needs to be considered on its own. But this looks good to me. If I end up implementing a more robust session management system than my current one, I’ll be looking at Web Storage more closely.
Tuesday afternoon – Damian Conway on ‘Advanced Vim’
I am particularly glad for Damian’s practice of providing hardcopy handouts for his presentations in this case. Lots of Vim commands in a short period of time, none of which I’d like to be writing down as he covers them. Later on, I’ll have a grand old time spiffing up my .vimrc file, going by his pamphlet.
Terminal-based text editors hail from a time before the mouse, but I still use Vim quite a bit when I’m roaming around servers, wearing my sys admin hat, messing with config files and such. I ought to get a *little* better at it, at least. Luckily, most of the things I am learning today will simply be permanent settings in my .vimrc file, not things I will need to ‘download into my fingers’, as Damian put it.
Wednesday at OSCON
Summarizing the keynotes:
- Ubuntu community manager, on the growth of community management as a career path.
- Python guy, giving an award to a major Python contributor
- Microsoft guy from Italy, with a couple of interesting announcements about what he terms ‘open surface’ projects: first, that they will support Red Hat 6 on their new VM platform, and second that PHP and node.js will be supported on their Azure application platform. This is what is meant by ‘open surface’… the core of the product is commercial, Microsoft stuff… but the surface… the functionality they are selling… is open source. Quite a strange twist of fate Microsoft is experiencing these days.
- Now the gal who created spacehack.org, with a snappy slideshow, is being well received.
- Now a guy selling OpenStack/OpenCompute… this talk seems too sales-y… no matter how cool his product might be. Pep talk at the end about opening up hardware as well as software may have redeemed him.
Now that the keynotes are over, I’ll switch to my timestamped notes format.
11:57am: wrapping up a session now on ‘Programming Well With Others: Social Skills for Geeks’. These are two guys form the Subversion project, telling some community anecdotes, such as when a famous geek (unnamed) filed a bug report along with a slew of insults, or when a lurker on the mailing list started posting every little thing on his mind. Also a contributor who tried to insist on having his name in ‘his’ file.
2:26pm: Continuing my HTML5 binge at this conference, the talk I just attended was called ‘HTML5: All About Web Forms’. Considering how support for the new input types is being handled by smartphones, it’s starting to become tempting to use HTML5 in earnest. One still has to consider folks on older browsers, of course, if by some chance they are also potential users… but what about application power users? Administrative users? I may start dabbling in HTML5 for this population and require modern browsers for them, especially if I can support mobile better in the process. I feel like 2 or 3 years from now, web development is going to be in an even better position than it is today, as far as developer efficiency.
2:32pm: ‘HTML5 in Your Pocket: Application Cache and Local Storage’. The HTML5 beat goes on. I think this conference is scaring me into taking mobile as seriously as I should.
I like this guy. He’s preaching bypassing the app store and native development and reaching for HTML5 first. The barrier to entry, development-wise, is infinitely lower, and the same code will run on desktops and laptops. He also just recommended this book, free online.
The meat of this talk is about Local Storage and Application Storage, the former being the heir apparent to cookies in session management. Second time I’ve heard it here; must be true. Cookies provided about 4K of space; Local Storage provides 5MB.
Another site recommendation: HTML5 Rocks.
[I totally petered out Wednesday afternoon. My mind buckled beneath the weight of a growing to-do list, which was fertilized by all this new information. A nap ensued.]
Thursday at OSCON
9:20am: since the continuing keynotes are being streamed live on oscon.com, you could always head over there and check them out. Right now Jim Zemlin of the Linux Foundation is reviewing 20 years of Linux. It really is amazing how far the operating system has come. I hadn’t realized that Red Hat has outperformed Microsoft on the stock exchange by a factor a 4 over the past decade. I had heard that MS has fallen below both Apple and IBM in market cap in the past couple of years.
9:28am: This next keynote is quite interesting. I knew that antibiotics were becoming less and less effective, making hospitals more dangerous, but I didn’t realize that health industry analysts are aiming to move health care outside of hospitals entirely. This would be aided by healthcare IT, which as you might suspect, is woefully behind the times. Speaker ends the keynote by stating that it’s less risky to go skydiving today than it is to go to the hospital. Ouch.
9:34am: Now it’s Eri Gentry of BioCurious, which has to be one of the great company names of all time. She’s explaining how the world of biotech is not friendly to ‘lean’ startups. The field is also fraught, like many big money fields, with intellectual proprietorship. It’s pretty easy to see why visionaries in the health and biotech fields… those with new ideas and hoping to innovate… are looking to open source geeks for tips on how to set information free.
Setting science free from the PhDs… I like that. Imagine if you needed a PhD before you were allowed to write a line of production code? We’d still be on paper.
It strikes me that what we’re trying to do… or preserve?… with open source and open approaches to non-computer-related ideas… is something like the American dream itself. Capitalism enables that dream, but turns evil only as the early winners wall their gardens, and raise the barrier of entry to that dream. Is this too lofty a description of the spirit of open source?
Great motto: BioCurious? Experiment with Friends.
9:54am: John Graham-Cumming was unable to attend due to flight problems, but delivered a video instead, largely looking back on Alan Turing and on the future of inclusiveness in the computing community.
10:11am: Next up, Gabe Zichermann points out how open source needs to better engage end users through the use of ‘gamification’. What would motivate end users to care as much about this stuff as we do? The Gamification Summit in NYC this September looks interesting.
One gamification concept: speed camera lottery. You know those automatic radar traps that send you a ticket if you speed? In Sweden, there are deploying a ‘speed camera lottery’ which enters non-speeders in a lottery to receive the monies earned from ticketed speeders. Reduction in speeding violations over vanilla auto-ticketing methods: 20%.
And how much will a speeding ticket cost you if you speed anyway? Welcome to Socialism; it’s based on your income.
10:40am: Penance will now be paid for my having missed Damian Conway’s Perl 6 talk yesterday. Yes, I’m officially a Damian fanboy now; if he’s talking (and I’m awake), I’m listening. This talk is simply titled The Conway Channel 2011, so your guess on the topic is as good as mine. But this is the blind faith observable in all fandom.
Turns out he will talk about four of his modules on CPAN.
First up: Regexp::Grammars. This involves the advanced parsing techniques for domain specific languages (DSLs). If you’re lost already, don’t expect me to find you, because folks, I’m still looking for myself. Suffice it to say that the regular expressions are the least confusing aspect here, and I do not have a computer science background.
But weirder: I’m sort of following this. In these areas you might say, I am able to appreciate the some of the nuances of a great film, but not quite direct one.
Next up IO::Prompter (an improvement on IO::Prompt) for prompting at the command line. It requires Perl 5.10+. It has builtin validation for entered data (nice), including a distinction between ‘must’ (invalid data will be reprimanded for) and ‘guarantee’ (keyboard will not work for invali data). Draconian!
It also has timeouts and defaults when the timeout expires. Very neat. Supports password data type, to obscure what’s typed on the screen ala HTML password type. Wow, it also has history and filename completion.
This module is awesome. I’ve long been wanting to teach some basic Perl to my daughter, some kind of command-line prompted program… this would make that a lot easier and more fun, skipping the annoying bits and letting her get into her own ideas quicker.
Next up: Data::Show (and Data::Show::Names). An improvement on Data::Dumper and Data::Dump, giving you the option of viewing the data being handled by Perl in much more granular (line-identified) format.
Funny Voltaire joke: “The perfect is the enemy of the good,” wrote Voltaire. Modern day IT translation: “If it compiles, ship it.”
This was followed by a slew of yet geekier in-code jokes to which I’d be doing a disservice to attempt retelling. Check out the Acme::Crap module on CPAN… and don’t tell it I sent you.
11:30am: Now for Jacinta Richardson with “Perl Programming Best Practices 2011″. Hopefully she will contrast any updated suggestions with the ones in Damian’s classic PBP book, since that’s the bible. Interestingly, Jacinta is yet another Australian.
She’s going fast. Real fast. So I can’t capture what I’d like to here. The rub is however, use the most recent version of Perl that you can, and read up on some of the new features. Mentions of autodie, Try::Tiny, etc.
A module should not use die for error handling, it should use Carp and croak. This makes sure that the error is reported at the line of the main program, not the module, placing blame in the correct place.
Bearing more research: local::lib. Not quite sure what it gives us beyond ‘use lib;’ but clearly it does and I’ll need to find out.
Interesting: minicpan. All the latest module versions on CPAN add up to about 5GB, so why not have them on your development machine, ready to be installed if needed while online? Nice airplane mode for Perl, right there.
Smart::Comments. Also worth checking out. Excuse my brevity, she’s cruising here.
Hmmm… Method::Signatures as a replacement for IX::Args? Maybe. Will it handle my cgi params? Will I care if I switch to Plack? Help me, somebody, the options overwhelm me.
By the way, if I haven’t mentioned it before: interested in all the goodies that might be available in Perl 6 when it’s finally ‘production ready’? A good many of those have been added to the more recent versions of Perl 5.
1:44pm: No, I am not punishing myself, but I am sitting in another HTML5/mobile talk. PhoneGap is being recommended; will have to look into that (note: this is about taking web code into the native mobile space, so… not that interested right now). Also, maybe I should start developing using an iOS simulator? Especially with phone-sized display. This is where I worry a bit… well, not worry… but I’d love to excel in screens that size, rather that simply sort-of work there. Maybe start with HTML5 date picking; existing datepickers are miserable on tiny mobile.
Neat hack: use input type ‘tel’ whenever you want a number pad on mobile… even if the data will not be a telephone number at all.
Can’t forget HTML5 ‘placeholder’ attribute to replace the JS magick that is sometimes not so fun (text field prompting-type text).
Note: iOS supports SVG fonts but not True Type. Speaker recommendation for Font Squirrel, which offers free use fonts and actually package them up for you, complete with the code to load them.
Phone width: 480px. iPad: 1024. For min-device-width and max-device-width, more CSS3 goodness.
2:31pm: Now for a change of pace, “Awakening The Maker Ethic in K-12 Students”. As a parent, I’m also an educator, or at least would like to be. Speaker is pointing out the artificial tension in our educational system between ‘vocational’ and ‘academic’ instruction, which clearly undermines the hands-on, DIY ethic.
Now he’s pointing out the illusion that kids ‘know tech better than we do’, and that all we need to do is include technology in the course of their other studies and that will suffice. Technology needs to be taught directly as well.
A plug for scratch.mit.edu, which I’m tardy in checking out. My daughter may like this, as she loves to draw.
Hmmmm… this is interesting, visual IDEs for Arduino. Sounds tasty. I need to get playing with that thing. This would lower the bar for kids, having a visual IDE, for sure.
Wow, too many cool things to relate here. Another inspiring talk.
[notes devolve once again this afternoon due to fatigue]
7:00pm: I’d love to report that I spent my last evening in Portland painting the town my own shade of red, drinking and carousing and genrally terrorizing the Northwest. In fact, of all those things, I merely drank a bit, and proceeded to attend Larry Wall’s State of the Onion address along with a couple hundred other somewhat-lubricated geeks [blurry pic of Larry below]. Larry actually worked his annual address into the 5-minute Perl lightning talks also scheduled, breaking his speech into 5 minute bits interspersed with the various other ejaculations of Perl community members. This, in addition to Larry’s self-effacing delivery, had a remarkably humble effect. No wonder this community has thrived for 20 years under the gentle leadership of this man, and no wonder OSCON itself grew out of the Perl community.
He also made a classy move by thanking Tim O’Reilly for opening up the conference to families and children of attendees… something I hope does not change.
Friday morning at OSCON
11:04am: The final day of OSCON is a half day, allowing many of us to fly out of here in time to have something of a weekend back home. The last session I attended was called ‘The State of Open Source in [K-12] Education’ and was frankly depressing. Efforts made in the last decade to save schools on licensing fees and turn kids on to open source software have largely floundered despite the earnest good efforts of many, and it was frightening to hear that a number of educators have actually lost their jobs because of ignorant administrators and parents with their own agendas.
Discussion after the talk was lively, with many educators and parents in the crowd, and the consensus was that the education bureaucracy will only change slowly, and that the most effective evolutionary driver is homeschooling. In other words, just as the open source philosophy of Linux has competed successfully in parallel with Windows, home and independent schooling may have to compete with institutional learning in the same way, if we really want fundamental changes in the way computing is delivered and taught. While this kind of grassroots spirit has always appealed to me, I’m not a parent in a position to exercise this option, so I left scratching my head a bit… where do we go from here?
Well, with that, *I* am going home… on a plane… not in a car, not in a boat… not in a box, and not with a fox… back to good old New England. Portland, I hope to see you again soon.
Thanks to the University of New Hampshire for sponsoring this trip. If anyone has questions about OSCON and why it might interest them, please drop me a line anytime.
Well, here I am in gorgeous Asheville, NC for my third YAPC (Yet Another Perl Conference) North America, taking place June 27-29th. This is by far the nicest of the three conference settings so far (I previously attended YAPC::NA at the University of Houston and at Carnegie Mellon, Pittsburgh).
Asheville is a charming college town nestled in the Blue Ridge Mountains, in the western portion of North Carolina. Looking forward to a little exploring this evening.
But first, Day 1 of the awesome geekfest known as YAPC. My initial impression is how much swankier this is compared to previous YAPCs, but at a registration fee of $100, you’ve got to hand it to the organizers and sponsors. [note: by 'swanky', I do not mean in comparison to the kind of excessive wealth-display conference hosted by many commercial software companies. Different animal.]
Also: I need to get my hands on one of the Grateful Dead / Perl Onion t-shirts I see people wearing. Photo soon, hopefully. [update: they are conference staff shirts. +1 difficulty for obtaining one.]
Okay, here goes…
Day 3 (Wednesday) [most recent postings first]
3:18pm: Well, that’s it for me for YAPC::NA 2011. There are some closing festivities going on, but I’m going to get a jump on driving… heading up to the Erie, PA area to visit my father and family. If you read this, thanks for reading. I also plan to blog OSCON 2011 from Portland, OR in about a month, if you haven’t yet had enough. -Marcus
2:56pm: Hilarious Arduino application: an Arduino-enabled breathalizer which records your blood alcohol count at the time of each of your code commits, allowing you to find your optimal level or drunkenness to code. You can also prevent commits over a certain BAC. It’s dubbed ‘DrinkShield’.
2:22pm: Next talk is about hacking Arduino with Perl. I wish someone had showed me this when I was 10. For that matter, I wish someone had taught me to program seriously at that age. I could play with something like the Arduino all day and night. Immensely cool.
1:55pm: One of the final talks I am attending is about testing with PSGI. There is a module to extend ‘Mech’ called Test::WWW::Mechanize::PSGI.
I am still trying to wrap my head around the (seemingly recent) plethora of choices regarding standalone http servers, middleware and alternate gateway interface in the Perl/webserver space. My basic understanding is that it improves portability/distribution because standard CGI even atop mod_perl/FastCGI ties you to those technologies and/or Apache. May not be a big deal for me since I’m hosting my own apps.
12:03pm: I was delayed in posting because the last session was standing room only, and I found out why. Miyagawa, author of the cpanm module installer (which I love to use) among other things, is just incredible. One of those programmers who gives you the thought, “Wow, okay… I’ll NEVER be that good. EVER.” But you shrug it off and soldier on.
At one point in his presentation (about Plack deployment and many other Perl/webserver issues), spontaneous applause broke out as he demoed an interactive Plack debugger that was ridiculously slick. Guy’s amazingly productive and sharp, not to mention young… the envy, most likely, of more than a few geezers and geezers-in-training like myself in that room. Best talk of the conference.
Miyagawa had conducted a small survey (100 or so responders) of Perl web developers on a number of technology choice questions. When the audience tried to guess the most popular Perl web framework according to the survey results, most of us muttered ‘Catalyst’… but what did the next slide reveal? The most popular web framework was ‘in-house’. Had to laugh, had to nod. My own homegrown, hand-rolled framework, had I been a survey responder, would have added to those results, for better or worse. The Perl community has a very strong streak of DIY.
10:34am: The whole point of Parrot is to make it ‘dead simple’ to create new languages. There’s a bit more to it than that I think, but that’s not a bad soundbite. Computer languages suffer from the same thing that natural languages do: Parrot is really about tackling that problem.
10:28am: Wow, very cool idea that Parrot got from Moose: storing deprecation data in structured data files, instead of just mentioning it in the change log. A great way to handle deprecations for any API. I’ll have to remember this technique and have a look at the Parrot repo if I ever want to steal their format. They even define regular expressions which would help you find deprecated calls in your code.
10:01am: First up today for me, is Jonathan Leto with a talk entitled ‘A Visual Introduction To Parrot Virtual Machine’. Calls PIR “the most pleasant assembly language you’ll ever see”. Stands for ‘Parrot Intermediate Representation’.
As expected, this Parrot talk is over my head to a certain extent, although I have gotten a lot better at following the basic gist of these talks. For instance, I understand his point about communications between PIR and C code limiting the opportunity for many optimizations, but I don’t really understand it down in the details. But I don’t need to. I don’t think I’ll be writing any virtual machines any time soon, or implementing my own new language.
Day 2 (Tuesday) [most recent postings first]
4:26pm: Calling it a day at this point. This conference is either getting better, or I am better able to follow the various talking points than I was when I attended my first, four years ago. Maybe both. See you tomorrow.
4:05pm: By the same token, as these one-liners grow in complexity, one realizes why they end up in scripts. Geesh. Readability == quite important.
3:55pm: Actually learning a lot about one-liners in this session, excellent presentation. -n for implicit looping is awesome. I am lazy (or not?) for never having learned that.
3:29pm: I’m going to round out the day with Walter Mankowski’s talk “Essential Perl One-Liners’. I’ve actually never been much of a one-liner type guy, so maybe this will inspire me. Walter came down from Drexler University in Philly.
On a random note, one thing I am hearing a lot here, aside from recruiting, is developers on cellphones helping younger or newer developers back at their companies. Apparently this kind of project mentoring and handing-off is an extremely common part of the workflow at many orgs. This has been a part of my working life lately, too.
3:18pm: I enjoyed that talk. Obviously a very talented developer. It was also interesting to see how he’s been pondering the next version of WebGUI (the parent company of The Game Crafter) using Modern Perl techniques. WebGUI is itself a CMS but it will be sitting atop lower-level frameworks. The whole trick as a developer, I still think, is picking the right ‘level’ to be working at for your needs. I think most IT people work one or two levels above where they ought to work, depending on others too much and feeling the pain when dependencies become letdowns (most especially in the commercial space).
3:03pm: Now talking about ElasticSearch but also mentioned Sphinx which I’m a bit more interested in. Not entirely sure I have internal search needs of that magnitude but it might be worth trying out at some point. ‘Search fuzziness’ is certainly not something I’m going to get out of SQL ‘LIKE’ statements, for instance.
2:55pm: Oh! Cool module tip… Imager. Think of it as Image::Magick lite, and for anyone who has ever tried to install Image::Magick, you might appreciate the ‘lite’. Apparently does basic image alterations like thumbnail creation quite well and simply. Must remember this one.
2:47pm: Speaker claims that Image::Magick can do anything that Photoshop can do, but in Perl. Sounds fun. Reminds me a lot of working with PDF layouts [shudder] in Perl, which we’re hoping to avoid completely in the future.
Ha, look at that. Image::Magick can output pdf format.
2:40pm: Switching to discussion of Email::Sender::Simple. A lot of the advantages are about portability, which doesn’t concern me too much, since most of my software is in a hosted environment at this time. Sticking with MIME::Lite for now.
2:34pm: Speaker highly recommends Email::Mime::Kit and Email::Sender::Simple. Claims the first is good at formulating spam-filter-proof emails, and sending attachments properly. Email::Mime::Kit is an email templating system as well… which is nice, but an investment. The templates are ugly though, whether for plain text or html emails. Not digging that too much.
2:21pm: Next up, “The Game Crafter: A Perl Success Story”. JT Smith, the speaker, is also an organizer of next year’s YAPC which will be in Madison, Wisconsin.
Fascinating, “The Game Crafter” is a service for prototyping board and card games, written in Perl. It’s a web-to-print service for games, similar to how Lulu is web-to-print for books.
2:16pm: Hmm, the frontend of this is called wysihtml5 and it’s on github. Maybe worth checking that piece out…
2:09pm: In a nutshell, the guy is sanitizing the HTML by parsing and then rebuilding it, to support HTML cut-and-pastes, but discriminating against unwanted tags (such as ‘script’) etc. I’ve seen this done poorly a thousand times with WYSIWYG editors, where they mangle your HTML beyond usefulness… but this seems fairly clean. In general though, I’d prefer not to solve this kind of problem myself, relying instead on a really nice JS library. I’ve used TinyMCE in the past but I’m looking to switch to something jQuery.
1:51pm: Next up, a presentation on HTML5::Sanitizer, which apparently hasn’t been published to CPAN. Speaker Uwe Voelker is talking about a project to embed a smartish WYSIWYG editor into the XING website. XING is like LinkedIn, but more popular in Europe.
A key piece of this work is XML::LibXML as the parsing tool. Ah… he is replacing special characters with HTML entities, one by one, feeling that XML::libXML doesn’t provide all the best escapers. Been there, felt that pain. I still marvel that we haven’t moved past this kind of thing, but that’s code for ya.
11:53am: Jesse’s best quote: “There are certain gift-horses I would like to inspect the teeth of”…. in reference to people with Perl feature ideas they aren’t prepared to work to implement.
11:34am: Ok, another endorsement for autodie. They want to bake autodie’s improved error handling right into how Perl itself could better handle this stuff, in the way subs return on failure, etc. So, clearly, using autodie today in Perl 5 is the way to go… but stay tuned.
11:31am: Something I did not know: in Perl 5.12, ‘use v5.12;’ includes ‘use strict;’. This shows how Perl 5 is slowly moving towards similar saner defaults as we are also expecting in Perl 6. Neat.
11:20am: Jesse is proposing a new way to declare not just the oldest Perl version you want to use, but the exact version, when writing ‘use v5.16′. This is not real yet. But it would allow Perl to move forward more easily while maintaining backward compatibility.
10:56am: Next up, a talk about ‘Perl 5.16 And Beyond’ by Jesse Vincent, the current Perl 5 pumpking. Session is packed, Larry is here, my coffee refill is STRONG. No more making coffee in the room. That’s whack, this is the stuff.
10:41am: Turns out to be a talk about this module which you could add to your OO toolset. An ‘announcement’ is a particular kind of object design pattern focused on events that other objects may want to know about. The idea started in the Smalltalk community in work done by Vassili Bykov. Definitely interesting stuff, although nothing I can immediately apply in my procedural designs.
10:31am: Now for Shawn Moore, speaking on ‘Announcing Announcements’. No idea what to expect here.
10:21am: I’m pretty certain that I’m not looking forward to working heavily with data caching. At present, all my apps access data right off the disk on every query. This clearly doesn’t scale in certain ways for certain applications and it does make me wonder when and where I’ll hit a ‘ceiling’. The kinds of problems programmers have to deal with around data caching are ugly.
10:14am: This guy is melting my brain. He’s basically talking about code optimizations that prevent the access of data until you really need it… to defeat certain caching inefficiencies… but I felt my brain leaking out my left ear sometime around his description of ‘trampoline subroutines’.
9:59am: The first session for me today is Steven Lembark’s ‘Virtuous Laziness For Your Data’ subtitled ‘Doing It Once And Knowing You’ve Done It’.
Day 1 (Monday) [most recent postings first]
5:07pm: I’m calling it a day. Good first day, I thought… nice mix of technical and less-technical stuff. Time to go see what Asheville is all about!
4:08pm: Now for a likely lower-tech session called ‘Telecommuting’, subtitled ‘…Or How To Survive Work Without a Water Cooler.’ Telecommuting has always been a pet topic of mine, since I can’t think of too many other reasons to seek a career in computer programming. It certainly isn’t for time outdoors or the dating opportunities.
[More rumblings about everybody's company hiring at this event. Perl economy == not so shabby.]
Presenter works 100% of the time out of the office… there is only one person left full-time in their office. He is in Manhattan…. Manhattan, Kansas.
One good piece of advice: don’t try to telecommute if you don’t love your job. He didn’t really explain why, but it’s obvious… if you’re not self-motivated by the joy of coding, you’ll be even less motivated when there’s no one else physically present. If you love it though, the inverse may be true as you find more quiet and space to concentrate.
Another salient point: too much security is a problem. Security vs. convenience once again. Typical complaints… which I share… about VPNs.
3:29pm: Matt Nash now presents his talk entitled ‘Perl Helped Me Graduate’. Matt is a UNC Computer Science grad who used Perl for his senior project. The projects were doled out as part of a corporate partners program and this was an actual industry project for AT&T.
Cute how he bargained with his (younger… was was a non-trad) classmates to let him do the backend in Perl as long as they could do the front-end in Adobe Flex… because they thought it would help get them jobs. Really? Amazed how people always look at technology as ‘what’s hot this year?’ rather than the more advisable ‘what’s truly got legs?’… especially when they’re developers. Who wants to rewrite in two years?
2:56pm: Sometimes it’s easier to just stay in the same room, especially when the next talk is entitled ‘The Art of Klingon Programming’. Paul Fenwick is in full Star Trek gear, but his laptop is misbehaving right now.
Okay, he tamed the laptop. This talk is brilliant and strange. He backs into the idea of not doing things implicitly in Perl by way of some hilarious ‘translation failure’ jokes… in a Klingon nightclub scenario. Yes, you’d have to be here. Really missing Bill Costa and Paul Sand right now.
This turns out to be a talk on autodie, which I have not hitherto appreciated. And of course here I am at YAPC so I am hearing about it from the author himself. Should I be using this? I think maybe I should. Wondering if Henninger would be interested in this… it’s lexically scoped, and excellent for error handling on system commands especially.
This gets rid (and more) of your ‘or die’ statements. Awesome. Come standard with Perl 5.10.1 and can be installed on 5.8+. I am curious how this might work with Costa’s version of FatalsToEmail.pm. Since Costa’s module mostly rewires die(), maybe it just sits down on the chain after autodie. That’d be great.
Excellent presentation. I like to have at least one take-home worth implementing from every conference I attend, and autodie might just be the thing.
2:25pm: Mark Fowler’s talk titled Pimp Your Mac With Perl. If you hit that link, you’ve just been schooled on how to give a talk at a conference and promote it well. Think of a fun talk title, get the domain, publish your talk and some related links.
He’s going into some detail on using launchd on OS X in lieu of init.d for those familiar with Linux. Good talk.
12:37pm: Lightning talks end.
12:34pm: Next talk is promotional for the Pittsburgh Perl Workshop. Interesting impromptu vote, show of hands for people who consider themselves primarily sys admins vs. primarily app developers. Waaaaaaaaaay more people who consider themselves app developers in the room.
12:23pm: more recruiting… NYC… Amsterdam… telecommute…
12:28pm: Another quick talk, this on perldoc. Usually only works if installed, so he has written cpandoc, which does a fetch on anything in core Perl or CPAN. Very nice for people who prefer not to leave the command line to read docs.
One thing that strikes me: using cookies is a great convenience for users, but holy cow does it open up security concerns. At that point you should force all DB-altering calls to be POSTs, not GETs for instance. Ought to be doing this anyhow for other reasons too.
12:16pm: Next: a talking about getting good debug on his dynamically generated SQL. Looks like he wrote some custom code to do this… I think DBI::Profile does just fine for this but maybe I am missing for something.
12:09pm: Next: another threading library for Perl. Ah, threading. I have occasionally messed around with forking background processes for long-running tasks, but I sincerely hope to never have to worry about threads again. I enjoy low-level work but I’d love to see process/thread management become as uncommon as memory management in HLLs.
12:02pm: Next up: ‘Slicing and Dicing Plant Genomes with Perl’. I’d secretly (whoops!) rather be working on stuff like this than on business apps… but I might be a bit behind in my knowledge of genetics…
This guy studies everything in the Nightshade family. Tomatoes, potatoes, petunias (petunias?). I think I need to bone up on my botany, too.
Interesting to know: there are a lot of opportunities to improve the applications and interfaces available to scientists.
11:57am: Now we are hearing about an effort at benchmarking template modules. Shoot, he isn’t including HTML::Template in the comparisons even though he supports benchmarking it. Oh well… it’s fast enough for me.
11:52am: Next lighting talk is a primer on creating a basic CRUD (create/read/update/delete) app with an object model. Apparently a Mojolicious framework plugin that sort of seems like a combination of an object modeler/dispatcher that also scaffolds your UI a bit.
11:51am: Hard not to notice the recruiting going on here. More than in the past it seems. Is the future brighter than ever for Perl devs?
11:46am: Next lightning-talk guy is speaking about version-controlling your home ($HOME) directory in the UNIX environment. Actually this seems more than a management script for multiple working directories, handy for coders on multiple projects…
11:40am: First lightning talk: a guy is pitching the Stackato cloud platform from Active State. Supports Perl, Python and Tcl. Supports any PSGI-compatible framework. (Is this a basic requirement for frameworks nowadays? I still don’t entirely understand the problem space that PSGI attacks)
11:16am: Keynote has concluded, looks like lightning talks next in the big room here. Not sure I recall these being a main feature before but it’s a good idea; lots of information, very quickly. We’ll see how well I blog it, though.
11:01am: Larry gets a few hugs (somewhat of a lark to cure his ‘depression’) from the crowd, and some thank-yous (not a lark) for creating Perl and allowing all of us to have careers.
10:58am: I am struck by how Larry focuses on very human issues when it comes to fostering community and collaboration… not tools. We all use collaborative tools but the real problems with cooperation are within us. Obvious, but shouldn’t we talk about it more? Try to think about solving it more? Seems like we talk about tools 90% of the time and tools won’t save the day.
10:47am: Interesting observations on ‘hares vs. tortoises’ and ‘merchants vs. craftsmen’ to describe different work styles and how they are each valuable. Also early vs. late adopters, detail vs. big picture people, leaders vs. followers…
10:42am: Larry’s wife walks in.
10:36am: Larry is typically philosophical. He’s talking about community now, ‘hugging trolls’, using social martial arts and keeping core Perl contributors sane. Imagine piloting an all-volunteer project composed of hundreds of geniuses and eccentrics. No wonder Larry thinks about the psychology of his community a lot.
10:19am: Larry reminds us that he is our BDFL. Benevolent Dictator For Life. It’s true, and we’re glad.
10:10am: Larry is about to come up for the keynote.
This is reposted from the report posted on software.unh.edu.
For some reason I just decided to look back on the past through Google Calendar, a tool I’ve been using since 8/15/2006… since the time my daughter was about to enter kindergarten; she is now finishing out fourth grade.
Wow. Stunning, amazing. If you have used a calendar like this to manage the last 5 or more years of your life, check it out. Five years is between 5-10% of your expected life span, and a lot of change occurs. At least, it does for me.
all these moving parts:
almost a living, breathing thing;
almost keeping me company
The commercials on Pandora seem to be getting more frequent… is it me?
I logged into LinkedIn for the first time in awhile. They’ve really added a lot to that site.
In other news, I’m dying for a Celtics game. I’ve abandoned a couple of my “mind off” activities this summer, and I really miss the pure escape of watching a game or, let’s say, playing a little World of Warcraft. The latter, however, is forever behind me, I officially quit a couple months ago, never to return to the land of Azeroth.
Lastly, I don’t think shopping cart software should be used to collect town and state vehicle registration dollars. After payment, one has the distinct feeling that the cart is still quite empty, and that one may have been robbed.
Very interesting article, here (Did emotions evolve to push others into cooperation?)… makes all the sense in the world to me. I definitely find that lowering my expectations of others has a mood stabilizing effect. I actually find that stability so gratifying that I’ve tried to remove any and all expectations, and the zen-like royalties keep coming in. I sincerely, honestly and completely just don’t give a damn what people do with their lives, and it feels amazing…
One of my oldest lines in response to an emotional person (‘you make me so angry!’) has been “I can’t make you feel anything‘. And I think it’s true. People feel stuff on their own, probably in an effort to manipulate those around them, subconscious though it may be. The actual sensation of ‘feeling’ an emotion is probably secondary to the outward behavior it is meant to produce for the ‘benefit’ of others…
[note: I titled this post 'I Second That Emotion' after the Smokey Robinson song because it's exactly that relationship between motion ('I second that motion') and emotion (Robinson's savvy twist) that I want to point out: both parliamentary motions are human emotions represent movement, or the yearning for movement, in an evolving contract between individuals or groups.]
touch me, babe.
That links to an article that any human should find interesting, sports fan or not.
… for making it possible to show the world what a geek they’ve turned me into. I present to you… Magickman! Try, try, try to understand…
Check out this Google Voice feature. Use the widget below to leave me a voicemail. Seriously go ahead and try it. Prank me or something.
Ye old Interweb has been so damn kind to me over the years. It’s the horn of plenty that keeps on giving. It has replaced the libraries, bars, and arcades of my life with far greater versions of each. It has shown me an easy way to feed my family. I could go on, but… thank you, Interweb.