This session is my favorite session so far. There were not so many new things I learnt from the session. After all: it was a very short course on beginning Scala.
Couple of things I learnt at the session though :
- I always took for granted things like args.foreach( s => println(s.reverse)) . I did not notice that args.foreach(s => println(s.reverse()) did not actually compile. After the session I knew why.
- extending case class came into my mind several time during my project. I didn't know whether it worked. At the class, I saw that a case class extends another case class led to deprecation warning: it simply wont work smoothly.
- I discovered some limitations on code completion in Scala REPL.
Overall, the session was very entertaining, nobody wanted a break ! It was just great. The duo Bill and Dick was just fantastic. I also took advantage of observing Java learning Scala. It was a good experience, especially for my talk on Scala at the office soon.
By the way, the lab was full of people. I didn't come late, but I sat far behind, got difficulties to read what was on the screen.
It was a pretty quick lunch with Pasta and Shrimp. It was great ! But after 3 hours at the lab without power, the priority was to plug my laptop. So, short lunch.
Programming in Pain by Enno Runne
It was a quickie session by Enno Rune on Java and Scala comparisons. To be honest, comparing Java and Scala to tell that Scala is superior is not that useful and not the approach I support when promoting my favorite programming language (Scala). Why should one bash Java to show that Scala is great. Scala IS great. That's all. No need agressive comparison to Java. No need to tell Java is painful to live with once you knew Scala.
But anyway, the content of the presentation is actually quite great. You can have it here:
HBase by Michael Stack and Jonathan Gray
I have some serious difficulties on understanding the session. I hope my notes here make sense:
- HBase is based on Hadoop, hence HFDS.
- Based on Big Table paper on Google that everyone should read, even Michael's son read that (I tried to read the paper between session, I realized how brilliant Michael's son would be).
- Some names on HBase customer, the most popular one of course is Facebook.
- But HFDS lack of random read/write capabilities, and HBase is basically adding the random read/write capbilities to Hadoop.
- The read/write is achieved by writing items and then compacting later (??)
- Guarantee: atomic row writing, regardless the number of column families.
- Compared to Relational Database, HBase is more up-scalable, up to PBytes of data. Best when there are big number of columns, and still perform well in presence of sparse columns.
- HBase data is structured in rosw and column , like Relational DB.
- A row has a row key ~ primary key and the table is ordered by the row key.
- Each row has timestamp that is provided by HBase, but application can also use their own timestamp.
- HBase may store multiple rows of data.
- HBase provides a shell, - JIRB based.
- Unfortunately no demo of the shell because of network problem.
- But, some examples of create table, get, put, scan , ..
- Syntax is Ruby heavy.
- Then, a long-heavy-boring-hard-to-understand presentation on HBase architecture, but ... anyway.
- Some terms: Region ~ Partition, RegionServer.
- Region split mechanism and recovery.
- Back to programming again: Java API presentation: create table, put, get , scan, mapreduce
Pause. 10 minutes after pause, session restarted, but with less than 50 % audience. To be honest, even the presentation content was good, there were a lot improvement needed to make the contents understandable easily.
- Interesting API on concurrency: locking, checkAndPut, increment, filters.
- A little presentation on deployment: nothing really interesting though.
- Monitoring with Ganglia was mentioned. JMX too.
- More on backup, tuning.
- Compactions can be configured.
Since I planned to stay until 9, at least, I went down and found that some pastas were left. Yes, they were the same pasta as for lunch. It didn't matter. I re-took one, with some clementines, and hop, ready to go till late evening.
Java EE Tooling by Ludovic Champenois
The idea of the presentation was comparing three IDEs: Eclipse, IntelliJ, and of course NetBeans (Ludovic is one of GlassFish architect) in term of their supports on Java EE 6. Java EE 6 is btw, annotation based EJB/Servlet/CDI/JPA 2.0.
So, he demonstrated features like code completion, contextual help, menus, wizards in the three IDEs for the supports of JEE previously mentioned. It was pretty cool demo. He clicked here and there, opened wizard here and there, launching http page here and there. Well, pretty cool to see.
At the end, he showed a comparison matrix on the three, and NetBeans was the best, followed by IntelliJ, and finally Eclipse that had no support of CDI at all.
O, yes. He showed some scarry long annotations of JPA. What was that ??? It was very fast and I was at the last row at the cinema. But it was kind of 100 lines of JPA annotations out there.
Excel on JVM by Peter Arrenbrecht
Peter presented his tool formulacompiler http://www.formulacompiler.org that compiles Excel to Java byte codes.
- Excel is an excellent tool for modelling, but not for computation.
- So, let the user model in Excel and compile the Excel to Java classes, and then you can build any application from that.
- Cool idea, isn't it?
- The result of compilation is a jar file, so that you can use it in any applications without reparsing the excel or the java code file.
- Some profilings against Apache PIO was shown. Pretty cool indeed.
I wouldn't say that it was my favorite presentation. But Peter did present the subject well.
That was my morning and afternoon sessions.