January 29, 2004

Sickest man alive?.

So Andy gets a duel g5 machine as a present. He empties out the case, and stuffs an athlon into it. Now he is happily running Windows XP.

When I showed my friend, who happens to love Apple, he looked sick. He did not say anything to me. He just put his hands on his head and was in shock. I wish I had a picture of that.

That guy needs to carry around a digital camera just to catch the faces he is going to be seeing as he tells this tale.

[Update: It's a hoax]

Posted by Daniel at 10:43 AM | Comments (0)

January 22, 2004

Too much PHP.

You know you have been writing too much PHP when: While writing you find yourself putting ";"'s at the end of complete thoughts instead of periods;

Like this;

Posted by Daniel at 02:49 PM | Comments (2)

Precisely predicted.

I completed a small web programming project this morning, and spent within a minute of my initial estimated time. It comes from making lots of pots.

Posted by Daniel at 02:17 PM | Comments (0)

Password protect only if not from certain IP's.

I needed to password protect a page, but only if it was not being requested from a trusted ip address. I was not sure apache could do this, but lo and behold, a magical Satisfy directive.

.htaccess file

Satisfy Any

AuthName "Password protected area"
AuthType Basic
AuthUserFile /home/joeshmoe/.htpasswd
require valid-user


Order Deny,Allow
Deny from all
Allow from 10.1.1.79
Posted by Daniel at 11:08 AM | Comments (0)

January 19, 2004

Teleflip.

Teleflip. Easy way to email to an SMS phone. I wonder who is paying for it.

Posted by Daniel at 01:26 PM | Comments (0)

WordPress.

I just setup a site powered by the blogging software Wordpress . It's got an extremely easy setup process.

Posted by Daniel at 12:18 PM | Comments (0)

January 17, 2004

Roomba.

My parents got a Roomba robot vacuum cleaner. Within 20 minutes of turning it on, my mom has begun talking to it.

We have Greater Swiss Mountain Dog. There are only a couple thousand of the breed in the USA. It's a very friendly, tight-knit group of dog owners. My brother and I have spent the night at someone's house in Florida based on the fact that our dog was related to their dog.

The family of one of our dog's brothers purchased a Roomba and loved it. During conversations with the breeder, the breeder heard about the Roomba and purchased one. Our dog's breeder would be know as a super-node in network speak. In addtion to having a many dog owners that she communicates with, she helps organize events and knows most of the swissy breeders in the USA. Word of the cool Roomba spread like wildfire. I have heard from my brother that over thirty swissy people have bought one so far.

Posted by Daniel at 08:27 PM | Comments (0)

January 13, 2004

Embedding Ruby in C++.

Embedding Ruby in C++ (Since the only links I don't lose are the ones I blog.)

Posted by Daniel at 04:39 PM | Comments (0)

January 12, 2004

Bolo Brain with Ruby.

Perhaps the best way to write a brain for winbolo is to use Ruby. Bolo brains must be written in C, but ruby interfaces with C very nicely.

Posted by Daniel at 09:36 AM | Comments (0)

Cooperative human-robot soccer.

One team using the segway bots is developing soccer playing robots designed to play along with with humans on segways.

Once I played with building a "brain" for winbolo. Since I realized I did not have the time or the knowledge of C to create a truly autonomous tank, I decided to do a "cooperative" AI. Essentially, the bot would run right at a sighted enemy and blaze away, or it would flock together with other friendly tanks. When played with several of these bots, you would find the flock of them, and then drive toward the enemy. As you moved away from the center of the flock, the flock would follow. When the flock spotted the enemy all the tanks rushed him.

Considering the ridicules small amount of programming I did, it worked out okay. Essentially, I offloaded all of the higher level thinking to the human.

Posted by Daniel at 09:32 AM | Comments (0)

Segway robots.

Apparently, Darpa and Segway have made a version of the segway designed to by used for robots. Several universities are playing with the stubby buggers.

t_SRMP

Posted by Daniel at 09:18 AM | Comments (0)

January 10, 2004

Gaming voice communications.

Posted by Daniel at 07:55 AM | Comments (0)

January 09, 2004

Rake.

I used rake today. It's a good build system. I'll be using it in the future. Oddly enough, the best documentation for using rake is this presentation on Building with Rake.

Posted by Daniel at 11:14 PM | Comments (0)

Better government.

The idea is, if you don't like how the state is treating you, simply become part of another state

-- T MacDonald

My idea of a great form of government.

Posted by Daniel at 10:59 PM | Comments (0)

Downloading may be illegal..

Downloading may be illegal. But 60 million people used Napster and only 50 million voted for Bush or Gore. We live in a democracy. If the people want to share files then the law should be changed to let them.

-- Aaron Swartz

I'm not so fond of "democracies". If 51% of the people in a land want to kill the other 49% it does not give them a right to kill. The majority is no more infallible than the pope.

Posted by Daniel at 10:53 PM | Comments (0)

Success - the worst teacher of success.

Success, he argues, is the worst teacher of success.

"What the heck?", I thought, as I read this in a Fast Company article on Clayton Christensen. I stopped reading and went to bed wondering. The next morning I got up, and I had an email from a squad leader in a computer game, giving his tips for leading a successful squad, and asking for mine. I had led the most success squad in that particular game, and yet almost point for point, what we did was opposite of what he did.

It's vital to be able to able to choose attributes to circumstances, and not just pick "positive" attributes. On of the most amazing feats the Lawrence of Arabia pulled off was his realization that attributes, strategies, and tactics that were positive for European armies were bad in his circumstances. Until today I never really, really, realized that most attributes are not positive, or negative - but are positive or negative according to the circumstances.

Good theory isn't about copying attributes, says Christensen. That's just strapping on feathers and hoping they'll make you fly. It's about discovering the "underlying causal mechanism behind the success" and identifying the circumstances in which a solution works and those in which it doesn't.

(Link via Robert Paterson)

Posted by Daniel at 10:42 PM | Comments (0)

Skiing.

I'm back from my second time skiing. This time instead of just a quick few hours, I was skiing for three days. I improved my skills quite a bit, and almost broke my snowplow habits.

slopes

Weather.com has a handy Ski Comfort Index that ranks the day's weather on a scale of 0-10. The first day skiing it was a "1". Skiing on ice through falling sleet did not bother me as much as I thought it would - it made me feel stupidly proud that I "could take it".

The second day, it began to snow. You could get a quarter of an inch of snow covering your body just riding the chair lift to the top of the mountain.

night

After the day's skiing was done, hanging out with friends for the evening was wonderful too. I usualy don't get to socialize nearly as much as I would like to, so this was refreshing.

Posted by Daniel at 12:01 PM | Comments (0)

Astonishing Complexity - Mars Rover.

Watching this animation of the mars rover plan, it is astonishing that this much complexity could be successfully achieved. Every single step had to happen just right. One failure anywhere, and you have screwed up mission. I am really glad I don't have to program at that level. Unit test's rule. :P

Posted by Daniel at 11:42 AM | Comments (0)

Rubik's cubing.

I've picked up Rubik's cubing as a relaxing way of killing time when waiting. I've also noticed people come up and talk to you when you are fiddling with a Rubik's cube - it's almost as good for starting conversations as bringing a dog.

The best method of solving the cube that I have found is explained by Lars Petrus.

Posted by Daniel at 11:26 AM | Comments (0)

January 03, 2004

Another way to structure css files.

Duh. I finally figured a way around my minor frustration with CSS - lack of "variables".

In the past, I have usually structured css files like this exaggerated example:

body{color:#CCCCCC; font-family:"Arial";....}
h1{color:#00cc77; font-family:"Helvetica"; ....}
h2{color:#00cc77; font-family:"Helvetica";....}
h3{color:#00cc77; font-family:"Helvetica";....}
h4{color:#882200; font-family:"Helvetica";....}
p{color:#882200; .....}
table{color:#882200;....}
table.th {color:#00cc77; font-family:"Helvetica"; ....}

I have always be frustrated when I want to experiment with changing a value that appeared in multiple places. I just realized my own stupidity last night. What if I move most same values together - like this:

body{color:#CCCCCC;}
h1, h2, h3, table.th {color:#00cc77;}
h4, p, table {color:#882200;}

body {font-family:"Arial";}
h1, h2, h3, h4,table.th { font-family:"Helvetica"; }

body{ ;....}
h1{ ....}
h2{ ....}
h3{ ....}
h4{ ....}
table.th { ....}

Experimentation becomes much easier.

Posted by Daniel at 05:52 PM | Comments (0)

Tofu - Read Differently.

I stumbled across Tofu, an app designed to improve readability of large chucks of text by breaking text into thin columns and scrolling horizontally. In practice Tofu works well for me - last night I read an entire full length book from Project Gutenburg.

Tofu screenschot

Posted by Daniel at 11:39 AM | Comments (0)

January 02, 2004

Light PHP.

Last night I wanted to be able to have comments on an exported VoodooPad site. So I quickly hacked some light PHP code together to do the trick. The code is available in it's rough state on this mini site.

Posted by Daniel at 01:25 AM | Comments (0)

January 01, 2004

New Zen Garden Entry.

Bonsai Sky, a new entry by Mike Davidson in the CSS Zen Garden is stunning. It's manages to look this photorealistic and yet be a fixed width design.

Somebody has a sense of humor:
* Look at the base of the big rock for the logo carvings.
* An idol on the right slides up and down the rock as you scroll the page.
* A person stands on the rock
* CSS is carved into the rock

Posted by Daniel at 05:45 PM | Comments (0)

Happy new year!.

Happy new year! As always, the woods around us resound with everyone and his brother-in-law shooting off fireworks.

I did not plan on staying, but about 11pm I inadvertently started coding something, and I've just now come out of the daze. I'll have a cool little script to release tomorrow.

Posted by Daniel at 01:33 AM | Comments (0)