03 Sep 2013, 21:44

Web Enthusiasts

Sur le réseau social d'entreprise, il se trouve que j'anime (enfin je tente vu le succès mitigé pour le moment) une communauté sur les problématiques du web, où j'y aborde en fonction de l'actualité soit des problématiques concrètes, soit de la veille techno, soit essayer de partager une "vision" du web.

De part ce succès mitigé et comme rien n'est à jeter, j'ai décidé de dupliquer les contenus en dehors de l'entreprise afin que cela bénéficie à tous et éventuellement créer plus d"échanges... Le but n'est pas de produire des articles pointus mais plus de chercher à vulgariser/partager les choses qui se font à droite / à gauche.

Le rythme de publication est hebdomadaire en générale avec le billet du mercredi 9h30.

Ultime précision mais qui peut avoir son importance, c'est en anglais.

Pour le reste c'est ici : Web Enthusiasts ; le thème mérite encore d'être adapté, le coté "magasine" de la page d'accueil permettant je trouve d'avoir un meilleur aperçu des problématiques traitées que l'approche classique par date.

Vos retours sont les bienvenus !

21 Feb 2013, 21:27

Browser : Opera to drop Presto in favor of Webkit

If you follow the web news, you cannot have missed this one : Opera dropped its rendering engine named "Presto" in favor Webkit.

As a reminder :

  • Opera was quite an innovative browser but never met the success they merited
  • Opera is deeply involved in standards implementation (W3C, etc) and will continue.
  • However, Presto, their rendering engine is closed/proprietary
  • Webkit is an open source rendering engine which is used at least in Safari and Chrome (but first of all in KHTML/Konqueror, the browser from the KDE desktop environment - sorry for Apple fanboys, Webkit is not born with Safari). More precisely, Opera will used the Chromium flavor of webkit (Chromium is the open sourced version of Chrome, ie without any proprietary nor licensed plugin)
  • Microsoft's rendering engine is called Trident
  • Mozilla Firefox's rendering engine is called Gecko

Back to the news, it leads to many comment on different topics, I will try to sum up here :

  • Good news, one browser less to test your site on : first, be honest : did you ever test your site on Opera ? So I would say this one is a non event for most of us and then, even if you tested your site on Opera, you will have to wait for the new Opera before giving up tests. As some people said : when you test your sites on IE, it's to get and fix IE bugs. when you test on Opera, you can validate your code against standards as Opera had the stricter implementation of W3C standards. So on this point, we could say that losing Opera is a bad news (however, Opera said that they chose Webkit as standards implementation in webkit is "good enough" for them regarding their criteria on standards).
  • Risk of a new web(kit) monoculture : "Optimised for webkit" could be the new "Optimised for IE6". To some extend, I would say it's already the case as webkit is used massively on mobile world (95% of mobile users are to use a webkit based browser). Fortunately, we can rely on Mozilla at least to promote the Open Web and avoid the "One Webkit reign". More over as there is at least 2 webkits (one on Safari side, one on Chrome side) and mainly as standards is the rule, it looks that "commitment to standards" will remain the rule, whatever the position of the different rendering engine in terms of market share. However, open web and standards are better promoted when there is diversity in rendering engine.
  • Will this swith increase/reduce the innovation on the web  or influence on standards ? J. Resig (JQuery's author) compares JQuery and Webkit ; even JQuery dominates the front-end side of Javascript, it leads to many innovation by providing a shared and common code base accross browsers. It could be the same for browsers and at the same time, he highlights the fact that webkit code base is not as shared between vendors as we may think. On the other side, D. Glazman (implied in CSS Working Group at W3C) mention a sad day and the webkit domination. For some others, the new end is not standard by themselves but standards is a mean for a new end : web as a platform.

Not easy to say what the future will be...

[Edit 1] : Opera's CTO said that Presto could be opensourced, once transition to webkit is achieved. Good news if they could bring some Presto features or standards implementation into Webkit ; their first patches to Webkit was also to fix a 5 yo bug by bringing in Wekbit the support of multi column layout in CSS3. If they go on this way, sounds really good for standards implementation and webkit and I guess Mozilla/Firefox will face the challenge too.

[Edit 2] : To understand the Webkit universe / econsystem : Webkit for developers ie how you will learn that there is no single webkit / all webkit based browsers are not using the same webkit. So as Chromium Team (in charge of the Chromium browser, the Open Sourced version of Chrome) announed they will develop their own rendering engine called Blink ; Opera will also be based on Blink. So Google may/will less contribute to the webkit codebase.

[Edit 3] : a more detailed review in French on the announcement confirming the split between Google teams and webkit ones and also the fact that Samsung & Mozilla to work on a new browser rendering engine for Firefox called Servo (R&D project so far even if Rust (a programming language) is initiated for years and on which Servo will be (partially ?) based, no confirmation of the switch to this new engine for Firefox so far but more for the ARM/Android version, ie for Firefox OS and Firefox Android Browser)

17 Jan 2013, 09:43

What if your next backend application would be only an API ?

Web site and application used to be built as following :

  • On the server side, you had all the data, all the logic (what to display and when) and at the end, the server push the answer
  • On the client side (ie in a browser mainly), you only have the rendering of the data and the layout (HTML/CSS/Javascript) - client side allows just to interact with the server side and get/do what you expect. If you go offline but keep your browser open, you cannot do anything with your website or app.

So we all know client/server apps.

Now, for a few years, we have a rise :

  • SaaS services (Flickr, Delicious, Salesforce, etc)
  • Web 2.0 and the mashups effect : you want to retrieve on one page your latest photos, aside your latest marks or latest custom requests, all coming from differents places

That's only feasible thanks to API, which allows interactions between some services/softwares over the net and retrieve data you will aggregate and use as you like.With an API, you can get / create / update / delete data in a system.

Going a little bit further over the years, we got mobile apps, HTML5 and Javascript :

  • Mobile apps, which are on the client side and are able to get data from somewhere over internet and display what you expect and of course manage some offline features so thar you app may work even if you have no connections.
  • HTML5 and its ability to provide especially some local storage and offline management, with a consequence that you can do more on client side, as for mobile.
  • Javascript :
    • Note : if for you Javascript means some crappy visual effects from the early 2000s, just forget this vision. Javascript evolves a lot on the last years, is far more robust than you exepct (but still hase some drawbacks as any language) and can now work both on client and server side. I will not enter into detals here but consider it as a real language as you do for Java, PHP, etc.
    • So Javascript will still provide you all the interaction you need on client side to interact with your application.
    • Have a look at AngularJS or BackboneJS which are HTML/JS framework to build web apps, on client side. See the AngularJS demo app you will build during the tutorial. Everything is done on client side, including search / sort, getting phone list and displaying phone details. For data, there are a few JSON files to provide data in a structured way.

The consequence of this shift is that you can move all or part of the logic on the client side. You only need to be able to fetch/retrieve your data over the network, then apply the logic and render the content & layout to the user on client side, whatever it is a browser, a mobile phone.

So let's imagine you plan to build a new application and know that you will have several devices to support, you could change the architecture as follows :

  • On backend side, just define an API to expose your data as you will use them, with some authentication & authorisation of course
  • On client side (web / mobile / ...), build an app/web app that will connect to your API and consume the data and render it as expected.

In a article in French called "From mobile to web" where the same principe is used (API on one side to provide data and a web app on client side), it even goes one step further by imaginting a single app that will autodetect if you use a mobile or desktop browser and then render the appropriate display. I'm not convinced it's the best solution as it could make your code quite messy.

05 Dec 2012, 22:16

Web Giants patterns

Octo, a French consulting company, published on their blog (in Frenh) a series about patternes used by Web Giants (Google, Amazon, etc). Patterns are about organisation, methodology, development and technology. So it not only concerns IT department but can also interest business ones

A few examples :

  • Minimum Viable Product
  • Reccurent Beta
  • Feature flipping
  • Hardware commodity
  • Features teams - see also how it works at Spotify
  • NoSQL data bases
  • DevOps
  • Build vs Buy
  • Pizza teams
  • Cloud first
  • Etc

For each topic, the presentation principles are simple :

  • Pattern definition
  • How web giants use the pattern
  • How can I use the pattern in my firm / department / team

They also published (still in French) a book you can buy or download.

They organised a breakfast some weeks ago to introduced their book and the topic in general, you can watch the video and/or read the minutes. Of course in French

I would strongly recommend French readers to read this serie as it shows in an easy way how traditionnal IT patterns are evolving and what we can learn from such companies.

Definitely a must read for me.