elmarschraml.com

Occasionally updated personal site and blog

Tag Archives: events

Martin Odersky’s Scala talk in Munich

TNG, a Munich-based consulting company, had a Scala training this week by Martin Odersky himself, and was generous enough to also host a free talk by Odersky about Scala. Of course, I couldn’t pass up my first opportunity to meet a language inventor in person.

Odersky’s talk was one of the rare events where you listen to someone speak for two hours, and still  feel like you want to hear more. He merged an introductory talk about the why and how of Scala, with a few more advanced topics like Scala’s collections and higher-order functions. On my personal list of technology to watch, it definitely moved Scala from a “maybe interesting” to “pretty cool, will check it out”.

Some tidbits from the talk:

– Scala, or functional languages in general, want you to think in space, not time. Instead of thinking about the order in which things happen, you think about which abstractions to build on top of each other.

– Shared mutable state is the devil. The combination of shared mutable state and concurrency will inevitably lead to heisenbugs.

– Working on collections with methods like map or filter can lead to impressively concise code. A tailor-made example (mapping phone numbers to mnemonic words from a dictionary) that typically takes 100-200 lines of code in other languages was solved in Scala in about a dozen lines.

– Parallelization is mind-blowingly easy. Basically, if you already program in a functional style, all you need to to is tell the compiler to parallelize by using certain keywords, and it will happen automatically. I need to look further into this, but it looks amazingly powerful. It reminded me a bit of garbage collectors – just like managing memory, multi-threaded code is inherently hard and error-prone, so the right way to fix this is not to have better tools to do it, but to not have to do it manually at all.

– IDE support is the biggest headache for using Scala at the moment. The new version 2.9 of Scala, and the accompanying Eclipse plug-in, should come out in a few weeks, and pretty much fix this. Scala support in IntelliJ will probably progress slower, since they write their own compiler for the languages they support.

As a not-so-serious aside, if you want to quickly get a feel of another developer, invite them to a technology event, like that talk. Good, expected answer: “Cool, sounds interesting”. Bad answer: “What is Scala?”. Worse: “You mean, like, talk about programming when I don’t have to?”. Worst, slightly paraphrased: “I fear I might have to learn Java soon, and you tell me that there’s something even newer already?”. All, sadly, encountered in the wild…

Advertisements

Jan 2011 GTUG Munich meeting

Last thursday saw the first GTUGMUC event of the year, thanks to the largesse of Google marketing once again held at the cafeteria of the local google offices, with pizza and drinks generously provided, and once again to a full house of several dozen developers crammed into the room.

First speaker was Robert “Sparky” Rhode, newly hired developer program engineer for Android. He showed a video, and simulator demo, of the new Android 3.0 Honeycomb. The emulator is still dog-slow when doing animations (although there might have been a hint or two about GPU acceleration being planned for that), but overall the new Android GUI was pretty impressive. Previously, Android always looked a little Linux-y to me, i.e. not bad, but not quite polished to the same level as, say, iOS. With Honeycomb, Android got a makeover in the looks department, and reaches almost ipad levels of design.

Interestingly, Honeycomb is 100% focused on tablets, and not intended for phones. Nothing is definite yet, but the 2.x line might be continued as a separate line for phones, with 3.x focused exclusively on tablets.

Sparky has not been with google for long, so there was little hard information, but it was nice to get to know the face of Android developer relations in Munich.

Next speaker was David Karam, a student at Munich’s technical university, presenting his work in the field of scientif computing. Basically, he took a genetic algorithm computing core, made it accessible over the network, made it possible to connect various computing nodes together in a cloud-like fashion, and topped it off with a web gui with lots of fancy graphs and statistics. Very impressive indeed, especially keeping in mind that he is not CS major. Would have liked the talk to go into more details of the how and why of the technical implementation.

Another non-google speaker Marcus Dapp from the Munich city government. He presented his open data / oven government initiative “Mogdi”. The first phase was an e-democracy competition, with people voting on ideas they want to see implemented. The current phase is a programming competition for the top ideas to be implemented, or any tech project based on the open government data made available by the city government. I’m happy to see my local government on the technological forefront again (after being one of the first government institituions to make the switch to Linux. Unfortunately, I probably won’t have time to participate in the contest, with the deadline set to the end of march. Details about the contest can be found at http://www.muenchen.de/mogdy

The final presentation was by Mike West, new google munich-based developer advocate for chrome. He started with a short, but very well-done overview of the new APIs available in Html5, and went on to cover details and current developments in Chrome, the Chrome webstore, and ChromeOS. Especially the ChromeOS part was fascinating – some might see it as a computer restricted to a full-screen browser, but it is more like a thin client for the cloud. The basic idea is that all your apps are on the web (or in the Chrome webstore), and all your data lives in the cloud, so PC is not really a personal computer any more, but rather a disposable appliance for accessing the apps and data on the web, with your profile and settings downloaded on demand to whatever computer you happen to use to log onto the net. A little like what Sun tried to do with their SunRay thin clients way back, or what a lot or corporations try to turn Windows PCs into, with profiles downloaded on login, and everything as locked-down as possible. Unlike that, it seems to actually work rather smoothly. Not sure if we’re yet at the point where I’d be willing to do without any desktop apps or local data, but definitely a concept to watch.

During the Q&A, I had to bring up the topic of Google’s decision to drop H.264 support from Chrome, of course. Mike stated that Google is putting significant resources behind its commitment to have an open, plugin- and patent-free video standard for the web, and patent-laden H.264 is not the way to go. According to the Chrome team, in the short run Flash is not going anywhere, and in the long run Html5 video encoced in WebM is the way to go. I would prefer to see greater adoption of Html5 video in the short run, even if its H.264, but I can understand the fear of having the world switch from Flash to plugin-free Html5 video, only to be stuck with patent royalties once H.264 is established, and the current royalty waver for free content distributors runs out.

Overall, another great GTUGMUC event, full of interesting people and exciting conversation.

Since attendance required agreeing to an NDA, I can’t put up any pictures of the event, but Nils has some on the GTUG’s picasa album at https://picasaweb.google.com/nhitze/GTUGMunchenGoogleTechnologyUserGroup

Conference characteristics by hardware

Unsure about which conference to go to? Where you will meet the kind of people you want to meet? All you need to know is what kind of hardware the attendants will be carrying.

Barcamp: iPad, Macbook Air

Google developer day: Android tablet, Netbook running Ubuntu

W-JAX: Company-issued Windows laptop

Notes from Google Developer Day 2010 in Munich

First of all, kudos to google for the flawless organization of a huge (1100 attendees), free event. It was great to have so many key people straight from the source in one place.

Here are my random notes of the event:

Opening keynote

Eric Tholomé: 2004 is the dividing line – Skype was the last app that mattered that was desktop- rather than web-based.

All the google presentations were very polished – in striking contrast to the crowded slides of TU München university.

Some impressive HTML5 demos (especially Canvas3D rendering) by Jochen Eisinger and Bernhard Bauer, software engineers with google Munich. New in Html5: device orientation – so you can query the position sensor of a smartphone. Nicely shown by video breaking up into falling tiles on a tilted mobile device.

Google App Engine hit 130000 applications, with over 5 billion pageviews per week.

Nice presentation idea: fullscreen image of wine and cheese as illustration for “2 good things that are even better together” (here, the topic was Google’s app engine and VMWare’s Spring Roo)

Spring Roo: Looks interesting, like somebody in the JEE world has Rails generator/rake envy.

Google’s internal motto: “Put mobile first”. Number of Android apps grew from 20k to 100k since February. Android is moving fast – there’s a whole presentation about changes and improvements in Android since the I/O conference, which was 4 whole months ago.

Nice debugging tool in Android: If your app crashes on any Android anywhere, you get to see the stracktrace.

API overview

Relevant talk from Google I/O: “How Google builds APIs”.

Coolness chart: SOAP -> REST -> REST with JSON

New: API console: monitor usage in your project, try out REST APIs, see usage vs. limits, get traffic reports

Google data protocol:new AtomPub-based standard for REST-like APIs in json

(Side note: Finally a conference that provides plenty of power outlets at the seats of the audience)

Google apps script: server-side javascript for accessing google APIs, does for google web apps what VBA did for Office

New in google maps: Static Maps: rather than populating a map with flags, which is slow for 500+ flags, prepare a map that is static, to ben included as a simple image tag -> “Programming knowledge from your community college course will serve you well here”.

Cool: Fusion tables: Upload geo data, analyze it, and visualize it on google maps layers

Geocoding API: Didn’t know about that one, allows you to enter an address, and get the latitude/longitude back. Basically a byproduct of what google maps does anyway, but might come in very useful when building geo apps on top of HTML5 geolocation.

Custom Search API: define your own search engine on top of google search, e.g. only search my own site or wikipedia, define synonyms (user searches for “mobile” -> also include results for “android”), boost results from certain sites etc. Looks cool, I might have to play with that.

Translate can also transliterate from one alphabet into another, how cool is that? And can even show virtual keyboards for all kinds of alphabet. E.g. when you’re targeting users from Russia, you can show them a Russian on-screen keyboard, so they can use keys for Russian characters even if they’re logged in from an internet cafe in Spain. I’m currently working on a web-based vocabulary trainer, this might save me a ton of work.

(Sidenote: one of the guys doing the API presentation just happens to run jsconf.eu, wow)

Social: Allows people to login to your site using their google account.

Charts: pass data as simple url params, get back a chart as url for an image tag, very simple.

Finally: news on googlecode.blogspot.com -> how come I did not yet have this in my RSS feeds?

Android UI

Firefox Pencil: free UI prototyping tool as firefox extension, google provides stencils for Android widgets for it. Cool, I was looking for something like that, but so far too cheap to shell out for Balsamiq mockups.

Google also provides an icon designer/ asset studio to allow non-designers to create icons: type some text, add borders,shadows, etc , and get back images in various resolutions. Seems very easy, very fast, and provides decent-looking graphics.

Reasons why Android supports trackballs: Allow users to operate their phones when wearing gloves (hmm…), and make it easy for people who are switching from non-touchscreen phones like Blackberries. My take on that: Where Apple creates a whole new world of completely new and different smartphone, Android wants to be a “smarter Dumbphone”.

App Engine for business

New features targeted at enterprise users: An SLA (three nines, i.e. 99.9%), paid support ($1000/month for developer support, with a guaranteed response time of 1 hour for operations support, and 8 hours for development issues), management console to administer policies, hosted SQL databases (I could not help a slightly condescending tone when talking about how some people might not want to use google’s fancy scalable NoSQL storage).

Will run not only Python and Java, but also any JVM-based language, including frameworks like Grails or Django.

Businesses will be able to setup their own domains for GAE-hosted apps, with users of GAE apps restricted to that Apps for business domain

Pricing will be $8 per user and month, capped at $1000 per app ( so I guess they don’t really expect much uptake amongst businesses that might have more than 125 users), instead of the pageview/CPU hours based pricing for non-business GAE. Apparently business customers were not comfortable dealing with prices measured in pageviews and CPU hours (but if you’re in charge of buying infrastructure, shouldn’t you be??)

New: code.google.com/qualify allows IT service providers to have their devlopers certified for developing GAE applications, to make it easier for enterprises to select partners to develop apps on GAE for them.

 

Sadly, I was still fighting a flu on the day of the event, so I had to call it a day after that, and missed other talks about e.g. BigData, predictions API and chrome developer tools. (Anybody knows if there is a site with videos of the talks, like there was for Google I/O?). I will definitely be back at next year’s Google developer day.