Skip to content

Instantly share code, notes, and snippets.

View olbat's full-sized avatar

Luc Sarzyniec olbat

View GitHub Profile
@olbat
olbat / break_iterator_bench.cr
Created May 19, 2017 13:32
Small BreakIterator benchmark for icu.cr
require "benchmark"
require "./src/icu"
REPEAT=1_000
# from https://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt
samples = [] of String
samples << <<-EOS
Σὲ γνωρίζω ἀπὸ τὴν κόψη
τοῦ σπαθιοῦ τὴν τρομερή,
@olbat
olbat / process_kill_recursive.rb
Last active October 21, 2017 07:29
Ruby recursive Process.kill
module Process::KillRecursive
refine Process.singleton_class do
def children(pid)
pids = nil
if RbConfig::CONFIG['host_os'] =~ /linux/i
if File.exist?("/proc/#{pid}/task/#{pid}/children")
pids = File.read("/proc/#{pid}/task/#{pid}/children").split(/\s/)
end
elsif !Gem.win_platform?
pids = `ps --ppid #{pid} -o pid=`.split("\n")
@olbat
olbat / time_measure.rb
Last active November 10, 2017 10:18
Ruby time measurement (monotonic)
module Time::Measure
refine Time.singleton_class do
def measure(&_block)
tstart = Process.clock_gettime(Process::CLOCK_MONOTONIC)
yield if block_given?
(Process.clock_gettime(Process::CLOCK_MONOTONIC) - tstart)
end
end
end
@olbat
olbat / features-histogram.py
Last active November 24, 2017 09:56
Python3 matplotlib script that plots histograms for features of an ML corpus
#!/usr/bin/env python3
"""
usage: {} < corpus.json > plot.pdf
The corpus file must contain one JSON document per line,
features must be stored in a field names "{}",
classes in a field names "{}".
"""
import sys
@olbat
olbat / plot-histograms.py
Last active March 19, 2018 10:41
Python3 matplotlib script that plots histograms with data from text files (one number per line)
#!/usr/bin/python3
"""
usage: {} title data.txt [data2.txt ...] > histogram.png
"""
import sys
import math
import os.path
import matplotlib
matplotlib.use('Agg')
@olbat
olbat / strpreprocess.py
Last active March 20, 2018 09:30
Python string pre-processing for ML
#!/usr/bin/python3
import sys
import unicodedata
import regex # https://pypi.python.org/pypi/regex/
SPECIAL_CHARS = r"\-'" # FIXME: French specific
RE_WHITESPACES = regex.compile(r"\p{Zs}+")
RE_SENTENCE_TERMS = regex.compile(r" *\p{STerm}+ *")
@olbat
olbat / symcrypt.c
Created September 19, 2011 12:08
Symetric-key encryption program using a key file + a hard-coded key (so to decrypt you need the key + the binary of the program used to crypt)
/*
* Copyright (C) 2006, 2007 Sarzyniec Luc <mail@olbat.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@olbat
olbat / crypto-coursera.org
Created August 9, 2018 14:10 — forked from luxbock/crypto-coursera.org
crypto-notes
@olbat
olbat / Coursera-Cryptography-I.md
Created August 18, 2018 10:40 — forked from misho-kr/Coursera-Cryptography-I.md
Summary of Cryptography-I course at Coursera.Org

Cryptography I

Cryptography is an indispensable tool for protecting information in computer systems. This course explains the inner workings of cryptographic primitives and how to correctly use them. Students will learn how to reason about the security of cryptographic constructions and how to apply this knowledge to real-world applications. More ...

Week 1

This week's topic is an overview of what cryptography is about as well as our first example ciphers. You will learn about pseudo-randomness and how to use it for encryption. We will also look at a few basic definitions of secure encryption.

Introduction

@olbat
olbat / shlog.sh
Created October 2, 2011 14:46
shlog is a bash script that allow you to record a shell session by logging command history and giving diff of edited files
#!/bin/bash -e
####
# shlog is a bash script that allow you to record a shell session by logging
# command history and giving diff of edited files
####
# User notes:
# - Install:
# Load the script using 'source shlog.bash' (add it to your .bashrc
# to load it automatically)