Tag Archives: Java Posse

Looking ahead to the Java Posse Roundup (next week!)

The Java Posse is a group of guys (Dick Wall, Carl Quinn, Tor Norbye, Joe Nuxoll) who love Java enough to dedicate time to staying up on the latest in the Java world and reporting it for the rest of us.  I suspect that I'm not the only one who is only able to keep up on the news because of the time that these guys spend each week.  Two years ago, they teamed up with Bruce Eckel to host the first ever Java Posse Roundup Open Spaces conference.  Participants decided what they wanted to talk about, using the very lightweight process of placing a post-it note up on the conference schedule.  Voila! Conference born! The Posse (as we call them) was dubious at first.  Would people come?  Would they get something out of it?

The first year (2007) was a huge success, judging from the reactions of the participants and the posse.  We all learned a lot.  Friendships lasted beyond the week of Java immersion.    Everyone embraced the idea of making the conference their own, and lightning talks evolved in the evenings as well.

The second year (2008) saw previous year participants sharing houses, more lightning talks, and a pre-conference day discussing Android (which was hot off the presses last year). And, we added some workshops in the evenings as well.  The conference continues to evolve, and that's really the beauty of it.

This year, a pre-conference hackathon was added.  The pre-conference day is free to anyone who happens to be in the Crested Butte area on March 2, the hackathon will consist of a loosely organized set of houses, each sponsoring a different language on the JVM.  At the moment of this writing, Scala, Jython, Groovy (Grails, Griffon), and Fan have been identified. More may emerge (Clojure anyone?  JRuby?).  We'll kick of the morning with a short intro/orientation at the Posse House (a house in town where the Posse is staying), then quickly spread out to the various houses around town hosting different languages.  People will be free to move between houses/dojo sessions just as they are free (in fact, encouraged) to move about the open spaces sessions that will make up the main conference March 3-6.

I look forward to this conference all year. It's never the same, always fun, and always wickedly informative.  And yes, there's skiing too.  Each day during the week has time for participants to head off to go skiing.  Some people will choose to stay back and code on those days, or just hang out, but the ski hill does see a lot of geek talk that week as well!  I'm hoping to again ditch the ski hill in favor of skinny skis (nordic trails).  Each year so far, I've been successful in recruiting some people to go out with me.  Joe caught Tor crashing on camera last year … hilarious.

If you want to join us, you can still register at http://www.mindviewinc.com/Conferences/JavaPosseRoundup/.

 

Tail recursion in Scala and Annotations for Software Defect Detection

The Java Posse interview with Brian Goetz and Bill Pugh cleared up how Scala supports tail recursion in spite of the JVM's lack of support.  Brian Goetz did a great job of explaining that currently compiler writers have to build in the support (which Scala does) because the language doesn't support it directly.  He went on to explain that while there is support in the CLR for tail recursion, the F# compiler writers chose not to use it in some cases because they found that they could write a more optimal version by converting to iteration.  

The conversation was about changes that can be expected in Java 7, including JSR 292 ("Enhancements for Other Languages", aka "Invoke Dynamic"), JSR 305 (Annotations for Software Defect Detection), and JSR 308 (Annotations on Java Types).  

The discussion of JSR 305 (and @NonNull) reminded me of the discussion of contracts in a podcast on Microsoft Spec# that I listened to a few weeks ago. Scott Hanselman did an accompanying blog post as well. The FindBugs (static analysis) tool that Bill Pugh did is definitely a "must-have", and can already support annotions such as described above.  The JSR would simply provide a naming convention so that all tool makers and programmers could agree.  I had to look up Bill's annotation to see if it was "NotNull" or "NonNull", for example!

Note: JSRs (Java Specification Requests) are formal requests through the JCP (Java Community Process) for changes or enhancements to Java and the Java Virtual Machine.  This is an open process and participation is encouraged. 

  

What I learned on my (Memorial Day) “vacation”

Last weekend, an unexpected turn of events (that involve our dog and a box of Bisquick) left me at home, while my family headed off for a planned weekend away with our friends.  The time alone gave me a lot of time to catch up on things, including shopping (which I usually detest), home improvement projects, and podcasts.  I thought I would share a little of what I learned over the weekend, things that might be relevant to people who would read this blog.

Podcasts

I caught up on a lot of podcasts while I was sanding and staining our windows. The irony of listening to Java Posse podcasts while doing "windows" even amused me.  But anyhow, I caught up on a bunch of those podcasts, including the recordings they did while at Java One.  The BOF and CommunityOne recordings were fun to listen to.  It always seems to catch Dick by surprise that people actually show up. I don't think that he realizes the impact that the Java Posse has on its listeners.  I've said this before, but it's worth repeating.  The podcast really does a great job of giving people an idea of the breadth of things that go on in the community.  I also listened to their Java SE 7 interview with Danny Coward. That was interesting and relevant for anyone who wants to know where Java is headed.  Between JavaFX and the proposals for Java SE 7, there are a lot of things to keep in mind.

After I had my Posse fix, I listened to Scott Hanselman's Hanselminutes,  on Microsoft Research's new language Spec #.  Spec# started as a fork of the C# compiler and added language extensions that support contracts.  I really like Scott Hanselman's podcast.  He covers a wide variety of topics, and in spite of his new job at Microsoft, he doesn't strike me as a Microsoft Fanboy.  Rather, he has a grounded view of things.  I appreciate that.  In anyone.

I then listened to "The Evolution of Yahoo" on Stanford's Entrepreneurial Thought Leaders podcast.  This was recorded in the same week as the Microsoft/Yahoo buyout talks collapsed, and was an interesting perspective on where Yahoo is going.  If you think that Yahoo turning down Microsoft's offer was a mistake, this may give some insight into why the Yahoo people thought that their stock was undervalued, and where the company is going.   

Somewhere around this time, during last weekend, Jay Wren twittered about Software Showtunes, and so I popped over to listen to that.  TOTALLY amusing.  Well worth the time. Microsoft takes a bit of a beating, but Apple doesn't come away completely unscathed either.

I think that I wrapped up the podcast/staining windows fest with IT Conversations "High Performance Computing Considered Harmful", which really provoked a lot of thought. The fact is that scientists and engineers write a lot of code.  Computer scientists often turn their noses up at the tools that they use, like Matlab, when in fact that tool serves them very well.  In fact, my husband uses Matlab for a lot of simulations, and one of our employees (Anne) has been working on the ProjectEuler problems using Matlab.  One of our consultants (Alex) thinks highly of it as well.  The truth is that this tool lets them get their jobs done.  What do we snooty computer scientists promote?  Parallel simulations?   Seriously?  Most CS grads can't write a decent multithreaded or parallelized app and we ask scientists and engineers to do this?  I loved it when the guest on the podcast said that if a scientist comes to him and says that he's run into a timing issue, then we should all realize that we're failing as computer scientists.  In fact, he estimates that only about 10% of scientists and engineers even use version control, yet so much time, effort, and research dollars go into speeding up simulations that will only be run a few times.  There are a lot of interesting things to consider about this.  I'm still thinking … I'm sure that many more blog posts will be generated from the ideas bubbling around in my head.

Buying Services

On the non-technical side, a learned a lot too.  More than just the fact that a dog needs to go to the vet if he eats a box of Bisquick and that much more gets done on home improvement projects when the kids are NOT home. 

What I learned was to take advantage of services that people provide.  As I tell my kids, we choose our professions based what WE do best in life.  For example,  I don't want the woman who cuts my hair writing software (and she doesn't want me cutting hair), which is why I pay her to cut it.  But more relevant to the software developer community (I'll affectionately brand us all as geeks for this rant), we need to recognize that there are services that we SHOULD be taking advantage of.  For me, that's shopping.  I HATE HATE HATE shopping. OK, I'm fine with buying software and hardware, but is that really shopping?  More explicitly, I hate clothes shopping.  I have discovered a service which I think that many of us in the geek community should embrace: the personal shopper.  It's free.  Some department stores (I used Lord & Taylor) pay them to help people like me, who are inept shoppers, choose items to buy.  Yes, they get a commission, but that's payment for their expertise (by their employer!).

Much like the scientists and engineers who don't use version control because they don't even know it exists, how do you discover that you could benefit from a service that you don't even really know about?  I had previously stumbled upon this service as I wandered aimlessly about, looking for a dress for an event that I had to attend.  I happened to run into the personal shopper who took me under her wing, escorted me to "her" dressing room, and brought armloads of dresses for me to try on.  She did a much better job of selecting a dress than I had done, and I returned the one that I had previously bought and purchased one that even COST LESS.

OK, there's a point here.  I'm trying to let you know the process so that you, friendly geek, are not intimidated by the process.

Here's a summary of my personal shopping experience from last weekend.

  1. Call department store and make appt with personal shopper for the next day. She asked a few questions, like what I was looking for. 
  2. Show up. 
  3. Clothes in my SIZE were hanging in the dressing room, for me to start trying on (ordered by color, type, etc).  I was a bit overwhelmed by where to start, but she walked me through it (start at the right and move left).  She brought me a bottle of water and retrieved other selections along the way (different sizes, etc.).
  4. Try on clothes.
  5. Personal shopper helps decide what does/doesn't look good.
  6. Fork over the credit card.  Personal shopper even applied a coupon (I didn't need to have one with me).
  7. I left with a nice selection of clothes that GO TOGETHER and are updated for 2008. 

That's my kind of shopping.  I wouldn't usually expose my personal weakness (my complete lack of shopping abilities), but I figured that this was a public service.  I've seen how people dress in our profession.  We need to consider this as a cost of doing business. 

I don't know when I'll get another "vacation" like this.  I promise not to poison the dog as an excuse to get one, but he's fine and I learned a lot (and my husband and kids had a great time with our friends too).  Doesn't get much better than that. 

Technical Sessions at the Java Posse Roundup

I'm a month late in posting this, but better late than never.

The Java Posse Roundup was an Open Spaces conference in Crested Butte, CO.  It was held March 4-8, and this was the second (hopefully annual) conference.  The non-technical sessions, about which I already posted, were great, and the technical sessions were great too.  I didn't keep really great notes, because it's hard to take notes and participate at the same time, but here is my re-creation, from my chicken scratch.

The night before the conference started, most of the conference attendees were in town, so we got together at Bruce's house.  We badgered Dick Wall about Android, and he spent some time walking us through his application (WikiNotes), which has been (recently) open-sourced. 

Joe Nuxoll, of the Java Posse, convened a session on Component Based Systems.  Many different systems and libraries were discussed, including Swing, Flex, Boxley, and Thermo.  The consensus was (pretty much) reached that Swing is a library and is not component based.  Flex is component based.  Boxley is an AOL component based application development environment whose lead architect was hired by Adobe to work on Flex.  And Thermo is a design-oriented tool that provides the missing link between FlexBuilder and PhotoShop, allowing designers to build an application that a developer can drop into the production app.

Barry Hawkins convened a session on "Why is Agile Hard?" (note: audio released this week on the Java Posse podcast).  Barry is an agile coach, from Atlanta, and I always enjoy his sessions.  He always seems to come up with some good one-liners, that stick with me.  Like "Agile exposes the dysfunction endemic in software development, whereas other approaches mask it".  He also pointed at some great sources for future "research", including Scott Ambler and Kevlin Henney's podcasts at Parleys.com.  Also Alistair Cockburn's podcast on IT Conversations: Agile Software Development, and of course  Mike Cohn's blog "Succeeding with Agile". A few people who participated in the discussion were looking for answers about how to bring agile into an environment which is hostile to it.  The consensus of the discussion is that until the business respects agile, you're giving up a lot of the benefits, but there are some benefits that can be gained by heading in that direction.  Another reference that came out of the discussion was the book "Waltzing with Bears: Managing Risks on Software Projects".

I think that it was Ophir Radnitz who convened a session on "What does Scala Need".  Many people were interested in Scala at the Roundup (myself included), and this was a lively discussion.   It ranged from how to leverage what we already know (about Java) for Scala to what it will take for the language to be successful.  Toward that end, the group determined that books, community, and tools were important to success.  The books are getting there, with Martin Odersky's Programming in Scala book and others likely on their way.  Community is building both at artima.com and scalax.scalaforge.org. The plugins in development for Eclipse, NetBeans, and IntelliJ's IDEA will help a lot with adoption.  It's hard, these days, to learn a language without code completion. Sounds silly, but I doubt that I'm the only one who has started to depend on that support.  During the session, Carl Quinn and Tor Norbye came to an agreement to work together to help advance the NetBeans Scala plugin.

One nice thing about Open Spaces conferences is the ability to mold them to fit the needs of the actual attendees, at the event.  Last year, there was a discussion about how cool lightning talks are in other environments, and so we added lightning talks to the Roundup.  This year, people wanted to go a bit more in depth on some issues, so we added some very informal workshops.  A few people were worried that the workshops didn't fit the model of Open Spaces, which are interactive, but there really wasn't a conflict.  People who were interested in the workshop format showed up!  Others did not.  Joel Neely and I did a workshop on Scala for Java Programmers, followed by a several hour Scala hacking session the next evening, where we worked on a functional implementation of a problem that we had come across.  You can read more about how far Joel has taken this on Joel's blogChet Haase did a really cool lightning talk where he demonstrated how he was able to implement some of the examples from his Filthy Rich Clients, but in Flex.  We wanted to know MORE so we recruited Chet to do a workshop to do a deeper dive on this.  It was fantastic.  I think that his blog will serve as great reference material for building apps in Flex.

I think that we will see an increase in workshop time at future Roundups, if the attendees want them.  We slid these into the dinner time, after the ski hill closed and before the lightning talks started.  It was time that people were using to socialize anyhow, and it fit well into many schedules.

 Once again, the Java Posse Roundup is over for another year. I had a blast, and learned a lot.  I met some really great people, and also enjoyed seeing some familiar faces.  I'm already looking forward to Roundup '09.

 

Matrin Odersky interview on Scala on the Java Posse

I was just loading up my iPod for my Friday night workout and I was hoping for a new Java Posse podcast.  I'm in the habit of listening to podcasts rather than music while working out.  The time goes quickly and I learn something.  The only downside is that it's not good at ALL for taking notes.  But come on, who takes notes with podcasts anyhow?

So what do I see, but a new episode AND it happens to be an interview with Martin Odersky about Scala!  COOL! 

 So, in the final weeks before my Scala talk at CodeMash, I'm thrilled to see a Scala eBook released and to have this interview come out as well.  Good timing for me.

 Anyhow, so off I go to the basement where we have a Smooth Fitness elliptical.  Having something like this at home is essential, IMO, for parents.  Kids are in bed.  Husband is out finishing up the Christmas shopping (good man!).  If not for the elliptical, I would be in front of the TV … or the computer (oops, wasn't I going?).
 

Both Android and Guice at CodeMash!

I'm happy to report that Dick Wall will be speaking on Android as well as Guice at CodeMash.  These should be highly technical talks.  Dick is co-host of the popular Java Posse (http://javaposse.com) podcast and a developer advocate on the Google Developer Programs team.

Dick has already submitted a sample Android application to the Android Developers Blog.  He has also written articles on Testing with Guice and Squeezing More Guice from your Testing with EasyMock.

I'm definitely looking forward to these talks!
 

 

Events, podcasts, etc.

It's not just Art Fair this week

Yes, it's Art Fair week.  Townies know to avoid driving into Ann Arbor unless they're actually GOING to Art Fair.  I have a meeting on Wednesday, so I'm riding my bike from the outskirts of town.  Usually, our friends Melissa Dominiak and Micheal Cole come in to do Art Fair, but this year, they're skipping it, so I am too.  They have an ultra cool gallery in Hannibal, MO now, a renovated church. We were there last October.  The home of Mark Twain, it now has a thriving artist community.  Who'd a thunk it?

Anyhow, other than Art Fair, there are still things to do! GANG (Great Lakes Area .NET User Group) has Julie Lerman coming in to talk about ADO.NET.  Bill blogged about her visit, and it's on our calendar as well.  And as Bill points out, if Lansing is closer, she's speaking at GLUGNet on Thursday as well.

And I discovered a new podcast, thanks to a member of the Java Posse Google Group (thanks Patrick Archibald!).  The Software Engineering Radio Podcast is available on the SE Radio website and on iTunes.  This week's podcast is an interview with Martin Odersky, creator of Scala.  It's queued up and I'm looking forward to listening!

Still waiting on the Google web team to send us the link for the registration for the Google Tech Talk in Ann Arbor on August 2.  Hang in there!

Hannibal Arts Council
Micheal and Melissa's gallery is listed here
Software Engineering Radio Podcasts

Bill's blog entry on Julie Lerman's talk
Julie's speaking this week at GANG and GLUGNet

Immersing Students in Research Projects

NSF and Oakland University's REU program

Yesterday, I had the pleasure to speak at the Oakland University REU program, for Computer Science students. The program is funded by the NSF to encourage students to pursue graduate programs and careers in computer science.

Students participate from around the country in this 10 week program and it sounds quite interesting.  One of the groups is doing some biochemistry/neural net research toward drug discovery.  I was surprised to see that the students even receive a stipend to participate in the program (as well as a travel subsidy and housing).  I would definitely encourage college students to apply! 

Yesterday's program brought in several professional women to discuss, in particular, women in computer science fields.  The speakers were all quite different, so I think that the students got a well-rounded view of the industry, from small companies like mine to large companies like Dow Chemical, all of the way to what it's like to direct a university's IT department to what Post-Docs do.   Sadly, I had to miss two of the speaker's presentations, but it was an interesting day.

I talked about my journey to becoming an entrepreneur and how unlikely it seemed to me, when I was a student that I would have my own company. I feel like I'm quite risk averse, but I've really learn to accept the risk that comes along with working in my own business as ME being the one who is managing the risk rather than being at the mercy of my boss (who may or may not be truthful with me about the financial status of the company).

I also talked about how I try to stay current, focusing a lot on podcasts and blogs.  I told the students about some of my favorite podcasts (all are available for free on iTunes, but also on websites).

  • Stanford Entrepreneurial Thought Leaders, for business advice
  • The Java Posse
  • DotNet Rocks
  • IT Conversations

I also really encouraged the students to become involved with user groups in their area (and hoping that one of the students comes out for the July meeting of the Python User Group).  I told the students that in the Ann Arbor area, our user groups are suffering from an aging demographic and that we all feel that we would really benefit from some younger opinions and participation. I know that it's intimidating, but I got some feedback about how to welcome students.  I will likely approach the Ann Arbor Computer Society about doing a program geared toward students and heavily advertise it at the local colleges and universities.

Most of the other speakers discussed work/life balance, which always seems to be a topic at these events, as it was at MICWIC earlier this year.  With 2 young kids at home (ages 2 and 4), this is a work in progress for my husband and I.  The only advice I can offer to students in that regard is to choose their spouse wisely.  Thankfully, I did that right.  One of the participants commented that it didn't seem like any of us had any "down time".  I assured her that I had plenty of down time before the kids were born!  For me at least, it's not the job, but the kids (but they're fun in a totally different way).

We had lunch at the gorgeous Meadowbrook Hall, where photos are prohibited.  There are photos and history on their web page.  If you're in the Detroit area, and haven't visited Meadowbrook, it's definitely worth the trip.

Anyhow, the students were great and I really think that they did a good job with the Women in Computing Day.  By pairing each speaker with a student, they gave each student the opportunity to participate in the process (through introductions).  I hope that they had a good time; I certainly did.

Oakland University's REU program

Meadowbrook Hall, on Oakland's campus

Brooklyn Bridges Program
Brooklyn College in City University of New York (also NSF funded)

Carly Fiorina on Entrepreneurial Thought Leaders podcast

I recently learned about Stanford's Entrepreneurial Thought Leaders podcast (on the Java Posse podcast: thanks Tor Joe!), and downloaded a few episodes to my iPod.  I swear, dog walking has NOT been the same since I got the iPod.  Sometimes I extend my walk because I'm enjoying the talk so much that I don't want to head home (or back to work).  Today was one of those days, in spite of the fact that it was raining.

Anyhow, today's speaker was Carly Fiorina, former CEO of HP, and Stanford alum.  She studied medieval history and philosophy at Stanford as an undergrad.  She talked a bit about her windy, twisty career path, and it was quite interesting.  I have to say, I would have never guessed that she was a secretary as her first job out of college, before her MBA!

The entire talk is great.  The first 40 minutes or so consist of her speaking.  After that, there's a Q&A session with the audience (another 30 minutes).  If it takes too much out of your day to listen to the entire episode, definitely listen to the first 40 minutes.

The highlight for me was in her describing leadership.  She talked a lot about it being a personal choice.  Anyone can choose to be a leader, and make a difference. It's not always those who seem to be in the best position financially, or status-wise, that make leaders. Often times, those people don't choose that route, whereas someone that you would expect to be unempowered to make a difference stands up and chooses to do so.  She compared some Harvard grads in her age group who seemed unable to determine what it would take to make a difference to a soldier, recently back from Iraq, who had lost both legs and his eyesight.  It was the 20 year old soldier who was incented to make a difference, in the lives of other people who had been injured and not the Harvard grads who, seemingly, had "everything" going for them.

She described some key aspects of a leader:

  • Capability
  • Collaboration
  • Character

It takes all of these things.  It struck me that the times in my life when I have been most disappointed in situations where I met someone who I thought was a leader, were when the person violated one of the these principles, specifically the latter two. From a collaboration standpoint, either they don't know how to "ask questions and LISTEN to the answers" (as Carly put it) or they don't seek out people with differing viewpoints and learn from people with varying experience.  Or, they fail in the character category by not treating people well.

If you have a chance to listen to this podcast, definitely do so (and feel free to post comments; I would love to know what others thought). I'm looking forward to the other talks in the Stanford Entrepreneurial Thought Leaders series and I hope that I will be as thrilled with them as I was with this.   The dog will enjoy them too, I'm sure.  Anything that prolongs his walk makes him happy.

Stanford Entrepreneurial Thought Leaders podcast
(also available on iTunes)

Eclipse for SWT Development

Review/notes from May 1 meeting

On Tuesday, May 1, Carlus Henry from the Grand Rapids Java User Group, presented "Eclipse for SWT Development" at the Ann Arbor Java User Group.  He declared himself an Eclipse Enthusiast.  He drew a distinction between an evangelist and an enthusiast and declared that evangelists get paid for their admiration and enthusiasm!

In any case, he was definitely enthusiastic about both SWT (Standard Widget Toolkit) and Eclipse.  Since I use Eclipse, but all of my GUI building has been in Swing, so I was really interested to hear more about SWT.

SWT is pretty famous for its ability to maintain the native look and feel, and performance, by harnessing the JNI (Java Native Interface).  I recently met Josh Marinacci, of the Swing team, and I've seen what really cool things can be developed with Swing, so I definitely think that Sun is not sitting on their hands in this regard.  Over at SwingLabs, there's some very cool stuff to look at, including the Nimbus Look and Feel. 

SWT is used for Eclipse plugins and RCP (Rich Client Platform, for which SWT is the widget toolkit).  Eclipse itself is written using RCP.  One disadvantage of SWT over Eclipse is in terms of Resource Management.  Native calls mean that managing resources become the programmer's responsibility, specifically.  The parent-child relationship (tree structure of widgets) does make this easy, but you have to know to manage it.

From Carlus' demo, I didn't feel that the layout was any less cumbersome in SWT than in Swing, just different, and so an additional learning curve is required on top of Swing layout management, if you already understand that.

I didn't leave the meeting hot to try SWT any time soon.  Honestly, with what I've seen Josh and SwingLabs doing, I'm really pleased with the new things that you can accomplish in Swing, and I'm looking forward to seeing the screencast from his "just 1 line of new code" at JavaOne this week.

It took me a while to get this review out, and in the meantime, IBM pulled its support for the Visual Editor in Eclipse (GUI builder for SWT applications).  I'm left wondering what that means, especially considering Matisse is such a full featured editor for Swing development (see *** Wall (of the Java Posse)'s article on using Matisse)

I really enjoy meeting Carlus.  He's an excellent speaker and I look forward to hearing him speak again sometime soon.  He's also heavily involved in the software community in Grand Rapids and he and I have promised to share resources to do what we can to promote software development, share JUG speakers, etc. in Michigan.  And I sure hope that Carlus sends an abstract for CodeMash 2008!

SWT

Eclipse

SWT Visual Editor: Dead?

Swing Labs

NetBeans 5.5

NetBeans Milestones downloads