Category Archives: Ann Arbor

AACS Meeting Summary

October 4, 2006

Mark Ramm discussed TurboGears at the Ann Arbor Computer Society meeting this week. The crowd was mostly unfamiliar with TurboGears, and most were unaware that it was conjured up and written here in Ann Arbor (well, at least originally … it’s open source, so it’s now getting contributions from all over the world).

Most people know about Ruby on Rails, so he contrasted the frameworks a bit. Basically, Rails is a highly integrated, single piece of software. It uses some naming conventions, and if you follow them, things will just line up and work. But the magic can be a bit disconcerting for some. Features are either provided via Rails, or not available within the framework. That’s the beauty and cost of a single piece of software.

TurboGears doesn’t follow naming conventions. It’s a mega web framework. It combines best of breed tools in Python to support web development. This allows for components to be traded out and replaced with newer, better components, if they become available.

The heart of TurboGears centers around the following components:

SQLObject – an Object Relational Mapper

CherryPy – web server: manages request/response cycle

Kid – templating system, xml-based, guarantees well-formed output

MochiKit (pronounced Mo-chee-kit) – library for Javascript/AJAX, making it easier to write clean javascript

Templates can be made to look really simple by using and extending the master.kid file. Actually, you can have several master.kid files, and use appropriately in different parts of the application.

For deployment, the easiest path is in using CherryPy, proxying with IIS or Apache (using mod_proxy or mod_rewrite). You can also use mod_python, but Mark sees the other options as simpler.

Webfaction has good shared hosting for TurboGears apps. Currently, their control panel only creates 0.8.9 TurboGears apps, but if you ask the webfaction staff will send instructions about installing the newly released 1.0b1 for use with webfaction. They also help to support the TurboGears project.

From a commercial licensing standpoint, there are no hindrances to using TurboGears. It uses the very liberal BSD-style license, which allows you to write applications using TurboGears for commercial use.

Widgets are provided, to reduce work for the developer. Kid produces designer-friendly templates, that can be edited in programs like Dreamweaver without perturbing the python constructs (since Dreamweaver ignores them), but allowing the designer to see placeholders when testing layout without running a web server.

A question from the audience asked Mark to compare with ASP.NET. Basically, he said that you can do anything in ASP.Net that you can do in TurboGears but that you will have to write more code in ASP.NET. Maybe we will see some head-to-head comparisons at CodeMash in January.

Future Directions in TurboGears:

1.SQLAlchemy will replace SQLObject as the default object relational mapper in the future. It does everything that SQLObject does, and more. Needs a bit more work to simplify the definition to match that of SQLObject
2.Genshi will replace Kid as the default templating system. It uses pretty much the same syntax but is about 40% faster.

Documentation options:

1.Mark’s book (Rapid Web Applications with TurboGears) is going to be published in November. Half of the book is now available, on Safari Rough Cuts.
2.The latest issue of Linux Magazine has an article on TurboGears, written by Mark Ramm. It doesn’t appear that it’s available online. Here’s a summary of that article: http://compoundthinking.com/blog/index.php/2006/09/22/turbogears-in-linux-magazine/
3.TurboGears DVD contains screencasts and can be purchased on the TurboGears website.
4.Docs are available on the TurboGears website.

Examples of high traffic sites that run TurboGears:

www.diggdot.us: Combines Digg, slashdot, and de.licio.us into a unified format

www.rpath.com : Linux software appliance company

Next month at AACS: Scott Collins, from the Mozilla project, talking about the design and application of programming languages.

Python User Group Meeting Summary

Python User Group Meeting Summary

Tuesday, October 3, 2006

The Ann Arbor Python User Group usually meets on the first Thursday of every month, but Titus Brown was in town this week, so the meeting was moved so that he could attend and participate. Titus talked about Twill, his testing tool. You can use twill to test web apps from the command line using python-based commands, very convenient indeed. His package descended from Cory Dodt’s PBP, and is based on the Python “mechanize” package.

Twill isn’t able to test Javascript, but Selenium does a great job of that. Scotch is a collection of WSGI modules that record wsgi transactions.

Jason Pellerin was also at the meeting, and he talked a little bit about Nose (not much, mainly just about Titus’ use of it, and the fact that Titus has extended it). Hoping he attends more frequently and does some more in-depth sessions.

The original plan, before Titus’ appearance was planned, was that Bruce Webber would talk about wxPython. Instead of rescheduling his talk, Bruce and Titus both talked. It was great. I learned a ton about wxPython, and look forward to trying out some GUI programming in Python with them.

Here is a link to resources from the talk, including both links from Titus and slides and links from Bruce. http://www.michipug.org/index.cgi/OctoberMeeting

Ann Arbor user group meetings, Oct 3 and 4

It's going to be a very cool week in Ann Arbor, next week. And no, I'm not talking about the football game.

Got some time to attend some user group meetings? Next week looks VERY cool; I just wish I could be in 2 places at the same time on Tuesday!

The following announcement is from the Michigan Python User Group on Google.

Python User Group

Arbor Networks

Tuesday October 3, 2007

7 pm

There are a couple of opportunities for people to get exposure to Python next week. First, the Python user group meeting, which is usually held on the first Thursday of each month, is being moved to Tuesday Oct. 3 for this month only, to accommodate a special guest speaker, Titus Brown, the author of the Twill testing tool. Jason Pellerin, the author of the Nose testing tool, may also be present, so this is an excellent chance for people to talk about automated testing with folks in the know.

Bruce Webber will be talking about wxPython, which is always a hot topic.

The Michigan Python Users Group will be meeting at Arbor Networks on  
Tuesday 10/3 at 7PM.

http://michipug.org

The downtown Ann Arbor location worked out well for heading out  
afterwards. Come join us!

———————————————————————————————

Unfortunately this conflicts with a very cool meeting at the Ann Arbor Java User Group (the following is from the Java User Group promo announcement):

An alternative to Code Generated GUIs

Washtenaw Community College

Tuesday October 3, 2007

7:30 pm

BuoyBuilder is a graphical user interface (GUI) designer and object configuration tool. It is for putting together user interfaces composed of windows, buttons, text fields and other visual elements for Java Swing applications. It also allows you to save your designed user interface and recover it back into the tool later for further modifications. But BuoyBuilder is much more than just a layout tool. With BuoyBuilder, you are working with real, live objects. These objects are usually Buoy Widgets, but BuoyBuilder allows instantiation and configuration of virtually any object. It also allows you to make connections between objects, which are persisted when the file is saved and restored when loaded. This leads to a substantial reduction in tedious infrastructure code. BuoyBuilder is a tool for building GUI applications enabling you to get the most functionality out of the least amount of code. BuoyBuilder's philosophy is to simplify application development by reducing the amount of code needed to do the job.

Presenters:

Jack Rosenzweig is the Vice-President and co-founder of 94West, LLC. Jack has worked in the software industry in Ann Arbor for the last 14 years in various roles from field trainer to product manager to IT director to director of development, all at MediaSpan (formerly known as Baseview Products). Jack launched 94West, LLC in the winter of 2006 with his partners to bring BuoyBuilder to market.

Peter Johnson is the President and co-founder of 94West, LLC. Peter has been developing software in Ann Arbor professionally for the last 13 years. Peter is fluent in Java, Swing, J2EE, Objective-C, C++ and C among other languages and environments. Peter wrote BuoyBuilder when he was unable to find anything nearly as good as Apple's Interface Builder for Java GUI design.

Location:
Washtenaw Community College

Click for map:

Contact email:

———————————————————————————————

TurboGears Web Development (Wednesday, October 4)

Ann Arbor IT Zone/Spark Central.  330 E. Liberty, Ann Arbor MI
 Wednesday, October 4, 2006
6:00 PM

Mark Ramm is going to be talking about TurboGears at the Ann Arbor Computer Society meeting on Wednesday October 4. Here’s an abstract for the talk (from AACS promo announcement):

TurboGears is part of a new generation of web development frameworks
designed to make development of database driven, Ajax enabled, web
applications easier.  The discussion will cover:

1. How well designed frameworks can increase productivity, maintainability,
and generally make web application development more fun.
2. How Ajax is integrated into the core of TurboGears, and how you can use it
to make your web applications more dynamic and easier to use.
3. He'll compare TurboGears to some other popular web development
environments, so you can better evaluate when TurboGears might be the right
tool for the job.

Mark Ramm is the author of the forthcoming "Rapid Web Applications with
TurboGears." He is IT Manager for Humantech, inc. Over the years, he has
programmed Web applications in a wide range of technologies, including
Python, TurboGears, CGI, Perl, PHP, ASP, Java Struts, and Ruby on Rails.
He has written for Linux Magazine and various online publications, and
maintains an IT Management blog (http://compoundthinking.com).
In his free time, Mark is working on a project to designing new collaborative
learning experiences around open source technologies.

AACS meetings are free and open to the public.
      Supporting membership is $20 per year, qualifying you for door prizes and voting

Social Networking for Professionals

Virtual Reciprocity Ring: web based tool for social networking in business

This morning, I attended a seminar for the Virtual Reciprocity Ring, associated with the Ann Arbor ITZone. It’s an interesting concept, borne out of the social networking movement and research by Dr. Wayne Baker at the University of Michigan. The seminar started with a presentation to explain the aspects of this web-based tool for social networking as it applies to professionals. The idea is to build weak links to a number of people with whom you have a common interest. In this case, it’s a business interest, and you build the relationships and trust, and start interacting within the community.

I’ve been to many networking events at the ITZone, but I have to say that I have never been to one as effective as this, mainly because we could solicit ideas, opinions, job candidates, etc. using the web-based tool, instead of the “cocktail party” approach, where you feel like you’re saying the same thing to everyone, but probably forgot to say it to the one person who could have helped you (or you missed talking to that person altogether). It’s all about fostering relationships.

I have seen this same sort of social networking in play in the physical world. I’ve attended conferences, where relationships were formed, and later continued via email. The tool that was presented at the conference today formalizes that a bit. Instead of having an email group, communication is done via the ring, where communications center around requests for help and offers of assistance. Most of the people that I communicated with today were people whom I still have not met. A few people, to whom I offered contributions (often meaning simply advice), came up and introduced themselves following the seminar.

This sort of computer-based communication is pretty effective for computer geeks (not surprisingly). We don’t even have to TALK. We can just communicate via the computer! Not altogether sure that’s good for our growth as communicators, but at least stuff gets done!

I like it. I think that this specific tool needs some refinement (opinions were solicited toward that at this seminar as well). I think that it could be effectively used in a lot of situations that I come into contact with (computer user groups, etc.), but I fear that the cost will be prohibitive. I think that the effectiveness of social networking tools like MySpace is due to the fact that they are free and widely available. By limiting the use of such a product to those who “pay to play”, I feel that the community won’t benefit as much as it could have. But this isn’t at all a MySpace equivalent. It’s an invite-only group, with stated objectives of sharing ideas, services, etc. and paying it forward.

The real key, of course, will be to see if people continue to participate past the few hour session this morning.

The Reciprocity Ring Website
Check it out yourself

Rocks and Robots

A workshop at the Ann Arbor Computer Society

I had a truly fun experience last night at the Ann Arbor Computer Society. Dr. George Albercook of Rocks and Robots came to “speak” … OK, actually do a workshop on building robots. He typically does this for kids, but he did a fabulous job with the adults (there were 4 kids present).

We haven’t had a hands-on workshop at AACS for as long as I can remember. What fun! We sat down in 5 groups of 4-6 people each, and used his “Flutterbot” to build a little robot. This included electronics (putting components together on a breadboard, including a brief introduction to reading schematics), software (C programming, using the free WinAVR compiler (delightfully pronounced whenever), and writing to the EEPROM (using the AVR Studio). Armed with some really good (and sometimes amusing) manual that George wrote, students are able to follow directions to do several tasks, from getting the Flutterbot to display a name on the integrated LCD, to getting an LED to turn on and off, all the way to building a robot that can track a dark line on a white surface.

The adults had a riot (and the kids did too). George teaches home schooled kids during the school year, and does several summer camps as well. His summer camps, as the name suggests, include BOTH the robot-building and an outdoor adventure (rock climbing at Planet Rock, the ropes courses at UM, orienteering, etc.). All of these are targeted to students in a young age group (9-12) and an older age group (13 and above). He uses LEGO robots for the younger kids, and graduates them up to the Flutterbot. All in all, it seems like this is a summer camp experience that kids can really grow with. And the combination of classroom work and outdoor adventure is really good for the kids, I think. Well, it works well with MY learning style, at least.

The parts George uses are all readily available on the internet, but the value he adds is that he puts everything together in an integrated kit, and includes software and instructions. The real added value here is the documentation. His expertise means that you don’t have to be an embedded systems programmer already to figure out how to do a little embedded systems programming. Check out his kit at www.flutterbot.com (and a photo of the robot we built last night is on the site as well).

Ah, my daughter is only 3, but she LOVES doing the climbing walls at playgrounds. And she loves computers as well, at least so far. I just hope that she will want to do a summer camp like Rocks and Robots when she’s a little older … and that George is still teaching it them.

I did ask how many girls he typically gets at his camps. He said that they have averaged about 10-20%, but that he’s going to reach out to organizations like the Girl Scouts and Brownies and try to do some recruiting with them to try to increase those numbers. I know that I will be promoting his camp with the kids in my neighborhood who are of the right age … and with my nephews as well!

Rocks and Robots
Summer Camp Adventure
Flutterbot
Electronics Kit for building a robot
Ann Arbor Computer Society