10/05/08

Modification de Fon Macspot

Wi-Fi (Wireless Fidelity)

Le FON Spot Software permet de transformer son Mac en FonSpot, à condition d'avoir un MacIntel !

Comme, j'ai un téléphone Wi-Fi compatible FON et que je suis toute la semaine loin de mon domicile, et, qui plus est, privé de Wi-Fi, je me suis à nouveau intéressé au Fon Macspot. Ça fonctionne assez bien, d'après mes premiers essais, sur le Mac Mini à la maison… mais l'interface du Fon Macspot est vraiment moche, et, par dessus le marché, celle-ci est très encombrante :

Fon Macspot

À droite, on peut voir l'interface originale de Fon_Macspot 0.2, et à gauche celle modifiée… Je n'ai malheureusement rien pu faire pour les textes écrits en vert, et qui sont peu lisibles. L'application ne peut, évidemment, pas être localisée, puisque rien ne semble avoir été prévu en ce sens :/.

J'ai fait un petit AppleScript, ça faisait longtemps, non ? Qui permet de remplacer diverses ressources sans devoir, ne rien faire d'autre, que de cliquer sur le contenu d'une image disque… AppleScript que je risque de réutiliser assez souvent !

MacSpot Mod

(*    
    MacSpot Mod.scpt
    Harry-Proton <http://blogosx.homeunix.org>
*)
 
set res to {"English.lproj", "fon_logo.icns"}
set app2find to "FON Macspot"
set flag to true
 
try
	set source to (POSIX path of (path to me) as Unicode text) & "Contents/Resources/Install/"
	set aimed to POSIX path of (path to application app2find as Unicode text) & "Contents/Resources/"
on error m
	set flag to errorMessage(m)
end try
 
if flag then
	set r to count items of res
	set i to 1
	
	repeat r times
		try
			set command to "cp -r " & ¬
				quoted form of (source & (item i of res)) & ¬
				space & ¬
				quoted form of (aimed & (item i of res))
			do shell script command
		on error m
			set flag to errorMessage(m)
			exit repeat
		end try
		
		set i to i + 1
	end repeat
	
	if flag then reactivate(app2find)
end if
 
(*
	Functions
*)
 
on errorMessage(message)
	beep
	display dialog message
	return false
end errorMessage
 
on reactivate(app2wake)
	tell application app2wake
		try
			quit
			activate
		end try
	end tell
end reactivate

Pour la licence de ce bout de code : Licence Creative Commons BY-NC-SA.
Et pour les icône de contenu dans le "paquet" : Oxygen Icons » Legal.

Télécharger 'MacSpot Mod'

MacSpot Mod (image disque Mac OS X, ±816 Ko)
signature MD5 : 31087cde3f40ddcefd00487eef24401f

Il est, bien sûr, nécessaire de télécharger et d'installer le FON Spot Software avant d'utiliser le 'MacSpot Mod'. MacSpot Mod n'a été testé que sous Mac OS 10.5 (Leopard).

commenter (1)

10/05/08

mon userChrome.css (Firefox 3.0b5)

Firefox

Bon, j'utilise Firefox 3.0b5 depuis un petit moment, et j'apprécie assez le thème proto, je trouve les icônes très réussies ; de plus, Firefox consomme beaucoup moins de ressources (surtout la RAM) que par le passé, à tel point qu'il paraîtrait qu'il soit moins gourmand que Safari.

Pour éditer mon userChrome.css, j'ai commencé par m'inspirer de la page Customization and Extensions de Aronnax pour modifier l'icône des RSS dans la barre d'adresse en utilisant celle de Safari, convertie au format PNG. J'ai utilisé le message de edgarf28 sur les forums de MozillaZine pour modifier le rendu de Fission 0.9.5 dans un meilleur Safari Style (sans utiliser l'interface graphique des préférences de l'extension, que je trouve assez calamiteuse lorsqu'il s'agit de choisir une image et/ou une couleur).

En me promenant sur userstyles.org, j'ai fait une agréable découverte : Firefox 2+3 - Slim Extension List ; toujours appréciable lorsque l'on utilise beaucoup d'extensions.

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
#stop-button[disabled="true"] {
	display:none;
}
#stop-button:not([disabled]) + #reload-button {
	display:none;
}
 
#feed-button[feeds] { 
	list-style-image: url("ShowRSSButton.png") !important; 
	padding-right:2px !important;
	padding-left:2px !important;
	-moz-image-region:auto !important;
	width:27px !important;
} 
 
#urlbar #statusbar-icon > .progress-bar {
	background: url("progressmeter.png") repeat-x left center !important;
	background-color: transparent !important;
}
 
#urlbar[fission="fusion"] > #statusbar-icon > .progress-bar {
	background-color: #a9d2ff !important;
}
 
/*
	Firefox 2+3 - Slim Extension List
	http://userstyles.org/styles/5904
*/
 
#extensionsView richlistitem[selected=true] {
  background-image: none !important;
}
 
#extensionsView richlistitem:not([selected=true]) .addonIcon,
#extensionsView richlistitem:not([selected=true]) .addonIcon > image {
  height: 16px !important;
  width: 16px !important;
}
 
#extensionsView richlistitem:not([selected=true]) .addon-description {
  display: none !important;
}
 
#extensionsView richlistitem:not([selected=true]) .notifyBadge,
#extensionsView richlistitem:not([selected=true]) .updateBadge {
  height: 8px !important;
  width: 8px !important;
}

À noter aussi, quelques bouts de CSS pour essayer de se passer de Stop-or-Reload Button… du temps où cette extension n'était pas encore compatible avec Firefox 3.

Capture d'écran

démonstration Firefox 3.0b5 proto

Télécharger

Firefox 3.0b5 chrome (±1932 Octets)
Archive contenant les images et le userChrome.css.

commenter (0)

20/04/08

Gmail Notifier v1.6.2a

Gmail Notifier

Nouvelles modifications de Gmail Notifier, après l'implémentation de pynotify, ce sont des modifications, moins visibles, destinées à rendre Gmail Notifier compatible avec les systèmes 64 bits

Grâce au rapport d'erreur de Emralegna sur les forums de Ubuntu-fr.org :

emralegna@Aegis:~/gmail-notify$ ./notifier.py
Traceback (most recent call last):
  File "./notifier.py", line 12, in <module>
    import pytrayicon
ImportError: /home/emralegna/gmail-notify/pytrayicon.so: mauvaise classe ELF: ELFCLASS32

me permettant de découvrir que pytrayicon.so étant compilé sous un système 32 bits ne pouvait être compatible 64 bits. Il fallait donc trouver une solution…

compatible 64 bits

compatible 64 bits

Pour rendre Gmail Notifier compatible 64 bits, la librairie pytrayicon.so, pour gérer une icône interactive dans la systray, a été abandonnée au profit de l'utilisation du module egg.trayicon issu du paquet python-gnome2-extras.

Comme le nombre de dépendances commence à se faire relativement conséquent, j'en ai profité pour ajouter un début de gestion des exceptions sur les imports.

import sys
try:
	import pygtk
	#tell pyGTK, if possible, that we want GTKv2
	pygtk.require("2.0")
except:
	#Some distributions come with GTK2, but not pyGTK
	pass
try:
	import gtk
except:
	print "You need to install pyGTK or GTKv2",
	sys.exit(1)
try:
	import pynotify
except:
        print "You need to install the pynotify python package (python-notify)"
try:
	import egg.trayicon as trayicon # egg == python-gnome2-extras
except:
        print "You need to install the egg python package (python-gnome2-extras)"
import time
import os
import warnings
 
import ConfigParser
import xmllangs
import GmailConfig
import GmailPopupMenu
import gmailatom

Télécharger : Gmail Notifier v1.6.2a

Gmail Notifier v1.6.2a (archive, ±48 Ko).
signature MD5 : 02f64b91e62c6c00fe1a048cb4fec13b

NOTFIER_VERSION='v1.6.2a'
ARCHIVE="gmail-notify.${NOTFIER_VERSION}.tar.gz"
 
cd '/opt'
sudo wget "http://blogosx.homeunix.org/share/apps/gmail-notify/${ARCHIVE}" 
sudo tar -xvzf "${ARCHIVE}" && sudo rm "${ARCHIVE}"
sudo chown -hR root 'gmail-notify' && sudo chgrp -hR root 'gmail-notify' 
sudo chmod -R 755 'gmail-notify'
 
cd '/usr/bin'
sudo touch 'gmail-notifier' && sudo chmod 755 'gmail-notifier' 
sudo gedit 'gmail-notifier'
#!/bin/bash
exec '/opt/gmail-notify/notifier.py'

commenter (0)

13/04/08

Gmail Notifier (pynotify)

Gmail Notifier

J'utilisais depuis un certain temps Gmail Notifier, sous Ubuntu, cependant je n'appréciais que très peu la fenêtre de notification qui passait par dessus mon dock. Aussi ai-je décidé de modifier Gmail Notifier de façon à ce qu'il génère ses notifications en utilisant pynotify.

Permettant ainsi aux notifications d'avoir un aspect de "bulles standards" ; notifications qui peuvent ensuite être, elles-même, gérées et redessinées par le fameux Awn Notification-Daemon :

Gmail Notifier (Awn Notification-Daemon)

En y étant, j'en ai profité pour modifier les icônes, dont celle de l'applet, en utilisant l'icône CheckGmail svg icon sous licence GPL.

Télécharger "Gmail Notifier (pynotify)"

Gmail Notifier v1.6.1b (pynotify) (archive, ±52 Ko).
signature MD5 : 749374a48a9234d9acdc1e44bdf7dc88

Évidemment, si vous utilisez cette application modifiée, toutes les remarques ou suggestions pertinentes sont bienvenues…

commenter (0)

13/04/08

En vrac (Ubuntu, Bash, etc)

Ubuntu

Un script intéressant, utilisant ImageMagick : Stylez vos screenshots, et son évolution : Des screenshots avec style - Version 2.

Encoder rapidement, en ligne de commande, des fichiers pour une PSP : encodage vers PSP (en utilisant FFMPEG).

Installer Firefox 3.0b5

cd /opt
sudo wget -O - 'http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0b5/linux-i686/fr/firefox-3.0b5.tar.bz2' | tar xj -C ~
sudo mv '/usr/bin/firefox' '/usr/bin/firefox.real'
sudo gedit '/usr/bin/firefox'

/usr/bin/firefox

#!/bin/sh
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is mozilla.org Code.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 1998
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
 
## $Id: mozilla.in,v 1.12.8.2 2007/11/08 08:53:19 reed%reedloden.com Exp $
## 
## Usage:
##
## $ mozilla [args]
##
## This script is meant to run the mozilla-bin binary from either 
## mozilla/xpfe/bootstrap or mozilla/dist/bin.
##
## The script will setup all the environment voodoo needed to make
## the mozilla-bin binary to work.
##
 
moz_pis_startstop_scripts()
{
  MOZ_USER_DIR=".mozilla/firefox"
  # MOZ_PIS_ is the name space for "Mozilla Plugable Init Scripts"
  # These variables and there meaning are specified in
  # mozilla/xpfe/bootstrap/init.d/README
  MOZ_PIS_API=2
  MOZ_PIS_MOZBINDIR="/opt/firefox/firefox"
  MOZ_PIS_SESSION_PID="$$"
  MOZ_PIS_USER_DIR="${MOZ_USER_DIR}"
  export MOZ_PIS_API MOZ_PIS_MOZBINDIR MOZ_PIS_SESSION_PID MOZ_PIS_USER_DIR
  
  case "${1}" in
    "start")
      for curr_pis in "${dist_bin}/init.d"/S* "${HOME}/${MOZ_USER_DIR}/init.d"/S* ; do
        if [ -x "${curr_pis}" ] ; then
          case "${curr_pis}" in
            *.sh) .  "${curr_pis}"         ;;
            *)       "${curr_pis}" "start" ;;
          esac
        fi
      done
      ;;
    "stop")
      for curr_pis in "${HOME}/${MOZ_USER_DIR}/init.d"/K* "${dist_bin}/init.d"/K* ; do
        if [ -x "${curr_pis}" ] ; then
          case "${curr_pis}" in
            *.sh) . "${curr_pis}"        ;;
            *)      "${curr_pis}" "stop" ;;
          esac
        fi
      done
      ;;
    *)
      echo 1>&2 "$0: Internal error in moz_pis_startstop_scripts."
      exit 1
      ;;
  esac
}
 
#uncomment for debugging
#set -x
 
moz_libdir="/opt/firefox"
MRE_HOME=/usr/lib/mre/mre
 
# Use run-mozilla.sh in the current dir if it exists
# If not, then start resolving symlinks until we find run-mozilla.sh
found=0
progname="$0"
curdir=`dirname "$progname"`
progbase=`basename "$progname"`
run_moz="$curdir/run-mozilla.sh"
if test -x "$run_moz"; then
  dist_bin="$curdir"
  found=1
else
  here=`/bin/pwd`
  while [ -h "$progname" ]; do
    bn=`basename "$progname"`
    cd `dirname "$progname"`
    progname=`/bin/ls -l "$bn" | sed -e 's/^.* -> //' `
    progbase=`basename "$progname"`
    if [ ! -x "$progname" ]; then
      break
    fi
    curdir=`dirname "$progname"`
    run_moz="$curdir/run-mozilla.sh"
    if [ -x "$run_moz" ]; then
      cd "$curdir"
      dist_bin=`pwd`
      run_moz="$dist_bin/run-mozilla.sh"
      found=1
      break
    fi
  done
  cd "$here"
fi
if [ $found = 0 ]; then
  # Check default compile-time libdir
  if [ -x "$moz_libdir/run-mozilla.sh" ]; then
    dist_bin="$moz_libdir"
  else 
    echo "Cannot find mozilla runtime directory. Exiting."
    exit 1
  fi
fi
 
script_args=""
debugging=0
MOZILLA_BIN="${progbase}-bin"
 
if [ "$OSTYPE" = "beos" ]; then
  mimeset -F "$MOZILLA_BIN"
fi
 
pass_arg_count=0
while [ $# -gt $pass_arg_count ]
do
  case "$1" in
    -p | --pure | -pure)
      MOZILLA_BIN="${MOZILLA_BIN}.pure"
      shift
      ;;
    -g | --debug)
      script_args="$script_args -g"
      debugging=1
      shift
      ;;
    -d | --debugger)
      script_args="$script_args -d $2"
      shift 2
      ;;
    *)
      # Move the unrecognized argument to the end of the list.
      arg="$1"
      shift
      set -- "$@" "$arg"
      pass_arg_count=`expr $pass_arg_count + 1`
      ;;
  esac
done
 
export MRE_HOME
 
## Start addon scripts
moz_pis_startstop_scripts "start"
 
if [ $debugging = 1 ]
then
  echo $dist_bin/run-mozilla.sh $script_args $dist_bin/$MOZILLA_BIN "$@"
fi
"$dist_bin/run-mozilla.sh" $script_args "$dist_bin/$MOZILLA_BIN" "$@"
exitcode=$?
 
## Stop addon scripts
moz_pis_startstop_scripts "stop"
 
exit $exitcode
# EOF. 

Un cp serait sûrement plus judicieux… mais bon, on fait ce qu'on peut ! L'avantage de cette procédure et que l'on peut relancer Firefox 2 via la commande firefox.real, en cas de souci par exemple…

Sinon, une procédure beaucoup plus simple : Installer Firefox 1.5.0.1 (version française) dans Ubuntu Breezy!, et, plus compliqué, ici : Installation manuelle de Firefox sur une Debian Testing / Sid quelques informations intéressantes… même si la procédure est beaucoup plus longue, et peut-être pas complètement efficace, sous Ubuntu Gusty Gibbon, si l'on veut complètement remplacer un Firefox 2.0.0.13 par Firefox 3.0b5.

En attendant de trouver un thème compatible Firefox 3, j'utilise GrayModern2 Mozilla Firefox 3 Theme, nostalgie assurée :P. Sinon, à tester, pour retrouver l'ancien look de Firefox : Firefox 2.0 Classic Theme for Firefox 3.0 1.0.

Utiliser Thunar sous Gnome

sudo mv '/usr/bin/nautilus' '/usr/bin/nautilus.real'
sudo gedit '/usr/bin/nautilus'

/usr/bin/nautilus

#!/bin/bash
 
if [ -n "${1}" ]; then
    if [ "${1:0:1}" == "/" ]; then
        thunar "${1}"
    elif [ "${1}" == "--no-desktop" ]; then
        if [ -n "${2}" ]; then
            if [ "${2:0:7}" == "file://" ] || [ "${2:0:1}" == "/" ]; then
                thunar "${2}"
            else
                nautilus.real "${2}"
            fi
        else
            thunar
        fi
    else
        nautilus.real "${@}"
    fi
else
    thunar
fi
 
# Avant Window Navigator Trash Aplet Hack for KDE
# Adapted into Xfce by Hadret (http://en.hadret.com)
#
# Copyleft 2008 A. Tres Finocchiaro
#
# This script is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation
 
if [ "$1" = "trash:" ]; then
	exec thunar "$@/"
else
	exec thunar "$@"
fi
 
exit 0

Supprimer les fichiers de backup (Thunar)

Script inspiré de Supprimer les fichiers de backup gedit, adapté pour Thunar :

#!/bin/bash
# -*- coding: utf-8 -*-
if [ -z $1 ]; then exit 1; fi
 
IFS=$'\n\r\t'
files=$(ls $1/*~)
 
i=0; total_size=0; errors=0
for bak in $files
do
	removed=false
	file_size=$(stat --printf %s $bak | awk '{print $1}')
	rm $bak && removed=true || errors=$((errors + 1))
 
	if [ $removed == true ]; then
		total_size=$((total_size + file_size))
		i=$((i + 1))
	fi
done
 
message_supp="${i} fichiers de backup *~ supprimés. (${total_size}o)."
message_err="${errors} fichiers de backup n'ont pu être effacés."
message_err_all="Aucun fichier backup n'a pu être effacé (${errors} erreurs)."
message_rights="Veuillez vérifier que vous disposez des droits nécessaires."
 
if [ $errors == 0 ]; then
	zenity --info --text="${message_supp}"
fi
 
if [ $errors != 0 ] && [ $i == 0 ]; then
	zenity --error --text="${message_err_all}\n${message_rights}"
fi
 
if [ $errors != 0 ] && [ $i != 0 ]; then
	zenity --warning --text="${message_supp}\n${message_err}\n${message_rights}"
fi
 
#gunzip -c '/usr/share/man/man1/zenity.1.gz' | groff -Tps -man > "$HOME/Bureau/zenity.ps" 

commenter (1)

24/03/08

Acheter un PC sous Linux, c'est possible !

PC sous Linux

Après avoir tâté le terrain chez de "gros fournisseurs" de proximité comme la FNAC pour savoir qu'est ce qu'il en était de la vente liée à la recherche d'ordinateurs sans Windows Vista™ préinstallé, ou encore mieux, à la recherche d'un ordinateur (portable ou transportable) optimisé pour Linux avec, par exemple, une distribution comme Ubuntu préinstallée.

À cela plusieurs raisons : je pense qu'il va me falloir un PC supplémentaire d'ici peu, je voudrais éviter les soucis de compatibilité comme ceux que l'on peut rencontrer avec les cartes graphiques Nvidia… enfin, je vais avoir du mal à m'habituer à autre chose qu'aux claviers Mac, alors, à part le MacBook en portable, si je veux du "transportable", je peux commencer à penser au Shuttle ou autres barebones…

Et là, voilà qui tombe bien : Iventive propose des PC fixe Ubuntu ! Avec de petits PC sous la barre des 300€, qui sont, semble-t-il, optimisés pour fonctionner sous Linux (Ubuntu), avec une préinstallation, garantissant une certaine sérénité…

On pourra, pour la forme, citer : Dell Open Source, le choix reste assez limité, a priori, et pas de shuttle… Ou encore : Keynux, avec certains modèles que je jugerais de "haut de gamme", et Novatux

En attendant que mes intentions d'achat se concrétisent ;).

commenter (5)

01/03/08

Utiliser un clavier Macintosh Apple sous Ubuntu

Ubuntu

Voulant utiliser un clavier blanc Apple USB sous Ubuntu 7.10 (Gutsy Gibbon) sur un PC, après de longue recherches, pour pas grand chose, après avoir testé diverses manipulations à base de xkbset et de xmodmap ; voilà la manipulation la plus simple, voire la plus efficace pour utiliser un clavier blanc Apple USB sous Ubuntu 7.10. Commencer par éditer xorg, en effet, les réglages via l'interface graphique (Système > Préférences > Clavier) semblent inopérants :

sudo gedit '/etc/X11/xorg.conf'

Les réglages de xorg devraient être les suivants :

Section "InputDevice"
   Identifier "Generic Keyboard"
   Driver  "kbd"
   Option  "CoreKeyboard"
   Option  "XkbRules" "xorg"
   Option  "XkbModel" "macintosh"
   Option  "XkbLayout" "fr"
EndSection

La majeure partie des raccourcis claviers pour obtenir les caractères spéciaux comme par exemple : le tilde, les accolades, les crochets, la barre verticale… sont immédiatement les mêmes que si vous étiez sous Mac OS X (c'est un peu le but, en même temps). Les touches 'Pomme' servant alors de touche Super pour Compiz, sauver un document s'effectuera grâce à Ctrl+S, par exemple.

À noter que le clavier aluminium doit aussi être supporté, bien qu'il semble que la touche fn ne soit pas reconnue (à cela rien de vraiment étonnant, puisqu'il faut se rappeler que sous Mac OS X 10.4.10 le nouveau clavier nécessitait, tout de même, l'installation d'une mise à jour du logiciel du clavier).

commenter (0)

01/03/08

J'utilise Ubuntu !

Ubuntu

J'utilise Ubuntu… et ça me semble naturel !

En effet, grâce à un ami qui me prête un laptop Asus, je peux utiliser Ubuntu 7.10 (Gutsy Gibbon) depuis plus d'une semaine. Et pour cause, je n'ai pas encore d'ordinateur portable personnel…

Il y avait aussi un système d'exploitation Windows XP, sur cette machine ; système que je me suis empressé de supprimer pour récupérer de la place sur le disque dur (en effet, il faut bien que j'ai un endroit pour copier ma musique, stocker de la documentation, faire un peu de rangement, etc ; en plus de mes divers périphériques de stockage amovibles).

En y étant, je peux aussi remercier Séb qui m'a filé, au moins, deux ou trois coups de main rapides lors du gros upgrade (190 MAJ) ; forcément, puisqu'il s'agissait de mettre à jour une installation de base, installation initialement effectuée sans réseau…

Une entrée en matière difficile ?

Bizarrement, un switcher, pas trop sectaire et amateur de systèmes UNIX trouvera très rapidement ses marques au niveau du système d'exploitation (arborescences, montage de volumes, démons, droits…) et tout aussi rapidement sous un environnement graphique Gnome, notamment grâce à Compiz et à la personnalisation aisée et native de cet environnement graphique, permettant ainsi de personnaliser de manière efficace et rapide son environnement de travail à sa convenance, en poursuivant l'objectif de ne pas se sentir trop dépaysé. Tout ceci est encore plus facile grâce à l'existence de projets comme Mac4Lin.

Ok ! Ubuntu Linux, c'est bien joli… mais ça sert à quoi ?

Je pense définitivement que, aujourd'hui, Linux, notamment avec une distribution comme Ubuntu, peut être utilisé par n'importe quel utilisateur. Il s'agit, depuis les fondements, d'un système cartésien, ce qui a son importance, sujet que je ne développerai probablement pas dans ce billet. Au niveau de l'interface utilisateur les menus sont structurés et peu profonds, rarement plus de deux niveaux. De plus, avec Synaptic, leur comportement est complètement automatisé, un vrai windows-like. Un utilisateur débutant, ou aimant çà, pourra passer ses journées à cliquer ; moins, mais cliquer quand même… Un utilisateur un peu plus averti, pourra agréablement mixer l'usage du terminal avec la "facilité" de l'interface graphique. Par exemple pour installer VLC media player sous Ubuntu, on pourra cliquer 3 à 4 fois (tout au plus) pour obtenir une installation grâce aux menus de l'interface graphique et Synaptic, alors qu'en utilisant le Terminal (ou Console), il suffira d'écrire :

sudo apt-get install vlc

après, à vous de vous faire une idée sur quelle est la méthode la plus compliquée… mais sachez, toujours, que vous avez le choix ;).

Qui plus est, vous devez savoir que la liberté et l'ouverture resteront souveraines. Parce que la Licence publique générale GNU en est garante !

La quantité de logiciels que vous pourrez installer grâce à Synaptic est tout simplement, à mon sens, pharaonienne… en sachant qu'avec un installation minimale, si ce n'est quelques codecs propriétaires, vous aurez déjà de quoi écouter de la musique, lire de la vidéo, et bien sûr… travailler ! Puisque, à mon sens, c'est assez souvent à çà que sert un ordinateur ! Avec Gimp, Open Office… faut reconnaître, que c'est quand même mieux que Paint et Wordpad… il n'y a pas vraiment de comparaison à faire avec les systèmes d'exploitation propriétaires, à ce niveau là… et à bien d'autres.

commenter (0)

24/02/08

fuzzy_time

Un sympathique script shell, écrit en bash, par Julian Plamann mis à disposition sur les forums de Tynsoe.org qui sont malheureusement soumis au spam et pour lesquels je m'inquiète quant à leur pérennité, ce qui explique que, en plus de l'envie de faire partager ce script, je le copie j'en donne, ici, une version modifiée :

#!/bin/bash
# converts exact time to fuzzy format
export exact_time=$(date '+%I:%M')
 
export exact_hour=$(echo $exact_time | cut -c 1,2)
export exact_minute=$(echo $exact_time | cut -c 4,5)
 
case $exact_hour in
	01) export fuzzy_hour='one';;
	02) export fuzzy_hour='two';;
	03) export fuzzy_hour='three';;
	04) export fuzzy_hour='four';;
	05) export fuzzy_hour='five';;
	06) export fuzzy_hour='six';;
	07) export fuzzy_hour='seven';;
	08) export fuzzy_hour='eight';;
	09) export fuzzy_hour='nine';;
	10) export fuzzy_hour='ten';;
	11) export fuzzy_hour='eleven';;
	12) export fuzzy_hour='twelve';;
esac
 
case $exact_minute in
	00) export fuzzy_minute='o-clock';;
	01) export fuzzy_minute='o-one';;
	02) export fuzzy_minute='o-two';;
	03) export fuzzy_minute='o-three';;
	04) export fuzzy_minute='o-four';;
	05) export fuzzy_minute='o-five';;
	06) export fuzzy_minute='o-six';;
	07) export fuzzy_minute='o-seven';;
	08) export fuzzy_minute='o-eight';;
	09) export fuzzy_minute='o-nine';;
	10) export fuzzy_minute='ten';;
	11) export fuzzy_minute='eleven';;
	12) export fuzzy_minute='twelve';;
	13) export fuzzy_minute='thirteen';;
	14) export fuzzy_minute='fourteen';;
	15) export fuzzy_minute='fifteen';;
	16) export fuzzy_minute='sixteen';;
	17) export fuzzy_minute='seventeen';;
	18) export fuzzy_minute='eighteen';;
	19) export fuzzy_minute='nineteen';;
	20) export fuzzy_minute='twenty';;
	21) export fuzzy_minute='twenty-one';;
	22) export fuzzy_minute='twenty-two';;
	23) export fuzzy_minute='twenty-three';;
	24) export fuzzy_minute='twenty-four';;
	25) export fuzzy_minute='twenty-five';;
	26) export fuzzy_minute='twenty-six';;
	27) export fuzzy_minute='twenty-seven';;
	28) export fuzzy_minute='twenty-eight';;
	29) export fuzzy_minute='twenty-nine';;
	30) export fuzzy_minute='thirty';;
	31) export fuzzy_minute='thirty-one';;
	32) export fuzzy_minute='thirty-two';;
	33) export fuzzy_minute='thirty-three';;
	34) export fuzzy_minute='thirty-four';;
	35) export fuzzy_minute='thirty-five';;
	36) export fuzzy_minute='thirty-six';;
	37) export fuzzy_minute='thirty-seven';;
	38) export fuzzy_minute='thirty-seven';;
	39) export fuzzy_minute='thirty-one';;
	40) export fuzzy_minute='forty';;
	41) export fuzzy_minute='forty-one';;
	42) export fuzzy_minute='forty-two';;
	43) export fuzzy_minute='forty-three';;
	44) export fuzzy_minute='forty-four';;
	45) export fuzzy_minute='forty-five';;
	46) export fuzzy_minute='forty-six';;
	47) export fuzzy_minute='forty-seven';;
	48) export fuzzy_minute='forty-eight';;
	49) export fuzzy_minute='forty-nine';;
	50) export fuzzy_minute='fifty';;
	51) export fuzzy_minute='fifty-one';;
	52) export fuzzy_minute='fifty-two';;
	53) export fuzzy_minute='fifty-three';;
	54) export fuzzy_minute='fifty-four';;
	55) export fuzzy_minute='fifty-five';;
	56) export fuzzy_minute='fifty-six';;
	57) export fuzzy_minute='fifty-seven';;
	58) export fuzzy_minute='fifty-eight';;
	59) export fuzzy_minute='fifty-nine';;
esac
 
export fuzzy_time="$fuzzy_hour $fuzzy_minute"
echo $fuzzy_time
exit 0
 
# Local variables:
# Coding: utf-8 
# End: 

Perso, je m'en suis fait un script pour mon /usr/bin/, et j'aime bien en faire ceci :

say $(fuzzy_time)

commenter (0)

24/02/08

Améliorations du blog (en vrac et en retard)

PHP

Depuis ce précédent billet : Améliorations du blog, de nombreuses nouvelles améliorations ont été apportées ; notamment sur la saisie des commentaires et la gestion des erreurs, ainsi, maintenant, en cas d'erreur un message explicite sera affiché et l'utilisateur pourra aisément rectifier la soumission de son commentaire. Un Test de Turing a malheureusement été mis en place, comme je le pressentais dans un autre billet ; il faudra, d'ailleurs, que je pense à le rendre insensible à la casse. Et toujours à propos de commentaires, un flux RSS dédié a été mis en place.

Bon, j'aurais dû écrire ce petit billet depuis fort longtemps, parce que du coup, il y a de nombreuses "nouveautés" qui ne sont plus tout à fait récentes :D.

À part çà, JQuery a fait son apparition sur le blog, à la base, essentiellement pour pouvoir utiliser le fameux resizehandle, puis petit à petit, j'en ai mis un peu partout… Et en parlant de JavaScript, il faut que je pense à jeter un œil, et même un peu plus, à ce projet : PHP to Javascript Project: php.js qui me semble, a priori, être une extrême bonne idée !

Je me suis, encore, un peu amusé avec les pseudo-éléments et les sélecteurs CSS :

pre[class]:before {
    content:attr(class);
    display:block; text-align:right;
    margin:0; padding:0;
    margin:-5px -5px 5px -5px; padding:2px 5px 3px 2px;
    color:#fff; background-color:#004A66;
    border-bottom:1px solid #FF6600;
    font:normal 1.15em verdana, arial, sans-serif;
    text-transform:capitalize; 
    width:auto; 
}
 
pre[class=xml]:before, pre[class=css]:before {
    text-transform:uppercase;  
}

en collaboration avec GeSHi, je trouve que c'est une utilisation sympathique de la chose (testé avec Firefox, Safari et Opera).

commenter (0)