04.23.07

Erlang - Good fun (groan)

Posted in Erlang at 9:01 pm by BestFriendChris

So, the other day I was shopping around for a new language. Specifically, I was looking for a functional language that wouldn’t cause my brain to bleed (and not Scheme. Love it dearly, but I needed something new). Enter Erlang. I found out about this little guy from a new beta book from the prag guys called Programming Erlang, Software for a Concurrent World (totally recommend it).

Bullets:

  • Functional
    No state == Hooray!

  • Supports Hot Swapping of code
    I know I wouldn’t even think of swapping any other way than hot

  • Designed to support distributed, fault-tolerant, soft-real-time, non-stop applications
    I actually know what that means! To be fair, I swiped that bullet off the wikipedia page

  • Super Sweet Thread Communication Mechanism(tm)
    Threads are actually an extremely common part of Erlang development. In most languages, threads hurt kittens. In Erlang, they only hurt nasty dogs who probably deserved it.

I’d recommend checking out the prag book linked above and see for your self. In a bit I’m going to post about ErUnit, the xUnit testing framework I wrote for Erlang. In the mean time, here’s my initial stab at a TextMate Erlang bundle.

04.19.07

Expertitis

Posted in Software Development, Buddha at 3:40 pm by BestFriendChris

ex·pert (ĕk’spûrt’)

n.
1. A person with a high degree of skill in or knowledge of a certain subject.

I’ve been thinking a lot about experts lately. This came about, as most things do, from several areas in my life.

First of all, I recently read a book called Freakonomics. While I did enjoy the book (heartily recommend it in fact), I was really surprised by the disdain the authors had for “experts”. The bulk of the issues they had seemed to be focused on two things. Not only are some of these experts making unverifiable (or sometimes flat out wrong) statements about how things are, but everyday people are taking these statements as reality. For example: A parent hears on CNN (from an expert, of course) that a teenager killed his classmates because of a game. So, of course they do the sensible thing and not allow their kids to play violent games. While whether this is a good decision is debatable, but my point here is they are basing a decision of how to raise their child on the statements of a person that CNN has labeled an “Expert”. Statements that seem to make “common sense” are rarely even questioned.

The other area this line of thought came from was actually from the other end of the spectrum. At my job, we are actually hired by clients to be experts. On my first client, since I had the most experience with fit and subversion, I was labeled the “fit expert” and the “svn expert”. One thing to keep in mind is the extent of my fit experience was a two hour class a month before.

Now, I’ve never considered myself as an expert in anything. I was good, but expert? Anyway… One of the things I learned from this experience is that when you are the expert, people came to you when they have problems. Now, starting out I really only knew a little more than everybody else. As the project moved on with everybody asking me questions that I dutifully looked up, I really did become an expert on fit. An interesting thing started to happen, though. By being steeped in the domain, I started to be able to make educated guesses about what the problem they were experiencing without know for sure. Most of the time I was either right, or right enough that it got them to a solution.

I think that this is the point where problems can start to happen.

ex·pert·i·tis (ĕk’spûrt’-ī’tĭs)

n.
1. Inflammation of an individual’s perceived value.

When you, as some sort of expert, get to the level where you understand your domain fundamentally, it becomes really easy to believe that you are the domain. What I mean by this is you feel that you are effectively infallible when it comes to your expertise. Effectively infallible because, while you know that you very well could be wrong, you know you are able to recover from any mistakes you make. It’s a powerful thing having the kind of confidence like that.

Unfortunately, this kind of confidence doesn’t translate well. Laypeople (by this I mean non-experts) rely on experts to help them get thru or understand situations they are not able to handle themselves. What they want is a 100% correct, actionable answer, right now. The reality is that usually they will only 2 of the 31. Either it is correct right now, but so general as to be not useful, or it is correct and actionable… after 5 years of research. The most common case, however, is an actionable answer right now that is more or less correct… -ish. Some experts will never give an answer like that. They, of course, don’t end up on CNN. I believe that most of those who do aren’t bad people, however. They aren’t just trying to get famous. They just don’t see anything wrong with giving an answer that they personally think has a 70% chance of being correct. The problem is laypeople don’t have the experience to be able to recover from those mistakes, so they either go to another expert, or swear off experts entirely (not easy to do nowadays…).

Another example of this situation is when you take a car in to the shop. The mechanic is an expert in automobiles. So, when you hear a clicking sound when you are driving, he can make some informed opinions about what the issue is. He might take those opinions and decide on a course of action. Say, replace a belt. He doesn’t think about warning you that he’s only 70% sure because most of the time, in that situation, he is right. So, if you find out later that you still have the problem, you get mad at him and take it to a competitor.

ex·per·tec·to·my (ĕk’spûr-t’ĕk’tə-mē)

n.
1. Surgical removal of… expert… something…

I think the important thing to take away from this is that Experts are people too (some of them at least). Rely on them when you need to, but keep in mind that they could be wrong.

Expert /= Infallible.

1. This is what I believe differentiates experts from other people. Experts usually get 2/3, non-experts get 1/3. Nobody get 3/3 consistently.

04.11.07

New Twitter badge

Posted in General, Software Development at 3:53 pm by BestFriendChris

So, I just recently (about 3 hours ago) discovered the wonderful site Twitter.com. The gist of it is it allows you an easy (insanely so) way of letting people know what you’re doing. It’s pretty addictive. There are three things I especially like about this service.

  1. You have only 140 characters to type what you’re doing. This way not only do I not feel obligated to go on and on about what I’m doing, I’m actively forbidden to. Nice.
  2. You can send a text message from your phone to update what you’re doing. Perfect for when you’re out and about.
  3. You can set it up to remind you if you haven’t updated it in more than 24 hours (by text, natch). Should keep the updates from getting stale.

I searched around and found this post about how to get a list of the last 10 tweets on your website. Since it didn’t quite work for me, and I’m kinda anal when it comes to code, I fixed it up a bit. Essentially I fixed the bug in it that would cause it to fail if you have less than 10 tweets in your account and I removed the duplication of the count of tweets the javascript returns. Also, I added in a few extra “span”s for my css to make it all pretty. :-)

You can find the code after the jump…

Read the rest of this entry »

09.10.06

friend showering pics

Posted in General at 12:19 am by BestFriendChris

So, every once in a while I get curious and take a gander at my web stats. This gives me such useful information such as:

  • Browser variety
    • 1/3 Firefox (read: me)
    • 1/3 IE
    • 1/3 Misc (read: search engine spiders)
  • Operating System variety
    • 1/3 Windows
    • 1/3 “Unknown” (Not including correctly identified Mac/Linux/Unix/Symbian)
    • 1/3 “Known robots” (Such as Iron Man and Bender from Futurama I’m guessing)
    • 2/100 Misc (See “Unknown” above)
  • Status Code (It turns out that only 75% of hits on my site are “OK”)

There are two other reports (my favorites) that I really want to focus on now. First of all, we have the “Referring Site Report”. This is a list of where people were at when they click on the link to my website. The usual suspects are there; Google, MSN, Blogger, Technorati, etc. Every once in a while you’ll get a good one, but it’s rare.

The jewel, and actually what this post is supposed to be about (no, seriously), is the “Search Query Report”. This marvelous report gives me a breakdown of what people are searching for when they end up finding my website. By far the most searches are for ThoughtWorks. More specifically, they are for the interview practices at ThoughtWorks. That’s not all that interesting to me. The fun, as usual, lies in the outliers (Lies in the outliers? Hrm…)

friend showering pics: Not only is it shocking that there are people on the interweb searching for pics of a friend showering, but either they were using a search engine so awful that it skipped over all of the porn and jumped straight to my site, or, even worse, they had looked through all of it already and finally reached me. I’m really not sure what post they ended up on, but I really don’t want there to be a single post known as the “Red Light District” of bestfriendchris.com

fedex number mysore: While I’d like to think I provide a little bit of information on this site, I do think it is a little unreasonable to think that I would have your fedex number posted. And seriously, why are you shipping Mysore anyway? It seemed to be just fine where it is.

germany flight itinerary: If I’m going to be providing the fedex number for shipping ancient cities, I may as well provide the flight itineraries for countries as well. Does this mean that you can ship a city, but for a country you have to by an extra seat on the plane to bring it with you? Interesting…

hindi phrases cricket: Unfortunately, I barely know any cricket phrases in English, let alone Hindi…

jennifer love hewitt true.com: This is a good one. My guess is the searcher (search-ee?) found my guilty pleasures post (see below), which, sad to say, does not give you any information on how to date JLH.

name some guilty pleasures: Um… Ok. Hopefully, they weren’t looking for seedier (more seedy?) items…

what are the interview exercises given by thoughtworks: At some point, it’s just cheating…

faraday vs everlife: Obviously some brilliantly observant individual has also noticed this insane scheme to take over the world. (Step 1: Produce a product and market it with two different names, with the same ad campaign. Step 2: ??? Step 3: Take over the world.)

typhoid going to work: Yeah, you probably shouldn’t go to work if you have typhoid fever… But, I’m not a doctor. I just play one on TV.

how to get your best friend back for children: So, I looked. I really, really looked. I simply can not find the post I wrote on reconciling problems with your best friend in order to impregnate them… If I could find it, trust me. I’d link to it. :-)

my lunch break: So, was this person looking for information on their lunch break, or mine? I hope the person searching for this found something to eat and wasn’t waiting on me to write about it…

So, that’s it for now. Honestly, the friend showering pics search made me laugh so hard, I had to go pour myself a glass of milk, just so I could laugh it out my nose. Hilarious.

08.10.06

“When we crashed, my entire life flashed before my eyes. It didn’t take too long.”

Posted in General at 12:21 am by BestFriendChris

- Nick (Honey, I Shrunk the Kids)

So, this last weekend I decided to rent a car for my little trip up to Dows Corn Days. Usually I just borrow whatever car I have available, or get one of my brothers to pick me up, but I figured that it would be more fun this way. Fun was quite an understatement. When I got to the rental agency, I got upgraded to a mid-size, and was handed the keys to a 2006 Pontiac G6. Let me just say it now. This car is fun to drive. I made my way up to Dows, had a good time visiting with family, and then, on Saturday, left to head back.

On my way back home to Cedar Rapids, I swung through Des Moines, bought some new headphones, and had supper with some friends. At around 9:30, just East of Altoona, at about, I don’t know, here, I decided to change the station on the radio. I glanced down just for a second and, it turns out, I drifted slightly to the left. Unfortunately for all involved, I was in the left lane at when this happened, and headed into the left shoulder. Another vehicle (a ‘89 Ford) had pulled over on the left due to a flat tire (Or so I heard from the police. I’m not completely sure, but close enough for an internet story).

I clipped the back right tire with my car, and proceded to spin out. I spun around for a bit, then ended up in the grassy area between the two lanes. At this point, I found out later, my front right tire caught in the grass, which caused the entire car to roll over. After one complete revolution I was back on my wheels again and now sliding backwards. Finally I came to a stop. I started in the left lane on the East bound side, and ended up in the right lane on the West Bound side facing West.

In the end, nobody was hurt (surprisingly). The car I rented protected me, and the people who were going to change the tire were not in the car at the time. When I went the next day to pick up my things from the car (none of which, by the way, was damaged in any way. Including the laptop that was in the trunk), first the guy at the tow truck place says that they were surprised to see me up walking around. They were sure that I had gone to the hospital and was possibly not even alive. As he’s taking me out to the car, he says, “Have you ever seen a 3 wheeled G6? You’re about to.”

Now I have.

03.30.06

About to leave India…

Posted in General at 4:33 am by BestFriendChris

:-(

So, it is my last day here in Bangalore for TWU. So sad… I’ve decided to write all the things about TWU I’ll miss. Here goes:

  1. Auto-Rickshaw rides. Thrilling, life threatening rides for dirt cheap. Awesome.
  2. Queens. My favorite restaurant in all of Bangalore. The Chicken Tikka Masala is to die for. (hold the bird flu)
  3. The other TWU peeps. I’ve made so many great friends (and a few ones that are just all right) since I’ve been here. It’s crazy to think that I’ve only met these people less than 2 months ago.
  4. Muak!
  5. Hot Pockets!
  6. Go Team One!
  7. The door man at the Royal Orchid. If this guy wasn’t standing right by the door, and you tried to open it yourself, he would RUN to open the door for you. Fantastic.
  8. Hacky sack at lunch.
  9. Head Wobble. Instead of nodding, Indians wobble their head back and forth. Genius.
  10. The guy who cleans my apartment. Cleans is kind of a strong word. What I mean is, he makes my bed, every once in a while he washes my towel, and he reads my newspaper and watches my TV. Oh, and once he was making my bed when I walked out of my bathroom in a towel after showering. It was, well, odd.
  11. Freaking Learning Log.
  12. Little Italy. Mozzerella and Capsicum pizza. For when you’re just not feeling Indian food, it always hits the spot.
  13. Crossing Airport Road. Especially with Clint about to wet himself with fear. Hilarious.

As I think of more, I’ll add them. For now, “Fare thee well, TWU, we hardly new ye.”

03.04.06

My Mom, the author

Posted in General at 3:23 am by BestFriendChris

I know, I know… Two posts in one day! Wierd…

This is big news, however. My mom is now a published author. As in, you can find her book, not only on her publisher’s website, but also at Amazon, Barnes & Noble, and Books-A-Million. There aren’t words to describe how surreal it is to be related to somebody who has a book on Amazon.

The synopsis, as found on her publishers website, is:

Once More from the Top
DeeAnn Schnack
Once More from the Top is a collection of poems and personal reflections about one woman’s spiritual journey to find herself. Her prose paints a vivid picture of her life, which includes reflections of her childhood, the challenges of her alcoholic and abusive marriages, and the horror of being widowed after five days of marriage.

Only when she found herself jobless and living in a shelter for abused women was she able to see the blessing she was being given. She understood she had always been the person she was meant to be, and that her forgiving Father never intended life to be lived perfectly…He’d given her the chance to learn a lesson…she could just do it Once More from the Top.

I would totally recommend picking it up. :-)

Transformation

Posted in Software Development at 2:53 am by BestFriendChris

I just read an excellent article on the O’Reilly Ruby Blog, which talks about Martin Fowler’s book, Refactoring. While the article does speak on the issue of not having refactoring tools available for Ruby at this time, it really is about a deeper and more important message relating to refactoring in general. In short, while refactoring tools do help us fix the issues we create, many refactorings simply cannot be taken care of in an automated way. No matter what language you use, it’s more important to have an idea of why a class needs to be refactored and what to do about it than to have a keyboard command to automatically change a method name every place it’s used. I really recommend you read the article, though.

02.26.06

Quick update

Posted in General at 11:41 am by BestFriendChris

It is now 11pm Sunday night and I just realized that I haven’t really written anything in a while. That being said, I’m not really going to write anything now, either. :-)

I would, however, like to direct your attention to the small map on the right hand side of this page. If you click on it, you can see a map of the world with red dots showing from where people have visited my site. Aside from the excellent showing from Iowa and Bangalore, we’re also getting a respectable number of hits from Istanbul (Quick shout out to Ozge’s family).

So, in the spirit of global harmony (not to mention my own curiosity), I’d like for everybody and anybody who is checking this website for updates on us TWU-ers to add a comment with:

  1. Name
  2. Who you know here at TWU
  3. Where you’re from

Hopefully this won’t be lame. At the very least, it might encourage me to update my blog more often, and, possibly, get my freaking pictures from our trip to Mysore last weekend up.

02.19.06

Cricket

Posted in Thoughtworks at 7:27 am by BestFriendChris

Today I saw my very first cricket match, and so I’ve decided to inform all of my friends and family from the states what the rules are:

  1. Start with baseball
  2. Puff the Diamond out into a circle
  3. Move the bases in the center of the circle
  4. Remove the outfield wall
  5. Remove the 1st and 3rd bases
  6. Move the pitcher behind 2nd base
  7. Put a runner on 2nd base, next to the pitcher
  8. Take the remaining bases and replace them with sticks in the ground
  9. Replace the baseball with a ball that will hurt more when you catch it
  10. Remove any sort of gloves that will make catching the ball not hurt
  11. Add as many outfielders as you can
  12. Remove the concepts foul ball, strike, infield-fly rule, 3 outs to an inning
  13. Force the pitcher to take a running start when pitching
  14. If the pitcher hits the stick, the batter is out
  15. If the batter hits the ball, he can run if he wants to
  16. If the batter runs, the person on 2nd base is forced to run as well
  17. When the person on 2nd base gets home, he can run back to 2nd base again to get another point
  18. The two runners can do this as many times as possible
  19. If a runner is not on the base, they are out if the ball knocks over the stick representing the base they were last on
  20. Tagging a runner with the ball does nothing
  21. If the batter knocks the ball out of the park, he only scores 6 runs
  22. If the ball bounces out of the park, he scores 4 runs
  23. Each inning is a certain number of pitches (12 in our case, 50 in a normal game)
  24. If a pitcher throws a ball, 1 point is given, and the pitch doesn’t count (for purposes of ending the inning)

For the most part, much like in baseball, the best part of cricket is watching a game and drinking with your friends.

« Previous entries · Next entries »