Just a coffeeshop post

Greetings, fellow sensation-seekers!

I’m at a coffeeshop, armed with my favorite tactical field language composition and deployment vector (iPad Pro, Logitech K811 keyboard, 1st-gen TwelveSouth Compass stand) and with a Diet Coke serving as my phosphoric acid delivery system. I’m navigating that sensitive inflection point between “ready to start writing” and “ready to start writing something that will make me some money.” This translates to “How about a blog post?”

Congratulations to the #BringBackMST3K campaign, which raised so much money that the group had to keep adding on bonus incentive episodes just to ensure that the taps stayed open until time ran out. I’m pretty damned pleased that my pledge will help to bring digital downloads of 14 new shows, including a Holiday episode.

As promised, I will unbox the Cask Of Ancient Fandom. I wanna do it when people might be home to watch it on Periscope; given my schedule this week, that’ll probably be Tuesday night. I’ll record it for posting on YouTube. And just a reminder: I’m as keen to see the inside of that thing as you are. As you might be. Okay, I’m probably more keen, as I have a personal emotional investment.

Meanwhile, WordPress has released their annual update to their default blogging template. This one is a conventional one-column layout. I’ve played with it a little bit and it looks…nice. I might switch to it after making some tweaks to it. Ever since the Univision offer to buy this site fell through, I’ve remained convinced that the best solution for this blog is to let the good women and men of Automattic be my WordPress developers because I think they’re looking out for the best interests of the Web.

(Whereas all I’m looking out for are cheap and effortless ways to rip off Sixcolors and other tech blogs whose professionalism and value to readers consistently inspire and annoy me.)

You might have noticed a few recent blog posts that started off with Getty Images photos. I’ve decided to stop using them, despite how much I like that service. Their news and stock photo library is chockablock with great content. It’s easy to search, and embedding an image in a non commercial site like this one is free. Aha, but the free photo comes with a couple of ad trackers. Believe me, Gentle Reader, I will happily sell you up the river if it’ll put a Tesla in my driveway and I look forward to proving it in the fullness of time. But loading up the site with ad trackers just for a free photo or two seems like a bad deal for both of us.

I guess I’ll just have to make these posts more attractive by increasing the quality of the writing. Thus, I’m calling back the folks at Univision and seeing if they’re interested in making another bid to buy me out.

I’ve cooled off considerably since T* farted out his racist screed on Monday.

Jeez. I had had a wonderful day in the city. The weather was beautiful, I had a good meeting with interesting people, I got to go places in Boston I’ve somehow never been before and I took some great photos.

It was such a wonderful day that I chose to extend it a little. My meeting happened late in the afternoon and the location was just a block away from the second stop on the MBTA’s outbound commuter rail line. On top of that, I hit the streets at the perfect time to make the next train home. And yet, I decided to catch a later train departing from South Station, a mile or two away, and enjoy a nice walk through the Public Garden and the Common while the sun was setting and the holiday lights were coming on.

The last thing I did before boarding my train was to buy a bottle of soda from a woman who wore an eggshell-blue hijab. I sat down, snapped open the news app on my iPad, and read T*’s declaration that all Muslims at home and abroad were worthy of suspicion, based solely on their religion.

I really wanted to post something then and there. The words came quickly. I deleted them one more time than I typed them. I realized that I was speaking in anger, which would have been mighty hypocritical of me given what I’ve written and said in the past about the worthlessness of anger, and doing things just because it’ll make you feel better.

So. It is now a calm Andy who says that T* isn’t funny any more. He’s actively dangerous. Whether he actually believes this stuff or not is immaterial. I remain convinced that there’s zero chance of his ever being elected. What makes him dangerous is the Andrew “Dice” Clay effect he has on a certain segment of America: the kind who never find the courage to say what’s in their hearts unless they’re at a rally of some kind. The ones who won’t spray paint something threatening on a house of worship until they’ve seen that special act of craziness validated before, on the news.

That is, T* is a bozo. He’s done. He traded away a marketable B-list celebrity status for a year of cheers and the veneer of actual respect. I hope he’s enjoying his time at Disneyworld because we’ve seen this play out before. T* will go the way of all political celebrities who lack the skills, and the will, to become actual public servants. It’s a path to oblivion that winds its way through many stops at increasingly shabbier convention halls and political dinners, to diminishing crowds of increasingly crazy people, for diminishing paychecks.

(Oh, T*? The bill feeder in the oblivion breakroom soda machine almost never works. Stop by Rudy’s or Sarah’s desk…one or the other usually has a jar of quarters.)

But he’s energizing the types of yahoos who organize to prevent a mosque from being built in their county (mostly by showing up at public meetings and yelling). He’s emboldening politicians who will endorse any damn-fool idea if they think it’ll play.

I’m not even afraid of the people who genuinely hold opinions that I see as abhorrent. I worry about that category of folks who seem to exist as a flailing ball of anger with a Social Security number. The rage has to go somewhere other than inward, and it’ll latch on to whatever’s handy. They don’t believe in limiting access to immigration as a policy to preserve resources for existing citizens, or any reason that (right or wrong) at least sounds rational. They’re looking for something to be mad at or, better yet, someone to blame. And here’s this guy in a nice suit that everyone seems to be listening to. He seems to have done well for himself. And if he’s pointing the finger at a group of people, then the target must be a good one, right?

I can only hope that T* is having a different kind of influence on a different kind of people, in the same way that a terrible parent screeching at and belittling their kid in public inspires other overstressed parents in that same situation to dig deeper and find hitherto untapped reserves of patience. I hope that other candidates will see T*’s rhetoric for what it is, and recognize that this is not the person they want to be. And those aren’t the sort of voters they want to appeal to.

Okay. The clerks at the coffeehouse are bringing out brooms and dustpans. This is the first stage of communicating “You don’t have to work at home, but you can’t work here.” Time to pack up Lil and prepare for the remaining leg of my daily Constitutional.

I’ll only say this: I’m never writing the name of T* ever again. After all this time, I think I know that the only thing that can piss off a man like that is to not help put his name out there.

I’m also afraid that there might be a “Candyman” sort of thing where if I write his name a certain number of times in a row, he’ll manifest here. I don’t think I can stand the smell of that much cologne.

Howzit Ferbloggin

Yesterday I took the iPad Pro out on its first Away Mission. It was typical of how I use my iPads: I had dinner plans in the city, and decided to head in several hours early and do some work inside the Boston Public Library before relocating to a Panera a couple of blocks from the restaurant. It’s enough hours that I’d like to get some work done, but not a “real” work session that compels me to haul around my MacBook.

I missed MarsEdit. This morning, I set about looking for good iOS blogging apps. The last time I did so, I didn’t find anything I liked. The WordPress webapp is much more credible on the iPad Pro than it is on even an iPad Air, thanks to the larger screen. I might wind up sticking with that.

Still, fair is fair. I’m giving the official WordPress iOS app another try. It seems okay so far. But historically, the failure points of iOS blogging apps reveal themselves after I tap “Post.” Let’s see if it formats correctly, or somehow corrupts my whole WordPress database, or otherwise causes me to doubt my faith in a kind God and a just universe.

Incidentally, apps that haven’t been updated for the new OS in general and/or the iPad Pro specifically call attention to themselves. This WordPress app merely scales the standard iPad interface way the hell up. It’s what the iPad experience is probably like to a six-year-old kid.

Push the button, Frank…

The Comment Comment

A while ago, I turned off comments on the blog and switched to a feedback form sort of thing. My thinking:

  1. Sending me a comment in the form of an email would put people into the communication mode of “I’m speaking to this one specific person” as opposed to “I’m gonna light some bottle rockets because the echo in this quarry is going to be sweeeeeet!”
  2. I could hand-pick the comments I wanted all visitors to see, and post them as sort of a “letters to the editor” kind of post. (Or, to introduce the concept of productive thievery, do something like the Comics Curmudgeon’s “Comments Of The Week.”)
  3. And I wouldn’t have to keep policing the blog for spam. Some spammers manage to get through even various countermeasures I’ve got on the blog. It’s a drag. I don’t want this blog to be a drag.

But I forgot to turn comments off when I switched to this new theme, and therefore people are leaving comments, and they’ve all been thoughtful and respectful and have made me proud. So! I’m going to keep comments on and see how it goes.

All I ask is that you write as though you’re sending a private message to me and things will keep going great. I’ll probably create a page with a formal commenting policy when I get some time.


Welcome to another thrilling episode of The Blog About Developing A Blog. Special “I think I’ve got this licked, no really, I think I’ve got it” edition.

As you can see: the Celestial Waste of Bandwidth has a new theme. It’s in progress, but I like it a lot and it represents something worth writing about.

When last we talked about The Making Of The Site, I waxed emphatically about just flat-out robbing my friend Jason Snell blind. His Sixcolors blog was, and remains, an inspiration. It’s just so clean and friendly!

Now armed with a clear direction, I spent the remainder of the winter scheming to hire someone to do some WordPress building. The idea was to hire someone to take a basic theme or framework and turn it into the new CWOB by doing all of the CSS, PHP, and HTML mods to the theme that (collectively) sap my will to somethingorother.

Continue reading “Wakey-wakey!”

Spork, Sympathy, Lumia, Moto, Manifest, Vultures.

Through the interaction of a complicated array of sensors and indicators, a piece of hardware communicated an error condition that allowed me to quickly diagnose and solve a problem that would, if left unchecked, have eventually led to the failure of said hardware.

In plain English: “When the garbage disposal immediately made an unholy racket, I knew that a piece of silverware must have dropped down there.”

No harm done, in the end. In fact, the accident improved the utensil in a way that brought this geek some immediate joy:


It’s a Spock Fork. I herewith declare that the word “Spork” now applies to a conventional fork with this arrangement of tines and not any other thing. Live long and prosper, by eating lots of salads.

* * *

Shipped a review of Parallels Access yesterday. I had it ahead of the release day but couldn’t publish until Thursday. I was experiencing so many problems with it, and the price of this iOS app is so utterly insane ($80 per year!) that I knew that my review would be…dark. When one sets down the pot of honey and picks up the cruet of vinegar, he or she should be absolutely certain that they’re making the right choice.

I came home from dinner last night, still wondering if maybe I should have gone easy on this app.

Then I saw that the app had done this to my MacBook Pro while I was away:


And I felt a lot better.

* * *

I’m still working hard at getting my Lumia 1020 review out the door, as well as my Moto X writeup. The hitch with the Lumia piece is that I’ve been spending too much time writing it. I now need to convert the 4500 words that I assembled over three or four weeks into the 2000 words I would have written if, when I started the piece, I had three weeks’ worth of experience with the phone.

I kind of needed to hang on to the Moto X review until I got a chance to see Motorola’s Droid Ultra, which was released about a week ago. The Moto X was designed from start to finish after Motorola was bought by Google and the company received its new sense of purpose. The Droid Ultra is a legacy phone that merely benefits from many of the great ideas that became Moto X signatures (like the Active Display). By holding off for a week or two, I can now put those features in context.

And! I can show off the Moto Maker custom color phone that Motorola finally sent me. They had to kibosh the first one because they didn’t like how the engraving was coming out on the samples and decided to not offer that specific feature to customers until they’ve got it right. Fair enough.

They’re solid reviews and I’ll be keen to see how they play in front of an audience. I’ll be sooooo relieved when these finally ship! My brain tends to get locked into major projects and once they’re out the door, I can free up bandwidth for other things.

I did resist the impulse to drive to the Back Bay after dinner last night and take some nighttime tripod shots with the 1020. That’s a welcome sign that I’m not gripped in an infinite loop on this project.

(Or is it a sad sign that I had the power to end this madness whenever I wanted? That’s the kind of question that has a tendency to lay there and fester.)

* * *

Meanwhile, I sent a note of praise to Jim Barraud, the designer of the Manifest WordPress theme that I’m using here. He responded with an offer to let me beta test the new edition. Manifest is one of those “labor of love” projects and those kinds of things often wind up in a holding pattern until a Twitter DM from a slightly doofy tech writer makes you remember that you’ve created something that is both lovable and loved.

I’m very much looking forward to playing with his update. I’d been diving into the theme files looking for a way to add a custom header but now that’s not necessary; the new edition will likely support WordPress’ new built-in “any dumbass can add a header without editing the theme files” resource.

That’ll be welcome! Because a neat new header has been on my hard drive for about ten months, waiting for me to make time to redesign the site. “Labors of Love” and all that. Until then, I’ve just been tweaking the layout a bit and replacing fonts. I like the new headline font and am on the fence on whether or not I should find a spiffy new body font.

* * *

Last thought of this post: if I ever meet an alien who needs to quickly understand the nature of Human society in total, I know exactly what do to. I’ll tell him/her/it the story of how I arrived at one of my favorite independent stores the other day and, within the space of about three minutes, my thoughts went from “Oh, they’re closing their doors for good on Saturday! That’s terrible! I love this place and I’m going to miss it! I sure hope the owners are going to be okay!” to “I wonder if they’re taking offers on that utility table they’ve got behind the register…”

I can’t predict what an alien would do with this information but at least it’s honest and complete.

Tonight’s theme: “Frustration”

I’ve been spending some time digging into ThemeForest’s “Literary” WordPress theme and swapping emails with its (very helpful!) creator. I decided to award the sash and tiara of Andy Ihnatko’s New WordPress Theme to this one and set aside Monday night for buying it and getting it set up.

The other good reason for pulling the trigger Monday instead of Some Other Day: I don’t think I have time to try each of the 18,217 other WordPress themes out there. Not with an Apple press event coming up in a few weeks. I’ve made attempts to revamp the site with a new theme before and the biggest drag on the progress bar has been my determination to sample at least 51% of the alternatives before committing. I concede that I’m hardly being scientific with this choice. I surely will have much explaining to do when the ballgame’s over and I’m being judged by my creator. “You’re on the bubble here, son,” my neckbearded holy examiner sighs. “And there are those of us up here who don’t know what kind of man picks a new WordPress theme after looking at fewer than a hundred candidates.”

Alas, I’ve been foiled in my attempt to exchange money for goods. I’m now on Day Two of this “Buy ‘Literary'” project. I expect that soon, “progress” will come in the form of my attorneys and the online store’s attorneys having a productive markup session on the contract. And then, we can begin the escrow phase of my purchase of this $40 WordPress theme.

Crimeny. Surely on this side of Jerusalem none have suffered as I have been made to suffer:

  1. Site won’t let me make a purchase until I sign up for an account. So I sign up for an account.
  2. Site adds a $2 surcharge on the purchase unless I pre-purchase “store credits” for future transactions.
  3. Ecommerce transactor is PayPal. I canceled my PayPal account a few years ago, but the store allows direct purchases. But apparently, the fact that the card I want to use used to be attached to a canceled account, PayPal refuses to use it.
  4. Alternative payment service is one I’ve never heard of, have never used before, and which doesn’t obviously appear to operate in a secure fashion.

And there the matter rests. I’ve contacted the theme maker about the issue and they’ve been grand, but their contract with the store forbids them from selling the theme to me directly or giving it to me for free.

I’ve filed a support ticket with the store, outlining the basic problem (“I want to give you money and your store seems not to want me to do that, which I instinctively feels is a flaw in your business plan”). The shining optimistic side of my soul says “I bet I can just send them a bank check or postal order and they can put the credits in my account.” The part of my soul that’s interacted with commercial entities before is expecting a one-line response that passes the buck to PayPal.

Oh, well. Let’s see how this plays out. “Literary” is a handsome theme. It looks like it’s very easy to customize, and it’s wired up for any future plans I might be nesting.

In the meantime, I shall remind myself that my Celestial Waste Of Bandwidth is a small revenue-generator but it mostly serves merely as a creative outlet. This problem won’t result in my needing to buy off-brand colas for the rest of the month or anything drastic like that.

But wow. I wish for the makers of “Literary” take the two twenty-dollar bills from my left hand and place a big wad of electrons in my right hand. We’re back at the same problem I bemoaned the other day: oy, why am I troubleshooting a problem right now instead of playing with my new blog theme?

I griped about the experience on Twitter and @JeremyKing gave me the link to a post that lays out the impact of this sort of problem perfectly. Here’s how a user design consultant changed one button on a checkout page and increased store revenue by $300,000,000 a year.

(Or so that consultant says. But either way, it’s still a valuable tale.)

In the meantime, there are plenty of cool toys on my desk and lots of neat things to write. Enjoy “Manifest,” a theme I’ve switched to merely because my goal last night was to put in a new theme and this way I can dismiss that item in my To-Do manager.

More later!

Comments On Comments

Comments are turned off on new posts.

For now.

“Why?” you might ask. You scan the rest of the virtual room, giving everybody else the stink eye. Which one of you posted that comment that made Andy want to turn comments off? Was it you? I know it was you. Oh, I had you pegged from the moment you walked in…

No, it’s nothing like that. This is an experiment.

As a creator, you have goals for a project. Perhaps “goals” is the wrong word. You have an idea in your head about how you’d like to see something go, and as you build and maintain it, you always keep comparing it to that original conceptual sketch.

I do like active discussion. And yet I don’t read it or engage in it on the pieces I write for commercial sites.

When I write reviews or commentary, I keep this thought in mind: “I have one shot at expressing my point of view. This is my sole opportunity to tell this story.” It’s a good motivator. It makes me ask myself all of the questions that I believe a reader will be asking as they read my piece, and spurs me to consider all of the arguments that he or she will make. It makes me continue to look at the subject from multiple angles, in case there’s a perspective I hadn’t considered. Do I really believe that this new phone is the very best in its broad class of devices? Yes? Whoosh. All right, well, just make sure you’ve made that case completely and convincingly.

Which isn’t to say that everything I publish is a Gem of pure Truth, Beauty and Wisdom. But that’s the goal and if I were to let myself think “I missed anything or included any half-formed thoughts, no problem: someone will bring it up in comments, and I can fix it there” it’d bruise my process.

And it isn’t to say that it’s even possible for me to consider every angle on even the simplest idea. More brains almost always equal more thought, and any topic can stand having a few more brains thrown at it.

Comments are valuable. I still don’t like to participate in those threads, though.

First, because I feel as though I’ll negatively influence the discussion. The beauty of a good comment thread is that it’s all about a flow of ideas (before Godwin’s Law is invoked). I sure don’t want it to become a flat, desaturated landscape of “the author of the piece responds to your comments.”

Secondly, I ought to be moving on to the next thing I need to write instead of hovering over the thing I published three or four days ago.

(Thirdly, I have at times cough Android Switch series cough been told by editors that, um, I really shouldn’t read the comments.)

Other authors have different attitudes. I respect that. This is just what works for me. My feeling is that if someone wants to engage me directly, I’m easy to find on Twitter and at least when people try to say mean things they need to engage the part of their brains that can count to 140.

The Concept Sketch for CWoB’s reader comments was something like Roger Ebert’s blog, with a highly-active commentary thread on every post. That never really coalesced. Hey, no regrets! But as I look again at CWoB and the comment traffic, it prompts me to respond in one of two different ways:

  1. Figure out why the Concept didn’t become reality, and develop and then execute a plan to correct the situation, or
  2. Take a step back and ask what the original goal of that Concept was. Determine whether or not this original definition is the only way to reach that goal or if instead it’s just a single possible articulation that’s not worth obsessing over.

This is a good template for life. You dream of becoming a working actor. You’re 30 and it hasn’t happened. It’s time to either redouble your effort or think about what it was about that work that drew you to it. If you want milk and there are no cows around, move on and start looking for goats. Unless your goal really is to milk a cow.

It turns out I just want the milk, so I’m going for Option Two. Though it’s quite ego-fortifying to have tangible evidence that the tens of thousands of people who read a piece are backed up by hundreds of people who are eager to discuss it, what I truly enjoy about the overall idea of reader comments is that it presents me with an opportunity to learn. Other folks might express some interesting thoughts, reactions, corrections, or solutions that I wouldn’t have been exposed to if I hadn’t put my own thoughts out there on the blog.

I’m not sure that I want to go the route of other blogs, and eliminate visible feedback entirely. That’s not the right answer for me.

Styling the Comments bit of the current blog was a major pain, as is authentication and spam filtering. That’s out.

There’s Disqus, but I sometimes find it to be a pain in the butt as a user of others’ sites and the idea of forcing my users to interact with yet another “it’s free and please don’t think about how they’re generating revenue from this activity” service moves the needle on my skeeve-meter a little bit. Out.

I’m not sure what the perfect answer is. I’m going to start by stealing an idea from my friend Mark Evanier, one of TIME Magazine’s 25 Best Bloggers of 2013.

News From ME has no comment system. But a “Contact ME” link is right there in the sidebar and Mark has set up a mail address for people who have a reaction to one of his posts and who don’t mind if he shares that reaction with the rest of the blog’s readers.

So that’s what I’m going to try. I’ve set up a new Gmail account specifically for feedback. At minimum, I’ll do what Mark does and share selected emails with the rest of the class. The new Concept Sketch regarding comments involves my having a regular Ombud feature in which I post regular batches of feedback with my own comments.

I’m not sure that I’m ready to take the wraps off of that new address just yet. I’m thinking the mechanism will be: there’ll be a link/button at the bottom of every post that takes the reader to a feedback page that explains the concept and which keeps the actual address secret (so: no spam, and no chance that people will start using that address for business or personal-related messages).

But let’s make this fun. The first reader to guess it correctly (by sending me an email there) gets a vintage tech-related tee shirt of my choice (laundered) from my staggeringly large collection of same. The lone hint: it’s @gmail.com.

Oh, and: sending me mail there implies that I have permission to use your name and the email. And don’t put anything in that email that you wouldn’t like a stranger to read. Remember, you’re only taking a guess that it’s the right email address.

Update: We have a winner! Jay H. correctly guessed the Secret Commenting Email Address. Congrats! I will select and launder a shirt from the Classic Tee Shirt Archives and send it out shortly.

A New Theme

It’s time for me to turn my attention back to the Celestial Waste Of Bandwidth. This is my first update of the entire summer, and there’s sort of a reason why…but that’s for another blog post on another day.

First things first: the design.

In principle, the content is all that really matters and the design should be a distant second in the author’s mind. Charles Dickens’ “A Tale Of Two Cities” set in Comic Sans with janky margins is still a better novel than “Fifty Shades Of Gray” in letterpress. So why don’t I just forge ahead, not think about the shortcomings in my blog design, and keep right on posting?

Because I don’t love the design, and it bums me out that I feel a little bit constrained by limitations in the theme, and I still haven’t figured out why the popup menu for “Categories” spans outside its container…

It’s an old story. Web design is my nemesis. I’m handy with a code editor, I promise you. Remember, the predecessor of this site was managed by a content management system that I started coding before any formal CMSs existed. By the time I moved on to WordPress, it was a full XCode project with windows and popups and buttons and many many nice features that made things happen automagically and integrated with my web browsers.

My ego made me think that customizing and managing a WordPress theme would just be another iteration of that kind of work. I’d overlooked a simple fact: coding up CWoBber was a piece of cake because I’d written every line of code. I knew how every part of it interacted with every other part because I’d designed it from top to bottom.

In WordPress, my code has to interact with thousands of other lines of code. My intentions have to compete with hundreds of other intentions that are baked into the system. Though I made plenty of progress customizing the most excellent Carrington Text framework, mastering that complex relationship between PHP and CSS and plugins is beyond me.

Or at least it’s beyond the level of enthusiasm I seem to be willing to bring to the project. Inevitably, I finish writing a post, and I preview it, and something that ought to be centered is so totally not.. By the time I get to the root of the problem, I’ve totally disconnected myself mentally from the writing part of the exercise.

(Oh, and: it turns out that I hadn’t gotten to the root of the problem at all. I just wasted so much time trying and failing to figure out what was overruling my stylesheet that I gave up.)

Metaphorically, managing a WordPress theme as a mere Interested Amateur is like trying to develop a brilliant new product at a company when your box on the org chart has lines connecting upward to eleven vice presidents in three different divisions. No matter how carefully you’ve done your work, there’s always some authority that can and will put a stop to everything without discussing it with anybody else. And you’ll never get a straight answer why.

(For the love of God. There is a CSS whatsit that signifies “You are to ignore ALL OTHER stylesheet definitions and heed THIS AND ONLY THIS MARKUP between THESE AND ONLY THESE brackets”…and it doesn’t work. Deep within the bureaucracy of CSS is the basic understanding that the one way to prove your authority and thus maintain the facade that you are An Important Person is to prevent things from happening.)

I’m supposed to click “Publish” and be pleased that I’ve created and published something. Instead, invariably, I’m cheesed that something isn’t working right and I don’t have time to fix it.

All of this is connected to another frustration I’ve become increasingly aware of: I want to spend more of my time making things and less time fixing things.

A vividly-recalled day last month is a case in point. It was a hellaciously busy day and I had exactly 30 minutes of relaxation time between early morning and late evening. Truth. “Relaxation time” was lunch, but after a busy busy busy morning I was totally looking forward to watching a show on Netflix. It almost didn’t matter what.

Annnnnnd then I had to spend ten of those precious thirty minutes figuring out why the streaming wasn’t working properly. It was hanging and stuttering.

Relaxus interruptus!

As I restarted routers and went up and downstairs checking for naughty network devices and felt my stress levels increasing I reflected upon the good old days. You know, the days when the teevee was something you turned on and which almost always worked. I concluded that the arrow of progress does not unerringly fly forward.

This was meant to be thirty minutes of passive calm in my day. Instead, a formerly functioning system thrust a snarling, hissing puzzle at me and demanded that I cuddle it.

This blog should be a place where I can just open WordPress, do some type-type-type, click “Publish,” and bask in the knowledge that although the words themselves might have both the same linear structure and appealing interaction as barbed wire, at least the pictures attached to them obey the margins of their container and there’s the desired amount of white space between postings.

Clearly, this blog won’t be that thing with me as its principal architect. So tonight, I put the call out on Twitter for suggestions of “Minimalist-leaning, responsive, and hopefully accessible” WordPress themes. I’m hoping to find a theme that’s at least 90% of what I want CWoB to be and easy enough to customize that I can get it to the 98% mark on my own.

Here’s what my Twitter followers came up with:

There were also recommendations for WordPress’ latest standard theme, “twentythirteen” and Squarespace.

I’m not going with twentythirteen. It looks aces, but I’d have to make lots and lots of modifications before CWoB would look the way I’d like it to. The first time I politely said “CSS, I think it would be nifty if this header were a different color” and CSS replied “Andy, I invite you to go suck an egg” I would regret having made that choice.

Why not Squarespace?

No particular reason. I might wind up there eventually. For now, I’m happy with WordPress as a publishing mechanism and I’m not ready to abandon it just yet. It’s one hell of a great machine for turning synaptic misfirings into published text and every iteration of the webapp for crafting and managing content gets more impressive. I want to be along for the rest of the ride so I can see what comes next.

I must say that I like the cut of Literary‘s jib. I have made an enquiry to its creators to see if it’s suitable for my needs and I avidly look forward to that conversation.

I tried Literary after installing Manifest and taking it for a spin. I opened the “header.php” file. Aha, thought I. If I want this theme to use a header graphic, that’s where I should put some static HTML. But despite the fact that this seemed to be (to my admittedly unsophisticated eyes) the only place where that line of code should go…nuh-uh. Same old problem: something else in the CSS or Lord-knows-where was superseding my edits.

But Literary looks to be the business. I hope this is the start of a very short journey that results in a lovely, fluent blog design that incorporates the new header graphic that I finished in November but haven’t been able to correctly integrate since.

More later.

From One Bush Administration to The Other

I was up all night but wow, the results sure were worth it! You must certainly be immensely impressed by the blog’s new look, eh?

No. No, you mustn’t. I started with a page layout that would have been considered cutting-edge during George Bush’s presidency. I’ve updated it to something that would have been marked me as a sophisticated professional web designer during Dubbya’s.

(Maybe even his first term.)

Yeah, I know. The new design really ain’t much. There’s nothing advanced in the backend — it’s still just CSS — but beyond that, it simply looks old-fashioned: Masthead, navigation bar, content column, sidebar column. It’s not even built on a grid system or anything. But! It’s a next step. And the next step after any next step is the next step after that.

It’s been a longish night so I’ll fix the typography later (sure, it’s time to wire things up to take advantage of webfonts). Also, the more time I spent getting the sidebar to work the way I wanted it to, the more it occurred to me that yeah, maybe I can get rid of it entirely. It’s still filled with the stuff I put in three years ago when I moved to WordPress. I might change the content to give the sidebar a more emphatic function, but I might just as easily decide to move to a one-column layout. Perhaps with a static bar at the top and bottom that highlights things I think are worth highlighting.

(I mean, look at BoingBoing.net. It’s a huge site, and yet it could hardly be simpler in terms of layout, right?)

But at least I finally scratched some long-overdue items off the To-Do list. Most of my blog’s readers access it via the RSS feed. When I first added that feature to my blog, it was being run via my own hand-coded CMS system. It wasn’t a checkbox to click; it was a whole section of script that I had to write. Then as now, my goal is to make it easy as possible to read this stuff, and that clearly means “full posts in the RSS feeds.”

Ah, but what about the first time someone visits the site? They need to be welcomed. Concierged. A hot towel should be offered. Perhaps also a drink coupon of some sort. Ihnatko.com really didn’t fulfill that role well at all. I kept meaning to add pages about my speaking and links to my writing, my podcasts, and other tendrils of the Ihnatkoverse but just never got around to it. Also, the site design didn’t naturally gravitate towards that kind of navigation.

As always, though, a big hidden purpose of this site is to serve as a test bed for web technologies. From time to time, I hear about a new framework or a new whatsit that web designers are using, and I like to play with it a little. Recently, for instance, I learned that Twitter has released the toolkit that they use (up to a point) for their own webapps. It looks pretty neat. I’m still using Carrington as my basic blog template. That’s the guts of making this blog work on WordPress. Bootstrap looks like a nice starting point for the CSS, with some nice scripting libraries added in.

That’s to say nothing about different scripting languages, different production workflows, different coding environment, different concepts and theories about backend design…I’ve been learning plenty. Most of it never left my hard drive, of course. I’m all for eating my own dogfood but then there’s the sort of dogfood that you shouldn’t — legally — be allowed to serve even to a dog.

I’ve also been looking at Tumblr and other blogging platforms. Cool stuff, but I keep circling back to an ages-old frustration of mine: I can easily spend as much time searching for a canned theme that I like as I would have just learning what I need to learn to build the site I want from scratch.

But for all of this bluster about my learning new tools…what arms did I take up tonight, in my fight to make my site look Slightly Better Than Awful? The exact same ones I used in 1995, when I built my first site: BBEdit and an FTP client.

Ihnatko.com is back up! Aren’t you LUCKY!

Maintenance page for CWOB.com


(checking again…)

Okay. It seems as though I’ve successfully nuked the whole site and reinstalled everything. I’ve downloaded fresh copies of WordPress and a couple of templates, and restored all of the site’s existing content.

So I think that should take care of the spamlink hack. I’d tried a couple of other tricks last week to avoid all of this work. If nuking it from orbit doesn’t fix this problem for good — given that I’ve changed all of my passwords — then this becomes what is known in tech circles as A Whole ‘Nother Thing.

This was quite a typical 2010 sort of procedure. I’m not a day-to-day WordPress admin, so I needed to spend some time refreshing my knowledge on how to do all of this properly. A couple of days ago I did all of the advance work (prepping for disasters).

All I needed to do this morning was delete my existing WordPress directory on the server and reinstall everything. It should have been about twenty minutes’ worth of work, all told, including making a few edits to some key files so that WP can find my databases. And indeed, that’s all it really took.

Aha. But instead, Ihnatko.com was down for nearly two hours.

First, I decided that I wanted there to be some sort of “Ihnatko.com is down but it’ll be back up shortly” page in place of my WordPress blog. That took all of five minutes. It’s simple HTML. Then I decided that I wanted it to be in a little CSS box. Then I decided that I wanted a pretty little picture from my photo library (but which one?) Then I wanted to center it all (and CSS is simply not on board with the concept of “let me enter a simple command; it’s your job to figure out how to center this inside whatever boundaries this element happens to appear in”).

Then I thought it’d be cool to have the text overlap the photo a little.

Then I thought I should identify the photo. I Googled for the name of the town and did a little research just in case anybody asked me any questions about it.

Oh, and the dumbest move of them all: I was Twittering as I went. My hostility against CSS inspired snarky, 140-character comments, and on ongoing dialogue with my 35,000 Followers.

But hey, it’s back up now, and…

(let me just check one more time…)

Yes, the invisible spam links have vanished. So either I’ve eliminated the redundant PHP scripts that the hack deposited in my WordPress directory, or it’s A Whole ‘Nother Thing and it’ll take a day or two for some bit of code to realize “Hey…Ihnatko.com doesn’t contain spam links” and do that thing that it does to inject the code into the site again.

(Which shouldn’t happen, because I’ve changed all of the passwords.)

Welcome to Stage One of the cleanup. I’ve fixed…


…I’ve fixed the site at my end. It’ll take about a month before Google’s spiders are convinced that my blog is no longer trying to game the ranking system, and ihnatko.com resumes its rightful place in search results.

In the meantime, if any of your office or home NetNanny-type apps are blocking Ihnatko.com because it’s a spamlink farm…please click whatever link the app provides and tell the service to reconsider its position.


Ok. Good. I don’t need to keep checking. Whatever happens now, happens.


Ihnatko.com going offline

(Sigh) Looks like I didn’t fix the problem after all. More of those spam links started showing up in served pages.

Yeah, I’m pretty furious.

Oh, right: “Ihnatko.com will be going up and down over the next day or three as I nuke the whole installation and reinstall the original content.”


Moving on.

What pisses me off is the fact that this is just a cold and mechanical system for gaming Google’s pagerank system and driving traffic to sites that have subscribed to some sort of service powered by hacked sites. The sites being linked to “look” more important by virtue of the fact that so many sites are linking to them, which means that they’ll appear higher in search results. The site owners might even possibly be naive enough not to know that the “consultant” promising to get them higher rankings is actually responsible for infecting hundreds of thousands of sites with spamlinks.

I hate that I have to take my site offline and that I now have a BIG project on my hands. But what pisses me off is the statement that these people are making about their relationship with the rest of Humanity.

I’m suddenly thinking of an old SNL sketch. It was a talk show in which all three of the day’s guests had “ruined things for everyone.” In possibly the last funny thing he ever did, Jim Belushi played the guy who had ruined hitchhiking.

“For those of you who don’t know what ‘hitchhiking’ was,” the host explained, “for the first five or six decades of this century, if you needed a ride and didn’t have a car, you could just stand by the side of the road and hold your arm out with your thumb pointing up, like this. Drivers would actually stop, pick you up, and let you ride along with them for free.”

“Yeah, it was pretty sweet,” the guest said. “Well, so one day I’ve just been picked up — nice guy and everything — and I don’t know why, but it suddenly occurred to me: ‘I could kill him right now, and nobody would ever know it was me’. You know? There was nobody around, I was a complete stranger…it was awesome! I’d always wanted to kill people, but I never could figure out how to do it and get away with it.”

“So you killed him.”

“Right, stabbed him to death with my pocket knife. Anyway, so I dumped the body and now I’m driving around in his car. And I see a hitchhiker up ahead in the road. I realized that the same thing could work for the people who get picked up, too! No witnesses, no connection between you and the victim…I couldn’t believe nobody had thought of it! It was great; I bet I killed maybe 200, 300 people over the next five years. At some point, though, I couldn’t get any more rides. Even when I switched roles, I couldn’t find any people to pick up and kill.”

“Because word had spread that hitchhikers and people who picked up hitchhikers were getting brutally murdered.”


“You ruined hitchhiking for everybody.”

“Yeah, I guess so.”

“Well, what are you up to these days?”

“You know that thing where every day, a man walks right up to your house and hand-delivers your mail? Don’t get too attached to it.”

You know what I’m saying here? I swatted my first mosquito of the season today. Mosquitoes are a colossal nuisance. But what can you do about them? It’s just Nature.

Spam and these kinds of hacks get me pissed because they’re a completely man-made nuisance. We could live in a world in which email and blogs and all kinds of other services just plain work. Unfortunately, that’s not good enough for many people, I guess.

I was having dinner with a friend when we started talking about that recent movie in which a mysterious man with half a face offers a Big Red Button to a couple in dire financial straits. “Push this button, and you will receive one million dollars,” he says, through an open cheek. “But somewhere in the world, a complete stranger will die.”

I said that under no circumstances could any moral person press the button.

My friend is way smarter than I am. She said “I’d accept the deal…only so I could grab the button away from him and make sure he couldn’t give it to anybody else.”

There are so many people out there who wouldn’t think twice about hitting that button. The larger lesson is that the Button exists in so many shapes and forms and it’s being slid towards us every day.

The shady contractor who charges a homeowner $50 for appliance removal and just dumps the old fridge or stove in an unguarded vacant lot on his way home. The financier who willfully dismantles the foundations of his own bank so he can clean up on a bet he made that its investments would fail; the idiot at the public library last week who decided that the Quiet Room — yes, even within the context of a library, a room with a big sign that says “QUIET ROOM” — was the perfect place to rip open, process, and crumple up a pile of 100 cellophane-windowed envelopes…these people need to be nailed up inside wooden boxes and shipped off to an island populated solely with like-minded individuals. Then they’ll know the true definition of Hell.

Hell isn’t a place where you’re tormented by the Devil. Hell isn’t even (as the Catholic Church defines it, I think) the simple absence of God. Hell is a closed community in which everybody thinks selfishly 100% of the time. And I can’t imagine a worse curse than to be unable to empathize with other people’s needs, or appreciate the effects your behavior can have — positively and negatively — on others.

At least the idiot with the envelopes responded to a quiet, but firm, “you can’t do that in here.” He can stay, I suppose. I’m going to yak-yak-yak about the need to be thoughtful and sensitive, I suppose it’s all meaningless if I don’t put it into actual practice.

But I really wanted to take him outside and smash a dozen raw eggs over his head, one at a time. What can I say. I am but an imperfect vessel for the Universe’s perfection.

Site Hacked, then de-Hacked?

Many of you called my attention to a problem with the site that seemed to have popped up a few days ago: every post was embedded with about a million invisible links to e-commerce sites. You could only see them by opening one of my pages and then choosing “View Source” in your browser.

My fingers are crossed but I think I’ve figured out the problem. It seems like my wp-supercache plugin got hacked. I disabled it and presto, my pages are all clean.

What a (fingers crossed) relief (I hope). The worst-case scenario is that my databases have been corrupted and there’s no way to be rid of this without meticulously rebuilding the whole damned thing one molecule at a time.

Which leaves the question of how the plugin got hacked in the first place. Over the past few days I’ve learned that one of my hosting service’s admin databases was compromised a few months ago.


I’ve reset my passwords. I’ve been reminded of the fact that my site passwords should be changed just as frequently as I change my other passwords. I’ve been reminded that it’s important to keep up to date with the news alerts coming from your host.

I’ve also been reminded of my longstanding commitment that if God were to give me 100 bullets (with the understanding that neither He nor any mortal agency would ever hold me accountable for what I do with them), at least 20 of them would be for the eggsuckers who deploy garbage like this.

The Ambitious Dilettante’s Guide To WordPress Site Design

Let’s return to a topic I dropped a couple of years ago: transitioning to WordPress after more than a decade of blogging from my own homemade content management system.

(Warning: even as I begin writing this post, I’m reading ahead and I can see the potential for a sermonette-style transition to a Life Lesson via the phrase “…and you know, it occurs to me that life is like that, sometimes…”)

I’ve learned a lot about how a dilettante like myself builds a modern WordPress site. We’re a special breed, the dilettantes. We have too much ambition to just sign up for a WordPress.com blog or use an off-the-rack blog theme. We don’t have enough ambition (or not enough money) to hire someone to custom-design something to our specs.

We live somewhere in between. We must learn, explore, make lots of mistakes, and ultimately reach an articulation of the declaration “I give up!”

It’s a productive version, though. It means “I have reached my saturation point of Exploring and Learning and Growing. My knowledge and my skills have expanded to completely fill the container of time and energy I can give it. Now, it’s time for me to just build the thing and move on.”

So to aid my fellow Dilettantes, here are the various steps I went through on my way towards that magical destination of Giving Up.

1) Take something off the rack.

Just sign up for an account on some blogging service, click on one of the six available themes, and go. It’s simple and quick, and you’re off and blogging right away. Which was no good for me because I couldn’t find a simple theme that would suit my needs.

Plus, I like the fact that I spend $20 a month for shared hosting on Media Temple. If I want to add a second blog, or a third, I don’t need to pay another $20 a month. At most, I just need to think about upgrading my service at some point.

So I moved on to

2) Browse among the hundreds and hundreds (and I’m certain that I’m lowballing it) of free and cheap-as-free themes that very smart and skilled designers have released.

It’s close to the lack of effort of Level One: it seems as though you can just keep browsing through galleries and eventually you’ll find a design that’s precisely the one you would have built yourself, or commissioned.

No good for me. I tried, but there are just wayyyyyy too many choices out there. I think I “chose” six different themes over the past two years. I even paid for a couple of them. But eventually, I waffled, reconsidered, and kept looking at more themes.

So I moved on to

3) Try to write my own theme.

I should mention that I already know a lot of CSS, and enough PHP to confidently hail taxis and order in restaurants when visiting PHPistan. Plus, I liked the puzzle of learning something new.

Tutorials like this one and this one really inspired me. WordPress maintains a database of your blog’s data and the theme is a series of templates and scripts that manipulate that database. The tutorials urge you not to be a hero. They wave you away from the idea of filling an empty BBEdit window with PHP and HTML and show you how to just steal the functional nuggets of code from existing themes in WordPress’ built-in library.

That’s right up my alley. It’s the cultural legacy of coding. When you’re building software, your most valuable resource isn’t the reference manuals and API guides: it’s other programmers’ working, tested code. Cut and paste the function you need, examine how it works, and ultimately you can figure out where you can safely tweak and prod it.

Furthermore, building a new theme from existing code elements is particularly attractive to someone with my rudimentary PHP skills. Writing scripts from scratch is still a slow process for me, but I know enough PHP to build something from existing elements and modify what’s already been built.

I eventually abandoned this approach. Building your own theme is very doable and I learned many things about WordPress that would serve me well later on. The more I dug into the nuts and bolts of the process, though, the more I began to appreciate that a WordPress theme is a living, breathing piece of software instead of as a set of HTML files in which little snippets of script act as content placeholders. I was certain that I’d wind up with something functional. I wasn’t so sure that I’d wind up with something that would live and breathe and grow, and could take advantage of future plugins and WordPress features.

Remember, the whole reason why I abandoned my homemade CMS was because I’d been on the upgrade-it-yourself treadmill for almost 14 years. I’m not eager to return to that world.

So I moved on to

4) Find an existing, muscular theme that’s close to what you want, and then modify the holy hell out of it.

This is going to be the sweet spot for most bloggers. Choose a theme, any theme. Then just learn a little CSS (or pick up a spiffy utility like CSSEdit, or StyleMaster for Windows), create a child theme, and then go to town.

Child themes is brilliant, I tells ya. If a WordPress theme is worth using, it’s awfully complicated piece of software. Even if all you really want to do is make the titles of your posts a little bigger, there’s a lot of slogging to do before you find the thing that you need to change. And then a year later, when the theme’s developer comes up with an updated version that adds loads of fab new features, you’ll click the button to upgrade and poof! All of your custom changes go away.

A child theme is a brand-new theme of your creation. Three lines of cut-and-paste markup code tell WordPress “Start off with all of the scripts and styles you’ll find described by this theme here” and the rest of it describes your overrides. “Don’t style a post title like that. Style it like this.

This tutorial got me off on the right foot. It explains everything. Even better, it gets you excited about what you can accomplish and makes you feel stupid (in a good way) for not finding out about child themes sooner.

…And then you install the Firebug plugin for Firefox, and you wonder why you made such a big fuss about customizing a theme in the first place.

You know that you want to change the font of your post titles. You know that it’s a simple case of modifying or overriding the theme’s CSS definition of that element.

Easy. Er, but first you need to find that definition.

Firebug will give you a simple dashboard to the CSS structure of any page in the browser. Roll your mouse over any CSS declaration, and the associated element will highlight on the webpage.

Snooping for CSS tags with the Firefox and the Firebug plugin. In this theme, 'entry-content' is the style for post titles, apparently.

(It’s supposed to be just as easy to do this in CSSEdit. But I find it’s easier to do it in Firefox.)

Then you just slap in an overriding CSS definition in your child theme. CSSEdit is swell for this sort of thing because it’s interactive. You plug in a change via a (somewhat) word processor-style tool palette and immediately see it reflected on your site.


I treaded water here in Option 4 before I lost interest. It seemed as though the DNA of the original design was always obvious, which sort of put me back where I was when I was examining dozens and dozens of prefab WordPress themes and not finding any to my liking.

But then I learned a little more about the theme community. And I moved on to

5) Base your blog on a “framework” theme.


The themes you get in Options 1 and 2 are like a hotel room or a model home. The furniture and drapes might not be to your taste, but you can move in right away. Option 3 is like starting off with a wooded lot. Option 4 is like buying an empty, existing house and then decorating it to your liking.

A “framework” theme offers some of the best features of all of these approaches. It’s as though the builder pours the foundations, frames in the whole house, gets all of the plumbing, heating, and electrical services going, plasters all of the walls, installs the roof, nails up the exterior siding, applies two coats of primer…and then hands you the blueprints.

All of the tricky technical bits that make a WordPress theme work have already been taken care of. You could move right in and live a rather stark existence among those bare walls and uncovered floors. But the understanding is that you’ll be finishing it up on your own.

And remember, you have an exceptionally well-documented design. I’ve settled on Thematic, because it’s so well supported. It’s not the only well-documented framework out there, of course. This is one of the big deals of a framework. You solve the problem “How the hell to I put a banner image in the header?” after a quick search of the support forums, not after an hour of poking and prodding and testing and failing.

There are bunches of popular frameworks. As I browsed through a dozen or so, I quickly came to see these frameworks as…well, rapid-development application frameworks. Which is precisely what they are. You’re building a new piece of software, without going to the trouble of re-inventing code that’s virtually identical among 90% of all WordPress blogs.

So that’s it, right? I’m at the end of my journey? The right answer is “Install a framework, and then build it up as needed”?

Close. I believe I’ve now hit upon a method that I’m referring to as “Really Quite Totally Finally The Right Way, Honestly, And I Mean It This Time”:

6) Create a child theme of a framework that doesn’t inherit any of the framework’s existing styles.

It’s a small tweak to Method 5. It seems to have given me everything I want, and removed every obstacle I’ve encountered.

I mentioned how easy it was to create a child theme: just paste in three lines of canned code at the top of a text file and presto, it’s a child theme. One of the lines tells WordPress “This child theme’s CSS styles will include all of the CSS styles of the parent theme, with the following overrides:”

Well: if you omit that line, then you get all of the machinery of the parent theme (the plumbing, the electricity, the foundation) without any of its CSS styles. Every element in the page layout is tagged with CSS selectors, but none of those tags have been styled yet.

Brilliant! Only even more so than the previous time I said that!

No, really. I was banging my head against the wall today because I’m really feeling the (self-imposed) pressure to finish up a new blog I’ve been wanting to launch since the middle of last year. Over the past few months of development, I’ve learned that modifying an existing, complicated theme via CSS is the fastest way possible to measure the exact distance between how you think CSS works, and how it actually works.

CSS is really quite simple. Anybody can understand it. You only run into trouble when you can only see (or you only understand) one small part of the elephant representing the CSS styles for this theme.

Yes, I’m a clever boy: by adjusting the offset of a graphic, I can get it to overhang past the left margin of the blog post that contains it and overlap onto the background slightly. My CSS stands proud and strong. But it didn’t work. I was unaware that the CSS element that contains the image has been told to clip anything that extends beyond its border.

I sighed. I edited the CSS for the containing element and told it “Please don’t do that.” I applied the changes, refreshed the page…and suddenly the whole page was a total, ragged mess. Because another style was counting on that clipping effect to pretty things up.

I don’t blame CSS. I don’t blame the designer. I don’t even particularly blame yourself. If I had understood the whole scheme, I’d have known exactly how to accomplish what I wanted to do. But I didn’t. And on some level, that’s kind of impossible.

Theme frameworks are wonderful and modifying them can be a streamlined process. But you’ll run into trouble if you’re trying to make the framework do things that its designer didn’t anticipate…or if they assumed that the framework’s users would be experienced consultants, instead of first-time dilettantes.

The solution was to remove that one little line from my child theme’s style definition. The Thematic framework will still act as the glue between my site design and the WordPress system. Now it’s up to me to actually create that site design, from the ground up.

It seems like the right call. Building every CSS style myself will take a lot of time, but autopsying Thematic’s CSS scheme would have taken just as much time and would have been far messier, I think. The Win is that I won’t have to give up on a good idea just because I can’t figure out how to make it live harmoniously among all of Thematic’s existing definitions. Bonus: I bet I’ll be less dumb about CSS by the time I’m finished.

And the work’s been much more fun. The process is tactile, not abstract. As soon as I restarted the project with an empty style sheet, I saw a version of my new site and its sample content that looked like a sloppy dropcloth of content. I got cracking.

I had never liked the broad width of Thematic’s content area. I opened the page in Firebug to refresh my memory on how Thematic’s different content areas are tagged. Then I created a style for “#wrapper” and set its width to 800 pixels.

Save, upload, refresh. The layout is 800 pixels wide. I want it centered in the window. Edit, save, upload, refresh: it’s centered. I want the background and the content areas to be contrasting colors. 1-2-3 and it’s done.

Best of all, it’s a linear process. I’ll never have to spend an hour “unwinding” the CSS to sleuth out why a piece of text refuses to be bold. The most frustrating tasks are the ones where you feel like you’re walking through a series of blackened hallways and you don’t know what you’re going to confront until you flip the next light switch. You thought you were going to have to just empty a wastepaper basket next to the sink. And then you got the bathroom door open and discovered that whoever designed the plumbing system in this apartment building didn’t incorporate a checkvalve system that prevents all of the sewage from all of the other units from backing up through a single fixture. You’re definitely going to be here a while.

Even without the presence of raw sewage, those projects are frustrating as all hell. I’ve been Bolding text since before many of you were born. I feel as though it’s well within my skill set to command a computer to make a certain word or line a skosh heavier.

This might be an arrogant statement, dear reader, but there you go. So I find it very, very disorienting when I add “font-weight: bold;” to a CSS definition and am only 60% certain of what effect that will have on anything.

I seem to have forgotten the potential life-lesson that this whole topic might have inspired. Well, spending an hour or so writing about CSS and PHP and webdesign will do that to you. You do find yourself thinking about life, but mostly about how it’s too short to be spending so much of it in activities like this.

The Thrill Of The Hunt

You ever have one of those moments when you observe yourself impartially and think “Good God…I really haven’t made any progress since junior high, have I?”

This is such a moment. I’ve been in a coding trance and my mental CPU was wonderfully overclocked and the last thing I want to do is knock off for the night and go to bed…but it’s 4:20 AM and I need to go to bed.

Yup, the 4 AM point of no return. It’s a bedrock spot on my personal clock, right alongside lunchtime, suppertime, and Time For Letterman. As a kid, I knew it as the time when I had to decide whether I wanted to get two or three hours of sleep in my bed, or if I wanted to keep right on writing or coding and sleep at my desk instead.

(I never, ever made the wrong choice. Which is probably why I graduated 22nd in my class instead of in the top five.)

Now that the blog is back up and running, I can recreationally begin Phase Two: building a custom CWoB theme for WordPress. This requires me to sharpen my PHP-fu skills and also to learn just what the bloody hell goes on under the WordPress hood.

And I’m absolutely delighted that there are two perfect resources out there. The tutorials at WPDesigner.com are absolute godsends. You can jump in without knowing squat about PHP or even HTML and make satisfying progress in your first 15 minutes.

If you do know squat…well, you’re that much ahead of the game.

After spending so much time suffering with a broken blog, I sure don’t want to go and break it again. So I’m inflicting my theme experiments on a “Skunk Works” version of the Celestial Waste of Bandwidth, hosted by a WordPress installation right here on my iMac.

Mac OS X already has everything WordPress needs, right out of the box. You gotcher PHP, you gotcher MySQL, you gotcher Apache webserver. You do need to execute a lot of mojo before WordPress is up and running, and that’s a newbie nightmare.

So thank heaven for MAMP. It’s a magical free utility that runs those services for you. Double click on the app and hey-presto: you have a functioning Apache webserver with SQL and PHP.

I love that it doesn’t mess with your Mac’s configuration or mung up your system in any way. It’s designed specifically for my kind of purpose: when you’re developing something offline and you need a functioning test system that can be turned on and off. When I click the “Stop Servers” button, that’s it: the Skunk Works is closed and my Mac’s configuration is no different than what it was when I started. Even when it’s running, the “webserver” is only available to the user of this iMac. I’m not accidentally publishing my PHP thoughtcrimes to the actual Internet.

I’ve no idea when this new theme will be finished. I’m still at the stage where I’m surprised and pleased that I haven’t turned a lovely iMac into a dignified blob of drippy metal and plastic slag on my desktop. But as they used to say at GE, “Progress is our most important product.”

It’s interesting. The purpose of transitioning away from my AppleScript blogging tool was to have a more powerful and ambitious blog. It wasn’t so that I could stop writing code. But in the past few days I’ve come to understand that if I really want to exploit the power of a full-featured content management system like WordPress…well, I still have to write lots of PHP scripts. WordPress has two faces. It’s a user app and it’s a development environment.

If you’re happy with all of the canned solutions that are out there, you never have to leave the friendly user interface. If you want something that’s tailored towards your own inclinations, you’ll need to put on those special pants that are tailored for extended coding sessions.

The Morning After

Hmm. The site was a bit slow in loading this morning. I hope we’re not seeing the head-reading of ugly thing, best left beh…

(hang on…let me get a bowl of Rice Krispies and a Coke.)

There. That’s better. I always write better after some breakfast.

Hmm. The site was a bit slow in loading this morniing. This fills my day with the salt-encrusted sweatstain of uncertainty. You’ll recall that the whole (bloody) point of moving to a new server was so I could put an end to that sort of thing.

I suppose if I pretend I didn’t see that, then it won’t affect my plans to get the hell out of the house in the next twenty minutes and enjoy my Saturday.

So! Wow! The new server has never seemed slow to me! Not even once!

What a relief! Off I go.