https://bressain.com/Bressain's Blog2020-11-05T00:00:00ZBressain Dinkelmanhttps://bressain.com/Bressain's BlogAll rights reserved 2020, Bressain DinkelmanWell It's About Timehttps://bressain.com/blog/2010-06-22-well-its-about-time/2010-06-22T00:00:00Z<p>I've been talking about starting my own software development blog for some time now but always put it off. The reason was actually kind of dumb, I simply couldn't come up with a good name for the blog. After talking to a few people I know professionally, I decided to go with dinkelburt. There's a story behind that (a really stupid one), but I'll leave that for another time.</p>
<p>Some goals I want to achieve with this blog are:</p>
<ul>
<li>Eventually create a blog that's a little more... customized to my liking that's not Blogger.</li>
<li>Showcase some of the projects I'm working on.</li>
<li>Share insights into things I experience in developing software.</li>
<li>Inevitable ranting.</li>
</ul>
<p>I hope something I write ends up being interesting to read as I do enjoy writing more than I care to admit. Programming daily has tried its hardest to kill off that side of my brain but it's not all dead yet. Anyway, welcome to dinkelburt and I hope you enjoy your stay.</p>
My Big List O Readinghttps://bressain.com/blog/2010-07-15-my-big-list-o-reading/2010-07-15T00:00:00Z<p>I've gotten to the point where I couldn't hope to keep up with posting the books I read so I've started posting everything to <a href="https://www.goodreads.com/user/show/31273724-bressain-dinkelman">GoodReads</a>. Head on over there if you're still interested in what I read. Better yet, join up yourself and toss me a friend invite and we can encourage each other!</p>
Working Yourself Stupidhttps://bressain.com/blog/2010-08-01-working-yourself-stupid/2010-08-01T00:00:00Z<blockquote>
<p>Ability to contribute over the standard 40 hour work week if deemed necessary by management but more importantly thru self motivation when extra time is required to get the job complete.</p>
</blockquote>
<p>This line came from a job posting I saw the other day which made me chuckle a little. At first I was a little shocked to see that a company almost <em>requires</em> overtime (I'm assuming it's not an hourly paid job) but then I thought, at least they're being honest.</p>
<p>So why would that be so shocking? Well, where I'm currently working we're trying to be <a href="http://en.wikipedia.org/wiki/Agile_software_development">agile</a> (well, most of us anyway) using a combination of Scrum & XP and one of the practices we've tried to follow is <a href="http://en.wikipedia.org/wiki/Extreme_programming_practices#Sustainable_pace">sustainable pace</a>.</p>
Shared Stuffhttps://bressain.com/blog/2010-11-17-shared-stuff/2010-11-17T00:00:00Z<p>I'm still alive! Had a bunch happen in the last month or two so I've been a bit busy. I have a longer post coming up that I'm still working on so here's a little something in the meantime.</p>
<p>I like reading blogs. But I also like to read blogs socially. How is that done? By sharing what you read and commenting on them! <a href="http://www.google.com/reader/shared/dinkelburt">Here is a feed</a> of the stuff I've shared out in case anyone is interested. It's mostly developer-like stuff but it has a healthy dose of random stuff I just found to be funny or insightful.</p>
Interview Observationshttps://bressain.com/blog/2011-04-03-interview-observations/2011-04-03T00:00:00Z<p>There have been some big events that have happened recently that have affected me professionally:</p>
<ol>
<li>World of Warcraft: Cataclysm was released (or <a href="http://www.thedailyblink.com/2010/12/take-two-potions-daily/">National Call In Sick Week</a>).</li>
<li>Burned out on World of Warcraft and quit.</li>
<li>Changed employers.</li>
</ol>
<p>I could talk for ages about items one & two but this is a programming blog so I better talk about number three.</p>
<p>Looking for work was an interesting journey because I went from participating in & conducting interviews to being the one interviewed (and then back again to participating in interviews). From all these experiences I have learned a few things that I wanted to share with others that may be looking for development work.</p>
jQuery Autocomplete With Columnshttps://bressain.com/blog/2011-06-02-jquery-autocomplete-with-columns/2011-06-02T00:00:00Z<p>My current job has shifted dramatically from doing Windows application development to web development (and then back again, and then back to web, etc.). With that change has come a crash course in JavaScript & jQuery programming.</p>
<p>One of the things I ran into was putting columns in <a href="http://jqueryui.com/demos/autocomplete/">jQuery's autocomplete</a>. I found a <a href="http://stackoverflow.com/questions/2744747/quick-example-of-multi-column-results-with-jqueryuis-new-autocomplete">pretty good answer on StackOverflow</a> but I wanted to avoid using tables if I could. After some experimentation and a little more research I found an implementation that works.</p>
Utah Code Camp Spring 2012https://bressain.com/blog/2012-03-21-utah-code-camp-spring-2012/2012-03-21T00:00:00Z<p>So check it out, I actually spoke at a code camp. I've always thought about speaking at code camp but I've never felt authoritative enough about anything to speak on it. Well, not anything interesting anyway. A few friends of mine finally coaxed me into taking the plunge and I totally survived.</p>
<p>I've been doing a lot of work with Mercurial at work lately so I decided to speak about how great it is and how it's totally viable as a version control system for both personal and work use. I didn't have the biggest audience in the world but I was able to fill up the time and was even able to field a few questions. It was stressful, exhilarating <strong>and I totally need to do it again</strong>.</p>
<p>I decided to do the slide deck through Google docs (which was pretty brave on my part as the wireless was brought to its knees during the conference). I don't regret it as it's easy to share and reference later. Anyway, <a href="https://docs.google.com/presentation/d/1YYUgDFpORTEez-JJUJmZtoa12xu-kvLUir0mU-WUN7s/edit">here they are if you're interested</a>, I included fairly detailed notes on each slide so if you missed my session, you can see what I talked about.</p>
Stack Buffer Overrun Killed My CLR!https://bressain.com/blog/2012-03-29-stack-buffer-overrun-killed-my-clr/2012-03-29T00:00:00Z<p>So I ran into an interesting problem the last few days. And by ran into I mean made me lose more hair than I have already lost! It took quite a bit of research and I thought I'd help the Internet by sharing what I ran into.</p>
When GlassFish Stomps On Your JSONhttps://bressain.com/blog/2012-04-23-when-glassfish-stomps-on-your-json/2012-04-23T00:00:00Z<p>Funny thing about learning new technologies and stacks, you run into all kinds of hard to diagnose problems. Here's one that I ran into that took a few days to figure out.</p>
Maximize Your Commute With Podcastshttps://bressain.com/blog/2013-03-08-maximize-your-commute-with-podcasts/2013-03-08T00:00:00Z<div class="inline-image">
<img src="https://bressain.com/img/CarCast.png" alt="CarCast logo" style="width: 90%;height: 90%;" />
</div>
<p>I have a commute. It's not a long commute, but long enough (20 minutes-ish). Although I enjoy listening to music while driving, <strong>I've found that my time is better spent listening to something educational or interesting through podcasts.</strong></p>
Running On Emptyhttps://bressain.com/blog/2013-04-18-running-on-empty/2013-04-18T00:00:00Z<div class="inline-image">
<img src="https://bressain.com/img/empty_cup200.jpg" alt="empty cup" />
</div>
<p>A friend of mine told me about an experience with their child psychologist the other day. It was mostly about dealing with teenager issues but one thing they mentioned that I found interesting was how every child has a sort of <a href="http://www.naturalchild.org/pam_leo/love_cup.html">"love cup"</a>.</p>
<p>The idea is that <strong>every time the parent plays with, compliments or encourages the child as he/she grows up, another drop is added to the love cup</strong>. Any time that the parent ignores, tears down or hurts the child, drops are removed. If the parent removes too much from the love cup, the child will respond in unfortunate ways such as rebellion, anger or poor self esteem. <strong>If the cup goes beyond empty (negative), the child may become self-destructive</strong> which would require a lot of drops added to the cup to even get to empty.</p>
<p>It's an interesting theory which I've found to be true not only with observing children of friends and family but my own children as well. With every drop added, the more I see children respond positively to their parents as well as being happier overall.</p>
<p>Hearing about this idea of a "love cup" made me think about how I should spend more time with my children but it also made me think of <strong>how applicable this is at work</strong>. I would still consider it a "love cup" at work (because you love your job right?) but it probably sounds better as a "trust" or "satisfaction" cup.</p>
Yay RabbitMQ Part 1https://bressain.com/blog/2013-06-05-yay-rabbitmq-part-1/2013-06-05T00:00:00Z<div class="inline-image">
<img src="https://bressain.com/img/rabbitmq_logo_strap.png" alt="rabbitmq logo" />
</div>
<p>One thing I've been working with a lot lately is <a href="http://www.rabbitmq.com/">RabbitMQ</a>. It was a bit confusing to work with at first but I think a lot of that was primarily because there was already a code base in place that was using it. Now that I've had a chance to understand the why's and hows, I thought I'd share some of my experiences with it.</p>
Don't Ask, Tellhttps://bressain.com/blog/2013-06-18-dont-ask-tell/2013-06-18T00:00:00Z<p>I just read Michael Feathers' post <a href="http://michaelfeathers.typepad.com/michael_feathers_blog/2013/06/avoid-null-checks-by-replacing-finders-with-tellers.html">Avoid Null Checks by Replacing Finders with Tellers</a> and it really made me think about how I write code.</p>
Updated Podcastshttps://bressain.com/blog/2013-11-12-updated-podcasts/2013-11-12T00:00:00Z<p>Updated my podcast list today. If you're into podcasts, <a href="https://bressain.com/podcasts/">have a look</a>. If I'm missing out on some amazing podcasts, please let me know.</p>
Thoughts On SCNA 2013https://bressain.com/blog/2013-12-02-thoughts-on-scna-2013/2013-12-02T00:00:00Z<div class="inline-image">
<img src="https://bressain.com/img/scna_logo.png" alt="scna logo" />
</div>
<p>I had the opportunity to go to <a href="http://scna.softwarecraftsmanship.org/">SCNA</a> this year. It was a lot of fun and represented a lot of firsts for me:</p>
<ul>
<li>First time going to SCNA.</li>
<li>First time going to Chicago (and trying the pizza there).</li>
<li>First time going to a conference outside of Utah.</li>
<li>First time being in a skyscraper over 20 floors (the event was on the 80th floor!).</li>
</ul>
<p>I tend to lean towards introversion so conferences can be a bit draining for me but I'm glad I went. I was pulled completely out of my comfort zone which forces me to grow which is one tenant of software craftsmanship that I like.</p>
<p>I thought it would be interesting to put down my thoughts on my experience for anyone interested or at least so that I can reflect on them later.</p>
Adventures In Losing Weighthttps://bressain.com/blog/2014-02-02-adventures-in-losing-weight/2014-02-02T00:00:00Z<div class="inline-image">
<img src="https://bressain.com/img/nature_27_.jpg" alt="man with some rope" />
</div>
<p>I know a lot of developers that struggle with obesity and the problems that go with it (I even have a mild case of <a href="http://www.mayoclinic.org/diseases-conditions/peripheral-neuropathy/basics/definition/con-20019948">peripheral neuropathy</a> to show for mine). <strong>Between sitting at a desk all day at work (sometimes at night as well) and living an American lifestyle, it's easy to gain weight.</strong> Losing weight (or at least talking about it) is a time-honored tradition in my family (blame my mother's side) so it makes sense that I make at least one post about it.</p>
Yes, You Belong Here - What is Impostor Syndrome?https://bressain.com/blog/2014-04-25-yes-you-belong-here-what-is-impostor/2014-04-25T00:00:00Z<p>This is part one of the series on my talk about impostor syndrome. You can read the second part <a href="https://bressain.com/blog/2014-05-11-yes-you-belong-here-overcoming-impostor/">here</a>.</p>
<div class="inline-image">
<img src="https://bressain.com/img/Imposter.jpg" alt="three cats one dog all fluff" style="height:194px;width:320px;" />
</div>
<p>This past month I spoke at the 2014 Spring Utah Code Camp. I don't speak at conferences generally (2nd time speaking at a conference) but was convinced by some friends that I should speak about something. I only like to speak about subjects that I know quite a bit about and since I've been fighting a mild case of impostor syndrome on and off for the past year or so, it felt like a good fit.</p>
<p>My slide deck is fairly minimal and the talk wasn't filmed so this is part of a series of posts that go with the talk for those that are interested.</p>
Yes, You Belong Here - Overcoming Impostor Syndromehttps://bressain.com/blog/2014-05-11-yes-you-belong-here-overcoming-impostor/2014-05-11T00:00:00Z<p>This is part two of the series on my talk about impostor syndrome. You can read the first part <a href="https://bressain.com/blog/2014-04-25-yes-you-belong-here-what-is-impostor/">here</a>.</p>
<div class="inline-image">
<img src="https://bressain.com/img/2895379972_65e3f11fd4_m.jpg" alt="man sinking in leaves" />
</div>
<p>In <a href="https://bressain.com/blog/2014-04-25-yes-you-belong-here-what-is-impostor/">part one</a>, I discussed what impostor syndrome was and the effects of it. Hopefully you don't feel limited by the effects of impostor syndrome but if you do, I hope this post can start you on a path that leads you to managing it so that you can succeed.</p>
Yes, You Belong Here - Helping Others With Impostor Syndromehttps://bressain.com/blog/2014-05-20-yes-you-belong-here-helping-others-with/2014-05-20T00:00:00Z<p>This is part three of the series on my talk about impostor syndrome. You can read the first two parts <a href="https://bressain.com/blog/2014-04-25-yes-you-belong-here-what-is-impostor/">here</a> and <a href="https://bressain.com/blog/2014-05-11-yes-you-belong-here-overcoming-impostor/">here</a>.</p>
<div class="inline-image">
<img src="https://bressain.com/img/hand-reaching-bw.jpg" alt="hand reaching out" style="height:213px;width:320px;" />
</div>
<p>In <a href="https://bressain.com/blog/2014-05-11-yes-you-belong-here-overcoming-impostor/">part two</a> I discussed things that you can do to overcome and manage impostor syndrome. I'm going to wrap things up by discussing things you can do to help others affected by impostor syndrome. Whether you aren't affected by impostor syndrome or have a good handle on it, there are always things you can do to help.</p>
Creating External Hooks In AngularJS Directiveshttps://bressain.com/blog/2014-07-13-creating-external-hooks-in-angularjs/2014-07-13T00:00:00Z<p>I ran into an interesting problem a few weeks ago at work. I was working on a stand-alone widget/directive that had the following requirements:</p>
<ul>
<li>Create a widget that shows the amount of comments for a given resource.</li>
<li>Pull the count from a site commenting service.</li>
<li>Move focus to another widget (most likely a related commenting widget) when this widget is clicked.
<ul>
<li><strong>The other widget may or may not be an Angular widget.</strong></li>
</ul>
</li>
<li>Allow external widgets/things tell the directive to update its comment count from the service.
<ul>
<li><strong>The external "thing" may or may not be an "Angular thing".</strong></li>
</ul>
</li>
</ul>
<p>Since the widget would usually be in an Angular app, making an Angular directive seemed like the thing to do. The directive would also be offered as a self-bootstrapping chunk of javascript for pages that weren't using Angular but that's beyond the scope of this post.</p>
Collaboration and Creativityhttps://bressain.com/blog/2015-06-26-collaboration-and-creativity/2015-07-26T00:00:00Z<p>I heard something interesting in an audiobook I was listening to the other day that gave me pause. It was in regards to how creativity can be stifled in group settings. Here was the scenario (paraphrased):</p>
<blockquote>
<p>Let’s say you have several people in a room with a task of coming up with some creative idea. Some are considered fairly creative but are also quiet. The others aren’t that creative but are fairly loud and assertive. Chances are, the ideas that will come out of the group will be the less creative ideas from the more loud and assertive members of the group.</p>
</blockquote>
<p>There are many factors that can sway the result (e.g. not all quiet people are pushovers, not all loud people try to bulldoze others, etc) but having experienced both sides of this coin, I think the general case remains likely.</p>
<p>That said, <strong>neither I or the book are advocating to never collaborate at work</strong>. I think there is strength in both approaches. While I like the idea of going off by myself to be creative or learn something, I know that by testing the resulting ideas against a group setting, I can get those ideas validated and possibly enhanced.</p>
<p>Really it comes down to: <strong>Like most things in life, if you do too much of one thing, you’re probably going to get suboptimal results</strong>.</p>
My Origin Storyhttps://bressain.com/blog/2017-05-14-my-origin-story/2017-05-14T00:00:00Z<p><img src="https://bressain.com/img/origin-header.jpg" alt="ninja turtle comic header" /></p>
<p>Every developer has an "origin story", the story of how they got into this crazy career. I'm always interested in hearing how people find their way into software development as it tells me a little about where their passions lie. Did you come from an artistic side? Did you come from the business realm? Have you been programming since you could type? Here's my origin story.</p>
More Adventures In Losing Weighthttps://bressain.com/blog/2017-05-21-more-adventures-in-losing-weight/2017-05-21T00:00:00Z<p><img src="https://bressain.com/img/scale-and-tape.jpg" alt="scale and tape header" /></p>
<p>Remember when I <a href="https://bressain.com/blog/2014-02-02-adventures-in-losing-weight/">posted about losing weight</a> a few years ago? Remember when I posted a few disclaimers during that post? I'm feeling pretty good about those disclaimers right now because I was <em><strong>wrong</strong></em> about a lot of the things in that post. The good news is I'm down 55 <em>more</em> lbs and I have learned a <strong>lot</strong> since then.</p>
Swapping redux-thunk With redux-saga For Better Testinghttps://bressain.com/blog/2017-11-10-swapping-redux-thunk-with-redux-saga/2017-11-10T00:00:00Z<p><img src="https://bressain.com/img/redux-saga.png" alt="redux-saga logo" /></p>
<p>I think it's pretty safe to say at this point that the vast majority of React code bases that need state management are using Redux. One of the things people like about Redux (yours truly included), is the testing story is great. Because reducers don't allow mutating state, you'll get the same result with the same input every time (yay functional paradigms!). But then there's testing actions...</p>
Agility Requires Retrospectiveshttps://bressain.com/blog/agility-requires-retrospectives/2020-09-28T00:00:00Z<p><img src="https://bressain.com/img/retro-coffee.jpg" alt="coffee on a table" /></p>
<p>tl;dr: If you do <em>anything</em> as it relates to agile, make sure you're doing regular retrospectives...</p>
Reacting To Slackhttps://bressain.com/blog/reacting-to-slack/2020-10-09T00:00:00Z<p><img src="https://bressain.com/img/slack-reactions.png" alt="several random slack reaction emoji" /></p>
<p>I think it's time for a very nitpicky rant about how to use Slack, specifically the "reaction" feature.</p>
Being A Team Norms Chameleonhttps://bressain.com/blog/being-a-team-norms-chameleon/2020-11-05T00:00:00Z<p><img src="https://bressain.com/img/team-norms-chameleon.jpg" alt="chameleon" /></p>
<p>Team norms are the often unspoken rules, values, or behaviors that a team operates under. Every team has team norms. Some teams even document them (recommended if you can nail them down). Whether someone is new to a team or has been there for some time, <strong>it's important to learn how to adapt to these norms</strong>. Those that don't learn to adapt to these norms will often find frustration or at worst, termination. Those that <em>can</em> adapt to these norms are what I'm going to call a "Team Norms Chameleon".</p>