Skip to content

Instantly share code, notes, and snippets.

View windytan's full-sized avatar
💭
I may be slow to respond.

Oona Räisänen windytan

💭
I may be slow to respond.
View GitHub Profile
@windytan
windytan / whistle-encode.pl
Last active March 22, 2025 00:30
whistle encoder
#!/usr/bin/perl
# windytan's pea whistle encoder
# http://www.windytan.com/2015/10/pea-whistle-steganography.html
# (c) 2015 Oona Räisänen
# ISC license
use warnings;
use strict;
my $data = $ARGV[0] // "OHAI!";
if (/^\.ninja (.+)/) {
$irivi = lc($1);
$irivi =~ tr/ÅÄÖ/åäö/;
$irivi =~ tr/åäöéèü/aaoeeu/;
$irivi =~ s/[^a-z\- ]//g;
$irivi =~ s/\s+$//;
$irivi =~ s/\s\s/ /g;
%ninjanames = qw( a KA b ZU c MI d TE e KU f LU g JI h RI i KI j ZU
k ME l TA m RIN n TO o MO p NO q KE r SHI s ARI
t CHI u DO v RU w MEI x NA y FU z ZI );
#!/usr/bin/perl
# windytan 2017, public domain
use warnings;
use strict;
my $img_width = 1200;
my $img_height = 900;
my $yscale = 0.6;
my $xscale = 0.13;
my $rowheight = 5;
@windytan
windytan / markov-tavut.pl
Last active October 24, 2017 10:26
Markov-ketjuilla uusia sanoja suomenkielisestä lähdetekstistä
#!/usr/bin/perl
#
# Markov-tavutin
#
# (c) Oona Räisänen
# MIT license
#
use strict;
use warnings;
use warnings;
my $width = 1000;
my $height = 500;
my $n_pts = 1000;
my $wavelength = 9;
print '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" '.
'width="'.$width.'" height="'.$height.'">'."\n";
@windytan
windytan / helicopter-decode.sh
Last active August 20, 2024 17:24
Decode the helicopter position signal from youtube videos!
#!/bin/sh
# Decode the helicopter position signal from youtube videos!
# It makes a KML file. You can open it in Google Earth or many other GIS programs.
# Requires sox, perl, and minimodem, and optionally yt-dlp / ffmpeg
# https://www.windytan.com/2014/02/mystery-signal-from-helicopter.html
# Remove this line
echo "Don't just run any random script you find online! Read what it does first!" && exit 1