Posts tagged “geekiness”
Kip Don’t copy that floppy

During a meeting today, I got to wondering: do today’s kids even know what the commonly-used save icon represents?

Screenshot of Microsoft Word with floppy-disk save icon

Is this confusing to kids? Or do they just learn that this thing, whatever it is, generally represents saving? Surely the percentage of people under the age of fifteen who have ever used a floppy disk must be less than five percent, but I wonder what percentage even knows what one is.

No Comments
Kip Password tips for non-geeks

I’ve been thinking about passwords recently, as I have gone and changed passwords for pretty much every website that I can remember having a password for. For me, this was prompted by the hacking of PlayStation Network, which led to my PSN password being compromised. And, like most people, I used the same password for PSN that I used for many other sites. This is generally a Bad Thing, but what are you going to do?

Well, for geeks, the answer is “have a separate, randomly-generated password for every site, and the password must be long and contain numbers, lowercase letters, uppercase letters, and symbols.”

I realize that this is impractical for normal people.

So here’s my advice for non-geeks. Come up with a sentence. A really random sentence. Try to include some numbers in the sentence. Then take the first letter of each word. This will be your base password. Here, I’ll make up an example:

forget about the last 7 things u Heard 2-day

That gives us: fal7tuH2d

Believe it or not, it’s really easy to remember a sentence like this! You can leave out articles, conjunctions, and/or prepositions if you like, and you can replace “are” with “r”, “you” with “u”, etc. Whatever is most natural for you to remember. Making at least one of the letters uppercase and including some kind of punctuation is good. Make sure there are at least 7 characters, since a lot of sites use 8 characters as the minimum length of a password.

Next, come up with a rule for how you will include the company name in the password. For example, “use the last letter of each word in the company name, and capitalize the last one”. Using this rule, my password for Amazon, PayPal, and Gmail might be as follows:

Amazon: fal7tuH2dN
PayPal: fal7tuH2dyL
Gmail (Google Mail): fal7tuH2deL

Now, if someone somehow obtains your password to one site, they won’t have your password to every site you use. And hopefully they won’t be able to figure out the rule for the last few characters (this is why using something other than the first character of the site name is a good idea). And no one’s ever going to guess a password like that.

Of course, this isn’t fool-proof. But it is a lot more secure than using the same password for every site, and it’s a lot more secure than using a word that can be found in a dictionary or your pet’s name or your birthday or something like that.

Note: If you really want to do it the geeky way (a long, random password for each site), you can get applications that will generate random passwords and store them securely. This makes it so you only need to memorize one password, and that password lets you access all your other passwords. I like KeePass, and it runs without an installer on PC and (I think) Mac. I keep it in my Dropbox so I can use it from home or work. But I don’t do it for every site; mainly, I just do this for really sensitive sites (like bank and credit card websites). And remember, if someone really wants your password, they can probably crack it in a few hours with just five dollars of equipment.

No Comments
Kip HTML5 video

I’ve supported HTML5 video on this site for something like a year now. I don’t think I have commented yet on just how much of a pain it is. This post isn’t a tutorial; other people have already written very good tutorials on HTML5 video. Don’t get me wrong—HTML5 video is a nice thing to have. The videos on this site can play on Flash-less devices like iPhone, iPad, and Android. For current versions of every desktop browser, the video plays nicely without the overhead of loading a Flash container. (And let’s face it, everyone hates Flash.1.) And the syntax is backward-compatible, allowing older browsers to see a flash video player that newer browser will ignore. All-in-all, it’s pretty nice.

Except for the fact that I’m required to convert my video to 4.1 different formats! To play properly everywhere, the video has to be served in:

  • MP4 - for Safari, iPhone/iPad, and Android

  • OGV - for Firefox, Chrome, and Opera

  • WebM - For IE9

  • FLV - For flash player fallback in older browsers (IE 6/7/8 mainly)

  • JPG - Okay, so this isn’t a video format, and it’s not required. But if you don’t pre-load your videos, you need a jpeg to use as the background letting the user know there is a video there they need to click on. (When I said I need 4.1 formats, this was the point one.)

This is pretty ridiculous. If the img tag didn’t already exist, and it were to be added as a new HTML5 element, the syntax would probably look something like this:

1
2
3
4
5
6
<img>
  <source src="/images/whatever/whatever.jpg" type="image/jpeg" /> <!— for Chrome/Safari —>
  <source src="/images/whatever/whatever.gif" type="image/gif" /> <!— for Opera —>
  <source src="/images/whatever/whatever.png" type="image/png" /> <!— for Firefox —>
  <srouce src="/images/whatever/whatever.bmp" type="image/x-ms-bmp" /> <!— for IE —>
</img>
No Comments
Kip Side projects

Here’s an update on a few side projects I have going. First, you may remember QuickReplace. As I used it myself, I realized that there were some limitations, which I set out to address. So now we have QuickReplace 2.0. One thing I found myself doing with QuickReplace was opening it in several tabs, pasting text in the first tab, copying the output and pasting it in the next tab, because each tab could only run one filter at a time. But now, instead of having a fixed number of filters, which are executed in a fixed order, you can add as many filters as you want. The filters can be dragged and dropped in whatever order you want. And, if you want to save a filter and run it later, there is now a permalink option to do so. As before, the tool was written for me by me, with the assumption that the user (me) knows what they want to do. If you’re a programmer and you understand regular expressions, you should be able to figure it out. I’ve been using the new version for about a month and I think I’ve ironed out all the bugs, but if you find one let me know and I’ll take a look. Unless your “bug” is that it doesn’t work in a browser other than Firefox or Chrome. In which case the bug is that you’re using the wrong browser. (That being said, it seems to work just fine in IE, Safari, and Opera, but I haven’t tested extensively.) Also, the HTML file is self-contained, so you can save it locally if you’d like. (But you can’t run it offline because of a dependency on Google-hosted jQuery.)

The other side project I’ve made some updates to is my gradient generator. The previous version would generate horizontal or vertical gradients. But then I started thinking, wouldn’t it be better if it generated diagonal gradients too? So I worked out the math and made it happen. Now, instead of an “orientation” parameter that takes either “h” or “v”, we have an “angle” parameter, which takes a number in degrees (from 0 to 360, inclusive). It still takes “h” or “v”, for backwards compatibility—”h” is converted to 0, and “v” is converted to 90.

I added an extra parameter, “extend”. If it is false, the image is only as large as it needs to be to hold the gradient. This is OK if the image is being used as the background of a fixed-size element, but otherwise you won’t see the whole gradient. This is where the extend parameter comes in. If it’s set to true, you will see the whole gradient.

So here’s what it looks like without the extend parameter:

You might also notice that the y axis is inverted. That’s just how images are oriented, and I didn’t correct for it since I figure the most common case is a gradient oriented in the top-left corner. Now, if the gradient is extended, it will look like this:

You can view the gradient generator source code here.

Of course in a few years, when CSS 3 gradients are fully supported, my gradient generator will be obsolete. Oh well.

No Comments | Add Comment
Kip Photographic Fire

I’ve uploaded three new photo albums: Halloween photos I only just got around to taking off my camera, playing in the leaves on Thanksgiving afternoon, and a backyard bonfire on Thanksgiving night (Black Friday’s eve?).

I assume those of you particularly interested in family photos are more likely to be viewing them on Facebook nowadays, so I’m going to use this space to talk about some of my cooler photography experiments. I did a lot of playing around with my camera, and found ten seconds to be a very nice exposure length for recording sparklers in the dark. I didn’t use a tripod at all; I just hung the camera around my neck, with the camera resting against my stomach, and held my breath during the exposures. It took us a few tries, but we finally got the timing right so that Stephanie could “write” something on the exposure:

The word “love”, “written” in the air and photographed with a long exposure.

She was trying to write “I love you” but only got to the “I love” (and part of the “Y”). I think it still looks pretty cool.

Next, I serendipitously discovered an interesting method for photographing fire. I intended to take a still exposure of the fire, zoomed all the way in, to see what would happen. But when I hit the shutter button I shook the camera a little bit, and figured the shot was ruined, so I waved the camera up and down and back and forth, figuring that if I was going to ruin the shot I should really ruin the shot. But what I got as a result actually looked very cool:

The last four images in the backyard bonfire photo album are all done in this manner.

No Comments | Add Comment
Kip Moons and rings

A few months back I saw a YouTube video (embedded below) simulating what the sky might look like if Earth had rings like Saturn. I think it’s pretty cool, but when I thought about it later I realized that we probably wouldn’t think anything of the rings in the sky if we had them. Imagine, if you will, that the Earth had no moon. In that alternate reality, I would probably be blogging about a simulation of what it would look like if Earth had a moon. But in our reality we don’t pay much attention to the moon. Anyway, enjoy the video.

No Comments
Kip Metroid: Other M: another review

Over the years, I have reduced pretty significantly the number of reviews that I post on this blog. Mainly, this is because I don’t think I’m particularly good at reviewing things, and there are certainly plenty of people who are far better at it than me. But a few people have asked me specifically about Metroid: Other M, so here goes.Metroid: Other M

Metroid: Other M is my least favorite Metroid game.

I take that back, Metroid Prime: Hunters still holds that distinction. But I don’t really consider Hunters a Metroid proper, if you will. I think of it more as a side project that is only slightly more Metroid-y than Metroid Prime Pinball.

But back to Other M. The writing in the game is as bad as the writing in the title. (I’m still not even sure who or what the “other M” actually is.) They made Samus into a weak, emotionally fragile two-year-old in an adult’s body. I mean, we’re talking about intergalactic bounty hunter Samus frickin’ Aran here! After everything she’s been through, you’re going to tell me she takes orders from people? That she ever hesitates when she has a shot at a bad guy?

Also, cutscenes with the cybersuit on? She can make some or all of her suit dissolve at will, so why not at least take the helmet off during cut scenes when there is no danger? It looks ridiculous, like if you saw Tom Brady walking around Wal-Mart in full football uniform—cleats, pads, and helmet. It also makes it so you usually can’t tell if Samus’s lips are moving, so you don’t know if what she’s saying is dialog or internal monologue (she narrates her thoughts throughout, sometimes even in the middle of a conversation with other people).

I’ve heard the combat praised, but it seemed to mainly consist of running around waiting for your charge beam to charge, while constantly tapping the d-pad (tapping the d-pad when an enemy attacks will dodge the attack). I get the feeling that Team Ninja originally wanted it to be more difficult, but Nintendo told them to scale it back a notch. (These are the people who made the notoriously difficult Ninja Gaiden, after all.)

The game also eliminates most of the sense of exploration by telling you exactly where you must go, and locking the doors that don’t lead that way. To make it worse, it feels like there is a boss or miniboss about every fourth room. It’s not until the very end of the game that the doors are actually unlocked and you are free to explore. Sorry, Team Ninja, but that’s just not Metroid.

The departure from the series that annoyed me the most, however, was something seemingly minor that I didn’t see discussed in any reviews: enemies do not drop energy pellets. It is especially annoying early on, when you don’t have much health and some enemies can take over half your energy in one hit. You have a checkpoint at every boss or miniboss, and if you die you start over right there, so it’s not that big of a deal. But I’d prefer shooting little enemies or projectiles during the boss battle to pick up extra energy, rather than dying and starting over.

All that being said, it’s not a bad game. It’s just not that good either.

Disclaimer: I am someone with the Metroid item collect music as my ringtone. I may be teh bias.

No Comments
Kip While I’m at it: How to win at the Cracker Barrel peg game

In my last post I discussed the game of hangman, aided by an algorithmic analysis of the winningest words. A few months ago I did something similar with the peg game they have on the tables at Cracker Barrel.  The one where you have a triangle with 15 pegs, with one missing. You remove a peg by jumping over it. The goal is to leave only one peg remaining. I think I won the game the very first time I ever played it, and I don’t think I’ve won since then.

It occurred to me that the game would be easily solved with brute force, and after an hour or two of coding I had done so. However, I never went much farther than that. I had hoped to look for patterns or simple rules that lead to a victory, but never really got very far. But I decided to post what I have here just for the sake of doing so.

         0
       1   2
     3   4   5
   6   7   8   9
10  11  12  13  14

Given the above peg positions, there are four unique starting configurations: you can start with peg 0, 1, 3, or 4 removed. Any other position is a mirror and/or rotation of those four. So I looked at which starting positions were the most likely to win.

Peg 0: 29,760 ways to win of   568,630 games (5.23%)
Peg 1: 14,880 ways to win of   294,543 games (5.05%)
Peg 3: 85,258 ways to win of 1,149,568 games (7.42%)
Peg 4:  1,550 ways to win of   137,846 games (1.12%)

So the moral of the story is: start with a middle edge peg removed, not the traditional configuration of top peg removed. Beyond that, I got nuthin.

No Comments
Kip How to win at hangman

Last week Stephanie and I were discussing the game of hangman. I commented that “rhythm” and “myth” are good words because the only vowel is y, and most people try to find the vowel first. I wondered what might be the best possible words.  When I remembered that I’m a programmer, I said “hey, I can write a program to figure this out!” And since I haven’t posted on this blog in quite a while, I thought I’d share.

I found a list of 58,112 words and got to work. I decided to first count the frequency of each letter in the word list.1 I figured that the probability that a letter would be guessed is approximately equal to the frequency of that letter in the language. This could be a bad assumption, but it’s all I had to work with. Then I computed a score for each word by averaging the frequency of each letter in the word. I don’t know that this is the best way of measuring the difficulty of the word, but it’s the best one I could come up with.

Here are the words with the lowest scores (and therefore the most difficult hangman words, according to my algorithm):

fuzz     1.28%
fuzzy    1.37%
buzz     1.39%
why      1.57%
by       1.79%
jazzy    1.95%
jazz     2.01%
huffy    2.02%
buff     2.03%
huff     2.10%
jug      2.17%
jumpy    2.18%
puffy    2.18%
my       2.20%
hubby    2.20%
muff     2.23%
jump     2.29%
puff     2.29%
buy      2.33%
foxy     2.36%

And here are the easiest:

see     10.55%
eerie   10.15%
ere     10.13%
nee     10.08%
sees    10.05%
tee     10.04%
ease     9.81%
eire     9.79%
seer     9.73%
seen     9.69%
eerier   9.67%
tees     9.67%
serene   9.60%
eases    9.56%
settee   9.54%
lessee   9.54%
eel      9.52%
seine    9.52%
seers    9.50%
eeriest  9.47%

While I was at it, I did some other searches on the word list.  Here are the 49 words that have no vowels besides Y:

by
cry
crypt
crypts
cyst
cysts
dry
dryly
fly
fry
glyph
glyphs
gym
gyms
gypsy
hymn
hymns
lymph
lynch
lynx
my
myrrh
myth
myths
nymph
nymphs
ply
pry
pygmy
rhythm
rhythms
shy
shyly
sky
sly
slyly
spry
spy
sty
styx
sylph
sylphs
sync
thy
try
why
whys
wry
wryly

Seventeen words contain all the vowels, including Y:

consequentially
counterrevolutionary
disadvantageously
facetiously
gregariously
heterosexuality
homosexuality
neurologically
neurotically
pertinaciously
precariously
precautionary
questionably
revolutionary
simultaneously
supersonically
tenaciously

And only two words contain all the vowels, including Y, in order:

abstemiously
facetiously

1 This is slightly different from the frequency of each letter in the English language. For example, “t”, “h”, and “e” probably have higher probabilities in the English language than in the word list, since “the” is used over and over in the language, but it is only represented once in the word list.
No Comments
Kip Alerts

I’ve been using Mint to track my money for a few months now.  Most of you reading this are cool people who have been using Mint since before I heard about it, though, so I won’t bother explaining how the service works.  I guess I’m supposed to set up budgets or something, and if you don’t it kinda guesses based on your past expenses.  Then it alerts you when you go over-budget in a category.  Which is nice sometimes, but other times you get things like this:

Alert from Mint.com: “In the past 30 days, you spent $359.49 on Taxes. Usually you spend $23.”

Okay, so ummm... what am I supposed to do about it?  If I could have payed only twenty-three dollars I would have.  Maybe they need an “e-mail a complaint about this to your congressman” button or something? :)

RSS feeds: Kip's - Stephanie's - Both