While finally getting into some more serious coding, I had this thought. THings you don’t hear very often anymore, but were pretty common back in the day.
“A snack? Sure, let me just start this compile running, it’ll hopefully finish by the time we get back.”
Compiles I’m running now usually take less than 6 seconds, sometimes a larger build and deploy and initialize may run for 10-15 seconds.
Ah the good old… days?
Category: Geekitude
Most marketable tech skills?
So while working with some other geeks this afternoon, the subject of Ruby on Rails came up. I’ve heard good things about it, but I voiced my skepticism about shelving my current workcycle (in Java) and learning Yet Another Language. I mean, how many folks can be looking for Ruby programmers nowadays?
Well. Gee. How many are looking? Good question!
So off to Dice, one of the better job / tech search boards out there, and I did a little keyword searching. The summary of what I found isn’t all that surprising, but still interesting…
Sampling 75,117 entries…
Keyword… Number of matches…
Java: 12210
C: 8235
C++: 6828
Basic: 6369
Perl: 3718
C#: 3516
Cobol: 1177
PHP: 639
Python: 383
awk: 138
REXX: 72
Ruby: 40
Pascal: 27
Lisp: 24
Interesting. How about platforms?
Keyword… Number of matches…
Windows: 10753
Unix: 11474
Linux: 4859
Mac: 461
VMS: 275
So apparently being a Java programmer on Windows is the way to go 🙂
Happiness is… and another reason why I love *nix.
… a successful off-site backup.
Now, to flesh out that commentary – most of our services are colocated at various Undisclosed Locations around the US (usually one door down from Dick Cheney). This means it’s sort of difficult to trot over to the machine, pop in a backup tape, make a copy, and toss the tape in the storage vault. Sure, colo facilities provide this capability, but it tends to be painful to work with, not to mention costing extra money.
With broadband now as widely available as sand, it’s possible to take on the concept really put forward 10+ years ago. “Why not back things up over the net?” When I was first approached with the idea (oh, 1995-ish), network connectivity was just edging out of dialup, and if you were SUPER lucky, you could have a T1 line, but it would most likely run you $800 a month. That sort of connectivity at home? Not likely.
Nowadays folks have DSL and Cable modems that have huge amounts of bandwidth. We’re no different here at Chez Geek, happily slurping at the nozzle from Comcast.
Last night I finished noodling a 4-5 line backup script that synchronizes various Important Directories [tm, reg us pat off] on our server (things like, oh, say, /home), and a spare 160gig USB drive I picked up at Microcenter for $80.
What does this have to do with Linux, I hear you cry? Because all of this was done with free software, and it did it fast and efficiently. Using the rsync utility, it takes one command to synchronize one set of dirs on one machine with another. It even compresses and optimizes the transfers, only copying those files that need to be updated.
So we have free software, cheap bandwidth, cheap disk space, and cheap hardware. It’s Geek Nirvana.
For the detail-oriented folks in the crowd, here’s the end result:
sent 3756414 bytes received 7763330071 bytes 530665.56 bytes/sec
total size is 13301911159 speedup is 1.71
That’s some nice throughput.
Firefox trick du jour: Blocking popups from plugins
Here’s a neat trick. Firefox has outstanding popup blocking in by default. I’m always amazed watching IE users as they close popup after popup, and take it in stride as ‘normal’.
Recently Firefox has started showing popups. The clever (?) ad writers are now writing their annoying functions in plugin-based languages, such as shockwave and flash. The page runs a flash program, which generates a popup. A popup blocker in HTML misses this, and you suddenly have a blinking bouncing button on your screen. Ew.
To tell Firefox not to allow popups from plugins, do the following:
- Type ‘about:config’ in your tool bar
- Right click anywhere, and select “New->Integer”
- Type in: privacy.popups.disable_from_plugins
- Set the value to ‘2’
Voila! The fellow who showed me this simply said “Hey, not my trick.” 🙂
Day 1 with an iPod Nano
For my birthday, my sister bought me a 2gig iPod Nano, the latest offering in the iPod line from Apple. I’ve never owned an iPod, and in fact haven’t really purchased anything directly from Apple for myself in perhaps 10 years. I’ve avoided them because I disagree with many of their business practices, but you can’t argue with the sexiness of their products.
At any rate, I found myself stuck with an Apple product in a Linux world. Of course Apple wouldn’t consider supporting Linux directly, so the question was, how was I to use my new little iPod with my Debian Linux laptop?
Found while doing some googling…
Found this quote in a thread on the MFC Professional site. The topic is “Will Java replace C++?” – the conversation is from 1996:
No way. Java is far to simplistic to compare with C++. Also, Java is too complex to be a threat to Visual Basic. I don’t really have much hope for the continued existence of Java over the long term. It will probably last a while, but eventually, it will be replaced by something better (easier to use) for common programming. Professional programmers will continue to use C++ (or some future COMPILED language) to do the heavy duty work. Java will go the way of SmallTalk, a niche product that won’t every really go anywhere.
For a second I was worried.
I really do enjoy working in the Mail / Calendar / Groupware application, ‘Evolution‘. It originated as a Gnome project, then went on to be taken on as the core of Ximian‘s operations. It continues now as a product from Novell, and is still free, clean, and rather a pleasure to use.
Every once in a while though, it throws out some very… strange things. Such as this ‘error dialog’ I just got while moving my laptop. I’m glad I wasn’t doing anything important. Success is apparently a problem!
Java vs Linux.
I need to slap in Java 1.5 aka Java5 aka… well, whatever the marketing weenies are using today on our colocated box. Because it’s… well… colocated, I naturally don’t have an console there. So I decide to run the installer anyway…
root@boomer:~/storage# ./jdk-1_5_0_04-nb-4_1-linux.bin InstallShield Wizard Initializing InstallShield Wizard... Preparing Java(tm) Virtual Machine... The installer is unable to run in graphical mode. Try running the installer with the -console or -silent flag.
Okay, that’s fair. So…
root@boomer:~/storage# ./jdk-1_5_0_04-nb-4_1-linux.bin -console InstallShield Wizard Initializing InstallShield Wizard... Preparing Java(tm) Virtual Machine... The wizard cannot continue because of the following error: Invalid command line option: console is not supported (1001) (403)
Just gonna be one of those days.
iPod nano. 2/4gig. LCD color screen. $199
Oh this is not good. Apple has announced the iPod Nano, a flash based successor to the iPod mini. Physically smaller, more memory, and with a SCREEN. $199 gets you 2gig, $250 gets you the 4gig version.
Some of the relevant specs:
- Holds up to 1,000 songs and full-color album art
- Only 3.5 x 1.6 x 0.27 inches and 1.5 ounces
- Bright 1.5-inch color LCD display
- Up to 14 hours of battery life(1)
- Apple Click Wheel
Shields… weakening… hull breach imminent…
Tip o the hat to Dr. Memory for the pointer. The rat bastard.
Nifty tool
I was hunting around for a tool that would let me do hierarchial diagrams, and auto-arrange them for me, doing path analysis along the way. I had used GraphViz before, and while the end result was okay, it was totally a batch-driven application. Build the data file, feed it into the tool, it generated a graphic.
Enter yEd, a Java application that is fully interactive, and allows dataset editing, node and edge property modification, save/load styles and graphic exports. The blurb on the website says:
yEd is a very powerful graph editor that is written entirely in the Java programming language. It can be used to quickly and effectively generate drawings and to apply automatic layouts to a range of different diagrams and networks. yEd is available as a free download with unrestricted functionality!
The best part about it is it’s a pure Java Swing application, and it’s set up via WebStart, so to install and run it just takes a single click on the Webstart logo, no matter if you’re on a Mac, Windows, or Linux platform.
The program does has it’s faults. It crashes on a fairly regular basis (just plain quits without an error message). I’ve become fond of the ‘save’ button in the toolbar – I click it regularly to make sure my work is up to date. Other than that, this is an OUTSTANDING demonstration of a thin, portable, webstart-enabled, WORA application.
Familial Geeking.
One of the fun bits about having kids when you’re a geek is you can justify going back and playing with cool kids toys all over again. When I was a kid, (boy isn’t THAT a lead in), we didn’t have Rokenboks but I sure as patootie wish we did.
Zach and I spent 2 hours tonight setting up the layout again on the train table we had from back in the Brio days. This table is perfect for Rokenbok setups, because it has high sides and is a fixed physical dimension, so the layout won’t spread all over the place.
We have misc pieces from at least two starter sets, a couple bridges and roadways sets, and at least 2 elevators and mixers from pumping stations. We have 3 RC trucks (two loaders and a skipjack) and 4 controlers. It can make for quite a complicated setup.
It’s a great system and a great toy, and Zach and I love spending time together on it. I have great fantasies (!?) about getting a barrelful of rokenbok pieces and building huge structures all over the place. Doesn’t every kid?
The joys of Microsoft Exchange…
My friend unalmas is an Exchange master. She deals with horrific system issues on a constant basis. She documents one particular week long incident, which just drives home how much I love being a Unix admin.
A Rant. Linux Man pages vs Info pages
This one just bit me on the ass tonight.
Why is it that the Gnu Linux heads can’t understand that a single documentation format, one that has been in place since time immemorial, should be replaced by one that is inferior, annoying, and requires a whole new set of skills, JUST TO LOOK UP SOME TEXT?
I bring you the idiocy that is ‘info’. It is the grossest example of ’emacsification’ that is all too common place in the Linux world.
Here’s a real life example of this ridiculousness.
Today I needed to write a ‘sed’ script to do some line processing. No problem, I just need to look in the man page to see how to do a few things. But lo! The man page for ‘sed’ on my machine (Debian Sarge Linux) doesn’t have any useful information. In fact, it has almost nothing at all. It does, however, helpfully say, about line 30:
This is just a brief synopsis of sed commands to serve as a reminder to those who already know sed; other documentation (such as the texinfo document) must be consulted for fuller descriptions.
Very handy, eh? Fine, I just so happen to know that also later in the document it mentions ‘info sed’. Okay, so I type that.
The information I’m looking for is simply what the command line arguments are, and how to set pattern matches on substitution. The command info sed puts me… into an interactive menu system. Normally, ‘man’ pages are searchable by typing ‘/string’. So I type that. I am now on a page called ‘Less frequently used commands’. Very soon I am hopelessly lost in navigating screens and nodes and commands that have nothing to do with what I’m trying to do, which is simply get a command syntax.
Who POSSIBLY thought that translating the simple single page format of man pages, that every Unix admin on the planet knows how to use, into an interactive mini-Emacs session that requires a fair amount of knowledge on how Emacs works to work with makes ANY sense whatsoever?
Unfortunately, the people who make these sorts of idiotic decisions are the same ones that boot up Emacs and never leave it, and assume the rest of the world must know it as well. I have news for ya fellas, I don’t. And assuming that eveyrone knows how to use emacs, and therefore it’s okay REQUIRING an admin to use an emacs interface to view documentation is narrow sighted and ridiculous.
Stick with the known, standard, common formats. Emacs is not universal. Use the man page system that has been around since the dawn of time. There’s absolutely no reason to change it.
Well, if it’s gonna fail, make it amusing.
Friend of mine noted this, while troubleshooting a fiberchannel array attached to a Debian Sarge system:
linvfs_put_super: vfsp/0xf5b95400 left dangling!
VFS: Busy inodes after unmount. Self-destruct in 5 seconds. Have a nice day…
Debian Sarge FireFox Security update – UNSTABLE!
This is a fair warning to folks running Debian Sarge. Recently there was a security update of Sarge (aka ‘Debian Stable’) to bring Firefox to a package identified as “mozilla-firefox 1.0.4-2sarge2“.
This update is UNSTABLE. Loaded extensions (I believe) are causing constant segfaults in the application, and running with an empty profile (firefox -p, new profile), odd behaviour in certain mime type handlers is happening. Also, hitting ^H or viewing the history window causes an immediate segfault and crash.
I would recommend people running Debian Sarge NOT upgrade their install of FireFox until this is resolved.
Update: this bug is reported already in Bugzilla, but has not been addressed. The link(s) are:
Bug #324516 (^W crash)
Bug #324617 (History window crash)