Apache Board Elections

J Aaron Farr on Thu, 07 Jun 2007

As it’s late over in this timezone, I’m not going to write up too much at the moment, but I want to at least publish the results of the Apache Software Foundation board of directors election. The new board includes:

  • Geir Magnusson, Jr
  • Greg Stein
  • Henning Schmiedehausen
  • Henri Yandell
  • J Aaron Farr
  • Jim Jagielski
  • Justin Erenkrantz
  • Sam Ruby
  • William Rowe

I’m honored to be included on that list and despite Justin telling me my carefree days are now over, I’m excited to be a part of the board. I also want to offer my own thanks to Cliff, Ken, Dirk and Sander for their efforts. They leave some big shoes to fill.

Tags ,

City of 80,000 or more

J Aaron Farr on Mon, 04 Jun 2007
Sorry, we couldn't find your home city.  We only cover cities with a population of 80,000 or more.

I think Hong Kong counts.

Tags

Tools that Shape Us

J Aaron Farr on Mon, 04 Jun 2007

I just finished watching Linus’s recent talk on git at Google. One of the things that I always liked about Google Video was the ability to directly download the video to my desktop or iPod or PSP. Now Google Tech Talks has moved to YouTube and that feature is no longer available directly on the website. Quite a shame.

Neverthess if you haven’t listened to Linus’s talk, it’s worth taking the time to watch. I use Subversion a lot myself, for Apache, personal projects, JadeTower projects, even this website is backed in Subversion. I’ve often thought about switching to a distributed system, but have never felt like the specific benefits outweighed the cost of switching tools. This is particularly true for most of my personal projects and website where I use Subversion primarily for backup and synchronization.

However I wondered about introducing a distributed revision control system to Apache. The ASF is a pretty conservative group of geeks, so I see such a move as very unlikely. My interest in the idea isn’t so much technical as it is social. I wonder how a distributed system would change the way the ASF works. For example, commit access isn’t a big issue with distributed systems. Experimental (even revolutionary) branches are much easier. I imagine that the switch from a central to distributed model would have a deep impact on the way the ASF works. Maybe not immediately, but certainly over the long term.

It’s interesting how tools can shape organizations by their feature bounderies—what they make easy and what they make hard. Consider tools for general data such as Excel or databases. The features of these tools dictate what’s easy, what’s possible, and how data is shared and how we collaborate. This is in fact one of the key things we’re considering at JadeTower—how tools for data shape us and what we can do to take more power out of the hands of the tools and back into the hands of people.

Tags

A Portable Development Environment

J Aaron Farr on Fri, 01 Jun 2007

My wife needs to use a Windows-only program for the next few days. I have Windows Vista installed on Parallels on my MacBook Pro, so that shouldn’t be a big problem. Since I was initially hesitant to leave my comfortable environment on my laptop, I first setup a VNC server so that she could use VNC from her Powerbook to use Parallels and Vista on my Macbook. While this technically worked, it was not a very pleasant solution. Vista is already slow, adding Parallels and then VNC on top made it just about unworkable.

So I set her up with an account on my Macbook and moved back to my old home on the Powerbook. My development environment felt a little dusty there from my several month absence. Most notably my emacs environment was broken because I had moved some things around to make space for my wife’s account (the fink went away, for example). I have some of my most important personal documents backed up in a remote subversion repository, but my emacs files and directories are not yet there (a mistake, I know).

I’ve also been using Gnus for my email and I’ve encountered a couple of problems on that front now. First, my email is local to my laptop (I use POP so that I can read my email when I’m offline on ferries and subways). Second, my emacs configuration is not setup for me to run in the command line, so I cannot simply ssh back into my laptop. I’m not sure if I’m going to take the time to figure that one out or not. I’ve been tempted to switch back to mutt or from emacs to vi, but I’m not that desperate yet.

I don’t realize how tied to my local computing environment I am until I’m forced out. Most of my files and code are easily enough replicated… just about everything is in subversion. But my tools, be it emacs, eclipse, firefox and a dozen or more other utilities, including maven, have been ever so slightly tuned and tied to my laptop so that moving them over to a new environment (or an old, un-updated one) is a chore.

I’ve thought about using a server more, but again, I need to be able to regularly work offline. So really I just need to be better about having my environment backed up into something like subversion so that I can replicate it and synchronize it easily. A lesson learned I suppose.

Tags

Join us at Mongoose

J Aaron Farr on Tue, 22 May 2007

Mongoose is a Mildly Opinionated Networked Group Of Open Source Experts. Initially launched last year in Austin at ApacheCon, I’m now re-launching Mongoose and opening up the forum to a wider community.

The intent of Mongoose is to serve as an informal forum for free and open source software developers who support FOSS in some sort of professional or commerical capacity. As FOSS developers we enjoy the membership of some wonderful communities, but the discussion of business questions is generally off-topic on these mailing lists and channels and that’s understandable. Mongoose was created to serve as a forum for these sorts of questions, a place for developers to share advice, resources and network.

Mongoose is open to developers and contributors from any open source project or community. If you currently do not run an open source business, but are interested in doing so, please join us! All we ask is that the forum be reserved for developers and contributors and that the focus of the group be respected. Due to the nature of the questions and information shared on the mailing list, Mongoose is a private forum for members (no publically available archives). Please include details about your open source project or company when you sign up as this will help us keep the possibility of spammers lower.

I look forward to seeing you on the new mailing list!

Roleplaying, Web 2.0 Style

J Aaron Farr on Mon, 21 May 2007

Now that I’m a bit settled in Hong Kong, one of the first things I did was start recruiting friends to for a tabletop roleplaying campaign. My first brush with world of dice was back in 6th grade with Shadowrun. I spent a good deal of high school playing Robotech and Rifts and dabbled in D&D 3rd Edition for the last few years.

Of course my being in Hong Kong makes it difficult to get the regular cast of characters around the table, so we’re moving the game online this time. There are a lot of options to do this, from IRC and Google Groups to Second Life. To keep things simple, we decided to reuse some tools we have now—37 Signal’s Basecamp and Campfire. So far it’s worked very well. The biggest advantage is that these applications are very easy to use and require no extra software, so I didn’t have to teach anyone how to use IRC, for example. While 37 Signals does offer free accounts for these services, you couldn’t run a very large campaign that way, so this wouldn’t work for everyone.

We’re just getting started and I’m interested to see how well these tools work out for roleplaying. I’ll try to post an update after a few games (in a month or so).

Oh, and while I’m on the subject—- there are a lot of really impressive open source tools for roleplaying too such as PCGen, RPTools, and OpenRPG. However, none of them are easy to use. That’s a real shame and I would love to find the time to help on that front. If anyone has other suggestions, include them in the comments below.

Too Many Messaging Apps

J Aaron Farr on Fri, 11 May 2007

Any more I tend to have Adium, Colloquy, and Skype open at all times. I’d rather have a single application that handled IM, chat and voice so that I don’t have to deal with multiple contact lists, status indicators, and cluttering windows.

There are competing schools of thought on whether a software application should do one simple thing or be all things to all people. I tend to prefer to minimize the total number of applications and devices I have to work with, so I guess I fall more on the extensible side of the spectrum. Who am I kidding, I use emacs to check my email.

Nevertheless, even trying to repress my urge to converge, I still don’t understand why I can’t have a single app for messaging. I’ve read rumors that Skype may eventually support Jabber and that would be step in the right direction. If this bothers me enough I suppose I should contribute to Adium to get the changes in. Any other suggestions?

JavaFX

J Aaron Farr on Wed, 09 May 2007

So Sun has announced JavaFX which appears to be based on Java F3. My first impressions are: (1) it comes across more as a GUI shorthand language than a full general purpose scripting language and (2) it doesn’t add anything substantially new to the RIA (rich internet application) space. The first point isn’t a criticism, just an observation. I’m interested to see if anyone uses JavaFX for general scripting and not for just UI development.

The second point is that JavaFX is about making UI development easier which is very different from improvements in RIAs. As far as I can tell, there’s isn’t anything one can do in JavaFX that one couldn’t do before in Java. Improving Java UI development is a laudable goal worthy in its own right. But it’s only one piece of a larger puzzle when it comes to RIAs where deployment is a major factor. I didn’t see anything about improvements to Java WebStart or a slimmed down JRE for RIAs. Without those features, JavaFX applications are still stuck with applets and WebStart.

In summary, JavaFX looks very intriguing from a technical point of view and I hope to see many better looking Java apps out there because of it. However, the marketing spin on this launch is a bit over the top: Sun Radically Simplifies Content Authoring It’s only radically simple if you’re used to the complexity of Java.

Tags

Eclipse PDE Build Screencast

J Aaron Farr on Tue, 08 May 2007

Last year I put together a screencast on the Eclipse PDE build process. PDE is the Eclipse Plugin Development Environment. It’s a set of tools for developing Eclipse plugins and OSGi bundles. It may surprise some to learn that you can use these tools “outside” of the Eclipse IDE as part of an Ant build (for example). This allows for headless builds and continuous integration. However, using the PDE in this context is not always straightforward. In this screencast, I share the layout and approach we used. We didn’t follow the documented PDE build process exactly, and in there are certainly areas for improvement in the tutorial code, but it should be a decent starting point for anyone deailing with Eclipse build issues. These instructions are specific to Eclipse 3.2 and some changes may be necessary to apply the code to other versions of PDE.

  • Screencast on Google Video
  • Source code on SourceForge

I know the quality of the Google Video version isn’t very good. There’s a full quality version included in the SourceForge download. The download also includes additional documentation and notes as well as the full source code and necessary dependencies. Enjoy!

Interview on Eclipse Podcast

J Aaron Farr on Tue, 08 May 2007

Not long ago I was interviewed by Wayne Beaton, Eclipse evangelist, about my own experiences with Eclipse RCP development. The podcast was just released.

I still feel that, for certain projects, Eclipse RCP is an excellent development choice. This is especially true when the goal is to build a platform more than just an application. The learning curve is still steep and RCP development still has some rough edges, but it’s pretty amazing what the Eclipse Foundation has been able to produce thus far. I’ll try to keep putting up some of my Eclipse tutorials and training information as opportunity lets me.

Tags ,

Greatest Web Software Ever?

J Aaron Farr on Sat, 05 May 2007

According to Charles Babcock of Information Week the answer is the Apache webserver. Not a bad choice, in my humble opinion.

Apache in Hong Kong!

J Aaron Farr on Sat, 05 May 2007

As was mentioned at ApacheCon, the Apache Software Foundation and the Eclipse Foundation will be producing a joint open source conference in Hong Kong November 26-30. Yes, this year, this November, in Hong Kong! Further details and a call for papers will be announced soon. In the meantime, you can listen to the latest Apache Feathercast Podcast in which I discuss the new conference with Rich Bowen.

See you in Hong Kong!

So Long Amsterdam

J Aaron Farr on Sat, 05 May 2007

Today ApacheCon EU finished up. It was a great conference—so great, that I haven’t had time to blog or even take many photos. I have put up my slides though:

The slides I used for my Scala: Hope for Java Weenies short talk were largely taken from material in the Scala Beginner’s Guide and I recommend reading that document. I was surprised to find a few others at Apache using Scala so hopefully we’ll see some Scala based projects soon.

Now that ApacheCon is over, it’s time for me to focus on coding. William and I have an exciting product in progress, so expect updates here on the blog.

Open Source in China Presentation

J Aaron Farr on Thu, 03 May 2007

A talk fell through here at ApacheCon so I had the opportunity to give my Open Source in China presentation. Given that it was only announced that morning, I had decent attendence (around 20 people) and good feedback. The slides are now online.

Off To ApacheCon EU

J Aaron Farr on Sat, 28 Apr 2007

Tonight I leave for ApacheCon EU where I’ll be giving my Incubating Open Source Communities Talk next Thursday at 10:30 am. This talk is based on one I gave last year at OSCON and this year at the Taipei OSDC. I’ll be sharing lessons learned in Apache about open source communities as well as reviewing the structure and procedures of the Apache Incubator. I’ve enjoyed preparing this presentation and I’m looking forward to sharing it.

Package Dependencies in Java

J Aaron Farr on Fri, 27 Apr 2007

Today I had one of those “oh, yeah, now I remember why I’ve been avoiding Java lately” moments. Over the last few months, when I’ve had time to code I’ve generally been using Ruby. Most recently I’ve been trying to pick up Scala and that means returning to the JVM. Since I happen to be working with an odd collection of technologies such as OSGi and Scala, things turned out to be doubly fun.

Setting up a build environment wasn’t too difficult. The Scala Eclipse plugin and the Eclipse PDE plugin conflict, (something I’m hoping to look into rectifying), so I had to start with an Ant build. Luckily, there is both a Scala Ant task and Peter Krien’s wonderful BND tool for generating OSGi bundles.

While the Ant build worked, it was hastily thrown together and I started considering Maven 2 or Rake. I ended up choosing Rake and I’m eyeing up adding Scala and OSGi support to buildr.

So far, so good. I had a basic “hello world” app using Rake, Scala and OSGi. Then I decided to grab another Java project from the Apache Incubator and start integrating that code into my project. That’s when things started to become interesting. It’s not really the project’s fault, so it’ll remain unnamed. It’s more a problem that there’s no good package management system for Java that spans both build and runtime.

Maven 2 does a decent job at sorting out dependencies during the build process. But that doesn’t necessarily help during runtime. If you’re collecting a series of libraries to run together, you have to track down their dependencies, and then their dependencies and then their dependencies… all hoping nothing conflicts. Some projects are nice enough to do this for you, but my question is, “Why don’t we have a platform that handles this automatically?”

OSGi lays the groundwork for this sort of solution. An OSGi bundle includes dependency information and package export information in its MANIFEST.MF file. This provides enough details for the OSGi container to construct a proper classpath, including handling different versions of different packages within the same container. But most Java libraries don’t include the necessarily manifest properties. (Consider this a plea—it’s simple to add OSGi properties to your Java library, it doesn’t hurt anything. Please do it.)

Honestly, why do I even need to specify any build or runtime dependencies unless I’m very interested in a specific implementation? I specify my dependencies in my Java import statements! That should be enough. If a Java repository contained OSGi package information, then the build tool could construct the necessary classpath without me specifying anything other than my import statements. If I had to, I could annote the versions in the source code or use a propertry file like BND requires. Then the system could likewise construct my classpath and launch in an OSGi container. Imagine that.

How is it that so many other platforms and languages have this figured out (CPAN, RubyGems, etc.) and Java is still in the stone age. Why don’t we have this yet???

Tags ,

Flex Will Be Open Source

J Aaron Farr on Thu, 26 Apr 2007

Adobe has announced it will release Flex under the MPL. This includes the compiler and ActionScript libraries.

The Flash runtime is still closed, but this is a great step. I wonder how OpenLazlo will respond.

Ruby, Scala and XML

J Aaron Farr on Sun, 22 Apr 2007

I've been programming fair bit in Ruby lately, but I've had my eye on Scala as well. It's XML support (not to mention integration with Java) makes it a tempting platform. Here's an example of Ruby with REXML:


  require 'rexml/document'
  include REXML
  xml = Document.new(File.open("hydrogen.atom"))
  id = xml.elements["//id"][0]
  puts id

Now for the Scala


  import scala.xml.XML
  object AtomTest {
    val doc = XML.loadFile("hydrogen.atom")
    val id = (doc \ "id")(0)
    def main(args: Array[String]) = 
         Console.println(id)
  }

Pretty similiar, eh? Well here are two great things about Scala: first, we can inline the XML as so:


  import scala.xml.XML
  object AtomTest {
  val doc = 
    <entry xmlns="http://www.w3.org/2005/Atom" 
           xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
           xmlns:dc="http://purl.org/dc/elements/1.1/">
      <title>A simple Atom test</title>
      <id>http://localhost/sandbox/hydrogen</id>
      <updated>2007-04-05T12:30:00Z</updated>
      <author>
	<name>root</name>
	<uri>http://localhost:3000/users/root</uri>
	<email>farra@localhost</email>
      </author>
      <content type="application/rdf+xml">
        <rdf:Description rdf:ID="http://localhost/sandbox/hydrogen">
          <dc:comment>This is just a comment</dc:comment>
          <dc:description>The simplest atom is hydrogen</dc:description>
        </rdf:Description>         
      </content>
    </entry>;
   val id = (doc \ "id")(0)
   def main(args: Array[String]) =  Console.println(id)
  }

Now let's look at one other difference between the two. Notice we're outputting the entire element, not just its text. The Ruby output is this:


  <id>http://localhost/sandbox/hydrogen</id>

But with scala, our output is this (prettied up a bit):


  <id xmlns:dc="http://purl.org/dc/elements/1.1/" 
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
      xmlns="http://www.w3.org/2005/Atom">
        http://localhost/sandbox/hydrogen
  </id>

Scala maintains the XML namespaces! Sweet!

OSDC Taiwan

J Aaron Farr on Tue, 17 Apr 2007

I spent this last weekend in Taipei, Taiwan attending the Open Source Developers Conference there. By rough count I estimate there were 200 some people attending. The conference included two tracks of sessions for two days. Perl talks took the majority of slots with presentations by Audrey Tang” (developer of pugs ), Ingy döt Net (developer of kwiki ), and clkao (author of svk ) to name a few. Seth Spitzer from Mozilla talked about Firefox 3.0, and I spoke about open source communities and the Apache Incubator.

Taiwan has an impressive open source community. Perl is strongly represented. The OSDC Taiwan event intentionally followed the YAPC::Asia in Tokoyo. The Mozilla Taiwan community is also very active. And I found out from Ping Yeh (co-founder of the Taipei Open Source Users Group ) that there’s a strong FreeBSD community in Hsinchu.

All in all, I had a great time and met some great people. It’s just too bad I could only stay for the weekend. It’s always nice to go back to Taiwan.

Excalibur Release

J Aaron Farr on Fri, 06 Apr 2007

Without much fanfare Apache Excalibur had a release recently. Other than a large backlog of bug fixes, the major change is the move to Maven 2. Check out the release notes for more details. Many thanks to Jorg Heymans for doing all the dirty work!

Twitter as IM Status

J Aaron Farr on Thu, 29 Mar 2007

I have been baffled by Twitter for some time now. Rich Bowen finally explained it:

Twitter appears to be a hosted blog service. Nothing more nor less. The only thing innovative about it is that it limits your postings to 90 characters, and thus encourages you to post less, more frequently.

When I started traveling frequently about a year ago I started updating my IM status message to include my location so friends would have some idea where I was. I also used to include what I was listening to in iTunes (I should find that plugin again). So I suppose we’ve all been twittering via IM status for a while now, though not with the publicity and frequency that Twitter encourages. It shouldn’t come as a surprise then that some creative folks have put together plugins for Adium that allow synching of your Twitter and IM status. I’m not convinced I’ll start using Twitter yet, but at least I get it now.

Tags

Commericalizing The GPL

J Aaron Farr on Tue, 20 Mar 2007

Gianugo Rabellino has a great post on the use of the GPL versus more permissive licenses in commerical settings. I find this interesting because lately I’ve been considering the open source strategy we plan to take with JadeTower. The advantage of the GPL is that companies can dual license. However, to be able to dual license the company has to have the rights to all contributions. IMHO this limits the attractiveness of the project to outside contributors. It puts contributors and the original copyright owner on unequal ground, which is against the idea of the GPL and open source in general. Personally, I perfer the approach the Eclipse Foundation has taken: a permissive license that encourages a community, both commerical and non-commerical. Now, if only Adobe would do something similar with Flex and Apollo.

The Open Web and Its Confusions

J Aaron Farr on Wed, 14 Mar 2007

It’s easy to get confused what one means by “open” these days. Ted Leung has stirred an excellent conversation ( follow ups ) about the openness (or lack thereof) of Adobe’s Flex and Apollo technologies. Ted argues for an open environment with at least three characteristics:

  • the ability for interested parties to directly determine the future of the technology
  • mechanisms for compatibility
  • availability of source code

Brendan at Mozilla discusses another aspect of openness. He calls it open standards, and that’s certainly part of it, but the technologies he describes aren’t just open, they’re transparent. One can easily inspect them without any special tools and from the outside. Opaque software (or as Yegge put it, hardware ), like Flash or Java bytecode, may still have intrinsic introspection, but to everything on the outside it’s a closed system. Brendan looks for REST-friendly technologies that are “hyper-linkable or indexable by search-engines.” This sort of openness (or transparency) is different from the openness for which Ted contends.

I completely agree with Ted’s concerns about the openness of Adobe’s RIA platform. I’m worried that we’ll have to go through the whole Java song and dance once again. In fact, I can’t express it much better than Ted already has, so I won’t try.

At the same time, I don’t share Brendon’s concern about Flex’s transparency. If Adobe provided an open environment for Flex and Apollo, that would be good enough for me. Why? Because rich internet applications are different beasts from websites. Period.

Let me elaborate. As far as I’m concerned, GMail is no more transparent than a Flash client. Where’s the hyper-linkability or the search-engine friendliness? Any openness is due to features of the application, not the underlying technology (have you looked at that Javascript?!) Better yet, where’s the linkability in say, Adobe Photoshop? Or Emacs or Eclipse or Skype? These are all applications, one of them just happens to be delivered over the web and uses the browser as its platform instead of some virtual machine or operating system. And let me go on record as saying the browser is a horrible operating system. Mozilla is great and getting better but when you target the web as your platform, then you have to work with IE and a host other browsers and the incompatibilities between them. The web just can’t easily support some applications to the same degree that an operating system or virtual machine can.

Ryan Stewart brings this up in Stop Thinking of Flex As a Browser Technology. Seriously. Stop It. I couldn’t agree more. The web was designed for hyperlinked documents. The core specifications are about resources and data, not applications (despite supporting code-on-demand). Just because we can turn a series of HTML documents into an application doesn’t mean we always should. Or that all applications can be turned into a series of forms and documents.

What web applications can do, however, is provide a web friendly view in addition to a rich client. Applications can provide open RESTful APIs that serve data in transparent formats like Atom or RDF. I would much rather work with a web application that actually behaved like an application but then also provided internet-friendly interfaces on the server. That’s a transparent and open approach.

I truly believe that, as Brendon suggests, the web can evolve to deliver rich applications using open, transparent technologies. I believe that Mozilla will be key to that realization. In the mean time, if you need a solution today, then you’re going to consider Flex. Since it isn’t a transparent technology, it’s all the more critical that it be an open one.

No Google Video in China

J Aaron Farr on Tue, 13 Mar 2007

It’s bad enough that I can’t get Wikipedia here in mainland China. The other day I went to view a Google Tech Talk and got the following message:

*Thanks for your interest in Google Video.*

Currently, the playback feature of Google Video isn’t available in your country.

We hope to make this feature available more widely in the future, and we really appreciate your patience.

Lovely. Even Apple iTunes allows me to purchase music from my account here, but no Google Video. So I did what I had to do and ssh’ed into a server back in the states and used lynx(web_browser) to get to the video webpage. From there I could download a version for the iPod and I could then take that MP4 file and put it somewhere I could download back to a computer here. I’m going to have to write a server side script that does all of this for me. Oh well.

Tags ,

Still Redditless

J Aaron Farr on Sat, 03 Mar 2007

Well, it’s been a week without Reddit and just when the ban is to be lifted, I’m going offline for a few days. We finally found an apartment here in Zhuhai, China and it will take a few days to get the internet up and running. If I’m more productive without Reddit, just imagine what I’ll be able to do without the whole internet!

Tags ,

First Flex Impressions

J Aaron Farr on Thu, 01 Mar 2007

With all my increased productivity this week, I’ve taken time to look into Flex 2. I remember hearing about Flex when Macromedia originally released it, but at the time it was a cost prohibitive solution for what it delivered.

Now, however, Adobe has turned Flex into a platform to take note of. My first impression is that I wish I had had Flex 2 a few years ago. It would have been perfect for some of the projects I’ve worked on—applications that needed a bit more than HTML/AJAX can easily deliver but didn’t need to full complexity of a desktop app. Just the data binding features alone would have cut out a lot of headache. At the same time, I was surprised about what came in the box and what didn’t. For example, Flex has a ton of transition effects, but no draggable, collapsable, min/max-able window frame. So far, I’ve only created applications using MXML, Flex’s XML UI markup. I’m interested in seeing what it takes to write up the UI using ActionScript only. I’m also a little concerned about the potential to see classes duplicated between the client and server—that is, ending up writing both a Person.java class and a Person.as class.

I’m not going to take the time to write up a full review. There are plenty of those out there. I recommend checking out the 30 minutes test drive for Java developers. For Rubists on Rails, Adobe also has a set of examples.

The browser is a very poor operating system but we’ve been treating it as such more and more. At some point, it becomes painfully clear that you can stretch and abused HTML and Javascript only so far and at that point, you need to turn to other platforms. Flex may just be one of those platforms. With that said, expect more on Flex from me here in the future.

Tags ,

Redditless

J Aaron Farr on Sat, 24 Feb 2007

My host file on my new MacBook Pro is as follows for the next week:


127.0.0.1         localhost
255.255.255.255   broadcasthost
::1               localhost 
127.0.0.1         reddit.com
127.0.0.1         programming.reddit.com

Sometimes, you just have to take drastic action to restore productivity. And I’m not the only one.

Tags ,

China's Fabled Growth

J Aaron Farr on Tue, 30 Jan 2007

News is out that China’s GDP growth rate hit a 10 year record at 10.7% for 2006.

What might be more important is that 50% of Chinese economic activity is from fixed asset investment. When you consider that India’s fixed asset investment is under 30% of GDP and the US and UK’s is around 17%, then you begin to understand why China is using up 30% of the world’s supply of raw materials. The signs are apparent everywhere you look in China’s booming cities. Looking around Shanghai or Guangzhou you could easily see a dozen skyscrapers under construction in any direction.

Everyone’s looking for the Chinese economy to slow down a bit. However, the US economy hasn’t slowed down the way it was expected to. The appreciating yuan only serves to check inflation pressures (at 2.8%) and attract more foreign investment.

What may eventually trip China up is domestic demand. As the IMF pointed out earlier this week, China’s economy is still too dependent on trade and foreign investment. As I mentioned before, this definitely seems to be the case for the software market. Were investment to truly slow down, the shift to domestic consumption could be rough.

See You In Amsterdam

J Aaron Farr on Tue, 30 Jan 2007

I’ll be presenting Incubating Open Source Communities at this year’s ApacheCon EU in Amsterdam, May 1-4. My other session Open Source in China is on fallback status in case another session cancels. I’m hoping to join the Photography Walkabout too. It should be a great conference, so I hope to see you there!

Wikipedia Never Looked So Good

J Aaron Farr on Sat, 27 Jan 2007

Wikipedia never looked so good. I’m in Macau now and after almost a month of not being able to access wikipedia and a couple other sites, I’ve finally got a clear, fast, uncensored connection. I’m not sure if the speed is due to not having to deal with the Great Firewall of China or if the undersea cables are finally being repaired. More likely the former. But even better than the speed is the ability to connect to Wikipedia which has been censored in mainland China since last fall.

It wasn’t just Wikipedia that was missing though. Access to Slashdot and SourceForge was slow or unavailable often, as were a number of other sites. However, these I suspect were more due to the damaged connections than political blocking. In order to access a few sites and files I had to resort to ssh-ing into a server in the US and using Links and wget to grab what I needed. That was actually faster in some cases than waiting for a file to download directly. Oh and let me go on record here and now that Sourceforge’s choice of using an ajax dialog to switch your download mirror is a bad idea. The dialog would never return, so I had to jump into the source, find the URL myself and get the list of mirrors manually. What an unnecessary pain.

But all of that is behind me now. At least for the next month or two as we travel through Macau, Hong Kong and Taiwan. And if we do end up settling back in mainland China (which is likely), I’ll be sure to setup proxy software first this time.

Tags ,

Open Source in 中国

J Aaron Farr on Wed, 17 Jan 2007

For the last two weeks I’ve been in Beijing researching the state of open source efforts here in China. With the help of some of my fellow members at the Apache Software Foundation I was introduced to the Chinese Open Source Promotion Union ( COPU ). I met with Mr. Lu Shouqun and discussed internals of ASF and how we build open source communities there. We also discussed the state of open source here in China, what success and challenges they’ve faced. Thanks to Wu Jinnan, I had the chance to visit CSIP and talk to those working on Linux and open source there. Other meetings I’ve attended here included a short visit with Intel and the Beijing LUG that I already mentioned.

The case for open source in developing countries is strong; however, the US, Japan and Europe are still home to most open source developers, projects and companies. Within the ASF, we have no Chinese members and only a few Chinese committers. While I’m here in China I’m hoping to change that and help bridge the gap between oss communities in the East and West.

As to what challenges exist, well, I’m still learning. :-) One of my first impressions is that there’s still a lot of misunderstanding about how open source communities work and what motivations drive oss development. I heard a lot of talk about looking for business models. And the Chinese software market certainly does have it’s own peculiarities. For example, in the past there was strong government support for open source projects but the actual local demand was very small. In fact, the entire Chinese IT and software market, while growing, is still pretty immature. I’ve also seen a lot of focus on desktop projects and heard talk about trying to get Windows APIs into Linux (but not with wine ).

Later this week I’ll be in Shanghai and then after that I’ll be visiting several cities in the Pearl River Delta—Guangzhou, Macao, Shenzhen and Hong Kong. While there I’ll be meeting with Scott McNeil who’s been working on the Global Desktop project. I think his approach of working with universities to introduce students to open source may have the most success of any OSS program here in China.

I’ll be sharing what I discover here on Cubicle Muses. I’m also hoping to collect up some of what I learn and present it this year at ApacheCon or OSCON.

Adjusting

J Aaron Farr on Tue, 16 Jan 2007

We’ve been in China for about two weeks now and we’ve started to adjust to new timezone, food and weather. I’ve also had to adjust to not having regular access to the internet. This is more a matter of us switching hotels and the fallout of the earthquake last year than it is an indictment of the internet in China. Apparently it’ll be another fifteen days before connectivity is back to what it was before the undersea cables were damaged.

Gnus has become a good friend of mine now. With gmail access spotty, I’ve relied on good old POP3 access more and more. My only trouble is learning the key shortcuts. I’m starting to get the basic ones down but I still have to regularly refer to the manual. I thought about going back to mutt, but I like having access to my mail, rss feeds and news feeds all in one client. I tend to get between 100-150 emails a day that I have to go through, so a reasonably fast client is a must.

And for those wondering, I’m finally going to start putting up some articles about both the startup and my investigations into open source in China. Stay tuned.

Beijing LUG

J Aaron Farr on Wed, 10 Jan 2007

If you’re ever in Beijing on the second Tuesday of the month, try to stop in at Steak & Eggs to attend the Beijing Linux User Group. Last night I was surprised to find that most of the 30 some people who attended were foreigners. The meeting was even in English! (about changes in the lastest draft of the GPL v3). It was a good crowd and when I’m next in Beijing I’ll definitely be there.

Back Online

J Aaron Farr on Sun, 07 Jan 2007

Finally got my laptop online here in China which means I can start blogging again. I’m having difficulty hitting several sites in the US and most of this trouble I assume is due to the earthquake. Photos will be up on Flickr and Peregrinari shortly.

Three Suitcases

J Aaron Farr on Wed, 03 Jan 2007

Turns out we’ll be taking three suitcases and three carry-ons tomorrow, that is, if you count Maeli’s Curious George backpack as a carry-on. We could have fit everything into two but they would have been too heavy, so we’re taking one more small suitcase.

We’ll be up at 5:00 am tomorrow morning getting ready to leave. We depart Pittsburgh airport at 9:30 am and we’ll arrive in Beijing Thursday afternoon. The flight from Chicago to Beijing is almost 14 hours. I’ll let you know how it goes…

Tags ,

A Moment of Silence Please

J Aaron Farr on Mon, 01 Jan 2007

Of all the accounts I had to cancel and possessions I’ve had to give up or sell in order to prepare for this trip to China, canceling Netflix was one of the hardest. Well, giving up my cellphone number (not the phone itself, but the number) was difficult too. If anyone is wondering exactly what we’ve done to prepare for our trip, you may want to check out our latest article on Peregrinari, our travelogue blog.

OFBiz Joins Apache

J Aaron Farr on Mon, 01 Jan 2007

For those that haven’t heard yet, OFBiz has exited the Apache Incubator and is noxw a full fledged top level project. As one of the mentors, I’m very excited for their success. Though quite honestly the OFBiz team barely needed the mentors. I was regularly impressed with their commitment to the incubation process, and the openness, dedication and thoroughness of their efforts. They became models to me of how Apache’s Incubator can work.

If you aren’t familiar with OFBiz (the Apache Open For Business Project) you should take a look. OFBiz provides a large collection of software for ecommerce, ERP, and other “business automation” systems. It’s developed in Java but is not a typical J2EE app (no EJBs for example). The project makes a great addition to Apache and showcases the work of many other open source projects.

Congrats to the OFBiz team!

Pittsburgh Soda Pop

J Aaron Farr on Sat, 30 Dec 2006

My father-in-law, Damon Shutak, launched his own website today for the Pittsburgh Soda Pop Company. For the last four years or so he’s been making root beer and soda at home and selling it at farmer’s markets and fairs. Now he’s decided to set up shop online. He had trouble finding shippable (and affordable) bottles that could handle the carbonation, so he’s actually selling syrups. Basically, you buy off the shelf club soda or some other carbonated water and mix in a small amount Damon’s syrup and you have home made soda. One 20 oz. bottle of syrup makes 4 liters of pop.

So if you enjoy root beer, you should visit his store or blog, both of which he designed himself using Yahoo! stores.

In One Week

J Aaron Farr on Thu, 28 Dec 2006

In one week I and my family will be off to China. We’ve got a one way ticket and definite travel plans through April, but beyond that we’re not quite sure where we’ll end up. You can follow our adventure in more detail on our Perigrinari blog.

William and I are in the midst of launching a start up. I’ve been independently consulting this year in order to help raise funds and over the next couple of months he and I will be putting together our first software product. There’s not much to say about it yet, but we’ll post more info here when we’re ready.

My goals in China are two fold—first, I hope to become involved in open source software efforts there. Thanks to some friends in Apache I’ve been introduced to several prominent individuals in the free and open source software (FOSS) movement there. For the first month or so, my family and I will be traveling from Beijing to Shanghai to Hong Kong (with a few stops in between). Even though many use our software there, we don’t have any Chinese members in the Apache Software Foundation and that’s something I hope I can help to change.

Secondly, I’ll be on the lookout for any interesting opportunities for my new company. However, William and I have some plans for the US market first, so it’s with a long term vision that we approach this visit to China. And he’ll be staying in Florida to handle things in the US while I’m abroad.

I’ve very excited to go. It’s been over six years since I came back from my two years in Taiwan. My Chinese is a little rusty but I believe it’ll come back to me once I’m there. We’re not quite sure where we’ll settle down yet—one of the goals of our first few months of traveling is to decide that. When we do find a stable location, Jenny hopes to teach English while I keep working on the start up and my open source contributions. And of course, our wonderful two year old, Maeli, will be with us to make things more interesting, er, uh, I mean fun. :-)

For those hoping to keep in touch, we’ll be regularly updating our blogs on Cubicle Muses and you can still reach us via email or Skype. More updates and details, coming soon!

Tags ,

And Just In Time

J Aaron Farr on Thu, 28 Dec 2006

And just in time for our trip, Taiwan experienced a large earthquake that interfered with internet access throughout Asia. It’s going to be an interesting trip!

Site Refreshed

J Aaron Farr on Fri, 01 Dec 2006

Last week I refreshed my websites on “CubicleMuses“https://cubiclemuses.com with site designs from the Open Source Web Design site. I’m very happy with the results. There are few little tweaks left but for the most part, things are working.

I’ve also finally got gnus setup with gmail (via fetchmail). But that’s a story worthy of it’s own entry…

Tags ,

Gnus, GMail, OS X and Other Goodness

J Aaron Farr on Fri, 01 Dec 2006

In October, Bill Clementson tried to get gnus setup with gmail on OS X and had some trouble. However, he inspired me and now I’m reading my gmail from gnus on my Apple powerbook and I’m very happy with the setup. Here’s a quick guide to how I set everything up:

Required Software

  • Carbon Emacs
  • Fink (from which you can get just about any extra packages you end up needing such as crypto packages used by fetchmail)
  • w3m
  • The Insidious Big Brother Database
  • Contacts
  • Contacts-BBDB

Required Reading

These articles will help you:

The Setup

My setup is as follows:

  • fetchmail downloads email from gmail and puts it in my local mail spool file at /var/mail/farra
  • gnus reads the email from my local mail directory
  • gnus sends the email to my own smtp server (not gmail’s)
  • bbdb stores my address book
  • contacts-bbdb allows a one way sync from OS X Address Book to bbdb via the ‘contacts’ program
  • I’ve also setup rss2email to download rss feeds and add them to my local mail spool

Now, you could say using fetchmail to get my email is cheating and I really should have used POP directly from gnus. Well, direct pop access is possible but it’s a bit messy due to gmail’s use of SSL. Since I didn’t want to deal with getting packages from CVS, fetchmail seemed like a decent solution. And it works. And it means gnus starts up faster because the POP download happens in the background with fetchmail (though you can setup gnus to run fetchmail on loading gnus). I prefer to control when fetchmail runs myself either via cron or manually.

Gnus can also directly subscribe to RSS feeds but this also slows down the loading process. So I’m using rss2email instead. There are other RSS to email programs and services, so pick your poison. There’s also an RSS to local newsreader program, nntp//rss, which is actually pretty nice and I’ve thought of switching to that but I’m not sure if I want to deal with yet another server running in the background constantly.

My .gnus.el File:

;; .gnus.el for J Aaron Farr

(setq user-mail-address “[email protected]”)
(setq user-full-name “J Aaron Farr”)

;; news and mail sources
(setq gnus-select-method ’(nntp “news.gmane.org”))
(add-to-list ‘gnus-secondary-select-methods ’(nntp “localhost”))
(add-to-list ‘gnus-secondary-select-methods ’(nnml ””))
(setq mail-sources ’((file :path ”/var/mail/farra”)))

;; pop settings for cubiclemuses used for testing
;;(setq mail-sources ’((pop :server “mail.cubiclemuses.com”
;; :user “farra”
;; :password nil)))

;; outgoing settings
;; these settings are just for my SMTP server
;; gmail’s are different. see Bill’s article
(setq smtpmail-smtp-server “mail.cubiclemuses.com”
smtpmail-default-smtp-server “mail.cubiclemuses.com”
send-mail-function ‘smtpmail-send-it
message-send-mail-function ‘smtpmail-send-it
smtpmail-smtp-service 25
smtpmail-auth-credentials ’((“mail.cubiclemuses.com”
25
[email protected]
nil)))

;; comes in handy
;;(setq smptmail-debug-info “t”)

(require ‘bbdb)
(bbdb-initialize ‘gnus ‘message)

;; gnus customization
(setq gnus-summary-line-format ”:U%R %B %s %-60=|-20,20f |%&user-date; \n”)
(setq gnus-sum-thread-tree-single-leaf ” »”)
(setq gnus-sum-thread-tree-leaf-with-other ” »”)

;; fetch old headers when a new follow-up arrives
(setq gnus-fetch-old-headers t)

;; mail splitting
;; haven’t finished this yet, but here’s an example
(setq nnmail-split-methods ‘nnmail-split-fancy)
(setq nnmail-split-fancy
`(| (“User-Agent” “rss2email” “rss.feeds”)
(from “JIRA” “mail.apache.jira”)
(any “svn commit” “mail.apache.commits”)
(“Mailing-List” “contact \\[-a-z]\\-help@\\[.a-z]\\apache.org” “mail.apache.\\2\\1”)
;; unmatched goes to misc
“mail.misc”))

.fetchmailrc

here’s my fetchmail file:

set daemon 300
set syslog
poll pop.gmail.com with proto POP3
    user '[email protected]' there with password 'my_password' is farra here
        options keep ssl sslfingerprint '59:51:61:89:CD:DD:B2:35:94:BB:44:97:A0:39:D5:B4'
            sslcertck sslcertpath /usr/share/ssl/certs

I hope that helps. It can still be a long and confusing process, so take your time and read the documentation thoroughly. Also the gnus newsgroup and archives helped a lot too. Good luck!

Pittsburgh PodCamp

J Aaron Farr on Sun, 12 Nov 2006

I’m attending Pittsburgh’s first (and the second ever) PodCamp a conference on blogging, podcasting, web video, and web media in general. I’m rather impressed with the turn out, over 100 people registered and attending. With my upcoming trip to China I’ve been considering how to best record and share the adventure. This conference is giving me some ideas, so i’m glad I came.

Keep your ORM away from my objects

J Aaron Farr on Tue, 07 Nov 2006

I’m increasingly of the opinion that object relational mapping tools are bad ideas. If you’re using a relational database, then use a relational database, don’t try to hide it or treat it like an object database, because it isn’t and ORMs are an incredibly leaky abstraction. My real objection comes down to this—don’t let your object model and your persistance mechanism mix. They’re two separate concerns. If you’re using OO, then get your object model right and don’t clutter it up or compromise it by mixing in persistance issues. I’ve seen way too many models where structure was sacrificed because of some odd ORM constraint that made life difficult to do it the right way. This is why I perfer a tool like iBatis which lets me use a relational database properly and still easily convert SQL results into objects without pain.

I could go on and on about ORMs, but I’ll leave more of that rant for later. But in all seriousness, if you’re using Hibernate or JDO or whatever, check out iBatis and, oh, get over your irrational fear of SQL. You’re using Java! Compared to that SQL is a walk in the park.

Looking for a voip solution

J Aaron Farr on Tue, 07 Nov 2006

Early next year, my family and I are leaving the US for China and Taiwan for an as yet undetermined amount of time. One of the (innumerable) items to take care of is my phone service. Currently I have Vonage and I’ve been very happy with it. But I’d rather use a voip softphone only when we go abroad because that means one less thing to carry around. While Vonage does offer a softphone, it’s very limited and you still have to carry another account with a dedicated device (and their current wifi phone just doesn’t make the cut for me). So I’ve been looking for alternatives.

The choice basically came down to Broadvoice versus Skype and I recently just got a Broadvoice account. The main reasons I didn’t choose Skype include:

  • I wanted to keep one of my existing numbers and you can’t transfer numbers to Skype (you can get a Skype-in number, but you can’t transfer an existing number)
  • Skype’s proprietary p2p protocol makes me nervous

However, I’ve had a few technical difficulties with Broadvoice, such as incoming calls having no audio, that have had me questioning this decision. I’ve never had any trouble with Skype. I’m also astonished by the absolute dearth of good OS X softphones. For OS X the only decent one I’ve found is X-Lite and it’s nothing too fantastic. The current trend appears to be closed networks (like Skype) with network specific clients. So finding a SIP softphone client that works with any voip provider is rather difficult.

I’m going to see if I can get Broadvoice working, because I would really like to keep my old phone number, but a working Skype-in number is better than a broken established number, so I may switch to Skype after all.

Tags ,

Hard Drive Full After One Year

J Aaron Farr on Mon, 30 Oct 2006

The 80 GB harddrive of my G4 PowerBook is just about full after one year:

Which is why I just ordered an OptiBay—a second hard drive for my powerbook that replaces my optical drive (the optical drive can still be used in a firewire enclosure).

Keys Signed

J Aaron Farr on Wed, 25 Oct 2006

I finally got around to signing all the keys from the ApacheCon keysigning event.

Tags ,

Still To Do

J Aaron Farr on Wed, 03 May 2006

Things still needing done for the blog:

  • Including tags in an article is causing trouble, need to look into that
  • Clean up the tag page
  • If we're using tags, then they should be shown when we show an individual story
  • RSS feeds for tags
  • Testing on IE (I know it's broken)
  • Setting up subversion hooks
  • Pyblosxom subversion plugin
  • Import stuff from jadetower.org
  • redirects from jadetower.org
Tags ,
plants