With just over 2 months before the conference we’ve sold more than 300 tickets to YAPC::NA 2012 so far! That’s great news. The bad news is that the conference facility maxes out at 400 people, so if you are coming to YAPC, you need to get your badge sooner rather than later.
Also, we only have a couple more tickets left to sell before the Zero to Perl Workshop is full. And we only have about 10 more spots left for the Hackathon that precedes the conference, which includes the Hardware Hackathon led by Robert Blackwell.
I don’t want anybody to miss out on the great program we’ve got set for YAPC::NA 2012. So please don’t hesitate, sign up today!
As I was doing some reading on Unicode, I had to sign up for a free account with ft.com site in order to read one of their articles. I normally use strong passwords, but this Web site presented me with the following error message:
Your password must be at least 6 characters long and include letters and numbers only
Ignoring the bad user interface — please tell me before I typed the damned password — it's also suggestive of security issues (ask Bobby for one reason why programmers have such bad password restrictions).
And that got me to thinking about Å, also known as U+212B.
Christian Walde (MITHALDU) pointed out I'd missed enum, which is used to define sets of constants with values in sequence, akin to C's enum type.
As a result, I found enum::fields, which similarly is used to define sequences of constants. But it's aimed at defining names for accessing fields in class which uses an array ref under the hood, and supports extending the sequence of constants in a subclass.
I mailed p5p with some questions that came out of the review, and Zefram pointed out his modules Lexical::Import and Lexical::Var, both of which can be used to define compile-time immutable variable style constants, which can be used in the constant folding conditional compilation idiom. I always learn things about Perl when I do a review.
I'm in constant worry of unnecessary bloat because our perls have to run fast. "Bloat" means added dependencies, loading new files at startup, needing more time.
Generally little benefit for more cost.
With the perl compiler I can analyze code and dependencies at compile-time and strip unneeded packages.
My recent concerns have been:
Abigail will give a talk at YAPC::NA 2012 described as:
Many people, specially developers, hate meetings. They have to invest a lot of time, for little reward. Meetings, however, can not be avoided completely. At work, I can easily have a dozen meetings in a week. In this presentation, I will share some ideas and tips we use to make meetings more efficient; so the participants get “more bang for the buck”.
To implement the deferred row operations, I made my row objects wait until their destructor to update the file. Sounds nice until you realize that you now have race conditions all over the place. So you hunt them down and store/update more internal data, always keeping track of what has been changed. A simple change became a big undertaking. As the project finished I couldn’t help but yearn for the simplicity of the original design goal.
It all started with a question. Ain't it always the case? A question, a simple little question?
I was at my desk at work, hacking along as usual, when a message popped up. Suspicious, since I'm unlisted, I probed the lines carefully. The message was from a dear friend, who had been wondering about a special use case for a web framework. Not just any web framework, but the web framework that I loved. Dancer, her name.
He had been struck with the interesting requirement of writing a web application to upload files. These were no ordinary files, but rather very large ones. The question was whether it is possible, using Dancer, to upload just a header of the file, verify the type, and upon that verification allow or disallow further uploading.
After a short examination, it was clear that Dancer buffers the input files prior to giving you access to them, such as many other frameworks do. We had left it at that.
A new, late, new year's resolution for 2012: rate unsupported modules with 1 star. Two such examples. By unsupported, I mean tickets are not responded at all (let alone bugs fixed) for months or even years. Perhaps module-starter should emit this POD section template instead:
=head1 BUGS
Please report any bugs or feature requests to
C<bug-foo-bar at rt.cpan.org>, or through the web interface at
L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Foo-Bar>.
I will be notified, and then you'll automatically be notified of
progress on your bug as I make changes.
BUT KEEP IN MIND THAT I MIGHT GO ON, HAVE A LIFE, AND FORGET
COMPLETELY ABOUT THIS MODULE, THAT YOU SHOULD RELINQUISH
ANY HOPE OF GETTING TIMELY RESPONSE FOR INQUIRIES ABOUT
THIS MODULE, IF EVER.
Department:Software Development Compensation:Competitive with benefits Job Description
As a Software Developer, you will be responsible for the design and development of our RESTful API and backend processing jobs to add new system functionality that will support our growing customer base.
You will accurately and rapidly write code for various software products, which entails using proper coding conventions as well as following any specific desired coding conventions. Emphasis is on producing clean and lean code that is capable of functioning and scaling in highly demanding business environments.
The mojocasts have thus far used lite apps exclusively to demonstrate basic Mojolicious functionality. This has led some to believe that Mojolicious is a one-file micro-framework; however, that is not the case.
Mojolicious a full-featured framework, supporting what some would call Catalyst-level deployments, in addition to one-file simple applications.
Full apps are a good choice for teams, and for sanely separating concerns for large web apps.
I've uploaded a sample application to demonstrate the differences, and allow folks to see first hand how to translate from Full to Lite, and vice-versa.
First, a short introduction to the state of the Dancer community.
Dancer really is a community, in every sense. You can see it by pull requests from fresh developers, pull requests from people who've been there for a while now, and you can see it in the channel and on the mailing list. I can't explain in words how thrilling it is to this day to see someone on the list reply to someone else. Dancer clearly isn't mine, it's ours, all of us, including those who take a few minutes to actually reply and say "hey, I might not know what your problem is, but how about you try this and that and let me know if it works out. I'd like to help you fix it" or "hey, I know that one, it's..."
I'm please to say that the survey results from the London Perl Workshop 2011 are now online. Slightly delayed due to Christmas and my new job, but worth the wait I think. This is the first time we've had a survey for the London Perl Workshop, so I was interested to see how the results differed from YAPCs. The attendees for the workshop differ from YAPCs, as although around 40% of attendees are well know within the Perl community and have attended YAPCs, most of the sttendees, like attendees for many other workshops around the world, don't have the resources or availability to attend a 3-5 day conference event. However, a one-day event, and especially a free event, makes a workshop much more accessible.
Corvisa Services is the software development, IT services and marketing division for a series of large and growing companies owned by our Kansas City-based parent company, NovaStar Financial Inc. We build killer software using a variety of languages, with entire teams devoted to Perl.
XING joins YAPC::Europe 2012 as a Platinum Sponsor! Thanks for your support.
XING is the social network for business professionals. More than 11 million members worldwide use XING to boost their business, job, and career. XING is a platform where professionals from all kinds of different industries can meet up, find jobs, colleagues, new assignments, cooperation partners, experts and generate business ideas. Members can meet and exchange views in over 50,000 specialist groups, while also getting together at networking events.
The platform is operated by XING AG, which was founded in Hamburg, Germany, in 2003, has been publicly listed since 2006, and listed on the TecDAX since September 2011. In December 2010, XING acquired amiando AG, a Munich-based company and Europe’s leading provider of online event management and ticketing. Please visit www.xing.com for more information.
I recently tried to set up an instance of Smolder, but failed. While installing the module and it's dependencies was rather easy (thanks to perlbrew, local::lib and cpanm), I couldn't figure out how to actually initialize the system.
Starting the server works fine (at least after I realized that the default hostname of "localhost.localdomain" doesn't work on my machine and I had to use "--host localhost"). Even the startpage loads perfect, but all following pages are broken, and I can't find any way to set up my users, projects, etc. And while there are some sql files lying around, there is no way to actually stuff them into a (which?) database.
The last time I installed Smolder, it came as some sort of pre-built package, which was rather horrible to install (but worked afterwards..)
So, does anybody know how to set up this beast? I couldn't find any up-to-date info, but I hereby volunteer to write a document explaining how to install and set up Smolder, if somebody points me to the right scripts/docs/whatever.
As Kephra gets prepared for its great day, there are some design decisions hat make me just happy and maybe you will benefit from it too.
The previous incarnation had also a command list. A central place where most calls are stored that end up in the menu a toolbar or the user can access otherwise. But it was not only the API into userland, it also helped to create menus and bars from very simple yaml files, that only listed command IDs. Because to every command belonged a label, icon, and key informations, the rest was almost trivial. This way you could very easily change the menus within the editor (with the line move functions) and the change was visible as soon you hit save (or autosave reacted).
One major flaw of this system was: informations that belonged into code were exposed inside of config files. Very bad and fragile. But more ugly for me, changes were troublesome because I had to go to several places.
Dave Rolsky will give a talk at YAPC::NA 2012 described as:
Dates and times are confusing and crazy. What nut invented Daylight Saving Time? Someone who’d never imagined a computer, that’s who!
Dealing with dates and times might seem simple at first, but there’s a lot of gotchas.
This talk will start by covering some concepts worth knowing about (What is an Olson timezone? What’s the Gregorian Calendar?).
After that we’ll talk about how the DateTime suite of modules can make your life a little easier. I’ll show you some best practices for working with dates and times, and highlight some gotchas in DateTime’s API, and with datetimes in general.
While installing SQL::Translator I noticed, that Class::Base, one of its prerequisites, is printing the raw TAP to the screen.
I asked Andy Wardley if I could modernize the tests. He agreed, so after almost 10 years break and 20 minutes hacking, there is a new version of Class::Base on CPAN. He also suggested that people should rather use Badger::Base which is effectively its successor.
So now Class::Base recommends Badger::Base in its documentation.
If your module is using Class::Base you might want to consider switching.
A lovely comment was left on my blog by someone using the OpenID "targ": "Please don't break backwards compatibility. If you did a web search, you'd have found plenty of people using the existing functional interface."
You know why I love that comment? It's polite, kind and courteous. I made me actually go out, search, and find that some projects indeed use Sys::HostIP and in a way that I was going to break. I honestly didn't even know this module is widely (if at all) used. It made me decide not to break backwards compatiblity. I've decided to keep both object oriented and functional interfaces in place and remain fully backwards compatible.
If you're using Sys::HostIP and didn't want it to break, you need to thank this guy.
Another thanks should go to Mr. Muskrat for playing with Sys::HostIP and quickly finding I refactored off a bit too much and caused an issue. He also suggested a fix for it. Props!
Finally, another thanks should go to Alexandr Ciornii for raising a pull request with working code for supporting Russian language in the Windows version of it.
Expect a new version today.
Now these things really make my day, change the way I work and make the code I write that much better. :)
Since the Perl Data Language (PDL) does not have a large presence in the Perl Blogosphere, I have the honor of reposting Pumpking Chris Marshall’s announcement of PDL 2.4.10.
For those of you who don’t know, PDL gives standard Perl the ability to compactly store and speedily manipulate the large N-dimensional data arrays which are the bread and butter of scientific computing. For more information on PDL please visit its website at http://pdl.perl.org.
Chris’ release message is reposted below, the full text can be seen on the mailing list archive.
PDL-2.4.10 released
The PDL Development Team is pleased to announce the
PDL-2.4.10 release of the Perl Data Language and
the first PDF release of the PDL Book.
PDL-2.4.10 is the latest point release with more
functionality, portability, and robustness than ever
before, including: