Sunday Apr 26, 2009

Solaris job trends are up, and other observations about IT's future

A middle school telementor student is interested in pursuing a career in computer science. Her teacher asked the class to clip local job openings in their career choice. Since this isn't a terribly prosperous part of the U.S. midwest, I was surprised to hear that there are a number job opening. But the student learned that inexperienced but highly educated candidates were being brushed aside in favor of those with years of experience. How can I encourage a bright middle school student who intends to pursue an IT career, without being dishonest? I could mention the dearth of IT jobs in the midwest at the beginning of my career and the subsequent boom. I hope career counselors no longer channel students away from their talents towards the "hot job du Jour." My 101 computer science class began with a standing room only crowd, but by the end of the semester it had thinned considerably. Our teacher prided himself on his dropout rate!

I do see enormous untapped potential in IT. For example:

  • We've only hit the tip of the iceberg in the application of data mining to epidemiology, economics and security.
  • Much of the clutter of photos, DVDs, CDs and videotapes will disappear as soon as we can organize this data while keeping the MPAA and RIAA happy.
  • Governments, law, education and medical professions seem slow to adopt information technology. Prescriptions rely on handwritten records, Governments and legal professionals treat FAX (a technology which dates to the mid 1800s) is treated as a secure document transmission medium, while 128bit public key encrypted and signed email isn't!
  • Windows PCs still seem a painful hack. Having watched Microsoft Windows languish nearly a decade behind some alternative OSs (Solaris, AmigaDOS, OpenVMS, OS2, NeXT, BeOS), I have to wonder where we would be if antitrust laws had been enforced before it was too late for these companies? We wouldn't go wrong to redesign PCs from scratch.
  • IT has tremendous applications in transportation and traffic management. Why doesn't my car know what speed I should drive to catch all of the lights green? Why did it take the FAA billions of dollars and more than a decade to replace a dieing air traffic control system?
  • Take advantage of Internet ubiquity. Why are people building datacenters in places with expensive real estate and expensive non-renewable energy sources when Iceland and other places have abundant renewable energy and relatively cheap real estate?
  • Sun Ray has been around almost a decade now yet telecommuting is rare even for those in the IT industry.

These are just a few ideas off the top of my head, but imagine my surprise when, to illustrate data mining, I found's jobsite trawler which showed that jobs in Solaris are on the increase.

How could this be in this banjaxed economy when even Microsoft's Vista seems to have flatlined? Imagine what might happen when we hit the inevitable turn around. Few were prepared for this economic slump even though signs of it have been lurking in the shadows and blogosphere for years. Even fewer will be prepared for the coming boom in technology and eco-efficiency. I wouldn't be at all surprised if by the time this bright student graduates, recruiters will have to work very hard to get her on their team. The same goes for all of the extremely talented ex-Sun employees who've recently entered the job market. There is a very bright future ahead if we can get past these potholes!

Wednesday Feb 04, 2009

How to find the parent global zone

A few nights ago I encountered a problem which required me to find the host name of my parent zone. Solaris Zones (a.k.a. Solaris Containers) intentionally isolate zones from each other and from the root hardware which hosts the zone. But if the zones and the host are on the same network, there is a way. All zones which are hosted by a particular global zone will typically share the physical hardware address as the global zone. So:

ping the broadcast address of your local network.

arp -a | grep {the hostname of your zone}
Now arp -a | grep {the physical address you found}
This gives the list of the global zone and all of the hosted zones with the same physical network address.

Friday Dec 05, 2008

asc("") and printf("%s",NULL)

A few days ago I was reminded of one of the differences between Solaris and GNU/Linux which caused a few headaches for Sun's desktop team back in the days of GNOME 1.2. The problem is that while you can printf("%s",NULL); in most Linux distributions, doing the same in Solaris caused the executable to exit and generate a core. There were some debates about the correctness of each approach. Should the program crash to tell the developer that he shouldn't be trying to print a NULL string (the Solaris behavior) or should the program continue happily along printing a NULL pointer? I can see some advantages in both approaches I suspect this and other "Linuxisms" will end up in OpenSolaris simply because they make it more convenient for average coders to throw together a quick and dirty program or for someone to compile and run the thousands of source packages out there which (perhaps unknowingly) take advantage of this Linuxism.

But thinking about this reminded me of a similar "bug/feature" in my very first computer, the Commodore 64 back in 1982 when 64K seemed an unbelievably excessive amount of memory for a computer which cost only $595. The built in blitter and 4 channel 16 bit synthesizer made it a really fun computer for me to write simulations and sound generator programs for my father's physical science class. If you look closely at many of the programs which were published for Compute! and other magazines of the time, you might notice something strange. When a character was read from the user (e.g. via get (a$) ), the asc(a$) function would convert the character to its numeric ASCII value. But in the code you would usually see something like this:

n = asc(a$+chr$(0))

J64 java emulator

What is going on here? There was a bug/feature in Commodore 64 BASIC V2 which raised an "Illegal quantity error." whenever a null string was passed to the asc() function. The Commodore 64's 6510 processor had the unusual ability of being able to peek the ROM and write to shadow RAM which shared the same address space and then disable ROM so that BASIC was running from RAM. This allowed modifications to the BASIC interpreter. Jim Butterfield, a Commodore expert and author once demonstrated a one byte poke which fixed this asc("") bug. Ever since I learned of this simple fix, I wondered why so many BASIC's had this same one byte bug. The Commodore 64, Vic-20, Atari, Amiga, and at least some versions of the Apple and IBM PC Basic's shared this same bug! What was going on? Well, as it happens, a little company known as Microsoft wrote versions of BASIC for nearly all 8 bit computers of the 1980s and 1990s. Was this one byte bug overlooked by Microsoft and propagated to all Microsoft inspired codebases or were Microsoft's developers following the same purist philosophy as Solaris developers who assert that "good coders shouldn't pass NULL into string functions?" Either way, when such a company grows to what it has now become, it can decide that this one byte bug is actually a feature.

Thursday Apr 19, 2007

An economic analyst vs Microsoft Windows Vista

Lets face it, most operating system installers aren't fun. If Microsoft Windows weren't pre-installed on more than 90% of desktop PCs, I suspect more than a few PCs would be sitting at BIOS boot prompts. But if the experience of my favorite blogging economist is any indication, even when you have a monopoly and your OS is pre-installed on 90% of new PCs, you can still screw up the initial user experience. Michael Shedlock is a economic analyst with an interesting view on everything from global property bubbles to currency carry trades to the goofy and dangerous actions of the Federal Reserve board. But give him a new laptop with Windows Vista pre-installed and pretty soon there's blood on the floor (literally!)

[Read More]



« June 2016