Monthly Archives: April 2007

Will it be SWT or Google Analytics on Tuesday? Or Both?

Tuesday, May 1 Ann Arbor Technical Meetings

It's the first week of the month, and so the Ann Arbor area is hopping with user group meetings.   I already mentioned the AACS meeting (Ruby on Rails), but there are also meetings on Eclipse for SWT Development and Google Analytics at the ITZone.  The Python User Group meeting, which would typically take place on Thursday May 3, is postponed until May 16, for a special event with Stephan Diehl (who will talk about stackless python and pypy).

So here are the meeting announcements for each of the Tuesday night talks.  I guess if you're resourceful, you could attend both, since the Google analytics talk goes until 7 and the Eclipse talk doesn't start until after the open networking at 7 (so probably 7:30)!

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

At the AAJUG meeting, Carlus Henry speaks on:

Eclipse for SWT Development

Date: Tuesday, May 1st, 2007
Time: 7:00PM – 9:00PM EDT

Open Networking starts at 7 PM.

Meeting Location:
Washtenaw Community College, WCC BE158

 http://www.wccnet.org/search/roomlocator/index.php?room=BE158&bego=Go 

PRESENTATION:
===========

I. Introductions
    A. Who am I?
    B. Who are you?
II. Presentation Goals
III. What is SWT
    A. Setting up Eclipse for SWT Development
    B. SWT Demo
VI. What is JFace
    A. JFace Demo
VIII. Eclipse RCP
    A. Case Studies
    B. Demo

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

At the ITZone, Jeff Gillis introduces and demos Google Analytics, a free web site analytics solution from Google used by web site owners and marketers to better understand their users' experiences, optimize content and track marketing performance. Google Analytics also shows advertisers' data about their AdWords ROI so that they can purchase more appropriate keywords and track Ad Group performance.
Date: Tuesday, May 1, 2007.
Networking starts at 5.
Program 5:30-7.
Costs: Members are free, Nonmembers are $25, and students are $5.
Jeff Gillis – Associate Manager, Google Analytics
Jeff has been with Google for more than three years, working on AdWords operations, and since Google acquired and renamed Urchin, with the Google Analytics team. He focuses on marketing and operations for the service, and is a regular contributor to the official Google Analytics blog (http:// analytics.blogspot.com ). Before joining Google, Jeff was a technical solutions specialist for ParentWatch.com in New York City. He graduated with a BA in Literature from Stanford University.

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

UI Smackdown: Session 4

Combining Flex with other technologies

Is it possible to combine Flex with other technologies?  We saw James Ward build a Flex front end for a TurboGears app at CodeMash.  What else makes sense? Those are the questions that we tried to answer in the last session that I attended at the UI Smackdown.

Flex runs on the Flash VM, which has a small memory footprint. It's possible to build a GWT programming model for Flash.  This would generate ActionScript instead of Javascript. That's interesting.  The goals of such would be to reuse components so that you don't have to learn a new interface, leveraging the Flex framework (e.g., tab navigation, etc.).  You would want to use the GWT Compiler, which is written in C/C++.

This would provide good discipline in Javascript, in terms of using libraries and namespaces.  It would improve searchability.  This would be heavy on HTML, rather than AJAX.  One downside of AJAX is that it's not spiderable, hence the reduced searchability.

This is an interesting area which certainly requires more thought. It sounds like James Ward IS thinking in that direction and it will be interesting to see what Adobe comes up with.

UI Smackdown: Session 3

XAML/MXML: Why both?

I'm always curious when we have competing standards emerging, and I wonder how that happens, and why.  So, since we had people who were knowledgeable about both Flex and WPF at the UI Smackdown, it seemed reasonable to explore this issue with respect to XAML (Microsoft's XML scripting language for use with WPF) and MXML (Adobe's XML scriptiong language for use with Flex).  How similar are they?  Do they strive to solve the same problem? Will one standard emerge?

MXML is Adobe's markup language. It's essentially a DSL (domain specific language) for ECMA script.  You write MXML and it compiles into Action Script.  It has a familiar feel to HTML.  Used for layout.

ActionScript is used for all procedural components.  In Apollo, ActionScript compiles to byte code on the server.

XAML is Microsoft's markup language.  You use it to write WPF applications.  Instead of ActionScript, procedural components are written in C# or VB.NET.  XAML is not just for WPF.  It's a serializable format that can be used to:

  • serialize event wireups
  • refer to other objects in serializing code
  • serialize property injections
  • add properties to a language

You can pull in more than just state with XAML.  WPF and WF use XAML (and other technologies will as well).

Thus, MXML is really more specific to layouts, while XAML manages serialized formats.  The general consensus from both vendors is that the technology needs to mature before it can be standardized.  It's hard to work with other primary vendors while trying to innovate (e.g., XUL, SVG).  It's better to give the technologies time to mature and then let them come together.

With that understanding, we moved on to what some described as the "real" question.  The tooling on top of XAML and MXML is really the key, not the underlying technologies that implement it.  So the real question is: WPF/E or Flex? 

In designing tools toward productivity in developers, Microsoft has the edge.  Adobe's process is more manual, but this will be addressed in Flex 3.

Microsoft's Expression UI writes to XAML source files in the same project as Visual Studio Developer.  On the other hand, pure designers feel more comfortable using Photoshop, so Adobe certainly has an edge there.

For now, the jury is out regarding which to use.  As they both mature, this will be interesting to watch.

MXML
Adobe's markup language, used to build Flex apps
XAML
Microsoft's markup language, used to build WPF apps

UI Smackdown: Session 2

How to Hook into an Existing App

The second session that I attended at the UI Smackdown discussed opportunities for hooking new technologies into an existing application.  In particular, one of the participants wanted to hook a WinForms app with a WPF app.  While we were there, Drew Robbins from Microsoft demonstrated how to do this, and gave references to some tutorials at msdn.microsoft.com.

One discussion that came out of this session was the idea that the goal in generating user interfaces is to be able to suspend the disbelief of the users that they are actually using software.  They need to feel like it's a natural progression toward getting their work done.  With WinForms, this is difficult, but WPF improves this experience. 

One objection that people face when moving away from winforms is that there is a lot of third party support for it.  However, looking at WPF, it's apparent that a lot of these things have been built into the framework, so third party support is not as critical.  Rather, the downside of WPF at this point is in documentation (or lack thereof).  Once you figure out what to look for, WPF is a lot easier than Winforms.

If you're looking for a mobility solution, for now, WPF isn't going to help.  It doesn't appear that there's any intention to have WPF/E (E=Everywhere except mobile?).  WPF/E builds true web apps using layout/vector graphics from WPF with XAML.  Javascript drives it.

An aside that came out of this session was the idea that we often look at migrating an application based on what it currently does.  Rather, we should consider what the USER is trying to accomplish.  This will offer us more of an opportunity to provide a rich web application experience, since we aren't stuck in the mode of what has been done.

WPF

WPF/E
Scott Guthrie's Blog Entry
Winforms with WPF
(Thanks, Drew, for the link!)

UI Smackdown: Session 1

Web App Limits: Real World Experiences

A group convened a session to talk about web applications, and where they break down with real world experience.  The limitations were noted as:
1. Javascript requires testing in many different browsers, but the GWT strives to solve this problem
2. May experience CSS challenges with GWT
3. Limited browser support for multi-media and vector graphics (resulting from lawsuits between Apple and Microsoft?)
4. Drag and Drop onto a scrollable pane generated some headaches for those who had used GWT

The recommendations and observations included:
1. Use Javascript for fast prototyping and then build in GWT once the interactions are discovered
2. Flex can talk to AJAX apps
3. Controls in Flex are builg using vector bitmaps.
4. WPF and Flash allow designer to build whatever they want and the programmer can use it
5. Can encrypt Flex and send over SSL.
6. Can unitttest classes using Flex
7. Javascript, Flex, and WPF build on strengths of the designers
8. Innovation in the browser has stagnated.  By adding in elements other than pure Javascript, Microsoft and Adobe (and others) are able to innovate more freely.

Google Web Toolkit Designer
A great tool for building apps using GWT

UI Smackdown 2007

Summary
Adobe's Flex, Microsoft's WPF, and Google's Web Toolkit (GWT) were all discussed in an Open Spaces format at the Ann Arbor ITZone on April 4.  I'm very late in reporting how it all went, since I've been trying to catch up with the other things that I'm working on.

About 35 people attended, from various companies.  Two people came in from out of the area: James Ward from Adobe, and Chris Bernard, from Microsoft.

Feedback after the event was overwhelmingly positive.  Some people want us to do something like this again.  Bill and I agree — these Open Spaces events are a lot of fun and very educational, for everyone involved.  If you haven't read about Open Spaces, I've included a link below.

I know that I learned something in every session that I was able to attend.  My only regret is that I was only able to be in one place at a time.  I really like what the Java Posse did at the Roundup.  Because they taped the sessions and are releasing them as podcasts, I am able to listen to those sessions that I didn't attend.  Of course, they DO podcasts, while we really don't.  We will have to see if it makes sense for us to record sessions for later release.

We kicked it off with an introduction to each of the technologies, and to the open spaces concept in general.  We had quick "lightning" talks of each, before we broke up into groups to explore questions that we had about each.  We had time to do 2 time slots of 3 concurrent sessions before lunch, and 2 time slots of 3 after lunch.  We concluded with an overall session where we asked what we could do better, and if this format and location worked for people.  The response was positive.  If we have many more attendees, we will quickly outgrow the ITZone space, but for this event, it worked great.  One unintended result was that two of the groups could actually SEE one another.  We were able to gauge a little about what was going on in the neighboring session.  One person even noted that it seemed like the "other" group was having more fun and he wasn't learning anything in the session that he was in, so he exercised the Law of Two Feet, and moved over, where he actually had quite a bit to contribute.

I'll summarize the sessions that I attended and hopefully others have done the same.  We hope to do about one of these per quarter, because we find them to be great learning experiences, for our consultants, for our customers, and for the community (as well as for ourselves).

Open Spaces

Java IDEs at the Roundup

Discussions of IDEs, and the special challenges of having choice

The Java Posse has released yet another session from the Java Posse Roundup. I attended the Roundup in March, and we had a lot of great sessions, all of which were recorded and will be released over the next few months. They’re releasing about one a week so that they don’t overwhelm their bandwidth restrictions. Most of the sessions that have been released to date, were sessions that I had missed. The session that was released this week #115, on Java IDE’s, was one that I not only attended but also was responsible for convening. That simply means that it was a topic that I hoped that people would want to discuss, so I put a post-it note on the board, and people came. We had a great session, and I learned a lot.

If you want to download the recording for the session, you can get it at http://media.libsyn.com/media/dickwall/JavaPosse115.mp3, or from whatever you usually use to download such things (I subscribe with iTunes).

Oh, and yes, there’s a little bit of Microsoft-bashing, but also some accolades too. For one thing, it occurred to me that this is not a conversation that Microsoft developers would be having (i.e., which IDE to choose). Most people use Visual Studio, and that’s an appropriate choice. Yes, there are plug ins, but my bet is that 99% of the community doesn’t bother installing them. I suspect that useful things make their way into Visual Studio, much as useful things make their way into MyEclipse and NetBeans. And yes, I’m sure that there are enterprising developers who customize their environments, but I seriously doubt that Microsoft programmers face quite the same number of choices that Java programmers do when configuring a developer environment. That’s not a bash; that’s actually a compliment. Out of the box, Visual Studio is not only usable, it’s quite useful. With the Java tools, there’s not simply “a box”. There’s “the web”. Go forth, young (wo)man, and find your IDE. Then decide how to customize it. This approach is self-selecting, I think. The types of people who have been drawn to Unix and Linux aren’t put off by this approach. They see it as an advantage. I’m not exactly put off by it, but if you listen to my comments during the session, you will realize that I do struggle with the sense that it’s a waste, some of the time, but then again, I love the fact that people are so motivated to build cool tools that can be easily plugged in.

My biggest concerns with this approach are:

1.It’s hard for new developers to get started
2.Young developers, who expect an IDE as part of modern software development practices will be put off and not choose to develop in Java
3.Time spent evaluating and selecting an IDE, and choosing customizations for it is time that I don’t spend solving problems for my clients.

I haven’t looked at NetBeans in a while, and I will (soon) spend some time looking at that again. I’ve been pretty happy with Eclipse and in the spirit of getting work done rather than once again evaluating tools, I was pretty happy to stay with it. But with some of the new features that NetBeans 6 will provide, I’m thinking it’s time to look at it again.

In any case, what I got out of this session after experiencing it both in person and later, as an observer, I took away the following:

1.We all like (and alternately hate) our IDE's. Even if our "IDE" is vi. 😉
2.Everyone struggles to find that sweet spot of plugins to use with their IDE of choice.
3.If you are a plugin "developer", write good docs and promote the tool wisely so that others can learn about it. Don't produce a 1 hr video (not kind to searching). And make sure that the Java Posse knows about your plugin/tool.
4.A rating system would go a long way toward helping the mere mortals among us to help find cool and useful plugins, and shorten our own individual evaluation cycles.
5.nbextras is a good place to look for plugins for NetBeans.

I think that *** said it best. It really comes down to community. Active participation within the community, sharing about tools, etc. is really essential to knowing what you can do better.

NetBeans
Stable Release (5.5)
NetBeans in Progress
Milestone releases
Eclipse

IntelliJ's IDEA

Mylar
Plugin for Eclipse, discussed in the session
Findbugs
Plugin, discussed in the session

Kathy Sierra, Jake Baker, and online threats

Here’s a link to the interview on CNN that included both Kathy Sierra (one of my favorite bloggers) and Chris Locke (one of the bloggers mentioned in her post as being involved with the meankids site).

http://onegoodmovemedia.org/movies/0704/gma040107locke_sierra.mov

I haven’t posted anything about this on my blog since last week, when I saw her post about the threats. I offered her some support in the comments section of her blog, but I have been struggling with what to write myself. Honestly, I didn’t know Chris Locke or anything about meankids before this incident, and my life has not been improved by hearing about such mean-spirited behavior. I think it’s unfortunate that they have been given a lot of publicity now, and for that reason, I refuse to post any links about them.

But the worlds where computing and marketing meet have been dealt a great blow by Kathy taking a hiatus from blogging (I hope it’s just a hiatus), and I feel like I want to add my two cents to this entire mess.

My company uses moderated comments. Is this censorship? Sure. Would we sensor out comments such as some of those posted on Kathy’s blog? Absolutely. But what Kathy could NOT censor were comments on OTHER people’s blogs, and those threats were much more revealing and frightening than the anonymous comments that were on her blog (of course, I only know what remains, not what might have been removed). If someone were to post threats to me that were posted about Kathy, I’m pretty sure that I would have the same reaction as she did and stop blogging for a while. Or move to a new town and lick my wounds. Yes, I’m serious. As Robert Scoble and his wife posted, having children really does impact how you see these things. Nothing, not a job, not prominence in the community, NOTHING is worth putting my children at risk. And make no mistake, if someone had threatened me in the way that Kathy was threatened, I would see my children at risk and Mama Bear would be out protecting her cubs, not matter what the cost.

But the part that has really kept me silent about all of this til now has been my correlation between this and a local incident that happened here in Ann Arbor several years ago. The threats against Kathy brought all of that back to me. At that time, a student by the name of Jake Baker submitted a pornographic story about a fantasy rape and murder of one of his classmates, whose real name he used in the story. This is immortalized in wikipedia and in court judgments if you care to read the details. The similarities between this case and the threats made to Kathy make me sad. Most of all, the fact that the case against Jake Baker was dropped in spite of actual plans to meet a co-conspirator (my words, not those of the attorneys in the case) to carry out the actions. His right to free speech was upheld, and the judge did not believe that he would have really carried out these actions. Sadly, the case is seen as a precedent to free speech on the internet. The judge’s opinion in that case follows.

"It is not the policy of the law to punish those unsuccessful threats which it is not presumed would terrify ordinary persons excessively; and there is so much opportunity for magnifying or misunderstanding undefined menaces that probably as much mischief would be caused by letting them be prosecuted as by refraining from it."

The Jake Baker case (and the ultimate dismissal) alarmed me in 1995, and those feelings were brought back last week, when I read about the threats made online to Kathy. I suspect that a judge in a case against the leveler of the threat against her will find the same way, and that saddens me. If I recall correctly from what transpired in 1995, the idea was that since the “victim” in the story didn’t “hang out” in alt.sex.stories, where the story was published for ALL THE WORLD to see, it wasn’t viewed as a threat that she was likely to have seen. Indeed (again, if I recall correctly, and 12 years can make memories fade), I seem to recall that someone else told her about the site and about the story and that it included her name. And somehow that wasn’t seen as a direct threat, whereas if he had read the story aloud in class, it would have been considered more seriously. Well, this was pre-Google and pre-egosurfing! It’s very easy to find things like this now, so hopefully this litmus test will not be applicable.

I’m left with questions about where Jake Baker is. I sincerely hope that he’s an upstanding member of society who has regrets about what terror he caused. And I hope that the woman about whom he wrote this “fictional” story has long been able to put this behind her, and that she is wildly successful in the field of her choice. I’m sad to think that threats on the internet have not been taken seriously in the past, and that many, many women who have restraining orders suffer from very real violence as a result of “implausible threats”.

And yes, every day, I struggle with thoughts of the challenges that free speech bring, but I do participate in some online groups and I see intimidating, nasty “trolling” regularly. It is not tolerated in the groups that I frequent. There are moderators who remove objectionable, bullying posts and for the most part, this is a good thing. In many cases, I have seen valued members of online communities leave and “go dark” to avoid the trolling behavior because the moderators weren’t able to get to the posts before they were made public. This saddens me, but I totally understand why they would do this. I’m a bit “too exposed” online, but my business makes it so, and it’s a (small) risk that I tolerate for now. If, however, I were subjected to harassment of the form that Kathy just experienced, I would change my behavior. My family is worth more than an online presence.

I truly enjoy Kathy’s blog. The insight that she has provided in the year or so since I have been reading has been invaluable to me. Her wit and her insight are a unique offering to the community. Her way of looking at things, and of getting others to look at things is important is why I will keep her in my list of blogs, and why I hope that she will return someday. In the meantime, I hope that there are things that we can do to make this online community a safer place to be. If that means less anonymity, I’m (personally) willing to accept that.

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!