Ted Leung has been working in the IT industry for more than two decades. He is the author of the book “XML Development with Apache Tools” also he has been actively involved with Apache Software Foundation and Open Source Applications Foundation. In this interview, he tells us about his projects, his views on Open Source and Python-XML combination.
PythonThreads >> Hello Ted, We are glad to have you on PythonThreads. Could you introduce yourself?
Ted Leung >> My name is Ted Leung and I got started with computers back in 1981 or so. Some of the places I’ve worked at include: Taligent (the Apple/IBM/HP Object Technology Joint Venture), Apple Computer’s Newton Systems Group, and IBM’s Java Technology Center/Silicon Valley. I’ve been involved in open source software since 1999, initially via the Apache Software Foundation (ASF), and now also via the Open Source Applications Foundation (OSAF). I’ve written a book on using the various Apache XML Tools <http://www.amazon.com/exec/obidos/ASIN/0764543555>. In 2000, we moved out of Silicon Valley and I now live on Bainbridge Island, WA, which is 35 minutes west of Seattle by ferry. We home school our three daughters, and generally live a full and busy life. I have also recently become a digital photography nut. My Flickr photostream is here: <http://www.flickr.com/photos/twleung/>.
PythonThreads >> Could you tell our readers more about PyBlosxom, Apache Incubator, Planet Apache , Chandler projects?
Ted Leung >> Let’s see:
Planet Apache <http://www.planetapache.org> is a project run by Thom May (of the ASF and Ubuntu) and me. Planet Apache was one of the early open source “Planet” sites, which are aggregators of the blogs of individual contributors to an open source project. Our goal with Planet Apache was to give a more human face to the ASF. Some people wanted the planet to be mostly about project releases and so forth, but Thom and I felt that it was really important for the individual voices of the committers to show through. As more and more people start to use open source software, they want to have some idea of who they are dealing with. Or more properly, *who* since an open source project is really just a group of people.
“Our goal with Planet Apache was to give a more human face to the ASF…”
The Apache Incubator <http://incubator.apache.org> is chartered to help projects (codebases) become Apache projects. The primary responsibility of the Incubator is the make sure that any code coming into the ASF has been checked for problems with intellectual property, and to make sure that any other legal issues, like contributor license agreements are taken care of properly. The Incubator is also responsible for helping these project learn the ropes of Apache culture, including decision-making, conflict resolution, project management, and other aspects of community building. This is a huge job because lots of people are interested in having their projects become Apache projects.
“lots of people are interested in having their projects become Apache projects…”
PyBlosxom <http://pyblosxom.sourceforge.net> is a blogging system written in Python. Wari Wahab was the original author, and was inspired by Rael Dornfest’s blosxom blogging system. I got involved with Pyblosxom because I wanted to learn Python and learn something about the various weblogging technologies. I wrote the comment/trackback/pingback system and I also worked on the support for the Metaweblog API. My personal blog runs on Pyblosxom, and it’s doing pretty well at handling the 1500+ entries on the blog. I am not actively working on Pyblosxom any more, since it pretty much does what I need it to do.
“I got involved with Pyblosxom because I wanted to learn about the various weblogging technologies…”
Chandler <http://chandler.osafoundation.org> is an open source Personal Information Manager that we are building at OSAF. The system is written in Python uses wxWidgets as the windowing toolkit, and runs on Windows, Mac OS X, and Linux We are using the most recent stable release, 0.6, in house to do calendar scheduling. Over the next few months we plan to add task/personal project management and contact management functionality. The Chandler project has been underway for a long time, and we have spent a lot of time building infrastructure such as a repository for storing semi-structured information, and a data driven GUI toolkit on top of wxWidgets. We’ve also invested a large amount of effort into improving wxWidgets, particularly on the Macintosh. These changes to wx are getting folded back into the wxWidgets trunk so that other people will be able to benefit from our work. In addition to our desktop client software we are also working on a sharing server (our calendar sharing is based on CalDAV) and a web client for accessing shared data.
“We plan to add task/personal project management and contact management functionality…”
PythonThreads >> Any projects that are still in the nascent stages but you think hold a lot of promise for the future?
Ted Leung >> I’m very interested in the work being done in the Open Croquet <http://opencroquet.org> project, both from the perspective of user interface and from the perspective of peer-to-peer distributed computing infrastructure
There’s a lot of work going on in the digital identity space. This work is very important and will probably impact just about everyone who uses a computer, so it’s very important to get this done well.
Steve Gillmor from GestureBank recently announced plans for an “Attention Operating System”. He didn’t go into a lot of technical details, but the subject of information filtering whether by attentional or reputational means is very interesting to me.
“digital identity space will probably impact just about everyone who uses a computer…”
PythonThreads >> What developments are you keenly following in Python or even other languages?
Ted Leung >> I’m interested in recent proposals to revive restricted execution in Python. The next big problem in programming languages is managing concurrency, and I think that grappling with the coming generations of multi-core processors will eventually cause us all to go looking for a new programming language. So there will be window of time when people are open to looking at new programming languages that have a good mechanism for managing concurrency. Those new languages will also have to do a good job at things that existing languages do well. I think that Erlang and io are of particular interest, but there are also many more good candidates.
“grappling with the coming generations of multi-core processors will cause us all to go looking for a new programming language…”
PythonThreads >> What are your views on Python and XML (PyXML) combination ? Do you think Python is an ideal language for manipulating XML? Why ?
Ted Leung >> I’d have to say that the state of Python and XML is not as good as it could be. There are way too many libraries to choose from. For a while we were doing a lot of XML stuff in Chandler (we’ve since ripped that out), and we had different people using different XML processing libraries. Also, most of the libraries that I’ve used have relatively nasty API’s (and yes, I count DOM API’s as nasty). The good news is that most other languages have nasty API’s for dealing with XML also.
“The state of Python and XML is not as good as it could be…”
PythonThreads >> What is your role at Open Source Applications Foundation ?
Ted Leung >> Until this year, I was spending most of my time doing development. Most of what I worked on was query like access to data stored in the Chandler repository. Recently, I have been spending much more of my time doing community development/management kinds of work.
PythonThreads >> What factors do you think contribute to the success of Open Source & Open Source Languages like Python?
Ted Leung >> I think that we are just starting to understand why open source really works. I don’t think that the open source process/method is just limited to “hackers doing it for love”, although certainly that is happening. Professor Yochai Benkler at Yale has written a very good paper “Coase’s Penguin”, and now a book, “The Wealth of Networks”, that explains why open source works. I think that his notion of commons-based peer production is much more rational explanation of what is happening in open source software and also points the way to applying these ideas in domains other than software.
“I don’t think that the open source process/method is just limited to ‘hackers doing it for love’…”
As far as open source languages, I think that there are a combination of factors. Open source languages tend to not be designed by committee, so we don’t have, for example, ANSI Ruby, or ANSI Python or any of that sort of thing. The owners (benevolent dictators) of the languages don’t benefit directly from their position, so they are able to focus much more on technical merit. In the cases of Perl, Python, and Ruby, the designers have stolen liberally from other languages. Another reason that languages have been particularly successful is that languages and their environments are really a commons, thus making a perfect match for the commons-based peer production (open source) method.
“In the cases of Perl, Python, and Ruby, the designers have stolen liberally from other languages…”
PythonThreads >> You are working with Open Source Applications Foundation (a non-profit organization), Is open source work a free work or developer actually make money by contributing to open source projects?
Ted Leung >> I know many developers who are making a living doing open source. That includes being paid to contribute to a project, or working on a project and getting paid to do custom development or support. If you look around many of the big open source projects, Linux, Gnome, Mozilla, MySQL, Apache, etc, you will find developers who are getting paid to work on those projects. The projects themselves may or may not have money to pay the developers, but some companies do see the value of paying developers to contribute to projects that they use.
“The projects themselves may or may not have money to pay the developers…”
PythonThreads >> Considering your long association with OSAF, you are in a good position to tell our readers why they should contribute to open source projects?
Ted Leung >> 1. Contributing is a way to work on something that really interests you.
2. Contributing is a way to build a reputation and portfolio for yourself outside of what your paid job is.
3. Contributing is a way to learn and work with technologies that you don’t get to use at your day job.
4. Contributing is a way to learn how to work in the geographically distributed workplace of the future.
PythonThreads >> How did you get involved with the ASF? What is your role in the Apache Software Foundation?
Ted Leung >> I got involved with the ASF in 1999 when IBM donated the XML4J project to Apache. I was the technical lead for XML4J at the time, and the XML4J developers became the initial committers for Xerces-J. Since then I have been involved with the web services projects, the XMLBeans project and the Incubator. I was the chair of the XML Project Management Committee for 2 years, after which I imposed a term limit on myself and stepped down. At the moment, I am lighty involved in the Incubator, but I just volunteered to be one of the mentors of the Heraldry digital identity project, so my involvement is about to go up again.
“I have been involved with the web services projects, the XMLBeans project and the Incubator…”
PythonThreads >> How widely is mod_python (Apache & Python Integration) used? Are there particular segments that are a good match for mod_python ?
Ted Leung >> I don’t really have any idea of how widely mod_python is used. Grisha Trubetskoy probably has a lot more to say about this than I do.
PythonThreads >> Thanks Ted. It’s been good talking to you. Could you share your blog url or email address with our readers?
Ted Leung >> My blog is available at <http://www.sauria.com/blog>
Latest posts by Content Team (see all)
- IndicThreads Pune 2016 To Equip Developers For A New Age Of Software Development - May 27, 2016
- Java Garbage Collectors – Moving to Garbage First (G1) Collector - May 25, 2016
- Using Lambdas and Streams in Java 8 - May 18, 2016