UPDATE: I wrote this up much more nicely at StackOverflow:


My wife & I have gmail filters set up to forward each others’ facebook emails to each other. It brings a level of postmodern closeness and togetherness and awareness, and indeed keeps us from tripping each other up and having to have redundant exchanges of information. But then Facebook changed, and clicking each others’ links logged each other out. I can’t tell you how many times I’ve logged into facebook. Probably at least 100 in 2015 alone, if not more. IT. GETS. OLD. Then one day Carolyn played with the URL and discovered you could remove the last 2 parts of it, and it would bring you to the correct place (assuming you both had access). Then I realized I already had a plugin (chrome plugin id pajiegeliagebegjdhebejdlknciafen) called Redirector that lets you run a regular expression modification on any URLs you visit.  Why the hell was I not using this?   So just do this:

From To
(.*)(*)(&mid=.*) $1$2$3

And the problem is solved. Don’t bitch to me about the 4th set of parenthesis being unnecessary. It looks way better.

BONUS FEATURE: How to make the new flickr look like the old flickr:

From To

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…)

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…)

Canker sores suck! And most everyone gets them from time to time!

There’s one thing that’s ever worked for me, and it’s worked in 1 treatment 50% of the time, 2 or 3 treatments the other 50% of the time. Apparently some people don’t know about this, so I thought I’d post it here.

Stomatitis by matsuyuki.

1) Get some salt. Not a shaker, the bit Morton’s container. You’re gonna need to *pour* salt.

2) Fill a BIG BIG glass full of HOT HOT HOT water, as hot as you can stand it being in your mouth. Just don’t burn yourself. It sucks to burn your tongue, and it’s not my fault if you do. I’m trying to help you.

3) Put salt in water. Keep stirring until the water is *completely* saturated, accepting no more salt. You can tell this because there will be a layer of non-absorbing salt in the bottom. Also, it should be a pretty vile concoction.

4) Hopefully it’s still really hot at this point. Take a mouthfull, and gargle/swish the salt water everywhere, especially on the sore. This will hurt. Do this as long as possible. Do this until there’s no heat left in the water.

5) Step #4 was just for one mouthfull. Repeat #4 until you’ve gargled every mouthful in the BIG BIG glass. This will take quite some time — at least 10 minutes.

Pretty much.. at least half the time, after doing this, I am INSTANTLY cured of my canker sore. It’s still there, but it doesn’t hurt. And it recedes within 24 hours. No need for painkillers, Oragel, or crushed aspirin. For me, this kills it. Dead. In 1-3 treatments.

I hear this is also good for preventing gum disease.

Saltwater is your new god! Image by amandabhslater.

Leave a comment if this worked or didn’t work for you. I’m curious as to how this solution affects different people. DON’T BURN YOURSELF! If you do, it’s your own damn fault. (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…)

Another tip for couples computing: Share your email notifications.

20070421 - Angel & Ian's housewarming party - (by Angel) - 470743940_c94781aa77_o - diptych - 470743256_17879731d9_o - Carolyn, Clint as Tina Fey with Angel's glasses - 1=sassy, 2=trashed

If you’re a close couple who wants to be aware of each other’s socializing, or find out when the other is in a conversation you might want to join in … The best way to do it is to share email notifications. For example, any email that goes to Carolyn or myself via Facebook, Livejournal, or Netflix – automatically goes to the other.

{This also has the added curse/benefit that if I block someobody, but Carolyn doesn’t, I still see the responses that Carolyn would see. Thus, they don’t see what I write, but I see what they write. The other curse is that any conversation you are both in will result in 2 emails, plus you often get email notification for your own comments.}

Still, the old SubGenius saying goes, “Too much is always better than not enough.” If the two of you want to be aware of each other’s conversations, your choice is to see some things 0 times, or twice. I’ll take twice.


For purposes of this conversation, my email is and Carolyn’s is

  1. I change my Facebook/LiveJournal/whatever notification email from to Everything after the “+” does not affect delivery, but is very useful for filtering (see next step).
  2. I create a gmail filter that says “if mail is to, then forward to”.
  3. Carolyn changes her Facebook/LiveJournal/whatever notification email from to
  4. Carolyn creates a gmail filter that says “if mail is to, then forward to”.

Voila! Now you both get each other’s notifications. You have strengthened your ties together, at the expense of cluttering your inbox.

This is also very useful for Netflix notifications. Or Evites. (more…)

When you download photos from flickr, the photo ID is actually stored in the filename, and you can use this to get back to the original photo. I decided to make any photos that are uploaded with the flickr filename automatically link to the original via perl code that I first posted here.

However, I have since realized that some pictures I post are actually a combination of several original pictures. Thus, I am now updating my code to properly deal with giving the link to all original images it is comprised of. The hardest part was dealing with the english rules for commas and “and”. “1 and 2” vs “1, 2, and 3” vs “1, 2, 3, and 4”.

Anyway, here is the revised code for auto-flickr-linking-to-original-pic:

my @matches = $file =~ /([0-9]{10})_[0-9a-f]{10}[_ ][a-z]/ig;
my $matchNum = 0;
foreach $tmpmatch (@matches) {
  $tmpid = $tmpmatch;
  if ($matchNum == 1) {
    $caption .= "Originally posted at ";
    $caption .= "$FLICKR_PHOTOID_TO_URL_PREFIX$tmpid";
  } elsif ($matchNum == @matches) {
    if (@matches > 2) { $s .= "	, ";	}
    $caption .= " and $FLICKR_PHOTOID_TO_URL_PREFIX$tmpid";
  } else {
    $caption .= " , $FLICKR_PHOTOID_TO_URL_PREFIX$tmpid";
if (@matches > 0) { $s .= "\n"; }

This is definitely a bit more complex than the original version:

if ($file =~ /([0-9]{10})_[0-9a-f]{10}_[a-z]/i) {
    $caption .= "Originally posted at $FLICKR_PHOTOID_URL$1\n";


My friends who have seen me pass out and take naps at parties (and in public) probably wouldn’t consider me an insomniac… But that’s because I always have some sort of bloodstream assistance to help me out in those situations. Give me sobriety, and I’ll show you someone who can’t fall asleep and rarely gets more than 5 hours in a night regardless of how many nights in a row that is. And that sleep is always interrupted every 2-3 hours. Oh, I can nap sometimes. But they’re short. And I get increasing energy throughout the day. Bedtime is my most energetic time of the day, it seems. Even if I only slept 2 hours, after being up for 20 hours, I will be at my highest energy point before bed. Unless bloodstream modification is involved. So I present:


For me, falling asleep means that I must occupy my mind enough to get bored. It can’t be occupied with critical thought, or the act of thinking will keep me awake and excited. Nor can it be occupied with the absence of thought, as the boredom drives me crazy. Nor can I sit in silence, as every sound that causes a variance in the silence will shoot my body full of adrenaline. (I’ve covered my hatred of silence previously.) Thus, I usually listen to music. But music isn’t always enough; sometimes I zone out and don’t pay enough attention to it for it to occupy me enough to fall asleep. Reading works okay, but the act of turning out the light once I’m tired enough to fall asleep usually wakes me right back up.

So here is my tried and true tactic, one which has only failed 0-1 times in my entire life:

Count backwards from 100 to zero, SPELLING OUT the numbers. Basically, in your mind, you “say” the following, one letter at a time:

etc etc

Repeating the letters almost becomes a meditative mantra. But I know if I were to literally just think a mantra over and over — I would get BORED AS HELL, and the boredom would wake me up. I need to be OCCUPIED, but not CRITICALLY OCCUPIED. This is the perfect balance. You only need to change the first half (N-I-N-E-T-Y to E-I-G-H-T-Y) every 10 numbers. And the second half gets repetitive as well, but only 10 numbers later. Just wait til you get to S-E-V-E-N-T-Y-S-E-V-E-N,S-E-V-E-N-T-Y-S-I-X. That’s one of the most tiring parts of the 100.

Typically if I don’t employ any aids, I can spend an hour or more trying to sleep, then saying “screw this” and getting up and getting on the computer.  But I’m usually too tired to use that time wisely, I just putz around. Just having to clear my throat will transform me from falling asleep, to not able to sleep for another 10 minutes. In fact, it’s a challenge to fall asleep before my throat gets so dry I must clear it, and before drinking the water to stop the incessant throat-clearing makes me need to get up and pee. It can be a maddening cycle.

The backwards counting-while-spelling REALLY REALLY REALLY REALLY REALLY works well. If I have ever made it to 0, it has only been once, but I wasn’t sure if it really happened (thus my “0-1” failures listed above). I only make it below F-I-F-T-Y maybe 50% of the time. And you can always start over if you really reach to 0.

So try this trick next time. Did it work work better than counting sheep, or other tricks? This trick is tailored to my brain, but even Carolyn has used it to success before.

Happy sleeping! (more…)

An important tip to share with anyone who is just had oral surgery, or possibly some teeth removed:

Wendys Frosties have high medicinal value!
Wendys Frosties have high medicinal value!
Wendys Frosties have high medicinal value!
Wendys Frosties have high medicinal value!

Empty CD spindles make excellent paper towel holders!

…For your health. (more…)

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…)

This may be helpful to others. If you are uploading flickr photos via Perl, and you would like your caption to automatically include a link to the original photo — all it requires is this tiny snippet of code:


if ($file =~ /([0-9]{10})_[0-9a-f]{10}_[a-z]/i) {
$caption .= “Originally posted at $FLICKR_PHOTOID_URL$1\n”;


Note that this only works if you keep the numbers from the filename that flickr gives you when you save a picture. IE “3375260709_1eb18b2012_o.jpg”. You can of course add anything else to the filename, but the “3375260709_1eb18b2012_o” part must be in there for this to work. (more…)

I just read a 3-page article in Maxim about the Great White concert that killed 99 of the 300 people in the club. I have long thought this would make an incredible video game, but only if they could make you feel real pain so you’re really trying to escape. Tasteless, but intense.

Anyway, the fire originally only spread 1 foot per minute, but that was fast enough. They also had a diagram showing the exits, where people were, etc. Based on this, here is my advice, with the most important advice first:

1) The second you see any fire — even if it doesn’t seem to be a threat — run away fast. If you manage to “panic” before everyone else, you will be at the head of the herd and can possibly even use the main exit without getting stampeded. People didn’t freak out at first. The edgy ones who did increased their survival rate.

2) Keep in mind that most kitchens have an exit to outside. That might even be in the zoning code, to allow people to throw grease fires out back, etc. Most people aren’t going to be thinking about this, and will try to exit the way they came. This is a mistake:

3) The secret to surviving, as always, is to not follow the herd. Don’t act like a sheep and you wont be culled like one.

4) If a band is playing on stage, and THEY run away in a different direction than the rest of the crowd — follow THEM. They know more of the layout than you. They know the VIP/backstage area. Great White’s guitarist stupidly didn’t follow the rest of his bandmates to the back exit, and burned to death because of it. Don’t act like a sheep — unless you’re a sheep following the band. They KNOW things.

5) Club bathrooms often don’t have windows. If they’re charging a cover, the window could be used to sneak in. If you have to make a choice, don’t opt for the bathroom OR the front door.

6) A flashlight on your keychain very well may save your life by allowing you to see your way out, but don’t count on it once it gets too smoky.

7) If you do find yourself in a stampede, try to protect your kidneys. That’s what breaks when you get crushed by people (3rd most common injury after the Great White concert: kidney failure).

It’s good to consider worst-case scenarios.

And if you go to sporting events in football stadiums.. You might want to get a sense of how fast a fire can spread in a stadium:


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

20180907 0951 - Claire


I asked Eli what I could do with some meat and naan. We actually use ground turkey, not ground beef (red meat bad)… But same diff if you’re used to it. Anyway, here was his advice:

If you have ground beef, and some canned tomatos (always good to keep, they taste great no matter what season), and any kinda starch. That makes a pretty good deal.

You can make a hash, brown some of the ground beef in a bit of fat, throw in the tomatos (sauce and all), broken up Naan (or leftover cooked rice, really any cooked starsh), toss anything else in the way of spices, veggies, or whatever. Heat until hot and eat.

It takes a while to get the liquid ratio right.
If it’s too dry pour in some lite beer, chicken stock, or water if you must.
If it’s too soupy add more starch, or let it cook down some.

To be really fancy, break some eggs or cheese, or buttered bread crumbs on top and throw it under the broiler until it’s crispy.

Bang, instant dinner!

Thanks, Eli, the oral oracle. Now I’m hungry! :) (more…)

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…)

One of the greatest feature in gmail is labels that can be applied to any message. Unlike folders, you can apply as many labels as you want. If someone sends me a funny picture, rather than having to create a new “funny pictures” folder, I can just apply the existing labels “comedy” and “pictures”. Similarly, if someone sends me an unfunny picture, I can just label it “pictures”. And if someone sends me comedy that isn’t a picture, I can label it “comedy”. Multi-labels are POWERFUL, and keep you from having to have as many “folders”. Back in the folder days, I would frequently save the same email to 2 or 3 folders, creating extra copies and wqasting extra space.

One of my basic tenants of email is that people’s emails should be labeled with their name. If your name is Frank, I want any emails from you or to you under my “Frank” label. Since labels can have custom colors, this is very useful. For instance, since Tabbitha loves pink so much, I made her label bright pink. Her emails stand out in my inbox — assuming they are labeled.

So this gets us to the labeling problem. For me to highlight Tabbitha’s messages pink, I have to create two filters! Maybe even three!

1) If message is from Tabbitha, label “Tabbitha”.
2) If message is to Tabbitha, label “Tabbitha”.
3) If message subject contains Tabbitha (for evite or facebook notifications), label “Tabbitha”.

Obviously, it is time consuming to make 3 filters every time you meet someone. Guess how many filters I’ve created in my 4+ years of using gmail? 1,993!

It would be SO SO SO nice if they had an “OR” operator. So I could put Tabbitha in “from”, “to”, and “subject”, and click “or”, and then if she was in any of those, it would work. But nooooooo. Gmail defaults to using “AND”. So if you put Tabbitha in “from”, “to”, and “subject”, it will only apply to messages that are from AND to her AND have it in the subject. And by definition, those emails would never get to me (they are from Tabbitha, and to herself.. so I’m not getting them… haha). Gmail fails here, because they use “AND” and not “OR”. I really wish they would let us choose the boolean operator.

So anyway, in an effort to keep this number as low as possible — I figured out a way to combine 2 or 3 filters into 1, by FOOLING GMAIL. This allows for faster filter creation. Observe the method for squeezing 2 filters into one:

gmail filter hack - squeeze 2 filters out of 1

See the first circled part? This shouldn’t be accepted as valid user input, but it is.
Because the parenthesis shouldn’t be there, gmail adds a right parenthesis to close it.
See the second circled part?  This is how gmail resolves it – it closes the parenthesis, which contain nothing in them, and as such “cancel out” in an almost algebraic way. The remaining code is “from:(dynamite44) OR to:(dynamite44)”. I’ve successfully subverted gmail into using “OR” instead of “AND”. w00t!

This ends up giving the desired effect of 2 filters in one.

Finally, Facebook and Evites and Flickr often give you notification for people using their username, or their first and last names. So, this concept can be extended to the subject as well. In this example, I made a filter for someone who consistently uses ‘remodulated’ for their email and flickr notifications:

gmail filter hack - squeeze 3 filters out of 1

In this case, the filter would match any message that is from remodulated OR to remodulated OR has remodulated in the subject. Normally, this would require 3 filters. But you can trick gmail into doing it all in 1 filter. double w00t! (more…)

From Rules Of Thumb blog:
To test your bread dough, poke two holes into it the depth of the first joint of your thumb. If the holes are still there after 30 seconds, it has risen enough. (more…)

Here’s what my windows desktop is: A thumbnail mosaic generated from my entire photo repository (plus, my album cover JPGs). It changes every 2 minutes or so.The effect is that I remember all the events of my life much more now.

To those who say, “I have nothing to take a picture of, so I don’t need a camera”, I say — how do you know you’re remembering your whole life? You don’t know what you’ve forgotten since, by definition, you have forgotten it. My life is a blank up until I bought my camera. I have no idea what I did in college and barely remember high school. I was pegged as having a bad memory for life events by age 14.

Using this desktop switcher software really helps. And for smaller screens, you can fill the screen with 1 or 4 pictures, instead of 350 like I have :) Get the software her:

Seriously. Seeing this makes me want to live.

So, lately I had the misfortune of deciding to fix my sink. You know stoppers in bathroom sinks, with the lever you pull to make them go up? Ours had been broken for years. Of course it was fine when we moved in.

So I went to Home Depot and bought a shiny new replacement stopper. Unfortunately the rod is aluminum even though everything else is brass, so it looks “interesting” these days.

However, the process was HELLISH!! I never realized that whoever designed these systems kind of did a poor job. Or that maybe there’s simply not a better solution.

See the “sucky screw” in the diagram below? That’s all that holds this rod in! Do you know how easy it is to pull that rod out? Pretty damn easy. I pulled it out 3 or 4 times just testing it. Doesn’t matter how hard you screw; screwing something perpendicular to a SMOOTH METAL ROD is not the best way to hold it in place.

It your parts are old, dirty, nicked, and corroded — then the screw will hold. But on new parts, that are shiny and smooth? It barely holds. Screw it as tight as you can. Maybe I should have screwed it with a wrench? F that!

The solution is simple: Put duct tape on it. Hold the 2 parts together with stickiness. If only I’d done that the first time, it never would have pulled out, and I would have probably saved 30 minutes of my life.

So I’m giving my wasted time back in the hopes to save someone else 30 minutes. Put the tape there. The tape alone should hold it, but the screw is a nice backup. Both together should work really well. The only drawback is it’s harder to get the rod out. But isn’t that the point?


Next Page »