Monday, February 18, 2013

Retire aggressively!

More and more we're moving away from a pension ("defined benefits") system to an individual retirement account ("defined contribution", ex: 401k) model. While many are unhappy about this, it's actually better: you are protected against your former company collapsing and no one paying your defined benefit anymore. Since you own your 401k funds, you are free to move between companies without fear of not building up "pension credit".

The downside is that you have to manage your 401k: decide how much to put away, how to invest it, and when retirement rolls around, how to disburse it. While I can't speak for the latter from personal experience, I've decided an aggressive approach is right for the first two options.

There is a federally defined maximum personal yearly contribution (somewhere around $17,000 currently). Get as close to that number as you can afford to do. Do that every year. Make it one of your known expenses, don't plan to use that money. Your employer may match part of your contribution, this is allowed to take your total over that defined limit (to repeat, only your personal contribution counts against the limit). Why do the maximum? Assume you work 35 years, and assume the limit stays the same. Even with zero growth and no employer contribution, you'll have stashed away almost $600,000 of pre-tax money, which you can disburse in smaller amounts and therefore get taxed less. Realistically the limits go up about $500 each year, so contributing the max and getting a typical match from your employer should get you around $1,000,000 into your fund.

Now for that growth component ....
You have lots of investment options and probably no clue what to do next. Your 401k fund's firm likely offers several "package funds". For example, I can invest in "large cap growth" or "European small cap" funds, as well as long-term plans like LifePath 2040 (which gets progressively less risky as 2040 and my planned retirement approach). Your best bet is probably something that tracks a major market index such as the Dow or S&P 500. These have reasonable returns each year and are cheap for the fund manager to run. In my case, "large cap growth" is roughly the same as the Dow, so that makes up a substantial portion of my portfolio. LifePath is likely to be less volatile, but has lower returns over time because it's more managed and more diversified... this is bad: a rate difference of a few percent per year, compounded by management costs can affect your final balance by a factor of 2 (in this case, millions of dollars!). If you have 30 years until retirement, let that "over time" work for you.

The rules for your 401k and your personal investment fund are very different. Your personal stock portfolio is at your fingertips anytime you want it. Ideally you buy a stock today, tomorrow it doubles in value and you cash out big. This is not an option in a 401k. You can't just cash out your winnings (or not as easily anyways), at most you can re-balance your invested assets. Also, you are contributing smaller amounts to your 401k each pay check instead of buying a big bundle of shares once and then maybe idling for 6 months. Pop quiz, which of these prices per share/unit over time results in the best outcome for your 401k when you retire:
1. Steady growth: $1.00, $1.10, $1.20, $1.30 ... $3.00, retire
2. Bust and boom: $1.00, $0.50, $0.50, $0.50, ... $0.50, $3.00, retire
3. Boom and hold: $1.00, $3.00, $3.00, ... $3.00, retire
Think hard about this, it's critical to understanding the aggressive approach to 401k.

But eventually, I want to retire and know how much money I have to live off of, right?
Yes. LifePath and similar funds do this by gradually shifting your money out of the stock market and into super-safe investments like bonds and cash. The issue here is that your money stops growing, and you still plan to live another 20, 30 or infinity years (or plan to pass down the money, or leave it for a spouse, ... ). However, leaving your investments in a stock index fund could lead to some pretty big swings that you no longer want to put yourself at risk for. Enter the Rule of 5.

An observant person noted that, approximately speaking, the major indices are always higher in value 5 years from now than today. This allows for arbitrary volatility in between, of course, but says that given a 5-year window, money invested in an index fund will not be worse off. While most how-to's recommend the uber-safe approach, I believe that only the next 5 years' worth of money needs to be conservatized. In other words, every year you can move the money you'll need to use in 5 years into a conservative portfolio, allowing the remaining money to continue working for you, over time! If the market takes a dive, just delay taking the next batch of money out until it recovers! We can look at 3 scenarios for the expected trends (a more complete look would bracket 'reasonable' upper and lower bounds, and of course you wouldn't want to follow a plan whose lower bounds put you at risk), assuming you have amassed $2,000,000 and wish to spend $100,000 a year:
1. all in cash: money will run out in 20 years.
2. all in low-yield bonds (3% per year): you have about $844,000 left after 20 years
3. all but the next 5 years' in an index fund (7%): you have about $2,305,000 left after 20 years! Your money has grown. Note that aside from an initial $500,000 earmark, the remaining $1.5M are generating slightly more than the next $100,000 you need to cash into your safe bucket.


Quiz Answer:
The answer to the pop quiz is 2. Bust and boom is ideal for you because it allows you to purchase the most units of fund over time. You'll have way more units than in steady growth or boom and hold. The opposite is true for conventional [buy-at-once] investing. Here, bust and boom is actually painful because you are stuck with underwater stocks, until the boom happens, and can't put that money to use in the meantime.

Thursday, February 14, 2013

Incomplete arguments

Ever have one of these arguments?

Person 1: "We should not do X because despite A and B, C prohibits it"
Person 2: "Yeah, but we'd get A and B!"
Person 1: "Uh dude, C?"
Person 2: "A and B are great!"

Yeah ... jackass, we agree there, but you didn't address C. A specific example comes from a message board on an Arizona Cardinals's news site, in a story explaining that despite the [intentionally unspecified] compensation they'd get for Larry Fitzgerald, due to esoteric regulations the Cardinals would still have to eat $15 million of cap money, thus making moving him a non-starter. One intrepid reader comments "Trading Larry works for all parties! The Cards are clearly in rebuilding mode and get a ton of value for him, and the other team gets a great player!".

Mr. Reader added a new piece of information (the Cards are in rebuilding mode) that has no relevance to the original disputed statement and thus adds no value. He then agrees with 2 of 3 statements made by the original author, but disagrees by simply omitting the author's 3rd point. Try this one on for size:

Person 1: "There's freedom on the other side of that concrete wall, but if we make a run for it we'll definitely get mowed down by about 100 bullets"
Person 2: "Your hair is red. You should do it. There's freedom over there."

If you want to invalidate someone's statement, address the points they've made. You can bring in new information if you tie it to what you're saying. If you act like the dude above, you just look like you haven't been paying attention at all, or like you're comparing a banana to the speed of a cheetah. Huh? Exactly.

Legacy code warts


Our vending machine at work takes all coins and paper money up to (and including) $20. I am fascinated by the change algorithm: if I buy something for $2.25, it returns the following sequence: $5, $5, change dump (combo of $1 and 25c coins), $5. Why does that last 5 dollar bill come out after the small change? Who programmed this thing and was it just some terrible change algorithm, or were they artfully covering up for some other system component, like maybe the paper money feeder is slow and it takes time to load up that third bill?
I've been trying to deduce the logic that's running in the background, and there are several options. In general, the approach seems to be to reduce the amount owed until it reaches zero. However, the order of operations seems odd. How could this output have been constructed? Suppose we're looking at just the function to output money owed.

Algorithm 1 (the simple one):
void ReturnChange(int cents) {
   while(cents >= 500) {
      Return5DollarBill();
      cents -= 500;
   }
   while(cents >= 100) {
      Return1DollarCoin();
      cents -= 100;
   }
   while(cents >= 25) {
      ReturnQuarter();
      cents -= 25;
   }
   while(cents >= 10) {
      ReturnDime();
      cents -= 10;
   }
   while(cents >=5) {
      ReturnNickel();
      cents -=5;
   }

   Assert(cents == 0);
}

This is simple, it works, and returns the fewest number of currency units needed. It will fail, however, if the machine is short on any denomination it needs. This is simple enough to fix up though:

Algorithm 1.1 (with error handling):
bool ReturnChange(int cents) {
   while(cents >= 500 && Return5DollarBill()) { // Return5DollarBill returns true iff it succeeded
      cents -= 500;
   }
   ...
   // and so on
   return cents == 0; // make sure the customer is happy. If not, ring a bell for service ...
}

So why on earth would someone not do it like this? And what might the code look like? I feel like I'm on some horrible conspiracy show. It's likely rather simple and rooted in the history of not this machine, but its ancestors. There was once a time when machines could only take coins or a $1, but for simplicity we just need to go back to when $5 was the cap. ReturnChange probably looked just like what I wrote above, except it didn't have the first while loop. Let's call this version ReturnChangeForUpTo5Dollars. Then some slick business guy realized that a lot of people don't carry small change around anymore because paying with plastic is so much more common. However, it's probably not unrealistic that someone has either a $5 or $10 bill, and the vending machine should support these. He pushed a task through engineering to update the machines with this new capability. Engineering looked at the building blocks they already had and how they could solve the problem:
1. Simply run the same algorithm over the now up-to-10-dollar amount. This gets shot down because if there's one thing worse than not getting a snack, it's getting 9 bucks in change.
2. Add the ability to feed out paper money. The 1 dollar case is already covered (and isn't useful unless a customer is using the vending machine as their strip club money dispenser), so they need to have it shoot out 5 dollar bills. Once they do this, they can simply wrap ReturnChangeForUpTo5Dollars to make ReturnChangeForUpTo10Dollars:

Algorithm 2:
bool ReturnChangeForUpTo10Dollars(int cents) {
   if(cents >= 500) {
      if(!ReturnChangeForUpTo5Dollars(cents - 500)) {
         return false;
      }
      if(!Return5DollarBill()) {
         return ReturnChangeForUpTo5Dollars(500);
      }
   }
   else {
      return ReturnChangeForUpTo5Dollars(cents);
   }
}

Notice the slightly odd code above! It has to account for the possibility of the machine being out of 5s. Thus if we try to dispense the $5 bill first and fail, we have no fallback case and need special case code to dump 5x$1, and if that fails ... in short, the whole fallback sequence has to be re-implemented. Like all good engineers, this guy found a way to re-use code that already existed, was tested, etc. Now of course they could have organized this a bit differently (and recognized that despite its name, ReturnChangeForUpTo5Dollars is general enough to return change for any amount), but the above is quite straightforward and easy to verify.

After the above update ships, they notice that there isn't a big uptick in sales, and specifically the number of 10s and 5s in the machines is about the same as before. Unfortunately Slick Biz guy forgot that most Americans (and counterfeiters) prefer 20 dollar bills ... so here comes Snack Attack 2.0! This time the engineers conclude that they don't need to invent the ability to dispense 10s because they can just use 5s and that's fine. They just need to update the return algorithm, and this time they're just gonna make it general so that they stop getting bothered about this:

Algorithm 3:
bool ReturnAnyAmountOfChange(int cents) {
   // we know how to return 10 bucks, so shave it down to that in $5 increments
   while(cents > 1000) {
      if(!Return5DollarBill()) {
         // if we have no 5s left, just give them a slot machine's worth of change. Sorry customer.
         return ReturnChangeForUpTo5Dollars(cents);
      }
      cents -= 500;
   }

   // and finish this off
   return ReturnChangeForUpTo10Dollars(cents);
}

Again, they could have just as easily updated either of the existing functions, but software engineers tend not to like to touch existing code. We're trained to be paranoid about breaking existing functionality. In this case, we'd need to re-test all less-than-$10 scenarios as well, incurring extra cost before getting to ship.

Of course I have absolutely no clue that this is what happened, but I wouldn't discount this theory!


 

Wednesday, February 13, 2013

Not the same old Google

Remember when Gmail started and Google told us how they have major architecture in the way of your personal data ever getting out of their deep dark well while they analyze it? They made sure to anonymize you completely before passing your content to their analyzer, etc. This way, nothing personally about you could ever escape.

According to an Australian app developer, he was able to see a list of all the people that bought his app. The list included approximate locations and emails; the developer says it'd be trivial for him to, for example, harass anyone who gave his app a bad review. Assuming his claim is true, this is an interesting failure. It's not just a simple bug, after all. It means that architectural safeguards like what was claimed around Gmail are no longer in place. This suggests that they no longer value our privacy as deeply as they once [claimed they] did.

Update: Apparently the above is a by-design behavior because the apps are not sold by the store, but rather by the developer, through the store. I can accept this as a business decision, though I still find it a little odd. In most other stores I can buy an item anonymously (just walk in and pay with cash). I guess it comes down to if people are actually aware that their info is sent to the app dev. While it is stated in the terms of service, if it's not commonly discovered, I'd argue it's still an iffy model. Given that it made the news, it seems this is not commonly known.

Other incidents such as Street View cars collecting WiFi and device information were swept under the rug as bugs in Street View programming. I think it's pretty hard to accidentally log things you never intended to log ... it could be a bug that they didn't remove it despite intending to, however making the data public suggests otherwise. They at least didn't carefully scrutinize what they collected, and more likely were hoping no one would raise a fuss. Android phones tracking user locations over time were also dismissed due to the data being anonymized. Magnus Eriksson's questions include, rightly, "what internal processes are used to vet any possible privacy concern?"

At a maximum, this is a symptom of "serving ads for dollars, no matter the cost". At a minimum it means that incidents like this will keep happening and we can't treat them as a premier secure partner.

Even regardless of intent, continued sloppy handling of sensitive information should lead us to a single conclusion: they just don't handle your personal information in a way you can trust.






Tuesday, February 12, 2013

Compromise

Is the key to relationships, I've heard. Says Oprah. Says the person at the dinner party.

Compromise is a funny thing. It's this great concept, but the phrase has no guidelines. What does it really mean? Or in the case of relationships, when is it not even worth pursuing?

I believe that microcompromise is a bad thing: your favorite foods, TV shows, movies, whatever, are different, so each time you find the solution that both of you can agree to... and neither of you are really excited about. Carrying on with this course of action leads to a life filled with mediocre experiences.

Macrocompromise is key. Overall, you should both feel like you're getting to do things you really want to do. Maybe you really care about the interior decor and the other one cares about eating your not-so-favorite food twice a week. If something is important to the other and not of serious consequence to you, let them have it their way. They should respond in kind.

Given two people, it's impossible to have 100% aligned wishes. The key is to get to keep doing things you each love, because that will let you not care about the things you don't. If you instead opt for never doing things you hate (at the expense of getting to do things you love), you'll fall in that rut and either never come out or explode out in some crazy way.

In the case of relationships, the key to building them is to grow together. Opting to take the safe, mediocre compromise each time has the opposite effect. See what your significant other loves about that thing you're not excited about. Maybe you'll end up liking it too. At a  minimum you'll see them through one more lens and learn something new. And you'll have grown. Together.

Monday, February 11, 2013

Scaling to capacity

Remember that time you got a new computer and figured you'd never ever ever be able to fill up that 100gig hard drive? Or back when the internet was slow and you finally got DSL and figured it'd be lightning fast forever? And then again when you got cable internet and now it really should rock?

And then you started storing pictures in ever-growing formats. 10 years ago a typical jpg image was 50 kilobytes, now my wife sends me pics over a megabyte over the phone ... and for the most part, there's no additional information in there. We started storing movies on our hard drives instead of burning them to CD. We bloated websites with more and more visual doodads. News providers upload more and more of their content in video form (rather than the far more convenient and faster-to-download text). In other words, increased capacity opened up the question "how else can I use more of it?", or alternatively, the idea that "who cares!"

Take a look at your Facebook feed. When someone wants to convey an idea, they no longer just post words. They post a picture of the words. Pretty soon we'll have a site that automatically makes a picture with the words (and optionally falsely attributes them to a famous person), then posts that on our behalf. Have we really improved our experience? Or is the world just turning into MySpace?

Sunday, February 10, 2013

Startup interview

With an unknown company. Read on!

Hi this is ___ . Let's start with a coding-type question. Suppose I give you N locations on a map and I want to later find out .....
Well, I'm thinking it'd be a lot like ...

We talked through the problem, he was happy with my solution. Moving on.
So now let's talk about being at a startup. We have a great idea, and we're going to be working really hard for the next 6-8 months to get it off the ground; I'm thinking like 80 hours a week. We have 3 guys including me, you'd be the 4th. Compensation is more in the form of company shares than in salary, so probably like $35,000 a year. Since you'd be getting in early, this could work out really well for you.
Wow, well that's certainly a departure from my current job that pays double, with benefits, for working half as much. But if it has great potential, I'm willing to listen. What is the big idea anyways?
Basically, we're going to sort certain data. This data is very hard to sort, but people are willing to pay big money for a good sort. It's a multi-billion dollar industry. We already have partners signed up to consume our sort results.
Ok, that could mean a lot of things. What ... are we talking about here?
I can't tell you more right now, but if you want to fly up [on your own dime] to Seattle [from Tucson, at the time] and sign an NDA, I can tell you more about it.

I never did follow up with them.

Turns out the company (TalentSpring) was focused on sorting the quality of resumes in a database, allowing HR departments to more efficiently filter for the best candidates. I watched a video describing their approach and didn't particularly care for it.

Unfortunately for them it doesn't seem like they made it big, but that helps me sleep easier at night :)

Defense contractor interviews

They all followed the same fluff interview format as my chat with Cerner.
However, I alerted all of them that I am a dual citizen. None of them thought it was an issue. None of them called back.

Much later I found out that being a dual citizen (at least around 2003/2004) precluded a person from getting security clearance. Without that, it's pretty much impossible to be of engineering value to these guys.

Guess we all wasted each other's time.

Lost interview

With Google in preparation for finishing grad school (fall 2005 or so).

I hadn't actually been particularly interested, but I went to a technical talk at the UofA. During the talk I made some comments and the speaker (a VP at the Tempe office) told me I should apply. So I did. He had me shake hands with the site director and their head of HR. I got pinged later that day, at which point I added that I'd be most interested in their Seattle area office.

They offered to pass my info to their Kirkland office with a letter of reference (to ensure I wasn't a random) and told me I'd hear from them shortly. I still haven't heard back.

Just for kicks, I applied online. Twice. Both times I was politely told I wasn't good enough for them.

Ironically, I can now barely get them to leave me alone. Perhaps I should remind them of this fact next time ...

Moot interview

With IBM in preparation for graduating undergrad.

What does the modifier 'protected' mean in java?
It means that inheriting classes are able to call the particular method.
Is the type 'int' an object?
No.
Can the content of a string be changed?
No.
What class is the base class of all object in java?
Object.
How do you create a new thread in java?
Umm ... I'd have to check the API. There's a Thread class, I think. I'd have to look.
You can eitehr extend Thread and call .start() or implement IRunnable and pass it as an argument to Thread. What does the keyword static mean when placed within the body of a method.
Wait... in the body of a method? That doesn't make sense. That doesn't compile.
Hmm ... umm. Let's skip that one.
...
You'd be a great fit. I'll have to go back and see if we have any openings for you. Here's my card. If you don't hear back from me in 5 months, shoot me an email.

I'm not entirely sure that my ability to recite facts about a programming language makes me particularly qualified. I guess they at least prove I have some clue. I sure wish they were interviewing for actual openings though ....

Craptastic Interview

With Cerner in preparation for graduating undergrad.

Nice to meet you. So, tell us a bit about some projects you've worked on.
Bla bla bla, school project, work project.
So tell me about a time you worked on a team.
Well, I had this senior project ...
So what role would you say you played on that team?
Is "the guy who knows what's going on" a valid answer?
...
So anything you'd like to ask me?
No, not really.

I got called back that night for followup interviews. I figured they'd be actually technical, but it was more of the same. I had this gem of a line in there:
So I see you're currently working at Company X and you say you are supporting in-market products. Are you saying that they aren't perfect when they ship?
Nope. Clearly we try to make them as well as possible, but there are always going to be bugs. Also, waiting til perfection to ship probably means we'd never ship, right?
Umm, well ... I just find that hard to understand that you could release a product with known flaws. But, anyways, have you ever had a time at work where you've had a conflict?
Oh sure, every day.

We were about 7 minutes into the interview at this point and upon hearing this, he contorted into a very awkward position until about 2 minutes left in the interview, at which point he had to reposition to gather up his papers. I explained myself, that conflict isn't like something from Syria, that differences in opinion are part of the creative process, that the value of a team comes not from manpower but from new ideas and cross-checking. I did not get called back. I was the only person in my class I know of who didn't get flown out for an on-site after the campus interviews.

Do you have any questions for me?
*rewind, take 2*: How did this interview help gauge my candidacy? After all, nothing was stopping me from have answers memorized for all this fluff.

What's Google up to?

Google's business is to figure out, as well as possible, what things in the world you find the most interesting. Complicating matters for them is that you rarely want to sit down and fill out an accurate survey for them. Thus, they have to observe you as much as possible and infer your interests from those.

To best track you, they need to associate your web traffic with you. Thus they leverage 3rd party cookies in their ads to link together the pages you've visited. However, people get creeped out when someone's watching them, so they sometimes have their browsers block these.

So Google takes advantage of some known bugs and so forth to keep them in there. In my mind, this is shady. It's not strictly illegal or anything like that, but if you asked a trustworthy colleague to, say, not look through your files and they did ... how would you feel about that? Working around cookie blocking is a stall, of course, because the holes could be closed. Also, it can only tell that the same user went to sites A, B and C. If the same user has a second device, Google is missing critical linkable information.

Enter Google+, as in, more Google peeping. As far as I'm concerned, Google created a "social" network to unify your login across all their platforms to increase the likelyhood you are always logged in. This lets them do all the things they do with 3rd party cookies, except now they can associate it with your login no matter where you are. Also, personally identify you. But they don't do that, right?

Unfortunately for them, some people never got a gAccount or have since become turned off, or visit sites where Google has no presence (no ads)... If only they could just watch everything you did... Google Fiber makes it all possible! It's an ever-expanding race to find out more and more about you despite you maybe wishing they didn't. Kinda like if cameras tracked everywhere you ever drove.

That's what I think Google is up to.

Saturday, February 9, 2013

Starting salaries (and mistakes)

I got two job offers! Company X is gonna pay me $60,000. Defense Contractor Y is gonna give me $62,000. Ugh, but I don't want to build rockets and be a part of all that, ... but it's more money. Arrrrrgh.

Then go to Company X. Same argument applies if Y is "Uninteresting Job Y".
The amount of money is probably way more than you've been making so far, in fact even those extra $2,000 seem like a lot of money. My rule of thumb is that a 10% window is negligible. If the differences are within that, don't even hesitate to take the job you are more interested in or excited for.

People who haven't worked in industry before also don't realize what a huge difference there can be between rates of raises, sizes of bonuses and other perks. Examples:
1. Suppose you want to start a family, and one employer covers all your medical costs whereas the other has a mediocre plan.
2. One company may not even have regularly scheduled raises while others give you at least 3-4% per year. That's going to overcome an initially higher offer pretty quickly.
3. Some companies offer negligible bonuses (or none at all) while others can increase your income by 20 percent or more based on your performance.

In other words, starting salary is a heavily incomplete picture. If you're all about the money, ask a lot more questions about your opportunities for advancement. Even if you're not, you should ask the same questions, but again keep the 10% window of indifference in mind :)

Thursday, February 7, 2013

Kitchen Remodeling: The thing about appliances

We figured that appliances would be easy. They all come in standard-sized formats to fit standard-sized openings in kitchens, and there are no modifications or anything so you should just be able to grab one off a shelf and go. We went to Albert Lee to pick out our stove, vent hood, microwave, dishwasher and beverage fridge.

On our first visit, we just wanted to go learn about stoves. I've been perpetually annoyed that most consumer stoves have only 1 big burner (as in, 1 burner big enough to boil a gallon of water or put a good sear on meat). Go look. Your [gas] unit likely has a giant burner in the front right, then gets progressively smaller going clockwise. The tiny guy is a simmer burner, useful for melting the most delicate chocolates. The other 2 are in some weird limbo zone. For anything you'd use them for, you can use your big burner on a lower setting instead. If you want to boil pasta and make a nice seared salmon for dinner, you're boned. Professional or semi-pro units usually come with more big burners, unlocking the meat+pasta scenario.

As usual, the sheer number of choices is overwhelming, and sometimes the sales associate is as well. We were greeted by a very energetic (and somewhat frantic) lady who agreed that Wolf makes great products, and then proceeded to show us pros and cons of lower-priced units. We came away mostly confused, and debating if we really wanted to dedicate $6000 of our kitchen budget to a single appliance.

On a subsequent visit, we got a new associate. Lindsey is awesome, if you are ever looking at appliances, go see her in the Bellevue store. She also agreed that the Wolf was great, though she definitely added that a lot of the price was just that it's very pretty. By then we'd decided "what the hell, it's either getting amortized over 20+ years or if we sell the house, it'll be a great checkbox" so we went with that. We also selected a hood, dishwasher, microwave and decided that a beverage fridge was not worth the $1000+ price tag for a nice built-in one. Lindsey told us that Wolf was coming out with new models in March, so quantities of the current model were limited. I put down a 50% deposit to make sure that ours would be ready when we started the remodel.

Our plans stalled for a while, then started back up suddenly when we switched contractors. We went back in to get our appliance order finalized, only to find out that the new timeframe wouldn't allow for the hood we wanted to be delivered on time. Well crap. Lindsey offered a similar model, but Marisa didn't like the edge details on it. Other competing hoods were significantly more expensive. Lindsey found a 3rd similar model at LuwaLoft (the scratch and dent store) and suggested we go look at it. Amazingly, somehow, this item was there and the dents were so minor that we wouldn't have even noticed them. I literally started shouting "sold sold. We'll take it" as they were showing it to us. We were that close to either slipping our project or getting a hood we didn't really like.

The microwave and dishwasher had arrived without incident and were hanging out in the garage. The stove was supposed to come with them, but I got a call saying it'd been rescheduled to January 7th. That was still well within our remodel timeframe so it was no big deal; after all, the stove can be the last thing to slide in. Then we got another call telling us it'd be January 25th. Nooooow, that was pushing it. Where was this stupid thing? I put down a deposit so it would patiently wait for us in its warehouse and arrive at a date of our choosing.

Turns out the Wolf distributor had messed up their inventory and seriously overcounted the number of units left unsold. It was so bad that they ended up going back to Wolf and asking them to make more of the discontinued models. Luckily they obliged, otherwise we'd have been up shit creek without a stove and scrambling for another one. Moral of the story: have tons of buffer time or contingencies if you get anything not made by a major retail company. Miele: on time. GE: on time. Wolf: not on time. Ventahood: not on time. 100% correlation.

Navigating a job fair

I'll be going to the University of Arizona in March to recruit bright-eyed college kids for Microsoft. Unfortunately for them, many won't get a serious look... and we're actually more proactively looking than many others there. I used to work for [another company] and for a period of time we literally weren't hiring. We'd still go, of course, to keep the brand alive!

I was once on the other side too. I was wrapping up my computer science, computer engineering and math degrees. I knew I was good. I could barely get an interview. I wondered why. I wondered how those other kids looked better than me when I was sure they weren't actually. My friends and I would moan about how no one could see past the GPA or the previous internships, etc, that despite chatting with recruiters for 30 minutes they remained uninterested in us.

To understand what just happened, we have to look at it from the employer's side. I once did a resume review for a group of underclassmen from the University of Washington. Telling them that Microsoft probably receives 1000 resumes a day opened their eyes. We all want to think that our resumes will get deep attention and careful consideration, but there's simply no time for that. In an effort to streamline the process, certain traits are filtered. Naturally, experience and GPA matter; they are a few of the reasonably objective things on a resume. Recruiters know they lose some candidates that would perform well, but these are coarse bucketing mechanisms that allows them to focus on a smaller pool that has a higher likelyhood of being a good hire.

So where do I fit?
I graduated with a 3.4 cumulative GPA and no industry internships, and I am absolutely sure that it left me in a less desirable bucket in the eyes of many prospective employers. For example, Google (at least for a while) had a strongly enforced 3.5+ policy, and that other company I worked for tended to make that a condition for a strongly desired employee.

I could have just done this from home ...
The process is deeply dehumanizing. Most employers make you feel like nothing but an application form. They make no attempt to find out who you are. Aren't they recruiting?? The disconnect between employer and prospective employee expectations amplifies the mystery of it all. Students want to be interacted with and wonder why they just get a flyer for the company.com/jobs site. What was the point of coming by in person?

So, about all those resumes in the database ...
Even after any initial filtering is applied, there are a giant number of resumes left. Resume ordering (by desirability) is a very difficult task; really it's impossible. There's probably still a good chance yours will be selected (or not) for an interview or followup somewhat by random, unless you can tip the odds in your favor. Facetime is the biggest advantage you can have. It is the one way to elevate above your resume.

Ok, facetime. I'll ask lots of questions and nod approvingly!
No, I will stare at you with contempt. You have to make the other person want you, which stems from being unique. You need to provide value to the conversation, unlike this guy, this guy, and this guy. You need to convey that you are in tune with the employer. You're unlikely tell them something they haven't heard, but you can ask them insightful questions. Try to apply the principles you know from class. Talking Micron? Don't ask them what feature size they are down to. Ask them if they are speeding up RAM by adding parallelism or through sheer bus speed. Are they experimenting with new materials or just feature size to reduce capacitance and increase speed? Show them you get what their problem space is about. Talking to Microsoft? Tell me in detail about your project, including the technical stuff. Anyone can tell me they worked as a team and cite a few design patterns. Admit you butchered it on the first go, that's fine. Tell me you tried to add networking and it didn't fit with your model-view-controller architecture on the first pass so you had to refactor. I want to see you analyze and get better, and relate to me.

Oh wait, I've only taken the intro programming course ... do I even have a chance?
Realistically your odds are decreased. You likely don't have the same maturity of understanding and less insight, making the above better conversation harder to achieve. Specifically in programming, you can help yourself. The beauty of software is that you only need imagination, curiousity and initiative. You already have a computer (or access to one) to code on. Pick a problem you want to solve and work on it as a side project. The lessons you learn on your own in uncharted waters like those are invaluable and give you a great platform to talk from. You get to talk about the problem, how you thought about solving it, how you had to iterate, how you had to learn new technologies, how you were successful (or if you weren't what was missing, describe the component that's missing or that you haven't gotten to yet). These projects don't have to be big. I wrote a ghetto photoshop program in java in an evening just to try out some design patterns. I never fleshed it out, but that wasn't the goal. The goal was to better understand approaches to problems. Now I can talk about that.


Job hunt: Manager Mike

Hi, I'm Mike and I'm finishing up an MIS degree and I'm looking for a job!
Hi Mike, are you familiar with our core technical job roles?
No, I guess I'm not.
No problem. We have software development and test, which are fairly self-explanatory titles. We also have a role called program manager. It's a bit ironically named because
I'm really interested in that program manager job! I've taken some business classes in management.
Well Mike, it's not a 'manager' job. The title's a bit of a misnomer. As a friend of mine once said, you neithe program, nor manage.
No I definitely want to be a manager.
Mike, it's more about providing the vision for the consumer. How will things work, what other things should it interact with? What experiences are there?
Yeah, put me down for the manager job.
Ok Mike, nice talking to you.

Job hunt: Timmy Teamwork

Hi, I'm Tim. So I'm looking for a job.
And we're looking to hire people, so let's talk!
Oh cool. Umm, here's my resume.
I see here you were in an objective oriented design course last semester. Tell me about your major project in there.
We wrote this game that's like a tic-tac-toe game but it's 3D. We did that in a team.
Ah yes, Qubic. I had that same project back in the day. So tell me what part of it you worked on.
Well, I did some of the networking, and I worked on the views.
Ok, so tell me about some of the difficulties you ran into and what you did.
Well, ... oh, so javax.swing was kinda hard to figure out, but then we got together as a team and figured it out.
Uhh, ok, tell me about how your program was architected.
Well, we got together as a team and did some UML diagrams and then implemented that.
Can you tell me abot specific decisions you made?
Well, it was really a team effort.
Tim, I mean, can you tell me about some of the design patterns you used?
Oh, we used model-view-controller, and singleton, and I think a flyweight.
Where in the program did you apply those? Tell me concrete components and how they fit into the design patterns.
Well, there was the model... and then the view shows that model.
[You're killing me, show me you understand the project you worked on]. So were there any features that you wanted to implement that you didn't get around to?
No, I'm really happy with what we accomplished. We got it done.
[Fail. There's always something else you could want to add]. How about anything that you wish you'd done differentlt?
No, I think we worked as a team and really got everything working well.
Thank you Tim. It's been nice talking to you.

Job fair: Charlie Chatter

Oh wow, I love your company! I've always wanted to work there, your stuff is so amazing!
That's wonderful Charlie, how did your love affair begin?
Uh you know, it's just, cool. Like, you guys rock.
Of course we do. I rock and wouldn't work in a place that didn't. So what stuff of ours do you like so much?
I'm totally a Windows guy. Got my Uberbrand EX+Alpha SuperBook running it. I hate Apple. And XBox is sweet man.
Glad you like them. So let's talk about you ... what specifically are you interested in? What kinds of things have you worked on?
Well I'm in this class where we're working on an app. Sorry it's on Android. They suck, but that's just what the class has to use. Hey, you guys should make a Windows Phone app class. That would be so awesome.
Well yeah, that would be kinda cool ... but back to you. Tell me about that app you worked on.
Umm well, so we're making this app that like tells you when the next bus is coming. Do you ride the bus in Seattle? Wait, isn't Microsoft not technically in Seattle. Where do you live? Is Seattle cool?
Charlie, ...
I have a friend up there, and he just loves the mountains. I hear you can like hike year-round and go skiing and stuff. I think I'd love it up there. It's so what I'm into.
Yeah it's nice ... Charlie?
So anyways, yeah, I'm super enthusiastic you know.
Charlie ... yeah, thanks. I really need to get to other people in this line. Nice meeting you.
You too! Hey, can I have your email?
No.

My cold robot side

Today I told a woman and her daughter that I wouldn't give them a ride so they could pick up her son's medication.

I stopped by Home Depot in Woodinville to get some scrubby stuff for our kitchen countertops. The woman followed me to my car (I didn't notice when she started walking after me) and asked me to take her to Albertsons. I had no idea where it was, but she said she knew how to get there and insisted it was too far to walk. Despite the two of them looking non-threatening, I had a small voice in my head saying "this feels weird". Perhaps it's not, but it's the first time this has ever happened to me. I declined, but was determined to check out the story when I got home.

This is the path they would have needed to cover. Per Bing, Google, or any other estimator, it's just over a 30 minute walk for a healthy adult (which she appeared to be). With traffic it'd probably take 10 minutes to make the drive. Assuming they were able to find a ride instantly, they'd save 20 minutes on each leg (assuming that their ride wouldn't wait around while they fill the prescription).

When faced with options, you do the following comparison:
Walking best case scenario: 60minutes.
Walking likely scenario: 70 minutes.
Walking worst case scenario: 80 minutes.
Hitching a ride best case scenario: 30 minutes.
Hitching a ride likely scenario: 60 minutes (assuming it takes 15 minutes to find a ride)
Hitching a ride worst case scenario: Infinity. You may never get picked up.

Is 70 minutes fast enough? Assuming her son's not dying (she'd probably not be in the HD parking lot ... ), it has to be. Perhaps she has other things she wanted to do, but, there's 1 clear goal at the moment. Is the likely scenario hitch hiking much better? no. Can we even count on that likely scenario? not at all. They probably walked to the HD lot and maybe already wasted time doing that (though I have no idea which way they may have come from). Therefore, you take the path that you understand, you make it happen, you take care of yourself. By not doing so, it's likely that she's making the outcome worse.

When something important is on the line, take the option that guarantees success.
When failure is not an option, don't try and optimize in a way that could negatively impact the outcome.

My Republican side

I steadfastly identify myself as politically independent despite generally lining up with the left. I refuse to stand under a party umbrella, each issue should be independently resolved. The idea that people organize into two masses of groupthink is just sad. Despite the implication above, I'm not a liberal independent. I'm actually fairly moderate: I didn't vote to legalize pot because I didn't think the fiscal and criminal impact would be non-trivial (I could be wrong, of course). I'm for fiscal discipline (in macro environments and my own life): you should learn how to live off the money you are already getting instead of playing catchup to the money you want to spend.

In this same vein, I believe in personal responsibility and solving your own problems as being the foundation of success. Focusing on others simply doesn't scale: people get lazy, people get dependent on the system and most fundamentally it's harder to take care of someone else. If you can't perform something for yourself, there's no chance you can do it for another. Even if you can, it's more expensive for me to take care of you and for you to take care of me instead of us both doing it for ourselves. Thus there's additional friction/cost in the system and everyone loses. Before anyone blows up, this is a generalized argument at scale; it's simply supposed to show that it's better for us to take care of ourselves whenever possible.

Tuesday, February 5, 2013

Bad ads

If I had my way, I'd add critical thinking and propaganda to grade and/or middle school curriculum. The number of ads that abuse people's stupidity is just sad. There's no real difference between Bud and Coors and therefore we have to associate each with different boobs and good times, but this isn't the really bad stuff.

For example, AT&T consistently touts that it's up to 10 times faster. Than what? Dunno, they never say ... so ... 10 times faster than the imagination of a leprechaun. Smart phones brag about the number of megapixels in their camera despite it being a meaningless value. The NRA makes suggestions about how to curb school shootings that don't scale to the entire country (nor to malls, movie theaters, ... ).

We need to learn to see through the bullshit, and actually discuss things that are relevant. The prevalence of the opposite in ads is proof that our mainstream isn't up to this task.

If I were a rich boy

I'd get into education, ideally with a plan to reform some of the things going on. Naturally there are tons of opinions on the matter and I'm not exactly up to date, but I can say with certainty that we need to adapt our curriculum to modern trends.

Kids are all using the internet by middle school and have tons of digital contact with friends. We need to extend basic safe interaction education to the virtual world as well. Every parent insists their kids not take candy from a stranger, yet they themselves accept offers from Nigerian princes.

Americans (and probably the rest of the world too) lack critical thinking skills (go read any forum board or news article comments section to verify this), and lack the ability to have a conversation with differences of opinion involved. We need people to understand that arguments can be bogus, facts can be incorrect or misleading or incomplete. They also need to learn that reasonable people can disagree and the goal is to understand where the other is coming from, and where common ground may exist.

Also math. I don't care if you think it's hard. It's way harder to have no clue how to budget your money.

Monday, February 4, 2013

Kitchen Remodeling: The thing about being displaced

So you guys are just gonna eat out a lot, huh?

Sorta. We are lucky enough to have a 2-story house; our master bedroom is as far from the kitchen and mess as possible. The demolition started on Christmas Eve while we were at the in-laws, by the time we got home there was nothing left! This thankfully got us past a lot of the initial noise and mess. I arrived back in town sporting a pretty good fever, and was able to sleep/rest through a lot of the remaining noise.

We were prepared. Our bedroom has some food staples and a rice cooker, and our bathroom is set up with a cutting board, knives and place settings for two. We saved our old microwave and put it in our laundry room. Our entire DVD collection is in the corner by the TV. We watched every Harry Potter, finished all known episodes of House and got halfway through The Office, ate rice and tuna, occasionally made fancy salads, grilled steaks and had good sandwiches. Our fridge was relocated to our living room so we had that working the whole time as well.

In short, it wasn't that hard to make food. Cleanup, on the other hand ...
Turns out washing dishes in bathroom sinks is awful. If you leave something to soak, you either have to pull things out of the sink with water still in them, or brush your teeth around them. Crumbs accumulate in various corners. There's virtually no countertop to work with for drying dishes, etc. In short, it's an exercise in keeping a minimal footprint.

One night while watchin Harry Potter, the soundtrack included an unexpected thump. We didn't think anything of it until the doorbell rang. I put some pants on and went to check on things. There was a couple in the street (putting on pants is not instant and they got bored of waiting) who then asked "whose car is that", pointing to Vivi. Turns out they were visiting our neighbors and had backed their car out into my quarter panel. See, we had the contractor set up all his tools and workspace in our garage and were therefore always parking on the street. Just another wrinkle in the process. Luckily they didn't just drive off, even though I think the driver may have had a few drinks (or was just super upset ... ). Dink n flicka.

Kitchen remodeling: and the rest ...

Turns out there's more to remodeling a kitchen than remodeling a kitchen. Once a kitchen + dining room area is done, the entire space has to be brought up to the level of the kitchen. We already bought a great cherry-wood dining table, but now we need a matching buffet and some catchy wall art.

Our remodel also created a new coat closet, which now needs to be painted and set up. We're starting with a simple bar to hold coats, but we're talking about putting some builtin drawers for shoes into the bottom. We could either find some furniture that won't fit exactly, have someone build us something, or use this as an excuse for me to buy a table saw and see what I can do. Marisa's in charge of picking out a veneer for the eventual built-ins. Tip: split work by the things you care about. She cares about the exact finish, I care about playing with power tools and being a manly man.

The coat closet also needs a door. We've got one tentatively picked out, but its style won't match the adjacent office and powder room doors, so .... that's 2 more doors. All the doors' style will not match the baseboards or the cake stripe (I don't know what you actually call moulding that runs across the middle of the wall), so those need to be replaced. And they should be replaced at the same time as we paint the adjacent living room walls to match ...

Pull one thread, the entire sweater unravels.

Kitchen Remodeling: The thing about lighting

Picture a room with no lights ...

Planning for lighting involves a lot of variables. How should they look? Recessed? Tracks? How many? How will they relate to your layout? Where will you stand? Where will your shadow land?

Our remodel kept part of our old kitchen layout, but extended and added to other areas. We started with 7 recessed can lights that roughly followed the inner contour of our cabinets and knew that they worked fairly well. We used this as the template in shifting a few of our light around, using the same strategy relative to the new layout. The final effect is pretty good, though we do have some shadowing under the upper cabinets (this is not a fundamental problem though because you rarely need to see super well deep in the back of a cabinet). We could later add under-counter lights to compensate if needed.

Our decision was partly financial; keeping half our existing lights as-is was a lot cheaper than doing anything else. We like the look of recessed lighting as well. Recessed lighting is somewhat directional though, so entire areas might only be illuminated by 1 or 2 of them instead of by most of them. This can lead to harsh shadows which are unpredictable without some serious CAD software. Note to self: write a kitchen planning web page. Recessed lighting is also set in place once installed, meaning you have to get it right on the first try.

Track lighting is the other major option. They have more stylistic variety and are adjustable after installation, allowing you to fine-tune them to your exact kitchen once it's finished. If you want your lights to be eye-catching, this is the way to go.

No matter your choice, err on the side of too much lighting. A kitchen's utility is seriously reduced if you can't see everything clearly. You can always hook up subsets of lights to multiple switches or to dimmers if you want a way out (or switch to lower wattage bulbs). When in doubt, put in more of them. I'd recommend at least 1 75 watt light per 25 square feet.

You will need to pick between standard or halogen bulbs. Many people prefer halogen in the kitchen for a brighter, whiter light. The technical details is the light's color temperature. Regular incandescents are about 2500-2700 K[elvin], halogens are in the 3000s somewhere and daylight is right around 5000K (though there are some decidedly cold-blue 6500K bulbs out there too). The closer to daylight, the more true color you see items in, but the less "homey" the vibe.

The kitchen lighting is also a place where I know no compromise. Marisa's stuck with me and my 5000K daylight bulbs. We did add some cool glass pendants with vintage fancy coil incandescents for mood, and everyone's happy!


Goldilocks's megapixels

So you think your phone camera is pretty sweet, huh? 8 megapixels of uploadable content? But what's this, your buddy's phone has 12MP? Just think, your pics could be taking up even more space and costing your data plan even more money!

Newsflash: after some lower limit, megapixels have very little to do with the quality of pictures you are taking. Other more important factors include: quality of your sensor (the thing that "has megapixels"), quality of your lens (basically, does your camera needed glasses) and your choices as a photographer. No matter what Instagram communities imply, the 1034th faded picture of pumpkin pie does not transcend humanity and it doesn't capture the goodness and simplicity of a long-lost America.

Let's start with the non-technical, because most problems don't even depend on equipment. There are several tiers of pictures:
1. Amazing images that thousands of people want in giant format to gawk at every day. You know these when you see them.
2. Good images that people feel happy they got to see. These are often similar to category 1, but lack some element that makes them truly amazing, or they are by your friend who doesn't happen to have thousands of people looking at their photos.
3. Satisfactory images that show something the viewer cares about. Most commonly these are people experience photos: family pics, outings with friends; they capture what was happening, but anyone outside the associated circle is unlikely to care.
4. Images that everyone is indifferent to having seen: aforementioned pumpkin pie, a random washed out sunset, or too many similar copes of any of the above (here's Jim eating! and Jim and Jodie eating! and now Jenny too, but this time Jenny is making a funny face, ... ).

Everyone takes some bad photos, in fact, everyone takes lots of bad photos. The key is to filter them out. When you have 100 photos from a party, trim that down. First, eliminate anything that's out of focus or is otherwise irreparably damaged. Then, pick your one favorite of any set of similar shots, then cross-filter. Perhaps you don't need to show all 12 people doing all 4 activities. Maybe Jimmy and Susie have a great shot bowling, but Lisa and Patty have an adorable shot with birthday cake. The best rule of thumb I've heard for this is to ask yourself "why would anyone else care to see this picture?". My rule of thumb is that if you can't caption it something other than "another pic of Jimmy and lo mein", you probably don't have a winner. For the love of all that is holy, please do not hit "upload everything to Facebook". If you're still not convinced, remember what you do when faced with someone else's album of 100 pics: flip through the first 6, then go back to album view and scan it for boobs. You have to keep people's attention for them to flip through a whole album and actually see the good shot hiding at #53 and 77.

Now on to technical matter! Ever notice that your friend takes way better photos with a DSLR than you do on your phone? This is no accident. It's possible they have a great eye, but even they would struggle to do the same with a phone or many point and shoots. DSLRs generally offer the fastest focusing and shooting times, allowing a photographer to capture the scene as they see it NOW, not as it will be 2-4 seconds from now. The latter is rather hard to utilize for candids. DSLRs also generally offer the shortest exposure times (amount of time the camera spends actually taking the picture), giving the best odds for capturing a photo without motion blur (when someone looks smeared in a shot because they were moving). Finally, DSLRs have the best ability to actually reproduce, in terms of color subtlety and clarity, the scene they see.

All cameras work on the same principles: you point them at a scene, that scene is mapped onto the sensor by the camera's lens, then the sensor captures that image and some processor in the camera converts that capture to the image file you pass around. The ability to reproduce a scene has to do with the quality of those steps. A significant gap in either of them means the image comes out bad:
1. a crappy lens will map a flawed scene onto the sensor, no matter how perfect your sensor, you are getting a perfect capture of a messed up scene like a person with 20/20 wearing their grandpa's glasses
2. a crappy sensor will do a bad job capturing the scene, even if your lens is perfect, it will butcher it like a kid being asked to draw Marisa Miller with watercolor.
3. and if the processor does a bad job creating the jpg file, your image will lose detail. This stage also determines how big (in bytes) your image is ... though there's far less differentiation here.
Cell phone pics are terrible because their lenses are very poor, and their sensors are nothing to write home about either.

I don't want to get into lens optics and details because people generally accept that there are differences in these, plus it's a bit more intuitive since we're used to the idea of glasses. Generally speaking though, bigger is better. There's an additional consideration here: a bigger lens allows more light through. This is meaningful for the sensor.

Before discussing sensors, let's call out that all digital images are processed and viewed as colored dots on a grid; "megapixels" are literally "the number of pixels, in millions" or "number of grid spots". If it helps, think of digital images as a mosaic of tiny square tiles, each tile being a pixel. The job of the sensor is to decide exactly what color each pixel/tile is. An iPhone5 has 1136 rows and 640 columns of pixels, 1136x640 = 727,040 = 0.7 megapixels. A typical laptop is about 1366x768 = 1,049,088 = 1.0 megapixels and a desktop monitor or 1080p TV is 1920x1080 = 2,073,600 = 2.1 megapixels. Even the giant Apple displays come in under 4 megapixels. Even if your cell phone took crystal clear 8 megapixel pictures, no device you own could show you those in full detail. Moving up to 12 megapixels would literally be moot. The only scenario that can use more is large photo enlargements (and just anecdotally, see if you can make a photo that looks totally crisp and correctly colored at full zoom).

So now that we're no longer blindly worshipping the megapixel hype machine, let's also acknowledge that not all identical megapixel sensors are created equal. How does the sensor actually work? A sensor is a grid of, essentially, measuring tubes. The sensor itself can be any size (a DSLR will often be 24-35mm across, while a phone might be a quarter of that), and each pixel is proportionally some fraction of that. The lens focuses the image you point the camera at onto the sensor (literally, the image is there), and the sensor measures how strong the light is at each spot of the grid. This is more intuitive if you think about it in black and white: stronger light = whiter part of the image and vice versa (in color, the sensor might measure the red, green and blue components of light instead and recombine them). The strength of a light source is an interesting physical phenomenon: it's determined by how many photons (light particles) it fires out per unit time, much like how the difference between light and strong rain is more about the number of drops that fall, not the size of the drops themselves; thus each pixel is more of a counter of how many light particles hit it. The size of each pixel contributes to its accuracy: bigger is better. Perhaps counter-intuitively, more pixels (implying smaller individual pixels) actually reduces color accuracy!

Imagine someone tells you to go outside and measure how much rain is falling per hour so you grab a beaker and stand outside for 1 minute. You don't quite know where the drops are going to fall when, but you know some will hit the inside of your beaker. Suppose your beaker is wide: you'll get some drops in it, and you can see how much rain falls per minute, multiply by 60 and you have an answer. Now suppose you try the same with a skinny beaker. Perhaps it's not raining too hard out and no drops hit the beaker for a minute. Using our previous method, we multiply by 60 and conclude it's not raining at all. Then we do the same test again and this time 2 drops hit the beaker. We multiply by 60 and conclude that quite a bit of rain fell. If we redo the test with the bigger beaker, the natural variation of a drop or two won't affect the outcome relative to all the other drops we also collected. The other option with the small beaker is to stand out in the rain longer to account for this variation. Thus, bigger is more precise and accurate and is therefore better.

Bigger cameras use about the same number of pixels as phones (even top models from Canon and Nikon top out around 20-25 megapixels), but spread them out over a much larger sensor. Thus, each pixel's area is about 10 times bigger, meaning we can be just as color-precise (all else equal) by standing in the rain for 1/10th the time, or being 10 times more accurate in the same amount of time. Remember that note about bigger lenses? DSLR lenses often let through as much as 100 times the light, meaning we can add another factor of 100 in there. There are even other subtle details that make DSLRs better, but this alone establishes why their outputs are so superior: you can get a similar result in less time or at lower light levels, or to some extent, both. The sheer number of megapixels, again, is largely moot.

Sadly the quality difference between sensors is much harder to quantify ... which is why companies focus on tangible seems-like-it-should-matter things such as these. Don't give in to hype!







New Years resolution

I decided that I want to be more proactively social, and also do at least one productive and/or active thing each weekend (or during the week, but that's less likely). The goal is really to avoid sitting on my butt all weekend [watching TV]. So far so good:

Jan 5: Probably stuff dealing with the house, Nick's birthday, football day with Gary
Jan 12: Probably stuff dealing with the house, football day with Gary, Lady Gaga, The Dream Factory,
Jan 19: Probably stuff dealing with the house, football day with Gary
Jan 26: Bought a new refrigerator, researched interior and exterior door options
Feb 2: Muse concert, Super Bowl at Howard-Simpson's, painted most of our kitchen
Feb 9: Moving back into the kitchen. Wash wash wash scrub scrub scrub organize. Cirque show.
Feb 16: Painted ghetto closet and added new shelves. Got a coffee table. Built drawers for coat closet. Added Amazing Race nights to regular schedule.
Feb 23: Red-eyed to Atlanta with Greg and Bryan to pick up Frank and take him to the Bahamas for a GREAT_SUCCESS weekend. Swam with sharks. Got offered cocaine. Twice. Elected sunburn instead.
Mar 2: Made a cabinet and installed drawers into them, prototyped spray-painted enamel technique.
Mar 9: Murder Mystery party, lots of priming and spray painting.
Mar 16: Tucson. Took some cool night photos, met up with friends. Spent the week recruiting.
Mar 23: UofA game at Buckley's, pre-wedding drinks with Kevin, built a planter
Mar 30: Nestes were visiting, housewarming party, tons of yardwork, brunch at Leschi, dinner/bbq at Brett and Marci's
Apr 6: Frank's wedding!
Apr 13: Roller Derby, had the Howard-Simpsons over, George's for late breakfast, went to Molbak's and bought weird japanese lettuce
Apr 20: Some kinda art exhibit
Apr 27: NFL Draft weekend. Go Cards. Out with the Bryans and Bens, Roller Derby in Everett
May 4: Spokane
May 11: Going to Hungary
May 18: Hungary
May 25: A hike! Went up Rattlesnake Ridge.
Jun 1: Marisa to Tonya's shower, I hiked with Gary at Wallace Falls and then we saw Star Trek
Jun 8:
Jun 15: Rafting and then hanging out in Leavenworth
Jun 22:
Jun 29: Mariners weekend
Jul 6: Frank in town, 4th weekend
Jul 13: Tonya's wedding
Jul 20:
Jul 27:
Aug 4: Nestes go to Arizona
Aug 11: Nestes return from Arizona


I'll try to keep this updated as a reminder to myself.

Sunday, February 3, 2013

Kitchen Remodeling: The thing about paint

Oh man.

So painting is conceptually really easy:
1. Concept: Pick your color(s)
2. Stock up: Get some brushes, rollers, paint and blue tape
3. Prepare: Remove obstacles and tape
4. Act: Put paint where it needs to go
5. Cleanup: Wash things

Each of these steps is actually a little more involved. Without proper care, things go a lot less smoothly. Let's talk about each of these, in order.

Picking your colors:
This is the fun (or frustrating) part of the exercise. You get to go to paint stores or browse online, play with swatches and visualize your perfect outcome. Unfortunately for many people, visualizing how a tiny swatch will look spread over an entire wall is not as easy. Also, there isn't just "gray". Behr brand alone has elephant skin, french gray, pencil point, suede gray, porpoise, pewter, sterling, burnished metal, burnished clay, manhattan mist, .. and those are just the ones I remember off the top of my head. In addition to the basic color, there are tones: blue, purple, taupe, pink, etc. When viewed by themselves, it can be hard to tell. Always compare several similar swatches side by side. You'll usually want to walk into the paint shop with a concrete idea of what you're looking for, such as "light gray with blue tone". It's even better if you can bring in samples of other pieces in the room (a fabric swatch from furniture, a piece of backsplash tile, ... ). This will help you narrow the list of options to a manageable (and affordable) number. The worst thing you can do is walk in without a clear idea in your or reference swatches in your hand: you'll be faced with an overwhelming number of options and have no way to pick between the aforementioned grays, nor the 15 other versions whose names I can't remember. An optional next step is to take the swatches home (at some stores they are free, others charge a nominal cost per swatch) and compare them to your actual environment. Lighting can make a huge difference in the appearance of a color! The swatch may look completely different under the fluorescent glow of the store lights, incandescents in your home, under natural light from outside, or even the much cooler (bluer) light of an overcast day. If possibly check your colors under both evening and daytime lighting to ensure you're getting what you think you're getting. Next you'll want to get samples of each color you are considering. Samples vary greatly in cost, for example Behr samples at Home Depot run about $3 while a Benjamin Moore sample cost us $8. See why you don't want to walk out with 15 tiny cans of paint?

Stocking up:
Painting requires a number of accessories. In addition to the obvious brushes or rollers and blue tape, you'll want a drop cloth. A universal truth of paint is that you will drip, spill or smear it on something you didn't intend. A drop cloth is a great way to mitigate most risks. You can pick one up for 15-20 bucks, and it's completely reusable. No matter what you are painting, you'll want a small brush for edges. I've had very good experiences with a 1.5 or 2" Wooster angled nylon brush, if you are also going to be brush-painting larger areas, you'll want a 3 or 4" brush with a lot more thickness (more bristles, holds more paint, covers a wider path with each stroke). Good brushes are worth their cost in avoided frustration. Cheap brushes will lose bristles into your freshly painted surface, not transfer paint smoothly, or have scraggler hairs that put tiny streaks where you don't want them. Plan to spend $10-15 per brush. 2 is enough, though brushes take a day to dry after washing and you'll need to wash them after use or before dipping them in a new color. If you are working with more than one color, plan accordingly. We've actually invested in a fleet of brushes (including about 4 small ones), which has made it really easy to try several samples quickly. For large areas you'll want a roller. Again, you'll want a good quality one, the cheap ones can leave behind fuzz or be streaky. Also, make sure to match your roller nap's thickness to the appropriate application (type of paint, smoothness of wall - their packaging will give you guidelines). We had great success in our kitchen with a Wooster bundle we got at Home Depot for $15; it included a roller handle, 2 naps, a tray, 2 disposable tray liners and a bonus 2" brush. I'm actually not sure if naps are washable, but they are cheap enough that it's probably easiest to consider them as disposables. A new one runs $4-5, and it will save you hours and hours on a full room. Scotch blue tape ($6 a roll) is the standard, however, it can bleed through where the edges aren't quite well pressed down. This does lead to some uneven paint lines, especially on textured walls where they meet ceilings (which often have a different color). We found green tape ("Frog tape") for about $12 a roll that has some gel technology that traps paint at the tape barrier and actually does lead to noticeably crisper lines. You can use a combination: green tape for the critical edges, blue tape for general coverup where edges aren't involved or are easy to clean off after (tile, glass, .. ). If there are significant areas of paint you'll be applying with a brush, you'll probably want to get a few plastic paint bowls (about a dollar each). These are much easier to hold in one hand instead of going back and forth between your surface and your gallon jug.

Prepare:
The key to good painting is preparation, they say. I say so too. Keeping in mind that paint WILL get on things you didn't intend, remove as many things that you don't want painted as possible. Remove all switch and receptable faceplates and put blue tape over the actual electric component that's left. Careful not to shock yourself! Move all furniture away from walls. Unmount the TV. Remove recessed light cans. In short, if it touches an area you are going to paint and you can take it off, do so. This lets you avoid taping and allows you to actually paint under where said object is to ensure there's no chance of the old color peeking through anywhere. You can even consider removing trim pieces if you're comfortable with that, though we left that to taping. For the remaining items, it's time to tape. Make sure they are wiped clean: tape will not stick to the dusty trim above your door or windows. Then, take your time. Align your tape carefully with the edges you want to cover. I've found that working with 3 foot sections is usually easier (longer pieces tend to get tangled and stick to themselves). Occasionally I can just keep extending from the roll, but that can be tricky. Most edges have some bumps, lumps, waves, etc, so being able to alter direction slightly every few feet is nice. Make sure your tape is pressed firmly and smoothly against the surface.

Special note: primer doesn't seem to be necessary when painting over existing paint if you buy a paint with primer built in. It seems most good paints have this feature available. If you're painting a newly built and finished wall, use primer. Kilz 2 seems to do very well.

Act:
Put down your drop cloth, pop open the paint can, pour some into your tray/bowl, and get to work! I don't know how to describe painting technique in any way superior to the internet's description, so I'll leave that as an exercise to the reader. Keep anything with paint on additional papertowels, just in case. Remember that thing about spilling? I was taping in the kitchen and heard "help help help!". Marisa was priming a wall in a closet and tilted her bowl, leaving a nice puddle of primer on our dropcloth. I went to try and clean some of it up (so she wouldn't step in it and track it all over) and ended up smearing it on my shirt and pants (neither of which I wanted to stain) without even realizing it. I'm still trying to wash it all out....
Anyways, it's easiest to not stop mid-painting. Keep your brushes/rollers wet. Once paint dries into them, they're useless and will be that much harder to wash. Remove tape while the paint is still moist; this prevents the paint drying onto the tape and coming off the wall with the tape and you'll also get a chance to wipe off any that may have creeped under the tape.

Cleanup:
I hate cleaning up, but do it as soon as you are done.

Friday, February 1, 2013

Kitchen Remodeling: The thing about cabinets

What is a cabinet, if not a carefully colored wooden box? It is many things, and there are many options.

For starters, cabinet boxes can be made from mdf or plywood. Plywood is considered the superior material, though it's debatable how much actual impact it really has. I think they hold up better when stressed and bent and twisted, though this isn't a primary scenario for cabinets.

The cabinet doors and drawer fronts can be either veneered or made from solid hardwood. Hardwood seems like the better option, however it's more susceptible to temperature- and humidity-based expansion, contraction and warping. A good quality veneer can look really nice, and may even be more uniform than a hardwood.

In terms of immediate functionality, framed vs unframed construction makes a big difference. An unframed cabinet is a box with one face missing. The door is then attached as the missing face (or drawers are inserted). Framed construction starts with an unframed cabinet, then adds what looks like a picture frame before mounting the door to it. The net effect is that you lose easy access to the outer inch of the cabinet: in door form it means that you have a harder time pulling things out from the edge of the cabinets, with drawers it means the available width is reduced.

Cabinet hardware also varies, from simple hinges and drawer rails to soft-close everything. These are a matter of personal preference.

A further consideration is buying big brand-name cabinets or having them custom-built. The former are usually cheaper (they are mass manufactured, after all), but selection is more limited. They are often only available in 3-inch width increments, so they may not be able to maximize available space in your kitchen. Custom cabinets can be made to any specification, so your imagination is the limit, including your choice of exact finish color. Furthermore, a local custom maker can respond to problems quickly. Our contractor makes their own cabinets right behind their showroom. When my mom's cabinets showed up too shallow to fit dinner plates, they had to wait 4 weeks to get new ones and a lot of the job stalled during that wait!

Custom is clearly better, but is likely a little more expensive. If you go with a big-brand source, make sure you're not missing out on details that you'd like to have.