Lessons Learned from My First HTML5 Video implementation

by

I recently had the opportunity to implement an HTML5 video for a client.  It was the first time I’d really worked with HTML5 video, and I ran into a few issues and quirks I thought I’d share for other developers who run into these issues.

 

1. HTML5 video with a fallback to Flash works really well.  The opposite doesn’t work as well. 

 

At first I started implementing my video in Flash with a fallback to HTML5 – not for any special reason, but only because a previous developer had implemented another of the client’s videos that way and I followed the pattern already set.  I soon discovered that although this works fine for a video that just plays in a fairly static page, it wasn’t ideal for the kind of video I was implementing, which required some custom controls and interactions with other elements on the page.  I first thought that the best way to handle this would be with a try / catch, but since my flash took a little bit of time to load, I would often get an exception when calling a flash function, even though the flash was ultimately playable.  The real crux of the problem was that in an HTML5 to Flash fallback implementation, the flash code doesn’t even exist as far as the browser is concerned unless HTML5 is not supported – in which case the <video> tags don’t exist.  The user can only ever interact with the HTML5 video or with the Flash – never with both.  If you implement it the opposite way, BOTH Flash and HTML5 video exist on the page, potentially leading to a situation where the user is interacting with both videos.  Once I found myself writing code to catch and prevent these weird interactions, I decided this was the wrong way to go.   The HTML5 to Flash fallback is the way this code is meant to be implemented, and leads to the cleanest implementation.

Preventing spurious “error: failed to push some refs” messages from git

by

Kitten in a shoe

On larger Git projects, I often see the following scenario play out after someone’s done some work and is ready to push it to the remote repo:

...making and committing changes to "develop" branch...
$ git pull
Already up-to-date.
$ git push
Counting objects: 5, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 363 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:test-repo/test_repo.git
   e8c1210..1a0c4d4  develop -> develop
 ! [rejected]        new_feature -> new_feature (non-fast-forward)
error: failed to push some refs to 'git@github.com:test-repo/test_repo.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.

From Hatebook to Poll.li

by

Today Grio launched a new website, a new blog, and a free product.

I’m going to tell you about the product, which is called Poll.li (see http://poll.li).

Simply put, Poll.li is a way of voting on content using emoticons. You can think of it as a like button with more variety. Similar to like, Poll.li can be used as a voting mechanism for web users.

Jumping Back (Into) Flash

by

On my previous project, I was busy delving into the relatively new world of Unity game scripting as my go-to solution for dynamic content.  Now I’m working on a game that has me going back into the world of Flash, so I thought I would write a brief commentary on the differences I perceive between the two frameworks as it pertains to 2D game-crafting.

Before I go too far into this, I should point out that these two design paradigms are really not expected to be compared like this side-by-side most of the time.  Flash has existed for more than 15 years, and has undergone significant improvements in that time.  Unity is a relatively new framework with a more specific vision: 3D games that can be easily exported to other frameworks, like the iPhone or a web-based player.  In fact, the next version of Unity will even allow publishing to Flash itself.

How a LAMP developer learned to stop worrying and love Ruby on Rails

by

One of the most raging debates within the web developer community is LAMP vs. Ruby on Rails (RoR), with countless posts all over the Internet that debate the merits of one versus the other… but this blog entry isn’t going to be one of them.  You see, I’m new to RoR and hesitate to call myself an LAMP expert. So I’ll just discuss my own experience going from working on PHP-based sites to working on RoR-based sites.

Grio Comic :)

by

In this week post I decided to do something a little different. Being a designer, I am used to drawing more than writing. So, here I am drawing. . . I hope you guys enjoy.

Goodbye Flash world? Hello SVG world?

by

In the end, it’s probably Steve Jobs’ fault.

Back in April 2010, when Jobs explained why the iEmpire line wouldn’t be supporting Flash, a subset of the developer community was anticipating HTML5 as giddily as a Twilight sequel, but the majority were only marginally aware of its existence. The first preview version of IE9 had just been released. Firefox had advanced support for many HTML5 elements, but only those early-adopting developers were really paying attention.

Picking an image from your Facebook photos in iOS

by

Apple provides a convinient class, UIImagePickerController, that easily allows your app to display a user interface to pick an image from the photo library. There are countless apps out there that utilize this class. Since this class manages all the user interactions, end-users of the apps that use it will find consistency when picking an image from photo library. Facebook iOS app, WhatsApp text messenger, Messages and Tweetbot are just a few popular apps that leverage this class. It’d be great had Apple provided a similar class for picking a photo from a Facebook account.

Google Android Translation Guide

by

If you are new to Android programming, you will find there are a few ‘new’ concepts and paradigms to learn. There are fancy new terms such as ‘Activity’ and ‘Intent’. Rest assured, most of these expressions are just Google trying to put their own stamp on some pretty tried and true programming paradigms.

Getting started with Amazon DynamoDB

by

What’s Amazon DynamoDB?

DynamoDB is one of the most recent services offered by Amazon.com. Announced on January 18, 2012, it is a fully managed NoSQL database service that provides fast and predictable performance along with excellent scalability. Let’s quickly analyze its positive and negative aspects in the lists below: