Skip to content

Instantly share code, notes, and snippets.

View fspot's full-sized avatar

Frédéric Matigot fspot

View GitHub Profile
function [ res, keeped ] = deldominated( mat )
[h,w] = size(mat);
res = []; % lignes non dominees (matrice)
keeped = []; % liste des indices des lignes non dominees.
for i=1:h,
vi = mat(i,:);
dominee = 0;
for j=1:h,
if i ~= j,
vj = mat(j,:);
@fspot
fspot / gist:3872523
Created October 11, 2012 14:05
autre façon de récupérer le best match
#################
file_words = set(extractIdentifiers(file))
bestIndex = -1
bestScore = 0
bestWords = []
i = -1
for link in links:
i=i+1
@fspot
fspot / gist:4724256
Created February 6, 2013 17:33
deux dictionnaires que vous pouvez modifier : eep_to_info : associe EEP (une chaine) à un ensemble d'informations complémentaires (dont l'eep lui même, c'est voulu, pour simplifier) id_to_eep : associe un ID de capteur (une chaine ! oui oui) à un EEP (chaine).
# Ici on mettra tout ce qui définit un eep.
# Ce dictionnaire est censé être figé,
# tant que de nouveaux modèles de capteurs de sortent pas.
eep_to_info = {
'07-02-01': {
"eep": "07-02-01",
"name": "Capteur de température (A)",
"description": "Capteur de température, modèle A",
"datatypes": ["temperature", None, None, None, None, None]
},
@fspot
fspot / bottlequeue.py
Created June 7, 2013 08:20
Example app using bottle and multiprocessing for queuing long jobs and using several workers.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
Example app using bottle and multiprocessing for queuing long jobs
and using several workers.
"""
from multiprocessing import Process, Queue, cpu_count
from bottle import Bottle, run
@fspot
fspot / multiprocessqueue.py
Created June 7, 2013 08:24
Example script using several process in order to consume messages put in a message queue.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
Example script using several process in order to consume
messages put in a message queue.
"""
from multiprocessing import Process, Queue, cpu_count
@fspot
fspot / l.sh
Created July 9, 2013 08:45
alias l="l.sh" => use simply l instead of ls or less
#!/bin/bash
LSCMD="ls --color=auto -lahF"
LESSCMD="less"
if [ $# -eq 0 ]; then
$LSCMD
exit 0;
fi
#!/bin/bash
set -e
echo "> Downloading virtualenv.py..."
wget -q https://raw.github.com/pypa/virtualenv/develop/virtualenv.py # -O virtualenv.py
# or curl -s https://raw.github.com/pypa/virtualenv/develop/virtualenv.py > virtualenv.py
echo "> Creating and activating new virtualenv <venv>..."
python virtualenv.py venv > out.log
@fspot
fspot / saltshell.py
Created October 10, 2013 00:58
Usage : "saltshell.py" to get the list of minions (+ os and ip), "saltshell.py foo" to virtually ssh into foo minion. A lot of restrictions. May not work if your salt master is properly configured.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys
import os
from os.path import join
if len(sys.argv) == 1:
print "\n### Wanna see the list of connected minions, and their respective OS ? k."
print "### Wait a little... like 10s...\n"
@fspot
fspot / pdc2.md
Last active December 25, 2015 13:19
PDC 2

Gestion des ressources

Voilà le fruit d'une recherche de solutions au niveau du thème "gestion des ressources", pour les besoins de la DSI.

Précision : "ressources", dans ce contexte, désigne les PC des salles de TP (puisqu'on parle de la plateforme d'enseignement), mais peut également désigner les serveurs (hébergeant moodle, le webmail, les VMs, etc).

Objectif

@fspot
fspot / worker_manager.coffee
Created November 28, 2013 23:55
Simple way of making a worker manager with node.js, so you can limit concurrent tasks (cpu bound).
EventEmitter = require('events').EventEmitter
print = console.log
class MyManager extends EventEmitter
constructor: (@max_w) ->
@nb_w = 0
@queue = []
@on 'died_worker', (arg) ->
@on_died_worker(arg)