Posted by cayhorstmann
on June 4, 2009 at 9:17 PM PDT
It's day 3 at Java One, and I report on Second Life, a JavaFX+REST lab, "it's not your father's von Neumann machine", Scala actors, and--an annual tradition--the packrat script for downloading all slides.
Like every year, I offer a quick script for packrats who want to download
the slides for all the talks. Of course, you can just wait for them to become
available online after the conference, but then you'd not be a true packrat.
curl -d ilc=230-1 -d ilg=English -d is=y http://www28.cplan.com/cc230/sessions_catalog.jsp > index.html
for f in `grep -o "/[^/]*.pdf" index.html` ; do curl -u contentbuilder:doc789 -o cb_export/$f http://www35.cplan.com/cb_export/$f ; done
This script improves upon last years—point your browser to index.html,
and you get a page with all the talk names and links to the local PDFs. For
extra credit, figure out how to add the paperclip.
Hooray--no keynotes today. (They were there, but I wasn't.) My day started
out with a "Second Life" session with David Geary. It was weird but kind of
fun. Here are
slides, and here are David (in the middle of the podium) and myself (to the
I went to a lab in which I built a "JavaFX client-server application with
Jersey and REST based web services" in 100 minutes, which is pretty good given
that I have never used either Java FX or JAX-RS.
JAX-RS is definitely very nice--thanks eduardo for pushing me to check it
out. Java FX was better than I thought. Of course, they gave us a pre-made
component with the nifty effects (a pie chart with animated slices). I noted
that Java FX now has a bunch of standard effects, like "glow" and "distant
light". That kept the code clean and manageable.
The lab stuck to the easy part--reading data from the server. I would have
liked to have an enhancement where cli king on a slice modifies the data on the
server, but the course author said that was pushing the 100 minute limit.
I like to run hands-on labs in my own classes to make sure that my students
get a good amount of practice and have someone there when they need help. It's
always a big hassle, with students' hardware and software configurations
failing in exciting ways. Well, the lab attendees--who looked like
professionals--didn't have a better track record than my students, keeping four
Sun people scurrying from one machine to the next.
Kito Mann gave a nice talk on writing composite components with JSF 2.0.
This feature is definitely a crowd pleaser. Also check out
Cliff Click and Brian Goetz's talk "Not Your Father's Von Neumann Machine"
gave a crash course on modern hardware. I thought I know nothing about
hardware--whenever the hardware courses come up during faculty meetings, I lose
my customary loquacity for fear of embarrassment. Cliff and Brian talked about
instruction pipelining, parallelism, speculative execution, and branch
prediction. Hey, I knew that. Multicore memory caches. I knew that. And that
was pretty much it. Ok, I learned something new about chip-level
multithreading, but the idea is pretty simple. I guess I'll speak up at the
next faculty meeting and ask why my students seem to be stuck with the von
Neumann architecture. Check out the slides when they become available--they are
Finally, I went to Phillip Haller's and Frank Sommers' talk on Scala actors,
which didn't have a huge audience but a very long Q&A period. Here is what
- Twitter is using Scala actors for their messaging system.
- It is a good idea to spawn new actors whenever some operation might
block. The more, the merrier.
- You can have > 100,000 actors per VM.
- "Event based" actors do not consume a thread when they are waiting.
!? operator is nicknamed the FTW operator. (Chuckles
from the caffeinated part of the audience.)
Overall, it was a pretty satisfying day at the conference, but it doesn't
make for a thrilling blog. Did I miss something exciting? If so, please