Author Archives: Ted Leung

Some simple thoughts on Erlang

Our reading group on Bainbridge Island has been working its way through Programming Erlang. Actually we’re technically not done yet, but since I spent a fair amount of time on the ferry recently, I went ahead and finished it off. There’s been quite a bit of writing about Erlang recently, and I wanted to at least have finished the book before jumping in. Looking at Joe Armstrong’s PhD thesis is probably soonish on my list too.

Basics
Erlang is a functional language which incorporates a concurrency model based on very lightweight processes communicating via messages. I’ll cover the concurrency model a bit more below. Since many people have not really been exposed to functional programming, there are things in Erlang which seem odd when compared to more mainstream languages. In addition, Erlang relies heavily on pattern matching as a flow of control construct, and it takes some time to get used to it. Some people liken the pattern matching aspects of Erlang to Prolog, but this is not entirely accurate because Prolog uses unification, which works in “both directions” and not pattern matching, which only works in “one direction”. I can’t say that I care for the syntax of Erlang, but after using Python, there are very few syntaxes that I really like. Erlang supports higher order functions, so closure based control flow structures are included. There is a fairly usual set of basic data types which are provided. Probably the biggest problem with the basics of Erlang is the way that strings are handled. In reality there are no strings in Erlang, and strings are just lists of integers. More on that below.

Concurrency
Much of the current interest in Erlang is due to its concurrent programming capabilities. The foundations of these capabilities are the availability of processes at the language level. Erlang allows a programmer to create and destroy processes quickly and cheaply (in terms of resources). Processes can only communicate with each other by sending each other unidirectional messages. Every process has a mailbox, which is where messages for it are delivered. The messages are queued there until the process explicitly “receives” them.
The code that implements a process typically consists of a tail recursive loop which explicitly “receives” messages and uses pattern matching to examine the messages and dispatch to the correct behavior. Replying to the sender of a message must be handled by the programmer, but it is easy to code up simple rpc style message passing. Two (or more) processes can be linked to each other so that when one process dies, the other is sent a signal. The preferred mode of handling errors in processes is to kill them and restart them. This signaling forms the basis of the supervision tree concept in OTP. The basic concurrency model of Erlang is a version of the Actor model developed by Carl Hewitt at MIT. I took Hewitt’s class while I was an undergraduate, so the concepts were familiar to me. Erlang is relatively blind to where a process might be running – in the same VM, in a different hardware thread on the same VM, or on a VM on different computer altogether. This makes it easy to write programs that can grow easily when you want to add hardware, whether that is processors or computers.

OTP/Mnesia/ETS/DETS
The folks at Ericsson have also provided a bunch of libraries to raise the level of abstraction for concurrent programming in Erlang. There are 3 major libraries. OTP (Open Telecom Platform) helps a programmer to write scalable, fault-tolerant code. It takes advantage of Erlang’s hot code update facilities to allow processes to be upgraded in place. The basic abstractions to do this are very simple to work with. OTP includes the notion of supervision trees, which is an abstraction for managing networks of processes.

Mnesia is a (potentially) distributed database written in Erlang. It provides an easy mechanism for storing Erlang terms. While it is not an RDBMS, it does provide a query mechanism based on list comprehensions. It also supports transactional behavior and has the ability to duplicate Erlang tables on other machines

Runtime
One thing that isn’t discussed enough are the features of the Erlang runtime/VM. The runtime is very efficient at managing processes, much more so that languages like Python, Ruby, or Java. Erlang programs have been deployed in telephone switching products for years, with extremely long uptimes – due in part to Erlang’s hot code swapping capabilities. Java’s hot code replacement or Python’s reload are substantially weaker than Erlang’s hot code swapping. So while libraries that provide an actor like model can help people learn a good programming model for concurrency, it’s less clear to me that the languages (and the implementations of those languages) hosting the libraries will be as good as Erlang when it comes to highly concurrent applications. Of course, if an application isn’t that concurrent it might not matter.

Conclusion
Semantically, there is a lot to like about Erlang – the actor based concurrency model, hot code swapping, higher order functions, and (once one gets used to it) pattern matching. The OTP libraries have been refined by many years of production usage in demanding, commercial applications.

At the same time, there are number of issues which I think are real barriers to Erlang adoption. The syntax will prove difficult for many people, which is a big issue. I’ve already mentioned the problems with string handling, and really that generalizes to a lack of libraries for performing 21st century / web computing tasks. The nice thing about telephone switches is that you don’t really have to talk to the world. But if Erlang is to be viable as a solution for mainstream programming as it moves to more concurrency, Erlang programs must be able talk to the environments around them.

I am aware of several projects where Erlang is being used to do the heavy server lifting and then data is being passed off to programs written in more familiar languages like Python, Ruby, or Java. Certainly this is one way that people could begin to exploit the benefits of Erlang without converting wholesale. It would also give the Erlang community some time to improve Erlang to the point where it could be adopted by a larger audience.

Well done, Nikon

I had planned to finish up a post on Erlang tonight, but that got preempted by Nikon’s announcement of the D3, a full frame digital SLR, and the D300, which is a very nice improvement on the D200. The best articles I’ve read so far have been at Rob Galbraith’s site (D3, D300), followed by DPReview (D3, D300). As with the new Canon bodies, the proof will really come when enough regular folks have them in hand to provide real world information. Nikon users have got to be pretty happy today. Canon users as well, since now Canon will really have to accelerate their pace of innovation.

On the new Canon gear

Today Canon announced a pile of new gear. Being relatively new to the photography world, I find it amusing that the anticipation of new Canon/Nikon cameras is like the anticipation of a new Macintosh. In any case, dpreview.com has the best coverage of the new stuff. The highlights include:

My commentary on these is going to be somewhat out of order:

1Ds Mk III
After the 1D Mk III, this isn’t much of a surprise. This is a very impressive camera, and is starting to encroach on medium format resolution. Something like this would pretty much be a waste in the hands of someone like me.

14mm f/2.8L II
I am not really a big wide-angle / landscape kind of guy, but a common compaint is that Canon’s wide angle lenses are not that great. It’s nice to see them moving to try and improve in that area.

EF-S 18-55 IS and 55-250 f/4-5.6 IS
With these two lenses, Canon is probably going satisfy a large chuck of the consumer DSLR market. The reach coverage is good, and they are using a new generation of IS that supposedly adds 4 stops, allowing hand holding in more situations. These lenses won’t do much for people looking for f/2.8 apertures to blur backgrounds, but I bet they’ll be pretty affordable. I already have lenses covering these ranges, so I don’t see much appeal here.

Powershot G9
After this weekend’s Strobist seminar, I’m a lot more interested in this that I might have been. This is primarily because point and shoots have electronic shutters, which give you effectively unlimited flash sync speed. When you are trying to knock down the sky or a wall to black, you can’t get enough sync speed. David was toting a G7, and in the G9, the appear to have put back the ability to write RAW files. If only it went to ISO 3200 like the Fuji F20/30.

EOS 40D
This is probably the most relevant camera for me. When I got started, I bought the Digital Rebel XT because it had the same sensor as the 20D without the extras of the 20D. I didn’t know how much use I would get out of it, and I was reluctant to spend a lot of money until I knew whether I was really going to be serious about photography. After a weekend of watching David Hobby shoot, I am very aware that the equipment that I need the most is between my ears. In a day where most people use autofocus, David is still using one hand to both zoom and manually focus his 80-200mm lens. With that in mind, here’s a rundown on the major features of the 40D, with an eye to the things which are most attractive to me (might not be for anyone else):

  • 10.1 MP – I don’t really care about the megapixel count – but I do care about some of the improvements that they’ve made to the sensor. I like that the 40D sensor can go to ISO 3200. I don’t like that it requires an expansion. For those situations where I cannot bring a light (ballet recitals, for example), good low noise, hi ISO performance is important. A step up from the XT, but not as big a step as I was hoping for.
  • 14 bit DAC – One hopes that this yields an improvement in image quality, but we won’t know till people have them in hand
  • Highlight Tone Priority / Hi ISO Noise reductions – These are features taken from the 1D-Mk III, and I’d be happy to have them.
  • 6.5 FPS – I don’t seriously shoot sports, so this doesn’t really make much difference to me
  • 3″ LCD – this will probably help with focus checks, and it sounds like it will be brighter – it is hard to the the XT display in full sun
  • Faster, quieter mirror mechanism – If it really is quieter, that will be nice. There are times when I am very aware that people can hear the mirror slaps as I am shooting. Live view also gets you a super silent mode. But I am running ahead.
  • New AF system – This is really important to me. When I bought the XT I didn’t know that there were major differences between the autofocus systems in the XT and the 20D. So a system which is supposedly a reasonable improvement over the 20D system would be great. You could say that I should just learn to manual focus, but it’s very hard to manual focus in the XT viewfinder because it is pretty small.
  • AF-ON button – Canon took this feature from the 1D, but it’s not huge deal because I’ve read lots of photographers who remap the “*” button to do the same thing.
  • Live View – It seems like the live view on the 40D is even better than that on the 1D MkIII. Since I shoot a lot of macro, I would definitely get some usage out of this feature.
  • Viewfinder Magnification and interchangable focusing screens – Canon made a few changes to the viewfinder — they increased the magnification (although not the coverage), and the 40D supports interchangeable focusing screens, so that you could use a focusing screen optimized for manual focusing.
  • ISO display in the viewfinder – A long overdue improvement. Its embarrassing how many times I’ve failed to reset the ISO after bumping it too high. Seeing it in the viewfinder will make those mistakes easier to see, and perhaps make it possible to change ISO without taking the camera from the eye.
  • “Auto-ISO” – Canon tried to take a page from Nikon and others here, but the Auto-ISO feature on the 40D doesn’t hold a candle to the Nikon Auto-ISO, which is really more like ISO-priority mode. An improvement for low light, but probably not enough.
  • Dust cleaning system – The verdict on most dust control systems (with the exception of Olympus) is that hey don’t work.
  • User settings on mode dial – I can see this being useful on a per shoot basis, especially if you are moving between different areas.
  • Weather resistance – Lots of people made a big deal about weather seals on the D200. I don’t have any L series sealed lenses, so this wouldn’t really do me that much good
  • WFT-E3 – The ability to shoot “tethered” but over WiFi as opposed to a cable is pretty interesting. Unfortunately we don’t know how much this controller will cost, and its big brother for the 1D Mk III is really expensive.

For me and anyone else coming from Rebel XT’s there would also be the following benefits:

  • Two dials and multicontroller for better ergonomics in manual mode
  • RGB Histograms
  • Spot metering
  • 100,000 cycle shutter – I’m at almost 20,000 on my XT already
  • Physical size – although I am small, the XT feels small in my hand
  • PC-Sync connector – the first time I worked w/ a studio strobe, it was a hash because I didn’t have a place to plug in a PC sync cord
  • Increase in flash sync speed – the XT syncs at 1/200 and the 40D syncs at 1/250. Not a huge jump up, but as good as it gets on Canon — see my comments on the Powershot G9 above.

The 40D looks like a pretty good upgrade from the Rebel XT, especially since I have the EF-S 17-55IS and I am really in love with that lense. However, given some of the problems that Canon has been having with the 1D Mk III focusing system, it seems like a smart buyer would want to wait a little bit to make sure none of those problems have worked their way into the 40D.

Update: added sync speed to the XT -> 40D list.

Seattle Strobist Seminar, August 2007

I spent yesterday over in Seatac at the first of David Hobby’s two Seattle Strobist seminars. I had pretty high expectations for this, because David has set such a high standard on his blog. I also was hoping that David would go at fast pace, but I was prepared for the fact that he might need to slow down enough to keep the material accessible for those just getting started. I was definitely not disappointed on either count. The format of the day is pretty simple. Introductions and a chance for David to find out if people have particular interests, some lecture on theory, and then watching David set up a shoot of a hypothetical important person, using whatever room he’s been given.

There are so many different kinds of content at a seminar like this. There’s the straight “theory content”, which in this case was a fleshing out of the 7 Light Controls that David outlined at the beginning of Lighting 102 David’s style is really interactive, so as he walked us through each of the controls, there were digressions, questions from the participants and demonstrations. \

Another type of content is watching someone put that content into practice. I’ve always found that I learn something by watching someone else shoot. With someone like David, that experience is multiplied because you see how the theory he’s been discussing gets translated in to actual practice. Of course, you can take the theory and other content from David’s site and do that (and a *lot* of people are, as the Strobist Flickr pool will attest), but there are a lot of nuances that you just have to see in order to pick up. A number of other attendees said this to me in asides as we were watching. For the shoot of the important person, David’s goal was to do 4-5 completely different looks, using the exactly same room. You can see exemplars of the various looks in David’s Flickr stream (this is the first). If you look, you’ll see that they are completely different from each other. We saw gelling walls to different colors, making a wall of any color go to white (or black), making a highly reflective surface (projector screen) into a “blowaway” white background, turning a stack of drinking glasses into an abstract background, and more. In addition to the lighting aspects, I also found it instructive to see how David directed a subject’s posing and how he interacted with a subject to build a rapport.

The last kind of content is the hallway track content, which broke down two ways. One reason that I signed up for the seminar, was that I wanted to meet other people local to Seattle who were motivated enough about lighting to put down some money, in the hopes of finding some folks to shoot/talk with. That definitely happened, and there’ll be more on that in another post. The other part of the hallway track was the chance to hang out with David (and a bunch of other people) in the hotel bar after the official time was over. David is as personable and funny in person as he is on the site, and we had a great time with everything from full vs partial RSS feeds, how Knottyy has gone from 0-100 on landscape shooting, to the history of the Seattle underground, to way over my head stuff having to do with LAB color in Photoshop. It was totally a blast.

Seattle Strobist Seminar

(ironic for the Strobist to get shot with an on camera pop-up flash – but it was late)

Here are some of my personal takeaways:

  • I need to expand my imagination – That’s what is limiting the kinds of shot I want to do, or am willing to try
  • I need to just experiment and not be afraid to burn frames – David’s style is very organic and exploratory. You have to be willing to try things and see if they will work. The drinking glass background was a great example of this. Ironically, I seem to need to learn this lesson over and over. Even though the “freeness” of digital frames was what got me back into photography, I realized that I have not been as willing to experiment as I probably should be
  • I have more backgrounds than I think I do – Another thing that has been holding me back from shooting more at home (with my abundant supply of models) is feeling like I don’t have any good clean backgrounds to work with. Yesterday’s shoot pretty much demolished that idea.
  • 1/4 CTO gels are my friend – I’ve done just about nothing with gels. Well except for the gel that I somehow melted. David is gelling just about all the time.
  • Set up thoroughly so you can get people in and out and not burn up your “rapport time” – I’ve actually had some recent experience with this, but hearing David talk about various shoots that he’s done really drove this point home.
  • I need to build some grids and gobos. I built a set of the cereal box snoots, and I’ve used them for a few shots, but I don’t like the rectangular shape of the light, so I’ve laid off of them. But I knew after the OneLight that I really like grids, and seeing David’s grids just pushed me over the edge.
  • Cross light, cross light, cross light – I have learned to think in terms of balancing lights, but I haven’t really internalized looking for cross lighting situations.

Strobist vs OneLight
At the moment, I am probably the only person in the world who has attended both Zack Aria’s OneLight workshop and David Hobby’s Strobist Seminar, so a comparison is inevitable. Heck, David was asking me about it in the bar.

The OneLight is a completely self contained workshop. Zack does not assume that you have any prior experience with off camera lighting, which makes the OneLight perfect if workshops are a good learning style for you. You can start from nothing and get the basics all in one day. One major advantage of the OneLight is that after a full day of lecture and theory, you spend another 4-5 hours doing hands on shooting. Zack gets a model, and he and the workshop participants walk the model around and shoot using the stuff that you learned. Zack is right there to look at your images, give you feedback or help, and he swears not to go home until all your questions are answered. And he means it. Zack’s background is a music photographer, so you are also get his view of the photography world. I personally found that to be refreshing and interesting. Zack also had a different take on equipment, which I found interesting. In particular, I never would have found out about the awesome Westcott Apollo series of umbrella mount softboxes if it hadn’t been for the OneLight.

The Strobist Seminar is a slightly different animal because it also has the Strobist blog, and the enormous Strobist community around it. That means that David can leverage those things to make the seminar work well, both before (he asked some of the novices to at least read through Lighting 101), and after (you know there will be massive Flickr threads) the event. You will definitely get more out of the seminar if you have at least looked through the site. The one thing that David doesn’t do is take you shooting and help you out and give you feedback. Many of my fellow attendees expressed a desire to do that. Doing two seminars back to back makes that a tough proposition for David, and it would raise the cost because of the need to hire a model.

In the end, I spent the money for both workshops, and I’m not sorry about either one. When I took the OneLight, I had done David’s lighting bootcamp, but I still found that I learned things, and the experience of watching/shooting with someone experienced was well worth it. I would say that the Strobist workshop is stronger on the theory, and that the only real lack is the shooting part. I’d jump at the chance to participate in a David mentored DINFOS type shoot. In the end, I don’t think you can really go wrong with either one. It’s probably more a question of getting to one in your area. I was super fortunate that both of these came to Seattle this year. As photo workshops go, they are both pretty inexpensive – both of these dudes could be charging more. In fact, I mentioned this to David yesterday, and he told me that he didn’t feel it was in keeping with the spirit of the site to charge more, and he assured me that eating was not going to be a problem for him any time soon. I love a man who can live by his principles.

Update: I forgot to mention that there are a few setup photos in my Flickr stream

OSCON 2007

This roundup is late, but better late than never…

FLOSS foundations
For the last three OSCON’s I’ve been attending a meeting for people deeply involved in the operation of open source foundations. Allison Randal of the Perl Foundation and O’Reilly has done a great job of getting the foundations to talk to each other about common issues. Many of these have revolved around legal and financial (non-profit regulation) issues. This year one big topic was the issue of trademarks, which is particularly relevant to OSAF. With a broad range of participation it’s unsurprising that there are varying policies on trademarks, ranging from the Mozilla foundation’s strict policy, which ran afoul of Debian, to the Eclipse foundation’s encouragement of “brand hijacking”. The group has a planet aggregator if you want to see what the various participants are up to.

Multicore programming
This was definitely a theme this year, with Intel being given keynote space to talk about its Threading Building Blocks, a C++ template library for dealing with threads. This is all well and good, assuming that you believe that threads are the right abstraction for concurrent programming — which I do not. Simon Peyton-Jones, whose career I’ve followed since my undergraduate days in functional programming (now at MS Research), was also given keynote time to talk about (software) transactional memory (STM) as a concurrent programing abstraction. Much of the original STM work was done in Haskell, and Simon also did a tutorial and a regular session on Haskell related topics. Sadly, aside from the display at the Programatic Programmer’s booth, Erlang was nowhere. It seems to me that if STM/Haskell is relevant to OSCON, then so is Erlang — I hope that this will be rectified next year. I think it’s still to early to declare a victory in the concurrency abstraction space, and at this point I think its important for people to be aware of all the possible contenders.

Community/People Talks
There was a dramatic increase in the number of these kinds of talks from last year, to the point of having an entire track’s worth. This was one of the things that I was most excited about, but I found a number of the talks to be disappointing. It was suggested to me that perhaps my standards for such talks was too high — of course, I don’t think so. I did enjoy Adam Keys talk on People Hacks. He did a good job of being very practical. One of his earliest points was that people are ruled by their emotions – something that logic oriented software engineers need to remind themselves of daily. I was pleased to learn that Adam is a reader – hat’s off to you for a good talk! Last year I missed the Art of Community panel, so I resolved to make sure that I saw it this year. Aside from the usual drawbacks of fhe panel format, this one was pretty good. There is a video of the panel so you can judge the content for yourself. It was particularly gratifying to hear Karl Fogel and Jimmy Wales say that they felt that automated/numerical reputation metrics were of little value. This is something that we’ve debated inside the ASF several times, so it was nice to hear people from different places come to the same conclusion.

Ruby
Like many people, I’ve been keeping an eye on the things that are happening with Ruby. John Lam, the creator of IronRuby was kind enough to invite me to go to dinner with some friends one night. Little did I know that the group would include Ola Bini, one of the JRuby committers. It was great to sit there and watch these two compare notes and share experiences and goals, despite one guy being a MS CLR guy and the other guy being a JVM guy.

Open Source and Rich Internet Applications
Since I’ve done some writing about the openness of various RIA technologies, I tried to drop in on talks that seem like they would be relevant to that. I went to Mitchell Baker’s talk Mozilla Firefox and the Internet as an Open Platform. The talk was more at the level of the principles in the Mozilla Manifesto. Those principles drive Mozilla’s perspective on RIA stuff, but Mitchell was explicit in saying that her talk was not about a particular technology or set of technologies. So while not directly addressing the topic, it was still useful to hear Mitchell expand on the points of the Manifesto.

The other related session was RIA Platforms and Open Source, the content of which was presentations by someone from Sun on JavaFX, and James Ward from Adobe on Flex (Nat apparently tried to get someone from Microsoft / Silverlight to show up, but wasn’t successful), followed by audience Q&A and a fairly superficial wrap up of the open sourceness of the various technologies. I was disappointed that the OpenLaszlo folks were not invited to present, expecially since in the ways that matter, they are more open source than any of the invited organizations. I made sure to mention this to Nat afterwards. Actually, both Alex Russell and I did, and the three of us had a little hallway track conversation about the RIA space, the browser compatibility conundrum, and related topics. Alex is super smart and utterly realistic about the state of the world — He called Dojo a “rear guard action” that is happening only because the browser vendors can’t/won’t do the right thing. Candor to the max. One very interesting thing that I learned was that Alex really likes WebKit. Like a lot. I found this very surprising since Safari doesn’t have that large a share, and I thought for sure that Alex would be unhappy at having yet another browser to hassle with. I always learn something whenever I get the chance to talk to Alex (which isn’t often enough) and this time was no exception.

By the good graces of Ryan Stewart, I was able to have lunch with Rob Savoye, the lead developer of Gnash, the GNU Flash player. Apparently, Gnash has been done without looking at the source of the Adobe player, and without looking at the Adobe spec for SWF. There is a set of compatibility tests for Gnash / Flash, which is also interesting. Being completely ignorant of Gnash, this was a great opportunity to find out what is happening with the project, and I left the lunch with quite a bit of food for thought. So did Ryan, I’m sure.

OSAF / Chandler
The talk that Mimi and I gave on Open Design (slides) was reasonably well received. The room was about 1/3 full, and we had a number of good questions afterwards. Mikeal and Adam’s talk on Windmill was standing room only, and we heard mentions about it from people in the hallway. It was great to see the screencasts of Windmill testing Chandler Server/Cosmo on Windows, Mac, and Linux. It seems like there’s pent up demand for a tool like this, so I am hopeful that people we both use and contribute back to Windmill. I know that Mikeal and Adam and the other Windmill committers are very eager for this to happen.

You can read some other OSAF OSCON recaps:

When I started at OSAF I was the only non-local staff member. Now about 1/3 of the staff is non-local, and as a result, we are using conferences more like other open source projects use them – as a way to spend some time together in person. One result of this, was some long discussions of Myspace and Facebook, the latest rages on the web. That motivated Mimi so much that she started creating a Myspace page right during the middle of a talk! I’m not sure what other things happened, but Mimi has written a great post on “the future of e-mail” over at the Chandler Project blog. Worth a read.

Seattleites
I saw a lot of folks from Seattle this year. Two other members of my local reading group went, and I saw folks like Joe Heck (still waiting on your post!). John Lam and I arranged to ride the train back together. John and I started rubbing shoulders long before he started working on IronRuby, but now that work has brought him to the Seattle area, I’m glad for the chance to spend some more time. Of course, we talked photography (how could we not), but John also gave me some insight into things that are happening inside Microsoft, particularly around open source. For example, I didn’t look at the Microsoft Permissive License that is being used for Iron Ruby. Spiritually, this is a BSD/MIT style license with the now required patent clauses. Another Seattleite who I met for the first time was Stephen Walli, who used to be the open source programs guy at Microsoft.

Photography
Some of you may have noticed that there are no OSCON photos from me this year. I did tote my camera stuff down there. I even brought a single “Strobist” light kit, in anticipation of a photowalk. Alas, for various reasons the photowalk did not materialize. At least I was able to have dinner with James Duncan Davidson, hold his new 1D-MkIII, and pump him for information about Lightroom. This year, I spent so much time in the hallway track that there wasn’t really much time to go roving around for good pictures, and I wasn’t excited about doing more shots of people standing on stages, or people sitting in rows watching people standing on stages. In any case, there was no shortage of people snapping pictures. Jeff Kubina was cranking them out, and caught me several times.

iPhone
I’ve studiously avoided contact with iPhones, but I wasn’t able to avoid it. Duncan was eager to give me a demo, and Mikeal kept whipping his out. I did borrow Mikeal’s a few times during situations where I would have used an iPhone, just to see if it would really work for me. Most of the time it seemed to. But I still am waiting for 3G, GPS, and the ability to use the phone as a modem for my computer. For $600, it has to do *everything*, and as cool as the iPhone is, it’s still missing out. Unfortunately I am in serious need of a new phone. The problem is that I am doing more and more coordinating / meeting via SMS and/or Twitter, and doing the numeric keypad text typing thing is a real problem. I repeatedly had to stop conversations to message someone back, and was rudely standing there trying to hastily text back. My apologies to those on the receiving end of this. I’m going to see if there isn’t something sensible that I can do before the next event.

Second Cameraversary

Last year I missed my Cameraversary due to the madness of OSCON week. I got my camera a week or two before OSCON 2005, and the conference was the first chance that I really to give the thing a workout, so I have sort of a sentimental thing with OSCON and photography. In fact, you can sort of trace my history by representative shots from OSCON.

OSCON 2005: Outside the keynotes

This 2005 photo was an oops. It looks cool, but it looks that way because I forgot to change the white balance settings. Sometimes it works out that way.

OSCON 2006

This has to be the representative photo for OSCON 2006.

I guess in about a week, we’ll see what we get for OSCON 2007.

In the last 12 months, I’ve done a couple of thingsf that I’ve never done before (photographically). Back in December, I shot a sizable portion of a wedding, including all the getting ready stuff (helps when your family is in the wedding). This spring I took a workshop, Zack Arias’ amazing OneLight workshop, which is an unusual thing for me to do. I’m pretty much a learn it yourself kind of guy, but it was worthwhile. Earlier this month the local newspaper picked up one of my photos (login now required, wah. Original picture here.) and sent me a check in exchange.

I am also starting to learn my way (slowly) around Photoshop. I’ve had a fairly big change of heart regarding post processing, especially when compared to two years ago. One of the things I am looking forward to at OSCON is picking Duncan’s brain about Lightroom, since he’s already made the switch. Better integration with Photoshop is one of the reasons I’m considering switching. Curves is another. During our recent family vacation, I took a number of HDR images (yeah, posting soon, but not till after OSCON), and that pretty much means you are working in Photoshop. So for the first time I actually used curves and saw the difference compared to Aperture’s quarter toned levels control.

I recently finished “Light: Science and Magic“, which David Hobby is recommending as supplemental reading for Lighting 102, it’s really worthwhile (if you can find a copy). I’ll post a review and add it to the book list some time after OSCON.

OSCON is next week

OSCON is now barely a few days away. I like Portland, and I’m looking forward to being immersed in a sea of open source friendly people. Fortunately, the weather forecast says that we won’t be subjected to the 90 degree plus heat like last year. That will take some of the pain out of lugging camera gear. There don’t seem to be a lot of open source folks doing the Twitter thing, but if you are, here’s my Twitter home page.

This year Mimi Yin, the UI designer for Chandler, and I are giving a presentation on the things that we’ve learning in trying to incorporate designers into an open source project while maintaining the essence of what is good about both design and open source.

Check this post at the newly revamped Chandler blog for all the Chandler happenings at OSCON.

Thoughts from the Seattle Adobe AIR stop

Here are some thought from Adobe’s AIR Bus Tour in Seattle yesterday.

First, is that Adobe is laying out some serious money to promote AIR – they got a (literally) rock star bus, complete with beds, loads of electronics, and tour paint scheme. The event yesterday was at a nice restaurant which they rented for the day, and Adobe was very generous with food and drink, which was of a higher than average quality for a conference.

On the whole, the sessions were informative, although I wished that there had been a little more detail presented. There’s already been lots written about Flex and AIR/Apollo, so I’m not going to rehash any of that. Here are some of the more interesting tidbits that I picked up.

  • Kevin Lynch mentioned that when they opened the native code portion of shockwave, they only got extensions for Windows. It was pretty clear that they want to reach platforms besides Windows.
  • Mike Chambers reemphasized that point when he said that the amenability of WebKit to mobile (ported to Series 60 by Nokia, and now, of course, on iPhone) was one of the big reasons for their choice.
  • There’s some of sample code based on hacks that involve the GPS sensors, cameras, and other gadgets on the bus
  • Aptana is supporting AIR developement in their Eclipse plugin.

I also learned a new term from Lee Brimelow of Frog Design: a “deviner”, a person who has training as both a designer and programmer. I had never heard the term before, but it’s relevant to the content of the talk that Mimi Yin and I are giving at OSCON in a few weeks.

Ryan Stewart persuaded me to do a talk for the Ignite the Web sessions in the evening. I thought it fitting to give a presentation on “Openness and the Web”, based on the content of that string of blog posts that started my dialogue with the Adobe folks. The Ignite format (5 minutes, 20 slides switched at exactly 15 second intervals) is pretty demanding of speakers. I’d consider myself an experienced public speaker, but doing the Ignite talk had me pretty nervous. The delivery went well – I only had one gap where I got out of sync with the slides. Afterwards, John Dowdell, and Ted Patrick, as well as a few others, came to talk about the content of the talk. John and I traded thoughts and clarifications sporadically during the rest of the evening, and he told me that it definitely helped to have heard more from me in person. On the whole, it seemed worthwhile. The only downside is that now Ryan is trying to get me to sign up for the next Ignite Seattle.

Social Networks, Small Worlds, Bainbridge Island

Yesterday I had lunch with Annette Moser-Wellman, who lives on Bainbridge Island and is interested in innovation, creativity, and leadership. One of the great things about Bainbridge is that there are lots of people here who are doing interesting stuff. The hard part is connecting with the people that are doing things that you might find interesting. Of course, this is a problem in the wider world, but on an island of 25,000 people, with a decidedly small town feel, it seems reasonable to expect that it might be easier than normal to make those connections. The interesting thing about my conversation with Annette, other than the content – which spanned open source, innovation, education, and the Singularity – was how it came about. Annette had read Scott Rosenberg’s Dreaming in Code and noticed that I lived on Bainbridge Island. From there, she hopped onto LinkedIn, which led to our lunch.

That morning, In anticipation of the lunch meeting, I was reflecting on the value of the various social networking sites, when Anne Zelenka twittered:

LinkedIn attracts all sorts of people who would never blog or join Facebook or use Twitter, so it adds a ton of value to online life.

A timely tweet, to be sure. The key insight, I think is that one way of measuring value of particular social networks is the groupings of people that they “reach”. My Firefox bookmarks toolbar has a growing pulldown for social networking sites: Flickr, LinkedIn, Twitter, Dopplr, Upcoming, Facebook, and Pownce.

The ones that I’ve gotten actual value out of have been Flickr, LinkedIn, and Twitter. Flickr is completely an affinity group thing, so no surprises there. LinkedIn has a huge reach, as Anne points out, and perhaps because of its professional billing, has yielded several interesting meetings, and friendships. Not to mention job opportunities. There some interdisciplinary crossover, which I think is a plus. Twitter is very “hipster geek” focused, and has yielded new relationships with people like Ryan Stewart and Anne Zelenka, as well as being the impetus for the series of posts on Rich Internet Applications earlier this year.

In the end, for me it’s still all about finding your tribe. If physical book to virtual social network to real world lunch is what it takes, then I am game.