02.08.08
My thoughts on the Superb*wl
Tom Petty and the Heartbreakers still rock.
The ravings of a keyboard cowboy
Finally got around to creating a project on Sourceforge: MyHelper. Right now, it’s just some stored procedures and functions for determining data and index sizes for databases using the MyISAM and InnoDB engines. Each one is individually licensed (using the BSD license.) I have 2 more stored procedures to add (return a list of tables with no primary key and a list of tables with the primary key) but I haven’t committed my changes to Subversion yet because I’m still testing them. I’ll be adding more code as I refine the stuff I’ve written over the years (their current state is highly environment-specific so I need to “genericise” them - if that’s a word.)
A word about licensing. I’m opting to license each script/procedure/function individually. This is because the project, as a whole, is made up of individual pieces that may or may not have a dependency on each other and the project is not a “software package” that you install and use. Each script, stored procedure or function may stand on its own and you have the option to use what you want. It’s an ala carte repository of stuff. Use what you want, leave behind what you don’t need. Putting a license on the whole package didn’t make sense given this distribution model so each has its own license.
So, if you develop with MySQL or manage MySQL databases, check ‘em out and let me know what you think.
Open Source means freedom. Freedom to change the product to do what you want it to. Freedom to make your version available to others. Freedom to integrate your changes back into the original. This freedom doesn’t come without a price.
That price is proliferation and decay. I’ll give you a prime example, the GNU/Linux operating system. DistroWatch watches over 350 Operating systems (some are BSD and not GNU/Linux - getting exact numbers isn’t important at this time.) Some are geared toward specific uses, such as use as a firewall, use as a forensic analysis toolset, use as a data center server system or use as a desktop system, to name a few. The problems become evident:
These are not easy questions to answer. For small and mid-sized businesses, they may be forced to stick with the 800 lb gorillas. Going with a smaller or lesser known distribution may be too much of a business risk. If the 800 lb gorillas don’t offer what you need and a less-known distribution does, do you take that risk? These questions aren’t limited to the operating system, they can be asked of any OSS project, like OpenOffice.org, Audacity, Apache, GNU Cash, etc.
Open Source is great at leveling playing fields, offering choice and spurring innovation but all that comes with a price that some may not be able or willing to pay. Choose wisely.
Why do people make a big deal about New Year’s resolutions? The percentage of people who keep their resolutions is absurdly low. You know people won’t keep them. It’s like this, people: if something is that important to you (loosing weight, quit smoking, quit drinking, quit/stop/whatever) then you’ll do it. If you need a once-a-year holiday to get up enough gumption to make a change in your life, then guess what? It isn’t that important to you and you will fail.
Stop fooling yourself. If you want to loose weigh, you will only loose weigh when loosing it becomes important in your life. You’ll quit smoking when stopping becomes important enough to stop.
Came across this article about people all up-in-arms over new Blackberries (Crackberries) their department is getting and how it’ll cross the home/work boundary. While some welcome the new devices, others are afraid it’ll lead to longer work days and such. They feel that a regular cell phone is sufficient for contacting people during off hours.
Here’s an idea: disable the features you won’t use or, if you can’t disable them, turn off the sound so that the only sound it’ll make is when the phone rings. Is it really that hard? Do I have to smack you with a 20 pound tuna? What a bunch of whiners. Seriously, go get some cheese.
Oracle - you suck!
A client I work with has an application that uses the Oracle JDBC/THIN drivers. Fairly common - everyone’s doing it these days. No biggie, right?
Now, before I get too much further, let me preface this by saying I inherited this environment. I did not set it up. Now that we got that out of the way, the client’s app works fine in staging, which has Oracle Client 10g (10.2.0.1.0) installed on it. It doesn’t work in production which has Oracle Client 10g Patch Set 2 (10.2.0.3.0) installed.
So let me get this straight. Within a major version, Oracle broke backwards compatibility with a patch? I can understand breaking things when going from 9i to 10g - but a minor patch?! It’s not like my clients are doing something funky with the JDBC driver…they’re using the published interfaces (ie. following the standard) and the patch broke their app.
Nice, eh? I got more!
Oracle has a component called Oracle Notification Service (ONS.) It’s a piece of “middleware” to use when you have an Oracle RAC database cluster and a non-RAC-aware program. Oracle RAC does require some special programming - you can’t just slap Oracle RAC in your environment where you had regular Oracle before and expect everything to work just peachy. I don’t care what Oracle says - they’re full of shit if they tell you that. So, it was determined by our DBAs that client needs to use ONS so their app will play nicely with RAC. No problem, right?
Go ahead and try installing it on Windows. The component is there in the Universal Installer. Clickly clickly. Slight issue: it needs to run as a Windows Service. Here’s the kicker: it wasn’t programmed to run as a Windows Service! There is no way run it as a Service, natively. I had to write a custom application and install the Windows Resource Toolkit (so I could use the instsrv and srvany tools) to create a ONS Service.
Oh and Oracle has no documentation about ONS on their web site. None. Nada. Zip.
Jerks.
I’ve been part of the crew interviewing candidates for Linux sys admin positions at the company. I’m surprised and alarmed at the number of applicants that can’t answer Basic Linux 101 questions. Things like
These are general *nix questions. They aren’t specific to a particular brand of UNIX or Linux distribution. If you don’t know these very basic things, you shouldn’t be applying for a sys admin job.
Home improvements suck only because they tend to cost money. Living in the sticks of Virginia, we risk loosing power for days while debris is cleared and power companies work to restore precious electricity. My solution to this dilemma was to buy a house generator. Not one of those wimpy roll-abouts with a 4 gallon gas tank and 2 outlets to keep the refrigerator running - we’re talking a permanently installed, propane/natural gas fueled generator that powers the whole house. Only two problems:
So, we couldn’t fuel the generator long enough to last an extended power outage nor power our primary heating source (we did have a propane fireplace in the living room.) Solution:
For those of you that have natural gas pumped into your house, a 45 gallon tank can be located next to your house but a 200 gallon tank must sit a minimum of 10 feet from any livable structure. That means trenching a line from the tank to the house, plus a large, white “pill” sitting in the yard looking all ghetto.
Ok. I can deal with the pill - just plant some shrubs around it to mask it’s hideousness. Trenching? There’s barely enough dirt covering the rock garden here to call it a yard. I’ll leave the trenching to the propane company. Too much headache for me. And a single propane fireplace won’t be sufficient so we opted to purchase another vented fireplace.
So, we now have a 2nd propane fireplace. This one is in the basement where the TV room is (going to be) and my office. With two fireplaces, we should have sufficient heat in winter if power goes out. A 200 gallon tank should last several days (even with the fireplaces going) as long as we conserve electricity by turning off unnecessary appliances during the outage.
Total cost, somewhere in the $12k range…I haven’t totaled everything up yet.
Multicast in Linux is a GREAT BIG BLACK HOLE. There is no suitable documentation on it. What I’ve found is many years old, for the 2.0/2.2/2.4 kernel tree or in reference to getting Linux to route multicast packets. The best doc I’ve found is by Juan-Mariano de Goyeneche - from 1998!
Additionally, there are little to no user-space tools for working with multicast. You can use ‘netstat’ to see what multicast groups the host is subscribed to and the number of subscribers…other than that, you are powerless to do anything. What would be nice would be tools to:
Linux is definitely lacking in the multicast department.
A while ago, I purchased a replica 1851 .44 caliber Navy revolver - a black powder, cap-n-ball revolver. I finally got to shoot it over the Labor Day weekend with my father. It was a pleasurable experience and it gave me a real admiration for the soldiers and officers who fought in the American Civil War. The effort that goes into loading and firing a cap-n-ball revolver (or rifle even) is tremendous!
A good soldier, with a reliable rifle, was able to load and fire 3 rounds in a minute. Considering how long it took me to load 6 chambers of my revolver using a pre-formed charge (no measuring required,) ball and wadding, then to put the caps on the nipples and finally to fire the weapon - I would have been counted among one of the dead. Of course, I experienced several misfires where the cap would go off but it wouldn’t ignite the powder in the chamber.
On the plus-side, out of 12 chambers, I managed to hit a target (8″ in diameter) 4 times at 25 yards, including 2 in the center bullseye. Considering it was my first time shooting that revolver and my first time shooting a cap-n-ball, I’d say it wasn’t too shabby.