Happy Year of the Golden Pig

February 25, 2007 at 8:04 pm · Filed under Personal, Funny

This would be the second New Year’s greeting that I’m seven days late for.

This Lunar New Year is special since it’s the Year of the Golden Pig, which occurs every 600 years. According to the placemat at the Chinese restaurant we had new years lunch at, the pig represents traits such as fortitude, loyalty, and honesty.

Singaporeans, and perhaps all Asians, have an important concept called saving face. Ingrained since my childhood, saving face is a way to resolve a situation in a way that minimizes or avoids embarrassment. When in doubt, the guiding principle on saving face is to never disrespect anyone or hurt someone’s dignity. Honesty, I think, conflicts with saving face.

Some recent and not so recent conversations on honesty:

From The Pie (Seinfeld season 5, episode 15):

Audrey: Ah! Poppie.
Poppie: Sweetheart, hello.
Audrey: Poppie, this is Jerry.
Poppie: Welcome (shakes Jerry’s hand)
Jerry: Hello Poppie.
Poppie: Don’t fill up on the bread. I’m making you a very special dinner. Very special. (he leaves)
Jerry: The pies. I’m going to the bathroom. You know. (he leaves)
(Jerry and Poppie in the bathroom. Jerry washes his hands while Poppie flushes and gets out of the stall)
Poppie: Ah, Jerry! Tonight you in for a real treat. I’m personally going to prepare the dinner for you and my Audrey.
(He zips up and leaves without washing his hands. Jerry notices it)
(back at the table with Audrey, Jerry can see Poppie in the kitchen with his hands in the dough, making dinner)
Audrey: Jerry are you OK?
Jerry: Huh?
Audrey: Is anything wrong?
Jerry: No, Nothing.
Audrey: You look like you’ve seen a ghost.
(Jerry can’t talk and he’s staring at Poppie’s hands. Poppie smiles and winks at him)

Later, while eating pizza and talking to P about the Seinfeld episode

M: You’re telling me if I caught the chef doing that, you wouldn’t want to know?
P: No, I wouldn’t. I just want to enjoy my pizza.

Years later, while talking about P’s recent break up.

M: I wish I had told you about her, but I just didn’t know if that was OK.
P: What do you mean?
M: Well, it’s like that pizza conversation. Even though I knew you two wouldn’t get along, I just thought you might not want to know about it.

The truth is harder to set free when you’ve been raised with a cultural predisposition to avoid it, especially if it’s embarrassing. It would be much easier if I could ask all my single friends if they would rather eat pizza or hear my honest thoughts.

Permalink Comments

Refactoring, a three step business plan

February 15, 2007 at 9:30 am · Filed under Programming

  1. Write test cases
  2. Profit. No, I mean refactor

Permalink Comments (1)

All your base class

February 7, 2007 at 5:00 pm · Filed under Java, Funny

spacer

Actually, all your “compiler.misc.base.membership‘’ class do, in fact, belong to Java.

Don’t worry. According to Peter, the error can’t occur and is left there for sentimental reasons.

Permalink Comments

Seth on Fixing Bugs

February 6, 2007 at 11:00 pm · Filed under Programming, Testing

I’m weird. When I read Seth’s recent post on apologizing to customers, I couldn’t help but observe a similar approach one takes when dealing with software bugs.

There are many incorrect ways to handle a software bug, but only a few correct ones. If you’re blessed with tact, technical know how, and a burning desire to right the wrong, then you probably already knew this.

On a scale of 1 to 10, where 10 is the best approach

  • “I didn’t do it.” (-1). Actually, you did. Last Friday at 1:42 PM. Honesty, and good source control, is the best policy.
  • “It’s not my fault.” (1): It’s not personal, it’s bug triage. Your team is trying to determine what to fix, and who should fix it. No one is trying to assign blame.
  • “I’m not done with it yet, don’t use it.” (1): Fair enough, but if you checked it in, you should at least write a unit test to go along with it, even if it explicitly fail()’s. This way, we know it’s not suppose to work and nobody is caught by surprise. Type II errors, or false negatives, are a huge liability for a development team because the tests are believed to be verifying the intended behavior of the software.
  • “It’s not my fault; the spec is wrong.” (2): Not a problem. Mention the behavior to a colleague or notify the team lead about the discrepancy. If two heads see a problem, then there’s probably a genuine problem. Don’t get too defensive about it and be careful not to start with “The spec is wrong…”
  • “It’s not my fault the spec is wrong.” (1): What did I just say about getting defensive?
  • “It’s not a bug, it’s a feature.” (3): Oh? Really?
  • “Yes, it is a bug.” (5): Well, all right then, these things happen. What are you going to do to fix it?
  • “Yes, it is a bug. Stop by in a few hours and I’ll either have a fix, or I’ll have an idea for a fix.” or “Yes, it’s a bug, but a fix is already in the works and should be in by tomorrow’s build.” (9): Brilliant and spot on. This is pretty much the response everyone wants to hear, but it doesn’t mention what actions you’ll take to prevent the bug, or similar bugs, from occurring in the future. The complete approach is:
  • “Yes, it’s a bug. I have a fix. In addition, I also wrote a unit test that makes sure that bug, and bugs similar in nature, will never occur again. This way, we can prevent a whole class of bugs from occurring with one fell swoop. This is a good thing because life is too short to only use an approach for testing that relies solely on people’s ability to execute a series of mouse clicks and keystrokes when the processing power that makes computers so useful can be leveraged to execute these tests, freeing testers from especially mundane or repetitive testing so that their brains can be used for higher order tests that computers can’t do yet.” OK, so in truth, you probably won’t say something like this, but that shouldn’t stop you from doing it.

Permalink Comments (4)

Go Deeper

February 1, 2007 at 8:30 am · Filed under General, Personal, NPR/KJZZ, Programming

Last year, when Warren Buffet announced a massive donation to the Bill and Melinda Gates Foundation, he left the foundation’s CEO Patty Stonesifer one piece of advice.

Go deeper

Two, more recent, encounters I’ve had about going deeper

How To Become a Better Programmer by Not Programming

Passion for coding is a wonderful thing. But it’s all too easy to mindlessly, reflexively entrench yourself deeper and deeper into a skill that you’ve already proven yourself more than capable at many times over. To truly become a better programmer, you have to to cultivate passion for everything else that goes on around the programming.

The more things you are interested in, the better your work will be.

Just one more thing?

Use your time, all your time, to sell just one thing

Permalink Comments

Lisp is a fun drive

January 30, 2007 at 8:30 am · Filed under Lisp, Programming

Two experiences with the Lisp programming language.

spacer

The Ducati of programming languages. An extension of mind and body.

spacer

Volkswagen Lisp. Infinite reconfigurability.

Beyond college, I haven’t had much experience with Lisp, but with my recently renewed passion in programming languages, perhaps it would be a good time to test drive Lisp again.

Permalink Comments

Marking all as read

January 29, 2007 at 7:00 am · Filed under General, Personal, Software, Google

Marking blogs as read
Happiness is mustering enough courage to say “F*ck it,” opening Google Reader and clicking “Mark all as read.” As odd as it sounds, it feels like a great burden has been lift off my shoulders. I have no idea why I have this obsessive need to stay up to date with the latest news on the tubes. In a way, it’s a bit like revolving your life around TV, which is quite ridiculous and thankfully is something I don’t do.

New goal: I’m going to use “Mark all as read” more often, even for my favorites.

Reading blogs as Marc
The blogs I enjoy reading are the ones that make me realize I still have so much to grow, at least professionally and technically, like in the area of building kick ass software. Realizing this, of course, immediately throws my personal ass kicking machine into overdrive and this usually means major nerding. I also enjoy reading anything that completely obliterates one of my preconceived opinions and allows me to look at the world (or a problem) with a completely new perspective. Contemplation and reflection is fun.

That being said, here are ten blogs that are currently in my “daily-reads” category.

  1. Artima Developer. Artima is a great all around community about building software. What I like about this community, is that they discuss a wide variety of programming topics. Since I recently got engaged to C++, I’ve found it’s the closest thing to Javalobby that the C++ community has.
  2. Data Mining. This is probably one of my new favorite blogs. I discovered it last year while I was taking a data mining course. Matthew does a terrific job at pointing out observations and trends using terminology that won’t give you an aneurysm. Make sure to check out the articles in the data mining category.
  3. How to Change the World. Guy Kawasaki: Macintosh evangelist, venture capitalist, author, and speaker. Also kicks more ass than Jackie Chan.
  4. Joel on Software. He writes software, he writes about writing software, and he writes about the business of writing software. How couldn’t I read his blog?
  5. Raganwald. Also a new addition to my top ten and also a blog about software. The first time I ran across Reg’s blog, it was regarding his favourite interview question which I still think about once in awhile.
  6. Seth Godin. Remember what I said earlier about learning to look at the world with a different perspective? This is just a swag, but I’d guess that 70% of Seth’s posts cause me to do that.
  7. Signal vs. Noise. I love the 37signals guys, and if you love the idea of software that is simple to use, you should too. If you read two things, make it Getting Real, their book on building software, and their manifesto. I don’t agree with everything they wrote in their book, but I certainly appreciate their pragmatic approach to building software. (Don’t write a spec… seriously?)
  8. Stevey’s Blog Rants. Just when I think I get programming, Steve comes along and turns my entire world upside down. Three things Steve made me do: learn Emacs, read Refactoring, and write more. I spent a month in Emacs writing C++ before reverting back to Eclipse. Two out of three isn’t too bad.
  9. The Old New Thing. Raymond Chen scares the sh*t out of me. Ever notice the side bar when you Google for him? Yea that’s right, Google/Jobs bought an AdWord with his name.
  10. The Dilbert Blog. I am shocked by everything Scott Adams writes, yet I am wildly excited that he chooses to share it with the world. It pays to have a good sense of humour.

Well that’s it. In a nutshell, seven blogs are about building better software, two are about changing the world, and one keeps me laughing while I do the other two.

Permalink Comments (2)

Allergic to bad blogs

January 25, 2007 at 10:00 pm · Filed under General, Personal, Google

Me: “I’ve been so busy,” I said to M, “I don’t even have time to read my blogs.”

M: “You should be able to catch up this weekend.”

Me: “I’ll probably just read the good ones and mark the rest as read”

M: “The good blogs?”

Me: “Yes,” I reply, delighted I get to explain my blog reading strategy, “I have a folder of good blogs that I read first. It’s a bit like going to a restaurant and ordering the good wines first and the not-so-good wines later. As the night progresses, you drink more wine and, eventually, your palette can’t tell the difference between good or bad wine.”

M: “But you break out in hives when you drink bad wine.”

Me: …


No, I don’t break out in hives when I read bad blogs, but I probably should. I blame Google Reader for my allowing my RSS addiction to flourish. With Bloglines, I found that I could subscribe to about 200 blogs before category management became a nightmare, so I had to be picky about what I subscribed to. With Google Reader–the “New Hotness” edition–I am able to break that barrier since I can manage my categories much more intuitively with the use of labels (aka tags).

Trust me, it’s a bad thing spacer

It helps to read Digg, Reddit, or dzone.com as they tend to aggregate the popular links, which the majority of people tend to regurgitate blog about.

Updated 1/28/2007: I picked up this tidbit from a comment by Robert Scoble over at CrunchNotes:

Subscriptions Read Starred Shared
Scoblelizer 504 26,308 Zilch 1,473
Chung 266 1,213 5 Nada

That’s RSS-tastic!

Permalink Comments

‘Cause breaking up is hard to do

January 19, 2007 at 7:00 am · Filed under General, Business

How hard is it to cancel a service?

Quite hard, according to this PCWorld article, “Just Cancel the @#%$* Account!”

But it really shouldn’t be. If I were the CEO of an awesome company, of course I would be upset that users are leaving my service.. my super awesome Web 2.0 service.. after all, these users would likely include my friends and family. And I hate disappointing friends and family.

So instead of focusing my energy on cheap tactics designed to complicate life for loved ones, I would learn why they want to leave. It might suck in the short run, but if understanding why 10 users are leaving prevents 100 more from doing so, isn’t that a better choice in the long run?

There’s no such thing as a free lunch. As a consumer, I believe this. I dread providing my personal identity elements to companies because I know they’ll just spam me, trade it away, or lose it on a laptop. Do you really need all my information to provide a rock solid service?

Two consumer empowering websites

  • The Consumerist - Been burned by a company? BBB not doing it for you? Then bite back at The Consumerist.
  • GetHuman - Calling a company’s 1-800 number? Tired of navigating the menu system? Not getting the high quality phone support you’re use to? Then use GetHuman to find the key stroke combination separating you from a real person.

Permalink Comments

My Top 3 posts for 2006

January 7, 2007 at 4:27 pm · Filed under General

Top three blog posts of 2006.

  1. Performing a JSF GET. I’m surprised that the JSF spec still doesn’t make this easier to do.
  2. Automating SSH logins with PuTTY
  3. My (Fake) Demo 2006 Review. Day one and two. A personal favorite.
    Step 1. Write a popular post reviewing Demo 2006 without even attending the conference.
    Step 2. …
    Step 3. Free guest pass for Demo 2007?

Permalink Comments

« Previous entries ·
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.