EcoConception Logicielle
9.0K views | +0 today
EcoConception Logicielle
Green IT, performance web, économies d'énergies, bref : éco-conception logicielle !
Curated by Mickael Ruau
Your new post is loading...
Your new post is loading...

Popular Tags

Scooped by Mickael Ruau
October 9, 2013 4:34 AM
Scoop.it!

Concepts - ppapi - Important concepts for working with PPAPI. - Pepper Plugin API - Google Project Hosting

Concepts - ppapi - Important concepts for working with PPAPI. - Pepper Plugin API - Google Project Hosting | EcoConception Logicielle | Scoop.it

The lowest level of the API is the C API, which is declared in the header files in ppapi/c. This represents the lowest level binary interface between a plugin and the browser.

For convenience, a simple C++ wrapper is provided in ppapi/cpp for managing many of the basic tasks of writing a plugin. Most plugin authors will want to use this wrapper if you're using C++. It is written strictly on top of the C API and all the source code will be contained in your plugin. The C++ wrapper is not a binary interface to the browser.

Mickael Ruau's insight:

The basic concept of PPAPI is the interface. In C, this is just a collection of function pointers associated with some similar concept. Interfaces are identified by a name, and should remain stable over time.

If additions are necessary in the future, they can be added by creating a "Interface2" with the additions.

 

This scheme allows the browser and the plugin to implement different capabilities and versions of interfaces over time.

 

For example, a plugin may want clipboard functionality provided on a Clipboard interface. If the browser supports working with the clipboard, it will return a pointer to the associated function pointers when queried with the interface name. If it doesn't support such operations, it will return NULL and the plugin will have to degrade. Likewise, a plugin may prefer a newer function on a Clipboard2 interface. When run under an older browser, only Clipboardmight be available and the plugin will have to make do.

 

Both the plugin and the browser expose a void* GetInterface(const char* name) function for the other to call to access functionality.

 
No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:32 AM
Scoop.it!

Matériel › Des minitels vieux de 25 ans tweetent sur internet ! › GreenIT.fr

Matériel › Des minitels vieux de 25 ans tweetent sur internet ! › GreenIT.fr | EcoConception Logicielle | Scoop.it

Les 14 et 15 septembre derniers, le projet CERVIN* a fait une étonnante démonstration d’obsolescence dé-programmée, grandeur nature à Grenoble. Organisé à l’occasion des Journées Européennes du Patrimoine, le « rehab lab » Minitel Redux a proposé aux visiteurs duCCSTI La Casemate, huit ateliers thématiques pour (re)découvrir le Minitel.

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:29 AM
Scoop.it!

Optimiser les accès de variables JavaScript - Bidouilleux d'Web

Optimiser les accès de variables JavaScript - Bidouilleux d'Web | EcoConception Logicielle | Scoop.it

Cet article est issu du blog de Luke Wagner. L’article original a été écrit en anglais par Luke Wagner. 

Mickael Ruau's insight:

J’ai récemment fini un projet visant à améliorer la manière dont SpiderMonkey implémente les accès de variable, ainsi j’ai pensé qu’il était temps d’expliquer comment cela fonctionne désormais.


En m’inspirant dubillet de mraleph ainsi que du livre Structure et Interprétation de Programmes, je vais illustrer l’implémentation en utilisant JavaScript comme langage d’implémentation.


Par conséquent, je vais traduire du JavaScript qui utilise des accès de variable complexe en du JavaScript qui n’en utilise pas, un peu comme les premiers compilateurs C++ traduisaient le C++ vers du C.

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:25 AM
Scoop.it!

Big Web App? Compile It!

Big Web App? Compile It!
Mickael Ruau's insight:

Une présnetatio d'asm.js et d'emscripten.

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:22 AM
Scoop.it!

asm.js - frequently asked questions

Q. Is asm.js a new language?A. No, it's just (a subset of) JavaScript. An asm.js program will behave identically whether it is run in an existing JavaScript engine or an ahead-of-time (AOT) compiling engine that recognizes and optimizes asm.js—except for speed, of course!

 

 

Q. What kind of performance benefits can I expect to get with asm.js?A. It's early to say, but our preliminary benchmarks of C programs compiled to asm.js are usually within a factor of 2 slowdown over native compilation with clang. We will publish more benchmarks as we collect them. 

 

 

Mickael Ruau's insight:
Q. Why not NaCl or PNaCl instead? Are you just being stubborn about JavaScript?A. The principal benefit of asm.js over whole new technologies like NaCl and PNaCl is that it works today: existing JavaScript engines already optimize this style of code quite well. This means that developers can ship asm.js today and it'll simply get faster over time. Another important benefit is that it's far simpler to implement, requiring very little additional machinery on top of existing JavaScript engines and no API compatibility layer. (...)Q. How can developers get good feedback if their code fails to validate?A. The directive prologue identifies the developer's intention that code should be considered valid asm.js. If the code fails to validate, the engine can report the validation error to e.g. a developer console or other developer tools. 

 

 

 

 

 

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:19 AM
Scoop.it!

asm.js: closing the gap between JavaScript and native

asm.js: closing the gap between JavaScript and native | EcoConception Logicielle | Scoop.it

asm.js defines a subset of JavaScript that can be compiled to fast executables. It has been created at Mozilla by David Herman, Luke Wagner and Alon Zakai. According to the specification, “[asm.js] effectively describes a safe virtual machine for memory-unsafe languages like C or C++.” This blog post describes how asm.js works, it is based on the specification.

Mickael Ruau's insight:

asm.js code is packaged in specially marked functions (“asm.js modules”) that have the following structure:

function MyAsmModule(stdlib, foreign, heap) { "use asm"; // marks this function as an asm.js module // module body: function f1(...) { ... } function f2(...) { ... } ... return { export1: f1, export2: f2, ... }; }
No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:15 AM
Scoop.it!

Coder For Raspberry Pi : un serveur web dans un Raspberry Pi ! - Actualites - Programmez.com

Coder For Raspberry Pi : un serveur web dans un Raspberry Pi ! - Actualites - Programmez.com | EcoConception Logicielle | Scoop.it
Le Raspberry Pi est un nano-ordinateur de la taille d'une carte de crédit, monocarte et équipé d'un processeur ARM. Il peut tourner avec des systèmes Linux en plusieurs variantes. Pour un prix de 20 euros, il fait fureur auprès des geeks.
Mickael Ruau's insight:

Le projet Coder For Raspberry Pi, lancé par Google, permet de transformer votre Raspberry Pi en un serveur web et d'y développer de petites applications en HTML, CSS, et Javascript, via un navigateur Web.

 

Il suffit de télécharger le code proposé par Google et de le copier sur une carte SD que vous donnerez à lire à votre Raspberry Pi.

Il ne vous restera plus qu'à connecter un clavier et un écran à la bête pour commencer à coder :-)

Site : http://googlecreativelab.github.io/coder/

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:11 AM
Scoop.it!

OdinMonkey booste les performances JavaScript de Firefox - Forum du club des développeurs et IT Pro

OdinMonkey booste les performances JavaScript de Firefox - Forum du club des développeurs et IT Pro | EcoConception Logicielle | Scoop.it
OdinMonkey booste les performances JavaScript de Firefox Firefox
Mickael Ruau's insight:

Ce projet se positionne comme un sérieux concurrent de Native Client (technologie permettant d'exécuter du code C/C++ à l'intérieur du navigateur dans un environnement protégé) de Google.

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:07 AM
Scoop.it!

Firefox 22 : un moteur JavaScript de rupture

Firefox 22 : un moteur JavaScript de rupture | EcoConception Logicielle | Scoop.it
Compiler le code JavaScript à la volée pour se rapprocher de la performance d'une exécution d'un client natif. Tel le projet de la fondation Mozilla avec le projet OdinMonkey.
Mickael Ruau's insight:

Avec Firefox 18, Mozilla avait déjà cherché à faire passer une nouvelle étape à son moteur JavaScript.

Avant de convertir le code en langage machine, SpiderMonkey introduisait en effet une phase intermédiaire, appliquant une batterie d'algorithmes pour optimiser cette traduction finale.


En vue de l'arrivée deFirefox 22 en juin prochain, la fondation Open Source entend améliorer encore ce processus d'optimisation.


Au travers d'un nouveau projet (OdinMonkey), elle travaille sur asm.js : un sous-ensemble de JavaScript, visant à obtenir un code applicatif pré-optimisé, et ainsi "tendre vers des performances proches d'un client natif".


(...)

Force est de constater, enfin, qu'asm.js est aussi dessiné pour Emscripten - qui, rappelons le, est conçu pour compiler du code C/C++ en JavaScript.


Ce qui en fait d'OdinMonkey un concurrent potentiel du Native Client de Google.


Prenant en charge les configurations x86/x64 et les architectures ARM, OdinMonkey ciblera d'emblée les terminaux Windows, Mac et Linux. Ce projet de Mozilla est d'ores et déjà intégré dans la build Firefox Nightly.

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 3:57 AM
Scoop.it!

Google Native Client, pour exécuter du code natif dans Chrome

Google Native Client, pour exécuter du code natif dans Chrome | EcoConception Logicielle | Scoop.it
La technologie Native Client de Google représente un projet un peu particulier dont le but est de pouvoir faire exécuter au navigateur du code natif.
Mickael Ruau's insight:

Native Client est abrégé NaCl, un acronyme jeu de mot, puisque NaCl est le symbole du chlorure de sodium, c’est-à-dire le sel. Or, Native Client est accompagné par une infrastructure de plug-ins nommée Pepper, autrement dit poivre. 

Le travail sur Native Client avance lentement, car le projet rassemble plusieurs objets, mais l’ensemble est placé sous une obligation de sécurité. Google estime désormais que cette dernière est équivalente à ce que l’on trouve pour le JavaScript actuellement, donc à travers l’utilisation d’une machine virtuelle. Ici, l’utilisation de Pepper est une avancée importante.


Pepper est une évolution d’un vieux standard créé par Netscape : NPAPI. Son utilité est inscrite dans son appellation : Netscape Plugin Application Programming Interface, autrement dit une infrastructure pour les plug-ins. On la trouve dans de très nombreux plug-ins actuels, mais Google n’était pas satisfaite des limitations de cette technologie. Pepper réunit plusieurs interfaces qui vont pouvoir permettre l’utilisation du matériel de l’ordinateur, notamment des cartes graphique et son, bien que des proportions limitées.


Garder tout le code dans des zones isolées

L’aspect sécurité intervient d’ailleurs à travers Pepper. Débutée comme une simple évolution de NPAPI pour s’affranchir de certaines limites, l’infrastructure a évolué de manière propre, mais avec une différence de taille : là où NPAPI permet de charger des plug-ins en dehors du navigateur, Pepper le fait « dans » ce dernier, permettant ainsi au passage d’appliquer toutes les sécurités inhérentes à Chrome. Dont, bien entendu, l’isolation des processus dans des sandbox, ces espaces mémoire fermés à tout impact sur le reste du système (la lecture reste autorisée).


(...)

On comprend évidemment pourquoi cette technologie est aussi importante pour Google : puisque la firme s’oriente toujours plus vers le cloud computing et donc les services distants, NaCl pourrait permettre l’exploitation des ressources locales via du code natif.

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 3:47 AM
Scoop.it!

Un plug-in permet de faire tourner du code natif dans Chrome, un développeur propose une démo de la mis en application de NaTcl

Un plug-in permet de faire tourner du code natif dans Chrome, un développeur propose une démo de la mis en application de NaTcl | EcoConception Logicielle | Scoop.it
Un développeur vient de mettre sur pied une solution permettant d'exécuter des scripts Tcl (Tool Command Language) dans le navigateur Google Chrome de la même manière que des scripts JavaScript et ce en utilisant Google Native Client.Native Client...
No comment yet.
Scooped by Mickael Ruau
October 8, 2013 12:02 PM
Scoop.it!

Réparer soi-même son smartphone

Réparer soi-même son smartphone | EcoConception Logicielle | Scoop.it

Le site internet Sosav.fr propose des pièces détachées et des guides de réparation de produits high-tech. De quoi donner une seconde jeunesse à son Smartphone ou à sa tablette à moindres frais.

 

Projjekt's comment, October 8, 2013 12:30 PM
Also : http://www.ifixit.com/Guide
Scooped by Mickael Ruau
October 8, 2013 11:49 AM
Scoop.it!

PHP: XHProf

XHProf est un profileur hiérarchique et instrumental léger. Lors de la phase de collecte de données, il garde trace des nombres d'appels et des métriques inclusives pour les arcs dans le graphique dynamique d'appels d'un programme. Il calcule des métriques exclusives lors de la phase de rapport/envoi, comme la durée accumulée, le temps CPU, ainsi que l'utilisation de mémoire. 

Mickael Ruau's insight:

Un profil de fonction peut être décomposé par fonctions appelantes ou appelées. XHProf gère les fonctions récursives en détectant les cycles dans le graphique d'appels lors de la collecte des données, et évite les cycles en donnant des noms uniques dépendant de la profondeur lors des invocations récursives.

 

XHProf inclut une interface utilisateur HTML simple (écrite en PHP). Le navigateur web permet ainsi de consulter le résultat du profilage de façon simple, ainsi que de partager les résultats. Une image du graphique d'appels est également fournie.

 

Les rapports XHProf peuvent souvent être utiles pour comprendre la structure du code exécuté. La nature hiérarchique des rapports peut être utilisée pour déterminer, par exemple, la chaîne d'appels ayant conduit à l'appel d'une fonction particulière.

XHProf permet de comparer deux exécutions (i.e. rapports différentiels) ou d'agréger des données issues de plusieurs exécutions.

 

Les rapports différentiels et agrégés, tout comme les rapports d'exécution unique, offrent une vue plate ainsi qu'une vue hiérarchique du profilage.

 

Vous pouvez trouver plus d'informations sur la page » facebook de xhprof.

  
No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:33 AM
Scoop.it!

The Emscripten Open Source Project on Ohloh

The Emscripten Open Source Project on Ohloh | EcoConception Logicielle | Scoop.it
The project page on Ohloh.net for Emscripten. Emscripten is an LLVM-to-JavaScript compiler.
Mickael Ruau's insight:

It takes LLVM bitcode (which can be generated from C/C++, using llvm-gcc or clang, or any other language that can be converted into LLVM) and compiles that into JavaScript, which can be run on the web (or anywhere else JavaScript can run).

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:31 AM
Scoop.it!

Emscripten - Transformez du C / C++ en JavaScript - Korben

Emscripten - Transformez du C / C++ en JavaScript - Korben | EcoConception Logicielle | Scoop.it

Hier, je vous parlais de codecs 100% en javascript et aujourd'hui, grâce à David (Merci !), je découvre Emscripten, un projet open source qui permet de transformer du bit code LLVM (Low Level Virtual Machine = Machine virtuelle de bas niveau) en JavaScript. Autrement dit, Emscripten permet d'exécuter sur le web (via du JavaScript) n'importe quel langage compatible avec la LLVM.

Mickael Ruau's insight:

Emscripten permet donc de "compiler" par exemple du C/C++ en JavaScript (je ne suis pas sur que l'utilisation du mot "compiler" soit la meilleure, mais vous comprenez l'idée...) et de l'exécuter dans n'importe quel navigateur. Et ça ne se limite pas au exécutions simple. Des projets comme Poppler, Python, Lua, FreeType, eSpeak, Ruby ou Bullet ont aussi été "traduits" en JavaScript.

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:27 AM
Scoop.it!

Does JavaScript have a bytecode, like Java?

Does JavaScript have a bytecode, like Java? | EcoConception Logicielle | Scoop.it

The web and thus JavaScript is slowly turning into a great platform. Part of the allure of the (partially) competing Java platform is that it has a core that goes beyond “Java the language”: The Java Virtual Machine (JVM). There are now many languages that target the JVM, for example: Groovy, JRuby, Fantom, Jython, Scala, ABCL, Clojure, and Gosu. Java class files store JVM programs as Java bytecode, a compact binary format that source code is compiled to. Does JavaScript have something similar?

 
Mickael Ruau's insight:

To summarize: The JavaScript motto “source code is the new binary” and not minding the parsing is a surprising development. Source code minification is also interesting, but a logical consequence of this motto.

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:23 AM
Scoop.it!

asm.js

asm.js | EcoConception Logicielle | Scoop.it

This specification defines asm.js, a strict subset of JavaScript that can be used as a low-level, efficient target language for compilers. This sublanguage effectively describes a safe virtual machine for memory-unsafe languages like C or C++. A combination of static and dynamic validation allows JavaScript engines to employ an ahead-of-time (AOT) optimizing compilation strategy for valid asm.js code.

 
Mickael Ruau's insight:

This specification is working towards a candidate draft for asm.js version 1. A prototype implementation of an optimizing backend for asm.js is in progress for Mozilla's SpiderMonkey engine.

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:20 AM
Scoop.it!

JavaScript myth: JavaScript needs a standard bytecode

JavaScript myth: JavaScript needs a standard bytecode | EcoConception Logicielle | Scoop.it

The idea is obvious: Why not standardize the bytecode of the virtual machines (VMs) that JavaScript runs on? That would mean that JavaScript programs could be delivered as bytecode and thus would be smaller and start more quickly (after having been loaded). Additionally, it would seem to be easier to port other languages to web browsers, by targeting that bytecode. This post makes its case in two steps: First, it shows that bytecode has several disadvantages. Second, it explains that source code is not as bad a solution as it seems.

Mickael Ruau's insight:
I hope that this post has convinced you that delivering JavaScript programs as source code is not as different as it seems from delivering them as bytecode, especially when size reduction techniques are used. Moreover, while source code takes up more space and loads more slowly, it is also more flexible than bytecode – a trait that is very valuable on the web.Related reading“Bytecode Standard In Browsers” – A Minute With Brendan EichA first look at what might be in ECMAScript 7 and 8SourceMap on Firefox: source debugging for languages compiled to JavaScript [update: WebKit, too]“JSZap: Compressing JavaScript Code”, by Martin Burtscher, Benjamin Livshits, Gaurav Sinha, Benjamin G. Zorn. Microsoft Research, 2010.  
No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:17 AM
Scoop.it!

L’assembleur du Web

L’assembleur du Web | EcoConception Logicielle | Scoop.it
Esquisses, brouillons et notes en vrac d'un apprenti geek intéressé par la liberté
Mickael Ruau's insight:
Asm.js

La spécification ne conserve qu’un sous-ensemble strict d’EcmaScript, respectant certaines règles. Ce n’est donc pas, à la différence de CoffeeScript ou TypeScript par exemple, un nouveau langage. Le code asm.js est du JavaScript valide qui peut s’exécuter dans tous les navigateurs récents.

 

Parmi les exemples d’optimisation, asm.js s’assure que les variables ne changent pas de type. Le code inclut des indications sur le type des variables, afin que l’interpréteur n’ait pas à le deviner. Le langage permet également une meilleure utilisation de la mémoire, limitant les ralentissements causés par le garbage collector (le code asm.js utilise des tableaux typés (_typed arrays_) comme pile pour certaines opérations).

 

Pour indiquer à l’interpréteur JS que le code respecte la spécification et peut être optimisé, il suffit d’ajouter une nouvelle directive "use asm" de syntaxe similaire au "use strict".

 

Si l’interpréteur ne reconnait pas cette directive, il l’ignorera et interprètera le code normalement. Sinon, il validera que le code respecte bien la norme, et si oui, l’exécutera de façon optimisée.

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:14 AM
Scoop.it!

Asm.js : du JavaScript compilé pour Firefox - Actualites - Programmez.com

Asm.js : du JavaScript compilé pour Firefox - Actualites - Programmez.com | EcoConception Logicielle | Scoop.it
Les éditeurs de navigateurs font la course à la performance.  Dans ce contexte, la fondation Mozilla explique travailler sur asm.js, qui se pose comme un concurrent à NaCL de Google Chrome.
Mickael Ruau's insight:

Les éditeurs de navigateurs font la course à la performance.  Dans ce contexte, la fondation Mozilla explique travailler sur asm.js, qui se pose comme un concurrent à NaCL de Google Chrome.

 

Asm.js consiste en des spécifications d'un sous-ensemble de JavaScript, qui peut être compilé en code natif, via Emscripten. Le résultat obtenu ne sera que moitié moins performant à ce que l'on obtiendrait avec du code C ou C++ pur, ce qui est excellent.

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 4:10 AM
Scoop.it!

Réflexion sur ASM.js ou quand le javascript deviens enfin performant : - LinuxFr.org

Réflexion sur ASM.js ou quand le javascript deviens enfin performant : - LinuxFr.org | EcoConception Logicielle | Scoop.it
Réflexion sur ASM.js ou quand le javascript deviens enfin performant :
Mickael Ruau's insight:

Pour le meilleur ou pour le pire, javascript est devenu incontournable. Néanmoins, malgré les efforts constants des navigateurs pour améliorer le moteur, il reste extrêmement lent dans certaines situations, et ce, à cause de certaines limitations intrinsèques au langage (comme le boxing, le garbages collector…). Jusqu’à présent, mozilla refusait un peu la réalité.


Lorsque dart est sortie, le seul argument qui me paraissait honnête était le coût de maintenance non négligeable à ajouter à l'existant.


Pour native client, l'argument était plus évident : les binaires ou bytecodes n'étaient pas l'idéal pour le web qui est supposé être ouvert tout en introduisant une nouvelle technologie à maintenir.

 

Ainsi, la réponse au problème de la part de mozilla a enfin était annoncé sous le nom d' asm.js:

un sous-ensemble de javascript qui permet enfin d'avoir des performances proches de native client (et aussi une protection mémoire similaire du code compilé à la volé dans certain cas…).

 

Cet exploit est réalisé grâce à quelques astuces syntaxiques qui permettent de donner des indices de typages des variables,des restrictions dans les fonctionnalités les plus coûteuses ainsi que l'utilisation d'un buffer (typeArray) comme heap dans le programme pour éviter tout problème de garbage collector…

avis

J'avoue être très agréablement surpris par cette solution : ce n'est que du javascript, ainsi le fallback est évident à mettre en place car il sera exécuté par tout les navigateurs sans aucune modification. Pour toute personne intéressé par le sujet, je vous propose d'aller voir leblog suivant

 

Cependant, pour un développeur qui aime le bas niveau et le web, tout n'est pas parfait.

Tout d'abord, il n'existe que deux types classiques le int et le double. D'après moi, cette restriction provient du moteur même de firefox (spidermonkey/ionmonkey) qui est lui-même limité à ces types. Il existe d'autres raisons  plus obscures qui n'ont de sens que si vous pensez à l'implémentation (les type boolish/intish…). De mon point de vue, ce défaut mineur sera probablement corrigé lorsque les implémentations seront plus matures et que les interactions entre la partie codée en asm.js et javascript seront définies plus strictement.

En effet, asm.js permet d’interagir directement avec votre moteur javascript sans passer par des tableaux de bytes, provoquant un besoin de définir les interactions entre le code du js optimisé et le js interne (appelé ffi pour les plus curieux).

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 3:59 AM
Scoop.it!

Exécuter du code natif dans Chrome avec Google Native Client

Exécuter du code natif dans Chrome avec Google Native Client | EcoConception Logicielle | Scoop.it

« Native Client est une technologie open source qui vous permet de mettre au point des applications Web qui exécutent de façon transparente et sure du code natif à l'intérieur du navigateur », indique l'équipe en charge du développement de Chrome.

Mickael Ruau's insight:

Ce kit de développement, accessible sur toutes les plateformes x86, est composé d'une série d'interfaces de programmation ainsi que d'une documentation visant à permettre à la mise au point de modules écrits en C ou en C++ et capables de communiquer avec des éléments HTML ou JavaScript exécutés au sein du navigateur. Le code mis au point par son entremise sera exécuté au sein d'un bac à sable (sandbox), censé garantir la sécurité de la machine hôte.

L'isolation des processus NaCl (surnom de Native Client, NaCl est le symbole chimique du chlorure de sodium, soit l'appellation scientifique de notre bon vieux sel de table) sera assurée par le biais de Pepper (poivre), la série d'interfaces qui permettra d'installer ces plugins au sein de Chrome. Egalement open source, Pepper dérive pour sa part du projet Netscape NPAPI (Netscape Plugin Application Program Interface).

No comment yet.
Scooped by Mickael Ruau
October 9, 2013 3:55 AM
Scoop.it!

Google NaCl : Du code natif dans le navigateur: Page 2 of 2

Google NaCl : Du code natif dans le navigateur: Page 2 of 2 | EcoConception Logicielle | Scoop.it
Alors que Chrome OS déplace le débat au sein du navigateur, ce choix technologique ne va pas sans inconvénients : le code exécutable au sein d'un navigateur est autrement plus lent que du code natif.
Mickael Ruau's insight:

En somme, Google résout ici un problème épineux de Chrome OS, mais sachant que les systèmes d'exploitation concurrents n'ont pas les mêmes problématiques, il est difficile d'évaluer dans quelle mesure cette initiative trouvera un écho chez les autres fabricants de matériels et éditeurs de navigateurs.

No comment yet.
Scooped by Mickael Ruau
October 8, 2013 12:20 PM
Scoop.it!

Video Compression Secrets: Smaller Files, Better Quality by Stephen Haskin : Learning Solutions Magazine

Video Compression Secrets: Smaller Files, Better Quality by Stephen  Haskin : Learning Solutions Magazine | EcoConception Logicielle | Scoop.it

As a general conclusion, we would say if you can use YouTube, by all means do so. Yes, you get the frame around the picture, but YouTube can adapt to the constantly changing environment in video as well as delivering your content to different platforms.

Mickael Ruau's insight:

 If you’re only encoding one or two videos at a time, Sorenson Squeeze is not worth the money. But if you have a training department and are encoding tens or dozens of videos at one time, then it becomes a bargain. I didn’t get to test the Sorenson Server, but I’m sure it’s good. The idea of encoding on the fly when there’s a lot of different formats and devices to deliver to makes a product like Squeeze an attractive alternative to rendering and then showing.

The best codec to keep file sizes small is Windows Media (.wmv). Microsoft has done an excellent job of combining small file size and very good temporal quality. The format isn’t necessarily good for iOS devices, but if you can manage to get your projects on YouTube (where you can make a video private or even have a password), you will be able to deliver everywhere. 

No comment yet.
Scooped by Mickael Ruau
October 8, 2013 11:51 AM
Scoop.it!

PHP: weakref

Les références faibles fournissent une façon non-intrusive de gérer les objets éphémères. Contrairement aux références normales (fortes), les références faibles n'alertent pas le gestionnaire de la libération de l'objet. Pour cette raison, un objet peut être détruit même si une référence faible vers cet objet existe toujours. Dans de telles conditions, la référence faible devient invalide de façon transparente.

Mickael Ruau's insight:

class MyClass {
    public function __destruct() {
        echo "Destruction de l'objet !\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

No comment yet.