Last weekend, we held our October Dev Brunch in the rooms of our company. This posting is the follow-up, summarizing the topics and providing additional information.
The Dev Brunch
Let me start by introducing the concept of a “Dev Brunch” as we perform it. Once a month, we spend nearly half a day of the weekend by meeting and talking about topics related to software development. The meeting starts at perfect brunch time, everybody brings along some brunchable food and the party begins.
Everybody who attains the Dev Brunch has to prepare a topic to tell about. We set a limit of 15 minutes for the talk and unlimited time for questions and discussion. We elect a moderator, though, to bring us back on course when we disgress too much.
To prepare a topic isn’t hard work. No slides are required, no written handout or code examples. You just have to work up a topic to fit it into 15 minutes.
The October 2009 Dev Brunch
The topics of this session were:
- Java’s upcoming Fork/Join framework – Java 5 brought the util.concurrent classes, Java 7 will bring the Fork/Join framework to further ease concurrency in Java.
- The current status of JIT on mobile devices – the tagline was “why is my Android phone so slow?”. This talk even included slides!
- Project estimation with planning poker – the talk gave away the secrets of planning poker and even more secrets of how to sell it to the management.
- Pitfalls of unit testing Spring infected code – Developers often mix up the framework with its concepts. The example given was dependency injection (concept) vs. Spring (framework).
- First impressions of Scala – Tales of a first contact with Scala from a Java developer.
Several talks included bonus material that will be provided in the comment section of this blog posting. Most material will be in german, as were the talks. But to ease our international readers: most links within the bonus material point to english articles.
Stage your own Dev Brunch
We cannot stress this enough – holding your own Dev Brunch isn’t complicated but very valuable. Just invite your mates and bring food. Once you started, you’ll attract other developers from your vicinity and get to know them in an informal manner.
Bonus material to “The current status of JIT on mobile devices”:
1. Android
———-
Q: Warum hat Android (noch) keinen JIT-Compiler [1]?
A: Besonders die Antwort [2] des Dalvik Inc. Mitarbeiters gibt
Aufschluss.
Q: Hat schon mal jemand nachgemessen – gibt es Benchmarks der DalvikVM?
A: Ja hier: Geschwindigkeit von DalvikVM-Code und nativem Code [3].
(interessantes Paper am Ende des Artikels [4])
Sehr interessante Fakten [5] zur Dalvik VM von John Rose, einem Sun
Mitarbeit und VM-Experten der sich mal mit den Google Jungs unterhalten
hat!
[1] http://groups.google.com/group/android-framework/browse_thread/thread/bef4f5f588aef15f
[2] http://groups.google.com/group/android-framework/msg/683caf5166b6d342
[3] http://code.google.com/p/android-benchmarks
[4] http://www.springerlink.com/content/m0136q318k2p4361
[5] http://blogs.sun.com/jrose/entry/with_android_and_dalvik_at
2. JIT-Compiler People
———————-
Mensch mit Ahnung von Java-JIT-Compiler-Problemen: Dr. Christian Wimmer
[6]. (Hat einige sehr aktuelle und interessante Paper!)
Unter anderem hielt er einen Vortrag [7] auf dem JVM Language Summit
[8]. Er ist Doktorand von Prof. Michael Franz [9], aus dessen Gruppe
auch die Cell- und Maxine [10] VMs kommen.
Ebenso war auch Thomas Wuethinger [11] an der Maxine als Praktikant bei
Sun beteiligt. Er kommt aus der Gruppe um Prof. Mössenböck [12].
[6] http://www.christianwimmer.at
[7] http://wiki.jvmlangsummit.com/Trace-based_JIT
[8] http://jvmlangsummit.com
[9] http://www.ics.uci.edu/~franz
[10] http://research.sun.com/projects/maxine
[11] http://wuerthinger.net/blog
[12] http://www.ssw.uni-linz.ac.at/General/Staff/HM
3. Maxine and Friends
———————
Maxine [13] ist neue (Open Source seit Juni 2008) Forschungs-VM von Sun.
Sie erzeugt mittels des JIT-Compiler C1X [14] aus Java-Bytecode
– zuerste einen Zwischencode (Intermediate Representation, IR) [15] in
SSA-Form [16]
– und dann x86-64 Maschinencode.
Q: Kann man C1X als JIT ind die Dalvik-VM integrieren?
A: Google results on “C1X Dalvik” = 6 (5 Japanese + one hit in code
where C1X denotes a parameter)
Maxine hat hat “guten Freund”: GuestVM [17] = JavaVM auf Xen Hypervisor
[13] http://wikis.sun.com/display/MaxineVM/Home
[14] http://wikis.sun.com/display/MaxineVM/C1X
[15] http://en.wikipedia.org/wiki/Intermediate_representation
[16] http://en.wikipedia.org/wiki/Static_single_assignment_form
[17] http://research.sun.com/projects/guestvm
Slides to “The current status of JIT on mobile devices”:
Click to access 2009-10-18_schneidebrunch_slides_je.pdf
Bonus material to “First impressions of Scala”:
Hallo Zusammen,
wie angekündigt hier eine kleine Linksammlung zu meinem Vortrag mit etwas mehr Hintergrund und Features von Scala:
Super Überblick über die Features:
http://www.naildrivin5.com/daveblog5000/?p=179
Zum Thema Properties in Programmiersprachen, welches ich erwähnt habe und was in Scala direkt in der Sprache umgesetzt ist gehört diese Theoretische Grundlage von Bertrand Meyer (Eiffel-Erfinder):
http://en.wikipedia.org/wiki/Uniform_access_principle
Start einer 4-teiligen Artikelserie zu Scala etwas länger als der c’t Artikel, aber auch nicht sooo viel:
http://it-republik.de/jaxenter/artikel/Scala-veraendert-die-Java-Welt-2318.html
Interessante herangehensweise an Tests in Scala, hatte ich erwähnt, aber noch nicht wirklich ausprobiert.
http://scalatest.org/
Genauso Lift als Webframework, welches toll sein soll, jedoch auch noch nicht ausprobiert:
http://www.liftweb.net/
Das wars glaub ich.