Skip to content

Instantly share code, notes, and snippets.

View nichtich's full-sized avatar
🦊
not a fox

Jakob Voß nichtich

🦊
not a fox
View GitHub Profile

A data-package is a dcat:dataset.

Aligned with DCAT-AP.

{
  "@type": "dcat:dataset",
  "name": {
  },
 "id": {
@nichtich
nichtich / README.md
Last active April 18, 2024 12:59
Ubuntu at Lenovo ThinkPad P14s

Install and setup Ubuntu at a new Lenovo ThinkPad P14s Gen 3 with NVIDIA T550.

Lenovo is certified for Ubuntu

Lenovo provides a short document how to install Ubuntu 20.04

  • Enter BIOS and disable secure boot, to boot from USB Stick
  • Install Ubuntu, with "Install third-party software" enabled to include NVIDIA drivers

Update firmware

@nichtich
nichtich / README.md
Last active August 18, 2022 08:10
Abfrage von Proceedings-Daten aus dem K10plus

Abfrage von Proceedings-Daten aus dem K10plus

Schritt 1: Finden des Normdatensatz der Proceedings-Reihe z.B. PPN 669696374 für CEUR-WS.

Die Verknüpften Publikationen sind im OPAC unter related publications aufrufbar.

Schritt 2: SRU-Abfrage der verknüpften Publikationen

Wie in der K10plus-SRU-Dokumentation beschrieben setzt sich die entsprechende CQL-Query aus drei Teilen zusammen:

@nichtich
nichtich / comparison.md
Last active March 3, 2022 10:29
JSON query languages

JSON query languages

  • JSONPath is was created 2007, inspired by XPath. A formal standard is being created at https://github.com/ietf-wg-jsonpath/draft-ietf-jsonpath-base
  • SQL/JSON path was created inspired by JSONPath and other query languages.
  • jq is a programming language with strong support of JSON transformation
  • JSON Pointer only references a single element

Most important conflicting difference between JSONPath and SQL/JSON path is $.["name"] vs $."name" and $[? filter ] vs $?(filter).

Other JSON query languages

@nichtich
nichtich / wikidata-kdl.md
Last active November 15, 2021 23:11
Wikidata in KDL

Serialization of Wikidata data model in KDL

Two years ago a experimented with a data language for Wikibase. Maybe using KDL as syntax is a better approach.

# simple statement
Q4115189 P31=Q1   # KDL property
Q4115189 P31 Q1   # two KDL arguments

# multiple stataments on same item
@nichtich
nichtich / README.md
Last active April 28, 2021 15:27
Overlapping Markup Data Language (OMDL)

This is a quick draft of a data format specification to encode annotated character data to support overlapping markup, also known as standoff markup.

Everything is subject to discussion

Related work

  • By now this is kind of a fork of atjson
  • Ted Nelson's xanadoc EDL format
  • OCR formats ALTO, PAGE, hOCR
  • Mac OSX Core Text
#/bin/bash
# Directly install Raspberry OS to SD card
IMAGE=https://downloads.raspberrypi.org/raspios_full_armhf/images/raspios_full_armhf-2020-12-04/2020-12-02-raspios-buster-armhf-full.zip
DEV=/dev/sdd
curl -o - $IMAGE | zcat | sudo dd bs=4M of=$DEV conv=fsync
# as one-liner
IMAGE=... DEV=/dev/sdd bash -c 'curl -o - $IMAGE | zcat | sudo dd bs=4M of=$DEV conv=fsync'
@nichtich
nichtich / README.md
Last active December 6, 2020 21:46
Minecraft PI

Minecraft Pi Edition (mcpi) ist eine kostenlose Version von Minecraft, die speziell für den Raspberry Pi herausgegeben wurde. Sie basiert auf der Bedrock Version 0.6.0 aus dem Januar 2013, ist also schon etwas älter. Das Spiel bietet standardmäßig nur den Kreativmodus mit einer eingeschränkten Karte, kann allerdings programmiert werden.

Es gibt einige Anleitungen und Beispiele, die meisten davon allerdings schon etwas älter.

@nichtich
nichtich / webcam.md
Last active September 14, 2020 20:32
Any Webcam

How to use an external webcam as local webcam for video conferencing.

An external webcam is a video (and possibly audio) source that isn't build into the local computer or connected to it via USB.

Solution: v4l2loopback

Use Android phone as video source

On Android Start DroidCam and get the webcam URL.

@nichtich
nichtich / pp.js
Created August 11, 2020 07:11
PICA Plain parser in JavaScript
/* PICA Plain parser in JavaScript */
const pp=s=>s.split(/\n/)
.map(l=>l.match(/^([012][0-9][0-9][A-Z@])(\/([0-9]{2,3}))?\s*(\$([A-Za-z0-9]).+)+/)
.filter(m=>m)
.map(m=>[m[0],m[2],...m[3].split(/\$([A-Za-z0-9])/).slice(1).map(s=>s.replace(/\$\$/g,'$'))])