Joe Crawford
Web Developer
I think in HTML and dream in JavaScript.
If I had any style I'd use CSS.

email: · twitter: @artlung
San Diego · California · USA

September 23rd, 2016

Gallery, exhumed.


In 2003 I set it up with Gallery 1. Here’s how it looked in 2005:


It’s been in a pretty ugly state for quite a while, unfortunately. But now I’ve revamped it, and that makes me happy.

Check it out at

September 22nd, 2016

That’s what the web is to me

You may have noticed that the masthead of my website has been updated with a new header. It has a nice background image that looks like this:


Or rather, you would have noticed it if you were visiting my site on a regular basis. That’s okay, lately I haven’t visited often either.

I do customized headers for the site periodically. At the time of this writing there are 101 of them. The first one was made in January of the year 2000. The latest one the other day. 101 in 16 years for a an average rate of about 6 per year. Some years less than others. The years after my mother died, far less. It’s interesting to see the changes in my life affect the amount of effort I put into this personal website.

But I’m still a believer in the web. The “indie web” some call it now. I’ve had a personal website in one form or another for 20 years. I registered “” for the first time January 30, 1997. That sounds right and sure sounds like a long time ago.

And yet it’s all quite finite. The state of the world. The state of US politics. It’s all quite a lot to bear. So diversions like this are enjoyable. I’ve let too many projects of mine go fallow for too long. It’s okay to take time off, but right now, this historical moment seems like a good time to remember the power of personal publishing. It’s time to take control of the many and various abilities to communicate to the world. I’m tired of every mechanism we have to talk to people filtered through entities who can censor us. I’m tired of moderating my voice through Facebook and Twitter because of community standards.

The net was once a bastion of free speech. Now I hear every other day about a person whose posts were taken down on Instagram. Accounts suspended for posting about police violence or a nipple. I’m tired of trolls and odious persons who make every space troll-space, insulting, making threats and threads of murder, rape and mayhem in response to people just trying to say their peace in this world. And I suppose mechanisms which take down posts and suspend accounts are intended to make this online space more livable. But in truth the world is not better off when we are afraid all the time to speak our peace. The world is worse.

Free expression is a human right. It’s a basic part of human dignity. But it’s rather higher up the ladder of the “hierarchy of needs.” It’s hard to take “free expression” seriously when people can’t find a decent wage-paying job.

But maybe free expression can save us? Maybe the tools we have at our disposal to tell our truth are the pathway to make the world a better place? People need human connection. Thomas P.M. Barnett wrote a book a few years ago and stressed the idea of “connectivity” as being crucial for nations to have prosperity. I remember many of his talks, all online, and in them he would use the phrase “disconnectedness defines danger.”

This phrase applies to people too. I think about the hard times in my life, and what kept me from destruction were those people who reached out to me to be there for me. Connection is the whole ball game.

And the indie web is a way to do that. It’s not the only thing out there, but it’s an important thing. I think it can bridge the gaps between people. Between people who are angry at each other, even.

I was going to talk about the changes I made to my headers archive page but maybe it’s not the interesting part of what I’m thinking about this morning. The source code is free for the viewing. You can view source on the HTML, and JavaScript, and the style sheets and have it and make your own thing if you want. That’s what the web is to me. It’s neat and connects people.


I’m not sure any of this makes sense but here at 4:44am, it’s what’s on my mind.

Thanks for your kind and considered attention.

crossposted to

September 20th, 2016

I give you one guess.


September 19th, 2016

Roman Numerals, Updated.

Back in 2012 I first added the Roman Numeral page, as I noted in this post. It’s ultra-simple but it’s also quite fun. I also removed jQuery from those pages. I made individual pages for individual numbers. I upgraded from the older version of Bootstrap that page uses.



September 18th, 2016

import-external-images 500 error with Ajax

I had a pile of back-images to import recently. For some reason WordPress Import External Images” was failing to work properly on the bulk task. It worked great on individual pages but for some reason the Ajax version would crap out.

Solution was to use a simple POST – accomplished by doing this in Chrome DevTools (or similar JS console) when logged in:

jQuery.ajax('/blog/wp-admin/upload.php?page=external_image', {method: 'POST', data: {action: 'backcatalog'}};

The plugin needs to be fixed. I swear it used to work.

September 17th, 2016

Yellow outfit lass.

from Instagram

September 16th, 2016

Cosplay 2016, and 2015 too.


Who dat?

This year for San Diego Comic-Con 2016 I dressed up on Thursday, Friday and Saturday.

Day 1 (Thursday) I was Walter Sobchak, a reprise I’ve done 2 times before. I dressed as Walter for Comic-Con 2015 and for Halloween 2014.

Day 2 (Friday) I dressed as Q–in his 21st century judges robes. I tried to make the necklace from Worbla but in the end it was not suited for that. I ended up printing out the necklace in color and assembling it in tape. Next time I do it I’ll be doing things a bit differently. It was by far my most well-received costume at Con ever.

Day 3 (Saturday) I dressed as Gideon Graves–from Scott Pilgrim vs. The World. This was fun but I didn’t get too noticed.

For San Diego Comic-Con 2015 I dressed up as Walter as I said. But I also dressed as Kingpin (Wilson Fisk):

That was pretty well-received given the Netflix Daredevil was fresh in folks’ memories but I also got a fair amount of being mistaken for Lex Luthor.

I’m in my 40’s, but I really do enjoy the fun of dressing up.

The Six Million Dollar Ecom


Sheldon Brown, Jasmina Tešanović, and Bruce Sterling


Sheldon Brown, Jasmina Tešanović, and Bruce Sterling on Septemer 9, 2016 at the The Arthur C. Clarke Center for Human Imagination — a great, inspiring night of talking about robots, industrial design, activism, design fiction, the Maker movement, and much else. My brains percolating with ideas from last night. — at UCSD Atkinson Hall.

Watch the video:

September 15th, 2016

Thoughts on being an Old Geek

I have opinions about Tim Bray’s latest post Old Geek because I am something of an “Old Geek” too.

I am lucky to have found a place to work where grey hair is not an impediment. But I’m well-aware that my age may tend to make me seem less employable.

But I’ve had as a personal value and vocation to be the most informed and most aware developer that I can be. I’ve never been the best or fastest coder, but I’ve always been a thoughtful and deep-thinking coder. I like to think I straddle wisdom and knowledge in a positive way and strive to provide valuable service alongside a positive personality.

Smart and gets things done as Joel Spolsky might say. I also like to make sure that to the best extent possible I understand how things work end-to-end, and to understand why we do the things we do.