RSS

Monthly Archives: May 2012

jPOS and the next generation

Having worked in the POS and payments market for many years I’ve evaluated, worked with and recommended the jPOS toolset. On it’s own it provides a codec-like API for encoding and decoding ISO8583 messages. The API are generic enough and support all of the important variations and it’s user extensible when it does not.

The best part, however, is that they also have an EE-ish version that provides an almost complete solution for implementing your merchant gateway, acquiring processor or issuing processor. Don’t get me wrong, you still need to be an expert to implement one of these systems but the jPOS stack is going to give you a java-leg up.

In truth however, @apr is probably the best part of the offering. He has a keen eye for where he sees the project going and what features need to be added as it expands. He also knows what features should be left to the user to implement. And he knows how to communicate the system design as well as educate the user in how and where to implement the user’s code without effecting any sort of upgrade path.

I’m so fond of this system I which I had a language agnostic version that might be more like a meta programming or code generated version so that I could plug-in the target language ad-hoc. And if that was too much to ask, then I’d want a python version so I could operate in the same space and maybe get a little more productivity.

 
Leave a comment

Posted by on 2012/05/30 in architecture

 

Tags:

Will the real social network please standup.

My wife and I watched “Social Network”  the other night. I cannot say that I had a new found appreciation for Facebook after watching it. In fact the complete opposite.

If there is any truth at all to the movie then we, the rank -n- file investor, should have known in advance that Facebook stock was going to smell like a cow pie. I did not invest in FB for exactly that reason and I get a sense that my decision was well founded.

The one thing that the movie portrayed was that the Zuck was fast and loose. He had an itch and he scratched it. The IPO was no different when (1) his team hacked the button (2) got married on the same day (3) wore a hoodie to the even showing that he still has not grown up.

I do not know what the future holds for FB. It could end up being the Microsoft of it’s generation. But while The Zuck scored 1600 on his SATs I don’t think that qualifies him to run one of the newly richest companies on the planet. And I certainly do not trust him or his company with my personal information.

 
Leave a comment

Posted by on 2012/05/29 in Uncategorized

 

Python PEP-405 – virtualenv – like

PEP-405 is recommendation to include some virtualenv-like like functionality into the python stdlib. I suppose this idea might actually fly if python were driven from a single PYTHON_HOME or PYTHON_PATH env variable and for the most part it seems that PEP-405 suggests that potential.

It should be noted that this PEP was also endorsed by Ian Bikling the inventor of the proper virtualenv. –PEP-405

There is some discussion about backward compatibility but it is sort of vague and very mystical in a hand waving sort of way. One reason it might actually work well is that one application like the current virtualenv toolkit does not have to carry around all of the version info needed to work in each python version.

But let’s be clear. PEP-405 is not virtualenv. It is virtualenv-like. It is also approved for deployment in version python 3.3 and I do not see anything about back porting.

Virtualenv is a killer feature. If they miss the mark and abandon all that came before I hope that someone picks up the slack.

 
Leave a comment

Posted by on 2012/05/28 in architecture, Tools

 

Tags: , , , ,

You’re Fired!

There was a time when Donald Trump’s tagline really meant something. It meant that you were incompetent or you royally screwed up. It was a phrase that no one ever wanted to hear. And it was a Scarlet Letter that you carried from one job to the next.

However, in today’s politically correct and litigious workplace while you might be fired for doing something wrong you’ll never know about it and anyone checking your references will never get anything other than “yes, I can confirm that Mr Bucker worked for us from <start date> to <end date>”. If they said anything other than that they would be opening themselves up to a defamation lawsuit and those get ugly fast.

In countries like Sweden they have all sorts of laws to protect workers. Firing an employee in Sweden “for cause” is possible but it very hard. First there is the amount of documentation that is required. And even after that there is a period of required severance which can amount to a year or more (as I understand it).

There are a lot of reasons why employer and employee separate and only a small fraction are related to abject failure. I wish there were a survey on this. But the truth is you’ll never really know why unless someone tells you. And even then you’ll never know if that was the real truth or the truth that the someone was comfortable with. The only thing you’ll ever know is whether you resigned before the ink dried on the termination letter.

 
Leave a comment

Posted by on 2012/05/28 in for hire

 

Changes to this website

Just a quick note about some changes I’ve made to this website.

(1) I decided to change the name and sub-title. This side generally projects my experience and thoughts and while the title was initially acceptable and very web 2.0 it lacked a genuine description of the information I might impart.

(2) I removed the Box control in the sidebar and replaced it with a shared DropBox folder. I liked the Box control, however, it failed me when a colleague tried to download my docs. So that was changed. Hopefully DropBox’s site is stronger than the Box tool.

 

 
Leave a comment

Posted by on 2012/05/27 in Tools

 

One lost secret of Agile teams

I recently wrote about Agile Anti Patterns and as the sun sets tonight I started thinking specifically about Agile teams. Historically there have been times when individual contributors have excelled and then times when teams functioned better. But the point I want to make to management…

While there are times when teams function better than individuals the current research by Agile researchers who have a need and desire for Agile principles to be proven do not seem to take into consideration

For example:

(10 years exp * 10 members) is not equal to (2 years exp * 10 members)

but more interestingly:

(10 years exp * 20 members) is still not equal to (2 years exp * 10 members)

The one thing that most Agile project managers do not convey is that there is no substitute for individual maturity as a component of working on a team and there is also no substitute for experience when solving problems in the same problem space.

Consider this… 100 of the smartest college grads and maybe even PHDs from MIT are not likely to get a rocket like the Dragon to the ISS on the first try. While there may be some of these resources on the team they are not the driving force. I’m certainly not writing a $100 check for a grad student’s senior project let alone $10B to go into space.

 
Leave a comment

Posted by on 2012/05/26 in agile

 

Is it possible to be agile and an experienced Perl developer?

In the modern Perl book the author writes:

A Perl novice might multiply a list of numbers by three by writing:

my @tripled;
my $count = @numbers;
for (my $i = 0; $i < $count; $i++)
{
    $tripled[$i] = $numbers[$i] * 3;
}

A Perl adept might write:

my @tripled;
for my $num (@numbers)
{

    push @tripled, $num * 3;
}

An experienced Perl hacker might write:

my @tripled = map { $_ * 3 } @numbers;

As I look at these three snippets of code they all make perfect sense to me and while I very infrequently use the map function it’s not unknown to me. The reason I do not use it very often is for the maintainer’s sake. If I’m going to challenge myself to remember what or how I implemented something then why should I put that burden on the next person.

So the challenge is this. With an Agile team you can expect that the members are going to have varying experience. Will it help or harm the team of the expert programmers write expert level code or if the rank and file try to write expert level code? Will the team be so distracted with output based on experience that the team is generally distracted from the real mission?

What I’m suggesting is that there is a balance.

 
Leave a comment

Posted by on 2012/05/26 in agile, ProgLang

 

perlbrew and mojolicious

I’m not a fan of the guys over at mojo but it’s probably the better of the Perl micro-webframeworks out there. So I was curious if mojolicious was going to work with perlbrew.

The first thing I did was install perlbrew. There are several ways to do it. I decided upon the first option:

curl -Lk http://xrl.us/perlbrewinstall | bash

What I do not like about the above command is that the code is assumed to be good and safe. It would have been a little more helpful of the code were downloaded from CPAN.

Once the module was installed. I was directed to add a line to my .bash_profile and then restart my terminal session. Easy enough.

NOTE: I did not recall what the base version was so I edited the .bash_profile file again and commented out the line that I was instructed to include. Then I opened a new terminal session and executed the command:

perl -v

My default/host perl version was 5.12.3. And I wanted to install perl 5.16.0 the latest and current version of perl:

perlbrew install 5.16.0

Easy enough! At this point there was a message on the console that suggested a tail command that I could use to monitor the build. That was easy too. In the end it took about an hour or so and I had a working Perl 5.16.0. (feel the perlbrew doc for the interesting commands)

As a last step I wanted to see what was going to happen when I installed mojolicious, could it be installed in userspace, and which version was it doing to use. So I installed mojo:

curl -L cpanmin.us | perl - Mojolicious

I omitted the ‘sudo’ that the mojo guys recommended and it installed fine. But now the proof needed to be in the pudding. I created a hello.pl file:

use Mojolicious::Lite;
get '/' => {text => 'Hello World! ' . $] };
app->start;

Notice that I added the $] to the message. This is going to append the Perl version number to the end of the hello world string. The good news is that when I ran the application:

morbo hello.pl

and launched my browser, I received a message that told me I was using Perl version 5.16.0. Perlbrew was a success and so was Mojo.

 
10 Comments

Posted by on 2012/05/26 in Tools, web

 

Tags: , ,

Another killer app for Perl

I’ve written about perldoc and CPAN as being Perl’s killer apps. I’ve also written about Ruby’s RVM and Python’s Virtualenv. Now I get to write about Perl’s perlbrew.

I’ve been tweeting(@rbucker) with a couple of techies today s a result of a comment that one of the made. Something to the effect that virtualenv was going to be made a core python app. Suggesting that it was going to be rolled into the distro.

If you’ve been around a while and you have a little intuition… it should be going off at this very moment. I’m not going to go into the high level discussion that I had with these guys nor am I going to go into the micro details. What I will say, in summary, is that this is a very bad idea and as a result virtualenv should become very unstable as a result.

Which got me thinking about Ruby and Perl. On the one hand I know that Ruby has RVM but is there something for Perl? Yep! As I write this article I have installed perlbrew and I’m installing Perl 5.16.0 at this very moment.

I do not know anything about perlbrew at this point other than it seems to be installing Perl properly and in userspace where I want it. If all goes well and I have the required prerequisites all should be well in the next little while. I really like Perl and Python. The idea of dumping Python feel like jumping the shark. Perl-6 and Python-3 feel unnatural at the moment. I’m just hopeful that virtualenv and perlbrew can keep my world glued together until the rest shakes out.

 
 

Tags: , , , , ,

Killer new feature

I’m trying to locate an eBook called “Effective Perl Programming (2nd ed)”. It’s a fairly popular book with pretty good recommendations. But what has totally pissed me off is that the one site that I thought was legit, redirected me to one of two commercial sites that either wanted my personal information or wanted me to download their downloader. Can you say malware or privacy?

Boy it would be really nice of the search engines could filter these sites out of my results… and since Chrome is my browser if nefarious links could be removed or highlighted.

And while I’m at it I want some way to reject SMS messages from people who are not in my address book.

 
Leave a comment

Posted by on 2012/05/25 in Tools, web

 

Tags:

 
One Page Docs

Creating a library one page at a time.

One Page Bugs

Reducing the friction of writing and fixing bugs or features.

Follow

Get every new post delivered to your Inbox.

Join 223 other followers