Skip to content

Instantly share code, notes, and snippets.

View k5e's full-sized avatar
😎
Tri-tra-Trullala!

Christian Knappke k5e

😎
Tri-tra-Trullala!
  • Karlsruhe, Germany
View GitHub Profile

Strings

String.prototype.*

None of the string methods modify this – they always return fresh strings.

  • charAt(pos: number): string ES1

    Returns the character at index pos, as a string (JavaScript does not have a datatype for characters). str[i] is equivalent to str.charAt(i) and more concise (caveat: may not work on old engines).

@codepo8
codepo8 / ai-for-humans.md
Last active October 29, 2025 20:39
Link collection for the "AI for humans" talk

Slides

Intro and history of ML on the web

  • Autodraw by Google is a tool that allows you to doodle what you want to paint and turns it into a proper icon by detecting the outline and making an ML based assumption what it could be.
  • Quickdraw by Google is a game they created a few years before Autodraw to train the model.
  • ReCaptcha is a CAPTCHA engine that feeds the data back into Google's ML systems. For example, currently being asked to detect street signs or cars is a good indicator that this data will go into the self-driving cars project.
@codepo8
codepo8 / redirect
Last active June 29, 2021 16:58
Simple redirect of hotlinked images in .htaccess
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
# allowed domains, add as needed
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?christianheilmann.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?wait-till-i.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mozilla.org [NC]
# search engines and social sites and stuff
@cowboy
cowboy / sudo-keepalive-example.sh
Created July 15, 2012 20:55
Bash: Sudo keep-alive (good for long-running scripts that need sudo internally but shouldn't be run with sudo)
#!/bin/bash
# Might as well ask for password up-front, right?
sudo -v
# Keep-alive: update existing sudo time stamp if set, otherwise do nothing.
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
# Example: do stuff over the next 30+ mins that requires sudo here or there.
function wait() {
@jboner
jboner / latency.txt
Last active July 22, 2026 01:06
Latency Numbers Every Programmer Should Know
Latency Comparison Numbers (~2012)
----------------------------------
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns 3 us
Send 1K bytes over 1 Gbps network 10,000 ns 10 us
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD
@liamcurry
liamcurry / gist:2597326
Created May 4, 2012 19:56
Vanilla JS vs jQuery

Moving from jQuery

Events

// jQuery
$(document).ready(function() {
  // code
})
@k5e
k5e / index.html
Created February 13, 2012 13:41 — forked from RyanHope/index.html
Device specific css files.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="src/css/pre.css" media="only screen and (min-device-width : 320px) and (max-device-width : 480px)">
<link rel="stylesheet" href="src/css/pre3.css" media="only screen and (min-device-width : 480px) and (max-device-width : 800px)">
<link rel="stylesheet" href="src/css/touchpad.css" media="only screen and (min-device-width : 768px) and (max-device-width : 1024px)">
<meta name="viewport" content="width=device-width, height=device-height, user-scalable=no" />
<title>wTerm App</title>
<script src="/usr/palm/frameworks/enyo/1.0/framework/enyo.js" launch="nobridge" type="text/javascript"></script>
@aaronmccall
aaronmccall / placeholder.js
Created January 4, 2011 22:45
shim for browsers that don't support the html5 placeholder attribute
setup_placeholders = (function() {
$.support.placeholder = false;
test = document.createElement('input');
if('placeholder' in test) {
$.support.placeholder = true;
return function() {}
} else {
return function(){