Office Hours For Pinto: MWF from 16:00 to 18:00 (UTC)

Time management has never been my best skill. The only way that I manage to get anything done is by making daily TODO lists for myself. But I'm still easily distracted by E-mails, Twitter, and IRC. I get such a huge thrill from seeing people use Pinto that I can't resist immediately responding to any inquiries or comments that come across my screen.

But I really need to buckle down and get some things done. The crowd-funded features for Pinto and the beta of Stratopan are my highest priorities for this summer. To meet my goals, I need to give myself clear time boundaries. Otherwise, I risk spending half the day pouncing on the F5 key.

So starting this week, I will hold office hours for Pinto on Mondays, Wednesdays, and Fridays between 16:00 and 18:00 (UTC). During those hours, I'll dedicate myself to answering your e-mails about Pinto, responding to issues, and participating in the #pinto channel on IRC.

Of course, you can still reach me outside of those hours, it just might take a little longer to get a response. Thanks for understanding.

To evolve or not to evolve?

What would you do when you try to improve the development process and it seems not to work for months?

Small tasks, (and not so small) and everybody is in a hurry to solve the next one and does not want to see the big picture, which is:

If we share code (via - o no! - a code repository) and reuse code via CPAN (o no again!), inheritance and OOP (o no, what the!..) and it really looks like you hinder the work of colleagues if you try to explain something more than "this regular expression"?... Yet you are supposed to do so...

At the end of the day the business people want results and do not want to accept the simple truth that there is accumulated technical debt for years...

I may be simply frustrated, but it is still hard to get it.
How would you manage this?
I really would like to hear some opinions...

detroit.pm.org

There used to be a detroit.pm.org. And after Stevan Little's keynote last week, Perl- The Detroit of Scripting Languages, I made some inquiries about resurrecting it... Maybe specifically with the intention of hosting YAPC :).

So far, the local response has been positive. As long as I don't step on any toes here. In so many ways, Perl and Detroit are the best of all possible worlds.

Mixing procedural and declarative parsing gracefully

[ This is cross-posted from the Ocean of Awareness blog. ]

Declarative and procedural parsing

A declarative parser takes a description of your language and parses it for you. On the face of it, this sounds like the way you'd want to go, and Marpa offers that possibility -- it generates a parser from anything you can write in BNF and, if the parser is in one of the classes currently in practical use, that parser will run in linear time.

But practical grammars often have context-sensitive parts -- features which cannot be described in BNF. Nice as declarative parsing may sound, at least some procedural parsing can be a necessity in real-life. In this post, I take a problem for which procedural parsing is essential, and create a fast, short solution that mixes procedural and declarative.

The application

This is a sample of the language:

A2(A2(S3(Hey)S13(Hello, World!))S5(Ciao!))

Files - MadMongers (Madison Perl Mongers) (Madison, WI) - Meetup

Files - MadMongers (Madison Perl Mongers) (Madison, WI) - Meetup :

I’ve uploaded my presentations from YAPC::NA 2013 to the MadMongers presentation repository. 

[From my blog.]

A few lessons from updating to Perl 5.16

Like most startups using perl, blekko began in 2007 using the perl that shipped with the Linux distro that we were using -- 5.8.8. Over the years, as our search engine and homegrown NoSQL database crawled towards a million lines of code, this ageing perl version frequently made us sad. We finally bit the bullet earlier this year, and here are the top 7 things we learned:

DBD::SQLite 1.39

It's been a year since DBD::SQLite team released the last stable version of DBD::SQLite (1.37). The team has added a few new features to retrieve database information, and applied a number of bug fixes thanks to the community, most notably the one to address an issue where bind_param didn't work with PADTMP scalars (RT #79576).

Also, two significant changes have been made; one by us, and the other by the upstream.

The team decided to enforce "immediate transaction" for all the transactions unless otherwise configured. You'll likely see less database deadlocks when you use DBD::SQLite in a medium-to-larger web application. However, you might also see some performance penalty, especially if your software is almost read-only. If read concurrency really matters, set "sqlite_use_immediate_transaction" database handle attribute to false explicitly, and the "deferred" transaction will be used as was previously. You can set the handle attribute when you connect to a database like this:

YAPC Reflections (2013)

Well, I’ve just gotten back from my second YAPC, and I thought I’d take a moment to share a few reflections.

First, general thoughts: I had an excellent time.  I knew far more people than I had the first time, which is partially just having met a bunch of folks in 2011, and partially because more of my current and former coworkers were in attendance.  Plus I met a whole lot of new people, so now I’ll know even more folks next time.  This is nice for me, as I’m one of those weird half-introvert-half-extrovert people.  I’m not much for walking up to people I’ve never met before and starting a conversation.  On the other hand, if I already know you, you can’t get me to shut up.  So, the more people I know, the more people I’m likely to meet.

Perl 5 Porters Weekly: June 3-9, 2013

Welcome to Perl 5 Porters Weekly, a summary of the email traffic of the perl5-porters email list.

Topics this week include:

  • DAVEM TPF Grant May 2013 report
  • dtrace sub-entry probe against lexical sub segfaults
  • COW and THINKFIRST and related safety

I love pre-modern Perl and so should you, my introduction

My name is David Shultz, I've been working with Perl since the late 1990's where I live in wonderful Portland, Oregon. I'm self taught, I code because I love the challenges and excitement it provides. I got my first job as a programmer working for a small porn company, then a small spam company, financial analysis firm, and finally my current employer of over 11 years, a medium sized data warehousing company. For the last 6 or more years I've worked as a project manager/lead programmer with a small team of really great people. I've worked with a few prominent people in the Perl community, and a few more have graced my employers doors over the years. I've had an amazing time over my years with Perl but not all has been rosy.

Wing

Wing :

Woot. Just got my first non-Plain Black employee patch for Wing.

[From my blog.]

Extended Exuberant Ctags rules for Perl?

Some time ago I made a tiny github repo to share my .ctags file that I use for better Perl support . I use it for my Mojolicious projects, yet it should be good enough for any Modern Perl project.

I would be happy if we can improve it!

Please feel invited!

META.yml is not my friend today

I want my github repo to show up in a module's META.yml file. And given that META.yml is generated by ExtUtils::MakeMaker, I put some META_MERGE stuff in my Makefile.PL, having carefully checked the documentation in CPAN::Meta::Spec to see what we're supposed to do this week (META.yml's structure has always been a bit of a moveable feast). And, of course, it doesn't work. Grrr.

Can someone tell me who fucked up what?

https://metacpan.org/source/DCANTRELL/CPAN-ParseDistribution-1.51/Makefile.PL

Counting the number of statements in a Perl codebase

I'm looking for ways to count the number of statements (or lines) in a Perl codebase. Any tools out there that do it?

JT's New Blog

A lot of people have asked me over the years if I had a blog or twitter feed that they could follow, and I've always answered with the blog or twitter feed of the various ventures I'm involved with. I've decided that it's high time for me to release my own blog and twitter feed for the things that aren't appropriate to any of those ventures. 

If you're interested, you can subscribe to my new blog or my new twitter feed now.

I'll still be posting relevant Perl-related articles to blogs.perl.org, but I've decided to create a new primary blog, because I often want to blog about non-Perl topics such as creating startups and designing games. So if you want to follow more than just my Perl activities, please subscribe to my new blog or twitter feed.

Creepy perl stat functions on Windows

I get realy strange behavior of POE::Wheel::FollowTail on Windows.
I need tailing some files on Windows and POE::Wheel::FollowTail is great for that.
It works fine, but if file reduced or recreated my script hanged to infinity loop.
I could not find anything about this problem in web and here is it.

Austin Question

IMG194.jpg
Still in Austin for a few more hours, and encountered this sight. Can anyone explain why liquid nitrogen is connected to a utility box on a street corner? Never seen this in my hometown.

Slideshows in Vroom: So Noted

Occasionally I give presentations.  Most often at work, but sometimes at my local PerlMongers.  Typically, a presentation is accompanied by some sort of slideshow.  And there are many, many different applications out there to create slideshows in.  Power Point is sort of the default of these, and I’ve used it before, and it sucks.  Google Docs Presentations uses the same basic model, and I’ve used that before too, and it sucks slightly less ... but it still sucks.  I just want some basic slides with a little bit of code on it, and maybe some text, but mostly in the “header” category.  I don’t like text-heavy slides.  You end up just reading your slides to people, most of whom can actually read themselves, and tend to be a bit insulted when you feel the need to do it for them.

Regexp::Debugger saved me twice today

I just wanted to say that if you stumble with a regex try Regexp::Debugger.
It saved me twice today facing problems too silly to describe here. :-)

Here is how I proceeded:
- write regex and see it not doing what I want
- think, rewrite, think again, rising anger
- insert Regexp::Debugger the line before regex
- play the regex, facepalm (in a positive way)

I now think about writing more complicated regexes. I want to enjoy the debugger even longer. ;-)

A Test::Class Anti-Pattern

I've been having a great time at YAPC::NA (my first YAPC In the US) and so far everything's been going swimmingly ... well, except for when I was giving a lightning talk and my phone kept buzzing in my pocket because my wife was lost.

I gave a talk on Test::Class::Moose and there were plenty of interesting questions and many of them were about topics I would like to have included in the talk, but simply didn't have time. One person emailed me later asking me a detailed question about test control methods and while I've discussed this before, I thought it was important to re-explain a common anti-pattern I see in Test::Class test suites.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.