Here are the few highlights from the talks that I attended today:
TS-5428 Java Technology Meets the Real World: Intelligence Everywhere.
This talk is about pervasive computing (a.k.a ubiquitous computing) with products from Sentilla. There was an interesting demo about humidity sensor detecting changes and sending a message to a host. The "motes" run CLDC 1.1 VM (+ proprietary profile for motes). These motes have ports for sensors and actuators and some built-in sensor. There were many interesting suggestions for embedded programming for such small devices (don't allocate in inner loops and there by leading to to GC kick-in, avoid too many static fields, avoid threads whenever possible and so on).
TS-7575 Using Java Technology-Based Class Loaders to design and implementing a Java platform, Micro Edition
The basic idea is to run JavaME applications (developed for different configurations/profiles/subsets of optional packages) on top of JavaSE. The extended JavaSE classes and packages not available in specific profile or optional package set [implemented by a specific phone] should not be made available to JavaME apps targeted. i.e., only the classes available to a specific phone model should be available. If the JavaME app tries to access any other class, it should receive ClassNotFoundException. The speakers explained how to achieve such "containers" by class loader based isolation. The problem is that they seem to solve only the class access. What about extended methods and fields? For example, platform core classes on JavaSE have superset of methods [more methods on the same class available on JavaME - eg. java.util.Hashtable has more methods on JavaSE). The application classes have to bytecode analyzed and instrumented to take care of field/method accces. It seems that their current product that does not address this yet.
PAN-5542 Developing Semantic Web Applications on the Java Platform.
The discussion started with some nice demos. There was a demo with AllegroGraph RDF store, Twine, a demo with using GRDDL and getting RDF triples by a proxy server. i.e., a proxy serves does the GRDDL transformations to get RDF triples from sites [which could be stored/analyzed with RDF stores subsequently] and a demo with FOAF files. Interesting take aways from the discussion include:
Today Bill, Chihiro, Jaya and I talked on Blu-ray. The talk was centered around the open source project @ http://hdcookbook.dev.java.net - a library and a set of tools to build Blu-ray discs. If you haven't checked out code/docs, you may want to checkout and play with the code. All you need is a laptop with blu-ray drive and a BD-RE disc. Optionally, for added fun you may want to have a hardware bluray player such as PS3 -- so that you can see the output on your TV rather than on a laptop. Other than the session, we also had a very informal BOF on blu-ray, OCAP etc. during the evening. It is good to meet experts in respective technologies in one place!
Other than the the blu-ray stuff, I did attend other talks/BOF. Just after Blu-ray session, I attended "TS-6000 Improving Application Performance with Monitoring and Profiling Tools" talk. This talk was about OS specific tools, JDK tools and third-party tools for profiling and monitoring. Gregg Sporar and Jaroslav Bachorik (NetBeans Profiler team) presented very well. There were many interesting questions/discussions as well. If you haven't done so already, you may want to download VisualVM. If you want bit more fun doing monitoring/profiling, you may want to check out the sources from http://visualvm.dev.java.net and build it yourself. You can build BTrace VisualVM plugin using the command:
c:\visualvm\plugins>ant build
assuming you have checked out VisualVM sources under "c:\visualvm". If you have already checked out BTrace sources under some other directory, say "c:\btrace", you can use
c:\visualvm\plugins>ant -Dbtrace.home=c:\btrace build
To run VisualVM with all the plugins that you built, you can use the following command:
c:\visualvm\plugins>ant -Dbtrace.home=c:\btrace run
Please let us know what features you'd like to see with BTrace and/or BTrace VisualVM plugin.
I attended and liked the "Class Loader Rearchitected (BOF-6180)" BOF. If you have ever written class loaders, chances are that you have faced mysterious deadlocks or ClassCastException that said "ClassCastException: Foo cannot be cast to Foo" or having to decide between overriding loadClass and findclass, you probably should have attended this talk and gave your opinions/suggestions/ideas
If I understood properly, I think there was a suggestion to add class loader info. to the ClassCastException (something like class-loader-class-name@identity-HashCode style string?) so that one can quickly see it is a class loader issue. Also, there were many questions on loading classes from jar files. Looks like there will be changes to class loader API and class loading in VM for JDK 7.
In today's sessions that I attended I liked the following:
JRuby: Why, What, How... Do It Now
This talk is a good introduction to (J)Ruby the language and important applications of (J)Ruby. And many pointers to related (J)Ruby sessions. Nice summary!
JavaScript programming language: The Language Everybody Loves to Hate
great talk by Roberto Chinnici. Nice summary of functional and prototype-based object orientation aspects of JavaScript. You can easily impress your friends will some neat snippets of JavaScript
You may want to continue the fun by reading Doug Crockford's pages, if you have not do already!
At 7.30 PM, we (I and Kannan) talked about BTrace. There were many interesting questions/discussions -- both during and after the BOF! Today (Wed May 7) will be a Blu-ray day -- it starts with TS-5449 Java Technology for Blu-ray and TV: Creating your own Blu-ray Java Discs session. It is about the open source project @ http://hdcookbook.dev.java.net. Meet you all there!
In JavaOne 2008, there are many intesting sessions on "other" JVM languages covering both dynamically typed languages (JavaScript, Groovy, JRuby) and statically typed languages (JavaFX, Scala). As usual, there are many sessions covering application aspects -- like using scripting on Glassfish, Grials (Groovy), Rails (JRuby) and so on. But, my interest is mostly on the programming language aspects and JVM implementation issues. Here is a table of sessions covering those:
|
Session ID |
Session Title |
Session Type |
Speakers and Company |
Speakers and Company |
Venue - Room |
|
|
|
||||||
|
TS-5152 |
Overview of the JavaFX™ Script Programming Language |
Technical Session |
Christopher Oliver, Sun Microsystems, Inc. |
Tuesday |
Moscone Center - |
|
|
TS-5416 |
JRuby: Why, What, How...Do It Now |
Technical Session |
Thomas Enebo, Sun Microsystems, Inc. ; Charles Nutter, Sun Microsystems, Inc. |
Tuesday |
Moscone Center - |
|
|
TS-4794 |
A JavaFX™ Script Programming Language Tutorial |
Technical Session |
James Weaver, LAT |
Tuesday |
Moscone Center - |
|
|
TS-4986 |
JavaScript™ Programming Language: The Language Everybody Loves to Hate |
Technical Session |
Roberto Chinnici, Sun Microsystems, Inc. |
Tuesday |
Moscone Center - |
|
|
PAN-5435 |
The Script Bowl: A Rapid-Fire Comparison of Scripting Languages |
Panel Session |
Guillaume Laforge, G2One, Inc.; Charles Nutter, Sun Microsystems, Inc. ; Jorge Ortiz, Stanford; Raghavan Srinivas, Sun Microsystems, Inc.; Frank Wierzbicki, Sun Microsystems |
Wednesday |
Moscone Center - |
|
|
TS-5572 |
Groovy, the Red Pill: Metaprogramming--How to Blow the Mind of Developers on the Java™ Platform |
Technical Session |
Scott Davis, Davisworld Consulting, Inc. |
Wednesday |
Moscone Center - |
|
|
TS-5165 |
Programming with Functional Objects in Scala |
Technical Session |
Martin Odersky, EPFL |
Thursday |
Moscone Center - |
|
|
TS-5693 |
Writing Your Own JSR-Compliant, Domain-Specific Scripting Language |
Technical Session |
John Colosi, VeriSign, Inc.; David Smith, VeriSign Inc. |
Thursday |
Moscone Center - |
|
|
TS-6050 |
Comparing JRuby and Groovy |
Technical Session |
Neal Ford, ThoughtWorks Inc. |
Friday |
Moscone Center - |
|
|
TS-6039 |
Jython - Implementing Dynamic Language Features for the Java™ Platform Ecosystem |
Technical Session |
Jim Baker, Zyasoft; Tobias Ivarsson, Neo Technology |
Friday |
Moscone Center - |
|
We have a BOF on BTrace in this year's JavaOne. But, you will not find the name "BTrace" in session title -- that is because talk was submitted before BTrace was open sourced with that name
The details of the BOF is as below. Please visit and let us discuss on dynamic tracing for Java.
| BOF-5552 | Java™ Platform Observability by Bytecode Instrumentation | Kannan Balasubramainan, A. Sundararajan | Tuesday May 06 19:30 - 20:20 | Moscone Center - Esplanade 300 |
| TS-5716 | D-I-Y (Diagnose-It-Yourself): Adaptive Monitoring for Sun Java™ Real-Time System | Technical Session | Carlos Lucasius, Frederic Parain | Tuesday May 06 18:00 - 19:00 | Moscone Center - Hall E 133|
| TS-6000 | Improving Application Performance with Monitoring and Profiling Tools | Technical Session | Jaroslav Bachorik, Gregg Sporar | Wednesday May 07 10:50 - 11:50 | Moscone Center - Gateway 104 |
| LAB-9400 | Exposing the Depth of Your JDK™ Release 7.0 Applications with Dynamic Tracing (DTrace) | Hands-On Lab | Angelo Rajadurai, Raghavan Srinivas, | Wednesday May 07 18:30 - 20:30 | Moscone Center - Hall E 130/131 (LAB) |
| TS-6145 | Using DTrace with Java™ Technology-Based Applications: Bridging the Observability Gap | Technical Session | Jonathan Haslam, Simon Ritter | Thursday May 08 13:30 - 14:30 | Moscone Center - North Mtg-121/122/124/125 |
| BOF-4994 | End-to-End Tracing of Ajax/Java™ Technology-Based Applications, Using Dynamic Tracing (dTrace) | Birds-of-a-Feather Session (BOF) | Amit Hurvitz | Thursday May 08 18:30 - 19:20 | Moscone Center - Gateway 104 |
| BOF-5223 | VisualVM: Integrated and Extensible Troubleshooting Tool for the Java™ Platform | Birds-of-a-Feather Session (BOF) | Luis-Miguel Alventosa, Tomas Hurka | Thursday May 08 19:30 - 20:20 | Moscone Center - Gateway 104 |
| TS-6145 | Using DTrace with Java™ Technology-Based Applications: Bridging the Observability Gap | Technical Session | Jonathan Haslam, Simon Ritter | Friday May 09 14:50 - 15:50 | Moscone Center - North Mtg-121/122/124/125 |
| TS-6000 | Improving Application Performance with Monitoring and Profiling Tools | Technical Session | Jaroslav Bachorik, Gregg Sporar | Friday May 09 16:10 - 17:10 | Moscone Center - Hall E 133 |
Groovy jsr-223 script engine @ scripting.dev.java.net has been updated to use Groovy version 1.5.6.
If you want to learn more about Blu-ray disc and what Java has to do with it, you may want to attend the following talks/BOFs @ JavaOne 2008!
| Date/Time | Session ID | Session Name |
|---|---|---|
| Wednesday, May 07 9:30 AM - 10:30 AM | TS-5449 | Java™ Technology for Blu-ray™ and TV: Creating your own Blu-ray Java Discs |
| Wednesday, May 07 9:30 AM - 1:30 PM - 2:30 PM | TS-6464 | Blu-ray Disc Security |
| Wednesday, May 07 9:30 AM - 6:30 PM - 7:20 PM | BOF-5451 | Blu-ray and Java™ Technology Roundtable |
| Thursday May 08 1:30 PM - 2:30 PM | TS-5638 | Writing Connected Device Configuration Applications for Resource-Constrained Devices |
| Thursday May 08 1:30 PM - 2:30 PM | TS-5888 | Driving Innovation in Packaged Media (Blu-ray) User Experience |
From our group talk (TS-5449), we will be focusing on the open source project @ https://hdcookbook.dev.java.net. Meet you soon @ JavaOne !!
Are you interested in a byte code instrumentation (BCI) based dynamic tracing solution for the Java platform? If so, please visit https://btrace.dev.java.net. BTrace is a safe, dynamic tracing solution for Java. You can express tracing code in Java and run it against a running Java application. Your Java application should be running on JDK 6 or above for BTrace to work. You may be using VisualVM, the all-in-one Java troubleshooting tool. VisualVM supports plugin model to extend it's capabilities. BTrace plugin for VisualVM will be available soon. When BTrace plugin is available, you can trace your application from VisualVM tool. In the meanwhile, you can use BTrace command line tools. You may want to check out the user guide for the command line access.
Updates on the world of Scripting for the Java platform:
My recent fun with virtualization continues. In the last JavaOne, I missed the talk titled "Everything Java": JPC, a Fast x86 PC Emulator. But, I downloaded the source and binary of JPC just to check it out. I ran the classic game "Prince". Nostalgia
In my previous post, I talked about having to use more than OS for education/entertainment purpose. The problem is that I've quite a few ISO images and LiveCDs with those images. Two problems:
For kids, all they want is the best stuff available across all operating systems. They don't wait for the machine to reboot from another partition or from a LiveCD. Besides, while they can switch between applications easily, restarting a different OS is bit much to ask
[although I won't be surprised if they do that!]. Kids want to switch between interesting applications/games/edutainment stuff rather quickly. Also, we don't seem to get all the good stuff on the same OS! For example, I need to Scratch on Windows or Mac -- no official Linux binary yet
While it is possible to hack to run Scratch on Linux by taking the Squeak image, there are issues with MIDI etc. There are many good stuff in Edubuntu and OLPC too. The point is that you want to run the best set of applications/games across operating systems -- without having to reboot.
This is where Virtualization helps! As Tim Marland said, you don't have to be a hypervisor/virtualization expert to use it. I downloaded VirtualBox for Windows XP [just run .msi file to install] and edubuntu [this later was very easy -- I just to use Add/Remove programs menu and look for "VirtualBox". VirtualBox is very easy to configure -- mostly point-n-click stuff. Now, I can run OLPC, Edubuntu and Belenix on my Windows XP latop without having to partition my hard-disk or rebooting. Kids can switch between their favorite applications across Operating Systems easily. If you are curious how it looks, here are some screen-shots:
When I introduced computers to my kids, as like many other kids they started with games on the net. Mostly playing simple games like tom-and-jerry chase, bob the builder etc. My mother tongue is Tamil and so I came across the kids section of the Tamil Virtual University site.
Then, I started experimenting with Squeak and EToys. Later on, I moved to use Scratch. After some time, I learned about GCompris, Tux Math, Alice, Robomind etc. During that period, I still used the non-open-source OS that came with my laptop. GCompris version on that OS does not include all the activities -- to encourage the usage of open source operating systems! So, I looked for operating systems for kids. I've started using the following operating systems.
Recently, I came to know about OpenSolaris in Tamil -- one of these days, I'll try a LiveCD. Need to check if there is a Tamil version of Belenix out there...
Harbhajan banned for three-matches for alleged "racial abuse". Umpires haven't heard or seen anything. Mike Procter himself came on camera and said that the umpires told him they have not heard or seen anything. Did he see anything from the TV footage? It does not seem so. If there is any evidence, we have the right to know it. Aussie players claim something. Indian players claim otherwise. Two parties are not agreeing on what really happened. Under the circumstances, you expect the ICC referee to dismiss the charge on the lack of evidence. Instead, he punished Harbhajan. Did he go by just the word from Aussie players alone?
Now, by this process anyone can be punished. Any team can gang against the better players of the opponent team and claim racial abuse or anything that can get a ban! If a Muttiah Muralidaran bowls well, previously they claimed chucking, shouted "no ball", wrote "expert" columns about his bowling action and so on. Now, it seems that there is even a new trick - claim "racial abuse", get a ban for 2/3 matches and then you can bag the series!!
If BCCI believes injustice has been done, then they should just pull out and send a strong message to ICC. It is ICC that needs India and it's large cricket crazy population. Not the other way around. It is economically viable to have our own tournaments, entertain public, have fun and make money. BCCI has to learn from the ICL example and start something within India and expand.
Aussies win as expected. But, that does not change my comments earlier. While Indian second inning batting is worst, the controversial umpiring decisions had definite effect on the match. While it may sound "sour grapes" now, ICC has to do everything to improve umpiring. And Steve Bucknor has to go!
Observations based on the second test: