Ekto gammit

Whenever I’m making a decision that I feel I am ’emotionally’ involved in, such as answering a question from my (almost 19 y.o.) daughter: “Do you like my new tattoo?” I’ve learned to try and ask myself a question before answering… This question has helped me enormously in my relations with others, and uncovered some startling facts about myself (startling to me, perhaps you would find them obvious).

Now, if I need to decide which screw-driver to use for a job, I consider that a relatively ’emotion-less’ decision, a decision not based on self, but based on more practical things such as a #2 Phillips for a #2 screw-head, a short one for tight spaces, etc., etc.

I try to ask myself: “Am I making this decision coming from a place of fear? Or love?”

If I ask myself whether I am making a decision based on fear, or love, I find myself regretting decisions much less. I experience less second-thoughts where I am arm-chair quarter-backing my past/recent decisions.

When answering my daughter’s question from above, my first thought is: “WTF? You got ANOTHER one? Why the hell do you keep doing this?” And yes, that would generally be exactly what rolled off my tongue, and I would often find myself apologizing for it later (I mean: C’mon, what benefit, for either of us, was gained by my saying that?).

When I ask myself that question before answering, in the example above concerning my daughter, I realize that first response is probably not coming from a place of love, And if it’s not coming from a place of love, there’s a good chance it’s fear-based. This might not make much difference to some, but I really don’t like the idea of fear having that much ‘control’ in my life. I like to think of myself as being able to go through life without acting as if each moment was a fight-or-flight survival issue. I am exaggerating, but it’s for a point.

The message that I think is more important, for my daughter and myself, is that I love her, and that there is a fundamental bond that does not deserve to be corrupted by my fear that somehow she is displaying the ‘wrong’ image (wrong being the image that my solitary experience dictates is not good, bad, cheap, etc., etc.), and that will reflect badly on me, her, and life as I live it in general.

So, regardless of what I am thinking, I reply: “Wow” And then ask about another design or placement. I’ll try to find something a shade less judgmental then “WTF?”

And I will sleep better. I will have more peace in my heart. In my younger years I had little value for either of those things; I lived a cheap life.

ColorZilla has the ability to work with Ubuntu, but not the way it is packaged. If you install the regular ColorZilla_1.x.xpi the library that does not work with Ubuntu gets installed and you get the ‘mode not supported on your platform’ error message.

The ColorZilla_1.x.xpi (both the one on Mozilla.com and the beta at iostart.com) comes with the needed library, it’s just a matter of forcing the correct one for Ubuntu. Here’s how I did it with the beta (kudos to SaltwaterC for pointing out that an .xpi file is just a renamed .zip file):

  1. Do a right-click and save so I could access the file locally.
  2. Open up ColorZilla_1.9.xpi with File Roller (Ubuntu Gutsy/7.10 default handler) and delete the /platform/Linux/components/ColorZilla.so file inside the archive and then just hit the ‘x’ (close button) on File Roller.
  3. Open up Firefox, open the Addons window, drag and drop the ColorZilla_1.9.xpi file onto the window, click install.
  4. Restart Firefox.

Yet one less reason to develop on M$.

After upgrading to WordPress 2.3 and trying to re-evaluate tag usage, I decided to re-visit an old pet-peeve of mine: The relatively massive (read: gi-normous) size of my wp_postmeta table. It was always the biggest table in my database (thanks to UTW), so whenever I was poking around in the database it caught my eye (it was over 5MB).

With WordPress 2.3 ‘tags’ are starting to be handled internally, and the need for UTW in it’s old form (rumor is it will be broken up into elements complementing WordPress’ new built-in tagging system) is no longer, so I got out the scissors and…

Taking a closer look, I had over 30,000 records in wp_postmeta that had a meta_key named _utw_tags_0. Amidst thoughts of how these records were somehow data-intercourse/sexing it up and reproducing like bunnies, I started warming up phpMyAdmin (does that behemoth take a while to start or what?).
Once phpMyAdmin was up, I selected my site’s database, then the wp_postmeta (the ‘wp_’ prefix is the default, if yours is different, adjust the SQL query appropriately) table from the list on the left side of the phpMyAdmin interface.

wp_postmeta SQL queryboxOnce you have the wp_postmeta table in front of you, click on the SQL tab at the top of the page and you should end up on a page with a large text box and a query already started for you. Highlight that text and replace it with:

DELETE FROM `wp_postmeta` WHERE meta_key = '_utw_tags_0'

You will get some sort of “Are you sure you want to destroy Planet Earth” notice, click yes.

I still had about 10 records with a meta_key title of _utw_tags_ so I used the same steps as above and blasted them with:

DELETE FROM `wp_postmeta` WHERE meta_key = '_utw_tags_'

This brought my wp_postmeta table down from over 5MB to less then 22kB. Can you say: Wheeee?

Between the theme change, settling into 2.3 final and trying to bring some style continuity from the new theme into my forums, there have been some short periods of down-time. Last night and this AM were more significant however, so I wanted to post some info:

Last night I made a ‘quick’ change to the site, adding a little code to my functions.php file and like an idiot I guess I didn’t check afterwards but just ran out the door (real life, what a concept). End result was that samdevol.com was down all night until I did a huge “DOH!” this morning.

I use PunBB for my forum, and decided to give it it’s own database. But until I went through the SQL code (my backup) and repaired it by hand, I couldn’t re-import it. The error I noted was:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

Apparently the same MySQL database that I exported from refused to accept the format it created. Specifically, where a field was empty (signified in my backup as , , [comma space comma]) MySQL choked on the import. I eventually did a search/replace and replaced all occurences of , , with , '', [comma space tick tick comma] and it finally imported without error.

I have discovered the import for punbb appeared successful, but it was not. Until I find some way to import it, the forum is back up with no old messages.

All user error, short-between-the-headphones stuff. Sowwy.

Now if I could figure out my database sync issue (every time I activate a plugin I get the Your database is out-of-date. Please upgrade. message).

A friend of mine approached me and asked about cleaning up a WWII era photo of his Father (Holtmeier) and other B-24 crew members taken in England in 1944. Unfortunately the photo was missing emulsion (the part of the print paper that actually contains the ‘image’) but I think the historical significance and character of the men (and the note on the back) more then make up for this.

As you can see from the finished photo (low-res here, for web display) I took the notes from the back of the photo and placed them to the right ((Willie Bardwell (Ala.), Joe Kinney (NY), Holtmeier (PA), Dick Kennedy (My radio oper., NY), Dave Fulton (VHF Relay oper., PA))).

Though I am happy with the results, that’s not the reason for this post. I did a quick search for the 489th (just curious) and found, amongst other things, the following information:

  • Constituted as 489th Bombardment Group (Heavy) on 14 September 1943.
  • Activated on 1 October 1943. Trained with B-24’s.
  • Moved to England, April~May 1944, and assigned to Eighth AF.
  • Entered combat on 30 May 1944, and during the next few days concentrated on targets in France in preparation for the Normandy invasion.
  • In an attack against coastal defenses near Wimereaux on 5 June 1944, the group’s lead plane was seriously crippled by enemy fire, its pilot was killed, and the deputy group commander, Lt Col Leon R Vance Jr, who was commanding the formation, was severely wounded; although his right foot was practically severed, Vance took control of the plane, led the group to a successful bombing of the target, and managed to fly the damaged aircraft to the coast of England, where he ordered the crew to bail out; believing a wounded man had been unable to jump, he ditched the plane in the Channel and was rescued. For his action during this mission, Vance was awarded the Medal of Honor.
  • The group supported the landings in Normandy on 6 June 1944, and afterward bombed coastal defenses, airfields, bridges, railroads, and V-weapon sites in the campaign for France. The 489th began flying missions into Germany in July, and engaged primarily in bombing strategic targets such as factories, oil refineries and storage plants, marshaling yards, and airfields in Ludwigshafen, Magdeburg, Brunswick, Saarbrucken, and other cities until November 1944.
  • Other operations included participating in the saturation bombing of German lines just before the breakthrough at St. Lo in July, dropping food to the liberated French and to Allied forces in France during August and September, and carrying food and ammunition to Holland later in September.
  • Returned to the US, November~December 1944, to prepare for redeployment to the Pacific theater. Re-designated 489th Bombardment Group (Very Heavy) in March 1945. Equipped with B-29’s. Alerted for movement overseas in the summer of 1945, but war with Japan ended before the group left the US. Inactivated on 17 October 1945.

It occurred to me that this was more then just an old photo needing re-touching, that there was a historical significance, if for no one else then the families and friends of these men.

If you are related to any of these men, or have any interest in access to the original hi-res digital photo, feel free to contact me.

More info (wikipedia) can be found here.

I have been meaning to post a note about some of the recent changes here, but have been busier then a long-tailed cat in a room full of rocking chairs (been dying to use that phrase for some time ;’)…

I’ve adopted a new theme called nobus, designed by Dezzain Studio. The UI is not too simple, not too complex, not too dark. The header is a bit tall, but I want to live with it a bit before attempting changes (the height did allow me to pretty much cut-and-paste some of my code/hacks into the header to retain functionality I desired (translation service, RSS icon w/out scrolling down, my logo and some quotes). There is a big difference in typography, not just style, but size and spacing. Feedback is desired/welcome about these (and any other) changes.

Some minor changes in functionality, testing new plugins (not just new to me, but new to WP 2.3 and/or the ‘world’), carefully applying some AJAX (less then 2% of my visitors have JavaScript turned off, but I do keep an eye on this and try to use JS that will degrade/fall-back to HTML behavior/appearance.

Posted here about using Zazz Post ticker. I have been keeping an eye out for something with this functionality over the last year or so, and everything I researched/tried was either too clunky/ugly or required more time to integrate then I was willing to devote. This one dropped right in without a struggle and styled up quite easily with a few CSS additions.

Some other new plugin additions:

  • DoFollow Using no-follow as a rule just doesn’t make sense any more, it should be the exception.
  • Enforce www. Preference I dropped the www NOTE: This plugin is now redundant with 2.3.
  • HeadSpace2 Experimenting with this meta-generator-on-steroids
  • Link Indication If we are going to put the control/decision about how links/new-windows are handled into the users hands, let them make an informed decision?
  • Nofollow reciprocity If I’m going to turn off no-follow, I expect you to, as well
  • Shutter Reloaded With all the different javascript libraries and resultant conflicts my lightbox/slimbox scripts started acting whacky. Just dropped this in and I’m ok for now ;’)
  • WP-Footnotes Because some of my posts just need footnotes.
  • Secure and Accessible PHP Contact Form Fianlly broke down and decided to try/test a plugin form solution

Some folks email me now and then about the quotes in my header, so just as an FYI: I use Quality Quotes, and the thing I love the most about this ‘yet-another-random-quote’ plugin is that it goes out and gets 10 quotes each day and then cycles randomly through them on each page refresh. So instead of hitting/depending-on some outside resource every time a page is refreshed on my site it’s cached locally. Fast, lightweight and independent.

Closing with one of my favorite recent quotes:

We can lick gravity, but sometimes the paperwork is overwhelming.
– Wernher von Braun

There are some basic steps you can take to help limit your exposure to malicious behavior directed at your WordPress install. My intention with this article is not to make your website bullet-proof (if such a thing exists) but to cover the most common exploits/weaknesses. File and directory permissions have been discussed elsewhere but I’ll post a reminder about the basic rule-of-thumb: Set files to 644 and directories to 755. If you have to use less secure settings (for /wp-content/uploads/ for example) you don’t have a good host.

Failure to do the following doesn’t mean your blog will be hacked, it just means it’s more likely. So here we go:
..Cover your privates (or: “Nice knickers there!”)…

  1. Delete unnecessary files /wp-admin/install.php and /wp-admin/upgrade.php ((Once you are finished with the installation or upgrade these files will not be needed and they will be replaced with your next install/upgrade))
  2. Delete default post and comment ((advertises “New Blog! Come SPAM me!”))
  3. Make it harder to reveal your SQL login info and help prevent users browsing where they shouldn’t: In your root directory (where wp-config.php resides) make sure there is a .htaccess file containing the following ((Turns off ftp-style browsing;Only recognize index.php index.html as legitimate index files;Don’t allow ANY remote access to wp-config.php)):
    Options -Indexes
    DirectoryIndex index.php index.html
    Order Deny,Allow
    Deny from all
  4. Change permissions for wp-config.php to 600 (equivalent to rw——-) if possible ((One of the few exceptions to the standard 644 rule))
  5. Prevent browsing of directories not covered by WordPress: Drop an empty (0-byte) file named index.html in /wp-content/plugins/ or /wp-content/uploads/ (for example) ((The reason we use .html instead of .php is in case PHP breaks on the server we’re still covered at the HTTP level))
  6. For SPAM prevention, activate Akismet ((Akismet is great at weeding out spam comments)) (comes with WordPress) and install/activate Bad Behavior ((Bad Behavior stops a lot of spam/malicious-activity before it ever hits your site)) These two plugins are the minimum in spam prevention in my opinion, but feel free to experiment on your own.

Other considerations for security are your choice in a host. I recommend a professional:

As always: Feedback welcome!

This began as a casual note, a reminder, if you will, to techsupport (at) text-link-ads.com. It escalated to where I wondered just how Text-Link-Ads (a MediaWhiz Holdings, Inc. Company) developed it’s hiring practices…

Having signed up I was directed to download a plugin for WordPress. I noticed it was a raw PHP file (rarely done because of character filtering/translating going between file systems), but I figured they must know what they’re doing (isn’t there a Murphy’s Law about that?). But once activated, their plugin spewed an error and deactivated (thank you WordPress, several months ago it would have killed my blog as their wasn’t any such ‘safety’ feature then). I took a look and realized they were making the common mistake of calling upgrade-functions.php (which has been on it’s way out since the 2.0 branch started and has only been included for backward compatibility).

I’m running 2.3b3 but I thought I should drop a note to Text-Link-Ads support and remind them. Shortly after I emailed them, I received this one-line response from Jonathan Dingman (Product Manager):

InLinks only works on WordPress 2.0 or higher.

Obviously I mis-communicated. So I wrote back that 2.3 > 2.0 and “If you’re not even going to check this, please pass it on to someone who will?” I got another quick response with two lines this time:

2.3 is not officially out and we do not support it yet.

It’s still in beta until the 24th of September.

Now, that last email from Jonathan Dingman was dated Sep 13, 2007, at 2:04 PM, 11 days before the ETA for 2.3. So I gather Text-Link-Ads has no concern over people already using their plugin who will upgrade to 2.3, but only those who may download the plugin after Sep 13, 2007.

Like Jean-Baptiste Emanuel Zorg said in The Fifth Element: “I know this music…”

PS: Received this from Jonathan Dingman about a half hour later:”After speaking to the lead developer, we are going to work on a fix for this and we will have it available before 2.3 is released.” Glad to hear somebody over there is on the ball. Or willing to play the ball. Or accept the ball.

I was thinking about a way to showcase older posts and happened across the Zazz Post Tickerplugin by Stew Houston.

I thought “Here we go, another chance for me to totally bork my blog with some unknown piece of code…” So I picked up the scissors and blah-blah-blah (you get the idea).

I took a quick look at the instructions (note that for historical purposes) and I didn’t see where I had to re-write my server’s kernel or edit core WordPress components and figured “wot the ‘ell”.

The good points: Easy to install, light-weight and does exactly what it’s supposed to do right out of the box (and that’s with WordPress 2.3-beta3). It’s easy to configure (though it does require editing the zazz-post-ticker.php file, it’s a simple, straight-forward edit), it doesn’t use tables (thank you, I’ve puked enough this week) and the CSS is not convoluted! It allows for changing the duration before fading, the number of posts and even allows for an offset (seems redundant to me to display post information that’s displayed an inch lower on the page so I liked this feature).

The bad point (singular, mind you): The javascript isn’t wrapped so it isn’t valid. But here’s a quick fix:

Open up zazz-post-ticker.php and go to line 30, it should look like this:
echo "<script type=\"text/javascript\">\n";

Create a new line under that one and insert:
echo "//<![CDATA[\n";

And right before line 139 which reads:
echo "</script>\n";

echo "//]]>\n";

Now you have a light-weight, easy to install/configure post ticker for WordPress that validates as well!

Feedback welcome.

Note: As of 10/29/08 it appears the author’s site is down, here is the v1.1 file: Zazz Post Ticker

Just missunderstood094.jpgreleased the new version (0.94) of the missunderstood theme. Some major changes, lots of clean-up, added functionality:

  • Built-in Optimal Title (for SEO)
  • Built-in slimbox (faster, lighter Lightbox effect)
  • Separate lists for comments and trackbacks
  • Fancier blockquotes
  • Built-in pullquotes
  • Prettier search box
  • Code-block style with numbers and zebra striping

A lot of generous people have brought my attention to problems with the earlier releases of missunderstood, and I’ve tried to go through everything with a fine-tooth comb. I tested this version in FireFox, Internet Explorer 6 and 7 as well as Opera. It is valid XHTML strict when used in a modern browser (read: anything other then Internet Explorer and that’s only because M$ couldn’t give a damn ).

Original post with more info is here. See a live demo here. Missunderstood has a Support Forum, and it can be downloaded from the original post or directly from here.

Feedback always appreciated…