Content Delivery and Format Fail

screenshot from Ney Year's DaeThe pic on the right is from The Berrics’ “New Year’s Dae” video. The skating is amazing—well worth a dollar—and the site’s registration and checkout was painless, but the rest has been a disappointment:

  • There’s no way to download this “downloadable part,” as it’s advertised. You must install an Adobe Air application, which downloads the video.
  • There was nothing in the checkout process to let me know I needed to install Air first. The only link to “download instructions” (who would think they need to read this?) was on the “add to cart” page. Once most people have checked out they’ll have to run to Google what an .air file is.
  • The app isn’t digitally signed, so the publisher reads “unknown” and it asks for “unrestricted” access to my system. Does not inspire trust.
  • You can only watch the video via the app! So no fancy controls you might want while, say, watching a skateboarding part.
  • Considering I downloaded 150MB for a 5 minute video, the quality is astoundingly bad. See the horizontal lines in the screenshot? They’re a constant distraction and it all looks even worse at full screen. Every video on the The Berrics site looks better than this. Like most Rodney and Daewon parts, the filming is just not exciting, but it’s forgivable.
  • Since I downloaded it on my wife’s PC last night, the download link in my account is already “expired”, so I can’t install it on mine.

The pic is actually from a copy I found immediately on Vimeo, highlighting the absurdity of this level of copy control. Lesson: Only paying customers have to deal with DRM nonsense.

Update: 5 days later, the video no longer plays.

Gainesville: PHP/Javascript Developer Position Open

The Office of Distance Learning is seeking a web programmer with considerable experience with PHP, Javascript, and SQL to aid in the creation of and maintenance of several web and mobile applications.

The person we’re seeking will need a strong understanding of and experience with:

  • PHP5
  • Javascript
  • object-oriented and functional programming styles
  • related technologies such as SQL, CSS, the HTML DOM, Apache, and HTTP

Preferred applicants will be able to demonstrate:

  • sites/projects worked on, including open source projects
  • code created that is highly extensible, loosely coupled, testable, etc.
  • ability to create APIs/frameworks to be used by others
  • intuition of impact of code on underlying systems and client-side experience
  • ability to communicate well with teammates and end users

The applicant must be comfortable:

  • coding with third party libraries like Zend, jQuery, YUI, etc.
  • customizing third party applications like WordPress
  • using source control and documenting code

The Office of Distance Learning is an exciting, creative environment where we manage and customize applications like WordPress, Moodle, and Elgg, and serve thousands of users.

Search jobs.ufl.edu for Requisition number: 0806823

Allen Hunt: Gay marriage is worse than incest

On December 13th (just rebroadcast on 97.3 The Sky), radio host Allen Hunt, in a conversation about a recent adult incest case, stated that “incest is easier to defend than gay marriage because…at least incest is opposite sex and has the capacity to create new life.” Earlier the implication was made that gay marriage is “re-engineering society” inviting a slippery slope to incest marriage.

I’m all for freedom of speech and have no desire to legislate disgusting views like this off the radio, but more rational people need to pay attention to what hosts like Hunt/Savage/Levin are broadcasting in their community, and be willing to let local stations and their advertisers know when these hosts step over the line.

Update: BTW, Hunt’s brilliant argument—sexual behaviors that might create life are better than ones that don’t—would imply that incest, sex with young girls, and rape would all be preferable to gay sex, hetero sex using contraceptives, and masturbation. If you’ve ever enjoyed sex without intent to conceive, here’s to the Constitution for stopping big thinkers like Hunt from using the government against you.

Closure Compiler is smarter than you

I’ve known about Google’s Javascript minifier, Closure Compiler, for awhile, but after sending a couple snippets through it today I realized it’s a pretty impressive piece of work.

Input:

function howManyMatch(arr, pattern) {
   var l = arr.length;
   var total = 0;
   var i = 0;
   for (; i < l; i++) {
       if (pattern.test(arr[i])) {
           total++;
       }
   }
   return total;
}

Output:

function howManyMatch(b,d){for(var e=b.length,c=0,a=0;a<e;a++)d.test(b[a])&&c++;return c};

Or with whitespace re-added:

function howManyMatch(b, d) {
    for (var e = b.length, c = 0, a = 0; a < e; a++)
        d.test(b[a]) && c++;
    return c
}

Optimizations:

  • shortened parameter names and removed unneeded semicolons (YUI Compressor already did this much)
  • combined multiple var statements into one declaration
  • moved that declaration into the first section of the for loop (to save one semicolon!)
  • removed brackets around blocks with only one statement
  • replaced if statement with && operator (to save two bytes)

Several of these are often done by JS devs by hand. With closure compiler on tap, we no longer have to. Just concentrate on readability and maintainability and let CC worry about size optimization.

Less is More: Billie Davis 1969

“Nobody’s Home to Go Home To” was a 1969 B-side for Billie Davis that I have a weakness for. The bass playing is incredible and the song cleverly jumps between three keys, but the strings and backing vocals kind of take over the recording. I noticed this morning that they’re both panned hard right and the vocal is centered, so I got to work.

  • Dumped the right channel to make a mono track of the left, leaving all the essentials: drums, bass, piano, elec & acoustic guitars, a quiet organ, tambourine, and the vocal.
  • Made several surgical cuts to bass frequencies that took over the mix at points.
  • Mitigated some incidents of “breathing” and “pumping” in the breaks. This is where a compressor had turned up the gain while the band’s last note of a section was fading out. This can be done to great effect (after the snare hit at 0:21 in Elvis Costello’s “Busy Bodies”), but on this track it just sounded like a someone with coffee jitters was leaning on a fader, and it made the snare hits that preceded the following sections unnaturally loud.
  • Raised some high frequencies to bring some sparkle to the vocal
  • Added a tiny bit of stereo echo to widen the sound

In the result, you get a more interesting intro (IMO) and a tighter rhythm section, and you can actually hear the piano, the backbeat snaps of the electric guitar, what sounds like a low temple block on the snare hits, and Billie’s quiet falsettos at the end of the choruses.

Billie Davis – Nobody’s Home to Go Home To (mrclay.org mix)

[audio:http://www.mrclay.org/wp-content/uploads/2010/12/Billie-Davis-Nobodys-Home-To-Go-Home-To-mrclay-remaster.mp3|titles=Billie Davis – Nobody’s Home To Go Home To (mrclay remaster)]

Here’s the original .

Kristof on Haiti & Trade

I can’t agree more.

Ultimately what Haiti most needs isn’t so much aid, but trade. Aid accounts for half of Haiti’s economy, and remittances for another quarter — and that’s a path to nowhere.

The United States has approved trade preferences that have already created 6,000 jobs in the garment sector in Haiti, and several big South Korean companies are now planning to open their own factories, creating perhaps another 130,000 jobs.

“Sweatshops,” Americans may be thinking. “Jobs,” Haitians are thinking, and nothing would be more transformative for the country.

Let’s send in doctors to save people from cholera. Let’s send in aid workers to build sustainable sanitation and water systems to help people help themselves. Let’s help educate Haitian children and improve the port so that it can become an exporter. But, above all, let’s send in business investors to create jobs.

Otherwise, there will always be more needs, more crises, more tragedies, more victims. Back in the cholera treatment center here in Mirebalais, health workers were still disinfecting the bed on which Mr. Merilus had died when, in the tent next door for milder cases, a middle-aged woman suddenly collapsed.

Nurses splashed water on her face but could not revive her. So they rushed her to the main cholera hospital tent to take the newly vacant bed there.

And that is the brutal cycle of poverty in Haiti that only jobs and trade can break.