Incredible Interest In The 30 Day Sprint

I was sort of expecting maybe one or two folks to actually get back to me about the 30 day June cooperative development sprint that I proposed the other day.  There are, hmm, substantially more than two folks interested.  Well, great, the more the merrier. 

In the interest of not totally overwhelming everyone and also keeping the amount of administration to an absolute minimum (I will be, shall we say, sort of busy that month… ;) ) , Sohail (fellow BoSer who wanted something like this to get organized) and I are going to set up a unified RSS feed.  (Basically, its like PlanetMicroISV except it only contains posts about this project, and it doesn’t have a dedicated website.  If you don’t know how to use RSS yet, I recommend http://reader.google.com)

We encourage you to subscribe to the RSS feed and post here with the category or tag level feed for your own blogs which is specific to this challenge.  For example, if you were me, and you were diligent about filing these posts under the category 30days, your feed address would be http://www.kalzumeus.com/category/30days/feed .  This will hopefully keep the signal to noise ratio of the unified RSS feed fairly high.

Participants In No Particular Order

(If your name isn’t on this list but you got in contact with me, it is either because I wasn’t quite sure if you wanted to be publicly acknowledged or I missed it in the torrent of email.  My apologies.)

Scott Kane

“I Hate Integers”

Steve McLeod

Sohail

Simon Shutter

Peter Row

Marcus McConnell

Bracken Mosbacker

Tarek Demiati

Joel Marcey

Yakov Vorobyev

If I missed you or you have a feed URL which you’d like added, kindly drop it in the comments to this post.  Akismet, the WordPress anti-spam package, sometimes doesn’t play well with links in comments.  Rest assured that even if it doesn’t pop up automatically I’ll be hunting to make sure it doesn’t get lost.

Alrighty, thats all the time I have for today.  Come back on the 1st for the official kickoff of my project, and hopefully my first of many comments on what other folks are coming up with.  See you in June!

Comments Off

More Talking and More Doing

I’ve been quiet for far too long, as mentioned in the last update.  Recently, in the continuing quest to take over the world one set of bingo cards at a time, I ran into a snag.  I can solve the snag, that isn’t the problem.  Thinking about how to solve the snag, however, made me realize that :

  • it requires programming effort
  • it is really difficult for a technically disinclined person
  • it affects a lot of link-chucking people, like bloggers
  • it gets in the way of some people making money
  • it has a solve-once apply-anywhere model to it. 

So, basically, it screams “I Am A Viable uISV Problem“.  And its got an obviously achievable minimal solution and an iterative improvement path which could keep me busy for quite some time.

When I realized this, I got that far-away look in my eyes, and I started to see code and database schematics and promotional schemes.  (Hey, THAT certainly didn’t happen last time… guess I’m learning…)  I just have to do this now.  So I snapped up a catchy domain name (might not end up using it, but at the moment I’m liking the branding potential) and will shortly grab my sketchbook and start capturing design documents.

I’m crazy busy at work and can’t do another one week long coding binge to get this accomplished, so it will be a longer term project.  Artificial deadlines work very well for me, and there has recently been a bit of a buzz about something called the 30 Day Challenge on the Business of Software forums. 

I’ve got little interest for anything which purports to be for complete Internet-commerce newbies, as it smacks of Make Money Online and I have my sights a little higher than $10, but I love the idea of a peer group and a deadline.  So I’ll make any of you readers out there a deal: I’m going to start developing my new project starting on June 1st.  I will offer it to paying customers on July 1st — exactly 2 years after BCC, come to think of it.

In the meanwhile, I am going to be posting about everything and the kitchen sink, like I usually do: a bit of code, a bit of design, a bit of marketing, etc.  If you also have an itch that needs scratching, and you get in touch with me by the 1st, we can informally develop and blog in tandem.  This will be very informal — no rules, no mandates, just a bit of community and some of that lovely “Its early and rough but at least the page displays, let me show you my new toy” interaction that we’ll surely need after long nights and missed weekends.  Rather than develop a separate domain for the purpose, I’ll just post my contributions to the discussion on my blog — I suggest folks try that as the barrier to entry is nothing and we’ll have plenty of issues building websites without having to build a website about building our website.

This offer is open to as many people as want to take me up on it, for whatever you want to do.  (Within reason — I’m not going to devote 3 seconds of my life to considering the merits of Porn Collector 2008 or Payday Loanz4u).  I’m interested in seeing what you come up with, and can’t wait to show off my new baby as well.

Come back to the blog on the 1st for the first of many posts on the topic.  (Ideally I’ll be blogging daily but can’t commit to that.)  I plan on unveiling at least the problem domain and general gist at that point — having done this once I’m much less worried about getting cloned these days than I used to be.

Comments Off

What I've Been Up To

Hideho everybody.  Its been about a month since I updated the blog, which as you’ve probably surmised means I’ve been pretty busy with real life.

Day Job — We have about 7 non-Japanese speaking Indians arriving from our sister office.  They’re here to learn Japanese business practices and be better able to lead our outsourcing efforts in India.  Given that I’m the only person at the English who speaks English and doesn’t answer to “Mr. President”, it looks like I’m going to end up being their manager one way or another, so I’ve been doing preparation for them so that they can both get some work done once they get here and enjoy their stay.

Bingo Card Creator — Answering emails and not a whole lot else.

Next Project — Doing some research.  Its a long, long way off at the moment.

Bonnie Lass — Going through some adjustments, particularly as she just started working.  I’m torn by a desire to be supportive when she says “I was grading homework until 6:30 last night!” and a desire to remind her that I’m a Japanese salaryman and that 6:30 is practically a day off.  (Speaking of which, did anyone see the NYT article about Japan having a shortage of engineers?  The NYT blames cultural factors and malaise.  I have a simpler explanation: there is no pay premium for engineering over a normal college degree, which means that the starting salary for a computer programmer is about $24,000, and you’re more or less required to work 12 hour days at a minimum.)

Hobby — The last several years I’ve seen my interest in video games declining, but Senjou no Varukyuria (Battlefield Valkyrie) has brought it right back.  Its difficult to describe… let me try: its World War II Europe in an alternate universe where the I-can’t-believe-its-not-Japan country that looks more like Holland has an army populated by bread bakers who moonlight as Norse goddess killing machines.  That is actually pretty close to normal for a Japanese game.  Despite the heaping helping of weird, the plot and characterization is better than anything I’ve ever seen in a game or movie (I was crying at one point), and it actually functions really well as a game.  (Its hard to describe — strategy RPG with FPS elements, whose boss fights resemble intricate ballet, with bullets being exchanged.)  Plus the entire thing looks like its hand-drawn in colored pencils despite being full, gorgeous 3D.  I promise you, you’ve never played anything like it.. 

So basically, when I get home at midnight and have two hours to kill before going to bed, its generally been here instead of the ISV.  But I’m on the last mission so things should be getting back to normal soon.

Comments Off

I'm starting to feel the itch again

It was weird — while showing one of my coworkers the beauty of famfamfam icons for possible use in sprucing up one of our online applications, I mentioned that every time I see a good, pretty icon set I get the urge to make an application just to be able to use them.

“So why don’t you?”, he asks me.

And lately, I have not been able to come up with a good answer for that question.  I mean, work is killing me but I have enough time to waste it on browsing the Internet.  I certainly am not hurting for startup funds this time around, and I know what needs to be done to get a business up and running. 

So I’ve started kicking around some ideas.  Of course, I’m not exaggerating on work is killing me, so it will have to be something where I can see progress with a bunch of 2 hour mini-sprints after getting in the door around midnight.  That suggests it should probably be a web application.  Alas, Java, I knew ye well…

I have also been having persistent dreams of a particular application.  They’ve gotten so vivid as to include database schema…  but the waking me knows that the business model is terrible.  Just asking for total failure.  Nobody could ever pay money for it.  And yet, I would really want to see this get made…  We’ll see.

Further updates in the usual space.

Speaking of which, I haven’t been blogging much lately, part for lack of energy and part for lack of ideas.  I have been considering doing some severe surgery to the blog to collect much of the information in a more permanent, sensible manner — so that you could, say, click on a category listing for SEO and then get material about that in an organized order rather than just seeing my random thoughts on it arranged by date.  That would be a large project, though, and at the moment I want for time.  So if you have ideas for shorter things that you’d like to read in the meantime, drop me a line in the comments.

Comments Off

The Big Book of Getting People to Link to You

Today, on the Business of Software forums, a newer software developer asked how I managed to get people to link to me.  The motivation in getting links is both to get visitors directly from the websites you are linking to and to influence the search engines into prefering your site over the other fifty zillion on the Internet when they decide “Who is worthy of this searcher?”, on the theory that someone who has convinced unrelated webmasters to link to them must be doing something right.

But getting links can be a little challenging for some small businesses.  For one thing, us software developers don’t typically start with massive amounts of marketing or sales talent, and getting a link is effectively selling someone on the proposition that you’re worthy of them spending their time, attention, and social capital on you.  

As my anonymous questioner points out, “it is quite difficult to get people to link to a website which is selling a product.”  There are a variety of reasons why many people believe that to be so — one is that many people who are otherwise free with links resent the commercialization of the Internet.  Another, I feel, is that folks who make money with websites are not that great at explaining the value of linking to that website to people who will not see money from the link.

Let’s see if we can’t fix that.  I’ve been successfully building links to Bingo Card Creator for going on two years now.  Apparently my ideas on the matter were consistently interesting enough to convince Aaron Wall (a SEO and marketing professional of some note, who writes SEOBook) to give me a free subscription to his service if I kept posting them there.  (So I guess that is one way to get a free link — flatter folks and give them stuff for free.  Guess what, all joking aside, this works great!  But I digress.)  So I want to walk you through some of the things I’ve done which I have found successful and which I think you can adapt to your own businesses.

1)  Make some friends, fans, or fans into friends.  A while ago I had this idea that all anyone really needs to succeed in business on the Internet is to have about 1,000 fans.  I was going to blog about that and then got beaten to the punch by 1,000 True Fans, which is just an excellent article.  The author talks about how 1,000 people buying what you write, be it music or software, is enough to support an independent IP creator.  

I want to approach the idea of how fans can support you in a bit of a larger sense.  One way a fan can support you, without ever spending a dime, is by considering you worthy enough to tell their friends about.  For example, your fan might have a blog with a readership of a handful, a few dozen, or a few hundred people.  If your fan were to develop an emotional attachment to your success, for whatever reason, they might decide to blog about you just to share their passion with people that they care about, because that is often what we do with our friends. 

For example, my participation in the uISV (small software makers) community has gathered me a handful of very good friends and fans.  Vanishingly few of them will ever need what I sell, but they like the advice I give on this blog, they like that I am generally generous with my time for helping other folks trying to start up businesses (even in the cut-throat, dog-eat-dog market of selling bingo cards to elementary school teachers), and hopefully they like my personality.  So many of them will, for example, cheer when I have successes and actively try to bring them about.  One way they can is by spreading my ideas (i.e. linking to me), and they often decide to do that with no special prompting from me.

Truly an amazing phenomenon, that, and this is one absolutely anybody can participate it.  Find your local community, for any value of local you can name, and engage in it.  Use all of that collected wisdom from kindergarten — share, play well with others, don’t pull little Suzy’s ponytails.  Give folks a reason to like you, and the links will follow it.

2)  Blogging for your customers and people like them.

Blogging for your customers is different than what I do on this blog, most of the time.  For example, the typical elementary school teacher will never understand the value of getting their personal page linked at — it just does not advance them towards a goal that they value.  But suppose I got around to fulfilling my many-times-postponed resolution about opening a teaching activities blog on Bingo Card Creator. 

This would immediately make the site more linkable — blogging is quintessentially about having a conversation on the Internet with the basic utterance containing hyperlinks.  Its like they invented a form of communication to line up with what Google thinks is a sign of value.  Since your blog will typically not be commercially focused, but rather focused on providing value to your customers and/or people like them, it avoids much of the difficulty of getting folks to link to your product pages.  There is easily explainable value to linking to a post which is useful (“My readers will find this useful”), emotionally resonant (“Wow, this is emotionally resonant and I want to share this experience with other people”, well-written, funny, etc. 

(Incidentally, the only difference between your customers and “people like them” is that the second group hasn’t given you money.  Yet.  I say have an optimistic point of view about things.)

3)  Create resources your customers/people like them can use.

The very first thing I ever did to get links to my site was to create a list of Dolch sight words.  In brief, that is a piece of information that almost all my customers understand the value of (all you need to do is say those five words, bam, they think “Ooh, I want!”) but that few of them have memorized or written somewhere convenient in their notes.  Generating them was trivial, as they’re in the public domain.  Writing them up nice and pretty took me an hour.  That page has been linked to about 65 times according to Yahoo, probably half of them by people other than me.  These include school districts, libraries, teacher blogs, a government agency or two, and other folks who Google (in its infinite wisdom) decides to value the opinion of highly.

(Speaking of which, a particular competitor of mine had an interesting twist when he copied this idea: he bought an available domain just for that one resource, which makes it look like the official place to find the information and gives a pretty sweet bonus for ranking for the exact query [dolch sight words] in Google.  I think that tactic is worthy of the most sincere form of flattery, particularly if you know a resource is going to be very popular.  Domains are cheap, bordering on free when you consider how many thousands of people you’ll be showing your software to every year if you own the right ones.)

4)  Creating resources that other people like to use.

This next one is a bit of a mind-bender for many folks: while topical links are the best kind of link, in general, links which are not topical are still worth something, too.  Potentially a lot of something.  Thus, particularly when you are in an industry which is naturally link-poor (say, something in which the typical customer doesn’t own a blog and where most websites are 5 pages large, hosted on Geocities, and have Under Construction signs on them), you can get a lot of value out of expanding the reach of your offerings to include folks who are link-rich.

There are any number of folks who are link-rich.  Most readers of my blog are programmers, and we tend to be near the bleeding edge of the tech adoption curve.  If you find folks who are near the bleeding edge of the tech adoption curve for programmers, the odds that they give out links on a regular basis approaches 1.  (Heck, they probably have already gotten bored of some Web 3.0 ways to do so which I haven’t even heard of yet.  Maybe you can telepathically insert links directly into the eyeballs of anyone who has ever used Twitter to access Facebook through an iPhone these days.)

On group which I happen to belong to is Rails programmers, and when I write useful information on how to solve business problems in Rails (such as how to make Rails even more friendly to search engines than it is out of the box), they flood me with links.  (I think that page has gotten about 100.)  Granted, it doesn’t go direct to my product pages, but it increases my domain’s overall trust and I can control the links on the page to channel some link juice wherever I want it.

5)  Do it with style.

Always remember that there are, according to rigorous scientific studies, approximately 53,234,324,658,342,190 web pages out there that people could be looking at rather than your site… and those are just the ones that include pictures of cute kittens. 

Visually engaging your readers works.  The Internet, I swear, it sucks the literacy straight out of people, but arresting photography, stunning site design, cute icons, and the like make it much easier to rise above the Don’t Care threshold and get folks to recommend you to other people.  You subconsciously trust almost anything more if it is presented in an attractive fashion, and in some cases you might decide to share something just because it is pretty.  (It certainly worked for Clicky getting a link from me earlier this week.  Looks like it has now worked twice!  Just a pretty, solid site design there.)

Speaking of sharing things for the sheer beauty of it, it is sakura season here in Japan.

Photo of Sakura in bloom (mankai) taken in Gifu City, Japan

(I took that one two years ago in a park in Gifu City.)  We now interrupt your photo viewing enjoyment to continue with an important message from the article proper.

6)  Do it to scale

Imagine you have one really good idea for a resource to attract links.  Maybe it is one beautiful picture of sakura.  Now imagine that you could expand that to pictures of a hundred sakura, all beautiful, organized in some effective manner which both shows folks the ones that are most beautiful and hints at the richness which is only a mouseclick or two away.  Do you think you would get linear returns to the extra photos, i.e. 100 times the worth of one photo?  No.  I think this strategy is super-scalar — if you are good with information architecture, and site design, and in quickly communicating the value of what you have to the reader, I think that doing things in larger numbers turns you into something qualitatively different instead of just quantitatively different.  When you need a picture of beautiful sakura (and who doesn’t?), you don’t go to the guy who has one picture.  You go to the guy who has a hundred pictures, because he has established himself as the Authoritative Source on Pretty Cherry Blossom Photos.  (That title may be copyright and trademark of this lady I found on Flickr earlier.  Simply stunning.  More broadly, the whole “we aggregate a few million pictures, most of them are stunning” thing has certainly paid off for Flickr, since when I wanted to find someone with pretty flower pictures I went straight to Flickr to search because even artistically-disinclined me knows that Flickr is the place to go when you want pretty pictures.) 

Its not just pictures.  One resource which, oddly enough, helps you sell a Bingo Card Creator is having a large collection of printable bingo cards.  Accordingly, I have a few hundred on my site and am adding more all the time.  I can, and have, elaborated on how specific choices of my site design work to convey the richness of the offering to prospective visitors and linkers.  More on that on another day.  It is working out fairly well for me, and as you can see from this handy graph my visitors love it and it is getting more popular all the time.  (I don’t have a graph of inlinks as a result of that resource but if I did its shape would be similar.)

7)  Make your content easy to share

You might not have noticed, but that kitten photo above was built with the Lolcat Builder, because I am a lazy bum and do not want to get out Paint.NET just to make myself a one-liner.  My sloth is their gain, because the straight-line path to getting that joke onto your screen is to link to the image hosted at Lolcat Builder. 

Most of you are programmers.  With just a little bit of ingenuity, you can make your content easy for your customers to embed on their sites.  This could range from anything from programatically composing linking directions (see, for example, the instructions I give to folks for share these cards on my site) to making a widget that lets people get even more goodness out of your content.  (Heck, the widget itself could be the content.) 

For example, Delicious (I hear there are periods in there somewhere — and, darn it, I refuse to use them) makes it really easy for you to embed Delicious links in your site.  Something like, say, this one, which if you click on it will let you bookmark this article. 

 
Whoopsie, WordPress.com has decided to protect me against Javascript injection by not letting me post this widget here. Grr. See here for instructions on how to do it on your site, or you can take a look at my site where I have examples running.

You might find that useful — if you do, please, go right ahead.  If not, marvel on the fact that without any coding whatsoever I was able to add functionality to my blog post by doing Delicious a favor, and do some thinking on how you can get this dynamic to work for you.  (One of Aaron Walls suggestions to me was that I make widgets to distribute my most popular bingo cards to teachers with blogs and the like.  That is definately on the list of things to do after I achieve any level of expertise with Javascript.)

8)  Write like an Authority

In any field where the cost of replicating a success is zero there is going to be one far-and-away winner and then there is going to be a massive cliff separating them from second place.  Content creation on the Internet typically fits the bill pretty well — winners win, because why would you go to the second best place to get something you need when the first best is, well, better at the same price (free). 

(This does not mean first place is necessarily actually better than second place.  Wikipedia is quite rarely the best single resource on the Internet for something you want to know about, but it is often the first that springs to mind, and thus it is the best at being Just Good Enough For Right now, which is apparently a market segment worth owning.)

This is the basis for the Filthy Linking Rich phenomenon — the page which achieves authoritative status for a particular concept, query, or idea will typically tend to achieve self-reinforcing authority for it.  I am linking to Filthy Linking Rich because I was explained the concept by someone (who I have forgotten!) who used Filthy Linking Rich to explain the concept that someone else (who I don’t know!) used Filthy Linking Rich to…  etc etc, the rabbit hole goes pretty deep, and that article will continue getting backlinks until the end of time.  (October 2004 — that is practically antediluvian in Internet years.  Yikes, back in 2004, we didn’t even have Youtube, did we?  And yet there is that article from Internet prehistory still merrily humming along.)

I like to call content which tends to stand the test of time evergreen content.  While there is some merit in producing things which will be almost useless in a week (like many of my holiday bingo cards — nobody wants St. Patrick’s Day bingo cards 50 weeks out of the year), particularly if you can be the first or best or both at it, most of the longterm value is in the evergreen content.  (Or being the authority for breaking news, because the authority status you earned is evergreen itself, as long as you keep writing — I think I’ve been visiting Instapundit for 7 years now because Glenn Reynolds is to me what newspapers were to my grandfather’s generation.)

I’ll write an article on writing like an authority later, hopefully sometime this week when I have a bit of time to spare.  If you’ve got any particular questions about it, or any of the other points here, please feel free to drop a comment.

Comments Off

Pretty, New Competitor To Google Analytics

For those of you who are a little askance with the idea of handing over your information to the Google Borg, there is a new analytics package out there you might like: Clicky.  Having used it for a day or two, it doesn’t offer all that much unique from Analytics which is useful to a uISV, but it has some usability wins (no need to tag URLs on your website, automatically tracks downloads and inbound/outbound links, etc), and there are features to stalk particular folks across your site if you’re into that sort of thing.  Personally I wouldn’t suggest it but if you had a webapp with a privacy policy which allowed it it might be a useful support tool.

One thing folks sometime neglect when making a webapp, and I’m certainly guilty, is making it look gorgeous.  Clicky does not have that problem.  I’ll be honest: I signed up precisely because it had the “new car smell” to it.

Comments Off

Blog Has A New Address

Its time for a little spring cleaning and I’m (finally) clearing out the cobwebs around here.  As a result, I’ll be moving my blog from WordPress.com to a self-hosted WordPress installation, changing the theme a bit, and reorganizing things substantially.  Your old bookmarks and links will continue to function because WordPress is redirecting the old URL to here, but I’d suggest you update them to http://www.kalzumeus.com anyhow.

Exceptionally diligent readers will remember that Kalzumeus was the code name for my webapp which did not end up actually making it to production.  Sadly, I just got too busy with the day job to get it out the door, and I lost faith in the business model.  Plus tweaking Bingo Card Creator has given me plenty of opportunities to play around with Ruby on Rails under the hood.  I swear, even in the all-Java, all-the-time world of my day job I find myself dreaming in Rails (as you would be, too, if you had just put in a 60 hour workweek doing a partial reimplementation of ActiveRecord and having to fight the environment every step of the way to make it happen).

Anyhow, I am generally pretty poor at naming things.  Kalzumeus is hard to spell and not exactly the most natural of words, but I picked in it a fit of self-indulgence from a character I wrote into a story many years ago.  He was a sarcastic, intelligent, and slightly hyperactive dragon, and makes as good a mascot as any.  More importantly, he is the very first bit of IP I came up with while old enough to understand what the word meant, and I have a little bit of nostalgia for the moment of creation.  I think I’ll get a picture done of him for the masthead… 

For branding purposes, eh, I expect most people will continue to find this blog through bookmarks or Googling variations of “Patrick the bingo card guy” for the time being.  If you’re just starting out your uISV journey, do as I say and not as I do here: obscure in-jokes which are not easy to spell are probably not the best of ideas.

This reminds me: I have had the papers lying around for incorporating Kalzumeus LLC for a while but have never gotten around to it.  Ahh well, one of these days when I have a reason to do so…

(Speaking of which: I finally found out how to move a blog off of WordPress without screwing up all your readers and search engine juice.  First, purchase a domain of your choice.  Second, point the domain’s DNS at ns1.wordpress.com , ns2.wordpress.com, ns3.wordpress.com for about a day.  Third, go to your WordPress control panel, click upgrade, click domain, click add the domain, pay WordPress $10 through Paypal, and then they will set up the new domain as an alias of your WordPress.com blog.  This isn’t quite what you want.  Go back to the domain panel and click the selection to use the new domain as primary, which will redirect yourblog.wordpress.com to it.  You’re now paying WordPress $10 a year for, essentially, a 301 redirect from your old blog to your new blog, and for blog hosting, but you can cut them out of the second half of the equation.  After you’ve announced the change and waited a month, cut your DNS settings to the hosting provider of your choice, where you have a WordPress blog set up with your old WordPress.com postings pre-loaded.  Nobody will even notice the second changeover, including Google.

 Why would you want to do this?

  • Control over the domain — you can now install whatever you want on it
  • A somewhat more visually distinctive design than the oh-so-wonderful WordPress blue
  • Branding, if you’re into that
  • Gets rid of WordPress AdSense ads on your site
  • You can commercialize your site, if you’re into that stuff
  • You can integrate your blog with other content on the same domain.  I’m planning on doing some fun stuff later, after I get the new site changed over and looking pretty (likely at least a month from now). 
Comments Off

Download Sites: Important or Not?

Folks ask this once in a while on the Business of Software boards: exactly how important are download sites to a uISV’s promotion strategy? 

Confirmed Installs By Download Location in March 2008:

 Download Sites Are Useless

Any questions?

(OK, it isn’t quite that cut and dried.  I’d still recommend doing submission via Robosoft for the SEO benefits of the backlinks it will get, particularly for a new uISV.  However, in terms of driving downloads, download sites are all but worthless.  It is easy to figure out why if you watch users looking for software: rather than going to www.download.com and searching for it, they just Google it to start out with.)

Comments Off

Speeding Up Web Page Rendering

I have the good fortune to be on a fast, fast, fast Japanese connection and as a result don’t typically wait too long to view webpages.  This makes me forget sometimes that the rest of the world doesn’t get nigh-instantaneous page loads, which means I don’t often design with this factor in mind.  However, somebody pointed out that the new sidebar buttons were loading last for them, and as my front page can potentially take 4 seconds to load (longer than a significant portion of visitors stay!) I didn’t want that.

Why is a bit of a long story.  First off, the sidebar is literally the last thing in the HTML body element (with the exception of various bits of Javascript).  This is to push up the main content area in the document, because search engines treat stuff near the top as more important and I want pages to rank for their own content not the content of pages they happen to link to on the sidebar.  This means that, if you parse the webpage starting at the top and going down, you come across those IMG tags pretty much dead last after everything else on the page.

Now, how do browsers download assets (images, Javascript, CSS, and whatnot)?  Basically, there is a FIFO (first-in, first-out) queue maintained per host name.  For example, if I have the web page reference 10 images on www.bingocardcreator.com, then those are listed from first occuring to last occuring in the queue.  The browser then, following HTTP specifications, starts downloading two at a time per queue.  This means that if you have, say, 25 objects to grab from your own domain and 1 offsite Javascript the offsite Javascript will start downloading about as soon as its discovered while the last object from your domain waits in line.

So that is the technical explanation.  What was happening was my front page loads 2 fairly sizeable screenshots totaling 200kb of the total 350kb required to load the page, and as these are both ABOVE the sidebar when you’re reading HTML linearly, they were blocking the download of the buttons.  That is certifiably ungood, particularly as one of the screenshots isn’t even visible when you open the page (it is far below the fold, most people won’t even see it!)

However, since the queue is maintained per hostname, if I could only host on a hostname other than www.bingocardcreator.com, I could have things download in parallel.  Happily, my webserver (Nginx) makes it really simple to set up extra names like, say, images1.kalzumeus.com which are essentially the same as the main domain in every way except they are, well, named differently.  Thus tricking your browser to download from them in parallel.  I set up 4 domains this way and used that to do a bit of manual queue optimization to ensure that the images with the highest payoff (big beautiful buttons!) load fastest. 

And to think I was wondering why so few folks tracked in CrazyEgg were hitting the images compared to before.  Now I know — they were waiting so long they had already found a text link before engaging the image.  The results are visibly different even on my monster Japanese connection.  (Its like the Godzilla of latency… in a good way?)

Rails offers a way to do this automatically, but I wouldn’t recommend it if you have only a few pages to hand optimize.  The reason is simple — randomizing access to domains results in good average case load orders but if you can hand-optimize things you blow it out of the water.  (For example, there is about a 40% chance that the large image would block one of my conversion buttons with random host names.)

Comments Off

Still More Graphical Fiddling Going On

Now that Easter is over and the accompanying surge and then dearth of traffic has passed I thought I would get cracking on the graphical twiddling.

The site, as it looked five minutes ago:

Old Header And Buttons

 The site, as it looks now:

New Header and Buttons

There are also buttons in matching styles on the card download pages.  You can see it on the page about, say, a set of bingo cards about Japanese customs.

This set of logos is all done by Logo Samurai, including the header (with integration work by Gursimran).  Since it is technically difficult to split test the header on my current setup I’m going to have to sort of fudge it (i.e. look at the metrics for the next two weeks and see if it causes major changes or not).   Not the world’s best experimental design but oh well…

Comments Off