The Artima Developer Community
Sponsored Link

Java Buzz Forum
Day Two of Strange Loop 2009

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Weiqi Gao

Posts: 1808
Nickname: weiqigao
Registered: Jun, 2003

Weiqi Gao is a Java programmer.
Day Two of Strange Loop 2009 Posted: Oct 23, 2009 10:34 PM
Reply to this message Reply

This post originated from an RSS feed registered with Java Buzz by Weiqi Gao.
Original Post: Day Two of Strange Loop 2009
Feed Title: Weiqi Gao's Weblog
Feed URL: http://www.weiqigao.com/blog/rss.xml
Feed Description: Sharing My Experience...
Latest Java Buzz Posts
Latest Java Buzz Posts by Weiqi Gao
Latest Posts From Weiqi Gao's Weblog

Advertisement

St. Louis, MO, Oct 23—Continuing my coverage of Day One of Strange Loop 2009, here are today's happenings.

The sessions started at 8:00am. The first session I attended is Ken Sipe's The Shiny New Spring Thing. Ken has given this talk at the St. Louis JUG back in February, but I want to get the most up-to-date information. Ken's main theme is "industry forces are driving us to annotations" and emphasized that Spring 3.0 will support all industry standard annotations plus Spring specific annotations. Ken went through a laundry list of new features in Spring 3.0, including the new MVC annotations and Spring EL.

Twittable quotes: The Spring MVC guys, they apologized for their earlier MVC; The new Spring MVC is very grails-like, I can almost do it in vi without the help of an IDE; Unlike Sun, "deprecated" really means something to SpringSource—old stuff will be removed. Struts and MVC classic will be gone.

I have heard Matt Taylor's talk about JQuery on a previous occasion. So the second session I attended is Stefan Schmidt's Extreme Web productivity with Spring Roo. I know nothing about Spring Roo when I went in the room. When I got out, I'm confident that I, too, can write a Spring MVC web app in 45 minutes if I download the 4MB Spring Roo and use its command line Roo shell. Stefan emphasized two features of the Roo shell: context sensitive tab-completion, and workflow-aware hints. At least half of the time is spent in the Roo shell, and Stefan essentially tab-completed his way into a complete crud web app with the SpringSource-Green theme.

It's like Grails but generates a Java web app instead of a Groovy web app. I kind of appreciate the helpful hand that Roo offers me, because without it, it would certainly take me more than 45 minutes to figure out where the applicationcontext.xml lives, let alone creating a working application.

Behind the scenes, Spring Roo uses the JLine library to offer its intelligent tab-completion and hinting magic. The generated code includes Java code with Spring MVC and Spring Roo specific annotations, and AspectJ aspects. The Spring Roo shell continuously watch the files for modifications (which you can do, for example, in Eclipse) and regenerate the aspects accordingly.

For the third session in the morning, I went to Michael Galpin's Mobile Development 101: Developping Apps for the iPhone and the Android Platform talk. This is a high-level talk about the iPhone and the Android platforms with the exception of the small excursion into Objective-C syntax. Michael went over things like "no garbage collection", "mobile Safari leaks memory like crazy", "the App2App custom URL protocol hack", "QA provisioning", and "App Store horror stories".

Twittable quote:XML is probably the worse format you can use for anything.

For lunch we had Quizno sandwiches. I managed to make a bag of Sun Chips explode.

There are two panel discussions at lunch time: Distributed Work Environment and Programmers Turned Entrepreneurs. I went to the latter. It's an interesting discussion. Two things made an impression on me. First, about programmer's indecision on whether to start a start-up, a panel member said "Keeping your current job is a decision, a decision not to start your own business." The second is a story Matthew Porter told the audience, in which he overheard two of his employees chatting about a problem in some code. One of them said "we don't need to talk to Matt, he's the CEO and is not technical." Matt has to refrain from the urge to get into the code and walk away because coding is not his role anymore.

The first afternoon session I went to is Bob Lee's The Ghost in the Virtual Machine: A Reference to References talk. As always with Crazybob's talks, this one is too hard to summary in English prose. It's a trip to the Java language garbage collection spec and painstaking detailed analysis of some of the usage scenarios of Soft, Weak and Phantom references in Android core libraries. Details that, according to Kyle Cordes, ordinary Java programmers would gloss over and solve the memory leak problems with added RAM and a scheduled reboot.

I took notes of a couple of pieces of the code for your puzzling pleasure:

Q: Can the referenced T be garbage collected at the indicated line:

T f(WeakReference<T> ref) {
  T t = ref.get();
  if (t == null)
    throw new NullPointerException();
  // ?
  return ref.get();
}

Q: Guess what the following incomplete code does:

new MapMaker()
  .weakKeys()
  .softValues()
  .makeComputingMap(...)

The second afternoon session I went to is Alex Buckley's Modularity in JDK 7 talk. I missed this talk at JavaOne. So here's my chance to catch up. I assume everyone who should be enthused by this topic have already heard of seen the details. One aspect of the talk is about how difficult it is to modularize the existing JDK class library (rt.jar).

One fun fact shown is the composition of rt.jar: 33.10% methods, 63.94% constant pool including 56.3% UTF8 strings.

One aspect of the JSR 294 module system is the elimination of the classpath command line parameter (The CLASSPATH is dead!) and the introduction of modulepath command line parameter.

The conference closed with the Friday keynote by Alex Payne, API lead at Twitter. Alex lead the audience into the theme of the keynote "Minimalism" through a series of paintings of artists from turn of the 20th century up to contemporary time, and introduced the notion of Minimalist arts as the reduction of arts to its rudiments.

Turning to programming, Alex poses a series of questions starting with "Where do we learn how to do what we do?" He then pointed out the often used software as physical architecture metaphor is leading up to complexity, which makes software slow, programs insecure, jobs harder, and users unhappy.

The way out, according to Alex, can be achieved through techniques such as unification, constraint, and reduction.

As an example of unification, Alex pointed out the homoiconicity (the unification of code and data) of Lisp, machine code, Lua, Factor, etc.

As an example of reduction of abstraction, Alex quoted Ken Thompson, the inventor of Unix, as saying "I think the major good idea in Unix was the clean and simple interfaces: open, close, read and write."

As examples of constraint, Alex mentioned the constraint of project scopes, hardware limitations an operational requirements. Alex emphasized the importance of a great extension architecture.

Alex then asked a series of questions: "Is it still valuable if simplicity only exists on the surface?", "Would simplicity be useful if complexity worked better?", "Is it possible to deliver minimalist software that meets all needs?"

All thought provoking questions.

The conference ended with Alex Miller's "See you in Strange Loop 2010!" and the request that attendees turn in their evaluation sheets _and the plastic badge holder_.

Yeah, it's that kind of a conference.

Seriously, most people I talked to at the conference think this is a wonderful conference and would like to come back next year.

Alex Miller did a tremendous job in organizing this conference.

Thank you, Alex!

Read: Day Two of Strange Loop 2009

Topic: Comcast to roll out free online access to cable TV shows, movies by year's end Previous Topic   Next Topic Topic: Reminder: Follow us at our new location!

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use