Living with WaterOnMars

I've been using wateronmars on a daily basis for approx. 3 weeks now and here are my first impressions:

  • Christmas time is the worst possible time period when to test a news reader (most of the feeds I'm subscribed to where on a break then)
  • considering a beta test period before bragging about one's software is a must (the last two big shameful bugs were detected and corrected during the first week)
  • it's really great to use a news reader again ! (I stopped trying other readers after the shutdown of Google reader)
WaterOnMarsMobileApart from that wateronmars has improved a little with some bug fixing and some speed optimization but most of all I've added a new way to display the sieve that is specific to mobile devices. It can be seen on the demo site (and even without a mobile device by selecting the "carousel" view).

By customizing a little Twitter Bootstrap's carousel  and pluging in the TouchSwipe-Jquery-Plugin library it was relatively easy to handle a"(touch) swipe".

So we can now go through the news as with a pysical newspaper, and it's become my main way to use wateronmars :)

New Year's Python Meme

Following the recent and timely revival of Tarek Ziadé's New Year's Python Meme by Alex Clark and Daniel Greenfeld, and also to mark the addition of this blog to the Python planet, here is my version of the meme for 2013.

What’s the coolest Python application, framework or library you discovered this year?

After having heard a lot about them, this year I had the occasion to actually use the following tools:

Even if it isn't a discovery strictly speaking, I was also glad to find out that someone took over the maintenance of feedfinder.

And last but not least I recently used PhotoFloat a very promising project to generate photo galleries, especially because like the author of this library I think zenphoto has somehow lost its zen.

What new programming technique did you learn this year?

A few months ago I gave a quick try at TDD with my toy project baciphacs.

But most importantly 2013 was the year when I dived into web application development with my long term personal project wateronmars.

Which open source project did you contribute to the most this year? What did you do?

Quite selfishly the two open source projects I contributed the most were mine:

  • wateronmars (AGPL) went from its year long state of blue prints and prototype code snippets to a fully functional web application deployable by anybody interested and with a demo site on heroku. Oh and by the way it's yet another news reader with the ambition to merge news reading and bookmark collection into a single workflow to become ultimately a personal web-surfing platform.
  • yapsy (BSD) the Python plugin system with a couple of bug fixes and especially the last fix to the packaging of both the Python2 and 3 sources of this library.

By the way, I'm always welcoming contributions and contributors for these projects :)

Which Python blogs, websites, or mailing lists did you read the most this year?

What are the top three things you want to learn next year?

  • The 11th color of C++ for which I already know the big picture but I lack the practical knowledge
  • Machine Learning (at least a bit more than the practical experience I had in my previous job in a document analysis and text recognition company).
  • Holger Dansk's language, how to wake him up and collaborate with him (and in case you missed it a new edition of Peopleware was published in 2013).

What is the top software, application or library you wish someone would write next year?

Huh... This year I've seen so many good apps and libraries doing exactly what I needed to (in Python and in javascript especially), that I'm not sure what's THE missing thing right now.

I guess anything that would make it easy for me to recover stuff (adress books, pictures), from the silos of the big social sites would help.

But to be honest all my wishes currently go to wateronmars that could still be extended with functionalities like a pump (as in pump.io) or a way to mix result from famous search engines with one's bookmark collection and more generally with anything already listed on the development site.

WaterOnMars why and how ?

Why ?

wom-logo-128With wateronmars I'm obviously not claiming to have done anything original, but the idea of this project started about 2 years ago when I realized that news readers were my main window over the Internet (and not facebook nor google+ mind you) and that my bookmarks, that I would expect to be a solid basis for any kind of search over the Internet, were uselessly being stored and forgotten in delicious.

At that time I was reading Dave Winer's blog posts about news and rivers and trying duckduckgo search engine in the hope that it would eventually offer better and more customized ways to search for information (I even proposed went as far as proposing that to duckduckgo team).

Eventually all this got me somewhat inspired and I decided that taking control of my "window to the web" was a very worthy motive to get my hands in the world of web apps developments.

How ?

This is a Python project based on django and which uses extensively Twitter Bootstrap, mousetrap.js and infinite scroll for its graphical components and UX, and south to ease future database migrations. Also the heroku platform was of a great help to experiment with the web apps as I was building it.

I must say that I'm pretty surprised of how much great (by their quality and ease of use) libraries and services are available to build web apps this days. It almost seems to be a more mature ecosystem than the one of the scientific and multimedia workhorse libraries I'm used too.

As a conclusion, let me just say that I would very happily welcome contributors to this project, so feel free to fork it on github !

Unveiling WaterOnMars

Today, I'm officially releasing a personal project called wateronmars, a web app combining a news reader and a bookmark collection.

wom-logo-128

So this is just another news reader but this ones aims at being a free (as in freedom) platform from which users can explore the web.

A demo site is hosted on heroku: http://wateronmars-demo.herokuapp.com/

For now this web application focuses on offering a lean interface based on a very simple workflow:

  1. Take a glimpse at the news: a river views displays the latest news
  2. Dig in when time allows: a sieve (some would say a mailbox-like) view makes it easy to look at and filter out the news
  3. Take notes: a "collection" gathers all web pages that the user wants to keep the link to
  4. Subscribe to news sources: a "sources" page gathers all the web pages from which the user wants to see the news as they come
The source code (under Affero GPL) is available on github.

Although they make up a working and usable (IMHO) application I consider them as the building blocks for a slightly more ambitious web exploration platform.

PS: If you came here looking for actual water on the planet mars, all apologies and feel free to go on wikipedia.

Setting the bar higher with TDD

In order to play a little more with the new tools I've made use for Yapsy but also to experiment a little with TDD, I started a very small project, entirely hosted by github and for the development of which I tried to stick with TDD principles (more below).

iconThe project itself is called baciphacs and is nothing else than a new version of a piece of code that I seem to have to re-write each time I work in a new place: generate HTML code (with small bits of CSS embedded in tags) to represent a bar chart. This is arguable rarely the best way to draw charts but it often helps in drawing one quickly and without having to deal with questions about network reliability, licenses, and archiving.

Going back to TDD, baciphacs is surely a very bad example of if since it's just a first try, but it made it possible for me to confirm the impression I had about this method: it is actually counter-intuitive (which is quite well-known I think) but it puts forward design principles that are important to me and that go far beyond testing.

Read more…