I wish UNSHIFT was called something else...

I wish unshift was called shove : )

It's more visualizing :)

starting my twitter account

I think I want to use this account from now on to write more essay like pieces. Many of my posts here were just short reports of the existence of slides, talks, articles and other things. Maybe I will do comparing and reflecting summaries on such things, but for recent informations please subscribe my twitter channel. Some messages there might be German. Please don't mind.


Time spent waiting for tests you know will pass is time wasted

I've started using 'cpanm -n Module' to install Perl modules. The '-n' tells cpanminus to skip testing and just install the module.

"What, are you insane?"

Nope, I have just found that for most Perl modules, it is more time efficient to skip testing on the initial install, and sort out any problems later. Especially with a setup you know that works.

If I was installing a new application for the first time, I would probably not skip the tests however.

Method::Signatures : Some relief for MooseX::Declare users

I have been excited about OO programming in Perl thanks to MooseX::Declare but I have never especially liked its performance hit and its cryptic warnings. It turns out that much of this problem is due to MooseX::Method::Signatures, which is used under the hood.

Many moons ago, I was curious about Moose and MooseX::Declare and I posted a question on StackOverflow. Venerable Perl guy Schwern then posted as a comment, that Method::Signatures was better than MooseX::Method::Signatures, and that there was a mod in the works to use it with MX::D.

We’re very pleased to add CargoTel to our list of growing...

We’re very pleased to add CargoTel to our list of growing sponsors for YAPC::NA 2012

CargoTel, headquartered in Baltimore MD, provides transportation and field-service web and wireless applications in North America and is expanding its offerings in South America, Europe and Asia. It’s software is centered around Perl and delivered on a SAAS basis using many of the latest technologies such as HTML 5 on Android browser-based wireless applications. CargoTel hosts Baltimore Perl Mongers and is a supporter of other Perl organizations. http://cargotel.com

Adventures in Debugging C/XS

... or Why A Good Perl Developer Is Not Automatically A Good C Developer, the Story of C Programming via Google.

My tests failed, but only sometimes. I was building an XS module to interface with a C wrapper around a C++ library (wrapper unnecessary? probably). make test was failing with exit code 11. Some quick searching revealed that I had an intermittent segfault. Calling a function as_xml would fail with a SEGV in strlen(). This only happened in perl after as_xml when perl was making a SV out of the return value. This also only mainly happened during make test. Doing prove myself would succeed 19 times out of 20, where make test would fail 19 times out of 20. Worse, my C test program would never fail at all.

Dyn is looking for a Back-End Ecommerce Developer

Dyn is looking for a Back-End Ecommerce Developer :


Dyn is looking for a Perl developer to join our ecommerce back-end development team. The successful candidate will work on “nuts and bolts” back-end projects that deliver the functionality and experience our marketing team and users expect. Some familiarity with web development would be helpful. However, this is not a front-end web development role.

Required Skills

  • Sets realistic expectations and delivers on schedule
  • Able to focus and avoid scope creep while minimizing workarounds
  • Enjoys not only writing code to deliver function, but also writing and using tests to validate. Feels a project is complete when the results are proven via tests and understood via documentation
  • Collaborates with technical and non-technical colleagues to identify and deliver excellent solutions
  • Familiar with OO programming
  • Understands the core concepts of relational databases
  • Enjoys working on complex systems in a fast paced environment with changing requirements

Desired Skills

  • Able to keep user experience in mind during planning and development
  • Prior experience with ecommerce
  • Familiarity with revision control systems (CVS, Subversion, etc.)

Perl is not a multi-paradigm language

Perl is a dialecting programming language.

A dialecticing language is a super-set of a multi-paradigm language. Lisp is another dialecting language.

Unlike lisp, where everything looks like an s-exp, a Perl dialect will look ridiculously different from Perl.

Officially, I think we can recognize the following dialects of Perl

  • Perl[1-4] : the Perl that everyone hates
  • CPAN perl : a dialect of Perl, which emerged with maintainability, readability and reusability as the core concern. (The changes introduced in Perl5 started the dialecting trend in Perl)
  • Perl5.[10-14+] aka Modern Perl : another dialect of Perl, now recommended for both script writers and cpan users. Modern Perl is that which adhres to the Grammar Nazi.

Any code that passes through Perl::Critic and Perl::Tidy is a safe bet on robustness and clarity, which is an improvement over the earlier dialects.

With a couple of modules you can even write Perl like ruby.

Using BEGIN and END blocks you can write Perl like awk.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is run by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.