Skip to content

Instantly share code, notes, and snippets.


Ferdinand Mütsch muety

View GitHub Profile
muety / TwoSum.scala
Created Mar 27, 2019
LeetCode TwoSum Solution Scala
View TwoSum.scala
object TwoSum {
def apply(nums: Array[Int], target: Int): Array[Int] = { => {
val el = nums.view.zipWithIndex.drop(x._2 + 1).collectFirst {
case y if y._1 + x._1 == target => y
Array(Option(x), el)
}).collectFirst {
View aoc_2018_day1.scala
object Advent {
def main(args: Array[String]): Unit = {
val data = Source.fromFile("data/day1.txt")
println(f"Part 1: ${data.sum}")
/* Can someone help me get this second part a littler more Scala-like (more functional, less procedural)? Please let me know! */
var seen: Set[Int] = Set()
muety /
Created Nov 17, 2018
Use FritzBox IPSec VPN on Ubuntu 18.04

FritzBox VPN on Ubuntu 18.04

  • Configure VPN for a user on your FritzBox and don't forget to show the pop-up including your credentials etc. afterwards. Also make sure you check "Allow access from internet".
  • sudo apt install vpnc network-manager-vpnc
  • Create file /etc/vpnc/vpn.conf, paste the following content and insert your credentials etc.
IPSec gateway
IPSec ID your_user
IPSec secret your_preshared_key

Keybase proof

I hereby claim:

  • I am muety on github.
  • I am n1try ( on keybase.
  • I have a public key ASBHcQlgHHRLDR82SZGORIcw-TKTcUkburZy7YZAiE9DcQo

To claim this, I am signing this object:

muety /
Created May 22, 2018
A helper method that enables an Android GridView to be used inside a vertical ScrollView
/* Inspired by */
public static void justifyListViewHeightBasedOnChildren (GridView listView) {
ListAdapter adapter = listView.getAdapter();
if (adapter == null) {
ViewGroup vg = listView;
int totalHeight = 0;
for (int i = 0; i < adapter.getCount(); i++) {
muety / rclone_sync.txt
Last active May 6, 2022
Automated Google Drive sync for Linux using rclone
View rclone_sync.txt
Script that will trigger a local to remote sync when any changes below your local Google Drive folder occur - but at max. every 10 minutes - and a remote to local sync every x (e.g. 30 minutes) via a cron job.
0. Install rclone and configure it for Google Drive
1. Create files listed below
2. Configure to be run on startup (e.g. using a systemd service unit)
3. Add a cron job that runs every x (e.g. 30) minutes
muety / deezer2json.js
Last active Nov 29, 2019
Export Deezer playlist to JSON
View deezer2json.js
1. Go to and open the playlist you want to export, e.g.
2. Scroll down to the very bottom
3. Open your browser's dev tools (F12 on Linux an Windows) and go to the Console tab
4. Paste the following one-line command and hit enter
JSON.stringify('datagrid-row song')).map(r => Object.assign({}, {title: r.getElementsByClassName('title')[0].childNodes[0].textContent, artist:'[itemprop="byArtist"]')).map(a => a.textContent).reduce((acc, a) => a + ', ' + acc, '').slice(0, -2)})), null, 2)
muety /
Last active Feb 14, 2018
Naive implementation of the Apriori algorithm in Python
# Naive implementation of the Apriori algorithm in Python
# Example 2 from
data = [
muety /
Last active Jul 27, 2019
A scraper for restaurant reviews from Tripadvisor
A script to scrape restaurant reviews from or using Selenium.
Author: Ferdinand Mütsch <>
License: MIT
Updated: January, 09 2018
- Install `selenium` and `pandas` using pip
- Install PhantomJS or get Chrome- or Firefox webdriver binaries and add them to your PATH (see
muety /
Last active Nov 8, 2017
Sample WSGI web server with Flask
# gunicorn --bind --workers 4 wsgi:app
# gunicorn --bind --workers 1 --threads 12 wsgi:app
import time
from flask import Flask
app = Flask(__name__)
# Requests from one client are not blocked by long-lasting requests from another client, as long as there are workers available