Skip to content

Instantly share code, notes, and snippets.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
import timeit
# http://www.gutenberg.org/cache/epub/1597/pg1597.txt
# Public Domain
text = """
Many years ago, there was an Emperor, who was so excessively fond of
@Cilyan
Cilyan / robot.c
Created March 31, 2015 16:28
Strange nested construct of structures
#include <stdio.h>
#include <string.h>
/* gcc -Wall -Werror -std=c11 -pedantic -o robotc robot.c */
struct Robot_st {
int pos_x;
int pos_y;
struct BatteryStatus_st {
int capacity;
@Cilyan
Cilyan / recursivedescent.py
Last active August 29, 2015 14:22
Example parser using a stateful lexer and a recursive descent parser. Goal is to parse a C file containing structures, unions and variables (no functions) and some doxygen comments, building an AST. (Originally part of a bigger project.)
# Nodes for the Abstract Syntax Tree
class Node(object):
def __init__(self):
self.children = []
self.parent = None
for attr in self.__attributes__:
setattr(self, attr, None)
def __repr__(self):
main_attr = self.__attributes__[0]
return "<{class_} {attr_name}={attr_value}".format(
@Cilyan
Cilyan / depgraph.py
Created August 6, 2015 16:31
Simple utility to resolve dependencies between arbitrary (but hashable) objects.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
class DependencyGraph(object):
"""
Handle a dependency graph. Using :py:meth:`insert`, you add objects
to the graph and connect them with their dependencies, and the
:py:meth:`resolve` function will yield them back so that any object
comes after all its dependencies.
"""
@Cilyan
Cilyan / PKGBUILD
Created February 3, 2013 03:18
Updated PKGBUILD for PNMixer with fix for automake-1.13 (also removed "|| return 1" as they are no longer needed, makepkg handles this alone)
# Maintainer: Nick Lanham <nick@afternight.org>
pkgname=pnmixer-git
pkgver=20130203
pkgrel=1
pkgdesc="PNMixer is a GTK volume mixer applet that runs in the system tray. \
It is lightweight, works with both pulseaudio and alsa, supports mouse wheel \
volume adjustment.
"
arch=('i686' 'x86_64')
license=('GPL')
@Cilyan
Cilyan / PKGBUILD
Created February 3, 2013 17:24
Updated PKGBUILD for pnmixer-git with automake-1.13
# Maintainer: Nick Lanham <nick@afternight.org>
pkgname=pnmixer-git
pkgver=20130203
pkgrel=1
pkgdesc="PNMixer is a GTK volume mixer applet that runs in the system tray. \
It is lightweight, works with both pulseaudio and alsa, supports mouse wheel \
volume adjustment.
"
arch=('i686' 'x86_64')
license=('GPL')
@Cilyan
Cilyan / 0001-Add-support-for-Excito-B3-Bubba.patch
Created July 27, 2013 23:22
Add support for Excito B3 (Bubba) CONFIG_MACH_BUBBA3 added to config plus some extra modules that are suitable for the device (more modem support, better IPv6 and filtering capabilities, more remote control support) The board file has been added in bubba3.patch: Board configuration + special LED support The PKGBUILD was modified to include the p…
From 863ccb3df64f676237c5a6f63da62b1df2c02921 Mon Sep 17 00:00:00 2001
From: Cilyan Olowen <gaknar@gmail.com>
Date: Sun, 28 Jul 2013 01:07:38 +0200
Subject: [PATCH] Add support for Excito B3 (Bubba)
CONFIG_MACH_BUBBA3 added to config plus some extra modules that are suitable for the device (more modem support, better IPv6 and filtering capabilities, more remote control support)
The board file has been added in bubba3.patch: Board configuration + special LED support
The PKGBUILD was modified to include the patch
Signed-off-by: Cilyan Olowen <gaknar@gmail.com>
@Cilyan
Cilyan / fileinsert.py
Created December 20, 2013 11:33
A class to insert content between two tags in a file (draft)
#
# Copyright 2013 Cilyan Olowen <gaknar@gmail.com>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
@Cilyan
Cilyan / PKGBUILD
Created January 20, 2016 00:41
PKGBUILD for libreoffice-extension-languagetool-nofr, a package that offers the LanguageTool LibO extension without french registered for compatibility with Grammalecte
# Maintainer: 3ED <krzysztof1987 /at/ gmail /dot/ com>
# Contributor: jtts
pkgname=libreoffice-extension-languagetool-nofr
_pkgname=languagetool
pkgver=3.2
pkgrel=1
pkgdesc="An Open Source style and grammar checker. Will not register for french and can this be installed in parallel to Grammalecte"
arch=('any')
url="http://www.languagetool.org/"
@Cilyan
Cilyan / jail.pl
Last active February 29, 2020 18:39 — forked from wilbowma/jail.pl
A perl script to create nginx chroot in arch linux.
#!/usr/bin/perl
# This script was hastily cobbled together for my own use. It can
# probably break your system. Use at your own risk.
$JAIL = "/srv/http";
$USER = "http";
$GROUP = "http";
$WWW_DIR = "www";
$BIN = "bin"; # "bin" or "sbin"