Archive for December, 2004

An Evaluation of the Current US Technology Job Market

Monday, December 27th, 2004

1/31/2005 Update: You can see an updated version of the below job search here.

After playing around a bit at Indeed, a new job posting aggregator currently in beta, I decided to use it’s data to try out a job keyword search comparison for seemingly popular tech jobs. I just used a bunch of common words which I could think of to represent both languages and development platforms, both old and new. Some of the results might surprise you. If you can think of anything to add, let me know via the comments section!

DISCLAIMER: You obviously have to throw away the C, C++ and C# results as it looks like the ++ and # are being discarded as part of the search criteria. This is also not an exact science by any means obviously; it’s just an interesting way (which has been done many times before using other vehicles) to evaluate the current openings in the US job market. I’ll probably try running this test again sometime after the beginning of the new year as new budgets tend to add openings in the job market.

Programming Languages:

  • C: 79,711
  • C#: 79,711
  • C++: 79,711
  • Java: 44,195
  • .net (I suppose this sort of takes the place of c#): 40,060
  • Visual Basic: 15,948
  • Perl: 15,635
  • ASP: 14,560
  • VB: 9,711
  • ASP.net: 6,877
  • Cobol: 5,881
  • Flash: 5,543
  • PHP: 3,667
  • Python: 1,668
  • Cold Fusion: 1,651
  • ColdFusion: 1,461
  • Delphi: 850
  • ActionScript: 299

Platforms:

  • Windows (keep in mind this is a generic word.. there are contractor type jobs on this site too): 76,495
  • UNIX: 53,550
  • Linux: 18,634
  • Windows 2000: 18,389
  • Solaris: 15,665
  • Windows NT: 12,830
  • AIX: 7,138
  • Windows 2003: 6652
  • HP-UX: 3,204
  • Irix: 481
  • SCO: 344
  • FreeBSD: 236

So, as far as my opinion is concerned, here are a few interesting points which can be made from this data:

  • As primarily a ColdFusion developer at the present, I have to be glad I’m diversifying more into Java and other languages given the low number of CF jobs available. More jobs in Cobol than ColdFusion? Ouch! However, I think if you plan on being a good programmer, you need to have many tools at your disposal as sometimes you need a hammer, other times you need a rubber mallet. Being a one trick pony is a sure fire way to become more and more invaluable in the job market over a given period of time.
  • There are more Perl jobs than ASP or PHP.. interesting. Though, I’d imagine there are a lot of Sys Admin jobs which list Perl.
  • There are more Linux jobs than ones listed with Windows 2000 or Windows 2003? I find this to be extremely interesting and positive.

Creating Windows Applications With Python

Sunday, December 26th, 2004

FINALLY! I’ve been looking all around for how people are creating working standalone applications in Windows using Python, and I do believe they are using Py2Exe. This is some pretty impressive stuff I think:

How does it work?

py2exe uses python’s modulefinder to examine your script and find all python and extension modules needed to run it. Pure python modules are compiled into .pyc or .pyo files in a temporary directory. Compiled extension modules (.pyd) are also found and parsed for binary dependencies.

A zip-compatible archive is built, containing all python files from this directory. Your main script is inserted as a resource into a custom embedded python interpreter supplied with py2exe, and the zip-archive is installed as the only item on sys.path.

In simple cases, only pythonxx.dll is needed in addition to myscript.exe. If, however, your script needs extension modules, unfortunately those cannot be included or imported from the zip-archive, so they are needed as separate files (and are copied into the dist directory).

Attention: py2exe tries to track down all binary dependencies for all pyd’s and dll’s copied to the dist directory recursively, and copies all these dependend files into the dist directory. py2exe has a builtin list of some system dlls which are not copied, but this list can never be complete.

I wish I’d stumbled across this earlier! I assumed I was going to have to munge around in Borland Delphi for a little pet project I’ve been considering, and bought a couple of books to learn more about it (since I’ve done some basic Pascal, but nothing past CLI apps). Delphi seemed to fit the bill for something which was compilable but didn’t have external dependencies on libraries, yet would not complicate things for a simple application like C++ would. Anyhow, it looks like I can skip that and go back to my favorite scriping language, Python, if I decide to end-up writing that particular tool.

Speaking of Borland, I wonder why they renamed themselves Inprise (forwards to borland.com), and then back to Borland? My guess would be that everyone still called them by Borland well after the name switch. Being a long time customer of theirs (I originally bought Borland Turbo C++ in the early 90’s from them in an attempt to learn it as an early teen without any other books.. that didn’t work out so well), I still find it silly that they even tried to switch from that name since it’s been around in the industry for quite some time.

And yes, it’s 3:20 AM on Sunday and I’m looking at geek stuff, but I’m on vacation dammit! I’m not too cool to admit that technology is my career as well as one of many personal hobbies.

How To Make Firefox Faster

Wednesday, December 22nd, 2004

I came across this link tonight, and it’s good stuff. After applying these items, I noticed a huge improvement of the speed which Firefox loads pages.

How To Speed Up Firefox (Helpful Vanity)

Posted on 12/12/2004 12:45:50 PM PST by KoRn

Here’s something for broadband people that will really speed Firefox up:

1.Type “about:config” into the address bar and hit return. Scroll down and look for the following entries:

network.http.pipelining network.http.proxy.pipelining network.http.pipelining.maxrequests

Normally the browser will make one request to a web page at a time. When you enable pipelining it will make several at once, which really speeds up page loading.

2. Alter the entries as follows:

Set “network.http.pipelining” to “true”

Set “network.http.proxy.pipelining” to “true”

Set “network.http.pipelining.maxrequests” to some number like 30. This means it will make 30 requests at once.

3. Lastly right-click anywhere and select New-> Integer. Name it “nglayout.initialpaint.delay” and set its value to “0″. This value is the amount of time the browser waits before it acts on information it receives.

If you’re using a broadband connection you’ll load pages MUCH faster now!

I was also reading somewhere (I don’t remember where now.. I restarted Firefox to check out the above changes) that you shouldn’t make the last “nglayout” change on OSX for some reason. But give it a try– you’ll like it! Of course this also increases the load on a given webserver as it gets more simultaneous requests per browser, but I’d say that the the speed improvement is worth it.

Soar Like an Eagle

Sunday, December 19th, 2004

Discovery has a few videos showing off some new mini-cameras that they’ve attached to a trained Eagle, so that you can get a “birds eye view” of an Eagle in flight. Very impressive.

Transparent SQL Server Encryption

Tuesday, December 14th, 2004

Handling encryption of SQL Server data on your own can get to be a huge pain, especially when someone starts asking for data out of the database such as “can you give me a report of all of our customers who live in a Zip Code beginning with 10 that have a Company name which starts with ra”. If you haven’t tried doing queries on encrypted data when the criteria you’re using to search by isn’t a primary key, the best example I can think of to describe how it sucks is that each encrypted column of data in the database is basically a primary key, and it’s impossible to use operators such as % or * to search this data.

I haven’t tried out any of these products, but they do look interesting:

DbEncrypt
XP Crypt
SafeJDBC

I’d be interested to try them out to see if they can actually handle queries using wildcards and other fun operators, but my guess would be no. I would also have to worry about the stability of a company selling a niche product like that. Why, you ask? Potentially you could be stuck with an unsupported encryption product which all of your critical data is encrypted with, and that would obviously not be a good thing.

Upgraded to Movable Type 3.12

Sunday, December 5th, 2004

I noticed that there was still a free version available of the latest Movable Type, so I went ahead and upgraded. Overall, I have to admit, I’m pretty underwhelmed. I think my biggest gripe is that the subcategories implementation is just a hack as the parent categories do not inherit the entries of the subcategories below then. Whenever the next major version of WordPress is released, this blog is definitely getting moved to it.