tag:blogger.com,1999:blog-88571757975095146442024-02-07T12:07:16.565-06:00Hit the Bits!One guy's bold adventures in the world of computer programmingDavehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.comBlogger55125tag:blogger.com,1999:blog-8857175797509514644.post-57480303238300480942017-12-04T11:30:00.000-06:002017-12-04T11:30:00.186-06:00Music for Coding<style>hr { margin: 2em 0; }</style>
<p>Writing good code takes concentration. As easily distracted as I am, I have to find ways to drown out the noise around me. That's why when it's time to write code, I slap on my QC25 headphones and spin up the tunes. Today I thought I'd share what I listen to.</p>
<p>In order to stay focused, I need music that's not distracting - if there are lyrics or catchy melodies, it'll break my concentration. So most of the time, I turn to video game music, because it's crafted to sit in the background.</p>
<p>So without further delay, here are the albums that I listen to the most when I write code.</p>
<hr />
<h2>Child of Light</h2>
<p><em>Child of Light</em> has an absolutely amazing soundtrack, with simple but intriguing arrangements that largely feature piano, cello, and other strings. There are a variety of more intense songs mixed in, but overall the mood reflects the storybook art style of the game. I'm almost certain that I've listened to this album more than any other album ever, because I listen to it almost every single day that I write code.</p>
<p>The game was also a lot of fun - it's a simple RPG with characters that are likable, and a story that's immersive but not overly complex.</p>
<iframe seamless="" src="https://bandcamp.com/EmbeddedPlayer/album=2789088897/size=large/bgcol=ffffff/linkcol=333333/tracklist=false/artwork=small/transparent=true/" style="border: 0; height: 120px; width: 100%;"><a href="http://musique.coeurdepirate.com/album/child-of-light">Child of Light by Coeur de pirate</a></iframe>
<hr />
<h2>Hollow Knight</h2>
<p>I purchased the <em>Hollow Knight</em> soundtrack just a few months ago, but it's quickly becoming one of my favorite albums to code to. The mysterious nature of this soundtrack lends itself well to thinking, and it has just the right amount of action songs mixed in to keep you moving forward. This is another one that I've started listening to almost every day.</p>
<iframe seamless="" src="https://bandcamp.com/EmbeddedPlayer/album=2306704082/size=large/bgcol=ffffff/linkcol=333333/tracklist=false/artwork=small/transparent=true/" style="border: 0; height: 120px; width: 100%;"><a href="http://christopherlarkin.bandcamp.com/album/hollow-knight-original-soundtrack">Hollow Knight (Original Soundtrack) by Christopher Larkin</a></iframe>
<hr />
<h2>Ori and the Blind Forest</h2>
<p>I've you've played <em>Ori and the Blind Forest</em>, you know that the game is a masterpiece in almost every respect. The music is absolutely commensurate with the breathtaking visual art of the game.<p>
<p>The music is more thematic than <em>Child of Light</em>, so there are sections that draw my attention a bit more, but overall it's still a fantastic album to listen to when you write code.</p>
<iframe seamless="" src="https://bandcamp.com/EmbeddedPlayer/album=3213044151/size=large/bgcol=ffffff/linkcol=333333/tracklist=false/artwork=small/transparent=true/" style="border: 0; height: 120px; width: 100%;"><a href="http://garethcoker.bandcamp.com/album/ori-and-the-blind-forest-additional-soundtrack">Ori and the Blind Forest (Additional Soundtrack) by Gareth Coker</a></iframe>
<hr />
<h2>Dust: An Elysian Tale</h2>
<p><em>Dust</em> was an amazing game. The gameplay was addicting, and the world was immersive. And it was basically made all by a single guy - an artist named Dean Dodrill who decided to write a video game with XNA. The <a href="https://www.gamasutra.com/view/feature/180520/postmortem_humble_hearts_dust_.php">postmortem</a> is an excellent read.</p>
<p>The soundtrack was done by HyperDuck SoundWorks, and it's also a great album to code to. It's also got some tracks that are a bit more thematic, but overall still works well for writing code.</p>
<iframe seamless="" src="https://bandcamp.com/EmbeddedPlayer/album=3553227058/size=large/bgcol=ffffff/linkcol=333333/tracklist=false/artwork=small/transparent=true/" style="border: 0; height: 120px; width: 100%;"><a href="http://hyperduck.bandcamp.com/album/dust-an-elysian-tail-original-soundtrack">Dust: An Elysian Tail - Original Soundtrack by HyperDuck SoundWorks</a></iframe>
<hr />
<h2>Nightsky</h2>
<p>This one's not a video game soundtrack, but I still found it to be a great album for concentration. Tracey Chattaway's <em>Nightsky</em> album has songs that have a slow, steady, warm sound to them, which is fantastic when I need to slow down and think.</p>
<iframe seamless="" src="https://bandcamp.com/EmbeddedPlayer/album=3079228776/size=large/bgcol=ffffff/linkcol=333333/tracklist=false/artwork=small/transparent=true/" style="border: 0; height: 120px; width: 100%;"><a href="http://traceychattaway.bandcamp.com/album/nightsky">Nightsky by Tracey Chattaway</a></iframe>
<hr />
<h2>How about you?</h2>
So those are some of my favorite albums for concentration when I'm writing code. How about you? What do you listen to?
Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-22217362182765667522017-10-23T11:30:00.000-05:002017-10-23T11:30:00.645-05:00My Latest Project: TypeAlias<!--<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibczEcgcCiZXbpj1iieaIZZEy8pU5UWoT2Mjk6X-JmKuipnQzfjGFS6zLagDbObyzYV2hvzxPIfoaZ_aquPFcB6tlLTc_kglu4Ra3ZrCeZbXY109ZsbGjkwHJX_ltmBM9DI3HNXvfTaVM/s1600/typealias.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibczEcgcCiZXbpj1iieaIZZEy8pU5UWoT2Mjk6X-JmKuipnQzfjGFS6zLagDbObyzYV2hvzxPIfoaZ_aquPFcB6tlLTc_kglu4Ra3ZrCeZbXY109ZsbGjkwHJX_ltmBM9DI3HNXvfTaVM/s200/typealias.png" width="200" height="200" data-original-width="256" data-original-height="256" /></a></div>-->
<p>There are lots of great reasons to explore new programming languages, even if you don't end up using them in production. I especially appreciate the new perspective that they give me. And sometimes, I come across a language that ends up being a fantastic fit for the particular set of problems that I'm working on at the time.</p>
<p>As I focused a lot of my development efforts on Android over the past year, I came to appreciate the benefits of <a href="https://kotlinlang.org">Kotlin</a> quickly. I liked it back when it was in beta a few years ago, and I put in enough time with the language to understand most of what it had to offer.</p>
<p>But there's </p><a href="http://www.hitthebits.com/2017/10/my-latest-project-typealias.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-26229597314813512732015-11-12T06:30:00.000-06:002015-11-12T06:30:00.364-06:00Kotlin Gradle Blooper!<link href="https://googledrive.com/host/0B3uX9JgaoJYkWU9EaVRuTHBpaGs/prism.css" rel="stylesheet" />
<script src="https://googledrive.com/host/0B3uX9JgaoJYkWU9EaVRuTHBpaGs/prism.js"></script>
<p>
This weekend I had a blast working through the <a href="http://try.kotlinlang.org/">Kotlin Koans</a>, so I thought I'd fire up my IDE and try my hand at porting one of my existing hobby projects from Groovy to Kotlin.
</p>
<p>
As I began working on it, I was surprised to notice that some of the cool features from the Koans and other examples online weren't available to me in my project -- things like doing <code>MyClass::class.java</code>, <code>listOf()</code>, and even <code>forEach</code> on my <code>List<></code> objects.
</p>
<p>
My build.gradle file was including the <a href="https://kotlinlang.org/docs/reference/using-gradle.html">kotlin-gradle-plugin</a>, of course, but if you want all the goodies, you've got to also include the <a href="https://kotlinlang.org/api/latest/jvm/stdlib/index.html">Kotlin Standard Library</a>:
</p>
<pre>
<code class="language-javascript">
dependencies {
compile 'org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version_number'
}
</code>
</pre>
<p>
Naturally, the <a href="https://kotlinlang.org/docs/reference/using-gradle.html#configuring-dependencies">instructions</a> for configuring dependencies for the Kotlin Gradle plugin say very clearly to include it, and they even give a full example. I guess in my excitement I just skipped over that part! My bad, yo.
</p>
<p>
So... if you're a Kotlin newb like me and your code seems to be missing some major Kotlinness, be sure to include the Standard Library!
</p>
<p>
Leeds out.
</p>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-17393221308693674142014-05-01T03:00:00.000-05:002014-05-01T03:00:05.900-05:00Happy Birthday, BASIC!<div class="separator" style="clear: both; text-align: center;">
<div style="clear:right; float:right; margin-left:1em; margin-bottom:0em">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2p5SjATvcKuuTdU-Lz7aqQfyZVOToXZy0rSVSN9d-S40jFeRRV_D_QD9F-gTAWnnoeS_23S047ym62XXBVzUCCTllsnLlJjqt8o6Gart56tVbqdGfGV0nYljEvG-Pu9oPuc7DXxKQGgQ/s350/cake.png" style="box-shadow:none;" alt="Birthday cake... worst pixel art ever!">
</div></div>
<p>I haven't written a lick of BASIC in years, now. But because 2014 marks its 50th anniversary, I simply have to tip my hat to the language that introduced me to programming back when I was a kid. </p>
<p>According to the wikipedia article for <a href="http://en.wikipedia.org/wiki/Dartmouth_BASIC">Dartmouth BASIC</a>, May 1, 1964 is recorded as the date when Kemeny and McGeachie successfully fired off their first BASIC command. As for me, I didn't successfully fire off my first BASIC command until almost twenty years later. I was </p><a href="http://www.hitthebits.com/2014/05/happy-birthday-basic.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-62713745830027442082014-04-01T19:00:00.000-05:002014-04-01T19:00:04.858-05:00Java 8 Collection Updates - Slides and Code<p>
Here are the slides from my presentation at the Nashville Java User Group on April 1, 2014. Also, I've got the <a href="https://github.com/djleeds/hack-n-slash">Hack-n-Slash code samples</a> from the presentation available on GitHub. They run as JUnit tests, so you can explore them, tinker with them, and see them in action!
</p>
<iframe src="http://www.slideshare.net/slideshow/embed_code/32966363" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px 1px 0; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="https://www.slideshare.net/djleeds/java-8-collection-api-updates" title="Java 8 Collection API Updates" target="_blank">Java 8 Collection API Updates</a> </strong> from <strong><a href="http://www.slideshare.net/djleeds" target="_blank">Dave Leeds</a></strong> </div>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-78243738595224882522013-08-08T12:00:00.002-05:002020-03-23T22:04:30.691-05:00Writing Small Methods... No, I Mean Really Small Methods<div class="separator" style="clear: both; text-align: center;">
<div style="clear:right; float:right; margin-left:1em; margin-bottom:0em">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3nyQqgM8JayYVbh_6p0Xyf6QL7ZpeDMUYzXS7T0GQnV_cqQI1urGP_OmQgjSYbbxNLcCgXYYuIvezmBQkQ2KaZwl5NiIEV49hdQ8PVVdLNDWLz4zhgC4oJJ9xdKHSMY9Hl2f3e0XLa2o/s350/htb-mouse-elephant.png" style="box-shadow:none;" alt="Mouse and Elephant">
</div></div>
<p>Like many programmers, I've typically aimed to keep my methods small. On average, my methods have been probably around 8-12 lines long. But lately, I've had a blast </p><a href="http://www.hitthebits.com/2013/08/really-small-methods.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-12811932254804967732013-06-26T11:18:00.000-05:002013-06-26T11:18:24.468-05:00Unit Testing: What's a Unit?<div class="separator" style="clear: both; text-align: center;">
<div style="clear:right; float:right; margin-left:1em; margin-bottom:0em">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7zRwdtYb7qSwWtbBb1yN3t2D3I76PPFMhScorhsaSx-C8Xpp6wCQm7VgNFASM8GB8Ba0ERmHUJ947JdFLVwkehB6s7A7lzWKxaH8LfYIIez2ouRo3V4zVwCBNpLiIoeSbq7spaj0NYsk/w200-h199-no/atom.png" style="box-shadow:none;">
</div></div>
<p>We all know that we should be writing unit tests, but have you ever thought about what a <em>unit</em> is, exactly? Most definitions out there, including <a href="http://en.wikipedia.org/wiki/Unit_testing">the one on Wikipedia</a>, describe it as the smallest piece of code that can be tested.</p>
<p>But what does that mean? The answer to that question will </p><a href="http://www.hitthebits.com/2013/06/unit-testing-whats-a-unit.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-53085097947782250502013-05-31T12:14:00.003-05:002013-05-31T12:14:42.996-05:00My Favorite Presentations from RailsConf 2013<style>
li { line-height: 36px; }
</style>
<p>
<a href="https://twitter.com/confreaks">Confreaks</a> has been busy over the past few weeks, putting together the videos from RailsConf 2013. Now that they've posted over 90% of the presentations, you've got </p><a href="http://www.hitthebits.com/2013/05/favorite-railsconf-2013-presentations.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-66373105098556819692013-05-21T21:07:00.000-05:002013-05-21T21:08:53.408-05:003½ Ways to Reuse Code in ColdFusion Components<p>
Programming languages give us a variety of options for sharing code among multiple classes. In this article, let's look at the <strong>3½ ways</strong> that ColdFusion allows us to get code reuse in our components.
</p><p>
Let's start with a problem – we've got two </p><a href="http://www.hitthebits.com/2013/05/coldfusion-code-reuse.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-52300878823202558262013-05-06T12:05:00.000-05:002013-05-06T12:05:00.384-05:00RailsConf 2013 Highlights<p>
Last week, I had the privilege of attending <a href="http://railsconf.com/">RailsConf</a> up in Portland. With about 1500 attendees, 4 days of sessions, about 3-4 session options to choose from at any time, and a set of about 40 lightning talks, there was </p><a href="http://www.hitthebits.com/2013/05/railsconf-2013-highlights.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-17459997716520324782013-04-25T19:11:00.001-05:002013-04-25T19:11:49.596-05:00Extra Git Merge Commits: Merge branch 'master' of github.com:owner/repo<style>
blockquote.inline {
display: inline;
margin-left: 1em;
font-family: "Courier New", Courier, monospace
}
</style>
<p>
As I've been working with some friends on a GitHub-hosted project lately, I've seen tons of seemingly extraneous merge commits in our master branch that look something like this:
</p>
<blockquote>
Merge branch 'master' of github.com:owner/repo
</blockquote>
<p>
This can seem confusing, especially to those coming from a subversion paradigm, for a few reasons:
</p>
<ol>
<li>You see it when you're working on master. If there's no branching happening, why is there a merge?</li>
<li>The merge commit includes changes that have already been committed, so it looks like they're happening twice.</li>
</ol>
<h3>
What Causes This?
</h3>
<p>
When you're </p><a href="http://www.hitthebits.com/2013/04/extra-git-merge-commits.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-26642354937103064662013-03-27T20:27:00.001-05:002013-03-27T20:40:52.475-05:00A Quick Look at SourceTree for Windows<p>
Atlassian recently released a <a href="http://blog.bitbucket.org/2013/03/19/introducing-sourcetree-git-client-microsoft-windows/">beta version of SourceTree for Windows</a>, their graphical Git client, which was previously only available on Mac. Since BitBucket kept telling me to give it a try, I gave in and snagged a copy.
</p>
<p>
Now, I gotta say, the Git CLI is amazing. I mean, you can do some crazy stuff in a simple terminal window. Tasks like interactive rebasing and cherry picking hunks of changes work surprisingly well on the command line. But there are also tons of features of Git that would lend themselves well to a GUI. So let's peek in on SourceTree to see what it provides.
</p>
<a href="http://www.hitthebits.com/2013/03/sourcetree-for-windows.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-16536216435468342492013-03-20T12:36:00.000-05:002013-03-20T12:36:06.798-05:00Book Review: Effective C# by Bill Wagner; Addison-Wesley<blockquote>
This review covers Effective C#: 50 Specific Ways to Improve Your C# (Second Edition) by Bill Wagner, published by Addison-Wesley. You can pick it up from <a href="http://www.amazon.com/Effective-Covers-4-0-Specific-Development/dp/0321658701/">Amazon</a> or <a href="http://www.informit.com/store/effective-c-sharp-covers-c-sharp-4.0-50-specific-ways-9780321658708">InformIT</a>.
</blockquote>
<p>
Bill Wagner's book, <em>Effective C#, 2nd Edition</em> delivers fifty easily-digested best practices to take your C# to the next level, covering a variety of topics from language idioms to dynamic programming and beyond. There are roughly 300 pages that are packed with content, striking an excellent balance of code and prose.
</p><p>
As a professional programmer who has </p><a href="http://www.hitthebits.com/2013/03/effective-c-sharp-review.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-55710934351026115842013-03-14T21:05:00.000-05:002013-03-14T21:05:46.374-05:00Time to Restructure!<p>
I love greenfield projects! They're a chance to start with a clean slate. A chance to do things right. After maintaining our existing apps for so long, we're keenly aware of everything that we'd do to fix them. A fresh start is a golden opportunity to take all those lessons we've learned and apply them in order to build a shiny, pristine code base that we can be proud of.
</p><h3>
The New Project Rush
</h3><p>
New projects are also usually a bit of a rush. The business team wants to make sure you can deliver by a certain date, so things </p><a href="http://www.hitthebits.com/2013/03/time-to-restructure.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-85623320843556284572013-03-07T18:44:00.001-06:002013-03-07T18:44:21.268-06:00Are You a Programming Newbie?<p>We were all coding noobs at one point or another. Here's my list of the top ten things that I hope you don't do anymore.</p>
<p>You might be a programming newbie if...</p>
<ol>
<li>You put all of your variables in the global scope</li>
<li>You've got a conditional with half a dozen expressions</li>
<li>All of your variables names have </li></ol><a href="http://www.hitthebits.com/2013/03/programming-newbie.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-46549361994986706172013-02-27T21:35:00.000-06:002013-02-27T21:35:03.046-06:00Best Practices vs. Prototypes<p>
I've noticed that developers are good at identifying and learning best practices. I've also noticed that they're equally good at coming up with reasons why the best practices don't apply in some particular case they're working on.
</p><p>
If that's you, don't worry. I'm not here to slam you. In fact, I think it's something that we all wrestle with daily. We know the</p><a href="http://www.hitthebits.com/2013/02/best-practices-vs-prototypes.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-23501100584809036422013-02-21T21:01:00.000-06:002013-02-21T21:01:04.042-06:00Code Review Best Practices - Use Code Review Software<style>
#reasons { margin-left: 2em; }
#reasons img { box-shadow: none; float: right; margin: 2em; }
</style>
<p>
Although you can get by doing <a href="/2012/10/live-code-reviews.html">live code reviews</a>, I've found that using code review software has generally made my code reviews much more productive. There aren't a ton of code review software packages out there, but some of them are outstanding.
</p><p>
If you're </p><a href="http://www.hitthebits.com/2013/02/code-review-software.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-88216607183487170092013-02-13T12:00:00.000-06:002013-02-13T12:47:37.803-06:00HTML5 Date Pickers and JavaScript Date Objects<style>
table#date-standards { border: 1px solid silver; }
table#date-standards th { border: 1px dotted silver; text-align: left; padding: 5px; }
table#date-standards td { border: 1px dotted silver; padding: 5px; }
.live-demo {
padding: 1em;
background: #9ac3dd; /* Old browsers */
background: linear-gradient(to bottom, #9ac3dd 0%,#85aabf 50%,#9ac3dd 100%); /* W3C */
border: 1px solid #85aabf;
}
.live-demo span, .live-demo label {
color: white;
padding: 3px;
}
#file-htb-html5-date-picker-2-html-LC4 { background-color: #fffdba; }
</style>
<p>
HTML5 date picker elements have a lot of potential. After all, there are tons of apps out there that need a control for choosing a date. The number of browsers that support them is gradually growing, but not as quickly as you'd expect. Here's what it looks like in your browser -- it might just be a text box if your browser doesn't yet support date pickers:
</p>
<div class="live-demo">
<label>HTML5 Date Picker:</label>
<input type="date" value="2013-02-14">
</div>
<p>
Because of the lack of support in some browsers and the simple implementation in others, many developers still end up going with jQuery UI to render their date pickers.
</p>
<p>
If you choose to go with the native HTML5 control, you might notice a problem when </p><a href="http://www.hitthebits.com/2013/02/html5-date-pickers-and-javascript-date-objects.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-28251519010006170122013-02-08T12:46:00.000-06:002013-02-08T12:47:21.976-06:00Code Review Presentation Slides<p>
For those who attended this week's <a href="http://www.meetup.com/nashvillejug/">Nashville Java Users' Group</a> and were interested in reviewing the <a href="http://www.slideshare.net/djleeds/code-reviews-16414279">slides from my lightning talk on Code Reviews</a>, I put them up on SlideShare. For convenience, I'm also embedding the presentation here.
</p>
<iframe src="http://www.slideshare.net/slideshow/embed_code/16414279" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="http://www.slideshare.net/djleeds/code-reviews-16414279" title="Effective Code Reviews" target="_blank">Effective Code Reviews</a> </strong> from <strong><a href="http://www.slideshare.net/djleeds" target="_blank">Dave Leeds</a></strong> </div>
<p>
While preparing for that presentation, I also realized that I've got a few gaps to fill in from the initial <a href="http://www.hitthebits.com/p/code-reviews.html">series on code reviews</a>, so I'll be adding to that series over the coming weeks.
</p>
Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-81183281961352294192013-01-28T12:01:00.001-06:002013-01-28T12:01:44.794-06:00What vs. How<p>
Have you ever had this happen to you? -- You're wading through code, analyzing one expression after another. After getting forty lines into the method, you pause and ask yourself, "Wait, what is this method supposed to do again?" It's easy to miss the forest for the trees.
</p>
<p>
This happens a lot when the code is </p><a href="http://www.hitthebits.com/2013/01/what-vs-how.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-30573769697097023222013-01-17T12:38:00.001-06:002013-01-17T12:38:29.547-06:00How to Sell Them on Your Design<p>
So, you've been tasked with restructuring your object model. After hours of thinking through the implications of each design decision, you've sketched up your new object model in a UML class diagram. You're ready to present it to your peers! Now, how are you going to sell them on it?
</p>
<p>
Take a look at </p><a href="http://www.hitthebits.com/2013/01/sell-them-on-your-design.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-88752982645525355672013-01-09T21:48:00.001-06:002013-01-09T22:21:03.252-06:00Speak to Me, UML!<p>
I don't know about you, but when I first learned about UML, I was ecstatic! I was just so excited to have a standard way to represent my object model in class diagrams in ways that were easy to sketch and understandable by others. I created diagrams every chance I got.
</p>
<p>
Here's an example of what my class diagrams looked like back then:
</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimxcRg41Gy69XSC5tzdTmmqp6ZkDsYQ_JQfia8UOHpzVMYhHryGIQTit3x9xaFO7SAZcWyCW2AfZnMtin2MjWjswfQcnVoTo1qdZ7PaYH5W4O2kiky9TRpAI54KLvdutH0xVfiMMoEdrw/s640/htb-speak-to-me-uml.png" alt="Very detailed UML diagram">
<p>Yep, that's what they looked like, except with about three or four times the number of classes as we see here. Sure, they were factually correct, but they were also so doggone verbose that they were only good for stuff like auto-generating stubbed out classes.
</p>
<p>
Reading a diagram like that is a bit like</p><a href="http://www.hitthebits.com/2013/01/speak-to-me-uml.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-33251151194713452552013-01-01T00:08:00.000-06:002013-01-02T06:35:23.512-06:00Goal-Setting Tips for Programmers<style type="text/css">
em { padding-right: 0.35em; }
</style>
<p>
We all know that goal setting is important, and the beginning of the year is a great time to recalibrate your compass! So to start your year off right, here are a few tips for goal-setting, from a programmer's perspective.</p><a href="http://www.hitthebits.com/2013/01/goal-setting-tips-for-programmers.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-21098000163393583672012-12-18T18:22:00.000-06:002012-12-18T18:22:06.634-06:00What Didn't Go Wrong?<p>
As programmers, we love developing new features. After all, it's fun! And afterward, you can fire up the app, point to the feature, and say "See that? I made that." And if it's a helpful feature, your customers are happy, which probably means you get more sales, which increases your profits.
</p>
<p>
There's another side of development, though – one that's easier to overlook. These are projects that involve things like</p><a href="http://www.hitthebits.com/2012/12/what-didnt-go-wrong.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0tag:blogger.com,1999:blog-8857175797509514644.post-78736598358390781002012-12-11T20:13:00.000-06:002015-02-05T17:56:35.275-06:00UML Diagramming Tools<p>
I'm a big fan of UML -- especially class diagrams. I'm also a big fan of free. So I figured I'd put those things together and give you a quick review of some of the free UML tools out there! </p><a href="http://www.hitthebits.com/2012/12/uml-diagramming-tools.html#more">Read more »</a>Davehttp://www.blogger.com/profile/04658179796048189813noreply@blogger.com0