- ImageMagick
C
- kraken
Python
- ocrobin
Python
- ocrodeg
Python
- ocropy
Python
- ocropy2
Python
- ocrorot
Python
- prima-image-lib
C++
- unpaper
C
convert -density 300 -depth 8 -alpha Off -limit area 1 foo.pdf foo_%04d.tif |
from __future__ import division | |
import json | |
import logging | |
import os | |
import re | |
from collections import OrderedDict | |
from io import BytesIO | |
import click |
-
Kinesis Freestyle (Terrible key switches. Mushy and un-lovable)
-
Kinesis Freestyle Edge (Traditional layout with too many keys, mech switches, proably too big to be tented easily/properly)
-
Matias Ergo Pro (Looks pretty great. Have not tried.)
-
ErgoDox Kit (Currently, my everyday keyboard. Can buy pre-assembled on eBay.)
-
ErgoDox EZ (Prolly the best option for most people.)
Interoperable resources are only useful if they can be found. This has been well-recognized since the early days of the IIIF community, and more recently it has become clear that a concerted effort to standardize patterns that will facilitate discovery, harvesting and synchronization, indexing, and importing of IIIF resources is required.
This group will create specifications that improve the discovery process for IIIF resources, with a focus on leveraging existing techniques and tools, and promoting widespread adoption within the community. It will assist with and steer the implementation of community infrastructure, such as a registry of adopters, validators for the implementations, and transformation tools to generate the required data from existing systems and APIs.
If successful, the work will enable the collaborative development of global or thematic registries, search engines and portal applications that allow developers a
// ==UserScript== | |
// @name Turn Github Branch names into links | |
// @namespace maurizi.org | |
// @include https://github.com/* | |
// @version 1 | |
// @grant none | |
// ==/UserScript== | |
var i; | |
var elems = document.querySelectorAll('.commit-ref.current-branch'); |
import loki from 'lokijs'; | |
import _ from 'lodash'; | |
class relationalWrapper { | |
constructor(dbName) { | |
this.db = new loki('dbName'); | |
} | |
//Utility to strip loki meta data | |
_stripMetaData(obj) { |
╓─────[ box drawing cheat sheet ] | |
╙────────────────────────────────────── ─ ─ | |
─ ━ │ ┃ ┄ ┅ ┆ ┇ ┈ ┉ ┊ ┋ ┌ ┍ ┎ ┏ | |
┐ ┑ ┒ ┓ └ ┕ ┖ ┗ ┘ ┙ ┚ ┛ ├ ┝ ┞ ┟ | |
┠ ┡ ┢ ┣ ┤ ┥ ┦ ┧ ┨ ┩ ┪ ┫ ┬ ┭ ┮ ┯ |
" Demo of Neovim job control feature. | |
" | |
" It starts two netcat processes listening on the same TCP port, | |
" the second process will exit immediately since the port will be | |
" unavailable(Used to demonstrate the stderr/exit events) | |
" To play with this, use two terminals | |
" | |
" On terminal 1: `nvim -S jobcontrol.vim`. | |
" Use `:call jobwrite(v:srv1_id, string) to write | |
" data to the netcat client |
#README:
This script for mpv intends to offer the fastest and simplest way to convert parts of a video—while you’re watching it and not really more work intensive than making a screenshot. A short demonstration: https://d.maxfile.ro/omdwzyhkoa.webm
##Installation:
You need:
- yad (at least 0.26) (AUR)