Saturday, February 16, 2013

still works, unless your handles clash

My friend Melbs says about relationships, "Every pot has a lid."  It means that no matter how weird you are, there is someone out there who will fit well with you.

I told this to James, who said, "What if you're a pot that likes other pots?"

Thursday, February 14, 2013

drama! electric cars! logs!

This Tesla vs New York Times scandal is one of the best things I've ever read.

1. John Broder of the NYTimes writes a scathing article.
2. Elon Musk personally posts on the Tesla blog, calling him out for lying, with logs data.
3. John Broder does a point-by-point rebuttal.



Elon Musk of Tesla: A Most Peculiar Test Drive
When he first reached our Milford, Connecticut Supercharger, having driven the car hard and after taking an unplanned detour through downtown Manhattan to give his brother a ride, the display said "0 miles remaining." Instead of plugging in the car, he drove in circles for over half a mile in a tiny, 100-space parking lot. When the Model S valiantly refused to die, he eventually plugged it in. On the later legs, it is clear Broder was determined not to be foiled again.
We assumed that the reporter would be fair and impartial, as has been our experience with The New York Times, an organization that prides itself on journalistic integrity. As a result, we did not think to read his past articles and were unaware of his outright disdain for electric cars. We were played for a fool and as a result, let down the cause of electric vehicles. For that, I am deeply sorry.

John Broder's response: That Tesla Data: What It Says and What It Doesn't
I drove around the Milford service plaza in the dark looking for the Supercharger, which is not prominently marked. I was not trying to drain the battery. (It was already on reserve power.) As soon as I found the Supercharger, I plugged the car in.

Who doesn't love a good fight with logs data, eloquent accusations of lying, and driving an electric vehicle in circles at night?

abnormal dreams

Two years ago, there was a sysadmin candidate that was introduced to me for Minted.  He came with great references and a solid resume.  Due to being gated on another decision, we delayed a few weeks in getting back to him, and of course by then, he was snatched up by another company.  He was very polite in letting me know that we were a few days too late.

This is all very normal.  The abnormal thing is that I then obsessed over this lost candidate for over a month.  I spent hours lamenting this candidate I had never actually met.  

Eventually I realized that I was doing this as an escape fantasy to avoid the harsh reality that I still had to hire someone and it was tough to find someone good. 

Last week, I caught myself doing it again with another person.  I conjured up an entire blissful working relationship in my head, only to find that it did not match the person's real-life interests at all.

I am wondering if this is the dark side to having an active imagination.  Maybe it is the side effect to the skill we cultivate by looking at a blank terminal window and imagining a beautiful framework of code.

I think companies do this too.  They imagine a partnership with another company, and fuel it on dreams instead of day-to-day reality of how well the technology integrates.  They pin their hopes on unlikely PR blitzes instead of repeatable user acquisition.

The only way I have found to cure this is to spend time getting to know the situation (or candidate) with all their foibles and flaws.  Nothing kills daydreams like cold facts.

The sysadmin story ended happily.  A month later, we hired someone amazing and my baseless obsession went away immediately.

Monday, February 04, 2013

Four rings to rule them all

A great image:



The caption says "One does not simply walk into Mordor."

James: It looks like it's driving away from Mordor. Mission accomplished?


Tom: Cool cars never look back at explosions.

Saturday, February 02, 2013

Starcraft Thursday

We have been playing Starcraft at Minted the past couple of Thursdays.


M: Is there any interest in playing Team Fortress 2 tomorrow night in addition to starcraft?

S: I'm pretty awesome at Temple Run but have never played TF2, I'm assuming the skills with transfer across easily, right?

M: Temple run is essentially an iOS port of Team Fortress 2.  You will be fine.

Sunday, January 27, 2013

idealism and good text-to-speech

I am very impressed by the quality of the text-to-speech in this video.  It is from the group Anonymous, on behalf of Aaron Swartz.



I think of Anonymous as a no-nonsense group, but in this and related videos, they show a lot of empathy.  They call Aaron an angel and a fallen brother.  They apologize to his family for having attracted Westboro Church to plan a picket protest at Aaron's funeral.  The narration in the videos are eloquently written.

I also really like the time-lapse imagery they used.

I really respect Aaron Swartz for spending a good part of his recent years in furthering internet freedom.  It is ennobling to see.  Tech media can sometimes be dominated by money-driven headlines: who got funded by how much, who exited for what price, who IPO'ed at what value.  It is nice to see people working toward a mission they believe in.

Thursday, January 17, 2013

compare down

At survival school, they taught us to compare down.

Let's say it's very cold and you are sleeping on the ground, on a bed of pine needles.  You are shivering.  If you think to yourself, "I could be at the Four Seasons right now", you're going to feel depressed.  But if you think "At least it's not raining", then you'll feel better.



I was pretty good about doing this at survival school.  It rained for 16 hours during my first day of solo, and I reflected on the relief that I made the tree shelter before washing clothes, so the shelter was ready by the time it started to rain.

It is a good thing to remember in our modern world!

Sunday, January 06, 2013

Mom trash-talking me


After tea with parents, my mom shared an umbrella with me.

Me: You're so great to share the umbrella with me!

Mom: Of course. Moms are the best. Ask anyone and they will say, "Yes, my mom is the best."

Me: True.

Mom: Except one day, your kids might not.

Me: [shock, dismay]

Mom: They will say "Grandma is the best!"

Sunday, December 30, 2012

Tom, funny, in Puerto Vallarta

I rented an apartment for my family in Puerto Vallarta.  It is near the ocean.

(Mom walking onto balcony)

I was worried that my brother would find it too boring, but he was actually pleased that it's sunny, has a gym, and food is cheap.

"I sat on the balcony and looked at the ocean today," he said.  "If I had a Corona, it would've been a commercial.  As it was, it was a virgin corona commercial."


My brother and I walked past a street vendor who called out to Tom, enticing him to buy wares.  "Is that your sister or fiance?" they shouted at him, referring to me.  

I realized this must be carefully A/B tested to perfection.  Whether I'm his aunt, mom, cousin, or sister, I would be happy that I look like his sister.  Similarly, whether it was his girlfriend, fiance, or wife, she would be happy to be called the fiance, because that's the maximal lovebird-y status.

In every possible scenario, the listener would be flattered.  Good work, street vendor!


I asked Tom whether he would go with my dad and I to Russia (one of my bucket list items).

Tom: "I'm not sure.  I just started a new job, so I might not be able to get the time off work."

Me: "I guess we could postpone it for you, but then you'd better come!  If we postpone it for you, and you still don't come, I would throw you into a lake.  I would tell you that we're going for tea, but then I'd actually drive to a lake and throw you into it."  [throwing motion]

Tom: "Then why wouldn't you tell me we're going to tea, but then actually drive to the airport and reveal that we're getting on a flight to Russia."

...

Me: "There's this tour group that goes around the Golden Ring of little towns between Moscow and St. Petersburg."

Tom: "You would hate it!  They're probably going to start really early every morning.  They'll be like, 'In soviet Russia, human rises with the sun.'"

Thursday, December 27, 2012

Botanical gardens

I am in Puerto Vallarta with my parents and brother.  Today we went to Botanical Gardens.


The main attraction of the gardens was eating in the restaurant.  It looks quite magical with water ponds adorned by lily pads.


Tom with pineapple juice and chicken fajitas.  I got chicken quesadillas.


Afterwards we walked for miles along the beach.  People cutting up a big fish!



Me: [to brother] "When I visit you, let's go to the beach in Santa Monica.  I really want a beach umbrella.  I wanted one last time too."

Tom: "Okay, I'll get one.  [suddenly grinning a lot]"

Me: "What?"

Tom: "I bought that beach an umbrella.  Beaches love umbrellas."

Monday, December 24, 2012

Preparing for Coding Questions in Software Engineering Interview

In 2006, I wrote this guide "How to Prepare for a Software Engineering Interview". Since then, I've been frequently asked: "How do I prepare specifically for the coding questions?"

Today I will answer that. Below are my tips, culled from my experiences interviewing around 500 engineering candidates for Microsoft, Google, and Minted.

My goal is to elicit your best performance during the interviews. To use an analogy, if you were getting ready for a 400-meter dash, my goal is to enable you to run your fastest time and prevent you from freezing up during the race. The tips are not going to turn someone who runs a 10-minute mile into a track star overnight.

1. Practice mock-interview coding questions in these areas:

  • String operations. Implement strlen, strcat, strchr.
  • Data structures. Hash tables, arrays, binary tree.
  • Running time. Determine the big-O of algorithms.
  • If frontend: CSS, javascript, ajax calls, cross-browser compatibility.

Note: The point is to get you warmed up, not to tell you exactly what's going to be asked. Your interviewer wants to ask you a question you've never heard before, and may skip questions (and concoct new ones on the spot) until one that's new to you. So there's no point trying to scour the internet practicing all questions so that you can recite the answer.

2. Avoid extended silences during the coding question. A major reason for the coding question is to observe your thought process, not merely whether you arrive at the perfect final answer.

If you are silent, the interviewer has no idea whether you are analyzing several plausible solutions (a good sign), or whether you are completely at a loss on how to tackle the problem.

Even if you are stuck, here are some things you can do that are better than being silent:
  • Describe algorithms you're considering and then discarding ("Dynamic programming won't work in this case because...")
  • Enumerate edge cases that your algorithm needs to cover ("I'll need to make sure my solution handles an array with duplicate values...")
  • Talk about the part of the problem that you cannot solve ("I need to find a way to split the input into two halves, but all hashing functions seem too uneven...")

Basically, just open your mouth and issue a stream of your problem-solving thoughts. Even repeatedly going over the same conundrums is superior to a long silence.

3. If you see a brute-force solution right away, say it first, and then hunt for the more optimal solution. At least you've demonstrated that you have one potential solution, even if it's not efficient.

If you don't get the refinement, you can always implement the brute-force method, and impress the interviewer with your quicky-written and correct (albeit inefficient) code.

4. Practice writing code on paper, without a syntax highlighter. I mentioned this in the 2006 guide and it is worth re-iterating.

It is going to feel foreign at first. You will suddenly forget how to write for-loop syntax when you are using a pen or whiteboard. That's why it's even more important that you practice beforehand.

Good luck and godspeed to you.

Sunday, December 23, 2012

Cake at work

Cathy, one of the graphic designers at Minted, made this cake.


It is a mocha chip and peppermint cake.  We used it to wish the interns farewell, though two of them were too cool for school and didn't even come over to look at their cake.  We still ate it on their behalf.

Thursday, December 20, 2012

Dickens Fair!

Last weekend, I went to Dickens Fair, an annual occurrence in Daly City.

I finally understand why some people get addicted to shopping.  I could not stop buying hats.  I spent an hour trying on and buying different hats.  If I had not left, I would've purchased more hats.  If those hat merchants had any sense, they should've seen that I was a giant mark and bombarded me with their wares.


Groups of women regularly walked by in petticoats. It was awesome. Occasionally the Queen came through and blessed us, and other attendees said in an English accent, "Bless you, Majesty."

Me with one of the workers at the Fair. Her dress is homemade!

Monday, December 17, 2012

LASIK

Today I got LASIK. I was nervous leading up to it, because it is lasers in my eye!  But contacts started causing irritation throughout this year, so I decided to take the plunge.

The procedure of getting my eyes pried open and held in place by an apparatus was pretty uncomfortable.  I definitely had a moment of "Why on earth did I decide to do this??".  It was only a couple minutes though.

The doctor was very forceful in yanking my head around and telling me to stop moving.   It was comforting to have someone be so authoritative, even if they were scolding me.

Then a brief moment of relief, followed by the dread that now it is time to do the other eye.



The laser part was kind of cool.  The light makes neat patterns.

My eyes are still bruised (you can see in the photo) but I can see pretty far already.  It hasn't sunk in yet that I will not have to wear contacts or glasses in future.

Elf!

Guess which movie I saw yesterday?  (Note the ears.)


The movie starts out slow, and plays out one of my biggest nightmares: strangers coming into my house and eating all of my food.

The scenes traveling over mountains were beautiful.  The movie did a good job of maintaining suspense on several fronts simultaneously.

The feathers graphics were nice.  I kept marveling at how they look good close-up, fluttering in the wind.

Thursday, December 13, 2012

Sha-mayn / Super emo

Sha-mayn is visiting me. It is so amazing, but then it just makes me think of how sad it will be tomorrow when she goes back to Manhattan.


Yesterday we ate at Zushi Puzzle.

Wednesday, December 12, 2012

Aragorn

James sent me this "Secret Diary of Aragorn" post.  It pretends to be the diary of Aragorn from Lord of the Rings.



I was very bothered by it, and wrote James this heated reply:
It is quite untrue to the characters!  Aragorn was always conflicted whether he ought to become king -- the whole fear of inheriting the corruption from his ancestor and "this weakness runs also in my veins".  The "still not king" theme really goes against his central passion as a character!

Also he showed no predilection whatsoever to being attracted to hobbits.  I feel like this writing just took a bunch of cheap shots that are not based on the actual book.



Here is what I would write instead:

Day 1: Stressed!  Too much on my plate.  Need to delegate more.  Will tell Boromir to watch the hobbits.

Day 5: Holy crap, lost the necklace that Arwen gave me.  Omg omg omg.  This really hurts my chances of getting back together.

Day 6: Amazon primed a replacement necklace. 

Day 8: Hobbits captured by orcs.  Damn it Boromir, you had ONE job.

Day 10: Went into Hall of the Undead.  Bent them to my will, and commanded them as an invincible army.  Also totally got the eyes from Eowyn.  So, you know, a pretty good day.

Day 11: Arwen is more innocent cute but Eowyn is more sexy cute! What do I do!

Day 12: Omg, almost called Arwen "Eowyn".  Fuck, that was close.

Day 15: Today Eowyn talked to Faramir more than to me.  What the heck!  

Day 16: Frodo succeeded with the ring!  Wow that was like a 1 in 1000 chance.  Glad that worked because I had ZERO backup plan.

Day 17: Totally saw Eowyn making out with Faramir.  Arrrrgh.

Day 20: Saved those hobbits Merry and whats-his-name, rode around on a white horse, standing ovation, yeah yeah!  Proposed to Arwen.  She is totally the One.  I always knew it from the first moment I saw her.  Have never liked anyone except her.  

Day 87: Wait, wasn't I supposed to release the Army of the Dead from their curse? I don't think i remembered to do that??  Oh well, if it were important, someone would have reminded me.

Sunday, December 09, 2012

Freedom + Fashion charity cooking event!

Michelle and I had such a lovely cooking lesson with Christine Ha, the blind chef who won the reality cooking show Master Chef.


Christine and her husband.


We learned to cook rack of lamb.  However, the ingredients were already pre-prepared and the last steps were also done for us.  So all we did was searing the lamb and then a ceremonial coating of the lamb with bread crumbs.


Michelle and me with haricot verts!


The first course was tomato basil soup.  We did not cook this either.  It was like we did "token cooking".


The lamb that we contributed toward making.

watching this music video repeatedly

Is this the best music video ever?

Saturday, December 08, 2012

advice: how to motivate your project partners

Recently, two different friends talked to me about motivating their project partners.

Friend: "I want my partners to work hard.  Does this mean I have to work longer than all the rest of them?"

Me: "No, you just have to set clear goals.  If I told you that tomorrow we might go on a run, you wouldn't be sure how much to prepare, so you'd watch me and follow my lead.  But if I told you that tomorrow at 10am, I'm coming over to get you and then we're running 5 miles, you'd drink water and go to bed early.  No matter what I'm doing, you'd be stretching and getting ready on your own."

Friend: [agreeing noises]



Me: "Being clear makes it a lot more motivating.  If I told you that we're running 5 miles at 10am, it's very likely that we'll do it.  If I just said that we're running tomorrow, we'd look up at 11pm after a day of playing Starcraft and say, 'Weren't we supposed to go running today?'"

Friend: "LOL true."