[Android] Alterner les couleurs dans une liste

Les listview sur Android sont par défaut assez tristes. Voici un exemple vous permettant d'alterner les couleurs dans votre vue, en utilisant un adapter. Dans l'exemple j'utilise un SimpleAdapter mais vous pouvez évidement reproduire l'effet sur les BaseAdapter, ArrayAdapter et les autres wink

Voici le résultat
http://www.maraumax.fr/medias/Billets/listview-couleur-alterne.jpg

La mise en place est assez simple, vous pouvez télécharger les sources à la fin du billet si jamais vous voulez plus de détail.

Créer une nouvelle classe ListViewAdapter avec le code suivant :

import java.util.HashMap;
import java.util.List;
 
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SimpleAdapter;
 
public class ListViewAdapter extends SimpleAdapter {
	private int color1 = 0xaaFF5F5F;
	private int color2 = 0xaa2F67FF;
 
	public ListViewAdapter(Context context, List<HashMap<String, String>> items, int resource, String[] from, int[] to) {
		super(context, items, resource, from, to);
	}
 
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
	  View view = super.getView(position, convertView, parent);
 
	  if(position % 2 == 0)
		  view.setBackgroundColor(color1);
	  else
		  view.setBackgroundColor(color2);
 
	  return view;
	}
}

Pour l'exemple j'ai mis les couleurs dans le code java, l'idéal étant de les mettrent dans un fichier colors.xml du dossier values pour par exemple changer la couleur en fonction d'un thème.

Il vous suffit ensuite de lier cette adapter à votre ListView en ajout la ligne suivante dans votre Activity :

// A ajouter dans l'Activity
list.setAdapter(new ListViewAdapter(this, listContent, R.layout.item, from, to));

Vous pouvez télécharger l'exemple complet à cette adresse et n'hésitez pas en cas de questions !

Ajouter PureFTP dans fail2ban

http://www.maraumax.fr/medias/Billets/fail2ban.pngFail2ban est un excellent framework permettant d'éviter ou du moins limiter les intrusions sur votre serveur. Voici la procédure pour ajouter le serveur ftp PureFTP dans les règles fail2ban. En ajoutant cette règle votre adresse ip peut se retrouver filtré à partir de trois echecs de connexion pendant 10 minutes (par défaut), faites donc attention à vos test !

Ajoutez au fichier /etc/fail2ban/jail.conf dans la section FTP servers de préférence le contenu suivant :

[pure-ftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = pure-ftpd
logpath = /var/log/messages
maxretry = 3

Cette section vas permettre à fail2ban de filtrer (interdire) les ports 21, 20, 990 et 989 en cas de détection d'echec de login dans le fichier /var/log/messages (logs par défaut de PureFtpd)

Le fichier /etc/fail2ban/filter.d/pure-ftpd.conf est normalement crée par défaut sur votre machine, vérifiez son contenu. Il doit ressembler à celà :

# Fail2Ban configuration file
#
# Author: Cyril Jaquier
# Modified: Yaroslav Halchenko for pure-ftpd
#
# $Revision: 3$
#
 
[Definition]
 
# Error message specified in multiple languages
__errmsg = (?:Authentication failed for user|Erreur d'authentification pour l'utilisateur)
 
#
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
#         host must be matched by a group named "host". The tag "<HOST>" can
#         be used for standard IP/hostname matching and is only an alias for
#         (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values: TEXT
#
failregex = pure-ftpd(?:\[\d+\])?: \(.+?@<HOST>\) \[WARNING\] %(__errmsg)s \[.+\]\s*$
 
# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Il s'agit de regex permettant de récupérer l'adresse IP d'un echec de connexion à votre serveur ftp.

Pour tester si votre regex est correcte, vous pouvez exécuter la commande suivante après avoir de préférence effectué une mauvaise connexion à votre serveur ftp.

# Test de la regex
fail2ban-regex /var/log/messages /etc/fail2ban/filter.d/pure-ftpd.conf

Vous devriez retrouver votre adresse IP dans "Addresses found".

Il faut ensuite re-démarrer le service fail2ban :

# On rédémarre
/etc/init.d/fail2ban restart

Pour vérifier si le filtre à bien été pris en compte, vous pouvez utiliser la commande suivante :

# Test
cat /var/log/fail2ban.log |grep pure-ftpd

Et vous devriez avoir le résultat suivant :

2012-03-27 10:23:10,041 fail2ban.jail   : INFO   Creating new jail 'pure-ftpd'
2012-03-27 10:23:10,041 fail2ban.jail   : INFO   Jail 'pure-ftpd' uses poller
2012-03-27 10:23:10,051 fail2ban.jail   : INFO   Jail 'pure-ftpd' started

Et voilà votre serveur ftp est maintenant géré par fail2ban !

Tutoriel pour créer un widget Android

http://www.maraumax.fr/medias/Billets/android-widget-preview.jpgJ'ai récement mis en place un widget dans l'application Bonjour Android et j'ai été étonné de voir qu'il y avait peu de tutoriel complet pour créer cette fonctionnalité.

J'ai donc décidé de partager mon expérience afin de vous permettre de créer un widget de A à Z. Je n'explique les étapes de base du développement Android donc je vous conseille très forcement d'avoir installé tout le tralala (Eclipse, Avd...) et de connaitre le langage Java.

Plusieurs notions d'Android sont utilisés, libre à vous de consulter la documentation officielle qui est vraiment très bien détaillé pour avoir plus de détails. Vous avez peut-être remarqué que le widget n'est pas des plus jolis, je n'ai pas travaillé ce point mais si vous souhaitez me partager vos xml je modifirais le tutoriel avec plaisirs.

Il n'y a pas de système de commentaires à la suite de tutoriel, mais n'hésitez pas à poster sur ce billet en cas de question, remarque et pourquoi pas pour présenter votre application !

Voilà j'espère avoir tout dit, manque juste le lien pour consulter et en bas de page télécharger les sources...

Créer un widget sur Android

Débuguer vos animations Flash avec Firebug

http://www.maraumax.fr/medias/Billets/logo-firebug.jpgSi vous développez des animations flash il peut arriver que vous souhaitiez avoir la possibilité de récupérer quelques informations de débug. En utilisant firefox et son excellente extension Firebug vous pouvez envoyer depuis flash les informations que vous souhaitez dans votre console !

Petit rappel ou nouveauté si vous ne connaissez pas encore firebug, vous pouvez utiliser les fonctions suivantes (en javascript, ou avec Firephp) :

// Simple log
console.log("Mon message");
// Un message de debug
console.debug("Mon message");
// Une information
console.info("Mon message");
// Un warning
console.warn("Mon message");
// Une erreur
console.error("Mon message");

Vous pouvez appeler ces fonctions en utilisant la classe ExternalInterface de flash. Voici une simple fonction permettant de débuger vos animations flash :

function log(str, type)
{
	if(type == undefined)
		type = "info";
 
	trace(str);
 
	var myDate:Date = new Date();
 
	// Le principal
	ExternalInterface.call("console."+type, myDate.toString()+" - "+str);
}

N'oubliez pas d'importer la classe ExternalInterface :

// A ajouter en haut de votre code
import flash.external.ExternalInterface;

Et pour l'utiliser rien de plus simple :

// Un simple message
log("Hello world !");
 
// Un warning
log("Erreur critique !", "warn");

Et voici le rendu :
http://www.maraumax.fr/medias/Billets/console-firebug-flash.jpg

N'hésitez pas si vous avez des remarques particulières et bon développement !

Gestion des smiley dans votre application Android

http://www.maraumax.fr/medias/Billets/android_150.pngPour mon application Bonjour Android j'ai mis en place une nouvelle fonctionnalité permettant de commenter les images. Après avoir mis en place la liste des commentaires, je me suis dit qu'il manquait quelque chose : la gestion des smileys (ou smilies si vous préférez !)

Il n'existe pas nativement de classe permettant de gérer les smilies sur Android mais on peut en trouver en utilisant votre moteur de recherche préféré !

Application Bonjour Android !

http://www.maraumax.fr/medias/Billets/web-256.png
Ca fait maintenant plusieurs mois que j'ai publié ma première application Bonjour Android sur l'android market. L'application est passé la semaine dernière en version 2 apportant de nombreuses optimisation et nouveautés.

Mais elle sert à quoi ?
Bonjour Android est une application gratuite vous permettant de consulter depuis votre mobile et une connexion internet les site "Bonjours" initiés par Bonjour Madame. Au programme c'est une trentaine de site mise à jour quotidiennement proposant des images dans de nombreux domaines : Bonjour le Chat, Hamster, Panda, les Geeks... mais aussi des sites "adultes" comme Bonjour Wtf, Bonjour la mifl et j'en passe soit actuellement près de 20 000 images !

Elle fait quoi d'autre ?
L'application offre quelques fonctionnalités comme l'ajout des images dans vos favoris, un système de votes et bientot de commentaires ! Sans inscriptions vous pouvez sélectionner les sites a afficher (ou non) dans les listings.

Voici deux captures d'écran :
http://www.bonjour-android.net/images/screen-2-min.jpg http://www.bonjour-android.net/images/screen-4-min.jpg

Vous pouvez consulter la liste de tous les sites disponible, télécharger l'apk supplémentaire pour consulter les sites adultes et avoir quelques captures en plus sur le site de Bonjour Android.

Pour téléchargez l'application, rendez-vous sur le site de Bonjour Android : http://www.bonjour-android.net

Quelques astuces pour jQuery...

http://www.maraumax.fr/medias/Billets/jquery.png jQuery est une superbe bibliothèque Javascript permettant de simplifier la manipulation des vos éléments html, css et bien plus encore.

Voici quelque-une de ses fonctionnalités :
- Parcours et modification du DOM (éléments html)
- Evènements (Clics, Clavier)
- Effets et animations sympathiques
- Ajax très simplifié (Notamment avec json)
- Un nombre incroyable de plugins...

Si vous hésitez encore à l'utiliser je vous invite vraiment à franchir le pas ! De plus de nombreux exemple sont fournis dans la documentation officiel, et traduit en français à cette adresse.

Je ne suis pas la pour vous décrire toute la bibliothèque mais pour vous filer quelques exemples de codes simple et pratique à utiliser au quotidien, passons aux choses sérieuses !

Ignorer certains fichiers avec Filezilla (svn, thumbs.db...)

Le client FTP FileZilla ne cèsse de s'améliorer au fil du temps. Il est possible depuis la version 3 de gérer des filtres permettant d'éviter de transférer (et d'affichier) un fichier ou un dossier.

Ces filtres sont très pratiques si vous souhaitez éviter de transférer par exemple les fichier .svn d'un de vos dépots ou encore les fameux fichiers thumbs.db de Windows.

La procédure pour les activer est très simple :
http://www.maraumax.fr/medias/Billets/tutoriels/filezilla-filtres-de-contenu.jpg

Ensuitre la fenêtre suivante s'ouvre. Il vous suffit de cocher comme moi les deux premières options :
http://www.maraumax.fr/medias/Billets/tutoriels/filezilla-svn-thumbs.jpg

La première permet de filtrer les dossiers des dépots SVN et la seconde le fichiers thumbs.db de windows ! Pensez bien à cocher des deux cotés (Local et Distant)

Envoyer des sms gratuitement depuis votre ordinateur !

http://www.easy-thumb.net/min.html?url=http://www.sms-pas-cher.com/&amp;size=240x180Sms Pas Cher vous permet d'envoyer des sms depuis votre navigateur ou directement depuis votre ordinateur grâce à un logiciel simple d'utilisation.

Comment ça marche ?
Chaque jour, lors de votre connexion au site vous gagnez un crédit sur votre compte. Vous pouvez très bien envoyer directement un texto ou revenir le lendemain pour accumuler les crédits.

Ces crédits vous permettent donc d'envoyer des sms soit depuis le site internet ou depuis le logiciel (sans installation) disponible gratuitement sur le site. Vous pouvez aussi utiliser l'api pour envoyer des sms depuis vos sites internet.

Les fonctionnalités
Le site propose de nombreuses fonctionnalités parmi les suivantes :
- Gestion des contacts et des groupes
- Historique des sms avec statuts
- Possibilité de modifier l'expéditeur des messages
- Envoie des sms dans le monde
- Listing des messages reçus
- Gagner des crédits grâce au programme d'affiliation ou grâce à des campagnes

Vous pouvez très bien utiliser le site sans débourser un centime, si vous souhaitez envoyer plus de textos, il est aussi possible d'en acheter à des prix à partir 0.08€ le sms !

Lien : Sms Pas Cher

Savoir quel programme à ouvert quel port

Voici une astuce bien pratique permettant de retrouver un programme qui peux par exemple vous déranger et donc vous permettre de le killer.

Dans mon cas j'ai souhaité savoir quel programme écoutait sur le port 80 (http) de mon ordinateur.

Sous Windows

Pour ouvrir l'invite de commande cliquez sur démarer puis exécuter (ou directement dans le champ texte) puis entrez "cmd" dans la fenêtre qui s'est ouverte.
http://www.maraumax.fr/medias/Billets/tutoriels/invite-cmd.png
Vous validez, la fenêtre se ferme et une autre s'ouvre à vous !
http://www.maraumax.fr/medias/Billets/tutoriels/invite-commande.png
Dans cette console, vous devez écrire les deux commandes suivantes permettant de récupérer la liste des connexions actives et ensuite de filtrer avec le port que vous recherchez.

# Remplacez ":80" par le port que vous souhaitez rechercher
netstat -ano | find ":80"

Vous pouvez ensuite apercevoir le résultat de votre commande.
http://www.maraumax.fr/medias/Billets/tutoriels/invite-netstat.png
Une petite explication des colonnes :
1 - Le type de connexions (TCP ou UDP)
2 - Adresse / Port locale de connexion
3 - Adresse / Port distante
4 - L'état de la connexion
5 - Le numéro du processus correspondant

Pour savoir si un port est à l'écoute il suffit de regarder dans la quatrième colonne si l'état est "LISTENING". Par exemple dans la capture d'écran les ports 80 et 8002 sont à l'écoute.

Il suffit ensuite de récupérer le numéro du processus et de regarder dans le "tasklist".

# N'oubliez pas de remplacer le numéro de votre processus
tasklist | find "3952"

http://www.maraumax.fr/medias/Billets/tutoriels/invite-tasklist.png
Vous pouvez désormais récupérer le nom du processus ("httpd.exe" correspondant à apache dans l'exemple) dans la première colonne du résultat.

Sous Linux

Sous linux c'est toujours avec la commande netstat seulement c'est beaucoup plus simple car le résultat de cette commande est plus complet.

Pour récupérer la liste des ports et programmes qui écoute il vous suffit simplement d'utiliser cette commande :

# Remplacez :www par votre protocole ou le port souhaité
netstat -lpt | grep LISTEN | grep :www

http://www.maraumax.fr/medias/Billets/tutoriels/netstat-unix.png
Et dans la dernière colonne on remarque que c'est apache2 qui écoute sur le port 80.

En espérant vous avoir été utile !

Find Me If U Can - Retrouver votre mobile perdu !