Mad, Beautiful Ideas


About this Archive

This page is an archive of recent entries in the Internet category.

Homeownership is the previous category.

JavaScript is the next category.

Find recent content on the main index or look in the archives to find all content.

JS Array lastIndexOf


Recent Entries

Recently in Internet Category

My Thoughts on Google's WebM Decision

Yesterday, Google made an announcement that they were going to drop H.264 support from their Chrome browser. It’s gotten a lot of reaction online, and for good reason, it’s a big decision. It makes Google the third of the big five browser makers to take a stand for open-standards are refuse to distribute the H.264 decoder, the other two being Opera and Mozilla, boht of whom have never supported H.264 in their browsers. Of course, the two that still support H.264 are Safari and Internet Explorer, and on our sites, that’s at least 45-55% of our traffic, and we have an abnormal skew towards Firefox, I suspect.

I believe strongly in Open Standards, which is why I support Google’s move here. While the MPEG-LA won’t charge me directly for a decoder, or for content I post online, I’m still having to pay for it at some level. H.264 in Firefox would limit Linux distributions ability to distribute Firefox, and it could potentially lead Mozilla to violate the GPL licensing on Firefox. Plus, it would cost Mozilla million of dollars. Theora, based on VP3, has been around for near a decade, and WebM, based on VP8, has Google’s own backing. Incidentally, both are supported by Firefox, Chrome and Opera already. And both are available royalty free for any usage.

While I support Google in this move, I am not naïve enough to believe that they are doing it for the common good. Removing H.264 removes the licensing they are needing to do currently for Chrome and Android, and potentially YouTube. Not supporting H.264 can potentially save Google a lot of money, especially if they do a simple video editor embedded into YouTube and available on Android (both of which I guarantee are coming). Plus, as hardware decoders for WebM become available, as I suspect they will in the next several months, Google can start moving away from H.264 on mobile, and start making more and more of their content on YouTube not available to H.264 only devices.

And Mobile is where this battle is really focused. Even if this WebM issue doesn’t break the back of their competition in Mobile (WebM decoders can be written and integrated into future software updates), it will give them a head-start for a while, and that may well help them dramatically.

Most content online is already H.264 as well, since most video distributed via Flash (by far the most common transport), is H.264 encoded. Content providers are unlikely to want to re-encode their media to support this new format, and that (understandable) reluctance, stands to entrench Flash even more. Which is sad. This may not end up being the year we finally get away from Flash for video.

Ultimately, this whole kerfuffle is the fault, in my opinion, of the W3C. They didn’t have the browsers interface with the OS to use the OSes decoding frameworks, most likely at the request of the content publishers who didn’t want to have to guess at OS support for their media. But they also didn’t give a minimum set of codecs that the Video and Audio tags must support to be complete. There was a lot of fighting at the time, with Apple in particular being hard behind H.264 (because of Hardware decoders in iOS devices), and Mozilla and others were strongly opposed. I understand why the W3C refused to take a stand, they couldn’t and still move forward with standardizing HTML5. But it is a failure that lead directly to the situation we have today.

Links: * WebM * W3C * HTML5 Video

Thoughts about Mutli-Selection on the Modern Web

We have several applications where we need to let the user select multiple items. HTML has pretty much always offered multi-select through it’s forms in a fairly simple manner, complete with how it will be rendered on screen:


   <label for="fruit">Select a fruit</label>
   <select name="fruit" size=4 multiple>
    <option value="apple">Apple</option>
    <option value="apricots">Apricots</option>
    <option value="banana">Banana</option>
    <option value="cherries">Cherries</option>
    <option value="durian">Durian</option>
    <option value="grapes">Grapes</option>
    <option value="kiwi">Kiwi</option>
    <option value="kumquat">Kumquat</option>
    <option value="mango">Mango</option>
    <option value="strawberry">Strawberry</option>

It’s a simple bit of UI, but the fact is, most users have no idea how to use it. We have a multi-select box that is populated with rows that the user would generally have need to access. For most users, there are a half-dozen or so of these rows. Other users, can receive an authorization that provides them dramatically more rows. When we first launched this UI, which was a change from the old system of select boxes that did not make it clear what data the user was limited to under the stricter interpretation of the law that we were using.

The change, however, made selecting multiple records seem harder to our users. They simply didn’t know that SHIFT+Click to select ranges or CTRL+Click (Command+Click for you Mac users) to select discrete items. Now, some sites will drop in instructions to help users figure out how to multiselect, but as our user base was relatively small (particularly who demanded multi-select) we proceeded without it.

However, I have recently re-launched Washington State University’s Schedules of Classes site, and in re-doing the search form, I felt I needed a better way, particularly since one of the select boxes has ~150 items. To deal with that, I utilized a pair of select boxes and server-side sessions to allow the user to select one (or many) items from the ‘source’ list on the left to the destination list on the right.

Option Mover

This works okay, and I still use it for progressive enhancement. It should eliminate the problem of users not knowing how to select many options, though that remains to be seen, and I have seen it elsewhere. I think this makes a reasonable amount of sense in situations like this, where the number of elements that will be expected in the right column will be fairly small.

For a more involved solution, I opted to investigate re-inventing multi-select boxes, by looking at how they are done in Mobile. On Android, a mutli-select box causes a modal dialog to appear, where the select items are represented by checkboxes (it uses radio buttons for single-select). Now, a modal dialog is wholly unnecessary on the desktop, but the checkbox option makes a lot of sense.

To support this, I wrote a YUI module (which I’m investigating releasing through the Gallery, there are copyright issues with my employer, though), which is in use on that page. It is a widget, which is attached to an element containing a label, and an input[type=select] element (at least one, it will ignore any more that it sees).

Checkbox List

The markup generated looks like this:

<p class="yui3-form-checkboxlist>
   <label for="fruit">Select a fruit</label>
    <li><input type="checkbox" name="fruit" value="apple">Apple</input></li>
    <li><input type="checkbox" name="fruit" value="apricots">Apricots</input></li>
    <li><input type="checkbox" name="fruit" value="banana">Banana</input></li>
    <li><input type="checkbox" name="fruit" value="cherries">Cherries</input></li>
    <li><input type="checkbox" name="fruit" value="durian">Durian</input></li>
    <li><input type="checkbox" name="fruit" value="grapes">Grapes</input></li>
    <li><input type="checkbox" name="fruit" value="kiwi">Kiwi</input></li>
    <li><input type="checkbox" name="fruit" value="kumquat">Kumquat</input></li>
    <li><input type="checkbox" name="fruit" value="mango">Mango</input></li>
    <li><input type="checkbox" name="fruit" value="strawberry">Strawberry</input></li>
.yui3-form-checkboxlist > ul
   overflow: hidden;
   list-style-type: none;

It’s more verbose, but in a progressive enhancement situation that isn’t necessarily a problem, but more importantly, the form output that comes out of this when POSTing matches what comes out of the original implementation, so whatever you use to get the selected items on the server for a mutli-select should work here as well. I am not sure I have exceptional accessibility on this widget yet, but it should be possible to do fairly easily.

The more I look at this, the more I kind of question if I shouldn’t have just served up the checkbox list from the server. I suppose it’s a question for me of accessibility, particularly without JavaScript enabled, but I suppose the implementation I am enhancing may not be as accessible as it could be, even with title’s set to describe what the buttons do. Still, the concept of replacing multi-select boxes with lists of checkboxes makes a lot of sense to me, though it’s not as semantic for those browsers that already render in this fashion.

Meet me at YUIConf 2010!

For the next sevral days I’m going to be a YUIConf, Yahoo!’s Front-End Engineering Conference. I expect I’ll have plenty of stuff to talk about here after the event, particularly Node.JS related, as I intend to avail myself heavily of that track.

For those who are here as well, I look forward to meeting you! For those who are not, the sessions will be posted online sometime soon after the conference. I’ve been here in the Bay Area since Saturday, and my only regret now is that I leave pretty early on Thursday, so I won’t have much time for exploration.

Tip The Web

1 Comment

This summer, I wrote about a little micro-payments system called Flattr, praising it for making donating money to websites both easily budgetable. At that time, I had two major issues. First, Flattr’s userbase was really small, as they were limiting it for early Beta. They’re still beta, but they’ve gone to open enrollment, and they seem to be doing much better for it.

Second, you don’t get to choose the amount donated. Assuming you stick to the €2 per month minimum, what you’re Flattr’d will receive either a lot of money, or virtually none, since the amount donated is simply the monthly amount divided by the number of Flattr’ings you’ve done. This means that you have little control over the value of each click. Now, I use Flattr for several participating podcasts, and it’s interesting, but this second point has been an absolute deal breaker for a lot of people I’ve shown Flattr to.

Almost immediately after I blogged about Flattr, I got a message from Eric Ferraiuolo, a person I’m lucky enough to work with through the YUI team, regarding a project that he’d been working on for quite some time, TipTheWeb. I was given access to the early staging, but now that the service is finally into Beta, I can talk about it.

TipTheWeb is a non-profit which is seeking to change the web fundamentally for the better. Like Flattr, TipTheWeb is a micro-payments system which allows you to pay content providers a small sum of money for the work that they’ve done. However, unlike Flattr, TipTheWeb tips URLs, not content. This means that content providers don’t need to register their content, or use something like the Flattr JavaScript API which can add content via a sort of hack, I’m still holding out for the Flattr REST API, as that should be able to simplify use of the JavaScript in a really good way.

But that problem simply doesn’t exist with TipTheWeb, content can be tipped easily based on it’s URL, and as a content provider, all I need to do is ‘claim’ the content via OAuth or other standard methods. Content Providers can even claim content after it’s been tipped, and TipTheWeb will be able to disburse the tip later.

From a usage standpoint, you either donate by going to TipTheWeb and entering the URL into their website, or they’ve got a bookmarklet that you can use to donate with two clicks without ever leaving the site that you want to tip.

Once you’ve made a few tips, you go to TipTheWeb where you can fund, or not fund, as many tips as you’ve made. Of course, to start, you’ll need to make a donation to TipTheWeb, which is currently done via PayPal. But here’s the best part of that, if you donate $5.00, you get the full $5.00 to tip with.

But, clearly the content provider needs to be on TipTheWeb to recieve tips. If they are not, then TipeTheWeb will, after 6 months, return the tip for use elsewhere. I don’t know if TipTheWeb will be making efforts (automated, of course) to inform content publishers of outstanding, unclaimed tips, but that is a very tricky problem.

For now, I think that TipTheWeb and Flattr serve slightly different purposes, and may be able to coexist, but I love that TipTheWeb doesn’t require me, as a content provider, to jump through any hoops to submit content. Currently, Invite Codes are required to get into the Beta, but I hope that the closed Beta will be fairly short.

How To Be Internet Famous

I know that at South-by-Southwest Interactive this year, Brian Brushwood is hoping to give a talk on how to Cheat, Scam, & Swindle Your Way to Internet Fame . However, I think I’ve managed to break it down into a few pretty simple steps.

First off, you don’t need to be extremely prolific. You’re YouTube Channel probably doesn’t even need to have anything. But then you just need to post one truly awesome video.

Now, it helps if you’re a attractive young woman, who’s video is about a subject close to any geek’s heart, but anything truly awesome will work. Of course with even Laptops these days more than capable of editing video, and reasonable quality HD video cameras available for under $1000, the barriers to entry are simply amazingly low compared to where they were even five years ago.

Once you’ve made and published your awesome video, with the Internet being what it is, you’re going to get at least some views almost immediately. Now, this is where the trick is. The video needs to get in the hands of the right people who recognize it for the awesomeness it is. Sometimes, as in the video above, the awesomeness is impossible to ignore. Other times, videos can languish for years before attracting mass attention.

Identifying the ‘right people’ is nearly impossible, so it’s usually not worth trying to bother. And if you’re not already Internet Famous, your own ability to pimp your own goods is diminished, however, it never hurts to spread the link around on Twitter, FaceBook or whatever.

However, you won’t get really big, until someone with resources notices you. For Brushwood, this was Revision3. For Rachel Bloom from the video above, it was Penn Jillette. Penn talking about it, happened just prior to a fairly large increase in views according to the YouTube stats. A large number of the comments on the video reference Penn’s talking about the video, though most of the more recent ones are…colorful.

Now, Penn Jillette is a legitimate celebrity, no doubt. But he also have over a million twitter followers, so when he posts a link, people see it. Not to mention all the people who see those who’ve retweeted those links. The numbers increase really quickly.

But that’s the game. The only way to become Internet Famous is to produce awesome content. Be persistent. And have just a little bit of luck.

The Future of Journalism

1 Comment

There is a lot of discussion about Journalism these days. Do Bloggers count? How important is it to be linked to a traditional newspaper or television news outlet? I’ve come to the decision that people who ask those questions generally don’t make a distinction between reporters and journalists.

Accoring to the wiktionary, a reporter is the same as a journalist, and while this may be correct in the traditional (and modern) uses of the terms, I believe a distinction must be made. I think a Journalist, is the person who is actually out in the field, researching, experiencing, and investigating the story, while a reporter is little more than a talking head, presenting the journalistic work done by others. Think Brian Williams today, as Anchor of NBC Nightly News, Williams, who I find to seem very intelligent, does very little of the actual investigation himself. Like in most jobs, it seems that eventually you work your way up into positions that require less travel and more management of the people doing the more direct work. I’m not saying that Management doesn’t work at all, just that the responsibilities tend to be different and less focused on the work of the people in the trenches.

As for those others questions, like the one about Bloggers, there are absolutely some bloggers who are journalists. Me…I’m more of a pundit. Espcially when I write posts like this.

As for where I think Journalism is going? I think most of the major, most popular, news sources are pretty light these days. First off, there are several layers to our news system. The Associated Press is the source for an enormous number of stories reprinted or rehashed nationwide. If there is anything wrong with that, it’s not with the AP (aside from individual bias from their writers), it’s with the fact that the local news outlets can (and do) pick and choose what they present, and a lot of stories, that the AP might be reporting on, are nearly impossible to get, since the AP has no business model that supports giving access to their feeds to the general public.

But there is a perspective that many journalists, or at least many American journalists, are flat ignoring really important stories. I’ve heard many people say that if you want to know what’s really going on in US politics, watch the BBC News. But there are tons of other stories that aren’t being told there. That, I believe, is where some bloggers are able to fill the niche on a more local level, covering their municipality or beyond. Even further than that, there are stories that most journalists just aren’t interested in covering, particularly in any sort of in depth way.

The Internet, and much more largely the available of relatively inexpensive high-quality recording equipment, is changing that quickly. Sure, a lot of the video content is not very intriguing, but Current has built a large portion of it’s programming out of Viewer-Created Content (VC2), and some of the stories that come out of that, are really interesting, that approach stories from interesting perspectives, but it’s not necessarily the in-depth reporting we want out of journalists.

Enter another Current program, Vanguard. The Vanguard team, does a really good job of presenting a story with an even tone. I won’t say that they’re completely without bias. Certainly, the correspondents have their own opinions, and they show sometimes. And some stories, it’s impossible to not feel opposed to one side of an issue.

But then there are stories like this week’s episode, “American Jihadi”, about a kid from Alabama, who is now fighting a Jihad in Somalia against the Ethiopians. The correspondent, Christof Putzel, does an amazing job of telling the story without condeming or endorsing the work of the subject of the story. It’s an amazingly told story, and by far the best episode of Vanguard in a season that has had some excellent episodes.

I have become a firm believer, that smaller news organizations like this, who have no mandate other than to find interesting stories and report on them, honestly and truthfully, will change the way journalism is done. I had no idea that the US backed Ethiopia’s invasion of Somalia, though I’m not surprised at all. The level of the conflict in Africa is simply not covered on the news outlets that I have more direct access to (or at least traditionally). Some people may watch the episode above, and walk away with more negative attitudes toward Islam, but the fact that the main person telling the story was the best friend of the jihadi, a muslim himself, and someone who doesn’t want or have that life, lends an enormous sympathetic level to the story.

A Micropayments System That Might Actually Work

I’ve been interested in the micropayments space for quite a while. The web is full of content that is great and helpful, but the barriers to actually paying for it are pretty high. Using something like PayPal, as many sites do, is problematic because PayPal’s fees are high, and it takes a LOT of clicks (and typing) to make the donation.

My feeling has been that what we need is a company that lets you put a few dollars in an account, and then with a few clicks, donate a few cents to whatever you’re interested in supporting. It appears, however, that someone has likely beaten me to the punch, at least potentially. Flattr is a recently released project based out of Sweden, which takes this Micropayments problem and makes it dead simple for the end user.

How does Flattr work? You begin by setting up a Flattr account, at this time either by requesting an invite or getting an invite code from a friend. Then, you seed your Flattr account with funds, it’s worth doing several months at a time to avoid being too heavily dinged on processing fees. Choose how much money you want to give per month, from €2 to €100. From there, you just keep an eye out for “Flattr This” buttons, which you can see at the bottom of this post (and every post on my blog), or in my sidebar. Your monthly Flattr budget will be split evenly among everything that you’ve Flattred.

If you’re a content provider, then Flattr does require that you Flattr things every month in order to qualify to earn any revenue, which I see as being more of a way to seed the system. However, I don’t see it as a big problem, you should always be able to find something to Flattr. If there is a weakness to Flattr right now, it’s that the Beta status, and particularly the slow ramp up of the invite system, weakens Flattr’s ability to reach critical mass and usefulness. I’ve put Flattr up on my blog on hopes of earning even a small amount of revenue (my goal is to make my blog at least pay it’s own expenses), however, I suspect most of my readers have never heard of Flattr, but even now, having read about it, that doesn’t make it trivial for you to sign up and begin using Flattr.

Some people I’ve spoken to about Flattr feel that the equal disbursement Flattr does every month isn’t ideal, they want to be able to add ‘weight’ to their Flattr’s, giving some people more than others each month. Frankly, I think that overcomplicates the problem (Flattr only allows you to Flattr something once per month, that something can be a Blog or an individual entry. Flattring an entry doesn’t preclude you from Flattring another entry or the blog however). The beauty of Flattr is that you just don’t need to think about what you’re donating. I’ve allocated €2 per month for the time being, and if I want to Flattr something, I don’t need to decide how much to give. It’s a one-click process, requiring no more thought than ‘That was awesome, I want to donate to that.’ It’s this unthinking simplicity, and the ease of budgeting the static amount per month, that makes Flattr appealing to most users.

That said, I don’t think that Flattr is the end of the story of Micropayments on the web. It seems great for many uses, but I think there is room for those more…thoughtful…disbursements where you do want to decide how much to donate. However, I think Flattr has a lot of potential, and I sincerely hope that they can continue to grow and thrive.

An Appeal for the EFF

The Electronic Frontier Foundation is again doing a fund drive trying to bring in more money. This time, however, they’re running a little contest. Whoever raises the most money for the EFF by June 30, 2010, will win two tickets to Defcon 18 this summer.

I’m a supporter of the EFF, because they work hard to protect rights that are important to me. I’m a blogger and a coder. I have interest in [maintaining fair Copyright], avoiding draconian surveillance, and fighting against the abuse of patents.

I’m not going to claim the EFF is perfect, but their work is mostly centered around ensuring that we use our technology for freedom instead of having it used against us, and issue deeply personal to me. Plus, I’ve always been heavily into information security, and would love to attend Defcon.

I would immensely appreciate if you, my reader, would be willing to donate even a few dollars to support the EFF, and potentially get me a trip to Defcon this year. Even if I don’t win, the work the EFF will be able to do with even a small donation is important, and your tax-deductible donation would be a great help.

Click Here to Donate

Apple, REACT, Gizmodo, and Search and Seizure

As has been all over the web, Gizmodo paid an unnamed source $5000 to get their hands on a prototype iPhone that an engineer had left at a bar six weeks or so ago. The source had apparently tried to contact Apple several times to return the phone, and Apple had remotely killed the phone almost immediately after it had gone missing. Since then, a lot of people have comedown hard on Gizmodo, and their parent company, Gawker Media, for “Checkbook Journalism”.

First off, I don’t think that Gawker did anything wrong, per se. They saw an opportunity to get a story, and they did what it took to get that story. Unfortunately for Gawker, the incident happened in California.

Why’s that a problem? Well, in the State of California, taking possession of lost property, is the same thing as stealing it. Fucking ridiculous.

Admittedly, in the State of Washington, you could be accused of theft if you didn’t make due diligence to return the goods. In California, you are legally required to turn the goods over to the Police for a period of time, in Washington I don’t see any such requirement, but I’m possibly missing something.

One this is clear. Gizmodo hasn’t broken trade secrets law. The moment the new iPhone left Apple’s property, even if it was disguised, Trade Secret protection vanished. However, Gizmodo did quite clearly under my understanding of California statutes regarding theft take possession of stolen property, and given the ridiculous sum they paid for it, they knew what they were doing. No way Gawker would have cut a $5,000 check if they didn’t think it was a legitimate scoop. For that reason alone, Gawker could be in pretty bad legal trouble if Apple chooses to press charges.

Which they have. On Friday, California’s Computer Task Force, REACT, searched Giz Editor Jason Chen’s house, taking possession of every computer and storage device they could find. Kicked in his front door to serve it, since he and his wife were out to dinner at the time.

Now, it’s entirely possible this was an illegal search and seizure, because of Chen’s status as a journalist and the fact that his home was his office. Of course, as the story above points out, that may not be a valid argument, but it would be intersting if all the evidence that has been collected is non-admissable.

This is a story to watch. Surely, Gizmodo’s behaviour was pure douchebaggery, but Apple builds such a mystique with their privacy, that it’s little surprise that Gawker (or someone else) would go through this sort of trouble. Frankly, I don’t think things are going to go well for Gawker Media on this one. Apple’s pissed, and California law seems to be on their side. However, I do think Gawker and Gizmodo will be able to use this situation to further bloody Apple’s nose with bad PR. And that’s where the fallout from this is going to be most interesting.

Nerd Test Meme

It’s time for one of my rare Wednesday Meme posts! Yeah…I know.

On Planet Ubuntu the last few days, people have been taking the Nerd Test and posting their results. I was curious, so I gave it a shot.

I am nerdier than 95% of all people. Are you a nerd? Click here to take the Nerd Test, get geeky images and jokes, and talk on the nerd forum!

Now, at the time I did this, everyone was only posting scores in the 60s and 70s, so I felt I had to verify on the newer Nerd Test 2. says I'm an Uber Cool Nerd God.  Click here to take the Nerd Test, get nerdy images and jokes, and write on the nerd forum!

I knew I was a nerd, but I didn’t think the number would be quite this high…