#Gnu/Linux, Planet Libre, Android
Comparaison de quelques Explorateurs de fichiers sous Android
Une fois n'est pas coutume, j'ai décidé dans ce billet de comparer rapidement 4 explorateurs de fichiers disponibles sous Android.
J'en ai essayé pas mal, mais j'ai galéré pour trouver celui qui me va bien.
Si ce billet peut aider certain à choisir leur File Manager sous Android j'en serais heureux.
En regardant sur le Google Play, et en triant par popularité, 4 sortent du lot:
Fonctionnalités
Prix |
Gratuit |
Gratuit | Gratuit | Gratuit |
Popularité |
214500 |
323540 |
21380 |
40270 |
Je vais tester 2 choses:
- Les fonctionnalités
- Les débit réseaux (cifs)
Plateforme de test :
- Samsung Galaxy S2
- Cyanogen MOD9
- Android ICS
Mon NAS (assemblé à la main)
- CPU Intel Pentium G620 ( dual Core Sandy Bridge 2.6Ghz)
- Carte Mère : MSI H61I-E35 (Révision B3)
- RAM: Crucial Ballistix Sport DDR3 2 x 4 Go PC12800
- Alim: Be Quiet SFX Power - 300W
- Boitier: Fractal Design Core 1000
- HDD 2.5'' 80Go WD 5400tpm ( OS)
- HDD: 3.5'' 2 x 1 To Western Dgital RE2 SATA2 ( déjà en ma possession) DATA
- Le NAS est rélié en Gigabit sur mon réseau Local ( débit soutenu 800Mbits/s)
- Le mobile est relié en Wifi 802.11g (borne linksys WAP 54G)
- Débit Max constaté en WIFI 25Mbit/s
ES File Explorer
ES File Explorer est un des plus populaire
- L'interface
Remarques & Fonctionnalités:
- Interface Sobre et simpliste mais rapide
- Multiselections
- Recherches
- Gestion des applications (désinstallation)
- Intégration de partages LAN CIFS / FTP / BlueTooth...
- Integration de Dropbox, UbuntuOne, Skydrive ... Mais pas Google Drive !!!
Débit transfert CIFS 16Mbits/s
Astro File Manager
Astro est de loin le plus populaire des gestionnaire de fichier sur Android.
Je comprend aisément ce choix, car son interface est de loin la plus aboutie.
- L'interface
Comme je le disais plus haut l'interface est sans commune mesure avec ses concurents.
Les fonctionnalités sont nombreuses:
- Interface Sobre et intuitive
- Multiselections
- Recherches
- Gestion des applications (désinstallation)
- Recherche des partage réseaux en automatique
- Intégration de partages LAN CIFS / FTP / SFTP
- Integration de Dropbox, GoogleDrive, (Pas de Skydrive)
Malgré une interface superbe et intuitive j'ai trouvé quelques points négatifs
- Interface belle mais poussive, pas très rapide
- Pas de notification de transfert en arriere plan !!!
- Impossible d'ouvrir une Vidéo en réseau CIFS !!! il la télécharge
avant ...
Débits Transfert CIFS
Débit transfert CIFS 11 Mbits/s
Comme je le disais plus haut la fonctionnalité ouvrir avec est bien présente sur
un fichier en LAN CIFS, mais une fois cliqué sur Vidéo, Astro télécharge la vidéo...
Donc inutilisable pour lire des vidéos en direct.
Il existe une version payante à 3€99
OI File Manager
OI File manager est moins populaire que les autres, mais reste dans le top 4
- L'interface
Rien de transcandant dans l'interface de OI
Remarques & Fonctionnalités
- Interface sobre et efficace
- Recherche
- Paramètres peu nombreux
- Pas de multiselection
- Pas d'interface partage réseaux !!!!
File Manager (Rhythm Software)
FM est l'interface que j'utilisais depuis longtemps sur Android.
Je la trouvais simple, efficace et rapide.
- L'interface
Remarques & fonctionnalités:
- Interface Sobre et intuitive
- Multiselections
- Recherches
- Intégration de partages LAN CIFS
- Integration de Dropbox, GoogleDrive, Skydrive, Box...
Débits Transfert CIFS
Débit transfert CIFS 6Mbits/s
Impossible de monter au dessus des 6Mbits/s !!!
Conclusion
Maxi 5 étoiles
Interface |
**** |
*****
|
*** |
*** |
Fonctionnalités |
**** |
***** |
* |
*** |
Intégration Cloud |
**** |
**** |
***** |
|
Débit CIFS |
***** |
**** |
** |
|
Total /20 |
17 |
18 |
4 |
13 |
Pour conclure on vois que mis à part OI, les autres solutions sont très bonnes.
OI n'est pas mauvais, mais au niveau des 3 autres...
Astro
A voir les notes on aurait tendance à conseiller Astro qui à une interface superbe, énormément de fonctionnalités, une bonne intégration au cloud ( même si on aurait aimé skydrive, hubic, ubuntuone en plus)
En effet pour quelqun qui ne veut pas regarder de vidéos en réseau Astro est à mon avis le meilleur choix.
Mais pour moi le problème rédibitoire d'Astro, c'est qu'il à été incapable de lancer une vidéo directement !!!
quand on fait "ouvrir avec" il télécharge la vidéo en arrière plan... donc autrement dit vous n'êtes pas prêt de lire votre média...
Surtout si c'est de la HD à plusieurs GigaOctets...
FM Rhythm Soft
J'utilisais depuis très longtemps File Manager de Rhythm, il était rapide, bien intégré à Android, de bonne fonctionnalité Cloud et réseau.
Mais les tests de débits réseau sont catastrophiques !!!
Impossible de dépasser le 6Mbit/s en transfert et en lecture..
C'est long, très long !!!
Ceci en résulte de gros probleme pour lire les vidéos en direct, puisque le débit n'est pas suffisant pour emplir assez vite le buffer du player vidéo..
Donc cela donne des sacades et des freeze intempestifs de la vidéo.
ES
Pour mon utilisation, ES File Explorer est le plus utile.
Même si son interface ne vaut pas Astro, et qu'il à moins de fonctionnalités, il reste rapide et intuitif.
Et surtout c'est le grand gagnant du réseau.
J'ai vu monter les transfert CIFS en pointe a 20Mbits/s, la lecture en direct d'un flux vidéo ne pose pas de problème.
Les liens pour les installer à partir du Google Play
#Gnu/Linux, Planet Libre
Installation d'une solution de collaboration Ethercalc: Feuille de calcul collaborative
Je cherchais depuis un moment, un outil collaboratif.
Je cherche toujours des alternatives aux Géants du Web tels que Google ou Microsoft.
Mais force est de constater qu'il n'existe aujourd'hui pas de réèls concurents à ses solutions...
Le traitement de texte collaboratif que j'utilise est Etherpad, mais en ce qui concerne les feuille de calcul collaborative, c'est une autre paire de manche...
Ethercalc est un système de feuille collaborative open source, ce type d'outil est tellement rare, qu'il mérite un petit billet.
EtherCalc est un tableur collaboratif en temps réel. Il permet par défaut à un maximum de seize personnes de partager un texte en cours d'élaboration. Les contributions de chacun apparaissent immédiatement sur l'écran de tous les participants et sont signalées par des couleurs différentes. Une fenêtre de messagerie instantanée est également disponible.
Le système ne requiert aucune installation, ni aucune inscription, il suffit d'avoir une connexion internet et un navigateur web. EtherCalc est écrit en JavaScript.
L'application a été lancée le 19 novembre 2008 par David Greenspan, Aaron Iba et J.D. Zamfirescu (ces deux derniers travaillaient auparavant pour Google).
Le 4 décembre 2009, Google rachète AppJet, la société qui possède le logiciel et il est annoncé que cette application collaborative sera proposée sous licence Open Source1.
Le 17 décembre 2009, Google libère les sources d'EtherCalc sous licence Apache v2.
source: Wikipedia.
EtherCalc
- Language: LiveScript
- Runtime: Node.js (0.8+ preferred; compatible with 0.4)
- Services: Redis (2.4+; fall-back to on-disk JSON storage if not present)
- Browsers tested: Safari, Chrome, Firefox, IE.
- Integrated with content management systems:
- Overview:
- English: http://ethercalc.net/
- 中文版: http://ethercalc.tw/
Plateforme Materielle :
Comme d'habitude, j'ai monté mon prototype sur ma plateforme de virtualisation:
- HP® Proliant DL120
- CPU: 1x Intel® Xeon® E3-1220
- RAM: 16 Go DDR3 ECC
- HDD: 2 x 2 To SATA2 Raid 0 / Raid 1 HARD (P410)
- LAN: 1 Gbit/sec
Plateforme logicielle hyperviseur:
- Dom0 Ubuntu 12.04 X86_64 Xen 4.1
- DomU Xen Ubuntu 12.04 X86_64 Paravirtualisé
- 2 vcpus
- 512 Mo de Ram
- HDD 16GB
Installation:
Pour commencer j'ai mis à jour totalement mon DomU ubuntu 12.04; mon template avait quelques maj de retard :)
- Mise à niveau du DomU
root@ubuntults:/# apt-get update; apt-get upgrade
root@ubuntults:/# apt-get install linux-headers-server linux-image-server linux-server
root@ubuntults:/# reboot
- Installation des prérequis
root@antony-linux:/home/antony# apt-get install gzip git-core curl python perl build-essential
- Installation de node.js
Attention, ethercalc n'est pour l'instant pas compatible avec node.js v9
On utilise la version packagée dans ubuntu 12.04 : nodejs_0.6.12
root@antony-linux:/home/antony# apt-get install nodejs npm
- Installation de Ethercalc
root@ubuntu:~# cd /opt/
root@ubuntu:/opt# git clone https://github.com/audreyt/ethercalc.git
Cloning into 'ethercalc'...
remote: Counting objects: 2049, done.
remote: Compressing objects: 100% (1263/1263), done.
remote: Total 2049 (delta 755), reused 1905 (delta 626)
Receiving objects: 100% (2049/2049), 3.03 MiB | 1.73 MiB/s, done.
Resolving deltas: 100% (755/755), done.
On installe ethercalc:
root@ubuntults:/opt/ethercalc# root@ubuntu:/opt/ethercalc# npm i -g ethercalc
npm http GET https://registry.npmjs.org/ethercalc
npm http 200 https://registry.npmjs.org/ethercalc
npm http GET https://registry.npmjs.org/ethercalc/-/ethercalc-0.20121026.162049.tgz
npm http 200 https://registry.npmjs.org/ethercalc/-/ethercalc-0.20121026.162049.tgz
npm http GET https://registry.npmjs.org/redis
npm http GET https://registry.npmjs.org/uuid-pure
npm http GET https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/zappajs
npm http GET https://registry.npmjs.org/hiredis
npm http 200 https://registry.npmjs.org/uuid-pure
npm http GET https://registry.npmjs.org/uuid-pure/-/uuid-pure-1.0.10.tgz
npm http 200 https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/optimist/-/optimist-0.3.5.tgz
npm http 200 https://registry.npmjs.org/uuid-pure/-/uuid-pure-1.0.10.tgz
npm http 200 https://registry.npmjs.org/zappajs
npm http GET https://registry.npmjs.org/zappajs/-/zappajs-0.4.12.tgz
npm http 200 https://registry.npmjs.org/optimist/-/optimist-0.3.5.tgz
npm http 200 https://registry.npmjs.org/hiredis
npm http GET https://registry.npmjs.org/hiredis/-/hiredis-0.1.14.tgz
npm http 200 https://registry.npmjs.org/zappajs/-/zappajs-0.4.12.tgz
npm http 200 https://registry.npmjs.org/hiredis/-/hiredis-0.1.14.tgz
npm http 200 https://registry.npmjs.org/redis
npm http GET https://registry.npmjs.org/redis/-/redis-0.8.1.tgz
npm http 200 https://registry.npmjs.org/redis/-/redis-0.8.1.tgz
npm http GET https://registry.npmjs.org/wordwrap
npm http GET https://registry.npmjs.org/coffeecup/0.3.17
npm http GET https://registry.npmjs.org/coffee-css/0.0.5
npm http GET https://registry.npmjs.org/node-uuid/1.4.0
npm http GET https://registry.npmjs.org/uglify-js/1.3.4
npm http GET https://registry.npmjs.org/express/3.0.0
npm http GET https://registry.npmjs.org/socket.io/0.9.10
> hiredis@0.1.14 preinstall /usr/local/lib/node_modules/ethercalc/node_modules/hiredis
> make || gmake
cd deps/hiredis && make static
make[1]: Entering directory `/usr/local/lib/node_modules/ethercalc/node_modules/hiredis/deps/hiredis'
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c
npm http 200 https://registry.npmjs.org/wordwrap
npm http GET https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz
npm http 200 https://registry.npmjs.org/coffeecup/0.3.17
npm http GET https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.17.tgz
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb hiredis.c
npm http 200 https://registry.npmjs.org/coffee-css/0.0.5
npm http GET https://registry.npmjs.org/coffee-css/-/coffee-css-0.0.5.tgz
npm http 200 https://registry.npmjs.org/uglify-js/1.3.4
npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-1.3.4.tgz
npm http 200 https://registry.npmjs.org/socket.io/0.9.10
npm http 200 https://registry.npmjs.org/express/3.0.0
npm http GET https://registry.npmjs.org/socket.io/-/socket.io-0.9.10.tgz
npm http GET https://registry.npmjs.org/express/-/express-3.0.0.tgz
npm http 200 https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz
npm http 200 https://registry.npmjs.org/node-uuid/1.4.0
npm http GET https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.0.tgz
npm http 200 https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.17.tgz
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb sds.c
npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-1.3.4.tgz
npm http 200 https://registry.npmjs.org/socket.io/-/socket.io-0.9.10.tgz
npm http 200 https://registry.npmjs.org/express/-/express-3.0.0.tgz
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb async.c
npm http 200 https://registry.npmjs.org/coffee-css/-/coffee-css-0.0.5.tgz
ar rcs libhiredis.a net.o hiredis.o sds.o async.o
npm http 200 https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.0.tgz
make[1]: Leaving directory `/usr/local/lib/node_modules/ethercalc/node_modules/hiredis/deps/hiredis'
node-waf configure build
Setting srcdir to : /usr/local/lib/node_modules/ethercalc/node_modules/hiredis
Setting blddir to : /usr/local/lib/node_modules/ethercalc/node_modules/hiredis/build
Checking for program g++ or c++ : /usr/bin/g++
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for g++ : ok
Checking for node path : not found
Checking for node prefix : ok /usr
'configure' finished successfully (0.075s)
Waf: Entering directory `/usr/local/lib/node_modules/ethercalc/node_modules/hiredis/build'
[1/3] cxx: hiredis.cc -> build/Release/hiredis_1.o
[2/3] cxx: reader.cc -> build/Release/reader_1.o
[3/3] cxx_link: build/Release/hiredis_1.o build/Release/reader_1.o -> build/Release/hiredis.node
Waf: Leaving directory `/usr/local/lib/node_modules/ethercalc/node_modules/hiredis/build'
'build' finished successfully (1.526s)
npm http GET https://registry.npmjs.org/underscore
npm http GET https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/commander/0.6.1
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.3
npm http GET https://registry.npmjs.org/cookie/0.0.4
npm http GET https://registry.npmjs.org/crc/0.2.0
npm http GET https://registry.npmjs.org/fresh/0.1.0
npm http GET https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/send/0.1.0
npm http GET https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/connect/2.6.0
npm http GET https://registry.npmjs.org/policyfile/0.0.4
npm http GET https://registry.npmjs.org/redis/0.7.2
npm http GET https://registry.npmjs.org/socket.io-client/0.9.10
npm http GET https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/optparse/1.0.3
npm http GET https://registry.npmjs.org/uglify-js/1.2.6
npm http GET https://registry.npmjs.org/stylus/0.27.2
npm http 200 https://registry.npmjs.org/mkdirp/0.3.3
npm http GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.3.tgz
npm http 200 https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz
npm http 200 https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/coffee-script/-/coffee-script-1.4.0.tgz
npm http 200 https://registry.npmjs.org/commander/0.6.1
npm http GET https://registry.npmjs.org/commander/-/commander-0.6.1.tgz
npm http 200 https://registry.npmjs.org/cookie/0.0.4
npm http GET https://registry.npmjs.org/cookie/-/cookie-0.0.4.tgz
npm http 200 https://registry.npmjs.org/crc/0.2.0
npm http GET https://registry.npmjs.org/crc/-/crc-0.2.0.tgz
npm http 200 https://registry.npmjs.org/fresh/0.1.0
npm http GET https://registry.npmjs.org/fresh/-/fresh-0.1.0.tgz
npm http 200 https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/methods/-/methods-0.0.1.tgz
npm http 200 https://registry.npmjs.org/send/0.1.0
npm http GET https://registry.npmjs.org/send/-/send-0.1.0.tgz
npm http 200 https://registry.npmjs.org/policyfile/0.0.4
npm http GET https://registry.npmjs.org/policyfile/-/policyfile-0.0.4.tgz
npm http 200 https://registry.npmjs.org/connect/2.6.0
npm http GET https://registry.npmjs.org/connect/-/connect-2.6.0.tgz
npm http 200 https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/debug/-/debug-0.7.0.tgz
npm http 200 https://registry.npmjs.org/underscore
npm http GET https://registry.npmjs.org/underscore/-/underscore-1.4.2.tgz
npm http 200 https://registry.npmjs.org/optparse/1.0.3
npm http GET https://registry.npmjs.org/optparse/-/optparse-1.0.3.tgz
npm http 200 https://registry.npmjs.org/redis/0.7.2
npm http GET https://registry.npmjs.org/redis/-/redis-0.7.2.tgz
npm http 200 https://registry.npmjs.org/socket.io-client/0.9.10
npm http GET https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.10.tgz
npm http 200 https://registry.npmjs.org/uglify-js/1.2.6
npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.6.tgz
npm http 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.3.tgz
npm http 200 https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz
npm http 200 https://registry.npmjs.org/coffee-script/-/coffee-script-1.4.0.tgz
npm http 200 https://registry.npmjs.org/stylus/0.27.2
npm http GET https://registry.npmjs.org/stylus/-/stylus-0.27.2.tgz
npm http 200 https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz
npm http 200 https://registry.npmjs.org/commander/-/commander-0.6.1.tgz
npm http 200 https://registry.npmjs.org/cookie/-/cookie-0.0.4.tgz
npm http 200 https://registry.npmjs.org/crc/-/crc-0.2.0.tgz
npm http 200 https://registry.npmjs.org/fresh/-/fresh-0.1.0.tgz
npm http 200 https://registry.npmjs.org/methods/-/methods-0.0.1.tgz
npm http 200 https://registry.npmjs.org/policyfile/-/policyfile-0.0.4.tgz
npm http 200 https://registry.npmjs.org/send/-/send-0.1.0.tgz
npm http 200 https://registry.npmjs.org/connect/-/connect-2.6.0.tgz
npm http 200 https://registry.npmjs.org/debug/-/debug-0.7.0.tgz
npm http 200 https://registry.npmjs.org/underscore/-/underscore-1.4.2.tgz
npm http 200 https://registry.npmjs.org/optparse/-/optparse-1.0.3.tgz
npm http 200 https://registry.npmjs.org/redis/-/redis-0.7.2.tgz
npm http 200 https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.10.tgz
npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.6.tgz
npm http 200 https://registry.npmjs.org/stylus/-/stylus-0.27.2.tgz
npm http 200 https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz
npm http GET https://registry.npmjs.org/mime/1.2.6
npm http GET https://registry.npmjs.org/qs/0.5.1
npm http GET https://registry.npmjs.org/formidable/1.0.11
npm http GET https://registry.npmjs.org/bytes/0.1.0
npm http GET https://registry.npmjs.org/send/0.0.4
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http 200 https://registry.npmjs.org/qs/0.5.1
npm http GET https://registry.npmjs.org/qs/-/qs-0.5.1.tgz
npm http 200 https://registry.npmjs.org/formidable/1.0.11
npm http GET https://registry.npmjs.org/formidable/-/formidable-1.0.11.tgz
npm http 200 https://registry.npmjs.org/mime/1.2.6
npm http GET https://registry.npmjs.org/mime/-/mime-1.2.6.tgz
npm http 200 https://registry.npmjs.org/pause/0.0.1
npm http GET https://registry.npmjs.org/pause/-/pause-0.0.1.tgz
npm http 200 https://registry.npmjs.org/bytes/0.1.0
npm http GET https://registry.npmjs.org/bytes/-/bytes-0.1.0.tgz
npm http 200 https://registry.npmjs.org/send/0.0.4
npm http GET https://registry.npmjs.org/send/-/send-0.0.4.tgz
npm http 200 https://registry.npmjs.org/qs/-/qs-0.5.1.tgz
npm http 200 https://registry.npmjs.org/formidable/-/formidable-1.0.11.tgz
npm http 200 https://registry.npmjs.org/mime/-/mime-1.2.6.tgz
npm http 200 https://registry.npmjs.org/pause/-/pause-0.0.1.tgz
npm http 200 https://registry.npmjs.org/bytes/-/bytes-0.1.0.tgz
npm http 200 https://registry.npmjs.org/send/-/send-0.0.4.tgz
npm http GET https://registry.npmjs.org/mime/1.2.6
npm http 304 https://registry.npmjs.org/mime/1.2.6
npm http GET https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/cssom
npm http GET https://registry.npmjs.org/mkdirp
npm http 200 https://registry.npmjs.org/mkdirp
npm http GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.4.tgz
npm http 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.4.tgz
npm http 304 https://registry.npmjs.org/debug
npm http 200 https://registry.npmjs.org/cssom
npm http GET https://registry.npmjs.org/cssom/-/cssom-0.2.5.tgz
npm http 200 https://registry.npmjs.org/cssom/-/cssom-0.2.5.tgz
npm http GET https://registry.npmjs.org/uglify-js/1.2.5
npm http GET https://registry.npmjs.org/ws
npm http GET https://registry.npmjs.org/xmlhttprequest/1.4.2
npm http GET https://registry.npmjs.org/active-x-obfuscator/0.0.1
npm http 200 https://registry.npmjs.org/uglify-js/1.2.5
npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz
npm http 200 https://registry.npmjs.org/xmlhttprequest/1.4.2
npm http GET https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.4.2.tgz
npm http 200 https://registry.npmjs.org/active-x-obfuscator/0.0.1
npm http GET https://registry.npmjs.org/active-x-obfuscator/-/active-x-obfuscator-0.0.1.tgz
npm http 200 https://registry.npmjs.org/ws
npm http GET https://registry.npmjs.org/ws/-/ws-0.4.22.tgz
npm http 200 https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.4.2.tgz
npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz
npm http 200 https://registry.npmjs.org/active-x-obfuscator/-/active-x-obfuscator-0.0.1.tgz
npm http 200 https://registry.npmjs.org/ws/-/ws-0.4.22.tgz
npm http GET https://registry.npmjs.org/zeparser/0.0.5
npm http GET https://registry.npmjs.org/commander
npm http GET https://registry.npmjs.org/tinycolor
npm http GET https://registry.npmjs.org/options
npm http 200 https://registry.npmjs.org/zeparser/0.0.5
npm http GET https://registry.npmjs.org/zeparser/-/zeparser-0.0.5.tgz
npm http 200 https://registry.npmjs.org/tinycolor
npm http GET https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz
npm http 200 https://registry.npmjs.org/options
npm http GET https://registry.npmjs.org/options/-/options-0.0.3.tgz
npm http 200 https://registry.npmjs.org/zeparser/-/zeparser-0.0.5.tgz
npm http 200 https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz
npm http 200 https://registry.npmjs.org/options/-/options-0.0.3.tgz
npm http 200 https://registry.npmjs.org/commander
> ws@0.4.22 install /usr/local/lib/node_modules/ethercalc/node_modules/zappajs/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> node install.js
[ws v0.4.22] Attempting to compile blazing fast native extensions.
[ws v0.4.22] Native code compile failed (but the module will still work):
[ws v0.4.22] The native extensions are faster, but not required.
[ws v0.4.22] On Windows, native extensions require Visual Studio and Python.
[ws v0.4.22] On Unix, native extensions require Python, make and a C++ compiler.
[ws v0.4.22] Start npm with --ws:verbose to show compilation output (if any).
/usr/local/bin/ethercalc -> /usr/local/lib/node_modules/ethercalc/bin/ethercalc
ethercalc@0.20121026.162049 /usr/local/lib/node_modules/ethercalc
├── uuid-pure@1.0.10
├── redis@0.8.1
├── optimist@0.3.5 (wordwrap@0.0.2)
├── hiredis@0.1.14
└── zappajs@0.4.12
C'est bien joli, mais déjà on le lance en root ce qui n'est pas jojo et on est obligé de lancer le script à la main...
C'est pas très optimisé...
On crée un user Ethercalc et on donne les droits adéquats.
root@ubuntults:~# useradd ethercalcOn crée maintenant un script d'init afin de pouvoir lancer Ethercalc en tant que daemon
root@ubuntults:~# chown -R ethercalc /opt/ethercalc
Ce script nous permet de lancer ethercalc en tant que ethercalc et aussi de pouvoir la lancer au demmarage.
#!/bin/sh
### BEGIN INIT INFO
# Provides: ethercalc
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts ethercalc
# Description: starts ethercalc lite using start-stop-daemon
### END INIT INFO
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/node/bin"
LOGFILE="/var/log/ethercalc.log"
EPLITE_DIR="/usr/local/bin/"
EPLITE_BIN="ethercalc"
USER="ethercalc"
GROUP="ethercalc"
DESC="Ethercalc"
NAME="ethercalc"
set -e
. /lib/lsb/init-functions
start() {
echo "Starting $DESC... "
start-stop-daemon --start --chuid "$USER:$GROUP" --background --make-pidfile --pidfile /var/run/$NAME.pid --exec $EPLITE_DIR/$EPLITE_BIN -- $LOGFILE || true
echo "done"
}
#We need this function to ensure the whole process tree will be killed
killtree() {
local _pid=$1
local _sig=${2-TERM}
for _child in $(ps -o pid --no-headers --ppid ${_pid}); do
killtree ${_child} ${_sig}
done
kill -${_sig} ${_pid}
}
stop() {
echo "Stopping $DESC... "
while test -d /proc/$(cat /var/run/$NAME.pid); do
killtree $(cat /var/run/$NAME.pid) 15
sleep 0.5
done
rm /var/run/$NAME.pid
echo "done"
}
status() {
status_of_proc -p /var/run/$NAME.pid "" "ethercalc" && exit 0 || exit $?
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "Usage: $NAME {start|stop|restart|status}" >&2
exit 1
;;
esac
exit 0
On le rend executable.
root@ubuntults:/var/log# chmod +x /etc/init.d/ethercalc
On active le script au démmarage:
root@ubuntu:/opt/ethercalc# update-rc.d ethercalc defaults
Adding system startup for /etc/init.d/ethercalc ...
/etc/rc0.d/K20ethercalc -> ../init.d/ethercalc
/etc/rc1.d/K20ethercalc -> ../init.d/ethercalc
/etc/rc6.d/K20ethercalc -> ../init.d/ethercalc
/etc/rc2.d/S20ethercalc -> ../init.d/ethercalc
/etc/rc3.d/S20ethercalc -> ../init.d/ethercalc
/etc/rc4.d/S20ethercalc -> ../init.d/ethercalc
/etc/rc5.d/S20ethercalc -> ../init.d/ethercalc
root@ubuntults:/var/log# /etc/init.d/ethercalc start
Notre ethercalc est bien lancé
root@ubuntu:/opt/ethercalc# ps aux | grep ethercalc
1001 12154 1.7 7.1 724976 35712 ? Sl 22:09 0:00 node /usr/local/bin//ethercalc /var/log/ethercalc.log
root 12190 0.0 0.1 8104 924 pts/0 S+ 22:10 0:00 grep --color=auto ethercalc
L'interface:
- La fonction Graphs
Ethercalc est un outil simple installer, léger, et agréable à utiliser.
Bien sur il est bien loin des fonctionnalités de Google Docs ou autres, mais il a le mérite d'exister.
Pour un usage ponctuel il est très souvent suffisant.
Surtout le plus important c'est qu'il est installé sur vos serveurs.
Ethercalc est un moteur, après il faut faire toute l'intégration CMS autour.
Quelques projets existent déjà: