Newebe : a nice way to store interesting stuff from your contacts

What is annoying when you use social network like Facebook or Twitter, is that you don’t have nice way to save link or pictures that you contacts shared with you. Twitter allows you to mark interesting posts as favorite but that’s all. Fortunately, Newebe now solves this problem by allowing you to push microposts or pictures to a note you wrote before. So you can save quickly a good link or a nice picture to your notes. Moreover, because it’s in note application, you are able to organized all grabbed data efficiently.

Select micropost and click on “push to note” button.

Then a dialog box appears.  Select your note and click on “select”.

And find it inside your notes !

PrivacyCamp @ La Cantine

Last friday La Cantine and La CNIL organized a Privacy Camp @ La Cantine. It was my first one and I was glad to discover it. The principle is simple : peoples propose 1 hour workshops for each available rooms and other participates to it. That led us to an afternoon of 12 workshops about online identity, anonymity, smartphone data and of course distributed social networks.  Some privacy celebrities were there such as Jean Marc Manach, Trisan Nitot or Henry Story.

I am not sure that there was a lot of new things that came out from this kind of discutions but it helps people interested in the problem to connect each other, make their ideas clearer and validating that they share the same point of view. That’s why I decided to animate the distributed social network workshop. So I could share a lot of thoughts. Unfortunately, others are still sceptic about self hosting. Whatever, to promote Newebe it was definetely a great thing : a lot of people there didn’t know what I do and are now quite interested in it. By this way, I met Henry Story who has a solution about distributed identity, called WebID. That could fit well with Newebe : you take advantage of your own server and of common contacts to ensure trustability.

Finally I was a litte bit disapointed by the workshop hosted by la CNIL. They did not want to promote solutions to privacy problems like free softwares, privacy optimized Firefox, DSN… They prefer finding better ways to warn people about what happens when they suscribe to a website like Google or Facebook. That made me sad. Whatever this barcamp was great, thanks to them and I hope there will be another one soon !

Themes for Newebe

Newebe user and bored by the default black and white design ? Good news, Newebe has a new feature : theming !

For that, change the styles by adding your own CSS file to the static/css/ folder you find at the root of your Newebe directory. The theme file must be named theme.css . Then reload, your web page and you will be glad to use a colorful Newebe !

What’s new about decentralized social networks ?

Decentralized/distributed social networks are still highly active. Here are some news of the ones I follow :


My first time at FOSDEM

Two weeks ago, I didn’t know what was the FOSDEM. After someone explained to me that it is one of the biggest event about Free and Open Source softwares and after receiving a car sharing proposal to go there, I decided to come to this festival.

First, car sharing was definitely a great thing because it allowed me to have two times a three hours discussion with peoples who share same interests as mine. After that, a beer event and a good night, I finally arrived at FOSDEM and was pleased to see that free softwares can attract so many people. Then I discovered the huge list of available conferences on eclectic themes : from virtualization to legal issues while going through communication protocols and dozens of other subjects. I noticed that a lot of Linux distributions were present and tried to sell their tee shirts. Mozilla, XMPP crew, PostgreSQL and Perl were very visible too. Another part was dedicated to open hardware I did not spend a long time here. I just had fun looking at Maker Bot and Enlightenment for tablets.

Of course, I was mostly interested in self hosting technologies. I was quite surprised and happy to see that XMPP had a conference dedicated to it. Goffi, the author of SàT, a social tool based on XMPP, had a talk about what he does. What I liked the most is that he emphasizes the fact that web apps need mutliple UI :  command line, text, browser… and show us how SàT facilitate the development of them for its plugins. I also had a good conversation about SàT and Newebe with him. Unhosted was there too but making contact was harder, I did not find the right thing to say to catch the interest of Michiel de Jong. I was also a little bit sad because I did not see something really new in what they said. Whatever they had nice stickers ;). About decentralization, another good fact was the Bedale Garbee talked about Freedom Box. The conference room was full and everybody was really interested in what he said. Unfortunately there were not real new things, just some hints on what they build : maybe some XMPP inside and an hardware recommandations for the dreamplug (they are trying to make the hardware base software GPL compliant). I also met some friends from the university that I didn’t see for several years. It was good to know that they were free softwares supporters and that they already self-host some of their tools !

Life logging

For those who want to know what is life logging :

2011 from hey_rabbit on Vimeo.

Newebe 0.4.0 and picture sharing

Newebe 0.4.0 is out. Here is the changelog.

User features

  • Send pictures to your contacts
  • Synchronize with your contacts to get all their pictures since last month.
  • Time zones are now handled properly, you can interact with people from all over the world without time problem.
  • Better rendering for code snippet in micropost application.
  • Display embedded youtube video in the preview column when post contains youtube links.
  • Display a clear message when profile URL is not set correctly.
  • Do not allow password shorter than 4 characters.
  • When an object is selected (micropost, picture, activity…) its background changes.

Under the hood

  • Now all backend modules have their BDD specifications.
  • Refactoring : most of the communications with contacts are extracted in a special client, and activities are managed by the base handler.
  • Improved logging.
  • Add utils to manage date, file upload, and to make testing easier.
  • Add pytz to dependecies.

next version

For the next version, I will focus on the installation script. To be able to install Newebe with one command could really make adoption easier. Then I will work a little bit on security and try to allow user to mix pictures, posts and notes. But before that, I’m going to have a break. So don’t be surprised if the repo don’t move for the next weeks.

Picture application screenshot

Newebe still goes forward

It has been a while since I have not spoken about Newebe. Since my return of Laos, Newebe got some major improvements. The main one is picture sharing. Yes, now you can share picture (=file) with your Newebe node. This feature is already available in the repository and will of course be integrated in the next version.

Another good improvement is refactoring. I did a lot of “behind the scene” work. Server code is cleaner with better logic separation and has better test coverage. Client side had some improvements such as some minor features and debugs but no deep refactoring and testing.

What is a lot more interesting than features, is that… The community grows ! We have now 10 watchers on Github (champagne!). Robin, a great canadian software engineer, help us by testing and providing  security advice on Newebe. Moreover a small company use it in a private network as a communication tool. Another cool fact : my post about the “first year of free software” had many good feedbacks when I posted it on Linuxfr two months ago.

I expect to make a new version of Newebe for the end of the month. Things go slowly but they go !

Rentrée difficile

A mon retour je découvre deux mauvaises nouvelles frappant la communauté des réseaux sociaux décentralisés :

Pour tempérer ça :

Un an de projet libre : bilan

Un an déjà, et oui ça va faire plus de 365 jours que je travaille sur Newebe, le premier commit de code datant du 19 octobre 2010. Je pense donc que le temps est venu de partager mon retour d’expérience sur le démarrage d’un projet libre (le premier dans mon cas) et par la même occasion de faire le bilan de cette année écoulée.

Ce qui s’est bien passé :

Ca marche. Certains diront que tant qu’il n’y a pas de sécurité on ne peut pas dire que c’est le cas, mais toujours est il que nous sommes trois à l’utiliser (3 actifs sur 5 utilisateurs) depuis plusieurs mois et que cela fonctionne plutôt bien. Du fait de notre faible nombre, l’utilisation ressemble un peu à un chat mais c’est sympa de ce dire que nous sommes bien en train d’interagir sans serveur intermédiaire.

Newebe a sa place. Pour l’instant je n’ai trouvé aucun réseau social distribué ayant la même approche notamment pour ce qui est de l’aspect mono-utilisateur. Finalement ce qui ressemble le plus à Newebe est le projet OwnCloud, un outil permettant de stocker ses fichiers sur son serveur web à la dropbox. La similarité ? On a bien une instance d’OwnCloud pour une personne. Cela vaut donc le coup de continuer dans cette direction sans avoir l’impression de réinventer la roue.

Je m’en sers. Newebe me permet de communiquer avec les autres utlisateurs de Newebe et l’outil de gestion de notes me sert tous les jours.

Newebe a un site web et un wiki complet. Ca peut paraitre ridicule, mais c’est tout de même bien que j’ai eu le temps de mettre ça en place, ça permet a quelqu’un qui ne connait pas le projet de s’informer rapidement de ses tenants et aboutissants.

J’ai rencontré des gens qui partagent mon opinion sur le sujet. Réaliser Newebe m’a poussé à écrire plus de choses sur les problèmes de vie privée liés aux réseaux sociaux centralisés. Je me suis motivé plusieurs fois à aller à quelques événements réunissant des codeurs, principalement au Loop. Au final j’ai croisé pas mal de gens qui réfléchissent à des alternatives, ce qui est plutôt encourageant.

Techniquement, j’ai appris énormément de choses. Ce projet m’a permis de faire une veille technique importante et de me mettre à la page sur les dernières tendances des technologies webs, notamment autour des serveurs asynchrones comme Tornado et Node.js, mais aussi pour les bases de données NoSQL avec CouchDB et MongoDB ainsi que pour le développement client avec Coffeescript et Backbone et enfin avec le versioning décentralisé à travers Git. J’avais pris du retard et étant motivé par Newebe j’ai pu faire une sérieuse remise à niveau sur tout ces plans.

NB : Je me suis rendu compte aussi que le choix de techno dans un projet informatique est très délicat et qu’il demande pas mal de rélexions. C’est une étape qui ne doit vraiment pas être prise à la légère. Il ne faut pas avoir peur d’écrire des prototypes dans plusieurs frameworks ou langages.

Sur l’organisation d’un projet informatique aussi. J’ai été formé avec la gestion de projets en V,  j’ai pratiqué des méthodes “agiles”. Ces deux façons de faire n’était pas toujours très convaincante mais à travers Newebe je me suis intéressé à des nouveaux concepts que sont ceux du déploiement continu, de la méthode Lean et surtout des principes de 37signals. Ils prônent le besoin de livrer et déployer le code le plus fréquemment possible pour obtenir des retours utilisateurs très vite et ainsi valider la pertinence des fonctionnalités codées. La simplicité est aussi mise en avant. En effet elle pousse à chercher des solutions plus élégantes ou directes afin de gagner en efficacité. Ceci se fait souvent au détriment du nombre de features mais permet de se concentrer sur l’essentiel et d’obtenir quelque chose de fonctionnel plus vite.

NB : J’ai également appris quelles étaient les caractéristiques d’un logiciel libre, notamment autour de la gestion de code collaborative. Ceci m’a poussé à mettre en place les outils nécessaires : dépot de code public, bug tracker, mailing list, wiki, site web, ce blog…  Mais je n’ai encore pu rien expérimenter pour Newebe pour le moment étant donné que je suis encore seul sur le projet.

Ce qui s’est mal passé :

Il n’y a pas de communauté. Certains mesurent la qualité d’un logiciel libre à la taille de sa communauté. C’est discutable mais dans les grandes lignes, ils n’ont pas tort. Un tel logiciel ne peut reposer sur les épaules d’une seule personne. D’une part ce n’est pas pensable à terme de maintenir le code en étant seul, d’autre part, cela rend le projet totalement dépendant de son initiateur. C’est d’autant plus inquiétant que ça peut signifier que Newebe ne répond pas bien au problème des réseaux sociaux décentralisés et n’intéresse presque personne.

D’un autre côté, l’aspect promotion n’est vraiment pas mon fort et j’ai de rééls progrès à faire dessus. De plus, je noircis un peu le tableau puisque nous sommes trois à nous en servir et que je suis bien conseillé par les deux autres utilisateurs.

Il n’y a pas de processus de développement et il manque beaucoup trop de tests unitaires et fonctionnels. Corrolaire du point précédent, étant seul j’ai codé à l’arrache, en empilant les fonctionnalités les unes sur les autres. Ceci est rassurant psychologiquement (j’ai obtenu un logiciel complet plus vite) mais en contradiction avec l’idée de faire du déploiement continu.  En effet pour promettre des releases fréquentes, il faut pouvoir tester toute l’appli fréquemment, ce qui n’est possible qu’avec des tests unitaires qui couvrent la majeure partie du code.
Si je souhaite accueillir d’autres développeurs, je ne pourrai leur donner une façon de procéder et surtout chacun de leur commit me fera un peu peur car je manquerai de tests pour m’assurer que rien n’est cassé.

J’ai négligé la sécurité. C’est volontaire, mais il faut bien reconnaitre que si demain je discute avec un spécialiste de la question, il risque d’être un peu dépité. De plus certains utilisateurs pourraient être rebutés par l’idée d’avoir un logiciel plus ou moins ouvert à tout le monde. Ceci a été tout de même fait en connaissance de cause, donc rien d’alarmant pour le moment.

Cela prend beaucoup de temps.  J’ai dû coder, me former à de nouvelles technos, documenter, faire un site web, faire un peu de pub, assurer le support utilisateur, mettre en place les outils… Toutes ces activités sont assez chronophages, cela demande donc de bien aménager son temps libre. J’en viens même à penser qu’il vaut mieux être étudiant pour lancer un projet libre. Je ne m’en plains pas car je me suis beaucoup amusé à faire tout ça mais c’est quelque chose dont il faut avoir conscience quand on démarre.

Et après ?

Pour la suite de Newebe, je compte donc me concentrer sur l’aspect communauté. Au delà du fait d’espérer d’avoir d’autres développeurs actifs, ce serait intéressant d’avoir plus d’avis de gens extérieurs. Au niveau des développements, je vais privilégier le partage d’images (afin de rendre Newebe plus sexy et lui donner ainsi un vrai look de réseau social)  ainsi que les tests automatiques manquants.

Enfin, même si le projet n’a pas eu le succès que j’espérais, je suis toujours content de le voir progresser, j’ai appris énormément de choses et pu mettre en application mes réflexions. Ma motivation est donc toujours aussi forte pour faire avancer Newebe.

Credits photos

photo 1 : Pauer Korde, licence Creative Commons by-nd-2.0
photo 2 : Virtual Photography Studio, licence Creative Commons by-2.0