JUL
02

COP-Ruby

Context-dependent behavior is becoming increasingly important nowadays. However, current programming languages don't provide a simple mechanism to describe programs able to adapt their behavior dynamically. To address this issue, a new paradigm has been proposed: Context-Oriented Programming (COP).

The COP framework (written in Ruby) that I provide offers basic functionalities to easily perform COP in Ruby.

Features:
- first-class contexts
- definition of context-specific behavior
- activation of adapted behavior according to context changes
- composition of adaptations
- handling of resolution policies for conflicting adaptations

ยป COP-Ruby on GitHub


Read more comments 0 comment bird Retweet
DEC
24

The seating guests problem

When you decide to organize a dinner a given date (an example pulled out of the hat: for Christmas), there are many, many things to think of. One of them is how to assign the available places to the guests.

This problem is not that trivial: you have to take in account all the guests' preferences in order to place everyone the best you can. Formally, if you plan to receive n people, there are (n + 1)! possibilities, that is, for let's say 20 people, more than 51 billion billion permutations! Not surprising that you felt quite puzzled the last time you gave it a try.


Read more comments 0 comment bird Retweet
DEC
15

How Google Calendar works

Abstract This paper has the modest purpose of describing the protocol used by Google Calendar and how applications operate on it.

Available: PDF (Google Documents)


Read more comments 0 comment bird Retweet
MAY
29

A bit of exotism

Hello, world!

Let's give a look to the dark side of the Force: esoteric programming languages.
They are designed as evidences of concepts or as jokes. They are not been written to become someday real useful programming languages.
It's fascinating and very impressive. That's the appeal of the topic: these freakish programming languages are useless, painful, weird and funny. It's a kind of hacking: you learn to think otherwise. Here are my favorite ones.


Read more comments 65533 comments bird Retweet
MAR
29

Why TV series kill movies

Who of us could claim that he has never watched any TV serie? Today they become quite popular, aren't they? The last few months, have you ever spent a day without hearing about How I Met Your Mother, The Big Bang Theory, Heroes, Lost, Stargate? Let's see why these TV series are currently killing movies.


Read more comments 65534 comments bird Retweet
FEB
20

Leadership attitudes

How to become a great leader? Nine ways of answering this question.

1. Get a vision: a realistic dream
In 1961, John Fitzgerald Kennedy claimed that before the end of the decade, the US nation would send a man on the Moon, and that he would come back alive. In 1969, Apollo 11 is a success.

2. Share the vision and aim concrete objectives
The first building of Disneyland Paris was the castle. A castle in the middle of nowhere. It is insane: we usually start by making plans, by building the park, by locating the buildings... Certainly not by rising a castle in the middle of nowhere! So why? To keep in mind that Disneyland Paris is a dream: this castle always reminds it.


Read more comments 65534 comments bird Retweet
FEB
14

Random wallpaper

Have you ever hesitate between one wallpaper and another one, without knowing which one is the best? This script could please you.

Mandatory: the feh package.

script.sh

#!/bin/sh
MYDIR=${HOME}/pict/wallpapers/ # target directory
while true; do
VAR=( $(ls $MYDIR | sort -R) )
feh --bg-scale $MYDIR${VAR[0]}
sleep 300 # for 300 seconds
done &


$ chmod u+x script.sh
$ ./script.sh &

Add the source code to your .xinitrc file to launch it automatically at X's boot time.


Read more comments 0 comment bird Retweet
FEB
13

Dwm, the dynamic window manager

All of you already know what a desktop environment is, as well as a window manager or a puppy: for those who are running a free UNIX, you certainly think right now about GNOME/Metacity, KDE/KWin, Xfce/Xfwm, Fluxbox, Compiz Fusion/Emerald, Enlightenment... All of them are familar and well known, that's it: traditional environments.

Let's go through the other side of the Force, where less is more: minimalist desktops.


Read more comments 65534 comments bird Retweet