MaisonBisson

a bunch of stuff I would have emailed you about

I’m Voting Republican

No, I’m not likely to vote for any republican candidates, but this is funny. From the producers:

I’m Voting Republican is a satirical look at the likely outcome of another four years of Republican government. The not-so-subtle message behind the film is the importance of a united bloc of citizens willing to take the time and effort to vote Democrat in order to improve America’s domestic and foreign policy.

Written and directed by Charlie Steak, who previously appeared in Synthetic Human’s award-winning film Drain, I’m Voting Republican features 28 actors and would not have been possible without their efforts and the support of many others. In the research during the development of the film, we came across the quote “Democracy is not a spectator sport.” We hope you agree. Check it out, pass it on, and please, register to vote. Democrat.

Web Application Design Book Recommendation

I’ve learned to ignore contests on the web. Banner ads that promise prizes if I click the right pixel are the least offensive, but the contests that have me creating content (and then force me to give up my copyright to it) for another person’s gain infuriate me. So when I saw author and experience […] » about 300 words

Web Development Languages

David Cloutman pointed to Craiglist’s job ads as an indicator of programming language popularity. Here’s the hit counts for “web design jobs” and “internet engineering jobs” in the Bay Area:

<td>
  PHP
</td>

<td>
  Java
</td>

<td>
  Ruby
</td>

<td>
  Python
</td>

<td>
  PERL
</td>
<td>
  167
</td>

<td>
  246
</td>

<td>
  85
</td>

<td>
  98
</td>

<td>
  109
</td>
<td>
  110
</td>

<td>
  71
</td>

<td>
  22
</td>

<td>
  19
</td>

<td>
  31
</td>

<td>
</td>
 
internet engineering jobs
web design jobs

Cloutman has a few ideas for what the numbers mean, but I’m just entertained by the data. (Note: he corrected his original numbers.)

Truth

Have you ever argued with a member of the Flat Earth Society? It’s futile, because fundamentally they don’t car if something is true or false. To them, the measure of truth is how important it makes them feel. If telling the truth makes them feel important, then it’s true. If telling the truth makes them feel ashamed and small, then it’s false.

–from Louis Theroux‘s The Call of the Weird

Site Back Online, Further Downtime Expected

This site and a number of other projects are hosted on a Mac Mini that normally sits on my desk. Thing is…my desk moved. And, unfortunately, I didn’t confirm the firewall rules for the network in my new office before bringing the machine over. Thankfully Chris was happy to put the Mini on a different VLAN, and that solved everything (my other machines remain on the new “secure” network…ugh).

In the no too distant future, however, I’ll be moving the site again. This time to a private server somewhere. Varnish, the HTTPd accelerator, is a big part of my plans for that, though. So if I’m lucky (or smart, but better to bet on lucky), I’ll be able to do it without any additional downtime. Hopefully. And even if there is some downtime, it won’t be 24 hours again.

Search Trends vs Community Standards

Via MotherJones: Pensacola residents Clinton Raymond McCowen and Kevin Patrick Stevens, producers of a very NSFW website last week faced a judge in an obscenity and racketeering trial for their work. The interesting thing? The defense planned to use Google search trends to demonstrate community standards. “Time and time again you’ll have jurors sitting on […] » about 200 words

Censorship, Unpublishing, and New Media

The actual reasons may never be discovered, but Boing Boing, the perennially top ten ranked blog, has “unpublished (NSFW)” stories by, about, or mentioning author and sex columnist Violet Blue (NSFW).

Much has already been said about the Orwellianism of “unpublishing” and how it conflicts with the ethics of the web, as well as the incongruence between these actions and Boing Boing’s position on web censorship, media manipulation, and revisionism. And on July 1 Boing Boing itself joined the discussion. Thad didn’t go so well.

One theory suggests that Blue’s April 2007 column slamming Amanda Congdon may have touched this off. Another theory suggests that Boing Boing was pressured by (or simply wanted to please) closely embedded Federated Media. And if you think you know how this will play out, then play the news game (above), where they suggest this all started with a lovers’ spat.

My interest in this, however, is in how new media like Boing Boing are struggling with growth from small personal sites to multi-million dollar businesses ($one million in 2006). The question now is if the site will survive the transition without alienating the community that makes such sites successful in the first place.

New Theme

For the past year or so I’ve been wanting to design a non-bloggy theme for this site — a beautiful theme with a magazine-like front page showing the most recent post in a handful of categories. But I’m further from it now than last year, so it’s time to move on. Which isn’t to say […] » about 300 words

WordPress Survey Tools

Lorelle and Samir both point to a number of plugins to do surveys within WordPress, but neither of them say any of them are that good. And Samir is pretty disapointed: “at the end of it all, I never did find my ideal online survey tool.”

Survey Fly is the best recommendation from both of Lorelle and Samir, but it isn’t WP2.5 compatible and was las updated in summer 2006. It’s also limited to tracking only one survey at a time. Ugh.

Optimizing Inserts/Updates On MySQL Tables

When doing a bulk insert/update/change to a MySQL table you can temporarily disable index updates like this:

``` ALTER TABLE $tbl_name DISABLE KEYS ```

…do stuff…

``` ALTER TABLE $tbl_name ENABLE KEYS ```

From the docs:

ALTER TABLE ... DISABLE KEYS tells MySQL to stop updating non-unique indexes. ALTER TABLE ... ENABLE KEYS then should be used to re-create missing indexes. MySQL does this with a special algorithm that is much faster than inserting keys one by one, so disabling keys before performing bulk insert operations should give a considerable speedup. Using ALTER TABLE ... DISABLE KEYS requires the INDEX privilege in addition to the privileges mentioned earlier.

While the non-unique indexes are disabled, they are ignored for statements such as SELECT and EXPLAIN that otherwise would use them.

Truemors Powered By WordPress

In the “They Did This With WordPress” category (though from about a year ago, sorry) comes Truemors, a Digg, del.icio.us, Reddit clone from Guy Kawasaki.

Calling it a clone might be a backhanded non-compliment, but the truth is that it does a credible job in this increasingly crowded space*. And it’s built on WordPress.

The relevant plugins are WP-PostRatings and Share This. Electric Pulp did the design, and the whole thing apparently went live quickly on a tiny budget.

Anyway, add this to the growing list of sites using WordPress in some rather interesting ways.

  • My real feeling is that all these sites could probably learn something from MetaFilter, where the inward facing parts are as important or more than the outward facing bits. Have you ever heard of a del.icio.us meetup? MetaFilter has them regularly.

1975 Programming vs. Today’s Computer Architecture

Poul-Henning Kamp, the guy behind the Varnish reverse proxy, talks about 1975 programming:

It used to be that you had the primary store, and it was anything from acoustic delaylines filled with mercury via small magnetic dougnuts via transistor flip-flops to dynamic RAM.

And then there were the secondary store, paper tape, magnetic tape, disk drives the size of houses, then the size of washing machines and these days so small that girls get disappointed if think they got hold of something else than the MP3 player you had in your pocket.

And people program this way.

They have variables in “memory” and move data to and from “disk”. […]

Well, today computers really only have one kind of storage, and it is usually some sort of disk, the operating system and the virtual memory management hardware has converted the RAM to a cache for the disk storage.[…]

Virtual memory was meant to make it easier to program when data was larger than the physical memory, but people have still not caught on.

MySQL Bug?

After an upgrade to MySQL 5.0.51b on RHEL 5 I started seeing curious results in a fairly common query. Here’s a simplified version:

``` SELECT ID, post_date_gmt FROM wp_posts GROUP BY ID ORDER BY post_date_gmt DESC LIMIT 5 ```

What I expected was to get a handful of post ID numbers sorted in descending order by the post_date_gmt. Instead, I got a list of post IDs sorted in ascending order by the ID number. Something like this:

``` 3 2007-05-21 00:00:00 4 2007-05-21 00:00:00 5 2007-05-21 00:00:00 6 2007-05-21 00:00:00 7 2007-05-21 00:00:00 ```

After some fiddling I discovered that the GROUP BY clause was causing a problem. So this query works:

``` SELECT ID, post_date_gmt FROM wp_posts ORDER BY post_date_gmt DESC LIMIT 5 ```

…and outputs the results I expected:

``` 337832 2008-06-20 15:20:03 335991 2008-06-17 13:00:42 337777 2008-06-02 12:15:46 337390 2008-05-28 00:00:00 337831 2008-05-28 00:00:00 ```

The GROUP BY clause may be unnecessary, though it was originally written in to accommodate conditions where a JOIN (which is often added when the query is dynamically generated) causes MySQL to return multiple rows representing the same record ID.

Still, isn’t this behavior weird? It’s certainly different from previous versions.

Could BuddyPress Go The Distance?

Facebook and MySpace are trying to turn themselves into application platforms (how else will they monetize their audience?). Google is pushing OpenSocial to compete with it. But no matter what features they offer their users, they user still orbits the site.

Scot Hacker talks of BuddyPress changing the game, turning “social networks” from destination websites, to features you’ll find on every website. And the “social network” is the internet, with all those sites sharing information meaningfully.

Some might say this is little more than overgrown XFN, but Tris Hussey thinks Ning is on the ropes and Facebook should be worried.

At least the design shows all the right stuff.

Detecting Broken Images in JavaScript

We’ve become accustomed to link rot and broken images in nearly all corners of the web, but is there a way to keep things a bit cleaner? K.T. Lam of Hong Kong University of Science and Technology came up with this sweet trick using jQuery and readyState to find and replace broken images: jQuery('span#gbs_'+info.bib_key).parents('ul').find('img.bookjacket[@readyState*="uninitialized"]').replaceWith('<img src="'+info.thumbnail_url+'" […] » about 200 words

Find Stuff By Minimum Bounding Rectangle

MySQL offers ENVELOPE() to find the minimum bounding rectangle of a geometric object. The result is a polygon with four segments, defined by five points. It took me a while to make sense of it, partially because the only documentation that I’ve run across so far for POLYGON() syntax is in the ENVELOPE() function mentioned […] » about 200 words