Skip to content

Instantly share code, notes, and snippets.

View bfroehle's full-sized avatar

Bradley M. Froehle bfroehle

View GitHub Profile
@bfroehle
bfroehle / .gitignore
Created August 25, 2012 01:12
Bitey Magic, an IPython extension
*.py[oc]
@bfroehle
bfroehle / file_wrapper.cpp
Created October 5, 2011 22:09
Boost.Python from Python to FILE* wrapper
#include <boost/python.hpp>
#include <iostream>
namespace {
void *convert_to_FILEptr(PyObject* obj) {
return PyFile_Check(obj) ? PyFile_AsFile(obj) : 0;
}
}
void test_argument(FILE* f) {
@bfroehle
bfroehle / xstartup.custom
Created July 16, 2013 21:54
RealVNC xstartup script for Ubuntu 13.04. To use, save this file to `/etc/vnc/xstartup.custom` and make it executable. Then ensure that you have installed the `gnome-session-fallback` package.
#!/bin/sh
# VNC Server (Virtual-Mode) start-up script.
unset XDG_RUNTIME_DIR
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
if [ -f /usr/bin/gnome-session ]; then
@bfroehle
bfroehle / README.md
Last active January 12, 2021 08:02
Proof of concept of using the LLVM JIT compiler to load Python extension modules.

Python & LLVM Extension Modules

This is a quick proof of concept of using the LLVM JIT compiler as Python's extension module loader. This implelentation completely replaces the standard extension module framework, so regular extension modules cannot be loaded. It would not be too difficult to extend the patch to allow loading both LLVM bitcode (.bc) and regular extension (.so) modules.

@bfroehle
bfroehle / kenken.py
Created May 28, 2013 00:22
SAT-based KenKen solver.
"""
A SAT-based KenKen (http://www.kenken.com/) solver.
The implementation of this solver is based on the ideas contained in
the paper:
"A SAT-based Sudoku solver" by Tjark Weber
https://www.lri.fr/~conchon/mpri/weber.pdf
@bfroehle
bfroehle / knee.py
Created February 29, 2012 22:05
knee.py for Python 2.6, 2.7, and 3.2
"""
An Python re-implementation of hierarchical module import.
Function names and arguments have been chosen to mimic the C code in
`Python/import.c` whenever possible.
This code is intended to be read, not executed. However, it does work
-- all you need to do to enable it is "import knee".
(The name is a pun on the klunkier predecessor of this module, "ni".)
@bfroehle
bfroehle / prime.cpp
Last active December 22, 2015 01:08
Emulate Python's for-else construct in C++.
#include <iostream>
// Emulate the for-else Python construct in C++.
// http://docs.python.org/2/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops
int main() {
for (int n = 2; n < 10; n++) {
bool success = true;
for (int x = 2; x < n || (success = false); x++) {
if (n % x == 0) {
@bfroehle
bfroehle / find_bounding_box.py
Created June 14, 2013 21:02
Calculate the minimal bounding box of a series of images.
#!/usr/bin/env python
"""Calculate the minimal bounding box of a series of images.
Example usage::
$ find_bounding_box.py *.jpg
836x680+64+0
$ mogrify -crop 836x680+64+0 *.jpg
Requires the `identify` command which is part of ImageMagick.
@bfroehle
bfroehle / xres.py
Last active December 16, 2015 15:19
A script to change the screen resolution and restart Nautilus.
#!/usr/bin/env python
"""
Change the screen resolution and restart Nautilus.
You may need to provide your VNC server with a list of available
resolutions. See:
http://stackoverflow.com/questions/15816/changing-the-resolution-of-a-vnc-session-in-linux
"""
#-----------------------------------------------------------------------------
@bfroehle
bfroehle / With Magic Demo.ipynb
Last active December 16, 2015 07:49
%with / %endwith IPython extension
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.