Skip to content

Instantly share code, notes, and snippets.

View bfroehle's full-sized avatar

Bradley M. Froehle bfroehle

View GitHub Profile
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++.
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 / 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.
# VNC Server (Virtual-Mode) start-up script.
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
if [ -f /usr/bin/gnome-session ]; then
bfroehle /
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::
$ *.jpg
$ mogrify -crop 836x680+64+0 *.jpg
Requires the `identify` command which is part of ImageMagick.
bfroehle /
Created May 28, 2013 00:22
SAT-based KenKen solver.
A SAT-based KenKen ( solver.
The implementation of this solver is based on the ideas contained in
the paper:
"A SAT-based Sudoku solver" by Tjark Weber
bfroehle /
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:
bfroehle / With Magic Demo.ipynb
Last active December 16, 2015 07:49
%with / %endwith IPython extension
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
bfroehle / scalapack.rb
Created March 3, 2013 00:19
ScaLAPACK Homebrew Formula
require 'formula'
class Scalapack < Formula
homepage ''
url ''
sha1 'ff9532120c2cffa79aef5e4c2f38777c6a1f3e6a'
option 'test', 'Verify the build with make test'
option 'with-openblas', "Use openblas instead of Apple's Accelerate.framework"
bfroehle /
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.

#!/usr/bin/env python
import re
import requests
html = requests.get('')
all_pages_table ='<table class="mw-allpages-table-chunk">(.*)</table>',
html.content, re.DOTALL).group()
titles = re.findall(r'title="([^"]*?)"', all_pages_table)
bfroehle / umfpack.cpp
Created December 6, 2012 22:55
UMFPACK Numeric/Symbolic Smart Pointer in C++
#include "umfpack.h"
* Smart pointer versions of the typical "void *Numeric" and
* "void *Symbolic" defintions.
* For example:
* umfpack_dl_numeric_ptr Numeric;
* umfpack_dl_numeric(..., &Numeric, ...);
* // No call to umfpack_dl_free_numeric required, as it is