Skip to content

Instantly share code, notes, and snippets.


Wojciech Frącz fracz

  • Poland
View GitHub Profile
View gc-helpers.js
letterValue = (letter) => letter.toUpperCase().charCodeAt(0) - 64;
letterValues = (word) => word.split('').map(letterValue);
// [A,B,C] = letterValues('KOT');
fracz /
Last active Apr 16, 2021
Live Earth Wallpaper
#!/usr/bin/env bash
cd "$(dirname "$0")"
# npm install -g capture-website-cli
capture-website ',23.4,4z' --output wallpaper.png --hide-elements='.cookies, .panel, .locate, .help, .attribution, button, .settings' --overwrite --script='setTimeout(function() { document.getElementById("menu-terminator").click(); document.getElementById("menu-radar").click(); document.getElementById("menu-storm-tracks").click(); document.getElementById("menu-labels").click(); }, 1000)' --delay=2 --width=1920 --height=1000 && \
gsettings set org.gnome.desktop.background picture-uri file://$(pwd)/wallpaper.png
fracz /
Last active Jul 27, 2021
SUPLA Events by @fracz

SUPLA Events (unofficial)

This is a SUPLA Cloud extension that enables basic events support. Installation includes changing some sources of SUPLA Cloud instance (yes, you need to have your own SUPLA Cloud, it cannot use it on a shared official platform at

Event specification consist of a condition (what should happen in order for the event to be perceived as occured) and a webhooks, that is, URLs to call in such cases. The condition is a Twig expression with a simple state function provided. state(XX) returns a state of a channel with ID XX. The returned value depends on the channel function. You will find the example states for specific functions helpful. Take a look at example config.yml for different possibilities.

Event specification might also contain a time_conditions, that is cron expression (or array of them) specifying when the event should be active. If the time conditio

fracz /
Last active Jun 12, 2018
#!/usr/bin/env python3
import argparse
import signal
import sys
import time
import logging
import requests
import json
fracz /
Last active Aug 4, 2022
Restore intentionally deleted commits in Git

Restore intentionally deleted commits in Git (remote)


  1. You own a Git repository server and the developers do not have access to it (i.e. they can only read & write to the repo, but not gc it).
  2. You had a developer that wrote a project for you.
  3. He got angry for whatever reason and deleted all branches from the remote repo. He also push -fed the master branch leaving only one silly commit there.
  4. He escaped from the country leaving you without any code at all (at least this is what he believe in).
  5. You have never cloned the repo to other machine. There were only two copies of it: the developer's one and the server's one.
fracz / app.html
Last active Mar 22, 2018 — forked from ScottWhittaker/app.html
Aurelia Router open in new tab bug - aurelia/router#457
View app.html
<require from="components/navigation.html"></require>
<h1>Aurelia Router Demo</h1>
<navigation router.bind="router" class="primary-navigation"></navigation>
<div class="page-host">
fracz /
Created Mar 3, 2018
Automatic dockerized SUPLA MySQL database backup to Google Drive
#!/usr/bin/env bash
# Sample crontab: 0 */2 * * * /home/unicorn/ > /home/unicorn/backup.log 2>&1
NOW=$(date +"%Y%m%d%H%M%S")
fracz / index.html
Last active Aug 11, 2017 — forked from darwin/index.html
Welcome to comix!
View index.html
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="stylesheet" href="">
<script src="" charset="utf-8"></script>
<style>.cmx-user-scene4 .cmx-text-border .cmx-path {stroke: orange}</style>
<div style="max-width:900px; -webkit-transform:rotate(0deg)">
<scene id="scene1">
<label t="translate(0,346)">
fracz / aw.xml
Last active Mar 24, 2017
Coffeescript Angular templates for IntelliJ IDEA
View aw.xml
<template name="aw" value="@org.springframework.beans.factory.annotation.Autowired&#10;private $CLASS_NAME$ $FIELD_NAME$;" description="Adds @Autowired field" toReformat="true" toShortenFQNames="true">
<variable name="CLASS_NAME" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="FIELD_NAME" expression="" defaultValue="decapitalize(CLASS_NAME)" alwaysStopAt="true" />
<option name="JAVA_DECLARATION" value="true" />
fracz /
Created Mar 9, 2017
FFMPEG time lapse from photos
ffmpeg -r 15 -start_number 1 -i frame%04d.JPG -s 1280x720 -vcodec libx264 timelapse.mp4