If you’ve moved to a digital lifestyle, and are an archivist, then you are probably downloading tons of data these days. Everything from music to movies to comics to games to images to software to emulator roms to books to articles.

Sorting stuff manually is stupid. Sort things (take a folder full of crap, and sort it intelligently into subfolders) with a script. Assimilate (move subfolders to correct repositories) with a script.

I’m not going to share my scripts. But here is a great pattern for sorting files into subfolders. I’ll use an example that deals with My Little Pony related files:

unset /q MASK
gosub addMask "My Little Pony*.*"
gosub addMask "MLP*.*"
gosub addMask "Equestria*.*"
gosub addMask "*Rainbow Dash*"
if "%MASK%" ne "" if not isdir %TARGETDIR% md %TARGETDIR%
if "%MASK%" ne "" mv  %MASK% %TARGETDIR%

This pattern can be copied over for anything. Simply change TARGETDIR to whatever folder you want. And use the addMask function to add wildcards that match those kinds of files.

:addMask [newMask]
	:Don't bother doing anything if no files match:
	if not exist %newMask% goto :addMaskReturn
	:Otherwise, add mask for those files to our mask list:
	if "%MASK%" eq "" goto :Empty_YES
	                  goto :Empty_NO
		    set MASK=%newMask%
		    goto :Empty_DONE
		    set MASK=%MASK%;%newMask%

Note that all my scripts are meant to be run on JPSoft‘s TakeCommand command-line interpreter (descended from 4NT in the 2000s, which was descended from 4DOS in the late 1990s, which was descended from NDOS, the replacement included in Norton Utilities in the late 1980’s). This would probably work with CMD.EXE or PowerShell, but I haven’t tested those.

Use this pattern to make a giant sortthese.bat that sorts everything everywhere. If you want to get fancy, centralize all the scripts into one script that examines the current path and branches based off of that. (It’s easier to keep backups if everything is in one place.)

Here’s an example of branching based off the location where you invoke a script:

::::: Determine assimilate role:
if "%_CWD"==  "%HD250G:\READY-TO-DELETE"                goto :assimilate_dvd-burned_media
if "%_CWD"==  "%HD250G:\ABOUT-TO-BE-BURNED\DATA\BURNED" goto :assimilate_dvd-burned_data
if "%_CWD"=="%HD2000G5:\ABOUT-TO-BE-BURNED\DATA\BURNED" goto :assimilate_bluray-burned_data
if "%_CWD"==  "%HD256G:\MEDIA\MOVIES"                   goto :assimilate_freshly_watched_movies
if "%_CWD"=="%HD1500G2:\MEDIA\MOVIES"                   goto :assimilate_freshly_watched_movies
if "%_CWD"== "%HD2000G:\MEDIA\MOVIES"                   goto :assimilate_freshly_watched_movies
if "%_CWD"== "%HD1000G:\downloadclient\completed"       goto :assimilate_fresh_downloads

^ That code may be confusing-looking because I never hard-code drive letters. All my harddrives have environment variables which evaluate to the correct letter depending on which computer you are on. Also, %_CWD is TakeCommand’s variable that is the current folder you are in. That does NOT work in CMD.EXE. CMD.EXE uses something else, so this would need some modification (more…)

So the other day, I needed to drag a window from my secondary monitor to my primary monitor (tv)…

But the secondary was off, so I wouldn’t be able to put my mouse on the window (beucase I couldn’t see it)…

And I didn’t want to get up to turn it on….

So I used VNC to VNC to myself, and did it that way. This means I had a window on my desktop that was my entire computer. So there were 2 copies of everything. And if I moved my mouse pointer inside the VNC window, it would attempt to move my mouse pointer to the same place it was pointing to on the window within.

Sure, it was hard for awhile, fighting the fact that my mouse was trying to be in two places at once.

But in the end, I won.

I got that window dragged. w00t.

Daniel H adds: “I am both appalled and filled with admiration.” (more…)

2001 - computer - Fire - in it's heyday doing IRC

IRC downloading, 2001

Remember IRC? It was the first thing I did when I got on the internet in 1992 at Virginia Tech — and the first time I’d done it legally. Funny stuff you could do with the mIRC IRC client. You could have a custom quit message. For example, you could type:

/quit gotta go to work

and then it would say to everyone else in the channel:

ClintJCL ( quit the channel (gotta go to work).

Wanting to out-do everyone else, I thought it would be funny to say something offensive to a lot of people. Especially since they can’t kick you from the channel — because you just quit! But I wanted my solution to be technically impressive too, so I scripted up random twisted sentences, by creating some text files that would be pieced together, almost like a Mad-Lib. That way, I could leave, and it would automatically come up with hilarious/crazy/sick/twisted things.

Here are some actual examples:

  1. ClintJCL ( quit the channel (sold children to pimps (who will make whores out of them), while they slowly bled to death).ClintJCL ( quit the channel (got a blow job from your fat mom while on the floor of congress).
  2. ClintJCL ( quit the channel (sold children to cannabalistic African tribes, where they will slowly starve to death)
  3. ClintJCL ( quit the channel (got a rim job from your fat mom in front of the Queen Of England).
  4. ClintJCL ( quit the channel (smoked medical marijuana with The Taliban in front of 221 innocent children).
  5. ClintJCL ( quit the channel (sold children to child pornographers, while they pleaded for their lives).
  6. ClintJCL ( quit the channel (dropped acid with Ronald Reagan while in the White House).
  7. ClintJCL ( quit the channel (sold children to black market organ harvesters, while onlookers laughed).
  8. ClintJCL ( quit the channel (had an intense bondage session with your aunt while watching cartoons).
  9. ClintJCL ( quit the channel (got a hand job from Mohammad Atta on national television).
  10. ClintJCL ( quit the channel (sold children to black market organ harvesters, where their spirit will be broken).
  11. ClintJCL ( quit the channel (spooged all over your raunchy mom in front of 566 innocent children).
  12. ClintJCL ( quit the channel (sold children to medical laboratories for twisted genetic experiments, where their spirit will be broken).
  13. ClintJCL ( quit the channel (snorted crystal meth with George Bush while going on a homocidal killing spree).
  14. ClintJCL ( quit the channel (spanked Mohammad Atta in front of Mohammad Atta’s mother).
  15. ClintJCL ( quit the channel (smoked P.C.P. with George W. Bush in front of 317 starving Afghan refugees).
  16. ClintJCL ( quit the channel (took psychedelic mushrooms with Jesus Christ in front of 567 innocent children).
  17. ClintJCL ( quit the channel (spanked your sister in front of the Mormon Tabernacle Choir).

The possibilities, while not endless, were pretty damn vast.

How did I do this?

I did this by piecing together sentence fragments from text files I created. Sentences followed one of these formats:

  1. sold children $read(thingstosellchidreninto.lst) $+ , $read(sadsentenceendings.lst)
  2. $read(drugtaking.lst) with $read(funnydrugcelebrities.lst) $read(funnysentenceendings.lst)
  3. $read(sexualthingstodowithpeople.lst) $read(funnypeopletohavesexwith.lst_ $read(funnysentenceendings.lst_)
  4. It was also set up so that about 5% of the time, it would make political statements, quote Sabbat lyrics, or Praise “Bob” …. but I’m not including those in this blogpost. This blogpost is about funny things I’ve said dynamically and programatically; not static things I’ve said. :)

I will include the actual contents of the files at the bottom of the post. But here is the list of the files themselves:

  • drugs.lst: a list of drugs (pot, acid, cocaine).
  • drugtaking.lst: a list of drugtaking phrases (injected heroin, dropped acid, smoked pot).
  • Ha! Ha! Overdosing on drugs and trying to kill yourself is funny!!

  • FunnyDrugCelebrities.lst: a list of people/entities that are amusing to think about doing drugs. (The Pope, Barbara Bush, Janet Reno, God).
  • Haha.. Celebrities are funny to do drugs with. Aren't Sid & Nancy funny? Ha ha.

  • FunnyPeopleToHaveSexWith.lst: it’s what the filename sounds like. (Your mom, your sister, your dead grandmother’s corpse, etc).

    Funny to have sex with

  • FunnySentenceEndings.lst: Tacked on to the ends of sentences to make them funnier. (while in the whitehouse, on national television, in front of 22 cops, in front of the Mormon Tabernacle Choir)

    everything's funnier in front of the Mormon Tabernacle Choir!

  • SadSentenceEndings.lst: This could have been in the same file as FunnySentenceEndings, but I randomly decided whether it would be funny or sad. Sad ones included “while they begged for death’s sweet release”, “while they slowly bled to death”, “where they will spend the rest of their lives in misery”, and such.

    sentence endings so sad...they're funny

  • SexualThingsToDoWithPeople.lst: A list of sex acts (had anal sex with, had an intense bondage session with, etc)

    No... Really... Weird sex acts ARE FUNNY!!!

  • …And the most twisted filename of all: ThingsToSellChildrenInto.lst (sweatshops, sexual slavery, etc – check out the full file below)

    Postcard - 2 boys smoking

    Sell them into smoking advertising! HA HA!

  • HatedPeople.lst: Only used from within FunnyPeopleToHaveSexWith.lst (because it’s funny to have sex with hated people) and FunnySentenceEndings (because it’s funny to do things in front of the mom’s of hated people). Osama Bin Laden was in this list. I really could have made this a nice, long list if I’d really tried.

And now, past the jump, the contents of the files themselves… But first, a Sloth!


This is actually related to the discussion. Back in the IRC days, my name was _Vengeance_. Needing to win wars against other people's scripts, I ended up running several other clients, including _Wrath_, _Sloth_, and _Avarice_. Well, someone sent this sloth.jpg file to me randomly once! Paranoid people will never experience the joys that can be had by automatically accepting unattended file transfers from strangers!


Tripp responds to a Google+ post of mine

I honestly don’t get Instagram. Your phone already has a camera, and can already post pics to Twitter or FB. Does sticking a white border around the photo before sharing it really make that big of a difference?

Yes, yes it does.

It makes the photo worse.

Drawing a border is the job of the HTML or CSS. Someone wanting to a photo or insert it into their own collection will now be cursed with inconsistency in their collection.

In fact, I’ve used ImageMagick to write a script to blindly strip x pixels off the edges of pictures, specifically to normalize photos I add to my collection that have stupid fucking built in borders. That way I don’t have to bug anybody about it (other than this blogpost).

And don’t get me started on fake Polaroids. Anyone taking a picture on a iPhone trying to make it look like a Polaroid is as stupid to me as someone who rips a CD to a lossless format then purposely adds phonograph needle sounds and crackles. Another, weaker metaphor: buying new jeans and ripping holes in them to get “that look”. Or how about buying a bluray, then ripping it to your computer, and using video editing software to add fake VHS effects to it? ALL OF THE ABOVE IS FUCKING STUPID.

Basically, fuck hipsterism*, to some extent.

*(or certain aspects thereof, especially unjustified Apple fandom)


I even did some googling to try to find out more information, just for the purpose of this post not accidentally being full of shit. And for all I can find, there’s nothing Instagram does that Flickr and other photo sharing sites weren’t doing first — in some cases more than 5 years ago.

So why do I have to hear about it 5 times a day now? It coming to Android doesn’t make it any less useless, or any more useful than a myriad of solutions already out there. If I try to distill this to the crux of the issue, it boils down to cell-phone people pretending they are computer people.

But it’s okay. EVEN BEFORE IT WAS RELEASED TO ANDROID, the word “instagram” caused my eye to instantly dart down the page to the next item. “Instgram” being on something has very much become synonymous with “item Clint does not care about”. There’s a bias and a prejudice now, just based on being fed up with the whole pretentious trend. And yes, I am using the dictionary definition of pretentious, as in “Attempting to impress by affecting greater importance, talent, culture, etc., than is actually possessed.” When Kevin Smith made Clerks black & white, there was a reason. 1990 security camera technology. When you do it? It’s most likely pretentious. (more…)

It’s actually very, very, very simple. Create a torrent. Add some tiny file that has nothing to do with it. A README.txt or an unrelated JPG, for example. Create and upload your torrent.

Now move that file out of your local seeding location. Everyone who gets the torrent will thus not be able to get that data.

They will be stuck at 99.9%. Erroneously thinking that the torrent is not complete, they may let it run for days, weeks, or even months before realizing that in fact, all the files except for that one are 100% complete. Generally this means you will get far more seeding.

It’s great to subvert subversion ;) (more…)

The “flat” sound that some people describe mp3s as having has nothing to do with them being mp3s. This is a misconception that I’ve seen repeated about as many times as people claiming that vinyl sounds better.

The “flat” mp3 sound (often attributed to ALL digital formats) is typically is due to the fact that when mp3s were first adapted, harddrive space cost a lot more, and they encoded them at low bitrates such as 128kbps, with most encoders cutting out 16kHz-20kHz range altogether. So yeah. That’s pretty bad. Unlike vinyl or cassette or CD, mp3s can be encoded in more than one way. And most of those ways were shitty when the format first came out. Unfortunatley, that’s when most people ripped their music, and music piracy helps keep such shitty encodes circling the globe.

This is why I’ve found myself buying a CD even though I’d already downloaded the mp3s of it. Because I wanted to make PROPER mp3s that actually SOUND GOOD.

The encoder itself matters, too. The same bitrate with different encoders that use different acoustic mathematical models will result in different sound quality. Such models have improved greatly over the years. I recommend LAME.exe. Many power users consider it the best encoder out there.

Let me play you a lossless recording and a LAME.exe, VBR-encoded mp3 over my 5.1 system compared to a WAV or FLAC of the same song. (But only after making sure they both come out at the same apparent volume; people often pick whichever one is the loudest one otherwise.) When you can correctly choose which is which 75% of the time, I might consider you an exception to the normal abilities of the human ear.

I hear a lot of people try to make up a silly claim that mp3s sound flat because they are in fact only discrete points of the audio, with math filling in the rest. And our “brain can tell the difference”.

Sorry, bub. That’s just not true. Your brain may be able to tell the difference between some files on your harddrive, but that is because they are bad files, not because they are digital. Reality is simply a matter of our brain being fed certain signals. There are most certainly upper limits in the resolution and processing power of what we can perceive — even if science may have the wrong limit stated (or not know them at all), and even if human beings exhibit a wide variance in perceptual talent. (There may be 1% that need double the bitrate to be fooled!) Yes, some people definitely hear at a higher resolution than others, just as some people have a greater tonal range. Eventually, however, technology will be advanced enough (and storage space ridiculously cheap enough) that it will be quite possible for everybody to carry a recording of something in such great resolution that no human being on the planet could ever distinguish it from the original analog production of those same sounds.

We’re not there yet, but how many of you have done a controlled study? Did you have someone play you back the 2 files? Did you make sure they both had the same volume? {mp3 encoding often mucks with the volume levels slightly}. Did they record the results? Were they randomized? What percentage of the time were you able to tell? So far, I know few people who have done a test like this. I did in 2000 — and years later decided that the results I had recorded for myself were wrong. I thought 160kbps was good enough. Then I thought 192kbps was good enough. I was wrong. I now encode at the highest bitrate with the highest quality. The point being — I’ve been willing to correct my own personal assumptions several times over the years.

Further complicating things is this:

They did surveys and found that people who grew up on inaccurately-encoded mp3s preferred the sound of that to lossless recordings!
In other words, they preferred something worse!

This explains all those vinyl people right off the bat. They like the “warmer” sound because it is what they are used to. And it’s hard to perform a double-blind test when comparying vinyl to other formats, because vinyl is such a broken format that it’s impossible to NOT tell it’s vinyl. I’ve never not been able to hear the needle, to hear pieces of dust. I’ll carve an exception for people who use laser-based vinyl record players (which do not use needles), but they are still subject to the RIAA equaliation curve which causes vinyl to actually represent the full tonality of sound IN AN INFERIOR WAY. But because they can always hear the hiss and crack, in a survey, vinyl will win. It doesn’t mean shit. It means as much as the college kids in the study above preferring shitty 128kbps mp3s over lossless FLAC. People are dumb and don’t even know what they want. I didn’t know what I want and changed my own mind a few times.

The conclusion of the study for me personally is that when a single human being claims to like one format better than another — it really doesn’t mean much in terms of the format being better. People like worse things if that’s what they are used to. Aggregate controlled surveys are what truly dictates which format is better.

I grew up on vinyl, but I know CD is an improvement on it, because I personally think the people who say they prefer the “warmer” sound of vinyl are as full of shit as the students in the slashdot article linked above. The same thing applies to those who think that digital music is automatically “flat”. No. It depends on far more than whether it is digital/mp3 or not.

[P.S. If you haven’t done a blind, controlled study with volume-normalized encodes at the highest possible bitrate — please do not leave a comment about your opinion. I’m only interested in the opinion of people who understand proper testing methodology, and have gone through a proper test.] (more…)

Another old computer story. During the 2 Virginia Tech years that I lived in Pritchard Hall, I ran a BBS on the data lines they provided to the dorm. (If you don’t know what a BBS is, click the word BBS for an explanation. This was how people socialized online before the internet came about.)

B&B - SubGeniuses - Bob Bob Bob

Sample BBS advertisement for a SubGenius BBS. Good luck finding a Flying Spaghetti Monster BBS ad. Haha.

My BBS‘s name was On Earth As It Is In Hell, named after a live Samhain bootleg 7-inch vinyl I bought at Smash Records, itself named after lyrics from The Misfits song Earth A.D.

On Earth As It Is In Hell - logon ANSI

On Earth As It Is In Hell login screen. No graphics here, this is all text with ANSI color codes.

It was the most popular message board in Virginia Tech during the 1st of the 2 years I ran it, though during the 2nd year, the internet began to really take off, and lowered my usage. I can’t imagine what the World Wide Web would have done to my BBS; that didn’t come about until I stopped running it.

On Earth As It Is In Hell - ASCII zip comment made from ANSI login screen

On Earth As It Is In Hell login screen, ZIP-file comment version

ANYWAY, the software was WWIV, which I had paid $50 to license and modify the C source code to. I’d spent my whole summer after graduationg high school modifying the BBS code, so that it would be ready for deployment when I got to college.

19930805 - Fish Tank BBS - Dave Nelson was the sysop

My friend Dave N's BBS's ad. He ran WWIV, and together we used obscure modem protocols that nobody else used to become the first gateway for outside messages to reach the Virginia Tech BBS scene. We had nationally syndicated message boards, with his BBS being my BBS's contact point. I was the only BBS in Virginia Tech to achieve this. We had WWIV "email addresses", where we could be contacted internationally -- long before we had real email addresses (which was 1992).

(side-note: It really didn’t help that my parents pulled the pointless bullshit of disallowing me from taking my own computer to college, citing that I “wouldn’t have enough time” to use it, which was very typical bullshit, and completely false. Of course they insisted on buying the $3,000 DEC Alpha station that I said was unnecessary…and that computer was more of a timewaster than anything. Four hours to figure out how to compile Nethack, when you could download it and run it on a PC without compilation? Funk dat!)

blacklights are cool .. so is nethack .. 106-0630_IMG

Nethack being properly played on Carolyn's PC -- no compiler-fu knowledge necessary! Unix is great, but I've got other things to do, like USING my computer instead of tinkering with it.

I was always a mischief maker online — and still am to this day.

I got my first death threats within a year of getting online, in 1988. I got assaulted several times, including while sleeping at my best friend’s house, and while waiting in line for a Testament concert in 1990. At least once, I couldn’t return to my own dorm room. But as the saying goes — “Though they paint the wall to stop my pen, the shithouse strikes again!”

20050723 - Clint cut himself shaving - 100-0005 - Clint bleeding, funny face

Fortunately, I was never assaulted THIS badly. But I do suck at shaving...

I had certainly pulled my share other mean tricks before, as depicted in this ANSI art about me, created by Where The Wild Things Are sysop Jerry Hinn:

This guy named Batman was so lame. My handle was Satan. I used my high access to change his colors to black on black, then created a message board he didn't have access to, and posted the logfiles of him flailing around the BBS, unable to access anything, typing in the darkness of black-on-black text. lulz!


I’d pulled my share of mean tricks, and this was another. It was a code modification called DELAYED USER DELETION.

Rather than deleting a user, you simply set his access level to -1, or some other technical fudge. The modified code then checked the user’s access level when they logged on. If it was -1, it would display a message to them, and then delete their account. In this way, I had the technical assurance of getting THE LAST LAUGH.

20091231 - New Year's Eve Chili Cook-Off - Clint - lurking - (by Parthena) - 4236959431_56ce3968f6_b - 2 - original version

Beware--I always get the last laugh.

But that’s not enough. I had to add insult to injury. I used an ANSI art of a big middle finger as my closing message.

Mark + Mask + middle fingers 104-0456_IMG

...and the horse you rode in on!

I also tacked on 4,096 Control-G’s to the end.

Remember Control-G? It’s the beep character.

Back in the DOS days, beeps were loaded into some sort of buffer, and could not be stopped. You had to wait it out. And you could barely type or use your computer or get any responsiveness whatsoever when this happened.

1998ish - Clint's room - screens & clutter - 1

My equipment shall defeat yours!

By flooding their computer with literally thousands of beeps, I wasn’t just deleting them. I was filling their room with loud noises that would bother whoever else was around, AND I was forcing them to have to physically reach for their power switch and turn their computer off. It was my final FUCK YOU to anyone I deleted. Hopefully I woke up their roommates, and they had to get up out of their chair to turn their computer off. HA HA.

best...reboot...ever - A-Bit modified BIOS replaces EPA logo with pot leaf - 112-1288_IMG

Have fun rebooting, assholes!....... I bet you guys don't even know how to modify a BIOS logo...... pfft......

Years later, I ran into people at a party who had been deleted from my BBS. But they refused to tell me who they were. Hahaha.

I wonder if they got hit by the Control-G-bomb??

20070113 - Clint's 33rd Birthday party - 109-0974_Ben - after being forceably subdued

Most assholes I run into at parties do not come from my BBS past.


Someday I’d like to expound on this more…

As part of the loudness wars, they are compressing the dynamics of music more and more.

So we have music that’s at an average level of 90% with a 98% peak vs music that’s at an average level of 50% with a 75% peak. (more…)

What a fucking stupid name. A photo booth is something people walk into, press a button, and get 4 timed photos taken. THAT IS WHAT A PHOTO BOOTH IS.

So in wanting to set up an impromptu photo booth for parties and other events (using a computer and a digital camera), I’m looking around for free photo booth software. And I found some. But then I download it, and it’s not software for running a fucking photo booth. It’s simply software imitating apple’s Photo Booth software.

Thanks, Apple, for coming up with a name so fucking stupid that you actually made it harder to google for the real thing.

There ARE options out there:

  • OpenPhotoBooth works, is free, and is very basic as it’s a new project currently in development. It can use any device Flash can see — webcams, some digital cams. There is, however, no configuration options, and the HTML is very basic. Nor are the 4 photos actually stitched together. This is a work in progress, but if development continues, this will eventually emerge as the clear winner based on its $0 price.
  • PartyBooth sounds good. They still want $60. At least it works out of the box for $0. But only for 7 days. And with watermarks. Grrr. Also runs on Adobe AIR. Still, this actually had configuration options. This had an actual voice that said “smile”, and was extremely polished. I’d choose this over OpenPhotoBooth if it was free, but it’s not, and I”m cheap. The 4 photos are stitched together and everything.
  • PSRemote is probably great, IF you have a Canon camera that is compatible with it. Neither of mine were. I think it’s $75 to register, too. Ridiculous.
  • Photoboof is probably great, if you don’t mind having a watermark in the center of every picture, or paying 600 fucking dollars.
  • SeaMonkey wants $150, and it isn’t even released yet!
  • CrazyCam (which runs on Adobe Air) is just a Mac Photo Booth clone.
  • There are other options out there, but if it’s obviously crippleware [i.e. not fully featured out of the box, puts watermarks on the pictures unless you pay, like Photoboof] — then I’m not even going to try it.

I’m tired. I’ve spent way too much time on this, and a lot of it was wasted by a dumb decision on Apple’s part. I had to install a fucking runtime (Adobe AIR) just to run CrazyCam just to find out it’s NOT photo booth (as in, the real booths) software, but Photo Booth (as in, Apple) software.

So tell me, faithful readers. What is a good software to set up an unattended photobooth with? Specifically, freeware/shareware windows?



I was always one who did things first on their computer.

I was the first human being I knew to get online via BBSes (using a dumb terminal, not a computer), AND on the internet (via illegal hacking; special thanks to local wardialers).

I was the first human being I knew to have his computer talk, or store music digitally (VOC file of 16 second Descendents song in ~1990, baby! MP3 wasn’t invented yet!);

I was the first human being I knew to use a social networking site (SixDegrees–not ONE person answered my friend requests. People didn’t understand the potential of the concept, and now almost every one of them is on Facebook);

I’also m pretty sure I was the first human being I knew to use Google (at least, I remember emailing my whole addressbook to tell them about this new search engine that beat the pants off of Altavista and Lycos. But perhaps I heard about it from one of my colleagues).

I was also the first human being I know to have any semblance of a buddy list — because Windows chat programs hasn’t been invented yet. Not to my knowledge. I did it by cobbling together the unix finger command via a cron job with it’s output filtered by grep.

HOW? Step 1: Know the unix ‘talk’ command

Unixphiles probably remember the Unix talk command. Before Facebook chat, before Yahoo Chat, before AOL chat, before ICQ, even before BBS sysop chat — there was the unix talk command:

^ Kinda like that. But without the Windows around it, as you were probably on a dumb terminal connected to a unix server

It allowed you to talk to an email address — since back then, the majority of email addresses were tied to a unix shell account.

Besides IRC and BBSes, this was really the only way to talk to someone else online. And I’ve always been interested in the extra reach online provides; I’m an eccentric person and it’s always been hard to find people like me.

In fact, I met Carolyn on a BBS in 1991 — and it just so happened that she went to my high school. Thus, when we first met over 18 years ago, her first words to me were, “Are you Satan?”, and my first words to her were, “Are you Magic Mist?”

HOW? Step 2: Know the unix ‘finger’ command


Perverted jokes aside, the unix finger command let you ‘finger’ an account, to see some basic information about it. A very basic finger would, at a minimum, give you a set of information like this:

(I've redacted my IP address from these screenshots.)

And if you edited a local file called “.plan”, you could insert extra information here. Of course I did this, so my finger output was actually longer (insert Futurama finglonger joke here):

(Click any of these images to see them in full size.)

Notice the line that says “On since Wed Dec 23”? That is crucial for step 3.

HOW? Step 3: Know the unix ‘grep‘ command

Grep is one of the single most useful unix commands in existence. I use it EVERY day. It basically returns lines that match what you’re looking for.

I use it to search my phone numbers, as well as to search my filelists so I know where files are. It employs regular expressions, which are a powerful way of matching text. (Ask Vicky about her regular expression skirt…)

Basically, if you grep for something that isn’t there, it will return nothing, like so:

Yes: The finger output above did not contain the word "snuffleupagus", so there was no output.

But if you grep for something that IS there, like “On since”, it will return the line that matches that:

"On since" appears in my unix finger output, so that line is displayed.

So now we have a command that:

  • Displays a line of text if an account is online (because finger returns a line saying “on since”)
    – or –
  • Displays nothing if an account is offline (because finger does not return a line saying “on since”)

It looks like we have a way of spitting a line out to the screen if someone is online. But how do we automate this?

HOW? Step 4: Know unix cron jobs

Cron jobs are simply unix’s way of scheduling tasks. I wont go into the details, as they are quite fugly.

But basically, you can run programs at any interval you want. I used to use it to send emails to myself every hour during business hours reminding me to do my anti-carpal tunnel hand exercises. It’s well known enough that there are shirts of it available at

free advertising

So, I simply set up a cron job to finger specific email addresses and grep them for “on since” every minute. If the person was online, the text would simply appear on your screen — wherever your cursor was:

Sample line of output.

This could mess up what you were doing — displaying a line of text over your email inbox, or over a file you were editing; so you would just hit Control-L (the refresh key) to erase the text and fix the screen. It was an ugly kludge, but it worked. And obviously you might want to grep the line containing their username out as well, so you know who is online.

In my case, I was only monitoring ONE person, so I didn’t need to know who it was.

She eventually sent me photographs of her boobs in the postal mail, so I’d say this system was a success.


They say all significant hardware advances are due to war, while all significant software advances are due to porn.

I eventually found her on Facebook, but I’m honestly not sure if she remembers me. And before anyone asks, she was, and is, quite attractive. In fact, between this girl’s photographs, and 18 years and counting with Carolyn, I’d say most of the sex I’ve gotten in my life has been a direct result of my technical prowess. Rowwwr…. Am I sexy yet?


No point. (Made you read! Haha!)

I just thought it would be neat to document something unique that I did in the early 1990s. I’m sure other people had this idea and implemented it too — but *I* didn’t know these people. Back then, people weren’t generally connected online — the world wide web didn’t exist yet. People had to come up with innovations on their own. So if anyone else ever did this as well — or something similar — I’d love to hear about it.

Old school computing had so much charm compared to nowadays. Nowadays, everything has been done. I just spend time talking about politics, blogging, and uploading photos. Back then? It was big a challenge just to get your words to reach ONE person, let alone millions of readers.

THE END. (more…)

Hmm… Tried using Carolyn’s wordpress app on her cellphone in the middle of the night…  So uh, we ran into one of those crazy flappy things at a yard sale last weekend:


so on flickr i saw someone with “iphone paintings”  on their photostream… i thought that was a neat idea, even if it’s a bit like childish fingerpainting. i played around in bed with this one. it looked sooooooooooooooooooooo much brighter in the dark… i spent like 10 minutes on it, by lowering the thickness and using spray mode, which meant you could barely see what you were painting, thus allowing very subtle color variations blah blah it looks like shit on my hdtv, gotta fix it in photoshop once i catch up:


brightness on a cellphone and on an hdtv are 2 totally different things! YOU SUCK

I think it’s a mistake… But… It’s pretty dumb that it’s that much harder to RSS-subscribe to a flickr tag nowadays. Dumb, dumb, dumb. Subscribing to a tag is one of the best ways to use flickr. If you want to see new photos of celebrities, TV shows, or *anything* you like, without having to check all your interests every day, it’s really the only way to do it. Plus, as they all show up in the same part of your screen [your rss reader], pre-loaded, you can go through images in half a second each — less time that it would typically take to find a photo and click it.

So here’s the format:

FlickR: RSS a tag:

Just subtitute in a different name other than Nicole Kidman. Don’t use spaces, of course.

Some suggested FlickR RSS subscriptions:

Lily Cole
Nicole Kidman
Penelope Cruz
Salma Hayek
Anna Faris
Annie Wersching (redhead agent in latest seasons of 24)
Elisha Cuthbert
Mena Suvari
Teri Hatcher (hopefully pre-Michael Jackson face)
Jennifer Connelly
Connie Seleca (alas, new pics of her are INFREQUENT)
Elizabeth Kucinich (I’m waiting… patiently.)

If you’re a geek, here’s some more:
command line
Clint’s ASCII & ANSI artwork pool

Some RSS comedy links:
Fail Flickr photopool
TENSO photopool (also mine)
Totally Looks Like
WTF pictures
Garfield Minus Garfield

Enjoy loadin’ up your reader with this goodness. Cartoon lovers may want:

Beavis & Butt-head photopool
The Simpsons flickr tag
The Simpsons photo pool
The Simpsons – another photo pool

There have been unexpected consequences for me. The first time I heard of the movie The House Bunny was via flickr, because someone posted an Anna Faris pic (She’s the star). Since I’m not plugged directly into the hype machine, several movies by some of my most lusted-after actresses have come to my attention by me subscribing to their pictures. Or the time my dad told me The Simpsons were coming out with postage stamps. He figured I didn’t know, because I don’t use the mail or buy stamps. But I’d seen their picture on flickr. When the world is your input data set, you get all kinds of interesting output. Yay technology!

So anyway — put THIS into your RSS reader and smoke it! (more…)

One of the things I try to avoid is the business of manually checking sites. I really don’t do it. It’s a phenomenal waste of time. Even if you only check 1 or 2 sites a day, you may find that automating the process [via rss] leaves you with more free time, allowing you to either check more sites, or, you know, reclaim your life back. I spend 0 seconds a day typing my favorite websites into the addressbar and waiting for pages to load.

The Notifications feed (found near the bottom-right of the page HERE, though it may be more prudent to use the new RSS News Feed Reader app on Facebook) always felt useless to me. Why would I want to read in my reader that someone commented on a link of mine? I’d rather get the email, so I know RIGHT AWAY, so I can converse. So I always skipped over the notification feed for having untimely info. However, that feed contains other stuff you might read on your news feed, such as quizzes, surveys, and other banal facebook stuff. The flaw in this feed has always been that it is half “stuff I want to know the second it happens” and half “stuff I don’t care when [or if] I find out”. The trick is to send the first half to email, and the second half to RSS.

To do this, we need to scrub the time-dependent stuff out of the Facebook Notifications feed, using a 3rd party RSS feed filter such as FeedRinse (NOTE: FeedRinse SUCKS! I would advise finding anything random on the internet over using FeedRinse. It’s unreliable and slow, and doesn’t actually save time.). This ruleset is by no means complete, but it’s a damn good start:

FeedRinse is also good for filtering your “friends’ status updates” and “friends’ links” and “friends’ notes” feed: Remove those pesky repetitive things people repeat every week, MafiaWars invites, mentions of football, particular people you want to shut up but don’t want to friend, and such.

Screw reading by the web! It forces you to read everybody’s stuff with no filters, and it forces you to manually check. You also have no way of storing a backlog — Facebook only goes back so far in the web; the reader remembers everything that happens while you are gone. It also allows you to search everything you’ve read, which you can’t do on Facebook. After seeing a movie I like, I search my reader for that movie. A lot of the results are friends talking about it. I now know who saw the movie, and go and leave a comment. Sometimes people are surprised that I’m commenting on something they posted 6 months ago. “How did you find this post?” RSS, that’s how! (more…)

I used to do this manually by simply seeking to different parts in a video file, with a player that will render before hitting keyframes (VLC, I believe). But people have gone as far as to encode purposefully “broken” AVI files just to exploit this trippy feature. Really cool:

Data Mosh tutorial:

Here’s an example of a “data moshed” video:

QuickTime blows in so many ways, and everyone in the video know has known this for eons, since the 90s. It is from the same caste as RealVideo. Much better options have come along, but by far the most workable is the mpeg4-based Xvid (or the predecessor Divx), which can be thought of as “the mp3 of the video world”. Especially since they are both technically mpeg standards. (Though for high-def movie and show distribution, h.264 MKV is the shit. But it’s not as workable with as much software, unlike AVI.) (When I do VOB->AVI encoding for movies these days, I use h.264.)

Anyway… I was a bit aghast that my new camera takes videos in QuickTime. I wish the video codec could be changed at the firmware level. That would be nice. MPC (Media Player Classic) can’t even play the video files out of my camera, only VLC Player. And MPC works for most stuff (though not nearly as much as VLC, which plays just about anything in existence.)

So I wanted a simple command that I could execute to convert all the videos in a folder without ever having to think again — to just type “convert-camera-videos” in a folder of new stuff off my camera. Easy enough:

convert-camera-videos.bat (requires 4NT to use @NAME):

for %%1 in (*.mov) call mov2avi.bat "%%1" "%@NAME[%%1] (xvid).avi"
call deprecate *.mov

The first line uses “mov2avi.bat”, which is:

echo using fixed_quant=4
echo ...... 1-3=very little improvement/huge files
echo ...... 4-5=good for high qual vid
echo ...... 31=lowest
mencoder %1 -ovc xvid -oac mp3lame -xvidencopts fixed_quant=4 -o %2

^^ Note that I left some comments in there should I decide to change the quality to make my files smaller. In fact, I had to change fixed_quant to 11 to get the videos small enough to work with my command-line Flickr API uploader.

The 2nd line uses “deprecate.bat” which is really not required. Deprecate is simply a bat I have to rename files to “.deprecated”. It’s my way of deleting something without deleting it. I frequently deprecate photos that I don’t really want in my collection, but that I don’t want to delete either. It helps my data hoarding by allowing me a way to remove things from thigns without having to actually delete them.


@echo off
set NOQUOTES=%@STRIP[%=",%1]
ren "%NOQUOTES" "%NOQUOTES.deprecated"
unset /q NOQUOTES

Anyway — From now on, no more bullshit QuickTime for me! Xvid only! And if I feel my files are too big, I can always raise the value of fixed_quant in mov2avi.bat. (more…)

I always prefer a solution where I type exactly what I want in as few keystrokse as possible, and go straight to my result without having to click around, load a bunch of webpages, or point my mouse at things. Flickr is no exception. If I want to go to my photostream, I just click the flickr icon in my toolbar or type “flickr“. But if I want to, for example, see all pictures of Carolyn — I ust type “flickr Carolyn“. Everyone else would have to go to flickr, probably type in the URL or click a toolbar, then type in what they are searching for, then click submit. Extra page loads. Extra time. Extra effort.

Power users don’t play that waiting game. We script solutions. My flickr.bat is damn simple, and has probably saved me well over an hour of pointless clicking. I’m very good at timewasting, so it’s important to give myself as much time to waste. People who do crap manually are just inferior users of time.

This stuff isn’t genius. It’s obvious. I could have done this with the skills I had in 1987 — if the web existed back then.

It’s very useful when someone is over here, and they say something like, “Who is Jane Doe? I don’t know if I know here.” I respond: “You probably met her at one of our parties” and then type “flickr janedoe” at the command-line. A few seconds later, pictures are on the screen with a minimal amount of effort, waititing, or bandwidth. So here it is. It’s not genius. It’s obvious:


if "%1"=="" goto :noarg

goto :end

20180908 1051 - Claire


Unfortunately this Facebook Application Idea would not work, as it would end up messaging random people who don’t install the app, most likely a violation of anti-spam rules. Then again, you never know. Here’s the idea for my Facebook App, the “Manatee Joke Sender”:

South Park - Clint - by Clint - Towelie shirt First off, you need to know what a “Manatee Joke” is. You can read about it HERE. Basically, South Park criticized Family Guy, in their two-part episode Cartoon Wars, for writing jokes with manatees. They said they had manatees in a tank, with ideas written on balls. Things like “Gary Coleman”, “Mexico”, and “Laundromat”. The manatees then select these balls at random, and a joke is made. In South Park, they parody Family Guy, and show them breaking away to an imaginary flashback — “Remember that time I took Gary Coleman to a Mexican laundromat?”

The whole point of their criticism is that Family Guy’s jokes are completely random and have nothing to do with the plot:

Don’t you ever, ever compare me to Family Guy, you hear me Kyle? Compare me to Family Guy again, and, so help me, I will kill you where you stand! Do you have any idea what it’s like? Everywhere I go: “Hey Cartman you must like Family Guy, right?” “Hey, your sense of humor reminds me of Family Guy, Cartman!” I am nothing like Family Guy! When I make jokes, they are inherent to a story! Deep situational and emotional jokes based on what is relevant and has a point, not just one random interchangeable joke after another!
—Eric Cartman, Cartoon Wars Part I

So anyway.. Facebook has fan pages. For example, you can search for Gary Coleman and click “Become a fan”.

Deep Space Manatee by nickelcroquette @ flickr

Deep Space Manatee by nickelcroquette @ flickr

This leads me to the manatee idea on a social network. Pick 3 random things — Gary Coleman, Mexico, and laundromats. Obviously these 3 things have to have fan pages on facebook, but hey, you can fan “socks” and “nitrogen” (yes, the gas) if you want on facebook. Just about everything has a facebook fan page!

The application picks 3 random things… And then cues the admin to write a joke using these 3. The joke is then sent to all facebook people who are fans of the 3 items intended. So it hopefully only goes to people who would appreciate the humor.

Sadly, this sounds like a lot of effort to implement, it would be considered a nuisance or spam by the people receiving the joke, and there’s probably no money in it. And an AI could not write funny jokes; it would have to prompt a human.

I still think there’s potential here… Someone should do it. Just not me :)

Some tips for doing re-installs frequently…

1) Always keep your hardware drivers for any computer in C:\HARDWARE\computername\hardwaretype\hardwarename

For example:
c:\hardware\Hades\video cards\ATI\ for your video card drivers.

And of course, make sure this folder is copied onto 2 computers, or part of your backup process. This is very helpful. For one thing, install CDs are often lost. For another thing, personal research allows you to leave little notes like “Use the install CD, then upgrade to this version, but NOT the latest version, it sucks”. Information that’s not used frequently and often forgotten can save you if you put it in a place where you can’t miss it.

2) I always keep my basic non-installable command-line tools in C:\UTIL\, which is replicated to every computer every reboot. Lots of my tools thus work, automatically. I copy my command-line, 4NT, from another computer as well. So out of the box, most of my “ClintIsms” work without any form of installation.

3) I find it helps to make a folder called \RE-INSTALL\ somewhere, with numbered subfolders, to deal with those programs that require pesky installation:

├──1 (do before bringing online)
├──2 (daily use programs)
├──3 (near-daily use programs)
└──4 (weekly or less use programs)

For me, folder 1 just includes WinZip (so I can unzip my other programs), my antivirus (EZ AntiVirus), my firewall (SyGate), and my settings tweaker (X-Teq Pro).

Before going to folder 2, we must bring the computer online safely. This involves fully patching the machine without connecting to the internet — which is a catch 22. The updates are on the internet, but you need them to safely be on the internet. How do you solve that? Answer: CTUPDATE. CTUpdate is a command-line script that can first be set to download every patch for an OS. You do this once ever, and add it to your backups. You now have all the patches in an offline form. CTUpdate can then apply them without ever going online. It also reduces the total reboots to about 3 or so instead of 10 or so, and runs without you having to click or do anything! Unfortunately, it fails if you don’t make sure these 4 files are deleted, so I had to make a ctupdate.bat to run ctupdate.cmd by deleting th ese 4 files:

C:\bat>cat ctupdate.bat
if exist c:\recycled\SetOSEnvVars.cmd *del c:\recycled\SetOSEnvVars.cmd
if exist c:\recycled\ *del c:\recycled\
if exist c:\recycled\update.txt *del c:\recycled\update.txt
if exist c:\recycled\MissingUpdateIds.txt *del c:\recycled\MissingUpdateIds.txt
REM note that if it’s XP, it’s c:\recycler\ and not c:\recycled\

Folder 2 includes my daily use programs, which are different for each person. For me, they are AudioScrobbler, Winamp, EditPlus (text editor), Firefox (but having a new version is tricky; still, an old version is better than nothing), MSCOMCTL.ZIP (a DLL I always end up needing), TweakUI, WinZip Command-Line Addon, VLC Player, John’s Adventures Desktop Background Switcher.

Folder 3 includes things I use not quite daily. ActivePerl, EvilLyrics, VNC server, Winrar. IT’S IMPORTANT TO PUT VNC SERVER IN YOUR STARTUP! If you mess up your video card such that your computer can’t display anything, you can VNC in and fix it. You could also use Remote Desktop in this situation.

Folder 4 are my more esoteric tools that I only occasionally use. CoolEdit audio editer, Acoustica audio converter, ImageMagick, Xing mp3 encoder (which I only use for CBR encodes; I use c:\util\LAME.exe for VBR encodes).

Anyway — being able to install windows in only 3 reboots, and get most of my drivers and programs installed without having to hunt them down and download them (or find the install cd) really helps take away a lot of the stress of the process. And repositories that can be backed up are helpful too. But my last tip has to do with those programs you only use rarely — once a month, once a year. Make a C:\INSTALL-FILES\ and make separate folders for util-net, util-video, util-sound, util-diagnostic, games-misc, games-tetris, etc. This repository will grow to be several gigs big, but it’s really nice to be able to install any program you’ve ever installed in the past without having to connect to the internet.

And for God’s sake, don’t leave your EXE files exposed. Zip them. This protects them from a virus better than running antivirus, as most virii wont look inside a ZIP file. I lost thousands of EXEs in my c:\INSTALL-FILES\ due to the w32.licum virus — but 0 of my zipped ones. (more…)

Next Page »