Get More Out Of Your Meetings

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”.

[From the YAPC::NA Blog.]

The unexpected case of -Mblib

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:

The Case for Simplicity

Part of my design goal for Tie::Array::CSV was to be an elegant blend of tied objects making hard things easy both at the user and author (me) levels.

A few months back I announced that Tie::Array::CSV is now more efficient on row ops. Since then I have had a nagging thought; this change cost me elegance and simplicity.

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.

The case of the non-standard non-PSGI unbuffered input

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.

Corvisa is Hiring!

Corvisa has a Perl Developer position open that looks quite interesting.

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.

Qualifications

Downvoting unsupported modules

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.

No, I'm not bitter, really :)

Mojolicious Full and Lite apps - understanding the difference

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.

Mojolicious::Lite is a thin layer on top of the full framework - literally a 68-line module that provides Sinatra-like syntax, including the ability to embed base64-encoded binary files.

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.

The example application demonstrates DBIx::Class integration, how to test your web app with Test::Mojo, as well as how to use EP templates with and without tag helpers. For those unfamiliar with testing in general, there are even examples of DBIC schema tests.

Dancer updates

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..."

Corvisa is sponsoring YAPC::NA 2012! We’re proud to have...



Corvisa is sponsoring YAPC::NA 2012! We’re proud to have them as a sponsor.

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.

Our newly expanded tech mecca in downtown Milwaukee offers perks like:

  • Competitive compensation, benefits, and a jean-friendly, casual work environment
  • Code Love: Hackathons, code contests and opportunities to see your work turned into viable new product lines
  • Freebies: snacks, catered lunches, corporate discounts and as much caffeine as your heart desires
  • Wellness: Free campus fitness center, massage events, a game room and plenty of team events to keep things fun

For more information on Corvisa and our available jobs, visit www.corvisa.com

[From the YAPC::NA Blog.]

London Perl Workshop 2011 Survey - Results Now Online

London Perl Workshop 2011 Survey Results

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.

XING sponsors YAPC::Europe 2012

XING joins YAPC::Europe 2012 as a Platinum Sponsor! Thanks for your support.

XING_blog.jpgXING 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.

Smolder setup?

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.

Date, Times, Perl, and You

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.

[From the YAPC::NA Blog.]

selfthought declarative style (knuth is the don)

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.

Class::Base => Badger::Base

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.


Written by Gabor Szabo .

More changes to Sys::HostIP (there will be no API breakage)

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. :)

(Ab)using the MetaCPAN API for Fun and Profit

Olaf Alders will be giving a talk at YAPC::NA 2012 described as:

MetaCPAN aims to make it fun and easy to get data about CPAN modules, releases, favourites and even CPAN authors themselves.  Sites like www.github-meets-cpan.com, perlresume.org, mapofcpan.org and metacpan.org itself make use of the MetaCPAN API to deliver interesting and useful information about the constantly growing body of code in the CPAN.

This talk will touch on the various ways you can connect to the MetaCPAN API and give you some handy tips to ease you on your way to metadata joy.  By the conclusion of this talk you will be armed with enough knowledge to crank out the next cool CPAN mashup before suppertime.

[From the YAPC::NA Blog.]

Perl Data Language (PDL) 2.4.10 Release

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:

  • POSIX threads support for all platforms
  • Auto parallelization of PDL threadloops
  • Support for PDLs larger than 2GiB
  • PDL Book draft release (PDF format)
  • Much, much, more…

Call for Speakers

We are ready to accept talk proposals. There are two standard talk slots this year: 20 and 40 minutes. Exceptions are available for keynotes and small teaching classes: 60 and 120 minutes.

We also plan to have three sessions of lightning talks, one per each conference day.

To submit a talk, please visit http://act.yapc.eu/ye2012/newtalk and fill the form. We kindly request to carefully select target audience (beginner, intermediate, advanced, or any): it will help potential attendees to decide if they are going to attend the talk.

All the approved speakers (except those who give lightning talks only) attend the conference free of charge.

Switching to Notepad++

When programming on a Windows PC, I use Metapad (http://liquidninja.com/metapad/) as I have for about a decade. (I used EditPad Lite prior to finding Metapad.)

Recently at home I have been using Notepad++ and it's really grown on me. I've always liked having all of my open documents in tabs. It also has syntax highlighting which really helps me see mistakes before I've even tried a compilation check.

I'm going to install it on my work laptop and see how it works out for me.

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.