Skip to content

Instantly share code, notes, and snippets.

V=0
VERBOSE = $(VERBOSE_$(V))
VERBOSE_0 = @echo " GEN $@";
VERBOSE_1 =
VIDEXT = webm
video_names = \
endless-01-desktop.m4v endless-08-offline.m4v \
endless-02-folders.m4v endless-09-writer.m4v \
@ptomato
ptomato / gjsoverridesreader.js
Last active August 29, 2015 14:14
GJS overrides reader
const Gio = imports.gi.Gio;
let file = Gio.File.new_for_path(ARGV[0]);
let moduleName = file.get_basename().split('.')[0];
imports.searchPath.unshift(file.get_parent().get_path());
let module = imports[moduleName];
imports.searchPath.shift();
// Create missing parts of GObject-introspected API. Since we are importing the
@ptomato
ptomato / clone.js
Created September 19, 2014 08:44
Clone a GObject
const Gtk = imports.gi.Gtk;
const GObject = imports.gi.GObject;
const Gir = imports.gi.GIRepository;
// G_PARAM_READWRITE is not yet properly introspected
const READWRITE = GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE;
const dontCloneTheseProperties = [
['Gtk', 'Widget', 'parent'], // would try to add the new widget to the same parent
['Gtk', 'Widget', 'margin'], // sets all margin properties at once
@ptomato
ptomato / .jshintrc
Created April 26, 2014 00:17
My .jshintrc for GJS development
{
"esnext": true,
"evil": false,
"indent": 4,
"moz": true,
"multistr": true,
"sub": true,
"trailing": true,
"undef": true,
"predef": [
## Process this file with automake to produce Makefile.in
ACLOCAL_AMFLAGS = -I m4
AM_CPPFLAGS = $(FOO_CFLAGS)
lib_LTLIBRARIES = libfoo.la
libfoo_la_SOURCES = foobar.c foobar.h
libfoo_la_LIBADD = $(FOO_LIBS)
libfoo_la_LDFLAGS = -export-symbols-regex "^foo_"
@ptomato
ptomato / debug.js
Created November 18, 2013 05:39
GJS debugger
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const System = imports.system;
let _breakpoints = 0;
function _getCurrentStack() {
try {
throw new Error();
} catch (e) {
const Gtk = imports.gi.Gtk;
Gtk.init(null);
let w = new Gtk.Window({
default_width: 800,
default_height: 600
});
let g = new Gtk.Grid();
let frame = new Gtk.Frame({ expand: true });
let label = new Gtk.Label({
@ptomato
ptomato / gist:6516878
Created September 10, 2013 22:51
Exceptions are treated differently depending on where they occur in GJS
const Gtk = imports.gi.Gtk;
Gtk.init(null);
let w = new Gtk.Window();
let b = new Gtk.Button({ label: "Click me for an exception" });
w.add(b);
b.connect('clicked', function() {
throw("This exception is not caught, only printed");
});
@ptomato
ptomato / ashcroft.py
Created March 28, 2013 11:34
# Ashcroft-Sturm model # (Chapter 7 of my PhD thesis, "Two-dimensional optics")
import numpy as N
from scipy import constants as Const
from crystal_plane import CrystalPlane
"""
Parallel-band conductivity (Ashcroft & Sturm, 1971) using measured data and
fits (Mathewson & Myers, 1972)
"""
# sigma_a: Ashcroft & Sturm's "convenient" unit of conductivity
sigma_a = Const.e ** 2 / (24 * N.pi * Const.value('Bohr radius') * Const.hbar)
@ptomato
ptomato / simulation.py
Created March 28, 2013 11:29
# Waveguide model for a subwavelength slit as a quarter-wave retarder # (Chapter 2 of my PhD dissertation, "Two-dimensional optics") Main file: simulation.py
import warnings
import numpy as N
import numpy.fft as FT
from scipy import integrate
from spp_generation import interface_calculation
class SlitSystem:
"""Simulation of a subwavelength slit in metal"""
def __init__(self, slit_widths, wavelength, metal_epsilon, metal_thickness,