# silly

Published articles for silly.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Pea whistle steganography

DevFeed: [Pea whistle steganography](<https://devfeed.tech/articles/pea-whistle-steganography-21645.md>)

Original publisher: [Read original article](<https://www.windytan.com/2015/10/pea-whistle-steganography.html>)

Author: Oona Räisänen (noreply@blogger.com)

Published: 2015-10-06T22:54:00Z

Content type: article

Language: en

Sources: [Oona Räisänen](<https://devfeed.tech/sources/oona-raisanen.md>)

Topics: [Steganography](<https://devfeed.tech/topics/steganography.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [acoustics](<https://devfeed.tech/tags/acoustics.md>), [audio](<https://devfeed.tech/tags/audio.md>), [embedding](<https://devfeed.tech/tags/embedding.md>), [measurement](<https://devfeed.tech/tags/measurement.md>), [physics](<https://devfeed.tech/tags/physics.md>), [shower-thoughts](<https://devfeed.tech/tags/shower-thoughts.md>), [signal](<https://devfeed.tech/tags/signal.md>), [silly](<https://devfeed.tech/tags/silly.md>)

### AI overview

The article investigates whether a pea whistle's frequency modulation can carry hidden data. It analyzes recordings and spectrograms, finds that the modulation could fit frequency-shift keying, and describes synthesizing a whistle-like signal with a data-dependent phase modulator and harmonics.

### Source excerpt

Would anyone notice if a referee's whistle transmitted a secret data burst? I do really follow the game. But every time the pea whistle sounds to start the jam I can't help but think of the possibility of embedding data in the frequency fluctuation. I'm sure it's alternating between two distinct frequencies. Is it really that binary? How random is the fluctuation? Could it be synthesized to contain data, and could that be read back? I found a staggeringly detailed Wikipedia article about the physics of whistles - but not a single word there about the effects of adding a pea inside, which is obviously the cause of the frequency modulation. To investigate this I bought a metallic pea whistle, the Acme Thunderer 60.5, pictured here. Recording its sound wasn't straightforward as the laptop microphone couldn't record the sound without clipping. The sound is incredibly loud indeed - I borrowed a sound pressure meter and it showed a peak level of 106.3 dB(A) at a distance of 70 cm, which translates to 103 dB at the standard 1 m distance. (For some reason I suddenly didn't want to make another measurement to get the distance right.) Later I found a microphone that was happy about the decibels and got this spectrogram of a 500-millisecond whistle. (HTML5 audio: The sound of a whistle.) The whistle seems to contain a sliding beginning phase, a long steady phase with frequency shifts, and a short sliding end phase. The "tail" after the end slide is just a room reverb and I'm not going to need it just yet. A slight amplitude modulation can be seen in the oscillogram. There's also noise on somewhat narrow bands around the harmonics. The FM content is most clearly visible in the second and third harmonics. And seems like it could very well fit FSK data! Making it sound right I'm no expert on synthesizers, so I decided to write everything from scratch (whistle-encode.pl). But I know the start phase of a sound, called the attack, is pretty important in identification. It's simple t

## Visualizing hex dumps with Unicode emoji

DevFeed: [Visualizing hex dumps with Unicode emoji](<https://devfeed.tech/articles/visualizing-hex-dumps-with-unicode-emoji-21640.md>)

Original publisher: [Read original article](<https://www.windytan.com/2014/10/visualizing-hex-bytes-with-unicode-emoji.html>)

Author: Oona Räisänen (noreply@blogger.com)

Published: 2014-10-29T23:52:00Z

Content type: tutorial

Language: en

Sources: [Oona Räisänen](<https://devfeed.tech/sources/oona-raisanen.md>)

Topics: [Emoji](<https://devfeed.tech/topics/emoji.md>), [Perl](<https://devfeed.tech/topics/perl.md>), [OpenSSH](<https://devfeed.tech/topics/openssh.md>), [Script](<https://devfeed.tech/topics/script.md>), [ssh](<https://devfeed.tech/topics/ssh.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>)

Tags: [art](<https://devfeed.tech/tags/art.md>), [hex-value](<https://devfeed.tech/tags/hex-value.md>), [numbers](<https://devfeed.tech/tags/numbers.md>), [openssh](<https://devfeed.tech/tags/openssh.md>), [perl](<https://devfeed.tech/tags/perl.md>), [script](<https://devfeed.tech/tags/script.md>), [silly](<https://devfeed.tech/tags/silly.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [terminal](<https://devfeed.tech/tags/terminal.md>)

### AI overview

A Perl script visualizes SSH public key fingerprints and other colon-separated hexadecimal byte sequences by mapping each byte to a selected Unicode emoji. The article explains the byte-to-emoji mapping and notes that the script could be extended to other hex-formatted sources such as xxd.

### Source excerpt

Memorizing SSH public key fingerprints can be difficult; they're just long random numbers displayed in base 16. There are some terminal-friendly solutions, like OpenSSH's randomart. But because I use a Unicode terminal, I like to map the individual bytes into characters in the Miscellaneous Symbols and Pictographs block. This Perl script does just that: @emoji = qw( 🌀 🌂 🌅 🌈 🌙 🌞 🌟 🌠 🌰 🌱 🌲 🌳 🌴 🌵 🌷 🌸 🌹 🌺 🌻 🌼 🌽 🌾 🌿 🍀 🍁 🍂 🍃 🍄 🍅 🍆 🍇 🍈 🍉 🍊 🍋 🍌 🍍 🍎 🍏 🍐 🍑 🍒 🍓 🍔 🍕 🍖 🍗 🍘 🍜 🍝 🍞 🍟 🍠 🍡 🍢 🍣 🍤 🍥 🍦 🍧 🍨 🍩 🍪 🍫 🍬 🍭 🍮 🍯 🍰 🍱 🍲 🍳 🍴 🍵 🍶 🍷 🍸 🍹 🍺 🍻 🍼 🎀 🎁 🎂 🎃 🎄 🎅 🎈 🎉 🎊 🎋 🎌 🎍 🎎 🎏 🎒 🎓 🎠 🎡 🎢 🎣 🎤 🎥 🎦 🎧 🎨 🎩 🎪 🎫 🎬 🎭 🎮 🎯 🎰 🎱 🎲 🎳 🎴 🎵 🎷 🎸 🎹 🎺 🎻 🎽 🎾 🎿 🏀 🏁 🏂 🏃 🏄 🏆 🏇 🏈 🏉 🏊 🐀 🐁 🐂 🐃 🐄 🐅 🐆 🐇 🐈 🐉 🐊 🐋 🐌 🐍 🐎 🐏 🐐 🐑 🐒 🐓 🐔 🐕 🐖 🐗 🐘 🐙 🐚 🐛 🐜 🐝 🐞 🐟 🐠 🐡 🐢 🐣 🐤 🐥 🐦 🐧 🐨 🐩 🐪 🐫 🐬 🐭 🐮 🐯 🐰 🐱 🐲 🐳 🐴 🐵 🐶 🐷 🐸 🐹 🐺 🐻 🐼 🐽 🐾 👀 👂 👃 👄 👅 👆 👇 👈 👉 👊 👋 👌 👍 👎 👏 👐 👑 👒 👓 👔 👕 👖 👗 👘 👙 👚 👛 👜 👝 👞 👟 👠 👡 👢 👣 👤 👥 👦 👧 👨 👩 👪 👮 👯 👺 👻 👼 👽 👾 👿 💀 💁 💂 💃 💄 💅 ); while (<>) { if (/[a-f0-9:]+:[a-f0-9:]+/) { ($b, $m, $a) = ($`, $&, $'); print $b.join(" ", map { $emoji[$_] } map hex, split /:/, $m)." ".$a; } } What's happening here? First we create a 256-element array containing a hand-picked collection of emoji. Naturally, they're all assigned an index from 0x00 to 0xff. Then we'll loop through standard input and look for lines containing colon-separated hex bytes. Each hex value is replaced with an emoji from the array. Here's the output: The script could easily be extended to support output from other hex-formatted sources as well, such as xxd: Some additional methods for visualizing hex dumps and key fingerprints, from the comments section: PGP Strong Set Top 50 Fingerprint Art VizHash GD - a visual hash