Movie Review: Dark Country January 31st, 2010

Dark Country is a film about a newly married couple driving through the desert. It tries to combine the cheap budget of a single setting of Phone Booth and the comic book like photography of Sin City – and fails painfully every step of the way.

My main problem with this movie was continuity. It jumps all over the place and has too many holes. I noticed when I checked IMDB that I’m not alone. Since I don’t advocate watching this piece of trash, below is a little bit of a spoiler.

There are two timelines set in present day and some time period that is hard to detect and is only once vaguely refereced as 30 years ago. They drive around in cars from the 50’s, 80’s, and 2000’s and use cell phones intermittently. If you’re trying to decode all of this nonsense, then you’re probably putting more thought into it than the makers did.

A lot of time is spent in a car with very bad green screen. The backgrounds are a joke. Everything is just a black background.

Wikipedia says this movie had a budget of $5 million. Where did it go? I hope every penny went to the actors, because even though they didn’t do an amazing job – everything else was a complete flop.

Rating: (1/5)
Hover over the stars to see why

Anyone who disagrees, I’d love to hear why! Leave me a comment or tweet @KristopherIves with your two cents.

RSS Feed Notifier for Windows January 30th, 2010

There are some sites I have to interface with that are uncompromising. Thankfully, there are RSS feeds to even-out some of the crummiest sites around. Feeds take out the hunting for important content in a jungle of non-sense. While they aren’t anything new, it’s nice to talk about something that isn’t a just a buzz-word.

Readers vs Notifiers

Many applications, including Google Reader, are in the business of organizing your content for you. This isn’t my primary use for a feed, so the focus is on notification RSS applications. I’m looking for something like Twhril or GMail Notifier but for feeds that is:

  • Minimalistic – It shouldn’t try to do everything under the sun. I just want it to read feeds, notify me, and let me navigate into my default browser.
  • Unobtrusive – It shouldn’t bug me all the time, and has to provide a readily available option to toggle notifications.
  • Lightweight – I don’t want to run a Virtual Machine (VM) just for my feed reader. Python is okay though.

Feed Notifier

This is a very simple and sleek application by Michael Fogleman. It’s simple to use and easy to integrate with Firefox, and it’s new and still being actively maintained. It weighs in at 8MB, which I thought was a bit much, but I think this has something to do with including Python. This is closed source, which is my only gripe.

RSSNotifier

This is a free (GPL) notifier written in Java, so it runs everywhere. You can run it from the web by clicking here (WebStart) or download and install it from their homepage. When I found the project I saw they didn’t have an installer, so I “packaged” an NSIS installer, so you can easily install it on Windows.

Install RSS Notifier for Windows (EXE)

NSIS script for RSSNotifier for developers (for NSIS)

Use a better RSS notifier that’s free? I’d love to know! Leave a comment or tweet @KristopherIves and I’ll update the article with credit.

HTML 5 Video Downloading January 29th, 2010

The new HTML 5 video feature being used in capable browsers like Google Chrome is purely awesome. It amazes me that a feature this new works so well, although it does have some quirks, it’s still better than Adobe’s Flash player, and it’s improvement isn’t bottlenecked by Adobe or any single entity. I chuckle knowing that Adobe has just recently began to address the concept of hardware acceleration in this arena, and luckily they are too late – because we hate Flash video. It was used as the tool it was, and the web will now abandon it.

This is open source  in motion. If Chrome, Webkit, FFMpeg, and various other projects where closed source, we’d be moving along at the rate of molasses, like we did with Adobe’s Flash player, IE, and other proprietary software.

With that praise, there are some interesting holes, and in time they will be filled correctly. Right now the biggest would easily be how HTML 5 video warrants videos going full-screen. There are security and usability land mines that must be dodged, such as allowing web pages to enter this mode without the users consent. While I want the feature right now, I don’t want to play API hopscotch like Adobe did, so I understand some delay in this area.

I also have a growing interest in editing video, which you can’t do on YouTube directly. Somewhere you’ll have to download that video. In the past I’ve used FireFox extensions that do some voodoo to rip the FLV or MP4 stream out, but now that we’re using HTML 5 video – it’s just a file. Without any extensions here is a way to save YouTube videos in Chrome:

  1. Go to http://www.youtube.com/html5 and make sure you’re in the HTML 5 beta. You can undo this if you want later.
  2. View the page of the video, like this: http://www.youtube.com/watch?v=Y3lzd9yJP9Q (ACTA debate)
  3. Right click the video and choose Inspect Element.
  4. Double click the div element below the one that is selected. It will have class="video-content-loading". This will expand that element.
  5. Click the link in the src element of the video tag.

If the video opens a tab, then you’ll want to change your Chrome settings on how it views/downloads that file. For me it started downloading a 300 mB MP4 file, which was throttled at about 96 kB per second.  It’s nice to have this rather simple workaround, but we can do better!

I’ve never developed Chrome extensions before, but getting started was easy. Having done some FireFox extensions, I would say this is much easier and has a lower barrier of entry. The extension I’m working on is called html5-video-dl and simply puts a button puts the video file URL into the download manager. Browsers that support HTML 5 video will probably do this on their own in the near future. The extension is being tested, packaged, and submitted to the repository. It should be available, and I’ll have a link so you can install it shortly.

Tired of the same music? Dive into SoundPond January 28th, 2010

Over the last few years I’ve listened to progressively less music, and the reason was mainly because:

  • Most new music really irritates me. I know there is some good stuff coming through the noise, but I hate subjecting myself to all the horrible crud to find a diamond in the ruff, all while getting spammed with advertisements the entire time.
  • I don’t want to wear myself out on the music I do like. A lot of bands have been put on hiatus to pursue other interests.
  • Also a lot of bands that used to be good got drastically worse, probably just because they had contracts saying they had to keep making music – or they just want more money.

It’s gotten so bad that I’ve basically outsourced my musical taste to trusted friends of mine. With services like Last.fm and Pandora it’s easy to just clone someone else’s musical taste. Today I saw a simple Facebook status update from Daniel O’Connor about becoming a fan of SoundPond.

These are folks from Australia that use UStream to offer a nice rotation of DJs making original mixes. They have a very simple (and limited) chat room, and they communicate with their listeners, which can be quite engaging. The folks I spoke with had a great attitude and everyone seemed to be having a great time, and it was 2:30 AM in their timezone!

I don’t know much about the service under the hood, or who is really behind it all, but I think it’s some of the folks from LibertySound, which consists of Ka$h, Penny Drops, and Kim Savage. This is another world for me, so if I’m drastically wrong please help me out.

Give them some love on facebook by becoming a fan (button on their homepage too), tweeting @SoundPond, and most importantly – enjoy the music.

How to Synchronize Code with Bazaar January 24th, 2010

Almost everyone has more than one computer, and you’ve probably got multiple machines you’ll need to synchronize your code onto.  To handle this I use Bazaar distributed version control. If you’re experienced with various VCS and are in need of convincing, see Why Switch to Bazaar?

Here are the main places I have to synchronize to and the reasons for doing so:

Linux Notebook
This is where I write most of my code and I mainly use Bazaar here as a way to keep a changelog and sometimes revert changes. It’s also nice to be able to get some quick stats. You can also create a repository within another, for example, if some piece of code starts to grow legs of it’s own.

Windows Machine
I keep a Windows install for gaming, but I do have Eclipse and Cygwin installed here. I simply use Bazaar to check out and test my code. Windows-specific changes are usually made from here and need to make their way back to my Linux machine for further testing.

Web Server
This is where I push all my public code. For things I’ve open sourced, the address is http://bzr.santiance.com/ and anyone can branch this. Release early, release often. For proprietary work this would be a private server. I authenticate via SFTP, but regular FTP is also supported.

The Public
When someone makes changes to my code the way I synchronize is with Bazaar or a patch. Some simple changes only require a patch, but more elaborate changes warrant a merge.

At any time all three of these can have different copies of the code. Bazaar handles merges quite gracefully, and when there is a conflict it’s quite clear how to resolve it. Before I truly embraced this system I was able to navigate my way through armed with just the 5 minute tutorial.

Example

I usually start by developing something on my Linux notebok, but I do the same thing from within Cygwin if I do develop something starting on a Windows machine. On Linux I keep my Eclipse projects in ~/workspace/, and in Windows I keep them in C:\cygwin\home\kris\. After I’ve crafted up something I’ll create a repository and add the project files and source code then commit my changes:

bzr init
bzr add src
bzr add .project
bzr commit

Supply the changelog information and Bazaar will have saved this initial commit. Now I like to get my code to either the public server or private development server if the work is proprietary. I do this by:

bzr push sftp://user@bzr.santiance.com/projectname

One great thing about Bazaar is that you can push/pull changes from all kinds of places. If I don’t have (internet) connection to my web server, I can push/pull from my Windows and Linux machines over SFTP or a network mount. I can later push these changes back to the web server, so I get some data redundancy to help avoid losing code.

For clients that don’t want to use version control, which sadly do exist, you can easily take a snapshot of the code to be sent:

bzr export TheProject.tar.bz2

You can change the archive file type by modifying the file extension. I most commonly use .tar.gz, .tar.bz2, and .zip for my projects.

BZR vs GIT

So, why do I have a Github account? Mainly because other projects I’ve worked with use git, since most of my original work would find it’s way to Launchpad. Both Launchpad and Github make it easy to submit changes from the command-line once you’ve got an account. Luckily Bazaar has plug-ins that make working with repositories in another format much easier for us.

When it comes to the argument of simplicity and low barrier of entry, my hat’s off to Bazaar. It’s handled every scenarios I’ve thrown at it, and my projects have survived the advancement of their storage format from pre 1.0 to (now) post 2.0. Both tools are equally capable, but Bazaar’s interface is more intuitive.

Send hate and flames @KristopherIves

Chromium vs Google Chrome January 24th, 2010

Chrome hit the scene about 8 months ago (in July, 2009) and has shown quick adoption and fast usage growth. For the most part, those where windows users. In Google fashion, a beta has been released. What’s the difference between Google Chrome and Chromium?

Chromium is what you’ll find in your repositories and for the most part looks like a normal open-source package, and indeed it is FOSS. It was started by Google, and they release a version called Google Chrome. So, you can see them as two sides of the same coin. Google will continue to bring the awesome changes from the Chromium project, and you can expect Google to share their code back.

Like many Ubuntu users I started using Chromium via the chromium-daily PPA (Personal Package Archive – Usually a cutting-edge place for packages provided by a user or developer, used to get the latest features of some package) This repository contains a daily build of the Chromium project. This repository, and the project, is a lot more stable, and I use the repository now.

Google’s Chrome (beta) on Ubuntu runs well and is a simple package download, but it completely lacks updates of any kind. I removed it because I wanted a slightly newer feature – Bookmark Synchronization. It worked across Windows and Ubuntu, might I add. Future builds will probably include some system of updates, but the way it looks right now you’ll have to install a package of a later version (update) or remove the beta and install the newer version manually.

The bottom line: Go with the chromium-daily PPA until Google Chrome has some kind of update system and has bookmark sync working.

Compiz, Patents, and Ubuntu January 22nd, 2010

No, this isn’t about the stupid max_waves conflict with Apple’s patent that everyone has been ranting (and working around) for the last few years. From what I hear the future 0.9.0 release won’t be hampered by it, but how does Compiz fair with patents? Who made Compiz, and who’s working on it today?

From my understand the original Compiz, before all the forks and subsequent merges, was developed by Novell via David Reveman with help from others. Now, in the aftermath of whatever happened, most (if not all) of the core developers aren’t around – and Novell has moved on too. While the developers are gone they did take a little something with them.

SYSTEM AND METHOD FOR EVENT-BASED RENDERING OF VISUAL EFFECTS is patent application #20080313540 by Anna Dirks, David Reveman, Stephen Carter, and Scott Isaacson filed back in 2007. This patent would go to someone who deserves it, but can it ever be used against the project in the future? Now Apple is filing for a patent on head tracking, which is something we’ve seen Compiz devs and plug-in writers have been doing for a while now. We want developers to get attributed for their hard work in Open Source, but nobody should have control over the ideas that power these projects.

Ubuntu is using the old 0.8.x branch written in C, while the team has moved on to the 0.9.0 release written in C++. With Ubuntu 10.4 (Lucid Lynx) being an LTS, it’s obviously not going to be in that release. Even once the package is more mature, there is still a big dependency issue lingering. While it’s obvious that the refactoring of the code yielded performance and maintainability benefits, it’s using libboost and favoring C++. With GIMP kicked off the CD to make space, what’s going to happen to Compiz?

Update 1: There is a thread going on UbuntuForums.org related to this, although some of it’s just anti-Apple rhetoric. I wish people would stop hi-jacking real discussion with this crap.

Update 2: I asked Novell if they could shine any light on the situation on January 26, 2010. Hopefully they are willing to at least take a look and get back with something besides a dear-john letter.

Movie Review: Zombieland January 19th, 2010

Having just watched Zombieland, a comedy-horror film, I’m giving a great review. This movie was refreshing because it mixed elements of survival with comedy in an interesting contrast. Without giving any spoilers, the film draws you in and delivers a good laugh at the right moment. It’s narrated in a somewhat Wonder Years fashion and involves a colorful cast, each with a surprising amount of depth. The film never breaks the third wall, but comes quite close, and once you see the movie I think you’ll know what I’m referencing.

The movie does have a lot of action (including a good shoot-em-up scene with Woody Harrelson), but it’s at the heart a comedy. The film uses the non-comedic elements as bait, but you don’t feel cheated by any means. As Ebert said, it truly has “well-tuned comic timing” and creates a good atmosphere like 28 Days Later and fellow serious apocalyptic movies do.

You should be able to make it through this movie without checking your Twitter a single time.

Rating: (4/5)
Hover over the stars for why

Bugs with GDK_NATIVE_WINDOWS January 18th, 2010

There are two bugs that I encounter a lot in Ubuntu 9.10 (Karmic) that irritate me a lot. Both bugs involve mouse clicks not being registered. I’ve got some workarounds and fixes, but first some background on these bugs.

Flash Bug (#410407)

This bug has been misidentified as a bug in Compiz, when in fact it’s a bug in Adobe’s Flash Player plug-in. It causes mouse clicks to not be handled by the Flash application. The bug is inconsistent – it’s an all or nothing thing. You’ll either get the bug on a video, or you won’t, and sometimes it can be coaxed into working by spamming clicks.

Eclipse Bug (#443004)

This bug has caused a lot of wasted time. Similar to the bug with Flash, clicking on a button with some dialogs will not register. It’s also inconsistent, which can be a real pain. Some dialogs in Eclipse can span many pages, such as the Export to JAR dialog.

Both of these bugs are related to a change that happened regarding GDK, the underlying method GTK-style applications use to draw things instead of calling X directly. I think the core problem is:

A small gotcha is that the GDK_WINDOW_XID() call is no longer a trivial accessor for the XID of the window, and thus must not be called from another thread without taking locking precautions.

This matches the inconsistency of the problems, since it’s a related to concurrency.

To combat the bug in Eclipse I’ve started using the repository version, since the SWT-related bug was fixed and they added support for user plugins.

The workaround for the Flash bug isn’t as nice, since Adobe is the master of making horrible “fixes.” For example, they pulled the rug out from underneath a lot of websites using Flash player to do the heavy lifting of uploading multiple files by requiring the file selection dialog to be initiated by a user interface interaction. Essentially you have to tell Flash not to enjoy the benefits of client-side windows by modifying /usr/lib/nspluginwrapper/i386/linux/npviewer to look something like this:

#!/bin/sh
TARGET_OS=linux
TARGET_ARCH=i386
GDK_NATIVE_WINDOWS=1
. /usr/lib/nspluginwrapper/noarch/npviewer

So that’s two features Adobe has nerfed in one configuration file (64-bit and client-side windows)

Checking out Thwirl January 14th, 2010

I’ve been using the Twitter web interface for a long time, and I prefer to keep my tweeting simple. However, with the stock web interface you can’t be logged into more than one account unless you’re using multiple profiles, incognito mode with Chrome, or some other trickery. I didn’t look around much before I found a client that did everything I wanted: Thwirl. My only gripe is that it’s based on products from Adobe, but they seemed to have side-stepped many of the problems that plague many applications based on this framework.

Moving Along

People on Twitter move quick, so it baffles me why the official site has no way to mark tweets as read to have them removed from your timeline. Similar to how GMail (and other e-mail applications) let you mark e-mails as read so they don’t appear in your inbox.

Multiple Accounts

I manage Twitter accounts for various web sites, as well as my own personal twitter. This means I have to be logged into multiple accounts at the same time. Doing this with Thwirl was very simple, as the application supports multiple accounts much like Pidgin does with Instant Messaging.

Tweet Management

It’s easy to get flustered when you miss a lot of tweets with the stock web interface. Thwirl has a nice little trash icon that lets you mark all the tweets as seen, so you can focus on the tweets you haven’t read and ignore the ones you have already seen.

Notifications

For sites that have a high volume of tweets, Thwirls notification system is great. It’s easy to get notified about things I want, or disable notifications for a specific site. Sometimes I can’t be bothered with tweets, and it’s nice that Thwirl lets me turn off notifications globally at the click of a button.

Hammer Protection

Thwirl seems to do a great job of not hammering Twitter API servers, and even gives you a little bit of information about how many requests it’s making and the limiting metrics. This is good because rate limiting can be IP-based with the Twitter API, and when you’re accessing multiple accounts you have to be resourceful. I’ve stayed connected to 3+ Twitter accounts with a decent volume of tweets without any problems.

One downer is that I don’t think Adobe AIR applications run on Linux, so Thwirl won’t run on my Ubuntu. You can also run Adobe AIR applications in Ubuntu, but @rfkrocktk tells me it’s got some funk with 64-bit, and that  OMG! Ubuntu! article helps. Flash and 64-bit combined can get ugly for proprietary software it appears.

Tweet @KristopherIves if you have anything to add, questions, or comments and feel free to leave a comment below.

Edit: I had a chance to actually install Thwirl in 64-bit Ubuntu, and it does work quite nicely, but the installation process was a nightmare. Essentially you have to:

  • Download the AIR installer .bin from Adobe, which is a 32-bit application
  • Install a helper tool called getlibs that makes it easy to wrap 32-bit libraries
  • Wrap some 32-bit libraries (listed in the OMG! Ubuntu! article)
  • Run the Thwirl .air installer

Other than that it worked as expected on my 64-bit 9.10 Ubuntu (Karmic) updated as of January 16, 2010. It even added a nice icon to my desktop, but oddly the icon in the notification area is of lower quality. Thwirl also updated to 0.94 automatically, so I believe the update also works.