Wednesday 9 November 2011

Øredev 2011, Day 1

I have never been to Øredev before. I must say I’m impressed so far. I like that it’s not so commercialized. Google and Microsoft together as friends as Phil Haacked twittered!

Keynote - Alexis Ohanian - Only your mom wants to use your website

Very good talk by Alexis! He mostly talked about the importance of really caring about your users. You should give a damn! As he put it. Only your mom cares about your lovely website, so to really stand out, you have to do something extra. Care about your users! Make something innovative to make them stay on your site. Bring your idea to life. The "old" sites that throws up hundreds of popups - the don't care about their users. He put his own created reddit as a good example, of course!

The talk was not so applicable to my current job situation as I mostly develop internal applications. But really good anyway!

Some small points I will bring with me:
  • Example of a great idea: make a lyrics site without obtrusive ads and popups (of course it's already on its way...).
  • Paging is bad! So glad someone says it. If you have like 20 pages of something - your not caring about your users. There not interested in 20 pages of something. Rethink!
  • Hipmunk: a flight booking site with a genius sorting: "Agony"! That's caring about your users! You don't want the cheapest flight if it's giving you agony!


Javascript effects - Seb Lee-Delisle
Also very good speaker and presenter! Maybe he felt that we scandinavians were a bit shy when we didn't respond to his "energy"? :-) He was hysterically funny too! Like it!

He skipped his slides and starting coding instead. Yay! In less than 30 minutes he had created an animated growing and swaying tree with HTML5 canvas and Javascript! Very impressive! Watch it here (its only html and js so source code is there automatically): http://dl.dropbox.com/u/5096013/ConfStuff/OredevTree.html. You need a good browser like Firefox (even Chrome seems to dislike it)

He also had a server to which all spectators (with an iPhone or Android) connected to - with a browser (i.e. an url)!. Then he started "playing" with all our phones :-) Started flashing with them in a cool wave and all kinds of stuff. Very cool! We also played a little game with all our phones - together! All with Javascript in the mobile browser. The things you can do nowadays...

More cool stuff can be found here http://creativejs.com/

.NET Collections Deep Dive - Gary Short

Love the scottish accent! :-)

He went through all the performance impacts of various collections and what is good for what. One type is great at insert, remove etc (like LinkedList) and some are great at lookups (like Dictionary)
One very interesting thing he mentioned was to always create a List with a initial size! If you don't the list grows with the double size for every add! 2, 4, 8, 16, 32, 64... And under the hood an Array.Copy() is done. Not so efficient! But if you initialize it with a given size - it also grows with that size. E.g. List(10) will grow with 10 for every add (10, 20, 30...).

Even if you create a list with initial values (List {1,2,3,4,5,6,7,8,9}) you should give it a default size (List(10) {1,2,3,4,5,6,7,8,9}). Because behind the scene it's doing Array.Copy() (and growing with the double size) for every value.

Also, never use List.Add() in a loop. Use AddRange() instead. Performance costs!

Still. All these perfomance costs are only noticable for > 10 000 items. So I don't know..?

HybridDictionary. Google it! :-)

Websockets: Hype or What? - Peter Moskovits

He used Prezi in his presentation - very powerful and different and interactive! I must start using it too!

HTTP is only half-duplex with quite a bit of overhead for every call (because that's how it is designed to work, and fits the needs great). Websockets is full-duplex with 2 bytes of overhead. That's right, 2 bytes! This means tremendous throughput! He had tested with 50K clients sending 50K mesages with < 3 ms latency! Impressive!

WebSockets are an W3C standard but also an IETF protocol. That means finally we have a standard that can be used in almost any browser on any plattform. There are also emulators for older browsers.
You can check if your browser support for websockets on http://websockets.org/ or more details on http://caniuse.com/ (and look for websockets).
Think of all the applications you can build when latency is almost 0. If you update something on a site with your mobile, the change can be instantly shown on your desktop browser. I mean instantly!
Some cool demos:

Mobile Web using MVC 4, HTML 5 and jQuery Mobile - Phil Haack

I don't believe that mobile apps are the future (neither did Steve Jobs). If our company is ever going to build a mobile app it will be a web app for phones. We can't simply ignore all Android and iPhone users and just create an WP7 app! And we don't have customers with a budget to build and maintain all three platforms.

The solution is mobile web apps!

Phil's talk was more a demo of the beauty of jQuery Mobile than anything else. Intentionally or not, I don't know...
Some cool tips to make your current web app a mobile web app:

Architecture Without an End State - Michael Nygard

Don't know what to say. Goog presentation, hard to describe here. I don't think I was the right target for this speak. It didn't give me that much. I'll leave it.

Kinect for Windows - Tess Ferrandez

Very cool stuff you can do with the Kinect SDK för Windows (still in beta though).

She live-coded some tracking for skeleton detection and more. Very fun to interact physically and vocally with your app :-). Another guy (can't remember his name) had made a gesture learning app with kinect. He demonstrated it on stage. He fired up the app and told it "Record me!" (the app started "recording"). He made a posture and said "record!" and the posture was recorded. He repeated that three times and know the app had learned a new gesture! Then he said "Watch me!" and the app started watching. Then he made the gesture and the app detected that he made the gesture.

Another guy had made his home a bit interactive by turning on and off lights in the room depending on where i were in the room.

Keynote - Abstraction Distraction - Neal Ford

I my opinion, the best talk of the day! Best speaker!

The reason for that is that many of the things he said was things that I said on an internal company talk I held about NUI (Natural User Interface). The folder and file system abstraction is bad, the save-button abstraction is bad etc...

Or, other things like why the gmail "labels" are way better than putting mail in folders a la Outlook. Because a mail can be about many things, not just one thing (which suits in a folder)! And with the label abstraction we can now specify the only egg-laying mammal platipus :-). Which we can't with the standard hierarchical abstraction.

Very hard to summarize all the things he said...

But in a nutshell what he said was that any abstraction is inperfect. You just have to know it and adapt to the that fact.


Sorry for all the typos and bad english, it's late and my head is kind of full...

No comments:

Post a Comment