Tag Archives: TurboGears

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.

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

Friday in Crested Butte

Web Frameworks Jam, continued

This was the last day of the workshop (Friday). We finished up what we could and then recorded a podcast describing what we had done and detailing our experience.

In general, we all found that one of the barriers is installation and setup of the framework (from a development standpoint). All of us battled installation and configuration issues. Spring is simply complicated. Google Web Toolkit is immature in terms of packaging issues. TurboGears is still in alpha and we were definitely chasing a moving target (versions a6, a7, and a8 were released during our one week stay in Crested Butte). We didn’t battle deployment issues (yet), but these hold concern for all of us as well.

As for my personal feeling? I still want to get some more airtime with Google Web Toolkit. I’ve done a little with it at home, but would like to get into it in more depth and look forward to its maturation. And I’m totally smitten with TurboGears. I’m going to use it for some small projects and see what I think. I have some customers that I think might benefit from it, once version 1.0 is released and things are a bit more stable. Spring? Well, I’m still unsure about that. I think that the question in all of our minds is where IS the limit where the lightweight frameworks break down and more complicated frameworks like Spring (or even Struts) become necessary?

The TurboGears team is hot on doing a TurboGears Jam at some point (and several of the other attendees from the jam expressed interest in doing that as well). Of course, logistically, it’s a bit complicated, so I’m not sure if/when it will happen, but it would be great.

As for the hike, on Friday, we hiked the 401. This is an absolutely beautiful trail, also up by Gothic. We were surprised by a huge tent that someone had dragged up the mountain. It was an out and back, and the wildflowers were gorgeous.

Hike on the 401 photos

Thursday in Crested Butte

Web Frameworks Jam, continued

The TurboGears team finally is all working with the 0.9 release, and we made a lot of progress today. I was able to get the things working that didn’t work yesterday (i.e., the JSON support), and we moved forward, exploring the TurboTunes tutorial and more of the supporting code.

The TurboTunes tutorial is a lot of Javascript, so not as much in terms of kid and pure TurboGears, but it’s a nice looking demo. Here are some of our notes about that tutorial:

TurboTunes Tutorial Feedback

1.tutorial refers to prod.cfg, which doesn’t exist. Assuming should copy sampleprod.cfg to prod.cfg. No big deal, since we were in development mode anyhow (using dev.cfg)
2.In 0.9.a7, sqlite is assumed in dev.cfg … needs to be commented out. This is kind of annoying.
3.Tutorial uses old start command: python turboTunes-start.py, while new version uses start-turboTunes.py
4.Use tg-admin toolbox to start toolbox to access Catwalk. We were able to leave out all mounting of CatWalk, but still need to import model.

The Google Web Toolkit team seems to be doing well with their exploration, and the Spring team is making progress too. During the hiking breaks (and at dinner), we all discuss what people are doing. Ah, it would have been nice to have had more time, so that each group could have looked at another framework as well. Ah, sigh, but realistically, we likely would have just gone into more depth with what we were doing.

This afternoon, we all took a hike to Copper Creek. It’s up by Gothic, which is an old town now used by biologists. The waterfalls were gorgeous and the hike had more elevation (and length) than the previous days.

In the evening, a few of us went to see “An Inconvenient Truth”, which was (IMO) both fascinating and disturbing. In any case, it was great to see someone handing out flyers about how to convert to using wind power in Colorado after the movie.

Ah, tomorrow is our last day here, and I’m hoping that we can look at some more TurboGears in detail.

Copper Creek Hike

Web Frameworks Jam: Wednesday

Another Day in Crested Butte

First, work stuff:

We continued our TurboGears quest yesterday (Wednesday). The “out of the box” tutorial experience isn’t really there yet, but we’re still hopeful about the package. Mainly, if I had been working on my own, I’m just not sure I would have been this motivated to continue working with the package, after encountering the roadblocks that we’ve hit. None of them have been insurmountable, but “real” work would have probably drawn me away from it when I did get temporarily stuck and I’m not sure I would have gone back.

The idea of using Best of Breed Components to put together a framework is compelling, and I’m enjoying getting my feet wet with a little Python as well. The “gotchas” seem to be package installs, at this point, further complicated by the fact that we don’t have a live internet connection at the conference location (which really just inspires us to visit the coffee shop next door quite frequently).

We’ve been making notes, mainly about the tutorial and this “out of the box” experience that I just mentioned. Bruce is going to post them, and I’ll add a link here when he’s done that.

The Spring/Hibernate team is plugging along (mainly focusing on Spring at this point, I think). The Google Web Toolkit team is making progress as well. One of the guys has extensive knowledge of the toolkit (has been using it for a while) while the other 2 have great interest. I’ve seen notes from them as well (extensive!), and I’m hoping that they post those as well. I’m looking forward to reading them in more detail, and I’ll post a link if they get blogged. Pretty sure they will …

In any case, we’ll be getting back to TurboGears this morning. Barry finally has everything working on Debian and Bruce has upgraded to 0.9 from the default install of 0.8.9. We’ve learned a lot about the package, and I’m looking forward to getting through the tutorial and onto new things now that (hopefully) the wrinkles have been ironed out.

And now, the recreation report:

We went for another hike (Slate River) yesterday afternoon, hiking to a waterfall. An old mine is nearby. It was a very nice hike, more elevation than yesterday.

And we had lunch at a great little outdoor Tibetan restaurant (Mo Mo’s). I had curried beef with lentils and rice and some chai. It was fantastic and the outdoor garden setting is amazing.

Last night, one of the other attendees and I attended a community forum at the local school. Ambassador Ed Peck, former chief mission to Baghdad, spoke to a standing-room-only crowd about unrest in the Middle East. Pretty timely. He’s an amazing speaker and probably makes a great diplomat. He really stressed the importance of listening to what people (in other countries, especially) are saying and thinking. Imagine that. This isn’t a political blog, so I won’t go into more detail, but suffice it to say that I’m really glad that I attended. I wish that I were going to be here next week, when Sandra Day O’Connor will be speaking. Wow!

Crested Butte is simply a wonderful place. Costly, but lovely. It’s definitely a great place to visit. Some local tidbits:

·I talked to a woman at Camp4Coffee yesterday morning who had ridden her bike there with her 6 month old baby. We were talking about bike trailers. She said that she bought that trailer when some visitors came to town for a week, bought a brand new bike trailer, and sold it for $70 when they left. Nice deal!
·I spoke to a man in the hotel lobby this morning who is a rancher from Texas who has been coming to this town every year for 30 years. He’s here with his grandson this week.

Web Frameworks Jam, Day 1

Greetings from Crested Butte!

I’m here, at Bruce Eckel’s Web Framework Jam, and (as expected) learning a lot already. We’ve broken up into 3 groups, each working on a different framework. Initial task is to become familiar with the framework. My group is working on TurboGears (the preview version, 0.9), and we’re not just working through the tutorial but also inspecting a lot of code along the way. A second group is working with Hibernate/Swing, and the third is using the Google Web Toolkit.

Each day, there’s time set aside for recreation (hey, if you’re in a beautiful place like this, you really SHOULD get out and do something!). Yesterday, we went on a nice, flat hike at Lake Irwin (flat is good, since we’re all still acclimating to the altitude, 9300 ft). Later in the week, I’m hoping to do some mountain biking. But … as we saw with the Programming the New Web conference here last March, the “breaks” really serve as a way for the groups to interact about what they’re learning as well. A lot (most) of the conversation centers around what we’re doing, something that most people who hang around with computer geeks probably don’t find surprising.

Wildflowers at Lake Irwin

Web Frameworks Jam

Heading off to Crested Butte

I couldn’t stay away. Bruce Eckel is offering an Open Spaces Web Framework Jam in Crested Butte next week, and I am really looking forward to it. Yes, I was just in Crested Butte in March (for Programming the New Web), but this is a hands-on experience and I think that it’s going to be a great learning experience and incredibly fun too.

In addition to meeting new people, I’m looking forward to hanging out with some familiar faces from the last conference as well (three of us are returning). I hope to post some updates from the web framework jam here.

The “It” Thing …

Some kind of event in Crested Butte, CO, July 18-21

Bruce Eckel was going to do a “Thinking in Java” Open Spaces conference in Crested Butte, CO in July, but interest (or at least enrollment) didn’t seem to be there. After a flurry of email between several of the people that were at his Programming the New Web Open Spaces conference (held in March), he is re-working it as potentially an even cooler event. Check out the link for more details at:

http://mindview.net/Conferences/ThinkingInJava

I really trust Bruce when he says, “We'll find something interesting to do even if we don't know exactly what it is yet. It's in the same vein as an Open Space — where you have a basic topic but you don't know what sessions will appear until people start putting sticky notes in time slots — but taken up a notch. Here, we're not sure what the topic will be, but we assume that something will appear by the time we actually convene.”

I hope that I can be a part of it. My attendance, right now, is only limited by family obligations. If I can work out those details, I will be there. If I can’t make it, I will be really bummed and anxiously awaiting news on how it all turned out.

To be able to go and build something for the fun of it (and for the educational experience)! It would be like summer camp!

BTW, there’s a hostel in Crested Butte. I hear it’s pretty nice and you sure can’t beat the price!

Conference Information
Summary of Potential Topics
Open Spaces
Discussion of Open Spaces Technology
Crested Butte Hostel
Best Value in Crested Butte
Other Lodging/Travel Info
Where to stay and how to get there

A Plethora of Web Development Tools

TurboGears, Ruby on Rails, Atlas, Google Web Toolkit: Embarking on a journey with Web Application Development Tools

I’ve got to get my mind around all of these tools. What are their strengths and weaknesses? Who competes with whom? Where’s the overlap? What are the differences?

TurboGears and Ruby on Rails seem to meet the needs of the same audience. They both provide the means for Rapid Web Application development. Atlas lets .NET programmers use the language and environment that they are comfortable with to develop web applications, while the Google Web Toolkit enables Java programmers to continue to use Java to develop web applications.

But … the big question is … do we NEED all of these things? Can we do what we need to do with TurboGears and/or Ruby on Rails? It’s fairly well accepted that TurboGears and Ruby offer us productivity advantages, but do Atlas and the GWT offer us something functionally that TurboGears and Ruby do not?

So, I embark on my journey to play with software. I like this part!