Rocketmonkeys Posts http://rocketmonkeys.com/ en-us Don't make any diagonal moves (ie. make many small changes) http://rocketmonkeys.com/post.442 Don't make any diagonal moves (ie. make many small changes) <br/> <br/> While developing, it's always tempting to combine two changes at once. If you're fixing a bug in your code, and there's also an upgrade to the library you happen to be using, it's tempting to combine the two. "I may as well do both while I'm here, it'll save time." <br/> <br/> It's true in a short-sighted sense; there is overhead to making changes, so combining changes will save overhead. <br/> <br/> However, similar to products that have total-cost-of-ownership, there's a total-cost-of-dev for changes. This includes testing time, bug fixing time, predictability, reliability, and most imporatntly risk. <br/> <br/> Let's assume some very random and meaningless numbers: <br/> <br/> Change #1: 2 units of time <br/> Change #2: 3 units of time <br/> Overhead for a changeset: 1 unit of time <br/> <br/> So making these changes separately: <br/> <br/> Change #1: 2 unit <br/> Overhead: 1 unit <br/> <br/> Change #2: 3 unit <br/> Overhead: 1 unit <br/> <br/> Total: 7 units <br/> <br/> Making the changes together: <br/> <br/> Change #1: 2 unit <br/> Change #2: 3 unit <br/> Overhead: 1 unit <br/> <br/> Total: 6 units <br/> <br/> This saves 1 unit of time. That's good. <br/> <br/> However, let's think total cost of dev... <br/> <br/> Separate changes: <br/> <br/> Change #1: 2 unit <br/> Overhead: 1 unit <br/> Testing time: 1 unit <br/> Bugfix time: 1 unit <br/> <br/> Change #2: 3 unit <br/> Overhead: 1 unit <br/> Testing time: 1 unit <br/> Bugfix time: 1 unit <br/> <br/> Total: 11 units <br/> <br/> And combined changes: <br/> <br/> Change #1: 2 unit <br/> Change #2: 3 unit <br/> Overhead: 1 unit <br/> Testing time: 2 unit <br/> Bugfix time: 4 unit <br/> <br/> Total: 12 units <br/> <br/> The trick here is to assume that 1) combining changes increases the risk of bugs, since the overall changeset is more complicated, and 2) that debugging in this case is more complicated & time consuming than if the changes were separate & smaller. <br/> <br/> In the original example, say you make a bugfix, but in testing find that this introduces another unrelated bug. If you've also decided to upgrade the library itself, how do you know if the new bug is from your fix or the upgraded library? If downgrading the library is non-trivial, the debugging gets much more complicated & time consuming. <br/> <br/> Even if you ignored the added complexity of debugging, there's also the fact that the amount of time saved (ie. the overhead) is trivial compared to the overall time spent. Saving a few minutes on something predicatable does not seem like a smart choice if it adds complexity and time to the already-unpredictable process of debugging. If anything, we should increase the amount of predictable time (on things like defensive programming & process) to reduce the unpredictable time (ex. spending days fixing issues on Production due to a "very simple fix" like upgrading a library or fixing a small bug). Sat, 25 Jul 2015 01:00:02 -0500 http://rocketmonkeys.com/post.442 Debugging is about removing assumptions http://rocketmonkeys.com/post.452 Debugging is about removing assumptions you've made. When a developer gets a ticket for a bug, they immediately start diagnosing what could be causing the problem. Then they are constrained by their own assumptions. <br/> <br/> "This is failing on the server, but working on my computer. The code is exactly the same. This can't be happening." <br/> <br/> "I ran this same SQL query on the test server, then ran it on the prod server. They should be exactly the same server version, but it says that a certain keyword is causing a syntax error." <br/> <br/> In almost every case, the reason the dev can't find the problem is that they're making assumptions. Remove all assumptions. <br/> <br/> "This is failing on the server (is it? Are you looking at the right site?), but working on my computer (is it? Did you rebuild the site? Did you paste the URL into your browser, forget to hit enter, and you're looking at old code?). The code is exactly the same (Did you forget to update your repo? Did you rebuild? Is the web server holding onto a cached copy?). This can't be happening (It is)." <br/> <br/> But many devs don't start reaching into those assumptions and testing them. Test your assumptions. Try changing the connection string to the DB. Use a different browser, clear out cache first. Rebuild the site with a debug logging statement to see that you are definitely looking at the latest code. Intentionally add an error to make sure it actually fails in a way you can see. Start commenting out lines one at a time, especially the ones that you know for a fact are "safe". They're not. <br/> <br/> It basically boils down to this: test, don't assume. If you *think* the code is the same, *test* that the code is the same. If you think that the server has the same version, then *test* that that's the case. There is no substitute for testing. Thinking very hard, remembering, assuming, guessing; those are all other ways of saying "not testing". Tue, 22 Oct 2013 10:54:37 -0500 http://rocketmonkeys.com/post.452 Hunger Games http://rocketmonkeys.com/post.451 I'd read the book on a whim. I just picked it out of a top seller's list. It's like Ender's Game and Twilight combined (though thankfully just a touch of the latter). Aimed at young audiences & a bit emo (especially in the second and third books), but the protagonist is captivating. The idea of a downtrodden reluctant heroine with a deep heart, self-loathing, and hidden tenaciousness is really the key here. <br/> <br/> Jennifer Lawrence; great choice. I know fans were a bit surprised w/ her as the lead, and worried about how she'd do. She did great. <br/> <br/> They made this PG-13. A book about children killing, burning, stabbing, dismembering other children. How?! The book is really R-rated (very violent & graphic). I suppose if you don't show blood (or just change the color) you can get away with a lot in the US. But really... the source material is R, and a real R movie would have been intense, disturbing, and would have done awful at the box office (and alienated fans). I'd be really curious to watch that movie. <br/> <br/> It's about what I expected, maybe a bit better. It hits the finer points of the book, Lawrence does well as the protagonist. It leaves out a ton of the self-loathing & drudgery of the book, but that's probably for the better. If they can remove that a bit from the second & third books, that can only be an improvement. <br/> <br/> I'd watch more. This isn't amazing, but neither were the books. The books were captivating & memorable though, and this doesn't hit far off. Sat, 10 Aug 2013 01:00:03 -0500 http://rocketmonkeys.com/post.451 Zero Dark Thirty http://rocketmonkeys.com/post.450 Amazing, intense, thought-provoking film. It seemed dry & boring - the search for Osama Bin Laden. This is not an action oriented movie, most of it is about paper, talks, spies, etc. <br/> <br/> But there's enough action at the end for the final takedown, and the entire feel of the film is realistic and intense. They may not crash cars into building & shoot every bad guy in sight. But the silence and slow intensity of the action, coupled with the dry suspense of all the build up, and finally the uncomfortable portrayal of torture as a means of intelligence gathering; it all culminates in a really intense and exciting, but taxing movie. Mon, 05 Aug 2013 01:00:04 -0500 http://rocketmonkeys.com/post.450 Uncertainty http://rocketmonkeys.com/post.449 This was a "Sliding Doors" type movie; what if a simple event cause the timeline to change? What would happen in each case? <br/> <br/> It feels indie, which it is. And that means the ending is unfulfilling & pointless; that's pretty much a requirement of the genre. <br/> <br/> Things happen, you get a little background. But not enough, and there's a lot of downtime & shots of "normal life" - things not relevant to the plot. It's like going to a multi course meal, but between each having to sit & eat a lot of dry bread. That's not really entertaining. <br/> <br/> It's not bad. Just in the end, not really enough to make this movie good. Some will like it for the feel & peek into their lives. But the plot device really isn't a big factor here, and doesn't give the audience much. Thu, 01 Aug 2013 01:00:03 -0500 http://rocketmonkeys.com/post.449 Jack Reacher http://rocketmonkeys.com/post.448 Fun to watch, since it's action. But it's like someone took the cover of one of those disposable action book series and just ... moved it around a little. <br/> <br/> This movie unfolds like an Amazon description of a book series. Hard-fighting ex-military 6' 5" (really? Tom Cruise? Really?) guy roams the country doing good, then disappearing. Who was that masked man? <br/> <br/> But it feels like someone read the book, then translated it line for line into dialog. And that doesn't bode well for this noir-ish movie. They're missing the saxophones & smoke, but the rest is there. <br/> <br/> The dialog is just... awful. There's constant quips, which really don't work well ever for any character, but esp. not for the straight-laced Cruise in this one. All the characters are just flat. They're just plot devices. <br/> <br/> I'm not sure how they could have fixed this one, or if they should have. I wonder if the book series is much more in-depth, with more meaningful characters and much less campy dialog. But I suspect that may not be the case. At any rate, this movie is just... obvious & flat. Tue, 30 Jul 2013 01:00:03 -0500 http://rocketmonkeys.com/post.448 Silver Linings Playbook http://rocketmonkeys.com/post.447 I'd heard all the buzz before I knew anything about this movie. I finally got around to seeing it once things died down. I think I expected a heavy drama, lots of emotional conflict & fights, some tear jerking heart warming, and some indie-style bokeh shots. It's easy to skip this one in lieu of an easy action movie most of the time. <br/> <br/> It did hit everything on that list, and yet I wasn't really prepared for how good this movie was. It's amazing. I can't say enough about it. It shows so much about the two leads; they're really what pulls this off. But then again, there are so many things right in this movie (overall plot, feel, dialog, characters, the slow pace, the (not quite) subtlety). <br/> <br/> Bradley Cooper and Jennifer Lawrence - who knew. Cooper I'd seen in some comedies, I wouldn't have thought he could pull this off. He does. And Lawrence - I know she's done some serious roles (Winter's Bone) but I haven't seen them yet. I've mostly seen more action ones (Hunger Games, X-men). But this really cements both in my mind as amazing actors. <br/> <br/> Good job guys. Thu, 25 Jul 2013 01:00:02 -0500 http://rocketmonkeys.com/post.447 A Good Day to Die Hard http://rocketmonkeys.com/post.446 Ugh. This is just as awful as the reviews would have you believe, and worse. <br/> <br/> The whole Die Hard series is pretty incredible. There's so much legacy here, and so many of the sequels have been really gripping & unique stories in their own merit, let alone taken as a series. There aren't many recurring characters besides the lead, but that doesn't matter. <br/> <br/> The last one (number four, Live Free or Die Hard) had McClane's daughter in it. She did alright, wasn't that big a player, but I suppose he had to have someone to rescue (how many times can Bonnie Bedelia get stuck on a plane?). <br/> <br/> This movie featured his son. In Russia. With lots of guns, action, helicoptors, etc. It's an absolute flop. <br/> <br/> McClane is reduced to a grumpy old man with lame catchphrases ("I'm on vacation!"... does that get funnier after the 10th time?). The actions in this movie don't really make much sense. I think the "I'm going to shoot the heli down with a car" scene from the last movie was a bit more believable. <br/> <br/> His son is completely lame and flat as a character. <br/> <br/> At the end, what really happened? What was the point? Who knows. It's just an excuse to revive the franchise, put the character through a few more paces, and make yet another sequel (Die Harder? These names are getting a bit ridiculous). <br/> <br/> The problem is that the plots and many scenes from previous movies are just so memorable; the icicle stabbing, plane hostage takeovers, heli-car shootout, falling off the Nakatomi tower in slow mo. This movie has... a heli shooting a building? I'm not sure. Nothing really stands out to me. <br/> <br/> So, severely disappointed. They had some amazing movies, but this proves it's just become a cash cow. Movie goers will keep seeing these because of the name & mindless action. They don't need to do better. Sat, 20 Jul 2013 01:00:04 -0500 http://rocketmonkeys.com/post.446 Oz the Great and Powerful http://rocketmonkeys.com/post.445 This one was a bit confusing. I feel like there was a lack of clear direction here, like a few different visions/directors were having input into what the feel of the movie was going to be. <br/> <br/> First; I do like James Franco. But he really didn't pull this off. I think he's a bit too aloof to give this character the "scumbag with a heart of gold" the heart that would make us empathize more. <br/> <br/> Same with Mila Kunis. I like her in other things (comedies like That 70's Show) and she wasn't bad in Book of Eli (if still a bit... un-emotive). But this one just fell flat. She's supposed to be the naive witch who falls for the protagonist, then gets her heart spurned and you get to see her descent into evil & corruption. But neither part is that convincing. <br/> <br/> Just about all characters seem flat. You know where they were going, but they didn't quite get there. <br/> <br/> The opening black & white section (the real world, pre-Oz) is confusing low-budget looking. My suspicion is that they were intentionally trying to mimic the old-fashion set look, as a throwback to the old movie. But maybe that's just hopeful thinking; really, it just looked like they ran out of budget and didn't know how to work a set. <br/> <br/> I kept thinking I was watching Alice in Wonderland. But there weren't enough colors for that, and not *nearly* enough Johnny Depp. Which is a bit ironic, since he was one of the top picks before Franco for the lead. He would have done it, and well. But I think a more straight approach would have worked here. The other top pick was Robert Downey Jr. I think he would have been perfect for an Oz film, but probably not this one; it wouldn't have made the rest of the script & characters better. <br/> <br/> It's too bad. The story & heritage of Oz is neat and magical, and this just falls flat. I wouldn't be very excited for any other sequels from the source material, unless it's a reboot. Plus, thanks to copyright issues this is based on a non-copyrighted book, but cannot borrow anything from the Wizard of Oz movie which is still in copyright. So no Dorothy or ruby slippers. <br/> <br/> This just feels like a badly done rehash. I need to go watch Return to Oz. At least they didn't try to emulate the original, and instead attempted to give little children lasting nightmares of severed heads and the Wheelers. Mon, 15 Jul 2013 01:00:03 -0500 http://rocketmonkeys.com/post.445 Snitch http://rocketmonkeys.com/post.444 Dwayne Johnson in a movie about a father who has to, for noble purposes, go back to his criminal ways. The "message" behind this film was pretty thinly veiled; someone has a vendetta against the minimum sentencing program. Some lines read like they were out of a propaganda brochure. <br/> <br/> The Rock did pretty good. He's a bit awkward at times, and some of the "I'm going through a really tough time as a father" doesn't really make it. But it has enough suspense and action to be enjoyable, if not that memorable. Wed, 10 Jul 2013 01:00:03 -0500 http://rocketmonkeys.com/post.444