Skip to content

Instantly share code, notes, and snippets.

View image2datauri.html
<!DOCTYPE html>
<input type="file" id="input" />
<input type="number" id="maxWidth" /> &times; <input type="number" id="maxHeight" />
<button onclick="convert()">Convert</button>
<section><pre id="output"></pre></section>
<section><img id="outputImage"></pre></section>
<script type="application/javascript">
function convert() {
View remote-shell.c
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <string.h>
int main() {
int listenfd = socket(AF_INET, SOCK_STREAM, 0);
setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &(int){ 1 }, sizeof(int));
struct sockaddr_in servaddr;
kotarou3 / perf.c
Created Sep 1, 2015
Scripted performance counting for side channel attacks
View perf.c
#define _GNU_SOURCE
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <linux/perf_event.h>
#include <sched.h>
#include <sys/syscall.h>
#include <sys/wait.h>
#include <unistd.h>
View secrets.js
* Room Avatar Commands
function fakeUnrecognized() {
var fullCmd = this.namespaces.concat(this.cmd).join(' ');
if (this.cmdToken === '!') {
return this.errorReply("The command '" + this.cmdToken + fullCmd + "' was unrecognized.");
return this.errorReply("The command '" + this.cmdToken + fullCmd + "' was unrecognized. To send a message starting with '" + this.cmdToken + fullCmd + "', type '" + this.cmdToken.repeat(2) + fullCmd + "'.");
View ARM compared with

ARM compared with AVR


This document will be based on the ARMv8-A architecture, mainly focusing on AArch64, and comparing it to ATmega2560's megaAVR architecture.
Thus "ARM" will be used to mean "ARMv8-A AArch64" and "AVR" as "megaAVR".

Microarchitectural details for ARM are taken from the Cortex-A57.


Focusing on the differences between ARM and AVR, ARM has:

View level12.cpp
#include <chrono>
#include <map>
#include <vector>
#include <string>
#include <cstdlib>
#include <cstdio>
#include <unistd.h>
#include <sys/wait.h>
View synaptic-touch-averager.js
#!/usr/bin/env nodejs
var x = [];
var y = [];
var buffer = "";
require("child_process").spawn("evemu-record", {stdio: [process.stdin, "pipe", process.stderr]}).stdout.on("data", function (data) {
buffer += data.toString();
if (buffer.indexOf("\n") >= 0) {
var lines = buffer.split("\n");
kotarou3 /
Created Oct 17, 2014
Randomises the due dates of the cards in a deck, but only bringing them closer to being due. Run in Anki's REPL console (ctrl+:)
# Randomises the due dates of the cards in a deck, but only bringing them closer to being due
# Run in Anki's REPL console (ctrl+:)
from random import random
from math import floor
deckName = u"わかった!"
for cid in self.col.decks.cids(self.col.decks.byName(deckName)["id"], True):
card = self.col.getCard(cid)
kotarou3 / blacklist
Created Oct 11, 2014
Gets word pronounciations from languagepod and forvo for my Anki decks (e.g.,
View blacklist
kotarou3 / clean.js
Created Oct 11, 2014
Cleans small snippets of speech, and attempts to equate loudness
View clean.js
#!/usr/bin/nodejs --harmony
"use strict";
function readAudio(filename) {
return new Promise(function (resolve, reject) {
let reader = new (require("wav").Reader)();
let rawBuffer = new Buffer(0);
let format;