Skip to content

Instantly share code, notes, and snippets.

View earthboundkid's full-sized avatar

Carlana earthboundkid

View GitHub Profile
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
<template>
<div id="app">
Value is "{{ value }}". <br />
<input v-model="value" @input="handleChange($event)" />
</div>
</template>
<script>
function trimAndSpace(val) {
return val
@earthboundkid
earthboundkid / xtract.py
Created September 3, 2019 13:02
For SVG files with bloated PNG embeds
def xtract_pngs_from_svgs(name):
fname = name +'.svg'
#
with open(fname) as f:
raw = f.read()
#
prefix = 'xlink:href="data:image/png;base64,'
suffix = '"'
chunks = []
found = []
const onAnimate = (eventType, callback) => {
let timeout;
window.addEventListener(eventType, ev => {
if (timeout) {
window.cancelAnimationFrame(timeout);
}
timeout = window.requestAnimationFrame(callback);
});
};
package main
import (
"fmt"
"strings"
)
func Combinations(n int, combs []int) (next func() bool) {
k := len(combs)
if k == 0 || n < k {

EDIT: On further thought, the implications of using iface.As, e.g., for io.WriterTo are quite subtle. If you were trying, say, to add logging to all Read calls, you wouldn't want to simply pass through to the underlying io.WriterTo because the call would go unlogged. Instead you'd need to implement the As method on your type so as to only return a WriterTo under certain conditions. Still, I think this idea is worth exploring more.


The Go 2 process has produced a proposal for extending the errors standard package, which is currently in testing.

My observation about the experimental errors package is: As() and Is() solve problems that exist well beyond the error interface.

Essentially the problem is this, many packages begin by requiring a certain interface, such as error, io.Reader, or

package main
import (
"bufio"
"bytes"
"fmt"
)
const html = `
<html>
@earthboundkid
earthboundkid / markov.js
Created November 5, 2018 21:16
Simple Markov text generator
class Markov {
constructor(text) {
text = text.replace(/\./g, " . ");
text = text.replace(/\s\s+/g, " ");
this.map = {};
let w1 = "";
let w2 = "";
text.split(/\s/).forEach(w3 => {
if (!this.map[w1 + " " + w2]) this.map[w1 + " " + w2] = [];
this.map[w1 + " " + w2].push(w3);
@earthboundkid
earthboundkid / raise_chain.py
Last active December 19, 2018 14:41
How to chain exceptions in Python
# Thing that creates exceptions
def r(n):
raise Exception(f"error: {n}")
# Add exceptions to a list
errors = []
for n in range(10):
try:
r(n)
@earthboundkid
earthboundkid / README.md
Created June 5, 2018 15:42
Go project README template

$NAME GoDoc Go Report Card

$DESCRIPTION

Installation

First install Go.

If you just want to install the binary to your current directory and don't care about the source code, run