Moulder in action

In a previous blog post, I’ve talked about templating in general and showed a quick example of how Moulder does templating.

Moulder is an Open source templating library that exists in 2 versions: Scala and Java. Both versions are hosted on Github and are available under the MIT Licence.

Unlike many other templating libraries, Moulder keeps the template data and the templating rules in separate files. The template data can (only) be any XML-like format, including HTML.
The templating rules are written in Scala or in Java (depending on the version you choose) and mimics jQuery’s usage patterns, i.e. a rule is expressed as a CSS selector and a list of operations to perform on the elements returned by that selector.

Read more of this post

Introducing Immanix: a Java library to process XML using parser combinators

Processing XML files is a PITA. There. I said it. Processing XML files using the Java standard XML API, i.e. JAXP is even worse. There are some nicer APIs out there that alleviate this pain, like XPATH, XStream, JAXB, Castor, etc.

But still, they all fail in some point or another, ranging from being verbose and tedious to write to not being able to handle large XML streams.
The latter is a killer for many of the higher level approaches out there. Try using XPATH or any mapping library on a file weighing more than a couple of megabytes.

To handle such cases, we are usually left with StAX. Don’t get me wrong: StAX is not that bad an API, and I’d take it any day instead of JAXP even for small files. It still is a very low level API and parsing the simplest of files requires an impressive amount of code. Also, handling state with StAX is a painful exercice. You usually end up building a full-fledged state machine to do it.

It’s in dealing with such cases that I thought that there must be a better way to do this. And that’s how immanix was born.
Read more of this post

Création d’une application de type CRUD avec Wicket

Extrait du synopsis :

Cet article va présenter le framework Apache Wicket et ce en s’appuyant sur la création d’une application de suivi de bugs (Bug tracker) qu’on nommera “Min.Bug.Tra”. Une telle application est un cas particulier de ce qu’on appèle CRUD (Create, Read, Update et Delete) mais qui a l’avantage de traiter une problématique réelle.

L’article complet est par ici : Création d’une application de type CRUD avec Wicket

Non, Dzone n’est pas censuré ici en Tunisie

http://democraquoi.tumblr.com/post/2896577657/non-dzone-nest-pas-censure-ici-en-tunisie

My Clojure explained solutions to the s99 problems 21 to 26

This post will present and, I hope, explain my solutions to the s99 problems 21 to 26. I’ve already posted the solutions and explanations for the problems 1-3, 4-7, 8-13 and 14-20.

P21

Insert an element at a given position into a list.
Example:
user> (insert-at(\c, 3, (list \a, \b, \d))
(\a, \b, \c, \d)

Read more of this post

Setting up a Scala development environment based on Emacs, SBT & Ensime

In this post, I will quickly show how to get a productive Scala development environment by using Emacs as an editor, with Scala mode and Ensime as extensions, and SBT as a build tool.
The following assumes that you are running a Linux with emacs already installed and a minimal knowledge on them.

1. Installing Scala

Start by downloading the latest Scala distribution from this page. I usually opt for the tar gz version which I then extract in some directory.

Read more of this post

Pour l’amour de notre patrie: posez les questions avant de tirer !

http://democraquoi.tumblr.com/post/2896561399/pour-lamour-de-notre-patrie-posez-les-questions-avant

On templating, and a shameless plug of Moulder

Moulder is a server-side templating system. It uses jQuery’s approach, i.e. select and transform, and works only on XML-like data. I’ve written it two times over: One time in Java and another in Scala. Both versions are available as Open source software on GitHub and released under the MIT License.

1. What is templating

Templating is generally used in (but not limited to) web applications to generate dynamic web pages. Every time you perform a search on Google or open your Facebook page, templating was used behind the scene to generate these pages.
Read more of this post

Solution pour: Flash Square 10.2 ne stocke plus les vidéos chargées dans /tmp

La dernière version de Flash, square ou 10.2, apporte enfin une version 64 bits sur Linux (Ubuntu dans mon cas). J’ai donc vite sauté sur l’occasion et installé cette version, histoire de voir si elle serait plus clémente avec mon processeur (un Q6600 figurez vous) et si elle ne planterait pas toutes les 5 minutes.

J’étais habitué à laisser charger une vidéo flash dans un onglet après avoir coupé son son, et une fois chargée, j’allais dans le dossier /tmp pour récupérer son fichier flv (ou mp4) et le regarder avec VLC, histoire de bénéficier d’une lecture fluide et en plein écran. Plus avec cette dernière de flash car on voyait plus aucun fichier dans /tmp.

Read more of this post

My Clojure explained solutions to the s99 problems 14 to 20

P14

Duplicate the elements of a list.
Example:
user> (duplicate ‘(\a, \b, \c, \c, \d))
(\a, \a, \b, \b, \c, \c, \c, \c, \d, \d)

Read more of this post

Follow

Get every new post delivered to your Inbox.