Exemple d’application utilisant jQuery Mobile et PhoneGap

Voici une application simple, construite en utilisant jQuery Mobile et PhoneGap.

Même si l’application est simple, elle couvre certaines exigences communes des applications mobiles: accès base de données grâce à des services JSON, multi-niveaux vues maître-détail, le passage de paramètres entre les vues, etc…

Vous pouvez jouer avec l’application ou télécharger le code source ci-dessous et le construire pour différentes plates-formes mobiles (utilisant les outils de PhoneGap sur http://build.phonegap.com ).

VirtualBox-AOSP : testez avec Android

VirtualBox-AOSP

This page is now deprecated – please visit the “Buildroid for VirtualBox” page.

This page is dedicated to VirtualBox support in Android, beginning with Ice Cream Sandwich (4.0.x). You’ll find here information on how to use my pre-built Android images for VirtualBox and, more interesting, how to build your own image starting with the AOSP project.

Pre-built image installation

If not already done, you first have to install VirtualBox on your system. On my side, I’m currently using VirtualBox 4.1.6 (r74713) on a Windows 7 32bit system ; please report if the prebuilt images don’t work on some environments. You can download the latest version of VirtualBox for different OS here.

Then you can download one of the OVA file  :

tracker avec Google Analytics en php

https://developers.google.com/analytics/resources/articles/gaTrackingTroubleshooting?hl=fr-FR#usingDebugger

sources : 

https://developers.google.com/analytics/solutions/articles/hello-analytics-api

https://developers.google.com/analytics/resources/articles/gaTrackingTroubleshooting?hl=fr-FR#usingDebugger

 

http://code.google.com/p/php-ga/

Server-Side Google Analytics PHP Client

 

« ga.js in PHP » – Implementation of a generic server-side Google Analytics client in PHP that implements nearly every parameter and tracking feature of the original GA Javascript client.

 

We love Google Analytics and want to contribute to its community with this PHP client implementation. It is intended to be used stand-alone or in addition to an existing Javascript library implementation.

It’s PHP, but porting it to e.g. Ruby or Python should be easy. Building this library involved weeks of documentation reading, googling and testing – therefore its source code is thorougly well-documented.

The PHP client has nothing todo with the Data Export or Management APIs, although you can of course use them in combination.

 

Drush | drupal.org

Installation :

 

 

Install/Update – Unix/OSX

The easiest way to install the latest release of Drush on Unix/Linux systems is via our custom PEAR channel. (See below for Windows-specific instructions)

pear channel-discover pear.drush.org
pear install drush/drush

Tip: Use sudo to overcome permission problems. If the channel-discover fails, try running the following sequence of commands:

pear upgrade --force Console_Getopt
pear upgrade --force pear
pear upgrade-all

To update, run pear upgrade drush/drush

To get alternate drush versions, replace that last line with one of the below that matches your fancy.

pear install drush/drush-4.6.0
pear install drush/drush-5.0.0
  • If you are using Debian or Ubuntu, you can alternatively use the Debian packages uploaded in your distribution. You may need to use the backports to get the latest version, if you are running a LTS or « stable » release.
  • For advice on using Drush with your ISP, see the hosting section of the Resources page on drush.org.

 

 

Mise en route :

se mettre dans dossier

#cd /var/www

 drush status

 drush version

ou drush tout court pour avoir les commandes.

==========================================

activer un module

drush en devel

 

 

/var/www/d7# pear channel-discover pear.firephp.org
Adding Channel « pear.firephp.org » succeeded
Discovery of channel « pear.firephp.org » succeeded
/var/www/d7# pear install firephp/FirePHPCore
downloading FirePHPCore-0.3.2.tgz …
Starting to download FirePHPCore-0.3.2.tgz (25,019 bytes)
………done: 25,019 bytes
install ok: channel://pear.firephp.org/FirePHPCore-0.3.2

 

créez éventuellement le lien symbolique ensuite :

 

 

ln -s /usr/share/php/FirePHPCore FirePHPCore

=====================================

Générer ensuite des vocabulaires

drush genv 20 « livres »
Generated 20 vocabularies.                                                                                                                [success]
Created the following new vocabularies: tijospoh                                                                                          [status]
drepros
weuiwrabrac
chumuchaf
joclejuwran
trujereth
bafru
sluthespaspi
dr
spudofrelip
uocloh
jedrutigabe
mothudromi
wrute
jubiuepiluf
crug
jaclilethahu
setoveb
chathuk
his

 

============================

générer du contenu :

drush en devel*

 

 

 

 

 

Coffee | drupal.org : un excellent module pour retrouver l’admin

Coffee | drupal.org.

Comme Spotlight ou Alfred sou mac :

cela permet une recherche ultra rapide dans les pages d’administration du site, en proposant notamment une auto-complétion très efficace et l’ajout de nouveaux nodes en un clin d’œil.

 

Howto Restart Apache : Redémarrez Apache

Si vous avez apporté des modifications à la configuration Apache httpd.conf ou l’un des autres fichiers de configuration tels que les fichiers vhosts.d, vous devez recharger le service Apache pour que les modifications prennent effet. 

Test de la config apache :

/usr/sbin/apachectl configtest

autre commande interessante : Redemarrage de apache en laissant les connexions en cours se terminer.

/usr/sbin/apachectl graceful

necessite les droits de root

Si Apache n’est pas déjà en cours d’exécution, il sera lancé. 

Si apache est déjà en cours d’exécution alors il se rechargera avec les nouveaux changements, mais ne sera pas coupera pas les connexions actives, ce qui signifie que toute personne qui se trouve au milieu d’un téléchargement va continuer à être en mesure de le télécharger.

25 outils de supervision pour Linux | .: bordel-de-nerd :.

La supervision consiste à indiquer et à commander l’état d’un appel, d’un système ou d’un réseau. Les solutions de supervision permettent de remonter des informations techniques et fonctionnelles du système d’information.

Sous Linux il existe une multitude d’outils ayant cette vocation, cette liste ne se veut pas exhaustive mais à pour but de recenser les commandes les plus utiles qui vous permettrons de garantir la disponibilité et les niveaux de service du système en cas de panne ou de dégradation des performances et également de tenter de prévenir en cas de problème et, le cas échéant, garantir une remontée d’information rapide et une durée d’intervention minimale.

    • 1 – top (affiche la liste des process)

    Affiche des informations sur les processus en cours d’exécution

    Exemple :

    top - 23:57:26 up 3 days,  2:53,  3 users,  load average: 0.00, 0.05, 0.06
    Tasks: 221 total,   1 running, 220 sleeping,   0 stopped,   0 zombie
    Cpu(s):  1.0%us,  0.7%sy,  0.0%ni, 98.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:   4054460k total,  3653468k used,   400992k free,   203804k buffers
    Swap:  9791608k total,    26984k used,  9764624k free,  2215916k cached
     
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
     9058 jlaunay   20   0  563m  67m  41m S    3  1.7   2:58.32 kwin
     9185 jlaunay   20   0  414m  34m  17m S    2  0.9   1:26.80 konsole
     8935 root      20   0  154m  75m  16m S    2  1.9   4:54.16 X
     9205 jlaunay   20   0  533m  86m  36m S    2  2.2   3:37.03 python
     9392 jlaunay   20   0  438m  48m  20m S    2  1.2   3:39.12 choqok
     9647 jlaunay   20   0  494m  56m  25m S    2  1.4   3:27.97 akregator
    10273 jlaunay   20   0  580m  52m  29m S    2  1.3   2:59.34 kmail
    16883 jlaunay   20   0  410m  66m  27m S    2  1.7   1:08.95 ark
      • 2 – htop (affichage interactif des process)

      Tout comme le fait top, htop donne des statistiques sur les processus en cours d’éxecution mais avec une interface ncurses interactive.

      Exemple :
      MSSQL_MySQL

        • 3 – powertop (identifier les processus « gourmands »)

        Cet outil ne fonctionne qu’avec les processeurs intel et permet d’augmenter la durée de vie de la batterie d’un portable en identifiant les applications et/ou modes qui sollicitent le plus le processeur.

        Exemple : (top doit être lancé en root en parallèle)

        < Les informations détaillées sur les P-states (fréquences)
                                                2,40 GHz   100,0%
                                                1,60 GHz     0,0%
         
         
         
         
        Réveils depuis l'état de repos par seconde :  176,1     intervalle : 10,0s
        Pas d'estimation ACPI disponible pour la consommation électrique
         
        Principales causes de réveils :
          28,6% (220,2)   <cœur du noyau> : hrtimer_start_range_ns (tick_sched_timer) 
          18,0% (138,6)           firefox : hrtimer_start_range_ns (hrtimer_wakeup) 
           8,0% ( 62,0)    <interruption> : ahci, uhci_hcd:usb3, firewire_ohci, nvidia 
           5,7% ( 44,1)    <interruption> : ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8 
           5,7% ( 44,1)   Périphérique USB  8-1 : Dell USB Optical Mouse (Dell) 
           3,7% ( 28,3)           konsole : hrtimer_start_range_ns (hrtimer_wakeup) 
           3,4% ( 26,3)   Périphérique USB  2-1 : Android Phone (HTC) 
           3,4% ( 26,1)         akregator : hrtimer_start_range_ns (hrtimer_wakeup) 
           2,8% ( 21,5)    <interruption> : ehci_hcd:usb2, uhci_hcd:usb6 
           2,7% ( 21,0)            python : hrtimer_start_range_ns (hrtimer_wakeup) 
           2,6% ( 20,4)             kmail : hrtimer_start_range_ns (hrtimer_wakeup) 
           2,6% ( 20,0)               ark : hrtimer_start_range_ns (hrtimer_wakeup) 
           2,6% ( 20,0)            choqok : hrtimer_start_range_ns (hrtimer_wakeup) 
           2,0% ( 15,5)    <interruption> : pata_jmicron 
         
        Suggestion : activez la politique « ondemand » de contrôle de la vitesse CPU
        pour tout les processeurs avec la commande suivante :
         echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 
         Q - Quitter   R - Rafraîchir    O - Activer la politique CPU « ondeman
          • 4 – kill (terminer un processus par son PID)

          Kill est un outils très simple d’utilisation qui permet de tuer un processus lorsque l’on connait son PID.

          Exemple :

          jlaunay@arch-desktop:~[00:15:51] #87
          $ps ax | grep kate
          19601 ?        S      0:02 kdeinit4: kate [kdeinit] -b                    
          20004 pts/4    S+     0:00 grep --color=tty -d skip kate
           
          jlaunay@arch-desktop:~[00:15:57] #88
          $kill -9 19601
            • 5 – killall (terminer un processus par son nom)

            Killall tout comme kill permet de tuer un processus mais sans connaitre son PID, on utilise ici le nom du process.

            Exemple :

            jlaunay@arch-desktop:~[00:16:06] #89
            $killall -9 kate
              • 6 – ftptop (liste des connexions au serveur FTP)

              Ftptop est un outil simple qui permet de lister les connexions au serveur FTP qui sont actives.

              Exemple :

              ftptop/0.9: Sun May 23 00:22:50 2010, up for 21 days, 17 hrs 30 min
              1 Total FTP Sessions: 0 downloading, 0 uploading, 1 idle
               
              PID   S USER     CLIENT               SERVER          TIME COMMAND                                                           
              18800 I jlaunay  212-xxx-72-xxx.rev.n 94.xx.xxx.6:21  0m28s  idle
                • 7 – mtop (liste des connexions au serveur MySQL)

                A la manière de ftptop, mtop est un outil simple qui permet de lister les connexions au serveur MySQL qui sont actives.

                Exemple :

                load average: 0.06, 0.02, 0.00 mysqld 5.0.51a-24+lenny3 up 79 day(s), 13:56 hrs                                               
                10 threads: 1 running, 5 cached. Queries/slow: 16.5M/0 Cache Hit: 99.28%                                                      
                Opened tables: 0  RRN: 995  TLW: 191  SFJ: 0  SMP: 0  QPS: 0                                                                  
                 
                ID       USER     HOST             DB           TIME   COMMAND STATE        INFO                                              
                214889   root     localhost                            Query                show full processlist
                  • 8 – apachetop (liste des connexions au serveur Web Apache)

                  Pour continuer dans le monitoring d’application serveurs voici apachtop qui comme son nom l’indique permet de donner des statistiques sur l’utilisation du serveur Web Apache.

                  Exemple :

                  last hit: 00:00:00         atop runtime:  0 days, 00:00:35             22:27:13
                  All:            0 reqs (   0.0/sec)          0.0B (    0.0B/sec)       0.0B/req
                  2xx:       0 ( 0.0%) 3xx:       0 ( 0.0%) 4xx:     0 ( 0.0%) 5xx:     0 ( 0.0%)
                  R ( 30s):       0 reqs (   0.0/sec)          0.0B (    0.0B/sec)       0.0B/req
                  2xx:       0 ( 0.0%) 3xx:       0 ( 0.0%) 4xx:     0 ( 0.0%) 5xx:     0 ( 0.0%)
                    • 9 – free (informations sur la mémoire)

                    Free est une commande qui permet de derterminer le pourcentage de mémoire utilisée et libre sur votre système.

                    Exemple :

                    jlaunay@arch-desktop:~[00:30:27] #93
                    $free -t
                                 total       used       free     shared    buffers     cached
                    Mem:          3959       3633        326          0        205       2197
                    -/+ buffers/cache:       1230       2729
                    Swap:         9562         26       9535
                    Total:       13521       3659       9862
                      • 10 – df (utilisation de l’espace disque)

                      Df est un outil simple qui permet de vérifier l’espace disponible sur les disques.

                      Exemple :

                      jlaunay@arch-desktop:~[00:31:01] #95
                      $df -h
                      Sys. de fichiers    Taille  Uti. Disp. Uti% Monté sur
                      /dev/sda1             233G   12G  210G   6% /
                      udev                   10M  248K  9,8M   3% /dev
                      none                  2,0G     0  2,0G   0% /dev/shm
                      /dev/sda2             217G  120G   87G  58% /home
                      /dev/sdb1             459G  198M  435G   1% /mnt/sdb
                      /dev/sdc1             466G  215G  252G  47% /media/Expansion Drive
                        • 11 – du (utilisation de l’espace disque par fichiers ou répertoires)

                        Du donne des statistiques sur la taille d’un répertoire et/ou fichier.

                        Exemple :

                        jlaunay@arch-desktop:~[00:35:15] #100
                        $sudo du -sh /opt
                        Mot de passe : 
                        1,2G    /opt
                          • 12 – w (informations sur les utilisateurs loggés)

                          W est comme who (mais en plus complet) une commande qui donne des informations relatives aux utilisateurs connectés et à ce qu’ils font.

                          Exemple :

                          jlaunay@arch-desktop:~[00:35:21] #101
                          $w
                           00:35:49 up 3 days,  3:31,  3 users,  load average: 0,08, 0,04, 0,04
                          USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
                          root     tty1      Wed23   24:27m  0.31s  0.31s -bash
                          jlaunay  :0        20:49   ?xdm?  49:01   0.30s /bin/sh /usr/bin/startkde
                          jlaunay  pts/0     20:49    3:46m  0.00s  0.00s /usr/bin/kwrited
                            • 13 – finger (informations sur les utilisateurs connectés)

                            Tout comme w et who finger donne des statistiques sur les utilisateurs connectés sur le système.

                            Exemple :

                            jlaunay@arch-desktop:~[00:35:49] #102
                            $finger -l
                            Login: root                             Name: root
                            Directory: /root                        Shell: /bin/bash
                            On since Wed May 19 23:43 (CEST) on tty1   1 day idle
                                 (messages off)
                            No mail.
                            No Plan.
                             
                            Login: jlaunay                          Name: (null)
                            Directory: /home/jlaunay                Shell: /bin/bash
                            On since Sat May 22 20:49 (CEST) on :0 (messages off)
                            On since Sat May 22 20:49 (CEST) on pts/0 from :0
                               3 hours 47 minutes idle
                            No mail.
                            No Plan.
                              • 14 – ps (affiche les processus en cours d’exécution)

                              Ps permet de vérifier en temps réel les processus en cours d’exécution.

                              Exemple :

                              jlaunay@arch-desktop:~[00:40:02] #104
                              $ps auwx | tail
                              jlaunay  20469  0.0  0.0  10556  1188 pts/1    R+   00:40   0:00 ps auwx
                              jlaunay  20470  0.0  0.0   6292   884 pts/1    S+   00:40   0:00 tail
                              jlaunay  20471  0.0  0.0  10556  1184 pts/4    R+   00:40   0:00 ps auwx
                              jlaunay  20472  0.0  0.0   6292   880 pts/4    S+   00:40   0:00 tail
                              root     24983  0.0  0.0      0     0 ?        S    May22   0:00 [scsi_eh_12]
                              root     24984  0.0  0.0      0     0 ?        S    May22   0:04 [usb-storage]
                              root     25008  0.0  0.0  24268  1240 ?        S    May22   0:01 hald-addon-storage: polling /dev/sdd (every 2 sec)
                              privoxy  26798  0.0  0.0 118212  2500 ?        Ss   May22   0:00 /usr/sbin/privoxy --user privoxy privoxy --pidfile /var/run/privoxy.pid /etc/privoxy/config
                              root     27761  0.0  0.0  20852  1744 tty1     S+   May20   0:00 -bash
                              root     27853  0.0  0.0  28604   528 ?        Ss   May20   0:00 /usr/bin/kdm
                                • 15 – pidof (trouver l’ID d’un processus en cours d’exécution)

                                Pidof est un outil très simple mais fort utile qui permet de travailler avec un processus sans pour autant connaitre son PID.

                                Exemple :

                                jlaunay@arch-desktop:~[00:43:44] #105
                                $killall -9 `pidof kate`
                                  • 16 – iostat ( statistiques sur le CPU, les I/O diques)

                                  Iostat est un outil de la suite sysstat qui sort des statistiques sur les entrée/sortie des disques et CPU.

                                  Exemple :

                                  jlaunay@arch-desktop:~[00:47:19] #105
                                  $iostat -c
                                  Linux 2.6.33-ARCH (arch-desktop)        23/05/2010      _x86_64_        (4 CPU)
                                   
                                  avg-cpu:  %user   %nice %system %iowait  %steal   %idle
                                             2,81    0,33    1,65    0,79    0,00   94,42
                                    • 17 – netstat ( statistiques sur l’utilisation réseau)

                                    Outil qui permet la supervision du réseau, routage, interfaces, connexions réseau etc…

                                    Exemple :

                                    jlaunay@arch-desktop:~[00:47:25] #106
                                    $netstat -a |grep LISTEN
                                    tcp        0      0 localhost.localdom:7080 *:*                     LISTEN      
                                    tcp        0      0 *:5801                  *:*                     LISTEN      
                                    tcp        0      0 *:mysql                 *:*                     LISTEN      
                                    tcp        0      0 *:5901                  *:*                     LISTEN      
                                    tcp        0      0 *:x11-1                 *:*                     LISTEN      
                                    tcp        0      0 localhost.localdom:8118 *:*                     LISTEN      
                                    tcp        0      0 *:ssh                   *:*                     LISTEN      
                                    tcp        0      0 *:www                   *:*                     LISTEN      
                                    tcp        0      0 *:x11-1                 *:*                     LISTEN
                                      • 18 – watch (surveille un processus de notre choix)

                                      Watch permet d’exécuter une commande périodiquement et d’en afficher la sortie, très utile pour la supervision.

                                      Exemple :

                                      jlaunay@arch-desktop:~[00:53:03] #113
                                      $watch "dmesg |tail"
                                      Every 2,0s: dmesg |tail                                                       Sun May 23 00:52:47 2010
                                       
                                      usb 2-1: new high speed USB device using ehci_hcd and address 9
                                      scsi12 : usb-storage 2-1:1.0
                                      scsi 12:0:0:0: Direct-Access     HTC      Android Phone    0100 PQ: 0 ANSI: 2
                                      sd 12:0:0:0: Attached scsi generic sg5 type 0
                                      sd 12:0:0:0: [sdd] Attached SCSI removable disk
                                      ip_tables: (C) 2000-2006 Netfilter Core Team
                                      virtuoso-t[9091]: segfault at ffffffffffffffff ip 000000000079c0df sp 00007fffff1a30f0 error 6 in virt
                                      uoso-t[400000+8c0000]
                                      ndiswrapper version 1.56 loaded (smp=yes, preempt=yes)
                                      usbcore: registered new interface driver ndiswrapper
                                        • 19 – mpstat (Statisitques multi processeurs)

                                        Mpstat est un outil de supervision multi processeurs.

                                        Exemple :

                                        $mpstat -P ALL
                                        Linux 2.6.33-ARCH (arch-desktop)        23/05/2010      _x86_64_        (4 CPU)
                                         
                                        00:56:47     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
                                        00:56:47     all    2,81    0,33    1,61    0,79    0,01    0,02    0,00    0,00   94,42
                                        00:56:47       0    3,00    0,18    1,63    0,99    0,02    0,03    0,00    0,00   94,15
                                        00:56:47       1    2,80    0,45    1,66    0,62    0,01    0,02    0,00    0,00   94,44
                                        00:56:47       2    2,85    0,20    1,54    0,95    0,01    0,02    0,00    0,00   94,43
                                        00:56:47       3    2,62    0,48    1,62    0,59    0,01    0,01    0,00    0,00   94,67
                                          • 20 – ifstat (statistiques sur les interfaces)

                                          Ifstat nous informe sur l’utilisation de la bande passante.

                                          Exemple :

                                          $ifstat 
                                                 eth0                ham0       
                                           KB/s in  KB/s out   KB/s in  KB/s out
                                              5.01      1.94      0.00      0.00
                                             94.95      6.59      0.00      0.00
                                              9.50      2.87      0.00      0.00
                                              7.76      2.34      0.00      0.00
                                             29.87      3.84      0.00      0.00
                                             38.95      3.79      0.00      0.00
                                              8.22      3.10      0.08      0.06
                                             21.43      3.13      0.00      0.00
                                             18.73      3.38      0.00      0.00
                                             15.21      2.64      0.00      0.00
                                             14.52      3.19      0.00      0.00
                                             20.00      3.13      0.00      0.00
                                             77.97      6.03      0.00      0.00
                                            • 21 – lsof (stats sur les fichiers ouverts)

                                            Lsof est un outil très complet qui permet d’obtenir des stats sur les fichiers ouverts par un périphérique ou aussi une adresse ou un port, voir les deux exemples ci-dessous.

                                            Exemple :

                                            jlaunay@arch-desktop:~[01:03:49] #120
                                            $lsof /dev/sdc1
                                            COMMAND   PID    USER   FD   TYPE DEVICE  SIZE/OFF   NODE NAME
                                            mplayer 21138 jlaunay    3r   REG   8,33 729574543 275500 /media/Expansion Drive/VIDEOS/INFO/Can_You_Hack_It.mp4
                                             
                                            jlaunay@arch-desktop:~[01:04:10] #121
                                            $lsof -i:80
                                            COMMAND   PID     USER   FD   TYPE   DEVICE SIZE NODE NAME                                            
                                            apache2  4088     root    3u  IPv4 20354343       TCP *:www (LISTEN)
                                            apache2 12782 www-data    3u  IPv4 20354343       TCP *:www (LISTEN)
                                            apache2 15519 www-data    3u  IPv4 20354343       TCP *:www (LISTEN)
                                              • 22 – pmap (stats sur la mémoire d’un process)

                                              Pmap affiche l’adressage de la mémoire d’un processus.

                                              Exemple :

                                              $pmap -d `pidof firefox`
                                              9227:   /usr/bin/firefox
                                              Address           Kbytes Mode  Offset           Device    Mapping
                                              0000000000400000      80 r-x-- 0000000000000000 008:00001 firefox
                                              0000000000614000       4 rw--- 0000000000014000 008:00001 firefox
                                              0000000000615000       4 rw--- 0000000000000000 000:00000   [ anon ]
                                              00007f3061f00000    1024 rw--- 0000000000000000 000:00000   [ anon ]
                                              00007f30633fd000       4 ----- 0000000000000000 000:00000   [ anon ]
                                              00007f309ca00000    1024 rw--- 0000000000000000 000:00000   [ anon ]
                                              00007f309cb22000     108 r--s- 0000000000000000 008:00001 mime.cache
                                              00007f309cb3d000     136 r---- 0000000000000000 008:00001 verdanab.ttf
                                              00007f309cb5f000     384 rw-s- 0000000000000000 000:00004   [ shmid=0x3a50003 ]
                                              00007f309cbbf000    1280 r---- 0000000000000000 008:00002 adblockplus.jar
                                              00007f30a46fd000      12 r-x-- 0000000000000000 008:00001 libxcb-atom.so.1.0.0
                                              00007f30a4700000    2048 ----- 0000000000003000 008:00001 libxcb-atom.so.1.0.0
                                              00007f30a4900000       4 rw--- 0000000000003000 008:00001 libxcb-atom.so.1.0.0
                                              00007f30a4901000      12 r-x-- 0000000000000000 008:00001 libxcb-event.so.1.0.0
                                              00007f30a4904000    2048 ----- 0000000000003000 008:00001 libxcb-event.so.1.0.0
                                              00007f30a4b04000       4 rw--- 0000000000003000 008:00001 libxcb-event.so.1.0.0
                                              00007f30a4b05000       8 r-x-- 0000000000000000 008:00001 libxcb-aux.so.0.0.0
                                              00007f30a4b07000    2048 ----- 0000000000002000 008:00001 libxcb-aux.so.0.0.0
                                              00007f30a4d07000       4 rw--- 0000000000002000 008:00001 libxcb-aux.so.0.0.0
                                                • 23 – uptime (stats sur l’uptime de la machine)

                                                Uptime est une commande très simple qui nous renseigne sur le temps écoulé depuis le dernier reboot de la machine.

                                                Exemple :

                                                root@ks30XXX2:/home/jerome[01:16:56] #61
                                                $uptime 
                                                 01:17:54 up 109 days, 13:08,  1 user,  load average: 0.02, 0.02, 0.00
                                                  • 24 – vmstat (informations sur l’utilisation de la mémoire virtuelle)

                                                  Vmstat permet de vérifier l’utilisation du swap.

                                                  Exemple :

                                                  jlaunay@arch-desktop:~[01:18:09] #129
                                                  $vmstat 5 5
                                                  procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
                                                   r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
                                                   1  1  26984 624176 268960 1834356    0    0    60    83    8    5  3  2 94  1
                                                   1  0  26984 623936 268972 1834372    0    0     0    70  619 1155  3  1 96  0
                                                   1  0  26984 623936 268976 1834372    0    0     0    19  570 1000  2  1 97  0
                                                   1  0  26984 623936 268984 1834376    0    0     0    13  553 1062  2  1 97  0
                                                   2  0  26984 623796 269000 1834380    0    0     0    17  639 1519  3  1 95  0
                                                    • 25 – dstat (analyse des performances du système)

                                                    dstat est un outil de monitoring du système très complet qui a lui seul regroupe les fonctions de iostat, vmstat, netstat et bien plus.

                                                    Exemple :

                                                    jlaunay@arch-desktop:~[01:16:30] #127
                                                    $dstat --noheaders -T --output dstat-export.csv -afv
                                                    Terminal width too small, trimming output.
                                                    --epoch--- --dsk/fd0-----dsk/sda-----dsk/sdb-----dsk/sdc-- --net/eth0----net/ham0- ---paging-->
                                                      epoch   | read  writ: read  writ: read  writ: read  writ| recv  send: recv  send|  in   out >       
                                                    1274570197|   0     0 : 212k  335k:   5B    0 :  25k 2675B|   0     0 :   0     0 |  97B  200B>       
                                                    1274570198|   0     0 :1296k  376k:   0     0 :   0     0 |1274B  330B:   0     0 |   0     0 >
                                                    1274570199|   0     0 :1528k   76k:   0     0 :   0     0 | 936B  264B:   0     0 |   0     0 >
                                                    1274570200|   0     0 :1664k    0 :   0     0 :   0     0 |   0    94B:   0     0 |   0     0 >
                                                    1274570201|   0     0 :1892k    0 :   0     0 :   0     0 |   0    66B:   0     0 |   0     0 >
                                                    1274570202|   0     0 :1592k    0 :   0     0 :   0     0 |   0   816B:   0   529B|   0     0 >
                                                    1274570203|   0     0 :2292k  680k:   0     0 :   0     0 |   0    66B:   0     0 |   0     0 >
                                                    1274570204|   0     0 :1440k    0 :   0     0 :   0     0 |   0     0 :   0     0 |   0     0 >
                                                    1274570205|   0     0 :1092k   16k:   0     0 :   0     0 |3105B 1286B:   0     0 |   0     0 >
                                                    1274570206|   0     0 :1012k    0 :   0     0 :   0     0 |   0     0 :   0     0 |   0     0 >
                                                    1274570207|   0     0 :  32k 1752k:   0     0 :   0     0 |   0     0 :   0     0 |   0     0 >
                                                    1274570208|   0     0 :   0   684k:   0     0 :   0     0 |   0   222B:   0     0 |   0     0 >
                                                    1274570209|   0     0 :   0     0 :   0     0 :   0     0 |   0    66B:   0     0 |   0     0 >
                                                    1274570210|   0     0 :   0     0 :   0     0 :   0     0 |  66B  184B:   0     0 |   0     0 >
                                                    1274570211|   0     0 :   0    16k:   0     0 :   0     0 |   0     0 :   0     0 |   0     0 >
                                                    1274570212|   0     0 :   0     0 :   0     0 :   0     0 |   0    66B:   0     0 |   0     0 >
                                                    1274570213|   0     0 :   0   420k:   0     0 :   0     0 |   0     0 :   0     0 |   0     0 >
                                                    1274570214|   0     0 :  56k   28k:   0     0 :   0     0 |   0   222B:   0     0 |   0     0 >

                                                    Chacun des outils présentés ci-dessus offre beaucoup plus d’options que celles données en exemple de plus je ne rentre absolument pas dans le détail et il est possible de faire beaucoup plus de choses avec ces programmes.

                                                    Il vous est donc conseillé de consulter la page de man avant l’utilisation d’une de ces commandes.

                                                    Si ces outils ne suffisent pas ou que vous n’êtes pas fan de la ligne de commande il faudra alors opter pour un programme de supervision qui utilise snmp pour le réseau et RRDTool pour les graphs (Nagios, Cacti etc…).

                                                    Enfin si vous connaissez d’autres outils de supervision/monitoring utiles et pratiques que j’aurais pu oublier dans cet article n’hésitez pas à m’en faire part dans les commentaires.

                                                    via 25 outils de supervision pour Linux | .: bordel-de-nerd :..

                                                    Solr PHP Solarium et Solr_Php

                                                    classes clientes Solr en php

                                                    http://www.ayalon.ch/en/code-samples/solr-php-client-example

                                                    https://issues.apache.org/jira/browse/SOLR-51

                                                    pour la classe solr client :
                                                     
                                                     
                                                    =>
                                                     
                                                    sudo pecl install -n solr-beta
                                                    (phpize et php curl doivent etre installées)
                                                    #sudo apt-get install php5-curl
                                                    #sudo apt-get install libcurl4-gnutls-dev
                                                    #sudo apt-get install libxml2
                                                    #sudo apt-get install libxml2-dev
                                                     
                                                    wget http://pecl.php.net/get/solr-0.9.11.tgz
                                                    tar -xvf solr-0.9.11.tgz

                                                    Build Solr and install it:

                                                    cd solr-0.9.11
                                                    phpize
                                                    ./configure
                                                    make
                                                    make install

                                                     
                                                    ou bien avec :
                                                    sudo pecl install -n solr-beta
                                                     
                                                    ensutie l’activer :
                                                     
                                                    sudo vi /etc/php5/conf.d/solr.ini

                                                    ajouter la ligne dans le fichier « solr.ini » : extension=solr.so

                                                    ==================
                                                     
                                                    sur le phpinfo vous devriez avoir :
                                                     
                                                    solr
                                                    Solr Extension Version    1.0.1
                                                    Solr Extension Revision Id     $Revision: 311799 $
                                                    Last Build Date     Sep 25 2012
                                                    Last Build Time     16:09:21
                                                    SolrObject     enabled
                                                    SolrDocument     enabled
                                                    SolrDocumentField     enabled
                                                    SolrInputDocument     enabled
                                                    SolrClient     enabled
                                                    SolrParams     enabled
                                                    SolrQuery     enabled
                                                    SolrModifiableParams     enabled
                                                    SolrResponse     enabled
                                                    SolrQueryResponse     enabled
                                                    SolrUpdateResponse     enabled
                                                    SolrPingResponse     enabled
                                                    SolrGenericResponse     enabled
                                                    SolrUtils     enabled
                                                    SolrException     enabled
                                                    SolrIllegalOperationException     enabled
                                                    SolrIllegalArgumentException     enabled
                                                    SolrClientException     enabled
                                                     
                                                    ================================================
                                                     
                                                    (
                                                        ‘hostname’ => « 127.0.0.1 »,
                                                    //    ‘login’    => SOLR_SERVER_USERNAME,
                                                    //    ‘password’ => SOLR_SERVER_PASSWORD,
                                                        ‘port’     => 8080,
                                                        ‘path’     => « /solr4.0.0.beta/collection »,
                                                    //    ‘wt’       =>SOLR_PHP_NATIVE_RESPONSE_WRITER
                                                    );

                                                    $client = new SolrClient($options);

                                                    for($i=0;$i<100;$i++){
                                                      $doc = new SolrInputDocument();
                                                      $doc->addField(‘id’, rand(99999999999,100000000000000000));
                                                      $doc->addField(‘cat’, ‘Software’);
                                                      $doc->addField(‘cat’, ‘Lucene’);
                                                      $updateResponse = $client->addDocument($doc);
                                                    }

                                                     
                                                    =====================================================
                                                     
                                                     

                                                    Installation de Munin sur Debian 6.0 – sorrodje.alter-it.org

                                                    Installation de Munin sur Debian 6.0 – sorrodje.alter-it.org.

                                                     

                                                    gestion des access

                                                    Installation de Munin sur Debian 6.0 – sorrodje.alter-it.org

                                                    Installation de Munin sur Debian 6.0 – sorrodje.alter-it.org.

                                                     

                                                    gestion des access

                                                    Faceted Search with Solr

                                                    Faceted search has become a critical feature for enhancing findability and the user search experience for all types of search applications. In this article, Solr creator Yonik Seeley gives an introduction to faceted search with Solr.

                                                    Solr Faceted Search for Ecommerce

                                                    By Yonik Seeley

                                                    What is Faceted Search?

                                                    Faceted search is the dynamic clustering of items or search results into categories that let users drill into search results (or even skip searching entirely) by any value in any field. Each facet displayed also shows the number of hits within the search that match that category. Users can then « drill down » by applying specific contstraints to the search results. Faceted search is also called faceted browsing, faceted navigation, guided navigation and sometimes parametric search.

                                                    It’s easiest to understand what faceted search is through an example, appropriately from CNET Reviews, the first website to use Solr even before it had been contributed to Apache by CNET.

                                                    Faceted Search example from CNET Reviews

                                                    This example is actually faceted browsing because it started with all digital cameras and not a user search. Manufactuter is a facet of these search results, and the facet constraints or facet values for this facet include Canon USA, Sony, and Nikon. A previous screen also included Price and Digital camera type facets, but they are no longer displayed because we already selected the $400-$500 and SLR constraints from those facets. Due to those constraints, the resulting facet counts and camera listings reflect only digital SLR cameras between $400 and $500 in price. Any of the displayed facet constraints can be clicked to drill down and further narrow the search results by that constraint. Applied constraints can be removed by clicking on them within the breadcrumb trail.

                                                    Faceted search provides an effective way to allow users to refine search results, continually drilling down until the desired items are found. The benefits include

                                                    • Superior feedback – users can see at a glance a summary of the search results and how those results break down by different criteria.

                                                    • No surprises or dead ends – users know how many results match before they click. Values with zero counts are normally removed to reduce visual noise and eliminate the possibility of a user accidentally selecting a constraint that would lead to no results.

                                                    • No selection hierarchy is imposed – users are generally free to add or remove constraints in any order.

                                                     

                                                    Implementing Faceting with Solr

                                                    It’s relatively simple to get faceting information from Solr, as there are few prerequisites. Solr offers the following types of faceting, all of which can be requested with no prior configuration:

                                                    • Field faceting – retrieve the counts for all terms, or just the top terms in any given field. The field must be indexed.

                                                    • Query faceting – return the number of documents in the current search results that also match the given query.

                                                    • Date faceting – return the number of documents that fall within certain date ranges.

                                                    Faceting commands are added to any normal Solr query request, and the faceting counts come back in the same query response. If you are not familiar with the details of making requests in Solr, see the tutorial.

                                                    Implementing the Manufacturer facet

                                                    To implement the Manufacturer facet, I send a field faceting command to Solr. This example assumes a field named « manu » exists in the schema and that it has the manufacturer indexed as a single token. The « string » type in the Solr schema is an appropriate field type to meet these needs.

                                                    Let’s assume for a moment that the user typed « camera » into the search box. The Solr query to retrieve the top « camera » matches would be:

                                                    http://localhost:8983/solr/select?q=camera

                                                     

                                                    To retrieve facet counts for the « manu » field, we would simply add the following parameters to that query request:

                                                    &facet=true&facet.field=manu

                                                    Any number of facet commands can be added to a single query request. To facet on both the « manu » field and the « camera_type » field, we would add the following parameters:

                                                    &facet=true&facet.field=manu&facet.field=camera_type

                                                     

                                                    The query response will now contain facet count information for the given fields in addition to the top matches for the query.

                                                              <lst name="facet_fields">
                                                              <lst name="manu">
                                                              <int name="Canon USA">17</int>
                                                              <int name="Olympus">12</int>
                                                              <int name="Sony">12</int>
                                                              <int name="Panasonic">9</int>
                                                              <int name="Nikon">4</int>
                                                              </lst>
                                                              <lst name="camera_type">
                                                              <int name="Compact">17</int>
                                                              <int name="Ultracompact">11</int>
                                                              <int name="SLR">17</int>
                                                              <int name="Full body">9</int>
                                                              </lst>
                                                            

                                                     

                                                    Facet counts returned are always in the context of the current query. For example, there may be 100 cameras manufacturerd by Canon in the search index, but only 17 that match the current search results. Now it’s up to the presentation layer to display this information to the user in the form of clickable links with counts displayed next to them.

                                                    Implementing the Price facet

                                                    If we request field faceting on the « price » field, we get back counts for individual prices. However, we want price ranges, not individual prices. One workaround is to index another field that contains the ranges that the prices fall into (for example 100_200, 200_300, 300_400) and use field faceting on that field. A more flexible solution is to utilize query facets that provide the ability to retrieve facet counts for arbitrary queries.

                                                    Let’s assume that we have an indexed « price » field and we want to get the facet counts for the following ranges of prices: $100 or less, $100-$200, $200-$300, $300-$400, $400-$500, and $500 or over. We simply add a facet.query command to our query request for each desired range:

                                                    &facet=true&facet.query=price:[* TO 100]
                                                        &facet.query=price:[100 TO 200];&facet.query=[price:200 TO 300]
                                                        &facet.query=price:[300 TO 400];&facet.query=[price:400 TO 500]
                                                        &facet.query=price:[500 TO *]
                                                    

                                                    In addition to the standard query results and any field faceting counts requested, the query response will also contain a facet count for each facet query that was specified.

                                                     <lst name="facet_queries">
                                                      <int name="price:[* TO 100]">28</int>
                                                      <int name="price:[100 TO 200]">54</int>
                                                      <int name="price:[200 TO 300]">98</int>
                                                      <int name="price:[300 TO 400]">84</int>
                                                      <int name="price:[400 TO 500]">73</int>
                                                      <int name="price:[500 TO *]">56</int>
                                                     </lst>
                                                    

                                                     

                                                    Applying Constraints

                                                    Now that we’ve learned how to retrieve facet counts, how do we allow the user to drill down and narrow the search results with any of those constraints? The answer is standard Solr filter queries, where search results are filtered by any number of arbitrary queries.

                                                    Let’s assume again that the user typed « camera » into the search box and we have queried solr for the top matching documents, and also requested some facet counts to be displayed to the user.

                                                    http://localhost:8983/solr/select?q=camera
                                                      &facet=on&facet.field=manu&facet.field=camera_type
                                                      &facet.query=price:[* TO 100]
                                                      &facet.query=price:[100 TO 200];&facet.query=[price:200 TO 300]
                                                      &facet.query=price:[300 TO 400];&facet.query=[price:400 TO 500]
                                                      &facet.query=price:[500 TO *]
                                                    

                                                    Now let’s assume that the user wants to drill down on the constraint $400-$500 from the Price facet to get a new set of results that include only cameras in that price range. For this we use the fq (filter query) parameter, which allows one to filter by a query. We’ll also send the relevant faceting commands again since we also want to update the facet counts.

                                                    http://localhost:8983/solr/select?q=camera
                                                      &facet=on&facet.field=manu&facet.field=camera_type
                                                      &fq=price:[400 to 500]
                                                    

                                                    The fq command can appear anywhere in the query request – parameter order does not matter. Notice that we no longer request the facet counts for the prices since we are constraining results to one price range and thus already know that the counts for other ranges would be zero.

                                                    Now that we’ve received the Solr response and updated the facet display and results listing in our web frontend (including adding « $400-$500 » breadcrumb to allow the user to remove it if desired), let’s assume that the user clicks on « SLR » in the camera_type facet. To filter our search results further, we’ll simply add an additional fq parameter.

                                                    http://localhost:8983/solr/select?q=camera
                                                      &facet=on&facet.field=manu
                                                      &fq=price:[400 to 500]
                                                      &fq=camera_type:SLR
                                                    

                                                    When the Solr response to this request is received by the web front-end, we can add an « SLR » breadcrumb, and once again update our facet counts and top search results.

                                                    Resources

                                                     

                                                     

                                                    Faceted Search with Solr

                                                    Faceted search has become a critical feature for enhancing findability and the user search experience for all types of search applications. In this article, Solr creator Yonik Seeley gives an introduction to faceted search with Solr.

                                                    Solr Faceted Search for Ecommerce

                                                    By Yonik Seeley

                                                    What is Faceted Search?

                                                    Faceted search is the dynamic clustering of items or search results into categories that let users drill into search results (or even skip searching entirely) by any value in any field. Each facet displayed also shows the number of hits within the search that match that category. Users can then « drill down » by applying specific contstraints to the search results. Faceted search is also called faceted browsing, faceted navigation, guided navigation and sometimes parametric search.

                                                    It’s easiest to understand what faceted search is through an example, appropriately from CNET Reviews, the first website to use Solr even before it had been contributed to Apache by CNET.

                                                    Faceted Search example from CNET Reviews

                                                    This example is actually faceted browsing because it started with all digital cameras and not a user search. Manufactuter is a facet of these search results, and the facet constraints or facet values for this facet include Canon USA, Sony, and Nikon. A previous screen also included Price and Digital camera type facets, but they are no longer displayed because we already selected the $400-$500 and SLR constraints from those facets. Due to those constraints, the resulting facet counts and camera listings reflect only digital SLR cameras between $400 and $500 in price. Any of the displayed facet constraints can be clicked to drill down and further narrow the search results by that constraint. Applied constraints can be removed by clicking on them within the breadcrumb trail.

                                                    Faceted search provides an effective way to allow users to refine search results, continually drilling down until the desired items are found. The benefits include

                                                    • Superior feedback – users can see at a glance a summary of the search results and how those results break down by different criteria.

                                                    • No surprises or dead ends – users know how many results match before they click. Values with zero counts are normally removed to reduce visual noise and eliminate the possibility of a user accidentally selecting a constraint that would lead to no results.

                                                    • No selection hierarchy is imposed – users are generally free to add or remove constraints in any order.

                                                     

                                                    Implementing Faceting with Solr

                                                    It’s relatively simple to get faceting information from Solr, as there are few prerequisites. Solr offers the following types of faceting, all of which can be requested with no prior configuration:

                                                    • Field faceting – retrieve the counts for all terms, or just the top terms in any given field. The field must be indexed.

                                                    • Query faceting – return the number of documents in the current search results that also match the given query.

                                                    • Date faceting – return the number of documents that fall within certain date ranges.

                                                    Faceting commands are added to any normal Solr query request, and the faceting counts come back in the same query response. If you are not familiar with the details of making requests in Solr, see the tutorial.

                                                    Implementing the Manufacturer facet

                                                    To implement the Manufacturer facet, I send a field faceting command to Solr. This example assumes a field named « manu » exists in the schema and that it has the manufacturer indexed as a single token. The « string » type in the Solr schema is an appropriate field type to meet these needs.

                                                    Let’s assume for a moment that the user typed « camera » into the search box. The Solr query to retrieve the top « camera » matches would be:

                                                    http://localhost:8983/solr/select?q=camera

                                                     

                                                    To retrieve facet counts for the « manu » field, we would simply add the following parameters to that query request:

                                                    &facet=true&facet.field=manu

                                                    Any number of facet commands can be added to a single query request. To facet on both the « manu » field and the « camera_type » field, we would add the following parameters:

                                                    &facet=true&facet.field=manu&facet.field=camera_type

                                                     

                                                    The query response will now contain facet count information for the given fields in addition to the top matches for the query.

                                                              <lst name="facet_fields">
                                                              <lst name="manu">
                                                              <int name="Canon USA">17</int>
                                                              <int name="Olympus">12</int>
                                                              <int name="Sony">12</int>
                                                              <int name="Panasonic">9</int>
                                                              <int name="Nikon">4</int>
                                                              </lst>
                                                              <lst name="camera_type">
                                                              <int name="Compact">17</int>
                                                              <int name="Ultracompact">11</int>
                                                              <int name="SLR">17</int>
                                                              <int name="Full body">9</int>
                                                              </lst>
                                                            

                                                     

                                                    Facet counts returned are always in the context of the current query. For example, there may be 100 cameras manufacturerd by Canon in the search index, but only 17 that match the current search results. Now it’s up to the presentation layer to display this information to the user in the form of clickable links with counts displayed next to them.

                                                    Implementing the Price facet

                                                    If we request field faceting on the « price » field, we get back counts for individual prices. However, we want price ranges, not individual prices. One workaround is to index another field that contains the ranges that the prices fall into (for example 100_200, 200_300, 300_400) and use field faceting on that field. A more flexible solution is to utilize query facets that provide the ability to retrieve facet counts for arbitrary queries.

                                                    Let’s assume that we have an indexed « price » field and we want to get the facet counts for the following ranges of prices: $100 or less, $100-$200, $200-$300, $300-$400, $400-$500, and $500 or over. We simply add a facet.query command to our query request for each desired range:

                                                    &facet=true&facet.query=price:[* TO 100]
                                                        &facet.query=price:[100 TO 200];&facet.query=[price:200 TO 300]
                                                        &facet.query=price:[300 TO 400];&facet.query=[price:400 TO 500]
                                                        &facet.query=price:[500 TO *]
                                                    

                                                    In addition to the standard query results and any field faceting counts requested, the query response will also contain a facet count for each facet query that was specified.

                                                     <lst name="facet_queries">
                                                      <int name="price:[* TO 100]">28</int>
                                                      <int name="price:[100 TO 200]">54</int>
                                                      <int name="price:[200 TO 300]">98</int>
                                                      <int name="price:[300 TO 400]">84</int>
                                                      <int name="price:[400 TO 500]">73</int>
                                                      <int name="price:[500 TO *]">56</int>
                                                     </lst>
                                                    

                                                     

                                                    Applying Constraints

                                                    Now that we’ve learned how to retrieve facet counts, how do we allow the user to drill down and narrow the search results with any of those constraints? The answer is standard Solr filter queries, where search results are filtered by any number of arbitrary queries.

                                                    Let’s assume again that the user typed « camera » into the search box and we have queried solr for the top matching documents, and also requested some facet counts to be displayed to the user.

                                                    http://localhost:8983/solr/select?q=camera
                                                      &facet=on&facet.field=manu&facet.field=camera_type
                                                      &facet.query=price:[* TO 100]
                                                      &facet.query=price:[100 TO 200];&facet.query=[price:200 TO 300]
                                                      &facet.query=price:[300 TO 400];&facet.query=[price:400 TO 500]
                                                      &facet.query=price:[500 TO *]
                                                    

                                                    Now let’s assume that the user wants to drill down on the constraint $400-$500 from the Price facet to get a new set of results that include only cameras in that price range. For this we use the fq (filter query) parameter, which allows one to filter by a query. We’ll also send the relevant faceting commands again since we also want to update the facet counts.

                                                    http://localhost:8983/solr/select?q=camera
                                                      &facet=on&facet.field=manu&facet.field=camera_type
                                                      &fq=price:[400 to 500]
                                                    

                                                    The fq command can appear anywhere in the query request – parameter order does not matter. Notice that we no longer request the facet counts for the prices since we are constraining results to one price range and thus already know that the counts for other ranges would be zero.

                                                    Now that we’ve received the Solr response and updated the facet display and results listing in our web frontend (including adding « $400-$500 » breadcrumb to allow the user to remove it if desired), let’s assume that the user clicks on « SLR » in the camera_type facet. To filter our search results further, we’ll simply add an additional fq parameter.

                                                    http://localhost:8983/solr/select?q=camera
                                                      &facet=on&facet.field=manu
                                                      &fq=price:[400 to 500]
                                                      &fq=camera_type:SLR
                                                    

                                                    When the Solr response to this request is received by the web front-end, we can add an « SLR » breadcrumb, and once again update our facet counts and top search results.

                                                    Resources

                                                     

                                                     

                                                    Faceted Search with Solr

                                                    Faceted search has become a critical feature for enhancing findability and the user search experience for all types of search applications. In this article, Solr creator Yonik Seeley gives an introduction to faceted search with Solr.

                                                    Solr Faceted Search for Ecommerce

                                                    By Yonik Seeley

                                                    What is Faceted Search?

                                                    Faceted search is the dynamic clustering of items or search results into categories that let users drill into search results (or even skip searching entirely) by any value in any field. Each facet displayed also shows the number of hits within the search that match that category. Users can then « drill down » by applying specific contstraints to the search results. Faceted search is also called faceted browsing, faceted navigation, guided navigation and sometimes parametric search.

                                                    It’s easiest to understand what faceted search is through an example, appropriately from CNET Reviews, the first website to use Solr even before it had been contributed to Apache by CNET.

                                                    Faceted Search example from CNET Reviews

                                                    This example is actually faceted browsing because it started with all digital cameras and not a user search. Manufactuter is a facet of these search results, and the facet constraints or facet values for this facet include Canon USA, Sony, and Nikon. A previous screen also included Price and Digital camera type facets, but they are no longer displayed because we already selected the $400-$500 and SLR constraints from those facets. Due to those constraints, the resulting facet counts and camera listings reflect only digital SLR cameras between $400 and $500 in price. Any of the displayed facet constraints can be clicked to drill down and further narrow the search results by that constraint. Applied constraints can be removed by clicking on them within the breadcrumb trail.

                                                    Faceted search provides an effective way to allow users to refine search results, continually drilling down until the desired items are found. The benefits include

                                                    • Superior feedback – users can see at a glance a summary of the search results and how those results break down by different criteria.

                                                    • No surprises or dead ends – users know how many results match before they click. Values with zero counts are normally removed to reduce visual noise and eliminate the possibility of a user accidentally selecting a constraint that would lead to no results.

                                                    • No selection hierarchy is imposed – users are generally free to add or remove constraints in any order.

                                                     

                                                    Implementing Faceting with Solr

                                                    It’s relatively simple to get faceting information from Solr, as there are few prerequisites. Solr offers the following types of faceting, all of which can be requested with no prior configuration:

                                                    • Field faceting – retrieve the counts for all terms, or just the top terms in any given field. The field must be indexed.

                                                    • Query faceting – return the number of documents in the current search results that also match the given query.

                                                    • Date faceting – return the number of documents that fall within certain date ranges.

                                                    Faceting commands are added to any normal Solr query request, and the faceting counts come back in the same query response. If you are not familiar with the details of making requests in Solr, see the tutorial.

                                                    Implementing the Manufacturer facet

                                                    To implement the Manufacturer facet, I send a field faceting command to Solr. This example assumes a field named « manu » exists in the schema and that it has the manufacturer indexed as a single token. The « string » type in the Solr schema is an appropriate field type to meet these needs.

                                                    Let’s assume for a moment that the user typed « camera » into the search box. The Solr query to retrieve the top « camera » matches would be:

                                                    http://localhost:8983/solr/select?q=camera

                                                     

                                                    To retrieve facet counts for the « manu » field, we would simply add the following parameters to that query request:

                                                    &facet=true&facet.field=manu

                                                    Any number of facet commands can be added to a single query request. To facet on both the « manu » field and the « camera_type » field, we would add the following parameters:

                                                    &facet=true&facet.field=manu&facet.field=camera_type

                                                     

                                                    The query response will now contain facet count information for the given fields in addition to the top matches for the query.

                                                              <lst name="facet_fields">
                                                              <lst name="manu">
                                                              <int name="Canon USA">17</int>
                                                              <int name="Olympus">12</int>
                                                              <int name="Sony">12</int>
                                                              <int name="Panasonic">9</int>
                                                              <int name="Nikon">4</int>
                                                              </lst>
                                                              <lst name="camera_type">
                                                              <int name="Compact">17</int>
                                                              <int name="Ultracompact">11</int>
                                                              <int name="SLR">17</int>
                                                              <int name="Full body">9</int>
                                                              </lst>
                                                            

                                                     

                                                    Facet counts returned are always in the context of the current query. For example, there may be 100 cameras manufacturerd by Canon in the search index, but only 17 that match the current search results. Now it’s up to the presentation layer to display this information to the user in the form of clickable links with counts displayed next to them.

                                                    Implementing the Price facet

                                                    If we request field faceting on the « price » field, we get back counts for individual prices. However, we want price ranges, not individual prices. One workaround is to index another field that contains the ranges that the prices fall into (for example 100_200, 200_300, 300_400) and use field faceting on that field. A more flexible solution is to utilize query facets that provide the ability to retrieve facet counts for arbitrary queries.

                                                    Let’s assume that we have an indexed « price » field and we want to get the facet counts for the following ranges of prices: $100 or less, $100-$200, $200-$300, $300-$400, $400-$500, and $500 or over. We simply add a facet.query command to our query request for each desired range:

                                                    &facet=true&facet.query=price:[* TO 100]
                                                        &facet.query=price:[100 TO 200];&facet.query=[price:200 TO 300]
                                                        &facet.query=price:[300 TO 400];&facet.query=[price:400 TO 500]
                                                        &facet.query=price:[500 TO *]
                                                    

                                                    In addition to the standard query results and any field faceting counts requested, the query response will also contain a facet count for each facet query that was specified.

                                                     <lst name="facet_queries">
                                                      <int name="price:[* TO 100]">28</int>
                                                      <int name="price:[100 TO 200]">54</int>
                                                      <int name="price:[200 TO 300]">98</int>
                                                      <int name="price:[300 TO 400]">84</int>
                                                      <int name="price:[400 TO 500]">73</int>
                                                      <int name="price:[500 TO *]">56</int>
                                                     </lst>
                                                    

                                                     

                                                    Applying Constraints

                                                    Now that we’ve learned how to retrieve facet counts, how do we allow the user to drill down and narrow the search results with any of those constraints? The answer is standard Solr filter queries, where search results are filtered by any number of arbitrary queries.

                                                    Let’s assume again that the user typed « camera » into the search box and we have queried solr for the top matching documents, and also requested some facet counts to be displayed to the user.

                                                    http://localhost:8983/solr/select?q=camera
                                                      &facet=on&facet.field=manu&facet.field=camera_type
                                                      &facet.query=price:[* TO 100]
                                                      &facet.query=price:[100 TO 200];&facet.query=[price:200 TO 300]
                                                      &facet.query=price:[300 TO 400];&facet.query=[price:400 TO 500]
                                                      &facet.query=price:[500 TO *]
                                                    

                                                    Now let’s assume that the user wants to drill down on the constraint $400-$500 from the Price facet to get a new set of results that include only cameras in that price range. For this we use the fq (filter query) parameter, which allows one to filter by a query. We’ll also send the relevant faceting commands again since we also want to update the facet counts.

                                                    http://localhost:8983/solr/select?q=camera
                                                      &facet=on&facet.field=manu&facet.field=camera_type
                                                      &fq=price:[400 to 500]
                                                    

                                                    The fq command can appear anywhere in the query request – parameter order does not matter. Notice that we no longer request the facet counts for the prices since we are constraining results to one price range and thus already know that the counts for other ranges would be zero.

                                                    Now that we’ve received the Solr response and updated the facet display and results listing in our web frontend (including adding « $400-$500 » breadcrumb to allow the user to remove it if desired), let’s assume that the user clicks on « SLR » in the camera_type facet. To filter our search results further, we’ll simply add an additional fq parameter.

                                                    http://localhost:8983/solr/select?q=camera
                                                      &facet=on&facet.field=manu
                                                      &fq=price:[400 to 500]
                                                      &fq=camera_type:SLR
                                                    

                                                    When the Solr response to this request is received by the web front-end, we can add an « SLR » breadcrumb, and once again update our facet counts and top search results.

                                                    Resources

                                                     

                                                     

                                                    distributions drupal

                                                    distributions drupal

                                                    http://epiqo.com/en/recruiter
                                                    http://octopusvideo.org/
                                                    http://www.mediamosa.org/
                                                    http://www.drupalcommerce.org/
                                                    http://openpublishapp.com/
                                                    http://openpublicapp.com/
                                                    http://www.leveltendesign.com/enterprise
                                                    http://www.opendealsapp.com/
                                                    http://www.drupalcommerce.org/
                                                    http://usecod.com/
                                                    http://videola.tv/
                                                    => http://www.slideshare.net/nuvoleweb/building-and-maintaining-a-distribution-in-drupal-7-with-features

                                                    distributions drupal

                                                    distributions drupal

                                                    http://epiqo.com/en/recruiter
                                                    http://octopusvideo.org/
                                                    http://www.mediamosa.org/
                                                    http://www.drupalcommerce.org/
                                                    http://openpublishapp.com/
                                                    http://openpublicapp.com/
                                                    http://www.leveltendesign.com/enterprise
                                                    http://www.opendealsapp.com/
                                                    http://www.drupalcommerce.org/
                                                    http://usecod.com/
                                                    http://videola.tv/
                                                    => http://www.slideshare.net/nuvoleweb/building-and-maintaining-a-distribution-in-drupal-7-with-features

                                                    sigb opensource

                                                    • Pmb : http://www.sigb.net
                                                    • Koha : http://www.koha-fr.org
                                                    • Gnuteca : http://www.gnuteca.org.br/
                                                    • Emilda : http://www.emilda.org/
                                                    • Evergreen : http://www.open-ils.org/
                                                    • AvantiMicroLCS : http://www.avantilibrarysystems.com/
                                                    • Open Biblio (USA): http://obiblio.sourceforge.net/
                                                    • Open Biblio (B) : http://openbiblio.sourceforge.net/

                                                    Open Source Systems for Libraries :
                                                    http://www.oss4lib.org/
                                                    http://umramap.cirad.fr/amap2/logiciels_amap/index.php?page=openamaptheque
                                                    • Free Biblio : l’actualité du logiciel libre et
                                                    gratuit pour bibliothèques :
                                                    http://www.freebiblio.info/

                                                    • Grille d’analyse des logiciels gratuits de
                                                    gestion de bibliothèque :
                                                    http://logiciels.bib.free.fr/index.php

                                                    oBiblio, OPALS,. OpenAmapthèque, OpenBiblio, PhpMyLibrary,. PMB, Senayan.

                                                    sigb opensource

                                                    • Pmb : http://www.sigb.net
                                                    • Koha : http://www.koha-fr.org
                                                    • Gnuteca : http://www.gnuteca.org.br/
                                                    • Emilda : http://www.emilda.org/
                                                    • Evergreen : http://www.open-ils.org/
                                                    • AvantiMicroLCS : http://www.avantilibrarysystems.com/
                                                    • Open Biblio (USA): http://obiblio.sourceforge.net/
                                                    • Open Biblio (B) : http://openbiblio.sourceforge.net/

                                                    Open Source Systems for Libraries :
                                                    http://www.oss4lib.org/
                                                    http://umramap.cirad.fr/amap2/logiciels_amap/index.php?page=openamaptheque
                                                    • Free Biblio : l’actualité du logiciel libre et
                                                    gratuit pour bibliothèques :
                                                    http://www.freebiblio.info/

                                                    • Grille d’analyse des logiciels gratuits de
                                                    gestion de bibliothèque :
                                                    http://logiciels.bib.free.fr/index.php

                                                    oBiblio, OPALS,. OpenAmapthèque, OpenBiblio, PhpMyLibrary,. PMB, Senayan.

                                                    Top Agile and Scrum Tools – Which One Is Best? | Agile Scout

                                                    THE TOP AGILE AND SCRUM TOOLS – WHICH ONE IS BEST?

                                                    Top Agile and Scrum Tools – Which One Is Best? | Agile Scout

                                                    Blogged with the Flock Browser

                                                    Top Agile Tools – Best Kanban Tools | Agile Scout

                                                    Top Agile Tools – Best Kanban Tools


                                                    Top Agile Tools – Best Kanban Tools | Agile Scout

                                                    Blogged with the Flock Browser

                                                    Benoît Sagot – WOLF

                                                    Le WOLF (Wordnet Libre du Français) est une ressource lexicale sémantique (wordnet) libre pour le français.

                                                    Le WOLF a été construit à partir du Princeton WordNet (PWN) et de diverses ressources multilingues (Sagot et Fišer 2008a, Sagot et Fišer 2008b, Fišer et Sagot 2008). Les lexèmes polysémiques ont été traités au moyen d’une approche reposant sur l’alignement en mots d’un corpus parallèle en cinq langues. Le lexique multilingue extrait a été désambiguïsé sémantiquement à l’aide des wordnets des langues concernées. Par ailleurs, une approche bilingue a été suffisante pour construire de nouvelles entrées à l’aide des mots monosémiques. Nous avons pour cela extrait des lexiques bilingues à partir de Wikipedia et de thésaurus. Le wordnet obtenu a été évalué par rapport au wordnet français issu du projet EuroWordNet.

                                                    En 2009, un travail spécifique a été effectué sur les synsets adverbiaux (Sagot, Fort et Venant 2009a, Sagot, Fort et Venant 2009b)
                                                    Le WOLF contient tous les synsets du Princetown WordNet, y compris ceux pour lesquels aucun lexème français n’est connu.

                                                    Le WOLF est au format XML utilisé par le projet BalkaNet. Pour l’instant, les éléments SENSE sont remplis par des informations sur les sources par lesquelles le lexème a été trouvé, et non par son numéro de sens.

                                                    Le WOLF est une ressource libre, distribuée sous licence Cecill-C (compatible LGPL).

                                                    Pour l’instant, le WOLF et le Lefff ne sont pas couplés. Dans les mois à venir, les entrées du Lefff devraient se voir attribuer des identifiants de synsets du WOLF (c’est-à-dire du PWN).

                                                    Benoît Sagot – WOLF

                                                    Fast, light, n-level hierarchical faceting « Software Development at Statsbiblioteket

                                                    see

                                                     

                                                    Hierarchical faceting – working code

                                                    Shahzad Bhatti » Blog Archive » Working with Amazon Web Services

                                                    Working with Amazon Web Services

                                                    I started at Amazon last year, but didn’t actually got chance to work with them until recently when we had to integrate with Amazon Ecommerce Service (ECS).

                                                    Amazon Web Services come in two flavors: REST and SOAP. According to inside sources about 70% use REST. I also found that REST interface was more reliable and simple. Though, I will describe both techniques here:

                                                    Getting Access ID

                                                    First, visit http://www.amazon.com/gp/browse.html?node=3435361 to get your own access key.

                                                    RTFM

                                                    I will describe ECS here and it comes with 450 pages of documentation, though most of it just describes URLs and input/output fields. You can find documentation and sample code at http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=59. I also found Eric Giguerre’s tutorial on AWS very useful.

                                                    Other interesting links include: blog site for updates on AWS, a Forum #1, Forum #2 and FAQ.

                                                    Services

                                                    Inside ECS, you will find following services:

                                                    • ItemSearch
                                                    • BrowseNodeLookup
                                                    • CustomerContentLookup
                                                    • ItemLookup
                                                    • ListLookup
                                                    • SellerLookup
                                                    • SellerListingLookup
                                                    • SimilarityLookup
                                                    • TransactionLookup

                                                    REST Approach

                                                    The rest approach is pretty simple, in fact you can simply type in following
                                                    URL to your browser (with your access key) and will see the results (in XML)
                                                    right away:

                                                    Finding images for Harry Potter Video:

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=%5Byour-key%5D &Operation=ItemSearch&SearchIndex=Video&Keywords=potter%20harry&ResponseGroup=Images

                                                    Finding images for Harry Potter Video:

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=%5Byour-key%5D &Operation=ItemSearch&SearchIndex=Books&Keywords=rails&ResponseGroup=Request,Small

                                                    Finding ASINS by keywords:

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=your-key &Operation=ItemSearch&SearchIndex=Books&Keywords=rails&ResponseGroup=ItemIds

                                                    Find DVD cover art:

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=%5BID%5D&Operation=ItemSearch &SearchIndex=DVD &Keywords=potter%20harry &ResponseGroup=Images

                                                    Find CDs that contain music by Beethoven:

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemSearch &SearchIndex=Music &ResponseGroup=Small,Tracks &Composer=Beethoven

                                                    Find by Vendor:

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemSearch &SearchIndex=Apparel &ResponseGroup=Large,Variations &MerchantId=[ID] &ItemPage=1
                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemSearch &SearchIndex=Apparel &ResponseGroup=Large,Variations &MerchantId=[ID] &ItemPage=2

                                                    Find all new products on Amazon that cost less than $1:00

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemSearch &SearchIndex=Blended &ResponseGroup=Small,Offers &MerchantId=All &MaximumPrice=99

                                                    Find all new/old products on Amazon that cost less than $1:00

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemSearch &SearchIndex=Blended &ResponseGroup=Small,Offers &MerchantId=All &MaximumPrice=99 &Condition=All

                                                    Find used Barbie dolls

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemSearch &SearchIndex=Toys &Title=Barbie &Manufacturer=Mattel &Condition=All &ItemPage=1
                                                    or
                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemSearch &SearchIndex=Toys &Title=Barbie &Manufacturer=Mattel &Condition=All &ItemPage=2
                                                    Scenario #6:

                                                    Search for Godiva dark

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemSearch &SearchIndex=GourmetFood &Keywords=dark%20chocolate
                                                    &Manufacturer=Godiva

                                                    Search for purple products

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemSearch &SearchIndex=Blended &Keywords=purple

                                                    Find competitive pricing

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemLookup &ItemId=ABC1,ABC2,P12345 &ResponseGroup=Request,Small,Offers &Condition=All &MerchantId=All

                                                    Find a toy by UPC

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemLookup Amazon E-Commerce Service Developer Guide 46 &IdType=UPC &ItemId=[UPC] &SearchIndex=Toys &ResponseGroup=Request,Small,Offers &Condition=Collectible &MerchantId=All

                                                    Find a particular gas gril

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemLookup &IdType=UPC &ItemId=[UPC] &SearchIndex=OutdoorLiving &DeliveryMethod=ISUP &ISPUPostalCode=12345 &ResponseGroup=Request,Small,Offers &Condition=All &MerchantId=All

                                                    Compare pricing for different size/color

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemLookup &IdType=SKU &ItemId=[SKU1,SKU2,SKU3] &SearchIndex=Apparel &ResponseGroup=Request,Small,Offers,Variations &MerchantId=[ID]

                                                    Find a book

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemLookup &ItemId=[ASIN] &SearchIndex=Books &ResponseGroup=Request,ItemAttributes,Offers

                                                    Find by ASIN

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemLookup &ItemId=[ASIN]

                                                    Find reviews for bestsellers

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] Amazon E-Commerce Service Developer Guide 47 &Operation=ItemLookup &ItemId=[ASIN] &SearchIndex=Books &ResponseGroup=Request,EditorialReview,Reviews,SalesRank

                                                    See additional customer reviews

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemLookup &ItemId=[ASIN] &SearchIndex=Books &ResponseGroup=Request,Reviews &ReviewPage=2 http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=ItemLookup &ItemId=[ASIN] &SearchIndex=Books &ResponseGroup=Request,Reviews &ReviewPage=3

                                                    Lookup samples and notes

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=SimilarityLookup &ItemId=ABC1 &ResponseGroup=Request,Small,Offers &Condition=All &MerchantId=All

                                                    Lookup similar group of products

                                                    http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[ID] &Operation=SimilarityLookup &ItemId=ABC1,ABC2,ABC3 &ResponseGroup=Request,Small,Offers &Condition=All &MerchantId=All

                                                    The REST base URLs are:

                                                    REST request is pretty simple, in Java all you need is to create URL and add all service arguments as form arguments. For example,

                                                    Blogged with the Flock Browser

                                                    http://www.taggalaxy.de/ – AS_Blog \ Vincent Helwig

                                                    http://www.taggalaxy.de/0 Commentaire Publié le 3 juin 2008 _ WebsiteManière intéressante de visualiser les photos de FlickR. on navigue dans les tags comme dans une galaxie, chaque planète représentant un tag…

                                                    http://www.taggalaxy.de/ – AS_Blog \ Vincent Helwig

                                                    Blogged with the Flock Browser

                                                    Drupal + Alfresco webinar slides available

                                                    People want intranets that are fun and easy to use, full of compelling content relevant to their job, and enabled with social and community features to help them discover connections with other teams, projects, and colleagues. IT wants something that’s lightweight and flexible enough to respond to the needs of the business that won’t cost a fortune.

                                                    That’s why Drupal + Alfresco is a great combination for things like intranets like the one Optaros built for Activision and why we had a record-breaking turnout for the Drupal + Alfresco webinar Chris Fuller and I did today. Thanks to everyone who came and asked good questions. I’ve posted the slides. Alfresco recorded the webinar so they’ll make it available soon, I’m sure. When that happens, I’ll update the post with a link. Until then, enjoy the slides.

                                                    [UPDATE: Fixed the slideshare link (thanks, David!) and added the links to the webinar recording below]

                                                    1. Streaming recording link:
                                                    https://alfresco.webex.com/alfresco/lsr.php?AT=pb&SP=TC&rID=42774837&act=pb&rKey=b44130d69cc9ec5f

                                                    2. Download recording link:
                                                    https://alfresco.webex.com/alfresco/ldr.php?AT=dw&SP=TC&rID=42774837&act=pf&rKey=c50049ac82e1220a

                                                    Drupal + Alfresco webinar slides available

                                                    Blogged with the Flock Browser

                                                    Achievo.org – Project Management Software

                                                    Project Management
                                                    This part includes management of projects, phases, tasks, notes, statistics, planning, members en project templates.

                                                    Time Registration
                                                    The time-registration part is the part where employees can register time on project/phase/activity combinations.

                                                    Scheduler
                                                    Achievo’s scheduler enables users to share a schedule with the other users.

                                                    20 Languages
                                                    Achievo’s core is available in about 20 languages.

                                                    Achievo.org – Project Management Software

                                                    Blogged with the Flock Browser