We have a special treat for you today, a title unification match. In the corner to my right, haling from mysql.com, the undisputed world leader in users - MySQL! In the corner to my left, hailing from postgresql.org, the undisputed world leader in geek credibility - Postgres!
At YAPC::NA 2012 we will once and for all declare a winner in the RDBMS wars. Winner take all. Loser stripped of it’s title and goes home with it’s tail between it’s legs!
We had been told that this whole process would take about a year, and finally I'm happy to announce that this decision has been reversed, and the above mentioned trademark has been revoked (I'm not a lawyer type, so excuse me if my words of choice there are not technically correct).
This was a joint effort by Japan Perl Association and Yet Another Society/The Perl Foundation, with a little bit of help by a hacker who shall remain anonymous, just in case. I'm happy that we were able to work this through.
That leaves the actual petition by TPF/YAS for the true trademark for Perl in Japan, but that's a whole different story. For now, I'm happy we're free to use Perl without worry.
The other day I was wondering about $? in Perl and the shell and how exit statuses work.
I did some digging and now I'd like to talk a bit about exit statuses at the OS level and how Perl and the shell deal with it.
First off, there are two ways a unix process can terminate.
One is by calling _exit, the other is getting killed by a signal.
In both cases the resources of the process (such as memory or file descriptors) are cleaned up.
All that remains is an entry in the process table (i.e. the PID is still taken) and some status information on how the process died.
This "stale" process table entry is called a zombie process.
After a process has terminated, it's its parent's job to clean up after it by calling wait or simply exiting itself (a process whose parent has died is known as an orphan process; it will be adopted and cleaned up by init, the process with id 1).
I've been messing around with Objective-C off and on for a while now. Whenever I take a break and come back to it, I find myself having to look up some of the same syntax over and over. Some examples would be:
Infinity Interactive is a New York based, multi-discipline consultancy that serves global organizations with local attention. We build simple websites, infrastructure for multi-national corporations and everything in between. Our strengths are our relationships with our partner companies and our focus on quality. We are committed to open source software and are very active in the Perl community. Therefore we are proud to sponsor YAPC::NA 2012!
For the past several years, I'd been set on YAML as the format for configuration file. It's human-readable, pretty, portable, and support arbitrary data structures. But for future projects, I'm planning to use INI format. Why?
First of all, YAML is "too complex" for users. There are subtle syntaxes, like the requirement for list separator character (,) or the mapping character (:) to be followed by space. And then there are object literals like Yes/No/true/false, ~, date/time, etc. And the various ways to do heredocs. It would take at the very least an hour to explain the syntax to first timers, and days to familiarize with it.
Second, and this is more important for me, there are no round-trip parsers/emitters for YAML. You can't modify data without reformatting the whole file and removing all comments.
I always wanted to write about Perl but never got the time to do. Recently came across to some of Neil Bowers published blogs which gave me the necessary push to write something useful. I feel honored to have worked with Neil Bowers in the past.
For the last 6 years or so I never got the opportunity to do any kind of web development. Although I kept in touch with all the web related stuff that is happening in the Perl e.g. Catalyst, Dancer, Moose. Also during my web development period, I never used any kind of MVC, ORM but these days everyone wants all these. So cut the long story short, I created the web app using the traditional perl-cgi-dbi logic, which as expected they didn't seem to approve it.
One thing that many people like to do when they travel is find restaurants and bars with rooftop seating. These kinds of places often have great views of the city, plus the crisp and refreshing air of the night sky. It’s hard to resist, especially since it’s only 3 blocks from YAPC.
Johnny O’s Sports Lounge is one such place in Madison, and they also have the distinction of being the closest restaurant/pub to YAPC to offer rooftop seating. An interesting feature of Johnny O’s is that they also offer basketball on the rooftop, as well as the a band on some nights.
I have secured what's called an "event insurance" which will cover any injuries or damages to the facility during the conference, so we're pretty much all set now. Just counting the days now...
Normally we close the ticket sales while we still have a small amount of tickets left, but this year the tickets went very fast, well, we're now sold out, including about 70 student tickets -- this is particularly good, because we believe we need more young blood.
And due to the overwhelming number of inquiries, we're going to be selling a few tickets at the door (unfortunately this ticket will not have many of the benefits that come with the regular ticket :/ ). First come first serve, so if you haven't bought your tickets yet, come early on 10/14 to secure your ticket.
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.
New content, screencasts and step by step guides for people new to Perl.
The PerlFAQ has also been integrated and updated a bit (more to come). If you are interested in helping update the PerFAQ please visit the github repo or join us on irc.perl.org #perl-faq
A friend asked my why I'm still using Bundle:: instead of the superior Task::
It was Bundle::CPANReporter2
If I install a Task for 5.15.3 plain and then install it for the debugging version, it does nothing and says "already installed". Different archlibs are not checked.
I had to do the following to install all the Task::Kensho XS modules:
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.
I've been using claws-mail as my email client for a while.
Today I wanted to search all of my messages for some text and look through the results.
When I couldn't figure out how to do that even after consulting the claws manual, I went to their official IRC channel.
For reference, here are some screenshots of the dialogs in question:
LOINC's RELMA tool can display HTML details pages for each LOINC. Unfortunately, we have an over 800:1 file size ratio between the smallest set of details (like the Simple Display of 13308-2, Deprecated DNA) and the largest set of details (which may be the Comprehensive Display of 45981-8, MDS full assessment form - version 2.0, with 627 LOINCs totaling 13MB (300,000+ HTML DOM elements)).
Since we are speeding up RELMA by caching the generated pages, we decided to generate only 1 (one) file per LOINC and show/hide the various sections of the HTML using JavaScript. Previously, we generated a file for the Simple Display, the Comprehensive Display, and each type of Custom Display, re-using the filename for each display type so there was 1 (one) file created per LOINC but different file contents for each display type.
While on the one hand, ORMs make up most of the published best practices for interfacing with databases, (see the success of DBIx::Class, and many other similar products), on the other hand, there is a certain amount of backlash against them, eg ORM is an Antipattern.