Bestconsulting

Just another WordPress weblog

A feed could not be found at http://www.google.com/reader/public/atom/user/01618052213436366910/state/com.google/broadcast

ericreboisson's shared items in Google Reader

NoSQL : un mouvement qui prend de l’ampleur

Il y a un nouveau mouvement dont je voulais vous parler depuis quelques temps qui commence à faire du bruit : NoSQL (Not only SQL). Lancé au mois de juin 2009 à l’initiative de quelques architectes de grands sites communautaire comme FaceBook ou LinkedIn, ce mouvement prend de l’ampleur. La première soirée du groupe NoSQL France a eu lieu en janvier à Paris à l’initiative d’Octo Technology. L’objectif de ce mouvement est de parler des solutions de bases de données non relationnelles majoritairement utilisées par les grands sites communautaires. Les sites à fort trafic utilisent tous des solutions non relationnelles pour leurs bases de données. En fait au rythme où vont les choses, le modèle relationnel est remis en question dans toutes les architectures où les principes ACID ne peuvent pas être respectés. Je vous avais déjà parlé du Théorème de CAP qui montre qu’une donnée ne peut pas être à la fois consistante, accessible à tout moment par tous, et partitionnée de manière sûre :

[...] le Théorème de CAP d’Eric Brewer, utile lorsque l’on parle de données massivement partagées :
- Strong Consistency: all clients see the same view, even in presence of updates
- High Availability: all clients can find some replica of the data, even in the presence of failures
- Partition-tolerance: the system properties hold even when the system is partitioned

Ce qui donne en français :
- L’ensemble des clients voient la même vue, même lorsqu’il y a des mises-à-jour
- Massivement disponible : tous les clients peuvent trouver de la donnée répliquée, même lorsqu’un crash survient
- Partitionable : votre app-serveur et votre base de données peuvent être installé sur 2 machines, votre système est tolérant au partitionnement.

Il s’avère que seul 2 des 3 postulats peuvent être respectés en même temps

C’est donc à l’initiative des architectes des solutions de Cloud Computing et des sites communautaires, que ce mouvement NoSQL a débuté. Lors des premières réunions aux USA, il y a eu ainsi des présentations des projets suivants:
- Le Projet Voldemort par Jay Kreps, Linkedin (slides pdf ppt, video1, video2)
- Le projet Apache Cassandra – Avinash Lakshman, Facebook (slides pdf ppt, video)
- Le projet Dynomite par Cliff Moon, Powerset (slides, video)
- Le projet Hadoop HBase – Ryan Rawson, Stumbleupon (slides, video)
- Hypertable – Doug Judd, Zvents (slides pdf ppt, video1, video2)
- Le projet Apache CouchDB par Chris Anderson, couch.io (slides, video1, video2)

Le projet Voldemort par exemple, utilisé par les équipes d’Algo Deal en France, est une énorme Map distribuée, capable de redistribuer la donnée entre plusieurs serveurs, en divisant celle-ci et en proposant une architecture transparente d’accès à un espace clé-valeur. LinkedIn s’en sert aussi en partie sur leurs serveurs. Avec 4 opérations de bases, c’est une API très simple (GET,PUT,GET_ALL et DELETE) qui rappelle le concept de JavaSpace il y a 10 ans. Jay Kreps dans sa présentation parle d’un environnement avec 12 serveurs, 300 millions d’opérations par jour, 4 milliards d’objets stockés dans 10 datastores pour son équipe seulement…

Apache Cassandra est une base de données distribuées, caractérisée par une structure de données par colonnes et super-colonnes, là où Voldermort est une simple hashmap. En termes de performances, un exemple sur une base MySQL de 50Gb montre des temps de lecture moyen de 350 ms, et de 1.5 ms pour Cassandra. Pour réaliser cette prouesse, Cassandra est une base de données distribuées, qui fonctionne donc avec plusieurs serveurs physiques. Vous vous en êtes certainement déjà servi si vous avez un compte sur Facebook (ce qui n’est pas mon cas) car cette technologie a été créé par les équipes de Facebook. L’accès à un nœud Cassandra s’effectue via l’API Apache Thrift. Un guide complet pour Mac OS X est dispo ici. C’est encore délicat à mettre en oeuvre par rapport à d’autres projets, mais les concepts sont intéressants.

Je passe sur Dynomite, un projet en Python encore trop en Alpha, pour parler de HBase, la base de données du projet Hadoop. C’est un projet qui vise à proposer une solution lorsque vous devez stocker une quantité énorme de données, et qu’une répartition physique de celles-ci devient obligatoire. Pensez à Google, c’est un candidat pour HBase. Thrift là encore peut être utilisé pour l’accès aux données. HBase est un projet construit sur Java, et la programmation est clairement plus facile que d’autres projets. On retrouve les concepts de Quorums, d’éventuellement consistant (Eventually Consistent, lisez cet article !) bref ce qui caractérise un système de données massivement distribué.

Hypertable est un projet porté par les équipes de ZVents qui est sponsorisé par Baidu, l’un des plus gros moteurs de recherche en Chine. Peut-être plus proche de l’approche classique par Table, Hypertable n’est pas très bien documenté et il est difficile de connaître ses points forts par rapport aux autres. Il dispose lui aussi d’une interface pour Apache Thrift.

Enfin Apache CouchDB est assez connu maintenant dans la communauté Java. C’est une base orientée document, capable d’utiliser l’algo Map-Reduce pour effectuer de la recherche sur les données. Ecrit avec le langage Erlang, l’accès s’effectue avec une API Javascript/JSON orientée REST ce qui ouvre l’accès de la base à un très grand nombre de clients. CouchDB n’est pas une base relationnel, il n’y a pas de schémas. L’indexation des documents avec un B-Tree construit sur le nom du document et un numéro de séquence permet de gérer les versions des documents tout en assurant des performances intéressantes. Pour un moteur de gestion de documents (GED) ou pour un moteur de gestion de pages webs (WCM) je pense que CouchDB doit être intéressant à regarder. Je pense aussi à un JCR (Java Content Repository) où le serveur serait CouchDB par exemple… (ça c’est pour Julien V. qui râle sur Tuan sur Twitter) (voir aussi ce comparatif entre JCR et CouchDB)

Et un standard ?
Il nous manque quelque chose pour l’instant pour que ces solutions soient exploitables dans le cadre d’une solution d’entreprise : un standard. Merci au langage SQL et aux drivers JDBC. Grâce à eux nous pouvons coder avec une base HSQL en développement, puis une base MySQL en production. Il manque encore un peu de recul, de bonnes pratiques, et de personnes capables de factoriser ces concepts pour créer un nouveau standard. Il y a une niche en ce moment pour qu’un éditeur passe devant les autres et propose une solution. Mais le marché aujourd’hui est piloté par les grands sites comme MySpace, Facebook ou Google, les seuls avec ces problématiques, les seuls avec les finances suffisantes pour explorer et développer ce type de solution.

Et toi ? Tu comptes t’en servir ?
Dans notre projet j’y ai pensé. Neo4J est une base qui travaille sur la théorie des Graphes pour modéliser les tables sous la forme de Nodes, avec des liens entrants, des liens sortants, et qui permet s’abstraire des contraintes des tables relationnelles, donc de monter en charge plus facilement. Grails a un plugin Neo4J qui offre un mapping limité, afin d’utiliser directement les objets d’un domaine Grails avec Neo4J. Il y a aussi un plugin Google App Engine, qui permet de travailler avec la base de données type BigTable de GAE et une application Grails.

Les 4 types de bases NoSQL
Nous venons de voir qu’il existe 4 catégories de solution dans le monde du « Not Only SQL ».
- les solutions clés-valeurs comme Voldemort, Dynomite ou le projet Tokyo
- les solutions basées sur le concept de BigTable de Google comme HBase ou Hypertable
- les solutions orientées document avec la recherche et l’indexation en tête, inspiré par Lotus Notes, comme CouchDB
- les solutions basées sur la théorie des graphes (Euler) comme Neo4J, AllegroGraph ou VertexDB

Les solutions les plus simples comme Voldemort permettent de gérer facilement un grand nombre de données. A l’opposé, les solutions comme Neo4J permettent de gérer des graphes d’objet où les relations entre les données sont très importantes par rapport à un modèle plat. Ceci a un coût en complexité et en performance. Un modèle graphique ressemble à un modèle clé-valeur où il serait possible de définir des relations entre les objets. Le sens des relations est important, l’exemple que j’ai vu était ce dessin de super-vilains de Marvel. Une structure en graphe enfin peut être traversée par un Visitor, ce qui permet de réaliser un véritable crawler et d’extraire des données de votre base… Neo4J est une solution de persistance pour des applications développées aussi avec des choses plus exotiques comme Qi4J dont nous avons parlé il y a quelques temps.

Enfin Google a sorti un papier intéressant en juin 2009 sur la théorie des Graphes autour de leur projet « Google Pregel », si vous cherchez un article pour bien dormir ce soir, je vous le conseille chaudement.

Je vous tiendrai informé de la prochaine réunion du groupe NoSQL sur Paris, car c’est aussi un sujet sur lequel je travaille.

Références
- Le Débriefing officiel de la première rencontre NoSQL en juin 2009
- Le Google Group NoSQL si vous voulez « en être » et briller aux diners du JUG
- Article de Denis Dollfus sur NoSQL
- Neo4J et Graph SQL une présentation intéressante. Le volume des données s’accroît rapidement, et les solutions relationnelles vont/doivent mourir. Sympa pour Oracle.
- Google Pregel avec des pointeurs intéressants.
- Devoxx 2009, présentation HBase article très intéressante de Michael Figuiere de Xebia
- Amazon SimpleDB, le Harry Potter de Voldemort ? et Des Alternatives aux Bases de données relationnelles, très bonne introduction au monde du NoSQL par Olivier Mallassi d’OCTO Technology.

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | Nicolas Martignole

20 Awesome Workspaces with Multi Monitor Setups for inspiration

Being a geek is cool. Geeks with multi monitor workstations are awesome !

Here are some examples of what being a uber-geek really would look like.

1. Count them if you can !

totalAldo

via totalAldo

 

2.  This dude’s got a revolving chair probably !

fun3MD

via fun3MD

 

3.  Beauty !

Schodts

via Schodts

 

4.  Flat screen monitors are so uncool !

alibash

via alibash

 

5.  A bit of old and new !

Rubin_110

via Rubin_110

 

6. Sound Recording Studio

Ross

via rossimlach

 

7.  More Monitors, More Colors  !

Vortex324

via Vortex324

 

8. Most likely an Apple fan !

mitch_haile

via mitch haile

 

9. One monitor for Tweetdeck !

Erebus

via Erebus and MrsE

 

10. Three is sweet

aaron via aaron_g_2008

 

11. Three monitors + Lighting = Awesome !

Justin_Griswold

via Justin Griswold

 

12.  Three monitors and a lot of cable !

poeticdragon

via poeticdragon

 

13.  More Monitors, More Productivity, More Clutter !

JasonCross

via Jason Cross

 

14. 3760 x 1600 Resolution

chi-ryu

via chi-ryu

 

15.  Minimalistic bliss !

schoott

via schoott

 

16.  Its all about inches !

Farkonas

via Farkonas

 

17.  Horizontal , Vertical – you got it !

andybee21

via andybee21

 

18.  Its a gaming console, oh wait.. an office !

kilergfx

via killergfx

 

19.  The Matrix !

Stefan_didak

via Stefan Didak

 

20.  The ultimate gaming console !

sumeetkpatel

via sumeetkpatel

Which is your favorite ?

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | Mani Karthik

The Best Google Chrome Extensions

Last month Google, finally, opened up there extension directory for Google Chrome. The bog-standard browser is pretty good as it is – its very fast (beating Firefox with ease) and seems to render most web pages properly (I know, it wouldn't be hard to beat IE). So, thumbs up so far. Now with the added functionality of extensions you can make Chrome just as powerful as Firefox, and as a bonus you don't seem to lose any speed, something FF struggles with.

It all sounds good, doesn't it… There are some down-sides, though – some of the extensions are a little bit buggy (most are still in Beta) and others do lack a fair bit of polish. But if you choose your extensions carefully you will be able to build yourself a great web browsing environment.

Remember, the extensions directory has only just opened, with time Chrome and its extensions may just win the web browser war… Then again Firefox may come back fighting back, it always has done, hasn't it?

In today’s news round-up we have collected the best resources to help you choose best extensions for Chrome.

11 Chrome Extensions, For Starters

Google Chrome Extensions

Google promised that Chrome would be fast to launch and fast to load web pages, but people predicted it would fail with the arrival of its extensions. Well, the extensions are here (at least for some of us) and surprisingly they do not affect the browser’s performance.

Here are a 11 cool extensions to get you started and ease you into your possible transitions to Chrome. Maybe not yet.

11 Chrome Extensions, For Starters

Creating a Web Development Environment using Google Chrome Extensions

Google Chrome Extensions

How powerful can Chrome actually be for designers and developers? In just under a month there are dozens upon dozens of new extensions specifically developed for web developers, and in this article they have collected the best and most useful extensions for creating your own personal Google Chrome web development environment.

Creating a Web Development Environment using Google Chrome Extensions

Make the Most of Chrome with These 13 Excellent Extensions

Google Chrome Extensions

Lifehacker, in this article, have pulled 13 fresh extensions from the extension gallery that were worthy of highlighting. They all have something a bit different from the widely-available bookmarklets, or at least fill a crucial need for those who use the web productively.

Make the Most of Chrome with These 13 Excellent Extensions

How To Create Your Own Google Chrome Extension

Google Chrome Extensions

Developing your own Google Chrome extension is surprisingly easy. You might think you need all types of development skills and coding knowledge, but it’s really no more difficult than creating or tweaking a web page. If you know HTML/CSS and are somewhat familiar with Javascript, you can have a simple extension up and running in no time.

How To Create Your Own Google Chrome Extension

By Paul Andrew (Speckyboy and speckyboy@twitter).

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | speckyboy

Download Glary Utilities Pro for Free; Today Only [Dealhacker]

Windows: Normally $40, Glary Utilities Pro—a system utilities suite—is available for free, today only.

We've highlighted the free version of Glary Utilities before, today you've got a chance to grab the professional edition for free. Although you can certainly get all the functionality found in Glary Utilities Pro by using a collection of open-source or freeware tools for the cool price of free you might as well save yourself the running around and grab a copy of the Pro edition which includes features like an uninstall manager, registry repair, a startup manager, secure file deletion, disk analysis and a duplicate finder, as well as process manager.

Have a good system utility to share free—temporarily?—or otherwise? Let's hear about it in the comments. Glary Utilities Pro is Windows only and free until the end of the day at the link below.



Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | Jason Fitzpatrick

Pombo – Pour retrouver le voleur d’un ordinateur linux

3024160532 694f1a40ec b Pombo   Pour retrouver le voleur dun ordinateur linux

Pombo est un petit script pour linux proposé hier par l’ami SebSauvage dans les commentaires de cette news. L’intérêt de cet outil est de vous permettre de retrouver votre ordinateur en cas de vol. Pombo fonctionne sur le principe du client serveur. Vous devez à la fois mettre en place le script sur votre ordinateur mais aussi un petit bout de PHP sur un serveur web accessible depuis internet. Ainsi Pombo pourra déposer sur ce serveur 3 types de fichiers :

  • Un rapport textuel dans lequel se trouve toutes les informations de connexion de votre ordinateur (adresse IP, date, nom du système, une liste des points wifi à proximité, la liste des routeurs et les connexions établies par l’ordinateurs à des serveurs distants)
  • Une capture écran de ce que l’utilisateur est en train de faire
  • Une photo par webcam à l’insu du voleur

Génial ! Evidemment, toutes les données sont chiffrées avec gpg et il vous faudra la clé de déchiffrement pour pouvoir livrer ces documents à la police.

Pombo a besoin pour fonctionner des petits softs suivants :

  • scrot (pour les captures d’écran)
  • streamer (pour les photos par webcam)
  • pngnq (pour réduire la taille des captures d’écran)
  • traceroute (pour collecter des informations sur les routeurs proches)

Le script est suffisamment sécurisé mais aussi suffisamment complet en terme d’infos pour aider à retrouver un éventuel voleur. Il est toutefois recommandé d’activer l’auto login sur votre linux. Ainsi, le voleur n’aura pas une envie subite de formater directement en démarrant l’ordi, et ainsi réduire à néant les chances de retrouver votre PC. De toute façon, le système de login d’un Ubuntu (par exemple) n’étant pas fiable, autant se passer d’autologin et se consacrer à chiffrer correctement ses données avec TrueCrypt par exemple.

Bref, si ce script vous intéresse, allez faire un petit tour chez Seb qui explique tout pour le mettre en place. Pensez aussi à faire un tour dans la FAQ, c’est toujours utile.

Merci Seb pour ce joli petit script !

[photo]

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | Korben

The Definitive Guide to Making the Most of Your Netbook [Optimization]

Netbooks are a great compromise between pecking away a smartphone keyboard or hauling a tank-size laptop around—but they aren't without shortcomings. Make the most of your netbook with these netbook-friendly tips, tricks, and applications.

Although often derided for being under-powered and a poor substitute for a full laptop, netbooks fill a nice niche. They're tough to beat for portable browsing, note taking, and mobile computing when a laptop is over kill, the battery life is too short, and using your phone is impractical or uncomfortable. Still, you can do a lot to make life with a netbook easier.

Accept the Hardware Limitations and Tweak When Possible

Netbooks are limited and you can't be happy using one unless you accept that. Watching video on it won't be like watching video on a 24" widescreen monitor. It won't run Crysis. You're not going to be single-handedly solving complex protein-folding operations on it and curing cancer. Nearly every netbook has a fairly standard cookie-cutter spec sheet of a 1024x600 pixel screen, a 160GB HDD, 1GB of RAM, and a modest mobile processor.

If you already own a netbook, the best thing you can do is shell out $30-60 and upgrade the 1GB of RAM to 2GB of RAM. It's a cheap enough upgrade and it provides a significant performance boost. If you're shopping for a netbook, the best advice we can give is to focus on two things: battery life and the physical inputs, like the spacing of the keyboard and arrangement of secondary buttons—physical design is about the only thing distinguishing one netbook from another these days.

Strip Your Netbook of Bloat and Crapware

Computer manufacturers love to stockpile their pristine machines with all sorts of crapware. Fortunately, for the most part, netbook manufacturers aren't too extreme with this practice. Given the already underpowered nature of the machines they sell, we'd imagine they're paranoid about bogging it down with too much crapware. Nonetheless, it's still worth your time to give your netbook a solid run through the decrapification-gauntlet. Photo by Fabio Bruna.


You can dig through the bloatware and delete it manually, but some bloatware—we're looking at you Norton Anti-Virus trial!—is a huge pain to remove by hand. Fortunately applications have been created that are specifically tailored to giving bloatware the boot, like PC Decrapifier—seen in the screenshot above. PC Decrapifier is great for any new computer including netbooks and will help you get rid of applications like Norton Anti-Virus, Microsoft Office Trial Edition, and other annoyances.

One caveat regarding gutting the crapware from your new netbook: Although 90 percent of the junk that is installed is in fact junk, be careful not to delete software that actually does something useful. For example, on my Asus Eee netbook there were two very similar programs with similar Eee branded names. One was a useful aggressive battery monitoring application designed to squeeze even more life out of my 6-cell battery and the other was a fairly useless application dock only for Eee netbook apps. Had I blanket nuked all the installed apps, I'd have kicked out the useful battery tool with the rest of the junk.

Once you've booted the factory-fresh crapware off your netbook, it's really important to keep things clean for optimal future performance. If a little bit of crapware and software creep slows down your beefy desktop a tiny bit, a little on your netbook will definitely gum up the works. Make sure to install an application like CCleaner—a favorite among Lifehacker readers—and run it on a schedule to keep things clean.

Learn to Love Full-Screen Mode and Keyboard Shortcuts


You might have a nice spacious monitor at home and never even think to switch to full screen mode, but on a netbook using full screen mode is an absolute must. The screenshot above shows a comparison between running Firefox in regular mode and running Firefox in fullscreen mode, displaying the Lifehacker homepage. Between the title bar, menu bar, tabbed sites, and the Windows start bar, around 40% of the screen gets chewed up. The same kind of situation exists when you load popular word processors like Microsoft Word and other office applications. Most software designers are simply not designing for small screens anymore; netbooks generally have a 1024x600 resolution, which is nearly 200 pixels shorter than the already quite small 1024x768 standard monitor size that most designers keep in mind when creating toolbar and site layouts.

Unfortunately no standard exists for which a keyboard shortcut will switch an application to full screen mode. Check the menu bar in your application or hit up Google with a "myapplication fullscreen shortcut" query to find it. The full-screen shortcuts for a few common applications are: Firefox/IE/Opera/Chrome - F11 (press again to return to normal view) and Microsoft Office - ALT+V+U (press ESC to return to normal view).

In addition to searching for individual and specific keyboard shortcuts to help with things like full-screen mode, it's worthwhile to extend your knowledge of shortcuts even further—typing on a reduced size keyboard and mousing on a small trackpad can be rough on your hands. If you extend the range of your Google queries from just the keyboard shortcut to something like "myapplication without a mouse" or "myapplication keyboard shortcut guide" you'll find gems like this guide to using the Opera web browser completely sans-mouse—or our own guide to mouse-less Firefox. Photo by Declan TM.

The best thing about improving your keyboard chops with the netbook is that all the new shortcuts you learn are transferable to your main workstation. For more information on handy keyboard shortcuts, application tricks involving keyboard shortcuts, and how to make them if your application lacks for them, take a stroll through the archives of the keyboard shortcuts tag here at Lifehacker.

Select Applications with a Netbook-Centric Attitude


Selecting applications for a netbook is a lot like packing for a camping trip. When you pack for a camping trip you select things for your pack that are efficient and lightweight versions of things you use every day at home, and you also pack things that are distinctly related to camping that you'd never use at home. Photo by 玩具王 the Nictoyking.

For example, you may use Firefox loaded down with 1,001 extensions on your quad-core home computer but opt to run Firefox with only one or two critical extensions or Google Chrome on your netbook. Also, just like with camping, selecting lightweight tools that are multifunction is valuable. Why use a bloated media application when something snappy and light like open-source VLC can take care of all your movie and music needs? In the same vein, look for ways to ditch software that is known for being bloated and resource hungry, like swapping out Adobe-gonna-eat-all-y'RAMs-Reader with FoxIt Reader. If you're unsure where to start when it comes to selecting lightweight software, you might want to check out past Lifehacker Hive Five topics. Lifehacker readers tend to gravitate towards the fastest and lightest-weight solutions even when constraints like using a netbook aren't brought into the equation.

Aside from searching out lightweight versions of applications your normally use, the netbook also benefits from applications you'd likely never use on a desktop computer.

Netbooks, for example, make pretty handy ebooks. They're full color, they have no annoying DRM or restrictions, and they're lightweight with a long battery life. I've been experimenting with using my netbook as an ebook reader and don't have any complaints to log. If your netbook doesn't already support screen rotation, you can easily remedy that situation by downloading EeeRotate—in use in the screenshot above. The tiny application allows you to rotate your screen using CTRL+ALT+RIGHT (you can rotate it so that you hold the netbook with the screen on your right or left hand side) and it reverses the axis of the mouse so you can still use your mouse without hassle. Pressing CTRL+ALT+UP will return the screen to normal.

If you're a Gmail user, you'll definitely want to enable Offline Gmail to allow you to compose emails in Gmail when you're between wireless hotspots and unable to access the net. If you're not a Gmail user it's worth downloading an full-fledged email client like Thunderbird and configuring it to use your web-based email so you can enjoy the same functionality.

Even if your keyboard chops are up to par, it's still a pain to launch applications on a netbook. Although I've yet to install Launchy—as much as I love it!—on my main Windows 7 desktop, most netbooks run Windows XP and Launchy can go a long way towards making application launching pleasant on the tiny keyboard and touchpad. Check out our guide to doing more with Launchy here.

Being able to shuttle files between your main workstation and your netbook, as well as keeping them backed up, is a must. Dropbox is a valuable addition to your netbook for this task. It's lightweight, it's fast, and for most users the free account is more than adequate. While writing this article I used Dropbox multiple times to easily toss screenshots and installation files between my netbook and desktop and as I took notes about the netbook—on the netbook!—I saved the .TXT file to Dropbox. Check out how to use Dropbox for more than just file syncing here.


Netbooks serve as an excellent go-between tool for lightweight and portable notetaking and web browsing, especially with the proper tweaking and software selection. While our list of tweaks and software suggestions is long, it's certainly not exhaustive. If you have a netbook of your own, it's time to sound off in the comments with your tips, tricks, and favorite applications for maximizing your netbook's capabilities.



Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | Jason Fitzpatrick

Livre : Java SOA Cookbook de Eben Hewitt, critique par Eric Reboisson

Shared by ericreboisson
Merci pour le partage Norbert, A+
C'est un très bon livre sur la SOA, on y trouvera la trousse à outils nécessaire pour résoudre ses problèmes et répondre aux questions sur le sujet. Il y a énormément de sujets abordés (plusieurs dizaines), le développeur comme le concepteur SOA y trouvera forcemment son bonheur. Retrouvez la critique complète en line.

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | (author unknown)

Statut à la con


Le petit outil qui va changer votre vie mais attention vos amis / followers risquent de ne pas comprende vos futurs statuts sur facebook et twitter ou pire de vous prendre pour un fou sauf si vous êtes vraiment con et eux aussi... ^^

Status à la con est un petit générateur de... statuts à la con (évidemment) sur twitter et facebook. Inutile et donc très indispensable :D

Faites-vous plaisir ;)

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | Damien

20/20: Top 20 Programming Lessons I've Learned in 20 Years - DCS Media

http://delicious.com Bookmark this on Delicious - Saved by rondadavis to - More about this bookmark

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | rondadavis

Le chat de Jésus

chat-jesus

Si Jésus avait un chat, ce serait celui-là :)

www.flepi.net

Articles dans le même genre :

  1. Chat gourmand
  2. Squelette de chat
  3. Un chat heureux

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | Flepi

10 Songs Scientifically Proven To Improve Your Mood

Our resident musicologist Oswald Hobbes has donned his white lab coat and performed a series of experiments to create a comprehensive list of ultimate happy-making jams. Behold the glory!

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | Oswald Hobbes IV

Maven: Mes plugins préférés

Ayant beaucoup utilisé Maven ces derniers temps, j’ai dû faire pas mal de recherches pour lui faire faire ce que je voulais. Cela m’a permis de découvrir une série de plugins intéressants que je vous livre ici. De façon générale, il s’agit de plugins méconnus mais qui m’ont fait pousser un « Oh la bonne idée super pratique » lorsque je l’ai découvert. Avec un peu de chance, vous aurez la même réaction.

Évidemment, de nombreux autres plugins sont disponibles, utiles et bien faits. J’ai voulu focaliser ici sur mes nouvelles découvertes et sur les anciens qui sont revenus en grâce. Si vous recherchez un plugin, les deux points de départ sont http://maven.apache.org/plugins/ et http://mojo.codehaus.org/. Ensuite, Google est votre ami.

Débogage Maven

maven-help-plugin (org.apache.maven.plugins)

Plugin existant depuis toujours et s’étoffant tranquillement. Il permet d’avoir des informations sur un projet.

Buts préférés:
  • help:active-profiles – Liste de profils actifs pour ce build
  • help:effective-pom – Crée le pom résultant de la résolution des profils actifs, de héritage et des variables
  • help:evaluate – Permet d’évaluer une expression Maven (par exemple ${project.version}). Prend en considération les profils actifs

maven-dependency-plugin (org.apache.maven.plugins)

Un autre plugin relativement vieux. C’est le plugin ultime pour résoudre les problèmes de dépendances transitives.

Buts préférés:
  • dependency:tree – Vous donne un arbre de dépendances indiquant qui tire quoi et dans quel scope. Absolument indispensable pour faire le ménage

versions-maven-plugin (org.codehaus.mojo)

Mon tout nouveau plugin préféré. Il permet de gérer les versions d’un peu tout. En particulier, vous pourrez mettre à jour la version des poms enfants à partir de celle du pom parent. Vous pourrez aussi vérifier si les versions de vos dépendances et de vos plugins sont à les dernières disponibles. C’est un peu le plugin qu’on attendait depuis toujours.

Buts préférés:
  • versions:display-dependency-updates – List toutes les dépendances ayant une version plus récente
  • versions:display-plugin-updates – Liste tous les plugins ayant une version plus récente
  • versions:update-child-modules – Il faut tout d’abord changer la version du pom parent. En appelant ensuite ce goal sur le pom parent, il mettra à jour les versions dans enfants. Très pratique pour faire des changements de versions
  • versions:set – Comme update-child-modules mais permettant de spécifier la nouvelle version  en ligne de commande (-DnewVersion=VALUE) au lieu de changer le pom parent.

Packaging

maven-remote-resources-plugin (org.apache.maven.plugins)

Un plugin un peu obscur mais très utile pour partager des ressources entre plusieurs projets. Il permet de récupérer un « resource bundle » qui est en fait un jar avec un packaging particulier et disponible dans le repository maven. Le contenu de ce jar est filtré et ensuite intégré à l’artifact en cours de construction. Par exemple, pour un project sous license Apache, cela permet d’ajouter les fichiers au jar les fichiers requis par la licence (LICENSE, NOTICE, …). 

Buts préférés:
  • remote-resources:process – Le goal permettant d’intégrer le « resource bundle » à l’artifact courant

maven-license-plugin (com.mycila.maven-license-plugin)

Un autre plugin que j’ai récemment découvert et qui change la vie. Il permet de mettre le classique petit texte de copyright requis par une licence au haut de tous les fichiers du projet. Le formatera l’entête en fonction du type de fichier (<!– –> pour xml, # pour .properties, /* */ pour .java, etc.). Il y a aussi la possibilité de valider la présence de la licence durant la compilation.

Buts préférés:
  • license:format – Ajouter la licence à chaque fichier
  • license:check – Valide que la licence est correctement mise pour chaque fichier

maven-bundle-plugin (org.apache.felix)

J’aime bien aussi celui-là. Il transforme votre artifact en un bundle OSGi avec presque aucune configuration. Il n’y a pas de but explicite car il se lie lui-même à la phase prepare-package.

maven-shade-plugin (org.apache.maven.plugins)

Utiliser pour faire un uber jar, c’est-à-dire un jar agrégeant le contenu de plusieurs jars.  Pour ceux qui connaissent, il fait plus ou moins la même chose que jarjar pour lequel il n’existe pas de plugin Maven. Un exemple d’utilisation et la création d’un jar exécutable.

Buts préférés:
  • shade:shade – Effectue la « uberisation »

Divers

maven-timestamp-plugin (com.keyboardsamurais.maven)

Pas vraiment un plugin de reporting mais très utile pour en faire. En fait il comble un lacune de Maven qui est qu’il n’y a pas de variable pour la date. Donc ce plugin vous permet de mettre la date/heure dans des variables sous le format que vous voulez (SimpleDateFormat servant d’interpréteur). Vous pouvez donc utiliser ces variables par la suite.

Buts préférés:
  • timestamp:create – Pour créer une variable contenant la date. Il faut mettre plusieurs exécutions pour avoir plusieurs formats différents

Reporting

maven-clover2-plugin (com.atlassian.maven.plugins)

Donne un rapport Clover, c’est-à-dire un rapport complet de la converture du code par les tests. Il est relativement connu et je le mentionne ici pour indiquer qu’il est désormais activement maintenu par Atlassian et suit de très près les livraisons Clover. Il est aussi maintenant très étoffé et beaucoup plus facilement configurable qu’historiquement.

Buts préférés:
  • clover2:instrument – Effectue l’instrumentation du code
  • clover2:clover – Genère le rapport Clover
  • clover2:check – Vérifie que la couverture dépasse le pourcentage désiré

findbugs-maven-plugin (org.codehaus.mojo)

Autre plugin très connu qui souffrait d’un problème de maintenance dernièrement. Il semblerait que certaines personnes s’y sont penchés et il suis maintenant relativement correctement les mises à jour findbugs.

Buts préférés:
  • findbugs:findbugs – Génère le rapport findbugs. En général, on configure plutôt le plugin dans la section reporting du pom pour l’avoir au moment de la génération du site
  • findbugs:check – Fait planter le build si findbugs trouve des erreurs

Optimisation du build

Les dernières versions de Maven se sont en autres consacrées à l’amélioration de la productivité. Plusieurs options en ligne de commande ont été ajouté. Elles proviennent à peu près toute du maven-reactor-plugin qui a été redescendu au coeur de Maven. Il ne s’agit donc pas vraiment de plugins mais ça reste pratique de savoir qu’elles existent.

Nouvelles options:

  • –resume-from (-rf): Permet, pour un projet multi-module, de recommencer la compilation à partir d’un projet donné. Utile par exemple lorsque le build a échoué au milieu et que vous ne voulez pas reprendre du début.
  • –also-make (-am): Construire les projets mentionnés et leurs dépendances.
  • –also-make-dependents (-amd): Construire les projets mentionnés et les projets en dépendants.

Anciennes options:

  • –non-recursive (-N): Ne construire que le projet courant sans ses sous-modules. Surtout utile pour installer un pom parent ou bien faire tourner un plugin.
  • –file (-f): Utiliser le pom en paramètre et non le pom du répertoire courant. Cela va en pratique compiler un projet quelconque sans changer de répertoire (j’utilise surtout cette option dans des .bat utilitaires).
  • –projects (-pl): Construire les projets spécifiés en ligne de commande. Permet d’avoir un build très spécifique.

maven-reactor-plugin (org.apache.maven.plugins)

Comme mentionné plus haut, ce plugin n’est presque plus nécessaire (si vous utilisez une version Maven 2.1.x ou supérieure) car il a été intégré dans le coeur de Maven. Il reste toutefois un but intéressant. Ils n’ont pas pu le mettre à plus bas niveau car il dépend de fonctionnalités de SCM qui ne sont pas présentes dans le coeur.

Buts préférés:
  • reactor:make-scm-changes: Ne recompile que les projets (et les projets en dépendant) ayant des fichiers géré dans le SCM et modifiés localement. C’est assez magique comme optimisation car il ne recompile que ce qui est nécessaire. Faire attention toutefois, si votre SCM est un peu longuet à déterminer les changements locaux, cela peut parfois être plus long qu’un build en entier.

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | Henri Tremblay

10 Completely Free Wireframe and Mockup Applications : Speckyboy Design Magazine

http://delicious.com Bookmark this on Delicious - Saved by conectasul to - More about this bookmark

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | conectasul

Linux: Install a million games in one click!

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | (author unknown)

Five Best DVD-Ripping Tools [Hive Five]

You pay good money for your DVDs, but they're hardly the only format you need these days. These five ripping tools ensure you can back them up, keep them on your media server, and load them on your favorite portable player.

Photo by jonasj.

Earlier this week we asked you to share your favorite DVD-ripping tool. We tallied up the votes, and now we're back to highlight the five most popular tools used by Lifehacker readers to rip, backup, and encode their DVD collections.

DVD Shrink (Windows, Free)


DVD Shrink is a free and capable ripping tool that excels at, as the name would imply, shrinking DVDs. DVDs come in two common formats: DVD-5 (4.7GB) and DVD-9 (8.5GB); the Reauthor mode in DVD Shrink helps you to ditch disc extras and strip most larger DVDs down to fit into a standard (and less expensive) DVD-5 disc. DVD Shrink does a good job handling many protection schemes, but hasn't been updated to remove some of the newest schemes.

DVD Fab (Windows, $50)


DVD Fab is a commercial DVD ripper that supports the removal of all current DVD copy protections. In addition to being current on protection schemes, it boasts a large array of options for stripping and repacking your DVDs once the copy protection is removed. You can rip the entire disc, rip only the main movie, or split it into pieces—among other options. Like DVD Shrink, DVD Fab also supports compressing DVD-9 discs to fit on DVD-5 discs.

Handbrake (Windows/Mac/Linux, Free)


Handbrake is a DVD-ripping tool with a strong emphasis on not just ripping media but recoding it for playback on computers, portable devices, and other non-disc based systems. Handbrake can help you convert DVDs and other MPEG-based video into MP4 and MKV files. You can tweak settings like video frame rate and audio codec playback to your heart's content with Handbrake, and even batch encode all your media at one time to make filling up your iPod or other device relatively painless. The one major shortcoming of Handbrake is that it doesn't have any copy protection removal tools built in, which means you may occasionally need to use a 3rd-party stripping tool to prepare your DVD for conversion.

AnyDVD (Windows, $60 per year)


AnyDVD is another commercial entry in this week's Hive Five. It's not cheap, with a one year license running $60—although the multi-year discounts quickly stack up—but it can boast that it stays on top of current protection and encryption schemes to make sure you're never locked out of your own discs. In addition to stripping protections from the disc, it also has the ability to control DVD playback speed so that DVDs played on media center computers will play slower and quieter, and it allows you to remove things like forced subtitles, warning screens, and disc material you don't want.

DVD Decrypter (Windows, Free)


Although DVD Decrypter hasn't been updated since 2005, it still works on a significant number of DVDs and has a strong following resulting from both its original user base and new users who find it cuts through the copy protection on their current DVDs protected with CSS, Macrovision content protection, region codes, and other hindrances.


Now that you've had a chance to look over the five most popular DVD-ripping tools as nominated by Lifehacker readers, it's time to cast your vote for the tool you like best:


Which DVD-Ripping Tool Is Best?(trends)

Have a favorite that wasn't featured or a tip for ripping DVDs? Let's hear about it in the comments. If you have an idea for a future Hive Five send us an email at tips @ lifehacker.com with "Hive Five" in the subject line.



Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | Jason Fitzpatrick

DIY Folding Table Saves Space, Doubles As Picture Frame [DIY]

Don't have a lot of space for a kitchen table but would love the option of a sit-down meal from time to time? This clever picture table design is a beautiful solution—and one you could certainly do yourself.

From the folks at Ivy Design, the picture table folds down when you need it, and when you don't, it folds unobtrusively up to the wall, doubling as a picture frame. They don't offer any specific schematics (they're selling their design), but it seems like something you could figure out for your own space easily enough. The folks at DIY blog Make even highlight a similar design from a DIY furniture book from the 70's.

Either way, it's a clever idea, and could be very handy in a cramped space.

Picture Table [Ivy Design via Make]


Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | Adam Pash

Awesome Abstract Wallpapers

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | (author unknown)

OCTO recherche un(e) assistant(e) RH: activez vos réseaux!

Intégré(e) à l’équipe RH (4 personnes), les missions seront les suivantes :

•Gestion du personnel et Ressources Humaines :

oGestion et administration du personnel (contrats de travail, médecine du travail, tableaux préparatoires de paie, paiement des charges sociales, organisation des élections CE et DP…)

oSuivi de l’ensemble du process de recrutement des candidats, de la prise de RDV à l’intégration du candidat :

> Prises de RDV RH puis avec les managers, rédaction des propositions d’embauche et des contrats de travail, réponses négatives aux candidats…
> Accueil des nouveaux arrivants (dossier d’accueil, formalités administratives, réunion d’accueil)

oMise à jour des tableaux de bord RH (suivi des recrutements, rémunération, effectifs)

oOrganisation des entretiens anniversaires et des entretiens annuels

oGestion des commandes d’ordinateurs portables et de téléphones et du parc de la société

•Formation :

oGestion administrative d’OCTO en tant qu’organisme de formation (Université du SI 2010, formation Silverlight…)

oGestion administrative des formations (préparation dossier FAFIEC, inscriptions, suivi du budget…)

Vous disposez idéalement d’une première expérience en tant qu’assistant(e) RH. Vous êtes polyvalent(e) et avez envie d’apprendre. Vous avez le sens du service, un bon relationnel et la discrétion nécessaire à la fonction ressources humaines. Vous maitrisez parfaitement le pack office.

Vous pouvez envoyer un CV, une lettre de motivation et vos prétentions salariales à recrutement@octo.com
Le poste est un temps plein, basé à Paris, 50 av des Champs Elysées, Paris 8ème

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | Anne-Claire Long

7 Useful Google Chrome Extensions for Web Workers

chrome-extension-logoWith the number of Google Chrome extensions increasing at leaps and bounds, it is apparent that the 18 must have extensions that we have covered earlier is no longer enough. So here we are, covering another 7 more extensions for the diligent Web workers. The list below may not be the most comprehensive, but it contains the list of extensions that we use everyday and find them useful for everyday use.

1. Meta Inspector

To view the meta tag of a webpage, the usual method is to view the source code of the page. Meta Inspector simplifies this process and allows you to view the meta tags of the webpage right within the page.

This extension is mainly aimed at web developers that need to verify the description tag of their site to follow the Webmasters’ Google Guidelines, but can also be used by those who like to spy on their competitor’s sites. Not only does it allows you to view the meta tag in the header, it also allows you to view the no-follow, do-follow links in the page.

chrome-extension-Meta inspector

2. Google Reader Checker

If you rely on Google Reader to keep you updated on what’s happening in the Web, then this extension is going to be very useful to you. Google Reader Checker checks your Google Reader regularly and notifies you whenever there is a new feed update.

chrome-extension-google-reader

3. Resolution Test

Do you know how your website look like at different screen resolution? You can do it by changing the screen resolution manually, but this extension just makes thing easier. Simply click the icon and select the resolution that you want it to show. Your browser will automatically resize (best performed when it is not maximized) to the requested resolution size.

chrome-extension-resolution-test

4. Speed Tracer

Speed Tracer helps you to find out what is slowing down your site. It analyzes your website for items such as Javascript parsing and execution, CSS style recalculation and selector matching, DOM Event handling, network resource loading and many more stuffs and show the result in graphs and numbers.

chrome-extension-speed-tracer

5. Chrome Bird

You can’t consider yourself a Web worker if you don’t have a Twitter account. Even though there are plenty of desktop Twitter clients that you can use, nothing beats a handy and useful extension that allow you to view the timeline and interact with your account instantly.

chrome-extension-chromebird

6. Google Translation Bar

Let’s say you blog in your native non-English language and you want to know how your articles turn out in English (or any other languages), this extension can immediately translate your site on the fly.

blogger's-chrome-extension-google-translator

7. Stumble Upon

StumbleUpon is one of the best services that we use to research for materials. It used to be available only for Firefox, but now it is available in Google Chrome as well. Unlike the StumbleUpon extension in Firefox, this Chrome extension loads the StumbleUpon Web toolbar instead. Don’t worry, you will still get the exact browsing experience.

chrome-extension-stumble-upon

What other extensions have I left out?

Image credit: superboyonthedge

7 Useful Google Chrome Extensions for Web Workers originally published on Make Tech Easier (RSS)

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | Abhishek Palit

Non de variable

Ce matin alors que ma société m’appelle pour régler en urgence un problème concernant une application sur laquelle j’avais travaillé il y a longtemps, j’ai la surprise de constater que celui qui a fait le plus récemment des modifications dessus s’est permis de réécrire des pans entiers de code. Le motif? Je ne respecterais pas les bonnes pratiques en usage (où ça?). La pratique dont il est question, précisément, je la conteste et je vais expliquer pourquoi. Vous êtes en droit de marquer votre désaccord mais essayez d’être plus constructifs que « c’est écrit partout, point barre ».  Sinon à faire tous pareil ne pas venir s’étonner d’en être réduits à faire de l’intégration de logiciels écrits par d’autres.

Il m’est reproché, donc, de ne pas toujours déclarer les variables au début des fonctions ou des blocs qui ne sont pas des boucles.

Tout d’abord il faut noter que la possibilité de déclarer une variable où on veut, si elle n’a pas toujours existé  (en Pascal et ses dérivés comme Ada par exemple la déclaration était en dehors des blocs d’instruction ; en C elle n’était possible qu’en début de bloc, contrainte abandonnée en C++) elle est aujourd’hui possible dans presque tous les langages récents, qu’ils soient faiblement ou fortement typés. On peut donc se dire qu’au moins les auteurs de langages ne partagent pas cette conception radicale, c’est bien qu’il y a une raison.

Pour ma part je considère qu’une variable doit être déclarée au plus près de l’endroit où elle est utilisée pour la première fois. Si possible la déclaration doit être la première utilisation. Parfois c’est impossible mais c’est rare. Il faut se souvenir aussi que dans certains langages, dits fonctionnels, une variable ne peut pas être modifiée après sa déclaration. Sans aller jusque là, déclarer une variable longtemps à l’avance c’est courrir le risque d’erreurs grossières. En voici quelques-unes.

Utiliser une variable avant de l’avoir initialisée

int x ; ... appel_fonction (x);
int x ; ... y = x;

L’exemple est trivial, mais en général ce genre d’erreur peut facilement se repérer. Des compilateurs sophistiqués, comme le compilateur Java de Sun, sont même capables de détecter ce genre de cas et refuser alors de compiler. Mais il n’en s’agit pas moins d’une erreur.

Initialiser une variable trop tôt

Ce genre d’erreur est bien plus sournois, bien plus complexe à trouver et les conséquences sont parfois des effets de bord à très long terme. Je vois au moins deux cas où ça peut se produire :

Dépendance envers une donnée pas encore arrivée

int x = f (y);

Rien à dire à priori sur cette instruction… à condition que la variable y contienne bien la valeur à laquelle on s’attend! Elle peut ne pas avoir été initialisée (mais comme dit plus haut certains compilateurs donnent l’alerte). Elle peut aussi contenir un résultat intermédiaire de calcul… et on doit attendre le résultat final avant d’appeler f. Erreur qui se voit cependant au débogage pas à pas. Notez bien sûr que je pars du principe qu’on initialise la variable dès sa déclaration. Je suis bien conscient que ce n’est pas toujours le cas. Mais avouons-le, c’est très tentant.

Pointeurs et valeurs dans une boucle

Ce cas est probablement le plus vicieux de tous. Comme je disais plus haut il est très tentant de remplir la variable dès sa déclaration. Considérons le code suivant :

int [][] T = new int [5] [];int [] subT = new int [3];for (int i = 0; i < 5; i++) {     subT[0] = ... ; subT[1] = ...; subT[2] = ...;     T[i] = subT;}

Pas évident d’y voir une erreur, du moins jusqu’à ce qu’on observe le résultat… Eh oui, en sortant la déclaration de subT de la boucle, on a provoqué une initialisation unique, ce qui fait que toutes les lignes de T pointent vers le même tableau subT !

Conclusion

Je serai sans doute amené à compléter cet article avec d’autres exemples d’erreurs possibles. Ce qu’il faut surtout retenir, c’est que les « bonnes pratiques » que vous pouvez trouver cà et là sur internet ou dans les livres ne sont pas là pour être suivies au pied de la lettre, mais pour être comprises et jugées. Alors me dire qu’il faut écrire comme ci ou comme ça parce que c’est une « bonne pratique », très peu pour moi.

Source: ericreboisson's shared items in Google Reader ericreboisson's shared items in Google Reader | Thomas

Not Found

Sorry, but you are looking for something that isn't here.

  
  • Sponsors