Showing posts with label conferences. Show all posts
Showing posts with label conferences. Show all posts

Sunday, May 06, 2012

Coin, Lambda, Jigsaw and EJB Home Automation: My take on the JavaOne 2012 Hyderabad

So nearly 13 years after my first java program, I finally attended a JavaOne. I remember sitting in Chennai years ago wishing I were in California when I first heard of them (or read about talks from them months later); so when I heard about a JavaOne in Hyderabad, I figured it was time. Of course, its not the same thing without Sun hosting it, but I was also interested to see how Oracle rolls one out. Few days of finagling with the powers-that-be later, I was set to go.

I've been to Hyderabad before, but not by air. So when I landed and found an airport that could be mistaken for any mid-size one in Europe or the US, I had to concede that Bangalore with its sneeze-n-you're-either-out-or-on-the-runway airport has been severely outclassed. Add to that the faithful reproduction of a US expressway (with exit numbers, no less) that led from the airport to the city and a die-hard bangalorean like me had to just weep and die a little bit inside. Damn you, you f-in politicians and whoever else who's responsible for our rinky-dink airport and the tragedy that is NH-7. You know you've had the revenue in spades to do a better and quicker job.

And then there was the convention center itself. Pretty much world class, IMO. Easily configurable main hall (attendees know what I'm talking about), a control console in each room, each room equipped with at least 2 screens and 2 LCDs facing the speaker - one to show the slides and one with a timer, ample wait staff and F&B counters, attached hotel - the works. Of course, the event management itself had some typical desi-ness to it that I'll mention below, but in all a very nice place. It had the feel of somebody with systemic thinking being in charge.

Anyhoo onto the sessions themselves. There were 5-7 parallel talks spread across Oracle-specific and Java themes so I'll talk about the sessions I attended:
  • Day 1:
    •  Keynote: Pretty OK state-of-mobile talk by Mr. Rego. Nice demos of Nano Ganesh (controlling irrigation pumps using Nokia phones) and of controlling cars via phone. Nice message about "looking for problems to solve and the money will follow". Also liked Nokia's message that they're not about creating new things themselves, but enabling and partnering with people who are creating those new things. I liked this message because I've always like Nokia phones as sturdy workhorses of communication and IMO with all the smartphone craziness this is a good middle path to take. Hope it works out for them.
      • Aside: The Nano Ganesh project uses the phone's voice connection to control pumps. I spoke to Santosh Ostwal - the creator - and he confirmed there's no API to this - its direct control of the hardware. Sad. It would have been great to write this kind of phone app - the kind that doesnt need a separate data connection.
    • Head and tail of Project Coin: Good "Directors cut" review of what its about by Dalibor Topic. Much better than just the changes.
    • Data Parallelism with Fork/Join: Blew my mind when they got to Spliterable. Very well explained by David Holmes. He didn't like my fanboy idea of reviving the old java idea of sending code via RMI to another JVM so that we could federate fork/join over multiple JVMs, however. Probably with good reason :). 
    • Oracle SOA suite: Caught the last of this because I was talking to David Holmes, so can't say much about it.
    • Tech Keynote 1: Nice overviews of Coin, Jigsaw and Fork/Join. Particularly liked Dalibor's animated slides that converted boilerplate java into its functional equivalent.
    • Improving MSQL performance with Hadoop: Lost patience. Speaker gave very naive definitions of MySQL and Hadoop and showed an agenda that didn't actually have the title of the talk listed.
    • Project Lambda: Excellent build up of the material and exposition of the JSR as it stands.
    • Java ME and LWUIT: Attended the end of this lab session. Seemed pretty standard UI stuff.
    • OTN Night: Not easy to get a few thousand indian geeks to "get jiggy", but to their credit Oracle tried. First there was a stand-up comic who apparently was a developer at some time, so was billed as a comic in 4 languages: English, Hindi, Java and C++. Sadly his tech jokes stopped at calling himself a Null Pointer. Aside from asking a whole crowd of south indians if "there were any south indians" and making the cardinal sin of assuming all southies are the same when there was a whole wealth of jokes with just mallus alone, he was OK. That was followed by Vasundara Das trying really hard to get 5000 engineers to confirm that the "party was on the dance floor" to her chartbuster "Where's the party tonite?". When I left about 100 hands were up in the air somewhat in chorus with the slightly-off background troupe. The food was good, though :)
  • Day 2
    • Oracle Develop Keynote: Some clueless event management guy goaded me into this with a "Developer keynote starting, please go, please go", so I went in. 5 seconds in I was thinking "How the hell is this a developer keynote, I'm walking out right now". I remembered, however, that I should probably listen to some Oracle speak for use "at the office" and settled down. It turned out to be pretty Ok after all, with Oracle's Cloud strategy taking center stage. David Pease presented a nice (possibly standard, but nice anyway) cloud adoption strategy and spoke about their public and private cloud offerings. Afterwards, him and another Oracle Manager did a pretty good job of answering my two questions:  How the cloud affects their main revenue stream - big iron database servers (answer: complimentary, not cannibalistic), and what their official response was to NoSQL(ans: berkleyDB. Not convincing, IMO) and Big Data (Ans: Will be treated as extension of existing solutions, not a separate one).
    • Interfacing with the interface: Impressive demo of JavaFX, Wiimote, Kinect and Hotspot. It was one of those "It CAN be done with Java too" kinda things. Cool, but dont see the point. Wouldnt you just use the native technologies for Wiimote and Kinect? Still a very balanced and nice talk. Take away: Heard about the JMonkey Engine. Also heard that its pretty buggy :)
    • Agility and Scalability @ eBay: Good, solid talk; but nothing new. Walked away into the "interfacing.." talk after a while, returned towards the end and found it taking a predictable course. No fault of the speaker, though. It was me, not him; entirely like seeing George Carlin for the 5000th time and not laughing. The rest of the crowd seemed to like it just fine.
    • Jigsaw: Another solid talk by David Holmes. I started reading about the project after the talk and immediately wanted those slides that presented the problem, its implications and solution(s) so well. Reaction to the project itself: Cant wait for it, cant wait to use it. Although I dont get the need for the "default" keyword for default methods. If you're writing a method body within an interface definition, shouldnt that be sufficient indication that its a default method? Holmes' take was to join the mailing lists and either understand or speak up. 
    • Nashorn - Javascript on JDK: Short, well presented talk on the new JS interpreter on the JVM. Sunderrajan was awesome at spinning out quick examples to questions right on spot. He was evasive about performance due to safe harbor rules, but was forthcoming enough to say its way better than Rhino. Killer announcement: Node is coming to the JVM, and they already have it working internally. Cant wait.
      • Aside: I mentioned that I was excited about Node-on-JVM to Steve Chin and Kevin Nilson and their response was: "why would anyone want to do that?". My answer: admins love the JVM. Put anything inside it, and they'll be OK with it. The JVM is the ultimate production grade sneakware platform :)
    • OTN Room: Monitoring Cloud Apps: Spent 10 mins here. People in the audience kept interrupting the speaker with more knowledgable information than he had. Good to get good information, not so good to have the talk's flow being interrupted thus. IMO Ranganath should have just set the rules of engagement better than being polite like he was, or the session should have been a BOF one.
    • Java beyond the IDE: Nice if boring-in-the-middle talk by Jay Suri on things less talked about in the Java scene, namely, issues in production. After a long list of issues the Java Platform Group has heard from customers (and their solutions), Suri introduced two tools that were coming to the JDK via JRockit - Mission Control and Flight Recorder. This latter tool is what everyone wants in production - instrumentation for a running JVM - and you can now have it! Expressly to be run in production! From the source! Of course, you'll need an Oracle license for production use, but depending on the price, I can easily see this being put on at least "Test in Production" servers for those hard-to-debug-in-preprod problems. Awesome.
    • Having fun with JavEE and Home Automation: Who would have thought of using an EJB server to do home automation? A crazy, funny, energetic brazilian and his wife, that's who.  Vinicius and Yara Seneger were genuinely happy to be in India and gave what was possibly the most lively presentation that I saw. They demoed JHome - a home automation software platform that uses Glassfish and Arduino to create home automation such as lamps that turn on via http, LED lamps that turn to any RGB colour, controlling appliances  via sound. The final demo was a heartbeat monitor that Vinicius had hooked up to some EJB code (Yes! EJB code!) so as to light up a lamp when the heart rate goes over 110 BPS. And of course, he had to jog to get it working. Awesome and endearing. Who cares if they used a whole herd of elephants to swat a fly? The energy of the guy was great. Couldn't have asked for a better last session :).
    • Speaking of: why wasn't there a one last hurrah Oracle? I'd have liked one last closing session on the center stage. And: some of us like to see the people behind the show, you know? Get 'em up the stage and let's take a gander at them. 
Tech Reactions/ Opinions:
  • UI Frameworks: Java has AWT(hopefully dead now), Swing, JFX and LWUIT (which I didn't know existed till this conference). Exactly how many of them does one language need? I spoke a bit about this to Steve, but he seemed unconvinced that it might be a good idea to consolidate. Maybe the way I put it was off, but is it too much to ask for one language to have one (preferably declarative) way to define a UI across all its deployment profiles?
  • Mobile: 
    • The elephant in the room was walked all the way around pretty carefully by Oracle. Nokia had one A-bomb, while Oracle billed the "mobile platform that must not be named" quaintly as "other linux tablets". The stoopid questioners mentioned below, however asked pointed questions on integrating with it, however. Was kinda funny to watch the Oraclers tippy toe around these ones.
    • The heartening news, however, was that the release schedules for J2ME was merging with the J2SE one and that Java 8 will have one of the ME profiles built in. Should bring solace to J2ME users, i guess. Do you know any? I dont.
General Opinions:
  • Speakers almost always took up all the time, leaving no "public Q&A" time. They were of course, super available in the hallway after the talk, but that meant fighting the hordes to get your one question answered.
  • There were some really stoopid questioners, which the speakers were gracious enough to deign to answer. 
    • Sample: To the nashorn team member: "Will it support eval?". Ans: Of course, its a language requirement. "Will it support closures, lambdas and anonymous functions?" Ans: Of course, its a language requirement.". "Ok, I understand it will support lambdas because of Project Lambda, but what about closures and anonymous functions?" Ans: "Look, we have to, cos its part of the language. And this has nothing to do with Lambdas in Java". This went on for a few more rounds.
    • It was even worse in the Oracle Dev sessions where people generally were summarizing the talks in the Q&A sessions.
  • Event management was a bit weird in places:
    • No wifi. Had to be said. In fact, their "suggestion" was to not get any laptops either. I get that the majority attendees are local and probably have their own data connections, but what about us out-of-towners who might want to tweet you some kudos? Surely the world's largest database company should be able to afford that?
    • Long queues to get into a session because Oracle wanted head count. Couldn't you have set the Reader at the door and made it self-service? Many people kept leaving sessions and walking into others anyway thereby skewing your count; and this made for an annoying delay at each session.
    • Food service had some desi quirks: 
      • I had to literally fight for a second plate at lunch (I discarded my first one after my first course) because they dont give out a plate unless you have a token. Explaining that I'd given mine already and all I wanted was a fresh plate didn't go too well. The second day I learnt my lesson.
      • Tea was served at these stations with really nice looking tea cups-n-saucers stacked up. But they didn't serve us tea in them. Instead we got it in paper cups. Yeah, no clue why, or even why they had them on display if they didn't intend to give them out. Once you got your tea and took a sip as you walked away was when you realized there's no sugar. Walk back, and you're pointed to these tables with bowls containing sugar sachets, but no stirrers. Those precious bits of cutlery obviously cannot be left unguarded, so they're in the safe custody of the F&B guy - who could have told you that the first time, but of course he didn't. So walk back, get stirrer, walk back, get sugar. Then drink. I saw this happen over and over again in those two days. Its funny when you know what's gonna happen and you watch some poor sap go over this drill.
    • The Swag embargo: At the end of the conference I saw a line snaking towards the registration booth and some people emerging with a t-shirt and mug. The mug I didn't care about, but I'm a t-shirt whore. So I stood in line, not really taking note of the people in line frantically filling out the feedback form. Apparently, you HAVE to fill the feedback form, else you dont get the swag. What if I took the things and came back with the form filled out, I asked? No sir, its the rules, they said. I'll wait right where you can see me, I countered. No sir, those are the rules, they said; helpless against the all-seeing all-dancing mother directive. So I filled it out as Doofenschmirtz, Evil Genius. They gave me the stuff without once looking at the paper. 
Thus went my first JavaOne. Oracle, if you're reading: Now you have my real feedback. Looking forward to more of the good stuff and less of the silly stuff.

Update: Not finding the slides from the talks in some official place, I scoured the internets for them so I could share with my team. Here're what I've found to date:

Saturday, November 19, 2011

Droidcon Bangalore 2011

Had great fun attending the first Droidcon in India at namma bengaluru. Here's my somewhat longish take (in schedule order):


The Good:

  • Diogo's keynote on Cyanogenmod's growth and potential. Interesting to know that they support 80 devices. My cheapo LG Optimus P 500 isnt one of them, however :(.
  • James Hugman's talk on making X-platform apps suck less. Bonus: the Kirin framework. Interesting idea of writing business logic in javascript, but using the builtin webview-based javascript engine as the runtime. Definitely worth checking out. 
  • Hard Earned Android experiences by Khashif. Lots of sane advice here. Some interesting face-offs with his own (seemingly very young) CEO made me feel like I was at a tennis match but in all a nice talk. Most controversial point: optimizing database writes. 
  • New features in ICS: Good round up of the new features. Had to ask the question on the new Google expectation to move physical buttons to soft ones even on phones. More on this below.
  • App demos: Selected output from the Hacknight event that HasGeek held as a leader for this event. droid2chrome was interesting, as was the bookcompare (i forget the actual name). The former was interesting because most of the team members didn't want to do android and yet managed to do something; while the latter was interesting cos they actually screen scraped book prices from indian vendors!
  • Anand Virani's end-of-day talk on the mobile growth wave: I caught the end of this talk but clearly this is a man who can talk and present well. Nice projections on how the mobile world is shaping up. Some sharp questions on open sourcing Qualcomm tech which he quite adroitly side stepped without pissing people off :) 
  • Tibaut's keynote on i'm not sure exactly what (it had strands of droidcon history,android growth and political incorrectness), but it was by far the most entertaining and engaging talk i've seen in a while :). He made an interesting connection between Minitel - the French govt sponsored draconian internet offering that was in blue, green and while colors - and the recent fragmentation of the mobile market between blue(nokia), green(android) and white(apple). I'm not really sure what his final slide asking us to challenge the status quo of mobile really meant, but he DID get a few hundred indian geeks to actually talk to each other! That's an achievement for sure.
  • IPR aka Who let the lawyer in the room: Again, I caught the last 5 mins of this talk, and immediately felt I should have taken it in whole. Malavika looks like she could be the india PJ and she likes open source. I asked her about groklaw's impact on relations between devs and lawyers, to which her quip was: "I think its great because usually developers never read the terms and lawyers never see the apps"! Nice.
  • Indoor tagging engine: Was intrigued before the session and liked what I saw. Tagin is a project that allows identify indoor locations based on the surrounding wifi beacons. If this thing is accurate 50% of the time, it has great personal potential. The only downside that I see is that you have to have wifi on all the time. Barring that, however, I can think of some simple applications that extend the GPS's accuracy - especially within buildings that have lots of wifi routers - like apartments. Example: "Ding! you're near the mailbox, do you want to drop your bills off?"
  • Creating apps that work at all sizes: Lots of good information here for UI devs. I couldn't help but feel that the raster vs vector wars were being fought all over again on mobile, however.
  • Android and Arduino: Very enthusiastic presenter who knew his stuff and presented it in an honest, no-frills way. Learnt how easy it was to interface with arduino more than anything else; and that all this stuff (and knock-off cheaper boards) were available locally. Now all I have to do is magically make my family disappear so I could just hole up playing with these toys :)
Ok, could be better:
  • Tech challenges of apps in limited connectivity: This is a topic that could have been a lot of things - especially given that mobile is becoming cheap and offline apps and syncing them up is something (IMO) a lot of developers should be worrying about. While the initial "here's the problem" part of the talk was good, the rest felt like reading a Craig Larman architecture book - dry, high on theory and boring as hell. If you read between the bullet points, there were gobbles of information just waiting to be let out. They stated the problem, stated the things you have to consider and then stopped. A better approach would have been: "here's the problem, here's the things you have to worry about, and here's what we did. Now lets discuss". My other takeway: offline and sync should be a framework problem, not an app developer one. More on this below.
Meh:
  • Android Service Patterns: Was over my head because I'm an android tourist dev. However, I'm surprised someone built a new IDL to define service contracts. Doesn't the world have enough of those already without android creating one more? God forbid some (very possible) future where EAI vendors have to support AIDL! Oh look, the horrors of integration combined with those of android fragmentation!
  • Honeycomb codelab: There were glitches in the setup - primarily because most people did not have the ICS Dev setup on their machines. It might have helped to have a note on the schedule asking people to prep for this one. Also, there was a whole lot of "how" and no "why" at all in the content - but maybe that's because I don't know the nuances between honeycomb and older versions. And: it WAS called a codelab, so maybe I shouldn't expect theory or reasons. Regardless, it would have been nice to have a brief this is why what we're going to do is important/fun/great. It lacked that oomph, IMO. Personal peeve: Seemed like the presenter was a bit miffed that "in this day and age" we dont have connectivity. The whole tutorial was online, with no way of even getting offline as it was on appspot. We ended up curl-ing the pages so that our unconnected buddies could follow along.
    • Note to organizers: Tell people to setup machines prior or tell them about the thumb drives at registration
    • Note to speaker: Do not expect a perfect environment; have fallbacks. Most of us were trying very hard to manage to follow you, but a little understanding would go a long way.
    • Note to self: Read up on the content to know the why before attending a codelab instead of bitching about feeling listless at it :)
  • Android app: A deconstruction: I was distracted; hence the meh. Seemed like a pretty ok breakdown of building an app for AAA. However, I've attended a similar talk earlier, and the guy then made me want to have the app; so I was interested in how it was made. This was a lot of the hows; and a lot of it was pretty standard stuff when looked at through the lens of web development. My bias, I know.

Did not attend, would have liked to:

  • Android Multimedia Internals
  • Pricing models for apps
  • Continuous delivery for android apps
  • Cloud to device messaging.
  • Android Memory optimization
  • Enterprise App Development, admin api.
  • Close to metal programming with the NDK.
  • OpenGL on Android: My colleague attended it and liked it.
  • Humanizing Android.
  • Extending android with new devices
  • From stock to CM: Ericsson.
  • Smartphone Platform Frameworks.
  • Android porting for dummies.

Just plain Did not attend:

  • Android UI secrets: Heard from another guy that this was not as secretive gyaan as expected, but that's second hand info.
  • Sensors on UI: My colleagues attended; they were not the right audience, however. Must have been interesting to the the right people.
  • Demystifying mobile advertising
  • Infusing Android with social.
  • ICS Camera and connectivity.
  • The Phonegap session.
  • Android products with TI tech.

Sitting through some of the sessions, I couldn't help but feel that Google should:

  • Think of phones as phones, not as small tablets. Some of us actually use these things when we're not looking at them, and some of us actually (gasp) LIKE  "Call" and  "hang up" buttons. Not all things are meant to be used with two hands.
  • Create offline and sync apis: I'm not sure if there is an api for these in the android platform; but if there isnt, there should be one. I spoke to at least 2 app developers building their own solutions for these problems, and clearly, these are not application-level problems. "In this day and age". 

Surprises:

  • Robosoft: A company based in Udupi, doing Android! Go figure. I might just retire there - if they'll have my sorrily backed-up-in-tech-skills behind :)
  • Copperspiral; Fronted by a very informed and polite Vineeth, this RFID comapny was the first that showed up in India when I googled for local vendors; and I had quite a few informative chats with him. I'm not an RFID expert, but he's the guy to talk to if you are a hobbyist, methinks.
  • Github: They sponsored the party (which I couldnt attend owing to stupid excuses such as having a family) was conspicuous by they absence. Sure, the cut outs were there. Maybe there was more of them at the live music show? Thanks anyway, github. Love your software, love your support.
  • The 2 guys volunteering to set cyanogenmod for random strangers: Completely unplanned, apparently, and completely cool. My LG still didnt get love, sadly.
  • Dextera: I learnt that this company from Cochin built a Siri-clone called Iris while at their CEO's session. Have to definitely check it out.
  • The venue: Did not expect this good a venue, actually. Except for the small room, a top-notch place; and still a little away from the madding crowd. I particularly liked the steps that also doubled as an access ramp on the way to the courtyard. I'm by no means an architecture expert, but I have not seen that before.
The experience:
Hats off to HasGeek for the organization. I'm one of the entitled bunch that gave them grief about the lack of net connectivity, but Kiran's saga of their attempts to get wifi for a month won me over. Kiran, if you're reading this, I'm the guy who was willing to pay Rs.500 more. You have my apologies.That said, here are my suggestions:
  • A panel discussion would be nice. I know you guys had plans for it, but it didnt work out. Now you know the people will come, so have one for Droidcon 2012.
  • An app for the event. Methinks this could be community-sourced. I met some guys from Cochin who were in mobile tech training. Seems like they can whip this thing out :)
  • Prior notice for things like the codelab. Update: I just read your blog. You did tell them in advance.
  • Content: Android scripting, esp JRuby on Android aka Ruboto.
In all, a fun two days.