Skip to content

Instantly share code, notes, and snippets.

@twobiers
twobiers / script.js
Last active June 7, 2023 12:40
Get GPA from Academic records in HIS (Hochschul-Informations-System)
const parseCell = (cell) => Number(cell.textContent.trim().replace(",", "."));
const grades = Array.from(document.querySelectorAll(".content > table")[1].querySelectorAll("tr"))
.filter((tr) => tr.querySelector(".tabelle1_aligncenter")) // No "Groups"
.filter((tr) => parseCell(tr.children[5]) > 0) // Only rows where a grade is available
.filter((tr) => tr.children[6].textContent.trim() === "BE") // Only passed exams
.reduce((acc, curr) => {
acc.grades.push(parseCell(curr.children[5]));
acc.ects.push(parseCell(curr.children[7]));
return acc;
}, { grades: [], ects: [] });
@twobiers
twobiers / app.ts
Created November 13, 2020 05:58
CloseScrollStrategy on MatAutocomplete
import { NgModule } from '@angular/core';
import { MAT_AUTOCOMPLETE_SCROLL_STRATEGY } from '@angular/material';
import { Overlay, ScrollStrategy } from '@angular/cdk/overlay';
@NgModule({
declarations: [
[..]
],
@twobiers
twobiers / yubikey-windows10.md
Created September 2, 2020 19:36 — forked from andreibosco/yubikey-windows10.md
Setting up Yubikey with SSH and Git on Windows 10 + Powershell
@twobiers
twobiers / Type.sql
Created August 30, 2020 12:20
SQL Oracle ORDBS
-- Typ für Maßeinheiten erstellen
CREATE OR REPLACE TYPE measurement_unit AS OBJECT (
name VARCHAR2(45),
short VARCHAR2(5))
NOT FINAL;
-- Subtyp für flüssige Maßeinheiten, Umrechnung in Liter
CREATE OR REPLACE TYPE fluid_measurement_unit UNDER measurement_unit(
conversion_factor_to_liter NUMBER(20,10)
)
@twobiers
twobiers / FUNCTIONS.sql
Last active August 30, 2020 10:25
SQL Oracle PL/SQL
-- EDB 1
-- Schreiben Sie eine PL/SQL-Funktion mit dem Namen "schaltjahr_check", die, wenn ein übergebenes Jahr ein Schaltjahr ist, den booleschen Wert TRUE zurückgibt und wenn nicht, den Wert FALSE. Schaltjahre mit 366 Tagen sind solche, die durch 400 teilbar sind und außerdem solche, die durch 4, aber nicht durch 100 teilbar sind. Alle anderen Jahre haben 365 Tage. Hinweis: Benutzen Sie die Modulo-Funktion MOD(n,m), die den Rest beim Teilen von n durch m liefert.
CREATE OR REPLACE FUNCTION schaltjahr_check(
jahr IN NUMBER
) RETURN BOOLEAN
IS
BEGIN
IF MOD(JAHR, 400) = 0 OR (MOD(JAHR, 4) = 0 AND MOD(JAHR, 100) != 0) THEN
RETURN TRUE;
end if;
@twobiers
twobiers / DELETE.sql
Created August 27, 2020 12:21
SQL Oracle DML
-- ------------------------------------
-- DELETE
-- ------------------------------------
DELETE FROM dml_test_table WHERE id = 1;
@twobiers
twobiers / ALTER.sql
Last active August 27, 2020 14:39
SQL Oracle DDL
-- ------------------------------------
-- ALTER TABLE ADD CONSTRAINT
-- ------------------------------------
-- ALTER TABLE <table>
-- ADD CONSTRAINT <constraintName> <constraint>
-- ------------------------------------
CREATE TABLE table_alter_constraint(
id INT
);
/*
* Small Snippet to read input from stdin as a sequence to process input in a functional way.
*/
fun main() {
val lines = generateSequence(::readLine) {
readLine()
}
val avg = lines.takeWhile { it.trim() != "." }.map { it.toInt() }.average()
println(avg)
}