genea
look and say
quines
rat
robump
self-similar
song history
string synth
stroids
tm interpreter
Unless otherwise stated, all original content on this site is licensed under your choice of the GNU FDL or the Creative Commons ShareAlike License.
Hopefully, this website is valid. You can check the XHTML, the CSS, and the RSS.
Ladies and gentleman of the unix persuasion: I present for your enjoyment factumnonfabula, the Mikko Jack dynamic quote generator. Suitable for cut and paste into a terminal.
#!/bin/bash
lynx -dump http://koti.welho.com/mjack1/ | tr "\n" ' ' | \
perl -nle 's/\s+/ /g; s/References.*?$//; s/\[.*?\]//g;
s/[\*_]//g; s/\s+/ /g; @s = /[\.\?!]\s+(.*?[\.\?!])/g;
print $s[int(rand(scalar @s))]' | \
fold -s; echo ' -- Mikko Jack'
American Edit is a collection of mashups of songs from the album American Idiot produced by Dean Gray (actually team9 and Party Ben).
It is too hot for words.
Seriously, lately I have been listening to songs from American Edit more than the original album, which I like a great deal. Especially recommended are Novocaine Rhapsody and Greenday Massacre. These new-fangled mashup things are the future of music on teh intarweb.
string-insert-rectangle
The emacs function that seems nifty to me at the moment is string-insert-rectangle.
I don't have it bound to any keys, so I invoke it with M-x string-insert-rectangle.
Below is its documentation, which can be obtained with
M-x describe-function string-insert-rectangle.
string-insert-rectangle is an interactive autoloaded Lisp function in `rect'. (string-insert-rectangle START END STRING) Insert STRING on each line of region-rectangle, shifting text right. When called from a program, the rectangle's corners are START and END. The left edge of the rectangle specifies the column for insertion. This command does not delete or overwrite any existing text.
Have fun!
This is handy. Nathan Naze discovered that if you load http://www.salon.com/news/cookie.html you will receive the "day pass" cookie salon normally gives you after you watch a commercial. Enjoy it while it lasts.
hippie-expand
The emacs function that seems nifty to me at the moment is hippie-expand.
It is bound to the key sequence M-/. Unless I set that up specially,
it is probably bound the same way in your emacs environment.
Below is its documentation, which can be obtained with
M-x describe-function hippie-expand.
hippie-expand is an interactive compiled Lisp function in `hippie-exp'. (hippie-expand ARG) Try to expand text before point, using multiple methods. The expansion functions in `hippie-expand-try-functions-list' are tried in order, until a possible expansion is found. Repeated application of `hippie-expand' inserts successively possible expansions. With a positive numeric argument, jumps directly to the ARG next function in this list. With a negative argument or just C-u, undoes the expansion.
Have fun!
My very talented brother Michael has started a blog. He is the author of the Top Hat Man ascii art comics and produces drum and bass as Tonal Discrepancy.
open-rectangle
The emacs function that seems nifty to me at the moment is open-rectangle.
It is bound to the key sequence C-x r o. Unless I set that up specially,
it is probably bound the same way in your emacs environment.
Below is its documentation, which can be obtained with
M-x describe-function open-rectangle.
open-rectangle is an interactive compiled Lisp function in `rect'. (open-rectangle START END &optional FILL) Blank out the region-rectangle, shifting text right. The text previously in the region is not overwritten by the blanks, but instead winds up to the right of the rectangle. When called from a program the rectangle's corners are START and END. With a prefix (or a FILL) argument, fill with blanks even if there is no text on the right side of the rectangle.
Have fun!
I recently discovered these fascinating little data structures that I should have already known about. They are called Bloom filters, and they are a representation of a set of keys. Like a hash table storing booleans, they have constant time lookup, but they are really more like a hash function indexing into a bit vector. The link is to a nice description with a little perl code for illustration; an alternative description is at Wikipedia.
Bloom filters are very intuitive and have a number of appealing properties:
- simple to describe and implement
- much more compact than just a hash table of booleans
- can be OR'd together to form set unions
- variable probability of false positives which can actually has privacy-preserving applications
Check them out and you will likely be pleased.
(While we're on the topic of neat little
data structures that aren't talked about enough, check out skip lists if
you're not already familiar with them.)
Shfs is totally the awesome thing of the moment. It is a network filesystem that runs over ssh and just works with zero setup on the server side (provided it is running an ssh or rsh server).
The way it works is this. On the client system, you install shfs, which consists of a regular VFS kernel module. Then you can just do "shfsmount foo.bar.edu /mnt/shfs" (where foo.bar.edu is some machine you can ssh into) and the kernel module will establish a ssh connection into foo.bar.edu. Now whenever you do anything in /mnt/shfs (ls for example), shfs will run some shell or perl code on the server machine to satisfy the request, and it will work just as if you were sitting in your home directory on foo.bar.edu.
The idea is so dead simple and yet has such radical results that I wanted to smack myself for not having thought of it. Man, what a cool idea. Performance is not horrible either because it does some caching.
Off and on for the past several months I have been struggling with an extremely frustrating bug / strange behavior with the (nevertheless) greatest instant messaging client ever written, Gaim. Sometimes, when I would start Gaim, the windows for logging on to my account would appear normally, but the buddy list window would be invisible. I could tell that Gaim was still running by looking at the output of ps(1), and incoming instant messages would even pop up (visible) conversation windows and work just fine. But my instant messaging activities would be seriously impaired since I couldn't start conversations or see who was online. Restarting Gaim (or even my X server) had no effect. Then eventually - perhaps days or weeks later - I would just start up Gaim and the problem would seem to be gone. Despite searching far and wide on the web, I could find no mention of this phenomenon. I have been experiencing this problem off and on across many versions of Gaim.
Now that I have finally discovered a way to fix this problem when it crops up, I'm saying something about it so google will discover it and others may be saved some time. If this happens to you, shut down Gaim and look in the file where Gaim saves your preferences. On a typical Unix/Linux system, this is "~/.gaim/prefs.xml". In that file, look for lines that look similar to the following.
〈pref name='x' type='int' value='-43' /〉
〈pref name='y' type='int' value='-39' /〉
Change them to have zeroes as below.
〈pref name='x' type='int' value='0' /〉
〈pref name='y' type='int' value='0' /〉
Start up Gaim again and hopefully the problem will be fixed. One of these days I'm going to find out how to properly reproduce it and then submit a bug report. I imagine Gaim alone is not the culprit but rather an interaction between Gaim and my window manager (fvwm2, especially due to the fact that I use multiple desktops).