Saturday, February 13, 2016

Adventures in Brewin’–True Brew Belgian Ale

Hard to believe it was over 3 months ago since I made my first homebrew, but with the wintry weather outside and no good reason to brave the elements, I took advantage of an empty house, gathered up my gear, and decided to cook me up some True Brew Belgian Ale (fun fact, “Santa” brought this kit for me for Christmas but completely forgot about it, it wasn’t until I was cleaning up after the holidays that I came across an unopened 10 pound box from Amazon.. that’s truly a gift that keeps on givin!).

I started witht he usual tasks, gathered my C-Brite cleaner, measuring cups, airlocks, lids, thermometer and brew bucket, and sanitized the heck out of them.  Placing those items aside, I started a boil of 2.5 gallons of water. While the heat was rising, I first added in my 3 bags of Dyr Malt Extract that comes with the kit, stirring each one in to avoid clumping.  Once done, I took my bag of specialty grains and then soaked that as well.  Water just reached a boil when the bag was in there for 10 minutes, I left the bag in there another 10 minutes to make sure it had a decent time in there during the boil (neat trick: when you pull the grains out, keep the bag above the pot and let the runoff drain back into the wort to get any extra sugar’s, check out this vidfeo from some guy who likely forgot more about brewing beer than what I know -

I removed the pot from the heat and added my liqued malt extract, stirring it in to ensure it melted evenly, and then returned my brewpot back to direct heat.  At this time I also tossed in a few cleaned copper pennies, to help reduce boil overs.  Once I got back to a rolling boil, I added my bittering Northern Brewer hop pellets first (to boil in at 45 minutes total).  After 30 minutes, I added in the Styrian Golding Hops (for 15 minutes total), and 14 minutes after that, my Saaz hop pellets.  After 1-2 minutes I removed all hop pellets (I like to place my hop pellets in a grain bag so theyre easy to strain out).  At this point I turned off my heat and added the candied rock sugar to the wort, stirring extra vigorously to ensure nothing stuck to the bottom.

As I mentioned above, today was a good day to brew some beer, one reason being it was single digit temperatures outside.. perfect for cooling that wort!  I took my brew pot outside and put one bag of ice directly into the wort (a friend of mine said he does this to cool the wort all the time since the ice needs to be sterile when it’s made.  I wasn’t too sure, but he’s brewed much more than me, so what the hell!?).  At this time I also went and boiled 1 cup of water and waited for it to cool down to under 100 degrees. Around the time that cooling had completed, my wort was also around 100 degrees as well, I was able to bring that back inside, place into my brew bucket, and top if of to 5 gallons of water (the remaining water brought down the temperature to roughly 70 degrees.. just perfect!)  Once done I took my packet of dry yeast and re-hyrdrated it into my spare cup of water, waitied 15 minutes and pitched it into my bucker. By bed time, my bucket was just hanging out in my office doing a whole lot of nothin’, but by the following morning?  Well.. it’s burping like crazy, so much so that my airlock spilled some of it’s contents.

So, I’ll let this ferment for 1 to 2 weeks, then I’ll bottle, store, and count down the days until I uncap my first homemade belgian! Stay tuned, I’ll post some pictures for bottling day.

Friday, February 5, 2016

Why are you telling people you don’t know how to spell a username?

In a previous post I openly told the world that after 2+ days with a production issue, I found myself telling everyone “I mispelled the username.. my bad!”.  I told the story enough times my wife eventually said “Hey Dear, why are you telling people you don’t know how to spell a username”.  I laughed off the comment and proceeded to tell others as needed, but it did make me think a little.  Why did I not only decide to tell others, but also write a blog post about it.  I suppose I have 3 reasons…

The first reason is the simplest, I don’t live the most exciting life.  Finding out that I had a story to tell was just that, a story to tell.  I don’t mind self-deprecation, and I can see some authentic lesson’s learned ion the story as well, I mean.. the error messages clearly stated “Unknown Username or Bad Password”, what more did I really need to know? Self reflection isn’t a terrible thing, and sometimes you need to eat some humble pie.

The second reason for the post is that I believe in openness and honesty.  I have an ego, but I’m also not blind that we all do.  Ego’s aren’t bad, but big one’s are.  Telling the world “you wont believe what I did” is my way of saying “I’m human, but I promise to not do this again.” Mistakes happen, it’s not to blow off the fact that I screwed up and wasted some other peoples time, it’s to indicate that there’s been times in my life that other’s mispelled the username, or something similar.  Have patience, realize that mistakes happen.  It’s inconvenient, but also a great way to get a free beer time to time.  Those who act like they know everything often don’t, and are not fun to get along with.  Working with those who tend to say “oops, sorry” tend  to be the one’s who are also more than willing to help solve an issue rather than look like a rock star. 

The third reason is that apologies close  a loop.  Any philosophical argument can last a long time, sometimes ending with an “I agree to disagree”, leaving an open problem that isn’t resolved.  There’s something sacred when one says “sorry”.  It’s an opportunity to put to rest an issue.  It’s acknowledgement of a problem, ownership of the problem, and agreement on who did (or didn’t) do what. Telling other’s “sorry” admit’s fault and helps those wronged realize they were right and achieve a deserved satisfaction.  Take the baseball steroid scandal’s of the past several years.  Everybody thinks Barry Bonds is a jerk.  Is he?  Perhaps, but really what he hasn’t done is admit and apologize to something he most likely did.  That’s why everyone’s mad, the evidence is stacked against him but he still stands there with a smug look on his face.  Alex Rodriguez is just as polarizing, but he admitted to his “crime” and has been generally accepted.  They both guilty of similar offenses, but it’s lack of remorse that offends the public.

So please don’t read my last post as “I’m an idiot!” Please read it as “I did something stupid and learned from it, and needed a reminder that even the best of us make mistakes time to time.”

Monday, February 1, 2016

SSRS 2012 – 401 Unauthorized and “Unknown Username or Bad Password”

I’ve been developing software for (unlucky) 13 years now. I’m not doing anything bleeding edge, I’m not pushing boundaries or running beta software on production software, but I do write my fair share of code.

We recently ran into issues with our Production SSRS (SQL Server Reporting Services) instance and found out that our performance has some serious bottlenecks.  We decided it’s probably best to rebuild the server on some better hardware and performance tune SSRS prior to putting it live.

Along the way, I had to get my applications to connect to the server, to feed it report parameters and consume the rendered reports.  Once I started updating my software and tried testing I got an error. Looking at my error logs, the exception was 401 Unauthorized.  Nonsense! It’s the same username and password I’ve been using all along to log into the server!  More, and more, and more, and more digging, and eventually I see in the Windows Even Logs that the Security Audit shows a failed attempt, the error was “Unknown Username or Bad Password”.

Another day and a half we spent on the issue. Was the server setup for Kerberos? Do we need to specify the domain? Do we have to use NTLM? Should we use the IP address to connect rather than the fully qualified domain name?

You surely know where this is going by now.. correct?

Incase you don’t, I eventually retreated to looking at my application’s config file.  There, I specified the username and password, and sure enough I found the fatal flaw:

<add key="SSRS_Username" value="ReportingUser " />

Do you see it?  I stared that this for days!  Tonight, I finally noticed it.. the trailing space at the end of the username.  I updated my config setting to the correct value:

<add key="SSRS_Username" value="ReportingUser" />

Retested, and all worked as expected.

Moral of the story?  No matter how long you’ve been in this business, if the error says “unknown username or bad password”, check the username and the password…