Holga Lens for Canon EF Mount

For those of you not in the know, a Holga is a “toy camera” – it’s a plastic camera body, with a plastic lens, that retails for around $25.  It uses 120 film – taking a 6cm x 6cm image.  The pictures taken with it tend to be very unpredictable, with lots of blurriness (it’s hard to focus precisely, and nothing is every REALLY sharp), light leaks (the clips that hold the back on don’t really provide a totally light-proof seal all the time), and in general, a real lo-fi look.  The Holga (and similar cameras) really are partly responsible for spawning photo manipulation applications like Instagram, and they have a huge following (there are over 7,000 Flickr groups with “Holga” in the name).

I bought a Holga a few years ago, and played with it for a while – but of course, getting 120 film developed is a pain (and expensive), and my Lensbaby 2.0 (and more recently, my Lensbaby Composer, with a nearly full set of optics) have taken up my lo-fi attention.  There have been some mods to take Holga lenses and mount them on SLRs, but I’ve never taken the plunge – but I recently ran across the official Holga Lens for Canon SLRs, and decided it was worth $25 to try it out.

So, how does it compare?  Well, I’ve got a few photos from my actual film Holga in my Flickr feed, like this one:

You can clearly see the vignetting in this image, as well as the warping, focus issues, and chromatic aberration.  But it’s still pretty.  🙂

Although I’ve taken tons of pictures with my Lensbabies over the years, I was looking forward to playing with a new toy.  All in all, I’m pleased; although I thought it was a little weird when I opened up the lens and saw this:

Now, logically, the original Holga lens was designed for a 6x6cm film “sensor” – so it was going to look a lot different when cropped down, even on my full-frame Canon 5D mk ii.  For reference, here’s that same Holga image, but with 35mm crop frame (orange) and APS-C crop frame (yellow):

So the odd little aperture arrangement was apparently Holga’s attempt to replicate the vignetting and soft focus of their medium-format lens onto a smaller frame.  (Not surprisingly, this is reminiscent of the Lensbaby Soft Focus Optic aperture discs.)  Somewhat ingenious – Holga can still claim “the original Holga lens!” while still actually getting the vignetting, etc on a smaller frame.  The unfortunate part? They really designed the aperture for APS-C crop cameras (e.g. the Canon 60D or 7D, not really my full-frame 5D mk ii.  A full-frame camera gets much of the outer frame completely vignetted out, and a weird 8-overlapping-circles bokeh pattern to boot:

Of course, it works okay on full-frame when the background is dark anyway:

But can look a little weird at other times – which brings me to my one of my main points: this SLR lens was really designed for cropped-sensor cameras, like the 60D or 7D.

The real tragedy, however, is that in adding this funky aperture, the lens goes from the original approximately f/13 aperture to being somewhere between f/32 and f/40 (from an evaluative-metering on full-frame test, I measured it at about f/45; but I think that’s unfairly penalizing for the heavy vignetting on full-frame.  So, trying to use this in anything but lots of light – good luck.  You’ll need a REALLY slow shutter speed – and you will find it nearly impossible to aim, since the viewfinder will be very dark.  Even in bright sunlight, you’ll want to bump up the ISO – for example, this photo of my daughter in bright sunlight was ISO 400, 1/40sec exposure:

Incidentally, I did discover that funky little aperture disc is removable – it’s glued in to the lens, but only with cheap sticky stuff.  Once you pull it out, though, as you’d expect from the crop example above, there’s basically no vignette at all, even on full frame.  I put it back in, but I think I’m going to try creating an aperture disc to stick in there that is larger than the current one, to get less vignette on full-frame, but still some.  That’ll be a future project, though.

So, pluses to the Holga-for-Canon lens:  easy to use, great serendipity potential.  Downsides: WICKEDLY slow lens (f32-f45-ish on full frame), and has a very strange vignetting pattern in full frame.  Overall, though, absolutely worth the (little) money for a new creative tool.

All the photos I’ve taken with the Holga lens on my SLR so far can be found on my Google+ account in the “Holga Lens” set.


Promoting the Open Web, and Platform Competition

Robert O’Callahan wrote a post last week about Mozilla’s historical promotion of the open Web over proprietary platforms.  There were some things in there that I agreed with strongly, although some not as much.

Robert, as I read your view, the competition has changed from WPF, Silverlight and Flash to iOS and Android, and “accordingly, the features the Web needs to catch up on are mobile focused.”  Although I absolutely agree that the web needs to be “knocking down barriers that make mobile app developers write native apps instead of Web apps,” I think it is a mistake to think that the web should narrow its competitive focus to mobile.  Mobile is just a placeholder for computers that are embedded in your daily life, and don’t cost $1000+, and aren’t chained to a desk.  It’s not about making phone calls.  It’s about being highly interactive, with lots of integration with the real world via sensors and outputs.  (There’s a whole 5-minute diatribe here about why the iPhone became popular – skipped for brevity’s sake.  Let me know in comments if you want me to expand.)  This isn’t a different Web; it’s just a more integrated one.  The Web platform is supposed to be good at scalability, so scaling to these needs should be a strength – and I DO think we need to expose APIs to those device capabilities.

The Web platform’s competition here *IS* all proprietary stacks – WPF, Silverlight, Flash, iOS, Windows Phone, Windows, Metro, MacOS, and yes, Android.  That doesn’t mean I hate all those stacks, or that I think they’re ebil – I just want the Web to be a viable competitor to them.  When some developer somewhere starts building the NEXT Angry Birds, I hope it can be in the Web platform to begin with, and won’t need to be ported to those other platforms.

(As an aside, Robert, I was curious to see you give kudos for Microsoft for moving towards a standards-based platform in the same post as lambasting Google for the Chrome Store.  You understand although you can write Hello World for Metro completely using standards, more complex apps are likely going to be heavily dependent on the Windows Metro Runtime APIs, right?)

I was somewhat amused to see you say “We also need to send a clear message that browser-specific app stores run counter to the open Web,” when Mozilla itself has one of the earliest (and wildly successful!) browser-specific app stores – https://addons.mozilla.org/en-US/firefox/.  You can say “that’s just addons,” but looking at apps like XulTris, it’s hard to agree with that argument.  I get (and agree with you) that the point should be to not silo web platform applications inside a single-browser tower, though.

To be clear – I’d like to see the Angry Birds web app work across all browsers, including being offline-accessible.  I’d like to see offline GMail and Google Calendar work across all browsers, too.  On the flip side, I think it’s pretty natural that there are going to be vendor-specific app stores – if for no other reason that users can get varying levels of confidence (or different assurance, or just different brand identification) from downloading an app package from Google, or Mozilla, or Amazon, or whoever.  And yes, that “package” may be a link, not a JAR file, but there has been store-specific level of vetting of the application that users will find useful.  I think the real question is “Could you use the Google app store from Firefox?” – personally, I’d like to say yes (modulo the browser add-ons, of course).  We’ve got a ways to go there, certainly.

Robert, I’m not sure where you got “Google is explicitly telling its developers to target Chrome-only at first and support other browsers as an afterthought” – the link pointed to the Dash (Dart) “memo”, which says “Developers who can focus solely on Chrome can expect…”  in essence saying “we can get this stuff into Chrome; we can’t push it to other browsers, but we can support a cross-compiler to JS.”  I don’t read that as a whole lot different than any other new feature that turns up in one browser first, and goes through a lot of work before it might (or might not) be adopted by others.  I think either Dart (nee Dash) will be successful as an attempt to build a wildly more productive runtime, and it will turn into a real open standards part of the web platform, and other browsers will build their own implementations of whatever it becomes as it is tossed into the open development pot – or it will inform the current efforts on Harmony, et al to goad more aggressive improvements into the current efforts.  (Or it will be a complete flop, and sink without a trace.  I doubt that, but I wanted to feed the trolls.)  Personally, I would bet more on the informing-current-efforts-and-goading-further-improvements path, but that’s based on my history.  (WPF was, after all, an attempt to learn from the Web platform and do it better.)

I’m concerned that you seem to think only Mozilla, and maybe Opera, have no vested interest in the success of a non-open-Web platform – mostly because the convolutions and double negative of that statement imply that others (Google in particular) have no vested interest in the success of the Open Web platform.  I have to disagree, if that’s the implication.  Yes, Google has Android; I would be a happy, happy person if the success of the open web platform placed Android into obscurity.  If anyone at Google wants to fire me for that, I’ll be happy to go.  And in fact, I would say Google has a very vested interest in the success of the shared open web platform, with a more solid business model behind that interest than most.  If I didn’t feel that way, I wouldn’t have come to work here.

Today, in the short term, there are certainly features that are browser-specific, that enable cool applications.  I hope those features will become part of the shared open web platform – and that’s what I plan to do here.  If certain features don’t merit becoming part of that shared platform, for the most part I’d expect them to die on the vine*.

But to get back to the core point – if someone at Google is telling web developers across the board to target Chrome only and only support other browsers as an afterthought, I’d like to know who, so I can go kick them in the (figurative) nuts.  Unless that message is actually being said by someone, I’d like to keep the focus where it needs to be – on figuring out what we need collectively to push the common Open Web platform to be competitive with all the other platforms out there, and on evangelizing building (cross-browser) web applications built on that Open Web platform.


PS: *Remind me to post something on vendor prefixes.  This was already getting long.

PPS: Which also reminds me – if there’s something any of you WANT me to post about, let me know.  I’m free, in case you didn’t hear. 🙂


Fun times ahead at SXSW 2011

I’m happy that I’m going to SXSW again this year – although, partly due to my job transition, I won’t be speaking on any panels this year (maybe next year I’ll get to be on the Browser Wars panel again :P).

There are two events that I’m helping run, though – The League of Extraordinary Hackers, presented by Google, and SuperHappyDevHouse. The former is a series of lightning talks covering Google APIs, tools and services, including a talk on Google TV given by yours truly, along with a developer lounge for more low-level talks and discussions with Google peeps. The latter, for those unfamiliar with SuperHappyDevHouse, is an evening of hacking and revelry, including a LEGO MINDSTORM contest.

So, of course I’ll be there talking up the living room platform, and hooking web developers up with Google TV. Hope to see you there, and around SXSW!


Six Weeks at Google

I started working for Google six weeks ago today. It’s been an interesting experience, and since I keep having the same conversation repeatedly, I figured I’d share all at once.

What are you working on, anyway?

I’m in the Developer Relations team for Google TV. In practice, I spend most of my time working together with external companies, helping them build and optimize their web applications and contents for the 10-ft user interface scenario – that is, the experience of their web content and applications a user will get when they’re sitting 10 feet away from their screen, and interacting with a “remote control” rather than a desk-based keyboard and mouse.  It’s not so much “optimize for Google TV specifically” than it is “ensure your UI can work well in this scenario”.  We have an optimization guide that gives you some idea of what I’m talking about – things like supporting arrow-key navigation, limiting scrolling, color differences on the TV, etc.

One of the great things about this role is that it’s already given me the opportunity to dive in and actually write JS/CSS/HTML code again, as well as spend a bunch of time looking at how other people construct their UIs in HTML/CSS/JS.  The other fun thing is that it’s continuing my passion for the web platform extending to alternate scenarios and environments – the mobile scenario was the first big one, but the 10-ft space is an important one too.  For years, I’ve seen the web platform as the underlying platform that bridges from the very small environments – like my mobile phone – through the medium-size (my iPad, netbook, and laptop) to the large (my 27-30″ high-powered desktops and my TV).  Aside from the display, there are obvious differences in the interaction capabilities too (like, no touch interface on my TV 🙂 ).

What do you think of working at Google?

Love it. I didn’t think that I would like working in a cubicle rather than an office (at Microsoft, nearly all full-time employees who have been there more than three or four years usually have an office to themselves; at Google, nearly everyone has a cubicle).  However, it’s actually been great, because I’ve met a lot of people (particularly as I have a couple of Google TV devices sitting right next to my cube), and people tend to be very respectful of space and noise.  There are lots of old friends and a few new ones working here, which has definitely helped me adjust.   More on the culture in my next post, as I think that deserves a post by itself.

It HAS been a little odd to no longer use Windows on a daily basis, though. 🙂



On to a New Stage

Today was my last day at Microsoft.

I started working for Microsoft over fifteen years ago – in fact, switching into the IE team fifteen years ago this month.  It’s been a tremendous learning experience for me; I can hardly begin to describe how much I’ve learned, how many different experiences I’ve had, and how many fantastic people I’ve had the privilege of meeting and working with (both inside and outside the company).

As I reached the conclusion that I’d helped IE along as much as I could, I felt it was a good time to reassess where I ultimately want to go with my career, and I realized that I really needed to stretch my wings beyond Microsoft.  After all, I’ve stolen as many office supplies as I possibly could*.  I’m now going to go take a month or so of well-deserved time off, and in November I will begin a new role with a new employer – I’ve accepted a position as a Developer Advocate with Google.

I’ll spare the minor details of my decision (other than how excited I am to turn my Office Space style commute into a 6 mile bike ride to Google’s Fremont office), and just say I’m very excited to work for a company that invests so much in making the Web platform better for developers and consumers, and I hope that I can use this as an opportunity to not only do no evil, but to actively do good.

I would like to thank all the wonderful friends I’ve made at (and through) Microsoft, and actively express my desire to keep in touch. For anyone wishing to reach me, my personal email remains the same – cwilso@gmail.com – and of course, I’m always available on Twitter (Twitter.com/cwilso).


* Just kidding**.

** I could have stolen more if I’d really tried. ***

*** sheesh.  Seriously, just kidding.


The “IE plateau” – a history lesson

Yeah.  More frequently posting on my blog != once a year.  I get it.  More on that later.

Since I mostly share on twitter, I usually don’t get around to writing out longer posts – it takes time to be interesting and sound coherent when you’re not restricted to 140 characters.  But sometimes I want to say something that I just can’t sanely fit into 140-character blocks, no matter how hard I try.

One thing that cropped up in a conversation yesterday was “what happened to IE after IE6”.  I was a little aghast at the wild rumors of engineers fleeing the team due to political issues, since that wasn’t what happened, and since I’ve said this publicly before (e.g. my keynote at the Ajax Experience in Boston in 2006), I figured I might as well reiterate.

As we were finishing up the product cycle of IE6, the engineering team was still really excited by the technology and innovation we’d been doing in the web platform. (Newbie, before you go bothering entering random IE-bashing in that comment box, go find someone who was around on the web in 2000.  IE6 *WAS* the best.  Well, okay, maybe IE5 Mac.)  However, we’d been seeing very little adoption of the rich client platform we’d built; it was hard to build rich, sexy applications, and Flash was starting to take off.  Outlook Web Access was the “biggest” rich web app around.  The dot-com bubble was bursting.  There were a few experiments with “Web OS” – that is, building a desktop on top of the web platform – but they were slow and lacked functionality (probably because they also lacked a business model).  Finally, we were also getting mired in backwards compatibility – it’s all very well to say you should fix standards bugs, but we kept breaking current pages.  People get upset about that – both developers and customers. (As an aside, I’m a big fan of the IE compatibility mode solution we implemented in IE8; I only wish we’d done it in IE7.)

And, of course, we were pretty far ahead of the competitor’s released product at that point, and sadly, Microsoft does seem to work best with strong competition motivating it.

At the same time, Microsoft really needed to invigorate the Windows API.  We’d learned a lot of lessons from our experience with the web platform – e.g. that markup is a great tool for developers to use alongside code, and that managed code languages are easier in many cases than C++ – and we wanted to bring those tools to building Windows applications.  This led us to start working on the platform re-think that eventually became WPF/XAML/.NET3.0 – and that’s what most of us moved over to work on in that timeframe.

On top of that, that time period was also when Microsoft (and the broader industry, but Microsoft in particular) started getting hammered with security issues, since hackers started realizing they could get PAID for finding ways to insert software into users’ machines.  This took a tremendous effort to address, and a sea change in writing secure code; it was quite impressive to see the response to that challenge internally, but that’s a story for a different day.

So, unfortunately, this was a perfect storm that led to the “IE plateau”.  Happy it’s over.  Glad to see that the web platform isn’t in too much danger of becoming homogenous again any time soon.



Leaving Las Vegas (er, the IE team)

After many years, and a lot of releases, I have left the Internet Explorer team.

As IE8 was wrapping up, I realized that a more compelling role for me was mapping out where Microsoft as a whole needs to go with the open web platform, rather than being one of the people who focuses on delivering Internet Explorer on a day-to-day basis.  I remain, as ever, super-passionate about the open web platform; focusing on delivering IE versions was not always aligning with that passion.

Luckily, I found a great team to work on – I’ll be working in the Developer Division (a first for me), on the team that works on JavaScript but also has a broader charter to help make the open web platform great. 

What does this mean?  From the outside, some things will certainly change – I’m no longer an appropriate person, for example, to give talks on specifically about IE – but a lot of things won’t.  I still expect to attend and participate in a fair number of web conferences, and still plan to speak at a number of them – but not just about IE.  I still intend to continue as HTML WG chair, at least for the time being – in fact, as part of focusing more holistically on the web platform as a whole (and defocusing on IE product delivery), I expect I’ll start participating more in a couple of other groups.  I will still maintain a close relationship with the IE team as part of my new role, as well.  There are some amazing people on the IE team, and although I’ll miss being a part of that team, I’m comforted by knowing that I’ll still be working with them on a weekly if not daily basis, as we have a shared goal of making the web platform great.

I’m optimistic that this new role will give me some freedom to focus on what’s really needed in the open web platform, and the freedom to be more open about what I’m doing as my role evolves.  Part of that includes posting more frequently on my blog.  🙂  So feel free to comment, ask questions, whatever, and I’ll answer as best I can.