We’ve covered a number of other bus services to get you to YAPC, but Lamers Bus Line offers something a bit different. All the other bus services will get you here if you’re traveling from a major hub like Chicago, Milwaukee, or Minneapolis. Lamers has daily service from smaller cities all over Wisconsin. So if you’re from Wisconsin, but you’re from one of those less serviced regions, then check this out. They have daily service from the North:
Wausau
Mosinee
Stevens Point
Westfield
Portage
From the North East:
Green Bay
Appleton
Oshkosh
Fond du Lac
Waupun
Bever Dam
Columbus
From the South West:
Dubuque
Platteville
Dodgeville
Mount Horeb
Verona
All of these locations drop off at the UW Madison campus (where YAPC is being held). And perhaps best of all, they do this for less than $40. So if you live in Wisconsin, but don’t want to drive or can’t, then this is a great short range travel option for you.
After creating company-specific schemas, I decided to refactor and abstract more issues. This mainly revolved around our databases.
If you've read the previous post, and tried it yourself, you'd notice having schemas in a central module that anyone can use was comfortable. However, if you've tried to write stuff using that schema, you probably also noticed that you have to keep reinventing some variables.
Assuming OO code, you'd have an attribute for the schema object, the database host, the database user and the database password, for each of the several databases you might have. Perhaps even more variables. We had the same issue. I was tired of having to configure this every single time. The next refactor had to consider this.
I wrote a role called KittiesInc::Role::DB (assuming my $workplace was called "KittiesInc.") and it included all the attributes for databases. It created, for two databases, attributes for the schema object, database hostname, database username and database DSN.
Today, we watched a series of test cases failing. Our tests started with a blank database and a series of populate method-calls to create their own test records.
Everything looked obviously right, but after a while of debugging, we found out that the populate method of DBIx::Class::ResultSet behaves differently depending on the context used. In Scalar or List context, the records are inserted using the INSERT statement, while in void context, a bulk insert method is used.
From a performance standpoint, this absolutely makes sense. The documentation does explain this very well.
However, some optimizations have been made under the hood that are not obvious unless you know about -- I did not know that before.
GitHub is an amazing service that much of the Perl community has adopted, but there are still a few holdouts using their own git repos, Subversion, and even CVS. I’m here to tell you that other than writing tests, there’s very little you could do to improve your software development process more than moving your applications and modules to GitHub. It’s not just a hosted git repository. They back up your repos, provide collaboration and documentation tools. They even provide plugins for other repositories so that if you prefer to use Mercurial locally, you can still use GitHub. And if your app is open source, you host it with them for free! Make a new years resolution and switch to GitHub.
Just a quick note about how much I appreciate the work Robin Smidsrød has done on XML::Rabbit. I'm now using it on a second project, and the ease in which I can quickly build a set of classes and attributes to process XML documents combined with the usual Moose-y goodness is truly wonderful.
The first project in which I used XML::Rabbit, XML::Ant::BuildFile, is still chugging away and working well.
The MySQL databases have now been rebuilt and correctly synced between each other. The SQLite databases are now being updated and these should be completed by the end of the week. This has enabled me to write some simple scripts to create and repair the databases, which I'll now be including in a separate distribution to be released on GitHub. It will also include all the apache, mysql, logrotate, cron and other config and script files, so that if we ever have to rebuild again, getting started is a lot easier.
The websites are now rebuilding too. The statistics site will be complete shortly, as it takes a while to rerun all the statistical analysis. Trying to analyse everything all at once tends to grind the server to halt, whereas analysing bitesize chunks, although slightly slower, uses less memory and saves progress to disk, so we don't have to start again from scratch if anything falls over.
The bad news is that the Pyle Center did not have a room large enough for our main lecture hall at YAPC::NA 2012. The good news is that 100 meters down the street is the Lowell Center. We’ll be taking over the Lowell Center’s large dining room and setting it up to handle all of you.
This is where we’ll do our keynote, plenary sessions, Getting The Most Out Of YAPC talk, the lightening talks, etc.
Just got Kubuntu installed on my laptop. It's not bad but the panel locks up when I login to ATT wifi at Starbucks until I goto a browser and submit their online agreement. This behavior is a bit annoying so decided to try to automate the form submission with WWW::Mechanize. The script is very simple but seems to work so I decided to post it here for anyone else with similar issues. 99attwifi
Comments welcome.
I’ve been giving some thought over the weekend to ‘Authors’ vs. ‘Contributors’
as credits in module documentation.
For reasons I can’t remember but can almost justify still I’ve been submitting
modules to (the) CPAN with myself listed as the Author and any subsequent
patches are credited as a Contributor.
As a Dist::Zilla user I’ve been thinking that it would be nice to have
dist.ini accept ‘contributors = Jane Doe’ data in much the same way it
does with authors.
My investigations into a plugin for Dist::Zilla hit a roadblock when I
realised that I’d need to either fudge things horribly or fork dzil, submit a
patch and pray they accept it.
Since this is more work that just writing a plugin I took the time to stop and
think.
Is there any difference between an Author and the Contributors?
Am I placing too much self-importance on myself as the creator of a distribution?
Should Contributors be listed as Authors?
I’ve not been able to perform an exhaustive search of (the) CPAN but there are
a couple of distrubutions that use Contributors:
In this post, I talk about how
Perl 5 parses its
use statement.
The use statement
is implemented with
what I have named
"Ruby Slippers" parsing.
The idea is that you parse with a convenient grammar,
but one which is too simple to actually describe the language
you are parsing.
For example, if you are parsing HTML, the grammar might assume
all start tags have end tags.
Whenever the simplified grammar has trouble parsing,
the lexer fixes the situation by pretending the input
is what the parser wants to see.
The parser is like Dorothy in
the Wizard of Oz, who really would
like to be back in Kansas.
The lexer is like the good witch,
Glenda, who assures Dorothy that,
because of her Ruby Slippers,
Dorothy really can be wherever she wants to be.
We will be posting registration information for YAPC::NA 2012 early next year. However, for now I thought you might like to see the room where we will hold registration next year. This is the Upper Lounge in the Lowell Center. Though the image doesn’t show it, this room is quite large and will more than handle the long lines that form during registration.
We also hope to have multiple registration desks working to make the lines move quickly.
"Perl is, by and large, a digested and simplified version of Unix. Perl is the Cliff Notes of Unix" - Larry Wall
I could never really get myself to learn sed, awk, zsh, grep, find, m4, pipes, xargs, tee, cut, paste, yacc, lex, various IPC or even C for that matter. I ought to.
I have found a coupleofattempts at integrating perltidy into Git commit hooks, but nothing yet that I considered robust enough. The scripts ignore the state of the index, modify the working tree, and then forget to update the index before the commit. They didn't recover from a failed tidy run, leaving both the working tree and index messed up. Critically for me I could not do an interactive or patched "git add" and have the final commit reflect what I wanted.
githook-perltidy is my answer to this challenge. Robustness is achieved by stashing the working tree and index before the tidy run, which is re-applied on error. The same stash can be applied on top of the new commit (using a post-commit hook) to merge non-indexed working tree changes afterwards. The POD inside the script hopefully documents the process in sufficient detail to give you confidence in the method. Code has the final say of course...
The purpose of $foo magazine is to present and discuss projects written in Perl; to keep up-to-date with the latest news in the community including about The Perl Foundation; to publish tutorials on Perl projects such as WxPerl, Perl 6, Moose; it also gives news on CPAN modules (6 new modules are covered in each issue).
We will contact more companies when we created a paper for potential sponsors that will explain the sponsorship levels. I hope this will be done in October...
We now have pricing for YAPC:NA 2012 for those wishing to stay in the dorms. For a single room the price is $62.65. For a double room the price is $41.80 per person. Both include breakfast each morning, plus this impressive list of amenities. Note that this does not include parking, if that’s something you need.
We’ll open up online registration for the dorms in late February. And you will be able to register for dorms to stay during the workshops and hackathon (June 11 & 12) as well as the the conference itself (June 13-15). You’ll even be able to extend your stay until Saturday June 16th if your flight or other travel doesn’t leave until the next day.
The website has been around for some years, but wasn't very well known and actually a bit ugly. I've redesigned it, added a new diff function and moved it to a new server where it can run under mod_perl.
The diff function allows you to compare two perl versions for added, removed or changed modules.
I'm also thinking about auto completion but maybe this is overkill for such a small tool.
edit: I have added links to ppm and debian searches. if you have any other resource for module search (redhat, ...), please post.
You can debug JavaScript executing inside a WebBrowser control embedded in your .NET 4.0 application from VS2010 (Visual Studio 2010), but it takes a little effort.
Enable Script Debugging (both IE and Other) in Internet Explorer.
Disable friendly HTTP messages in Internet Explorer.
Enable Display a notification about every script error in Internet Explorer.
Modify VS2010 to debug Script from the Attach Process dialog. Please note that you cannot debug both JavaScript (Script) and .NET 4.0 code at the same time. (I don't know why.)
Add a debugger; statement at the start of your JavaScript.
Start your WebBrowser-embedded application without debugging (Ctrl-F5).
When your application hits the JavaScript debugger; statement, select your current instance of VS2010.
Voilà! You can now debug the JavaScript executing inside the WebBrowser control in your .NET 4.0 application.
Having prettified CPAN.org, perl.org and others, Leo Lapworth has now kindly had one of his designers apply their skills to CPANdeps. I think you'll all agree that it's a great improvement.