Feb 102013

Tracing route to FIN []
over a maximum of 30 hops:

1     <1 ms    <1 ms    <1 ms
2      6 ms     5 ms     5 ms  L100.NYCMNY-VFTTP-59.verizon-gni.net []
3      8 ms     7 ms     8 ms  G0-1-3-4.NYCMNY-LCR-21.verizon-gni.net []
4      7 ms     7 ms     7 ms  ae0-0.NY325-BB-RTR1.verizon-gni.net []
5      8 ms     7 ms     7 ms  0.xe-4-1-0.XT2.NYC4.ALTER.NET []
6     10 ms    10 ms     9 ms  TenGigE0-5-0-0.GW8.NYC4.ALTER.NET []
7    109 ms   110 ms   110 ms  tinet-gw.customer.alter.net []
8    135 ms   135 ms   139 ms  xe-0-0-0.atl11.ip4.tinet.net []
9    139 ms   139 ms   138 ms  epik-networks-gw.ip4.tinet.net []
10   138 ms   138 ms   136 ms  po0-3.dsr2.atl.epikip.net []
11     *        *        *     Request timed out.
12   172 ms   175 ms   175 ms  Episode.IV []
13   177 ms   175 ms   174 ms  A.NEW.HOPE []
14   170 ms   170 ms   164 ms  It.is.a.period.of.civil.war []
15   176 ms   171 ms   164 ms  Rebel.spaceships []
16   174 ms   173 ms   169 ms  striking.from.a.hidden.base []
17   180 ms   175 ms   170 ms  have.won.their.first.victory []
18   169 ms   172 ms   168 ms  against.the.evil.Galactic.Empire []
19   167 ms   166 ms   168 ms  During.the.battle []
20   169 ms   169 ms   169 ms  Rebel.spies.managed []
21   168 ms   171 ms   170 ms  to.steal.secret.plans []
22   163 ms   170 ms     *     to.the.Empires.ultimate.weapon []
23   179 ms   176 ms   174 ms  the.DEATH.STAR []
24   172 ms   165 ms   166 ms  an.armored.space.station []
25   179 ms   175 ms   176 ms  with.enough.power.to []
26   169 ms   174 ms   174 ms  destroy.an.entire.planet []
27   171 ms   175 ms   173 ms  Pursued.by.the.Empires []
28   175 ms   181 ms   176 ms  sinister.agents []
29   172 ms   175 ms   177 ms  Princess.Leia.races.home []
30   172 ms   174 ms   169 ms  aboard.her.starship []

Trace complete.
 Posted by at 12:29 pm
Jan 152012

NetHack is a computer game that was first released in 1987. I don’t remember the first time I ever played; I definitely remember playing the game that inspired it called Rogue in the late 80s. I’ve probably been playing NetHack for over 15 years. You can read a synopsis of the game at Wikipedia. It’s a role-playing game where you are an adventurer attempting to find the Amulet of Yendor. All of the elements of the game are represented by different characters. As an example, you, the adventurer, are represented by an “@” symbol. The “h” character can represent dwarves or mind flayers. You can zone out playing the game, but it’s never so addictive that you can’t walk away from a game. (It helps that the game is turn-based–there is no penalty for saving the game and coming back later.)

It’s not an easy game. To win NetHack, you need to defeat the Wizard of Yendor to get the Book of the Dead, finish a quest to get the Bell of Opening, and defeat Vlad the Impaler to get the Candelabrum of Invocation. From there you can descend into Moloch’s Sanctum to defeat the High Priest and take the Amulet of Yendor. Once you have the Amulet, you need to fight your way back up the levels to escape the dungeon. Finally, you need to defeat monsters on planes of Earth, Water, Fire, and Air before reaching the Astral plane. By sacrificing the Amulet you ascend to win the game.

If you’re still reading the blog post at this point, please note: yes, I know I’m a geek :-)

Today was the first day I ever won at NetHack.

I started playing on late Saturday night and went well past midnight. That evening, I completed all of the part of the game leading to the various planes. This afternoon, I dove in again. And in a couple of hours I had won.

Goodbye Firehawk the Demigod...

You went to your reward with 4735686 points,
Sting (worth 800 zorkmids and 2000 points)
The Eye of the Aethiopica (worth 4000 zorkmids and 10000 points)
Dragonbane (worth 500 zorkmids and 1250 points)
Magicbane (worth 3500 zorkmids and 8750 points)
The Bell of Opening (worth 5000 zorkmids and 12500 points)
The Candelabrum of Invocation (worth 5000 zorkmids and 12500 points)
Werebane (worth 1500 zorkmids and 3750 points)
Stormbringer (worth 8000 zorkmids and 20000 points)
The Book of the Dead (worth 10000 zorkmids and 25000 points)
      12 fluorite stones (worth 4800 zorkmids),
       7 diamonds (worth 28000 zorkmids),
       6 rubies (worth 21000 zorkmids),
       6 jacinth stones (worth 19500 zorkmids),
       5 jet stones (worth 4250 zorkmids),
       5 amethyst stones (worth 3000 zorkmids),
       5 jasper stones (worth 2500 zorkmids),
       4 chrysoberyl stones (worth 2800 zorkmids),
       3 sapphires (worth 9000 zorkmids),
       2 black opals (worth 5000 zorkmids),
       2 citrine stones (worth 3000 zorkmids),
       1 dilithium crystal (worth 4500 zorkmids),
       1 emerald (worth 2500 zorkmids),
       1 obsidian stone (worth 200 zorkmids),
       1 agate stone (worth 200 zorkmids),
       1 jade stone (worth 300 zorkmids),
       1 amulet of life saving (worth 150 zorkmids),
       1 amulet of unchanging (worth 150 zorkmids),
       1 amulet of magical breathing (worth 150 zorkmids),
and 138918 pieces of gold, after 74749 moves.
You were level 30 with a maximum of 223 hit points when you ascended.

You made the top ten list!

No Points Name Hp [max]
 1 4735686 Firehawk-Wiz-Elf-Mal-Cha ascended to demigod-hood. 143 [223]
 2 2202518 Firehawk-Wiz-Elf-Mal-Cha died on the Astral Plane.
           Killed by Death (with the Amulet). - [69]
 3 2010849 Firehawk-Wiz-Elf-Mal-Cha died on the Plane of Fire.
           Killed by an invisible Archon (with the Amulet). - [182]

As you can see by the top ten list, I played a Male Chaotic Elven Wizard named Firehawk.

For the NetHack fanatics among us, here are the details of my character at the end of the game:

o - the blessed Eye of the Aethiopica
w - an uncursed amulet of life saving (being worn)
u - the cursed rustproof +1 Dragonbane
v - the rustproof +1 Magicbane
J - the +1 Werebane (alternate weapon; not wielded)
O - the blessed rustproof +0 Stormbringer (weapon in hand)
e - a blessed fireproof +2 pair of gauntlets of dexterity (being worn)
g - a blessed rustproof +2 helm of brilliance (being worn)
C - an uncursed +0 Hawaiian shirt (being worn)
E - an uncursed +0 pair of levitation boots
T - a blessed fireproof +1 cloak of magic resistance (being worn)
U - an uncursed +1 silver dragon scale mail (being worn)
W - a blessed fireproof +4 pair of speed boots (being worn)
b - an uncursed tin of rock troll meat
S - the uncursed Book of the Dead
d - an uncursed ring of regeneration
r - an uncursed ring of conflict
t - a cursed ring of warning
x - an uncursed ring of slow digestion (on right hand)
I - an uncursed ring of levitation
j - a wand of create monster (0:13)
l - a cursed wand of digging (0:4)
m - a wand of magic missile (0:6)
s - a wand of secret door detection (0:14)
z - a cursed wand of polymorph (0:3)
D - a wand of death (0:4)
H - a wand of digging (0:5)
L - a wand of enlightenment (0:8)
M - a wand of digging (0:3)
N - a wand of digging (0:4)
P - a cursed wand of cancellation (0:4)
V - a wand of cold (0:2)
X - a wand of teleportation (0:6)
f - a +0 unicorn horn
h - a blessed bag of holding
p - an uncursed blindfold
q - a +0 pick-axe
y - the cursed Bell of Opening (0:1)
A - a blessed magic marker (1:3)
B - the uncursed Candelabrum of Invocation (7 candles attached)
G - a cursed skeleton key
k - 4 cursed chrysoberyl stones
n - 3 uncursed jasper stones
F - an uncursed luckstone
Q - 3 uncursed sapphires
Y - 4 uncursed jet stones

Contents of the bag of holding:

a tinning kit (0:63)
an uncursed spellbook of cone of cold
a blessed potion of full healing
2 potions of holy water
an uncursed +0 pair of water walking boots
the fireproof +0 Sting
an uncursed amulet of unchanging
an uncursed spellbook of magic mapping
an uncursed black opal
an uncursed emerald
a cursed jet stone
2 cursed jacinth stones
an uncursed spellbook of identify
a blessed spellbook of finger of death
an uncursed spellbook of magic missile
a potion of unholy water
a blessed spellbook of force bolt
an uncursed scroll of food detection
an uncursed scroll of scare monster
a blessed scroll of taming
a cursed scroll of teleportation
an uncursed obsidian stone
an uncursed flint stone
4 uncursed jacinth stones
an uncursed bugle
a cursed scroll of fire
an uncursed spellbook of dig
a blessed spellbook of light
5 uncursed diamonds
12 uncursed fluorite stones
a rusty wand of secret door detection (0:12)
a wand of sleep (0:7)
2 uncursed jasper stones
an uncursed scroll of blank paper
a blessed +4 quarterstaff
5 uncursed amethyst stones
6 uncursed rubies
an uncursed scroll of stinking cloud
an uncursed agate stone
2 uncursed touchstones
an uncursed ring of searching
an uncursed amulet of magical breathing
an uncursed scroll of stinking cloud
134052 gold pieces
2 uncursed diamonds
2 uncursed citrine stones
an uncursed dilithium crystal
an uncursed jade stone
an uncursed black opal
an uncursed mirror
a wand of striking (0:6)
a wand of teleportation (0:8)
an uncursed scroll of light
an uncursed lizard corpse
4 uncursed food rations

Final Attributes:

You were piously aligned.
You were fire resistant.
You were cold resistant.
You were sleep resistant.
You were disintegration-resistant.
You were shock resistant.
You were poison resistant.
You were level-drain resistant.
You were magic-protected.
You saw invisible.
You were telepathic.
You were warned.
You had infravision.
You were invisible to others.
You could teleport.
You had teleport control.
You had slower digestion.
You were very fast.
You had reflection.
Your life would have been saved.
You were extremely lucky.
You had extra luck.
Bad luck did not time out for you.
Good luck did not time out for you.
You survived after being killed twice.

Vanquished creatures:

The Wizard of Yendor (15 times)
Pestilence (4 times)
a high priest
a mastodon
9 krakens
4 iron golems
2 ki-rin
2 storm giants
a titan
7 glass golems
3 balrogs
6 purple worms
2 gray dragons
5 silver dragons
6 red dragons
6 white dragons
3 orange dragons
4 black dragons
6 blue dragons
2 green dragons
6 yellow dragons
9 minotaurs
4 jabberwocks
The Dark One
9 baluchitheria
5 Angels
a demilich
Vlad the Impaler
15 stone golems
8 master mind flayers
10 Olog-hai
3 Nazguls
10 pit fiends
3 sandestins
4 hell hounds
4 titanotheres
4 trappers
a baby silver dragon
a baby black dragon
a guardian naga
11 disenchanters
25 vampire lords
5 skeletons
10 shopkeepers
3 guards
18 aligned priests
7 captains
6 shades
5 liches
5 clay golems
12 nurses
6 ice devils
3 nalfeshnees
2 lurkers above
4 Aleaxes
a frost giant
5 ettins
2 golden nagas
13 black puddings
36 vampires
11 lieutenants
a watch captain
51 ghosts
2 wizards
3 queen bees
5 winged gargoyles
19 giant mimics
12 zruties
22 fire giants
11 ogre kings
11 ice trolls
29 rock trolls
8 umber hulks
6 flesh golems
4 Elvenkings
7 doppelgangers
14 hezrous
10 bone devils
9 large mimics
4 wumpuses
6 fire vortices
2 baby long worms
7 long worms
9 couatls
20 stalkers
16 air elementals
23 fire elementals
30 earth elementals
5 water elementals
2 hill giants
3 giant mummies
4 black nagas
23 xorns
21 giant zombies
5 elf-lords
17 sergeants
17 barbed devils
5 vrocks
8 salamanders
13 wargs
a winter wolf
4 hell hound pups
27 small mimics
a glass piercer
10 warhorses
14 steam vortices
20 xans
7 ettin mummies
5 ogre lords
13 quantum mechanics
27 trolls
7 sasquatches
7 wood golems
3 erinyes
4 mariliths
2 djinn
5 sharks
10 electric eels
5 gelatinous cubes
5 pyrolisks
6 large dogs
6 freezing spheres
8 flaming spheres
9 shocking spheres
10 large cats
7 tigers
12 gargoyles
2 dwarf kings
17 tengu
8 ochre jellies
13 leocrottas
9 energy vortices
2 mountain centaurs
16 stone giants
5 elf mummies
4 human mummies
3 red nagas
4 green slimes
9 pit vipers
5 pythons
13 cobras
59 wraiths
11 carnivorous apes
33 ettin zombies
8 leather golems
a Grey-elf
120 soldiers
4 watchmen
7 horned devils
5 succubi
13 incubi
8 chameleons
5 crocodiles
18 giant beetles
10 quivering blobs
19 cockatrices
6 wolves
7 winter wolf cubs
3 lynxes
4 panthers
13 gremlins
7 spotted jellies
90 leprechauns
4 orc-captains
2 iron piercers
7 mumakil
13 giant spiders
10 scorpions
8 horses
4 ice vortices
12 black lights
70 vampire bats
3 forest centaurs
5 gnome kings
9 orc mummies
9 dwarf mummies
3 ogres
5 brown puddings
10 rust monsters
10 owlbears
12 yetis
5 gold golems
5 werewolves
5 Green-elves
4 piranhas
23 giant eels
21 lizards
16 chickatrices
4 dogs
7 dingos
4 housecats
5 jaguars
4 dwarf lords
3 blue jellies
4 white unicorns
7 gray unicorns
a black unicorn
11 dust vortices
10 ravens
6 plains centaurs
4 gnome mummies
6 snakes
2 water moccasins
8 apes
19 human zombies
3 rope golems
2 Woodland-elves
15 soldier ants
6 fire ants
9 bugbears
6 imps
14 lemures
15 quasits
8 wood nymphs
5 water nymphs
6 mountain nymphs
18 Mordor orcs
34 Uruk-hai
3 orc shamans
7 rock piercers
3 rock moles
7 ponies
8 fog clouds
17 yellow lights
2 shriekers
5 violet fungi
26 gnome lords
14 gnomish wizards
a Kop Lieutenant
5 kobold mummies
4 red naga hatchlings
a black naga hatchling
3 golden naga hatchlings
2 guardian naga hatchlings
8 gray oozes
10 barrow wights
20 elf zombies
12 ghouls
4 straw golems
5 paper golems
2 jellyfish
2 baby crocodiles
17 giant ants
7 little dogs
12 floating eyes
4 kittens
31 dwarves
6 homunculi
6 kobold lords
3 kobold shamans
24 hill orcs
7 rothes
6 rabid rats
6 centipedes
19 giant bats
5 Kop Sergeants
3 monkeys
21 orc zombies
17 dwarf zombies
2 wererats
5 werejackals
7 iguanas
96 killer bees
5 acid blobs
9 coyotes
3 gas spores
16 hobbits
24 manes
3 large kobolds
16 hobgoblins
9 giant rats
15 cave spiders
4 brown molds
5 yellow molds
3 green molds
2 red molds
75 gnomes
15 Keystone Kops
14 garter snakes
18 gnome zombies
10 geckos
23 jackals
a fox
3 kobolds
11 goblins
5 sewer rats
13 grid bugs
14 bats
14 lichens
14 kobold zombies
13 newts

2998 creatures vanquished.

Genocided species:

mind flayers
master liches

5 species genocided.

Voluntary challenges:

You genocided 5 types of monsters.
You never changed form.
You used 6 wishes.
You did not wish for any artifacts.
 Posted by at 10:14 pm
May 312011

Over the weekend, I read that  Tom West passed away. The Tracy Kidder book, The Soul of A New Machine, chronicled the creation of a microcomputer at Data General in the late 1970s. I still own the copy that my parents gave me in high school. 20 years later, I still think about the engineers that worked on that machine. The Soul of A New Machine was one of the reasons why I became a software engineer, and Tom West was a role model.

 Posted by at 8:30 am
May 262011

The other day I wrote about having to reinstall Patti’s laptop from the factory defaults because Windows started to indicate that it was no longer licensed. The good news is that I finally got the laptop running well.

After installing the 15 remaining updates before and fully processing the removed antiquated programs, Windows started to work again. After that it was a matter of “simply” installing the remaining patches. It looks six or seven reboots with around 60-70 more patches to bring Windows up to a fully secure and patched version. Two of the reboots were due to service pack installations; they also required me to visit the computer more than once in order to install the patch–I had to agree to a license agreement. Similarly, I was prompted explicitly to install both Internet Explorer 8 and then Internet Explorer 9. There was no way for me to indicate to the operating system, “Please install all of the updates and keep updating until the system is fully patched and secure.” In addition, it was not possible to do one batch download of all of the updates. The final several reboots only consisted of five or six patches each.

Once the system was fully patched, I was able to install a copy of Microsoft Office for Home and Students. That installation went smoothly. I also installed several applications using the Google Pack–it’s an easy way to install a bunch of applications without having to worry about updating them manually later. I believe her laptop is fully patched at this point. It appears to be snappier, and I hope that it will continue to work correctly.

 Posted by at 1:05 pm
May 232011

Patti has been using a Dell Inspiron 1720 for the past three years. I took at a look at a year or so ago; I made sure that it had up-to-date anti-virus software, upgraded the memory, ran all Windows updates, and set up automatic security updates. A month or so ago, Windows started complaining that it was no longer authentic. And then it started disabling features: the background became black, external drives no longer worked correctly, and the computer seemed to take longer and longer to start up.

Today, I worked for several hours trying to fix the problem. I was unable to figure out which specific patch interacted poorly with windows, so after three or four hours of troubleshooting I backed up Patti’s files and reinstalled from the recovery disk. I had been reluctant to reinstall, because Patti had also purchased Microsoft Word. We’re going to have to find those CDs to reinstall as well.

After reinstalling, the system appeared to be fine. I started to download the 300 MB of security updates (86 of 86), disabled the expired and antiquated anti-virus, and installed a modern anti-virus problem. After several hours of re-installation, the computer again started to report Windows Genuine Advantage validation problems.

I started chatting with Microsoft. We worked through around 15 minutes of troubleshooting before the connection died.

There appears to be another batch of 15 updates; I’m hoping that these updates fix the problem. It looks like the problem is caused by a Microsoft or Dell update that has moved a “protected” file from the expected location. However, even though Microsoft requires that files be in specific states and specific locations, the “protection” software does not give any easy way to see the offending application.

This has been a frustrating experience. The laptop was legitimately purchased; the Microsoft software was legitimately purchased. Why do they feel it’s okay for their software to break in this manner with little or no recourse?

 Posted by at 1:23 am
May 052011

I’ve completed my move from Blogger to WordPress.

The transition was fairly smooth; I probably should have made the changes a while ago. Here are some of the actions I took to migrate the blog:

  • Created a new domain, wp.samgreenfield.com.
  • Installed WordPress using Dreamhost’s one-click install.
  • Exported my posts from Blogger and saved it to my desktop.
  • Used the tool blogger2wordpress to convert my Blogger export file into a file that I could import into WordPress.
    • I used this tool rather than the regular migration strategy in WordPress because I wanted to remember the URLs and email addresses that users would have entered into my blog before. The built-in Blogger import in WordPress just created the users without any additional information.
  • Tweaked the export file so that categories were correctly imported.
  • Performed the import into WordPress.
  • Installed the Suffusion theme, because I think it looked good.
  • Linked the domain “http://blog.samgreenfield.com” to wp.samgreenfield.com. My thought is that if I ever want to switch blogging platforms again, it will be easier if I have a single domain that faces the outside world.
  • Set up Google Analytics in Suffusion; also installed the Google Analytics Dashboard.
  • Configured archive and category pages on WordPress; also made the “permalinks” similar to the old site.
  • Set up redirects from my old site at samgreenfield.com/log to blog.samgreenfield.com
  • Ran a script to vet the old links to make sure they were redirecting correctly.
    • It turned out that around 20% of the links did not work correctly. Blogger removed words like “a” and “the” from the title; WordPress keeps those words in. Blogger and WordPress also handled title collisions differently. I did a mass database update for most of the posts and then fixed a bunch of them by hand.
    • Some of the category pages also needed to be tweaked by hand to make sure that they were working.
  • Installed SSL on blog.samgreenfield.com so that I could use my username and password without getting them stolen.
    • Purchased an IP address from Dreamhost
    • Purchased an SSL certificate from RapidSSL. (Which doesn’t seem to work on Firefox, but I only really care about Chrome.)
  • Installed plug-ins to add more functionality to WordPress

It was a fair amount of work, but it was a lot of fun. I’m still looking for the best way to selectively publish photos directly from my Eye-Fi.

 Posted by at 8:18 pm
May 042011

When I left Time Inc. in 2007, I built a new computer from parts purchased at Newegg.com. Over the years, the parts gradually broke: some of my memory was DOA, the video card went bad, the power supply died, and the back fan broke. Finally, a couple of month ago, the last of three hard drives decided to kick the bucket. (This was probably related to the back fan breaking.) I decided to buy a new computer; I’ve very happy I did. The new machine has some pretty great components:

This is a pretty great machine. It takes less than a minute to fire up a web browser from when I turn on the machine, and I haven’t had any real issue at all.

A friend of mine at Microsoft used his employee purchase plan to get me an affordable copy of Windows 7 and Office. I also purchased an upgrade to the latest and greatest full version of Photoshop. I’ve installed all sorts of developer tools, and I’m looking fun to playing around with new applications at home.

 Posted by at 6:33 pm
Apr 272010

Work has been keeping me very busy recently, which is why there haven’t been a ton of posts on the blog. (Not to mention keeping me from hanging out with friends a lot.)

I’m going to need to do some maintenance over the blog and email systems this week. Dreamhost recently disabled shell delivery of mail, which ended up killing all of my procmail filters. So instead of 100 messages in the spam file for a day, I’m seeing 1500 messages in several hours. And Google has decided to disable FTP publishing to blogger. So I’m going to have to migrate the blog to another system–Wordpress seems like the best bet.

I hope to have more photos and posts posted soon. Stay tuned!

 Posted by at 11:50 am
%d bloggers like this: