Nicholas Zakas' Personal Blog A deviation from my usual tech writing

31Jan/08Off

Reactions to my blog

There are some days I believe that no one actually visits my blog. I'm not actively tracking this information, nor do I actually care. I've also said that this blog is just about me, my interests, my life. It's my way of expressing what I feel like expressing at any given time...an outlet for my particular form of psychosis. Some people hate it, others love it.

My cubemate Steve was nice enough to pass this along from one of his friends, Luke C. from Livermore, who wrote (to Steve):

Yeah, I don't know why I subscribe to Nick's blog... it's a weird Patriots/Landlord/JavaScript info hybrid. I guess if I ever join the Frontrunner-Tenant Hating-Prgrammer's [sic] Guild, it'll all make more sense to me. (Please read that out loud from your cube :) ).

Luke, you'll be happy to know that Steve did, in fact, read that out loud in our cube. I also think it's a fairly accurate description, though I detect some slight disdain. Where's the love, Luke? Where's the love?

I always figured some people might be disappointed that I don't write about JavaScript all the time, but every once in a while I come across people who actually enjoy my momentary lapses into Patriot-loving, social experimentation, and philosophy. Fellow Yahoo Julien actually told me the other day that he really enjoys all the other stuff as well as the technical posts (sorry Julien, didn't mean to out you as a supporter). The same sentiment is echoed on this random post I found earlier today. I'm glad to hear this sort of feedback to balance out the other.

I'm also shocked from time to time when my posts are quoted or picked up elsewhere. Apparently, my post about IE8 made it onto PPK's Elsewhere page. Does my opinion really matter enough to be mentioned there?

As I've said, this is just my little corner of the Internet. It's my sandbox to play in and I'm happy when people want to come and build sandcastles with me. Before I take that metaphor too far, I'm going to call this post done.

Tagged as: Comments Off
30Jan/08Off

Does code write itself?

If you talk to authors, fiction writers specifically, you'll hear a lot of them say that they don't actually write the book, the book writes through them. They claim the characters come to them and implore them to tell their story. In effect, the story writes itself and the author is merely an instrument that the story uses to express itself.

I haven't had the exact same experience...I don't believe that the DOM is writing through me...though I have had moments when an entire chapter just flows out effortlessly. In those cases, I end up typing for five or six hours straight and then sit back and say, Keanu Reeves-style, "whoa."

I was sitting in a meeting today where someone was walking me through code and uttered the phrase, "I'm still get used to the API." Immediately I thought to myself, how can you be getting used to it when you're writing it? Then I thought about fiction authors and my own experience and it occurred to me that maybe code actually writes itself as well.

If you consider computer programming to be a science, then this idea seems ludicrous, you always use the most optimal algorithm to get the solution and that's it. But if you consider programming to be an art, this opens up larger possibilities. Artists have long claimed that they are an instrument to the art that they produce, that they're helping to tell the art's story. Michelangelo once remarked about his carvings:

In every block of marble I see a statue as plain as though it stood before me, shaped and perfect in attitude and action. I have only to hew away the rough walls that imprison the lovely apparition to reveal it to the other eyes as mine see it.

As software engineers, are we really devising solutions to problems ourselves or are we simply trying to express a solution that is already there? Eden Phillpots once said, "The universe is full of magical things patiently waiting for our wits to grow sharper." Michelangelo clearly knew this, so do many artists...perhaps software engineers are next.

28Jan/08Off

Noticing the differences

When I was in college, I was the president of a student organization. Having pulled off what people came to call, "the only successful student coup" in the college's history, I had a big job ahead of me. People didn't come to our meetings, they didn't even know we existed. The previous administration had put up signs all the time and yet no one came. What is it that people weren't interested? I didn't believe so.

My initial suspicion was that people just weren't seeing the signs. The signs were up, yes, but I really didn't think people saw them. Why? For one, the text was about 14-point, a bit too small to catch a passer-by's notice. Increasing the font size would help, but I saw another problem. Basically, the signs would stay up until they were replaced by signs for the next meeting...same sign, different date, same place. The problem became clear: the signs didn't create enough difference in the environment to be noticed. They were visual noise, always in the same place, easily tuned out as part of the norm.

What I ended up doing was this: I tore down all of the original signs, waited week, then put up new signs in different places (with larger fonts, of course). After the meeting occurred, I'd tear down the old signs and not put up any new ones until a week before the next meeting. Rinse and repeat. What happened? Meeting attendance went up. The signs became something new in the environment, they stuck out because they weren't there before, and it's differences that people notice, not similarities.

This lesson can be applied to almost anything: people always notice what's different before they notice what's the same. Every once in a while I'll wear a tie to work, just for fun. People don't know how to react...why is he wearing a tie? Is it because he's interviewing somewhere? Is he meeting with someone important? The actual difference is small, I'm usually wearing pretty much what I always wear, just with the addition of this small sliver of fabric around my neck. But people notice it and react to it.

Taking this knowledge into the business world, you can easily understand why people hate upgrading. Upgrades are usually related to the versions they replace, just with new features (sometimes billed as "easier") and maybe a new interface. Perhaps most of the controls are in the same place, yet people notice the differences first. My old one did this, I used to just do that. It's a constant challenge to create an upgrade experience where the differences are subtle enough to be seen as improvements rather than disruptions. Change is scary, people don't like it, which is why my parents still have analog cable with an old box that is nearly falling apart. Upgrade to digital? What I have right now works fine, and something new might not do what I want. It's a hard argument to win.

People notice differences before they notice similarities, it's just that simple. The differences may be perceived as good or bad depending on the current state of the environment. If the current state is undesirable, then differences are seen as a good thing; this is the tact taken by salespeople when trying to convince you to replace a product with theirs. If the current state is desirable, however, then the differences are seen as a bad thing; this is why people stay in lousy relationships. When you know you're introducing differences, you need to understand the effect you will cause as well. Whether that be on a college campus, in the business world, or in your personal relationships, managing how differences are perceived is an important skill to have.

24Jan/08Off

The decision making process

There are two basic ways that we, as human beings, make decisions: logic and emotion. It's been said that men are more logical in their decision making and women are more emotional, leading to the traditional idea of why men and women just don't understand each other. This difference is hysterically illustrated in a scene from the movie White Men Can't Jump in which Billy (Woody Harrelson) and Gloria (Rosie Perez) are lying in bed. Gloria mentions that she's thirsty and so Billy gets up and returns with a glass of water. Her response:

...if I'm thirsty, I don't want a glass of water. I want you to sympathize. I want you to say, "Gloria, I too know what it feels like to be thirsty; I too have had a dry mouth." I want you to connect with me through sharing and understanding the concept of dry mouthedness.

Despite the silliness, this does illustrate the difference between logical and emotional decisions. Billy saw a problem and reasoned out a solution; Gloria didn't want her problem solved, she wanted someone to understand. In real life, both men and women make decisions based on logic and emotion, though to differing extents. Still, the relationship between these two modes of decision making remains decidedly one-sided.

Between logic and emotion, emotion wins very time. I'm not telling you anything new, this is the precise reason that salespeople act the way they do. They know that if they can create an emotional reaction from you, they have a better chance of making the sale. Why? Because emotion trumps logic. In fact, when you make a decision based on emotion you'll often find yourself rationalizing that decision later...you actually twist your own logic so that it goes along with the emotional decision.

You can never reason with emotion, no matter how hard you try. You can logically know something is a bad decision and yet still make it because your emotions are in control. We typically say that women fall victim to this when men do the exact same thing, just in different circumstances. He really didn't buy that sports car that gets 15 miles per gallon because it was a logical way to spend his money.

So your emotions can affect your logic and logic has no ability to retaliate. What can you do? The thing I've tried to do is determine when each is appropriate to use, which can be summed up in a simple phrase: in matters of the heart, listen to your heart; in matters of the mind, listen to the mind. This basically means that if you're trying to figure out calculus, you use your logic and problem-solving abilities (no amount of feeling is going to help you) and if you are attracted to someone, trust your heart and go for it (because no amount of self-talk is going to convince yourself that you're not attracted to him/her). I actually think the latter case is more difficult since we tend to run through romantic scenarios in our minds frequently, coming up with reasons why it won't work...the emotions scare us, so we try to logic them away. You could get hurt! Run! Yet it doesn't really make you feel better to stay away, in fact, it makes you feel worse.

The decision-making process is incredibly complex. The most important thing to remember is that emotions always win, so if you can keep them out of decisions that should be logic-based, you'll be better for it. This is precisely the "killer instinct" that is often cited for athletes, those who can shake off a bad mistake and still perform at a high level. On the other hand, don't try to logic away your emotions when your emotions should be making the decision...it doesn't work and it's not worth it.

21Jan/08Off

How’d I get here?

I've overheard girls telling each other that you have to kiss a lot of frogs before you find your prince. Grossness of the visual and silly fairy tale references aside, this often tends to be the truth in a great many things in life. This past weekend I was pondering my journey to Yahoo!, a journey that started in 2000 when I graduated from college and went to work for a small company called Radnet.

I had interned at Radnet the summer before I graduated, when it was still a very small company of around 50 people. I worked in IT that summer and learned a very important lesson: I did not want to work in IT for a living. I really liked the people there and they wanted me back when I graduated. I was just starting to get interested in web development, and I told them I'd come back but only if I could work on web stuff instead of IT. They said they'd try to hold a position open for me. As luck would have it, their webmaster (remember those?) was leaving a few months before I graduated, so they held that position for me until I got my degree.

As the industry found out, webmaster was not really a full-time job. My boss also happened to be the head of user interface design for the company, so on a day when I was particularly bored I asked him for something to do. He had been trying to create a hierarchical tree using HTML and JavaScript, and failing miserably. I really hadn't messed around with JavaScript all that much, so I started reading, bought several books, and resolved to figure it out. That's when my interest in JavaScript began. Fighting with Netscape 4 and IE 4, I eventually got the hang of things. I can't say the same for the company. As with many startups at the time, they had an idea but no idea how to sell it. We came in one Tuesday morning and the CEO called an all-hands meeting for 10am. At the meeting he announced that today was the last day of Radnet's existence, so we should clear out our desks. My disdain for all-hands meetings began at that point.

So there I was, 8 months out of college and unemployed...not exactly the start to my career that I had pictured. I really didn't know what I was going to do but I knew that I needed to keep practicing so that I didn't forget all of the cool stuff I had learned to do. This was when I started writing. I gave myself projects to investigate JavaScript, and wrote down every step of the process. I felt like I was figuring out a lot of cool stuff and that I might forget if I didn't write it all down in vivid detail. I setup this very web site you're reading now during that time and started posting my writings. One of my former co-workers read some of it and suggested I submit them to magazines for publication. I couldn't really figure out what magazines to submit to, so instead I found some web sites. This resulted in my first article being published.

A little over a month after Radnet closed, I got a call from my former boss saying that he was going to a company called MatrixOne and wanted to bring me on board. I and a few others from Radnet joined him there and spent the next four years in one of the most miserable jobs I could ever imagine. The dread I felt going into that job every day was ridiculous...it literally would take me two hours every morning to talk myself up to driving the 1.5 hours (each way).

Things weren't going well for MatrixOne financially, the stock had dropped from around $27 a share when I got there to about $4 when I left. I survived four rounds of layoffs and every quarter we all were looking over our shoulders. On top of that, a hiring and salary freeze meant that nothing was going to change anytime soon. I never knew what I should be working on, priorities shifted way too quickly for me to keep up. Sometimes I'd spend 3-4 months working on something only to throw it out because someone decided it wasn't important anymore. It's difficult running a race that moves the finish line whenever you get close. I knew I had to do something to get out...this is when I started writing my first book.

This was still during the tech downturn so there weren't a lot of jobs to find. Really, I should have just been grateful for having a job when so many people were out of work. Realistically, though, I secretly wished I would get laid off so I'd be put out of my misery. When that didn't happen, I figured the only way I could get a job would be to make myself stand out in some way. I had written a bunch of articles by that time and I had read about someone who had grouped her articles together and published a book. A lightbulb went off in my head: I can do that! That was when Professional JavaScript was born in my head. I started writing furiously, every night, every weekend, convinced that this would be my ticket away from my daily misery.

As I had hoped, having a book on my resume got me in the door at VistaPrint. VistaPrint's atmosphere was great: smart people, serious deadlines, and tons of people younger than 30. I made some really good friends there, people I'll probably be friends with for the rest of my life. I got to flex some backend muscles, working on .NET and SQL Server. Just getting away from MatrixOne was great, but this place was unreal. It was pre-IPO and very well organized. The entire place ran like a well-oiled machine, systems and processes abound. It was comforting to have that sort of structure...for a while.

I really enjoyed working with the people at VistaPrint, the problem was that I was getting bored. The work that was interesting initially became repetitive and mundane. I started to feel like I wasn't being challenged and there weren't any new problems to solve. As luck would have it, it was around that time that I first got contacted by Google about working for them. Shortly thereafter, I had some extended conversations with Eric Miraglia and Thomas Sha (both of YUI fame) about working for Yahoo!. Eric first contacted me to let me know that they were using my book to train new Yahoos and when he heard I was interviewing with Google, wanted to make it known that I'd be welcome at Yahoo! as well. And as things played out, I left VistaPrint and headed west to work for Yahoo!.

It really has been a long road to get here, and it certainly hasn't been all fun and games. Though clearly, without a few lousy experiences along the way, I never would have ended up at Yahoo!, which I still consider to be the best job I've ever had. My criteria are three-fold: 1) interesting work, 2) great, smart co-workers, and 3) a product I believe in. This is the first time in my career that I have all three, and I'm very grateful for that.

Tagged as: 1 Comment
18Jan/08Off

Playoff predictions: Conference championships

It's Friday, so that means it's time for my sometimes-accurate picks for this weekend's NFL games. Last week I went 3-for-4, including my upset pick of the Giants over the Cowboys. Just to review, I picked the Packers by 10 (they won by 22), Patriots by 8 (they won by 11), Colts by 10 (they lost by 4), and Giants by 3 (they won by 4). Not too bad, especially since I don't think anyone was picking San Diego to win. I'm always happy to see the Colts lose, though it's somewhat sweeter when the Patriots are the ones doing it. Plus, the Chargers talk so much that they infuriate me. Seeing Philip Rivers taunting fans on the sideline just reaffirmed my beliefs about him.

Speaking of classlessness, was it really necessary for the Indy fans to boo the 14-year-old girl who was the New England regional winner of the punt, pass, and kick competition just because she was wearing a Patriots jersey? Folks, this isn't Rodney Harrison or Randy Moss or Tom Brady, this is a 14-year-old girl who won a competition and was flown there to honor her achievements. I know you all hate the Patriots, pretty much everyone outside of New England does, but was that really necessary? Bob Kraft, owner of the Patriots, is going to honor the girl this week by having her on the field for the coin toss in front of fans that will cheer her. Anyways, enough of that, on to the picks:

  • Chargers at Patriots - I'm a little miffed at the Chargers for costing the Patriots a chance at revenge for last year. Oh well, I suppose it will be fine to send the Chargers home a second year in a row. The Chargers have talent, for sure...just most of it is on defense. Their offense has been pretty lousy recently and most of their weapons are injured (Rivers, LT, and Gates). I don't think they have enough firepower to beat the Patriots at home (something no team has done to Brady in the playoffs). Patriots by 17.
  • Giants at Packers - The Giants have seemed like a different team since facing the Patriots in week 17. I predicted their past two playoff wins but I think this is the end of the road for them. The Packers are just playing at such a high level and have all facets of their offense going strong, I don't see the Giants being able to match it. Packers by 14.

I'm feeling pretty confident about this weekend and my picks. I hope everyone will be enjoying the games with people they can either celebrate or commiserate with!

17Jan/08Off

The power of “but”

I've been meaning to write this post for awhile, but for one reason or another I kept putting it off. Now, what was the first part of that sentence? A little hard to remember? That's because I used one of the most horribly overused and misused words in the English language: but.

The power that this single word has over us is astounding...happiness can instantly be transformed into sadness, acceptance turns to rejection. Think of how many times you've heard someone say, "I feel a but coming up," and you realize how much we fear that word. Whatever follows "but" is rarely good and it causes us to completely disregard what came before it.

If someone says to you, "you did a great job," it would normally make you happy. In fact, you probably feel pretty good right at this second after reading that line. You did a great job, you, reader, did a great job! You're so wonderful. Now let's change it up a bit. "You did a great job but...." Chances are, your heart sunk a little bit after reading that because you know the chances of something negative following are pretty high. Same sentence, just one extra word.

Self-help and self-empowerment guru Tony Robbins actually wrote fairly extensively about "but" in his book Unlimited Power. While I can't say I agreed with everything he wrote (and found the spelling/grammar errors really annoying), he did have a good piece of advice regarding the word "but" in an argument, debate, or discussion: don't use it. Instead, use the word "and." Seems stupid right? The two words don't even mean the same thing. Most of the time, though, we overuse "but" and insert it when we really mean "and" anyways. Look at the difference here: "You did a great job but I think you can do better." The second parts seems to negate the first part. The "but" leads you to disregard the first part as fluff and keep the second as criticism. If you change just that one word, it gives a whole different feel: "You did a great job and I think you can do better." With that one change, the entire sentence feels more positive. You actually hear the first part of the sentence, the praise, and then there's an addition to it. Pretty amazing change from one word, right?

What led me to write this initially was a conversation I had with someone that used "but" after pretty much everything I said. Not only was it annoying, it was also depressing. Constantly feeling like you're being negated is no fun. It did lead me, however, to come up with a list of situations where "but" should absolutely never be used because it can do serious damage:

  • Saying "I love you" - This really should be a no-brainer. Don't ever say, "I love you but..." If you love someone, it should be unconditional. Putting a "but" after that statement implies a condition. And you know when you've said this, usually during disagreements. "I love you and I think you're crazy" is much nicer sounding. :)
  • Apologizing - An apology that contains the word "but" is not actually an apology, plain and simple. Using that word is essentially saying there was a good reason why you did what you did. If you actually are sorry, then say, "I'm sorry, I screwed up." Most of the time, you don't even need to explain why you did the stupid thing you did. Using the word "but" makes the other person feel like you're excusing your own actions (and that is actually what you're doing).
  • Arguing - This is the biggie. You know the best way to ensure an argument continues? Use the word "but" as often as possible. It immediately puts the other person on the defensive. If you can successfully argue with someone without using the word "but," the other person will hear your argument more clearly and will also feel that you're listening to their side. It's a win-win.

Since I read the advice about using "and" instead of "but", I've been doing it as much as possible. I've been stopping myself before I say "but" and trying to understand if I actually need to use that word. The result has been pretty significant: arguments are diffused faster, apologies are more sincere. I also find that eliminating "but" means sometimes I don't say the second part of the sentence because it's actually not necessary. Try to watch what you say and how you say it, and watch how people react. But...

11Jan/08Off

Playoff predictions: Divisional round

Okay, so I went 2-for-4 last week, blowing both Saturday games and getting both Sunday games correct. I'd like to point out, however, that my pick for Pittsburgh by 1 was holding true. Pittsburgh was leading by 1 with three minutes left to go in the game and the ball, yet managed to blow it. No hard feelings guys, but seriously, don't come all the way back from 18 points down and then not pull through. You become a horrible statistic that way. On to this week:

  • Seahawks at Packers - I don't know what's going on in Green Bay right now, but it's something special. The Packers are among the elite teams in the league and I'd be shocked if Seattle were able to win. Packers by 10.
  • Jaguars at Patriots - The team no one wants to face against the team everyone wants to beat. I've said it before, I'm scared of Jacksonville. They're physical, they're big, and they run the ball really well. However, the Patriots have the best quarterback in the league, the best coach in the league, and they fear no one. I expect it to be a tough game with the Patriots ultimately pulling away in the fourth quarter. Patriots by 8.
  • Chargers at Colts - I'm sorry, the Chargers really aren't that good. As much as I can wish for them to beat the Colts, I just don't see it happening. Their earlier victory over the Colts was a fluke where everything that had to go wrong for the Colts did, and they still almost came back to win. Won't happen this time. Colts by 10.
  • Giants at Cowboys - Tony Romo's been hanging around with Jessica Simpson. I believe that there are certain people who can actually make you dumber if you hang around with them too long, and she's one of them. Bad decision, Tony. Giants by 3. Yes, GIANTS.

So that's about it, can't wait to watch me some playoff football this weekend.

7Jan/08Off

What is a successful relationship?

"And look what that got you."

It's the type of sarcasm-drenched retort I've come to expect from my friend Jackie. She's a woman of many words and is unafraid to share them with you at any point in time.

I had just finished explaining to her some of the circumstances around which I met my last two girlfriends. My point was that you can't tell from the very beginning whether something is going to work out; her point was that I'm currently single. Touch�.

That exchange left me with an interesting question: what does it mean when a relationship is "successful?" I suppose in the traditional sense, a successful relationship is one that leads to marriage. Then again, in bygone days, you probably wouldn't have dated that much (if at all - arranged marriages were popular) and got married young. Perhaps then a successful relationship was not just one that led to marriage but one that resulted in children and not abuse.

So is your only successful relationship the one you end up keeping? If we're to assume that success is defined by marriage and that most people will get married once (I know that's a tough hypothesis in this day and age), that means only one of your relationships is a success and all others are failures. If that's truly the case, then you really shouldn't be dating someone that you think you won't marry. Why have another relationship failure? That logic doesn't make sense to me.

If ending in marriage isn't truly the criteria for success, then what is? Is a relationship successful if you were happy with that person? If you had fun? If you felt loved/protected/cared-for? How about if you learned something about yourself or the world? To me, all of these indicate some level of success in the relationship.

All of our relationships, romantic, friendly, and familial, have an effect on us. Most often, and if we're lucky, the friendly and familial relationships are lifelong ones, it's just the romantic ones that flicker in and out like a candle in front of an open window. Due to the often-too-quick expiration date and impactfulness of romantic relationships, we tend to gaze upon them with our critical eye more readily than the others.

"Don't you think a relationship is successful if it teaches you something? If it prepares you for the next relationship in some way?" I immediately winced, preparing for the onslaught of sarcasm to continue.

"Not really," Jackie said rather calmly, "so have you bought your ticket out here for my wedding yet? It's just five months away!"

Well played.

5Jan/08Off

Playoff Predictions: Wild Card

It's that time of year again, the NFL Playoffs are here! That means it's time for my playoff picks. Please don't bet money on any of this, but here's how I see wildcard weekend playing out:

  • Redskins at Seahawks - I know Seattle is a tough place to play, but the way that Washington's defense has been flying around the past couple weeks will make Seattle's fairly anemic offense into a huge liability. Redskins by 10 (congrats, Richy).
  • Jaguars at Pittsburgh - A lot of people are picking Jacksonville in this one. They are playing great, for sure. I actually think this will be a close game and a tight one. It's hard to win in Pittsburgh twice in a year. This one is so close in my mind that I'm having trouble picking, but I'm going to go with Pittsburgh by 1.
  • Titans at Chargers - Another one that I think will be closer than most people think. The Chargers have the talent, for sure, but the Titans have the coaching. Chargers by 7.
  • Giants at Tampa Bay - Momentum means a lot, and the Giants played unbelievably well against the Patriots just last week. They have to be feeling like they can compete with anyone at this point, so I give the nod to them. Giants by 6.

So there you have it. I'll be back next week for the divisional playoffs.