01.29.08
Posted in Technology, MySQL at 9:35 pm by Stoner
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.
Permalink
01.28.08
Posted in Technology, Linux at 12:45 pm by Stoner
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:
- Which do you use? How do you evaluate and compare distributions?
- How is the distribution governed? Is it one or a few people “throwing darts at a dart board” or is there a formal governing body overseeing the project? How stable is the governing body? What are their motivations?
- What happens if support for a distribution falls off? Do you pick up maintenance? Do you switch? Do you do nothing and hope/pray that someone else will swoop in and pick up the maintenance?
- What happens if someone forks the code to implement a feature or fix you need? Do you switch completely to the new branch? Do you back-port the feature to the branch you’re on?
- What happens if a developer (either for the OS or in the company using the OS) dies or leaves for greener pastures? Who is going to take over their position? Will the replacement follow the road-map or take the project in a new direction?
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.
Permalink
12.14.07
Posted in Technology, Life at 1:32 pm by Stoner
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.
Permalink
12.13.07
Posted in Technology at 4:37 pm by Stoner
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.
Permalink
10.24.07
Posted in Technology, Linux, Life at 5:10 pm by Stoner
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
- what is an inode?
- what is a mount point?
- what is the lost+found directory?
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.
Permalink
09.17.07
Posted in Technology, Linux at 5:27 pm by Stoner
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:
- list the subscribers (by process ID and socket number (since an app can subscribe to multiple multicast groups)
- detach a subscriber from a group, something akin to “kill -9 PID:socket_number”
- see the traffic stats for each multicast subscription
Linux is definitely lacking in the multicast department.
Permalink
08.17.07
Posted in Technology, MySQL at 2:32 pm by Stoner
MySQL has a unique feature whereby you can select the storage engine for each table. If you don’t know what a storage engine is, it is responsible for managing the physical data on disk - from data files and indexes to the memory buffers used to access the data and the locking needed to prevent multiple people from clobbering each other’s changes. This is both a boon and a bane for Systems Administrators and DBAs.
It’s a great feature because developers, Sys Admins and DBAs can select the engine with the properties they require. For example, the InnoDB engine supports ACID-compliant transactions, foreign keys and row-level locking. The MyISAM engine, while being lightning fast on reads and supporting concurrent inserts, does not have ACID-compliant transactions or foreign keys and implements table-level locking. Other engines are available, such as memory-based tables, clustered tables, federated tables (reference a table on server B from server A) and more. This level of flexibility can’t be found in any other database server.
This flexibility comes with a stiff price, though. If you mix engines in a single database then you must be aware of several limitations:
- Foreign keys support in the InnoDB engine does not extend to other engines, meaning you can’t have a InnoDB-based table define a foreign key on a MyISAM-based table.
- Likewise, transaction support in the InnoDB engine does not extend to tables defined using another engine.
- Some buffers are engine-specific so you may need more memory than if you used a single engine for all tables.
Permalink
07.13.07
Posted in Technology, Life, MySQL at 12:04 pm by Stoner
Ok…I’ve been crazy busy with job and home stuff. Doesn’t mean I stop thinking about stuff.
- Do we really need another text editor/Personal Information Manager/MP3 player? I monitor Gnomefiles and Portable Freeware RSS feeds and I’m constantly seeing these types of apps being created, promising to be a better than anything out there with whiz-bang features not seen anywhere else. Got news for you, you aint showing us nuttin’ new.
- The First Bank of Delaware needs to DIAF for offering loans at 99.25% interest. That’s right, 99.25%! It’s done through their CashCall marketing arm. Yes. The one offered up by has-been Gary Coleman. They’re preying on people who can’t manage their money.
- MySQL-Proxy is damn cool.
- MySQL-Proxy combined with memcached rocks da bomb!
- Managing hundreds of servers with Microsoft Office documents and Microsoft Sharepoint portal totally sucks nuts. I’d rather slash my wrists with a dull blade, then pour salt in the wounds.
Permalink
06.20.07
Posted in Technology, Life, MySQL at 11:09 pm by Stoner
Been a while since I wrote anything…not for lack of anything to write, just real busy. I’m finding myself having to force myself away from the computer to maintain my sanity.
On the home front, I’m going to be installing a ceiling fan in the only bedroom that doesn’t have one. I had to go buy a metal junction box because all the boxes in this house are the blue plastic ones. That’s fine and dandy but I’m not going to hang a ceiling fan from one. Don’t know if I’ll need it but I also bought a brace so I can mount the box to a rafter if it isn’t close enough to one already. After that, I’m going to start ripping down the ceiling in the basement in preparation for remodeling it. It’ll be a nice mess.
Then I’m off to California for a week - business related. I fly out Sunday morning at 7:30 and fly back Saturday.
Attended a MySQL webinar (man, do I hate that word) on replication and scaling out MySQL. I’m very familiar with replication but wanted to see what the MySQL folks are up to. Also got approval (and advance payment!!!) for MySQL training in Washington, D.C. in July. I don’t have to fork over a couple grand and submit an expense report after - which is nice.
Someone implemented an idea I had been working on - namely backing up MySQL binary logs on a MySQL replication master server. I had a shell of such a script written in Perl - this guy did it in bash. Six of one/half a dozen of the other - I can just reuse his code and not reinvent the wheel. Open Source is beautiful that way.
Found two scripts for making practical sense of the MySQL “show status” command. Problem is, they generate flat, unparsable text and don’t retain the info for later trending. Pity. I’ve started work on that project so hopefully I can start to get a better understanding of how our MySQL databases are performing over time.
Permalink
06.09.07
Posted in Uncategorized, Technology at 3:01 am by Stoner
It seems that every day, Microsoft gives stronger and stronger evidence that they are bad for business. Bug and security holes in products aside, they are professional double-talkers. They either outright lie or say one thing then spew something else shortly after. It’s disgusting. Here’s a couple examples.
Microsoft has, for a while, been saying that Linux and other Open Source Software projects infringe on many software patents. They kept building up, hinting about possible lawsuits, etc. Then they finally broke out and stated that Linux and OSS violates 235 of their patents. They even break them out into general categories like email-related or GUI-related. But, when pressed for details, Microsoft claimed they couldn’t specify which patents because it would be too cumbersome, administratively, to collect that information.
Umm. Hello? If you counted them, then you already collected them into some tabular format. Otherwise, how could you count them? This is the type of bullshit business practices I’m talking about. Here’s another one.
Jamie Cansdale, of London, was awarded a Microsoft Most Valuable Professional award for his work on a product that allows developers to better test the program code they write. The product integrated into Microsoft’s Visual Studio product and was available for all versions of Visual Studio. Later, Microsoft started threatening him with lawsuits because they didn’t want his product to be used with their “Express” version.
What the hell kind of message is that? “We’re awarding you one of our most prestigious honors. Oh, and by the way, we going to sue you for making it available for all versions of our product.”
So, ask yourself. Is this the type of company I want to do business with?
Permalink
« Previous entries · Next entries »