Skip to content

Instantly share code, notes, and snippets.

View Arkanosis's full-sized avatar

Jérémie Roquet Arkanosis

View GitHub Profile
@Arkanosis
Arkanosis / properties.cpp
Last active May 14, 2023 17:36
Python style properties in C++
/*
** Python style properties in C++
** (C) 2010 Arkanosis
** jroquet@arkanosis.net
**
** Example code released under the MIT license
** http://www.opensource.org/licenses/mit-license.php
**
** This is an original portable version of
** http://www.codeproject.com/KB/cpp/properties.aspx
@Arkanosis
Arkanosis / properties.cpp
Last active May 14, 2023 16:53
C# style properties in C++
/*
** C# style properties in C++
** (C) 2010 Arkanosis
** jroquet@arkanosis.net
**
** Example code released under the MIT license
** http://www.opensource.org/licenses/mit-license.php
**
** This is an original portable version of
** http://www.codeproject.com/KB/cpp/properties.aspx
@Arkanosis
Arkanosis / gist:1178515
Created August 29, 2011 14:33
Compile-time selection of implemented methods
#include <cassert>
template <typename A, int (A::*)() const = &A::fun>
struct Checker;
template <typename A>
bool checkAndSet(int& res, const A& a, Checker<A>* = 0)
{
res = a.fun();
return false;

Keybase proof

I hereby claim:

  • I am arkanosis on github.
  • I am arkanosis (https://keybase.io/arkanosis) on keybase.
  • I have a public key whose fingerprint is FA49 0B15 D054 C7E8 3F70 B040 8C14 5ABA C11F A702

To claim this, I am signing this object:

@Arkanosis
Arkanosis / tel2txt.py
Created June 13, 2014 17:15
Script that converts a phone number to alternatives phone “words”
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
_num2char = [
'0+ ',
'1 ',
'2ABC ',
@Arkanosis
Arkanosis / installed.sh
Created July 13, 2014 15:01
Get installed packages list
comm -23 <(aptitude search '~i!~M' -F '%p' | sort -u | sed 's/ *$//') <(wget -qO - http://cdimage.ubuntu.com/kubuntu/releases/12.04/release/kubuntu-12.04-dvd-amd64.manifest | cut -f1 | sort -u) >| ~/Documents/packages.txt
@Arkanosis
Arkanosis / compressors_benchmark.sh
Created October 12, 2015 16:48
Naive benchmark of compressors
#! /usr/bin/env zsh
# Naive benchmark of compressors
# (C) 2015 Jérémie Roquet <jroquet@arkanosis.net>
# Disclaimer: only one run per program to get an idea, do not rely on the results!
# TODO wrapper for lzham because lzhamtest is not pipe-friendly (it needs to know the input size)
file=frwiki-20151002.xml
@Arkanosis
Arkanosis / compressors_benchmark.log
Created October 12, 2015 16:52
Naive benchmark of compressors (results)
--- bench@5k ---
0.00s 2417 0.00s | 5k lz4 -1
0.00s 2256 0.00s | 5k lz4 -5
0.00s 2254 0.00s | 5k lz4 -9
0.00s 1741 0.00s | 5k gzip -1
0.00s 1646 0.00s | 5k gzip -5
0.00s 1634 0.00s | 5k gzip -9
0.00s 1722 0.00s | 5k bro --quality 1
0.00s 1631 0.00s | 5k bro --quality 4
0.00s 1568 0.00s | 5k bro --quality 9
@Arkanosis
Arkanosis / compressors_benchmark2.log
Created October 13, 2015 20:30
Naive benchmark of compressors (results 2)
--- bench@5k ---
0.00s 3129 0.00s | 5k lz4 -1
0.00s 2936 0.00s | 5k lz4 -5
0.00s 2935 0.00s | 5k lz4 -9
0.00s 2272 0.00s | 5k gzip -1
0.00s 2167 0.00s | 5k gzip -5
0.00s 2166 0.00s | 5k gzip -9
0.00s 2246 0.00s | 5k brzip -1
# Pour que ce code fonctionne, supprimer les lignes avec des commentaires (commençant par « # ») et
# - tout mettre sur une seule ligne, ou
# - terminer chaque ligne par un « \ », sans espace après.
# trouver récursivement (« find ») tous les dossiers (« -type d ») dans mon home (« "$HOME" »)
find "$HOME" -type d |
# prendre chaque résultat de l'étape précédente, un par un, dans une variable (« directory »), et pour chacun…
while read directory; do
# substituer au résultat (« echo ») le résultat de l'exécution de « $( … ) »…
echo $(