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, 2016: 37 posts.

6 Months to another March MODOK Madness.


Our final days of MARCH MODOK MADNESS 2016. Repent!

Catch up with what it’s all about at

I submitted one back in 2012 (here). I need to do another one in 2017.

Skadi ended back in May

skadi-end One of my favorite webcomics, Skadi, ended back in May.

It’s a wonderful world we live in that artists can publish their own work for readers to see and read. It’s sad when what they make ends, for whatever reason, but it’s also the way of things. Things do end. I don’t want to get maudlin (too late) but it’s fun to see things start, evolve, and yes, end. Seeing the whole arc of something is kind of wonderful. Of course it’s also wonderful to see things continue on into the future indefinitely, but when they end one can see the totality of the work.

Anyway, you should read Skadi from start to finish. It’s a whole lotta fun.

And thanks Katie Rice for the wonderful work!

Raph Koster: Augmented Reality is an MMO

This insight is important. Quote of the day (well from July), from Raph Koster: AR is an MMO (writing about the incredible popularity of Pokémon GO:

I’ve said this before, but in the wake of the viral success of Pokémon GO, it needs to be said again. Augmented reality is just a virtual world, an MMO, a MUD even, with all of the same design issues, plus a few new ones.

He had to follow it up with I really did mean “MMO”; also catch his A Poké Roundup

Captain Marvel and Captain Marvel

Captain Marvel by CC Beck & Captain Marvel by Jamie McKelvie

As I continue to catch up on reading RSS feeds what I have not read in a long long while, the ArtLung gaze turns its eye onto the wonderful blog Every Day is Like Wednesday by run by J. Caleb Mozzocco who in 2014 published a terrific explainer on the many, many, really more than you think, versions of characters called Captain Marvel. It’s brilliant and if you like comics will prompt you to go look for one or more of these renditions.

Now, he also says in that article, again this was 2014:

And that’s why Marvel Studios will never make a Captain Marvel movie. Because when anyone hears the name, they think of at least two or three different characters.

And here in 2016 we can look forward (to March 2019) to Brie Larsen as Captain Marvel.

As a fortysomething, I remember Captain Marvel on screen – my tv when I was a kid. And this article about the 1974-1977 Shazam! does a nice job communicating exactly how preachy and ponderous, that show was. The haircuts also were bad:


I remember watching the show but the only thing I can solidly remember was a plot where a kid uses a radio on a private plane aircraft and disrupts the navigational avionics causing a catastrophe. Maybe the lesson was to be sure to not use electronics on planes? I can’t remember and despite being something of a pop culture junkie aficionado I have never had a desire to re-watch Shazam!

I’d love to see The Big Red Cheese on the screen again. But done right, though it’s hard to complain because I can always revisit the cinematic and very entertaining retelling of Captain Marvel’s story in the graphic novel Shazam! The Monster Societ of Evil by Jeff Smith.

But I really am looking forward to Brie Larsen as Captain Marvel.

Hulu detects proxy

Something interesting. Hulu can detect a proxy service. Good on them to provide a way around it. I’m not a Hulu subscriber. I got this message trying to load a sketch from Saturday Night Live embedded in an article about comedy.


Text of the message:

Based on your IP address, we noticed you
are trying to access Hulu through an
anonymous proxy tool. Hulu is not
currently available outside the U.S. If
you're in the U.S., you'll need to disable
your anonymizer to access videos on Hulu.

If you think you're receiving this message
in error, please submit this form.

Dallas Morning News endorses Senator Clinton.

We recommend Hillary Clinton for president–Dallas Morning News Editorial

Cogent, coherent argument from the Dallas Morning News. This election is really quite astounding on many levels.

And for those of of you clinging desperately to the idea a third party candidate can win: you fundamentally don’t understand the game. In the Super Bowl you really have to pick one of the teams that is in the final contest because that’s how it’s done. It’s nice to think other teams is best or feel they got robbed but the system eliminates those candidates numerically. Until we restructure the Presidential Contest, your 3rd party vote indicates a fundamental misunderstanding of the compromises inherent in the current system.

And if you’re voting for Trump because you think he’s going to upend the system? You’re a tool. Trump is for Trump. His continuously shifting allegiances and stances show a human being utterly divorced from notions of service, public works, or even coherent moral principles. He will sell you down the river for his own gain.

That last idiom was intentional.

Oh look links from 2014 I meant to post but never did!

Since it’s 2016 now I don’t even know if all these links will work!

No matter, posting anyway. Enjoy!

Pizza Declination

I did not have any. I didn’t walk over when it came. I didn’t eat any at all. There’s no plates on my desk from eating it.

There’s leftovers now. [Employee X] tells me so. He asks me “do you eat Pizza?”

My answer is “I didn’t have any Pizza.” The matter was settled and somehow I’m in the situation of giving the impression I don’t eat Pizza.

How on earth could I be an overweight citizen of the United States and not eat Pizza?

Flash of insight occurs.

I think a variation of this is why past co-workers have thought I’m gay.

That I never slobbered or joked about women. I don’t wax rhapsodic slobber over the pizza. I never remarked on “[coworker] is such a hottie” – never participated in kibitzing on attractiveness of fellow staff.

It’s possible.

Originally written in 2015

15 year old White House Reporter!

Charming story from my pal Dennis Wilen (who I’ve known for quite some time, here’s a 2001 blog post mentioning his wisdom) — check it out: A 15 YEAR-OLD AT WASHINGTON PRESS CONFERENCES!


from Instagram

it me

from Instagram


An important message from John Stumpf, Wells Fargo CEO

In today’s mailbag:


To our valued customers,

You may have seen news recently that some Wells Fargo customers received products and services that they did not want or need.

Every day we strive to get things right. In this instance we did not – and that is simply not acceptable.

So we are making it right.

The first step we’ve taken is to fully reimburse any customers who were affected by these actions.

We have been making some changes to how we do business over the last several years to ensure we are always aligned with our customers’ interests. To that end, the second change is to ensure Team Members in our Retail Bank are compensated on what matters most: delivering great experiences and ensuring positive outcomes – not on product sales. For more details on this, go to

Last week’s news did not reflect Wells Fargo at its best. Your trust and confidence in us is something we hold near and dear. I know I speak for our 268,000 dedicated Team Members when I thank you for giving us the opportunity to continue serving you and supporting your financial future.


John Stumpf
Chairman and CEO, Wells Fargo Bank

Further reading:

  1. March 2015: Unions Try to Get Between Banks and Their Customers An international labor group brings its campaign to curb sales quotas to the U.S.
  2. September 2016: Wells Fargo Fined $185 Million for Opening Phony Customer Accounts, Charging Fees Without Consent; Executives Go Scot Free
  3. Time to unionize customer-facing bankers

Step Count

I’ve no idea what to do with this. But I use Pedometer++ and had the data export and so voila, I have a graph of my steps.


See it at

I’m using the Google Charts “Scatter Chart” visualization.

And I put my code into a Github repository.

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.

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:

The Six Million Dollar Ecom


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.

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.

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.



I give you one guess.


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

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


It’s the morning after the debate. I’ve only watched a few smatterings of it while reading a fair amount of reaction from a lot of different quarters.

It seems like Mr Donald Trump is an impulsive, lying, selfish person. I guess we knew that, but he really showed if off last night. He’s a classic B.S. artist unfit to be President of the United States.

Meanwhile, Secretary Clinton is unflappable, steadfast, and a solid public servant with our best interests at heart.

Neither is my first choice. But one of them is lying and unfit. The other one I just donated $20 to elect. Vote Hillary Clinton and do what you can.

If you’re in the USA: Vote.

WebSanDiego’s 3rd Birthday

All this looking backward means sometimes I’ll be looking at ancient stuff. Here’s something from 2002. From Charles’ website: WEBSANDIEGO BIRTHDAY (that’s an Internet Archive Wayback Machine page):




Tagged “#DogsOfSlacker”


I’m sure having a lot of fun tagging stuff.

←August 2016October 2016→