September 2010 Archives

Chicago's Tech Scene: A Study in Contradiction?

| 0 Comments
| | | |
DSC01031

Image by pdweinstein via Flickr

One of the things that I have yet to get a handle on is the technology scene in Chicago. How can the country's third largest city, home to companies from Motorola to Threadless not have a thriving, engaging tech populous?  Why don't tech people think of Chicago along the lines of a San Francisco, Seattle, New York, Boston or Austin?

It's something I ponder once and awhile. Mostly I think we here in Chicago have an inferiority complex. Or maybe it has to do with that Midwestern work ethic, if we just work hard; the rewards and recognition will come on their own.  

I mean besides Motorola and Threadless, I can think of a number of established tech companies such as Abbott Laboratories, Tellabs and NAVTEQ. Or trendy web companies such as Orbiz, 37signals, Groupon and Grub Hub. And that's not including non-Chicago companies that have some sort of technical presence in the area, such as Google, BP or AT&T. Or the countless under-the-radar companies such as Orbit Media Studios.

Mix in top-tier schools in the region such as; Northwestern University, University of Illinois at Urbana-Champaign and the University of Wisconsin at Madison as well as federally funded research institutions Argonne National Labs and Fermilab and well, I think you start to see my point.

Thankfully, I'm not the only one who ponders why Chicago isn't seen as a tech city.

Insight Labs is leading a discussion in connection with midVenturesLAUNCH called "Not Being Silicon Valley" in which they ask questions such as "If Chicago were the new center of the technology world, what would it look like?" "What assets and advantages could we leverage to make Chicago the dominant technology powerhouse?" "What changes must occur to make the Second City number one for tech startups?"

Naturally my own answer jumps off with my thought that Chicago isn't seen as a tech-centric place to be, that there is no tech scene or as I commented, "I 'knew' going in that if I really wanted to make a career as a programmer I would end up working in Silicon Valley. Eventually I returned to Chicago (the Bay Area is damned expensive, even for a well-paid programmer) but even now I wonder if I'm missing on new opportunities by staying in Chicago."

More to the point of answering the question at hand, what changes must occur? I say understanding that we already have healthy technology assets, that opportunities do exist and a change of outlook is needed "to do a better job of recruiting and mentoring" in building a vibrant tech community.

What do you think?

Submitting a Perl module to CPAN

| 3 Comments
| | | |
O'Reilly created Programming Republic of Perl ...

Image via Wikipedia

Last May, I finally made available for download the first version of Webservice::Viddler on CPAN (Comprehensive Perl Archive Network) after having written about it in March. One of the reasons for the delay in making the packaged source code available for download had to do with one simple fact, the Viddler module was my first ever submitted for public consumption.


Now, don't misunderstand me, Webservice::Viddler is not the first Perl module I have ever written. I've been writing code in Perl for about as long as CPAN has existed. However, as is the case with my current work in PHP for Orbit Media Studios, most of the Perl code I wrote over the years was on behalf of a employer of some sort. As such the ownership of the code, and the right to distribute, rested with them, not me.


So then, why the delay? Well there are a couple of reasons. First of all, the code I posted in March was a proof of concept based on some work I did for Orbit at the time. While the basic framework of the module worked the "proto-module" didn't implement all of the functionally provided by the Viddler Web API.


Secondly, I needed to organize the source code for proper distribution on CPAN as well as get the packaged distribution uploaded and made available.


The Packaging

Before I did anything, I wanted to make sure that my module had all of the necessary files. In doing a little googling, I came across a blog post entitled Submitting a CPAN module which outlines the basic steps:


  1. Apply for an account on PAUSE (Perl Authors Upload Server)

  2. Organize your code

  3. Profit

Not too complex, granted, but organized how?


As the author notes there doesn't seem to be any "what the package must have" rules. However, as anyone who has worked with third-party Perl modules knows, there is an accepted process and organization of code that all modules tend to adhere to.


After a little more googling I came across module-starter, a handy command-line interface to a Perl module, Module::Starter, which does all the work of creating a base module for distribution. After adding in my code and documentation I quickly had something close to ready.


Close, but not complete. Besides making the package useful to install, I wanted to make the code useful to modify. For that I turned to perltidy a Perl script which indents and reformats Perl code to makes it easier to read and follow.


Great! Now here is where this can get interesting (and where a lot of suggestions, if not outright rules, do exist). If you follow the steps in the order above, good, because that means while waiting for a PAUSE account to come online1, proper considerations can be made for the naming of the module.


The Namespace

The PAUSE documentation On The Naming of Modules notes that "a module name must accomplish quite a bit in a few characters", such as provide context as to what the module does or problem it addresses. Also of importance is the fact that "once chosen, you rarely have the opportunity to change it after people start using it."


So a little careful consideration is in order.


Also, it is important to note that namespaces, by definition, are unique. Besides providing a singular meaning, the name cannot be shared with some other module, public or otherwise. As such it is recommend that PAUSE developers register the namespace of the module written. Again, this isn't a hard and fast rule per se, but a recommendation to avoid duplication and improve searchability.


That about covers the basics. Now, if you will excuse me, I need to take some time to address these test results.




1 The PAUSE documentation suggests allowing up to "three weeks for proceeding" but that requests a usually completed "within a week."

About the Author

Paul is a technologist and all around nice guy for technology oriented organizations and parties. Besides maintaining this blog and website you can follow Paul's particular pontifications on the Life Universe and Everything on Twitter.

   
   


Subscribe:
Add to Google Reader or Homepage
Add to My AOL

Add to netvibes
Subscribe in Bloglines
Add to Technorati Favorites

Powered
CentOS
Apache
MySQL
Perl
Movable Type Pro