PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

David Mercereau : Créer/publier un plugin wordpress simple : “Adblock invite”

lundi 21 janvier 2013 à 12:40

Suite à mon article “Incitateur anti-pub“, des demandes ont émergé concernant un plugin WordPress. Très enthousiaste, je l’ai réalisé. Il s’appelle adblock-invite et il est sous licence Beerware. C’est le premier plugin wordpress que je réalise, il est relativement simple et me semble un bon moyen concret de commencer avec WordPress (plus sympa que le “hello world”).

Note : pour ceux qui souhaitent un anti-pub standalone réferez-vous à cet article.

Le but du plugin est simple ; il s’agit d’un Widget avec un champs “titre” (pour le titre du bloc) et un champs “message”. Ce widget ne s’affichera que lorsque le visiteur n’aura pas d’anti-pub.

Créer, tester votre code

Dans le répertoire wp-content/plugins/ nous allons créer arborescence suivante :

$ cd wp-content/plugins/
$ mkdir adblock-invite
$ tree
.
+--- screenshot-1.png
+--- screenshot-2.png
+--- testads
|   +--- banners.js
+--- widget.php
+--- style.css
+--- readme.txt

Détail de l’arborescence :

Le fichier widget.php est le cœur du plugin, voici son contenu (A l’heure ou j’écris il est en  0.1)


	<script language="JavaScript" type="text/javascript" src="">
	<script language="JavaScript" type="text/javascript">
		function widgetAdlblockInviteID(tag) {
                        var regexpParam=/adblock_invite_widget-*/;
                        var tagParam=tag;
                        tagParam = (tagParam === undefined) ? '*' : tagParam;
                        var elementsTable = new Array();
                        for(var i=0 ; i
	 'adblock_invite_widget_class', 
							'description' => 'Detects if the visitor have AdBlock (or another) plugin/extension installed and if not, gives URL to download it.' 
							); 
		$this->WP_Widget('adblock_invite_widget', 'Adblock invite', $widget_ops);
	}

	// Formulaire d'administration

	function form($instance) {
		$instance = wp_parse_args( (array) $instance, array( 'title' => 'You do not block ads?', 'message' => '

It seems that you don\\'t have AdBlock (or another) installed in your browser. I encourage you to install it for free

Download AdBlock

' ) ); $title = $instance['title']; $message = $instance['message']; ?>

Vous pouvez tester votre plugin en l’activant dans le panel d’administration (Extensions / Extensions installées)

Publier sur WordPress.orgadblock-invite-search

Le saint graal pour un plugin WordPress étant d’être dans l’annuaire afin que l’utilisateur final n’est qu’à faire une recherche via son blog pour pouvoir installer d’un seul clic le dit plugin.

Pour ce faire il faut d’abord créer un compte sur wordpress.org puis proposer votre plugin. Une étape de modération est nécessaire.

Vous allez ensuite recevoir un email avec l’URL de votre plugin dont vous serez administrateur. (pour moi c’est http://wordpress.org/extend/plugins/adblock-invite/) Il vous faut ensuite faire le premier commit afin de rendre la page public. Voici la démarche :

$ # Création d'un répertoire de travail
$ cd ~/Projets
$ mkdir adblock-invite
$ cd adblock-invite/
$ # Récupération de arborescence svn
$ svn co http://plugins.svn.wordpress.org/adblock-invite/ .
$ # Copie et ajout du code
$ cp /var/www/wp-content/plugins/adblock-invite/* trunk/
$ svn add trunk/*
$ # Copie des screenshots pour le site de wordpress
$ cp trunk/screenshot-* assets/
$ svn add assets/*
$ # Commit et envoi 
$ svn ci -m 'Adding first version of my plugin'

Pour en savoir plus sur svn rapporté à WordPress vous pouvez vous rendre sur wordpress.org/extend/plugins/about/svn.
Et voilà c’est terminé vous devriez avoir votre page administrable sur wordpress.org & votre plugin doit être disponible dans l’annuaire.

Les ressources

Les liens qui’ m’ont bien aidé dans ma démarche :

N’hésitez pas à me faire part de point à améliorer dans ce plugin ou dans ce tuto (je l’ai fait à posteriori il est donc possible qu’il manque des étapes)

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

lmns972 : Un cordonnier bien chaussé

lundi 21 janvier 2013 à 10:51

Comme beaucoup vous avez déjà certainement perdu des données (un dd parti au paradis , une clé disparue) . Tous les jours toi aussi tu te dit qu’il faut que tu sauvegardes tes données . Voila ce moment il est enfin venu, il est tant de backuper :) .

Avant de commencer ce qu’il faut savoir . Bacula repose sur certains services qu’il faut définir et comprendre avant tout .

Maintenant que vous connaissez les grands principes les fichiers qui gèrent tout ceci .

On récupère les derniers paquets de bacula

Comme d’habitude l’installation s’effectue à base de /

./configure --with-mysql --with-python
make
make install

Il faut ensuite créer la base de donnée pour le stockage des événements

cd /etc/bacula/
./create_mysql_database -p
./make_mysql_tables -p
./grant_mysql_privileges -p

Pour ceux qui utilisent une base distante vous pouvez créer la bdd et le user à la main puis importer les tables à distance

mysql -h serveur_distant -u bacula -p bacula < bacula.sql

Le fichier bacula.sql est tout simplement le fichier « make_mysql_tables » ou j’ai laissé les données SQL .

On copie les fichiers nécessaires

# cp bacula-ctl-dir /etc/init.d/bacula-director
# cp bacula-ctl-fd /etc/init.d/bacula-fd
# cp bacula-ctl-sd /etc/init.d/bacula-sd
# cp bacula /etc/init.d/
chmod 755 /etc/init.d/bacula-sd
chmod 755 /etc/init.d/bacula-fd
chmod 755 /etc/init.d/bacula-director
chmod 755 /etc/init.d/bacula

En ouvrant le fichier bacula-dir.conf dans le répertoire /etc/bacula , ce fichier est complètement incompréhensible à mon sens. Ce fichier sera certainement ingérable si vous avez plusieurs serveurs ou une conf plutôt complexe. Déjà pour trois serveurs perso que je backup c’est déjà la merde.

Nous allons donc éclater la conf pour avoir quelques choses de plus potable :) (le changement c’est maintenant).

Après ces belles paroles la configuration du director

Director {                            # define myself
  Name = ftp-01-dir
  DIRport = 9101                # where we listen for UA connections
  QueryFile = "/etc/bacula/query.sql"
  WorkingDirectory = "/var/bacula/working"
  PidDirectory = "/var/run"
  Maximum Concurrent Jobs = 10
  Password = "11a3e229084349bc25d97e29393ced1d"         # Console password
  Messages = Daemon
}

# Generic catalog service
Catalog {
  Name = MyCatalog
# Uncomment the following line if you want the dbi driver
  dbname = "db_name"; dbaddress = "host-mysql"; dbuser = "user_mysql"; dbpassword = "your_pass"
}

#
# Restricted console used by tray-monitor to get the status of the director
#
Console {
  Name = ftp-01-mon
  Password = "82c16692a7f9040f3a6eb6a6a3f3c141"
  CommandACL = status, .status
}
@/etc/bacula/conf.d/clients.conf
@/etc/bacula/conf.d/pools.conf
@/etc/bacula/conf.d/jobs.conf
@/etc/bacula/conf.d/fileset.conf
@/etc/bacula/conf.d/schedule.conf
@/etc/bacula/conf.d/storage.conf
@/etc/bacula/conf.d/messages.conf

Ça pique moins les yeux non ?

echo password |md5sum
286755fad04869ca523320acce0dc6a4

Sinon pour le reste ce fichier n’est pas très compliqué à comprendre donc je vais pas trop m’éterniser dessus .

Le fichier clients.conf

# Client (File Services) to backup
Client {
  Name = ftp-01-fd
  Address = ftp-01
  FDPort = 9102
  Catalog = MyCatalog
  Password = "9b36b2e89df94bc458d629499d38cf86"          # password for FileDaemon
  File Retention = 30 days            # 30 days
  Job Retention = 6 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Le fichier pools.conf

# Default pool definition
Pool {
  Name = Default
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 365 days         # one year
}

# File Pool definition
Pool {
  Name = File
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 60 days         # one year
  Maximum Volume Bytes = 10G          # Limit Volume size to something reasonable
  Maximum Volumes = 100               # Limit number of Volumes in Pool
}

# Scratch pool definition
Pool {
  Name = Scratch
  Pool Type = Backup
}

Le fichier jobs.conf

JobDefs {
  Name = "DefaultJob"
  Type = Backup
  Level = Incremental
  FileSet = "Full Set"
  Schedule = "WeeklyCycle"
  Storage = File
  Messages = Standard
  Pool = File
  Priority = 10
  Write Bootstrap = "/var/bacula/working/%c.bsr"
}

#
# Define the main nightly save backup job
#   By default, this job will back up to disk in /tmp
Job {
  Name = "BackupFTP-01"
  JobDefs = "DefaultJob"
  Client = ftp-01-fd 
}

# Backup the catalog database (after the nightly save)
Job {
  Name = "BackupCatalog"
  JobDefs = "DefaultJob"
  Level = Full
  FileSet="Catalog"
  Schedule = "WeeklyCycleAfterBackup"
  Client = ftp-01-fd 
  # This creates an ASCII copy of the catalog
  # Arguments to make_catalog_backup.pl are:
  #  make_catalog_backup.pl 
  RunBeforeJob = "/etc/bacula/make_catalog_backup.pl MyCatalog"
  # This deletes the copy of the catalog
  RunAfterJob  = "/etc/bacula/delete_catalog_backup"
  Write Bootstrap = "/var/bacula/working/%n.bsr"
  Priority = 11                   # run after main backup
}

#
# Standard Restore template, to be changed by Console program
#  Only one such job is needed for all Jobs/Clients/Storage ...
#
Job {
  Name = "RestoreFiles"
  Type = Restore
  Client=ftp-01-fd                 
  FileSet="Full Set"                  
  Storage = File                      
  Pool = Default
  Messages = Standard
  Where = /tmp/bacula-restores
}
Job {
  Name = "Client-xx"
  JobDefs = "DefaultJob"
  Client = Client-xx-fd 
}

Le fichier FileSet

FileSet {
  Name = "Full Set"
  Include {
    Options {
      signature = MD5
      compression=GZIP9
    }

    File = /
    File = /backup
  }

#
# If you backup the root directory, the following two excluded
#   files can be useful
#
  Exclude {
    File = /var/bacula/working
    File = /tmp
    File = /proc
    File = /tmp
    File = /.journal
    File = /.fsck
  }
}

# This is the backup of the catalog
FileSet {
  Name = "Catalog"
  Include {
    Options {
      signature = MD5
    }
    File = "/var/bacula/working/bacula.sql"
  }
}
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              11G  3.7G  6.7G  36% /
tmpfs                1008M     0 1008M   0% /lib/init/rw
udev                   10M  1.6M  8.5M  16% /dev
tmpfs                1008M  4.0K 1008M   1% /dev/shm
/dev/sda3            276G  247G   15G  95% /data

Pour sauvegarder /data . Il faudra définir

File = / 
File = /data

Le schedule d’une tâche

Schedule {
  Name = "WeeklyCycle"
  Run = Full 1st sun at 23:05
  Run = Differential 2nd-5th sun at 23:05
  Run = Incremental mon-sat at 23:05
}

# This schedule does the catalog. It starts after the WeeklyCycle
Schedule {
  Name = "WeeklyCycleAfterBackup"
  Run = Full sun-sat at 23:10
}

Fichier Storage

# Definition of file storage device
Storage {
  Name = File
# Do not use "localhost" here    
  Address = ftp-01                # N.B. Use a fully qualified name here
  SDPort = 9103
  Password = "4b4d85dc171597e02141842460c902ca"
  Device = FileStorage
  Media Type = File
}

Maintenant que nous avons terminé de configurer bacula et avoir relancé celui-ci. Biensur nous n’avons pas d’erreurs :) .

Il faut maintenant tester que tout est fonctionnel .

Lancement de la première sauvegarde , en ligne de commande tapez « bconsole »

*run
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
A job name must be specified.
The defined Job resources are:
     1: BackupFTP-01
     2: BackupCatalog
     3: RestoreFiles
Select Job resource (1-3): 1
Run Backup job
JobName:  BackupFTP-01
Level:    Incremental
Client:   ftp-01-fd
FileSet:  Full Set
Pool:     File (From Job resource)
Storage:  File (From Job resource)
When:     2013-01-04 16:21:30
Priority: 10
OK to run? (yes/mod/no): yes
Job queued. JobId=1
You have messages.
*
*
04-Jan 16:21 ftp-01-dir JobId 1: No prior Full backup Job record found.
04-Jan 16:21 ftp-01-dir JobId 1: No prior or suitable Full backup found in catalog. Doing FULL backup.
04-Jan 16:21 ftp-01-dir JobId 1: Start Backup JobId 1, Job=BackupFTP-01.2013-01-04_16.21.47_11
04-Jan 16:21 ftp-01-dir JobId 1: Using Device "FileStorage"
04-Jan 16:21 ftp-01-sd JobId 1: Job BackupFTP-01.2013-01-04_16.21.47_11 is waiting. Cannot find any appendable volumes.
Please use the "label" command to create a new Volume for:
    Storage:      "FileStorage" (/mnt/DATA/bacula)
    Pool:         File
    Media type:   File
*

On peut voir que le premier backup n’est pas fontionnel tout simplement car nous n’avons pas de label définit . Pour cela il suffit de taper la commande « label » puis suivre les instruction.

Ne faites pas comme moi donner à votre lab un nom de type LAB-001 par exemple et pas un nom de machine .

Une fois votre label crée celui-ci va être chargé et le premier backup va se lancer . A noter que le 1er backup sera une FULL :)

Job en attente

Running Jobs:
Console connected at 04-Jan-13 16:18
 JobId Level   Name                       Status
======================================================================
     1 Full    BackupFTP-01.2013-01-04_16.21.47_11 is waiting for an appendable Volume
====
No Terminated Jobs.
====

A la fin du backup vous devriez avoir ceci

2013-01-04 16:46:24   ftp-01-dir JobId 3: Bacula ftp-01-dir 5.2.12 (12Sep12):
  Build OS:               i686-pc-linux-gnu debian 6.0.6
  JobId:                  3
  Job:                    BackupFTP-01.2013-01-04_16.40.35_34
  Backup Level:           Full (upgraded from Incremental)
  Client:                 "ftp-01-fd" 5.2.12 (12Sep12) i686-pc-linux-gnu,debian,6.0.6
  FileSet:                "Full Set" 2013-01-04 16:21:47
  Pool:                   "File" (From Job resource)
  Catalog:                "MyCatalog" (From Client resource)
  Storage:                "File" (From Job resource)
  Scheduled time:         04-Jan-2013 16:40:29
  Start time:             04-Jan-2013 16:40:38
  End time:               04-Jan-2013 16:46:24
  Elapsed time:           5 mins 46 secs
  Priority:               10
  FD Files Written:       82,537
  SD Files Written:       82,537
  FD Bytes Written:       1,490,273,300 (1.490 GB)
  SD Bytes Written:       1,502,346,720 (1.502 GB)
  Rate:                   4307.1 KB/s
  Software Compression:   None
  VSS:                    no
  Encryption:             no
  Accurate:               no
  Volume name(s):         LB-FTP-01
  Volume Session Id:      3
  Volume Session Time:    1357311744
  Last Volume Bytes:      1,506,093,303 (1.506 GB)
  Non-fatal FD errors:    0
  SD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Backup OK
2013-01-04 16:46:24   ftp-01-dir JobId 3: Begin pruning Jobs older than 6 months .
2013-01-04 16:46:24   ftp-01-dir JobId 3: No Jobs found to prune.
2013-01-04 16:46:24   ftp-01-dir JobId 3: Begin pruning Files.
2013-01-04 16:46:24   ftp-01-dir JobId 3: No Files found to prune.
2013-01-04 16:46:24   ftp-01-dir JobId 3: End auto prune.

Voila les sauvegardes sont en places elle , les prochaines se lanceront aux heures que vous avez fixé.

C’est bien beau de backuper mais il faut aussi restaurer non ? Une tâche de restauration est plutôt simple à faire . En ligne de commande taper « bconsole »

Enter a period to cancel a command.
*restore
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"

First you select one or more JobIds that contain files
to be restored. You will be presented several methods
of specifying the JobIds. Then you will be allowed to
select which files from those JobIds are to be restored.

To select the JobIds, you have the following choices:
     1: List last 20 Jobs run
     2: List Jobs where a given File is saved
     3: Enter list of comma separated JobIds to select
     4: Enter SQL list command
     5: Select the most recent backup for a client
     6: Select backup for a client before a specified time
     7: Enter a list of files to restore
     8: Enter a list of files to restore before a specified time
     9: Find the JobIds of the most recent backup for a client
    10: Find the JobIds for a backup for a client before a specified time
    11: Enter a list of directories to restore for found JobIds
    12: Select full restore to a specified Job date
    13: Cancel

Si vous connaissez pas l’id du Job que vous souhaitez restaurer , sélectionner l’option 1. Sinon l’option 3. Pour la suite je pars de l’option 3 .

Select item:  (1-13): 3
Enter JobId(s), comma separated, to restore: 29
You have selected the following JobId: 29

Building directory tree for JobId(s) 29 ...  +++++++++++++++++++++
43 files inserted into the tree.

You are now entering file selection mode where you add (mark) and
remove (unmark) files to be restored. No files are initially added, unless
you used the "all" keyword on the command line.
Enter "done" to leave this mode.

cwd is: /

On se retrouve à la racine de notre backup , à cet instant vous pouvez naviguer dans votre arborescence . Pour selectionner un fichier à restaurer il faut utiliser la commande mark

$ mark .bash_history
1 file marked.

Pour commencer la restauration

$ done
Bootstrap records written to /var/bacula/working/ftp-01-dir.restore.1.bsr

The job will require the following
   Volume(s)                 Storage(s)                SD Device(s)
===========================================================================

    Vol-003                   File                      FileStorage              

Volumes marked with "*" are online.

1 file selected to be restored.

Defined Clients:
     1: ftp-01-fd
     2: trinite-01-fd
Select the Client (1-2): 1
Run Restore job
JobName:         RestoreFiles
Bootstrap:       /var/bacula/working/ftp-01-dir.restore.1.bsr
Where:           /tmp/bacula-restores
Replace:         always
FileSet:         Full Set
Backup Client:   ftp-01-fd
Restore Client:  ftp-01-fd
Storage:         File
When:            2013-01-12 11:03:39
Catalog:         MyCatalog
Priority:        10
Plugin Options:  *None*
OK to run? (yes/mod/no): yes
Job queued. JobId=32

A la fin de la restauration vous devriez avoir ceci .

12-Jan 11:03 ftp-01-dir JobId 32: Start Restore Job RestoreFiles.2013-01-12_11.03.45_07
12-Jan 11:03 ftp-01-dir JobId 32: Using Device "FileStorage"
12-Jan 11:03 ftp-01-sd JobId 32: Ready to read from volume "Vol-003" on device "FileStorage" (/mnt/DATA/bacula).
12-Jan 11:03 ftp-01-sd JobId 32: Forward spacing Volume "Vol-003" to file:block 0:1084260538.
12-Jan 11:03 ftp-01-dir JobId 32: Bacula ftp-01-dir 5.2.12 (12Sep12):
  Build OS:               i686-pc-linux-gnu debian 6.0.6
  JobId:                  32
  Job:                    RestoreFiles.2013-01-12_11.03.45_07
  Restore Client:         ftp-01-fd
  Start time:             12-Jan-2013 11:03:47
  End time:               12-Jan-2013 11:03:48
  Files Expected:         1
  Files Restored:         1
  Bytes Restored:         8,909
  Rate:                   8.9 KB/s
  FD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Restore OK

Si vous souhaitez tout sauvegarder il faut faire un « mark * »

Et si nous avions une petite interface web pour voir un peu tout ca . Alors oui elle existe et elle s’appelle webacula

Les pré-requis

Bacula 3.0 or later
Supported MySQL, PostgreSQL and Sqlite databases
Zend Framework version 1.8.3 or later
Zend Framework is built with object-oriented PHP 5 and requires PHP 5.2.4 or later with PDO extension active. Please see the system requirements appendix for more detailed information
Apache and mod_rewrite
Installed php-gd package
Create separate database "webacula" (script in install/ directory) for use Logbook and Restore Job features

Installation de Webacula
Avant tout installer zend

 apt-get install zendframework

Récupérer webacula et déposer les sources dans le document root de votre choix. Qui dit document root dit serveur Web donc je vous laisse également installer celui de votre choix .

Afin de fonctionner Webacula va créer de nouvelle table dans la base de bacula que vous avez créer au tout début . Pour cela il existe un script . Editer le fichier db.conf

# See also application/config.ini

# bacula settings
db_name="Nom BDD Bacula"
# for Sqlite only
db_name_sqlite="/var/bacula/working/bacula.db"
db_user="User name Bacula"

# CHANGE_THIS
db_pwd="Mot de Passe BDD"

# Webacula web interface settings
#
# Built-in superuser login is 'root'
#
# CHANGE_THIS
webacula_root_pwd="Mot de passe de l'interface Webacula"

Une fois ce fichier configuré vous pouvez lancer les 2 scripts qui sont dans

Attention si vous base de donnée n’est pas sur la même machine . Il faut modifier les 2 fichiers comme suit :

#if mysql $* -u $db_user $pwd  $db_name -f <

Vérifier que votre système est prêt à recevoir webacula

/var/www/webacula/install# php5 check_system_requirements.php 

Webacula check System Requirements...

sh: psql: not found
sh: sqlite3: not found
Current MySQL version = 5  OK

Current PHP version = 5 OK

php pdo installed.      OK
php gd installed.       OK
php xml installed.      OK
php dom installed.      OK

php pdo_mysql installed.        OK
Warning. PHP extension pdo_pgsql not installed.
Warning. PHP extension pdo_sqlite not installed.
php-dom, php-xml installed.     OK

Pour ceux qui seront sur apache un fichier de conf est disponible dans le path .

  • install/apache/webacula.conf

Aller sur l’interface d’adiministration . Vous obtiendrez certainement l’erreur ci-dessous.

0. PHP Fatal error: Uncaught exception ‘Zend_Exception’ with message ‘Bacula version mismatch for the Catalog database. Wanted 12, got 14
Workaround.

Pour corriger rien de plus simple . Editer le fichier

vi /var/www/webacula/html/index.php

Puis remplacer comme ceci .

change line from
define(‘BACULA_VERSION’, 12); // Conf incorrecte 
define(‘BACULA_VERSION’, 14); // OK Conf correcte

Les plus

  • Souplesse
  • Gestion en ligne de commande
  • Restauration rapide
  • Gère le backup sur bande
  • Client Multi Plateforme

Les moins

  • Lenteur de l’interface Web pour la restauration .
  • La prise en main

Je ne vous dirais pas que saymieu que tel ou tel produit je ne les connaît  pas mis à part netbackup mais le prix n’est pas le même :) .

Je tiens cependant à vous préciser que ceci est ma première install de bacula , pas mal de paramètres sont par défaut . La sauvegarde étant un sujet relativement sensible je vous conseil de lire la documentation officielle :D

Depuis l’écriture de ce billet ma configuration à déjà évoluée car la volumétrie commençait à être énorme . Bref je pense qu’avec le temps votre configuration évoluera en fonction de vos attentes .

SOURCE

http://wiki.goldzoneweb.info/bacula

 

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

Paquet Fedora du Jour : Lundi productif : ncompress : Décompresser un .Z

lundi 21 janvier 2013 à 10:30

Ncompress est un package contenant des utilitaires de compression et decompression compatibles avec les archives utiilisées sur les sytèmes UNIX (extension de fichier .Z).

Ncompress n'est pas compatible avec les archives de type gzip (.gz) mais gzip doit pouvoir gérer les fichiers en .Z. Il est à noté que ncompress n'est pas sous licence GPL, apache, etc ... mais dans le domaine publique.

L'utilisation de la commande uncompress se fait de la sorte :

uncompress monfichier.Z monfichier

Installation en ligne de commande : yum install ncompress

Installation avec l'interface graphique : Autres > Fast compression and decompression utilities

Localisation dans le menu : Non présent

Lancement en ligne de commande : /usr/bin/uncompress

Site web : http://ncompress.sourceforge.net/

Gravatar de Paquet Fedora du Jour
Original post of Paquet Fedora du Jour.Votez pour ce billet sur Planet Libre.

Tasse de Café : WP Photo Sphere : insérez des panoramas sur 360° dans WordPress

lundi 21 janvier 2013 à 09:00

Il y a quelques temps déjà, je vous présentais un script permettant d’afficher sur vos sites des panoramas sur 360° pris par Photo Sphere, la fonctionnalité phare d’Android 4.2 dont on continue à parler régulièrement. Ce script, développé par Joe Simpson et disponible sur GitHub, est plutôt bien foutu mais n’est pas forcément très simple à utiliser dans WordPress. C’est pourquoi j’ai eu l’idée de développer un plugin permettant d’afficher des panoramas Photo Sphere dans vos articles ou pages WordPress.

WP Photo Sphere

Comme vous l’aurez deviné, ce plugin, simplement nommé WP Photo Sphere, est basé sur le script de Joe Simpson. Pour le télécharger, vous pouvez vous rendre sur cette page, sur WordPress.org ou bien encore sur GitHub (licence GNU GPL). Niveau installation, ça se passe de la même façon qu’avec n’importe quel autre plugin pour WordPress : vous décompressez l’archive, vous uploadez le dossier wp-photo-sphere directement dans le dossier /wp-content/plugins/ de votre installation WordPress et vous finissez en activant le plugin dans le menu de l’administration prévu à cette effet.

Pour ajouter un panorama, il vous suffit ensuite d’uploader ce dernier comme vous le feriez avec n’importe quel autre ficher et de récupérer son ID. Pour insérer le panorama dans votre article ou page, ajoutez simplement le tag [sphere id]id représente l’ID que vous avez copié (par exemple, [sphere 42]). Vous pouvez bien sûr modifier les dimensions du cadre permettant de visionner le panorama en modifiant les valeurs de la largeur et de la hauteur par défaut dans la page d’options (menu Réglages). Il est également possible d’avoir des dimensions différentes pour chaque panorama, en les indiquant simplement avec les attributs width et height, comme par exemple : [sphere 42 width="200" height="400"].

Alors il peut être plutôt utile de décrire ce qu’on obtient avec un tel tag. En réalité, ça n’affiche pas le panorama directement : une image Photo Sphere, c’est gros et histoire d’éviter des chargements inutiles, c’est un simple lien (dont vous pouvez modifier l’apparence dans la page d’options) qui est présenté au lecteur. Il lui suffira de cliquer sur le lien pour charger le panorama et pouvoir naviguer au travers. Notez que le texte du lien peut également être modifié et contenir le titre du panorama (avec le tag %title%). Bien sûr, une fois le panorama chargé, cliquer sur le lien n’a plus aucun effet et vous pouvez, toujours dans la page d’options, choisir de le masquer à l’utilisateur dès que ce dernier a cliqué dessus.

Vous savez tout, n’hésitez pas à tester la chose et à laisser vos impressions ici-même. N’hésitez pas non plus à me faire part de vos idées d’améliorations éventuelles. En attendant, je vous laisse avec un exemple de ce que ça donne côté visiteur (un exemple tout frais pris ce week-end).

WP Photo Sphere (Parc Saint-Pierre d’Amiens)

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

Planet Libre : Brèves du Planet Libre - Monday 21, January 2013

lundi 21 janvier 2013 à 00:00

Fleur Pellerin annonce qu'il faut un cadre législatif favorable au logiciel libre. Quelles propositions ? - L'April

libre politique april


antistress : Le 15 janvier 2013, la ministre chargée des PME, innovation et économie numérique Fleur Pellerin a répondu à une question écrite du député Jean-Jacques Candelier. Dans sa réponse, Fleur Pellerin rappelle les avantages du logiciel libre, et souligne qu'il est essentiel que le cadre législatif européen reste favorable à une croissance forte du logiciel libre.


[EN] Making Firefox love your GNOME Desktop - Christian Schaller

firefox GNOME red_hat


antistress : Red Hat travaille à peaufiner l'intégration de Firefox à GNOME : neutraliser l'écran de veille lors de la lecture plein-écran d'une vidéo HTML5, activer la prise en charge des vidéos H264 via GStreamer, intégrer GIO.


Sortie de Fedora 18 alias Spherical Cow - LinuxFr.org

distribution fedora red_hat


antistress : "En ce mardi 15 janvier 2013, le projet Fedora est fier d’annoncer la sortie de la distribution GNU/Linux Fedora 18. Cette version est baptisée « Spherical Cow »".


Selfstarter

crowdfunding financement cms web


Grégoire : Selfstarter a été lancé par un des fondateurs de Kickstarter et est une application web open-source permettant de créer votre propre site de crowdfunding !


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