Tag Archives: Python

AACS/MichiPUG Google Tech Talk Full!

Registration is now closed

Google closed registration for the joint meeting of the AACS and MichiPUG after registrations maxed out around 90.  We're going to have a full house for Russell Whitaker's talk on Python Test Driven Development.  I'm thrilled at the turnout and I sincerely hope that this means that the Google Ann Arbor office will host many more tech talks.  I think that we've shown that we're interested!

If you didn't get registered, don't despair.  Google is bringing in a speaker on the following Tuesday, August 7 for the Ann Arbor Java User Group meeting.  Once that registration link is released, I'll post it here (even if I don't have confirmation on the speaker yet).  Watch the AAJUG website as well: http://www.aajug.org.

Ann Arbor Computer Socieity

Michigan Python Users Group

Ann Arbor Java Users Group

Python Test Driven Development: A Quick-Start Approach

Google Tech Talk in Ann Arbor, August 2

Google has confirmed the speaker and topic for the Tech Talk in Ann Arbor on Thursday that will be a joint meeting between the Ann Arbor Computer Society and the Michigan Python User Group.  Russell Whitaker, Google Software Engineer, will be our speaker.  The gathering will be at the Google offices in Ann Arbor, 201 S. Division, 5th Floor, and will start at 6 pm.

If you do want to attend, you must register ahead of time, as seats are limited.  The registration link is:

http://services.google.com/events/annarbor_techtalk07

I sure hope that Jason Pellerin can make it too.  Jason wrote Nose, an automated test framework for Python.

Looking forward to an interesting discussion, "heavy" appetizers, and paid parking!

Google Tech Talks in Ann Arbor

Details still coming

Google has announced 2 different Tech Talks to be held in the Ann Arbor area in the next few weeks.  Both meetings will be held at the Google offices in Ann Arbor and registration is required because seating is limited, but both events will be free and open to the public.  Google is sending swag, providing (heavy) appetizers, beer, wine, and it even sounds like dessert!

The first tech talk is in coordination with the Ann Arbor Computer Society and Michigan Python User Group, and will be held on Thursday August 2 at 6 pm.  Registration for that event is at:

http://services.google.com/events/annarbor_techtalk07

The second tech talk will be in coordination with the Ann Arbor Java User Group, and will be held on Tuesday, August 7. I don't know what time that will start, but I suspect at 6 as well.  As far as I know, a registration link is not yet available.

We're waiting on the Google folls to tell us who they are sending and what the topics will be.  I'm sure that both will be great events, and I'll post here as soon as we hear!

And a P.S. on "heavy appetizers".  Is this a new term?  Should I know what this means? I went to a wedding reception last week, and called my friend to see if they were having dinner, appetizers, or what.  He said "heavy appetizers" and that if we didn't eat beforehand, we certainly wouldn't go hungry. And he was right.  I laughed, though, because the Google folk described sending "heavy appetizers" as well.  I figure I'm just not in the know.

Ann Arbor Computer Society

Michigan Python User Group

Ann Arbor Java User Group

Google Tech Talk in Ann Arbor

August 2, 2007 at 6 pm

Registration is now live for the Google Tech Talk in Ann Arbor to be held on Thursday, August 2 in a joint meeting between the Ann Arbor Computer Society and Michigan Python Users Group.

I don't have any information on who the speaker will be (other than a Google engineer) and I don't yet know what the topic is, but register if you're going because the event is limited to 75 people.

Details that I do have: Event starts at 6 at the Google offices in Ann Arbor (Division between Liberty and Washington).  They will be serving appetizers, beer, and wine.  And validating parking.

AACS

Michigan Python User Group

July events in Ann Arbor

Some on schedule, some on holiday delay

First, who IS meeting.  Then, who ISN'T.

The Michigan Python User Group is forging ahead with a meeting this week.  On Thursday, July 5, MichiPUG will meet at Arbor Networks, where Mark Ramm will talk about what to look for in TurboGears 2.0 (unreleased and in progress).  Hint: there was a sprint that involved Pylons a few weeks ago in Atlanta, and Mark was involved.  The meeting starts at 7:00.  Arbor Networks is at 220 E. Huron in the City Center Building in Ann Arbor (6th floor).

Now, who ISN'T meeting this week:

The Ann Arbor Java User Group meeting, usually held the first Tuesday, has been postponed so that everyone can head out to the fireworks tonight.  I hear that there will be some in Dexter!  I think that there will be an AAJUG meeting next Tuesday (10th); will advise when I get word.

The Ann Arbor Computer Society is also on holiday delay.  They will be holding a joint meeting with the Ann Arbor Dot Net Developers Group (AADND) on Wednesday, July 11, at the Ann Arbor SPARK (330 E. Liberty, lower level).  It will be an interesting talk, I think.  Bill Wagner (yes, my business partner) is talking on Generics, and what you can do with them in addition to using them in collections.  The meeting starts at 6 pm!

And, a SAVE THE DATE notice.

In August, AACS and MichiPUG will have a joint meeting on Thursday, August 2 at 6 pm at the Google offices in Ann Arbor.  Google is sponsoring a Tech Talk.  Seating will be limited,, so registration will be required.  Registration will open on 7/13.  Stay tuned, but definitely save the date!

Python DBAPI on Thursday

Thursday, June 7 at 7 pm

For the June meeting (June 7 at 7PM, at Arbor Networks), Carsten Haese will be giving a talk on Python's DBAPI. The DBAPI is like Java's JDBC. It's a database independent way to connect to databases and run queries.

Arbor Networks is at:
220 East Huron Street, 6th Floor
Ann Arbor, MI 48104

After the meeting, a group often heads off to hang out for a bit.  Don't know if I'll be able to do that, but I'll definitely try to make the meeting.

And watch for a special announcement for the August meeting!  The MichiPUG has been contacted for a Google Tech Talk!  I'll post more about it here, or you can join the Google group.

Carsten's blog

Michigan Python User Group
Google group
Arbor Networks
Our host

Stephan Diehl on PyPy and Stackless Python

Visitor from Germany to speak at the Ann Arbor ITZone, May 16 at 7 pm

Stephan Diehl will be visiting Ann Arbor and we were lucky enough to tap him to do a talk while he's in town.  He will be speaking at the Ann Arbor ITZone, for a special Michigan Python User Group meeting, on May 16 at 7 pm.  He will talk about both pypy and stackless python.

Please join us.  The meeting is open to the public, and free.

The Ann Arbor ITZone/SPARK Central is at 330 E. Liberty (lower level), Ann Arbor, MI.

PyPy
An Implementation of Python in Python
Stackless Python
Simplifying thread-based programming in Python

The Productivity Continuum: Ruby for Big Companies

Meeting review/notes from May 2, 2007

On Wednesday, May 2, Joe O'Brien made the trip from Columbus to present a talk on Ruby for the Enterprise, for the Ann Arbor Computer Society.  We first made Joe's acquaintance in the time leading up to CodeMash 2007, when he saw that we were looking for Ruby speakers and he stepped up (and also promoted the heck out of it, so thanks much, Joe!).  Joe helped to found the Columbus Ruby Brigade, and he's recently written a book on domain specific languages (DSLs), which should be available soon.  The book isn't available for order yet (as far as I can tell), but the title is:

Pragmatic DSLs In Ruby: Fluent Interfaces for your Code by Zak Tamsen, Jeremy Stell-Smith, Joe O’Brien, Neal Ford

I had originally thought that the talk was going to be on Ruby on Rails, but Rails was definitely only a small part of it.  Rails is an example of a DSL used for web programming.  Joe focused on integrating Ruby into the enterprise.  He talked about how you can integrate with Java, if your back end is already written in Java.  He said that he gets dirty looks from Ruby programmers for even suggesting a thing, but Joe strikes me as a pragmatic guy.  He wants to use powerful tools to solve problems, but he understands that it doesn't always make good business sense to go in and rip everything out and start over.

Joe talked a lot about Ruby as an "enterprise glue" language, for accomplishing specific tasks.

After hearing horror stories about deploying Ruby apps, I was glad to hear Joe talk about Capistrano, which he says simplifies all of that.  Another developer whose opinion I trust immensely, Barry Hawkins from Atlanta, concurs.

He described a few other tools, including RubyGems (akin to Python's cheeseshop, this is one-stop shopping for Ruby components). Watir is used for web application testing in Ruby.  It looks a lot like twill (written in Python), to me.

Joe is hosting the Enterprise Ruby Conference in Columbus July 16-18.  It looks like a great conference, with some really great speakers.  The cost is discounted to $199 for user groups (AACS members can contact the AACS for a discount code, and other user groups can get one from Joe).  He's heavily promoting this event to user groups, and I think that's a fantastic idea.

This was a great talk and I was really glad that I was able to attend, and that we were able to spirit Joe up to Ann Arbor to speak.  I don't know if I will get down to the Ruby Conference, but I'm sure it will be a great experience for those who can.

Ruby

RubyGems

Watir
Web testing in Ruby
Capistrano
Deploying Ruby apps
Enterprise Ruby Conference
(blog entry description)

Dynamic Languages on the CLR

Jim Hugunin and John Lam

Jim created Jython and IronPython.  John is working on Ruby for the CLR, but has only recently transitioned to working for Microsoft.  I get the impression that Ruby for the CLR will be released Really Soon Now.

Just as I was getting grumpy about not having an interactive conversation, Jim and John came on to do the Dynamic Languages on the CLR talk. They turned it into a completely interactive conversation with no Powerpoint. They even turned some of the questions around to the audience, asking for our input. This was SO much more interesting for me, at least, and for the speakers as well, I expect.

The guys took questions:

1.Ruby or Python: Which sucks less? Use the language that fits your mind best. Some people work well in Python. Others have that same experience with Ruby. It’s not necessarily a fundamental difference in languages, but rather a difference in minds. Not a huge argument that one is superior to another. But comparing either to Javascsript is a different question. That language is impoverished. Doing DSL tricks is easy in Ruby and allows people to write closer to the problem domain.

2.How are you going to lock us into your platform? IronPython has always been about being completely compliant implementation of Python and completely integrated with .NET. To do both is a lot of work. So, in Python “strip()” removes whitespace, but in .NET “Trim()” removes whitespace but is illegal in Python. But if you import clr, then for that file ONLY it is allowed to run s.Trim(). So the parts of your code that are doing pure data structures or pure algorithms can ignore whether you’re working in IronPython. Being up front about wanting people to lock into .NET. By providing really cool libraries, they will lock programmers into .NET? Strength is that you can write Mac-specific or .NET-specific code. Pure Python code works everywhere. Python has a huge wealth of pre-existing modules. Those written in Python will work (or it’s a bug in IronPython). Those that are written in C are more problematic. FePy project is a community based project that includes a lot of modules that fill in these gaps.

3.What is the plan for PHP? Would PHP running on .NET, would that be convincing to switch. Not really, so it doesn’t really look like there’s interest. Microsoft is doing dynamic languages because it’s interesting to a group of developers.

4.What is it going to take for Rails to run on top of .NET? Imagine it happens. Is it a good idea? Deployment is a pain in Rails. Want to sell into .NET companies in the enterprise. What it’s going to take is a good business reason to want to use it. Developers need to want it.

5.When is the veil of silence going to be limited? Jim went dark for 8 months after coming to work at Microsoft. IronPython is being run as an open source project with an open mailing list. IronPython 1.1 was just released. Incremental releases were driven by user bug reports in an open, interactive way. Python 2.0 more modules, end of year. John’s only been at Microsoft for 2 months, so he will start becoming more open soon.

6.Why dynamic languages? There are millions of programmers who clearly love dynamic languages. It works for them. Let them program in a way that they enjoy and can be productive. More expressive. First refactoring tool written for Smalltalk. First unit testing framework written for Smalltalk. Good ideas have come out of the dynamic language community.

7.Do we want to run the CLR in IE? Killer fast Javascript and Ruby in the browser would be compelling. Performance is the big thing. Testing, running javascript on IE. As we create more sophisticated apps, there’s no visibility in the CLR. But, would you put it in Firefox too?

8.Mono? Mono doesn’t work well. Winforms and GTK# and supposedly it’s compatible. Some say it runs beautifully and some say it doesn’t run at all. Mono regularly runs IronPython.

9.Should dynamic languages be an Intro CS100 language? Yes, dramatically lower barrier to entry. Number of things you need to know to write a program in a static language: classes, methods, static method calls. In dynamic languages only need a function call or statement to write Hello World. If you want to talk about the essence of programming, it’s about control flow and data structures, not types. But the lower concept count means that people with less programming experience can write in dynamic languages. Means that it might have an impact in terms of nonprogrammers writing code. Introducing patterns on top of the language adds a different level of complexity. Malleable syntax in Ruby allows for custom languages like Rails DSL. The ability to create DSLs in Ruby is interesting.

10.What about IDE support? Today, for IronPython, Visual Studio SDK shows people how to extend Visual Studio. It includes IronPython integration (all written in C#). Minimal intellisense support, ships as a sample. Left to developers to extend. The lightweight solution to an IDE is a real challenge. Can use the debugger today. The best part of IronPython/.NET integration is availability of the debugger. Profiler works poorly. Infrastructure issue that needs to be solved fairly soon. RubyCLR: John demo’ed an IDE that he worked on before he came to Microsoft. He was running on a Mac, running RubyCLR. He used WPF with Ruby, using Ruby metaprogramming stuff. This enabled him to reduce the number of things he had to type.

Web Frameworks Comparisons at the Java Posse Roundup

Java Posse Roundup Day 0

 I’m here in Crested Butte for an Open Spaces conference, The Java Posse Roundup.  The conference officially starts this morning, but we had an “extra session” last night at Bruce’s house.  Graham Ullrich presented his experiences with TurboGears and Django, both web application frameworks written in Python. 

Graham’s experience with TurboGears was in the summer of last year, with about the 0.9 release.  Since then it has been released as 1.0, and I think that the documentation has been improving steadily.

The major drawbacks of TurboGears include:

  1. Kid templating errors are hard to decipher
  2. SQLObject is limited in functionality

Both of these can be addressed now, as you can drop Genshi in place of kid (and Genshi has awesome error reporting), and SQLAlchemy is more powerful than SQLObject (and arguably than the ORM built into Django).

The major drawbacks of Django include:

  1. Incomplete documentation
  2. Newforms development incomplete 
  3. Not easy to understand what to do with static content

The Django project was poorly advised to put a note in the documentation that new projects should use newforms, since there are major pieces that are not implemented.

Overall, Graham reported that his experience with Django was more “pythonic” than his experience with TurboGears.  It’s hard to tell whether that’s because he was using an earlier version or whether it just feels more natural to him.  In particular, he likes the admin interface and database mapping.

Here are some more comparisons of the 2 toolkits:

http://www.oreillynet.com/onlamp/blog/2006/02/a_brief_djangoturbogears_compa.html

http://www.petersblog.org/node/1083

And, if you missed the presentation and want to read through his slides, he's provided them (see below).

Graham's presentation on Django vs. Turbogears