Frugalware, une distribution qui mériterai d’être plus connu

Et voilà, après une courte période sur ArchLinux me voilà reparti sur une autre distribution.

Pourquoi donc ?

ArchLinux est une très bonne distribution qui possède de nombreux avantages :

  • Très grande fluidité
  • Diversité de paquet très impressionnant (grâce à AUR)

Mais pour moi qui ne suis encore qu’un néophyte en linux (bon ok, un néophytes ++ :p ), l’absence de pré-configuration ou d’interface d’admin est assez rédhibitoire. Certes je n’ai pas besoin d’un environnement aussi complet que celui livré par un Ubuntu ou une Fedora, mais tout de même, tout faire à la main me pose parfois soucis.

 

Bon, malgré tout ArchLinux reste pour moi le must dans les différentes distributions que j’ai testé. C’est donc tout naturellement que je me suis routé vers sa petite cousine, j’ai nommé Frugalware.

Etape 1 – Installation

L’installation de la Frugalware se fait intégralement en mode texte (interface mode texte, pas en ligne de commande tout de même). Les différentes questions qui sont posés sont basiques et similaires à ce que l’on retrouve pour d’autre distribution. Aucun soucis donc.

Après l’installation le système redémarre en mode console. Aie… Pour moi qui crains toujours l’install en console, je suis servi. Je lance tout de même la commande de synchronisation pacman (pacman –Su) et, ho, miracle, le système se met à jour sans soucis ! Vous vous demandez surement pourquoi j’ai autant d’appréhension face au monde console ? La réponse est simple, mon pc dispose uniquement du Wifi et configurer le wifi en console, c’est un calvaire pour moi. Dans le cas de la Frugalware toutefois, la config Wifi a été faite durant l’installation et marche à merveille.

Une fois ceci fait j’ai suivi le guide de post-installation :

http://wiki.frugalware.org/index.php/Post-Installation_(Fran%C3%A7ais)

Au final le guide indique quels sont les paquets à installés. Aucune config particulière à faire, tout marche parfaitement y comprit X qui m’avait pourtant posé de nombreux soucis avec ArchLinux. Ici il m’a suffit d’installer les paquets du serveur X, les paquets de gnome également, un petit reboot et, oh, miracle, gnome-shell s’affiche directement.

Car oui, vous l’aurez comprit j’ai décidé de me remettre un peu à Gnome 3. Pour la plupart des environnements,  les dépôts de FW mettent à dispo un paquet virtuel préinstallant un système complet. Avec un seul paquet nommé gnome, je me suis donc retrouvé avec gnome, les interfaces d’administrations, les principales extensions, et quelques applis. Un vrai bonheur J

A noter que je retrouve suite à ce premier boot une réactivité et une fluidité digne d’ArchLinux. Un boot complet en moins de 15 sec, franchement j’aime ! Première utilisation, tout marche : graphique, son, wifi, …

Ah si, j’ai eu un seul souci : j’ai eu la malencontreuse idée d’installer le driver catalyst pour ma carte ATI. En 64bit se driver plante ! Le souci ne vient pas de la FW, j’ai eu exactement le même sur la ArchLinux. Bref, je suis resté sur le driver libre qui fonctionne très bien.

Etape 2 : Migration vers current

En tant que bon geek, j’ai décidé ensuite de passer vers la version current de la distribution. La version current est un peu l’équivalent de la testing debian : elle permet d’avoir les derniers paquets à jours au prix de quelques bugs. La current est également une version en rolling release (contrairement à la FW stable).

Pour la migration, j’ai encore une fois suivi le guide :

http://frugalware.org/docs/upgrade.html

Quelques petites manip donc :

  • Modifier le dépôt cible
  • Mettre à jour
  • Mettre des configs d’appli à jour (sur mon système neuf, je n’ai rien eu à faire)
  • Modifier légèrement grub (cause : un changement de techno pour la construction du noyau).

Je reboot, pas de problème et… Misère ! Mon wifi marche plus (problème n°1) et gnome se met à plantouiller (problème n°2).

Concernant le prb n°1, il s’agissait d’un soucis entre le network manager de gnome et ma carte wifi (mon wpa plus exactement). La désactivation du manager et l’utilisation d’une autre application (gnetconfig) a suffit à résoudre le souci.

Le prb n°2 vient uniquement d’extension qui n’est pas totalement compatible avec gnome mis à jour. Je les ai désactivé et plus aucun soucis depuis.

Vous noterez que les deux soucis ne sont pas directement liés à Frugalware mais plutôt à Gnome…

Etape 3 : Utilisations

Depuis maintenant une bonne semaine j’utilise donc la FW couplé à Gnome 3. Pour Gnome 3 je confirme mes premières impressions : l’environnement est bon mais manque encore un petit peu de maturité.

Concernant Frugalware, je suis agréablement surpris.  Frugalware se trouve à mi-chemin entre une distribution expert (ou « fait tout toi-même ») et une distribution grand public. Il y a un peu de préconfig (ou de configuration pré-livré plus exactement) et quelques assistants (dont gfpm qui sert de frontend à pacman).

Frugalware n’a pas de support d’AUR et donc ne bénéficie pas d’autant de paquet qu’ArchLinux. C’est finalement le point qui me fait regretter un peu cette dernière. Toutefois les dev annoncent prendre en compte les besoins d’appli particulière dans les packagings, à voir ;)

Etape 4 : la communauté

Frugalware est une distribution agréable. Il y a toutefois un point que je veux souligner, un aspect qui actuellement me fait dire que je vais peut être enfin m’arrêter sur une distribution : la communauté.

Frugalware bénéficie d’une petite communauté française très sympathique. Celle-ci se réunit sur le forum du site http://frugalware.fr ou via le chan irc #frugalware.fr (freenode). Lors de mes différents problèmes (wifi et gnome), j’y ai trouvé des personnes pour me conseiller et tenter de m’aider. Avant l’installation j’avais déjà pu y poser quelques questions. En plus ce chan est hanté par plusieurs dev.

Bref, si il y a une raison pour laquelle je conseillerai vraiment la Frugalware, c’est pour son coté humain et convivial.

 

Txt2Tags – Le traitement de texte du futur !

Le titre de ce traitement de texte est quelques peu trompeur : je ne vais pas vous présenter le futur concurrent de Word ou de Libre Office. A vrai dire je ne vais pas vous parler d’un éditeur WYSIWYG mais d’un projet que j’aimerai voir se développer davantage.

Bon du coup, txt2tags kesako ?

Txt2tags est un petit programme permettant d’interprété des fichiers rédigés avec une syntaxe type wiki, et de générer ensuite des fichiers rtf, html, dokbook, bbcode, ou pdf (en passant par latex). Vous pouvez donc formater votre texte et le structuré très facilement sans avoir à toucher votre souris. La syntaxe s’apprend aisément et est très facile d’utilisation.

Les avantages ?

  • Moins de perte de temps : qui n’a jamais perdu de temps à cause d’un comportement étrange de word ?
  • Plusieurs types de fichier générable sans soucis.

A noter que txt2tags offrent aussi des mécanismes plus avancées pour gérer la mise en forme dans chaque format, ou l’ajout de nouvelles balises.

Plus d’info ici http://txt2tags.org/

Faire du Tilling sous Windows

J’ai eu l’occasion de gouter il y a peu à du Tilling sous Linux grâce à pytylling. Ce programme permet de positionner les fenetres “automatiquements” de façon à partager de manière optimum l’espace présent sur l’écran. Ce procédé est extrêmement pratique lorsque l’on a besoin de travailler avec plusieurs fenetres de “petit taille” tels que les fenetres de chats, les terminaux, les explorateurs des fichiers, …

Malheureusement, au travail on m’impose de travailler dans un environnement Windows où ce genre d’outils n’est pas disponible. En cherchant un peu, j’ai toutefois trouvé un logiciel permettant de faire quelques chose s’en approchant : WinSplit.

WinSplit permet en effet d’envoyer des fenetres sur des positions et des dimensions pré-parametré. Par exemple vous avez une zone “coin haut droit” avec deux dimensionnements possible : 20% de largeur, 50% de hauteur, ou, 40% de largeur, 50% de hauteur. Vous pouvez ensuite, grâce à un simple raccourci clavier, envoyer la fenetre active dans ce fameux coin. La fenetre prendra alors automatiquement le premier dimensionnement. Le même raccourci clavier vous permettra de switcher sur le second positionnement.

WinSplit est au final un utilitaire léger mais très agréable et très pratique.

 

Plus d’info sur le site du logiciel

Environnement de travail


Un bon environnement de travail est très important pour utiliser efficacement son ordinateur. C’est pour cette raison que je test fréquemment des outils ou utilitaire. Récemment, je viens de passer plusieurs journée à éplucher un peu les sites et blogs à la recherche de nouveaux outils et je viens de découvrir (rédécouvrir) pas mal de chose. Grâce à eux mon environnement c’est bien améliorer, à mon tour maintenant de partager !

Quel distribution ? CTKArch !


Point très important : le choix de la distribution ! Oui, j’utilise le terme de distribution car j’utilise Linux. Au travail on m’impose d’utiliser un Windows XP, mais au final je me retrouve régulièrement à bosser sur une VM Linux ? Pourquoi ? L’environnement Linux offre un grand nombre de possibilités difficile à mettre en place sur Windows : multi-bureau, tilling, package manager, …



Pour installer mon poste de travail, j’utilise comme base la distribution “CTKArch”. En réalité il ne s’agit pas d’une distribution. CTKArch est un live-cd de ArchLinux.

Pourquoi CTKArch et non pas directement ArchLinux ?


ArchLinux, par défaut, est un environnement “nu”, sans couche graphique. C’est à l’utilisateur de faire son installation tels qu’il l’entend. L’utilisateur doit installer X et un gestionnaire de fenetre avant d’avoir accès à un environnement graphique. J’ai essayé mais je me heurte à plusieurs difficultés dont la première est un problème réseau : je dispose uniquement d’une connection Wifi, et configurer le wifi en mode console, c’est un peu difficile…



CTKArch me fourni donc un environnement pré-installé, prennant en charge mon matériel, et disposant par défaut d’un environnement graphique (OpenBox, mais là je vais y revenir). Grâce à CTKArch j’ai enfin pu tester ArchLinux, une distribution dont on me vantait les mérites depuis longtemps, et je ne suis pas deçus du voyage !

Pourquoi ArchLinux ?


ArchLinux est une distribution Linux dont le slogan est “Keep it simple and stupid”. L’objectif de cette distribution est de donner à l’utilisateur un environnement simple, sans superflus. C’est l’utilisateur qui devra l’installer en fonction de ces besoins.



ArchLinux présente certains avantages :


  • Un temps de boot imbattable (- de 30 sec ! )
  • Rolling-Release (pas de “version” mais des mises à jours en continu).
  • Des paquets réèllements à jour. Le gestionnaire de paquet donne accès aux binaires, mais aussi au paquet à “compiler” (la compilation est géré par le gestionnaire).


Le principale (et seul en faite) défaut d’ArchLinux est qu’il faut tout configurer soit même. Pas de pré-configuration à l’installation. Ce choix peut donc causer quelques soucis aux utilisateurs néophytes (tels que moi). Le problème tourne principalement autour de certains services tels que l’impression, ou l’accéllération 3d.

Quel gestionnaire de fenêtre ? Openbox !


A l’origine j’utilisais l’environnement de bureau Gnome 2, et XFCE comme environnement pour vielle machine (ou VM). Récemment j’ai testé Gnome 3. J’apprécie beaucoup ce nouvel environnement et les possibilités qu’ils offrent. Toutefois Gnome 3 présente deux défauts qui me gène réèllement : l’obligation d’avoir une accéllération 3d, et la difficulté de personnalisation et de configuration de l’environnement.



Avec CTKArch, j’ai découvert un nouvel environnement : OpenBox. OpenBox est un gestionnaire de fenêtre léger et plutôt joli. Sa grande force : la facilité de personnalisation de l’environnement. Menu, Panel, Menu contextuel, Raccourci clavier, … Tous les élements sont personnalisable à souhait. Enfin un gestionnaire où on peut crée NOTRE bureau ! En plus, CTKArch avait pré-installer plusieurs outils très utile (FBPanel par exemple).

L’outillage ?

L’outillage de bureau


Pour le bureau en lui-même, j’utilise l’outillage suivant :


  • Tint2 pour la barre des tâches
  • FBPanel pour la barre de Panel
  • Conky avec le thème orange lunatico pour le monitoring
  • Wicd pour le wifi
  • PcmanFm pour le navigateur de fichier.

Outillage internet


  • Chromium en navigateur
  • Pidgin pour la messagerie instantannée
  • Hotot pour le micro-blogging (Twitter)

Outillage bureautique


  • LibreOffice pour la rédaction de document en wysiwyg
  • Txt2tags pour la rédaction de documents qui seront portées sous différents formats
  • FreeMind pour les mindmaps
  • Mirage pour visualiser les images
  • RapidSVN pour la gestion de SVN

Txt2tags


Quelques mots rapide sur cet outils qui est très intéressant. Txt2tags est en fait un immense parser permettant de générer différents type de documents (rtf, latex, bbcode, html, …) à partir d’une seule syntaxe de type “wiki”.



Sans être allergique au éditeur Wysiwyg, je me rend compte que je suis bien plus concentré sur ce que j’écrit dans des éditeurs plus lite. La syntaxe Wysiwyg permet de prévoir la mise en forme, sans être toutefois trop invasif.

Spring Batch

Spring Batch est un framework Java qui a pour objectif de donner aux développements de batch Java un vrai cadre, avec son architecture et ses outils dédiées. Spring Batch s’appuie sur le framework Spring et son mécanisme d’injection de dépendance (et donc son conteneur léger).

Concrètement, ça fonctionne comment ?

Spring Batch permet de définir des Job (un batch dans son ensemble), euh même décomposer en Step. Les steps correspondent aux différentes étapes de traitements d’un batch.

Par défaut les tâches suivent l’organisation suivantes :

  • Un reader : indique comment les données doivent être lus et accéder

  • Un ou plusieurs procésseurs : chaque processeur effectue un traitement particulier sur les données. Pour chaque ligne lu par le reader, les processeurs vont être appellées un à un.

  • Un writer : indique comment les données vont être restitué (fichier, base de données, …).

Il est binesur toutefois possible de définir des tâches qui ne répondront pas à ce schéma.

Pour faciliter l’élaboration du batch, SpringBatch fournit des classes utilisables tels quels ou dérivable. Il fournit également un mécanisme de gestion de transaction (et de gestions des commits intermédiaires).

SpringBatch permet également de gérer le déroulement des Steps (quels steps appellés quand, dans quels conditions, …), de gérer une relance automatique des steps suites à échec, ou même la parallellisation de Step.

Un petit exemple ?

J’ai réalisé il y a peu un petit batch d’archivage Java. Ce batch est très simple et est constitué d’un seul step avec reader / writer.

Définition du batch

Le début du paramétrage se passe coté Spring. Je vous passe la définition du datasource, du transaction manager, et du jdbc template qui sont des objets Spring standard (de simple bean instancié et que l’on retrouve dans quasiment tout projet utilisant Spring).

Une fois ces trois objets disponible, je vais crée un repository (qui contiendra les jobs et leurs exécutions) et un launcher (pour permettre l’exécution du batch). Je rajoute donc dans mon fichiers Spring :

<!– 3/ Depot des jobs Spring Batch –>

<bean id=“jobRepository”class=“org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean”>

<property name=“transactionManager” ref=“transactionManager”/>

</bean>

<!– 4/ Lancement des jobs –>

<bean id=“jobLauncher” class=“org.springframework.batch.core.launch.support.SimpleJobLauncher”>

<property name=“jobRepository” ref=“jobRepository”/>

</bean>

Vous pourrez constater que j’initialise les Beans sans vraiment faire de spécifique. Le job launcher est un launcher simple : il faut donc l’appeller par code Java pour lancer l’archivage.

Je définit ensuite mon batch et ses steps :

<!– 5/ Définition du batch d’archivage –>

<batch:job id=“archivage” job-repository=“jobRepository”>

<batch:step id=“archiveLog”>

<batch:tasklet transaction-manager=“transactionManager” >

<batch:chunk reader=“logReader” writer=“logWriter” commit-interval=“500″/>

</batch:tasklet>

</batch:step>

</batch:job>

Voyons un peu ces quelques lignes.

  1. Je crée un job nommé « archivage»

  2. Je crée un step nommé «archiveLog»

  3. Je définit le step comme étant transactionnel, et je référence le reader (logReader) et le writer (logWriter).

  4. J’indique également un commit-interval : le batch va travailler par lot de 500 lignes.

Le Reader et le Writer vont également être des beans référencés dans Spring.

Le Reader

La définition que j’utilise pour le Reader est la suivante :

<!– Declaration des beans d’archivage pour la table de Log –>

<bean id=“logReader” class=“org.springframework.batch.item.database.JdbcCursorItemReader”>

<property name=“dataSource” ref=“dataSource” />

<property name=“sql” value=“SELECT IOL_NOM_FICHIER, IOL_DAT_HEURE, IOL_COD_TRAITEMENT, IOL_COD_ETAPE, IOL_NIV_INFO, IOL_LIB_MESSAGE FROM T_IO_LOG_IOL WHERE IOL_DAT_HEURE &lt; SYSDATE – 7 “/>

<property name=“rowMapper” ref=“logMapper” />

</bean>

Vous pourrez remarquer que j’utilise directement un objet fourni par Spring : JdbcCursorItemReader. Celui ci prend en paramètre ma base de donnée, une requête SQL a executer, et un rowMapper indiquant dans quels objets stockés les lignes. Rien de bien compliqué donc. Le row mapper est le suivant :

@Component(“logMapper”)

public class LogMapper implements RowMapper<DTOLog> {

@Override

public DTOLog mapRow(ResultSet rs, int rowNum) throws SQLException {

DTOLog dto = new DTOLog();

dto.setNomFichier(rs.getString(LogEnum.FILENAME.getPosition()));

dto.setDatHeure(rs.getDate(LogEnum.DAT_HEURE.getPosition()));

dto.setEtape(rs.getString(LogEnum.COD_ETAPE.getPosition()));

dto.setMessage(rs.getString(LogEnum.LIB_MESSAGE.getPosition()));

dto.setNiveauInfo(rs.getString(LogEnum.NIV_INFO.getPosition()));

dto.setTraitement(rs.getString(LogEnum.COD_TRAITEMENT.getPosition()));

return dto;

}

}

Rien de bien compliqué ici, inutile que je vous l’expliquer : la seul particularité est l’implémentation de l’interface RowMapper fourni par SpringBatch. Il y a également l’annotation @Component qui m’évite de rajouter une ligne dans mon fichier xml pour déclarer le batch.

Le Writer

Implémenter le Writer signifie implémenter l’interface ItemWriter. J’obtient donc la classe suivante :

@Component(“logWriter”)

public class LogWriter implements ItemWriter<DTOLog> {

@Autowired

private DataSource dataSource;

@Override

public void write(List<? extends DTOLog> listItems) throws Exception {

Connection dbConnection = dataSource.getConnection();

try {

for (DTOLog item : listItems) {

insertDataArchive(dbConnection, item);

deleteOriginData(dbConnection, item);

}

catch (Exception e) {

throw e;

finally {

dbConnection.close();

}

}

}

Je vous passe le détail des deux fonctions qui sont juste des requêtes JDBC. Encore une fois, rien de compliqué. Vous remarquerez que l’on travaille ici avec des listes d’objets. Le contenu de ces listes dépends du commit-interval : dans mon cas j’aurai donc des blocs de 500 lignes.

En Conclusion

Jusqu’à maintenant, le Batch était un peu la parent pauvre de Java : on réalisait tout from Scratch, avec des solutions très manuels et très « coding». Chaque batch était donc totalement différent : passer d’une application à une autre vous faisait perdre tous vos repères.

Spring Batch offre ici un cadre propre, bien pensée, et donne en plus nombre d’outils qui diminue la quantité de code nécessaire. Certes, la configuration Spring Batch devient vite verbeuse avec un fichier XML qui va grossir, toutefois ce fichier est simple et facile à générer. Vous pourrez également le spliter en différent fichier (1 par batch ? ) pour plus de clareté.

Les Batchs réalisées avec Spring Batch sont solide, facilement paramétrable, et offre de nombreuses fonctionnalités (paralléllisation, enchainement, …) qui sont normalement rébarbative à implémenter. La montée en compétence est en réalité un peu dure : peu d’exemple ou de tutorial. Par contre une fois les concept saisies, s’est un vrai plaisir :)

Test de Gnome 3

Gnome 3, sorti cette année, promet une « nouvelle expérience utilisateur ». Utilisateur de Linux, cette annonce à attiser ma curiosité. Ce week-end j’ai donc franchi le cap et plongez dans l’univers fabuleux de cette dernière version !

 

Mon environnement

 

Sur quel environnement ai-je tester l’interface ? Mon PC est un bi-processeur possédant 3 Go de RAM. Ils fonctionnent en 32 bit. La carte graphique est une ATI Radeon. Autant dire qu’il s’agit d’un pc de bureautique correct, ne possédant toutefois rien d’exceptionnel.

 

La machine tourne, en ce moment, sur une ArchLinux avec Openbox / LXDE. Un système particulièrement réactif, mais très classique. L’utilisation d’ArchLinux me promet de tester la facilité d’installation en profondeur : ArchLinux ne paramètre rien seul.

 

Installation

Etant donné que je ne suis pas forcément un grand utilisateur de ligne de commandes, ni un grand bidouilleur de fichier de configuration (je vient plutôt du monde windows à l’origine), je craignait quelques peu l’installation de ce système. Au final je n’ai pas rencontré de difficulté majeur pour switcher !

Pour l’installation j’ai suivi le process suivant.

Tout d’abord, installation des paquets de bases via yaourt (gestionnaire de paquet) :

  • Gdm : pour avoir le gestionnaire de fenêtre associé
  • gnome-shell : le paquet contenant Gnome 3 en lui même
  • gnome-extra : utilitaires souvent utilisées sous Gnome. Une sorte de mini-distribution gnome.
  • gnome-tweak-tool : un outil de config de gnome 3

Une fois ceci fait, il a fallut dire au système de démarrer sous gdm. Sous ArchLinux cela peut se faire en rajoutant gdm au deamon lancé. Cette ajout se fait dans /etc/rc.conf au niveau de Daemon = ().

Premier démarrage, premier test

Je démarre et… euh… il a finit de démarrer là ? Mes icônes sont où ? Ok, il ne les as pas migré (logique cela dit). Où est le menu… euh… En réalité il n’y en a pas !

Gnome 3 se présente sous la forme d’un bureau standard, avec un unique panel (positionné par défaut en haut). Sur ce panel il y a : un bouton « activité », l’heure, et le bouton pour éteindre la machine.

Le click sur « Activité » permet de switcher vers une autre vue (que je nommerai vue Shell par la suite). Cette vue contient une liste centrale avec deux perspective possible (Fenêtre, affichant les fenêtres actives, et Application, affichant la liste des applications installées).

La perspective fenêtre affiche une représentation des fenêtres dans le bureau courant. Les vignettes sont taillées en fonction de leurs nombres.

La perspective Application affiche une liste en icône des applications, un peu similaire à une liste tel que l’on en trouverai sur téléphone ou tablette.  La vue Shell offre aussi un champs rechercher : en tapant quelques lettres la liste des applications est réduites.

A noter que le Shell peut s’utiliser de base au clavier : Touche Windows pour l’ouvrir, on tape quelques lettres pour choisir l’application, puis entrée pour valider. Ce Shell remplace donc avantageusement un gnome-do.

A droite du Shell, des vignettes représentants les nouveaux bureaux virtuels. A noter que la gestion de ces bureaux a été amélioré : un bureau s’ouvre lorsque l’on en a besoin (on place une fenêtre dessus). Le bureau se détruit automatiquement lorsque l’on retire la dernière fenêtre. Via le Shell il est possible de faire glisser facilement une fenêtre d’un bureau vers l’autre.

A noter que l’interface est particulièrement réactive. Gnome 3 s’avère plus léger que son ancêtre. Le rendu est particulièrement agréable à l’oeil, et assez intuitive. Une fois le dépaysement passé, la prise en main est très bonne. Personnellement je ne quitterai pas Gnome 3 de si tôt !

Coté fenêtre, le style est simple mais agréable (à quelques détails prêt que vous pouvez modifier). Toutefois un choix est assez étrange : seul le bouton fermé demeure. Les boutons agrandir, et minimiser sont absents ! Choix étrange et entraînant un manque à l’utilisation.

Personnalisons un peu la bête !

Un autre avantage de Gnome 3 : il est modulaire. En recherchant via le gestionnaire de paquet, on trouve plusieurs « extensions ». J’en ai installer quelques une (les plus courants tels que « avant-window-navigator). Au final via extension j’ai pu rajouter principalement  :

  • Un dock latéral représentant les applications favorites ainsi que les applications lancées
  • Un bouton présentant les principaux répertoires et disques auxquels je peut avoir accès. Ce bouton s’intègre au panel du haut du bureau.

Je n’ai pas non plus fouillé en profondeur les extensions disponible ! Toutefois, le dock latérale est vraiment un ajout appréciable qui facilite encore la navigation entre les fenêtres.

En Synthèse

Les plus :

  • Fluide et réactif
  • Modulable
  • Le menu type GnomeDo
  • Le style épuré

Les moins :

  • Le thème de base qui mérite d’être reconfigurer (choix des polices et des tailles)
  • Le choix « Arrêter » qui par défaut est à « Mise en veille » (possible d’y accéder en appuyant sur Alt. Des extensions permet de fixer définitivement Arrêter dans le menu).
  • Les boutons maximiser et minimiser des fenêtres qui sont absents

Le mot en plus – ArchLinux

Au passage, ce week-end je testait pour la premier fois ArchLinux. J’ai effectué l’installation a partir de CTKArch, un live cd basé sur openbox / lxde. En effet ArchLinux s’installe purement en mode texte et sans bureau graphique par défaut. Etant donné que je suis en wifi seulement, l’installation from scratch me paraissait difficile à faire.

CTKArch inclut donc quelques logiciels et un environnement graphique par défaut. Il ne s’agit toutefois pas d’une distribution a part : les dépots et le système sont ceux d’ArchLinux.

Après test, ArchLinux présente pour moi 3 réèl avantage par rapport au monde debian d’où je vient (debian ou ubuntu) :

  • Réactivité : ArchLinux boot en moins de 30 sec ! Le tout est très très réactif. Waou !
  • Logiciel à jour : Le système est réèllement à jour et les paquets inclut les dernières versions logiciels. Par exemple j’ai pu installer Eclipse 3.7 alors que debian ou ubuntu sont encore en Eclipse 3.5 (même en testing).
  • Rolling Release : ici pas de version, nous somme dans une mise à jour en continu. Je pense que le monde Debian devrait vraiment s’inspirer de cette manière de fonctionner qui est très agréable.

Toutefois, ArchLinux a également son lot de défaut : la distribution est beaucoup moins user-friendly que debian. Pas de pré-configuration, pas de gestionnaire de paquet en mode graphique, beaucoup de configuration à faire en fichier directement. Un choix de la distribution qui la rend plus dur d’accès. Toutefois une fois le système installé / configuré, c’est un régale.

Lyon JUG – Java 7

Le Lyon JUG (Java User Group) était présenté par Alexis Moussine-Pouchkine, membre d oracle, et Julien Ponge, professeur a l‘INSA. Ce Lyon JUG avait pour but de présenter la nouvelle version de Java : Java 7.

Globalement java 7 est une petite version de java : ajoutant principalement de la cosmétique ayant pour but de faciliter le travail des développeurs et d’améliorer la lisibilité.

Il y a toutefois deux réelles évolutions amené dans le langage.

· L api filesystem a été refondu pour offrir plus de fonctionnalité et de faciliter. Il sera possible de manipuler directement le filesystem : parcours comme un arbre, copie, surveillance d’événements tels que la modification d un fichier ou son arrive. Toutefois les fonctionnalités avance de cette api ne sont pas 100% portable et ne fonctionneront pas, par exemple, sur Windows.
· Java 7 offre également une nouvelle api de gestion du multithread : l envoi des threads est alors laissées a l api qui optimise en fonction du nombre de cœur présent.

Dans les évolutions mineures, il y a quelques ajouts sympathiques :

· Try catch avec ressources : facilite la gestion des ouvertures et fermeture de ressources.
· Try catch multiple : permet d gérer plusieurs exception dans un seul block catch
· String utilisable tel quel dans les Switch
· Lors de l’instanciation d’une Collection, il ne sera plus nécessaire de repréciser le type présent dans la définition. Ex : List a = new List<>() ;

La JVM voit également l’apparition d’un type « InvokeDynamic » (typage dynamique) destiné à faciliter l’exécution des langages dynamiques dans la JVM.

Nous avons également eu quelques infos sur le développement de Java 8. La communauté Java travaille actuellement à intégrer certaines fonctionnalités présentes dans la jvm Rockit : suppression de la zone permgen, nouveau outils de monitoring de la jvm, …

Un projet de modularisation de la JRE est actuellement en cours. L’objectif est de crée une JRE plus lite qui pourra ensuite est compléter par des modules complémentaires (module JDBC, module JMX, …).

De son coté, le JCP est également en cours d’évolution : l’objectif est d’accélérer la structure de décision autour de Java et de son évolution.

Early Release Eclipse 4

Alors que la version 3.7 vient tout juste de sortir, la fondation nous fait la surprise de publier une “Early Release” de la version 4.0 ! Que nous réserve donc cette version majeure ?

Un thème graphique retravaillé

Un gros travail a été réalisé sur l’interface graphique dont le moteur a été visiblement refondu ! Les élements restent classiques (vue, workspace, perspective) mais eclipse bénéficie maintenant d’un réèl thème graphique coloré et assez joli.

Le positionnement des élements dans l’interface a été retravaillé pour le rendre toujours plus flexible ! Il est nottament possible de faire passer n’importe quelque vue comme une fenetre dans l’éditeur, ou d’avoir plusieurs éditeurs en parallèle.

Le menu principale devient également “variable” en fonction de l’endroit où l’on se trouve. On retrouve nottament certain menu tels que “Source” ou “Réfactor” qui avant ne se trouvait que sous le click droit.

Un champs “Rechercher”

L’interface se dote également d’un champs Rechercher. Ce champs permet de chercher parmis les vues, les perspectives, les configurations, et un peu tous les autres élements d’Eclipse). Pas révolutionnaire mais assez pratique.

Une application allegée

Un point qui nous fera plaisir à tous, l’application connait une net diminution des ressources consommées ! En temps normal, le Heap Space de l’appli tourne autour de 50M (contre 100M pour Eclipse 3.6).

Une mécanique retravaillé

Il y a également quelques modifications “interne” à l’outils qui, pour l’instant, vont être beaucoup moins visible. Globalement le moteur de fonctionnement a été refondu pour être plus propre et plus découplé.

Etant donné que je n’ai jamais encore développé de plugin Eclipse, je ne rentrerai pas dans le détail sur ces points.

Eclipse annonce également une meilleur intégration de certains outils tels que Maven. Je n’ai toutefois pas encore pu le constater.

Une application pas encore prêt à la prod !

Attention également, nous somme en Early Release. Autrement dit l’application n’est pas “stable”. Eclipse en lui même marche très bien, mais un grand nombre de plugin ne fonctionne pas encore.