Skip to content

Instantly share code, notes, and snippets.

@e-neko
e-neko / index.html
Created March 21, 2024 23:54
SVG-based timeline control mockup
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
svg {
background-color: #ccc;
border: 1px solid silver;
position: relative;
display: block;
@e-neko
e-neko / index.js
Created September 9, 2020 10:44
Nodejs express mitm proxy stub
const express = require('express');
var proxy = require('express-http-proxy');
const cheerio = require('cheerio');
const nunjucks = require('nunjucks');
const host = 'http://hostname-or-ip/';
var app = express();
// some engine to serve own pages, not strictly necessary
nunjucks.configure('templates', {
@e-neko
e-neko / readme.md
Last active July 25, 2020 12:47 — forked from jobsamuel/readme.md
Run NodeJS as a Service on Ubuntu 14.04 LTS

Run NodeJS as a Service on Ubuntu 14.04 LTS

With Node you can write very fast JavaScript programs serverside. It's pretty easy to install Node, code your program, and run it. But > how do you make it run nicely in the background like a true server?

  • Go to /etc/init/
  • $ sudo vim yourapp.conf
  • Paste script.conf
  • $ sudo init-checkconf -d /etc/init/script.conf
  • $ sudo start yourapp
  • And when you wanna kill the process $ sudo stop yourapp
@e-neko
e-neko / fake_progress.js
Created June 9, 2020 20:53
A simple take on asymptotic progress bar
let pbar = document.createElement('div');
pbar.classList.add('progress');
document.body.append(pbar);
let st = document.createElement('style');
st.innerText=`
.progress {
width: calc(100vw - 20px);
margin: 10px; height: 10px;
border-radius: 5px;
background-color: silver;
@e-neko
e-neko / timerparser.js
Created April 26, 2020 20:36
An exercise in parsing
// input format
let input = '2x(1m:5s) 2x(3x(2m:1s) 3m:2s 4x(2m:2s)) 20s 3m 3s';
// recursive splitter/parser
let splitter = s=>s.split('').reduce((parse, char, idx, arr)=>{
if (parse.depth>0){
if (char==')'){
parse.depth--;
if (parse.depth)
parse.group+=char;
@e-neko
e-neko / nespresso.js
Created October 22, 2017 00:59 — forked from kolontsov/nespresso.js
Nespresso coffee machine BLE experiments (get AUTH_KEY with Android BT HCI log and Wireshark)
const noble = require('noble');
const SERVICE_UUID = '06aa1910f22a11e39daa0002a5d5c51b';
const TEMPERATURE = {low: '01', medium: '00', high: '02'};
const VOLUME = {ristretto: '00', espresso: '01', lungo: '02', americano: '04', hotwater: '05', recipe: '07'};
let brew_cmd = (vol, t)=>`0305070400000000${TEMPERATURE[t]}${VOLUME[vol]}`;
let process_char = char=>{
if (char.uuid=='06aa3a41f22a11e39daa0002a5d5c51b')
{
char.write(Buffer.from(AUTH_KEY, 'hex'));