Publié dans Linux, 2 commentaires
Suite à une installation fraiche de Ubuntu Karmic, j’en profite pour vous faire partager mon script pour Conky.
Premièrement vous devez installer Conky :
sudo apt-get install conky
Ensuite pour avoir mon conky, téléchargez le pack de fichiers que je vous ai préparé : conky-pokemonjojo.tar.gz
Décompressez conky-pokemonjojo.tar.gz dans votre /home.
Pour que conky se lance automatiquement au démarrage, allez dans « Système > Préférences > Applications au démarrage » cliquez sur « Ajouter », puis indiquez les informations suivantes :
Nom : Conky
Commande : sh -c "sleep 10 && conky"
La commande sh -c « sleep 10 && conky » permet de lancer conky 10s après le démarrage pour éviter des conflits avec compiz ou metacity (chez moi il disparaissait après le lancement).
Si vous souhaitez configurez plus amplement votre conky, je vous recommande les liens suivants :
Publié dans Linux, ajouter un commentaire
Voici 4 nouveaux thèmes GDM basés sur les œuvres « Somatic Rebirth » de David Lanham.
Utilisables pour toutes les résolutions de 640×480 à 1600×1200. Ils peuvent aussi être utilisés pour les écrans « Wide ».
The Somatic Rebirth images have been used with permission from David Lanham – http://www.dlanham.com
License: Free for Personal Use
Only for personal, desktop use. All copyrights remain the property of their respective holders.
NB : Les thèmes GDM sont tous les mêmes, seul l’arrière plan change.
Publié dans PHP, 6 commentaires
Voici une fonction pour enlever tous les caractères spéciaux et accents d’une chaîne de caractères en respectant l’encodage. (fonctionne pour l’UTF8). Les caractères sont remplacés par leur plus proche correspondance ASCII (sans accent)
/** * Remplace les caractères spéciaux par leur plus proche * correspondance ASCII (sans accent) * * @info http://www.mibhouse.org/pokemon_jojo * * @param string $str * @param string $encoding * * @return string $str */ function strtoascii($str, $encoding = 'utf-8') { mb_regex_encoding($encoding); // jeu de caractères courant pour les expressions rationnelles. // Tableau des corespondance $str_ascii = array( 'A' => 'ÀÁÂÃÄÅĀĂǍẠẢẤẦẨẪẬẮẰẲẴẶǺĄ', 'a' => 'àáâãäåāăǎạảấầẩẫậắằẳẵặǻą', 'C' => 'ÇĆĈĊČ', 'c' => 'çćĉċč', 'D' => 'ÐĎĐ', 'd' => 'ďđ', 'E' => 'ÈÉÊËĒĔĖĘĚẸẺẼẾỀỂỄỆ', 'e' => 'èéêëēĕėęěẹẻẽếềểễệ', 'G' => 'ĜĞĠĢ', 'g' => 'ĝğġģ', 'H' => 'ĤĦ', 'h' => 'ĥħ', 'I' => 'ÌÍÎÏĨĪĬĮİǏỈỊ', 'J' => 'Ĵ', 'j' => 'ĵ', 'K' => 'Ķ', 'k' => 'ķ', 'L' => 'ĹĻĽĿŁ', 'l' => 'ĺļľŀł', 'N' => 'ÑŃŅŇ', 'n' => 'ñńņňʼn', 'O' => 'ÒÓÔÕÖØŌŎŐƠǑǾỌỎỐỒỔỖỘỚỜỞỠỢ', 'o' => 'òóôõöøōŏőơǒǿọỏốồổỗộớờởỡợð', 'R' => 'ŔŖŘ', 'r' => 'ŕŗř', 'S' => 'ŚŜŞŠ', 's' => 'śŝşš', 'T' => 'ŢŤŦ', 't' => 'ţťŧ', 'U' => 'ÙÚÛÜŨŪŬŮŰŲƯǓǕǗǙǛỤỦỨỪỬỮỰ', 'u' => 'ùúûüũūŭůűųưǔǖǘǚǜụủứừửữự', 'W' => 'ŴẀẂẄ', 'w' => 'ŵẁẃẅ', 'Y' => 'ÝŶŸỲỸỶỴ', 'y' => 'ýÿŷỹỵỷỳ', 'Z' => 'ŹŻŽ', 'z' => 'źżž', // Ligatures 'AE' => 'Æ', 'ae' => 'æ', 'OE' => 'Œ', 'oe' => 'œ' ); // Convertion foreach ($str_ascii as $k => $v) { $str = mb_ereg_replace('['.$v.']', $k, $str); } return $str; }
J’ai essayé de regrouper tous les caractères spéciaux que je connaissais. Si il en manque, n’hésitez pas à me le signaler.
Publié dans PHP, 3 commentaires
Ayant besoin de définir des accès spécifiques à un back office en fonction du navigateur client utilisé (ex. pour ne pas autoriser IE). Ne voulant pas utiliser get_browser() (qui nécessite browscap.ini). J’ai créé une fonction PHP qui vous permet de détecter le navigateur utilisé, la version et le système d’exploitation d’un internaute en utilisant la variable $_SERVER['HTTP_USER_AGENT'].
/** * Permet de détecté le navigateur client utilisé * * @info http://www.mibhouse.org/pokemon_jojo/ * * @param string $return Valeur de retour demandée * * @return string|array */ function get_browser_agent($return = false) { global $browser_agent; if($return) $return = strtolower($return); // Navigateurs connu if($return && $return == 'browsers') { return array( 'firefox' => 'browser', 'shiretoko' => 'browser', // nom de code de firefox 3.5 dev 'msie' => 'browser', 'opera' => 'browser', 'chrome' => 'browser', 'safari' => 'browser', 'mozilla' => 'browser', 'seamonkey' => 'browser', 'konqueror' => 'browser', 'netscape' => 'browser', 'gecko' => 'browser', 'navigator' => 'browser', 'mosaic' => 'browser', 'lynx' => 'browser', 'amaya' => 'browser', 'omniweb' => 'browser', 'avant' => 'browser', 'camino' => 'browser', 'flock' => 'browser', 'aol' => 'browser', 'googlebot' => 'spider', 'msnbot' => 'spider', 'yahoo' => 'spider', 'ask' => 'spider', 'itunes' => 'other', ); } // Plateforme connue else if($return && $return == 'platforms') { return array( 'android' => array('android'), 'freebsd' => array('freebsd'), 'linux' => array('linux'), 'iphone' => array('iphone'), 'zune' => array('zune'), 'mac' => array('macintosh', 'mac platform x', 'mac os x'), 'win' => array('windows', 'win32'), ); } if(!isset($browser_agent)) { $browser_agent = array( 'name' => false, 'version' => 0, 'platform' => false, 'userAgent' => $_SERVER['HTTP_USER_AGENT'] ); // Navigateur + Version foreach(get_browser_agent('browsers') as $browser => $type) { if (preg_match("#($browser)[/ ]?([0-9.]*)#", strtolower($browser_agent['userAgent']), $match)) { $browser_agent['name'] = $match[1]; // Hack safari if($browser_agent['name'] == 'safari' && preg_match("#version[/ ]?([0-9.]*)#", strtolower($browser_agent['userAgent']), $match)) { $browser_agent['version'] = $match[1]; } else $browser_agent['version'] = $match[2]; if($type == 'spider') $browser_agent['platform'] = $type; break; } } // OS if(!$browser_agent['platform']) { foreach(get_browser_agent('platforms') as $platform => $values) { if(!$browser_agent['platform']) { foreach($values as $value) { if (strpos(strtolower($browser_agent['userAgent']), $value)) { $browser_agent['platform'] = $platform; break; } } } else break; } } } if($return && isset($browser_agent[$return])) return $browser_agent[$return]; else if(!$return) return $browser_agent; else return false; }
<?php $browser = get_browser_agent(); print_r($browser); ?>
L’exemple ci-dessus va afficher quelque chose de similaire à :
Array
(
[name] => opera
[version] => 9.64
[platform] => linux
[userAgent] => Opera/9.64 (X11; Linux i686; U; fr) Presto/2.1.1
)<?php $browser_name = get_browser_agent('name'); print_r($browser_name); ?>
L’exemple ci-dessus va afficher quelque chose de similaire à :
opera
Il peut être utile de connaitre le navigateur utilisé et sa version pour par exemple autorisé l’accès à une application web uniquement aux navigateurs compatibles.
<?php // Detection du navigateur $browser = get_browser_agent(); // Navigateurs autorisés (avec la version minimum requise) $browser_allowed = array( 'shiretoko' => '3.5', 'firefox' => '3.0', 'opera' => '9.0', ); // Le navigateur est t'il autorisé? if(array_key_exists($browser['name'], $browser_allowed) && version_compare($browser['version'], $browser_allowed[$browser['name']], '>=')) $autorized = true; else $autorized = false; print_r($browser); if($autorized) echo 'Votre navigateur est compatible. Vous êtes autorisé à accéder à l\'application.'; else echo 'Votre navigateur n\'est pas compatible. Vous n\'êtes pas autorisé à accéder à l\'application.'; ?>
L’exemple ci-dessus va afficher quelque chose de similaire à :
Array
(
[name] => opera
[version] => 9.64
[platform] => linux
[userAgent] => Opera/9.64 (X11; Linux i686; U; fr) Presto/2.1.1
)
Votre navigateur est compatible. Vous êtes autorisé à accéder à l'application.Vous êtes bien entendu autorisé à utiliser cette fonction dans vos propres scripts. Si tel est le cas, n’hésitez pas à me laisser un petit message, ça fait toujours plaisir
. Évidemment vos commentaires, suggestions et améliorations sont toujours les bienvenues.
Publié dans Linux, 267 commentaires
Une fois n’est pas coutume, j’ai décidé de changer d’ordinateur portable pour un sympathique ASUS M70VN (7T073C). J’avais bien entendu effectué quelques recherche avant pour vérifier sa compatibilité avec Ubuntu, mais sans vraiment grand succès. Je me lance donc pour vous dans une séries de tests pour en savoir un peu plus sur la bête.
Je vais essayer de vous faire un compte rendu comme sur le LaptopTesting de Ubuntu. Je vais commencer par les tests principaux. Des tests plus détaillés seront rajoutés par la suite. (je ferais une mise à jour de cette page de test à chaque fois)
NB: N’hésitez pas à me demander des tests précis si besoin est.
00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 07) 00:01.0 PCI bridge: Intel Corporation Mobile 4 Series Chipset PCI Express Graphics Port (rev 07) 00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03) 00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03) 00:1a.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03) 00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03) 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03) 00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 03) 00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 (rev 03) 00:1c.2 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 3 (rev 03) 00:1c.5 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 6 (rev 03) 00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03) 00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03) 00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03) 00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93) 00:1f.0 ISA bridge: Intel Corporation ICH9M LPC Interface Controller (rev 03) 00:1f.2 SATA controller: Intel Corporation ICH9M/M-E SATA AHCI Controller (rev 03) 01:00.0 VGA compatible controller: nVidia Corporation Device 064c (rev a1) 03:00.0 Network controller: Atheros Communications Inc. AR928X Wireless Network Adapter (PCI-Express) (rev 01) 06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02) 07:01.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 05) 07:01.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 22) 07:01.2 System peripheral: Ricoh Co Ltd R5C843 MMC Host Controller (rev 12) 07:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 12) 07:01.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev ff)
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 003: ID 08ff:1600 AuthenTec, Inc. AES1600 Bus 004 Device 002: ID 0b05:1751 ASUSTek Computer, Inc. Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 003: ID 04f2:b033 Chicony Electronics Co., Ltd Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
| Ok ? | Remarques | |
| Informations techniques | ||
| Live CD | oui | Ubuntu 8.10 « out of the box » avec aucun problème | Installation | oui | Ubuntu 8.10 « out of the box » avec aucun problème |
| Ecran | ||
| Ecran | oui | |
| Résolution correcte | oui | |
| Accélération 3D | oui | Attention n’installez pas les drivers v177.82 recommandé par les gestionnaire de pilote propriétaire. Vous devez installer les drivers nvidia-glx-180 disponible dans le dépôt « restricted » |
| Moniteur externe | pas testé | |
| Gestionnaire d’énergie | ||
| Batterie détectée | oui | |
| Hibernation | oui | |
| Mise en veille | oui | Plantage de Rhythmbox qui n’arrive plus à jouer une musique, mais le redémarrage de celui-ci (Rhythmbox) résolve le problème |
| Diminution du contraste sur la batterie | oui | |
| Mise en veille de l’écran lors d’inactivité | oui | |
| Détection du rabat de l’écran | oui | |
| Son | ||
| Le son marche | oui | |
| Prise Jack Casque | pas testé | |
| Prise Jack Micro | pas testé | |
| Micro interne | oui | Attention, il faut parler assez près du micro (situé à coté de la webcam) |
| Connectivité | ||
| Réseau Filaire (RJ45) | pas testé | |
| Réseau WIFI | oui | |
| Modem | pas testé | |
| FireWire | pas testé | |
| Bluetooth | pas testé | |
| HDMI | pas testé | |
| eSATA | pas testé | |
| Touchpad | ||
| Touchpad | oui | |
| Touchpad – Double click | oui | |
| Touchpad – Défilement vertical | oui | |
| Souris Externe – USB | oui | |
| Souris Externe – Bluetooth | pas testé | |
| Matériel Additionnel | ||
| Lecteur CD/DVD | oui | |
| Emplacement PCMCIA | pas testé | |
| Lecteur d’empreintes digitales | pas testé | |
| Lecteur de cartes 8 en 1 | oui | Test avec SD Card |
| WebCam | oui | « out of the box » (ça doit être la 1ère webcam que j’ai sous Ubuntu reconnue sans aucun bidouillage ^^) |
| Fonctions et autre touches | |||
| Touches Fn | Action | Ok ? | Remarques |
| + Barre d’espace | Power4Gear | non | Utilisez gnome-applets et cpu-frequtils (Ajouter au tableau de bord > Moniteur de changement de fréquence du processeur) |
| + F1 | Mise en veille | oui | |
| + F2 | WLAN Power | non | |
| + F3 | oui | Lancement de Evolution | |
| + F4 | Navigateur Internet | non | |
| + F5 | Baisse la luminosité LCD | oui | |
| + F6 | Augmente la luminosité LCD | oui | |
| + F7 | Ecran LCD On/Off | oui | |
| + F8 | Sélection de la sortie vidéo (moniteur externe) | pas testé | |
| + F9 | Active/désactive le Touchpad | oui * | Voir Notes ci dessous |
| + F10 | Muet | oui | |
| + F11/F12 | Baisse le volume/Augmente le volume | oui | |
| + Fleche Haut/Bas | Stop/Pause la musique | oui | Test avec Rhythmbox |
| + Fleche Gauche/Droite | Musique précédente/suivante | oui | Test avec Rhythmbox |
| + C | « Asus Splendid Video » | non | |
| + V | « Photo » | non | |
| + T | « Power For Phone » | non | |
| + Num Lk | ??? | pas testé | |
| Autres touches spéciales | |||
| Touches | Action | Ok ? | Remarques |
| Power4Gear | Changer/adapter la vitesse du processeur | non | Utilisez gnome-applets et cpu-frequtils (Ajouter au tableau de bord > Moniteur de changement de fréquence du processeur) |
| Touchpad | Active/désactive le Touchpad | oui * | Voir Notes ci dessous |
| « Asus Splendid Video » | Change le profile LCD | non | |
| ??? | ??? | non | |
Comme indiqué sur la documentation, pour faire marcher les raccourcis qui active/désactive le Touchpad sous Ubuntu 8.10 vous devez :
gksudo gedit /etc/hal/fdi/policy/shmconfig.fdi
<?xml version="1.0" encoding="ISO-8859-1"?> <deviceinfo version="0.2"> <device> <match key="input.x11_driver" string="synaptics"> <merge key="input.x11_options.SHMConfig" type="string">True</merge> </match> </device> </deviceinfo>
En dual-boot avec Windows VISTA (bah oui, faut bien jouer un peu), cet ASUS M70VN (7T073C) est, avec Ubuntu 8.10, une merveille de compatibilité. Presque tout marche du 1er coup, et il n’y a quasi aucun bidouillage à faire. Prochainement je ferais une petite investigation pour résoudre les problèmes mineurs rencontrés (quelques touches de raccourcis ne fonctionnent pas, etc…) et essayer de faire marcher le lecteur d’empreintes digitales.
Bref, je suis FAN
© Copyright 2010 Pokemon_JOJO