Skip to content

Instantly share code, notes, and snippets.

Dominic Ginger dolegi

  • Berlin
Block or report user

Report or block dolegi

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@dolegi
dolegi / serve.sh
Created Feb 13, 2020
Static file server in bash with netcat
View serve.sh
#!/bin/bash
RESP=/tmp/server-response && rm -rf $RESP && mkfifo $RESP
while true; do
cat $RESP | nc -l 9090 | (
REQ=$(while read -r line && [[ $line != Host* ]]; do echo "$line" ; done)
url="${REQ% HTTP/*}"
filedata=$(<"$(pwd)${url#* }")
cat >$RESP <<EOF
HTTP/1.1 $([ -z "${#filedata}" ] && echo '200 OK' || echo '404 NOT FOUND')
Content-Length: ${#filedata}
View main.go
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
fen := "2r3k1/1q1nbppp/r3p3/3pP3/pPpP4/P1Q2N2/2RN1PPP/2R4K"
View fen_parser.js
// const fen = 'k1K5/8/8/8/8/8/8/1Q6'
const fen = '2r3k1/1q1nbppp/r3p3/3pP3/pPpP4/P1Q2N2/2RN1PPP/2R4K'
const rows = fen.split('/')
const board = []
let i = 0
rows.forEach(row => {
const squares = row.split('')
board[i] = []
@dolegi
dolegi / Dockerfile
Created Oct 27, 2019
Command to keep docker container running
View Dockerfile
FROM alpine
ENTRYPOINT ["tail", "-f", "/dev/null"]
@dolegi
dolegi / ascii_art.js
Last active Jun 26, 2019
Ascii Art Generator. `node index.js ./myfile.<png/jpg/gif>`
View ascii_art.js
const jimp = require('jimp')
const ASCII = '`^\",:;Il!i~+_-?][}{1)(|\\/tfjrxnuvczXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$'
const file = process.argv[2]
const invert = process.argv[3] === 'invert'
const brightnessAlgo = process.argv[4]
jimp.read(file)
.then(img => {
img = img.resize(160,80)
@dolegi
dolegi / goaccess.sh
Last active Jun 15, 2019
Goaccess live HTML server
View goaccess.sh
goaccess /var/log/traefik/access.log --log-format='%h %^[%d:%t %^] "%r" %s %b "%R" "%u" %^ "%v" "%^" %Tms' --date-format=%d/%b/%Y --time-format=%T -o /tmp/report.html --real-time-html
{ echo -e "HTTP/1.1 200 OK\r\n\r\n"; cat /tmp/report.html; } | nc -lk 9090
@dolegi
dolegi / Dockerfile
Last active Jun 12, 2019
dockerized nginx static file server with subdomain dynamic routing and gzip compression
View Dockerfile
FROM nginx:alpine
COPY default.conf /etc/nginx/conf.d/default.conf
RUN mkdir -p /usr/share/nginx/one
RUN mkdir -p /usr/share/nginx/two
COPY index.html /usr/share/nginx/one/index.html
COPY index2.html /usr/share/nginx/two/index.html
@dolegi
dolegi / event_loop.js
Last active Jun 12, 2019
Event loop implementation (just the timers part)
View event_loop.js
function sleep (ms) {
return new Promise(resolve => setTimeout(resolve, ms))
}
class EventLoop {
constructor () {
this.timers = []
}
@dolegi
dolegi / maze.html
Created Sep 7, 2018
C64 maze generator
View maze.html
<pre style=line-height:.9;font-family:fantasy>
<script>
const lineLength = document.querySelector('body').offsetWidth/10
function writeLine() {
for(let i = 1; i < lineLength; i++) {
document.write(Math.random()<.5?"/":"\\")
}
}
@dolegi
dolegi / index.js
Created Aug 27, 2018
Web RTC example
View index.js
const webrtc = require('wrtc');
const lzString = require('lz-string');
const readline = require('readline');
const dataChannelSettings = {
reliable: {
ordered: true,
maxRetransmits: 1
}
}
You can’t perform that action at this time.