Skip to content

Instantly share code, notes, and snippets.

@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 / 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 / tailor.sh
Last active August 29, 2015 14:17 — forked from sinelaw/tailor.sh
#!/bin/bash -eu
LOG_FILE=$1
SB="stdbuf -i0 -oL"
shift
tput sc
$@ 2>&1 | $SB tee $LOG_FILE | $SB cut -c-$(tput cols) | $SB sed -u 's/\(.\)/\\\1/g' | $SB xargs -0 -d'\n' -iyosi -n1 bash -c 'tput rc;tput el; printf "\r%s" yosi'
EXIT_CODE=${PIPESTATUS[0]}
tput rc;tput el;printf "\r" # Delete the last printed line
exit $EXIT_CODE
@ljos
ljos / OBT-stemmer.sh
Last active August 29, 2015 14:17
OBT hjelpeskript
#!/usr/bin/env bash
input_file="${1:-/dev/stdin}"
sed '/^\s*$/d' "$input_file" \
| paste -d '\t\0' - - - \
| sed -e 's/\([^"]*\)$/\t\1/' \
-e 's,<word>\(.*\)</word>,\1,' \
-e 's/"<\(.*\)>"\t"\(.*\)"/\1\t\2/' \
| cut -f3 \
| sed 's/./\L\0/g'
@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 / 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 / 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 / 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):