Monthly Archive for July, 2008

The iPhone under pressure

Having an iPhone in time for OSCON was the only reason that I bothered to stand in line for one. In general, I would say that it was worth it. I probably would have missed going to dinner with John Resig, which would have meant missing the Portland Python meetup, which turned out to be incredibly useful because I was able to spend a lot of quality time with some Django folks.

The Good

The iPhone basically did its job, which was to get my Twitter updates, web access, and e-mail. This was especially important because the quality of the OSCON wifi was worse than I remember. There were a bunch of times where the only network that I got came via AT&T’s EDGE network, which is a huge improvement over T-Mobile’s GPRS, which is what I had before. I was surprised to have 3G coverage for a sizable portion of the train ride down to Portland. The iPhone was also successful at helping me spend less time responding to tweets and text messages.

I didn’t run into any major power problems. I plugged my phone into my laptop whenever I could, so even though my evenings were going from 6pm to 2am, I still had enough battery to tweet, browse, and SMS with impunity.

The Bad

One thing that I discovered is that the iPhone’s Safari has tabs. The only problem is that if you put the phone to sleep, the contents of those tabs will be gone and when you switch to that tab, the browser will force itself to reload. Reduces the usefulness of tabs as far as I am concerned.

The iPhone is definitely a 2 handed phone. It was hard to operate the phone while dragging my roller bag. Even when I had no roller bag, I found it hard to type accurately enough to Twitter/SMS and walk at the same time. I expect my iPhone typing to improve with time, but I don’t see this problem going away. On the other hand, I really don’t want to give up screen space or thickness to a keyboard. I think I can deal with it.

The Weird

3G seems to degrade in a way that is different than I expect. Outside the convention center, or near the perimeter, you could get a 3G signal with 3-4 bars. Once you went further in, you would switch immediately to EDGE, and be getting a decent number of bars. Somehow I expected to get a very weak (1bar) 3G signal in preference to a very strong EDGE signal. I am not an antenna guy though, so I am sure there is something I am missing.

Help needed

This one is for the iPhone Twitter clients. I need a way to direct message people on Twitter by selecting from a list of favorite people or something. Don’t require there to be a recent tweet from someone in order to have an easy way to direct message. This is definitely a difference in the way that I use Twitter when mobile as opposed to sitting at my computer. The service becomes a way to SMS people that I don’t have phone numbers for.

All in all, not bad for having had the phone for less than a week going into the show.

OSCON 2008

Another OSCON has come and gone, and as usual, I am exhausted in the aftermath. I’ve developed a love-hate relationship with OSCON over the years. The diversity of the OSCON community is one of the huge pluses of the conference. I got involved in open source via Apache, and OSCON was where I really started to get more of a sense of the open source community as a whole. That’s led to friendships with people doing all sorts of open source stuff, which makes the conference a natural place to reconnect with many of those folks. Which leads to the primary downside of OSCON, which is that there is just no way to keep up with, never mind see all the people that you’d like to see. Combine that with the sheer scale of the event, and you have recipe for burnout. This year is no exception, which is why this post is delayed by a few days.

Languages

It’s fitting to start a review of OSCON with programming languages, since OSCON began as a Perl conference. There are still lots of Perl hackers running around, and by the distribution of the program (the Python track was 1 day shorter than the Perl, PHP, and Ruby tracks), it seems that Perl is not going anywhere anytime soon. I think that we are going to need to drum up some more Python talks for OSCON next year. Then again, with PyCon topping 1000 people this year, maybe all the Python folks are going there. It certainly is cheaper than going to OSCON. Despite all of this, I saw lots of people that I knew from the Python community, as well as plenty of people who had affixed a yellow Python ribbon to their badge. The ribbons are a nice way of helping people find their tribe at a big show like OSCON – a lower tech version of what the Pathable folks are doing.

I spent a lot of time nosing around various concurrency oriented sessions. I attended Steven Parkes’ tutorial on Actors, which was pretty well attended. Steven has implemented a version of Actors as a set of Ruby and Python libraries. During the tutorial I was able to meet Debasish Ghosh, who has a great blog and Twitterstream on high-level languages, and concurrency topics in general. I also took in a BOF on Actors, which had some really interesting conversation. There were a lot of Erlang folks in the room for that one, which made the discussion pretty interesting.

Databases

OSCON 2008

There was lots of non-traditional database stuff happening at OSCON this year. I am one of the mentors for the CouchDB project at Apache, and I was finally able to meet my first CouchDB commiter, Jan Lehnardt, at the show. Jan gave a nice high level overview talk on CouchDB, which was well attended, and I was interested to see Brian Aker of MySQL/Drizzle in the audience and among the throng of questioners after the talk.

OSCON 2008

I also went to a talk on Prophet, which is a peer to peer database that is being done by some of the folks that brought us SVK. I’m not sure that I quite recovered from my initial reaction to that revelation, but Jan was sitting next to me during the entire talk, and was saying something about stealing some ideas from the Prophet guys. In open source we call that standing on the shoulders of giants, or something like that.

“Memes”

The XMPP folks had a three day summit during the conference, which I gather was well attended. There was a decent amount of XMPP buzz floating around in the hallways, so I expect the blogosphere to be full of XMPPness during the next week or so. I’ve done a bunch of blogging on XMPP in the past, and while things have improved, they haven’t improved to the point where XMPP is taking over the world. Things like Twitter are definitely helping, but there is still a long way to go before XMPP achieves world domination. But we can hope. And at least XMPP makes a great advertisement for Erlang.

Along with XMPP, we had the microblogging meme. I made heavy use of Twitter throughout the week, and it definitely played a useful part in making connections with people. Well, except for the times when it was down. I was able to spend a little time with Leah Culver, the founder of Pownce, which has the virtue of being written in Python, and of having a very nice API for dealing with the service. It’s interesting to get additional perspectives on a problem, and since I had already talked some with the Twitter guys, it definitely helped to hear Leah describe Powce’s take on the problem(s) and solutions. O’Reilly was not to be outdone, and did some very active boostering for identi.ca. I’ve got very mixed feelings on identi.ca. One the one hand, I should love identi.ca, because it’s open source. On the other hand, it’s written in PHP, which means I won’t be touching the code, and more importantly, my network is not there. Actually, it was kind of annoying to have to explain to lots of identi.ca zealots that it’s the network that’s the value, not the software, or ironically, the quality of the service. Still if another microblogging service can convince my network to move, and remain up, and even deliver some new functionality, I would definitely switch. I think I could probably write another post about “microblogging”, but I’ll refrain for now.

Theo Schlossnagle gave an amazing presentation called “Full-stack introspection crash course”, which is code for “let me show you some amazing stuff that you’ll only be able to do with DTrace”. This was a brilliant choice of title on Theo’s part, because it didn’t scare away all of those people whose preconceptions about DTrace or Sun would prevent them from coming to such a talk. Instead, Theo played to a very full room, and I would say that about one-third of the audience actually uttered the phrase “Oh My God” out loud at some point during the presentation. This was certainly true for thetwo gentlemen sitting directly to my right and directly behind me. I later heard from people at the Sun booth, that a bunch of people came to the booth having heard about DTrace (I assume at Theo’s talk), asking for whatever CD’s they needed in order to be able to use it. Theo clearly understands how to communicate about DTrace. We at Sun need to learn that lesson.

Open Source

Of course, you can’t have a conference on open source without meta stuff about open source itself. I was fortunate to attend the morning session of Microsoft’s Participate08 event, which was an interesting case study led by Karim Lakhani from the Harvard Business School. The case was on threadless.com and involved a lot of issues which are very relevant to injecting corporate involvement into an existing community based organization. I’ve been following Karim’s work over the years (he studied under Eric von Hippel, whose work I am also fond of), so I was happy for the chance to meet him and participate in an activity with him. I also met Siobhan O’Mahony, who is also doing great work studying open source communities. I’m not sure what direct value Microsoft got out of sponsoring Participate, other than being able to say that they did an event around OSCON, but I know that I definitely appreciated the chance to interact with a bunch of people.

OSCON 2008

Microsoft was all over the news by the end of OSCON, having announced that they would become a Platinum sponsor of the Apache Software Foundation. This was not a complete surprise to me: Justin Erenkrantz, the current ASF president told me what was happening the night before at a party. I think that this is an interesting step for Microsoft, an it’s definitely a step in the right direction. However, as one questioner pointed out, Microsoft has a long history of incendiary rhetoric towards the open source community, and that’s going to mean that just about everything happens in steps. I do find it interesting that one of the reasons that the ASF has taken donations is to build up a legal defense fund against what we regarded as inevitable legal attacks. It’s somehow ironic to think of Microsoft’s $100,000 going into that pool. I think that the next interesting milestone in Microsoft’s relationship with the ASF will be when the first Microsoft sponsored project shows up at the front door of the Apache Incubator.

I also contributed to the metaness with a talk titled “Open Source Community Antipatterns” (slides are now available on the O’Reilly slide page). The talk was decently attended, but I suspect that the all-star antipatterns panel immediately following my talk drew off some of the audience that might have come to my talk. The people track expanded a great deal this year, which I think is a good thing.

Photography

I always have photographic memories associated with OSCON. I got my first digital SLR, right before OSCON 2005, and I’ve shot a bit a each OSCON, and even won the OSCON photo contest one year. This year I found myself shooting less. There were too many other things that I needed to do, and between knowing that Duncan is making is covering stuff and some artistic blockage, I lacked both time and motivation to crank out the shots.

Duncan has been a great friend and photographic mentor, and I always look forward to catching up with him during OSCON. This time was no exception. We did a bunch of stuff together, ranging from hanging out, having a wide angle shootout (well he was wide) to Duncan putting one of his cards into my D3 and giving the pixels a once over. Probably the most fun thing that we did was an impromptu photoshoot. Duncan was shooting headshots of the OSCON staff for a thank you slide for the closing keynotes. Only problem was that he needed one of himself, so he drafted me. With the safe shot in hand, we spent a few more minutes doing something a little edgier and fun.

OSCON 2008


Fin

That’s it for another OSCON. I hope we’ll be back in Portland again next year.

IDE’s and Dynamic Languages

Just about two weeks ago, Stephen O’Grady was wondering about the market for IDE’s for dynamic languages. His post followed on Sun’s announcement that we’re going to be doing some work on IDE support for Python. Here’s his closing pondering:

But I do wonder how much success IDEs will have in markets currently dominated by text editors, and what the metrics for success will look like for IDE advocates and purveyors.

Back to the Future

One of the points that I’ve been trying to make since I’ve gotten back in to the languages space is that a lot of what is happening in languages now is unpausing the nuclear winter that Java imposed on the programming language space. If you haven’t been following this space for a while, you’d believe that all this dynamic language stuff was invented in the last 5 or 10 years or so. But it wasn’t. Today when you say dynamic languages, people assume that you are talking about Ruby, Python, Groovy, Javascript, PHP, or Perl, with a number of other languages also entering the mix. The truth is that the intellectual forbears of these languages, Lisp and Smalltalk, were invented about 30 years ago or so. At their height, both of them were running on hardware that was specifically designed to execute programs written in these languages. The ideas for GUI’s which we now take for granted in our modern desktop work environments were pioneered on these systems. These systems included the predecessors of today’s IDE’s. They were written in dynamic languages, for use on dynamic languages. They did not include some of the most maligned features of “modern” IDE’s, such as bloat or wizards that spew out pages of autogenerated boilerplate code. People that actually have used these systems were highly productive on them.

I don’t think that word means what you think it means…

Stephen asserts that he’s talked to lots of dynamic language developers and that they don’t use IDE’s. He cites the Rails committers usage of Textmate as proof that IDE’s are not being used. I guess it depends what an IDE is. Textmate includes automatic syntax verification and code completion, which are not really features that have anything to do with edit text, and both of which require some understanding of what a program means in order to do their job. I’d call those IDE features. The ability to perform semantic manipulations on programs is the essence of what I think an IDE is. Maybe we should just say “good tools” instead of IDE, since a number of people that I’ve talked to seem to think that in order to be an IDE, the tool has to be huge, written in Java, and include feature for generating reams of boiler plate code – none of which fit my criteria for what makes a good programming tool. As best I can tell, Textmate (and other text editors) do not provide features like “find all uses of an identifier” or the ability to refactor ones code. Given the high Test Driven nature of the Ruby community, and to a lesser extent the Python community, I’d be surprised if a tool that could correctly and reliably refactor programs would be uninteresting.

The flight to dynamic languages is a flight away from boilerplate code, a flight to semantically richer control abstractions via mechanism like closures, a flight to appropriate use of metalinguistic programming via meta-level functionality (also known as Doman Specific Languages), and generally a flight to more productivity. If developers are willing to change languages to get more productivity, I believe that sufficiently powerful tools will also be adopted if they can consistently deliver higher degrees of productivity.

Chasm crossing

Stephen talked to existing dynamic language developers. While early adopters are highly valuable audience, they are not the only audience. The lack (or perceived lack, depending on your point of view) of good tools is a barrier to the adoption of dynamic languages. If dynamic languages are to attract a much larger audience, then I think that the development of good tools is an important step towards making that happen. If you think that that tool is named an “IDE”, then we need that.

My experience working at OSAF was that we hired a number of people who were skilled developers but had no previous Python experience. These folks were able to learn the language without any problems, but many of them wanted richer tools. Most of the available tools for Python had problems of one kind or another, including slowness, instability, unreliability and lack of refactoring tools. These were highly skilled people who had worked on and shipped big systems before, who both appreciated the benefits of Python, and the benefits of high quality tools. There are more of these people who are the target audience to jump to using dynamic languages, and I think that having a good tool story for these folks is important.

What is success?

Stephen wants to know what success looks like. Here’s my personal take:

Deliver tools that understand programs at a semantic level and which use that knowledge to reliably refactor dynamic languages using a substantial number of the refactorings in the book “Refactoring: Improving the Design of Existing Code” (Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts). These tools should have outstanding user experiences, including performance and footprint characteristics. People coming from Eclipse/Netbeans/IntelliJ/Visual Studio/XCode should not be wishing for their old tools when using these tools.

Once such tools are actually shipping, there are several possible definitions of success:

In the Java world (not so much the C# world) you have your IDE people, and you have the people using vi and emacs. If the percentage breakdown of IDEs vs text editors for dynamic languages, is the same as that for Java, then that’s success.

Real success would be when lots of people willingly give up their text editors with IDE features for these tools – I was an Emacs guy until Eclipse started refactoring programs.

My initial iPhone experience

Last Thursday, thanks to some tips from friends, I stood in line at the University Village Apple Store and came away with iPhones. Ordinarily I wouldn’t have waited in line for something like this, but I was tired of going to conferences with my 5 year old Nokia 6600. Conferences are about the connecting and talking and so forth, so improving my communications capability means improving my effectiveness while I’m at a conference. In any case, I spent a remarkably short two hours in line, bonding with my fellow crazies, and came away favorably impressed with the shopping experience.

I don’t go to the Apple Store that often, because it’s just too inconvenient, but the service from the folks at the University Village store has been so good, that they’ve pretty much assured themselves of being my first stop. Over the course of several transactions, they’ve given me customer service which way above any other merchant that I’ve dealt with (yeah, I don’t buy much stuff from Zappos). Like many Apple stores, employees handed out water, umbrellas (to keep the sun off), and repeatedly walked the line to make sure that people had as much straightened out as they could before they got inside the store. In my case, at least, all that pre-work paid off. I think I spent maybe 15 minutes with a human being in order to look at colors, purchase and activate the phones, port phone numbers, and look at cases (which I ended up not buying). By the time I walked out the front door of the store, I was using my phone with my ported phone number. I know it should just work like that, but cellphones have been so much trouble that I actually am impressed anytime something actually works the way it was supposed to. Yes, my expectations of the cellular industry are that low.

As for the phone itself, I couldn’t be happier. Well, if the thing tethered and had a 16 hour internet battery life, I would be happier. I really like the large display. The onscreen keyboard is workable, and I don’t think I’ve given it enough time. I hope that it will be more aggressive about suggesting completions, and that I will get the hang of it more. It still beats typing on a regular phone keypad though. I don’t know how Apple could get a real keyboard onto the device without reducing the screen size or increasing the form factor, neither of which I want. I don’t expect to be writing a lot of e-mail on this thing, although it will be nice to actually respond to message at all, something which was impractical on the Nokia.

The biggest issue for me is the battery life on wireless data. I am going to be pounding this thing on that front over the next week, and I am definitely worried about running out of juice halfway through the day. According to reviews, the iPhone is near the head of the class in this dimension, so it’s not like another choice would produce a better result. It seems like a long way from 3-4 hours to 16, that’s for sure.

Safari is getting new lease on life on my desktop machine, as I’ve been grabbing sites from my Firefox bookmarks and making Safari bookmarks that can then be synced to the iPhone. Takes some of the typing sting out. It also makes me glad for 1Passwd, and I think that it will be a good thing when the iPhone version of this app finally gets approved on the AppStore

I’ve installed some applications, and am reasonably happy with them, although I have had a few application induced phone restarts. I really want a good, easy way to read PDF’s on the phone, although I do think that the screen is too small for the kind of reading that I want to do. Another application that has gotten a new lease on life is Evernote. I’ve had a copy of this since the early beta, but never really used it much. I can see that this is going to change, especially since the iPhone’s Notes app doesn’t sync to anything on my desktop machine. I just discovered that you can’t edit Evernote notes on the iPhone. This seems like a glaring omission, and I hope that it is just a matter of time before this is corrected.

Now that I am traveling more, I am expecting to get a lot help from this phone. I already have TripIt on my home screen, along with the Yelp and Where apps. If people have more travel related suggestions, leave a comment. One thing that’s been kind of disappointing is the GPS. It eats batteries, so you have to be pretty careful if you are really pushing the phone hard. Also, in my home area in Kitsap county, we are predominantly an EDGE kind of place. It seems like the GPS is much less effective when you are on EDGE vs 3G – I’ll test that assumption a bit more this week in Portland.

I’m sure that I’ll have a lot more to say about this after a week of using the iPhone at OSCON.

OSCON 2008 is next week

OSCON starts in Portland next week. This year there are a bunch of technical sessions that I am looking forward to including:

I’ll be giving a talk on Open Source Community Antipatterns. The content of this talk is based on my experiences with Apache, the Chandler project at OSAF, as well as general observation of open source projects in general. There’s a great panel on the same topic immediately after that talk, so you’ll be able to go two full rounds on this stuff if you like.

This is the first year I have been at OSCON as the employee of a sponsor, so I suspect that’s going to make the experience a little different this year. We are going do something a little different with the Sun booth this year. Instead of the usual booth stuff, we are going to host a two day unconference and a lounge with coffee, cookies and electrical outlets, so come by, chat or crash. Also, Sun, MySQL, and Zend are co-sponsoring a party on Wednesday night, July 23rd. If you were at OSCON last year, this is a bigger version of the party in the garage at the DoubleTree. Same venue, 8pm. I’m going to be at the Actors BOF right before that, so I’ll be fashionably late. I hope to see some of you in Portland!

Jython 2.5 Alpha 1

The Jython development team has released the first alpha of Jython 2.5. The guys were hoping to have this done in time for EuroPython, but it wasn’t to be. Still, they are ahead of where they planned to be, so this is good news. If you are interested in an up to date version of Python on the JVM, go kick the tires and report bugs. Getting more testing done should help speed the process of shaking out all the bugs.

My first EuroPython

I’ve been doing Python stuff since 2003, and my first PyCon was back in 2004, but this was the first time that I’ve been able to attend EuroPython. The conference reminded me very much of the first PyCon that I went to back in 2004. It was around 250 people, and it had a much smaller and more intimate feeling to it. That made it much easier to find and sit down with people and really dig in to what they are doing.

EuroPython 2008

There weren’t really any tracks per se, but I spent almost the entire time in a single room which was occupied either by a Jython talk or a PyPy talk. I somehow missed the PyPy talks at PyCon this year, so it was good to see the people and reconnect with what they are doing. We had a fun discussion about ways that the two projects could collaborate in the future. I really hope that we’ll be able to establish a good collaboration there.

EuroPython 2008

During one of the meals I got to spend some time with Raymond Hettinger, one of the Python core developers, who is also a professional photographer. It is always good to find people in the same tribe, even better to find multiple tribal overlaps. Thank you also to several of you who read this blog and stopped by to say hi. I completely appreciate the encouragement.

EuroPython 2008

The most riveting presentation of the conference was Hans Rosling’s presentation on the data visualization tools at GapMinder, which was really an excuse for him to present all sorts of interesting slicings of international health and economic development data. Despite being very sleepy and hungry, this talk had my undivided attention – I didn’t even really notice the passage of time. Professor Rosling gave a talk at TED earlier this year, and I expect that this is part of the content which we saw in the keynote.

EuroPython 2008

Python conferences seem to be taking off. In addition to EuroPython, there was PyCon Italia earlier this year, which was well attended, from what I was told. Also, in September, I will be speaking at PyCon UK in Birmingham, and I was able to meet John Pinner, one of the organizers, and nail down a bit more of that.

Thus far, I haven’t had any major travel hiccups. I made all my flights (2 from Seattle to Vilnius, and another 2 from Vilnius to Prague) and no bags were lost or anything else. I am writing this from a flexible office at Sun’s Prague development office, which is home to much of the NetBeans engineering team. I’ll save Prague for a posting when I make my way home.

EuroPython 2008

Python in NetBeans: NBPython

One of the obvious things that Sun could do in the Python world is to make Python a supported language in the NetBeans IDE. Netbeans has really nice support for Ruby and Javascript, so why should Python be left out? So today Sun is announcing that a future version of NetBeans will provide support for Python. We are not announcing which release of NetBeans that will be because we are taking an unconventional (at least for NetBeans) path towards providing that support.

Before Frank Wierzbicki and I were even hired by Sun to work on Python and Jython, Allan Davis, a member of the NetBeans community, decided to start implementing support for Python in NetBeans in a project called NBPython. What we’ve decided to do is to work together with Allan and the rest of the NBPython community to produce a high quality Python plugin for NetBeans. The plugin is an early stage of development, but if you are brave, you can get Milestone 4, from the NBPython page and try it for yourself. If you decide to do that, you might find this blog post helpful with the installation – you will need a nightly build of NetBeans – NetBeans 6.1 will not do). Geertjan Wielenga from Sun did an e-mail interview with Allan Davis that has a few more technical details in it. There is plenty of work to do, so if you are interested in helping, drop into the development mailing list.

A month or two ago, the Sun Developer Network (SDN) started up a Ruby developer center. When that happened, I twittered to see whether there was any interest in a similar site for Python, and a number of folks expressed interest. So I am happy to announce that the Python developer center is now up and running. This is just a beginning for this site, and we are definitely looking for feedback and suggestions on this.

EuroPython 2008

Next week I’ll be at EuroPython 2008, in Vilnius, Lithuania, where I’ll be moderating a panel on Jython. If you have questions that you’d like to put to the Jython committers, leave them as comments on this post. I’ll make sure that I post answers for any of those questions.

After the conference ends, I’ll be spending a few days at Sun’s office in Prague, which is where much of the NetBeans team is located. I’ve never been to Vilnius or Prague, so suggestions for things to see, etc., would also be great comments.