Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery


by MidLifeXis (Monsignor)
on Jul 08, 2003 at 18:02 UTC ( #272364=user: print w/ replies, xml ) Need Help??

About the image

Interesting image taken "up nort'".

About me

My name is Brian T. Wightman. I provide technological solutions.


Org-mode is an emacs-lisp module that implements an interface to a file format that is essentially an outline on steroids. The file format is now being processed by languages and editors other than emacs.

I use org-mode as my GTD storage, work notes (bug tracking, project notes and planning, log book, run book), taking minutes for a board I am on, and consulting records. It is flexible enough to provide a framework that can be customized to allow many uses. I don't intend this to be a sales pitch, but am just a really happy customer :-).

There are some monks that use org-mode:

If you wish to be added to this list, please /msg me.

I am collecting a set of org-mode resources as well:

If you know of other resources (especially Perl), please /msg me.


I am currently looking for some sideline contracting positions for about 5-10 hours a week, remote and off hours. See my consulting link for more information.

I have experience with Perl, system administration, security administration, web administration, and other general system maintenance on many types of Unix. I have administered solo small (20-50 machine) Unix shops to working as part of a team in mid to large (100-500+ machine) size shops.

I am amazed, but I am past my 20 year mark at being paid for this type of work.

If interested, please contact me at consulting<at>wightmanfam<dot>org. Note: the address url is tagged, and will change over time as it is discovered by spammers. The displayed address will work for the forseeable future.

Interesting Links

Other Personal Links

Monks I have met in real life

This is a list of monks I have met in real life and where I met them. If you remember meeting me and are not listed here, remind me of where we met.

  • brian_d_foy - brian d foy - YAPC::NA 2012
  • dasgar - John Ellyson - YAPC::NA 2012
  • szabgab - Gábor Szabó - YAPC::NA 2012

Blog posts and responses

I will see how long this lasts


Contrary to some search results, I do not have a livejournal profile. That midlifexis is an unfortunate name collision, and appears to be quite a different person. The only valid location for this moniker is here on perlmonks This moniker is valid on sites listed in my Other Personal Links section.

Posts by MidLifeXis
RFC: (Do Not) Modify the System Perl in Meditations
9 direct replies — Read more / Contribute
by MidLifeXis
on Oct 16, 2015 at 14:39

    Update: Excellent points made in responses. A rewrite is in the works. Keep them coming.

    Perhaps this is a tutorial, or perhaps something that just belongs long term in Meditations, but my intent with this node is to document the arguments related to modifying the system's Perl installation, so that I don't have to lay out the argument every time it comes up in SoPW. There are some pro, and some con, but it seems to be, in my experience, that "Can't touch this", if given the choice, is the correct path to take.

    Some of the previous comments I have made on this topic can be found here: SuperSearch Preload

    So, without further ado, here are some arguments in favor of installing your own Perl (in no particular order):

    • Modifying the system Perl can break the OS.
    • Updating the OS can change the underlying Perl, breaking your application.
    • You don't necessarily have control over the system's Perl.
    • Updating the system's perl for application's needs can go against another application's needs.
    • The system's Perl may not be complete.
    • By packaging Perl with your application stack, you control the installed modules and toolchain.
    • It is easier to target a single Perl version than anything you might find on the OS.
    • Policy may disallow installing a "necessary" module on the system's Perl.
    • Your installed / updated CPAN modules may be overwritten (and downgraded) by OS updates. - Corion
    • You are (safely) limited to the module versions provided in packages by your vendor - Corion

    There are also some cons to installing your own Perl:

    • Your application distribution now requires or includes a separate Perl distribution.
    • Your packaging requirements are now more complex.

    In summary, unless you are writing an OS-level tool specifically for this platform, install a Perl version specifically for your own application's runtime stack.

    Anything else? (ed: updates tagged with author)


Named captures or positional variables in Seekers of Perl Wisdom
4 direct replies — Read more / Contribute
by MidLifeXis
on Dec 10, 2014 at 14:44

    I asked a question on CB today if the benefits of using named capture groups outweigh the overhead, especially from a maintenance view. Given the varied answers and opinions, as well as encouragement to make a post for a wider range of comments, I am posting the question here. Specifically, I am breaking an almost free form logfile format into tokens (FlexLM, for those that are interested). Each line in the log file may be in one of many different formats.

    The two general forms I am looking at are...

    my $re_foo = qr{ ... (?<type> ... ) ... (?<name1> ... ) }x; my $re_bar = qr{ ... (?<name2> ... ) ... (?<type> ... ) ... }x; my $re_all = qr{$re_foo|$re_bar}; if ( $data =~ $re_all ) { return { %+ }; } ...


    my $re_foo = qr{ ... ( # type ... ) ... ( # name1 ... ) }x; my $re_bar = qr{ ... ( # name2 ... ) ... ( # type ... ) ... }x; if ( $data =~ $re_foo ) { return { type => $1, name1 => $2 }; } elsif ( $data =~ $re_bar ) { return { type => $2, name2 => $1 }; } ...

    The first seems to me to be much more maintainable, even if performance is impacted a bit. What other opinions, comments, or concerns are there about this construct?


RFC: interface for a DBD::Proxy-like module client-side DSN in Meditations
No replies — Read more | Post response
by MidLifeXis
on Aug 14, 2014 at 09:22

    I made mention of this in the CB the other day, but didn't get many responses, so I thought I would ask it here to perhaps get a wider audience and set of responses.

    I am modifying a copy of DBD::Proxy/DBI::ProxyServer so that instead of specifying the entire server-side DSN on the client side, you instead specify a known name of a handle to a configured DSN on the server side. Using this and implementing the sql section of the configuration to another set of known queries would allow the client to use a DBI compliant data source without needing to have the server-side implementation details available. I am also looking to update the connection / user / query definition sections to make them more able to be isolated from one another.

    • Does a client-side DSN along the lines of dbi:Router:hostname=$hostname;port=$port;dsn=dbi:router:$remotename seem like a reasonable interface? [clarification: $hostname and $port are for connecting to the proxy / routing server, not the database -- that is fully configured on the routing server] Is there something (currently) better to base this on than DBD::Proxy/DBI::ProxyServer?
    • Does the name seem sensible?
    • Should I just try to incorporate this directly into the DBD::Proxy core itself?
    • Any other thoughts / previously invented wheels / ideas?

    The major use case I have for this is to standardize access to all of the little bits of information I have to use for my applications which currently exist in different data stores (CSV/TSV, SQLite, ldap, ...) in order to migrate them into a more manageable setup without impacting the application code. This type of configuration would also allow for the mockup of a testing set of data, migration to different platforms, ...


    • pgbouncer was mentioned as a similar tool
    • Added description of my use case
    • Added a clarification of what the host/port refer to


Felling a tree JAPH in Obfuscated code
2 direct replies — Read more / Contribute
by MidLifeXis
on Aug 30, 2013 at 10:28

    Still not a great JAPH, and it exceeds 4x79, but it is more obfuscated than yesterday's.

    # Cutting down a tree $t=t->p;$t->g;$t->f;sub t::p{@n=map{x($_)}'Just another Perl hacker,'= +~m/(.)/g; bless{n=>\@n},$_[0]}sub t::g{$_[0]->{t}=$_[0]->f(0,$#{$_[0]->{n}});$_[ +0]->{n}=1 ;$_[0]}sub t::f{($a,$b,$e)=@_;$m=int(($b+$e)/2);$f=$_[0]->{n}[$m];$l=$ +_[0]->f( $b,$m-1)if$b<$m;$r=$_[0]->f($m+1,$e)if$m<$e;bless [$l,$f,$r],'f'}sub t +::f{$_[0] ->{t}=1}sub x{bless \$_[0],"x"}sub x::DESTROY{print${$_[0]}}sub f::DES +TROY{$_[0 ]->[$_]=1 for(0..2)}


Destructive JAPH in Obfuscated code
1 direct reply — Read more / Contribute
by MidLifeXis
on Aug 29, 2013 at 10:48

    Starting my foray into JAPH to explore various aspects and corners of the language. Not necessarily obfuscated, but more using different aspects of Perl to accomplish the goals of a JAPH. 4x79 code max, Just another Perl hacker, output to stdout. I am hoping to explore a different technique each day, but it will probably devolve to one a week.

    This implementation is pretty obvious how it works, but it uses the DESTROY method of object destruction to output the characters of the output.

    @x = map{ x($_) } split('','Just another Perl hacker,'); shift(@x) while @x; sub x{ bless \$_[0],"x"} sub x::DESTROY{print ${$_[0]}}


Plugin Overwriting or saving keys in Algorithm::CheckDigits configuration in Seekers of Perl Wisdom
2 direct replies — Read more / Contribute
by MidLifeXis
on Apr 21, 2013 at 07:15

    Hi all,

    This is a redirection of RT Ticket 84769, which is my request for a patch to allow for plugging external modules into CheckDigits::Algorithm.

    mamawe, the maintainer of CheckDigits::Algorithm has raised a (valid) concern with my implementation, in that it implements a 'last-requested' short algoritm name to module mapping. The author wanted to take the discussion here for more visibility and input (if I am reading the last update correctly :-).

    This node is an anchor point for that discussion.


RFC: Algorithm::Damm in Meditations
2 direct replies — Read more / Contribute
by MidLifeXis
on Mar 17, 2013 at 09:36

    I have written my first module for community consumption, and am looking for comments:

    I am pulling comments into git issues, so if you want to save the middleman (or provide a pull request), feel free.


Coverage tool visibility within emacs in Seekers of Perl Wisdom
2 direct replies — Read more / Contribute
by MidLifeXis
on May 25, 2012 at 09:28

    I am starting to put together some code for an emacs module that peers into Devel::Cover reports along the same lines as rcov-overlay.el, but also linking in linum-mode.el instead of highlighting the code lines themselves. I will need to port rcov-overlay.el, and also add a Devel::Cover formatting module to output the JSON used by the rcov-overlay module. There is a compilation output report that generates output that an emacs compile buffer can use, but I would like to display it in the code buffer itself.

    I am searching for other prior art. If something like this already exists that I can just link into my toolset, great. If not, it is a small project to fill in my "spare time", and perhaps a positive contribution to the community. Does anyone know of any other prior art that has previously implemented this on the target platform (emacs + Perl)?

    Why? I have been a user of emacs since the early '90s, but I have not made use of the vast range of tools available to assist my coding efforts. I have recently started using ECB, unit-test.el (along with some custom save-file hooks), and a couple of other pieces of emacs glue (yet to be published), that have really allowed me to step up my game. I am also evaluating PDE, but have not had great results with it, as it seems to be very focused on the author's own development environment and process (not that this is bad, it just didn't fit into my toolchain).

    There are also the Devel::Cover::Report::Compilation module, allowing emacs to provide a compile buffer given appropriate file/line pairs to allow jumping to the offending line, and the Devel::Cover::Report::Vim module, allowing this type of glue within Vim.


    And yes, I am attending the Tweakers Anonymous talk at YAPC::NA 2012.

    Update: Added actual question, since the question was only implied.

    Update: Added json.el link, omitted from original list of emacs modules (thanks pvaldes).

    Update: Added links to other report types that are currently within Devel::Cover.


Current posting ability limitations in Perl Monks Discussion
5 direct replies — Read more / Contribute
by MidLifeXis
on Nov 09, 2011 at 14:15

    Due to the disruptive antics of certain visitors to the Monastery, most anonymous posting is currently blocked, as well as posting by monks with negative XP. This is a fluid situation -- these and other potentially heavy-handed actions may be employed or rolled back with little or no notice.

    Once things have settled down or when the round-tuits for the implementation of a more surgical approach have been obtained, this will be rolled back.

    The need for these measures is disappointing, but necessary.

    Update (2011-Nov-10): Thank you to all of the monks in the CB yesterday who proofread and made suggestions for wording.


Node edit and empty titles in Perl Monks Discussion
4 direct replies — Read more / Contribute
by MidLifeXis
on Dec 03, 2010 at 12:56

    I seem to remember (or perhaps my memory is wrong) a change on the new node creation code a while back to disallow empty titles. Would it make sense to also include this check when editing nodes? See node 87522 (currently [untitled node, ID 875222]) as an example.


Log In?

What's my password?
Create A New User
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (4)
As of 2016-08-27 05:47 GMT
Find Nodes?
    Voting Booth?
    The best thing I ever won in a lottery was:

    Results (378 votes). Check out past polls.