Once upon a time

As a lot of people I started doing programming during my HTML days when I needed to add a bit of interactivity with some layers of PHP. Realizing that what I was coding was both ugly and useless, I moved on to other stuff and distanced myself from web development altogether.

Meanwhile, the Web became much more feature-full than what it was at the time and when I took another dive these past weeks I grasped how it had grew since with HTML 5, CSS3 or jQuery (yeah I know I was out of the wheel for a long time) to the point it was actually enjoyable.

But what really motivated me to come back was the recent release by my esteemed colleague Jackson of his Manos web framework which, even though designed for cartels, was at long last providing a simple environment and simple interface to read and output valid HTTP headers in .NET/Mono.

The use case

Since I never really bothered signing-up for these Twitter image sharing website for the two or three pics I post per year and since I had no need of a special app for a badass smartphone I don’t have, I was leaning towards something FOSS and simple I could deploy on my own server which of course I didn’t find (if I was mistaken, replace that part with “I love reinventing the wheel”).

Thus Apachaï was born (on GitHub). It’s a KISS solution to a basic workflow: “let me post a pic quickly and write my twitter message at the same time”.

It does so by leveraging Twitter’s SSO using code borrowed from Miguel de Icaza’s TrollStation. It also have some nice goodies like simple image effects courtesy of Pinta (yay for easy code reuse).

Data management is handled by Redis because it wouldn’t have been wicked enough without some NoSQL sparkles (nice thing though). Plus Redis is so lightweight that it is not a big dependency really.

Oh and because eating your own soup is good, Apachaï uses ParallelFx’s Future and continuations to process long-running operations without blocking Manos itself so it’s an example of using ParallelFx in a web context. I also made a choice of not using any specific templating system, MVC or whatnot. The HTML is always served as a basic empty container and all specific elements are dynamically filled with Javascript and some JSON serialization routes (see why Manos and futures fit?).

Finally

So to summarize:

  • Apachaï is a small and lightweight photo and picture sharing application (for services like Twitter) built on the Manos framework
  • A public instance for your usage is available at apch.fr
  • Code is hosted on GitHub at https://github.com/garuma/apachai
  • I will be giving a talk about Manos during upcoming FOSDEM as Ruben once again secured a Mono room.

PS: the name comes from this character because that was what I was reading at the time.