ack 1.96 — mieux que grep

Posté par  (site web personnel) . Modéré par Xavier Teyssier. Licence CC By‑SA.
48
20
sept.
2011
Ligne de commande

Ack est un outil qui permet de rechercher du texte à l’intérieur de fichiers. C’est donc un clone de grep avec quelques améliorations notables. Voici donc dix raisons de passer à ack si vous utilisez grep :

  1. ack est très rapide, car il ne recherche que ce que vous voulez chercher ;
  2. il recherche récursivement par défaut ;
  3. il ignore les trucs inutiles, comme les répertoires utilisés par les [VCS], les fichiers de sauvegarde (« foo~ » et « #foo# »), les binaires, etc. ;
  4. vous pouvez spécifier simplement le type de fichiers à rechercher, comme « --perl » ou « --nohtml » ;
  5. la coloration syntaxique des résultats est là par défaut ;
  6. vous pouvez utiliser les expressions régulières de Perl, pas juste le sous‐ensemble de GNU ;
  7. l’apprentissage d’ack est très simple, car il reprend les mêmes options en ligne de commande que grep (« -c », « -l », « -w », etc.) ;
  8. il est possible d’avoir des options par défaut dans un fichier « ~/.ackrc » ;
  9. la commande fait 25 % de caractères en moins à taper ;
  10. en fait, c’est même 50 % de gagné par rapport à « grep -r ».

La version 1.96 d’ack est sortie dimanche et apporte quelques améliorations notables :

  • les fichiers JavaScript « minifiés » sont ignorés par défaut ;
  • le langage Groovy est supporté (extensions : « .groovy », « .gtmpl », « .gpp », « .grunit ») ;
  • les fichiers Perl et Lua sont mieux détectés.

Note : pour installer ack sur Debian et Ubuntu, il faut faire un « apt-get install ack-grep » (et pas juste « ack »). En revanche sous Archlinux, un « pacman -S ack » sera suffisant. Les autres distributions (Fedora, Gentoo) utilisent également le simple nom « ack »).

L’édition 2011 d’OSDC.fr se tiendra pendant l’Open World Forum les 23 et 24 septembre

Posté par  (site web personnel) . Modéré par patrick_g. Licence CC By‑SA.
7
16
sept.
2011
Communauté

Pour la 3e année consécutive, la conférence OSDC.fr réunira les développeurs utilisant les langages Ruby, Python, Perl, PHP, mais aussi SmallTalk, JavaScript, Haskell ou encore Red. Elle se tiendra pendant l’Open World Forum les 23 et 24 septembre à l’Eurosites George V.

Le programme final est en ligne avec 36 présentations annoncées couvrant un large éventail de sujets.

L’entrée est gratuite, mais nous vous demandons de vous inscrire pour nous donner une idée de l’affluence. L’inscription se fait sur le site de l’Open World Forum.

Sundown, Houdini et Crustache

Posté par  (site web personnel) . Modéré par Florent Zara. Licence CC By‑SA.
Étiquettes :
22
2
sept.
2011
C et C++

Vicent Martí, aka tanoku, est un des développeurs de github qui aime bien coder en C. Ce n'est donc pas très étonnant de trouver sur son compte github des bibliothèques en C pouvant servir au développement d'applications web. Je souhaite en particulier vous évoquer de trois bibliothèques sous licence ISC :

Crustache est une implémentation en C de Mustache, un moteur de templating. Des bindings pour Ruby sont également disponibles dans le dépôt git.

Houdini permet d'échapper des chaînes de caractères en UTF-8 pour le web. Et de faire l'inverse. Les trois types d'échappement sont :

  • convertir &, ", ', <, > et / en leur entité HTML correspondante (conformément à la recommandation de l'OWASP) ;
  • échappement des URI respectant la RFC ;
  • et échappement des URL (la différence avec l'échappement des URI est le remplacement des espaces par des +).

Et enfin, Sundown est un fork de libupskirt. Il permet de convertir du texte en Markdown vers du HTML. Nous utilisons Redcarpet, les bindings Ruby autour de Sundown, pour LinuxFr.org du fait de ses performances et de ses nombreuses options.

Petites brèves : ebooks, nwm et Cloud Foundry

Posté par  (site web personnel) . Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
23
31
août
2011
Technologie

Apprendre un langage

Si vous souhaitez apprendre un langage de programmation, deux livres au format électronique peuvent vous aider : Learning Go et Smooth CoffeeScript, qui parlent respectivement — vous l’aurez deviné — des langages Go et CoffeeScript. Ils sont tous deux sous une licence Creative Commons (CC by-nc-sa pour le premier et CC by pour le second) et bien écrits.

Le gestionnaire de fenêtres nwm

Dans le cadre de la compétition Node.js Knockout, le projet nwm est apparu. Il s’agit d’un gestionnaire de fenêtres sous Node.js qui utilise la libev pour communiquer avec X11. Le projet est encore très instable, mais mérite un petit clin d’œil.

Cloud Foundry

Cloud Foundry est une solution de « Platform as a Service » (PaaS) libre développée par VMware. Elle rencontre un certain succès, et des partenariats se sont montés :

  • la partie cliente et la partie serveur de Cloud Foundry sont empaquetées dans la prochaine version d’Ubuntu, et il semblerait que Canonical ne souhaite pas en rester là ;
  • VMware travaille avec Dell pour intégrer Cloud Foundry à Crowbar, l’outil d’installation de nuages de Dell ;
  • Opscode a écrit des recettes du chef pour déployer simplement Cloud Foundry.

Sortie de Ruby on Rails 3.1.0

Posté par  (site web personnel) . Modéré par patrick_g. Licence CC By‑SA.
28
1
sept.
2011
Ruby

Ruby on Rails est un framework de développement web agile, sous licence MIT. Après 8 releases candidates, la version 3.1.0 est sortie aujourd'hui.

Les nouveautés sont nombreuses mais les plus importantes sont :

  • jQuery est devenu le framework javascript par défaut (à la place de Prototype) ;
  • L'Asset Pipeline permet de gérer la compilation, la minification et la gestion des dépendances pour les feuilles de style et le fichiers javascript ;
  • Sass et CoffeeScript sont maintenant proposés par défaut ;
  • Les migrations SQL ont été revues (plus simples à écrire mais également plus de possibilités offertes) ;
  • Les réponses peuvent être envoyées en plusieurs morceaux (HTTP streaming), ce qui peut être utilisé pour optimiser le temps de chargement des pages ;
  • La documentation de l'API utilise maintenant SDoc.

Note : il est prévu que LinuxFr.org passe rapidement à cette version.

3 bibliothèques javascript à découvrir : D3, Sugar et Batman

27
30
août
2011
JavaScript

D3.js

D3.js est une bibliothèque javascript légère et libre qui permet de manipuler et représenter graphiquement des documents en s'appuyant sur leurs données. Elle est une réécriture de protovis et s'appuie sur des technologies comme HTML5, CSS3 et SVG pour afficher des données et interagir avec elles. Je vous encourage à aller voir les exemples pour voir de quoi est capable d3.js.

Sugar.js

Sugar.js est une bibliothèque qui vise à faciliter la manipulation des objets natifs Javascript et à combler les différences entre navigateurs. Elle ajoute des méthodes bien pratiques aux entiers, chaînes de caractères, fonctions, tableaux, objets, dates… En revanche, elle ne concerne ni les requêtes AJAX ni le DOM (jQuery fait ça très bien).

Batman.js

Batman.js est un petit framework MVC sous licence MIT. Il est écrit en CoffeeScript et peut donc naturellement être utilisé en Javascript afin de structurer une application web qui ferait un fort usage du JS. S'inspirant des principes de Rails (convention over configuration, etc.), il doit permettre de développer rapidement des applications web mono-page.

Veracity, un nouveau gestionnaire de versions décentralisé

Posté par  (site web personnel) . Modéré par Lucas Bonnet. Licence CC By‑SA.
Étiquettes :
32
17
juil.
2011
Gestion de versions

Veracity est un nouveau gestionnaire de versions décentralisé (DVCS), sous licence Apache. Il est développé en C par la société SourceGear, avec la possibilité d'embarquer des greffons en javascript.

Comparé à git ou mercurial, il essaye d'intégrer une expérience de développement plus large :

Il est possible de l'installer sous GNU/Linux, Mac et Windows. Des paquets pour Ubuntu et un guide sont également disponibles pour vous aider à démarrer.

Découvrez Backbone.js 0.5.0 pour organiser votre code JavaScript

Posté par  (site web personnel) . Modéré par tuiu pol. Licence CC By‑SA.
34
3
juil.
2011
JavaScript

Backbone.js est un framework JavaScript sous licence MIT que Jeremy Ashkenas a écrit dans le cadre de son travail chez DocumentCloud. Il permet d’apporter de la structure à des applications JavaScript grâce à une bibliothèque qui ne fait pourtant qu’un millier de lignes de code en tout.

Pour cela, il apporte la séparation du code en classes :

  • les modèles et collections sont responsables de la logique métier et peuvent également servir pour la persistance, aussi bien locale avec localStorage que distante via des API RESTful en JSON. Les modèles proposent des enregistrements clé‐valeur et des événements associés. Les collections offrent un catalogue bien pratique de méthodes d’énumération : ce sont les méthodes map, reduce, filter importées depuis underscore.js, une des rares dépendances de Backbone.js ;
  • les vues font la liaison entre les modèles et le DOM. Elles mettent à jour le code HTML en fonction des modifications des modèles et, dans l’autre sens, peuvent gérer les événements du DOM ;
  • le routeur permet de modifier l’URL de la page (le #fragment ou, depuis la version 0.5.0, le chemin complet grâce à pushState) et de retourner à l’état associé quand la page est rechargée. Cela permet d’avoir des URL qui peuvent être mises en favoris ou partagées.

Backbone.js a atteint la version 0.5.0 il y a quelques jours et est déjà utilisé sur des projets notables comme Basecamp Mobile.

Intel Music Hackathon, les 18 et 19 juin

Posté par  (site web personnel) . Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
21
10
juin
2011
Mobile

Meego 1.2 est sorti récemment, et pour encourager les développeurs à l’essayer, Intel organise un événement : l’Intel Music Hackathon. L’objectif est de développer en 24 h une applications sur le thème de la musique pour le centre Intel AppUp.

Tous les participants recevront un pack développeur, et un grand prix sera décerné par un jury pour l’application gagnante à l'issue du week-end.

Les détails pratiques

Pour participer, il faut s’inscrire en ligne, mais c’est gratuit. Cela se passe le week-end des 18 et 19 juin dans les locaux d’af83, au 15 rue Poissonnière - 75002 Paris (métro Bonne Nouvelle ou Sentier).

Et si on ne connaît pas Meego ?

Pour ceux qui voudraient découvrir Meego, un AppUp aura lieu la veille (le 17 juin, donc) pour venir découvrir Meego et faire ses premiers pas de développeur sur cette plate-forme.

Nouvelle version de LinuxFr.org, un mois après

Posté par  (site web personnel) . Modéré par Lucas Bonnet.
40
22
mar.
2011
LinuxFr.org

La nouvelle version de LinuxFr.org, qui carbure avec Ruby on Rails, tourne depuis maintenant un mois. Pour ma part, j'en suis très satisfait : le serveur tient bien la charge, je la trouve plus agréable à utiliser et je m'amuse bien à développer de nouvelles fonctionnalités.

À ce sujet, nous n'avons pas chômé depuis le lancement, avec plus de 150 entrées corrigées. En particulier, vous avez pu trouver :

  • Les premières dépêches rédigées dans l'espace de rédaction, comme les traductions de la dépêche noyau ou celle annonçant Firefox 4 ;
  • Deux nouvelles feuilles de style alternatives : Grises et Spasibo ;
  • De nouvelles boîtes dans le barre de coté, comme par exemple, le sondage en page d'accueil ;
  • Un certain nombre de préférences, comme les signatures ou le choix des types de contenus à afficher en page d'accueil (pour les utilisateurs authentifiés uniquement) ;
  • L'amélioration du tableau de bord (seulement pour les utilisateurs authentifiés) ;
  • Le tri et les critères de filtrage des entrées du suivi ;
  • Une modération plus fluide ;
  • Et bien sûr de nombreuses corrections de bugs :p

Mais il reste bien entendu encore des choses qui pourraient être améliorées. Je vous encourage à remonter les bugs que vous pourriez rencontrer dans le suivi, ainsi que les propositions d'améliorations. N'hésitez pas non plus à commenter les entrées existantes, ces commentaires me sont très utiles pour mieux comprendre les entrées du suivi et trouver des idées pour y répondre.

On est parti ! nginx 1.0.0 est sorti

Posté par  (site web personnel) . Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
44
13
avr.
2011
Internet

Nginx est à la fois un serveur HTTP et un proxy inverse pour HTTP et IMAP / POP3.
Поехали, la version 1.0.0 est sortie hier.

Développé sous licence BSD, Nginx sert fidèlement de nombreux sites Web, dont LinuxFr.org, et leur apporte performances, fiabilité et configurabilité. Des études indiquent qu’il servirait entre 6,5 % et 7 % du Web mondial (derrière Apache et IIS, mais devant Google, Lighttpd et Cherokee).

Cette version 1.0.0 arrive après 9 ans de développements soutenus et montre, s’il en est besoin, la stabilité du projet. Je vous encourage à l’essayer.

Cloud Foundry, la solution PaaS libre

Posté par  (site web personnel) . Modéré par Lucas Bonnet. Licence CC By‑SA.
29
22
avr.
2011
Ruby

VMWare a annoncé la sortie de Cloud Foundry, une solution libre de Platform-as-a-Service (PaaS). La PaaS permet de déployer des applications Web et gérer leur montée en charge, en abstrayant la gestion des serveurs, bases de données, runtimes des langages de programmation, serveurs applicatifs, etc.. VMWare va lancer une offre commerciale s’appuyant sur Cloud Foundry, mais vous pouvez aussi l’utiliser sur vos serveurs.

Cloud Foundry, sous licence Apache 2, est un ensemble de briques développées en Ruby : NATS, Cloud Controller, DEA, Router, Health Manager, etc., dont le fonctionnement est expliqué en seconde partie de cette dépêche.

En pratique, chaque serveur sera installé avec vcap, puis les applications sont déployées avec l’outil en ligne de commande « vmc » et peuvent utiliser les services mis à leur disposition. Actuellement, Cloud Foundry supporte Ruby on Rails, Sinatra, Node.js, Spring et Grails pour les applications, et MySQL, MongoDB, Redis et RabbitMQ pour les services.

Par exemple, déployer une application Rails se fait très simplement avec les commandes suivantes :

$ vmc target api.example.net   # Choisir que quel cloud on va déployer
$ vmc login                    # S'identifier auprès du Cloud Controller
$ vmc push                     # On demande à déployer l'application

Il faut ensuite répondre à quelques questions : quel est le nom de l’application ? Quelle est son URL ? Sur combien d’instances va-t-elle être déployée ? Quels services utilise-t-elle ? Puis, Clound Foundry va réserver les ressources, installer les gems nécessaires avec Bundler, lancer les services applicatifs puis mettre à jour sa table de routage. « vmc instances » permet également de modifier le nombre d’instances d’une application pour s’adapter à la charge qu’elle va avoir à traiter.

Au final, Cloud Foundry est une solution jeune (peu de frameworks et services disponibles pour le moment), mais VMWare semble prêt à respecter les règles du Logiciel Libre et prendre en compte les propositions d’améliorations des premiers utilisateurs.

Ça continue d'avancer LinuxFr.org en Rails

Posté par  (site web personnel) . Édité par Benoît Sibaud. Modéré par tuiu pol. Licence CC By‑SA.
77
4
avr.
2011
LinuxFr.org

Quand je ne suis pas occupé à faire des poissons d'avril, il m'arrive de coder de nouvelles fonctionnalités pour LinuxFr.org. Voici quelques-unes des dernières nouveautés :

  • Les utilisateurs anonymes peuvent maintenant remonter des bugs dans le suivi, ce qui peut être pratique pour les personnes qui rencontrent justement des problèmes pour se connecter ;
  • Une nouvelle CSS a été ajoutée à la liste des CSS alternatives : cascade-alternative ;
  • Un correcteur orthographique détecte maintenant les erreurs d'orthographe et les souligne en rouge lors de la prévisualisation des contenus et commentaires ;
  • La toolbar permet maintenant de naviguer entre les contenus lus avec de nouveaux commentaires avec les touches [ et ], ou h et l ;
  • La gestion des tags a été revue et il est maintenant possible de supprimer un de vos tags en cliquant sur l'icône Supprimer de vos tags à sa gauche ou voter pour un tag en l'ajoutant aux vôtres par l'icône Ajouter à vos tags qui permettra ultérieurement de juger de sa popularité ;
  • L'anti-spam sur les dépêches a été renforcé suite à une vague de spams ;
  • Des statistiques sur le suivi sont maintenant disponibles et celles pour les autres types de contenus devraient suivre ;
  • Les dépêches écrites dans l'espace de rédaction sont automatiquement placées sous licence CC by-sa ;
  • Les GIF animés sont désormais bloqués pour les avatars ;
  • Et bien sûr de nombreuses corrections de bugs :p

J'espère que vous appréciez ces évolutions et que vous allez continuer à voter et/ou commenter les entrées du suivi qui vous intéressent, votre ressenti ou utilisation particulière de LinuxFr - lorsque précisé dans les commentaires - permettant d'orienter les développements.

Quelques nouvelles rapides du langage Go

Posté par  (site web personnel) . Modéré par Xavier Teyssier. Licence CC By‑SA.
Étiquettes :
35
23
mar.
2011
Golang

Go devient plus stable : de nouvelles versions de Go sortent régulièrement, en moyenne une fois par semaine. C’est un rythme soutenu qui ne convient pas à tout le monde. Les développeurs de Go ont donc décidé de continuer ces versions sous le nom de weekly, mais de publier également des versions stables tous les un à deux mois. Ces versions seront soigneusement choisies et annoncées sur la nouvelle liste, golang‑announce.

Gorun est un outil qui permet de lancer en ligne de commande des « scripts » écrits en Go. Il suffit de mettre « #!/usr/bin/gorun » en 1re ligne ([[Shebang]]) pour que le script écrit en Go puisse être lancé directement.

Cgo est un outil qui permet de compiler du code Go qui utilise des bibliothèques en C. Il fonctionne, pour le moment, avec le compilateur Go de Google, mais il est aussi prévu de prendre en charge le back‑end Golang de GCC.

Elixir, enfin une syntaxe agréable pour Erlang ?

Posté par  (site web personnel) . Édité par Benoît Sibaud. Modéré par Florent Zara. Licence CC By‑SA.
Étiquettes :
27
26
mar.
2011
Programmation fonctionnelle

Elixir est un langage de programmation qui s’appuie sur Erlang et sous licence MIT. Il propose une syntaxe agréable, inspirée de celle de Ruby, et un modèle objet à base de prototypes.

Erlang est un langage fonctionnel avec un typage dynamique, une évaluation stricte et une assignation unique. Il convient bien pour des applications distribuées, résistantes aux erreurs et sans arrêt grâce au mécanisme de rechargement à chaud. Mais c’est également un langage qui peut sembler difficile à apprendre et dont la syntaxe peut rebuter. Elixir propose une manière élégante de profiter des avantages d’Erlang. Il est notamment possible d’appeler des modules Erlang sans conversion des types de données, et donc sans impact sur les performances.

Elixir est encore très jeune et recherche des contributeurs pour aider au développement de sa bibliothèque standard. Pour installer Elixir, vous aurez besoin d’Erlang R14B01, et je vous invite à parcourir le README pour découvrir ce langage. Mais voici un avant-goût sous la forme d’un très classique « Hello World » :

module World
  def say_hello
    IO.puts "Hello World!"
  end
end

World.say_hello