MySQL repair or replacement on OSX Server (Yosemite)

ID-100264078

Another scratchpad post.  This one is a reminder of what I did to repair MySQL on OSX Server after the upgrade from Mavericks to Yosemite kinda broke things.

I was working to solve two problems: intermittent “unable to connect to database” errors on all our WordPress sites, and the dreaded “unable to update PID” errors when starting and stopping MySQL.

  • I think the “unable to connect” errors are caused by intruders trying to brute-force break the passwords on my (roughly 35) web sites.  This problem can possibly be cured just by doing the “tuning” steps at the end of the cookbook.
  • “Unable to update PID…” type problems are more symptomatic of a broken MySQL implementation and probably require the whole process.

None of these were terrible (a system-restart every few days kept things more or less in check) so I limped along for a while after upgrading from Mavericks to Yosemite, but it finally drove me crazy and I decided to upgrade MySQL and rebuild all the databases.

The cookbook

I tried several approaches and finally landed on one which I can reliably repeat in the future (as long as the good folks at Mac Mini Vault continue to provide their magnificent script).

backup:

I used backups from all sorts of places.  I thought I was being a little over the top, but things went wrong and I was really glad to have all these safety nets.  Here were the backups I had available:

  • Time Machine backups of the /usr/local/mysql/ directory
  • Pre-upgrade copies of the /usr/local/mysql/data/ directory (and their Time Machine backups)
  • Historical (nightly) MYSQLDUMPs of all the databases (and their Time Machine backups).  Use this command to write each database to a text file.  I have a script that does all 35 of my databases at once, every night.
    sudo mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

clear out the previous installation of MySQL:

This was by far the hardest part to get right.  MySQL doesn’t have an “uninstall” script and reacts badly when little odds and ends are left over from previous installations.  My OSX Server has been running MySQL since OSX Lion and there was a fair amount of cruft left behind that was causing some of the trouble.  Here’s my current list of things to move or remove (although not all of them will exist on any given machine):

  • move the old data directory (/usr/local/mysql/data/) to someplace else (yet another backup)
  • rename the old base MySQL directory (this is the directory with the version-number that the mysql alias points to – I renamed rather than deleted as a backup)
  • remove the /usr/local/mysql alias (it’s going to get recreated during the install, pointing at the new/correct base directory)
  • move MySQL.com out of /Library/StartupItems/
  • move My* out of /Library/PreferencePanes/
  • move My* out of your account’s /Library/PreferencePanes/  (I had two mismatched ones of these, one lurking in /Users/admin/Library/PreferencePanes that was really old)
  • edit /etc/hostconfig and remove the line MYSQLCOM=-YES- (If it’s still there — this was left over from the days when MySQL shipped as part of OSX Server)
  • remove entries for receipts for mysql in /Library/Receipts/Install-history.plist (I edited the plist with a text editor to do this)
  • remove receipts for mysql in /private/var/db/receipts/
  • remove mysql-related scripts from /Librarly/LaunchDaemons/
  • remove any aliases for mysql.sock from /var/mysql/, /etc/ and /private/var/mysql/ (I’ve had good luck leaving the directories in place and just deleting the aliases – ymmv)
  • If the Mac Mini Vault (MMV) script has been run before, here are a couple more things:
    • remove the MYSQL_PASSWORD item from the desktop
    • remove MySQL-install.plist from your /Downloads/ directory

install MySQL using the MMV script:

NOTE: the folks who maintain the script only support it for a clean install of MySQL on a freshly-loaded version of OSX.  So this cookbook is OUTSIDE the bounds of what they support — please don’t complain to them if things break.  Instead thank them for sharing this script publicly, and consider buying some of their services.

Click HERE to read an introduction to the script on MMV’s site

Click HERE to read the important documentation of the script

Last step:  change the MySQL root password:

sudo mysqladmin -u root -p'MMV-generated-password' password 'mypasswd'

MySQL should now be running properly.  I restarted the server to make sure MySQL started up on a reboot.  I also started and stopped MySQL a few times from the command line to make sure that the “unable to update PID…” problems were solved:

sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server start

I do NOT TRUST the MySQL preference-pane that is installed in OSX System Preferences and don’t use it – that may have been another source of dreaded “failure to update PID…” errors.  Just sayin’

import the databases:

I chose to rebuild my databases from the nightly dumps.  I tried various versions of “moving the data directory back and using the Update command” and had a rough time with all of them.  Besides, rebuilding the databases for the first time in many years seemed like a good housekeeping item.  I have about 35 databases — it took about an hour.  Note: change all the ‘mydb’ ‘myuser’ ‘mypasswd’ to values that match your environment.

  • Log into mysql as MySQL’s root user:
mysql -u root -p'mypasswd'
  • Create the databases in mysql using this command:
create database mydb;
  • Create a user for each database in mysql using this command (btw Sequel Pro 1.0.2 is crashing when it creates a user — a known bug, just do it from the command line).  Note: I’m assuming that you’re only using MySQL for WordPress sites like I am, and only need one user per database — this process will get a lot more tedious if you have multiple users per database.
grant all privileges on mydb.* to myuser@localhost identified by 'mypasswd';
  • Import the text-dump of each database into the newly-created empty one using Sequel Pro — File > Import

tuning:

Two things have really helped with the brute-force attacks.  Opening up MySQL a bit and changing a setting in PHP.

To give MySQL a little more oxygen, I followed the guidelines in a sample .cnf file that came with the Mac Mini Vault script.  I slightly changed the settings, mostly to make them conform to MySQL standards (I’m not sure whether this matters).

  • edit /usr/local/mysql/my.cnf and add these lines at the very bottom (these are just a starting point, feel free to fiddle with them a bit):
innodb_buffer_pool_size=2G
skip-name-resolve
max_connect_errors=100000
max_connections=500
  • edit /private/etc/php.ini and turn off persistent links.  Here’s the way my file looks right now:
; Allow or prevent persistent links.  
; http://php.net/mysql.allow-persistent 
mysql.allow_persistent = Off

Image courtesy of Stuart Miles at FreeDigitalPhotos.net

 

 

Online privacy tips

UPDATE March 2018: I just realized that I neglected to change this post to reflect my views about Facebook privacy.  Admonishment: delete the Facebook app on your phone – now.  Tip: turn off their apps, websites and plugins “platform” in their “Apps” settings section.  Don’t forget to use the tools listed below to block their pesky “share on Facebook” beacons and trackers on web sites — that’s how they collect personal data on people who aren’t Facebook subscribers.

UPDATE March 2016: This post was written in 2011, a more innocent time pre-Snowden.  I still run all this stuff, but recognize that these things won’t protect you from all the NSA attacks that have been revealed since then.  I’ve also added a broader workstation-security checklist at the very bottom of this post.

A friend asked Marcie about reducing her exposure to ads on Facebook and I decided to write up the answer as a blog post so it would be easy to send to others (and update with new stuff). So here is a list of stuff that I do — your mileage may vary.

I use Firefox as my primary web browser (and keep it up to date), mostly so I can add a gaggle of plug-ins.  Some of these are now available for Safari too.  Here’s the list (installing the first three will provide most of the benefit).

  • 1Password — a great way to manage a bajillion really-strong passwords on web pages, but costs (a little) money
  • NoScript — allows you to choose which pages you trust, and blocks Javascript on all the rest
  • Redmorph — my newest blocker, liking it so far [March 2018]
  • Privacy Badger — a good all-in-one blocker from EFF
  • BetterPrivacy — gets rid of “persistent” cookies that are used by lots of big companies (Google, Yahoo, etc) to track your behavior on the ‘net
  • Ghostery — same sort of thing that BetterPrivacy does, but gets rid of trackers that aren’t cookies
  • Adblock Plus — a plugin which, once you’ve subscribed to the EasyList USA filter, gets rid of all the ads on web pages
  • ShareMeNot — stops those Facebook/Twitter/etc. “sharing” buttons from sharing stuff until you click them
  • Web of Trust — take advantage of their huge database of “safe” and “unsafe” sites built by other Web of Trust users — like me.
  • HTTPS Everywhere — a project of the EFF to redirect to the SSH-encrypted version of popular web sites

I also have peculiar web-browser habits to further reduce the risk that corporations (or other bad-guys) are tracking me

  • I don’t log into any of the “big data” services (like Google, Yahoo, etc.) unless I absolutely have to and I log out when I’m done.  They track what you do while you’re logged in.  I just did a “What if Google Turns Evil?” podcast if you want to learn more about why I avoid Google services these days.  UDATE: See the “Divorcing Google” section below.
  • I don’t permit the web browser to “remember” any passwords — I use 1Password for that
  • I disable the “browsing history” feature, so the browser doesn’t remember where I’ve been in the past
  • I disable the “search” and “form” history features too
  • I allow the browser to “accept cookies” and “accept 3rd-party cookies” but I only keep them until I close Firefox, then all cookies are deleted
  • I have the browser open a blank page when it launches (just about every site plants a cookie when you arrive)
  • I disable Google and Yahoo in the “search” choices (they plant cookies when the browser starts)
  • I avoid putting cookie-planting sites (Google, Facebook, etc.) in the shortcuts bar (they plant cookies when the browser starts)
  • I elect to clear history when Firefox closes
  • I close and restart Firefox several times a day, especially after logging into Google, Yahoo, Facebook, etc.
  • I use the ICSI Netalyzr to check my DNS service-provider to see if they’re intercepting/redirecting some of my traffic (also good for all sorts of performance-improving stuff like identifying “buffer bloat”)

Facebook — DO NOT use their smartphone app.  If you have it, delete it.  It’s capturing all kinds of data about your phone calls and text messages on that phone.  I deleted that app almost immediately and have for years only used Facebook on my computer (and thus subject to all of the tips I’ve listed above).  Here are things you can do in your Facebook account.  As of this writing, these can be found in the “Privacy Settings” part of the “Account” menu — but they change things all the time, so look carefully.

  • I periodically run the “Scan for privacy” tool from ReclaimPrivacy.org
  • I’m pretty liberal with what people can see, but very conservative with what they can share about me with other people
  • I’m very aggressive in blocking applications — I try hard not to sign up for any applications and block them when they appear in my news feed.  UPDATE 2018: this is easier now — turn off the Facebook “platform” in Settings/Apps.
  • I am pretty aggressive about blocking “bozos” in my news feed.  I don’t unfriend them, I just block their inane posts.

Divorcing Google.  Inspired by this post about “Divorcing Google”, I decided to describe my replacements for all things Google — they’re very similar to his.  I too have pretty much completely weaned myself from Google, for the same reasons.  Here’s my “replacements” list.

  • Search — DuckDuckGo SSL
  • Mail/contacts/calendar — I run my own servers for these.  It’s a hassle but worth it to me.
  • Maps — Apple Maps
  • File storage — Dropbox

Broader topic: workstation security.  Tip of the hat to John Hoffoss for this link to a terrific workstation security checklist.

There.  That’s my list.

High Dynamic Range (HDR) Photography — a hoot!

img_2279and8mores

This is another one of those “document what I’m doing so I don’t forget” posts.  Thanks to Matt Walsh, I’ve joined the HDR cult.  This is some kinda fun!

First part of the project was to drop a copy of CHDK on my Canon SD 950 IS point and shoot camera.  Putting this free, open-source code on the camera is one of those projects I’ve been teetering on for a year or so.  But somehow it either felt Too Hard or Too Scary each time I approached it, so I procrastinated.  I finally did it and I wish I’d done it right off the bat.  Completely easy, completely safe, worked the first time.  So now my cheezy camera does all kinds of cool things — I can save RAW format files, I can put a histogram up on the screen, all kinds of neat stuff.

And one of the neat things I can do is have the camera “bracket” shots when it’s in continuous-shooting mode.  This is an essential part of the process of shooting these HDR photos — shooting a series of pictures that vary the exposure.

So here’s the series of pictures that went into that photo at the top of the page;

img_2275s img_2276s img_2277s img_2278s

img_2279s img_2280s img_2281s img_2282s

So there are eight photos, taken by holding the shutter button down and letting the camera just fire away.  The CHDK software takes the first photo at the best setting the camera can manage and then takes alternating lighter and darker shots until you stop holding the shutter button down.  You can tell the camera how much to increment the exposure — I have it set to 1 F-stop increments.

Click on the photo at the top of the page and you’ll see that there’s detail in the darkest spots and the lightest spots.  Pretty cool huh?  Well, I think so…

The software that does the magic is called Photomatix Pro.  You’ll see LOTS of cool photos and get lotsa info if you go to that site.  I think their stuff is way neat.  Here’s another one (I ran this one through the software before I bought it, so it’s got watermarks in it).

img_2257_56_58_55_59_54_60s

Same deal — click on the photo and you’ll get a bigger version.  Now here’s the deal — you’re supposed to take these pictures on a tripod (after all, you’re stacking 3 to 8 photos on top of each other, they better be lined up).  But the combination of the anti-shake in the camera and the image-aligning capability of the software means that I can get pretty good results from hand-held shots like these.  All of these pictures were shot without a tripod.  There’s a little trouble in there, but nothing that’ll bother me given what I do with my photos.

Here’s the sequence of shots that went into that one.

img_2254s img_2255s img_2257s

img_2258s img_2259s img_2260s

Mike’s Idiot’s Guide to the Truax Seed Drill

We planted the last prairie field this weekend — here’s Marcie’s post about the whole thing.

We rassled with the manual for the Truax Flex style drill — the model number of the one we were messing with was FLX-88, but I think these comments apply to any FLX model grass drill made by Truax. The problem I had was that the manual for that drill is written for people who aren’t idiots. The audience for the manual probably care about the stuff that’s in it, but all I wanted to do was hook up the drill, put seed in and plant. The manual doesn’t help with that at all, so this is my replacement — mostly for the next time I use the drill, but maybe it will help you too.

Puzzle Number One – What are the “transport locks” they’re talking about?

The manual has a dreadful picture (and only one) of the transport locks. So here are a few more, that make it obvious what’s going on.

This picture mirrors the one in the manual;

DSC00925

This picture shows the lock turned so that you can see it. Ok, so those have to come off before you start using the drill. Hook up hydraulics, raise the drill a little, take the blocks out. I get that.

DSC00924

Puzzle Number Two – Storing the trailer jack

Here’s just a stupid thing — I found it was a lot easier to rotate the jack and leave it on the drill than to pull it off. All the holes are set up for that. Here are two pictures to show you what I’m talking about.

Jack down;

DSC00937

Jack stored;

DSC00936

Puzzle Number Three – Making the drill actually work

I had a heck of a time figuring this out. Fortunately Dan Olson was home and clued me in. But the manual provided no hint. Here’s the deal.

There’s a little pin on the drive wheel that makes this happen. Here’s a photo of the pin the way we got the trailer. See? It’s pulled further out;

DSC00928

And here’s a picture of it in the position where the chains and gears and stuff will actually do something. It’s further in;

DSC00927

Here are pictures of the back side of the wheel that shows the opposite end of that pin. This first photo is in the non-engaged position (the one you would use to tow the drill to a new place). When the wheel goes around, the pin missed that ratchet thingy and as a result none of the gears turn;

DSC00929

Here’s a picture of the engaged position. Now the pin sticks out far enough to catch that ratchet thingy and the gears and bobbins and whatchacallits all go round and round;

DSC00930

Warning Number One — Check the seeding rate that the drill is set up for

Sheesh. We didn’t check this before we started. The lads at the DNR told us that the drill was set up for the lowest seeding rate, and we believed them. Not. It was set for the MAXIMUM rate, so we dumped about a jillion dollars worth of seed into about a quarter mile of furrows before we realized what was going on. Moral to the story — ALWAYS check.

Here’s where to look — behind this here silvery dingus. It swings forward;

DSC00931detail

Here’s the little decoder-ring that tells you which way the gears work. Ours came with the chain on the far LEFT set of sprockets. For planting prairies you’ll probably want them on the far RIGHT set of sprockets;

DSC00931

We tried the drill on the far right side for a while and concluded that it was too light, so we moved up one notch. Here’s a picture of the way we had it set up;

DSC00932

You change the chain by lifting that little idler-wheel up off the chain, fiddling with the chain until it’s on the right pair of sprockets and then moving the idler over so that it centers on the chain in it’s new position. This is a picture showing how the idler swings up away from the chain;

DSC00934

Warning Number Two — Beware of the “small seed” box, it overfeeds

We wound up using the drill ONLY on fluffy seeds. The small-seed box fed the seeds WAY too fast, even on the slowest gearbox setting. If I wanted to make a lifetime hobby out of this drill, I would have fiddled with that adjustment too. But I don’t. If anybody has messed with that set-up and wants to add a comment to this, feel free. But we just skipped it.

Editorial Comment — None of this information is in the manual

I know that for farm-equipment hotrods, this looks like the ravings of an idiot. But me I’m just a weekend warrior and figure maybe you are too. In which case, this little write-up might save you some time and aggravation.

The big reward — here’s a picture of the field as I’m dragging the drill behind TracDor.

DSC00922

Winterize your RV — the easy way, no fittings required

This is a “winterize the RV” reminder post for me, and a “how to” post for you.

There are lots of articles out on the ‘net that talk about winterizing an RV. Most of them are repeats of the same article and, while the approach will work, it’s a lot harder than it needs to be. I learned this approach from the old codger that was minding the RV portion of WalMart when I went in to buy anti-freeze and a few parts. I was after a fitting to hook my air compressor up to the city-water inlet — he talked me out of that approach and told me this one instead. So I thought I’d share it.

Conventional approach;

– Blow out the water in all your plumbing with compressed air (requires a special fitting, and great care not to over pressurize your lines with the air compressor — no more than 25 psi por favor)
– Use the water pump to suck antifreeze out of the jug, either by disconnecting the line to the fresh water tank or by installing a T-valve that allows you to do this without disconnecting. Either way is a hassle, involving plumbing changes.

Old Codger Approach;

– Drain all the tanks.
– Put anti-freeze in the fresh water tank (using the sophisticated device in the picture below)
– Use the water pump to distribute the anti-freeze, without messing about with your plumbing

It worked great — took about 5 gallons of anti-freeze, but I was being liberal in my use since WalMart had it on sale for 2 bucks a jug. It took about 3 gallons to prime the water pump.

Here are pictures of the various bits, and after that is a detailed checklist (mostly so I remember what I did)

Picture 1 — Sophisticated device to insert anti-freeze into fresh water system.

The funnel is all chopped up because I also use it to change the oil in the PowerTrac and it needs to fit into a really tight space. I may splurge and buy a new funnel.

HoseToTank

Picture 2 — Hot Water Bypass

These valves on my RV are configured in the “normal” position in this photo. So water is supplied to the hot water tank from the fresh water supply, fills up the tank and the exits as hot water to the faucets. Turning all three valves 90 degrees bypasses the hot water tank (meaning that you don’t have to fill the water tank with anti-freeze before anti-freeze gets to the faucets). I let some anti-freeze go into the (previously drained) water tank before I bypassed it.

HotWaterByPass

Picture 3 — The drain plug on the hot water tank

Just a reminder — drain the water tank, put the plug back in, put some anti-freeze in there.

HotWaterDrain

Photo 4 — Water pump

See the connection between the water pump and the fresh water tank right behind it? That’s the one that I’d have to mess around with if I used the Traditional approach to all this. Some people would have you cut that short line, insert a T-valve that chooses between the fresh water tank and a hose that runs down to the anti-freeze jug. What a hassle. What a huge opportunity to introduce leaky joints in your plumbing system.
WaterPump1 01

Checklist;

Ok, here’s the step by step (so I remember next time).

Winterizing

– Drain everything (fresh water, hot water, gray water, black water) and then close them back up
– Pour 4 gallons of anti-freeze into fresh water tank
– Bypass hot water heater
– Turn on water pump
– Open faucets and toilet until they run pink (anti-freeze is pink)
– Drain gray and black water tanks again (probably don’t need to do this, but there’s a mix of fresh water and anti-freeze in there right now)
– Run some more anti-freeze into black water tank through toilet
– Run some more anti-freeze into gray water tank by pouring some into each trap
– Turn off the water pump for a second
– Un-bypass the hot water heater
– Fire up the water pump and let it put some anti-freeze in the hot water tank
– Turn off the water pump

Undoing the winterizing

should go something like this;

– Flush the anti-freeze out of the fresh water tank and, when the time seems right, shut off the drain valve and let fresh water accumulate in the tank — I dunno maybe 10 – 15 gallons
– Bypass the hot water heater
– Fire up the water pump
– Run all the taps and toilet until they don’t run pink any more
– Shut off the water pump
– Open the drain on the hot water heater, un-bypass it, fire up the water pump again, flush the anti-freeze out, shut off the water pump, re-install the drain plug, fire up the water pump and fill the water heater with fresh water (hot water taps should be open — they’ll start supplying water when the water heater is full).

Should be good to go at this point — I don’t see any reason to dump the gray and black water tanks, although I spoze you could as the last step. They’ll keep until the first time we’re at a dump station, at that point we can dump out the anti-freeze and fresh water that’s sloshing around in there.

Update — some months later (January, 2008)

All right!  It worked!  I just got back from a trip to Florida and can report that the plumbing worked fine after going through the “undo” checklist.

I can also report that this method sorta saved our bacon on the way back.  As we left 85-degree Florida, a huge cold snap rumbled through the Midwest and we realized it was going to be below freezing by the time we finished driving on the first day back (in Georgia!).  So in the mid-afternoon we pulled into an RV park, paid their $20 dumping fee, and did the “winterize” checklist before heading on up into frozen territory.   The nice thing about this approach is that you can do it without any tools, unlike the traditional approach.

So we’re all winterized again (which is good, ’cause the night we got back it hit 15 below) and looking forward to our next trip south.

Visualization techniques

This link is running all over the place in blogs that I follow. I’m sticking it in here so I don’t lose track of it.

Periodic table of visualization techniques

Completely nifty set of different ways to visualize information. I got lost in it for about an hour this morning. I sure wish they would put the graphics out in a list so I didn’t have to hover the mouse over them, but that’s just a nit. A great source of new ideas.

Domain-brokerage RFP

I have a gaggle of premium domain names I got a really long time ago. I keep coming up with ideas for them that are either late/lame or too hard for me to do. I’ve decided that the time is right to sell one and, being a structured RFP type guy, I decided to build an RFP to select the broker.

Here’s a list of the domains — I only want to sell one of them, but I’m going to let the brokers choose which one they want to sell so they can sell it into their strongest market segment.

bar.com — social networking, beverage industry, legal services

pub.com — social networking, beverage industry, publishing

grill.com — social networking, consumer products, humor

cafes.com — social networking, food and dining

place.com — travel industry, entertainment, social networking, Internet-destination

shelter.com — social services, social networking, consumer products, industrial products

I’ve prepared a couple of documents. Here’s an introductory letter (in Word format) that describes the process and timing in detail. If you’re thinking about bidding, you fersure want to read that.

There’s also a detailed vendor response document that I will cheerfully email to anybody who’s interested. The reason I’m not posting the response document to the web is to keep track of who’s inquiring so’s to make sure that vendors gets invited to the various events along the way. But if you’re just interested in a copy for any reason, feel free to ping me (everybody: put “RFP response” in the subject to get through the spam filter)

Here’s a timeline (see? I am into structure);

1/8/2007 Issue and publicize RFP
1/22/2007 Vendor conference call (at noon, CST)
2/12/2007 Deadline for proposal submission
2/19/2007 Interviews with finalists completed
2/26/2007 Negotiations with finalists completed
3/5/2007 Announce selection

Update:

Well dang. Looks like I threw a party and nobody came. Lots to reflect on in that, but the bottom line is that no brokers proposed. This isn’t the first time this has happened to one of my goofy ideas. It usually means I’m a little ahead of the market. So I’ll go figure out some other approach to this problem… I’ve got some good friends in a related field who bring a lot of marketing and sales savvy to the table — maybe it’s time to roll my own.

Further Update:

Ah! Frank Michlick wrote a piece about this little RFP over at his great DomainEditorial site. Here’s a link to his article about the RFP. Thanks Frank!

A great blog

Dang I like Guy Kawasaki’s blog. I keep sending snippets from it to people. And I keep finding myself muttering to myself “dang! I’ve said those exact words myself. Why didn’t I think to blog that.” Here’s the link to his Let The Good Times Roll blog.

Business types will like it. Non-business types, you might too — Guy’s a bit more well-rounded in his approach than the typical heads-down business blogger.

2 for 1 — a financial management checklist *AND* resource

I'm quite taken with this index of financial management articles in INC Magazine.

They have done a great job of breaking out the topics and, while the articles are a little fluffy for my tastes, they provide a great starting point for ideas if you're stuck. Here's an example — what about doing a “trial run” of your business (or business-function, or project-deliverable) before opening the doors? Read this article to learn more about a fella that did that very thing.

Handy info about blogging

I'm finding myself sending the same links and email message to people over and over, so here's a blog entry that covers the waterfront. Old hat for you experienced blog type people, this entry is for us newbies.

Bloglines is a great place to start subscribing to and managing blog/RSS feeds.

This page is where I've put some basic info about what RSS feeds are all about, and is also where you can find the link you need in order to subscribe to this blog.

RSS feeds are the Rosetta Stone that unlocked blogging for me and transmogrified them into something useful/powerful. I wrote this entry describing RSS feeds for PR folks to puzzle through some of the implications.

For the technical people, Xoops is the freeware that this blog is built in. It sits on top of two other powerful pieces of freeware — MySQL a very powerful database (competes nicely with the likes of ORACLE or Microsoft SQL Server) and PHP a nifty cross-platform programming language. That mySQL/PHP plumbing environment is a bubbling hotbed of great innovative software development.

Ah… a true pearl — management lessons from housework

This is an absolute gem by Hillary Johnson… The subtitle “It's time to throw Sun Tzu out with the trash” is what hooked me.

She's quoting from Cheryl Mendelson and Harry Bates' Home Comforts : The Art And Science Of Keeping House — which looks like a book to grab.

Sun Tzu wrote “The Art of War” and is widely quoted by management gurus as the font of all wisdom. Hillary blows that notion up in this piece, drawing extensively on ideas from “Home Comforts.” I'm not gonna extract the list, you have to go read this one yourself.

I spent a long time managing by avoiding the behavior of Dilbert's boss. Now I've got a new light to follow. Completely right on…

"Ten reasons why businesses fail" — More good things to watch out for

A good list posted by A.J. on the Value Management Partners site. Here’s a link to the entry. This is another list to re-check about every 30 seconds or so if you’re running a business. These issues can sneak up on you, and are lots easier to deal with when the problems are just starting.

Read on for AJs list…

10 Reasons Businesses Fail

Not controlling costs.
As soon as a business gets a little successful with a cash flow, they start spending money…frivilously: fancier cards, websites, and other marketing collateral. Add in fancier technology, extra people and sitting on their laurels, suddenly the positive goes negative. Along with costs…

Disregarding or misinterpreting financial records.

This works with costs in that if you can’t read your P&L how would you know if you have any money? On the other hand…

Inadequate accounting records.
You may know how to interpret your P&L and balance sheet, but you’re not getting the whole or correct picture.

Inviting fraud through poor internal control.

If you can’t read your records or are not getting the whole picture, you’ll never know what an accountant, bookkeeper or other employee may be doing behind your back.

Failing to aggressively sell.

Nothing happens until a sale is made.

Insufficient working capital.

No sales, too many costs, that counterclockwise circular motion begins.

Not carrying adequate and appropriate insurance.

Car accident, trip and fall, a minor mistake, they can spell doom when un- or under- insured.

Failing to adequately train and develop employees.

You have to show them what you want done! They can’t read your mind.

Improper strategic planning.

If your having any of the previous problems then you haven’t thought out a plan.

Not seeking advice or professional help when necessary.

You’re good at what you do. Don’t think you can do it all. Sometimes stepping back with a fresh pair of eyes can stop the downturn.

"Should we do this project?" questions

Johanna Rothman has a list of questions to ask when you’re contemplating the launch of a project — here’s the link.

This is a good complement to my Pretty Good Project Definition Worksheet which is a quiz I use a lot when chartering new projects. I may lift some of Johanna’s questions and add them to mine.

Read on for the list…

Is this Project Worthwhile?

Not all projects should be done. Some projects don’t even rate discussion. But sometimes it’s a lot harder to tell when a project is worthy and should be considered. Here are some questions I ask when trying to evaluate when a project is worthwhile:

  • What business need does this project fill? (Does the organization obtain value from this business need)
  • Is this project a strategic project for us? What makes it strategic? (Does the strategic reason behind the project change the importance of the project?)
  • How does this project fit into all the projects we’d like to do? (Does this project make sense for us to do?)
  • Have we done a project like this before? Were we successful? What did it take for us to be successful? Do we have any doubts about our ability to do this project? What are those doubts? (Are we doomed before we start?)
  • Do we have the staff or other resources to do the project? (If we can’t adequately fund the project, what should we do differently?)
  • What is the effect of finishing this project on time, not finishing this project on time, or not finishing the project at all? What ripple effect does this project have on others?

I supposed if I wanted to make this easier, I could have arranged everything in a table with a yes or no at the top of each column, and you could just mark yes or no. If you have enough yes’s, the project is worthwhile. The problem I have with that approach is that when I ask the first couple of questions with a senior management team, the answers aren’t always yes or no. Sometimes the business need is clear. Sometimes the strategic importance of the project is to have a small project to practice a new set of techniques on. Sometimes the time constraints make the business need clear.

If you use other questions, I hope you post them in a comment. Knowing whether a project is worthwhile is a huge part of management’s necessary decision-making. Because if a project is worthwhile, it’s worth funding, staffing, and moving along. If it’s not worthwhile, it’s worth killing — quickly.

A "watch list" for growing companies

Another one from Decker Marketing, this article is pointing at the Dando Advisors site, but i couldn’t find the original article on the Dando site.

At any rate, here’s a list of “business health” indicators. I’m loving this one. I recently had an experience in a company in which every single one of these red flags was flying. Ugh.

Read on for the list…

Dando’s Top 10 Watch List for Growing Companies

Wrong people in key positions. These include friends, family members or long-term loyal employees who are not qualified to occupy key positions.

Poor communications. Senior management feels it is losing control as a result of having less direct contact with day-to-day operations.

Vague hierarchy. Watch out that the leader’s role is appropriately defined considering the company’s size and leadership needs and the leader’s skills.

Bloated hierarchy. Too many people reporting to the president and/or other senior staffers. Thus, the senior management team really does not operate as an aligned team to guide, plan, lead and manage the company.

Management deficiency. There is not an aligned executive leadership and management team that is staffed with individuals who are proven and skilled at getting desired results with efficiency and quality; developing people to successfully do their jobs; identifying operating inefficiencies, overcoming obstacles and implementing the needed systems and structure to correct the inefficiencies.

Imprecise accountability. There is a lack of clarity for management accountability and design of specific data needed for creating accountability.

Poor rewards. There is lack of an appropriate middle and senior management compensation process that is tied to accountability and results.

Old habits. Accounting, financial performance reporting and control systems have become obsolete for the size of the company, and the complexity and level of information needed to operate a more sophisticated company. Sometimes old processes limit the ability to make hard decisions on a timely basis.

Careful growth. Diversification into products or businesses do not fit the company’s expertise and market experience, or acquisitions are made prior to the company being properly structured to integrate them.

Precise balance. The company is not properly balanced between marketing and sales. There is increased competition and a lack of planning to effectively react to the competition and the market.

Business recovery — putting things back on track

This article in the Decker Marketing blog lists ingredients for a turnaround effort. By my lights, these aren’t bad things to do in any project, not just the turn-around efforts. Don’t get me started about how so many projects are miserable just because people don’t run ’em well.

Read on for the list…

1. Get the right people together
2. Have a strong facilitator who owns the plan
3. Analyze root causes
4. Choose the levers that need to move to move the business
5. Identify what every and any team can do to drive those levers.
6. Focus them on these activities. Assert timelines and results for all initiatives
7. Report back soon on status and progress.
8. Have senior management present for accountability, if necessary.
9. Repeat until sufficient progress / trajectory is achieved.
10. Take a day off. You deserve it.