Pre-Cambrian House
Biz: , , , , ,
6 comments

I was poking around reddit and followed a link to CambrianCode.com, an all-Flash (ugh!) puzzle game. There’s a few of these “guess how to get to next level” games online and they all just annoy me. Yes, you’re so clever. No, I find patronization alluring. Yes, I’ll spend my time on this for no discernable reward.

The puzzle is run by Cambrian House, a mysteeeeerious stealth startup that has only a teaser page online. If there’s one thing that annoys me more than Flash puzzle-level games, it’s stealth startups.

So I went poking around some more and found a development copy of their website. And much to my surprise, it’s actually a darn cool business idea. So cool that after I wrote a whole “Mwaha, I’m raising the curtain early!” post I thought better of it and am only going to post this for now. It was clever and fun, there’s going to be a ridiculous amount of buzz around this company when it launches. And I got to register as user #9, which was damn funny when I noticed their “About Us” page lists 17 employees.

Confidential to CH in Calgary: it’s really tacky to litter your URLs with “.php” and get variables. Put the following in your .htaccess file and have index.php take apart the URL with the PHP code below and route to your different pages. URLs like “/community/member/Harkins” look much nicer than “/community/member-profile.php?users_id=9”. (Or ask me about mod_rewrite.)

<Location /secret_development_environment>
    Order Deny,Allow
    Deny from all
    Allow from 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 .cambrianhouse.com
</Location>

RewriteEngine On
RewriteCond    %{REQUEST_FILENAME}  -d [OR]
RewriteCond    %{REQUEST_FILENAME}  -f
RewriteRule     ^(.*)$  - [L]

RewriteRule ^(index.*) - [QSA,L]
RewriteRule ^([^.]*)$ /index.php [QSA,L]
function url_parse() {
        $url = $_SERVER['REQUEST_URI'];
 
        // we don't want to pass get vars or anchor tags on to the script
        if (strpos($url, '?'))
                $url = substr($url, 0, strpos($url, '?'));
        if (strpos($url, '#'))
                $url = substr($url, 0, strpos($url, '#'));
 
        //remove leading slash and possible trailing slash, store in $url
        if (substr($url, 0, 1) == '/')
                $url = substr($url, 1);
        if (substr($url, -1) == '/')
                $url = substr($url, 0, -1);
        if ($url == '/')
                $url = '';
        $url = explode('/', $url);
 
        return($url);
}
Cambrian House house responded to me.

Know a Good Linux Feed Reader?
Code: , ,
13 comments

Could anyone recommend a good feed reader for Linux? I need to be able to organize my ~160 feeds in folders, read an entire feed or set of feeds without having to click incessantly, and get already-read items out of the way.

Continue this post

Sociable Makes Blogs Happy
Biz: ,
3 comments

I just read a neat blog post on one guy’s experience using Sociable. It even has a nice graph. That’s a nice spike in traffic.

Continue this post

Writing and Formatting
Life: , ,
No comments

I just read a good post on Gadetopia about writing skills and had a small correction to offer. Go read it and come back (and read the two linked posts about Word and Frontpage use). I’ll wait.

Continue this post

Sociable Is The New Black
Biz: , ,
15 comments

One of the problems Sociable has is that it can be incredibly tacky. Yes, speaking as officially as possible, I’m saying lots of links to social bookmarking sites at the end of your posts are ugly. So let me address why I wrote a plugin that’s easily used to make blogs ugly.

A lot of web surfers have never heard of social bookmarking sites (SBS). Gasp, shock, horror, not everyone is up-to-date on the web 2.0 meme. I put a little introduction to SBS in the hover text for newbies, and deliberately didn’t make it editable through the admin interface so that it wouldn’t get changed into a thousand variations on “OMG CLIK & MAK MY BLOGG POPULER!”. Users can (and do) edit it in the PHP, but as Sociable users are not especially technically savvy it’s uncommon.

More experienced users say linking to SBS is hammy because not every reader uses them, because the sites provide their own bookmarklets and plugins, etc. I don’t disagree. Sociable exists because blog authors want more traffic and SBS are a great way to get it. Sociable exists for the same reason grocery stores put candy in the checkout lanes and Amazon lets you buy books with one click: as soon as readers finish a post they’re reminded they can share it with others, it’s the web 2.0 equivalent of the impulse buy.

I wrote Sociable because I wanted to add those links to the bottom of my blog posts. I thought writing a WordPress plugin would be fun, and other people might like to use it. With all that in mind, let me talk about the graphic design decisions I made.

By default, Sociable only adds icons to posts when they’re displayed on individual pages and not on the front page, archives, search results, or feeds. A whole lot of users set Sociable to display everywhere with predictably bad results. I added this option because I’ve seen blogs that don’t have (or don’t prefer to use) pages for individual posts, just archive pages. I weighed this decision heavily but decided in this case that it’s better to support more users than stop all users from shooting themselves in the foot. (This option is a pretty good analogy for the different design philosophies behind Unix and OS X.)

The other big default is to show all SBS icons, and it’s getting worse and worse. New SBS contact me about once each week to get added, so pretty soon the default is going to pass from humorous overkill into a sprawling mess. (And let me parenthetically tip my hat to the folks who’ve realized it’s intentionally silly.) I’m not sure what to do about this one yet. If I have them all off by default, I’m going to get inundated with mails from people who’ve installed it and rightly say it doesn’t work out of the box. Bad first experience. If I turn on only the most popular few by default, there’s an ugly “rich get richer” effect. I haven’t thought of a good solution and would appreciate advice.

Lastly, I tried to keep the visual clutter down as much as possible in the default CSS. There’s a caption, and then the icons without adornment, period. The CSS even has to deliberately strip away a lot of visual styling that different blog themes would otherwise add. Most of the noise comes from the fact that the sites’ icons are all visually dissimilar with different color palletes. Any random blog is guaranteed that most of them won’t match the blog theme, let alone each other.

At the moment I’m looking at it as a good incentive for blog owners to prune down the number of sites they display, but it probably needs more help. One user had a creative solution to display icons in grayscale until they’re hovered over, and I’ll include that feature (probably in the next version).

I hope I’ve addressed the valid concerns of critics, and I appreciate any advice for further improvements.

GoJobby Launches – Web 2.0 Job Site
Biz: ,
2 comments

I found GoJobby via Ajaxian and filled out a profile to check it out. It’s a neat site, but I’ve got a few concerns/suggestions and a big warning.

Continue this post

Sociable 1.0
Biz: ,
7 comments

I’ve been quiet the last week because my free time has been taken up by finishing Sociable, a plugin to the WordPress blog software. It’s the reason there are those cute little icons down below this post.

Continue this post

XmlHttpThrottleRequest
Code: , ,
No comments

Today in #luni we ranted a bit about developers. (I’m “Malaprop” in the exchange.)

Continue this post

Django Gets Transactions
Code: , ,
8 comments

Jacob Kaplan-Moss added transaction support to the magic-removal branch of Django just a few minutes ago. It’s one of the many changes to come out of the sprint. Usage will look something like this (based on Jacob’s docs and chatting with him in #django-sprint):

Continue this post

Versioning: The Next Big Thing
Code: , , ,
7 comments

In the web development world, anyways. So, in the grand scheme of things, maybe not a huge deal to anyone else. Versioning is going to be one of the biggest problems and opportunities there is in web development, and it’s going to take us at least five years to get it right.

Continue this post