Tuesday, January 28, 2014

JavaScript & Uncorrected Video

There is this continuing debate that rages in tech circles: If you're going to make an app, should it be web or native? The true answer, of course, is that it depends. I'm a web guy, though, so when I enter the fray, it's generally on that side.

The common perception of web tech is that it's easier, but produces inferior results. You can slap something together in a fraction of the time, but it's not going to have that slick, polished quality you expect from native apps.

It all reminds me of the old film vs digital thing the movie industry went through a while ago. I was working in Hollywood at the time, and there was a lot of buzz about the liberating potential of digital video, but also a lot of criticism of its inferior quality.

Well, to some extent it was inferior, because it was still young, but there was more than that at play. The thing is, when you shoot film, you have to get it developed, and part of this process is making sure the colors came out right, and you get the tonal range you want, etc. Without that color correction step, film looks horrible, unusable. With video (digital or otherwise), you can skip that step; uncorrected video isn't great, but it's not as horrible as uncorrected film. So, since you can skip it, lots of people did, and video got this reputation for having that bland, washed out look. Over time, however, people clued in, and now tons of movies are shot on digital, but they're always color corrected. At this point, film and digital are virtually indistinguishable to the viewer, and what the cinematographer uses is more just a question of personal taste than any technical consideration.

Back in JavaScript land, we have a similar situation. The technology is still young, so it was pretty bad not that long ago. Like digital video, it's liberating; your app can run anywhere, and you can get started with a set of simple tools. The fact that it's easier, however, gives us the uncorrected video problem: people who don't know what they're doing can still create JavaScript apps. They may be crappy apps, but they work. With a native app, there's a higher bar; if you don't know what you're doing, you're likely to not end up with anything usable at all. The native apps that survive generally have a decent level of quality.

But when someone who really knows what they're doing builds a JavaScript app, you can get the flexibility you expect from the web and the polish you expect from native, just like digital video can look great if you bother to color correct it. For me, that's the best of both worlds, though of course your mileage may vary.

My favorite example of a slick mobile web app is Forecast.io (at least on the iPhone). I'm doing my best to walk the talk as well with Driftory and Gimme Shiny, both of which work great on mobile.

Tuesday, January 21, 2014


This last summer, Caitlyn made the transition from regular school to homeschool, and so far I'm delighted! I homeschooled as a kid; I'm excited to be diving back in now with Caitlyn. I haven't written anything about it here (unlike Christina) so it's time to catch up:

We always intended to homeschool her, but it was important to us that she got a chance to experience mainstream school for as long as she wanted to (no forbidden fruits there), and that homeschool be her choice. Regular school is something that kind of happens to you; homeschool takes a lot more personal responsibility, at least the way we're doing it. She needs to really want it in order for it to work. We made it clear what's expected of her, so she knew what she was getting into.

Towards the end of second grade she came to us and said she was ready. We insisted she finish out the year, which she did reluctantly. In the end, the last day of school was both exciting and sad, saying goodbye to the place she'd spent so much time for the last three years, and hello to a whole new way of life.

We used the summer to ease into the concept of homeschool (starting with a two-week field trip to Canada), and we started in earnest in the autumn. Of course, even now, we're still figuring out the right mix of activities. A lot of her day is what's generally described as "unschooling", where she's left to pursue her own interests, but Christina is working with her directly on a few fundamentals. We figure she can get into chemistry, history, basket weaving, etc. as the mood strikes her, and she's likely to go deep on some subjects and shallow on others, which is fine. Everybody's gotta get a firm foundation in the three Rs, though. Reading is not an issue; she's already a voracious reader, chewing through 350-page books in a weekend. Math and writing are not as favored, so Christina works with her on those subjects.

When left to her own devices, Caitlyn's favorite subject is art, and her skill is increasing steadily. She's learning firsthand the value of practice! She has an art tutor who comes over every other week, and both Christina and I also mentor her in various ways on the subject.

One of the wonderful things about homeschooling today, at least in this part of the world, is that there's an amazing amount of resources, and a strong support network. She regularly gets together with her friends (other homeschoolers, friends from the neighborhood, friends she met in school) for both structured and unstructured activities. Several of her homeschool companions get together at one house for science, and then back to ours for tea and poetry with Christina.

Of course this means Christina's getting to learn more about poetry, too. This is one of the hidden benefits of homeschooling; the parents get to learn as well. Caitlyn is interested in Spanish, so all three of us are taking a course together. Her interest in art means we all get to practice our art-making more, etc.

Let's see, what else? Circus class continues, and she's doing theater again. She gets quality time at the public library, and she's got a library account on her computer so she can order books whenever she wants. She's also learning general computer use and typing. I'm taking advantage of time to work with her on subjects that were dear to my heart as a kid. We're doing programming together, as well as Legos, of course.

Surely it will continue to evolve, but I feel like we're off to a good start. The three of us have embarked upon a great adventure together!

Labels: ,

Tuesday, January 07, 2014

Hire Me!

I'm footloose and freelance, so theoretically I could be flitting from project to project. The reality is I seem to find big, meaty projects and focus on them for over a year each. For the last year and a half, I've been devoted to Rdio, creating their new JavaScript API, their new developer site, and several other things I can't speak about yet. That all came to a sudden halt in November, when they laid off a chunk of their staff, including me. So here I go, back to being footloose!

Coming off a big project like this is like coming off a long-term relationship. It's this strange combination of distressing and liberating, and all I want now is a rebound fling. Or maybe I do want something more lasting, but I'm shy to commit until we've gotten to know each other.

Anyway, here I am, on the prowl again. If you're looking for an experienced, design-oriented JavaScript developer, I'm your man! I can do anything from architecture to animation, but I especially love interaction work, getting the behaviors just right. Even better if we're pushing the boundaries of the web as we know it.

Check out my portfolio, my resume, my GitHub profile, and/or this bit on my prototyping skills, then hit me up! Who knows, we may just fall for each other.