Skip to content

Instantly share code, notes, and snippets.

View revolunet's full-sized avatar
🐫
Killing bugz

Julien Bouquillon revolunet

🐫
Killing bugz
View GitHub Profile
@revolunet
revolunet / gifextract.py
Created August 17, 2011 12:18
extract frames from gif animations
import os
from PIL import Image
def extractFrames(inGif, outFolder):
frame = Image.open(inGif)
nframes = 0
while frame:
frame.save( '%s/%s-%s.gif' % (outFolder, os.path.basename(inGif), nframes ) , 'GIF')
nframes += 1
@revolunet
revolunet / change-default-shell.bat
Created August 18, 2011 19:18
change windows default shell (useful for kiosks)
REM BE CAREFUL ! this removes explorer.exe from your windows default config !
REM you have to reboot for this to take effect
@echo off
reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /V Shell /t REG_SZ /d "FullPathToYourApp.exe" /f
@revolunet
revolunet / xslt.py
Last active January 27, 2023 10:51
XML/XSLT with Python/lxml
#!/usr/bin/python
# transform any XML with a XSLT
# you can pass additional parameters for your stylesheet
def xsl_transformation(xslfile, xmlfile = None, xmlstring = None, params={}):
from lxml import etree
import StringIO
xslt_tree = etree.XML(utils.readfile(xslfile))
transform = etree.XSLT(xslt_tree)
@revolunet
revolunet / valid-RIB.py
Created August 18, 2011 19:19
Valider un RIB en python
def validRIB(banque, guichet, compte, cle):
# http://fr.wikipedia.org/wiki/Clé_RIB#V.C3.A9rifier_un_RIB_avec_une_formule_Excel
import string
lettres = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
chiffres = "12345678912345678923456789"
# subst letters if needed
for char in compte:
if char in string.letters:
achar = char.upper()
achiffre = chiffres[lettres.find(achar)]
@revolunet
revolunet / valid-secu.py
Created August 18, 2011 19:20
Valider un numéro de sécurité sociale [INSEE] en Python
def validInsee(insee, cle):
# http://fr.wikipedia.org/wiki/Numero_de_Securite_sociale#Unicit.C3.A9
# gestion numeros corses
insee = insee.replace('A', 0)
insee = insee.replace('B', 0)
reste = int(insee) % 97
return ((97 - reste) == int(cle))
@revolunet
revolunet / vlc-thumbnail.bat
Created August 18, 2011 19:21
generate thumbnail from video with VLC
# ceci extraira en jpg la premiere image de la video test.mpg
vlc.exe -V image --start-time 0 --stop-time 1 --image-out-format jpg --image-out-ratio 24 --image-out-prefix snap test.mpg vlc://quit
@revolunet
revolunet / count-lines.sh
Created August 18, 2011 19:21
count number of lines in folder recursively
#!/bin/sh
find . -type f -exec wc -l "{}" \; | awk ' { sum += $1 } END {print sum}'
@revolunet
revolunet / extjs-capture.js
Created August 22, 2011 12:14
ExtJs debug : capture all events
// to capture ALL events use:
Ext.util.Observable.prototype.fireEvent =
Ext.util.Observable.prototype.fireEvent.createInterceptor(function() {
console.log(this.name);
console.log(arguments);
return true;
});
// to capture events for a particular component:
Ext.util.Observable.capture(
@revolunet
revolunet / userip.php
Created September 5, 2011 09:06
get real user ip with PHP
<?php
// from http://www.xpertdeveloper.com/2011/09/get-real-ip-address-using-php/
if (!empty($_SERVER["HTTP_CLIENT_IP"]))
{
//check for ip from share internet
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
elseif (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
{
// Check for the Proxy User
@revolunet
revolunet / convert.php
Created October 31, 2011 19:40
tokenizer based php opening tags conversion
<?php
# use builtin PHP tokenizer to convert opening tags
# based on http://stackoverflow.com/questions/684587/batch-script-to-replace-php-short-open-tags-with-php/1647429#1647429
function convert($file) {
$content = file_get_contents($file);
$tokens = token_get_all($content);
$output = '';
foreach($tokens as $token) {