Semantic Wave Blog
News feeds and commentary by Jamie Pitts
Login  

November 17, 2011

The Term "Modern" Quickly Becomes Passé

I think that the intention behind "Modern Perl" is very, very good. Chromatic solved a lot of problems just by the fact that he called it all... something. But I don't agree with the use of the term "Modern" because -- ignoring the blazingly obvious answer -- what do you practically call the thing after "Modern"?

What should happen is that the spokesperson for the avant garde -- not an appointed position -- should take a set of CPAN modules/versions, best-practices, etc. and wrap it up into something that can be easily installed by a novice. And then pitch it to the community, affix a clever name to it, write a book, etc.

Posted by Jamie Pitts at 9:35 PM | Comments (0) | TrackBack (0)

January 25, 2011

Rewriting Yourself Out of a Job

I just read an excellent article by Steve Blank about the dangers of Rewriting the Code.

I will add that being involved in a large code rewrite is also an excellent way to commit job suicide. I was phased out of my last job primarily because I bet the farm (at least my part of the farm) on a very complex architectural standardization effort. I enthusiastically followed what the team leader and a very prominent developer on the team wanted us all to do, which was as intricate and modern as perl5 can get. I chomped the bit and then got way in over my head while most everyone else continued working on incremental improvements to running systems.

As with working on any large project that does not have immediate business value, many aspects of a rewrite can attach a huge target around your neck. The political situation became as complex as the rewrite and I believe that putting all of my time into the rewrite (without hedging) -- and then defending my decision to do so -- ruined my position there.

In most organizations, a high-risk project like a rewrite might not be worth participating in unless you can get significant and provable buy-in from other developers on the team, not to mention political coverage from managers across the company. And if the support wanes, I would advise any developer stuck knee-deep in a rewrite to get working on something that is practical and much-appreciated.

Otherwise, the whole exercise can lose you your valuable time and energy, your mental well-being, your job, and even the friends that you made on the job.

Beware.

Posted by Jamie Pitts at 9:45 AM | Comments (0) | TrackBack (0)

December 12, 2010

MapReduce Using Perl and Gearman

Last week I gave a talk about processing data with the MapReduce framework using Gearman::XS and the gearmand server. Check out the pdf and demo code.

The demo code processes a small corpus of financial filings and is modelled after Jeffrey Dean's and Sanjay Ghemawat's original paper on MapReduce, entitled MapReduce: Simplified Data Processing on Large Clusters.

Also, here are the slides on sideshare:

Posted by Jamie Pitts at 1:45 PM | Comments (0) | TrackBack (0)

October 27, 2010

Giving a Talk About Gearman Tonight

I will be talking about Gearman and Gearman::XS at tonight's Ann Arbor Perl Mongers. Gearman is a very flexible job processing framework that I've been using lately. It will be a very short talk, followed by open, perlish banter.

A2PM: Gearman Talk by Jamie Pitts
10/27/2010 @ 7:00 PM
118 S. Main Street, Ann Arbor
Workantile Exchange conference room (http://workantileexchange.com/)

Posted by Jamie Pitts at 4:59 PM | Comments (0) | TrackBack (0)

August 29, 2010

Let Go of Your Advantages

Age-related discrimination is real and it is rampant in the tech industry. While many people get hurt by this sort of discrimination, it is simply the mundane outcome of rational, productivity-maximizing hiring and project assignment decisions in tech teams across the industry. Incentives drive the underlying behavior, and these incentives intersect with the natural short-sightedness, ruthlessness, and selfishness that exists in each of us.

Some of the decision-makers are aware of their discriminatory behavior, others are in denial. Often it is the nature of many engineers (who may find themselves in a leadership position) to also have a somewhat diminished sense of empathy, and this adds to the potential for all sorts of discrimination to occur.

Whatever its origin, this nasty environmental factor is not going to away without some serious social engineering. We can exploit it, or cope with it, depending on where we are in life. We can also try to kill it. And we should, because we are only getting older. If enough people change what they do, we can all collectively benefit.

Sort of like planting trees in our neighborhood.

Ridiculously, I first felt age-related discrimination when I was only 25. More recently, I watched one partner in a rapidly expanding tech company tell an unemployed 55 year old developer (who was asking about what kinds of people the company is looking for) that the company was looking to hire young grads from the university. While this was at an informal gathering of developers, the insensitivity of it was palpable.

But sensitivity does not help a tech company survive. The young programmer possesses a naivete and a drive to learn that is prized, and at a low price. The old programmer possesses an equally valuable experience level, but at a high price. The advantages and disadvantages of each are clear, but short-term answers to cost contraints rule over the long-term benefit of experience.

This is because experience can be learned, and naivete cannot. Usually.

If you are an aging programmer, get into the habit of unlearning. Stop being good at something old, and start being bad at something new. Take on what seems to be a stupid, newfangled technology that does not appear to be a better solution than the older solution (that you happen to know inside and out).

Let go of your advantages. And plant a tree or two.

Posted by Jamie Pitts at 12:00 PM | Comments (0) | TrackBack (0)

August 25, 2010

The Short of It: What Is Modern Perl?

I just used this term in an email and then looked it up. I was hoping to quickly find something brief but found a lot of references to chromatic's book (excellent as it is) and longer presentations. So here is IMHO the best, short description of what modern perl is:

Posted by Jamie Pitts at 7:38 PM | Comments (0) | TrackBack (0)

August 2, 2010

Joshua Schachter Raising Capital for New Startup

Good news for the perl community: Joshua Schachter of del.icio.us fame is organizing a new company.

Having cut his teeth in NYC finance tech, Mr. Schachter built del.icio.us in perl. I saw him speak at a Ycombinator startup school and this man is the quintessential Wall Street engineer: practical, tough, direct, and funny as hell. It is obviously too soon to tell whether he will use perl to build parts of his new venture, but he probably won't be using anything like Yahoo's php+c++ framework.

Posted by Jamie Pitts at 10:29 AM | Comments (0) | TrackBack (0)

July 24, 2010

Tim Bray on Perl

The original Desperate Perl Hacker reflects on perl.

But WTF is this talk about beleaguered status? I've been through the java jungle and ruby rockstardom and I've never been so fired up about a technology as I am about perl right now.

Posted by Jamie Pitts at 1:08 AM | Comments (0) | TrackBack (0)

July 17, 2010

Wordpress Themes: Don't Call Them Templates

Mark Jacquith does his best to make WordPress' "themes" look not only technically snaggle-toothed, but also GPL-poisoning. Why he and others in the WordPress community want GPL lock-in so badly for their theme-makers truly boggles my mind. So does the whole notion that API callbacks and shared memory represents some sort of ownership rights transfer.

It isn't correct to think of WordPress and a theme as separate entities. As far as the code is concerned, they form one functional unit. The theme code doesn't sit "on top of" WordPress. It is within it, in multiple different places, with multiple interdependencies. This forms a web of shared data structures and code all contained within a shared memory space.

Ah, yes, how wonderful, a web of sharing between you, your lawyer, and a lamprey with seventeen heads.

The WordPress community could use a good dose of TIMTOWTDI as embodied in MT's approach to contributions (and in perl in general).

Posted by Jamie Pitts at 5:01 PM | Comments (0) | TrackBack (0)

July 1, 2010

Eric Blue's Perl API to Being Healthier

We engineers need to understand how much sleep and daily walking exercise we're getting and Eric Blue has a way to do it: FitBit Hacks. He is now hosting his perl-based FitBitClient on github.

Posted by Jamie Pitts at 10:40 AM | Comments (0) | TrackBack (0)

June 27, 2010

Three Days in Columbus: YAPC 2010 - Day 2

My second day began with a Damian Conway talk about perl6. Here are tidbits from that and other talks:

  • perl6 allows you to define new language constructs and modify current ones. Damian Conway walked us through some conversions of his current perl5 modules to perl6 that demonstrated this in full. I was completely tripping out for at least 30 minutes after the end of that session.
  • You can use an apostrophe in a module name for effect because this is what :: used to be called. Hence, ACME::Don't.
  • perl6 needs a CPAN, or whatever they are going to call it.
  • Samy demonstrated how to build packet sniffers, ARP spoofers, and other useful utilities in perl... without depending on any c libraries. All who attended his talk bore gleeful looks of mischief as they walked out.
  • George Lakoff pointed out that we should should be saying that "perl is alive" (instead of negating a frame). Mr. Lakoff makes a good point, but the lame "perl is dead" frame is so widely believed that it can be effectively countered with direct force.
  • Perl needs marketing. Actually, CPAN needs marketing.
Posted by Jamie Pitts at 3:05 PM | Comments (0) | TrackBack (0)

June 23, 2010

Three Days in Columbus: YAPC 2010 - Day 1

Columbus, Ohio is a college town that reminds me a lot Nashville, Tennessee where I spent Summers growing up. Like my childhood Summers, YAPC 2010 was a learning experience. And the beer was good, thanks to the generosity of fellow perl mongers!

I went to a lot of talks and found out many interesting things. Here are some tidbits:

  • Tatsuhiko Miyagawa's starman web server has lots of potential in the high-performance space.
  • Installing your cpan modules in your home dir using local::lib is gaining acceptance. Why did we ever need to talk to the sysadmins to do perl dev?
  • Doh, I should have built my mega API project using Catalyst::Controller::DBIC::API
  • CPAN development is a lot easier now with Dist::Zilla. It uses a set of configurations and plugins to version, pack, and upload your module to CPAN.
  • perl5 is brimming with new features, and so is cpan. A few of my favorites:

  • perl6 rocks
  • today's perl5 and cpan are a good way to learn perl6.
  • Human processing: don't over-engineer something that can be done by an hour of repetitive work using the world's best computer.
  • DBIx::Connector looks like a nice alternative Apache::DBI except that it does not require a mod_perl container. It does not cache the connection, just makes sure that it is available.

Ok, well, that was day one. I'll add more tomorrow...

Posted by Jamie Pitts at 10:37 PM | Comments (0) | TrackBack (0)

June 2, 2010

Perl Upgrade to Semantic Wave

I just upgraded Semantic Wave to use a more recent version of Movable Type, and also folded in some Catalyst/DBIx::Class integration. This means that there will be no more serving of MT output using JSP pages, although apache will continue to respect old links ending in jsp.

These subtle changes should put me in much better form for the upcoming YAPC 2010!

Posted by Jamie Pitts at 11:05 PM | Comments (0) | TrackBack (0)

Small picture of Jamie Pitts
Jamie Pitts

Facebook
LinkedIn


Projects

  Winnow My Bloglines Down
  Memecat
  TigerLead


Curently Reading

cover The Art of Unix Programming
Eric Raymond

Semantic People
Danny Ayers
Dave Beckett
Tim Berners-Lee
Tim Bray
Dan Brickley
Marc Canter
Paul Ford
Seth Ladd
Seb Paquet
Clay Shirky
Roland Tanglao
Dave Winer

Syndication:
 RSS Version 1.0
 RSS Version 0.91


Categories

 AI
 Blogs
 Business
 Data Munging
 Databases
 Development
 Events
 Formats
 How-To
 Ideas
 Languages
 Law
 Ontologies
 OWL
 People
 Perl
 PHP
 Products
 Projects
 QOTD
 RDF
 Research
 Social Software
 SRM
 Standards
 Thinking Out Loud
 Trends
 Twitter
 Visualization
 W3C
 Web Services
 Wikis


Recent Entries
 The Term "Modern" Quickly Becomes Passé
 Rewriting Yourself Out of a Job
 MapReduce Using Perl and Gearman
 Giving a Talk About Gearman Tonight
 Let Go of Your Advantages
 The Short of It: What Is Modern Perl?
 Joshua Schachter Raising Capital for New Startup
 Tim Bray on Perl
 Wordpress Themes: Don't Call Them Templates
 Eric Blue's Perl API to Being Healthier

Archives
 November 2011
 June 2011
 April 2011
 February 2011
 January 2011
 December 2010
 October 2010
 September 2010
 August 2010
 July 2010
 June 2010
 January 2010
 April 2009
 April 2008
 March 2008
 February 2008
 January 2008
 November 2007
 October 2007
 September 2007
 August 2007
 June 2007
 May 2007
 April 2007
 March 2007
 February 2007
 January 2007
 December 2006
 November 2006
 October 2006
 September 2006
 August 2006
 July 2006
 May 2006
 April 2006
 March 2006
 February 2006
 January 2006
 November 2005
 October 2005
 September 2005
 August 2005
 June 2005
 May 2005
 April 2005
 March 2005
 January 2005
 December 2004
 November 2004
 October 2004
 September 2004
 August 2004
 July 2004
 June 2004
 May 2004
 April 2004
 March 2004


Creative Commons License
This weblog is licensed under a Creative Commons License.

Powered by Movable Type

Copyright © Jamie Pitts