Tag Archives: Java

Our very own Patrick Steele joins Compuware Speakers at Technical Seminar Series

May 17, 2007 at 5:30 pm

SRT Solutions' consultant Patrick Steele joins Brian Cassista and James Brown to speak at Compuware.  Compuware is holding an evening networking/technical seminar event on May 17 starting at 5:30 pm.  I would love to attend Patrick's talk, "Taking Advantage of Generics in .NET", but I think that I will be headed over to James' talk on Dependency Injection and Spring instead.  If neither of those suits your fancy, then the Brian's talk on Project Management and Continuous Integration also sounds great.  I just wish I could be in three places at one time!

5:30-6:30 is for networking and hors d'oeuvres, compliments of Compuware.  The 3 parallel sessions will start at about 6:30 and go for an hour, with an hour of questions and answers following.

The event is free, and you can sign up (by May 14) by emailing Mary Johnson or calling (313) 227-7729.  More information can be found at Compuware.

I think it's going to be a great event.  I'm really looking forward to it.

More event info

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)

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

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!

Microsoft Technology Summit 2007

No, you didn't stumble on Bill's blog accidentally. Really, I'm going to Redmond!

I’m heading off to Redmond on Sunday. Yes, Redmond. No, I do not typically develop on the Microsoft platform (at least not recently), but that’s the point of this conference. This is a conference targeted at community leaders not currently developing on the Microsoft platform. It’s an honor to be included (which is a response in large part, I’m sure, to the many hours I put in to help organize CodeMash). Only about 50 people have been invited and we will be meeting with the product and research teams. It sounds like we will have an opportunity to provide feedback to those teams as well as be exposed to the latest cool things that Microsoft has available. I’m looking forward to not only learning about the latest in what Microsoft has to offer, but I’m also interested in meeting the other participants and helping to build that community as well.

My involvement with CodeMash and my participation at the various Open Spaces events that Bruce Eckel has been hosting (including Programming the New Web, Web Frameworks Jam, TurboGears Jam, and most recently, the Java Posse Roundup) has given me the opportunity to realize that I really enjoy building community. I have been involved with this in the past (Ann Arbor Computer Society, and the Ann Arbor ITZone). I’m trying to work with the Ann Arbor Java User group, and I’ve been going to Python User Group meetings as well. A large part of being an entrepreneur in software is networking. I really dislike some aspects of that. I dislike going to meetings and shaking hands, and delivering elevator pitches. What I do like is getting to know people at conferences or user group meetings, learning what they do, who they work with, who they interact with in the community and what technologies they use. I LOVE meeting new people and talking geek stuff with them. I don’t like meeting business people and giving spiels. I know that this business requires a bit of both, but I would really rather spend time with the fun, cool, technical people when I can!

About a week before CodeMash, we created a google group for people to communicate with one another prior to the event. In addition to helping plan logistics, like carpooling, room sharing and such, it gave us an opportunity to build some community in advance of the event. Face it — geeks can be shy. If this helps to bring us out of our shells so that the face-to-face meeting is a little easier, then that’s great. It gives us all some context about the rest of the group, so that when we finally do meet, it’s a bit more relaxed (I think, at least).

Anyhow, I offered to create a group for the MTS2007 and the Microsoft staff took me up on the offer. People have been signing up all week and I’m looking forward to meeting all of them in person.

I’ll blog more from the event (Microsoft is OK with us blogging about it).

Practice of Java in Atlanta: An Open Spaces Event

My friend and fellow Open Spaces advocate, Barry Hawkins, is helping to organize an Open Spaces event for Java in Atlanta. Barry has been at several of the Open Spaces events that I’ve attended, including the most recent Java Posse Roundup. Barry and I met at an Open Spaces event facilitated and hosted by Bruce Eckel, and have been repeat offenders ever since. Bruce has set the bar really high, providing amazing learning and community building opportunities. I know that Barry will do an extraordinary job with this event as well. If you’re in the area (or feel like going there), definitely check it out. It’s your event to make what you want it to be.

In April, the Atlanta Java User Group will hold "The Practice of Java in Atlanta", the first Open Space meeting for the Java programming language in the Atlanta area. This is a meeting for passionate Java practitioners to discuss the state and direction of Java development in the Atlanta area.

What: The Practice of Java in Atlanta

When: Thursday, April 19, 2007 – Friday, April 20, 2007

Where: Holiday Inn Select (where AJUG regularly meets)

Who: The first 200 registrants

Why: See below

What is Open Space Technology?

Open Space meetings allow a group of persons passionate about a topic or issue to organize their own agenda in a way that is efficient and effective, yielding exceptional results. The following excerpt from the Open Space World wiki briefly describes Open Space Technology:

"Open Space Technology is one way to enable all kinds of people, in any kind of organization, to create inspired meetings and events. Over the last 20+ years, it has also become clear that opening space, as an intentional leadership practice, can create inspired organizations, where ordinary people work together to create extraordinary results with regularity.

In Open Space meetings, events and organizations, participants create and manage their own agenda of parallel working sessions around a central theme of strategic importance, such as: What is the strategy, group, organization or community that all stakeholders can support and work together to create?

With groups of 5 to 2000+ people — working in one-day workshops, three-day conferences, or the regular weekly staff meeting – the common result is a powerful, effective connecting and strengthening of what's already happening in the organization: planning and action, learning and doing, passion and responsibility, participation and performance." [0]

Why Open Space?

Open Space meetings have been around for 20+ years, and have begun to make their way into technology circles. In the past year, Bruce Eckel's Programming the New Web [1], Dynamic Web Frameworks Jam, and the Java Posse Roundup 2007 [2] have been a few of the Open Space meetings that have people talking. Members of our AJUG community have attended these meetings, and the consensus has been that these are among the most engaging, beneficial gatherings in which they have taken part.

Our Theme – The Practice of Java in Atlanta

The Java presence in Atlanta is a significant one, and AJUG makes that evident. Our monthly meetings and mailing list include Java champions, authors, committers on key Java projects, and seasoned Java veterans with deep experience and insight. Our desire is to hold a meeting about what we are doing and should be doing with Java. What's working? What is not working? These are the conversations we wish to have, passionate discussions about where things are going. We hope you'll join us.

[0] – http://www.openspaceworld.org/cgi/wiki.cgi?AboutOpenSpace

[1] – http://www.artima.com/weblogs/viewpost.jsp?thread=153596

[2] – http://mindview.net/Conferences/JavaPosseRoundup

Please direct questions to Barry Hawkins at barry@alltc.com

Swag at the Java Posse Roundup

Cool swag

Is it rude to brag about the swag at a conference? Ah, well, I’m gonna do it anyhow. Next year, I’m convinced that the Java Posse Roundup 2008 will sell out during the early bird registration period, and it won’t be just for the swag.

But it was cool swag.

Cenqua and Google and O’Reilly sent t-shirts. There was a serious lack of shirts in small sizes. Kathy Sierra would NOT be pleased. She’s right … it DOES matter. Even the guys were amused at the number of XL and XXL. Not a small or medium in the bunch of Google or O’Reilly shirts. I didn’t check out the Cenqua shirts (I like their product, though).

O’Reilly sent some books and notepads. But they made the mistake of labeling the box “Dark Chocolate”. OK, the notebooks were great, but the expectation of chocolate kinda set the bar!

Google also sent some really cool flashy pins. Bruce’s company (Mindview) has great floaty pens.

Adobe sent a training video for Flex and a nice travel mug too.

Sun sent developer tools. I hope that I didn’t forget anyone. The swag table was quite laden with goodies. We have some cool notebooks that I could have taken, but the thought didn’t occur to me.

But next year, someone better send chocolate. I definitely know what SRT will take to its next event. Hmm, we’re sponsors of the Michigan Celebration of Women in Computing in a few weeks. Maybe I should see if we still have time to get chocolate!

My Reading List

My Reading List

I thought I would share what I’m reading now, and what I’ve been reading recently. And I added some podcasts, for good measure, and even a link to a cool development tool that I learned about at the Java Posse Roundup.

Online

Read today: article on JavaScript libraries

http://www.sitepoint.com/article/javascript-library/2

Blogs:

Blogs that I read regularly:

Bruce Eckel: http://www.artima.com/weblogs/index.jsp?blogger=beckel

Kathy Sierra: http://headrush.typepad.com/creating_passionate_users/

Joel Spolsky: http://www.joelonsoftware.com/

Bill Wagner: http://www.srtsolutions.com/blogs/BillWagner/default.aspx

And, of course my own: http://www.srtsolutions.com/blogs/DianneMarsh/default.aspx

Here are some blogs from the Java Posse Roundup, which are sure to become regulars for me:

Josh Marinacci’s blog: http://weblogs.java.net/blog/joshy/

Michael Levin: Swampcast and also Michael Levin's Weblog

James Ward: www.jamesward.org

Others that I used to read have become somewhat inactive. You know who you are …

Books

In progress:

Implementing Lean Software Development, Mary and Tom Poppendieck, 2007.

Comments: good source for lean software, but also draws a lot from lean manufacturing. Recommending to people in other disciplines as well. I’ll post a more complete review when I finish the book.

On my desk, in hopes of reading soon:

Software Estimation: Demystifying the Black Art, by Steve McConnell, 2006.

Podcasts

Most recent podcasts:

  • DotNetRocks, from 2/19.  Guest: Steve McConnell
  • Java Posse #107, Special from Crested Butte
  • Java Posse #106, News from 3/7
  • Ruby on Rails: Camping, Episode II
  • Several episodes of “60 Second Science”, from Scientific American

 

Podcasts I follow regularly:

  • JavaPosse – great podcast for keeping current on Java
  • DotNetNukes – entertaining podcast for .NET world

 

Podcasts in my queue:

  • TedTalks podcasts

Development tool that I’m going to try next

http://www.cenqua.com/

Java Posse Roundup: Day 4

Friday, March 9

Friday was the final day for the Java Posse Roundup. We had 2 regularly scheduled sessions followed by a final session which included everyone.

For the first session of the day, I attended a session on JNI, convened by Josh Marinacci of Sun. A major part of the discussion centered around the idea that perhaps JNI is overly complex for what people often use it for these days, and that maybe some assumptions CAN be made about the atomicity of calls made in the JNI (if the programmer says it’s so). Maybe we should have JNI, as it currently exists, and also JNILite.

JNA is also a good replacement for many of the common usages of JNI. Instead of the programmer writing JNI code, annotations are used to access native libraries, all without writing a single line of native code. Interesting perspective arose that there aren’t many Java programmers who actually WRITE C code anymore, and so the availability of something like the JNA is a good thing.

Many comparisons were made to Microsoft’s CLR and unmanaged code.

And, a lot of us remember the old recommendations to AVOID doing things using JNI because it wasn’t “pure Java”. Well, it sounds like we need to get past that, and use the right tools for the job. If it needs to be in native code, write it. Josh did a really cool demo during one of the lightning talks where he wrote a small amount of JNI code (I think he said one line!) to communicate with the motion sensor on his Mac, using that motion to change a display shelf of pictures to move to the next page. VERY cool! And totally impossible if you wanted to avoid JNI code, since the PCs don’t generally have motion sensors. We really need to be able to use the native interface for things like this, and for creating innovative user experiences. Maybe instead of scaring people away from the JNI, we should come up with some recommendations and (dare I say?) best practices for its use.

Next, I went to a discussion of applets, positioned as “Applets: Does Java need an answer to Flex?”. Very quickly, it became apparent that there was agreement that applets have a certain “suck factor”. When the audio of this session becomes available on the Java Posse, this is something that I think both Java programmers and Microsoft programmers will find interesting.

With applets, there’s simply not enough attention paid to detail. Flash, on the other hand, provides a user experience where you can’t really even tell that it’s a Flash app because the plug in was done so well.

The recommendation was made that we change the applet architecture. Perhaps a 2 phase load would make sense. Everyone agreed that a spinning Sun logo, reminding the user that s/he’s waiting on a Sun applet is bad marketing! The slow loading is not in the JVM, but rather in the plugin.

A competitive requirement is that desktop apps can directly connect with web apps. And pretty much all agreed that Flash is winning on web for user interface from a Java perspective. A great amount of stress was generated in the group, centered around how to move forward. Waiting for Java 7, even as Java 5 is still being rolled out into corporate environments, probably means death for Java. The question was ultimately raised, “Is it worth solving this problem?”. I agreed with the group of people in the room who don’t believe in playing catch-up, not with Microsoft, not with Adobe. Pick the sweet spot that Java has and work in interoperating with Flash using Flex. Forge an alliance with Adobe.

IMO, Microsoft would take both paths. They would fix the plugin AND they would forge an alliance with Adobe. I don’t know if Java will take that direction, and that’s OK as long as they don’t continue trying to play catch-up.

This session was ultimately attended by everyone who was still in the building. Little by little, the crowd grew. The energy was amazing. The audio for this session will be incredible, and I would urge anyone to listen to it, both for the ideas and for feeling the energy of an open spaces event.

The last session of the day was the closing session for the conference. We all met together, and went around the room to suggest what improvements could be made. The appreciation for the Open Spaces format was evident the night before, when the Java Posse did a live podcast recording at the house that they were renting. And Camp4Coffee got a big plug too (“second best consistent coffee in the US, according to Pete from Australia).

Anyhow, so instead of asking how people felt about the event, format, etc., the question was asked about what could be improved. This was all recorded, and will be made available through the Java Posse at some point. My suggestions included involving the people at home more. Since the Java Posse podcast has a large audience, of which only a tiny percentage actually attended, I feel like somehow keeping the people who couldn’t come involved would be a great way to build the community and keep events like this populated in the future. As it was, I think that when registration opens for Java Posse 2008, the event will sell out quickly.

For those of us who have attended several of these events, we’re cautious about changing much about the format. It works. Tread lightly so as not to break it. But one thing that a lot of people suggested was ancillary to the conference itself, and more personal in nature. It would be nice to be able to include the spouses and families in a more formal way. Bruce and I have talked extensively about arranging childcare in Crested Butte so that my family could come (without my husband being in a hotel room with 2 kids, staring off at the snowy mountains that he can’t ski). Others echoed this. Even for those who wouldn’t be bringing kids, it would be nice for the spouses to have a parallel board, where they could arrange activities among themselves. That really relieves the pressure on people who are feeling guilty about leaving families at home!

As it was, many of the spouses attended the lightning talks in the evenings. If there had been scheduled spousal activities, people felt that their spouses would have wanted to attend. I’m looking forward to that in the future, even if my spouse ends up being the only male in the group!

Java Posse Roundup: Day 3

Thursday, March 8

By Thursday, people were really getting the knack of open spaces conferences. Those who had held back in earlier days were right in the thick of things at this point. People were resisting the urge to lecture, and getting into the collaborative exchange of information that really gives Open Spaces its edge.

The first session of the day, for me, was on UI Design. Joe reminded all of us that it’s a huge mistake to have our data model reflect the UI design, and vice versa. Instead, it’s important to really drill down to what the user needs to do, and solve that problem from a user interface perspective (and to solve the data storage problem in a sound, but separate, way. Nods were given toward OmniSoft’s Graffle product, which sadly I can’t use because it only runs on the Mac.

Next, I attended a session that Tor had convened on nice looking fonts, typography, and pretty user interfaces. This was a bit out of my area of interest, and I had actually thought it was going to be a different session. I hung around for a bit and learned some things about font rendering (like that Java has its own font rendering engine, that Apple uses bitmapped fonts to ensure consistency in scaling, and that fonts look fuller on Macs and PCs than on Linux). I also learned that there’s a different gamma setting on PCs than Macs, by default. At some point, I realized that while this was interesting, I wasn’t really contributing and my interest had waned, so I exercised the Law of Two Feet (a tenet of Open Spaces).

The Law of Two Feet is “uncomfortable” to exercise until you get the hang of it. The idea is that it’s not only your prerogative to leave if you are not interested or participating in a conversation; it’s really your duty. The very presence of a bored or disinterested party brings down the energy of the group. By leaving, the overall energy increases because only those who are REALLY interested are in attendance. I probably would have left sooner, but that this session was in the lower level room and it was pretty comfy down there … complete with couches! Anyhow, I did leave and got some tea and relaxed until the next session. I could have joined another session in progress, but I decided I needed a break instead.

The last session of the day was on the GWT, and I was really interested in that. Robert Cooper has written a book on GWT, GWT in Practice, and he has an refreshing, pragmatic perspective. While he’s clearly a power user, he’s not afraid to say where Flex is stronger, and where GWT and Flex, working together, might offer some advantages.

GWT does play well with other Javascript libraries, like Scriptaculous, Yahoo UI, etc. More GWT wrappers will be available soon as well. Mostly, the toolkit works great for replacing desktop apps with web apps.

I have a friend who writes a lot of server side code and I pinged him when GWT was first released. He jumped on the bandwagon and has been effusive about it ever since. He loves GWT and finds the model very convenient.