このページは大阪弁化フィルタによって翻訳生成されたんですわ。

翻訳前ページへ


Unicode and Passwords

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 (as Bobby for one reason why programmers have such bad password restrictions).

And that got me to thinking about Å, also known as U+212B.

Building a DevOps process using Meister and Perl

Tracy Ragan will give a talk at YAPC::NA 2012 described as:

Defining a build to deploy process that can easily be passed between development operations can be a challenge with the “one off” script. ?The scripts designed for the developers purpose do not meet the production control needs. ?Developers are looking for speed and agility, while production looks for audit and control. ?

This talk reviews how OpenMake Software leverages Perl to create a Smart Scripter language that can auto-generate build, test …

Module review updates

I've just updated the review of modules for defining constants:

  • 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 …
  • 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.

    With the perl compiler I can analyze code and dependencies at compile-time and strip unneeded packages.
    My recent concerns have been:

    1. Carp being used in the DynaLoader AUTOLOAD fallback, when a XS is not loaded give a full stacktrace.
    2. Carp checking for B being loaded and checking CALLER_OVERRIDE_CHECK_OK. This outsmarts the compilers which pulls in B at…

    The Case for Simplicity

    under

    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.

    Yesterday, in this staring match with myself, I finally blinked. I retrieved the old code, merged in a few of the newer niceties that I wanted to keep and moved the more convoluted deferred-row-op logic into a subclass.

    Here I announce the release of Tie::Array::CSV version 0.05; featuring simplicity in the base class and deferred row operations in a subclass.

    Its not the most efficient (read: fast) way to read CSV files and it doesn’t handle embedded newlines, but if you just want to act on a CSV file like a 2D Perl array (i.e. array of array references), give it a try.

    Fork Tie::Array::CSV on GitHub

    PS. Mithaldu, you can now pass a Text::CSV object (or subclass) to the constructor if you would like :)

    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.