A few months ago Adobe acquired Behance, a sort-of "LinkedIn for Artists" (thanks TechChrunch for that description). At the time I didn't really pay attention, but earlier this week I spent some time on the site and was incredibly impressed. I think it is fair to assume that a majority of my visitors here fall more on the developer side than designer, but I'd still recommend you check the site out. Even as a non-designer, I found the site really cool. It is a pleasure to use. You can also use the site as a way to keep up with your favorite designers. Currently there are over one million users so there's a pretty huge community already. For a good example, check out the work from my coworker Greg Wilson: http://be.net/gwilson
Here's a simple little modification that may be useful for people using Edge Animate. The default behavior for an Edge Animate animation is to play immediately. You can disable this of course and use the JavaScript API to play whenever you want. Here's an interesting use for this. What if your Edge Animate asset is on a page where it may not be visible? For example, a page with lots of text or other assets above it? Here is how I solved it.
Today's Friday Puzzler should be one of the simpler ones I've posted. While having a random Facebook discussion (as if there are any other sort), the topic of sorting came up. I thought it might be an interesting challenge to write code that determines if a list of data is sorted and report back on what type of sort was being used. While there are probably more, I can think of the following sort types:
(Edit: I see that the Gists/code samples are displaying extra lines on top/bottom. Please ignore. Will try to fix after lunch.) As I mentioned a few days ago, I'm currently in the process of reading Addy Osmani's JavaScript Design Patterns book. (Note - in my earlier blog entry I linked to the physical copy at Amazon. The link here is to the free online version. I think his book is worth buying personally, but you can try before you buy!) The first pattern described in the book, and the one I'm going to talk about today, is the Module pattern.
I know I sound like a broken record when it comes to Chrome DevTools ("Your page is broken? What did DevTools tell you?"), but I wanted to share a new resource that just launched - Discover DevTools. This is an online video repository of tutorials about Chrome's powerful DevTools feature. I plan on going through them myself just to see what I've been missing. If you have yet to dig into this feature then now is the time!

A little while later...
I wrote this blog post earlier today just as a quick note to inform folks. I've now had the chance to run through the first four sections of the course and I wanted to share some thoughts.
First off, this is a damn good course. Like, I knew that I didn't know everything about DevTools, but in the very first lesson I saw something new. In general, I learned something interesting in every section I've taken.
The videos themselves (outside of that stupid intro song that is cute at first, sickening after a while) are incredibly well done. Very focused, very informative, and really good at exposing you to the tools and really seeing how they can help you. I'm not done yet (3 chapters to go), but this is now the resource I'm going to link folks too when they want to learn about the dev tools.
That's the good. The bad is that the challenges can be a bit tricky. In a few places now I've done what was asked of me and have gotten stuck. It seems like CodeSchool will wait about 60 seconds before offering you a "Skip" link. On one challenge in particular, nothing worked. So I had to wait about 5 minutes so that each step of the challenge would offer me a "Skip" link. It was very frustrating and I hope they fix it. Or maybe I was doing something wrong. If you're curious about the issues I ran into, here is the forum for the course: http://help.codeschool.com/discussions/discover-devtools
I've been toying with an idea for a while now, and I kinda figured if I blogged it, I'd be more motivated to actually do it. I'm currently reading "Learning JavaScript Design Patterns" (associate link below!) by Addy Osmani. I plan on posting a review of it once done. In the meantime though, I'd like to work up some examples of the patterns in "real" applications. Obviously I don't mean client work per se, but, something a bit more concrete than a sample in the book. I'm not sure I can accomplish this for every pattern in the book, but I think it might be fun to try. I don't make any assumptions about how good these examples will be. To be honest, I mainly want to do this to just help me learn the concepts a bit better. But my hope is that it can help others as well.


Lately I've been thinking more about how to make my PhoneGap applications more robust. By robust, I'm not necessarily talking about performance. While that is important (see my coworker's excellent blog post on the topic: Performance & UX Considerations For Successful PhoneGap Apps), I'm thinking more about the general stability of the application as a whole. This is especially important for applications that need, or desire, data only available on the network. How you handle network conditions is just as important as how you handle the UX and performance of your application. (Well, that may be up to debate. :) In this blog post I'm going to share some thoughts and examples of what I mean by this and - as always - I look forward to your comments, suggestions, and corrections.
Thanks to reader Mikel Shilling for pointing this out to me. The most excellent (as Bill would say) folks at FigLeaf have released a free ColdFusion 10 and jQuery Mobile tutorial. You can download the bits here:
http://training.figleaf.com/curriculum/cfjqm.cfm
Objectives for the course are:
- Define and use AJAX/JSON(P) web services using ColdFusion 10
- Define and use REST web services using ColdFusion 10
- Using REST services with jQuery Mobile
- Implement real-time communications with HTML5 web sockets
Have you ever seen a web site that seemed to know where you were located? I'm not talking about a map, but the actual name of the location? This is done with a process called "Reverse Geocoding." Whereas geocoding refers to translating a human-readable address into a longitude/latitude pair, reverse geocoding is, well, the opposite of that. Given a longitude/latitude pair, what would be the description of that location. In this blog post I'll show a simple example of this process. My example application will attempt to report the city and state you live in.
Last week a reader wrote in with an interesting problem. They had a simple application that made use of PhoneGap's database support. They wanted to add camera support as well. Their idea was that a picture could be associated with their content. But then they ran into this issue: