Une nouvelle charte a été élaborée pour le Planet-Libre. Tous les membres sont invités à la consulter et à la respecter.

Nous Suivre

    feed feed feed

En Direct de la Galerie

En Direct du Forum

Les Membres

Participer

Filter les articles :     Articles du jour   -   Articles de la semaine   -   Articles du mois   -   Tous
Gravatar de DigitalSpirit
Extension Openplanet pour Dotclear 
  • 5 votes
    vote oui
Par DigitalSpirit, le 24/02/2010 à 13:05.

L'extension Openplanet pour Dotclear permet de créer un planet sur votre blog, un regroupement de blogs par le biais des fils de syndication (rss, atom...).

Logo rss

J'ai eu à l'installer pour le site http://planet.madeinfr.org/ mais quelques problèmes rencontrés m'ont obligé à le modifier quelque peu.

Je publie donc la version modifiée et le patch basé sur la version 1.2 bêta 2.

Voici la liste des corrections / ajouts :

  • On ne modifie pas le status d'un billet que l'on met à jour, ainsi, si il est marqué hors ligne, il le reste...
  • Pas d'insertion si le contenu est vide ou sans titre
  • Autorisation dans SimplePie (la librairie de gestion de flux de syndication) des balises Object, Param et Embed afin de permettre les vidéos au format Flash (Oui, c'est mal)
  • On ne modifie pas la categorie d'un billet dont on fait la mise à jour
  • Résolution de problemes avec les tags importés comportant des accents

Les sources sont en pièce jointe à ce billet.

Retourner au sommaire
Gravatar de DigitalSpirit
Astuce Nokia N900 : Ajouter des raccourcis au menu principal 
  • 3 votes
    vote oui
Par DigitalSpirit, le 22/02/2010 à 09:52.

Il est assez simple d'ajouter des éléments dans le menu principal et notamment des raccourcis vers des applications utiles, pour cela, il suffit d'éditer le fichier xml /etc/systemui/systemui.xml et d'y ajouter quelques lignes.

Par exemple, pour ajouter dans le menu, un raccourci vers htop et deux entrées permettant de rédémarrer la machine, il suffit d'ajouter dans le fichier xml le texte en vert suivant :

 [...]

<menuitem priority="20" name="Reboot">
<return>6</return>
<po>osso-powerup-shutdown</po>
</menuitem>
<menuitem priority="10" name="Soft poweroff">
<return>7</return>
<po>osso-powerup-shutdown</po>
</menuitem>
<menuitem priority="5" name="Htop in XTerm">
<callback service="com.nokia.xterm" path="/com/nokia/xterm" interface="com.nokia.xterm"
method="run_command" bus="session" autostart="true">
<argument type="string">/usr/bin/htop</argument>
</callback>
</menuitem>


</powerkeymenu>

Et voilà le résultat :

Ajouter des item au menu principel
Retourner au sommaire
Gravatar de DigitalSpirit
Surveiller ses serveurs avec Ruby et Jabber 
  • 6 votes
    vote oui
Par DigitalSpirit, le 17/02/2010 à 10:36.

Voici un tout petit programme de moins de 20 lignes permettant très simplement de surveiller un serveur grâce aux protocoles Jabber.

Il suffit de créer un compte Jabber spécifique pour le serveur à surveiller, et de l'ajouter dans votre liste de contacts, celui-ci apparaitra avec pour status la charge du système, pratique ! non ?

En prérequi, il vous faut juste le gem xmpp4r-simple, installez le comme ceci :

sudo gem install xmpp4r-simple

Le code est très facilement étendable selon vos besoins, je vous laisse faire...

require 'rubygems'
require 'xmpp4r-simple'
 
LOGIN='le_compte_du_serveur@im.apinc.org'
PASS='lepass'
DEST='votre_compte_perso@im.apinc.org'
 
begin
  $im = Jabber::Simple.new(LOGIN, PASS)
  $im.deliver(DEST, "Hello !")
  loop do
    $im.status(nil, `hostname`.strip + ' : ' + `cat /proc/loadavg`.split.first(3).join(' '))
    sleep 30
  end
rescue => e
  p e; sleep 10
  retry
end

Lancez maintenant le script :

ruby jabber.rb

Voilà un petit aperçu du résultat dans Pidgin :

Status Jabber Ruby

Retourner au sommaire
Gravatar de DigitalSpirit
Astuce Nokia N900 : Enlever les ombres des icones sur le bureau 
  • 5 votes
    vote oui
Par DigitalSpirit, le 15/02/2010 à 09:37.

Il est possible de retirer les ombres des icones du bureau simplement en supprimant les 2 fichiers suivants :

  • /usr/share/themes/NOM_DU_THEME/images/ApplicationShortcutAppletPressed.png
  • /usr/share/themes/NOM_DU_THEME/images/ApplicationShortcutApplet.png

Afin de pouvoir restaurer les ombres, je vous conseille de simplement modifier l'extension de ces fichiers en png.old, c'est assez simple, ouvrez un terminal et saisissez les commandes suivantes :

$ sudo gainroot
$ cd /usr/share/themes/NOM_DU_THEME/images/
$ mv ApplicationShortcutAppletPressed.png ApplicationShortcutAppletPressed.png.old
$ mv ApplicationShortcutApplet.png ApplicationShortcutApplet.png.old

Pour que le changement soit pris en compte, redémarrez la machine.

Voici le résultat, avant, après :

Bon, et pour ceux qui oseraient se demander comment on revient comme avant, on fait l'inverse : on renomme les .png.old en png.

Retourner au sommaire
Gravatar de DigitalSpirit
Un exemple d'utilisation de la bibliothèque Oled4d pour Arduino 
  • 2 votes
    vote oui
Par DigitalSpirit, le 12/01/2010 à 15:01.

Voici un exemple très simple expliquant l'utilisation de la bibliothèque libre Oled4D dont j'ai parlé dans un précédent billet.

Ce programme va afficher l'image ci-dessous :

Oled 4D démo pour Arduino

Le code source commenté est affiché en seconde partie de ce billet.

Plus d'informations :

Voici les étapes à suivre pour tester cette bibliothèque :

  1. Décompresser l'archive dans le dossier libraries
  2. Ouvrez l'environnement de développement Arduino
  3. Dans le menu Fichier > Exemples, il doit y avoir un menu Oled4D > Example > Demo, cliquez dessus pour l'ouvrir
  4. Compilez et chargez la cible

Voici une partie du code source (la déclaration de data_image à été tronquée volontairement), l'exemple va afficher un écran bleu, affiche un cercle jaune, 1 tux, réalise 4 copier / coller de l'image du tux, affiche du texte « Hello world ! » puis créé un polygone.

/*  Oled4d
    Programme d'exemple pour interface Arduino / Écran Oled de 4DSystems
 */
 
#define RED     RGB(255, 0, 0)
#define GREEN   RGB(0, 255, 0)
#define BLUE    RGB(0, 0, 255)
#define YELLOW  RGB(255, 255, 0)
#define WHITE   RGB(255, 255, 255)
#define BLACK   RGB(0, 0, 0)
 
#define SMALL   FONT_5X7
#define MEDIUM  FONT_8X8
#define BIG     FONT_8X12
 
#include <NewSoftSerial.h>
#include <HardwareSerial.h>
extern HardwareSerial Serial;
#include <Oled4d.h>
 
NewSoftSerial serial(2, 3);
 
// count : 1152
#define  DATA_IMG_WIDTH   24
#define  DATA_IMG_HEIGHT  24
char data_image[] = {
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
    0xc6, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbe, 0xbe, 
    [...]
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
};
 
void setup()
{  
    Serial.begin(9600);
 
    // Mode série
    pinMode(2, INPUT);
    pinMode(3, OUTPUT);
 
    // Configuration de l'interface série logicielle
    serial.begin(9600);
}
 
void loop()                     
{
    // Créer l'objet en interface série logiciel
    Oled4dSoft oled = Oled4dSoft(serial, 8);
 
    // Pour utiliser l'uart « hardware », procéder ainsi :
    //Oled4dHard oled = Oled4dHard(Serial, OLED_RESET_PIN);
 
    // Initialise l'écran
    oled.init();
 
    // Efface l'écran
    oled.clear();
 
    // Fond d'écran bleu
    oled.setBG(RGB(0, 0, 128));
 
    // Dessine un cercle
    oled.drawCircle(64, 64, 20, RGB(255, 255, 0));
 
    // Affiche l'image
    oled.displayImage(0, 0, DATA_IMG_WIDTH, DATA_IMG_HEIGHT, COLORMODE_65K, data_image);
 
    // Copier / coller de l'image 5 fois
    for (int i = 1; i < 5; i++) {
        oled.screenCopyPaste(0, 0, i * DATA_IMG_WIDTH, 0, DATA_IMG_WIDTH, DATA_IMG_HEIGHT);
    }
 
    // Affiche du texte
    oled.drawText(1, 3, SMALL, GREEN, "Hello world !");
 
    // Dessine un polygone
    char array[] = { 10, 32, 20, 64, 76, 120, 127, 64 };
    oled.drawPolygon(sizeof(array) / 2, array, RGB(255, 128, 0));
 
    while (1);
}

Voilà, je pense que le code est assez explicite, en cas de souci, n'oubliez pas le forum d'aide.

Retourner au sommaire
Gravatar de DigitalSpirit
Librairie Arduino pour afficheur Oled : Oled4d 
  • 5 votes
    vote oui
Par DigitalSpirit, le 21/12/2009 à 11:09.

Voici une librairie libre de gestion d'afficheur OLED de la société 4D Systems pour Arduino.

Comme leur nom l'indique très bien, ils utilisent la technologie OLED avec tous les avantages de cette technologie : pas besoin d'un rétroéclairage, ils ont un angle de vue de 180°, bonne consommation, très bon contraste, vous pouvez les trouver entre autres chez Lextronic ou encore chez Sparkfun.

Le jeux d'instructions n'est pas toujours très logique mais est assez complet, le principal défaut de ces afficheurs sont leur prix, à 65€ l'unité, j'imagine mal comment espérer faire de la petite série à un tel prix...

Ces afficheurs sont pilotables directement par le biais d'une connection série dans lequel on envoie directement des commandes assez hauts niveaux :

  • Set Background Color
  • Put Pixel
  • Erase Screen
  • Draw Rectangle
  • Place String of ASCII Text
  • ...

Ils disposent également d'un port microsd permettant ainsi de charger des images ou encore des bouts de programmes, attention, cependant car n'espérez pas mettre des images jpg dans la microsd ou autre et les afficher comme ça, d'un coup, ça ne fonctionnera pas, tout d'abord, car le chip de 4D ne gère pas les images compressées mais uniquement des champs de bits et surtout car il n'y a aucune gestion de FAT gérée par le controleur, ainsi, il est possible d'accéder au contenu de la microsd depuis votre programme mais en brut : à vous de gérer la couche du système de fichiers...

Tester la libraire

Voici la marche à suivre pour tester cette librairie avec Arduino (la librairie peut parfaitement fonctionner hors du projet Arduino...) :

  1. Créer un dossier Oled4d dans le dossier Libraries de votre installation Arduino et copiez dedans le fichier Oled4d.h.
  2. Créez un nouveau projet Arduino et copiez le contenu du fichier oled4d.pde dedans.
  3. Compilez le source, envoyez dans la cible et voilà, vous devriez avoir quelque chose de ce genre s'afficher :

Oui, il s'agit bien de Tux ! ;)

Comment ça fonctionne ?

Voici un petit bout de code :

// Créer l'objet en interface série logiciel
Oled4dSoft oled = Oled4dSoft(serial, 8);

// Pour utiliser l'uart « hardware », procéder ainsi :
//Oled4dHard oled = Oled4dHard(Serial, OLED_RESET_PIN);

// Initialise l'écran
oled.init();

// Efface l'écran
oled.clear();

// Dessine un cercle
oled.drawCircle(64, 64, 20, RGB(255, 255, 0));

// Affiche du texte
oled.drawText(1, 3, SMALL, GREEN, "Hello world !");

Voilà, je pense que l'exemple est assez explicite et logique...

Vour remarquerez qu'il est possible de passer par l'uart intégré à l'Atmel ou de passer par l'uart logiciel avec la libraire NewSoftSerial (cette librairie dispose de fonctions avancées et est bien supérieure à la librairie d'uart fourni par défaut dans le projet Arduino).

Démo

Voici une petite démo affichant en vrac des lignes, des triangles, des cercles, des polygones, des rectangles...
La vidéo reflète assez mal les couleurs de l'écran qui sont bien vives en réel.

Écran Oled de 4D System piloté par Arduino

Futures évolutions

Actuellement, cette librairie supporte uniquement les instructions standards (General Command Set), les autres (Extended Command Set), qui permettent entre autre un accès au contenu de la microsd, ne sont pas encore gérées mais le plus gros du travail est fait...

Téléchargement

Cette librairie est mise à disposition sous license GPL.
Vous pouvez télécharger la toute dernière version de cette librairie depuis mon compte GitHub à l'adresse suivante : http://github.com/hugokernel/Oled4D

Je mettrai à jour également la page sur le wiki : http://www.digitalspirit.org/wiki/projets/oled4d.

Retourner au sommaire
Gravatar de DigitalSpirit
Planet Madeinfr : Regroupement d'articles francophones sur le « fait soit même » 
  • 4 votes
    vote oui
Par DigitalSpirit, le 04/12/2009 à 15:17.

Ouverture ce jour d'un planet (un regroupement d'article issus de différents blogs au sein d'un même blog), consacré au « fait soit même » (autrement appelé « Do It Yourself » outre atlantique) avec une forte attirance pour l'électronique, sa petite particularité est que tous les articles diffusés sont en français.

La publication sur le planet est ouverte à tout le monde, il suffit de posséder un blog et des articles en français sur le sujet, et de nous le signaler par le biais du formulaire approprié.

L'adresse de ce planet est : http://planet.madeinfr.org/

Il est aussi possible de suivre les articles et l'actualité de Made in Fr sur Twitter et Identi.ca :

 

Retourner au sommaire
Gravatar de DigitalSpirit
Hyla_Tpl : Un nouveau moteur de template / gabarit / modèle léger et rapide 
  • 8 votes
    vote oui
Par DigitalSpirit, le 28/10/2009 à 09:36.

Pour les besoins de la nouvelle version du gestionnaire de fichiers en ligne Hyla (http://www.hyla-project.org/) qui utilisait jusqu'à lors le moteur de gabarits de la PhpLib, un nouveau moteur bien plus performant à été réécrit respectant la logique des templates de ce dernier.

Il améliore les performances en terme de vitesse d'un facteur 10 et ajoute un certain nombre de fonctionnalités très pratiques :

  1. Tableaux et objets dans les variables : {$user.name}
  2. Les fonctions appliquées aux variables : {$user.name|upper}
  3. Les fonctions simples : {!include:test.tpl}
  4. La traduction : {_Hello World !}
  5. Les commentaires : {# Petit commentaire}
  6. Les blocs ELSE associés aux habituels BEGIN / END

Ce moteur est disponible en mode autonome (standalone) totalement indépendant de Hyla.

Les habitués des templates de la Phplib y trouveront leurs comptes rapidement, les autres seront séduits par la facilité et la légereté de cette librairie.

Je vous invite à consulter le site pour plus de détails et des exemples d'utilisation sur le blog de développement de Hyla.

Retourner au sommaire
Gravatar de DigitalSpirit
Éviter l'extinction / le redémarrage accidentel d'un serveur : molly-guard 
  • 9 votes
    vote oui
Par DigitalSpirit, le 11/10/2009 à 20:12.

J'ai découvert par l'intermédiaire de Clochix un petit programme très pratique, voir indispensable, à installer, notamment, sur les serveurs auxquels vous avez l'habitude de gérer à distance par ssh.

Ce paquet permet, en s'intercalant entre vous et les commandes halt, shutdown ou reboot, de vous protéger d'un rédémarrage ou un arrêt intempestif, voir dramatique (oui,  dramatique), de votre serveur en vous demandant de saisir le nom du serveur (hostname) à qui s'adresse ladîte commande...

Une petite mise en situation :

root@prod:$ shutdown
W: molly-guard: SSH session detected!
Please type in hostname of the machine to shutdown: dev
Good thing I asked; I won't shutdown prod ...

Voilà une belle sueur froide d'évitée...

Le paquet se nomme molly-guard et est disponible sur toutes les bonnes distributions GNU/Linux...

Retourner au sommaire
Gravatar de DigitalSpirit
Age++; 
  • 0 vote
    vote oui
Par DigitalSpirit, le 24/02/2009 à 22:56.

Ma nouvelle configuration, reçue ce jour de la part d'Arianne :

Building configuration...
Current configuration : 1 byte (mais ça suffit déjà)
!
! Last configuration change at 00:00:00 UTC Sun Feb 24 2008 by Hugo
! NVRAM config last updated at 00:00:00 UTC Sun Feb 24 2008 by Hugo
!
version 28
!
hostname Charles Rincheval
!
username Hugo privilege 15 password 7 0963661A090356
!
!
interface Year/0
description Age du capitaine
encapsulation 28 year old
ip address 28.0.0.0 255.0.0.0
!
interface Moto0/0.340
description DORSODURO
ip address 75.0.0.0
speed auto
media-type dorsoduro
ip marque aprilia
no negotiation auto (boite manuelle)
!
interface RechercheMaison0/0.300
description En train de chercher maison
encapsulation maison + jardin + garage
ip address gare.proximité.pas.loin
standby preempt delay on-attend-l'agence
standby 7 preempt delay minimum avant-la-fin-de-lannée-ça-sera-pas-mal!
!
interface Amour0/0.380
description Aurélie
ip address bientôt25ans.chatain.motarde.aimelesminous
speed 650 sv
media-type bisou
ip marque xXxXxXxXx
negotiation auto (c'est elle qui décide :p)
!
!
ip default-gateway aurelie.xXxXxXxXx
ip route taf.maison.potes.raclette moto.dorsoduro
!
!
snmp-server community tagada RO
snmp-server location veneux
snmp-server contact hugo@digitalspirit.org
snmp-server host minou.minette.chaton.miaou tagada
!
!
control-plane (mais en hélico)
!
!
!
banner motd ^CCC
HUGO
RESTRITED AREA
Authorized personnel only
attention j'aime les moto, les geekeries, les minous et les raclettes
attention pas de bullshit ou de pastis (sinon il finit sur les portières)
^C
!
!
end

Arianne, merci, je me marre encore !!

Retourner au sommaire