Friday, June 30, 2006

Poor network performance? Check the duplex dude

Force gigE NICs to operate at 100baseTX-FD.

Let's say you are getting poor network performance on your Linux box. You check the result of /sbin/ifconfig and notice quite a few collisions. Not only that, but anytime you transfer a bunch of packets, you generate more collisions.

Turns out, it may be that your ethernet device did not autonegotiate correctly. In my case, when I ran /sbin/ethtool eth0 I got:

Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  Not reported
        Advertised auto-negotiation: No
        Speed: 100Mb/s
        Duplex: Half
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: off
        Supports Wake-on: umbg
        Wake-on: g
        Current message level: 0x00000007 (7)
        Link detected: yes

My network should have been talking Full duplex.

I simply crossed my fingers and ran the command:

 sudo /sbin/ethtool -s eth0 duplex full speed 100 autoneg off

This set things straight between my ethernet card and the network.

As the article I link suggests, you can do:

To select
 autonegotiation = off
 speed = 100Mbps
 duplex = full
add a line to /etc/sysconfig/network-scripts/eth0 saying
 ETHTOOL_OPTS=autoneg off speed 100 duplex full

And my vision is...

20/20. Whoo!

--Ben

Waiting

Did you know that you are supposed to get regular eye exams? It's like going to the dentist, or uprgrading the version of ssh you use.

Sure, you could wait for a tooth to fall out, or your site to get hacked - but it's much smarter to be pro-active about these things.

Turns out, I didn't know this. Not a clue.

So here I am, sitting in a eye doctor's waiting room, waiting for my eyes to dialate. I did the first part of the eye exam without too much difficulty. I read various lines of text and had various drops put in my eyes.

I even did the classic lens game - Lens 1, click, Lens 2 - "Which is clearer, 1 or 2?"

Who knows, today could be my last day of non-assisted vision (until Shira makes me get surgery). We'll see in just another 20 minutes.

--Ben

Things To Read - Blog Recommendations

Marketing Sherpa's Top 10 Blogs

If you are new to the blogging world, and are looking for some blogs to read the above link points to a good starter list.

Taking on Wal-Mart

How To Beat The Wal-Marts

The link above points to an inspirational article talking about how you can take on the giants in your space. The author sums it up well as:

The truth is you can beat Wal-Mart or any other chain, you just can't fight them.

I think this same advice applies to Google, eBay and any other big player in the online world.

Thursday, June 29, 2006

Play Day

Today I got to play hookey from the office and went to Shira's company picnic. I had fun, though I probably spent a good 50% of the time on either the phone or IM.

Oh the joys of cell phones - the good news is, you're always connected. The bad new is, you're always conected.

Still, it was fun getting a little sun and eating some Hebrew Nationals with good friends. Even managed to toss around a football with a bit of dignity.

Next year, maybe I'll leave the cell phone at home. Better not make promises I can't keep.

--Ben

Wednesday, June 28, 2006

She Likes It

Shira gave me two thumbs up on the gift I gave her - a Maurice Lacroix watch.

Jared saves the day again.

--Ben

This might just all come together

The flowers have been bought. The card purchased. The reservations made.

This night just might come together...

--Ben

8 Years, 1 Night

Tonight Shira and I celebrate our 8th year of wedded bliss.

My preparations for this evening are running right a might bit late. But at least I got the gift. Whew. That was getting close.

Thanks babe for 8 of the most wonderful years of my life, and for being the most wonderful, supportive and obfuscated woman ever.

--Ben

Tuesday, June 27, 2006

Perl: Here documents

Perl: Here documents

I was hacking a bit of perl tonight and didn't quite recall how to compose a here document in perl.

In typical perl fashion, as the article above shows, there's about 5 different ways to do here documents in perl, most of which are very cool.

For example, did you know you could do this?

print <<`FOO`
 echo "Hello World" | mail -s "Test mail..." benjisimon@nowhere.com
FOO

Or how about this?

%data = <<END =~ /(\w+): (.*)/g;
fred: Fred Flintstone
barney: Barney Rubble
betty: Betty Rubble
wilma: Wilma Flintstone
END

The second example is especially interesting because it allows you to keep a nicely formatted description of your data in your perl source code, yet transparently load it into a hash.

There you have it - the kitchen sink of here documents.

Perl: Here documents

Perl: Here documents

I was hacking a bit of perl tonight and didn't quite recall how to compose a here document in perl.

In typical perl fashion, as the article above shows, there's about 5 different ways to do here documents in perl, most of which are very cool.

For example, did you know you could do this?

print <<`FOO`
 echo "Hello World" | mail -s "Test mail..." benjisimon@nowhere.com
FOO

Or how about this?

%data = <

The second example is especially interesting because it allows you to keep a nicely formatted description of your data in your perl source code, yet transparently load it into a hash.

There you have it - the kitchen sink of here documents.

Bad traffic

You know you are stuck in bad traffic when you've been on the road for 15 minutes and essentially haven't gotten out of the parking lot.

Yikes it's bad today.

--Ben

Monday, June 26, 2006

R6RS Status Report

http://www.schemers.org/Documents/Standards/Charter/status-jun-2006.html

The Scheme R6RS committee just published their status of their progress on developing the next version of Scheme. Looks like they are making some fairly bold steps to improve Scheme. Exciting stuff (if a language committee can be considered exciting).

--Ben

Review: The Genome War

One of the most difficult (read: boring, but I hate calling it that) books on tape I've ever listened to was the story of how Watson and Crick discovered DNA. On one hand it's a very cool concept - they essentially reasoned out the structure using logic and creativity. On the other hand, it was a very slow process, and just wasn't written in a way I could get excited about.

So, when I saw The Genome War by James Shreeve I had flashabacks to this incident and was a bit hesistant. But I decided to have an open mind, and rented the book.

And boy am I glad I did.

This was hardly a rambling story about the slow pace of science. Instead it was an exciting story of how two completely different organizations took on the biggest computational task of our time. Both a publicly funded project, and a private company engaded in a race to sequence and map the human genome.

The story was interesting from both a science and business perspective. Next time you think your company has sold vaporware, imagine being on the team of a company that took millions of dollars from customers to attempt something which has never been done before, and which a large part of the scientific community thinks can't be done. Now that's pressure.

Perhaps what struck me most was that in many ways the mapping of the human genome is not really a biology problem - it's a computer problem. Sure, figuring out how to sequence DNA, or interpreting what a sequence means is clearly all about biology. But the act of stringing together millions of base pairs in the right order is really a complex programming jigzaw puzzle. Clearly the heros of this book, in many ways, are the computer geeks that took on this incredible challange.

One section of the book that I really connected with was when the author described how the algorithm used to build the sequence wasn't working, and the time to get the problem fixed was running out. Like all tricky bugs, the programmers are left wondering it is a tiny glitch, or is the whole approach wrong. And also like most tricky bugs, it all came down to a trivial one line error. I'd love to know what that error was.

I give this book a 9.6/10 because it is well written, has wonderful characters and kept me on the edge of my seat. Who knew scientific research could be so interesting?

--Ben

Sunday, June 25, 2006

Study: People think their emails are twice as funny as they really are

collision detection: Study: People think their emails are twice as funny as they really are

Shira's been telling me this for almost a year now.

Gosh I hate it when she's right. (and I won't get into how often that happens...)

Mazel Tov!

Caron and Matt are married!!!!

We had such a fun time at their wedding. It was great catching up with old high school friends.

On one hand, people pretty much looked the same they did in high school. On the other hand, people now have advanced degrees, are married, work for real companies, and even have kids. So it looks like we've come a long way.

--Ben

Friday, June 23, 2006

Still no pen

We are stopped at the Gettysburg outlets on our way out of town. We went into Old Navy and tried some stuff on.

My first observation? Still no pen.

--Ben

My favorite sign in DC

We are on our way out of town, heading to Rochester. Every time we take this route, we drive by my favorite sign in all of the DC area.

As we approach, I always grab my sidekick and take a photo. I almost always end up with what you see here - a blank spot in the side of the road.

Well, I give up. I'm just not going to get the shot.

The sign says: " Exit ___, George Bush Center For intelligence (CIA)."

I just have to chuckle every time I see it.

Trust me, the sign exists, even if I don't have a photo of it.

--Ben

Thursday, June 22, 2006

Passing Through

We got to see Aaron, and meet Jessica tonight, as they pass through on their way to North Carolina.

We wish him much success as he starts his new adventure as a southerner.

Some advice: when in doubt, slow it all down a notch. And when folks say hello to you on the street, smile and say hello back. It's called southern courtesy. Don't worry, in time you'll get used to it.

--Ben

Unobtrusive Sidenotes

arc90 lab : tools : Unobtrusive Sidenotes

This is a neat little example of what you can accomplish with CSS, XHTML and JavaScript. The result? The ability to present sidenotes (think footnotes, but to the right or left of the reference).

Steven Hargrove: How to redirect a web page, the smart way

Steven Hargrove: How to redirect a web page, the smart way

How many ways are there to perform an browser redirect? Plenty. Read the above article to find out lots more.

The nice part is that they give examples for all different languages and servers. Very handy stuff.

Wednesday, June 21, 2006

An Unexpected Deal

When you think "airport bookstore," what is the first phrase that comes to mind? I doubt it has anything to do with good prices, or novel marketing.

But, when Shira told me about her latest experience at the airport, those were exactly the thoughts that came to mind.

The book she had brought along for her last trip wasn't holding her attention, and she had some time, so wandered into the nearest bookstore.

There she found a paperback that interested her, it was $6.00 [1]. Not bad (cheaper than a movie ticket) but not great (it's probably $0.99 on half.com).

But here's the cool part - the store has a policy, you can return the book any time for a refund of 50%. And being an airport store, you can return it to the same type of store in other airports.

In other words, you can rent the book for $3.00. Use it for a flight or two and return it. Unlike most returns, you know you'll be near the bookstore anytime you travel.

I just thought this was so clever. You know the bookstore is going to do just fine, because most people won't return the books. And those that do will be their happiest customers and will no doubt "buy" again.

This just seems like a great example of a business that sees what it has, rather than what it hasn't. No, it's not going to beat Borders, or take on Amazon.

But, they can make a huge impact by providing a useful service to people who want it, all in a unqiue and affordable way.

[1] - The book is about a group of women to avenge men who have made it a habit of hurting women. This choice of books no doubt deserves a blog post of its own.

--Ben

Tuesday, June 20, 2006

Corn on the cob hack

A fast and easy way to make corn on the cob...

- Remove the husk from the corn

- Wrap each piece of corn in wax paper and twist off the ends

- Microwave on high for 2 minutes for 1 ear of corn, and 1 additional minute for each ear

The result was passable - maybe not as good as boiling it, but it's hard to beat the speed and quick cleanup.

Via: www.cooks.com

--Ben

T-Mobile Sidekick 3 Cell Phone

T-Mobile Sidekick 3 Cell Phone - Browse New Features and Buy Online

I so want one. And on 6/28/2006 I can finally get one!

Via: Sidekick3 blog

Monday, June 19, 2006

Book Review: Good To Great

At the recommendation of my CEO, I read Good To Great by Jim Collins. This is a business book that tries to figure out the elusive question as to why some businesses become great, while others remain good (or good enough).

One aspect of the book that makes it so entertaining is the approach the author took. Rather than starting with a theory of what would make a good company great, he started with a bunch of apparently random great companies. He then mined the data looking for patterns that explain how they managed to become so successful.

This approach leads to a set of novel principles that one wouldn't guess would be the main ingredients for success, but in retrospect make perfect sense.

Take one of the key ideas for example: Get the right people on the bus. This simple idea says that you need to have the very best people working in your organization. If a person doesn't fit in their position, they need to be let go (taken off the bus) or moved to a place where they can be the best (asked to sit in a different seat). The author explains that before you can even think of becoming great you need to tackle this step.

Now, what happens when you've got exactly the right people on the bus? All of a sudden the vast majority of your difficult people-management issues go out the window. After all, the right people want to be there and do their job well.

In other words, by implementing the basic good to great principal, you have no choice but to set the stage to be successful.

Another aspect of the book that I liked was that the great companies weren't the trendy companies. Consider one example - Walgreens. I would hardly think of Walgreens as being a great company. Yet if you look at their stock's performance, they are clearly a great company. In other words, you can become a great company, not by choosing a great industry but by acting great.

One aspect of the book that I found lacking was how to deal with the fact that the good to great transition is a slow one. This isn't a bad thing on its own, but does leave me wondering what a struggling startup with limited runway should make of these principles. Are they simply out of reach? Or, because the organization is smaller, can it implement them far faster than a larger organization? I'm just not sure.

Speaking of startups, the author explained in about two pages how a great entrepreneurial startup can die by growing into a bureaucratic beast. Having been through the process at a previous job of watching the board swap out CEOs to bring in a pro and adding process after process to make the company more like a real company, I really got a kick out of this section. I felt like the author had been able to summarize in words what took years to watch happen.

If you have even a passing interest into what makes a company great, or how your company could become something really special then you should read the book. This holds doubly true if you think that management fads are a waste - as this book pretty much had none of them.

I give the book an 8/10 for being well written, easy to follow and for having lots to learn from.

Micro Persuasion: 35 Ways You Can Use RSS Today

Micro Persuasion: 35 Ways You Can Use RSS Today

A very cool list of ways to access content via RSS. Everything from reading the bible to monitoring aircraft delays.

It's good to know that people are using RSS for what it's good for - streaming continuous updates to an audience, and not just in the blog context.

Making yourself heard

How cool is it that we live in a country where you can hang a "War Kills Children" sign at a random intersection and not fear being arrested by the goverment?

Whether you agree with the message or not, it sure is nice seeing citizens voice their opinion.

--Ben

Sunday, June 18, 2006

Why Blogger?

While following LifeHacker I came across this article discussing how much you should expect a blog design to cost. It's an interesting read and speaks to the whole topic of relativity in pricing. What is expensive to an individual (say $1500) is peanuts to even a medium sized business. But what caught my eye most about the article were the comments.

Included in the comments is a discussion about why you shouldn't use Blogger as your blog software. Here's a quote from the comments:

About Blogger:
Anyone who is serious about success would not use blogger.
Anyone serious about success would purchase their own domain and IP.
Blogger blogs often get hit with collateral damage in search engines.
The Blogger network is one big bad spammy neighborhood.
Even Matt Cutts from Google suggested getting off it.
--Aaron Pratt

And there are others as well.

This got me thinking - why do I both use and recommend Blogger?

Well, a few reasons come to mind. First, there's the whole issue of momentum. With everything else going on, why bother switching to a new blogging framework? My current Blogger setup allows me to trivially post from my sidekick and click the BlogThis! bookmarklet to quickly generate a post based on what I'm browsing. It boils down to: if it ain't broke, don't fix it.

Next, I don't think it's a bad idea to bet on Google. I'm not sure where the future of Blogger is going, but having the planet's indexer of all information standing behind them can't be a bad thing.

After thinking about it a bit though, there's a reasons that's actually more important than those two outlined above that keep me at Blogger. What I like about Blogger is that anyone can reproduce what I'm doing here. You don't need to register a domain name and pay hosting fees for a server. You don't need to do any software configuration. You just need to register at www.blogger.com to get started.

I guess I'm trying to set the example that blogging is for everyone, regardless of their technical savvy or budget. If you have something to say, then you can say it. After all, that's exactly what I'm going.

Enough talk about blogging. Time to get back to actually blogging.

CVS for Non-Developers

I want to have a bunch of non-developers use CVS as a repository. It's the only sane way to do group work. But, I'm not sure the best way to give them access to a CVS repository.

I'm pretty excited because I found TortoiseCVS, which appears to seamlessly integrate CVS into the right click menu of Explorer. I think that will be easier than trying to teach them WinCVS, which is a separate application.

Either way, they'll both be better options than teaching them to use cygwin and a command line client.

Am I missing any other CVS clients or approaches?

Saturday, June 17, 2006

Scheme2Js - Mixing JavaScript and scheme

I just learned about the Scheme2Js project, which I find interesting. It's actually used in HOP, which is really unique in itself. HOP appears to be an approach to writing web applications where you write both the client and server side code together (in a Lisp'ish notation), yet they run in totally different environments. That description doesn't do it justice - so check out their homepage.

I'm especially interested in Scheme2Js because I think application frameworks like SISCWeb have demonstrated how you can cleanly mix back end source code with front end HTML, yet they haven't addressed the issue of dealing with front end JavaScript. Scheme2Js appears to be at least one answer to this - simply write your front end JavaScript in Scheme and compile it back into JavaScript.

I suppose for the Java and related technology crowd this whole point seems kind of strange. Who really cares about mixing markup with JavaScript? But one of the real values of programming a web application in Scheme is that you maintain the expressive power of a real programming language (like Java) yet have the markup structure of a language like XML. JSP solves this by allowing you to express Java concepts in various tags (like c:forEach) - but that gets clumsy for anything beyond the most basic expressions.

I actually ran into this problem of how to compose JavaScript in a Scheme webapp just the other day. Rather than using the sophisticated approach offered by Scheme2Js, I took a different (and easier!) route. Consider that I started with code like this:

  `(p (b "Hello") " world! At the beep it will be:"
      (script (@ (language "JavaScript"))
        "document.writeln(new Date());"))

That's basically Scheme code mixed in with a bit of JavaScript in the middle. It works, but that gets annoying. With this approach, I have to worry about which set of quotes I'm using, and all the other hassles of hosting one language within another.

I spent some time looking around at various solutions to make the above easier to read. While there were some options around, I decided to take advantage of Scheme's really easy to use list processing and quickly developed my own way of representing JavaScript in a Scheme friendly notation. In about 10 minutes I was able to write an interpreter that supported:

  `(p (b "Hello") " world! At the beep it will be:"
     ,(jsexpr (@ document (& writeln (new Date)))))

Which is much more Scheme friendly. Again, my goal wasn't to be able to write JavaScript in Scheme, but to simply represent JavaScript in a friendlier format.

By taking advantage of Scheme's macro system (and quasiquote), I'm able to support seeing Scheme variables inside of jsexpr blocks. So I can write:

 (jsexpr (@ document (& writeln (+ "Welcome " ,user-name 
                                   " - thanks for visiting!"))))

Where user-name is a variable from the server side program that will appear in the client side JavaScript.

Even though my solution worked, I'm eager to check out Scheme2Js and see if it can replace my quick and dirty DSL hack.

Via: Lambda The Ultimate

Friday, June 16, 2006

Job Interview Questions and Answers

Job Interview Questions and Answers

To prepare for an interview I had to conduct yesterday , I looked around for sample question. I came across the above site, which not only lists great questions - but also Best Answers.

Now there's no excuse for not being prepared for all the stock interview questions.

5th Grade Graduation

Tonight we had the pleasure of seeing Forrest graduate the 5th grade. We got an extra opportunity to hoot and clap because he won a "presidental award for academic excellence" (yes, I am aware of the massive irony of that statement).

He's on his way to middle school, which I'm sure he'll do great at.

The graduation message was simple and to the point. The principle first read a few pages from Dr. Suess and then talked about how parents should stay involved in their kids lives, even though middle school may seem like a time to give them space. Makes me wonder if most university graduations could learn a thing or two from this event.

If I rember correctly, I really enjoyed 5th grade. I had Mr. Stevens as a teacher. He wore sneakers to class, even if it didn't match his outfit. Oh, and when we did a "what do you think you'll be when you grow up," I said '"marine biologist" and he said "soccer player" (which confuses me now as much as it did back then. Who becomes a soccer player for a living?). Looks like we were both wrong.

Way to go Forrest, we are both proud of you.

--Ben

Tips for managing a blog

parent hacks: Parent Hacks admin: The backlog

I found this relatively short article from ParentHacks to be a really interesting description on how they manage their blog.

There are useful suggestions for how to get your readers excited about their content being posted as well as some other tidbits.

What I found most useful was the concept of scheduling posts. It would be interesting to try the following experiment. Write up a handful of blog entries when I have time, and save them as drafts. When I have a really busy day, and don't have time to post, I can log in and publish one of those draft enabled posts.

Naturally, this doesn't make sense for time sensitive postings. But in general, this could help avoid the times when I'd love to post, but just don't have time.

I also found it intersting that one of the stated goals of the ParentHacks website is to not post too often. This helps to avoid burn out.

Thursday, June 15, 2006

Entertainment by Spencer

Spencer did an excellent job of entertaining us tonight.

First, he explained how he lost his two front teeth. One he pulled out, the other his brother knocked out. This was as typical a story to him as me telling Shira about traffic on 66. Ahhh, the joy of baby teeth.

Then, we watched him do math problems that Shira put in front of him. He would look to me for answers, and I would need to forward his request to Shira. He did an superb job on these questions.

I'll teach him all about spreadsheets when he's old enough - that will be my contribution to his math education.

--Ben

Caption Me

My desk. Tim's wife's golf clubs. Please caption me.

--Ben

Our first bud

Photo-0038.jpg Originally uploaded by blumenth.

Look at that! A living flower in our very own garden. Thanks, Teresa!

Wednesday, June 14, 2006

Worst. Feature. Ever

I have to say, that without a doubt, the Windows XP, auto reboot after auto update feature is by far the worse OS feature I've ever seen. It's almost comical how bad it is.

Here I am, happily programming along, and then all of a sudden Windows tells me that it's going to reboot unless I tell it not to. As if rebooting is no big deal. As if rebooting doesn't cause me to lose 93 emacs buffers, and 10 Firefox tabs.

Sure, I can get around all of this. I'm sure I can turn this feature off, and I do use screen to help with the emacs problem. Shira has even shown me how her firefox setup auto restarts her with the last set of tabs already open.

But there's a bigger problem. This reboot process causes a total breakdown in flow. You know flow - it's that wonderful state you get in when you can hack for hours and it feels like just a few minutes have gone by.

Developing an operating system that assumes that your users will never enter flow is downright absurd. Come on Microsoft, have a bit more respect for us.

There simply has to be a better way.

Tuesday, June 13, 2006

Doing My Civic Duty

After work, like good citizens, Shira and I went and voted in the Senate primary race.

We just checked, and the race is over. Webb won. Personally, I'm just happy the democrats didn't find a way to lose this election too.

Yesterday I complained that I coudn't find Miller's website. It turns out that it's www.miller2006.com. Did I find this out by reading the flyer left at my doorstep today? Nope. The URL wasn't to be found anywhere on that sheet of glossy paper.

Instead I got the URL from one of the hundreds of Miller signs that my brain had been filtering out for me over the past few weeks.

How a senate candidate can publish a door-to-door flyer without his URL on it is beyond me.

I was also dissapointed with Miller's site because he only had the most vague descriptions of his stance on things. I would have preffered it more if he had simply come out and said where he stood on certain issues.

Clarity? Directness? Hmmmm, sounds like I'm asking a bit too much from a politician.

--Ben

Monday, June 12, 2006

Choosing a candidate

Tomorrow is a primary election for Virginia (well, for the 8th district in Virginia, anyway). Tonight I tried to do my civil duty and decide who I'm going to vote for.

You wouldn't think that this was that tricky a decision to make. There's only one set of candidates to vote on (the others didn't have more than one choice), and I already know I'm going to vote democratic.

So my choices are between Harris Miller and Jim Webb.

However, finding information the web turned out to be harder than I imagined. First, the Arlington GOP site comes up whenever I search for "Arlington county election." Yet I had to dig around for a Democratic version of this kind of site. And when did find it, it was really an unimpressive site. I didn't find any clear description of the candidates and their platform.

So, I abandoned that approach and searched for the candidates themselves.

I had no problem finding Jim Webb's website, but for the life of me, I can't find Miller's. I can find articles that talk about him, but I figure I should compare propaganda to propaganda website to website.

In the end, I think I'll probably end up voting for Webb because I like the story he told on his website.

He had his positions clearly outlined (or as clearly as a politician can) and even had a clip to an appearance on the Colbert Report. I actually liked the clip because it showed him a bit uncomfortable in front of the camera (meaning he looked real) but his responses were still strong.

This is all really too bad for Miller, because I'm sure I'd be impressed with him, had I been able to read up on where he stands on various issues.

So it looks like the fate of elections will rest firmly in their ability to produce an SEO website.

Feed'in time

As per the instructions by our gardener extraordinaire, Teresa, we have bought rose food and more mulch.

We applied all this tonight, and we are now in wait-and-see mode.

You can see one little rose bud trying to break out, but I don't think that counts as success.

--Ben

review: A Fairwell to Arms

We were at the library a few weeks ago, and I asked Shira to help me pick out a book on CD to listen to. She scanned the shelves for a few moments and then pointed to one particular book. A Fairwell to Arms by Earnest Hemingway, she explained to me, was one of her favorite required books in high school.

I hadn't read it, or anything else by Hemingway, and it seemed like the intelligent thing to do, so I rented it. Besides, Shira explained to me that it was a war story. And how can you go wrong with a war story?

Well, I'll tell you how. You go wrong when it's actually a *love* story taking place during war. Ugh. Shira let me in on this little secret, that this was indeed a love story, only after we were in the car headed home from the library.

So, that's the back story. And how did I enjoy this impressive and world aclaimed novel?

Well, the first 5 disks (and there are 7 in total) were what I can only describe as painful. I mean, change channels and listen to something else kind of painful. On more than one occassion, I almost gave up.

I think the key problem is that the dialog in the text came across really poorly. I felt like the story consisted of some characters babbeling on about things I just didn't care about.

In all fairness, this may not be all Hemingway's fault - as I've had this same sensation before. I tried listening to Catch 22 on tape once, and it was a disaster. The book itself had me laughing outloud, while the tape had me wishing that it would just end.

Then, at disk 5, track 13, something truly remarkable happened - the story got exciting! And I actually began to like it. The main character who I didn't care much about, suddenly became someone I was pulling for.

After a full disk later, a lot of the excitement has gone away, and I was back to feeling blah about the book. But it was good while it lasted.

One element that I noticed in the book is that the main charater is nice to lots and lots of people. He's simply friendly and treats people well. And the result is that the people he treats well consistently save his butt. I must admit, I really did like this message. And while one can talk about the value of being nice to others, it's much more interesting to illustrate it with a story.

Overall - do yourself a favor and skip the audio version of this CD and read the text version. You've been warned.

--Ben

Sunday, June 11, 2006

Car detailing day

Today we washed and detailed our cars. Jenna taught us how to use a claybar to remove all the gunk from the underlying paint. We then put down a fresh coat of wax.

While claybarring is very effective, it's a bit on the tedious side. Imagine going over your entire car with a hunk of super putty no bigger than a big wad of gum. Fast it is not. But it sure is pretty.

Jenna brought over Brody so he could be our official mascot for the day. He was very well behaved and only used my lawn as a bathroom a couple times.

I got one picture of Shira waxing her car just to prove she wasn't on the sidelines watching but was hard at work.

--Ben

The Ice Cream Truck

For years we've had an ice cream truck come through our neighborhood and it was never a convenient time.

But not today! We were right outside, and we heard his familiar truck sounds.

I didn't even have to ask permission from mom.

I sent Shira to surprise me with some treat and she brought back my all time favorite: the choco-taco. Ummmm...yummy.

The driver was really nice too - Shira didn't have exact change so he said we could pay tomorrow when he was by again. Now that's customer service.

He's made a customer for life.

--Ben

JSON - A common sense exchange format

Introducing JSON

JSON is a format for exchanging data between applications. The format that is essentially the JavaScript notation used to represent objects and arrays.

So, the following is valid JSON code:

{
  start: 1008484,
  end: 299990,
  contents: ["First", "Second", "Third" ]
}

What I love about this format is that not only is it simple, but there's plenty of experience that shows that it works. And it's way more terse than using XML.

It's not as regular as sexprs - but then again, it doesn't need to be. It just needs to represent a handful of concepts (numbers, strings, arrays, objects, booleans and null) - so why go more generic than you need to be?

Gosh I love standards that are sane.

The above site provides all sorts of implementations of the JSON format. So, there's no excuse for not using the format today.

Saturday, June 10, 2006

Wiky: A Bidirectional Markup Converter

Wiky: A Bidirectional Markup Converter

This seems like a handy JavaScript module to know about. It provides you with the ability for converting between Wiki and HTML markup on the fly. It could be useful for any situation where you want folks to enter in somewhat rich content, without having to learn HTML (though, they do need to learn some dialect of Wiki speak.).

It's cool stuff.

Via: Bluish Coder

Friday, June 09, 2006

Garden by Teresa

Teresa turned our overgrown nightmare of a flower bed into and orderly place of beauty.

As a bonus, we decided to transplant two tiny trees from the front of the house to the back. This turned out to be more difficult than expected because the soil in back has the consistency of a slab of cement. It was more a process of crushing rock, than digging a hole.

But the job got done. And for the moment, the new trees look perfect.

Much thanks to Teresa for her work, and for Gareth who is going to make sure we are well fed after this adventure.

--Ben

Wendy's Fixes It Fries

Wendy's Fixes It Fries - AdPulp

Cool - Wendy's is changing the oil they use to make their french fries (or are they freedom fries?). They will now be just 0.5 grams of fat for a large order.

One of Shira's and my favorite bad-for-us treats just became a little less bad-for-us.

Update: Thanks to Gareth, my gormet guru, for pointing out that I was wrong in the above post. Wendies fries will have 0.5 grams of trans fat, not total fat.

Oh well, a guy can dream, can't he? Thanks for catching that Gareth.

Thursday, June 08, 2006

Practical Common Lisp - Google Video

Practical Common Lisp - Google Video

The above is a link to an excellent Lisp propaganda education video by Peter Seibel. Peter is the author of Practical Common Lisp and in this talk he discusses why Common Lisp is such a terrific language. He takes you through three language features which you don't find in Java and other mainstream languages.

One of the three topics covered was about how Common Lisp allows you to handle errors in a fairly non-conventional way. In Java, for example, when an error happens you throw an exception. This causes the signaling of an error, as well as the actual control flow, to be taken back up the stack.

Peter explains that in Common Lisp you can send send the signal of an error up the stack, yet have the control flow remain at the lower level in the running code. The code higher up in the stack can then decide the best way to resume the process and can effectively restart the process from the lower level. Obviously, my description here can't do the idea justice - so watch the video. It's a fairly novel concept, and one that once I heard had me wondering why I hadn't thought of it.

It's interesting that Peter chose to use a mythical log processor to discuss his error strategy with, as I've faced the exact problem he mentioned while helping to write a complex log parsing system (LogLoading - ahhh, the good old days). His strategy sounds like it would have been an excellent way to deal with, and recover from, errors with individual lines of text.

Me being a Scheme guy, think that this could all be implemented fairly easily using continuations. But in Scheme, continuations are almost always the answer.

Mini date night

Shira and I snuck away tonight to Cafe Asia for a quick date night (after playing tennis no less!).

It was the perfect evening to eat outside - the weather was just right. In a few more weeks I assume it'll be to swealtering to even consider dinning outside.

But I'll take it while I can get it.

--Ben

HOW TO - Garmin eTrex data cable

MAKE: Blog: HOW TO - Garmin eTrex data cable

Here's a clever hack (it involves a cut up credit card - how cool is that?) to create your own Garmin eTrex data cable. While these cables are basic, they aren't cheap.

It's actually a pretty neat example of creating a custom cable connector, something that I would have imagined would be difficult. Yet in this case, you just had to be clever.

Wednesday, June 07, 2006

Seth's Blog: What do I find?

Seth's Blog: What do I find?

As usual, Seth makes a short, simple and critical point:

When I type your brand or your name into youtube, what do I find? What about technorati? or flickr? You can fix all three of these things today.

Well, duh. Why didn't I think of that? There are indeed many respected communities that you can make yourself prominent in, even if you're not number one on the whole net.

Turns out, searching flickr for Ben Simon turns up lots of people, none of which are me.

Search for benandshira and you do get back photos. But who would ever search by that?

Cleaning up

To my knowledge, my father has never once cleaned his grill. Sure, he's scraped it a bit before starting to cook - but actually clean with soap and water? Don't think so.

That's clearly where the flavor comes from.

(Actually, my dad is an excellent barbeque'ist - so whatever he's doing, he should keep it up. And as a biologist, I trust his take on germs and cleanliness.)

I'm not as lucky in the grill department. I took mine out tonight and it looked far from ready to cook on. So, I broke the family tradition and actually used soap and a scrubbie to clean the grill. I know, I'm going soft.

The good news? The grill is now clean enough to eat off of!

--Ben

The missing link

How is it that a .03 cent rubber washer means the difference between a hose that leaks like a sieve and one that works perfectly?

Note to self: identify all such parts in life, and have spare ones lying around.

--Ben

Tuesday, June 06, 2006

Google Spreadsheets - Sneak Peek

Google Spreadsheets - Sneak Peek

Looks like Google has taken another step towards moving all your desktop applications to the web. First it was your mail client, then your word processor, a little bit later they added your calendar to the mix. Today they've hinted they'll be moving your spreadsheet software next.

Who knows when it will be live.

Monday, June 05, 2006

Fooling themselves

This stapler says that I'm supposed to read the instructions before operating.

Yeah, that'll happen.

My first rule of web usability would be to make my site as easy to use as an ordinary stapler. Sure, you can try asking people to read instructions, but chances are they are just going to try things out.

Incidentally, I couldn't get this stapler to actually bind three sheets of paper together. Rather than reading the instructions I went and found a better stapler.

The same could easily happen to your website.

--Ben

Everything Scheme: Mini Kanren and the Da Vinci Quest, part II

Everything Scheme: Mini Kanren and the Da Vinci Quest, part II

I took one look at the Da Vinci Quest puzzles and fled as quickly as I could. Jens Axel Søgaard saw it for what it really was -- an opportunity to problem solve in Scheme.

Check out the above link for a solution to one of the puzzles in Scheme. I don't think it wins any points for the fewest lines of code. But it does seem really declarative, which makes it really nice.

Ari and Vera's Wedding


The famous Hora
Originally uploaded by blumenth.
Click here for more photos.
We had an awesome time at the wedding and the new husband and wife team looked terrific! Mazel Tov.