Toujours…

Je me réjouis du fait que jusqu’à ma mort, je trouverai toujours de bons livres à lire, d’auteurs à découvrir, de pensées à explorer.

Que faut-il de plus à mon eudemôn ?

Advertisements

Athéisme ?

Au début du XXIème siècle, la question de dieu n’est toujours pas résolue, même si les esprits supérieurs sont d’accord avec Nietzsche : « Dieu est mort ».

Les athées dont j’ai lu ou écouté l’argumentation sont : Michel Onfray, Richard Dawkins et Bill Maher — ce dernier étant dans une autre registre, plus divertissant.

Voici ce qu’ils disent et démontrent, en substance : il n’y a pas de dieu dans le sens idéaliste, platonicien du terme. Donc pas de personnage supra naturel, doté de pouvoirs infinis et indépendant de la nature. Dieu est une invention humaine. Les religions constituent des arnaques plus ou moins élaborées, plus ou moins sincères. Leur logique, poussée à l’extrême, aboutit à l’absence de pensée.

Rien à redire à cela. La science et l’histoire — la reine des sciences — confirment.

Mais que faire alors du sentiment religieux ? On peut l’évacuer en disant que c’est une chimère, que cela n’existe pas. Mais il existe. Il est un sentiment, comme l’amour, la haine, la jalousie, l’envie, l’amitié…

Il est des hommes qui ne sont pas jaloux. D’autres ne tombent jamais amoureux. D’autres encore ne ressentent jamais ni haine ni envie, etc.

Il semble que les athées ne ressentent pas le sacré. Pour cette raison, il n’éprouvent pas le besoin de se créer des arrière-mondes ou bien d’adhérer aux arrière-mondes créés par d’autres, s’ils manquent d’imagination. Et donc pour eux, tout de fatras n’existe pas et il est inutile voire nuisible.

Et pourtant si dieu n’existe pas, le sentiment religieux existe et il donne lieu à un besoin à satisfaire. De même que l’on peut répondre au besoin sexuel de plusieurs façons : onanisme, amour charnel, pornographie, on peut répondre au besoin religieux par une pratique individuelle (invention d’un dieu et d’une mythologie personnelle, les dieux lares des romains étaient-ils autre chose ?), par la pratique sincère d’une religion, révélée ou non, ou alors par une débauche commerciale dont les télévangélistes sont la pire espèce.

Qui veut l’ange fait la bête. Si la condamnation de la pratique sexuelle par l’Église conduit à la pédophilie de certains prêtres, le méprix du besoin religieux de l’homme conduit certains paumés au martyre.

Leopardi

Que chacun pense et agisse à sa guise. La mort ne manquera pas d’en faire autant.

Giacomo Leopardi

A nice fork

White to play

function showSolution() {
var solution = document.getElementById(“solution”);
solution.style.display = “block”;
}

Simplified getopt for lua

Lua doesn’t include getopt. I have written this very simple implementation. It is actually a simplified version of AlternativeGetOpt. It is usable but absolutely not user-proof! Good enough for your own scripts though.

function getopt(o)
  local p = {}
  for k,v in ipairs(arg) do
    if v:byte(1) == 45 then
      local l = v:sub(2,2)
      if o:match(l) then
        p[l] = arg[k+1]
      else
        p[l] = true
      end
    end
  end
  return p
end

You can test for example with the following main function:

function main()
   local opts = getopt("up")
   local user = opts.u and opts.u or "default"
   local pass = opts.p and opts.p or "secret"
   local root = opts.a and true or false
   print(user, pass, root)
end

Usage examples:

$ getopt
default	secret	false
$ getopt -u lyderic
lyderic	secret	false
$ getopt -u lyderic -p password
lyderic	password	false
$ getopt -a -u lyderic -p password
lyderic	password	true
$ getopt -a -u lyderic -w
lyderic	secret	true

The full code is on github: https://github.com/lyderic/scripts/blob/master/getopt.lua

gvim on Ubuntu

I set up this script to build gvim on Ubuntu. It presuppose that you git cloned the vim sources in /opt/src/vim.

#!/bin/sh

sudo apt-get update && sudo apt-get upgrade

sudo apt-get install libncurses5-dev libgnome2-dev  
  libgnomeui-dev libgtk2.0-dev libatk1.0-dev 
  libbonoboui2-dev libcairo2-dev libx11-dev 
  libxpm-dev libxt-dev

cd /opt/src/vim
make distclean
sudo make uninstall
git pull

./configure --with-compiledby=lyderic
  --with-features=huge --enable-luainterp 
  --with-lua-prefix=/usr/local 
  --enable-fail-if-missing --enable-gui=gnome2

make -j $(nproc)
sudo make install

git from source on Centos 7

As for many packages, git is fairly old on CentOS 7. The version they provide lacks a feature that I rely on, namely the -C switch, to be able to call git anywhere, without having to cd to the git directory first.

These are the steps I took to build git on CentOS 7:

yum -y install gcc make gettext-devel openssl-devel perl-devel curl-devel expat-devel
curl https://www.kernel.org/pub/software/scm/git/git-2.10.2.tar.gz | tar xzf -
cd git-2.10.2
make prefix=/usr/local -j $(nproc)
make install prefix=/usr/local
git --version

Continue your loops in lua

I am so used to the continue word in Java and C that I was surprised to see it absent in lua.

It is however relatively easy to implement it with a good ol’ goto.

Here is a (rather stupid) example. We get a directory listing and we filter out the hidden files (starting with a dot):

local h = io.popen("ls -a")
for line in h:lines() do
   if string.match(line, "^%.") then goto continue end
   print(line)
   ::continue::
end
h:close()

 

Ternary operator in lua

In Java, I very often have to do the following, to mark the plural when needed:

System.out.printf("Delivered: %d item%s", n, n > 1 ? "s", "");

In Lua, there is no ternary operator, so this kind of elegant syntax might be compromised in this situation. Fortunately, there is an as nice workaround:

print(string.format("Delivered: %d item%s", n > 1 and "s" or ""))

Thanks to hisham.hm

printf in lua

Lua doesn’t have a C-like printf function. However, it has a Java-like string.format function and it allows variable-length arguments, so rolling you own printf is very easy indeed:

function printf(...)
 io.write(string.format(...))
end