Planet Libre

Renault : Participez à la journée de test consacrée à l'internationalisation

Aujourd'hui, ce mardi 19 septembre, est une journée dédiée à un test précis : sur l'internationalisation de Fedora. En effet, durant le cycle de développement, l'équipe d'assurance qualité dédie quelques journées autours de certains composants ou nouveautés afin de remonter un maximum de problèmes sur le sujet.

Elle fournit en plus une liste de tests précis à effectuer. Il vous suffit de les suivre, comparer votre résultat au résultat attendu et le notifier.

En quoi consiste ce test ?

Comme chaque version de Fedora, la mise à jour de ses outils impliquent souvent l’apparition de nouvelles chaînes de caractères à traduire et de nouveaux outils liés à la prise en charge de langues (en particulier asiatiques).

Pour favoriser l'usage de Fedora dans l'ensemble des pays du monde, il est préférable de s'assurer que tout ce qui touche à l'internationalisation de Fedora soit testée et fonctionne. Notamment parce qu'une partie doit être fonctionnelle dès le LiveCD d'installation (donc sans mise à jour).

Les tests du jour couvrent :

  • Le bon fonctionnement d'ibus pour la gestion des entrées claviers ;
  • La personnalisation des polices de caractères ;
  • L'installation automatique des paquets de langues des logiciels installés suivant la langue du système ;
  • La traduction fonctionnelle par défaut des applications ;
  • Les polices Serif chinois par défaut (changement de Fedora 27) ;
  • Test de libpinyin 2.1 pour la saisie rapide du chinois Pinyin (changement de Fedora 27).

Bien entendu, étant donné les critères, à moins de savoir une langue chinoise, l'ensemble des tests n'est pas forcément réalisable. Mais en tant que francophones, de nombreuses problématiques nous concernent et remonter les problèmes est important. En effet, ce ne sont pas les autres communautés linguistiques qui identifieront les problèmes d'intégration de la langue française.

Comment y participer ?

Vous pouvez vous rendre sur la page des tests pour lister les tests disponibles et rapporter vos résultats. La page wiki récapitule les modalités de la journée.

Si vous avez besoin d'aide lors du déroulement des tests, n'hésitez pas de faire un tour sur IRC pour recevoir un coup de main sur les canaux #fedora-test-days et #fedora-fr (respectivement en anglais et en français) sur le serveur Freenode.

En cas de bogue, il est nécessaire de le rapporter sur le BugZilla. Si vous ne savez pas faire, n'hésitez pas à consulter la documentation correspondante.

De plus, si une journée est dédiée à ces tests, il reste possible de les effectuer quelques jours plus tard sans problème ! Les résultats seront globalement d'actualité.

Gravatar de Renault
Original post of Renault.Votez pour ce billet sur Planet Libre.

Articles similaires

alterlibriste : Pas toujours facile de promouvoir le libre quand on n'est pas convaincu

Encore un billet un peu sous forme de dépêche, mais il va falloir oublier quelque temps les longues réflexions, car je n’ai ni vraiment l’envie, ni vraiment le temps. Je préfère profiter du temps plutôt agréable pour aller faire du sport dehors. Même la lecture de mes flux rss est plus ou moins expédiée sans m’attarder sur les annonces de versions, les billets techniques ni les aspects sécurité.

Je n’en reste pas moins dans la mouvance libriste et continue d’écouter les podcasts traitant le sujet de près ou de loin. Je signale donc que l’émission canadienne (précédemment chroniquée) traitait ce week-end des logiciels libres. Bon, pour des addicts aux iPhone et aux réseaux sociaux de masse, ça sonnait un peu faux et il y a même eu une petite remarque assez désobligeante comme quoi les développeurs faisaient d’abord du libre pour se faire un CV avant d’intégrer les grosses boîtes privatrices.

La partie la plus intéressante était celle consacré à Purism avec ses machines libres : laptop et futur téléphone. Ce dernier fait pas mal parler de lui, à voir s’il fera mieux que la tentative ratée de Canonical ; ils en sont actuellement à 30 % de leur campagne de financement, 35 jours avant la fin. Il y a une demande mais à ce prix (600 $) et avec un tel délai (presque un an et demi), il faut être motivé !

La fin de l’émission a été consacrée aux CHATONS de Framasoft que l’on ne présente plus ici. Encore une fois, ça sentait un peu l’œuvre de charité, pourquoi quitter le monde Google quand on s’y sent si bien et que tout y est tellement mieux fait ?, avouent les différents intervenants.

Cela me fait penser que finalement, tous ceux qui relaient ce genre d’informations se donnent en quelque sorte bonne conscience en montrant qu’une alternative existe pour ceux qui se plaignent des géants du web. Encore faudrait-il avoir le courage de ses opinions et parfois accepter un peu moins de clinquant pour plus de liberté.

Gravatar de alterlibriste
Original post of alterlibriste.Votez pour ce billet sur Planet Libre.

Articles similaires

genma : Yunohost et les applications Framasoft

Comme je le disais dans mon billet et ma conférence De Framasoft à Yunohost, réapproprions nous le cloud un partenariat avait été mis en place entre Framasoft et Yunohost avec du temps d'un salarié de Framasoft consacré au packaging d'application Framasoft pour Yunohost.

Quelques mois après, où en est-on ?

L'idée n'est pas de parler au nom de Framasoft mais plus de remettre en avant cette collaboration et de faire un petit suivi de l'avancement. Une image valant mieux qu'un long discours :

On peut donc voir qu'il reste donc encore des applications à packagées, il faut maintenir les packages existant (en les faisant évoluer pour que les applications installées sur une instance Yunohost soient mises à jour ou qu'une installation fraîche installe la dernière version de l'application...)

Si vous souhaitez aider, si vous avez un peu de temps ou tout simplement des retours d'expérience à faire, il y a un topic dédié dans le forum Yunohost sur le sujet.

Contribuez à Yunohost

D'une façon plus générale, Yunohost a besoin de contributeurs pour tous les aspects du projet. A savoir :
- backend : python (simple), bash (lua)
- frontend : html/js (sammy.js)
- packging des apps : full bash, et des connaissance en sysadmin sont nécessaires (configuration nginx)
- sécurité : revue de code
- infrastructure du projet : debian, deb toolchain, ruby
- relation avec la communauté : communication, support via le forum, dans les issues de Git...
- aide à la traduction et à la documentation
- testing (les versions beta) avec rapport de bugs
- ...

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Journal du hacker : Liens intéressants Journal du hacker semaine #37

Pour la 37ème semaine de 2017, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Renault : Bilan mensuel de la documentation francophone de Fedora-fr.org, numéro 2

Pour rappel, vous pouvez consulter l'état du travail en cours sur la documentation.

À cause des vacances et d'autres histoires personnelles, j'ai loupé le bilan d'août et j'ai moins contribué que la période juin-juillet. En cette rentrée, faisons quand même un bilan du travail abattu depuis deux mois.

Les sujets traités ont changé quelque peu. C'est plus centré autours des thématiques :

  • Les dépôts externes ;
  • La création de médias personnels et leur exploitation ;
  • L'usage serveur.

Personnellement je me suis occupé plutôt des deux premiers thèmes. Par exemple le dépôt de RPMFusion et les paquets multimédia qu'il propose sont un incontournable auprès des utilisateurs de Fedora. Il était important de s'y atteler car de nombreux paquets ont évolué, que ce soit des nouveaux venus, des évolutions majeures comme plus de codecs accessibles via mplayer ou GStreamer.

Concernant le deuxième point, il était nécessaire de revoir les procédures pour exploiter kickstart qui a évolué (notamment depuis l'apparition des Spins et des produits Server, Workstation et Cloud). Les moyens de télécharger Fedora ont changé, le Live CD a peu à peu laissé place au Live USB qui a été particulièrement mis en avant avec l'outil Fedora Media Writer. D'ailleurs l'installation d'un dual Boot avec Windows a aussi beaucoup évolué, car GRUB a changé avec sa version 2 ce qui a simplifié la procédure et Windows est aussi plus conciliant sur ce genre de cohabitation.

J'ai également rafraîchi la page d'aide pour contribuer à Fedora, car depuis le temps les sujets ont évolué, de nouvelles ressources ou secteurs ce sont développés comme l'assurance qualité et l'ajout aussi de la documentation francophone jusqu'ici absente.

Le dernier point a été particulièrement étudié par Nicolas, car Fedora a bien entendu un usage serveur important dont le paysage a changé. Outre MySQL devenu MariaDB, de nombreuses commandes ont changé avec l’évolution des outils. Si l’environnement web LAMP est surtout concerné, cela touche également SELinux, le serveur de courriel Dovecot et Openldap. Un énorme travail a été accomplis, donc merci à lui !

Je remercie également les autres contributeurs, relecteurs ou toute autres personnes qui se sont impliquées dans ce processus comme Édouard, Nicolas Chauvet, et d'autres.

Aujourd'hui donc, nous sommes à 42 articles traités, contre 25 au précédent bilan. Je suis satisfait des progrès réalisés sur la documentation. Il y a beaucoup de travail à mener encore, mais il semble possible que la documentation soit dans un état très acceptable d'ici Fedora 27 ou la fin de l'année 2017. Ensuite il faudra veiller à maintenir la documentation à jour continuellement et ajouter des articles suivant les besoins du moment.

Je vous invite en tout cas à nous donner un coup de main, pour cela je vous conseille de suivre la procédure pour contribuer à la documentation et si possible de participer à nos ateliers hebdomadaires tous les lundi soir à partir de 21h (heure de Paris) sur le canal IRC #fedora-doc-fr du serveur Freenode. Rien ne vous empêche de contribuer en dehors du cadre des ateliers, toute l'aide est la bienvenue. Alors, n'hésitez pas !

Gravatar de Renault
Original post of Renault.Votez pour ce billet sur Planet Libre.

Articles similaires

Renault : Petit bilan de Rawhide, épisode 5, septembre 2017

Je n'ai pas écrit de bilan de Rawhide en juin, juillet et août, l'approche de la version finale de Fedora 26 a amené trop peu de changements visibles pour que ce soit pertinent de les noter au départ puis j'ai manqué de temps pour traiter les avancées de Fedora 27.

Fedora 26 étant disponible depuis le 11 juillet, mon ordinateur personnel est repassé aussi tôt sur Fedora Rawhide qui est devenu il y a un mois Fedora 27 en devenir.

Fedora 27 Beta va d'ailleurs bientôt arriver, d'ici quelques semaines. Ce sera une première sans version Alpha préliminaire.

Changements

Dès le début GNOME 3.26 a des changements assez visibles. Je vous invite à lire les notes de versions pour plus de détails (et les illustrations). L'utilitaire gnome-tweak-tool a été remanié, les options sont plus nombreuses et le style de sélection ressemble à l'interface de GNOME Builder. Le centre de contrôle de GNOME a été également très modifié, avec une nouvelle organisation via cette barre latérale permanente et la refonte de nombreuses pages comme ce qui touche à l'affichage ou au réseau.

Je ne sais pas pourquoi mais la police par défaut de GNOME Terminal (police à chasse fixe) est Monospace Regular ce qui change bien entendu le rendu.

Quand les fenêtres dans GNOME sont rétrécies ou agrandies, il y a un nouvel effet visuel. Rien de sensationnel, mais c'est plutôt agréable sans pertes de performance dans la foulée j'ai l'impression. La barre de GNOME devient également transparente s'il n'y a pas de fenêtres maximisées.

Pendant quelques semaines, Empathy a également bénéficié de la refonte de son interface pour être plus homogène avec les autres applications GNOME en adoptant une interface proche de Polari. Mais cela était expérimental et l'interface habituelle a repli place. En espérant qu'il reviendra bientôt.

Et bien d'autres que je n'ai sans doute pas remarqué ou qui sont plus insignifiants.

Problèmes

Rawhide comporte bien évidemment de bogues. Même si des procédures doivent être mises en place durant ce cycle pour améliorer la qualité globale de cette branche de Fedora, des bogues importants resteront probablement présents.

En premier lieu, mon système de fichier /home chiffré avec LUKS n'était plus monté automatiquement. C'est plutôt gênant, on doit le faire à la main mais heureusement sans autres conséquences notamment en terme de cohérence des données. Heureusement corrigé depuis.

Un autre bogue, assez pénible, le sélecteur de fichier de GTK crashe. Donc dès qu'il faut choisir / ajouter un fichier dans un programme, l'application plante. Cela a été corrigé avant que je n'en fasse un rapport.

Firefox 55 a été oublié des mises à jour des paquets, à la base suite à des soucis pour le compiler puis par oubli du mainteneur. :-)

Sinon GNOME est très instable. La session se ferme régulièrement (toutes les heures presque) voire à certains moment comme à l'ouverture d'une machine virtuelle. Beaucoup de rapports de bogues tournent autours de ce sujet. Il semble que le composant gjs soit le fautif et une correction semble en cours. C'est rare que GNOME soit autant en difficulté et étant donné l'importance du sujet Fedora bloque l'évolution du cycle de F27 le temps que cela se calme.

Gravatar de Renault
Original post of Renault.Votez pour ce billet sur Planet Libre.

Articles similaires

Cenwen : Remplacer avantageusement Shutter par HotShots

Fervent utilisateur de Shutter depuis de nombreuses années, je me suis retrouvé sans logiciel de capture d’écran il y a quelques mois. En effet, le projet n’ayant pas eu de maj depuis au moins 2 ans (cela a été fait récemment) et les bureaux et librairies graphiques ou pas évoluant durant ce laps de temps, il m’a été impossible de lancer le logiciel après une maj de Manjaro. Cela ne sentait pas bon pour l’avenir , vu que cette distribution en rolling-release est à la pointe des dernières versions en tout genre, que ce soit pour l’environnement ou bien pour les librairies. Bref, il fallait que je trouve une solution. Mon choix s’est alors porté sur HotShots, écrit en C++ et QT4 .

Hum HotShots. Est-ce que cela se mange ?

Traduit en 21 langues, Hotshots permet de réaliser des captures d’écrans dans différents formats et de leurs appliquer des modifications diverses, le plus facilement du monde.

Les caractéristiques principales de cet outil sont :

  • capturer tout l’écran, tous les écrans (si vous en avez plusieurs), une portion de l’écran, une fenêtre, une zone à main levée
  • exportation de l’image dans les formats png, tiff, tif, jpg, jpeg, gif, svg, pgm, ppm, ico, bmp, mng, pbm, svgz, xbm, xpm
  • définition du délai de la capture (pas ou selon votre choix)
  • définition de l’action à réaliser sur l’image capturée (sauvegarde automatique, sauvegarde de l’image à la demande de l’utilisateur, ouvrir directement l’éditeur, ne rien faire)
  • imprimer directement l’image que ce soit dans le logiciel ou bien dans l’éditeur
  • démarrer automatiquement ou non le logiciel au démarrage système
  • minimiser l’application dans le systray
  • application directe d’un filtre de type ombre portée simple, ombre portée avec bordures, opacité progressive, bords déchirés
  • mise à l’échelle de l’image
  • exportation automatique ou non de l’image vers un serveur FTP, un service d’hébergement d’images en ligne (FreeImageHosting.net, ImageShack.us, Imgur.com, CanardPC) ou bien sur votre disque dur avec ou pas de proxy

 

Comment l’installer ?

Comme d’habitude sous Linux, vous avez le choix pour installer et tester ce logiciel. Soit vous utilisez votre gestionnaire de paquets comme Octopi, Pacmac, Synaptic, Linux Mint Software Center, Ubuntu Software Center, …. , soit en ligne de commande.

Vu que pour Archlinux et dérivées dont Manjaro, le logiciel est disponible sur AUR, la ligne de commande sera :

yaourt -S hotshots

Si vous êtes sur Ubuntu et dérivés dont Linux Mint, la commande sera la suivante :

sudo apt-get install hotshots

 

Présentation rapide de l’interface

L’interface dispose de 3 zones principales.

Tout en haut, vous avez la barre d’outils qui permet un accès rapide aux principales fonctionnalités du logiciel, à savoir :

  • Quitter l’application
  • A propos de l’application elle-même (version, traductions, remerciements, actions faites pour cette version et les précédentes, licence, …)
  • Ouverture des préférences
  • Sauvegarder l’image (à la demande de l’utilisateur)
  • Télécharger l’image sur le web
  • Imprimer directement l’image
  • Copier vers le presse-papier
  • Ouvrir l’éditeur et annoter, modifier l’image
  • Capturer l’écran courant
  • Capturer tous les écrans
  • Capturer une fenêtre
  • Capturer une région
  • Capturer une région à main levée

Au centre se situe la deuxième zone, qui est en fait la zone d’affichage de l’image.

En bas, se trouve la troisième et dernière zone dans laquelle vous trouverez les paramètres principaux de l’image. Cette zone est elle-même découpée en deux parties. A gauche vous pouvez reprendre le même cliché (pratique quand vous capturer une région). Quant à celle de droite, vous pouvez définir le répertoire de sortie, le mode de capture, le délai de la capture, l’action à réaliser après la capture.

L’éditeur d’écran est quant à lui découpé en quatre zones.

On retrouve tout en haut la fameuse barre d’outils qui permet là aussi un accès rapide aux fonctions essentielles bien que celle-ci soit un peu plus étoffée en fonctionnalités que celle de l’interface principale. Nous retrouvons de gauche à droite :

  • Quitter l’éditeur
  • Ouvrir un fichier
  • Créer un nouveau document
  • Importer une image du presse papier
  • Sauvegarder l’édition actuelle
  • Sauvegarder sous l’édition actuelle
  • Copier vers le presse papier
  • Exporter l’image
  • Télécharger l’image sur le web
  • Imprimer l’image
  • Ajuster à la fenêtre
  • Réinitialiser l’échelle
  • Annuler la dernière action
  • Restaurer la dernière action
  • Ajouter un effet à l’image de fond
  • Retailler l’image de fond
  • Appliquer un alignement à un groupe d’images
  • Afficher/Cacher l’ombrage des éléments
  • Mettre les éléments sélectionnés au dessus
  • Mettre les éléments sélectionnés en haut
  • Mettre les éléments sélectionnés en dessous
  • Mettre les éléments sélectionnés en bas
  • Dupliquer l’élément courant
  • Effacer tous les éléments
  • Supprimer les éléments sélectionnés

Au centre, se trouve la seconde zone qui correspond à l’image ouverte.

A sa gauche, verticalement, nous retrouvons une autre barre d’outils fort intéressante. Celle-ci comporte des outils de dessin basiques qui sont les suivants:

  • Sélectionner
  • Écrire un texte
  • Tracer une ligne
  • Entourer
  • Tracer une polyligne
  • Tracer un polygone
  • Dessiner une courbe
  • Couper l’image de fond
  • Tracer un rectangle
  • Tracer une ellipse
  • Tracer une flèche
  • Tracer une balise
  • Mettre en évidence
  • Loupe
  • Ajouter une image
  • Mettre un flou
  • Décroître la taille de la police
  • Accroître la taille de la police
  • Réinitialiser les couleurs
  • Inverser les couleurs
  • Couleurs de premier et d’arrière plan
  • Une série de lignes de différentes tailles et styles

Enfin, la dernière zone interagit avec les deux derniers points de la précédente. D’un clic, vous modifier la couleur de celles-ci avec le choix que vous venez de sélectionner dans la quatrième zone.

Un dernier mot

Comme vous avez pu le constater tout au long de cet article, HotShots est un outil qui vaut le détour et qui a sa place au sein de votre bureau. Certes, j’ai pu noter quelques désagréments mineurs différents selon la distribution utilisée avec toutefois le même environnement. Sur Manjaro, les icônes des actions réalisables dans le systray ne sont pas affichées contrairement à Linux Mint. A l’inverse, l’icône de l’application ne s’affiche nulle part que ce soit dans le menu ou bien quand l’application est ouverte sur Mint. Ce sont cependant des remarques mineurs, n’empêchant nullement l’utilisation journalière de l’application avec une efficacité redoutable.

Un dernier mot avant de finir cet article, concerne l’éditeur de capture d’écran. Cet outil est à lui seul une application entière de dessin. Toutefois, il répond efficacement à l’essentiel et même plus. Une documentation expliquant les diverses fonctionnalités de ces outils serait le bienvenue car certains sont un peu obscurs à l’usage.


Classé dans:Découverte, Logiciels, News, Planet-Libre Tagged: C++, Dessin, Hotshots, Image, Linux, Logiciels

Gravatar de Cenwen
Original post of Cenwen.Votez pour ce billet sur Planet Libre.

Articles similaires

Full Circle Magazine FR : Pour la rentrée

Bonjour !

Aujourd'hui, à peine deux semaines après la sortie du numéro en anglais, l'équipe française est heureuse de vous présenter ce numéro 124,du mois d'août 2017, en français. Il peut être téléchargé ou visionné sur notre page NUMÉROS ou téléchargé directement en cliquant sur la photo de couverture ci-dessous.

issue124fr.png

Bien que les numéros deviennent de plus en plus courts, vous y trouverez notamment :

  • tous les tutoriels habituels PLUS un sur des sauvegardes avec les instantanés ZFS ;
  • le début d'une courte série par Charles McColm sur sa configuration KODI (dans la rubrique Le coin KODI) ;
  • et de nouveaux bureaux à admirer !

N'hésitez pas à envoyer vos propres articles, critiques, tutoriels, opinions ou histoires, etc., en anglais, à Ronnie@fullcirclemagazine.org, car sans les articles des lecteurs, la revue ne pourra pas exister. Au besoin, et si votre prose n'est pas trop long, on se fera un plaisir de le traduire du français en anglais (webmaster@fullcirclemag.fr).

En attendant, bonne lecture !

  • Bab, scribeur et relecteur
  • d52fr, traducteur et relecteur
  • AuntieE, traductrice et relectrice

Gravatar de Full Circle Magazine FR
Original post of Full Circle Magazine FR.Votez pour ce billet sur Planet Libre.

Articles similaires

OLPC France : Une plateforme de traduction pour Sugarizer

Et si Sugarizer  – un goût de Sugar sur n’importe quelle machine  – pouvait être disponible dans votre langue ?

Pour faciliter les efforts de traduction de la communauté, nous avons unifié tous les fichiers sources à traduire pour Sugarizer (Sugarizer core, le site web Sugarizer website, les activités incluses et le future  Sugarizer Server dashboard) dans une nouvelle plate-forme:

http://translate.sugarizer.org

Cliquez simplement sur cette URL et vous pourrez démarrer la traduction:

  • Suggérez une nouvelle traduction sans même avoir besoin de vous connecter
  • Enregistrez-vous pour démarrer la traduction sur une nouvelle langue ou valider des traductions

Grâce à Weblate l’outil utiliser pour cette plateforme, toutes les nouvelles traductions seront intégrés dans les dépôts correspondants sans autres actions de votre part.

N’hésitez pas à nous solliciter pour toutes questions ou problèmes.

Gravatar de OLPC France
Original post of OLPC France.Votez pour ce billet sur Planet Libre.

Articles similaires

Marthym : Hello OSGi World, Part 4, Injection de dépendances

Quelles sont donc les raisons d’utiliser OSGi ? On en a vu plusieurs jusqu’ici :

  • Isolation des classpath par bundle
  • Chargement et mise à jour des bundles à chaud

Mais OSGi c’est aussi et surtout un framework d’injection de dépendances. Comme pour tout dans l’univers OSGi, l’injection est une spécification et il existe plusieurs implémentations comme iPOJO ou Declarative Service. On ne verra pas iPOJO parce que je suis pas fan et j’ai plus l’habitude d’utiliser DS.

Declarative Service

DS permet de déclarer des composants et des services qui s’injectent les uns les autres. Initialement tout doit être déclaré dans des XML et dans le MANIFEST.MF, encore un truc bien fastidieux ! Heureusement, SCR vient à notre secours et permet de faire tout ça via des annotations ce qui rend la chose plus sympa et plus “actuelle”.

Ajoutons donc les dépendances nécessaires au projet:

org.apache.felix org.apache.felix.scr ${felix-scr.version} org.osgi osgi.cmpn ${osgi.core.version} provided
  • osgi.cmpn pour les annotations. C’est une dépendance de compilation uniquement, on ne la veut pas dans le package final. Si vous la laissé, au lancement vous aurez une erreur assez parlante. À déclarer dans how-rest.
  • org.apache.felix.scr c’est l’implémentation runtime uniquement qui gère les composants au runtime. À déclarer dans how-assembly
Création de composants

Voici à quoi ressemble un composant

import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Component(name = "http-server", immediate = true) public final class HttpServerComponent { private static final Logger LOGGER = LoggerFactory.getLogger(HttpServerComponent.class); @Activate private void startHttpServer() { LOGGER.info("HTTP Server started on port {}", 8888); } }

C’est l’annotation @Component qui définit un composant. name détermine le nom du composant, l’information n’est pas obligatoire, si absente le composant aura le nom de la classe. immediate permet de dire que le composant doit être instancié dès que le bundle est activé, sans ça le composant ne sera instancié que quand il sera nécessaire. Comme aucun autre composant ne dépend du nôtre, si on ne le met pas immédiate, on ne verra rien.

L’annotation @Activate détermine la méthode qui sera exécutée lors de l’activation du composant. Ici on se limite à un log pour vérifier que cela fonctionne.

Et un coup de mvn clean package puis on lance l’application et …

____________________________ Welcome to Apache Felix Gogo g! 21:43:51.533 [fileinstall-application] INFO fr.ght1pc9kc.how.HowActivator - HOW is now Activated ! 21:43:51.554 [fileinstall-application] INFO fr.ght1pc9kc.how.HttpServerComponent - HTTP Server started on port 8888

On voit bien les deux messages. Et à ce moment vous vous dites “merde mais l’activateur ça sert du coup ?”. Ben en fait non, SCR instancie les composant et exécute les méthodes @Activate du coup c’est plus très utile. Après c’est quand même pas la même chose, l’activateur agit au niveau bundle alors que @Activate agit au niveau composant.

Bref on peut supprimer l’activateur et la toutes section du pom de how-rest qui devient elle aussi inutile. Dans le jar maintenant, au même niveau que META-INT on trouve OSGI-INF qui contient les déclarations XML des composants que le maven-bundle-plugin a généré pour nous.

Gogo gadgeto composant

Jetons un œil coté gogo shell, un coup de help montre une nouvelle série de commandes, les scr:. Essayez scr:list :

g! scr:list BundleId Component Name Default State Component Id State PIDs (Factory PID) [ 9] http-server enabled [ 0] [active ] g!

Pour chaque bundle, cette commande liste les composants et leur état. C’est très utile si un composant ne s’active pas, pour savoir ce qu’il lui manque, quelles dépendances ne sont pas satisfaites par exemple.

Dis Bonjour !

Ben oui on a fait plein de trucs mais on a toujours pas notre Hello World. Maintenant que la machinerie est en place on peut lancer un serveur HTTP à l’activation de notre composant http-server :

@Activate private void startHttpServer() { Undertow server = Undertow.builder() .addHttpListener(HTTP_PORT, "localhost") .setHandler(exchange -> { exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain"); exchange.getResponseSender().send("Hello OSGi World"); }).build(); server.start(); LOGGER.info("HTTP Server started on port {}", HTTP_PORT); }

J’ai pris un serveur Undertow parce qu’il est rapide simple, non-bloquant (killer feature dans notre cas !) et en prime il est compatible OSGi.

Je vous laisse voir les poms pour la liste des imports.

Il ne reste plus qu’à relancer l’application pour voir si ça fonctionne.

Ordre et dépendances ERROR: [http-server(0)] The startHttpServer method has thrown an exception java.lang.IllegalArgumentException: XNIO001001: No XNIO provider found at org.xnio.Xnio.doGetInstance(Xnio.java:270) at org.xnio.Xnio.getInstance(Xnio.java:187) at io.undertow.Undertow.start(Undertow.java:114) at fr.ght1pc9kc.how.HttpServerComponent.startHttpServer(HttpServerComponent.java:23) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:229) at org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39) at org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:650) at org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:506) at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:307) at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:299)

Voilà un autre inconvénient d’OSGi, l’ordre de chargement des bundles compte. La plupart du temps, les bundles dépendent les uns des autres et le framwork les résous en chargeant les bundles dans l’ordre. Mais là on a un bundle xnio.nio qui est une implémentation, personne ne dépend de lui. Mais tant qu’il n’est pas là le serveur Undertow ne peut être lancé. Mais comme personne ne dépend ni de xnio.nio ni de how-rest les deux bundles sont chargés par ordre alphabétique et l’activation de how-rest est déclenché avant que xnio.nio ne soit disponible.

Solution:

En regardant dans le code d’Undertow ou dans la documentation, on voit que Undertow, pour être lancé, a besoin d’une instance de Xnio. Comme c’est souvent le cas dans les modules standard qui “supportent” OSGi, la façon dont Xnio génère son instance et la façon dont Undertow en dépend ne permet pas d’éviter ce souci. Du coup c’est à nous de le gérer. Le plus simple pour ça est d’expliquer à OSGi que le module http-server ne peut être activé tant qu’il n’existe pas une instance accessible de Xnio. On ajoute la dépendance comme suit :

@Reference private void waitForXnio(Xnio xnio) { LOGGER.debug("XNIO Implementation found: {}", xnio); }

C’est l’annotation @Reference qui indique à Felix que le composant à besoin d’une instance de Xnio.

On rebuild l’application et ça démarre correctement ! Rendez-vous sur la page http://localhost:8080/ pour y voir s’affiche le message de bienvenue.

Le felix-cache

Il reste cependant encore un souci, si l’on stoppe (CTRL^C) et que l’on relance, on prend à nouveau cette erreur. C’est lié au cache que Felix génère. J’ignore pourquoi mais un chargement depuis le cache provoque la même erreur. Pour palier ce souci, on demande à Felix de recharger son cache à chaque démarrage. Dans le fichier de configuration Felix on ajoute la ligne:

org.osgi.framework.storage.clean=onFirstInit Dépendances Multiples

Pour finir, modifions un peu l’application pour la rendre plus dynamique. L’idée de faire en sorte que le serveur découvre les nouvelles route dynamiquement.

Pour cela, on crée une interface Route comme suit :

public interface Route extends HttpHandler { String getRoute(); }

Et dans le composant HTTP on ajoute une dépendance MULTIPLE à Route

@Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC) private void addHttpHandler(Route handler) { routingHandler.get(handler.getRoute(), handler); } private void removeHttpHandler(Route handler) { routingHandler.remove(handler.getRoute()); }

Ainsi chaque Route qui apparaîtra dans les bundles installé viendra s’ajouter à celle existantes. La présence d’une méthode removeHttpHandler est obligatoire pour packager le bundle. BND utilise le nom pour trouver la bonne méthode.

Une route ressemble à ça :

@Component public class HelloWorldRoute implements Route { @Override public void handleRequest(HttpServerExchange exchange) throws Exception { exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain"); exchange.getResponseSender().send("Hello OSGi World"); } @Override public String getRoute() { return "/hello"; } }

Si vous compilez les sources 4.0 il y a 2 routes, /hello et /bonjour.

C’est un exemple simple pour illustré les dépendances multiples, mais il est possible de faire beaucoup mieux, des Controllers avec l’API JAX-RS.

Next

Donc voilà, on a vu comment OSGi gère les dépendances. La prochaine fois on verra les Fragments Bundles, à quoi ça sert et comment on fait ça.

Hello OSGi World, Part 4, Injection de dépendances écrit à l'origine par Marthym pour J'ai acheté un PC neuf cassé ... le September 16, 2017.

Gravatar de Marthym
Original post of Marthym.Votez pour ce billet sur Planet Libre.

elementary OS : Les vacances sont terminées : elementary OS continue son évolution

Septembre sonne la fin des vacances d’été et la rentrée pour bon nombre d’entre nous, la team elementary OS n’a pour autant pas chômé : pendant les vacances d’été, l’équipe de Daniel a pu travailler de concert avec l’équipe de System76 pour faire évoluer l’Installateur d’elementary OS !

Le mois d’août a vu toutefois aussi de nombreuses mises à jour apparaître :

AppCenter

Cassidy a pu apporter quelques modifications graphiques sur la fenêtre de paiement de l’AppCenter, le titre ainsi que la description sont maintenant plus visibles :

 le titre d'une fenêtre est mis en valeur

 

Autre modification qui se voit greffer à AppCenter, l’ajout d’une liste noire qui intègre par exemple certains composants systèmes et outils hérités d’Ubuntu, mais qui ne fonctionnent pas sur elementary OS. Cette liste noire est accessible ici.

Un correctif a été aussi réalisé sur la gestion des URL de type appstream://,dans certaines conditions, vous pouviez être bloqués sur la fenêtre des mises à jour.

Look & Feel

Grâce à de nombreux retours faits sur GitHub, l’équipe de Daniel a pu augmenter le contraste des couleurs au niveau des sidebars de vos applications pour supporter les règles d’accessibilité des contenus web : le standard WCAG. Notre feuille de style intègre maintenant la classe .monospace pour le support des polices de caractères monospaced sur un widget. Autre point d’attention, lorsqu’une fenêtre est maintenant maximisée : les bords arrondis sont affichés en lieu et place de bord carré.

Coins arrondis

Si vous suivez de manière assidue le développement d’elementary OS depuis un autre système d’exploitation Open Source, vous serez ravis d’apprendre que la dernière version de notre feuille de style incorpore de nombreux correctifs de compatibilités pour Gtk+ ≥ 3.20. Ce travaille et ces correctifs seront intégrés dans la prochaine version majeure d’elementary OS. Cela inclut le changement de nombreux sélecteurs CSS vers de nouveaux noms(actionbarinstead en lieu et place de .action-bar ou GtkActionBar) ainsi que le support de nouvelles classes dont par exemple keycap.

L’indicateur Bluetooth se voit aussi mis à jour au travers d’un correctif qui corrige l’affichage en double les équipements Bluetooth. Un autre correctif s’est vu intégré qui corrige le comportement du séparateur de menu qui pouvait être déplacé avec la liste de périphériques.

Pour l’indicateur de Notification, la présence de texte long de notification se voit maintenant tronquée. Un autre fix s’est vu aussi intégré : celui-ci vient corriger le comportement de certaines fenêtres qui n’étaient pas minimisées lors d’un clic dans la zone de notification adéquate.

Un peu de nettoyage ainsi que quelques corrections d’ordre graphiques ont été apportés à l’indicateur de Session.

Mail

Mail se voit maintenant doter d’un bouton permettant l’ajout d’image directement dans le corps du mail ! Autre soucis maintenant corrigé, lors d’un clic sur un lien issu d’un lien dans un mail, il n’y aura plus de défilement involontaire.

FastMail a effectué un déplacement de leurs serveurs récemment, l’équipe a donc mis à jour le paramétrage des Comptes en ligne pour pointer vers leur nouvelle adresse.

Dans certains cas, lorsque Vidéo détecté la pression sur la barre d’espace, il pouvait interpréter cela comme une double pression sur cette même touche. La calculatrice se voit aussi mise à jour avec une amélioration de la gestion des décimales ainsi qu’un correctif qui empêche maintenant l’affiche du résultat -0.

Le billet Les vacances sont terminées : elementary OS continue son évolution a été publié sur le site de la elementary OS -

Gravatar de elementary OS
Original post of elementary OS.Votez pour ce billet sur Planet Libre.

Articles similaires

Morot : Puppet : automatiser la construction d’un volume GlusterFS répliqué

Puppet : automatiser la construction d’un volume GlusterFS répliqué

Je vais présenter rapidement comment créer le code Puppet adapté à la création d’un cluster à deux noeuds avec deux bricks répliqués. Pour la démonstration, j’aurais deux VM Ubuntu 16.04 et les bricks seront sur deux disques durs de 8 Go.

Préparation du Puppet Master

Installation des modules nécessaires :

# puppet module install puppetlabs-lvm Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules ... Notice: Downloading from https://forgeapi.puppet.com ... Notice: Installing -- do not interrupt ... /etc/puppetlabs/code/environments/production/modules └─┬ puppetlabs-lvm (v0.9.0) └── puppetlabs-stdlib (v4.20.0) # puppet module install puppet-gluster Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules ... Notice: Downloading from https://forgeapi.puppet.com ... Notice: Installing -- do not interrupt ... /etc/puppetlabs/code/environments/production/modules └─┬ puppet-gluster (v3.0.0) └─┬ puppetlabs-apt (v2.4.0) └── puppetlabs-stdlib (v4.20.0)

Notre arborescence pour le module se trouvera dans ce répertoire :

# mkdir -p /etc/puppetlabs/code/environments/production/modules/glustersrv/manifests   Préparation des disques Fichier /etc/puppetlabs/code/environments/production/modules/glustersrv/manifests/lvm.pp : class glustersrv::brick { # Dépendances : package { "xfsprogs": ensure=> present } package { "lvm2": ensure=> present } # On créé notre LVM : physical_volume { '/dev/sdb': ensure => present, } volume_group { 'vg-gluster': ensure => present, physical_volumes => '/dev/sdb', } logical_volume { 'lv-bricks': ensure => present, volume_group => 'vg-gluster', size => '7.9G', } filesystem { '/dev/vg-gluster/lv-bricks': ensure => present, fs_type => 'xfs', } # Le volume LVM est automatiquement monté mount { '/data/glusterfs/vol0': name => '/data/glusterfs/vol0', ensure => 'mounted', atboot => 'true', device => '/dev/vg-gluster/lv-bricks', fstype => 'xfs', options => 'defaults', dump => 1, pass => 0, } } Création du volume répliqué

Fichier /etc/puppetlabs/code/environments/production/modules/glustersrv/manifests/node.pp :

class glustersrv::node { file { '/data/glusterfs/vol0/brick0': ensure => 'directory', } package { "glusterfs-server": ensure => 'present' } service { 'glusterfs-server': ensure => running, enable => true, hasrestart => true, } gluster::volume { 'repl-vol': replica => 2, bricks => [ 'gluster0.morot.test:/data/glusterfs/vol0/brick0', 'gluster1.morot.test:/data/glusterfs/vol0/brick0', ], } } Affectation des classes

Fichier /etc/puppetlabs/code/environments/production/manifests/site.pp :

node 'gluster0' { include system include glustersrv::lvm gluster::peer { 'gluster1.morot.test': pool => 'production', } include glustersrv::node } node 'gluster1' { include system include glustersrv::lvm gluster::peer { 'gluster0.morot.test': pool => 'production', } include glustersrv::node } On vérifie root@gluster1:~# gluster volume status Status of volume: repl-vol Gluster process TCP Port RDMA Port Online Pid ------------------------------------------------------------------------------ Brick gluster0.morot.test:/data/glusterfs/v ol0/brick0 49152 0 Y 7037 Brick gluster1.morot.test:/data/glusterfs/v ol0/brick0 49152 0 Y 3817 NFS Server on localhost N/A N/A N N/A Self-heal Daemon on localhost N/A N/A Y 3844 NFS Server on 192.168.69.70 N/A N/A N N/A Self-heal Daemon on 192.168.69.70 N/A N/A Y 7063 Task Status of Volume repl-vol ------------------------------------------------------------------------------ There are no active volume tasks

Gravatar de Morot
Original post of Morot.Votez pour ce billet sur Planet Libre.

Articles similaires

blog-libre : sshrc, utiliser vos fichiers de configuration dans des sessions SSH

sshrc apporte une réponse à 2 problématiques :

  • Vous souhaitez pouvoir utiliser votre configuration locale aux petits oignons (alias, fonctions, variables d’environnement, bashrc, vimrc, inputrc, screenrc, etc.) lorsque vous êtes connectés sur les pc/serveurs que vous administrez. Cependant vous désirez ne pas toucher aux fichiers de configuration de ces pc/serveurs car vous ne pouvez pas (contexte professionnel) ou vous ne voulez pas. De plus plusieurs personnes se connectent au(x) même(s) compte(s), il faut respecter l’usage de chacun et ne pas imposer vos fichiers de configuration aux autres
  • Au contraire vous avez décidé d’utiliser vos fichiers de configuration (aussi appelés dotfiles) mais passer sur X pc/serveurs pour modifier un de vos fichiers de configuration ça vous gonfle et vous trouvez la gestion de configuration (Ansible, Puppet, Git + liens symboliques…) trop lourde pour si peu

Alors sshrc est fait pour vous. Sur votre poste vous allez créer un fichier ~/.sshrc dans lequel vous allez exporter/sourcer votre configuration personnalisée et un dossier ~./sshrc.d où vous allez placer vos fichiers de configuration (.bashrc, .vimrc, .inputrc, etc.). Au lieu de vous connecter sur ces pc/serveurs avec la commande ssh, vous allez vous connecter avec la commande sshrc (no stress c’est propre). Un dossier /tmp/.cascador.sshrc.XXXX unique (XXXX généré aléatoirement) sera créé sur l’hôte distant, votre configuration personnalisée sera envoyée dedans (avec openssl) puis chargée. A la déconnexion ce dossier sera supprimé.

sshrc est un script shell sous licence MIT aisément maintenable, compréhensible et lisible. Il nécessite comme prérequis openssl sur l’hôte local et distant. Il existe également moshrc pour Mosh. Voici le code source.

#!/usr/bin/env bash function sshrc() { local SSHHOME=${SSHHOME:=~} if [ -f $SSHHOME/.sshrc ]; then local files=.sshrc if [ -d $SSHHOME/.sshrc.d ]; then files="$files .sshrc.d" fi SIZE=$(tar cfz - -h -C $SSHHOME $files | wc -c) if [ $SIZE -gt 65536 ]; then echo >&2 $'.sshrc.d and .sshrc files must be less than 64kb\\ncurrent size: '$SIZE' bytes' exit 1 fi if [ -z "$CMDARG" -a ! -e ~/.sshrc.d/.hushlogin ]; then WELCOME_MSG=" if [ ! -e ~/.hushlogin ]; then if [ -e /etc/motd ]; then cat /etc/motd; fi if [ -e /etc/update-motd.d ]; then run-parts /etc/update-motd.d/ 2>/dev/null; fi last -F \\$USER 2>/dev/null | grep -v 'still logged in' | head -n1 | awk '{print \\"Last login:\\",\\$4,\\$5,\\$6,\\$7,\\$8,\\"from\\",\\$3;}' fi " else WELCOME_MSG="" fi ssh -t "$DOMAIN" $SSHARGS " command -v openssl >/dev/null 2>&1 || { echo >&2 \\"sshrc requires openssl to be installed on the server, but it's not. Aborting.\\"; exit 1; } $WELCOME_MSG export SSHHOME=\\$(mktemp -d -t .$(whoami).sshrc.XXXX) export SSHRCCLEANUP=\\$SSHHOME trap \\"rm -rf \\$SSHRCCLEANUP; exit\\" 0 echo $'"$(cat "$0" | openssl enc -base64)"' | tr -s ' ' $'\\n' | openssl enc -base64 -d > \\$SSHHOME/sshrc chmod +x \\$SSHHOME/sshrc echo $'"$( cat << 'EOF' | openssl enc -base64 if [ -r /etc/profile ]; then source /etc/profile; fi if [ -r ~/.bash_profile ]; then source ~/.bash_profile elif [ -r ~/.bash_login ]; then source ~/.bash_login elif [ -r ~/.profile ]; then source ~/.profile fi export PATH=$PATH:$SSHHOME source $SSHHOME/.sshrc; EOF )"' | tr -s ' ' $'\\n' | openssl enc -base64 -d > \\$SSHHOME/sshrc.bashrc echo $'"$( cat << 'EOF' | openssl enc -base64 #!/usr/bin/env bash exec bash --rcfile <(echo ' [ -r /etc/profile ] && source /etc/profile if [ -r ~/.bash_profile ]; then source ~/.bash_profile elif [ -r ~/.bash_login ]; then source ~/.bash_login elif [ -r ~/.profile ]; then source ~/.profile fi source '$SSHHOME'/.sshrc; export PATH=$PATH:'$SSHHOME' ') "$@" EOF )"' | tr -s ' ' $'\\n' | openssl enc -base64 -d > \\$SSHHOME/bashsshrc chmod +x \\$SSHHOME/bashsshrc echo $'"$(tar czf - -h -C $SSHHOME $files | openssl enc -base64)"' | tr -s ' ' $'\\n' | openssl enc -base64 -d | tar mxzf - -C \\$SSHHOME export SSHHOME=\\$SSHHOME echo \\"$CMDARG\\" >> \\$SSHHOME/sshrc.bashrc bash --rcfile \\$SSHHOME/sshrc.bashrc " else echo "No such file: $SSHHOME/.sshrc" >&2 exit 1 fi } function sshrc_parse() { while [[ -n $1 ]]; do case $1 in -b | -c | -D | -E | -e | -F | -I | -i | -L | -l | -m | -O | -o | -p | -Q | -R | -S | -W | -w ) SSHARGS="$SSHARGS $1 $2"; shift ;; -* ) SSHARGS="$SSHARGS $1" ;; *) if [ -z "$DOMAIN" ]; then DOMAIN="$1" else local SEMICOLON=$([[ "$@" = *[![:space:]]* ]] && echo '; ') CMDARG="$@$SEMICOLON exit" return; fi ;; esac shift done if [ -z $DOMAIN ]; then ssh $SSHARGS; exit 1; fi } command -v openssl >/dev/null 2>&1 || { echo >&2 "sshrc requires openssl to be installed locally, but it's not. Aborting."; exit 1; } sshrc_parse "$@" sshrc

Prise en main

On ne s’embête pas avec Git, on se contente de copier sshrc et le placer dans /usr/local/bin.

wget https://raw.githubusercontent.com/Russell91/sshrc/master/sshrc && chmod +x sshrc && sudo mv sshrc /usr/local/bin/ touch ~/.sshrc && mkdir -p ~/.sshrc.d

Voici mon fichier ~/.sshrc actuel. Dans le dossier ~/.sshrc.d j’ai mes .bashrc, .inputrc, .vimrc.

export EDITOR=vim export INPUTRC=$SSHHOME/.sshrc.d/.inputrc export LESS='-FRXi' export LESS_TERMCAP_mb=$'\\E[01;31m' export LESS_TERMCAP_md=$'\\E[01;31m' export LESS_TERMCAP_me=$'\\E[0m' export LESS_TERMCAP_so=$'\\E[01;44;33m' export LESS_TERMCAP_se=$'\\E[0m' export LESS_TERMCAP_us=$'\\E[01;32m' export LESS_TERMCAP_ue=$'\\E[0m' export VIMINIT="let \\$MYVIMRC='$SSHHOME/.sshrc.d/.vimrc' | source \\$MYVIMRC" source $SSHHOME/.sshrc.d/.bashrc if [[ -f ${SSHHOME}/.sshrc.d/.bash_aliases ]]; then source ${SSHHOME}/.sshrc.d/.bash_aliases ; fi if [[ -f ${SSHHOME}/.sshrc.d/.bash_functions ]]; then source ${SSHHOME}/.sshrc.d/.bash_functions ; fi

On se connecte ensuite à un serveur comme ceci sshrc root@blog-libre.org. Pour retrouver le répertoire sshrc echo $SSHHOME et s’y déplacer cd $SSHHOME; ls -a.

Je vous invite à taper « dotfile sshrc » dans votre moteur de recherche préféré pour avoir d’autres exemples : 1, 2, 3, 4, 5.

Deux points négatifs

Il n’est pas possible d’envoyer plus de 64 Ko de fichiers de configuration compressés avec sshrc. Première réaction la peur puis après quelques tests, j’arrive à passer 1 Mo sans problème, le mot important à retenir : compressés. Cependant ça reste un problème important pour certains, on peut citer les plugins Vim par exemple. Dans ce cas l’auteur conseille de copier les fichiers dans un obscur dossier sur le serveur et d’utiliser sshrc pour automatiquement sourcer ces configurations au login.

On a vu que sshrc était bien conçu et propre, il crée un dossier /tmp/.cascador.sshrc.XXXX unique qu’il supprime à la déconnexion. Cependant pour certains cas, vous serez obligés de « sortir » de ce dossier. Pour nano il n’est pas possible d’exporter un fichier de configuration, il lit seulement /etc/nanorc et ~/.nanorc, il ne possède pas d’option permettant de préciser où se situe (ailleurs) nanorc. On est donc obligé d’aller placer .nanorc dans ~/. Certains font une copie, d’autres créent un lien symbolique, c’est plus propre. Il faut gérer la suppression de ce fichier (on peut modifier trap \\"rm -rf \\$SSHRCCLEANUP; exit\\" 0 entre autres solutions) mais si une autre personne se connecte sous le même compte que vous, il va charger ce fichier de configuration… et puis vous touchez aux fichiers de configuration du pc/serveur (/root/.nanorc pourrait déjà exister par exemple).

Quelques conseils

N’oubliez pas que les fichiers de configuration de votre pc sont probablement différents de ceux de vos serveurs. Typiquement je suis sur Xubuntu et j’administre des serveurs Debian, les versions des paquets sont différentes, les fichiers de configuration également. Je vous invite à copier les fichiers de configuration à partir de vos serveurs dans ~/.sshrc.d puis les modifier.

N’hésitez pas à abuser de if [ "$(hostname)" == "jessie1" ]; then source ${SSHHOME}/.sshrc.d/.bashrc_jessie1 ; fi afin de gérer finement vos dotfiles par serveur.

Vous pouvez créer des liens symboliques au lieu de copier certains fichiers de configuration dans ~/.sshrc.d. Personnellement j’ai fait ln -s ~/.inputrc ~/.sshrc.d/.inputrc pour inputrc. Ça me permet ainsi d’avoir mes raccourcis claviers personnalisés en fonction du poste sur lequel je suis (touches utilisées différentes si je suis sur mon pc portable).

Je vous invite à lire ce fil sur Hacker News autour de sshrc, il y a des réflexions intéressantes. Je me demande notamment dans quelle mesure on peut charger des fichiers de configuration (rendus disponibles par un serveur web) avec wget/curl. A noter le reddit dotfiles, the unofficial guide to doing dotfiles on GitHub, awesome-shell et tant qu’à faire awesome.

Gravatar de blog-libre
Original post of blog-libre.Votez pour ce billet sur Planet Libre.

Articles similaires

Okki : Sortie de GNOME 3.26

Ça y est. Le tout nouveau GNOME 3.26 est disponible.

Et cette fois-ci, le bureau lui-même a droit à quelques nouveautés bienvenues. Dans la vue d’ensemble des activités, la taille des vignettes des fenêtres a été augmentée, ce qui rend leur sélection plus facile. Et lors d’une recherche, la mise en page a été retravaillée pour pouvoir afficher plus de résultats, tout en étant plus lisibles.

Réorganisation des résultats de recherche

Il est également possible d’effectuer des recherches sur les actions du système (déconnexion, redémarrage, mise hors tension, verrouillage de l’écran…). Lors de la minimisation ou de la maximisation d’une fenêtre, de nouvelles animations font leur apparition. Et lorsque aucune fenêtre n’est maximisée, la barre supérieure devient désormais transparente, donnant l’impression d’un bureau plus grand.

Autre nouveauté importante, l’interface du Centre de contrôle a été complètement refaite et affiche désormais un panneau latéral pour pouvoir naviguer entre les différents modules. Les paramètres concernant le réseau et l’affichage ont également été retravaillés.

Le nouveau Centre de contrôle

Le reste des applications n’est pas en reste. Fichiers peut désormais rechercher dans le contenu même de vos documents (fichiers texte, PDF, LibreOffice ou MS Office…). Les onglets fermés peuvent être restaurés à l’aide du raccourci clavier Ctrl + Shift + T. Les archives peuvent être décompressées sur des serveurs distants.

Le navigateur Web peut désormais synchroniser vos signets, mots de passe, historique de navigation… au travers du service Firefox Sync. Synchronisation qui fonctionne tout aussi bien entre les deux navigateurs que sont Web et Firefox.

Fin 2017, GNOME découvre enfin les émojis en couleur 😁 Et bonne nouvelle, ces derniers pourront désormais être insérés bien plus facilement dans vos messages et documents, à l’aide d’un sélecteur graphique. Certaines applications, comme le client IRC Polari, en tirent d’ores et déjà parti.

Les émojis sont désormais en couleur

Machines peut désormais partager des dossiers entre l’hôte et l’invité. On peut enfin ajouter des événements récurrents dans l’agenda. To Do prend désormais en charge le service Todoist. Le Visionneur de documents prend désormais en charge les documents Adobe Illustrator et CBR

Et bien évidemment, en plus des principales nouveautés, nous avons droit à de nombreuses petites améliorations bienvenues un peu partout, ainsi que d’innombrables corrections de bugs.

Mais je ne vais pas refaire les notes de version, qui n’ont malheureusement pas encore été traduites en français, mais que je vous invite tout de même à parcourir. On regrettera également l’absence de la vidéo de présentation au moment du lancement, qui aurait gagné à être retardé, le temps que tout le monde soit prêt.

Vous pouvez également jeter un œil au billet de blog de Georges Basile Stavracas Neto, qui donne quelques infos supplémentaires, tout en proposant diverses vidéos mettant en avant certaines nouveautés.

Cette nouvelle version est donc un très bon cru, mais qui comporte tout de même son lot de déceptions. Certaines fonctionnalités particulièrement attendues, comme la juxtaposition de quatre fenêtres ou la mise à l’échelle fractionnée nécessaire à la bonne prise en charge des écrans HiDPI n’étaient malheureusement pas prêtes à temps et seront donc repoussées à la prochaine version, prévue pour le mois de mars 2018.

Gravatar de Okki
Original post of Okki.Votez pour ce billet sur Planet Libre.

Okki : Sortie de Gradio 6.0

Gradio 6.0

Pour rappel, Gradio vous permet de découvrir et d’écouter des radios en ligne.

Au niveau des nouveautés, nous noterons :

  • la possibilité de regrouper nos stations en collections
  • la possibilité de pouvoir trier nos stations selon différents critères (nom, langue, pays, votes…)
  • l’ajout d’une recherche étendue (la petite flèche pointant vers le bas, à droite de la boîte de recherche) permettant de sélectionner un pays ou une langue
  • la possibilité d’ajouter de nouvelles stations ou d’éditer les informations de stations déjà existantes (la base de données étant en ligne, chaque ajout ou modification est visible par l’ensemble des utilisateurs)
  • la bibliothèque peut désormais être exportée et importée
  • une barre latérale proposant un certain nombre d’informations sur chaque station peut désormais être affichée
  • un nouveau système de sélection fait son apparition
  • l’état de la connexion est désormais affiché dans la barre d’outils
  • l’application se reconnecte automatiquement après une déconnexion et elle consomme beaucoup moins de mémoire

Par contre, les années ont beau passer, il n’existe malheureusement toujours aucune traduction en français.

Gravatar de Okki
Original post of Okki.Votez pour ce billet sur Planet Libre.

Articles similaires

Miamondo : Créer une clé USB persistante avec Archlinux.

Bonjour,

C’est avec une certaine joie que je rédige cet article qui fait suite à celui-ci. Souvenez-vous, je vous avais parlé de Framakey, une application que j’avais installée sur une clé USB de 31 GB. Je rappelle que Framakey se présente sous la forme d’une clé USB sur laquelle est installée la disrtribution Linux Mint et qui offre à son propriétaire, la persistance de données. Vous pouvez créer des dossiers ou des fichiers, télécharger une application ou en supprimer. Lorsque vous démonterez la clé, rien ne disparaîtra et au prochain reboot, vous retrouverez toutes vos données intactes.

Malheureusement, il s’est avéré qu’à l’usage, la navigation sur Internet était relativement hasardeuse voire carrément impossible. Attention! Loin de moi l’idée de jeter la pierre à Framakey car il faut être prudent : il est tout à fait possible que le problème vienne de ma clé USB elle-même. Mais y a-t-il des clés plus adaptées à ce genre de geekeries? Je n’en sais fichtre rien!

Toujours est-il que l’idée m’est venue de créer moi-même ma clé persistante (estampillée « qualité France » bien évidemment). Pour ce faire, j’ai jeté mon dévolu sur Lubuntu, un système d’exploitation très léger. Hélas, j’ai essuyé un échec. Or, il se trouve qu’il y a quelques semaines, sur mon netbook, j’avais installé Archlinux une distribution qui, il faut bien le reconnaître, tient toujours ses promesses.

Comme j’ai un pète au casque  j’aime bien expérimenter, je me suis dit que ce serait peut-être une bonne idée de créer une clé USB persistante en y installant, tenez-vous bien, Archlinux. Pourquoi faire simple quand on peut faire compliqué? Pour ceux qui découvrent le nom de ce système d’exploitation, Archlinux est aux distributions GNU/Linux ce que la Légion Étrangère est aux troupes conventionnelles… C’est un peu spécial. Eh bien pourtant, à ma grande surprise, ça tient la route! La clé est persistante et parfaitement opérationnelle. Certes, le démarrage est un peu lent et la navigation sur Internet également mais ça reste dans les limites du raisonnable! Ça ne freeze jamais! Regardez comme c’est beau!

Screenshot

Voici donc comment j’ai procédé pour parvenir à mes fins. Je me suis servi de deux clés USB :

  • une clé de 31 GB destinée à accueillir le système persistant,
  • une clé de 4 GB qui contient l’image iso d’Archlinux 32bit.

clef

J’ai enfiché mes deux clés dans les ports de ma tour et j’ai modifié le Bios pour que ce dernier boote sur la clé de 4 GB. Évidemment, après une page d’accueil sommaire, je me suis retrouvé dans un terminal tout noir (Ben oui! c’est du Archlinux). Le disque dur de l’ordinateur sur lequel j’opérais était en /dev/sda, la clé de 4 GB contenant l’image iso était en /dev/sdb et la clé de 31 GB en /dev/sdc.

J’ai rentré en root la commande cfdisk /dev/sdc dans un terminal. Cela m’a permis de valider que /dev/sdc correspondait bien à la clé de 31 GB. C’est important pour la suite! Je me suis plus ou moins aidé de ce guide officiel pour l’installation. J’ai donc procédé au partitionnement du disque comme suit :

  • /dev/sdc1 pour le boot
  • /dev/sdc2 pour la swap
  • /dev/sdc3 pour le /
  • /dev/sdc4 pour le /home

Ce qui nous donne :

cfdisk

J’ai partitionné la clé avec cfdisk mais vous pouvez le faire aussi avec gparted. Moi je suis plus à l’aise avec cfdisk. Puis, j’ai formaté tout ça :

mkfs.ext2 /dev/sdc1
mkfs.ext4 /dev/sdc3
mkfs.ext4 /dev/sdc4

mkswap /dev/sdc2

Et j’ai monté les partitions. Je ne rentre pas dans les détails. Je ne vais pas recopier le guide. Ce n’est pas l’objet de cet article. Enfin, j’ai procédé à l’installation proprement dite et ce qui est tout bonnement extraordinaire dans cette histoire, ce qui est absolument incroyable, c’est que… eh bien en fait, il n’y a rien d’extraordinaire, ça s’installe comme sur un vulgaire disque dur. Cela dit, ça reste du bon vieux Archlinux. Prévoyez tout de même du savon à microbilles pour faire partir le cambouis et retrouver des mains propres. Mais franchement, je l’ai installé en suivant la même procédure que pour mon netbook et ça fait le boulot pour peu qu’on lui laisse le temps de chauffer! Comme navigateur, j’ai préféré Chromium à Firefox qui m’avait causé quelques déboires avec ma clé version Linux Mint Framakey.

Voilà donc une histoire qui se termine bien. Toutefois, il y a une question qui reste en suspend. J’ai ouï-dire qu’avec une clé persistante, il ne fallait surtout pas faire de mise à jour système. Pourquoi donc? Est-ce que quelqu’un peut éclairer ma lanterne sur ce sujet?

 


Gravatar de Miamondo
Original post of Miamondo.Votez pour ce billet sur Planet Libre.

Articles similaires

Miamondo : Créer une clé USB persistante avec Archlinux.

Bonjour,

C’est avec une certaine joie que je rédige cet article qui fait suite à celui-ci. Souvenez-vous, je vous avais parlé de Framakey, une application que j’avais installée sur une clé USB de 31 GB. Je rappelle que Framakey se présente sous la forme d’une clé USB sur laquelle est installée la disrtribution Linux Mint et qui offre à son propriétaire, la persistance de données. Vous pouvez créer des dossiers ou des fichiers, télécharger une application ou en supprimer. Lorsque vous démonterez la clé, rien ne disparaîtra et au prochain reboot, vous retrouverez toutes vos données intactes.

Malheureusement, il s’est avéré qu’à l’usage, la navigation sur Internet était relativement hasardeuse voire carrément impossible. Attention! Loin de moi l’idée de jeter la pierre à Framakey car il faut être prudent : il est tout à fait possible que le problème vienne de ma clé USB elle-même. Mais y a-t-il des clés plus adaptées à ce genre de geekeries? Je n’en sais fichtre rien!

Toujours est-il que l’idée m’est venue de créer moi-même ma clé persistante (estampillée « qualité France » bien évidemment). Pour ce faire, j’ai jeté mon dévolu sur Lubuntu, un système d’exploitation très léger. Hélas, j’ai essuyé un échec. Or, il se trouve qu’il y a quelques semaines, sur mon netbook, j’avais installé Archlinux une distribution qui, il faut bien le reconnaître, tient toujours ses promesses.

Comme j’ai un pète au casque  j’aime bien expérimenter, je me suis dit que ce serait peut-être une bonne idée de créer une clé USB persistante en y installant, tenez-vous bien, Archlinux. Pourquoi faire simple quand on peut faire compliqué? Pour ceux qui découvrent le nom de ce système d’exploitation, Archlinux est aux distributions GNU/Linux ce que la Légion Étrangère est aux troupes conventionnelles… C’est un peu spécial. Eh bien pourtant, à ma grande surprise, ça tient la route! La clé est persistante et parfaitement opérationnelle. Certes, le démarrage est un peu lent et la navigation sur Internet également mais ça reste dans les limites du raisonnable! Ça ne freeze jamais! Regardez comme c’est beau!

Screenshot

Voici donc comment j’ai procédé pour parvenir à mes fins. Je me suis servi de deux clés USB :

  • une clé de 31 GB destinée à accueillir le système persistant,
  • une clé de 4 GB qui contient l’image iso d’Archlinux 32bit.

clef

J’ai enfiché mes deux clés dans les ports de ma tour et j’ai modifié le Bios pour que ce dernier boote sur la clé de 4 GB. Évidemment, après une page d’accueil sommaire, je me suis retrouvé dans un terminal tout noir (Ben oui! c’est du Archlinux). Le disque dur de l’ordinateur sur lequel j’opérais était en /dev/sda, la clé de 4 GB contenant l’image iso était en /dev/sdb et la clé de 31 GB en /dev/sdc.

J’ai rentré en root la commande cfdisk /dev/sdc dans un terminal. Cela m’a permis de valider que /dev/sdc correspondait bien à la clé de 31 GB. C’est important pour la suite! Je me suis plus ou moins aidé de ce guide officiel pour l’installation. J’ai donc procédé au partitionnement du disque comme suit :

  • /dev/sdc1 pour le boot
  • /dev/sdc2 pour la swap
  • /dev/sdc3 pour le /
  • /dev/sdc4 pour le /home

Ce qui nous donne :

cfdisk

J’ai partitionné la clé avec cfdisk mais vous pouvez le faire aussi avec gparted. Moi je suis plus à l’aise avec cfdisk. Puis, j’ai formaté tout ça :

mkfs.ext2 /dev/sdc1
mkfs.ext4 /dev/sdc3
mkfs.ext4 /dev/sdc4

mkswap /dev/sdc2

Et j’ai monté les partitions. Je ne rentre pas dans les détails. Je ne vais pas recopier le guide. Ce n’est pas l’objet de cet article. Enfin, j’ai procédé à l’installation proprement dite et ce qui est tout bonnement extraordinaire dans cette histoire, ce qui est absolument incroyable, c’est que… eh bien en fait, il n’y a rien d’extraordinaire, ça s’installe comme sur un vulgaire disque dur. Cela dit, ça reste du bon vieux Archlinux. Prévoyez tout de même du savon à microbilles pour faire partir le cambouis et retrouver des mains propres. Mais franchement, je l’ai installé en suivant la même procédure que pour mon netbook et ça fait le boulot pour peu qu’on lui laisse le temps de chauffer! Comme navigateur, j’ai préféré Chromium à Firefox qui m’avait causé quelques déboires avec ma clé version Linux Mint Framakey.

Voilà donc une histoire qui se termine bien. Toutefois, il y a une question qui reste en suspend. J’ai ouï-dire qu’avec une clé persistante, il ne fallait surtout pas faire de mise à jour système. Pourquoi donc? Est-ce que quelqu’un peut éclairer ma lanterne sur ce sujet?

 


Gravatar de Miamondo
Original post of Miamondo.Votez pour ce billet sur Planet Libre.

Articles similaires

Ilphrin : Un an à étudier à Québec: Le choc culturel sur tous les plans

Cette année je pars étudier pendant un an l’informatique à l’Université Laval à Québec. Pour ceux qui ne le savent pas je suis étudiant à Epitech Lyon (j’aurai un long article sur le sujet à la fin de mes études), et dans mon cursus je dois faire la 4e année à l’étranger dans l’un des nombreux programmes partenaires d’Epitech. Mon choix s’est porté sur l’Université Laval, et me voici donc à écrire cet article après ma première semaine de cours!

Les 3 Brasseurs pas loin de la maison Petite bière accompagnée d’une Pizza poutine aux 3 brasseurs

Laval parmi tant d’autres

Tout d’abord j’aimerais expliquer pourquoi mon choix s’est porté sur cette école. Si ça ne vous intéresse pas vous pouvez sauter directement au prochain sous-titre je ne m’en offusquerai pas! ;)

Partons du départ. Mes études à Epitech visent à faire de moi un expert en développement de façon générale, mais aussi en gestion de projet, et enfin doit me permettre d’avoir les réflexes et l’entrainement nécessaire à l’acquisition rapide de nouvelles connaissances ainsi qu’à l’adaptation. Pour donner un exemple: Si je dois travailler dans un nouvel environnement de travail avec d’autres outils et un autre langage, en deux semaines je dois être capable de m’adapter et de pouvoir être productif (c’est un temps arbitraire, mais c’est pour l’exemple).

Maintenant, si je veux me spécialiser ou m’orienter dans un domaine un peu orthogonal au métier de développeur, je dois trouver d’autres moyens d’avoir les connaissances que je veux. Cette année dans une autre Université est une très bonne opportunité de faire cela, car les cours donnés sont complétement différent de ce que je pourrais avoir à Epitech, c’est l’intérêt même de cette année: élargir sa palette de connaissances en allant dans un autre pays, avec un autre fonctionnement, et une autre éducation.

Quand on me demande ce que je veux faire en tant “qu’informaticien” je réponds souvent: ‘Bah euh… je sais pas vraiment’. C’est toujours vrai aujourd’hui, mais j’ai tout de même des domaines qui m’intéressent plus que d’autres.

  • Le premier qui me vient à l’esprit c’est l’UX Design: J’adore faire des maquettes, des tests utilisateurs, rendre un croquis plus visuel ou interactif. J’aimerais en faire mon métier, au moins à mi-temps ou alors en freelance.
  • Développeur Web: Je suis passionné depuis plusieurs années par le Web. Que ce soit pour développer ou bidouiller, jouer, discuter, ou apprendre, je suis constamment connecté à quelque chose. J’aimerais aussi en faire mon métier, donc soit avec un autre travail à mi-temps ou en freelance, si faire ça conjointement avec le métier d’UX Designer en faisant du front-end.
  • Développeur de jeux vidéo: Les jeux vidéos c’est ma vie! Je joue depuis que j’ai la capacité de taper sur un clavier. J’ai déjà eu l’occasion de développer quelques jeux comme TuxleTriad. Je ne pense pas que j’en ferais mon métier, mais c’est un super hobby en plus d’être enrichissant!

À l’inscription à l’Université, j’ai choisi, entre autres, un cours de développement Web, d’Interaction Personne Machine, et de Programmation de jeux-vidéos. Le tout juste sur la première session de 4 mois. Ces cours me permettront de pratiquer sur des domaines qui me tiennent à cœur.

Il y a aussi une autre raison qui fait que j’ai choisi Laval: Le Québec. C’est une région qui me fait rêver depuis longtemps pour beaucoup d’aspects (et pas seulement à cause des 2 Minutes du Peuple promis!). Mais j’en parle un peu plus loin dans l’article.

Le voyage

Je suis donc parti il y a environ 1 mois avec ma copine, nous avons fait Lyon — Montréal en environ 15 heures. Nous avions plusieurs contraintes: nous avions un chat avec des soucis de santé à emmener, et nous avions essayé de prendre les places les moins chères possible, quitte à devoir faire de longs trajets. Il s’est avéré que nous ne pouvions pas prendre le chat en fin de compte, et après coup ce n’était pas plus mal qu’on parte sans pour le moment car au niveau des démarches à faire c’est un calvaire d’emmener un chat (Acheter les billets pour chaque compagnie, vérifier qu’on peut l’emmener en cabine, vérifier le poids avec la caisse, le faire pucer, etc.)

Nous nous en sommes sortis pour environ 700€ chacun pour un billet avec deux escales. C’est tout de même assez cher, mais nous nous y sommes pris assez tard donc ça expliquait la différence de prix. Pour ma part c’était la première fois que je prenais l’avion. Et comme j’ai une certaine peur des hauteurs, le premier vol a été un choc pour moi, qui ai passé le gros de l’heure du premier vol accroché à ma copine!

Nous sommes arrivés ensuite à l’aéroport de Francfort. La première chose qui nous a frappé pendant cette escale, c’était le manque de clarté des indications. Pour vous diriger et trouver votre avion, vous avez besoin de son identifiant de Hall et de Porte. Mais chacun est représenté par une lettre, donc lorsque vous voyez un panneau marqué “C” par exemple, il y a aucun moyen de savoir si le panneau parle de Hall ou de porte!

Outre ce problème, l’escale s’est bien passé et nous avons pu prendre notre envol jusqu’à Toronto en 7 heures de trajet! Le trajet a été plus agréable pour ma part, et je n’ai pas tellement senti passer les 7h. (Outre les films en allemand comme l’Age de Glace). Arrivés à Toronto j’ai pu récupérer mon Permis d’études rapidement, et nous avons pu récupérer nos bagages pour ensuite prendre notre dernier vol vers Montréal

De Montréal à Québec, nous avons pris l’Orléans Express qui fais le trajet en 4h. Autant dire qu’après tout ces trajets, nous étions exténués et ne voulions qu’une chose: rentrer et dormir!

L’arrivée et la maison

Le propriétaire de la maison nous a gentiment emmené du centre de Québec vers la maison. Nous avons pu poser nos affaires dans l’une des chambres, en attendant l’arrivée des deux autres colocataires. La maison est immense, enfin, bien plus grande que ce qu’il serait nécessaire pour 3 étudiants et une jeune travailleuse. Mais nous n’avions pas pu résister en voyant l’annonce et le prix.(1800$CAD par mois, donc environ 1200€ divisé par 4 colocataires!)

Premier jour, première surprise. Le propriétaire partait le vendredi en journée pour 1 an en Chine, et d’ici là il finissait des petits travaux dans la maison, et dormait à l’étage dans une chambre à côté de nous. C’était assez dérangeant d’avoir à passer 3 jours avec lui, car nous n’avions pas la sensation d’être chez nous encore tant qu’il était là. Mais bon ce n’était que pour une courte durée donc nous n’avions rien dit.

Une semaine après, nous étions installés correctement tous les 4, même commencés à découvrir un peu la ville, et à se manger des poutines. Il y a eu d’autres problèmes dans la maison depuis. Des petits incidents comme le fer à repasser qui a grillé, et une barre de salle de bain qui s’est cassé.

Nous avons aussi eu plusieurs problèmes avec le propriétaire, et même encore aujourd’hui. Les contacts que nous avons avec lui se font par mail ou par le biais d’une connaissance à lui qui vient tondre la pelouse de temps en temps. Dès les premiers échanges nous étions agacés par son ton autoritaire et son manque de confiance, en nous pressant quasiment tous les jours de bien penser au loyer.

Il nous était aussi demandé de prendre des photos de la maison pour qu’il puisse poster une nouvelle annonce pour la fin de notre bail. Ce n’était pas à nous de faire son travail, donc nous lui avons clairement dit que nous ne le ferions pas. (sans parler du fait qu’il était très maladroit de sa part de nous parler de sa prochaine annonce alors que nous venions juste de nous installer!)

Nous avons eu aussi un échange de mail assez tendus, car il s’avère que la personne qui vient tondre notre pelouse à un double des clés de la maison et peut donc rentrer quand ça lui plait. Nous avons demandé au propriétaire qu’il nous remette ce double. À ce jour ce problème n’est pas résolu, car nous devons attendre le frère du propriétaire pour en discuter.

Mis à part ces problèmes, nous avons un jardin magnifique, avec pleins d’écureuils qui viennent se balader le matin au réveil. Nous sommes aussi très bien placés entre le centre de Québec et l’Université. Il y a même un Curling à côté de chez nous et une taverne médiévale ou nous allons manger tous les samedi!

(Dernière nouvelle: Il manque un joint dans un conduit de la baignoire, ce qui fait que nous avons une fuite qui passe de l’étage au rez-de-chaussée derrière le frigo en abimant tout le mur. Je commence à me demander si nous avons bien fait de prendre cette maison).

La découverte de la ville

Québec Un ancien bureau de poste dans la ville de Québec

Dès les premiers jours nous avons commencé à nous balader dans Québec. C’est une ville vraiment magnifique, et très grande! Elle est découpée en plusieurs parties: La haute ville, la basse ville, le Vieux Québec, les quartiers de son agglomération comme Saint-Sacrement, Sainte-Foy, Saint-Roch, etc.

Pour la première balade nous avions décidé de faire le trajet jusqu’au centre de Québec à pied, ce qui représente une bonne demi-heure de marche. Québec fait partie du patrimoine à l’UNESCO, car c’est la seule ville d’Amérique du Nord à avoir gardé ses fortifications qui datent de plusieurs siècles, mais aussi l’architecture d’avant malgré les reconstructions.

Le vieux Québec est très touristique avec ses animations de rue, ses magasins, ses restaurants très variés, et ses longues avenues et ruelles dans lesquelles ont peut déambuler pendant des heures en découvrant plein de coin sympa et nouveaux.

Nous sommes allés manger dans un endroit de Saint-Roch appelé La Korrigane, une micro-brasserie parmi tant d’autres dans Québec, dont les bières étaient délicieuses et la poutine très bonne. Bon, je vais faire quelque chose de plus simple, voici la liste des endroits ou nous sommes allés ces dernières semaines et que je conseille:

  • La Korrigane dont je parlais juste avant, au moins pour leurs bières dont je suis tombé amoureux!
  • Le ChicShack: La poutine m’a un peu déçu, mais les burgers sont succulents, et il faut y aller pour au moins une chose: Leurs frites de patate douce qui sont une merveille!
  • La Choppe Gobeline: C’est notre lieu de prédilection, nous y allons tous les samedi! Ambiance médiévale, serveurs/euses super sympa et conviviaux, les meilleures poutines que j’ai mangées pour le moment, et vous pouvez faire un brunch à volonté là-bas qui est un vrai régal! Vraiment, allez-y
  • Les 3 Brasseurs: Ils existent aussi en France et à Lyon. Un coin sympa ou aller si vous voulez manger un bout avec une bonne bière. Ils font des Flammekueches-Poutines bien grasse, et donc bien bonne!
  • Le Pub Universitaire: Alors ça peut paraitre bête, mais le Pub Universitaire de Laval est un coin top pour manger et boire! Les bières sont environ à 5$CAD la pinte, et si vous venez en groupe, vous pouvez prendre la Poutine du Pub pour 30 dollars, et qui remplit le ventre de facilement 5 personnes!

Je pense que je peux garder un peu d’encre numérique pour parler des transports en commun à Québec. Le réseau s’appelle RTC pour Réseau de Transports de la Capitale, et existe depuis 50 ans. Il se compose, à ma connaissance, niquement de bus hybride (moitié essence, moitié éléctrique). Ce réseau est très bien développé puisqu’on a accès à beaucoup de lignes de bus sur une grande partie du territoire, et sur de grandes plages d’horaires (ma ligne de bus est disponible de 5h jusqu’au 1h du matin). Et en plus ils sont très fréquent!

Le système d’abonnemnt est par contre un peu moins pratique qu’à Lyon. Déjà chose étrange: On peut acheter les cartes de bus a la Pharmacie! Aussi, de façon générale les tarifs sont un peu plus chers. L’abonnement au mois me coute environ 40€, et l’abonnement à la semaine n’existe pas. Enfin, pas comme à Lyon, c’est-à-dire que la semaine vaut 5 jours à Québec et pas 7! Enfin, il n’existe pas d’abonnement annuel, du coup tous les mois faut retourner au dépanneur ou a la pharmacie du coin pour refaire l’abonnement.

L’Université

Photo à venir!

La première chose qui m’a choqué sur l’Université, c’est sa taille. Le campus fait 1,9km², une quinzaine de bâtiments de cours, une complexe sportif que je détaille plus loin, une forêt (qui est la plus grande forêt de recherche scientifique au monde) et des centres commerciaux.

Mes cours et la plupart des activités se passent principalement dans les bâtiments Adrien-Pouliot et Alexandre-Vachon, qui sont les pavillons pour la faculté des Sciences et de Génie. J’ai un autre cours qui se passe au FSA (Le cours de Comportement Organisationnel), et trois autres cours qui se font entièrement à distance.

  • Développement d’applications Web: Le cours est super intéressant, même si je connais déjà une grande partie du contenu du cours pour le moment. Le prof est très sympa et on peut facilement interagir avec lui, et il y a une bonne ambiance malgré le fait que ce soit à distance avec Adobe Connect.
  • Compilation et Interprétation: Le cours est très difficile pour le moment, et il faut avoir des bases d’informatique théorique pour pas être trop perdu. C’est le cours qui me demande le plus de travail pour le moment, pour rattraper ce que je ne connais pas forcément. Mais le prof explique très bien et c’est agréable d’avoir un cours avec lui. C’est aussi un cours à distance.
  • Comportement Organisationnel: C’est un cours un peu abstrait pour le moment, mais qui ressemble à de la psychologie mélangée à de la sociologie appliquée au sein d’une entreprise ou d’une organisation. Pour le moment nous n’avons pas eu beaucoup de cours donc je ne sais pas vraiment ce que ça donne.
  • Interface personne-machine: Le cours pour lequel je suis le plus enjoué avec le Développement Web. Ce cours n’est qu’une introduction, mais aborde tout ce dont j’aurais besoin comme bases pour me lancer dans l’apprentissage du métier d’UX designer. Le prof est très sympa, la classe nombreuse (174) mais tout le monde se tient correctement donc il n’y a pas de problème. Nous avons aussi la possibilité de travailler sur des projets qui ont un impact véritable.
  • Programmation de jeux vidéo: Encore une fois, le professeur est très sympathique et le cours est très agréable à suivre. On aborde toutes les étapes de création et de production d’un jeu vidéo, et tout au long de la session nous avons un projet de jeu vidéo à développer sous Unity.

La relation entre professeur et étudiant n’est pas du tout la même qu’en France. Il n’y a pas vraiment de barrières, on tutoie le prof ou l’appelle par son prénom, si on a un problème de compréhension on peut aller le voir à la fin du cours et prendre 20 minutes pour ré-expliquer. On peut même trouver certains profs au Pub Universitaire ou ailleurs avec une bière, mais ça je n’ai pas encore expérimenté je reviendrai dessus dans l’année ;)

Le sport

L’Université possède un complexe sportif tenu par une organisation appelée le PEPS. Ce complexe comporte, entre autres: Deux stades de Football/Soccer/Rugby, un terrain de hockey, deux piscines dont une olympique, un terrain de basket/badminton/autre, une salle d’entrainement et de musculation et 5 terrains de Beach Volley.

Malheureusement je n’ai pas trouvé de club de Football US qui accepte les débutants adultes. Je me suis par contre inscrit à la salle d’entrainement avec Valentin, l’un de mes colocataires, pour la modique somme de 63$CAD pour 4 mois (environ 45€). Le tarif comprend notamment le suivi par un entraineur personnel pour des programmes personnalisés, l’accès à la salle quand nous le voulons jusqu’à 23h tous les jours, et le prêt de serviettes et de vestiaires.

Nous allons commencer bientôt notre programme avec l’entraineur, je pense donc que j’en parlerais un peu plus dans quelques mois.

Les assos

L’Université comporte aussi une myriade d’associations, dans presque tous les domaines. Nous nous sommes inscrits à l’association des Seigneurs de Naguère, une association de jeux de rôles, jeux de sociétés, etc. Des gens très sympa en font partie, et nous allons bientôt commencer une petite campagne de Courant Fractal, un jeune jeu de rôle Québecois!

Il existe des assos pour un peu tout. D’ailleurs il y a une association queer dont fait partie l’une des colocataires, et il semble que l’ambiance soit géniale là-bas!

La suite au prochain épisode

Je pense que j’ai fait à peu près le tour de tout ce que j’avais à dire sur ce premier mois. Les Québecois sont bien plus chaleureux que les Français de manière générale. En France lorsque quelqu’un vous aborde dans la rue, que quelque que vous ne connaissez pas vous parle, le premier réflexe est d’être défensif et méfiant. Nous sommes aussi bien plus stressés à cause de la population beaucoup plus dense, et cela se ressent tant au niveau de l’atmosphère générale que sonore, entre les voitures qui klaxonnent pour un rien, les enfants qui pleurent dans le bus qui est rempli et étouffant, les gens qui courent et bousculent dans les métros, etc.

Ici, le relationnel est beaucoup moins nombriliste et plus “humain”, les personnes autour sont considérées comme des êtres humains et non pas comme de potentielles sources de menace ou de dérangement. Et ça se ressent dans la vie de tous les jours, car les gens sont plus souriants et accueillant.

Bon et en attendant le prochain article, vous pouvez cliquer sur l’image qui suit, pour voir toutes les photos que j’ai mis en ligne sur mon compte Flickr.

Quebec

Gravatar de Ilphrin
Original post of Ilphrin.Votez pour ce billet sur Planet Libre.

Carl Chenet : Le meilleur du Journal du hacker une fois par semaine dans vos e-mails

Je lance une nouvelle newsletter Le Courrier du hacker, publiée le vendredi (1ère édition vendredi 15 septembre) qui fournira dans un format condensé le meilleur des articles publiés sur le Journal du hacker, le relais des meilleurs contenus de la communauté du Logiciel Libre francophone.

E-mail S'abonner

Il s’agira d’un projet personnel, non-officiel et indépendant du Journal du hacker.

En effet cette précision est importante car je suis l’un des fondateurs du Journal du hacker et on pourrait donc attendre que je ne consacre à mon activité vis-à-vis du Journal que des projets visant à l’améliorer directement. Mais je suis très satisfait de l’actuel Journal du hacker, nous avons une nouvelle version dans les tuyaux qui entrera en production d’ici la fin de l’année et le développement de ce média aujourd’hui âgé de 2 ans et demi m’impressionne. Présent sur Twitter, Diaspora* et Mastodon, la circulation sur les réseaux sociaux des contenus qui y sont relayés est incroyable.

Je souhaite encourager par cette initiative l’appropriation par tous du Journal du hacker. Il s’agit d’un média communautaire auquel chacun peut participer directement ou en interagissant indirectement en exploitant son contenu.

Le meilleur du Journal du hacker une fois par semaine directement dans vos e-mails ? Abonnez-vous donc au Courrier du hacker !

Gravatar de Carl Chenet
Original post of Carl Chenet.Votez pour ce billet sur Planet Libre.

Articles similaires

Angristan : Seedbox : installer le client ruTorrent sous Debian 9

Après vous avoir présenté Transmission et Flood, voici un autre client torrent incontournable pour votre seedbox : ruTorrent. Tout comme Flood, c'est une interface web libre pour rTorrent, mais elle est cette fois-ci propulsée par PHP et non pas Node.js.

L'interface de ruTorrent est clairement moins moderne que Flood, mais elle reste néanmoins ergonomique et complète. Aussi, on peut ajouter de nombreux plugins, mais je ne vais pas couvrir l'installation de ceux-ci dans ce tutoriel.

Interface ruTorrent

Une Seedbox ?

Une seedbox est un serveur dédié au téléchargement et au partage de fichiers torrents. Transmission est une interface web qui nous permet de télécharger ces fichiers.

Pourquoi avoir une seedbox ? Le fait que ce soit un serveur signifie que :

• vous avez beaucoup de stockage • vous avez beaucoup de bande passante, donc des téléchargements rapides • vous n’êtes pas surveillés par HADOPI • vous pouvez regarder vos films ou séries en streaming depuis votre serveur.

Installation Installation des dépendances apt install screen unzip Installation de rTorrent

Contrairement à mon article pour installer Flood, qui concernait Debian 8, on peut directement installer rTorrent et libtorrent depuis les dépôts, sans les compiler, puisqu'ils sont disponibles dans leur dernière version.

apt install rtorrent Configuration de rTorrent

On crée un utilisateur pour rTorrent :

adduser --disabled-password rtorrent

On édite la configuration de rTorrent :

nano /home/rtorrent/.rtorrent.rc

Et on ajoute ceci :

# Vitesse de téléchargement max up/down, en KiB. "0" équivaut à aucune limite. download_rate = 0 upload_rate = 10000 # Nombre maximal de téléchargements simultanés max_downloads_global = 10 # Nombre maximal de peers par torrent max_peers = 100 # Nombre maximal de peers à upload par torrent max_uploads = 20 # Répertoire qui contient les fichiers téléchargés. directory = /srv/seedbox/downloads # Répertoire où rTorrent stocke l'état de téléchargement des torrents. session = /srv/seedbox/.session # Ports utilisables par rTorrent. 2x la même valeur = 1 port port_range = 49999-49999 port_random = no # Vérification des données à la fin du téléchargement check_hash = yes # Activation de DHT pour les torrents sans trackers. # À désactiver si vous utilisez des trackers privés dht = auto dht_port = 6881 peer_exchange = yes # On préfère les échanges avec chiffrement encryption = allow_incoming,try_outgoing,enable_retry # On autorise les trackers UDP use_udp_trackers = yes # Port SCGI, on en a besoin pour communiquer avec Flood scgi_port = 127.0.0.1:5000

On applique les bonnes permissions au dossier de rTorrent :

chown rtorrent:rtorrent /home/rtorrent/

On crée les dossiers de téléchargement et on applique les permissions :

mkdir -p /srv/seedbox/{downloads,.session} chown rtorrent:rtorrent -R /srv/seedbox/

Ensuite on crée un service systemd pour rTorrent qui nous permet de le démarrer et de l'arrêter.

nano /etc/systemd/system/rtorrent.service [Unit] Description=rTorrent After=network.target [Service] User=rtorrent Type=forking KillMode=none ExecStart=/usr/bin/screen -d -m -fa -S rtorrent /usr/bin/rtorrent ExecStop=/usr/bin/killall -w -s 2 /usr/bin/rtorrent WorkingDirectory=%h [Install] WantedBy=default.target systemctl daemon-reload systemctl enable rtorrent.service systemctl start rtorrent.service Installation de ruTorrent

On télécharge les fichiers de ruTorrent :

cd /srv/ wget https://github.com/Novik/ruTorrent/archive/v3.8.zip unzip v3.8.zip rm v3.8.zip mv ruTorrent-3.8/ seedbox/rutorrent

On y applique les bonnes permissions pour que PHP y ait accès :

chown www-data:www-data -R /srv/seedbox/rutorrent chmod 775 -R /srv/seedbox Installation de PHP

On installe PHP-FPM 7.0 depuis les dépôts :

apt install php7.0 php7.0-fpm Génération du certificat avec Let's Encrypt

On installe le client letsencrypt :

apt install letsencrypt

Puis on génère un certificat signé par une clé RSA 4096 bits. Mettez votre domaine et votre adresse mail dans la commande ci-dessous.

letsencrypt certonly -d seedbox.hadopi.fr --agree-tos -m contact@hadopi.fr --rsa-key-size 4096 --standalone Configuration du serveur web Nginx

On installe nginx :

apt install nginx

Ensuite on va créer un couple utilisateur / mot de passe pour protéger l'accès à ruTorrent via une authentification HTTP.

apt install apache2-utils htpasswd -c /etc/nginx/auth utilisateur

Ensuite on configure nginx:

nano /etc/nginx/conf.d/seedbox.conf

Modifiez le domaine ci-dessous par le votre.

server { listen 80; listen [::]:80; server_name seedbox.hadopi.fr; return 301 https://seedbox.hadopi.fr$request_uri; access_log /dev/null; error_log /dev/null; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name seedbox.hadopi.fr; root /srv/seedbox/rutorrent/; index index.html; access_log /var/log/nginx/rutorrent-access.log; error_log /var/log/nginx/rutorrent-error.log; auth_basic "Fermé!"; auth_basic_user_file /etc/nginx/auth; ssl_certificate /etc/letsencrypt/live/seedbox.hadopi.fr/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/seedbox.hadopi.fr/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/seedbox.hadopi.frchain.pem; ssl_protocols TLSv1.2; ssl_ecdh_curve X25519:P-521:P-384:P-256; ssl_ciphers EECDH+CHACHA20:EECDH+AESGCM:EECDH+AES; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_stapling_verify on; resolver 80.67.169.12 80.67.169.40 valid=300s; resolver_timeout 5s; ssl_session_cache shared:SSL:10m; location ~* \\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf|x-html|html|css|xml|js|woff|woff2|ttf|svg|eot)$ { expires 30d; access_log off; log_not_found off; } location / { try_files $uri $uri/ =404; } location /RPC2 { include /etc/nginx/scgi_params; scgi_pass 127.0.0.1:5000; } location ~ \\.php$ { try_files $uri =404; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_intercept_errors on; fastcgi_ignore_client_abort off; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffers 4 256k; fastcgi_buffer_size 128k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } } Configuration de ruTorrent

Vous allez probablement avoir ce genre d'erreurs si vous allez sur ruTorrent :

Erreurs ruTorrent

Ce ne sont pas des erreurs bloquantes, mais mieux vaut ne pas en avoir !

On installe donc les dépendances nécessaires :

apt install unrar mediainfo ffmpeg curl

Personnellement j'ai du aller modifier le fichier de conf de ruTorrent pour spécifier l'emplacement de curl :

nano /srv/seedbox/rutorrent/conf/config.php

Comme ceci :

Configuration ruTorrent

Enjoy

Et voilà, vous pouvez accéder à votre client torrent super performant via https://votre-domaine.

Je vous laisser faire un tour dans les réglages et télécharger des distributions GNU/Linux ;)

Interface ruTorrent

L'article Seedbox : installer le client ruTorrent sous Debian 9 a été publié sur Angristan

Gravatar de Angristan
Original post of Angristan.Votez pour ce billet sur Planet Libre.

Articles similaires

Pages