Skip to content

Instantly share code, notes, and snippets.

@ljos
ljos / frontmost_window.py
Last active January 25, 2024 04:16
Find the frontmost/active window in OS X
# Copyright @ Bjarte Johansen 2012
# License: http://ljos.mit-license.org/
from AppKit import NSApplication, NSApp, NSWorkspace
from Foundation import NSObject, NSLog
from PyObjCTools import AppHelper
from Quartz import kCGWindowListOptionOnScreenOnly, kCGNullWindowID, CGWindowListCopyWindowInfo
class AppDelegate(NSObject):
def applicationDidFinishLaunching_(self, notification):
@ljos
ljos / cocoa_keypress_monitor.py
Last active January 6, 2024 07:36
Showing how to listen to all keypresses in OS X through the Cocoa API using Python and PyObjC
#!/usr/bin/env python
#
# cocoa_keypress_monitor.py
# Copyright © 2016 Bjarte Johansen <Bjarte.Johansen@gmail.com>
#
# The MIT License (MIT)
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# “Software”), to deal in the Software without restriction, including
@ljos
ljos / advent_01.bqn
Last active December 3, 2021 13:49
adventofcode2021.bqn
p ← •BQN ¨ •file.Lines ⊑ •args
T1 ← +´1↓»⊸<
T2 ← +´˘3↕⊢
•Show T1 p
•Show T1∘T2 p
@ljos
ljos / advent_01.pl
Last active December 10, 2020 17:17
Advent of code, 2020
% The first task is to find numbers in a list that sum up to 2020. We
% will solve this problem using constraint logic programming over
% finite domains in prolog.
:- use_module(library(clpfd)).
:- use_module(library(dcg/basics)).
% In the first part we are given a list of numbers and we want to find
% 2 numbers that sum up to the value 2020 and then calculate the
% product of those two numbers. We therefore want a predicate that
% takes the length of the list of numbers to find (Length), and will
@ljos
ljos / no_nlp.org
Last active May 2, 2019 13:50
Introduction to NLP for Norwegian text

Introduction to NLP for Norwegian text

Norwegian is slightly strange

  • Two written forms
  • Idiosyncratic capitalization rules
  • Normativish grammar
  • Semantically driven

Recommended tools

@ljos
ljos / alter_keys.py
Last active September 5, 2018 01:06
Showing how to edit events from Quartz in Python
#! /usr/bin/python2.6
# I COULD ONLY GET IT TO RUN IN PYTHON2.6
# Running it in python2.7, installed from homebrew results in a segfault.
# I haven't been able to investigate why.
# Code translated from http://osxbook.com/book/bonus/chapter2/alterkeys/
# License: http://ljos.mit-license.org/
from Quartz import (
CGEventGetIntegerValueField, CGEventSetIntegerValueField,
kCGKeyboardEventKeycode,
kCGEventKeyDown, kCGEventKeyUp,
@ljos
ljos / atekst.py
Last active January 2, 2016 19:19
Program to transform the output from atekst to csv where we are only interested in articles that mention NAV in the article, but not in either the lead or the headline.
#! /usr/bin/env python3
import codecs
import csv
import re
import sys
import time
def parse_date(s):
# We assume that the date is always in the format '10.01.2014'.
@ljos
ljos / slack_munin.sh
Created December 22, 2015 15:03 — forked from anarchivist/slack_munin.sh
Slack notification script for Munin
#!/bin/bash
# Slack notification script for Munin
# Mark Matienzo (@anarchivist)
#
# To use:
# 1) Create a new incoming webhook for Slack
# 2) Edit the configuration variables that start with "SLACK_" below
# 3) Add the following to your munin configuration:
#
@ljos
ljos / c2j.py
Created February 9, 2013 13:00
from os import listdir
from os.path import join
from re import match, findall, search, M
from time import mktime, strptime
from tldextract import extract
from collections import defaultdict
from HTMLParser import HTMLParser
class FindAllAs(HTMLParser):
def __init__(self, siteURL):
@ljos
ljos / README.md
Created December 2, 2011 22:23
Using Timeplot to create a graph to show sparql results.

A small project using timeplot, joseki and xslt to create graphs over time. The rdfs used in the searches here are ones created in a xslt you can find as another gist. The code is meant to run on as a part of a joseki sparql endpoint. At least that is where we sent the queries.

Code released under GPLv3.