in limbo

Sorry, sorry sorry. The blog is in-between versions right now, and none of the links / search form / etc. work right now. And, as I’m at work, I can’t update it right now. So it’s going to have to be broken for just a little bit longer.

In the meantime, find me on twitter.

An Easy Way to Deal With Smallcaps

This might not be a problem you deal with. But it comes up for me every once in a while, and I thought I’d share how I deal with it. Sadly, IE doesn’t handle this 100% correctly (shocker), but if they keep up browser development, hopefully they’ll get this soon. Anyway, it degrades nicely for IE users.

Acronyms and abbreviations often need to be set apart typographically. Ideally, with small-caps.

There are a few ways you could deal with them. For example …

All-Caps, Written in the Code Itself

<p>I love XHTML and CSS.</p>I love XHTML and CSS.

The upside to that is that it’s a lot simpler to implement, there’s no real question about the caps / lowercase question, and if your copy were to be copied-and-pasted, the uppercase letters would be transmitted. The obvious downside: you’ve abandoned small-caps altogether.

So let’s try something else.

Small-Caps, Applied Via and CSS

<p>I love <abbr>xhtml</abbr> and <abbr>css</abbr>.</p>abbr {font-variant: small-caps;}I love xhtml and css.

A couple of problems here. Visually, the small-caps is nice. But the code, as you can see, is in lowercase. Screen readers are going to see it as lowercase words, rather than the spelled-out, capitalized acronyms they are.

You can’t simply apply small-caps to capitalized letters, since the browser will simply render them as uppercase letters. Check it out: Here are two “x”s, both with small-caps applied: Xx. The first of those was a capitalized “X,” the second was a lowercase “x.” So you can’t apply small-caps to capitalized letters — you’ll lose the small-caps effect for the vast majority of your readers.

What if you could render capitalized letters in lower-case, and then small-caps-ify them? Ahhh.

Once again, CSS to the rescue. We’ll just change the XHTML by capitalizing the acronyms, and we’ll add a new declaration to the CSS.

Small-Caps on All-Caps Letters, Applied Via and CSS

<p>I love <abbr><span class="new">XHTML</span></abbr> and <abbr><span class="new">CSS</span></abbr>.</p>abbr {font-variant: small-caps;text-transform: lowercase;}I love XHTML and CSS.

So. There we have it. When the browser renders the code, it’ll turn the all-caps letters into lowercase letters, and will then apply the small-caps font-variant to them. (Actually, I think it technically small-caps-es them and then lowercase-s them, but the end result is the same.)

One more thing to note: There will probably be times that you want to render small-caps even when you’re not dealing with abbreviations (for example, in the title of this post). You can do one of two things for those. You can either figure they’re a rare enough occasion that you’ll just use inline styles to alter them, or you can simply alter your external stylesheet like this:

abbr, .smallcaps {font-variant: small-caps;text-transform: lowercase;}

In case you missed it, I just added “.smallcaps” before the bracket (and, of course, I added the comma after “abbr” as well).

Purists will note that we’re using poor form there, using the intended output (small-caps) as a descriptor for the code (the class’s name is “smallcaps”). I don’t think, in this case, that’s the end of the world. If you take umbrage with it, though, you could use a different class name, like “acronym” or something like that. But, honestly, think about your in situ usage.

When I used it in the header of this article, it wasn’t an “acronym” … all I wanted to convey was “put this in small-caps.” So a class name of “smallcaps” works for me.

I noted at the beginning that this degraded nicely in IE. What IE users will see is simply the all-caps versions of the abbreviations. That is, IE doesn’t lowercase the letters before (or after) small-caps-ing them. I hope that future releases of IE will enable text-transform, but this technique still works in the meantime.


This is good:

Every thing you own takes energy away from you.

I was a big fan of Paul Graham before this article. Now, even more so.


If you’re actually reading these posts at my blog, I apologize for the poor form on the blog layout. You know, how the cobbler’s children go unshod? It’s like that. I’ll format this nicely, soon.

I hope.

Tools to come back to

Just wanted to post links to two tools that I’m sure I’ll be revisiting down the road.

The first is the hCard Creator, from microformats. I’m still a little unsure about the general utility of microformats, but I’m all in favor of standards. On top of that, I think the microformats has a little bit of a chicken-and-egg problem. So, to do my part, I’m going to try to start including microformats in the sites I code up. I think the hCard Creator’s going to be a useful tool in the box.

The second is a great list of Javascript, CSS, and (X)HTML entities in numeric order. I was trying to embed a bullet in the :before and :after sections of a layout. Normally, I’d use “&bull;” to indicate “bullet.” But to get the bullet icon to actually show up, I needed to embed it as “\2022″.

Maybe this doesn’t make sense to you. That’s okay. I’m glad to have this resource at hand.

Also, apparently, the ellipsis is created with a “&hellip;”. I’ve been wondering about that.

Two unrelated things …

First unrelated thing: From Khoi:

“It’s almost like we’re a research and development laboratory for our own bamboozlement.”

Second unrelated thing: Also, Chumbys are almost here. My discretionary income has no room for one of these things, but I’d rather have one of these than an iPhone.


Actually, now that I think about it, I’d like iPhone functionality in a soft, Chumby-like, squishy package. Yes. That’s it.

If Apple and Chumby Industries are paying attention to this, I’ve just given you some R&D for my own bamboozlement. Take note.

Raising a Pint to Laura

I know, I know. It’s been forever since you heard from me.

Sorry about that.

Life’s been good, but busy.

I think in my last PearBudget post, I mentioned that I had some news. I still have it, but I’m still holding on to it, to make sure it pans out the way I think it will. In the meantime, I have something else to share.

I’ve wanted to keep better track of success stories that people have had, using PearBudget to help get out of debt, to get a better handle on life, and to just be more in control of their money. A combination of factors has kept me from starting that up, but I saw a post today that compelled me to get going, and to start celebrating peoples’ successes. If you’ve worked hard enough to get out of debt, and PearBudget’s helped you do it, then I should certainly be able to write a blog post about it and congratulate you. Good gravy. I have the easy bit here.

So. I want to congratulate Laura Crossett, who blogs over at She’s just paid off her credit card debt, which was hovering around $3,000 – $5,000 dollars. She wrote about it in a post yesterday, accomplishments. While she paid off those debts, she also wrapped up her second Masters degree, in Library Science.

A couple of takeaways, in case you’re in a similar position, and trying to pay off debts:

  1. Use helpful tools.
    Laura used PearBudget and the debt calculators at to figure out what she needed to use for her monthly expenses (and emergencies), and to see what she could use to pay down the debt. PearBudget’s not for everyone. If it’s not working for you, try something else. E-mail me, and I’ll happily chat about alternatives. But the point: Laura found PearBudget helpful, and she used it to help her get her bills in order.
  2. Be realistic.
    Laura would work to pay down her debt, but it kept coming back, because she didn’t have cushions in place. Life can be expensive, and big bills can be unexpected. Sadly, they often seem to come at the worst times. As Dave Ramsey says, build up your $1,000 cushion as your first objective. Then pay down your debts. It took her some time to get her bills paid, but she did it.
  3. Don’t sacrifice everything you love.
    Paying off debt requires sacrifice. But some creature comforts help you through the day. Laura weighed her choices, and decided to give up certain things (new books, CDs), while still spending money on other things (goat cheese and good coffee). Consider your spending habits, but don’t sacrifice everything you love. Budgeting is tough enough. You should reward yourself with little things when you can afford to.

Laura, appropriately, notes that she’s pretty damn proud of herself. We’re pretty damn proud of her, too.

No Tags


I’ve been really impressed with Joshua Porter, the Director of Web Development at User Interface Engineering. (A quick nit to pick: the UIE website uses the design form of the “tag cloud” / clump of words in the top right of the page. Just the other day, I was thinking about that form and how bad it is for conveying information, as it de-prioritizes the content: you have no idea which of the words is most significant. The text with the highest contrast? The largest text? It feels kind of “public service anouncement-y.” Odd, that a usability site would utilize that design form. I digress.)

Anyway, Joshua Porter consistently writes interesting, informative posts on his blog, Bokardo. He just posted one this morning, GrandCentral is People-Centric, where he gives a really nice nuance to a previously oblique opinion I had: that constraints are a good thing.

First, though: a preamble.

As David Heinemeier Hansson noted in his post, What if I actually like HTML, CSS, and JavaScript?, “As a web developer, I’d like to confess my deep appreciation of the restricted canvas that we get from the basics of the web.” I was totally on-board with this. I mean, my job as a front-end developer consists of working with a fairly specific toolbox. And, honestly, it’s really nice. The constraints of CSS and web standards are comforting.

But then Joshua makes this point, in GrandCentral is People-Centric: “Some people laud those who can design within constraints. But the best designs bust through the right constraints, work only with the absolutely necessary ones, and provide people-centric services.”

As Joshua notes: the trick isn’t knowing how to work within constraints. It’s knowing which constraints to embrace and which constraints to completely throw out the window. Thanks for that clarity, Joshua.

“a _________ killer”

I’m finishing up some client work at the moment, but I wanted to take a quick break to clear my head.

Brian Oberkirch has an excellent post — We Stopped Playing King of the Mountain Long Ago — up at his blog. It makes a point that I’ve been thinking about over the last few weeks: web software development is not a zero-sum game and it hurts all of us when we think of it that way.

What is it with tech punditry and the ‘there can be only one’ line of thinking? As though all Web apps are drawn toward some great quickening with a last one standing triumphant. …

Pitting the charismatic founders of Web dev firms against each other WWF-style has zippo to do with product take up. Maybe that’s the real thing I’m rebelling against: all the inside baseball that passes for discussion about Web apps and how to make them wonderful. It’s the geek version of Entertainment Tonight: instead of torrid affairs, we have funding rounds. Member bases, page views, buyouts. The discussion takes place at entirely the wrong level.

I must come from a different planet. (Ok, true, South Louisiana *is* a different planet. Certainly not America, at least.)

Instead, I see a return to Mom & Pop successes. Millions of successes blooming. My father moved to a new place and built a sustainable business for 30 years with little more than willfullness, back breaking work and creative deal making. In the sweet by & by, he created a fantastic life for his family, contributed back to a new town that took him in, gave jobs to many, many men who needed someone to take a chance on them. And he made friends and became part of something larger than himself.

Sounds like a kind of success I wouldn’t mind emulating.

Me neither.

Case in point: PearBudget development has, honestly, stalled out for the last two or three months, as I’ve been focusing on another web app. But I do intend to get back to PearBudget’s development. In the meantime, others have come along, and have been pushing the envelope in terms of web-based financial services.

Obviously, there’s Wesabe, which has done a terrific job of navigating the funding rounds and is currently at a 10x valuation of $47 Million. That’s awesome. I am honestly thrilled for Marc, Jason, and everyone else at Wesabe.

There’s also Mint, which holds promise. I’m a little worried for them (certainly not of them), but those fears might be unfounded, and I’ll have to (possibly) write that up in a different post. But they’ve also apparently received funding, and could do a great job. We’ll see.

And the sleeper app in the personal finance is the poorly-named, but astounding execution of Expensr. I am very excited to see what they do.

And then there’s PearBudget.

The thing is: I’m not competing against these other guys. At least, I don’t see it that way. Maybe they’d say that I’m naïve. But I see all of us as competing — not against one another — but against predatory lenders, overconsumption, and financial illiteracy. If these other financial apps have success — that is, if their users have success, using their tool — then we’re all better off for it.

It’s not as though, should Wesabe be acquired, PearBudget can’t still help people live a more fulfilled life. If, through my apps, I’m able to help people live better lives, and in the process, provide a good life for my family, then I’ll have done a good job.

There is no zero-sum in this game.

More like Basho; Less like Tolstoy

No real comment to this post. Just the title.

I came up with that in the shower, as a way to describe my coding goals.

That’s all.

← Before After →