Dougma (dŭg·mə) n.

  1. An authoritative principle, belief, or statement of ideas or opinion, especially one considered to be absolutely true by Doug; who is often wrong.
  2. A specific tenet or dougtrine authoritatively laid down, as by Doug.
  3. A system of principles or tenets, for Doug.
June 22nd, 2007

Words are not cheap (updated 3x)

There is a discussion simmering over Python 3000 again thanks to Guido’s post. And thanks to that post this time it is much more focused and constructive. I see this as part of an ongoing iterative process, one I think we should consider formalizing. First an overview of the discussions so far (timeline determined by various RSS aggregators).


[Update: 6/24]
Jesse Noller has created a new resource page for Python 3000 to accompany his Python 3000 custom search. Here are the links:


The first thing I would like to say is Happy Birthday Steve!!! [Update: Happy Birth day Ned!!!]

Words are very important. They are the primary means of human communication and at the root of mans greatest achievements and worst atrocities. Words are not cheap, they are priceless. Before PyCon 2007 there was much discussion on the blogs on Py3K and the future of python, mostly based on speculation, out of date information, and fear. I am not linking those posts (or mine) as I do not believe they add anything to the current discussion. Guido responded with his keynote address which cleared the air on many of the issues. Discussions ensued and community feedback was a strong factor in the sprints which followed, resulting in the new IO system. All as Steve Holden predicted. And time passed….

This brings us up to date. Guido’s post starts up the dialog again, which is a very good thing. We need to have these discussions so we can properly discover all the potential problems, and if not have solutions ready, at least be prepared. A certain white house staff member got some heat for a statement about ‘unknown unknowns’, but it was one of the more intelligent (if unintelligible) things he ever said. It is not the known unknowns (will the major python projects make the switch and when, etc), it is the unknown unknowns which have the potential to fracture the python community. Guido’s post shines a spotlight on the Py3K effort, the problems the dev team has identified, and the solutions they have come up with. A community response has started and needs to continue. A spotlight needs to be shown on the issues which have yet to be found, and only the community as a whole can do that. We can also find the solutions together.

There have been comments segmenting the ‘community’ into the ‘python core developers’ and well, everyone else. I see this as a little odd, as every one of the core developers are also part of the community working on their own python based packages which are not part of the CPython core. The ‘core developers’ are also facing all the same upgrade issues the rest of the ‘python community’ is. I believe that is one of the many reasons why they are trying to make it as easy as possible to upgrade. With that said, there is defiantly a feeling of separation between what happens on the various python dev lists and the blogosphere (or whatever). The python ecosystem is quite large and diverse and fostering communication between all the far flung members is difficult at best, processing feedback near impossible. Brett Cannon (coder who says py above) has been very vocal about making the python dev efforts more transparent, and the switch to the new roundup issue tracker will be a significant step forward (if only sourceforge would fix their bugs!). There was also discussion about opening up the PEP approval or at least the review process to a system which is more accessible to the general user than the mailing list archive.

The review of the GPLv3 effort at the recent MassTLC event got me thinking about Py3K and the efforts therein. My notes from that event are riddled with information about the different groups formed at each level of the process, the public chat logs (all meetings were held on irc), the document itself with full change annotations. The GPL has a much larger community with many more factions with interesting agendas. What can we learn from their efforts? After all, chances are, we would not be having this discussion if not for those ‘cheap words’.

June 22nd, 2007

June Cambridge Python Meetup

Peter did another fantastic job putting together this months meetup. We decided to stick with Wednesdays so we would not collide with the Plone meetup which is on Thursdays, but um… oh well…

There were two guest speakers:

1: George Lambert, Goldenware Technology
2: Mike Pittaro, SnapLogic open source data integration Project implemented in 100% Python

I decided to try something new and record the event on my little sensa mp3 player. The audio is bad at best, but it is mostly audible. We were in Somerville so at some points an airplane goes overhead. If these prove useful to people I will bring better recording equipment next time. My A/V production equipment is tied up on another project so all I did was split the audio into multiple tracks and do a lame re-encode. I tried to keep the files to under 25Meg while splitting based on topics. Unfortunately meetup.com has a 10Meg per file limit and a 100Meg per group max, so that was out of the question. The first file is under 8Meg, so please check that out first and only if you can withstand the audio quality, check out the others. I and my bandwidth will appreciate it.

NOTE: The audio is extremely soft at points and at the beginning, so you will need to crank the volume up.

  • Introductions and Django.June recap (mp3, ogg)
  • Mass TLC recap, and an extensive discussion on GPLv3, Licensing, Patents, and Python (mp3, ogg)
  • Lightning rounds with George Lambert and Mike Pittaro. (mp3, ogg)
  • Open Discussion (mp3, ogg)

The software George Lambert mentions which is used to view changes in the GPLv3 draft is Plone! Though there is talk of converting the FSF web site over to a Django based one. I sent an e-mail to the lists giving better information on OLPC for those interested as well. Noah Kantrowitz responded offering to help anyone in the group get started with development.

June 22nd, 2007

OLPC @ MassTLC OSS (part 2)

Without further ado, here is Ivan.

I have long wondered how they get so much work done in such a short period of time. ‘When do they sleep?’ I have often though. Now I know, they don’t sleep. Ivan gave this talk on no sleep. Seriously, he had not slept the night before and was somewhere on hour 38!

Dan Bricklin recorded the video, and also has full audio recordings (podcasts) of the event. Dan has some other fantastic podcasts, including one with Antonio from Tabblo, so please check those out at your leisure.

Read the rest of this entry »

June 20th, 2007

I want my Py3K!!

(sung to the opening refrain of ‘Money for Nothing‘)

If you have not read Guido’s Python 3000 status update, do so now (I will wait.) Done? Do you have that ‘night before your birthday’ feeling? There wasn’t anything mentioned that I was not aware of, being an avid mailing list lurker, but seeing it all put together puts things into perspective. and the whole is much greater than the parts. It sparked a number of discussions at work. Even the usually reserved and conservative core researchers are excited (translation: even those who hate external change because it disrupts their work). Some of the code I am currently working on will have to be removed when we go to Py3K. Not rewritten, just removed. I did a quick back-of-the-guardian-crossword calculation and almost 70% of our framework utility code will no longer need to be maintained. The remaining code will need to be replaced with __format__, __instancecheck__, and annotations. I am still not sold on ABC’s. I personally prefer a mix-in approach to interfaces, but they will make some of the strong type stuff much much easier (medium typed really).

It’s times like this where I wish I had more time. I promise to do a proper strong typed interface Py3K post next month, I just don’t have the time right now and ‘pygmentor’ (a secure XSS pygments code syntax highlighting service) is not even in alpha yet.

class MyClass(metaclass=StrongTypedType):
    attr1 = attribute(int)
    attr2 = attribute(Sequence)
    attr3 = attribute(tuple)
    attr4 = attribute(SequenceOf(Integer, Float))
    attr5 = attribute(float, Integer, String,
                      doc="some doc string", default=4.0)

    def method(self, arg1: (Integer, Float) = 3,
               arg2: SequenceOf(String, empty=false) = ('hello',)):
        pass

@StrongTyped
def func(arg1, arg2: (Integer, NoneType) = None):
    pass

>>> foo = MyClass()
>>> foo.attr5
4.0
>>> foo.bar = 5
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'MyClass' object has no attribute 'bar'
>>> foo.attr1 = "hello"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'MyClass' object attribute 'attr1' must implement 'int', not <t
ype 'str'>.
>>> foo.attr4 = [1, 3.2, "hello", 5]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'MyClass' object attribute 'attr4' must implement 'Sequence' fo
r which all elements implement one of: ['Integer', 'Float']. The element at inde
x 2 ('hello') fails this test.

I think you get the idea. I toyed with having ‘Integer or Float’ annotations is with a monkey patch on the ABC’s for the __or__ operator. This makes the annotation processing much easier, but causes problems when you want to use non ABC’s in the typing like ‘int’. Currently NoneType must be used instead of None because I hate that special case exception. A __instancecheck__ monkey patch to None to make None an instance of its self could resolve this issue, but I am scared of potential side effects on the greater system.

I know many people are asking ‘Why? Why make a beautiful language like python look like C++?” Well those who are not gouging out their eyes or grabbing pitchforks and torches. The anwser is not simple and is long, and I am tired. The short answer is ‘because it makes embedding python in other programs and communicating across the boundary much easier and automateable(sp?).’

June 18th, 2007

OLPC Keynote at MassTLC OSS

Just a reminder that the MassTLC Open Source Summit is tomorrow morning! It is $40 online or at the door (and $20 for MassTLC members). A pastery cart, coffee and a bag lunch will be provided (though I do not have the exact details on this). Detailed information and directions are provided below.

One of the trademarks of this event is the level of audience interaction. The talks are not passive events where attendees absorb what is spoken up on some shielded dais. As in the past the event is broken down into three parts (legal, business, and community), plus a keynote. The plan is to have the event recorded, both audio and video, for release in multiple mediums.

Legal

The legal discussion will be on the GPLv3, both the road traveled so far and what the future holds. The process has been extremely open with the community participating in its drafting on an unprecedented level. This panel discussion is a continuation of that effort as well as an examination of that effort.

Business

The corporate panel discussion is not what one would normally expect. There is no real summary description for this panel due to the nature of it. How do you describe an open discussion? I will try. Listening to marketing folks from large companies describe why their open source strategy is the winner is not that interesting or rewarding. The focus here is on the audience and learning from the successes and failures of local companies large and small. Businesses who rely on Open Source are really relying on the communities they foster. The audience is made up of those communities and budding open source based ventures. Here is a chance to discuss the strategies of the day and get a greater understanding for this complex and thriving ecosystem.

Community

For the community section this year we are trying something new. Mark Withington of the Boston PHP group is running a Lightning talk session. These are ~5min presentations by local community members. These can be very exciting. One problem with any conference is that not all topics will interest all people. You also want to have a good range of topics. The purpose of the event is to foster Open Source in Massachusetts. this is done by building relationships and helping connect people. This can be hard for a small event such as ours. Lightning talks offer a great opportunity for this. For the general audience, they are given information dense overviews of topics and events they are interested in. If you are not interested in a topic, just like the local weather, just wait 5min. Presenters, while limited by time, are forced to communicate only the core information they need to get across. The idea is to engage the audience and get them interested in what you have to say. The point is not to answer all the questions an attendee might have for you or your project, but to just get the interested and hungry for more information. After all the talks are completed there will be a break before the keynote and space for attendees to gather and talk to the Lightning Talk presenters. Here is where connections are made and presenters can connect to those who are really interested in what they have to say, and can focus on exactly what people are interested in.

OLPC Keynote

As I have mentioned here and elsewhere, I feel that the software effort behind the OLPC project has been playing second fiddle to the hardware. There has been much attention given to the ‘laptop’, the innovative hardware technology, and some on the ‘child friendly’ interface. Very little has been discussed about the revolutionary new operating system being developed. Did you know the firmware is hardware independent? Did you know that while the kernel is based on Red Hat Fedora, the higher level operating system, including the file system is written in a dynamic interpreted language? Did you know that all you have to do is press a button on the laptop and you get to modify the code for whatever application is currently running? Did you know this is all done securely and using a revolutionary process management system where each process gets its own VM? This is not linux. This is something else entirely, and yes it is 100% open source. I will be handing out the Sugar SDK Live CD which includes a full linux development environment for developing applications for this revolutionary new system.

The Details

Read the rest of this entry »

June 18th, 2007

Django.June Fun

Paul Bissex proposed, organized, hosted, and MC’d a Django unconference (Django.June) over the weekend. Paul has a wrapup on his blog and Jay Graves put some flickr pictures up. There were over 20 people in attendance, and by all accounts it was a huge success. I was only able to catch the second half, and was not able to stay for the music festival. It was fantastic seeing people whom I primarily know from reading mailing lists, blogs, and irc chats. There were so many things I wanted to talk to specific people about that never happened. The conversations were just too interesting. Adrian’s impromptu talk on contributing to Django, the development process and his experiences on contributing to large OSS projects was illuminating. I almost didn’t go out to feed the meter because of it; there was a two hour max, and the car next to me got ticketed.

Read the rest of this entry »

June 13th, 2007

Dual Core OLPC!

The Nerd Core group Dual Core just released their new album (do they still call them that?) Zero One. Just bought it and it’s fantastic! Check out the track 12 ‘The Children’s Machine‘ sample.

June 13th, 2007

Upcomming Mass Python Events

There are a number of python events in the next few weeks, and I have started a google calendar to share and manage them. If you know of an upcoming event, let me know! If you have a local user group or schedule events, contact me (doug at dougma dot com) and I can give you admin access! If you want to keep up to date, there are ical, xml, html, RSS, and GCal Subscription links! The ical and xml links are feed based, so only outlook users will have to re-import as things change. I must say that I am digging the google non-trademarked colored sugar water. You can also embed the calendar on your site! Genius!

June 4th, 2007

MassTLC 2007 Open Source Summit!

Tuesday, June 19, 2007; 7:30 am registration; 8-12:00 pm
Microsoft, 201 Jones Road, Waltham, MA (map)

Join us for this half-day summit as technology leaders discuss the current state of open source and the implementation of collaborative development models. The program will spotlight innovative open source companies in a rapid fire lightning round session. The summit will culminate with a keynote presentation on OLPC (One Laptop Per Child), an initiative lead by Nicholas Negroponte, as recently featured on 60 Minutes.

8:00 am — Opening Remarks

8:15 am — The Year in Review and the Years to Come: GPL3 and what it tells us about the current and future prospects of free and open source software. A member of each of the four GPL 3 Committees will review the new license, the process by which it was promulgated, and what it all tells us about the current state of free and open source software.

  • Karen Copenhaver, Partner, Choate, Hall & Stewart
  • Ira Heffan, Associate, Goodwin Proctor
  • Scott K. Peterson, Senior Counsel, Intellectual Property, Hewlett-Packard Company / Andover, MA
  • David Rickerby, Partner, Choate Hall & Stewart

9:00 am — Open Source Strategies

  • Larry Alston, VP of Corporate Strategy, Iona
  • Robert Sutor, VP Standards & Open Source, IBM
  • Don Fisher, VP of Online Services, Red Hat
  • Justin Steinman, Director of Linux Marketing, Novell

10:00 am — Break

10:15 am — Lightning Rounds

  • Andromeda
  • BlackDuck
  • DevZuz (Simula labs)
  • Drupal
  • enterpriseDB
  • Please contact the Open Source Cluster Advisory Board at tom@masstlc.org if you are interested in presenting during the lightning round session.

11:15 am — OLPC Keynote. One Laptop per Child (OLPC) is a non-profit organization aiming to redefine learning and education for the world’s children by providing each child with a specially-developed, innovative, and low-cost laptop. We will introduce the initiative and then dive into the challenging engineering behind the OLPC software platform, covering everything from its unusual firmware to its new child-friendly GUI.

  • Ivan Krstić , Director of Security Architecture, OLPC (One Laptop Per Child)

Cost: Members/Non-Members, $20/$40

Sponsors: Choate, Hall & Stewart; IBM

Register Online : http://function.masstlc.org/programs_new/event_single.cfm?eventid=787

June 4th, 2007

Saying Goodbye

I consider myself to be extremely lucky. I have a wonderful family, friends and a fantastic job. It is the type of job I can’t wait to get to in the morning, and usually end up taking home as well. I work with some fantastic people on hard problems. I have worked on five speech recognition engines professionally, and played with two open source projects. The current engine is the cleanest, and most well engineered piece of code I have ever had the pleasure of working on (including CPython, and that says a lot!) No matter how good the code is, it is nothing without the people behind it. The researchers and developers are the hands down the best I have ever had the privilege to work with. Some of the people I am working with, I have been doing so for the past ten years. The nature of the work, technology, and the people it attracts, means that the core groups do not change much over time. It usually takes major events like the breakup of a company or large mergers for people to leave or move groups.

Why am I mentioning all this? Well for the third time in six years, I am not looking forward to work.

Last week we said goodbye to Fred Webber, as he is moving to New York where his wife will advance her career and he can spend more time with their children. I am sure his name will come up again in the future given some of the projects he is looking to work on; now that he doesn’t have all those pesky experiments to get done. Fred has been someone whom I see every day, eat lunch and solve the Guardian Crossword with. He is a fantastic researcher, a calm rational voice, and a practical engineer. Most importantly, he is a good friend. He will be sorely missed.

We have a ‘hit by a buss’ policy at work, which means that while some people have spheres of expertise, no one is irreplaceable. His knowledge and legacy remains intact. As such I have no ‘technical’ fears about the coming days. I also know that we will still be in contact, via the magic of the internet and shared interests. So why do I fear heading back in to the playtime I like to call work? It is a dread based on the hole left, where Fred once was. It is interesting how the physical presence of a person can leave an imprint on a place and influence our experience of those places. It’s not the pain of saying ‘goodbye’; it is the fear of not being able to say ‘hello’.

|