Planet Libre

Thuban : image - 640x3359px

Infographie pour le logiciel libre à propos du projet de loi "République numérique" à faire tourner, puisqu'un nouvel alinéa vise à pouvoir fermer l'accès aux documents administratifs "en cas de risque d'atteinte « à la sécurité des systèmes d'information des administrations »", tournure trop évasive.

Vous pouvez appeler nos sénateurs : ils se sentiront un peu plus gênés que lorsqu'on va crier dans les rues (qui revient souvent à gueuler dans le c.. d'une vache). Toutes les informations sont disponibles sur le site de l'april
— (permalink)

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

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

Pour la 16ème semaine de 2016, voici 5 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.

Planet Libre : Brèves du Planet Libre - lundi 25, avril 2016

Le projet Tor renforce sa sécurité pour détecter l'espion - silicon chiffrement Tor pistage

antistress : "À l’heure où le FBI et Apple s’opposent sur le chiffrement, le projet Tor renforce la sécurité de son réseau d’anonymisation et réaffirme qu’une cryptographie forte est nécessaire."

Red Hat, 1er acteur Open Source à réaliser 2 Mds de $ de CA - silicon Red_Hat libre

antistress : Ça, c'est fait.

Cazeneuve : « Ceux qui nous frappent utilisent le Darknet » - Numerama chiffrement droit institution Tor

antistress : "Lors des questions au gouvernement, le ministre de l'Intérieur a affirmé que les terroristes utilisaient « le Darknet » et « des messages chiffrés ». Mais sans preuve."

L'interdiction des machines à voter (à nouveau) rejetée à l’Assemblée - Next INpact vote droit institution

antistress : "Les députés de la commission des lois ont rejeté ce matin un amendement écologiste qui proposait d’interdire une bonne fois pour toutes les machines à voter en France (sous le coup d’un moratoire datant de 2007). Le sujet devrait à nouveau être abordé demain dans l'hémicycle."

Deux sénateurs militent pour une vraie liberté de panorama - Next INpact droit copyright Wikimédia

antistress : "L’introduction de l’exception de liberté de panorama continue de diviser les parlementaires. Dans la liasse des premiers amendements au Sénat en séance, deux d’entre eux veulent la libérer plus largement, en faisant sauter les verrous semés au fil des débats."

Le RGI v2 officialisé, ODF préféré à OpenXML - silicon LibreOffice Microsoft format administration droit interopérabilité

antistress : "La seconde mouture du Référentiel général d’interopérabilité est publiée au Journal Officiel. L’usage du format ODF, issu de la suite OpenOffice, doit désormais être privilégié dans les administrations."
(via le Journal du Hacker)

Sortie du noyau Linux 4.5 - LinuxFR.org Linux LinuxFR.org ext4

antistress : Le détail des nouveautés du dernier noyau Linux par le menu, et surtout en français comme à chaque fois : merci LinuxFR.org ! La mise en commun des architectures ARMv6 et v7, l'ajout au pilote amdgpu de la fonction PowerPlay pour certains processeurs graphiques AMD (désactivée par défaut) et l'intégration du pilote etnaviv pour les processeurs graphiques Vivante font partie des nouveautés notables selon moi.
Tiens, en lisant les commentaires, je découvre que ext4 prend en charge le chiffrement depuis le noyau 4.1 (cf https://lwn.net/Articles/639427/)  !

Android : la Commission européenne accuse Google d'abus de position dominante - Next INpact Android Google recherche droit Europe

antistress : "La Commission européenne a révélé la communication de ses griefs à Google sur Android. Au regard des éléments en sa possession, l'institution considère que le groupe américain abuse de sa position dominante en imposant aux constructeurs et opérateurs utilisant Android d'installer ses services. Google a 12 semaines pour réagir.".
V. aussi http://www.numerama.com/business/164912-antirust-ce-que-bruxelles-reproche-a-android-et-google.html

[EN] Microsoft sues US government, asks court to declare secrecy orders unconstitutional - ExtremeTech pistage institution Microsoft

antistress : Microsoft demande à la justice de déclarer inconstitutionnelle la loi qui permet au gouvernement américain, lorsqu'il requiert d'un fournisseur l'accès aux communications d'un utilisateur, d'interdire ledit fournisseur d'en faire état ("gag order").
NB : Cette interdiction fait en pratique parfois l'objet d'un contournement au moyen du procédé du warrant canary : http://www.internetactu.net/2015/06/03/la-garantie-du-canari/
(via les Liens en vrac de sebsauvage)

Richard Stallman : « Plus rien ne me fait rêver dans la technologie » - Tech - Numerama entretien Stallman pistage smartphone

antistress : "Entretien avec Richard Stallman, l'inventeur du logiciel libre, résolument attaché aux libertés et au combat contre toutes les technologies qu'il juge « oppressives »."

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

Articles similaires

RaspbianFrance : Top 3 des concurrents et clones de la Raspberry Pi

Le moins que l’on puisse dire, c’est qu’avec plus de 8 millions d’exemplaires vendus, la Raspberry Pi a rencontré un franc succès.
Bien évidemment, ce succès a inspiré de nombreux concurrents et nous avons vu fleurir des clones, plus ou moins réussis, de la Raspberry Pi.

Nous vous proposons donc une petite sélection de quelques uns de ces clones et autres concurrents de la Raspberry Pi qui nous semblent dignes d’intérêt.

Petit résumé des caractéristiques des différents concurrents de la Raspberry Pi

Pour les plus pressés d’entre vous, nous vous proposons un petit tableau comparatif des clones de la Raspberry Pi !

#go-pricing-table-2135 .gw-go-col-wrap { min-width:130px; } #go-pricing-table-2135 .gw-go-col-inner { border-radius:0 0 0 0; } #go-pricing-table-2135 ul.gw-go-body, #go-pricing-table-2135 ul.gw-go-body li { border:none !important; padding-top:1px; } #go-pricing-table-2135 ul.gw-go-body li .gw-go-body-cell { padding-top:1px; } #go-pricing-table-2135 ul.gw-go-body { padding-bottom:1px; } #go-pricing-table-2135 .gw-go-tooltip-content { background-color:#9D9D9D;color:#333333;max-width:130px; } #go-pricing-table-2135 .gw-go-tooltip:before { border-top-color:#9D9D9D; } #go-pricing-table-2135 .gw-go-col-wrap-0.gw-go-hover .gw-go-header-top { background-color:#3498db; } #go-pricing-table-2135 .gw-go-col-wrap-0 .gw-go-price-wrap span, #go-pricing-table-2135 .gw-go-col-wrap-0 .gw-go-coinf div, #go-pricing-table-2135 .gw-go-col-wrap-0 .gw-go-coinb div { color:#3498db; } #go-pricing-table-2135 .gw-go-col-wrap-1.gw-go-hover .gw-go-header-top { background-color:#3498db; } #go-pricing-table-2135 .gw-go-col-wrap-1 .gw-go-price-wrap span, #go-pricing-table-2135 .gw-go-col-wrap-1 .gw-go-coinf div, #go-pricing-table-2135 .gw-go-col-wrap-1 .gw-go-coinb div { color:#3498db; } #go-pricing-table-2135 .gw-go-col-wrap-2.gw-go-hover .gw-go-header-top { background-color:#3498db; } #go-pricing-table-2135 .gw-go-col-wrap-2 .gw-go-price-wrap span, #go-pricing-table-2135 .gw-go-col-wrap-2 .gw-go-coinf div, #go-pricing-table-2135 .gw-go-col-wrap-2 .gw-go-coinb div { color:#3498db; } #go-pricing-table-2135 .gw-go-col-wrap-3.gw-go-hover .gw-go-header-top { background-color:#3498db; } #go-pricing-table-2135 .gw-go-col-wrap-3 .gw-go-price-wrap span, #go-pricing-table-2135 .gw-go-col-wrap-3 .gw-go-coinf div, #go-pricing-table-2135 .gw-go-col-wrap-3 .gw-go-coinb div { color:#3498db; } #go-pricing-table-2135 .gw-go { visibility:visible; }Raspberry Pi 340€40€
  • Ram : 1 Go
  • Nombre de processeur : 4
  • Processeur : ARM Cortex-A53 (64 bits)
  • Cadence du processeur : 1200 Mhz
  • Support de Windows 10 : Partiel (IoT)
  • Stockage interne : Non (carte MicroSD)
  • Ports : 4 USB 2.0
  • Ports GPIO : 40
  • Port jack audio/vidéo : 1
  • Bluetooth : 4.1
  • Wi-Fi : Oui (802.11 n)
  • Port Ethernet : 100 Mbits/s
  • Port SATA : Non
  • Ports CSI : 2
Acheter la Raspberry Pi 3Archos Stick100€100€
  • Ram : 2 Go
  • Nombre de processeur : 4
  • Processeur : Intel Core Atom Z3735F
  • Cadence du processeur : 1300 Mhz
  • Support de Windows 10 : Complet
  • Stockage interne : 32Go (extensible via MicroSD)
  • Ports : 1 USB 2.0
  • Ports GPIO : Non
  • Port jack audio/vidéo : Non
  • Bluetooth : 4.0
  • Wi-Fi : Oui (802.11 b/g/n)
  • Port Ethernet : Non
  • Port SATA : Non
  • Ports CSI : Non
Acheter l'Archos StickBanana Pro60€60€
  • Ram : 1 Go
  • Nombre de processeur : 2
  • Processeur : A20 ARM CortexTM-A7
  • Cadence du processeur : 1000 Mhz
  • Support de Windows 10 : Non
  • Stockage interne : Non (carte MicroSD)
  • Ports : 2 USB 2.0
  • Ports GPIO : 40
  • Port jack audio/vidéo : 1
  • Bluetooth : Non
  • Wi-Fi : Oui (802.11 b/g/n)
  • Port Ethernet : 1000 Mbits/s
  • Port SATA : Oui (SATA2)
  • Ports CSI : 2
Acheter la Banana ProArduino Uno20€20€
  • Non comparable
Acheter l'Arduino UNO Petit rappel des caractéristiques de la Raspberry Pi 3

Avant de nous pencher sur les concurrents de la Raspberry, faisons un rapide résumé de ses caractéristiques.

Le dernier modèle disponible de la Raspberry Pi, l'Archos Stick d'Intel, propose un processeur quatre cœurs ARM Cortex-A53 (donc 64 bits ARM) épaulé d’une mémoire vive de 1 Go.

Au niveau de la connectique, la dernière mouture de la Raspi propose 4 ports USB, une sortie HDMI ainsi qu’un port jack audio/vidéo. Vous trouverez également les traditionnels ports GPIO ainsi que les connectiques CSI.

Enfin, en terme de réseau la Raspberry Pi 3 possède un port Ethernet 100 Mbits/s, mais surtout, grande nouveauté, une carte Wifi 802.11n et Bluetooth 4.1 !

La Raspberry Pi 2 est arrivée

Petite précision, comme pour ses concurrents, la Raspberry Pi se présente sous la forme d’une carte mère « nue ». Si vous n’en possédez pas, il vous faudra donc vous procurer une alimentation, un clavier, une carte MicroSD/SD ou encore un écran, selon vos besoins.

1 – L’Archos Stick, un concurrent de la Raspberry Pi orienté Windows 10

Premier concurrent qui nous semblait intéressant, l'Archos Stick est un mini PC (ce qui le place de fait en concurrence avec la Raspberry Pi), orienté mobilité et Windows 10.

L’idée est la suivante, un ordinateur de la taille d’une clef USB, que vous branchez sur un écran HDMI et sur une prise secteur. Vous obtenez alors un ordinateur nomade, sur lequel vous utilisez votre smartphone/tablette comme clavier (notez que le premier démarrage nécessitera un véritable clavier physique).

Au niveau de la connectique, l’Archos Stick est largement en dessous de la Raspberry Pi, puisqu’il ne dispose que d’un seul port USB, n’a pas de port Ethernet (seulement Wifi et Bluetooth), ne propose pas de ports GPIO ou encore CSI. De même s’il dispose d’un port HDMI, il ne possède pas de port jack audio/vidéo.

Néanmoins, l’Archos Stick propose une configuration légèrement plus musclée que la Raspberry Pi, avec 2 Go de RAM, un mémoire interne de 32 Go et un processeur Intel AtomTM à quatre cœurs.

L’Archos Stick se destine donc à un usage relativement différent de la Raspberry Pi, plus orienté professionnel, et particulièrement pour les personnes amenées à se déplacer pour faire des présentations, etc.

C’est là que l’Archos Stick révèle son principal intérêt, puisqu’il est équipé d’une version complète de Windows 10, permettant donc de faire des présentations, d’utiliser la suite Office, mais également d’utiliser des logiciels propriétaires internes aux entreprises.

L'Archos Stick est plus orienté Windows

Si l’Archos Stick se destine donc à un public et un usage différents de ceux de la Raspberry Pi, le prix est également très différent, puisque vous devrez comptez un peu plus de 100€ pour acheter l'Archos Stick.

#go-pricing-table-2139 .gw-go-col-wrap { min-width:130px; } #go-pricing-table-2139 .gw-go-col-inner { border-radius:0 0 0 0; } #go-pricing-table-2139 ul.gw-go-body, #go-pricing-table-2139 ul.gw-go-body li { border:none !important; padding-top:1px; } #go-pricing-table-2139 ul.gw-go-body li .gw-go-body-cell { padding-top:1px; } #go-pricing-table-2139 ul.gw-go-body { padding-bottom:1px; } #go-pricing-table-2139 .gw-go-tooltip-content { background-color:#9D9D9D;color:#333333;max-width:130px; } #go-pricing-table-2139 .gw-go-tooltip:before { border-top-color:#9D9D9D; } #go-pricing-table-2139 .gw-go-col-wrap-0.gw-go-hover .gw-go-header-top { background-color:#3498db; } #go-pricing-table-2139 .gw-go-col-wrap-0 .gw-go-price-wrap span, #go-pricing-table-2139 .gw-go-col-wrap-0 .gw-go-coinf div, #go-pricing-table-2139 .gw-go-col-wrap-0 .gw-go-coinb div { color:#3498db; } #go-pricing-table-2139 .gw-go-col-wrap-1.gw-go-hover .gw-go-header-top { background-color:#3498db; } #go-pricing-table-2139 .gw-go-col-wrap-1 .gw-go-price-wrap span, #go-pricing-table-2139 .gw-go-col-wrap-1 .gw-go-coinf div, #go-pricing-table-2139 .gw-go-col-wrap-1 .gw-go-coinb div { color:#3498db; } #go-pricing-table-2139 .gw-go { visibility:visible; }Raspberry Pi 340€40€
  • Ram : 1 Go
  • Processeur : ARM Cortex-A53 (64 bits)
  • Cadence du processeur : 1200 Mhz
  • Support de Windows 10 : Partiel (IoT)
  • Stockage interne : Non (carte MicroSD)
  • Ports : 4 USB 2.0
  • Ports GPIO : 40
  • Port jack audio/vidéo : 1
  • Port Ethernet : 100 Mbits/s
Acheter la Raspberry Pi 3Archos Stick100€100€
  • Ram : 2 Go
  • Processeur : Intel Core Atom Z3735F
  • Cadence du processeur : 1300 Mhz
  • Support de Windows 10 : Complet
  • Stockage interne : 32Go (extensible via MicroSD)
  • Ports : 1 USB 2.0
  • Ports GPIO : Non
  • Port jack audio/vidéo : Non
  • Port Ethernet : Non
Acheter l'Archos Stick

 

2 – La Banana Pro, un clone de la Raspberry Pi assez multimédia

Second concurrent de la Raspberry Pi, son clone le plus célèbre, la Banana Pro (successeur de la Banana Pi), ressemble très fortement à notre framboise préférée.

Comme la Raspberry Pi 3, la Banana Pro embarque 1 Go de mémoire vive et ne dispose pas de stockage interne, utilisant une carte MicroSD à la place.

Au niveau du processeur, la Banana Pro utilise un Allwiner A20 Cortex A7, avec deux coeurs seulement donc, contre quatre pour la Raspberry Pi.

Au niveau de la connectique, la Banana Pro est relativement proche de la Raspberry Pi (HDMI, jack audio/vidéo, ports GPIO, CSI, etc.), mais ajoute également un récepteur infrarouge et micro intégré. Elle ne dispose en revanche que de 2 ports USB.

Pour ce qui est du réseau, la Banana Pro ne dispose pas de Bluetooth, mais c’est sur la connexion internet qu’elle tire son épingle du jeu. En effet, la Banana Pro dispose d’une puce Wi-fi 802.11 b/g/n, mais surtout d’un port Ethernet 1000 Mbits/s, contre seulement 100 Mbits/s pour la Raspberry Pi.

Autre point intéressant, la Banana Pro dispose d’une connexion SATA2, permettant de connecter un disque dur, notamment SSD (les disques mécaniques devront disposer d’une alimentation externe).

Banana Pro un clone du Raspberry Pi

C’est donc sur la connexion que la Banana Pro est intéressante, sa connexion SATA2 et son port 1 Gbits en faisant un bon candidat pour une installation multimédia. Le prix est légèrement supérieur à celui de la Raspberry Pi, comptez environ 60€ pour une Banana Pro nue, à laquelle vous devrez au minimum rajouter une carte MicroSD et une alimentation adaptée.

#go-pricing-table-2136 .gw-go-col-wrap { min-width:130px; } #go-pricing-table-2136 .gw-go-col-inner { border-radius:0 0 0 0; } #go-pricing-table-2136 ul.gw-go-body, #go-pricing-table-2136 ul.gw-go-body li { border:none !important; padding-top:1px; } #go-pricing-table-2136 ul.gw-go-body li .gw-go-body-cell { padding-top:1px; } #go-pricing-table-2136 ul.gw-go-body { padding-bottom:1px; } #go-pricing-table-2136 .gw-go-tooltip-content { background-color:#9D9D9D;color:#333333;max-width:130px; } #go-pricing-table-2136 .gw-go-tooltip:before { border-top-color:#9D9D9D; } #go-pricing-table-2136 .gw-go-col-wrap-0.gw-go-hover .gw-go-header-top { background-color:#3498db; } #go-pricing-table-2136 .gw-go-col-wrap-0 .gw-go-price-wrap span, #go-pricing-table-2136 .gw-go-col-wrap-0 .gw-go-coinf div, #go-pricing-table-2136 .gw-go-col-wrap-0 .gw-go-coinb div { color:#3498db; } #go-pricing-table-2136 .gw-go-col-wrap-1.gw-go-hover .gw-go-header-top { background-color:#3498db; } #go-pricing-table-2136 .gw-go-col-wrap-1 .gw-go-price-wrap span, #go-pricing-table-2136 .gw-go-col-wrap-1 .gw-go-coinf div, #go-pricing-table-2136 .gw-go-col-wrap-1 .gw-go-coinb div { color:#3498db; } #go-pricing-table-2136 .gw-go { visibility:visible; }Raspberry Pi 340€40€
  • Nombre de processeur : 4
  • Processeur : ARM Cortex-A53 (64 bits)
  • Cadence du processeur : 1200 Mhz
  • Ports : 4 USB 2.0
  • Bluetooth : 4.1
  • Port Ethernet : 100 Mbits/s
  • Port SATA : Non
Acheter la Raspberry Pi 3Banana Pro60€60€
  • Nombre de processeur : 2
  • Processeur : A20 ARM CortexTM-A7
  • Cadence du processeur : 1000 Mhz
  • Ports : 2 USB 2.0
  • Bluetooth : Non
  • Port Ethernet : 1000 Mbits/s
  • Port SATA : Oui (SATA2)
Acheter la Banana Pro

 

3 – L’Arduino, un microcontrôleur complémentaire à la Raspberry Pi

Dernière carte que nous allons vous présenter, l'Arduino UNO, un microcontrôleur parfois mis en concurrence avec la Raspberry Pi, mais qui se révèle finalement assez complémentaire.

Si la Raspberry Pi vise à créer un système Linux complet, capable de remplacer un ordinateur comme de faire de la domotique, l’Arduino, lui est clairement destiné à la domotique, à l’électronique et à l’embarqué.

Puisque la Raspberry Pi est également utilisée pour de la domotique, elle se retrouve forcément un peu en concurrence avec l’Arduino. Cependant, les deux sont en fait régulièrement utilisés ensemble, la Raspberry Pi étant plus adaptée à la création et à l’hébergement d’un véritable logiciel complet, tandis que l’Arduino est utilisé pour contrôler des équipements électroniques, faire de la robotique, etc.

Arduino UNO un microcôntroleur

Niveau prix, il vous faudra compter environ 20€ pour une carte Arduino Uno.

#go-pricing-table-2137 .gw-go-col-wrap { min-width:130px; } #go-pricing-table-2137 .gw-go-col-inner { border-radius:0 0 0 0; } #go-pricing-table-2137 ul.gw-go-body, #go-pricing-table-2137 ul.gw-go-body li { border:none !important; padding-top:1px; } #go-pricing-table-2137 ul.gw-go-body li .gw-go-body-cell { padding-top:1px; } #go-pricing-table-2137 ul.gw-go-body { padding-bottom:1px; } #go-pricing-table-2137 .gw-go-tooltip-content { background-color:#9D9D9D;color:#333333;max-width:130px; } #go-pricing-table-2137 .gw-go-tooltip:before { border-top-color:#9D9D9D; } #go-pricing-table-2137 .gw-go-col-wrap-0.gw-go-hover .gw-go-header-top { background-color:#3498db; } #go-pricing-table-2137 .gw-go-col-wrap-0 .gw-go-price-wrap span, #go-pricing-table-2137 .gw-go-col-wrap-0 .gw-go-coinf div, #go-pricing-table-2137 .gw-go-col-wrap-0 .gw-go-coinb div { color:#3498db; } #go-pricing-table-2137 .gw-go { visibility:visible; }Arduino Uno20€20€
  • Non comparable
  • Entrées/sorties digitales : 14 (dont 6 pouvant être utilisées comme sorties PWM)
  • Entrées Analogiques : 6
  • Memoire Flash : 32 KB (ATmega328) dont 0.5 KB utilisé par le bootloader
  • SRAM :2 KB (ATmega328)
  • EEPROM :1 KB (ATmega328)
  • Fréquence d'horloge :16 MHz
Acheter l'Arduino UNO

 

Des alternatives mais une Raspberry Pi qui domine le marché

Nous vous avons présenté trois concurrents de la Raspberry Pi qui nous semblent offrir une vraie alternative à la Raspberry Pi, mais de nombreux autres clones ont vu le jour.

De façon générale, si les alternatives à la Raspberry Pi sont intéressantes dans des cadres très précis (besoin de Windows, multimédia avec de grandes vitesses de transfert ou encore domotique et électronique), la Raspberry Pi, elle, est portée par sa grande souplesse et sa très grande communauté.

Car c’est bien là la force de la Raspberry Pi, une communauté immense, active et passionnée, qui en fait le champion incontesté des micro-ordinateurs !

Alors si, comme nous, malgré tous ses concurrents, la Raspberry Pi reste la seule à trouver grâce à vos yeux, n’hésitez pas à faire un tour sur notre article dédié aux accessoires de la Raspberry Pi !

Cet article Top 3 des concurrents et clones de la Raspberry Pi est apparu en premier sur Raspbian-France.

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

Articles similaires

Thuban : Mettre OpenBSD à jour

Mettre OpenBSD à jour n'est pas plus compliqué que pour beaucoup d'autres distributions. Ce billet va expliquer la procédure à suivre en présentant une méthode plus technique et une méthode facile.

Mettre les paquets à jour :
C'est l'histoire d'une seule commande :
#pkg_add -u

Mettre le système à jour :
Tout d'abord, un petit rappel :
OpenBSD est fournit en 3 "saveurs" (flavour) :
** release : il s'agit de la version publiée et que vous avez sans doute téléchargée pour installer OpenBSD.
** stable : c'est la version release avec plusieurs correctifs de sécurité. C'est celle-ci que nous souhaiterons suivre.
** current : c'est la prochaine mouture en préparation d'OpenBSD, dans le dépôt CVS (qui sert au développement du code source).

Cependant, il peut arriver que des bugs soient découverts. Il est donc recommandé d'appliquer les correctifs de sécurité. Vous pouvez suivre les indications de la page errate pour cela. Cependant, comme appliquer les patches n'est pas forcément facile, on peut alors pour suivre stable suivre ces indications et celles-ci, qui vont nous permettre d'appliquer simplement les patches.

On a 2 méthodes. D'abord, la plus compliquée :

Pour commencer, on récupère les sources "patchées" et corrigées :
# cd /usr # cvs -qd anoncvs@anoncvs.fr.openbsd.org:/cvs get -rOPENBSD_5_9 -P src # cvs -qd anoncvs@anoncvs.ca.openbsd.org:/cvs get -rOPENBSD_5_9 -P ports
Si vous aviez déjà les sources, il suffit alors de lancer :
# cd /usr/src # cvs -q up -rOPENBSD_5_9 -Pd # cd /usr/ports # cvs -q up -rOPENBSD_5_9 -Pd

La première fois, c'est long, pas d'inquiétudes.

Ensuite, on passe les commandes suivantes pour compiler le noyau :
# cd /usr/src/sys/arch/$(uname -m)/conf # config GENERIC # cd /usr/src/sys/arch/$(uname -m)/compile/GENERIC # make clean && make # make install
Il faut maintenant redémarrer (commande reboot) avant de passer à la suite, où l'on met à jour les fichiers du système après un petit nettoyage

# rm -rf /usr/obj/* # cd /usr/src # make obj # cd /usr/src/etc && env DESTDIR=/ make distrib-dirs # cd /usr/src # make build

Voilà, rien de plus qu'une série de petites commandes simples.

Cette opération peut être relativement lourde et longue. Heureusement, il existe le service m:tier, qui permet de vérifier les éventuelles mises à jour disponibles et de les installer tout simplement. Voici la marche à suivre :

## Récupérer le script openup
## Lancer ce script
## C'est tout ☺.

Vraiment, c'est extrêmement simple, non?

En gros, ça tient en :
curl -s https://stable.mtier.org/openup | sh

Passer à une version supérieure
Si on suit la branche stable, on peut mettre OpenBSD à jour seulement lorsqu'une nouvelle version est publiée. Il suffit alors de suivre les indications de notes de version. C'est toujours bien expliqué, et vraiment, tout bête.

Je vous invite à jeter un oeil des manipulations du passage de la 5.8 à la 5.9. Simple non?

Suivre current

On peut suivre la version current d'openBSD grâce à des snapshots réguliers. Je n'ai pas encore réalisé ce genre d'opération, donc ne le détaillerai pas ici pour l'instant . ☺

Être averti des mises à jour
Envoyer un mail à majordomo@OpenBSD.org avec à l'intérieur :
subscribe announce
— (permalink)

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

mozillaZine-fr : Le saviez-vous ? Dropbox est passé à Rust

Dans un article de Wired daté du 13 mars, on peut lire (en anglais) comment Dropbox a quitté Amazon pour créer sa propre infrastructure. Au passage, on apprend qu’ils ont choisi le langage de programmation Rust, créé par Mozilla. Dropbox avait commencé par utiliser le langage Go, créé par Google, mais l’a abandonné pour Rust qui consomme moins de mémoire. Cela semble confirmer le succès de ce projet de Mozilla, initialement lancé pour produire le nouveau moteur de rendu expérimental Servo.

Gravatar de mozillaZine-fr
Original post of mozillaZine-fr.Votez pour ce billet sur Planet Libre.

Tuxicoman : Windows 10, ce n’est pas gratuit

windows

Windows 10 c’est 135€ en version Famille et 279€ pour la version Professionnelle (nécessaire pour joindre un domaine réseau ou faire du bureau à distance) sur le Windows Store officiel de Microsoft.
Seule la mise à jour depuis un ordinateur ayant un Windows 7, 8 ou 8.1 fonctionnel est gratuite. Si vous pensiez réinstaller votre ordinateur boiteux avec simplement votre clé de Windows 8.1 en main, c’est raté. Il faut obligatoirement faire tout le processus de mise à jour logicielle sur l’ordinateur et ensuite seulement Microsoft vous donnera une clé pour réinstaller Windows 10 from scratch. Pénible à souhait.
Si votre PC était livré avec Windows préinstallé, vous pouvez le mettre à jour gratuitement à Windows 10. Mais attention, ça restera une version OEM, c’est à dire non transférable à un autre ordinateur. Or je doute que vous comptiez mettre à jour un PC de 2009 (année de sortie de Windows 7) Au cas où vous l’envisagiez, sachez que selon les tests de QueChoisir: Windows 10 dégrade les performances et l’autonomie ordinateurs par rapport à Windows 8.1.

Bref, si vous changer d’ordinateur, il y a de fortes chances que Windows 10 ne soit pas plus gratuit qu’avant. Au mieux vous n’en verrez pas le prix car il sera compris dans le prix global de l’ordinateur (Sachez que vous pouvez demander à vous le faire rembourser)

office

Office 2016 c’est (Word, Excel, Powerpoint et Note) c’est 149€ pour 1 PC, et directement 279€ si vous voulez Outlook en plus.
Microsoft propose la suite Office complète en location pour 69€/an (1 ordinateur) ou 99€/an (5 ordinateurs). Comme d’habitude avec la location, c’est moins cher au début mais plus cher à la fin.

Donc pour une personne qui voudrait faire de la bureautique sur son PC fixe et son PC portable, il lui faudra débourser sur 3 ans:

  • Win 10: 2×135€ = 270€
  • Office: 2×149€ ou 3×99€ = 297€

Soit 567€ !

Mais vous pouvez aussi regarder des logiciels libres qui sont à prix …libres et sans limites de temps ou de copie.

Related Posts: J'aime !(13)Je n'aime pas !(6)

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

Thuban : Configuration de dwm sous OpenBSD

Voilà un article un peu plus geek, où vous trouverez la configuration permettant de configurer le gestionnaire de fenêtres dwm sur openbsd.

Tout d'abord, la capture d'écran obligatoire :

[center][img]http://yeuxdelibad.net/Blog/img/77/dwm_openbsd.png[/img][/center]

Une fois ceci fait, voici le fichier de configuration pour dwm. C'est une configuration très épurée, qui permet entre autres les choses suivantes :

* Fermeture d'une fenêtre avec un clic-milieu sur le titre de celle-ci
* Augmentation/réduction du volume sonore en actionnant la molette sur la barre de status
* Plusieurs raccourcis clavier bien pratiques (pour mpd, firefox, lanceur dmenu...)

/* See LICENSE file for copyright and license details. */ /* appearance */ static const char *fonts[] = { "LiberationMono:size=9" }; static const char dmenufont[] = "LiberationMono:size=9"; static const char normbordercolor[] = "#08090a"; static const char normbgcolor[] = "#08090a"; static const char normfgcolor[] = "#606c78"; static const char selbordercolor[] = "#606c78"; static const char selbgcolor[] = "#606c78"; static const char selfgcolor[] = "#08090a"; static const unsigned int borderpx = 2; /* border pixel of windows */ static const unsigned int snap = 32; /* snap pixel */ static const int showbar = 1; /* 0 means no bar */ static const int topbar = 1; /* 0 means bottom bar */ /* tagging */ static const char *tags[] = { "*", "w", "@", ";", "+" }; static const Rule rules[] = { /* xprop(1): * WM_CLASS(STRING) = instance, class * WM_NAME(STRING) = title */ /* class instance title tags mask isfloating monitor */ { "Crawl-tiles", NULL, NULL, 0, True, -1 }, { NULL, NULL, "Jabber", 1<<2, False, -1 }, { NULL, NULL, "Mutt", 1<<2, False, -1 }, { "Firefox", NULL, NULL, 1<<1, False, -1 }, { "surf", NULL, NULL, 1<<1, False, -1 }, { "Surf", NULL, NULL, 1<<1, False, -1 }, { "tabbed-surf", NULL, NULL, 1<<1, False, -1 }, { "tabbed", NULL, NULL, 1<<1, False, -1 }, { "Gimp", NULL, NULL, 1<<4 , False, -1 }, { "stalonetray", NULL, NULL, 0, True, -1 }, { "menu", NULL, NULL, 0, True, -1 }, }; /* layout(s) */ static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ static const int nmaster = 1; /* number of clients in master area */ static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ static const Layout layouts[] = { /* symbol arrange function */ { "[]=", tile }, /* first entry is default */ { "><>", NULL }, /* no layout function means floating behavior */ { "[M]", monocle }, }; /* key definitions */ #define MODKEY Mod1Mask #define TAGKEYS(KEY,TAG) \\ { MODKEY, KEY, view, {.ui = 1 << TAG} }, \\ { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \\ { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \\ { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, /* helper for spawning shell commands in the pre dwm-5.0 fashion */ #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } /* commands */ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL }; static const char *termcmd[] = { "st", NULL }; static Key keys[] = { /* modifier key function argument */ { MODKEY, XK_p, spawn, {.v = dmenucmd } }, { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, { MODKEY, XK_b, togglebar, {0} }, { MODKEY, XK_j, focusstack, {.i = +1 } }, { MODKEY, XK_k, focusstack, {.i = -1 } }, { MODKEY, XK_i, incnmaster, {.i = +1 } }, { MODKEY, XK_d, incnmaster, {.i = -1 } }, { MODKEY, XK_h, setmfact, {.f = -0.05} }, { MODKEY, XK_l, setmfact, {.f = +0.05} }, { MODKEY, XK_Return, zoom, {0} }, { MODKEY, XK_Tab, view, {0} }, { MODKEY|ShiftMask, XK_c, killclient, {0} }, { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, { MODKEY, XK_space, setlayout, {0} }, { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, { MODKEY, XK_agrave, view, {.ui = ~0 } }, { MODKEY|ShiftMask, XK_agrave, tag, {.ui = ~0 } }, { MODKEY, XK_comma, focusmon, {.i = -1 } }, { MODKEY, XK_semicolon, focusmon, {.i = +1 } }, { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, { MODKEY|ShiftMask, XK_semicolon, tagmon, {.i = +1 } }, TAGKEYS( XK_ampersand, 0) TAGKEYS( XK_eacute, 1) TAGKEYS( XK_quotedbl, 2) TAGKEYS( XK_apostrophe, 3) TAGKEYS( XK_parenleft, 4) TAGKEYS( XK_minus, 5) TAGKEYS( XK_egrave, 6) TAGKEYS( XK_underscore, 7) TAGKEYS( XK_ccedilla, 8) { MODKEY, XK_w, spawn, SHCMD("firefox") }, { MODKEY, XK_a, spawn, SHCMD("~/.dmenu/actions") }, { MODKEY, XK_s, spawn, SHCMD("sch") }, { MODKEY, XK_x, spawn, SHCMD("~/.dmenu/dmlaunch") }, { MODKEY, XK_z, spawn, SHCMD("~/.dmenu/dmpc") }, { MODKEY|ShiftMask, XK_l, spawn, SHCMD("mpc next") }, { MODKEY|ShiftMask, XK_h, spawn, SHCMD("mpc prev") }, { MODKEY|ShiftMask, XK_n, spawn, SHCMD("mpc toggle") }, { 0, 0x1008ff13, spawn, SHCMD("mixerctl outputs.master=+10") }, { 0, 0x1008ff11, spawn, SHCMD("mixerctl outputs.master=-10") }, { 0, 0x1008ff12, spawn, SHCMD("mixerctl outputs.master.mute=toggle") }, { MODKEY|ShiftMask, XK_q, quit, {0} }, }; /* button definitions */ /* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ static Button buttons[] = { /* click event mask button function argument */ { ClkLtSymbol, 0, Button1, setlayout, {0} }, { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, { ClkWinTitle, 0, Button2, killclient, {0} }, { ClkWinTitle, 0, Button4, focusstack, {.i = +1 } }, { ClkWinTitle, 0, Button5, focusstack, {.i = -1 } }, { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, { ClkClientWin, MODKEY, Button1, movemouse, {0} }, { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, { ClkTagBar, 0, Button1, view, {0} }, { ClkTagBar, 0, Button3, toggleview, {0} }, { ClkTagBar, MODKEY, Button1, tag, {0} }, { ClkTagBar, MODKEY, Button3, toggletag, {0} }, { ClkStatusText, 0, Button3, spawn, SHCMD("~/.dmenu/dwm_menu/dwm_menu.sh") }, { ClkRootWin, 0, Button3, spawn, SHCMD("~/.dmenu/dwm_menu/dwm_menu.sh") }, { ClkStatusText, 0, Button4, spawn, SHCMD("mixerctl outputs.master=+10") }, { ClkStatusText, 0, Button5, spawn, SHCMD("mixerctl outputs.master=-12") }, };

Ensuite, si vous avez bien observé, vous aurez remarqué que la barre de status est un peu spéciale. Il y a à l'intérieur des barres de niveau par exemple. Le tout est en plus entièrement codé en C, c'est très léger et rapide! Je me suis nettement inspiré de dstat, que l'on trouve sur la page de dwmstatus. Parmis ses fonctionnalités :

* Informartions sur la musique jouée par le lecteur MPD
* Affichage du nombre de messages dans vos dossiers Maildir
* Utilisation CPU
* Status de la batterie
* Volume sonore
* Date et heure


Voici donc le code pour le compiler :

config.mk
NAME = dwmstatus VERSION = 1.2 # Customize below to fit your system # paths PREFIX = /usr/local MANPREFIX = ${PREFIX}/share/man X11INC = /usr/X11R6/include X11LIB = /usr/X11R6/lib # mpd + openbsd MPDFLAG = -DMPD LOCALINCLUDE = /usr/local/include LOCALLIB = /usr/local/lib # includes and libs INCS = -I. -I/usr/include -I${LOCALINCLUDE} -I${X11INC} LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 -L${LOCALLIB} -lmpdclient # flags CPPFLAGS = ${MPDFLAG} -DVERSION=\\"${VERSION}\\" CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS} #CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS} LDFLAGS = -g ${LIBS} #LDFLAGS = -s ${LIBS} # Solaris #CFLAGS = -fast ${INCS} -DVERSION=\\"${VERSION}\\" #LDFLAGS = ${LIBS} # compiler and linker CC = cc

le dwmstatus.c
#define _BSD_SOURCE #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define D_BUF 64 char *tzparis = "Europe/Paris"; static Display *dpy; char * smprintf(char *fmt, ...) { va_list fmtargs; char *buf = NULL; va_start(fmtargs, fmt); if (vasprintf(&buf, fmt, fmtargs) == -1){ fprintf(stderr, "malloc vasprintf\\n"); exit(1); } va_end(fmtargs); return buf; } int runevery(time_t *ltime, int sec){ /* return 1 if sec elapsed since last run * else return 0 */ time_t now = time(NULL); if ( difftime(now, *ltime ) >= sec) { *ltime = now; return(1); } else return(0); } void setstatus(char *str) { XStoreName(dpy, DefaultRootWindow(dpy), str); XSync(dpy, False); } void settz(char *tzname) { setenv("TZ", tzname, 1); } char * mktimes(char *fmt, char *tzname) { char buf[129]; time_t tim; struct tm *timtm; memset(buf, 0, sizeof(buf)); settz(tzname); tim = time(NULL); timtm = localtime(&tim); if (timtm == NULL) { perror("localtime"); exit(1); } if (!strftime(buf, sizeof(buf)-1, fmt, timtm)) { fprintf(stderr, "strftime == 0\\n"); exit(1); } return smprintf(buf); } char *get_nmail(char *directory, char *label) { /* directory : Maildir path * return label : number_of_new_mails */ int n = 0; DIR* dir = NULL; struct dirent* rf = NULL; dir = opendir(directory); /* try to open directory */ if (dir == NULL) perror(""); while ((rf = readdir(dir)) != NULL) /*count number of file*/ { if (strcmp(rf->d_name, ".") != 0 && strcmp(rf->d_name, "..") != 0) n++; } closedir(dir); if (n == 0) return smprintf(""); else return smprintf("%s%d",label, n); } static const char *d_bar(unsigned char p) { const char *s[] = { "▁", "▂", "▃", "▄", "▅", "▆", "▇", "█", "█" }; return s[((8 * p) / 100)]; } static char *d_cpu(void) { static long cpu[CPUSTATES]; int mib[2] = { CTL_KERN, KERN_CPTIME }, p; long c[CPUSTATES]; size_t sz = sizeof(c); if (sysctl(mib, 2, &c, &sz, NULL, 0) == -1) return smprintf("sysctl failed"); p = (c[CP_USER] - cpu[CP_USER] + c[CP_SYS] - cpu[CP_SYS] + c[CP_NICE] - cpu[CP_NICE]) / (double) (c[CP_USER] - cpu[CP_USER] + c[CP_SYS] - cpu[CP_SYS] + c[CP_NICE] - cpu[CP_NICE] + c[CP_IDLE] - cpu[CP_IDLE]) * 100; memmove(cpu, c, sizeof(cpu)); return smprintf("CPU %d%% %s", p, d_bar(p)); } static char *d_bat(int fd) { struct apm_power_info api; if (ioctl(fd, APM_IOC_GETPOWER, &api) == -1) return smprintf("ioctl failed"); return (api.ac_state == APM_AC_ON) ? smprintf("⚡ %d%% %s A/C", api.battery_life, d_bar(api.battery_life)) : smprintf("⚡ %d%% %s %u:%02u", api.battery_life, d_bar(api.battery_life), api.minutes_left / 60, api.minutes_left % 60); } static char *d_vol(int fd) { static int cls = -1; struct mixer_devinfo mdi; struct mixer_ctrl mc; int v = -1, p; for (mdi.index = 0; cls == -1; mdi.index++) { if (ioctl(fd, AUDIO_MIXER_DEVINFO, &mdi) == -1) return smprintf("ioctl failed"); if (mdi.type == AUDIO_MIXER_CLASS && !strcmp(mdi.label.name, AudioCoutputs)) cls = mdi.index; } for (mdi.index = 0; v == -1; mdi.index++) { if (ioctl(fd, AUDIO_MIXER_DEVINFO, &mdi) == -1) return smprintf("ioctl failed"); if (mdi.type == AUDIO_MIXER_VALUE && mdi.prev == AUDIO_MIXER_LAST && mdi.mixer_class == cls && !strcmp(mdi.label.name, AudioNmaster)) { mc.dev = mdi.index; if (ioctl(fd, AUDIO_MIXER_READ, &mc) == -1) return smprintf("ioctl failed"); v = mc.un.value.num_channels == 1 ? mc.un.value.level[AUDIO_MIXER_LEVEL_MONO] : (mc.un.value.level[AUDIO_MIXER_LEVEL_LEFT] > mc.un.value.level[AUDIO_MIXER_LEVEL_RIGHT] ? mc.un.value.level[AUDIO_MIXER_LEVEL_LEFT] : mc.un.value.level[AUDIO_MIXER_LEVEL_RIGHT]); } /* todo: handle mute */ } return v == -1 ? "volume failed" : (p = (v * 100) / 255, smprintf("♫ %d%% %s", p, d_bar(p))); } /* simple function to retrieve mpd status */ char * getmpdstat() { struct mpd_song * song = NULL; const char * title = NULL; const char * artist = NULL; char * retstr = NULL; int elapsed = 0, total = 0; struct mpd_connection * conn ; if (!(conn = mpd_connection_new("localhost", 0, 30000)) || mpd_connection_get_error(conn)){ return smprintf(""); } mpd_command_list_begin(conn, true); mpd_send_status(conn); mpd_send_current_song(conn); mpd_command_list_end(conn); struct mpd_status* theStatus = mpd_recv_status(conn); if ((theStatus) && (mpd_status_get_state(theStatus) == MPD_STATE_PLAY)) { mpd_response_next(conn); song = mpd_recv_song(conn); title = smprintf("%s",mpd_song_get_tag(song, MPD_TAG_TITLE, 0)); artist = smprintf("%s",mpd_song_get_tag(song, MPD_TAG_ARTIST, 0)); elapsed = mpd_status_get_elapsed_time(theStatus); total = mpd_status_get_total_time(theStatus); mpd_song_free(song); retstr = smprintf("[♪ %s - %s - %.2d:%.2d/%.2d:%.2d ♪]", artist, title, elapsed/60, elapsed%60, total/60, total%60); free((char*)title); free((char*)artist); } else retstr = smprintf(""); mpd_response_finish(conn); mpd_connection_free(conn); return retstr; } int main(void) { int a = -1, m = -1; char *status; char *tmprs = NULL; char *mail_laposte = NULL; char *mail_educ = NULL; char *mail_yt = NULL; char *mail_y = NULL; char *mail_p = NULL; char *cpu = NULL; char *bat = NULL; char *vol = NULL; char *mpd = NULL; time_t count5min = 0; time_t count60 = 0; if (!(dpy = XOpenDisplay(NULL))) { fprintf(stderr, "dwmstatus: cannot open display.\\n"); return 1; } if ((a = open("/dev/apm", O_RDONLY)) == -1 || (m = open("/dev/mixer", O_RDONLY)) == -1) err(1, "open failed"); for (;;sleep(1)) { /* checks every minutes */ if ( runevery(&count60, 60) ) { free(tmprs); free(bat); tmprs = mktimes("%d/%m/%y %H:%M", tzparis); bat = d_bat(a); } /* checks mail every 5 minutes */ if (runevery(&count5min, 300) ) { free(mail_laposte); free(mail_educ); free(mail_yt); free(mail_y); free(mail_p); mail_laposte = get_nmail("/home/thuban/Maildir/laposte/new", " LP:"); mail_educ = get_nmail("/home/thuban/Maildir/educ/new", " LP:"); mail_yt = get_nmail("/home/thuban/Maildir/ythuban/new", " LP:"); mail_y = get_nmail("/home/thuban/Maildir/y/new", " LP:"); mail_p = get_nmail("/home/thuban/Maildir/physique/new", " LP:"); } /* checks every second */ free(cpu); free(vol); free(mpd); cpu = d_cpu(); vol = d_vol(m); mpd = getmpdstat(); status = smprintf("%s [✉ :%s%s%s%s%s] [%s | %s | %s] [%s]", mpd, mail_laposte, mail_educ, mail_yt, mail_y, mail_p, cpu, bat, vol, tmprs); setstatus(status); free(status); } XCloseDisplay(dpy); return 0; }

La commande "make" vous donnera l'éxécutable dwmstatus à lancer en début de session.

Que c'est bon d'avoir un vrai environnement de travail!
— (permalink)

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

Angristan : Mettre à jour Ubuntu 14.x ou 15.x vers la 16.04 LTS

ubuntu-16.04-xenial-xerus

C'est hier,  2 ans après la dernière version LTS qu'est sortie la dernière mouture d'Ubuntu : la 16.04 LTS Xenial Xerus.

Qulques nouveautés sont présentes dans cette version qui sera supporté 5 ans :

  • Noyau Linux 4.4 avec support des processeurs Intel Skylake
  • Support de ZFS
  • Python 3.5 est la version de python par défaut, Python 2 est toujours disponible
  • Support du nouveau type de paquets : Snappy
  • Unity 7.4, avec la possiblité de mettre le Dash en bas
  • Nouvelle app calendrier et nouvelle logithèque
  • Les logiciels GNOME en version 3.18
  • LibreOffice 5.1
  • Un nouveau fond d'écran ! :D

Fond d'écran Ubuntu 16.04 Xenial Xerus

 

Je vous conseille de faire des sauvegardes de vos données, et si possible d'attendre quelques jours avant de faire la mise à jour, histoire d'être sûr que votre PC va tenir le coup.

Sachez que vous pouvez mettre à jour depuis le logiciel graphique de mises à jour dans Ubuntu. Mais personnellement je préfère le terminal pour bien savoir ce que je fais :)

Mise à jour depuis Ubuntu 15.04 ou 15.10

On fait d'abord une petite mise à jour pour avoir les paquets les plus récents possibles :

sudo apt update sudo apt full-upgrade

Puis on met à jour vers Ubuntu 16.04 :

sudo do-release-upgrade

Attendez un peu, et il vous fera un résumé de paquets qui seront mis à jour. Généralement c'est plusieurs centaines de Mo.

Mise à jour depuis Ubuntu 14.04

On fait d'abord une petite mise à jour pour avoir les paquets les plus récents possibles :

sudo apt update sudo apt full-upgrade

Sous Ubuntu 14.04, il va falloir jour un tout petit peu plus pour pouvoir mettre à jour. En effet par défaut il ira chercher la dernière version non-LTS, donc il va falloir aller modifier ça :

Dans le terminal :

sudo nano /etc/update-manager/release-upgrades

Dans un éditeur de texte :

sudo gedit /etc/update-manager/release-upgrades

Et remplacez, dans la dernière ligne, normal par lts, comme ceci :

Prompt=lts

Mettre à jour Ubuntu 14.x ou 15.x vers la 16.04 LTS

 

C'est bon, on peut mettre à jour vers Ubuntu 16.04 :

sudo do-release-upgrade

Attendez un peu, et il vous fera un résumé de paquets qui seront mis à jour. Généralement c'est plusieurs centaines de paquets à mettre à jour, alors soyez patients !

 

Mettre à jour Ubuntu 14.x ou 15.x vers la 16.04 LTS

 

Une fois que la mise est terminée, vous pouvez redémarrer votre ordinateur.

 

On vérifie à nouveau que tout est bien à jour

sudo apt update sudo apt full-upgrade

On nettoie le cache, là où se trouves tous les paquets que l'on a téléchargé, ce qui doit représenter 1 ou 2Go :

sudo apt-get clean sudo apt-get autoclean sudo apt-get autoremove

Et on vérifie qu'on est bien sous Ubuntu 16.04 LTS Xenial Xerius !

lsb_release -a

Mettre à jour Ubuntu 14.x ou 15.x vers la 16.04 LTS

 

Voilà, j'espère que tout s'est bien passé pour vous :)

 

Sources :

L'article Mettre à jour Ubuntu 14.x ou 15.x vers la 16.04 LTS a été publié sur Angristan

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

Articles similaires

Thuban : Mise à jour de dontpanic en version 1.3

Depuis le temps, je me replonge dans le code de dontpanic bien qu'il n'y ait plus grand chose à y faire en réalité :)

Il passe donc en version 1.3, avec les changements suivants :

- Correction du bug pour recherche sur tous les moteurs même avec traduction activée,
- Correction d'un bug lors du téléchargement des sous-titres,
- Le même dossier temporaire est utilisé entre deux sessions. Cela évite le surpeuplement de /tmp,
- Dontpanic affiche un petit message s'il peut être mis à jour,
- L'apparence légèrement améliorée.

Je vous invite donc à mettre à jour dontpanic en téléchargeant la dernière version.

Si vous avez ajouté mon dépôt debian, alors un simple "apt update && apt upgrade" sera suffisant.

N'hésitez pas à commenter si vous avez des suggestions à faire ;)
— (permalink)

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

Nicolas Lœuillet : Un dépôt monolithique pour wallabag ?

Un dépôt monolithique, kézaco ? C'est un dépôt global, qui regroupe tous les applications de votre projet.

Par exemple, un dépôt monolithique pour wallabag, ça serait un dépôt qui recense le code source de l'application web, de la documentation, du site web, de l'appli android, de l'image Docker, etc.

Mais t'es fou ? Tout dans un seul dépôt ?

Oui. Tout.

Quelques exemples de projets qui font ça ? Google, Facebook ou plus proche de wallabag, Symfony.

Dans le projet Symfony, il y a un dépôt qui regroupe tout le code source du framework et un dépôt par composant.
Par exemple, le composant Console a son propre dépôt ici : https://github.com/symfony/Console et se trouve aussi dans le dépôt global : https://github.com/symfony/symfony/tree/master/src/Symfony/Component/Console

Tout est synchronisé automatiquement (via un outil développé par Fabien Potencier pour remplacer git subtree, pas assez performant pour un projet comme Symfony).

L'intérêt ? La personne qui souhaite récupérer tout le projet Symfony peut récupérer le framework complet. La personne qui ne souhaite que le composant Console le peut également.

Quels intérêts pour wallabag ?

Prenons le cas de notre dépôt pour l'image Docker : https://github.com/wallabag/docker/blob/master/Dockerfile

Dans ce fichier se trouve la dernière version stable de wallabag en dur.

Dans le projet wallabag/wallabag, on a aussi des fichiers où cette version est stockée (la documentation, le README, etc.).

Si nous n'avions qu'un seul dépôt, une seule pull request serait nécessaire. Là, il en faut une par dépôt. Donc autant de revues de code nécessaires.

Certains changements (typiquement, des changements dans l'API) pourraient également impacter les applications pour smartphone par exemple. Là encore, un seul dépôt pour gérer tout ça apporterait de la flexibilité pour faire évoluer les projets.

La documentation de tous nos projets se trouverait à un seul endroit.
Il n'y aurait qu'un seul endroit pour rapporter des bugs : bien plus pratique pour les utilisateurs qui n'auraient pas à se demander si c'est dans tel ou tel dépôt.

Quelles contraintes ?

C'est là le souci : il faudrait mettre ça en place et j'ai une crainte de tout casser.

Il faudrait aussi mettre en place la synchronisation automatique entre tous les dépôts, pour éviter de devoir ça manuellement à chaque merge.

Quelques inconnues sur la mise en place, mais je compte bien me lancer.
Je vais surement ouvrir un ticket sur wallabag/wallabag pour avoir l'avis des principaux contributeurs à wallabag.

À suivre donc, car je compte avancer là-dessus dans les semaines à venir.

Gravatar de Nicolas Lœuillet
Original post of Nicolas Lœuillet.Votez pour ce billet sur Planet Libre.

Framablog : Allumons les réverbères du Libre

Dans son communiqué de presse du 07 avril 2016, la Commission des lois du Sénat français déclare approuver le projet de loi pour une République Numérique porté par la secrétaire d’État au numérique Axelle Lemaire. Néanmoins, le Sénat a tenu à renommer ce projet de loi :

La commission a adopté le projet de loi en le modifiant : sans constituer la révolution que suggérait son premier intitulé, il contient un certain nombre de dispositions utiles pour assurer une meilleure régulation de la société numérique et améliorer la protection des droits des individus. C’est pourquoi la commission a modifié le titre du projet de loi, désormais intitulé : « projet de loi pour une société numérique ».

L’argument est limpide : nul ne saurait transformer les prérogatives de la puissance publique en place. C’est à la société de se transformer (se numériser) et c’est à la République (et ses institutions) qu’il revient de réguler les usages numériques. Tel est l’ordre des choses, et il est fort compréhensible que la Commission des lois ne laisse pas passer un texte qui transformerait une République dont elle est garante de l’intégrité.

Pourtant, cette rigidité est-elle bien conforme à l’air du temps ? Cette société numérique n’est-elle pas justement en train de montrer que ces usages sont précisément ceux d’une démocratie en train de se faire, mobilisant les attentions et renouvelant les pratiques politiques y compris debout à la place de la République. Peut-être est-ce justement à cause de cela et de ce qu’il cristallise comme besoin de transparence, de démocratie et de coopération, que le logiciel libre peine tant à être compris et assimilé par les institutions.

Ce texte de Véronique Bonnet, administratrice de l’April, synthétise ces questionnements. Un peu d’espoir peut-être en usant nous-mêmes, de plus en plus, du logiciel libre pour s’émanciper enfin ?

Sympathy for the Free Software

Par Véronique Bonnet, administratrice de l’April

Indésirable, le logiciel libre (free software) ? Un amendement de la commission des lois du Sénat vient de faire disparaître, pour l’instant, avant l’examen en séance prévu fin avril, l’encouragement au logiciel libre. Certes, il s’agissait bien d’un amendement de repli, non juridiquement contraignant, que l’Assemblée avait voté comme pis-aller, vu les tirs de barrage contre la priorisation. Le simple encouragement est-il déjà tabou ? Caillou dans la chaussure ? Loup dans la bergerie ? Disons ici notre sympathie irréductible, notre attachement citoyen au logiciel libre, n’en déplaise aux frilosités qui se drapent dans des habits bien improbables.

Du diable, on dit qu’il est dans les détails.

Un détail, justement. Le projet de loi numérique a changé de nom, la semaine dernière, en cours de route. Initialement, il s’appelait « Projet de loi pour une république numérique ». Le Conseil d’État, en décembre dernier, s’était étonné du décalage entre un tel intitulé et le contenu du projet de loi.

Dans le second volet d’un article publié le 15 avril par la revue EpiNet, intitulé « Bienheureuse panne d’imprimante, encore », j’ai essayé de montrer que si on prenait au sérieux la notion de république, alors on ne pouvait pas faire l’économie d’une priorisation de l’informatique libre dans le domaine public, « dans la tâche de protéger des regards ce qui doit l’être, et celle de rendre visible et accessible ce qui doit l’être, dans une république. »

J’avais dans mon argumentaire fait état de deux axes, esquissés, mais non assumés par le texte soumis à l’examen des parlementaires. Un premier axe qui disait vouloir découvrir et laisser à découvert ce qui devait l’être, dans une république, soit les traitements algorithmiques des paramètres qui débouchent sur des décisions et influent sur les existences. Un second axe qui disait vouloir couvrir et garder couvert ce qui devait le rester dans une république, soit le contrôle des données personnelles.

La semaine dernière, le gouvernement a remplacé le terme de « république », peut être trop contraignant, par le terme de « société ». Société numérique en lieu et place de la république numérique ? En rabattre sur les exigences de fraternité, d’égalité et de liberté vers une loi a minima peu conforme aux exigences de la république, mais bien suffisante pour la société. On ne peut s’empêcher de faire le lien avec la très thatcherienne et libérale exclamation : « such a thing as society ! », dans un contexte où il était demandé à cette responsable britannique de prendre au sérieux le traitement social de la pauvreté.

Remplacer « république » par « société », est-ce donner congé à bon compte à la juste revendication d’une interopérabilité, d’une auditabilité, soit, en un mot, de choix numériques qui garantissent une dimension publique vraiment publique et une dimension privée vraiment privée, purement et simplement ? La république oblige. La société, tout autant.

À ce moment de croisée des chemins pour le Libre, puisque c’est maintenant l’ensemble des Sénateurs qui doit examiner le projet de loi, esquissons en quelques traits de quelle liberté heureuse ce combat pour la priorité au logiciel libre est fait.

En tant que libristes, nous sommes, en quelque sorte, des allumeurs de réverbères. Une variante des lanceurs d’alerte. Un peu ce que les lucioles sont aux colibris. Nous essayons de sensibiliser sur le non auditable, le non interopérable, l’obscurantisme des verrous logiciels, des chausse-trappes, des rentes de situation. Allumeur de réverbère, c’est un beau métier.

 

allumeur de réverbère dessin de saint exupéry pour le Petit Prince

Copyright © 2016 Le Petit Prince – Eh non, l’ouvrage n’est toujours pas dans le domaine public en France.

 

Celui du Petit Prince, dans l’accélération folle de la succession des jours et des nuits, réduits chacun à une minute, suivait néanmoins la consigne : éclairer quand il le fallait, éteindre quand il le fallait. Saint-Exupéry suggère de celui-là qu’il est un peu lampiste. La consigne lui a été donnée quand le jour durait un jour, et la nuit une nuit. Mais lampiste encore au sens d’autrefois : celui qui veille à l’allumage des lampes.

Ma main au feu que la régie lumière du projet de loi « pour une république numérique », puis « pour une société numérique » soit plus proche du Prince de Machiavel, régulateur et opératoire, que de la philosophie des Lumières, émancipatrice. Le pire est de faire croire que le logiciel libre peut porter atteinte aux appels d’offre, un vilain petit canard juridique, monstre mal bâti. Démon ? Seulement au sens du démon de Socrate, cette voix intérieure qui est médiation entre les situations et les concepts. Free Software, doux démon. Loin des tentations de la Pomme et autres gaffes à âmes.

reguler-internet

Faut-il, pourtant, se résoudre, abjurer ? « Eppure, si muove », aurait dit, ou en tous cas pensé, Galilée. Que l’on traduit d’ordinaire par « et pourtant, elle tourne ». Il parlait de la Terre, dans la perspective de l’héliocentrisme honni par les potentats d’alors. Aller contre l’évidence de la logique des êtres parlants d’étudier, utiliser, améliorer, redistribuer, en sécurisant leurs échanges et en ayant une visibilité sur ce qu’il veulent partager ou garder pour eux ?

Ceux qui prennent les libristes pour de joyeux lampistes — pas au sens d’autrefois —, et les vessies pour les lanternes, et les enfants du bon dieu pour des canards sauvages, feraient bien de s’aviser que le bon sens finit toujours pas prévaloir sur les mauvais prétextes.

Il y a quelque chose comme une raison dans l’histoire. Si ce n’est pas sous cette législature, tôt ou tard, le free software finira par s’imposer. Mais ce serait mieux maintenant.

Devil-Girl-300px

Devil girl by GDJ,  Public Domain

Pour ma part, c’est tout vu. Je roule en GNU/Linux. Je m’habille en Debian. Je n’ai pas encore de RoLeX pour réussir ma vie, mais je suis, j’eXisTe en LaTeX. Je priorise avec l’April. Je dégooglise avec Framasoft. Je neutralise avec LQDN. J’ai jeté aux orties mes menottes numériques. Contre les portes dérobées, je mets en garde les autres, avec d’autres. Et à toi, Free Software, je dis ma sympathie, que diable !

 

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

Articles similaires

genma : Yunohost, Autohébergement, Let's Encrypt

Installer Let's Encrypt

Pour installer Let's Encrypt sur Yunohost (et remplacer le certificat autosigné généré par défaut), j'ai suivi le tutoriel suivant How to : install letsencrypt certificates disponible en anglais et en français. Le tutoriel est bien fait, je n'ai pas de remarque particulière.

Let's Encrypt et Freebox

Comme je l'évoquais dans mon article Yunohost, Freebox OS, Let's Encrypt, la Freebox propose un accès https qui repose sur l'usage d'un certificat TLS fourni via Let's encrypt.

Le soucis est que l'on peut se retrouver dans le cas ou pour une même adresse, avec le port 80, si on a consulté cette adresse (associé au FreeboxOS), on a chargé un premier certificat Let's Encrypt. Et si on redirige ensuite le port 80 sur Yunohost, on charge un second certificat.

On a un conflit entre les deux certificats vu qu'ils pointent au final sur une même IP... On a le message d'erreur qui s'affiche.

Seule solution que je vois pour l'instant : créer différents profils dans Firefox (via la commande Firefox -p). Dans l'un des profils, je peux aller sur la partie administration de la Freebox, son certificat est associée à l'adresse Ip publique de la box. Dans l'autre profil, je vais sur l'adresse de mon cloud personnel et le certificat Let's Encrypt.

Une autre solution : désactiver l'accès à la partie administration à distance de la Freebox, passer par le réseau local (accessible à distance via le VPN fournit par la Freebox, un VPN installé sur son instance Yunohost ou via SSH...).

Let's Encrypt et Pseudonymat

Autre problématique, au moment de le création du certificat de Let'S Encrypt, on doit saisir un email. Je n'y avais pas prêté attention. Mais il y a peu de temps, j'ai reçu un mail m'indiquant que mon certificat (qui a une durée de validité de 90 jours) allait arrivé prochainement à expiration. Mon mail se retrouve donc associé à mon nom de domaine.

Dans mon cas, ce n'est pas un soucis. Mais cela veut dire qu'un organisme externe, en l'occurence ceux qui sont derrière Let's encrypt ont le lien entre un nom de domaine et un mail. A voir si c'est génant ou pas et faire attention en conséquence lors de la saisie à bien indiquer le bon mail ;-)

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

Articles similaires

System Linux : Commande rpm

Un résumé de quelques options bien pratique de la commande phare de RedHat, Centos et Fedora : RPM

La commande rpm :

rpm : RPM Package Manager,

Voici les commandes de base :

Installer ou mettre à jour un paquet

rpm -Uhv *.rpm

Installer un paquet

rpm -ihv *.rpm

Désinstaller un paquet

rpm -e * (sans '.rpm')

La recherche

Rechercher si le paquet truc est installé

rpm -q truc (nom complet, sans '.rpm')

Recherche dans tous les paquets installés si gcc est présent

rpm -qa | grep gcc

Liste de tous les paquets installés

rpm -qa

Renvoie quel paquet rpm a installé un certain fichier : permet ainsi de déterminer le nom du paquet ayant installé tel programme ou telle librairie

rpm -q --whatprovides /usr/bin/ogg123

Renvoie tous les fichiers installés par un paquet

rpm -q --fileprovide vorbis-tools rpm -ql vorbis-tools

Description du paquet installé

rpm -qi paquet

Si un paquet fait sa maline et veut pas s'installer pour x ou y raison

rpm -ivh --nodeps --force nom du package

Lister les fichiers d’un paquet rpm

rpm –ql « nom du package »

Connaître le paquet d’un fichier

rpm -qf /etc/openldap/ldap.conf

Connaître le contenu d’un rpm

rpm -pql package.rpm

Afficher les changes logs

rpm -q truc --changelog

Affiche plus d'information ainsi que l'architecture d'un paquet, exemple avec libxml2

rpm --query --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH}) " libxml2

Connaitre la date d'installation d'un paquet

rpm -qa --last | grep truc

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

Articles similaires

TheLinuxFr : Let’s Encrypt et acme.sh sous Debian avec Nginx

Maintenant que Let’s Encrypt est sorti de bêta, nous allons pouvoir commencer à jouer un peu plus sérieusement. Depuis l’annonce de la bêta privé j’utilise Let’s Encrypt, ça fait le job sans problème. J’ai commencé avec le client officiel, mais j’ai vite cherché une solution plus light, sans dépendances et simple à mettre en place. Je suis donc tombé sur acme.sh (anciennement le.sh). Je vais vous présenter ici ma configuration. Je pars d’une Debian Jessie fonctionnelle (c’est mieux) avec Nginx faisant tourner mes divers services (Owncloud, FreshRSS, Kanboard…).

Installation de acme.sh

Rien de plus simple, je vous laisse parcourir le readme du projet, en gros l’installation se résume à :

wget -O - https://get.acme.sh | sh

Il s’agit ni plus ni moins que de script en sh, ce qui est plutôt cool, pas de dépendances, une installation en quelques secondes et cerise sur le gâteau, une tâche cron est mise en place pour vérifier si un certificat expire.

Configuration de Nginx

Je vais utiliser un webroot pour l’identification et la certification auprès de Let’s Encrypt. Le fichier généré pour le challenge à donc besoin d’être accessible via HTTP. Voici un exemple de configuration de mes hôtes virtuels :

server { listen 80; listen [::]:80; server_name MON_DOMAINE; location /.well-known/acme-challenge { root /var/www/letsencrypt; } location / { return 301 https://$server_name$request_uri; } }

Les fichiers de challenges vont être générés dans /var/www/letsencrypt, assurez-vous d’avoir créé le dossier et autorisé Nginx (www-data). On peut aussi voir que je redirige toutes les requêtes HTTP vers HTTPS pour le reste. J’applique cette configuration pour les hôtes virtuels que je veux certifier. N’oubliez pas de recharger la configuration de Nginx et on va pouvoir demander nos certificats.

Création des certificats

Nous allons maintenant demander nos certificats. Une simple commande permets cela, vous pouvez spécifier un ou plusieurs domaines :

acme.sh --issue -d mon_domaine.fr -w /var/www/letsencrypt/

Avec plusieurs domaines :

acme.sh --issue -d mon_domaine.fr -d mon_domaine2.fr -d mon_domaine3.fr -w /var/www/letsencrypt/

Patienter quelques secondes, les certificats devraient être générés.

On installe les certificats dans /etc/ssl/private :

acme.sh --installcert -d mon_domaine.fr \\ --keypath /etc/ssl/private/mon_domaine.fr-key.pem \\ --capath /etc/ssl/private/mon_domaine.fr-ca.pem \\ --fullchainpath /etc/ssl/private/mon_domaine.fr.pem \\ --reloadcmd "service nginx reload"

Vous devriez trouver un fichier de configuration dans votre $HOME/.acme.sh/mon_domaine.fr/mon_domaine.fr.conf pour modifier à volontés les variables :

Le_Domain=mon_domaine.fr Le_Alt=mon_domaine2.fr,mon_domaine3.fr Le_Webroot=/var/www/letsencrypt/ Le_Keylength=no Le_RealCertPath="" Le_RealCACertPath="/etc/ssl/private/mon_domaine.fr-ca.pem" Le_RealKeyPath="/etc/ssl/private/mon_domaine.fr-key.pem" Le_ReloadCmd="service nginx reload" Le_RealFullChainPath="/etc/ssl/private/mon_domaine.fr.pem" ... Activation du SSL dans Nginx

Il nous reste à configurer les certificats dans les hôtes virtuels Nginx :

ssl on; ssl_certificate /etc/ssl/private/mon_domaine.fr.pem; ssl_certificate_key /etc/ssl/private/mon_domaine.fr.pem;

Recharger ensuite Nginx et vous devriez avoir un beau petit certificat.

Tester la configuration

Vous pouvez relancer une certification pour tester :

acme.sh --renew -d mon_domaine.fr -d mon_domaine2.fr -d mon_domaine3.fr -w /var/www/letsencrypt/ --force

Si tous se passe pour le mieux, vous devriez obtenir de nouveau certificats et Nginx devrait redémarrer tous seul comme un grand.

Cet article Let’s Encrypt et acme.sh sous Debian avec Nginx est apparu en premier sur TheLinuxFr.

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

Articles similaires

nIQnutn : Galerie d'images: afficher une image contenu dans un zip sur votre site

J'ai précédemment expliqué comment Afficher aléatoirement une citation sur votre site et cela marche également parfaitement avec des images.
Je propose un autre petit script, assez similaire mais qui servira à afficher des images à partir d'une archive .zip.

J'ai effectué plusieurs modifications pour aller un peu plus loin et être capable d'afficher un plus grand nombre d'images ( >1000 fichiers). L'objectif principal restait toujours de se simplifier la tâche:

  • plus besoin de lister les images que l'on souhaite afficher (comme dans le fichier random.txt).
  • on ne gère qu'un seul fichier contenant l'ensemble des images (plus simple à transférer sur le serveur et sans le polluer avec un nombre important de fichiers)
  • pas de doublon entre les images à afficher et l'archive qui peut être téléchargé

Il suffit de recopier le code PHP ci-dessous en modifiant le nom de l'archive et l'URL de la galerie.

galerie.php <?php $file="tux.zip"; // A MODIFIER >> URL du fichier zip $urlPage="galerie.php"; // A MODIFIER >> URL de la page // navigation $start= 0 ; // index de départ $end= getNbImages($file)-1 ; // index de fin $urlVar=preg_replace('/(^.*?)\\?/', '', $urlPage."?id") ; // variable à récupérer $urlGet=$urlPage."?id"; // URL pour la navigation $id = isset($_GET[$urlVar])?intval($_GET[$urlVar]):intval(mt_rand($start, $end)); // on récupère l'ID // Afficher l'image X $image=getImageX($file, $id); echo ''.$image.''; // A MODIFIER >> Mise en page de l'image // Fonction pour retourner l'image correspondant à l'ID function getImageX ($zipFile, $id) { $zip = new ZipArchive; $res = $zip->open($zipFile); if ($res === TRUE) { $src = $zip->getFromIndex($id); $result = 'Image'; return $result; } else { echo 'échec, code:' . $res; } $zip->close(); } // Fonction pour retourner le nombre d'images contenu dans l'archive function getNbImages ($zipFile) { $date_file=filemtime($zipFile); $file_cache=$zipFile.'.cache'; $date_cache=filemtime($file_cache); if ( (file_exists($file_cache)) && ($date_file <= $date_cache) ) { $nb_items_cache = file_get_contents( $file_cache ); } else { $zip = new ZipArchive; $res = $zip->open($zipFile); if ($res === TRUE) { $nb_items_cache=$zip->numFiles; } $zip->close(); file_put_contents($file_cache, $nb_items_cache); } return $nb_items_cache; } ?> <?php $previous=( $id > $start) ? " Précédent | " : "" ; echo $previous; $rand=" Aléatoire " ; echo $rand; $next=( $id != $end ) ? " | Suivant " : "" ; echo $next; ?>

Les variables à modifier:

  • $file: URL du fichier zip
  • $urlPage: URL de la page

Puis de l'envoyer sur votre serveur avec l'archive contenant vos images.
En recopiant correctement le code correctement, vous devriez afficher une galerie avec des boutons de navigation.

Le fichier .zip contenant l'ensemble des images ne doit pas comporter d'autres types de fichiers ou de dossiers.

Je n'ai pas de recul concernant les performances de ce script, donc à utiliser avec modération. Avec un fichier comportant plusieurs centaines d'images, cela ne semble pas poser de difficultés.

Ressources
2016 nIQnutn CC-BY

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

Framablog : Notre gitlab évolue en Framagit. C’est très efficace !

Warning : cet article parle de forge logicielle qui sert à développer collaborativement du code. Il est donc un peu velu et technique, mais il fera plaisir aux plus « barbu-e-s » d’entre vous !

Préviousselaid, chez Framasoft : nous avions besoin d’une forge logicielle comme outil interne à l’asso… parce que même si nous ne développons pas (ou exceptionnellement) de logiciel libre ; les mettre en avant, les améliorer (parfois), les promouvoir et ouvrir des services au monde, ben ça demande de créer, maintenir, échanger et améliorer du code !

Nous nous étions donc installé Gitlab à la main, sur un coin de serveur, juste pour nous…  Étant les seuls utilisateurs, on s’est dit que ce ne serait pas grave s’il n’était pas toujours à jour, à traquer la dernière version… (oui : nous sommes moins exigeants sur nos outils internes que pour les services que nous ouvrons au grand public ^^).

Franchement, merci Google !

Merci, parce qu’à chaque fois que vous prenez des décisions unilatérales aux dépens de vos utilisateurs-produits, vous nous offrez l’occasion de prouver que le Libre offre des alternatives bien plus respectueuses des personnes qui vous ont confié leur vie numérique (et leur code).

Le jour où nous avons appris que Google Code fermait ses portes, nous avons donc décidé d’ouvrir les nôtres. Cela nous a aussi permis de sensibiliser au fait que, dans le mode des codeurs et développeuses, GitHub est devenu un point central et monopolistique assez inquiétant.

 « GitHub est en panne » — Hé, au boulot les gars ! — Github est en panne ! — Ah bon, continuez alors.

L’excuse n°1 des programmeurs pour se lâcher sans scrupules :
« GitHub est en panne »

— Hé, au boulot les gars ! — Github est en panne !
— Ah bon, continuez alors.

 

Forcément, l’ouverture à tous de notre git et les nouvelles fonctionnalités des nouvelles versions de Gitlab (une nouvelle version tous les 22 du mois) nous ont incités à mettre à jour plus régulièrement, ce qui prend plusieurs heures à chaque fois… et plusieurs fois par mois, car des versions correctives sont régulièrement publiées.

Améliorer le Framagit… une priorité

Ceci, ajouté à l’utilisation grandissante de notre forge qui allait bientôt poser des problèmes de taille de disques, nous a amenés à migrer (le 17 mars dernier) notre Gitlab vers une machine avec plus de disque et surtout avec une installation utilisant les paquets dits « omnibus ».

Ces paquets omnibus nous ont permis d’installer Gitlab à l’aide d’un simple apt-get install gitlab-ce plutôt que de suivre la longue procédure d’installation manuelle. Non seulement l’installation est simplifiée, mais — et c’est surtout là la plus-value que nous en attendions — mettre à jour Gitlab devient tout aussi simple avec une seule commande apt-get dist-upgrade.

Résultat : notre Gitlab suit scrupuleusement la publication des nouvelles versions, avec leur lot de nouvelles fonctionnalités !

GitPourTous

Pour fêter cela, nous avons étrenné un nouveau nom de domaine… inspiré par vous ! Avouons-le, «Git point Framasoft point orrrrrrrgueh », ça accroche un peu en bouche. De partout, nous avons entendu parler du « Framagit » : alors tant qu’à faire, autant l’appeler comme vous le faites déjà. Bien entendu, il n’est nul besoin de modifier vos URL, elles restent valides… mais la nouvelle est à votre disposition !

Et si on ajoutait de l’intégration continue ?

Derrière ce terme barbare se cache une fonctionnalité très pratique : on crée une « recette » qui sera exécutée dans une machine virtuelle à chaque push. Cela peut par exemple permettre de lancer une suite de tests pour vérifier que l’on n’a rien cassé. :-)

Pour utiliser cette fonctionnalité, il faut disposer de ce que l’on appelle un runner, c’est à dire un logiciel qui va récupérer la recette et l’exécuter. Il est possible d’installer un runner sur n’importe quel ordinateur, même votre ordinateur de bureau.

Pour ceux qui ne souhaitent pas gérer leur runner eux-mêmes, Framasoft met à disposition deux runners partagés entre tous les utilisateurs de Framagit, que vous pouvez utiliser comme bon vous semble. Notez toutefois que Gitlab indique que quiconque utilise un runner partagé peut accéder aux informations des projets utilisant ce runner : il vaut mieux monter votre propre runner pour vos projets sensibles.

De plus, en utilisant les runners partagés de Framasoft, il est possible que votre projet soit mis en file d’attente, en attendant que les recettes précédentes aient fini de s’exécuter… à vous de voir !

Pouhiou-le-moldu-du-code lisant cet article, allégorie.

Pouhiou-le-moldu-du-code lisant cet article, allégorie.

Vous voulez des pages Gitlab ? Nous aussi !

Github permet à tout un chacun d’héberger un site statique. Gitlab propose une fonctionnalité similaire mais hélas, uniquement dans sa version entreprise… Nous utilisons pour notre part la version communautaire qui est la version libre de Gitlab… donc sans les pages Gitlab.

Nous avons donc ouvert un ticket pour demander que cette fonctionnalité soit incluse dans la version communautaire. Si vous aussi vous aimeriez voir cela arriver, aidez-nous tout simplement en votant sur https://gitlab.com/gitlab-org/gitlab-ce/issues/14605.

En attendant, profitez d’une forge logicielle à jour et libre sur Framagit.org !

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

Articles similaires

Tuxicoman : Comment le FBI pourrait accéder à un appareil Android

Les journaux ont beaucoup médiatisé l’affaire du FBI voulant forcer Apple a créer un outil déverrouillant facilement les iPhone 5. Mais qu’en est-il de la sécurité des appareils Android ?

Je vois 3 cas de figure :

1

L’appareil n’a pas de partition /data chiffrée. Pas de challenge. Le FBI peut tout lire sans souci en branchant l’appareil à un port USB d’un ordinateur. C’est le cas par défaut des appareil sous Android < 6.0 (95% des appareils actifs aujourd’hui)

2

Si l’appareil a les GoogleApps installés (pour faire simple, si l’application GooglePlayStore est installée) et qu’il est connecté à Internet, le FBI a juste à demander à Google de réinitialiser le mot de passe ou d’installer en douce l’application du FBI qui leur permettrait de rentrer de contrôler le téléphone a distance avec les droits root. Le chiffrement de la partition /data est inutile contre cette attaque.

En effet, à travers les GoogleApps, Google a les droits root sur votre appareil. Et par l’application GooglePlay Services, il entretient une communication constante avec votre appareil. Ce privilège permanent de Google sur plus d’un milliard d’appareil personnel est alarmant mais peu s’en préoccupent.

Google a déjà par le passé fait usage de cette position privilégiée pour supprimer et installer des applications sur votre appareil sans votre consentement ni notification.
Avant de vous plaindre, sachez que c’est écrit dans les conditions d’usage du PlayStore (vous savez les conditions que vous passez quand vous démarrez la première fois votre appareil tout neuf et qu’il faut un compte Google pour l’utiliser….)

2.4 From time to time, Google may discover a Product on Google Play that violates the Developer Distribution Agreement or other legal agreements, laws, regulations or policies. You agree that in such an instance Google retains the right to remotely remove those applications from your Device at its sole discretion.

L’utilisateur profite également de ce super pouvoir de Google pour installer des application depuis un autre appareil en utilisant simplement l’interface web du PlayStore (vous croyiez que c’était magique?) ou remplacer les applications (mise à jour) sans notification.

Google peut réinitialiser le mot de passe de verrouillage de l’appareil. Et permet également à l’utilisateur de le faire depuis l’interface web de son compte Google.

Google peut également effacer la mémoire du téléphone à distance. Si un pirate trouve le kill switch et qu’il le lance sur le petit milliard d’appareil, on va rigoler :D

Si l’appareil est éteint, il suffit de lui mettre une carte SIM 3G sans PIN et les GoogleApps vont se connecter automatiquement aux serveurs de Google au démarrage.

Je pense qu’on rentre là dans les 99% des cas.

3

Dans les 0.001% restant de geeks n’ayant pas les GoogleApps installés et une partition chiffrée, il faudrait, sauf exploitation d’une vulnérabilité, casser le chiffrement de la partition /data.

Sur Android pré-4.4, PBKDF2 est utilisé pour dériver la clé de chiffrement à partir du mot de passe utilisateur. Le nombre d’itération étant fixé 2000. On peut retrouver facilement le mot de passe utilsateur avec des GPU :

Even when run on the GPU of a mobile computer (NVIDIA GeForce 730M), hashcat can achieve more than 20,000 PBKDF2 hashes per second, and recovering a 6 digit PIN takes less than 10 seconds. On the same hardware, a 6-letter (lowercase only) password takes about 4 hours.

Sur Android 4.4 et suivant, scrypt est utilisé. Il est plus résistant aux attaques par GPU et FPGA.

Sur Android 6, une clé de chiffrement inscrite en dur dans une puce matérielle de l’appareil peut intervenir dans la génération de la clé, ce qui complique la recherche de mot de passe depuis un autre appareil. Ceci présuppose toutefois qu’il n’y ait pas de faille dans la puce matérielle et que le fabricant n’ait pas de backdoor pour le FBI ou une copie de la clé de chiffrement… (d’où l’intérêt de la NSA d’aller fouiller chez GEMALTO pour récupérer les clés de chiffrement contenues dans les cartes SIM. Qu’en est il de Qualcomm?)

Dans ce cas, ça me parait très similaire à la technique utilisée par Apple dans ses Iphone avec iOS 9.

Note au passage :

PBKDF2 est aussi utilisé pour le chiffrement de disque sous GNU/Linux avec LUKS. Cependant le nombre d’itérations est prévu pour prendre 2 secondes sur votre machine. (1 sec si cryptsetup < 1.7)
Il y a un rapport de bug pour passer à une fonction plus resistante aux GPU ouvert depuis 2012. Le projet répond à sa manière à cette critique :

There is some discussion that a hash-function should have a « large memory » property, i.e. that it should require a lot of memory to be computed. This serves to prevent attacks using special programmable circuits, like FPGAs, and attacks using graphics cards. PBKDF2 does not need a lot of memory and is vulnerable to these attacks. However, the publication usually referred in these discussions is not very convincing in proving that the presented hash really is « large memory » (that may change, email the FAQ maintainer when it does) and it is of limited usefulness anyways. Attackers that use clusters of normal PCs will not be affected at all by a « large memory » property. For example the US Secret Service is known to use the off-hour time of all the office PCs of the Treasury for password breaking. The Treasury has about 110’000 employees. Assuming every one has an office PC, that is significant computing power, all of it with plenty of memory for computing « large memory » hashes. Bot-net operators also have all the memory they want.

Related Posts: J'aime!(2)Tu dis de la merde!(0)

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

Articles similaires

genma : Yunohost - Trop d'applications ?

C'est sous ce titre un peu racoleur que je voudrais évoquer deux problèmes qui peuvent se présenter si on installe trop d'applications sur son instance Yunohost. Le catalogue d'applications disponibles sur Yunohost est riche et ne cesse de s'enrichir chaque mois et il est tentant d'installer plein d'applications, pour les tester.

Consommation mémoire et processeur

La première chose à laquelle on pense est le fait que toutes ces applications tournant plus ou moins en continue (si ce n'est pas l'application en elle-même, il y a les ressources prises par PHP, MySQL etc.) et que tout cela consomme de la mémoire, du processeur... Surtout si on est plusieurs personnes à utiliser au même moment la même instance à travers différentes appplications. Plus il y a d'applications, plus il y a de ressources consommées.

Si vous trouvez votre machine Yunohost lente, c'est peut être là une piste : il y a trop d'applications de lancer en même temps. Deux solutions s'offrent alors à vous : ajouter de la mémoire ou réduire le nombre d'applications actives.

Failles de sécurité

Multiplier les applications multiplient la surface d'attaque potentielle. Les petits (et mêmes les grands) projets sont peu ou pas audités, ne sont pas forcément codés dans les règles de l'art de la sécurité. Il faut maintenir tous ces projets et applications à jour - ce que Yunohost fait très bien, de façon graphique quand on demande à mettre à jour le système et les applications. Encore faut-il que le mainteneur du paquet de l'application pour Yunohost est prise en compte la recherche de mise à jour de l'application sur le site officiel, que le site officiel fournisse régulièrement des mises à jour et des correctifs de sécurité (c'est le cas avec SPIP par exemple. A ce sujet, voir Yunohost - Comment installer Spip).

Conclusion

Il faut penser à mettre Yunohost et les applications régulièrement à jour via l'interface d'administration. Et surtout vérifier que les dernières versions des différentes applications sont bien les dernières versions disponibles sur les sites officiels de chacune d'elles. Cela demande du temps et de l'energie, mais c'est là le prix à payer pour avoir un peu plus de sécurité et limiter les risques.

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

Renault : Journée de test de Fedora 24 sur liveusb-creator

Aujourd'hui, ce mardi 19 avril, est une journée dédiée à un test sur une "nouveauté de Fedora 24, liveusb-creator. En effet, durant le cycle de développement, l'équipe d'assurance qualité dédie quelques journées autours de certains composants 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.

Capture_du_2016-04-18_23-41-52.png

Qu'est-ce que le liveusb-creator ?

Liveusb-creator permet de créer des images USB de Fedora pour l'essayer puis l'installer. Ce programme n'est pas nouveau, mais cette fois il sera largement mis en avant par le projet pour effectuer l'installation de Fedora. En effet, la procédure actuelle est centrée autour des images ISOs pour ensuite graver le résultat sur un CD ou DVD. La procédure est complexe, en plusieurs étapes et pénible car il requiert un DVD gravable sous la main.

Ici Liveusb-creator s'occupera de tout, télécharger l'image et l'installer sur la clé USB dans une interface simple. En plus, Liveusb-creator sera également disponible sous Windows et Mac OS X.

Typiquement les tests du jour couvrent :

  • La bonne exécution depuis une Fedora 24 ;
  • La bonne exécution depuis Windows ;

La version pour Mac OS X n'est aps encore prête pour le moment.

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.

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

Pages