Rendr

AirBnB came out with something that is game changing in my mind.

Rendr

Why, because it solves so many problems of SPA’s and keeps almost all the advantages.

It builds on Backbone, what is the most obvious choice as a de facto standard.

All the problems that get solved:

Pure Common.js

Require.js is good, but not too good. I always have to write “define” functions, libraries are often not written in AMD.

npm deals with dependencies

Sorry, but bower sucks pretty much and it is a joke compared to what npm can do. It’s probably less work as the require.js config file, but even if not it feels much cleaner.

Initial loading

When you use require.js you have to use r.js, but since 2.0 supports shim and Backbone/Underscore don’t support AMD you have to create a single monsterfile. But not just the bandwidth, the initial loading takes time and it most likely increases as the project grows. Having and instant HTML response is still what browsers are made for. When you chose a SPA for speed, you shouldn’t forget the one thing every visitor will see for sure.

No ugly hash #

The hash brings a lot of problems with it and is ugly. We can finally close that chapter and push state gives the best experience on modern browsers.

Search Machine Indexing

No escaped_fragment stuff, snapshot generating etc. Why not avoid that stuff if you can.

Testing

Well, no phantom.js needed to write tests for most cases.

With a formidable company like AirBnB backing it, I am really excited. Especially getting rid of require.js makes me excited.

Maybe this could be easily expanded to Ember.js. With stuff like data binding and ember-data I think you need a more specialized approach, but doesn’t seem too far off.

Google Glass Nerdfactor

The last few days Google stepped up their marketing again when it comes to Glass. It is very interesting how they try to fight the Nerdfactor of the product as early as possible.

Nerdfactor (non scientific subjective definition)

Simply a device that marks you as a nerd. There is some stuff nobody would think about using or having other than a nerd, it marks you as a weirdo and an outcast. Someone who is different who stands out trough something people cannot relate to.

The Nerdfactor isn’t new, people like Leonardo da Vinci had weird devices they tried out. People gossip about that, because they do something “normal” people would never think about. Now think about you are the only one with Google Glass and it was built by some Startup…. nobody would ever think about wearing it themselves.

It has basically the opposite effect marketing uses to promote products. Do you want to be like these people? Then wear what they wear. Do you want to be made fun of and seen as a weirdo? No…

Unknown Device in Public

I experienced this first hand, can you remember these?

There was a commercial from an insurance company where everybody was running around with them. That gave me the idea, and I bought them. Really expensive for my budget back then, the regret came soon.

Effing everybody was talking to me, everybody had a comment, tried to get into a conversation with me, or some guys yelled stuff like “salto”. It was so annoying. Then a year later this happened and it would be worse going out with them today.

You can’t go out on the street with Glass. Actually something like this happened already, the guy even got attacked and I bet he had a billion awkward conversations about it.

Marketing strategy from Google

From the inception of Google Glass you haven’t seen a single nerd using it, this factor is so obvious that their marketing people where in agony thinking about it. They had to tackle that problem early on. A single mistake and it will be stigmatized for years.

Google had experience with it, Android was a pretty tech centered brand and it is today. That’s why they try to kill it.

How to tackle it from the beginning?

Simple, don’t get it into the hands of nerds. There is not a single picture with someone who can be considered a nerd. Good looking hip young people, mostly females. With the exception of Sergey Brin (who is a billionaire and works out). I bet they will sponsor Brad Pitt and some other celebrities of wearing them once they are out.
The second factor is the promoted use case, it’s for something everybody can relate to. Talking with your loved ones and recording your kids. Look at that video.  It will have an SDK and you can do everything you can imagine with it. Think about stuff like augmented reality, what is the most obvious and interesting use case.

project glass

project glass (Photo credit: andysternberg)

Who knows what augmented reality is? Sounds weird, probably nerd stuff.

Google tricks everyone, we still know what to do with it and it will be 10 times cooler than recording your boring holiday.

And POV porn obviously, oh sorry we are nerds we don’t.

SPA, RIA or HTML5? HTML5 the new Web 2.0?

I just stumbled over some confusion, the whole naming scheme in the Internet is broken with a new generation of sites coming out. The press doesn’t know what to write, there are a lot of technologies, new paradigms and old ones. This is probably the new “Web 2.0″, when nobody had any idea what he was talking about, but it had something to do with shiny logos. I try to evaluate that here and give a more in depth explanation what we are talking about.

I call them Next Generation Websites, otherwise I would get confused myself.

The GUI vs “under the hood stuff”

One mayor problem is always that non technical people don’t acknowledge something until it changes something with the user interface, so they can “see” it. This is also a problem for the press, because they don’t know what terms their users understand without getting into jargon.

They bind the NGW to some design characteristics, for example gradients, animations, patterns and some UX design patterns. This is probably like the fashion industry. When starting projects make a new design of their site, they probably use the most trendy one.

The Terms

  • JavaScript
  • Ajax
  • Single Page Application
  • Rich Internet Application
  • Web Application
  • App
  • HTML5
  • CSS 3

JavaScript

The programming language of the web, for everything that happens in the browser it’s necessary. There is a shift to put more and more functionality on the client side, so there is a surge in JS use. Suddenly we need JS developers, like we need C++ developers for specific projects.

AJAX

The possibility to load data in the background into the browser, this is the one core technology that enabled Single Page Applications. It was popularized in the mid 00′s, but since then there was no mayor new one that really changed what is possible. That’s why all modern sites can theoretically be compatible down to IE 6.

Single Page Application

The web began with multiple .html files, this is not the case for these kind of sites. There is just one single page loaded and the rest happens trough JavaScript communication with the server, mostly in the JSON trough Ajax calls. This “technique” offers all the possibilities, that native applications use. It can be done without any interruption. The other advantage is, that the development process works the same, you interact with the backend exactly like Apps do. On the other hand, you need people who are able to handle a full project with JavaScript what it was not designed for. Modern approaches like Backbone.js popularized that concept. Now this gets expanded to traditional content heavy sites.

They rely on modern JavaScript features in the browser, but there are fallback technologies for older ones. Here is the modern JS site developed first and made compatible with older ones, so you can rely on the best possible user experience and still be accessible by older Internet Explorers.

So it has been possible years ago, but not many participants had the expertise and the experience in doing so. Google Maps was one of the first mayor sites based on this idea, but by none other than Google.

Rich Internet Application

The Internet is still the stuff that happens in the Browser for most people, so they have seen fancy stuff. Since Java was accessible from the browser, developers were able to build all kind of stuff into the browser. Anything else than Flash was a problem because the install base was wide under 90%.

There are also heavy limitations, because search engines weren’t possible to index the data, so anything else than an app or game was a very bad business decision. Not the case for Single Page Applications, it’s not that trivial, but there are a few ways Google can get to the data.

Web Application

The most simple description for sites that were made not just for consuming content.

Because you click a link in a browser and you send data to the backend, was theoretically the Internet able to emulate all kinds of functionality since it’s inception. If you generate sites where your session is saved as part of the available links on the site, you are able to didn’t even need cookies for that.

Theoretically, with having a long load between sites, anything would even be able to work on Tim Berners Lee first experiments. So the possiblity for Web Applications is a part of the WWW since forever.

It was new, so nobody knew at first how to do this. Over the years, this became one of the most popular ways of programming applications (especially for the enterprise), so it was more an paradigm problem than a technological one. Still most changes are new libraries or ways of doing things on the web, than really new technologies.

App

People were used to traditional software, but at some point you had to buy it in stores and install it. Getting an application from the Internet with a single command/click existed very early and got popular in the Open Source space, especially on Linux.

The iPhone perfected that for user simplicity, with a single install command could you get a software for one specific purpose on you mobile device. Now these called “Apps” were more like websites, but the developers had all the native capabilities and the user experience quickly outperformed websites in user experience.

This got the new benchmark, the WWW is under threat. This quickly gave JavaScript developers incentive to get on par with native apps.

The browser vendors implemented a lot of features, that make this easier, but developers didn’t use them to be compatible to older browsers. This is still a problem, but instead of not using them, developers figure out ways to have the same version with older browsers but just missing user experience / animations instead of functionality.

CSS3

This one doesn’t even have it’s own Wikipedia article, all the modern fancy stuff is made with it.

These smooth animations and depth effects have names like CSS transitions or shadow tag. They have the sampe problematic that they don’t work on old browsers, but there are also methods to have decent fallbacks for them.

When you know that your target browser is Chrome for example, you can make apps that can blow your mind and look better than most native applications. People will call this then their NGW term of choice.

HTML5

This is just the fifth revision of the HTML standard, it adds new features like the <video> tag, but for the user nothing changes much. Before that and still today Flash was used instead, it still works better with it than with the tag in a lot of cases.

The funny thing is, for some reason the press took this term to describe modern sites. I have no idea why, maybe because it was something new around that time and having something interactive like video work by the browser itself is really cool?

The other thing is, people know the term HTML and most people have never heard of CSS and CSS3 came around the same time. Both new specs are also implemented differently, there is not a single one that was coming out, they get implemented step by step. Cool stuff that will come in the future, but take years to get implemented, are part of HTML5 and CSS3.

What to do now?

Whoever set the term HTML5 was successful, like the term Web 2.0 sparked weird unclear conferences, we have to live with it. When you are around technical guys, call your new site what it is, a Single Page Application.

Let’s build beautiful and powerful websites and wait for the Web 3.0, smartwatch, or glass app.

Update 2013

Hello, after a downtime over the holidays I am back.

A few things changed since then, i got a new job at Sixt as a Frontend developer. My private endeavours in the startup space are on hold for now.

I don’t know yet what I am allowed to write about my work there, so not much more on that for now.

JavaScript

With my personal situation more stable now I can focus more on technical stuff.
You maybe recognized that I never wrote the second part of my i18n topic.
The reason for that are that I just found a new problem, the subject is Search Indexing of single page applications.
Big sites like USAToday solved that already, but there is not much info on the web or tools to make that easy.
I will focus on that for a while and started a project that does that stuff as automatic as possible. JavaScript frameworks have to make the web better and not to be held off by indexing concerns.
So I started crawlable.js and I have a pretty concrete architecture in mind to make that problem as easy as possible.
I make a post about that soon.

This Blog

I also intend to write more here, my skills have to improve and I have a few stories to tell maybe.
Cheers Severin