MathJax

Sunday, October 28, 2012

Fat Rejection Update: October edition

Thanks to everyone for your support and bugged-out eyeball facial expressions from seeing my interim results on Facebook. In some ways getting here was harder than I thought and in some ways it was easier. I haven't flawlessly executed on either my diet or Power 90, but I haven't let slip-ups and flaws prevent me from continuing, and that's been the most important part.

There are some big challenges up ahead. Halloween is the start of the Winter Fattening Season (ending around New Year's). Time for some reminders and motivations.

Motivations

  1. Never be fat again
  2. Win the love of a beautiful woman
  3. Live to 100

Reminders: Rules for awesome eating (see I Can Make You Thin!)

  1. If you're hungry, eat!
  2. When you eat, eat exactly what your body is asking for
  3. When you're eating, eat slowly enough to enjoy every bite
  4. If you think you might be full, stop! If it turns out you're still hungry, see #1
These rules are really all you need. You just really need all of them.


Tips by rule

  • 4: Clean plate club: LEAVE IT. Here's how you quit: leave something on your next plate. Throw it out, put it in the 'fridge, whatever. Just don't eat it. You don't need it. Leftovers are king. If you follow the 4 rules and go to a restaurant for a meal then you'll likely have a second meal from the leftovers.
  • 3: Deep breaths can have the same psychological effect as eating a big forkful of pasta. Try it!
  • 1: Drink water. When you really try to follow these 4 rules, sometimes you won't be sure whether you're hungry or not (a big help was to think how full I am on a 1-10 scale)
  • 1: Diet pop isn't good for you. No, I don't mean it gives you cancer (to the extent that it does, the heart attack would get you first). No, I don't mean it always tastes awful (e.g. Coke Zero, Cherry Coke Zero, Diet Dr. Pepper are delicious). Diet pop trains you to ignore what your body tells you about when, what and how much to consume. You get the sugary taste without the calories, adding noise to the signals your body relies on for feeling full or craving certain foods.
  • 2: On balance, alcohol and caffeine are kind of lame. The Mormons have this one right. Aside from whatever else they do, alcohol and caffeine make it tough to figure out what your body is actually asking for both qualitatively and quantitatively. Don't tell me your body is asking for Costco burritos. I don't believe you.
  • 1: Meal times are there to be ignored. After a few days of following the 4 rules, you actually do get into something resembling a breakfast/lunch/dinner scheme, except now it really is good for you. I agree with Scott Adams that "meal time" may be the most dangerous idea in our everyday lives in 21st-century America.
  • 3: Different parts of your tongue are sensitive to different tastes. Roll that bite of stuff all over the place and get the full effect--every time.
  • 4: Food tastes best when you follow these rules. When your body isn't specifically asking for a certain type of food or if you are full, the food will taste very bland in comparison. This is, in fact, a great way to tell that you might be getting full. I hate the cliché "hunger is the best spice" because to me it implies that if you get way, way hungrier, the food will taste way better, and failing to eat when hungry breaks rule #1.
  • 3: Before finding the 4 rules from I Can Make You Thin!, I was trying to count Calories. Calorie-counting is guaranteed to produce results as long as you match your intake and outtake. We're very bad at doing this numerically, which is why a key part of what I've been doing has been listening to my body's signals. That way the four rules don't have to change if you get sick or start working out or get pregnant. Calories let me know about how full a serving of some food will make me relative to how hungry I am. If I'm looking at 200 Calories of candy, not only is it probably not exactly what my body is looking for, it's also going to push back that salmon dinner I was planning to cook a little later.


I'm into the last 30 days of Power 90. This is the home stretch for the program, but I'm only treating the program as a whole as a first step. We're at the start of skiing season in the Pacific Northwest. I'll continue biking to and from work. The Seattle Bouldering Project is open year-round. Now is the time to start looking around for adult sports leagues. I'll continue my thrice-weekly morning martial arts training. I've still got that dog to walk. The end of Power 90 will not be the end of my active lifestyle.


Staying fat is for Santa Claus and Eric Cartman. If you only knew the rolls I've yet to shed and the ferocity with which I'll shed them....


Sunday, September 30, 2012

The Joy of Set: Hint 2

Edit: Clearly there's something wrong here: http://www.math.rutgers.edu/~maclagan/papers/set.pdf calculates that you can have 20 Set cards in-play without forming a Set...what's worse, it provides a counterexample to my calculation that you're guaranteed a Set at 14 or more cards.

So what's my mistake below? Simple: a single card may complete more than one Set, and I didn't take that into account. The rest of this post stands as a testament to the human need to simplify, the difficulty of problems in combinatorics and the addictive nature of writing posts with mathematical equations.

What is the largest number of Set cards that can be in play without having a set present?

We saw in hint 1 that given two Set cards, exactly one card will complete a Set. So for any \(n\)-card Set board containing zero sets, it means we don't have any of the \(\binom{n}{2}\) cards that would complete our set. Since the problem assumes that no Sets have been called, those cards are all hiding in the deck, out of play.

The possible largest \(n\), then, for which we can have n Set cards in play out of the 43 = 81 without a Set is the greatest integer \(n\) for which \(\binom{n}{2} \le 81 - n\):

\[\binom{n}{2} \le 81 - n\]
\[\frac{n!}{2!(n-2)!} \le 81 - n\]
\[n(n-1) \le 162 - 2n\]
\[n^2 + n - 162 \le 0\]
Testing near the following values of \(n\):
\[-1 \pm \sqrt{649} \over 2\]
Well, really just \(-1 + \sqrt{649} \over 2\), since a negative number of Set cards in play is nonsensical:
\[\frac{-1 + \sqrt{649}}{2} \approx 12.24\]

\(n\) needs to be a whole number. Since \(n^2 + n - 162\) needs to be less than or equal to zero, we'll take the floor for \(n = 12\). Let's check our work:
\[\binom{12}{2} \le 81 - 12\]
\[\frac{12 \cdot 11}{2} \le 69\]
\[66 \le 69\]
checks out. Pushing \(n\) up to 13 doesn't seem promising:
\[\binom{13}{2} \le 81 - 13\]
\[\frac{13 \cdot 12}{2} \le 68\]
\[78 \not{\le} 68\]

Since \(n = 12\) is our last chance to have a board with zero sets, it's tempting to say \(p(n) = 1\) for \(n \ge 13\). This actually isn't the case. Let's look at our interpretation a little closer and go back to the beginning just for a moment:

Since there is exactly one card which will complete a Set from a pair of Set cards, we need all of those \(\binom{n}{2}\) cards to be hiding in the deck. When there are 12 cards in play, the deck has 69 cards in it, and only 66 of those cards are refugee Set-completers. This means that from what's left in the deck, we have three choices for our 13th card which will not complete the set! The fact that there aren't enough hiding spots in the deck for Set-completing refugees at \(n = 13\) actually means that \(p(14) = 1\). The fact that there are three extra hiding spots for the 66 Set-completers at \(n = 12\) just means that from a board with 12 cards and zero sets we have a \(\frac{3}{66} = \frac{1}{22}\) chance of making it to 13 without a Set. This segues nicely into Hint 3....

\(n\)\(p(n)\)
00
10
20
3-12No spoilers!
13allllmost 1 (not fair, I've already worked out the full answer)
\(\ge 14\)1

The Joy of Set: Hint 1

Problem: http://gottablogsomewhere.blogspot.com/2012/09/better-living-through-mathematics-set.html

Hint 1: Choosing any two Set cards, there is exactly one card which will complete a Set.

We know this because in a Set, all four attributes of the three cards must be the same, or they must all be different. Each attribute has three values, so the third card has exactly one way to be either the same or different in each attribute from the other two. Each card is unique, giving us 34 = 81 Set cards.

Better living through mathematics: Set

Given a Set board with n cards in play, calculate p(n) = the probability that there is at least one set on the board, e.g. p(n) = 0 | n < 3, p(3) = 1/79. Now find the rest.

http://www.setgame.com/set/rules_set.htm

Monday, September 3, 2012

Better living through arithmetic

Does anybody like buying Microsoft Points rather than paying for games and songs in actual money? It seems like the company is pathologically clueless about how much customers hate this. Overall, I like Microsoft. I like the Xbox. But enough is enough.

Given that customers hate MS Points, my guess is the reason they exist is to increase overspend and lower Microsoft's cost of payments for Xbox Live transactions (how much it costs Microsoft to process a credit card transaction). In that case, here is the exact WRONG way to structure the exchange rate between dollars and MSP:

If you're trying to lower cost-of-payments by reducing the number of CC transactions, DON'T CHARGE CUSTOMERS MORE for buying more points. Some division:


The more MSP you buy at once, the more money it costs you per point. If you need 800 MSP, you can either pay $9.99 in one transaction or $4.99 in two transactions ($9.98, a savings of $0.01. A penny saved is a penny earned).

Oh yeah, and those 253 points I have locked up? I can't spend them on anything. There's nothing I want and no way to get the money back. That's a "thank you" for experimenting with purchasing music from the Zune marketplace three years ago. You're welcome, Microsoft. Now please fix this embarrassment.

Sunday, August 5, 2012

Fat rejection 4 days in

It's wonderful. I love it.

Some people have a skewed image of their body, and no amount of convincing will convince them they look good enough. Other people are fat. Convincing a fat guy he should be content with his disgusting body isn't doing him any favors. Here are some nasty unintended interpretations:

  1. Looks don't matter (so why shower? why shave? why replace tattered clothing?)
  2. Your body is good enough. Don't bother about making it better, it's fine the way it is.
I've had a few people say I should be getting in shape for myself, not for women. I suppose that now that I'm sufficiently disgusted with being fat, not being able to do a pull-up, dehydrating more readily when playing team sports, etc., I am doing it for myself. If I didn't get disgusted with being fat, the only reason I would have done it was to increase my odds with the ladies. And really there's nothing wrong with that. 

People do all sorts of things with finding a mate as a primary motivator; I don't think it's sacrilegious to have that as a reason to get a better body. I don't see why when someone hears sex appeal as a reason for working out and fixing their eating habits they immediately encourage the person to do it for him/herself instead. Motivations are really a personal business. It's a more effective motivator for my workout to be disgusted with being fat than to do it for girls, but it's bizarre how that's a motivation that's not socially acceptable. What are people trying to do, demotivate fat guys from taking steps to quit being fat guys? No. I think it's well-intentioned leftover inertia from discouraging people (especially young women) with improperly poor body images from developing eating disorters. But as long as I actually am fat, don't worry!

My motivators, in order:
  1. Stop being fat, then never be fat again
  2. Win the love of a beautiful woman
  3. Live to 100 (hooray for a family history of heart disease!)
After that, yeah, I'd like to be able to do a pull-up. But that's about it. I'll keep these motivators, especially #1, as a reason to maintain an active lifestyle, which is fortunately easy around here between hiking, walking, kayaking, skiing, biking and sports leagues. It'll be a lot of fun and I'll never be fat again.

Monday, January 9, 2012

Information Hiding when teaching

An aspect of teaching I haven't yet consciously appreciated is the ability to hide the extent of your own knowledge. The human mind has a limit to how much new information it can absorb, and if you want to teach effectively you need to plan around that limitation. I don't teach often enough to know what that limit is.

This limiting of information is challenging for me for a few reasons. First, I want to show off. When I know a lot about the subject, I get a kick out of explaining as much of it as I can at once. I need to stop myself so that my informal students have a chance to internalize the material, but often I don't. It's too much fun showing off.

As an example, I know a lot about chess that's worth teaching to other amateurs. I'm chalk-full of opening wisdom, tactic names, endgame basics, ways to dissect a middlegame position and book recommendations. The key for me is to slow down and deliver it in manageable chunks. The four-sentence rule applies here.

Monday, January 2, 2012

Goal setting

I love Amazon. I love my team. You have to push yourself. If you’re hitting more than 70% of your goals for the year, you’ll get scolded for not pushing yourself enough. It’s an interesting rule of thumb and I love how that contributes to challenging ourselves constantly.

How about this: The first year on the job, commit to goals of a certain value. Maybe even hit these 100%, you sandbagger. Next year, commit to delivering double the value. Hopefully now you’re in the 70% zone. For the next year, commit to delivering double that 70% value (140%). 

You should hit about 70% of that value (we’re at 1.4 * .7 = 2 * .7 * .7 = .98). .98 / .7 = is a 40% year/year growth in the value you can deliver, which makes sense in your first few years at a company between early ramp-up and increasing ROI from early tool development. 

If you’re automating anything repetitive, if you’re constantly soliciting customer feedback, you’ll be working much faster on more of the right things. Since 6/7 of software projects fail and the #1 reason for project failure is building the wrong thing, you won’t be doing 1.4x the work every year but you may still yield 1.4x the value. And if you can do that, nobody cares if your actual effort increases. J

Drop the T already

Which T? This T:


The title of Software Development Engineer in Test arose when Microsoft saw a need to have more technical staff involved in testing software than the Software Test Engineer (STE) army it maintained. Managers and recruiters lured candidates to these open positions with assurances that, while there might not be as much coding in these roles as an Software Development Engineer (SDE) would have, SDETs really are just SDEs on the Test team. Some teams got the memo and actually used their SDETs as SDEs on the test team. Others changed their STEs' titles to SDET and told them to learn to code. Others simply changed their STEs' titles to SDET.

Microsoft and Amazon maintain that hiring guidelines for technical skills for SDEs and SDETs are identical. There is an entire discipline devoted to software testing (STEs/Quality Assurance Engineers (QAEs)), so SDETs are expected to master that job as well as their own. This is somehow seen as special, even though SDEs should become very familiar with the business domain of the products they product anyway.

In spite of having an identical coding bar on paper, seeing SDETs as second-class developers is still the rule rather than the exception. This is true wherever SDETs are not expected to deliver as much functionality through building software as their SDE peers, which is also the rule rather than the exception. That SDET you hired in part because he could code at the SDE level? He won't be nearly as valuable to your company in three years if you don't support him in his efforts to add value through building software.

Software Testing/QA teams provide specific services for the products they support. Some of those services, (e.g. tooling, automated test suite creation and maintenance, integration testing libraries to export to other teams, load testing) require good software developers. Developing test plans, traversing exploratory testing checklists, designing test passes to maximize ROI, filing and advocating for bugs and communicating a level of risk assessment with a software product are important disciplines, but they don't require the high computer science technical bar that large software companies demand of SDET job candidates.

Expectations for SDETs don't just vary from company to company; they even very within large companies such as Microsoft and Amazon. Everyone knows that SDEs write code and that SDEs at Microsoft/Amazon/Google/Facebook need to be really good at writing code. They don't know what to expect from candidates with SDET experience.

Your smartest, most valuable SDETs are keenly aware of when their technical skills are growing and when they are not. Your smartest, most valuable SDETs are so smart and so valuable not just because they have talent but because they have spent countless hours perfecting their arts of software development, software testing and software project management. Your smartest, most valuable SDETs will fight tooth and nail to protect these investments in themselves and in their careers, and your smartest, most valuable SDETs will not have any trouble finding employment on teams that can promise the growth they desperately need. And even your smartest, most valuable SDETs need this growth, and need it especially, or else your smartest, most valuable SDETs will fail to measure up against either their QAE or SDE peers since they are spending less than half of their time in one of those roles.

Think about how you treat your SDET interns. SDET internship projects are almost always tool development SDE projects. This is both because you want the intern to have a positive experience and because current full-time SDETs are too bogged down in project delivery (test planning, test plan execution, test plan result reporting, regression test failure troubleshooting) to write tools that would help themselves and their peers. I've seen it over an over again: Teams recognize the need for a tool, think of it as an "intern project" and recruit for the summer while they continue to support customer-facing projects. The summer intern is a sharp kid and delivers a working version of a tool that looks great in the demo. Demand for the tool spikes since the team was correct when they identified the need, and the intern's toy becomes a valuable asset to the team. The problem is that while the tool works as a proof-of-concept, the implementation is awful and the tool needs to be refactored or rewritten to address future needs. "Maybe that's a good project for next summer's intern."

At the end of the day you've lost a valuable technical growth opportunity for your best SDETs who are dying to write more code for you as their job, you've tricked an intern into thinking that SDETs really are just SDEs on the test team (which they should be if you're going to title them SDEs in Test) and you've racked up technical debt with a bunch of rookie mistakes embedded into your new business-critical tool. Any gains you make in the space of a full-time hire for next year will evaporate as the former intern realizes that he liked his internship because he was an SDE, not an SDET and seeks employment elsewhere.

Drop the T for your team's sake. Look at each of your directs. Give them a choice. If their expertise has focused mainly on test planning and how to find the highest-severity bugs in the shortest time possible, they will benefit in a prestige-enhanced QAE or STE role. If they can't measure up as SDEs then they need to know now. If you, as a QA manager, run a team that doesn't have enough value to add through building software, you need to know now, and the SDE+QAE bastardization that is the SDET job title only adds chaos and confusion to the mix. You don't need SDETs; you need QAEs and SDEs on the test team.

Happy New Year 2012!

My resolution: Handle injecting nerdy tidbits into conversations differently.

I'll explain: My natural inclination, when adding an obviously nerdy relevant fact to a conversation, is to say it in a really nerdy voice. The voice at that point becomes the focus of attention rather than the fact. So, an experiment! Say the thing that happens to be nerdy, but if I'm not using a normal voice, use a sexy, seductive voice. Something either in the Barry White register or from merry old England.

Don't trust anyone under 30

While saying my goodbyes at my mom's-side's Christmas party 2011, my Grandma took me aside and said she felt obligated to impart some words of wisdom for life and the new year. She didn't have anything in particular, so she asked if I, perhaps, had some Young People wisdom for her. It's humbling to hear such a request from my mom's mom.

At the tender age of 25, I turned to my grandmother and said, "Young people words of wisdom, eh? Hmm. Okay, got it: Young people don't know anything. Don't listen to them."