Wednesday, November 12, 2014

Toiling in Anonymity, a brief memoir

This morning the world is particularly excited about the Philae spacecraft. It's goal is to land on a comet to use it's bee-bop's and doo-dad's (technical terms obviously) to collect gasses and mineral deposits, all apparently to help contribute to our understanding of not only life on earth, but life of our solar system as well.

All very exciting stuff, and today it's the first time I'm hearing about it.  According to that wikipedia page I linked to above, this project launched March 2, 2004.  Now, I certainly don't know for sure, but my theory goes something like this.  March 2, 2004, a bunch of people were walking around the Guiana Space Station, putting crazy hours in drinking coffee and not sleeping all that much and walking through all of these crazy scenario's on how to launch and land this thing.  On March 2, there were a ton of people there to watch the launch, on in the ensuing days there was a wind down of reporters and reports on the project.  Then.. there was nothing in the news.. fast forward 10 years, and now we're seeing front page headlines again.

This scenario reminds me of a previous work experience.

Many moons ago I was part of an IT team that was swallowed up by a parent organization to help launch a major software\hardware initiative.  Our business was practically ignored because the parent company had overspent by millions on the project, and the project was at least 2 years overdue prior to when we were brought in.  Our team accounted for 50+ people in itself, and we were tasked with buttoning up, testing and launching the new system's in about 12 months.  It was a lot of work, there were a lot of people, there were a lot of scary moments, and we got it done.  For over a year we toiled and sprinted and just pushed our boundaries.  I was on the web team, so we had a few website initiatives.. namely building a new "checkout" piece and helping piece together an existing front-end application.  There's an added pressure in web scenario's because of the site is down.. you're down.  It doesn't matter how slick the back end systems are, if business can't go in, they're a moot point.  For further proof look no further than the botched healthcare.gov launch in 2013.

All systems went live, and the web projects had their fair share of glitches, but overall things went smooth.  Like all software projects, there are items you need to patch immediately, short term, and long term.  We had quite a few short term fixes, and within the first few weeks of the launch many of us.. web team included.. were burning some midnight oil to keep things going smoothly.  One afternoon our team was still writing code, analyzing error logs, meeting about various items, but most of the building around us was eerily quiet.  It was about 20 minutes before a flood of people came back, happy as can be, asking "hey where were you guys!?" in a cheerful tone. 

While we were upstairs, most of the project team had a somewhat impromptu celebration, passing out champagne and praise and celebrating the many successes of the project.  While we were upstairs, writing code and altering poorly thought out design's we had inherited, VP's and team leader's were downstairs high-fiving and shaking hands and talking about how smooth things were going.

Do I seem bitter about it?  I am.. a little...

So looking back on that experience, I now think about this Philae spacecraft.  How many individual's worked and toiled and sacrificed for the past 10 years?  How many other's worked prior to those 10 years building and launching this spacecraft in the first place?  And then, in an instant, they're headline news.  One day, it's any other project.  Today, they show up for work and there's no parking spaces, and the media room is standing room only, and there's requests for news conferences.  It's just a funny, fickle, sort of thing.

So what's the point of this?  I'm not sure, I suppose it's that you should always be sure to respect the small things.  I've always been an advocate of team mentality.  If you're good enough to go it alone.. then why shouldn't you, but for most of us it’s important to help and support and assist, and a communal effort is a good thing.  Don’t get me wrong, the world needs the Ada Lovelace’s and Tim Berners-Lee’s and the Bill Gates' and the Steve Jobs' and the Mark Zuckerberg's and the Elon Musk's, but hell, it's not like they're all one-man-band's either, right? 

Those who get their hands dirty every day just know, they know what it's like to get held up on a problem, and regardless of how minute the world may think it is, they know it's still important to have it done right.  And they know it's more important to get quality out there in the world rather than high five and celebrate, and that the work itself is often the reward, not the press conference.  Don't get me wrong, that stuff is cool (and sometimes deserved), but remember that for every project that has a front face, there's some group of people behind the scene's pushing bee-bop's and pulling doo-dad's (again, technical terms here) making things work, and someone has to perform these functions while other's are in the limelight.

Friday, October 17, 2014

Book Review: What If?

What If?: Serious Scientific Answers to Absurd Hypothetical QuestionsWhat If?: Serious Scientific Answers to Absurd Hypothetical Questions by Randall Munroe
My rating: 5 of 5 stars

I haven't enjoyed a book.. I mean ENJOYED.. this much in a long time. It's a fun read, each chapter is independent of one another, and is really a collection of thought experiments. One chapter talks about if meat would be cooked if you dropped it high enough from the earth. Another chapter discusses how far away one human has been from civilization.. and if they were lonely. Another chapter was about building a bridge made of LEGO bricks.

The science in the book is.. frankly.. above my head. Randall Munroe could tell me that he figured everything out by taking the square root of Pi and multiplying it by 3 and I would just believe that it makes sense because I don' know any better. That being said, the book isn't about the math, it's about having a combination of 50% (physics, geometry, calculus, astronomy, geology, sociology) and 50% humor.

And that is the magic of this book. I remember hearing a long time ago that Michael Jordan was *that good* because he made everything look so easy. When you can achieve success and make it look effortless, it shows what kind of expert you are. Randall Munroe makes solving the mundane look effortless.. and it's fun to read.

View all my reviews

Tuesday, October 14, 2014

What’s more important, Knowledge or Experience?

In a previous post, I mentioned how I was asked to speak at a local college to their computer club. During the Q and A session afterwards, I received some really interesting questions that were a lot of fun to deliberate on.  One question I received bothered me, because I answered it, and then thought about it, and then realized that I answered it wrong.  The question was “What do you think is more important, knowledge or experience?”

And so, that was the question that has driven me crazy the past several days.  My initial answer was rather blunt.  I stated “experience”, and told the students that I wasn’t very good in school, and even though my base of knowledge from that time was rather poor (in my eyes anyway), I had accumulated 12 plus years of experience in business, IT, software development, and all of the accoutrement’s that accompany those experiences (emergency bug fixes, small\large projects, project management, varying technologies).  So in other words, I wasn’t fit to speak to the club because of my college GPA, but because of the body of work I had accumulated over the last 12 yars of my career.

The more I thought about this question, the more I wished I answered the question better. After more thought, I think the answer is “both”.

Book knowledge is always helpful. We live in the “Information Age”, and as we have always looked at history and found that the invention of the printing press was one of the great advancements in society, future generations will say the same for the Internet. Knowledge is at our grasp at all times, from weather to news to history. Experience on the other hand teaches specific lessons. Every lesson learned typically comes down to one of two things:

1. “this worked because of X”
2. “this didn’t work because of X”.

When all the books stop their text, end the paragraph or go to a new chapter, experience continues to isolate variables and.. for those who pay attention.. indicate what steps make a difference between that fine line of success and failure.

So above, I stated that I switched my answer to “both”, well.. why?  Much like the term “focused intensity” indicates, we’re at our best when we dedicate to a few specific tasks, rather than trying to capture as much as we can. In sports, for every 1 Bo Jackson who can play every sport exceptionally well, there are 1,000,000 professional athletes who can only play one sport exceptionally well. For those million, it’s because they have the combination of knowledge and experience. They have that focused intensity on their primary subject matter, and the experience they receive continues to reinforce the knowledge they need to exceed.

So in the end, I think the most important thing to do is to focus on your skill and dedicate a lot of time towards it (practice makes perfect, right?). It’s important to multi-task, but not over-extend (we all have varying levels that we can multi-task, so we all need to find our own limitation). Over time, that continued experience dedicated towards that subject matter knowledge is what grows an individual into an expert. Knowledge gives us the breadth of expertise to know how far the landscape extends, but experience helps us learn that landscape more thoroughly.  Each in their own right are important, but the combination of the two can truly create success.

Sunday, October 12, 2014

Adventures in Cookin’ - Chili

So Randall Munroe of XKCD fame recently published his book What If, which is just a terrific mix of “I never thought of that” and “LOL”.  One chapter discusses if you can cook a slab of meat by dropping it out of the atmosphere, which turned into Randall Munroe mentioning scientifically what it takes to cook something, which led to him referencing Cooking for Geeks by Jeff Potter.  My co-worker and I always laugh when we talk about how easy it is to buy something nowadays.  It’s like… you think about it, impulse buy, and you have it.  So.. guess who bought Cooking for Geeks?

Inspired with my new purpose, I wanted to cook.  It was a lazy Saturday, the weather was a little cold out, and I like meat.  So, I made chili.  Of course I needed some help, so my wife guided me to ensure I didn’t screw up (which I still kind of did), but in the end.. I did it!  I made chili that was edible.. and pretty tasty too.

WP_20141011_003

I started with 2 cloves of garlic, diced it as fine as I could without cutting my fingers off, and threw it in a pot with some oil and chopped onion’s to simmer.  (Youre thinking “Why didn’t he mention dicing onions, and it’s because they were frozen and in a bag, what’s the point in referring to today as a lazy Saturday if you’re not a little bit lazy?).  Then my wife said “Let that go for a while and add your peppers”.. all I heard was “blah blah blah add peppers”.  I diced up one red and one green bell pepper.. and that yielded a lot of peppers!  So I took half of that yield and threw em in the pot (the other half went into the freezer so next time I’m making chili I can be even lazier and not chop anything).  That cooked on medium heat until the garlic started to brown… it took a little longer than normal apparently since I added the peppers so early.

WP_20141011_004

I then added the meat to the mix and started to chop it up, slowly turning the meat to get it to brown.  Every few minutes I gave it a turn to also make sure that the garlic\oil mixture didn’t start to burn.  Once I got the meat browning, I turned the heat down some as well.. I’d like to take full credit for this executive decision, but honestly, my wife said “hey, turn the heat down so the garlic\oil mixture doesn’t burn”.. and after the “mishap of the chopped pepper’s”, I decided to listen this time.

WP_20141011_007

Once the meat got cookin’, I started adding some.. you know.. flavor.  I started with a Tablespoon of chili powder (only 1T because it was so salty), and 1T of mexican spicy chili powder, which wasn’t nearly as salty as chili powder Americana, but also had some cumin in it that added.. umm.. something cuminy.  The rest was more or less a season-to-taste mixture of paprika, smoked paprika, Cayenne pepper, black pepper, onion powder, garlic powder, and 1/2 to 2/3 a bottle of chili sauce (again.. season “to taste” is the idea here).  I also threw into the mix a Left Hand Nitro Milk Stout.  I really like this beer, it’s considered a “sweet stout”, and it’s like having a Guinness stout, but instead of a bitter finish you get sweet.. and a note of coffee.  So half a bottle of beer went into the mix as well.  I also added a can of chopped tomato’s, red kidney beans and black beans.  After all, what’s chili without beans?

WP_20141011_006

As I said before, this was all season to flavor, so many of the elements mentioned above were added over time (specifically, I kept adding chili powder - “Chili P is my specialty yo!” for all of my Breaking Bad fans out there – pepper, Cayenne pepper, and garlic\onion powder over time).  I put the heat on low, put the lid on, and let it simmer, giving the occasional stir. Pro-tip, there’s beans in there, go easy when stirring as to not break up and destroy the beans!

WP_20141011_008

So I started cooking around 3 PM, had the meat in the pot with the aforementioned ingredients by 4PM, and I ate dinner at 7.  So, my ingredients had a few hours on a lower heat to really blend, and in the end, I’m happy with how they did.  There was a hint of sweet in the chili, that could be from the beer, it could be from the chili sauce, or it could be in my head.  I like sweet things in general, but my aim wasn’t to make this sweet, I really just thought I picked up on something sweet, but not overpowering, which I’m fine with.  When I’ve cooked in the past I’ve had issues over-seasoning one time, and under-seasoning the next.  So, with guidance from my wife, I’m proud that I didn’t screw up! 

Wednesday, October 8, 2014

IT Pro Tips

I’ve had the opportunity in the past to teach at a local college from time to time, teaching either intro to object oriented programming, or intro to IT.  Surprisingly, I’ve enjoyed the intro to IT class more than anything because it’s so broad.  More surprisingly, somebody let’s me teach!

I wasn’t a very good college student.  When I tried, I did well.. I just didn’t try.  Why?  I was lazy.  It was easier to hang out with my friends then stay home and read (ironically, now I’m so busy with work and raising my daughter that I wish I could sit at home and read all the time).  It took a few year’s to get my act together.  I had a chance to reflect on this because this same college asked me to come by and talk to their computer club.  When I asked what to speak about, they said “anything”.

So the college Eric Witkowski would have waited until the last minute, tried to go to the podium and make people laugh, and walk away without caring (boo college Eric Witkowski).  The IT Pro Eric Witkowski said “OK!” to the request to talk, and then went home and said “What in the world can I talk about?”  And really, I wanted to think about this some.. I wanted to do this right. 

So the first idea I had ended up being the idea I ran with.  I didn’t want to at first, but it was ultimately the best choice.  I could have talked about what it’s like to go into a world of programming, or how the Internet works, or why HTML5 is so popular and special, but they weren’t right for me to talk about.. at least this time.  Instead I went with “IT Life and how (not) to get fired”. My talk was kind of embarrassing, but now that I exposed my demon’s, it’s a little more gratifying to talk about now (even on my public blog).

My talk went on to say who I was, and what challenges I face in the IT world.  Item’s like a user stating “I need this NOW” but then requesting “so, how long will it take?”.  And when I say “3-4 weeks” I get the reply “but I need this NOW!”.  Other items include Marketing needing a website to handle 100,000 users per month, when you well know that you won’t get that many users in a year.  Or when user’s say “X isn’t working”, but then you ask for details like the error message\code, what they’re doing that possibly caused the error, etc. and get nothing in response.

From there, I leapt into how I found the IT world in the first place, and how I managed to also not make it into the IT world in the first place.  I took an Advanced Placement course for programming in high school and got a 1 out of 5 on the exam (that’s bad).  I got an internship and showed up late. At first, I thought we just started at 9AM, not 8AM.  When I was informed that we started at 8, I tended to sleep in and arrive late.  When I was given a small piece of a project to write\test something, but because I was “just an intern”, people constantly knew to scrub and test my work.. because I wasn’t very good at doing so myself.  When I was (somehow) hired full time, I was still a little lazy, and one time called in “tired”, and to the class I informed them of how my boss at the time had to sit me down and really explain that he’s fighting and pulling for me, and trying to get me experience and opportunities, and I went ahead and left him a voicemail saying “I didn’t sleep the best last night, so I’m taking the day”. 

It was interesting, because until I did this presentation, I never realized that this was the moment where my career took a turn for the better (I subsequently emailed my former boss that essentially said “umm.. thanks for not firing me”).  But therein, I was able to explain to the group that during that wake up call, I really had a chance to say “I was only doing X, but needed to do X + …”, and how doing these extra things started to round out my career, be more professional, be more successful and start to be more of a leader in my organizations that just a follower. My favorite way of discussing this was to point out that when I was initially hired for my first position, I was hired to do this:

image

And now, I do this:

image

What I really wanted to explain was that this list is nowhere close to where I need to be, nor where I plan on being when my career wraps up somewhere around 2043. And so, that brought me to the final point of this blog post, which was to showcase the items that *I* think are important for IT professional’s.  Perhaps these are common sense, perhaps you’re doing these things already, perhaps you think they’re wrong.  For me, these were items that worked for me, and so.. I hope they can help you as well.

IT Life – Tips

  • Project Management skills are important for *all* employee’s
    • Requirements Gathering
    • Documentation
    • Testing
    • There are many different aspects to a software project, writing code is only a small portion of a software project.
  • You don’t have to be the person with all the ideas, just translate them into something that works.
    • If you users are aggravated, they have an idea of what the solution is
    • If you users are stressed, they have an idea of what the solution is
    • If you users are backlogged, they have an idea of what the solution is
  • Standards and Best Practices
    • If you want to be rich, do what rich people do
    • If you want to be successful, do what successful people do
    • In IT, successful shops develop protocol’s, standards and processes.  They upgrade them to stay current, but they always follow them.
  • What makes you irreplaceable?
    • Nothing (the president is replaceable for cryin’ out loud)
    • Only the paranoid survive – so do things to make you as hard to replace as possible
    • KNOW your business
      • How does the company *profit*?
      • Who are your customers?
      • How do you serve them well?
      • How can you serve them better?
      • How can you keep them from being stolen?
      • Who is your competition?
    • Moral of the story: India will always be cheaper labor, but employee’s can help understand the items above and improve the organization
  • Read, Read, Read
    • Current Events – Time and Forbes
    • Current Trends – Wired and The Verge
    • History, Biographies, Non-Fiction
    • Never stop learning
  • Listen to your users
    • God gave you 2 ears and 1 mouth for a reason ya know..
    • Often, your user’s are your troops on the ground, they know how things work, how customer’s complain, how paper get’s lost, how item’s get screwed up, and what costs time.
  • Document well
    • It’s amazing how easy it is to forget details when you don’t work on a project for 2 years
  • Be a leader
    • Take ownership of projects, help manage deliverables and work with other team members
  • Don’t be afraid to fail – Steve Jobs did plenty of times
  • Donate your time, it’s great experience, it’s great to help non-profit’s, and it’s a great resume builder
  • And of course.. don’t call in tired

Friday, September 12, 2014

IE9 and the case of the console.logs

detective I recently worked on a software release for approximately 3 months.  I took a number of feature requests and open defects and packaged them up into one, tidy “.1” release.  I had everything tested, awaiting the production “go ahead”, and a few weeks later things went live.  Then, things got goofy.

I received a call from a customer, indicating that they couldn’t proceed through the “checkout” portion of the site. Oddly enough, when looking at my error logging, I could see the error.. but not re-produce it.  “Clear cookies and try again!” I shout (ok, spoke softly.. trying to build some drama here), “Sorry, still got an error”.  I look more deeply at my code, and it’s pretty straightforward stuff, user selects an item, javascript assigns that item to a hidden var, hidden var is posted when user clicks Next.  Yet, my logs show that no value was passed over.  I run some more queries on my logging and I see more of these errors sprinkled throughout my logs.  Not all the time.. but some of the time for sure.  I ask the customer what their PC is.. Operating System, web browser, etc.  “I have Windows” is the response.. OK, that clears things up.  “Can you install Chrome and try again?”

Trust-but-verify

“Sorry, same issue” the customer replies, even after trying Chrome.  Now my head is spinning, why can’t I reproduce this issue, but she can very easily do so.. with the same few steps every time?  Eventually the customer tries from another PC in her office, and things work fine.. so it’s not some sort of weird proxy issue I start thinking.  I finally jump in and perform a remote sharing session to SEE what the user is doing.  Sure enough, they get an error.  I requested access to the PC, turn on developer tools and refresh the screen to see what files their browser is using.. I have this sneaky suspicion that the javascript is old or not loading properly somehow.  I go ahead and progress through the screen, and to our dismay.. no error message.  The customer sings my praises to the high heavens, I’m a little let down because I can’t figure the exact issue, but I happily accept her praise and go on my way.

I look at more error logs and find another recent error belonging to a sales rep.  I reached out and found they had the same exact issue, and performed a screen sharing session.  This time, I turn on dev tools in the browser, and once again, it works!  I was sure to not “hard refresh” the screen to pull down new files, I really wanted to see if there was some script files cached somewhere, but all was well.  The only thing that caught my attention was that this second user was running Windows 7, but only had IE9.. much like my first customer.

th03_log

At this point I’m still stumped… those who program know.. things don’t just fix themselves.  God doesn’t come down from the heavens and patch code, much like gremlins don’t appear from the depths and break it (apparently they all have more important things to do). Still, what gives here?  I spent a little time at night looking at the page, comparing code in source control, refreshing screens, etc.  Then.. like a lightning bolt, it hit’s me.  While running my developer tools, and walking through the breaking scenario, I see 3 little lines appear in my browser.  Three console.log’s.  Three lines that should have been commented out, but weren’t, and while invisible.. were causing a problem.

Quickly, I run to the Google machine and look up “IE9 console.log”, and my trusty sidekick StackOverflow give’s me an answer (http://stackoverflow.com/a/5473193) – console.log’s are fine  when using developer tools.. without them they break a page!  Every time I ran through the scenario with a customer, the first thing I did was open up the developer tools.  I quickly go through my code and comment out all console.log’s, push updated script, and rejoice as my error logs remain clean.

So what’s the moral of this story?  Look to the graphic above.. trust but verify.  The first customer said they tried Chrome, but they didn’t even know what Chrome was (shame on me).  They probably installed it, but didn’t think to use it.  They probably figured that they could still use IE, thinking Chrome “updated” it somehow.  It’s always good to have customers test and try things for you, but even if they say something did or didn’t work for them.. try it yourself!

Saturday, August 9, 2014

Adventures in Cookin’ - Nachos

Nachos for dinner.  That’s what I did last night.. I had nachos for dinner.  Not as a snack, not as an appetizer, but as my meal.  They were delicious, I took pictures, here we go.

Step 1 – Stuff to buy

You need some hardware to make these nachos.  Namely, a grill (although an oven would suffice) and a cast iron pot.  I have one of those Lodge cast iron pot’s that I used to make this amalgamation of chips and cheese.

Ingredient wise, get yourself some tortilla chips, cheese (I like the pre-shredded Mexican blend), Ro*Tel tomato’s, Black Beans, sour cream, guacamole, peppers and a protein. Typically people use something like seasoned ground beef which is always good, I used some frozen “Gardenburger” black bean cakes.

Step 2 – Mash it all together.  Well.. don’t mash it.. and not all of it.. Ok just keep reading

WP_20140808_006

What you really want to do is create some layers of chips and cheese.  On the bottom of the pot, create a layer of chips.  Then, cover with cheese.  Then more chips, and more cheese, and more chips… and more cheese.  I did 3 layers, but you can do as many as you want.  After the chips and cheese are down, add your protein (I thawed out my black bean cakes and crumbled them on the top of the pile), tomato’s, black beans, and peppers.  And that’s it.

Step 3 – Get Cookin

WP_20140808_007

Get your grill and crank up the heat to about 400 or so.  Put the cover on your cast iron pot and place on the grill, and then close the grill.  Let it cook and blend together, wait until the chips just start to brown, and you’re good to go.  I left mine in for 8 minutes or so, and it was probably slightly too long, but I think I need to make this again once or twice to really determine the best way to cook this all together.

Step 4 – Top it off

WP_20140808_008

This thing is hot!  The cast iron pots hold their heat an incredibly long time.  It’s a good lesson when cooking with these however, just because it’s removed from the grill doesn’t mean it stops cooking.  However, now’s the time to take the pot off of the grill and top it with your “fixin’s” – sour cream, guacamole, etc.  Now take a fork and dig in.  Enjoy!

Impressions

WP_20140808_009

I’m not much of a cook, so anytime I make something edible, I’m pretty proud.  However, this I thought came together well for not doing much with it. Next time, I’ll season more (seems to be a recurring theme with me).  The chips also got soggy.  Perhaps I left these in too long.. or perhaps it’s just a part of the process, but this wasn’t a pick and grab type of nacho, this was a use a fork (and even a spoon if you want) nacho.  Still, I enjoyed, but these didn’t have a crunch like I hoped for.  However, the bottom of the pot was the best part.  I somehow got this nice, crisp of burn\fried chips that lined the bottom of the pot (I’m thinking there was residual oil from previous cooking), I was able to almost peel the bottom of the nacho’s to eat some of them, it was a nice treat.

Tuesday, July 29, 2014

Book Review: The Honest Truth About Dishonesty

The Honest Truth About Dishonesty: How We Lie to Everyone--Especially OurselvesThe Honest Truth About Dishonesty: How We Lie to Everyone--Especially Ourselves by Dan Ariely
My rating: 4 of 5 stars

Reading Dan Ariely's writing makes me wish I took more science cources in college.. in particular courses that involved experimentation on people. In this particular book, at one point he discusses how when presenting his thoughts and findings to corporations he is often met with a common response - "oh, I knew that". That's the magic of his writing, he explains his experiments because, much like his findings presented in "Predictably Irrational", the outcome of his experiments weren't always what you first thought the outcome would be. (By the way, he often laughs at the typical corporate response, because as he explains in his writing.. he is often quite surprised at the outcomes of his studies.. and he does it for a living).

The concept of this book is pretty basic.. how often do we cheat. The first chapter discusses the common experiment performed throughout all experiments (an exam that subjects can complete for both a control group, and a group where cheating is blatantly possible). From therein, each chapter discusses when cheating was motivated, how often, how it was curbed, how much, etc. For example, it's presented early on that many of us cheat (98% was the rough estimate).. but we only cheat "enough" to make us still respect ourselves. Another chapter focuses on using "moral codes" and how well they do\don't work. Another chapter discusses fake designer clothing and it's impact on our choices.

It's studies (and their findings) like these that make the book so interesting. The book doesn't drudge you down with science, it helps explain people and (freakishly) presents how easy it is to sway opinions and moral standards.

View all my reviews

Saturday, July 26, 2014

Adventures in Cookin’ – Ribs!

I live in Pennsylvania, but I love southern style cooking (at least I think I do… I’ve never had the real thing, but the stuff I get locally that has bar-b-que sauce on it is really tasty).  After a recent family vacation, I got home from the long drive and was really in the mood to make some slow cooked meats, slather on some sauce, and gorge on the end result.  There’s something about the concept of making southern style food.  I love the idea of slow cooking food, taking time to let flavors develop, and providing time to enjoy the process of making food as well.  So recently, my lovely wife forwarded me a recipe from the beeronness.com for some Stout and Sriracha BBQ sauce. Armed with that information, I knew what my mission was, to make some sauce, and some ribs, and  eat ‘em all up.

Chapter 1: Dry Rub

WP_20140720_003

Some philosophies for BBQ don’t involve using dry rub and sauce… not me.  I like em both, the more flavor the better.  I started with a simple dry rub: salt, pepper, garlic powder, paprika and brown sugar.  I took my ribs, unpacked them, gave them a quick rinse, and then cut them in half.  Since my plan was to cook them in the oven and finish them on the grill, I wanted to make sure they were easy to handle.  So after cutting them in half and placing in some foil, I heavily coated my tender pieces of raw pork in the dry rub concoction, and wrapped the foil up into a tent.  I set the oven on 280, placed the ribs inside, and didn’t touch them for three hours.

Chapter 2: Did someone say stout and sriracha?

WP_20140720_005

I love beer, and I love spicy food, so BBQ sauce with sriracha and stout was right up my alley.  In particular, I’m rather fond of stouts, so I had a few in my fridge (even though it’s summer).  One I had been holding onto for a while was a River Horse Oatmeal Milk stout, which I particularly enjoy for it’s extra creaminess and deep flavor.  I’ve made BBQ sauces in the past with stout’s and they have come out surprisingly well, so I had no doubt that my River Horse was a good choice.  When I make BBQ sauce, I also like to make extra so I can keep it in a jar in the fridge.  It typically lasts a while, and during the summer I always eat some food that BBQ sauce pairs with.  As such, I took the recipe above and doubled everything to make a larger batch, a choice that would be a tragic one.

WP_20140720_006 Following the ingredients list top to bottom, I checked them off the list one by one.  I started with some minced garlic and oil, taking the time and pleasure to slowly mince.  In the background, my wife had started The Godfather I which provided some immense entertainment while I played with my knife (and somehow managed to not chop my pinkies off).  I added my ketchup, paprika, liquid smoke, sriracha, etc. 

WP_20140720_007

I got to my final ingredient and proudly took pictures of my creation in action.  THEN I took the liberty of reading the instructions for the sauce.  My heart sunk when I saw for the first time that I was to take the oil, heat in a pan, and add my garlic to sauté until the garlic was soft.  Whoops… Oh well, at this point I’m already in too deep.  I went ahead and took my stout, placed in a pan and warmed it up.  Once started, I took the remainder of my ingredients and added them to the pan.  At this point, over an hour had elapsed since I put the ribs in the oven, and I wasn’t concerned about time.  On a low heat, I let the sauce continue to reduce and thicken.  Tasting periodically, I was happy, but I didn’t get enough heat.  I added more sriracha, and the flavor really started to come out.  I liked this sauce initially because you get the heat from the sauce, but not the patented sriracha flavor.

Chapter 3: Bring in the reliever

WP_20140720_008

My ribs cooked for over 2 and a half hours, and my house smelled wonderful (my wife thought it stunk..).   The ribs were getting very tender, and the dry rub was baking on very well.  At this time, I took my finished BBQ sauce and placed in a bowl to start marinating my ribs with.  I took a spoon and tried my concoction, and WOW.. salt.  Too much salt.  The heat was awesome, the smell was excellent, and the initial flavor was outstanding, but the finish was the salt monster.  I think when I doubled the recipe, even though I used low sodium soy sauce.. it was still too much.  Heartbroken, I had to get rid of the sauce… putting it on the ribs would have ruined them.

WP_20140720_011

Digging frantically in my fridge, I found a half-used jar of Yuengling BBQ sauce, which I think is pretty good. (Added bonus, it’s made with beer, so I’m still in the spirit of this initial cooking exercise).  I took my 2 half-racks of ribs, some sauce, and fired up my grill.  I just wanted to char the edges of my ribs and apply some sauce to bake it in.  After a brief stint on the grill (and some fallen pieces of tender pork), I brought them back in.

WP_20140720_012

With a tall glass of water, 2 ears of fresh corn from the market, and a whole rack of ribs to myself, I dove in.  The ribs were tender, just slightly on the salty side because of the dry rub.  However they heated perfectly, and the sauce was a nice complement.  Of course, no dinner blog post is complete without a before and after post.  On the left is the before…

WP_20140720_013 And here’s the after.. So, what did I learn?  One, to read the instructions BEFORE cooking anything. Two, to taste while I cook. Three, to not trust that doubling all ingredients makes a double batch of something perfectly.  I will make the stout and sriracha BBQ sauce again, but definitely with a more mindful approach towards the amount of soy sauce and other ingredients.

Friday, July 25, 2014

Book Review: In Cold Blood

In Cold BloodIn Cold Blood by Truman Capote
My rating: 5 of 5 stars

What an incredibly told, tragic tale. I often found myself thinking that if someone was to tell a story from A & E's The First 48, this would be it. However, that statement doesn't do the writing justice. Truth be told, the story itself is tragic and at times not easy to read (as if not reading the remaining pages would prevent harm to the victims, if only it was that easy). What makes this book that much more powerful is Truman Capote's writing. The story of this family is told so well, but you *feel* the story.. the town reaction to the murders and how they changed everything.. the detective's and their time put in tracking down clues.. the murderers themselves and their cold hearted reasoning behind everything they did. T. Capote apparently spent several years investigating, researching and writing this case, and what he wound up with was a masterpiece that transports you back to the 1950's, and in the process a new and novel genre in writing.

View all my reviews

Wednesday, June 25, 2014

Book Review: No Easy Day

No Easy Day: The Firsthand Account of the Mission That Killed Osama Bin LadenNo Easy Day: The Firsthand Account of the Mission That Killed Osama Bin Laden by Mark Owen
My rating: 5 of 5 stars

I was skeptical when this book was published 2 years ago. I thought the hype around the book might have caused the actual content to be over stated, so I sat on this one for a while. So a few days ago, it hit the top of my list, and I started turning page, after page, after page. No Easy Day is *that* good.

The book is split into 2 parts essentially. The first half of the book discusses Navy SEALs and the Green Team, giving you insight into how they operate, what makes them so good, and a variety of missions they had been on in Iraq and Afghanistan since late 2001. The second half is where the book gets really interesting, as it walks you through when the team is initially assembled, to training, to a walk through of the mission to take out "Geronimo".

The books true value, as I'm sure many others have already indicated, is to give you perspective and appreciation for the sacrifice and hard work our service men and women perform for our country, day in and day out. If this book was truly just about finding and killing Bin Laden, it could have been written in just 2 short chapters. Instead this book dedicates time to explain why the teams are so good at what they do, and why they do it.

View all my reviews

Friday, June 20, 2014

Book Review – Medium Raw: A Bloody Valentine to the World of Food and the People Who Cook

Medium Raw: A Bloody Valentine to the World of Food and the People Who CookMedium Raw: A Bloody Valentine to the World of Food and the People Who Cook by Anthony Bourdain
My rating: 3 of 5 stars

I read Bourdain's "Kitchen Confidential" about 2 years prior to reading Medium Raw. I remember thinking back then, just like I did for this, that when you hear him speak.. when mentally you can remember the tone of his voice, how he sounds when he rants a little or curses someone out, it adds to the appeal of the book. When you can associate his voice with his writing style, you can also hear him reading line after line after line. That's one of the reasons I enjoyed Medium Raw as much as I did, because in the end, this book is about a bunch of.. what I thought were.. random thoughts, experiences and observations by Bourdain. Kitchen Confidential was similar, but it had structure.. and some chronology to it. Medium Raw, I almost view, was the "left out pieces", but in particular the pieces that occurred since Kitchen Confidential's publishing.

There in lies why I only gave it 3\5 stars. For as interesting as one chapter was to me, the next.. not so much. One chapter he's story telling about previous experiences, and the next he's somewhat shedding his soul and psychoanalyzing himself. All interesting parts in their own way.. but it just never gelled together for me. That being said, I enjoy how "raw" his writing style is. When he's really starts ranting and spitting venom on his enemies, you can *hear* him cursing and screaming, and even though it wasn't a comedic thing per se, you still couldn't help but chuckle at him calling people douchebags and such.

Of course, when Bourdain "turn's it on", I think his writing shines. A chapter dedicated to "food porn" discusses what it's like to have some of the best meals in the world, and spends 30 minutes describing food I had never heard of before in such wonderful detail, I started to salivate. You can tell he loves food, he makes you love food, and makes you feel like dirt for not previously appreciating it.

So in all, I wouldn't recommend this book as the "first" one to read by Bourdain, but if you read Kitchen Confidential, enjoyed it, and generally are interested in the personality and what makes him tick.. it's a worthwhile read.

View all my reviews

Tuesday, June 10, 2014

Book Review – Quiet: The Power of Introverts in a World That Can’t Stop Talking

Quiet: The Power of Introverts in a World That Can't Stop TalkingQuiet: The Power of Introverts in a World That Can't Stop Talking by Susan Cain
My rating: 4 of 5 stars

When I read books, I categorize them as mind, body or soul. Soul is usually reserved for those books that talk about what is "around" us.. faith based books that discuss what we cannot see, but continue to believe, for example. I broke that rule and added this book to my "soul" list. I just found that Quiet resonated with me that well, that it deserved a spot on that list. Always being the person who wanted to be the wallflower, always wanted to lay low, always needing to find some personal downtime after a work week... all while watching others blow off steam by partying hard, going out, having fun in public places around other people. It just felt good to know that the world is much more introverted than I had realized.. and that my introversion isn't as extreme as I thought it was.

I appreciated many things that Susan Cain wrote, but I particularly enjoyed how she put herself in both introvert and extrovert places to discuss the social dynamics. For example, in one chapter, she is attending an Asian-American night class that discusses American social queue's, which is meant to help Asian-American's learn how to be more expressive in the "American style" workplace. In another chapter, she visit's a Tony Robbins seminar, showing what lengths folks will go to just to emulate something\someone they're not. Even the epilogue of the book is very spot on, albeit short, that beautifully summarizes all you need to know on how to handle your own introversion, and highlights the strengths around both being an introvert, and raising a child who is one as well.

Recommended reading for corporate management.. and anyone who prefer's to be home and enjoy solitude :)

View all my reviews

Saturday, March 29, 2014

Career Tip – How to not sound incompetent

A wise person once told me, management isn’t interested in what a problem is, they’re interested in a solution.  The wise person was also slightly intoxicated and we were at a bar, so I thought they were full of hullaballoo.. yet I never forgot that line, and it’s been pretty true as I progressed in my career.

In a project meeting recently, one of the members of the testing team, who was representing the testing group, was asked “what percentage complete are you?”.  After some stumbling and bumbling, they said “maybe about 20 percent?”… notice the question mark in that statement?  The project manager came back with “well, how many test cases have you completed?”, to which the testing engineer replied with “we have 53 cases and we’ve completed 0”.  Go head and check your math, twice if you need, but 0/53 is 0.. as in 0 percent.. as in 20 percent less than 20 percent.

The conversation went on where the project manager had to pull teeth to determine, why is it 0% complete?  Why did you state 20%?  What’s the hold up?  It wasn’t meant to be a confrontational meeting, but the testing engineer was defensive and giving up as little information as possible, and the project manager needed an accurate status to report to upper management.

In the end, the testing engineer had a problem, they didn’t have the proper tooling and training to do their testing, so they hit constant road blocks trying to get through their test cases.  You can’t blame her for that.. that’s an institutional issue and not a personal issue.. the personal issue is that she was absolutely un-willing to offer that as a problem.  That’s not a scape goat in any fashion, she was just un-willing to say “hey, I need some help here, I’m testing something I’m not familiar with”.  The meeting closed out with her being visibly upset, and other members of the project consoling her and offering her some assistance in understanding the system she was testing in.  All in all, it worked out OK, but the damage was already done, as she eventually stated “I just can’t wait for this <bleeping> project to be over with”.

Moral of the story here is simple, nothing’s perfect, and nothing ever goes according to plan, but be resilient and offer suggestions on how to move forward.  I’m astonished how often I talk to other software developers who encounter a system issue and throw their hands up in the air, stating “I had an error and didn’t know what to do.”  We live in the era of Google and Bing and Discussion Boards.  This is no longer a world that we can state “not my problem”, it’s a world of “accept ownership of the problem and offer a solution”, something so few seem willing to do nowadays.

My wise friend mentioned above was correct, management isn’t concerned with problems, they want solutions.  Have a problem, raise it to your manager, but also offer what could\should be done to help mitigate it.  What’s so wrong with saying “I was never trained in this?”, or “I don’t know what this means?”  At the end of the day, it’s not a good enough reason for a project to be behind schedule, and managers like employees who help make them look like rock stars.

Saturday, March 1, 2014

Staged Deployment with Windows Azure Websites

Microsoft continues to deploy feature after feature with their Windows Azure service offering.  Recently I happened upon their staged deployment feature, and it’s so handy.. I thought  would write this post :)

So let’s start here.  Go ahead and bing some information on what takes place when you deploy a website to Azure.  I’m far from an expert on it, but Azure run’s through a number of processes to acquire a physical data host, generate the network mappings, deploy your application, and make it available.  I’ve noticed that when I repeatedly deploy an application to the same Azure Website, the build process goes fairly quickly.  My guess is that there are some comparison jobs going on, only deploying the necessary files.  Either way, the issue I’ve run into is when I generate a new version of code on my “build machine”, and attempt to deploy.  That’s where it takes several minutes.

All in all, it’s not terrible to wait that long, but it is limiting to when you promote to production if you know you can’t target a mid-day deployment because of this.  Staged deployments make this much more palatable. 

What is staged deployment?

Let’s start basic, what is staged deployment? With Azure Websites, you can take your Azure site, and “duplicate” it.  When you do this, 2 things happen.  One, you get a “-staged” version of your site (so if the regular site’s name was mywebsite.azurewebsites.net, a website is created called mywebsite-staged.azurewebsites.net).  Secondly, these two sites are now “linked”, meaning you can swap deployments between them.

How is this helpful?  With staged deployment, you can promote your production website, access the site to validate changes, and when the time comes, put it live.  When pushing new content to the staging site, your current site doesn’t take a hit… it’s not even aware that website files are being affected.  Heck, if needed, you can promote your new website build days in advance.

Once your files are pushed, and it’s time to put the new build live, you simply perform a “swap” action, and the new site is live in milliseconds.  Your users, or even endpoint monitoring, won’t detect a difference.

This seems really advanced, it must be difficult to setup.

It’s not.

Step 1 – Create a Staged website

Within the Azure web portal, go to your Azure Website.  Choose the “enabled staged publishing feature”

image

When prompted to create the staged version, choose Yes

image

Back within the Web Sites portion of your Azure Portal, expand your website node for the site you just affected, and you will see a “sub site”, with a (staged) suffix appended to the website name.

Capture1

Now, go ahead and access the website settings for your new “staging” website.  It’s a normal website, and you can do everything with this website that you would normally do.  So now, grab your publish profile, and publish your website.

Step 2 – Push it live

At the end of the last step, I told you to grab your publish profile for your staged website.  Once you published to this site, you can browse the “-staging” version of your website.  If you feel your code is ready to go live, all you have to do is “swap” your deployments.

To do so, choose either your production website, or the staging version of it, and take a look at the “toolbox” at the bottom of your website:

image

In the toolbox, you should see the “Swap” command.  This will, in essence, flip the staging and regular version of your website.  When you choose “Swap”, you get a confirmation warning:

image

Confirm that you want to promote the site, and within a second, your site changes will be live.

“Oh Sh*t” Button

You promoted your website, and marketing calls you to tell you that some website features aren’t working as desired. You tell them they approved the website, and of course they don’t care.  With staged deployment, you can just “swap” again, pushing the previous release live.. all within seconds. 

Staged deployment is one of the many handy features of Windows Azure.

Tuesday, February 18, 2014

Redirect Unauthorized Users in ASP.NET using the SuppressFormsAuthenticationRedirect property

Not really sure why it took the ASP.NET team so long to make this fix, nor while I just found out about it now, but when using Forms Authentication in a website, you now have the ability to catch unauthorized users and redirect them to an unauthorized page, rather than redirecting to the default login page.  This is done via the SuppressFormsAuthenticationRedirect HTTPResponse property.
Up until ASP.NET 4.5, when a user was unauthorized to access a website resource, the user was redirected to the default login page as identified in the web.config.  This made for some messy code, as you had to check if there was a redirect URL, if the user was authenticated, etc. to determine if you should display a message to the user essentially saying “Youre logged in but were redirected to the login page not to login but because you we’re trying to do something you shouldn’t be doing.. so here’s a login form.. but don’t login”.  (Told you it was messy).
This happened because when an unauthorized request occurred, ASP.NET returned an HTTP 302 – which is a redirect.  So ASP.NET did you a “favor” and redirected the user to a login page.  In ASP.NET you can suppress this, meaning that rather than a 302 redirect, you can get the “raw” 401.2 error code.  This is nice, because now you can response to a 401 error code and redirect the user, rather than guessing why the user wound up at the login page of your website.
The code’s pretty simple, and all involves the Global.asax:

1. Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)

2. ' Fires at the beginning of each request

3.

4. 'If user is unauthorized, rather than a 302 redirect, a 401.2 is sent instead

5. HttpContext.Current.Response.SuppressFormsAuthenticationRedirect = True

6.

7. End Sub

8. Sub Application_EndRequest(ByVal sender As Object, ByVal e As EventArgs)

9. Dim application As HttpApplication = CType(sender, HttpApplication)

10.

11. If application.Response.StatusCode <> 401 OrElse Not application.Request.IsAuthenticated Then

12. Return

13. Else

14. 'If we have a 401 then user is unauthorized..

15. If application.Response.StatusCode = 401 Then Response.Redirect("~/Unauthorized.aspx")

16. End If

17. End Sub



See what we’re doing there?  Application_BeginRequest tells the HTTPResponse to “suppress” the redirect activity.  The Application_EndRequest looks at the resulting status code for all requests when complete.  If the request is a 401, then we can redirect the user to the appropriate page, in this case, the Unauthorized.aspx page off of my web root.

Friday, February 14, 2014

Adding Site Uptime Alerts to Windows Azure Website

Windows Azure has some great built-in features.  One that is particularly helpful is adding site uptime alerts to your website, so if your uptime is below a particular threshold, you can get inundated with emails until someone fixes your problem.

Adding site uptime alerts for a Windows Azure website isn’t completely straightforward however, as you need to perform some steps in two different areas.  As such, after fiddling around a little, I decided to take some screenshots and post em online for you.. consider it my valentines day present.

Step 1 – Adding end points

The first step in configuring site uptime alerts is setting up a monitoring end point.  Consider this the URL of your website that anyone\anything can “ping”.  With end points, if the HTTP response is a 200, you’re OK.  If a 400 level code is returned, then something is considered wrong.  For my applications, I like to have 2 types of endpoints, one that’s basic and should simply display something, and one that tests some business logic.*

To setup an endpoint, go to the appropriate Azure Website in the Azure Management portal.  Once within the website, go to the Configure tab, and scroll to the Monitoring section.  Here, you can enter your end point URL’s that should be tested every 5 minutes (added bonus, constant activity will keep your website warm!). 

monitor_1

You have three items to input, a name (something to benefit you when you look for these end points later on), the URL of your end point, and the geographic location\locations that you want to test from.  Here, you can see that I chose my website login page as my end point, and California, Illinois and Virginia as my test locations (you only get up to 3 at this time).

monitor_2

Once done, be sure to click save at the bottom of the screen to commit your changes.

Step 2 – Setup your alert for your end points

Now that you have an end point setup to monitor, that particular URL will be tested once every 5 minutes.  To trigger an alert on this activity, go to the Management Services section within the Windows Azure Management portal.  This is the fourth last button on the bottom left of the navigation bar.

Within this area, choose “Add Rule” at the bottom of the screen to create a new management service alert. Doing so brings up a simple 2 step wizard.  The first is to give your alert a name.  The name itself can only be 32 characters long, so  be concise, but go crazy with the description. Lastly, choose the type of service you are trying to setup an alert on.  In this instance, choose Web Site and then choose the name of your Azure Website that you just setup the end point for.  After giving a name\description\service, step 2 let’s you choose what your alert should be based on.

Below is an example of my uptime alert.  For the metric field, you can choose Uptime for the particular geo-location.  This means that you setup alerts to trigger from one particular location, rather than indicating the website is “down”.  Here you can see that I chose to say if my uptime from California is below 99.9% for 15 minutes, send an email to my admin.

monitor_3

And that’s all there is to it!

*So for example, my basic test is my login page.  If a user can’t hit that page, something’s rotten in Denmark.  My other page, however, does some actions behind the scenes to test some logic for me.  Perhaps my application relies on a database or 2, and\or some web services, and if these weren’t up, my site would be worthless.  So for this page, I perform a series of database\service calls ensuring that I can connect, perform some basic function, etc.  If any of these fail, I can return a 400 level HTTP response code, indicating that even though traffic is enabled to my site, some service\services are down.

Tuesday, February 4, 2014

Book Review – The Quiet Don: The Untold Story of Mafia Kingpin Russel Bufalino

The Quiet Don: The Untold Story of Mafia Kingpin Russell BufalinoThe Quiet Don: The Untold Story of Mafia Kingpin Russell Bufalino by Matt Birkbeck
My rating: 4 of 5 stars

If you want an all you can eat buffet on organized crime in Northeastern Pennsylvania, this is the book to read. Being a native of Northeastern Pennsylvania (NEPA.. of which the locals call it "Knee-Pah"), I grew up in the area hearing of Italian influence in Pittston and nearby towns. Over the past several years, the local government's and agencies have been in flux due to shake-ups, as one person after another has been accused of taking bribes and the like, and often I heard many complain that the region was corrupt at every corner.

I always thought those complaining were like the "conspiracy guy" with sporting events... you know.. the guy who says that every major sporting event is fixed and what not. And it's not that I'm sure they're accurate or not.. it's more or less just annoying when someone thinks that everything is fixed. After reading this book... I can tell you.. I have many more concerns about NEPA and it's leadership.

Birkbeck's writing dives into modern events (opening with the arrest of an ordained priest in 2008), and then dives into various history lessons dating back to the late 1800's, and how many Italian immigrants were attracted to the NEPA region for their vast coal mines. As the book progresses, it doesn't necessarily account just Bufalino's life, but the realm of influence he had on others, and who had influenced him along the way. Intertwined are modern events (on how seemingly dirty politics still exist today in the region) and famous mob stories, including the suggestion that Bufalino has good reason to partake in the assassination of JFK to his possible involvement in the killing\disappearance of Jimmy Hoffa. I don't know if Matt Birkbeck is from Northeastern Pennsylvania or not, but he did an excellent job on researching the appropriate names and events in the area that have plagued us negatively in recent years, and parts of the book feel like a pre-eminent who's who in the NEPA valley today.

In the end, it's an enlightening book, and has a sole purpose to tell. If Bufalino had lived a more luxurious lifestyle, and\or had lived in NY or NJ... would more people inherently know his story? The book makes a compelling argument suggesting that his low profile never allowed him to make national headlines, and it may have served him well.

View all my reviews

Wednesday, January 29, 2014

Book Review – Brain Rules: 12 Principles for Surviving and Thriving at Work, Home, and School

Brain Rules: 12 Principles for Surviving and Thriving at Work, Home, and SchoolBrain Rules: 12 Principles for Surviving and Thriving at Work, Home, and School by John Medina
My rating: 4 of 5 stars

John Medina is one heck of an individual. If I learned anything (and I like to think I learned lots) from his writing, it is that the human mind is as understood as the universe, or the meaning of life itself. We have idea's and theories on how the mind works, from creating memories to dealing with emotion, but many turn out to be unproven, are contradicted by theories in place, or in-turn disprove a previously believed notion. In the end, the small space above our eyes, ears and nose is an incredibly complex space that we'll be lucky to have some basic understanding of in our lifetime.

I enjoyed reading Medina's book because he is a very good writer, and doesn't inundate you with too much science. He is an excellent teacher, and his writing shows that. I think I didn't enjoy this book enough to give it 5/5 stars because I thought the title and opening chapter was somewhat misleading. I had the impression that this book was "understand these 12 things and boost your brain power!"... not that I thought it was meant to rival the fake medical ad's you find on TV at 5 AM, nor that I thought it was just that, but the first chapter spoke in wonderful detail about the power of exercise, and how it promotes positive cognitive growth and power because of blood and oxygen flow. So after reading the title and opening chapter, I'm thinking "Cool.. I know something I can *do*". I feel that is where that concept stopped. The remaining 11 chapters were more "Did you know that we don't know how the brain does this?"

So all in all, did I learn something from this book? No doubt.. I learned many things (ask my wife, I didn't shut up about the insights from this book for weeks), but what I thought the book was offering, and then what it offered were 2 different things.

All that being said, I still highly recommend John Medina. For any parents out there, his other book (Brain Rules For Baby - https://www.goodreads.com/book/show/8...) is a must read for anyone who has procreated in the past 20 years. Why?.. because we don't know much about the brain, but what we do know, John does an excellent job telling us.

View all my reviews

Tuesday, January 28, 2014

Configuring Azure Autoscale (You need to configure the AutoScale service)

Azure Websites have a feature (still in preview mode as of this writing) that lets you spin up\down VM's to run your website.  When user's access the "Scale" tab within an Azure Website, it's common to see the message "You need to configure the autoscale service".  It's slightly confusing on what this means, as the autoscale settings area is "below" this alert, it's just not labeled as such!

To configure Azure AutoScale, within the "Scale" tab in your Azure Website.

b_autoscale4

Scroll down to the "Capacity" area - this is the same area you see the "you need to configure the autoscale service" message.  Here, you have the option to "Scale by Metric", for example: None and CPU

b_autoscale2

If I choose CPU, I'm given a few choices to indicate how I want to autoscale, namely.. how many CPU instances do I want to use - both minimum and maximum - and what's the target CPU range to indicate if a VM should start up\shut down.

b_autoscale1

What does "Instance" mean here?

This is important.  If you are running a "Small" instance, you are running on 1 Core CPU.  Medium is 2 Core, and Large is 4.  The number of cores are the multiplier for instance count.  b_autoscale3

So here's some simple math, if you're running a Medium Instance (2 Cores), and you're minimum instance count range is 3, then that is 6 instances.  As I said, this is important, as it will affect your billing.

Additional Options

Of course, you have other options when it comes to scaling as well.  Namely, the website also offers the ability to scale based on schedule.  Perhaps you know your site will receive minimal\no traffic on Sundays.  You can configure a schedule to run your website at minimum resources for this one particular day of the week.

Resources

I had a heck of a time realizing that the message "You need to configure the autoscale service" meant to configure the "Core" metric, so hopefully this post helped you out!  If you'd like more information, I found the following resources very helpful:

- Developers Guide to Windows Azure - Patterns and Practices
- The new Auto Scaling Service in Windows Azure
- Windows Azure - AutoScale General Availability - The Gu!
- Auto Scaling Azure Web Sites, CPU or Scheduled - Scott Hanselman and Stefan Schackow (Video)

Wednesday, January 8, 2014

Book Review: David and Goliath

David and GoliathDavid and Goliath by Malcolm Gladwell
My rating: 4 of 5 stars

The thing about Malcolm Gladwell's books is that they are so easy to read. For someone as cranial as his books are, it's nothing to pick up a book and read a chapter here, and a chapter there. This book is no exception, and it's refreshing to read his style of writing, marrying a scientific proposal of idea's and notions mixed with an easy going prose that doesn't bore you with large words and exotic themes. For anyone who has read any other of Gladwell's books, you'll find this one ranks among the rest of them.

All that being said, I felt like this book took off like a rocketship, and ended in a sputter. The opening chapter dissects the historical notion of David and Goliath, and even offers some suggestions on "how" and "why" David was victorious. The next several chapters all had the common, winning Gladwell theme, present an idea, mix in some stories and some science, and end the chapter convinced you learned something.

The last 3 chapters in particular kind of felt out of place, forced, or just didn't resonate with me as well as the others did. Each other chapter in the book had a unifying theme, and correlated well to there overall theme of the book. But the last 3 chapters were these somewhat loosely related, but seemed to be missing that "scientific" part.. which I feel are critical to Gladwell's writing style. He offers opinions and suggestions, and you tend to buy in (at least I did), but the science part where he says "look at these historical figures", was a little lacking. Trust me, the chapters are built well, I just didn't feel "wowed" like I did with the earlier parts of the book. In the end, the final chapters are meant to offer some insight into resiliency, which it did, but each chapter ended with me checking if any pages were missing in the book.

Overall, I still enjoyed this book (4/5 stars after all). Some say that Gladwell merely tells us what we already know (I've heard countless arguments that his "10,000 hours rule" in Outliers is a fancy way of saying "Practice Makes Perfect"), but I disagree with most on those points. Gladwell does a fine job offering insight into supporting his theories, presenting theories most of us have seldom heard of, and at the very least helps us continue to think outside the box and realize that what we observe is not always as it seems. David and Goliath did just that for me as well.

View all my reviews

Wednesday, January 1, 2014

Book Review – The Happiest Toddler on the Block – The New Way to Stop the Daily Battle of Wills and Raise a Secure and Well-Behaved One-to-Four Year Old

The Happiest Toddler on the Block: The New Way to Stop the Daily Battle of Wills and Raise a Secure and Well-Behaved One- to Four-Year-OldThe Happiest Toddler on the Block: The New Way to Stop the Daily Battle of Wills and Raise a Secure and Well-Behaved One- to Four-Year-Old by Harvey Karp
My rating: 5 of 5 stars

Dr. Karp's book is on point, I thoroughly enjoyed reading this. He does an excellent job on first helping you understand why toddlers can be a terror at times, reminding you that their brains are premature. He then presents a few very important methods for dealing with a toddler who is in the midst of a meltdown.. or being flat out unruly. From there, a few chapters are dedicated strictly to enforcing good behaviors, along with how to handle a child who simply will not listen. The final chapter does an excellent job on pulling this all together, citing specific types of meltdowns and how you could use his methodology in the particular scenario's - for example, how to handle when your child won't eat, or cries when you drop them off at daycare in the morning.

What I enjoyed most of this book, however, was that there wasn't anything *new*... I found that my wife and I already performed some of these actions. What was insightful was that we found the context that we should be doing things.. time-outs.. talking to a child when they cry.. using treats for a reward rather than a bribe. The book does a great job of providing context for when, how and why you can help raise a toddler. Well done Dr. Karp!

View all my reviews