Tag Archives: AACS

Ruby on Rails at the Ann Arbor Computer Society

Featuring Joe O'Brien of the Columbus Ruby Brigade

Joe O'Brien, who helped to found the Columbus Ruby Brigade, is going to be speaking at the next AACS meeting, on May 2.  Meeting starts around 6 pm (well, that's when the pizza arrives; Joe will probably start talking around 6:30).

So, if you're in the Ann Arbor area and want to learn about Ruby on Rails, here's your chance.

AACS meetings are free and open to the public.  Annual memberships (just $20) do qualify you for door prizes and to vote in elections.  The May meeting also happens to be election night.

Meeting will be held on Wednesday, May 2, at 6 pm at the Ann Arbor ITZone/Spark Central, 330 E. Liberty (lower level), Ann Arbor, MI.

AACS

Columbus Ruby Brigade

Ruby on Rails

It’s a busy week in Ann Arbor!

I’m still trying to finish up my blog from my visit to Microsoft last week (and from the Michigan Celebration of Women in Computing over the weekend), but I wanted to make sure that I mentioned the busy week that we’re having in Ann Arbor this week.

James Ward, Flex evangelist from Adobe, is coming in from Oklahoma City to present Flex both Tuesday night at the Ann Arbor Java User Group (www.aajug.org), at 7:00 (note the earlier time!), and on Wednesday night at the Ann Arbor Computer Society (www.computersociety.org) at 6:00 pm. While James has sent me the same abstract for both nights, he’s said that the Tuesday night event will be more Java-focused and the Wednesday night event will be more about the technology. There’s not much overlap in attendance at the groups but since I’m planning to attend both nights, it will be great to hear something different the second night.

Here’s the abstract:

Sexy Web Apps with Java, Mozilla Tamarin, and Flex

In this session James Ward will do live demonstrations and write code to show how easy it is to build sexy web apps with Java, Mozilla Tamarin, and Flex. The session will cover the programming model, Java Remoting, Pub/Sub messaging & JMS integration, Data Synchronization, Hibernate integration, charting, cinematic experiences, and media integration.

I’ve seen James demo some incredible stuff with Flex. He built a TurboGears widget with Flex at CodeMash. He demo’ed a nice bookshelf photo application there as well (using photos from CodeMash!). And, he showed a demo at the Java Posse Roundup that used transparent pages from an old medical textbook … wow! To be able see the transparent pages turn, and to be able to see through them to the previous page is REALLY cool, and really does give you a flavor for the compelling interfaces that can be built with modern technologies.

We’re really making the best of James’ time while he’s here. In addition to the evening events, Adobe, Microsoft, and SRT Solutions are presenting, “UI Smackdown 2007: Using GWT, Flex, and WPF”. This is a one-day workshop to learn more about all of these toolkits in an open spaces type of environment. We’re going to start off by presenting a quick overview of each, and then the participants will be breaking out into groups of their choosing to work with the various toolkits. The $90 registration fee includes continental breakfast and lunch. There are still a few slots available, so if you still want to sign up, do so right away so that we can make sure that we order enough food!

Java Posse Roundup: Day 2

Java Posse Roundup: Day 2

Session 1: Java Development Environments

I convened a session on Java Development Environments (IDEs, tools, etc.). My question was, “Is it a benefit or a detriment that we have choice in our tools?”. For comparison, when programming on the Microsoft platform, developers are given tools that work together out of the box. If they choose to add new tools to their arsenal, they can (especially see Jim Holmes book, “Windows Developer Power Tools”, which includes a lot of open source tools for use on the Windows platform.

In any case, as Java developers, we’re not only free to choose our own tools, but sort of forced into choosing and configuring. Yes, there are packages like MyEclipse and NetBeans which bundle things together, but the IDEs have gone back and forth many times in the past several years. I’ve personally tried at least half a dozen. Currently, I’m using Eclipse, but on the recommendation of the group here, I’m encouraged to give NetBeans another try.

The consensus of the group was generally that we’re glad to have options. I’m still left thinking, however, that we spend a lot of time spinning our wheels, evaluating tools, instead of actually solving problems for our customers (or employers).

Session 2: User Groups

The next session that I attended was on User Groups. Graham, a Crested Butte local, is considering starting a user group here, in Crested Butte. He was looking for ideas and suggestions about how to get started, while others were looking for ideas about how to grow their user groups or to keep people coming back.

I held the position of president of the Ann Arbor Computer Society for 2 years, and I got some great advice from past leaders of that group: DELEGATE. I’m not always good at it, but it’s a good objective. Having a strong leader that can delegate tasks to get done is pretty critical, I think. Several (3) of the guys in the session were from Atlanta, and the AJUG has a dynamic and energetic leader, and it sounds like he does a phenomenal job of keeping their user group going. In addition to an annual DevCon, which is well attended, they offer Job Postings for both potential employers and job seekers (JRecruiter). The Ann Arbor JUG also has this, but I want to look at what they’re doing in Atlanta, because it sounds more effective than the blog-like postings on the AAJUG.

Remote user groups (Taos, Crested Butte) face different challenges. There are few area users, and having a JUG may be too restrictive. It sounds like Dean from Taos and Graham from Crested Butte may create a more encompassing group that serves all software developers, rather than limiting to a JUG.

Chris Adamson was also in attendance. He is an editor for java.net, and he offered to help solicit updates for the JUG list that they maintain. GREAT IDEA, since they really have gotten out of date.

The basic “take-aways” from the session were:

1.Start small. None of the big groups started big. We all started with 2 or 3 people who wanted to get around and talk about cool stuff.
2.Have a compelling reason for people to attend meetings. Good content, opportunities to learn about jobs, etc.
3.Mix in local and national speakers, if you can. National speakers provide visibility to the group, while local speakers get experience talking to a group of people.

Some groups charge dues, while others are free. Some are corporate sponsored, others are not. You just have to find what works in your area.

I would love to create a “meta-group” of JUGs or other user group leaders who might communicate on an eGroup or such to toss ideas back and forth. Maybe we can start with the list on Java.Net?

Java User Groups on Java.net: http://tinyurl.com/36r2ku

Here’s a view of what Sun coined as the Top 50 JUGS:

http://wiki.java.net/bin/view/JUGs/SunTop50JUGProgram

Session 3: Convergence of Desktop/Web/Mobile

Joe Nuxoll convened a session on the convergence of desktop, web, and mobile application development. Questions were raised about how to determine which platform to develop for, or if it made sense to sometimes build a web app that could be used on a desktop. Mobile has its own set of challenges, but even so, we’re becoming more demanding about what we expect in mobile apps.

One real key is that a lot of time users don’t even know where they’re running up against web/desktop boundaries. One good example of this is Google Earth and Google Maps. Google Earth is clearly a desktop app but it accesses the web to get data that Google maps also uses. Sketchup is a nice application that also pushes these boundaries, in connection with Google Earth.

Joe’s pretty adamant about good user interface design, regardless of desktop or mobile or web. Everyone pretty much agreed that we have to use the right tool for the job, and that it’s not always clear what people need when looking at what people are CURRENTLY doing. Sometimes we need to mix stuff up and come up with a new way of interacting with the user. There are some really cool demos from demo.com that really push this envelope.

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