PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Kiddo : Getting Things GNOME 0.3: retour vers le futur

mercredi 14 novembre 2012 à 01:21

J’aimerais tout simplement saluer le travail de l’équipe de développement derrière GTG, mon logiciel favori (si si, logiciel favori, point final ! Il est essentiel à ma survie).

Pour vous donner le contexte, j’écrivais cette note personnelle dans Tomboy en 2006, suite à la lecture de Getting Things Done:

Nostalgie? Tout à fait. Maintenant, retour vers le futur, où ce problème est résolu par GTG.

Avec la version 0.3, GTG vient de se sortir de la pire crise de development de son existence. En effet, la version 0.2.4 datait de 2010 (faisons fi de la version intermédiaire 0.2.9 qui n’a pas vraiment eu le temps d’être reprise par plusieurs distributions Linux). Un très long cycle de réingéniérie—pas qu’un simple réusinage, non mossieur !—s’est effectué entre 0.2.4 et 0.3. Le résultat est une application qui performe mieux, est plus facile à développer et lave plus blanc. Je vous laisse constater les prouesses de la nouvelle mouture. La liste de bugs réglés par la série 0.3 (incluant les améliorations de 0.2.9) est tellement longue qu’elle fait planter Launchpad. Selon mes estimations, le total se situe à environ 400 bugs résolus (excluant les doublons, invalides, etc).

Puisque je suis maintenant un vieux crouton après toutes ces années d’utilisation intensive de 0.2.4 (malgré ses petits défauts), je ne suis pas encore passé à 0.3 sur ma machine principale—j’attends que ça vienne avec ma distribution Linux. Toutefois, selon mes quelques tests, le tout me semble solide. Je vous invite donc, jeunes chenapans, à utiliser cette nouvelle version de toute urgence, et m’en donner des nouvelles.

Évidemment, je vous invite également à contribuer au projet. Ploum et ses comparses vous aideront certainement à vaincre les monstres de l’espace qui pourraient croiser votre chemin.

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

Politique du Netz : Déminer le dangereux lieu commun «Qui n’a rien à cacher n’a rien à craindre»

mardi 13 novembre 2012 à 13:50

Régulièrement, vous entendez l’argument «Qui n’a rien à cacher n’a rien à craindre», pour justifier la surveillance de plus en plus envahissante de nos vies. Cet argument est non seulement dangereux, mais en plus malhonnête et pleutre.

Dans les commentaires sur le billet d’hier à propos de la base d’ADN annoncée des Suédois, cet argument est régulièrement revenu -l’efficacité de l’application de la loi devrait toujours primer dans la société. C’est une tournure d’esprit très dangereuse. Il y a au moins quatre manières de rejeter cet argument solidement : 

  1. Les règles peuvent changer
  2. Ce n’est pas toi qui détermine si tu es coupable
  3. Les lois doivent pouvoir ne pas être respectées pour que la société puisse changer
  4. La vie privée est un besoin humain fondamental
  1. Les règles peuvent changer

    Une fois que la surveillance généralisée est en place, il est toujours possible que des lois avec lesquelles vous n’êtes pas d’accord soient mises en place, mais il est trop tard pour protester. Par exemple, vous pourriez vouloir des caméras dans toutes les maisons pour prévenir les violences domestiques, et elles seules. Mais il est possible que demain l’homosexualité devienne un crime, et que les homosexuels soient poursuivis jusque chez eux grâce à ces caméras.

  2. Ce n’est pas toi qui détermine si tu es coupable

    Ce n’est pas toi qui décide si tu as quelque chose à craindre. Tu peux te considérer blanc comme neige, ça ne changera rien. Si vous arrêtez votre voiture dans le Quartier Rouge d’Amsterdam tous les week-ends, les services sociaux peuvent décider de placer vos enfants même si c’est votre grand-mère qui habite là. La prévention routière peut vous enlever le permis parce que vous vous arrêtez au bar trop souvent, même si vous n’y faites que manger la spécialité locale. Comme Kafka n’est jamais loin, les gens commenceront à s’auto-censurer.

  3. Les lois doivent pouvoir ne pas être respectées pour que la société puisse changer

    Une société qui respecte toutes ses lois s’arrête en chemin. Penser que tous les criminels doivent nécessairement finir en prison est dangereux, parce qu’il est tout à fait possible que les criminels soient reconnus pas plus tard que dans les cinq ans qui suivent comme étant dans leur bon droit. Il y a une génération, l’homosexualité était un crime. Avec les moyens de surveillance actuel, il est difficile d’imaginer comment les groupes de lutte pour les droits des homosexuels pouvaient se former sans être directement inquiétés par la police. Plus généralement, les sociétés évoluent, et les lois sont rarement en synchronisation complète avec l’état des mœurs et des us.

  4. La vie privée est un besoin humain fondamental

    Lorsque je ferme la porte de ma chambre, même si rien de secret n’y a lieu, je signifie simplement que je veux être au calme. J’ai un besoin fondamental d’avoir des moments de repos où je ne me préoccupe pas du regard des autres, et la société doit respecter ce besoin. Dans les sociétés qui ne laissent aucune place à l’intimité, les gens y répondent toujours par des subterfuges pour satisfaire à leur besoin d’être «hors-société», donc hors du champ de vue de l’État. Voir cette bande dessinée si vous voulez jouer de rhétorique sur ce point.

Dans tous les cas, la prochaine fois qu’on vous répond «Qui n’a rien à cacher n’a rien à craindre», renvoyez vers cet article.

Traduction de Debunking the dangerous «Nothing to fear, nothing to hide» par Falkvinge. Pour l’image.

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

Bartounet : Scrumblr : Tableau collaboratif en ligne

mardi 13 novembre 2012 à 11:57
srumblr
  scrumblr logo

Scrumblr vous offre la possibilité de créer un tableau blanc collaboratif sous forme de Post-it de toutes les couleurs.
L'application en ligne sur vos serveur offre un environnement graphique simple d'utilisation sans enregistrement préalable.

Plateforme Materielle :



Comme d'habitude, j'ai monté mon prototype sur ma plateforme de virtualisation:

Dedibox Pro HP
Plateforme logicielle hyperviseur:
Plateforme Virtuelle:



Installation:

Scrumblr demande quelques prérequis:
redis v2.2.2
node.js >= 0.4.7

En effet scrumblr se base sur redis : Redis (de l'anglais REmote DIctionary Server qui peut-être traduit par « serveur de dictionnaire distant » et jeu de mot avec Redistribute1) est un système de gestion de base de données clef-valeur scalable, très hautes performances, écrit avec le langage de programmation C ANSI et distribué sous licence BSD. Il fait partie de la mouvance NoSQL et vise à fournir les performances les plus élevées possibles.

root@antony-linux:/home/antony# apt-get install git-core build-essential

On télécharge la dernière version de node.js et on la compile
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
On télécharge la version 2.6.4 sur http://redis.io/download

root@ubuntu:/opt#cd /opt
root@ubuntu:/opt# wget http://redis.googlecode.com/files/redis-2.6.4.tar.gz
root@ubuntu:/opt# tar xvfz redis-2.6.4.tar.gz
mv redis-2.6.4 redis
root@ubuntu:/opt# cd /opt/redis/

root@ubuntu:/opt/redis# make

root@ubuntu:/opt/redis# cd src/
root@ubuntu:/opt/redis/src# ./redis-server
[18712] 12 Nov 16:21:00.849 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
[18712] 12 Nov 16:21:00.850 * Max number of open files set to 10032
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 2.6.4 (00000000/0) 64 bit
.-`` .-```. ```\\/ _.,_ ''-._
( ' , .-` | `, ) Running in stand alone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 18712
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'

[18712] 12 Nov 16:21:00.851 # Server started, Redis version 2.6.4
[18712] 12 Nov 16:21:00.851 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
[18712] 12 Nov 16:21:00.851 * The server is now ready to accept connections on port 6379

Bon ok redis tourne
Cf Wikipedia: Une des principales caractéristiques de Redis est de conserver l'intégralité des données en RAM. Cela permet d'obtenir d'excellentes performances en évitant les accès disques, particulièrement coûteux.

Lorsque la taille des données est trop importante pour tenir en mémoire, Redis peut également utiliser de la mémoire virtuelle.

Afin d'assurer la conservation des données en cas d'incident — la mémoire vive étant volatile — Redis offre la possibilité de « capturer » l'état de la base dans un fichier. Cette technique ne permettant pas de garantir la conservation des manipulations effectuées entre deux captures, il est également possible de conserver une trace de toutes ces manipulations. En cas d'incident, la base peut être restaurée en les ré-appliquant dans l'ordre.

On va donc modifier la conf pour le rendre persistent:
On modifie le redis.conf
daemonize yes
pidfile /var/run/redis.pid
logfile /var/log/redis.log

port 6379
bind 127.0.0.1
timeout 300

loglevel notice

## Default configuration options
databases 16

save 900 1
save 300 10
save 60 10000

rdbcompression yes
dbfilename dump.rdb

dir /opt/redis/

glueoutputbuf yes


##Persistence
appendonly yes
appendfsync everysec


root@antony-linux:/home/antony# /opt/redis/redis-cli bgrewriteaof

Redis de base ne démarre pas automatiquement... c'est un peu balot.
Il faut créer un  script d'init.
On crée d'abord un user "redis"
root@ubuntu:/etc/init.d# adduser --system --no-create-home --disabled-login --disabled-password --group redis

root@ubuntu:/etc/init.d# chown -R redis /opt/redis

Mon script d'init:

#!/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/redis.log"
CONFFILE="/opt/redis/redis.conf"
EPLITE_DIR="/opt/redis/src/redis-server"
USER="redis"
GROUP="redis"
DESC="redis"
NAME="redis"

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 -- $CONFFILE || 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 "" "$NAME" && 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

root@ubuntu:/etc/init.d# update-rc.d redis defaults
Adding system startup for /etc/init.d/redis ...
/etc/rc0.d/K20redis -> ../init.d/redis
/etc/rc1.d/K20redis -> ../init.d/redis
/etc/rc6.d/K20redis -> ../init.d/redis
/etc/rc2.d/S20redis -> ../init.d/redis
/etc/rc3.d/S20redis -> ../init.d/redis
/etc/rc4.d/S20redis -> ../init.d/redis
/etc/rc5.d/S20redis -> ../init.d/redis



root@ubuntu:/etc/init.d# /etc/init.d/redis start

root@ubuntu:/etc/init.d# ps aux | grep redis
redis 19666 0.3 0.3 34900 1724 ? Ssl 17:05 0:00 /opt/redis/src/redis-server /opt/redis/redis.conf


Une bonne chose de faite.
Redis se lance
 
On utilse git pour récupérer la dernière version.
root@ubuntu:~# cd /opt/
git clone https://github.com/aliasaria/scrumblr.git

Avant toute chose modifier le package.json ("express": ">2.4.x",)
{
"name": "scrumblr",
"description": "Web-based simulation of a physical agile sprint board that supports real-time collaboration.",
"version": "0.1.0",
"repository": {
"url": "http://github.com/aliasaria/scrumblr"
},
"author": "Ali Asaria",
"main": "server.js",
"directories": {
"lib": "lib/"
},
"engines": {
"node": "0.4.7"
},
"dependencies": {
"async": "0.1.x",
"connect": "1.7.x",
"redis-client": "0.3.x",
"redis": "0.6.x",
"sanitizer": "0.0.x",
"socket.io": "0.8.x",
"simplesets": "1.1.x",
"connect-redis":"1.0.x",
"express": ">2.4.x",
"jade": "0.14.x"
}
}




root@ubuntu:~# cd /opt/scrumblr

root@ubuntu:/opt/scrumblr# npm install
npm http GET https://registry.npmjs.org/redis-client
npm http GET https://registry.npmjs.org/sanitizer
npm http GET https://registry.npmjs.org/express/2.4.5
npm http GET https://registry.npmjs.org/jade
npm http GET https://registry.npmjs.org/simplesets
npm http GET https://registry.npmjs.org/connect
npm http GET https://registry.npmjs.org/connect-redis
npm http GET https://registry.npmjs.org/redis
npm http GET https://registry.npmjs.org/socket.io
npm http GET https://registry.npmjs.org/async
npm http 304 https://registry.npmjs.org/redis-client
npm WARN redis-client@0.3.5 package.json: bugs['web'] should probably be bugs['url']
npm http 304 https://registry.npmjs.org/sanitizer
npm http 304 https://registry.npmjs.org/simplesets
npm http 304 https://registry.npmjs.org/connect
npm http GET https://registry.npmjs.org/connect/-/connect-1.7.3.tgz
npm http 304 https://registry.npmjs.org/connect-redis
npm http GET https://registry.npmjs.org/connect-redis/-/connect-redis-1.0.7.tgz
npm http 304 https://registry.npmjs.org/redis
npm http 200 https://registry.npmjs.org/express/2.4.5
npm http GET https://registry.npmjs.org/redis/-/redis-0.6.7.tgz
npm http GET https://registry.npmjs.org/express/-/express-2.4.5.tgz
npm http 304 https://registry.npmjs.org/socket.io
npm http GET https://registry.npmjs.org/socket.io/-/socket.io-0.8.7.tgz
npm http 304 https://registry.npmjs.org/async
npm http 200 https://registry.npmjs.org/connect/-/connect-1.7.3.tgz
npm http GET https://registry.npmjs.org/async/-/async-0.1.22.tgz
npm http 200 https://registry.npmjs.org/connect-redis/-/connect-redis-1.0.7.tgz
npm http 200 https://registry.npmjs.org/redis/-/redis-0.6.7.tgz
npm http 200 https://registry.npmjs.org/express/-/express-2.4.5.tgz
npm http 200 https://registry.npmjs.org/socket.io/-/socket.io-0.8.7.tgz
npm http 200 https://registry.npmjs.org/jade
npm http 200 https://registry.npmjs.org/async/-/async-0.1.22.tgz
npm http GET https://registry.npmjs.org/jade/-/jade-0.14.2.tgz
npm http 200 https://registry.npmjs.org/jade/-/jade-0.14.2.tgz

npm ERR! Unsupported
npm ERR! Not compatible with your version of node/npm: express@2.4.5
npm ERR! Required: {"node":">= 0.4.1 < 0.5.0"}
npm ERR! Actual: {"npm":"1.1.4","node":"0.6.12"}
npm ERR!
npm ERR! System Linux 3.2.0-32-generic
npm ERR! command "node" "/usr/bin/npm" "install"
npm ERR! cwd /opt/scrumblr
npm ERR! node -v v0.6.12
npm ERR! npm -v 1.1.4
npm ERR! code ENOTSUP
npm ERR! message Unsupported
npm ERR! errno {}
npm http GET https://registry.npmjs.org/socket.io-client/0.8.7
npm http GET https://registry.npmjs.org/policyfile/0.0.4
npm http GET https://registry.npmjs.org/qs
npm http GET https://registry.npmjs.org/mime
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /opt/scrumblr/npm-debug.log
npm not ok
root@ubuntu:/opt/scrumblr# vi package.json ^C
root@ubuntu:/opt/scrumblr# vi README.markdown
root@ubuntu:/opt/scrumblr# vi package.json
root@ubuntu:/opt/scrumblr# npm install
npm http GET https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/jade
npm http 304 https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/jade
npm http GET https://registry.npmjs.org/express/-/express-3.0.2.tgz
npm http 200 https://registry.npmjs.org/express/-/express-3.0.2.tgz
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/cookie-signature/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.2
npm http GET https://registry.npmjs.org/commander/0.6.1
npm http 200 https://registry.npmjs.org/cookie/0.0.4
npm http 200 https://registry.npmjs.org/mkdirp/0.3.3
npm http GET https://registry.npmjs.org/cookie/-/cookie-0.0.4.tgz
npm http GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.3.tgz
npm http 200 https://registry.npmjs.org/crc/0.2.0
npm http 200 https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/crc/-/crc-0.2.0.tgz
npm http GET https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.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/cookie-signature/0.0.1
npm http GET https://registry.npmjs.org/cookie-signature/-/cookie-signature-0.0.1.tgz
npm http 200 https://registry.npmjs.org/cookie/-/cookie-0.0.4.tgz
npm http 200 https://registry.npmjs.org/send/0.1.0
npm http 200 https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/send/-/send-0.1.0.tgz
npm http GET https://registry.npmjs.org/debug/-/debug-0.7.0.tgz
npm http 200 https://registry.npmjs.org/connect/2.6.2
npm http GET https://registry.npmjs.org/connect/-/connect-2.6.2.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/mkdirp/-/mkdirp-0.3.3.tgz
npm http 200 https://registry.npmjs.org/crc/-/crc-0.2.0.tgz
npm http 200 https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.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/cookie-signature/-/cookie-signature-0.0.1.tgz
npm http 200 https://registry.npmjs.org/send/-/send-0.1.0.tgz
npm http 200 https://registry.npmjs.org/debug/-/debug-0.7.0.tgz
npm http 200 https://registry.npmjs.org/connect/-/connect-2.6.2.tgz
npm http 200 https://registry.npmjs.org/commander/-/commander-0.6.1.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/pause/0.0.1
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/mime/1.2.6
npm http GET https://registry.npmjs.org/mime/-/mime-1.2.6.tgz
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/bytes/0.1.0
npm http GET https://registry.npmjs.org/bytes/-/bytes-0.1.0.tgz
npm http 200 https://registry.npmjs.org/pause/-/pause-0.0.1.tgz
npm http 200 https://registry.npmjs.org/mime/-/mime-1.2.6.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/bytes/-/bytes-0.1.0.tgz
jade@0.14.2 ./node_modules/jade
express@3.0.2 ./node_modules/express
├── methods@0.0.1
├── fresh@0.1.0
├── cookie-signature@0.0.1
├── range-parser@0.0.4
├── cookie@0.0.4
├── crc@0.2.0
├── commander@0.6.1
├── debug@0.7.0
├── mkdirp@0.3.3
├── send@0.1.0 (mime@1.2.6)
└── connect@2.6.2


On va tenter de lancer Scrumblr

root@ubuntu:/opt/scrumblr# node server.js 80
The "sys" module is now called "util". It should have a similar interface.
Warning: express.createServer() is deprecated, express
applications no longer inherit from http.Server,
please use:

var express = require("express");
var app = express();

info - socket.io started

node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
TypeError: Cannot read property 'url' of undefined
at Function.handle (/opt/scrumblr/node_modules/express/node_modules/connect/lib/proto.js:104:18)
at Server.app (/opt/scrumblr/node_modules/express/node_modules/connect/lib/connect.js:66:31)
at Server.serverListening (/opt/scrumblr/node_modules/socket.io/node_modules/policyfile/lib/server.js:136:16)
at Server.g (events.js:156:14)
at Server.emit (events.js:64:17)
at Array.1 (net.js:753:10)
at EventEmitter._tickCallback (node.js:192:41)


Arghhh error !!!!!!
Bon j'ai passer un bon moment à me gratter la tête et j'ai réussi à trouver la solution.
Je vous l'offre sur un plateau.
Il semblerait que la version de express installé avec ubuntu 12.04 pose des problème.
On va installer express 2.5.9

root@ubuntu:/opt/scrumblr# npm uninstall express
root@ubuntu:/opt/scrumblr# npm install express@2.5.9

On tente de lancer Srumblr

root@ubuntu:/opt/scrumblr# node server.js 80
The "sys" module is now called "util". It should have a similar interface.
info - socket.io started
Youpi ca se lance.


Maintenant on va aussi faire un script pour lancer Scrumblr en tant que daemon au boot du serveur.

On va utiliser le script /opt/scrumblr/forever.sh
Pour cela il faut install le module forever avec npm


root@ubuntu:/opt/scrumblr# npm install forever -g

root@ubuntu:/opt/scrumblr# vi /etc/init.d/scrumblr

#!/bin/sh

### BEGIN INIT INFO
# Provides: Scrumblr
# 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 Scrumblr
# Description: starts Scrumblr 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/scrumblr.log"
EPLITE_BIN="/opt/scrumblr/forever.sh"
USER="scrumblr"
GROUP="scrumblr"
DESC="scrumblr"
NAME="scrumblr"
PORT="80"

set -e

. /lib/lsb/init-functions

start() {
echo "Starting $DESC... "
$EPLITE_BIN
echo "done"
}


stop() {
echo "Stopping $DESC... "
PIDS=$(pgrep node)
for i in $PIDS;
do
kill -9 $i
done
echo "done"
}

status() {
PIDS=$(pgrep node)
if [ -z "$PID" ]
then
echo "$NAME is running"
else
echo "$NAME is not running"
fi
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart


On le rend executable.
root@ubuntults:/var/log# chmod +x /etc/init.d/scrumblr

On active le script au démmarage:

 root@ubuntu:/opt/scrumblr# update-rc.d scrumblr defaults
Adding system startup for /etc/init.d/scrumblr ...
/etc/rc0.d/K20scrumblr -> ../init.d/scrumblr
/etc/rc1.d/K20scrumblr -> ../init.d/scrumblr
/etc/rc6.d/K20scrumblr -> ../init.d/scrumblr
/etc/rc2.d/S20scrumblr -> ../init.d/scrumblr
/etc/rc3.d/S20scrumblr -> ../init.d/scrumblr
/etc/rc4.d/S20scrumblr -> ../init.d/scrumblr
/etc/rc5.d/S20scrumblr -> ../init.d/scrumblr


root@ubuntults:/var/log# /etc/init.d/scrumblr start

Notre scrumblr est bien lancé

root@ubuntu:/opt/scrumblr# ps aux | grep node
root 3541 0.0 2.6 721084 13412 ? Ssl 12:30 0:00 node /usr/local/bin/forever start -o out.log -e err.log server.js 80
root 3542 0.2 3.7 782720 18608 ? Sl 12:30 0:00 node /opt/scrumblr/server.js 80

L'interface:
Notre node écoute sur le port 80

on arrive donc sur notre board à partir de : http://votre_serveur

scrumblr 1
Ho que c'est joli par contre c'est en Anglais.
Moi j'aime mieux le français.

Il suffit de modifier le fichier: /opt/scrumblr/views/home.jade

Et hop :)

Scrumblr 2

La belle interface, ou vous pouvez créer des notes, des sections, et même coller des gommettes :)

scrumblr3

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

Clapico : Un Conky Météo HTC pour Ubuntu et Linux Mint

mardi 13 novembre 2012 à 10:23

Si vous souhaitez un Conky original, ce clone de l’écran d’accueil du smartphone HTC vous donnera la date, l’heure ainsi que la météo.

Pour l’avoir sur votre écran, vous devez dans un premier temps ouvrir un terminal et entrer la commande

sudo apt-get install conky-all unrar rar

Nous allons maintenant paramétrer notre conky en entrant les unes à la suite des autres les commandes

mkdir -p ~/.Conky

mkdir -p ~/.fonts

cd /tmp

wget -c http://goo.gl/qyjyH -O conky-htc-home.rar

unrar x conky-htc-home.rar

cd Conky*HTC*Home

cp -r fonts/* ~/.fonts

cp -r .Conky ~/

Ceci étant fait, nous allons nous rendre sur AccuWeather.com afin de rechercher les données météo de notre localité.

Une fois la localité trouvée, copiez l’adresse url de la page.

Afin d’ouvrir le fichier de configuration, entrez dans votre terminal la commande

gedit ~/.Conky/htc_home/accuweather/accuw_script

et remplacez l’adresse url par défaut par celle que vous venez de copier.

Enregistrez et fermez ce fichier.

Si vous souhaitez voir immédiatement le résultat, ouvrez un terminal et entrez la commande

sh ~/.Conky/htc_home/start_conky.sh

Le conky se situe par défaut en haut et à droite de l’écran.

Vous pouvez modifier sa position en ouvrant un fichier de configuration à l’aide de la commande :

gedit ~/.Conky/htc_home/conkyrc

et en remplaçant la ligne

alignment top_right

par

alignment middle_middle

Vous pouvez bien entendu choisir une autre position

Si vous souhaitez que ce conky démarre à l’ouverture de votre session, allez dans application au démarrage

indiquez Conky HTC Home à la rubrique “Nom” et /home/votre_session/.Conky/htc_home/start_conky.sh à la rubrique “Commande” (Remplacez votre_session par votre nom de session).

Amusez-vous bien.

PS : je n’ai pas testé pour Linux Mint

Source : Up Ubuntu

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

Tasse de Café : De la modélisation 3D dans un navigateur

mardi 13 novembre 2012 à 10:00

Les technologies web permettent de plus en plus de choses et parmi les spécifications les plus intéressantes, nous retrouvons WebGL qui permet ainsi d’utiliser OpenGL dans un navigateur web via JavaScript, ce qui implique donc la possibilité de faire de la 3D dans un simple navigateur. C’est autour de WebGL qu’a été faite cette démonstration présente sur le Mozilla DemoStudio et qui nous permet de créer un rendu 3D via quelques options.

Modélisation 3D dans un navigateur avec WebGL

L’interface est composée de deux éléments : nous trouvons à gauche un canvas contenant la scène créée et paramétrée par les options que nous retrouvons dans un panneau placé sur la droite. Ces options sont séparées en quatre catégories qui représentent autant d’onglets différents (un cinquième onglet nous permet d’en savoir plus sur l’auteur).

Ainsi, le premier onglet nous permettra de modifier la caméra. En 3D, la caméra, c’est un objet fictif qui n’apparaît pas dans la scène mais qui sert à définir d’où le rendu est créé. Il est donc possible ici de modifier la position de la caméra mais également de lui faire subir quelques rotations. Toujours en ce qui concerne la scène entière, nous retrouvons dans le troisième onglet quelques paramètres de gestion de la lumière.

Les deuxième et quatrième onglets quant à eux nous permettent de modifier l’unique objet présent sur cette scène, à savoir un cube. Vous pourrez ainsi choisir la texture à lui appliquer parmi plusieurs échantillons et le modéliser à votre sauce en lui faisant subir plusieurs opérations qui permettront de modifier sa taille selon les trois différents axes et de le faire tourner, toujours selon ces trois axes.

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

Articles similaires