<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>16Bit</title>
	<atom:link href="http://16bit.orderinchaos.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://16bit.orderinchaos.org</link>
	<description>stuff for programmers</description>
	<lastBuildDate>Wed, 05 May 2010 20:27:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Task Tags</title>
		<link>http://16bit.orderinchaos.org/2010/02/20/task-tags/</link>
		<comments>http://16bit.orderinchaos.org/2010/02/20/task-tags/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 23:52:24 +0000</pubDate>
		<dc:creator>RB Whitaker</dc:creator>
				<category><![CDATA[General Programming Tips]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[task tag]]></category>

		<guid isPermaLink="false">http://16bit.orderinchaos.org/?p=331</guid>
		<description><![CDATA[The Eclipse IDE  has built in what they call task tags.  These are little tags in the comments that indicate that something needs to still be done.  An example of this is the popular TODO tag.  I see a lot of people using this tag, and sometimes, even IDEs add them in for you.  Eclipse [...]]]></description>
			<content:encoded><![CDATA[<p>The Eclipse IDE  has built in what they call task tags.  These are little tags in the comments that indicate that something needs to still be done.  An example of this is the popular TODO tag.  I see a lot of people using this tag, and sometimes, even IDEs add them in for you. </p>
<p>Eclipse has three task tags built in by default.  A TODO tag, a FIXME tag, and an XXX tag.  When you see a TODO tag in a comment, you know that something still needs to be done.  The FIXME tag is a more serious problem that should be addressed right away.  The XXX tag&#8211;well who knows what it means, but I think somebody failed to <a title="think about the name they are using" href="/2010/01/30/some-thoughts-on-product-names/">think about the name they are using</a>.</p>
<p>Even though Eclipse defines several task tags for you, you can use whatever task tags you want.</p>
<p>There are several that I find very useful:</p>
<ul>
<li>TODO:  Marks something that still needs to be done.  Lots of people use this.</li>
</ul>
<p> </p>
<ul>
<li>TRICKY: Marks a section of code as a tricky part of the code.   When you come back to the code, you will quickly see that you don&#8217;t want to mess with the code unless you know what you are doing, or you could mess things up pretty badly.</li>
</ul>
<p> </p>
<ul>
<li>HACK: Marks a section of code as being a hack.  Though everyone tries to aways write perfect code, sometimes we end up hacking things together to meet a deadline, or simply because it is easier.  We then go on with our lives and the hack remains in there forever.  Marking these sections as a hack makes it obvious that there is a better way.  In fact, whenever I put in a HACK tag, I try to also include what I would have done had I had more time to work on it, so that the ideal solution is clearly marked.</li>
</ul>
<p> </p>
<ul>
<li>BUG: This is maybe similar to the FIXME tag built into Eclipse.  I put these in my comments if there is a bug that I know about in it.  Obviously, these should have a high priority for fixing, because they&#8217;re a known bug.  For various reasons though, sometimes they don&#8217;t get fixed for a long time.  Perhaps it is a bug that is rare to see in normal use of the program.  When a developer does finally get around to fixing the bug, if there is a BUG tag there to indicate what might be going on, it helps them quickly get up to speed with potential problems with the function.  Of course, good unit tests will keep these kinds of bugs in check.</li>
</ul>
<p>Perhaps you have your own that you use.  Please share your ideas in the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://16bit.orderinchaos.org/2010/02/20/task-tags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Customer Isn&#8217;t Always Right&#8230;.</title>
		<link>http://16bit.orderinchaos.org/2010/02/17/the-customer-isnt-always-right/</link>
		<comments>http://16bit.orderinchaos.org/2010/02/17/the-customer-isnt-always-right/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 04:11:24 +0000</pubDate>
		<dc:creator>RB Whitaker</dc:creator>
				<category><![CDATA[if (post == wierd) {category = other}]]></category>

		<guid isPermaLink="false">http://16bit.orderinchaos.org/?p=324</guid>
		<description><![CDATA[So I&#8217;ve just spent the last three hours playing around on a new site I discovered called Clients From Hell:   http://clientsfromhell.tumblr.com/. The site is primarily for web designers, but it just goes to show you that the customer isn&#8217;t always right.  Sometimes, clients and users have no idea what they really want.  Or worse:  they think [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve just spent the last three hours playing around on a new site I discovered called Clients From Hell:   <a href="http://clientsfromhell.tumblr.com/">http://clientsfromhell.tumblr.com/</a>.</p>
<p>The site is primarily for web designers, but it just goes to show you that the customer isn&#8217;t always right.  Sometimes, clients and users have no idea what they really want.  Or worse:  they <em>think</em> they know what they want.  I think it is important to remember that you are in this field for a reason.  You know what works and what doesn&#8217;t.</p>
<p>To drive this point home, here&#8217;s a link to a prime example of this.  This is a committee of people trying to design a stop sign, which was featured on Today&#8217;s Big Thing: <a href="http://www.todaysbigthing.com/2008/07/23">http://www.todaysbigthing.com/2008/07/23</a>.  Seriously, you&#8217;ll enjoy it.  And you&#8217;ll never forget that your clients don&#8217;t always know what they want, or, more importantly, what is going to make the program the most useful.</p>
<p>It is seriously worth watching out for this, or you may hear what one client on Clients from Hell said: &#8220;Oh, no!  You did what I asked you to do!&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://16bit.orderinchaos.org/2010/02/17/the-customer-isnt-always-right/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dependency Walker: Solving DLL loading problems</title>
		<link>http://16bit.orderinchaos.org/2010/02/10/dependency-walker-solving-dll-loading-problems/</link>
		<comments>http://16bit.orderinchaos.org/2010/02/10/dependency-walker-solving-dll-loading-problems/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 13:46:24 +0000</pubDate>
		<dc:creator>RB Whitaker</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Utilities]]></category>
		<category><![CDATA[dependency]]></category>
		<category><![CDATA[dependency walker]]></category>
		<category><![CDATA[DLL]]></category>
		<category><![CDATA[utility]]></category>

		<guid isPermaLink="false">http://16bit.orderinchaos.org/?p=317</guid>
		<description><![CDATA[The other day at work, I was reminded of some problems we were having a while back with getting some DLLs to load.  It was quite frustrating, and we couldn&#8217;t get the problem fixed on our own.  We eventually discovered a nifty utility program called Dependency Walker (http://www.dependencywalker.com/) that helped us find out what was [...]]]></description>
			<content:encoded><![CDATA[<p>The other day at work, I was reminded of some problems we were having a while back with getting some DLLs to load.  It was quite frustrating, and we couldn&#8217;t get the problem fixed on our own.  We eventually discovered a nifty utility program called Dependency Walker (<a href="http://www.dependencywalker.com/">http://www.dependencywalker.com/</a>) that helped us find out what was going wrong.  While all of the DLLs that we had created or directly referenced were where they were supposed to be, we had a DLL that had a dependency on a DLL that had a dependency on a DLL that we weren&#8217;t thinking about.  Dependency Walker helped us see this, and then the problem was easy to fix.</p>
<p>The screenshot below shows Dependency Walker in action:</p>
<p><a href="http://16bit.orderinchaos.org/wp-content/uploads/2010/02/dependency-walker.png"><img class="aligncenter size-medium wp-image-319" title="dependency-walker" src="http://16bit.orderinchaos.org/wp-content/uploads/2010/02/dependency-walker-300x167.png" alt="" width="300" height="167" /></a></p>
<p>The program is extremely easy to use.  Just browse and find your DLL and load it, and it tells you everything that tries to get loaded after that.  Dependencies that don&#8217;t exist (or have some other problem) show up in red.</p>
<p>It is one of those nice utility tools that I wish I had known about a long time ago.</p>
]]></content:encoded>
			<wfw:commentRss>http://16bit.orderinchaos.org/2010/02/10/dependency-walker-solving-dll-loading-problems/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Three Non-Technical Skills All Developers Should Work On</title>
		<link>http://16bit.orderinchaos.org/2010/02/06/three-non-technical-skills-all-developers-should-work-on/</link>
		<comments>http://16bit.orderinchaos.org/2010/02/06/three-non-technical-skills-all-developers-should-work-on/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 16:02:20 +0000</pubDate>
		<dc:creator>RB Whitaker</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://16bit.orderinchaos.org/?p=312</guid>
		<description><![CDATA[We spend a lot of time thinking about technical skills when we work in a technical industry.  However, I can think of (at least) three non-technical skills that all developers should be able to peform, at at least a basic functional level.  Having these skills will definitely make you stand out above other &#8220;normal&#8221; programmers. [...]]]></description>
			<content:encoded><![CDATA[<p>We spend a lot of time thinking about technical skills when we work in a technical industry.  However, I can think of (at least) three non-technical skills that all developers should be able to peform, at at least a basic functional level.  Having these skills will definitely make you stand out above other &#8220;normal&#8221; programmers.</p>
<h4 style="padding-left: 30px;">1. Technical Writing Skills</h4>
<p style="padding-left: 30px;">Technical writing involves writing about technical products (what you make in the rest of your time) to a non-technical audience.  The prime example that comes to mind is a User&#8217;s Manual.  Some of the larger companies have their own team of technical writers, and if you work for them, then you won&#8217;t need to worry about this.  But many other smaller companies assume that their programming team can produce user documentation like this, often without even bothering to check to see if they actually know how to do it first.</p>
<p style="padding-left: 30px;">Obviously, technical writing will involve knowing proper spelling, grammar, and punctuation.  In addition, it requires you to be able to take all of the technical junk that you know and explain it in a way that your users/readers will be able to understand.  As people who know the technical world so well, it is difficult for us to comprehend that our users often don&#8217;t understand the difference between a browser, the Internet, and Google.  Another part of technical writing is in understanding <em>how</em> people will be using your writing.  For example, with a user&#8217;s manual, few people are actually going to read through it from start to finish.  Instead, they&#8217;ll go to it when they run into trouble.  A big part of writing a user&#8217;s manual is in learning how to structure the document so that these users who have come across a program can quickly find the solution they need.</p>
<h4 style="padding-left: 30px;">2. Presentation/Public Speaking Skills</h4>
<p style="padding-left: 30px;">Let&#8217;s face it, we&#8217;re all at least part nerd.  You have to be to survive in this industry.  Nerds, unfortunately, don&#8217;t have a reputation for good interpersonal communication.  This is another area that all developers should conscientiously spend time working on.  At some point (probably frequently) in your career, you will be expected to present your ideas or your work to a group of people, such as your team, upper management, potential clients, or shareholders.  In these events, the quality of your speaking and presentation can cost the company both financially, which in turn could mean people losing jobs (maybe even you).</p>
<p style="padding-left: 30px;">In many cases, for such high profile meetings, the company will usually try to find someone capable of giving a good presentation, but in some cases, your detailed tecnical knowledge of your software will be more valuable to the presentation than whatever public speaking skills another person has.  Now, if the people you are speaking to understand that you&#8217;re a developer, not the company&#8217;s PR specialist, they&#8217;ll likely be fairly forgiving.  It is still important, though, that you can do a good job.</p>
<p style="padding-left: 30px;">By the way, good public speaking skills during an interview will set you apart from other applicants in a significant way.  You will get hired if you could present yourself clearly to the interviewer, while another person had better technical skills, but was unable to clearly explain it to the interviewer.</p>
<h4 style="padding-left: 30px;">3. Artistic Skills</h4>
<p style="padding-left: 30px;">OK, no one expects you to be able to paint like DaVinci.  That takes a lifetime of practice, and a good eye for art.  If you were that skilled at it, you probably wouldn&#8217;t be in a technical job.  However, having a basic set of artistic skills can significantly improve your program.</p>
<p style="padding-left: 30px;">I remember in college, along with virtually everyone else in the department, making fun of all of the &#8220;easy&#8221; majors like art.  (I mean, what are they going to be able to do with a degree?  Teach?)  After all, we slaved away all weekend making programs that could solve mazes, while our roommates ran around partying.  (OK, it was Utah.  The partying probably wasn&#8217;t quite on par with what might have been seen elsewhere, but still&#8230;.)</p>
<p style="padding-left: 30px;">What came as a surprise to me was as I was nearing the end of my schooling, I suddenly began to feel really lopsided.  Like my left brain had grown to epic proportions, while my right brain had shriveled to the size of a pea.  I felt a <em>need</em> to balance all of that computer/math/physics stuff out with some art.  (Let me set the record strait, though.  I would definitely not call myself an artist by any stretch of the imagination.)</p>
<p style="padding-left: 30px;">The point is, having some basic artistic skills will help with your programs in many ways.  Knowing what colors go together well will help in a GUI.  Being able to produce stand-in artwork for your program will help it feel more professional during the development cycle.  I&#8217;d bet that a fairly significant amount of stand-in artwork actually ends up in final production anyway.</p>
<p style="padding-left: 30px;">Having some artistic skills will help your program in a number of ways, and it will help you be a more rounded person as well. </p>
<p>I realize that as a developer, you have a lot of things to learn and work on.  If you can&#8217;t keep up with the changing requirements of your job, you&#8217;ll soon lose it.  These skills, while not technical, will make you much more valuable as a developer, and the best part is, they won&#8217;t go obsolete (unlike that time you learned J++).</p>
<p>Are there any other non-technical skills that would be helpful to developers?  Leave a comment and let us know!</p>
]]></content:encoded>
			<wfw:commentRss>http://16bit.orderinchaos.org/2010/02/06/three-non-technical-skills-all-developers-should-work-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some Thoughts on Product Names</title>
		<link>http://16bit.orderinchaos.org/2010/01/30/some-thoughts-on-product-names/</link>
		<comments>http://16bit.orderinchaos.org/2010/01/30/some-thoughts-on-product-names/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 01:00:25 +0000</pubDate>
		<dc:creator>RB Whitaker</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://16bit.orderinchaos.org/?p=308</guid>
		<description><![CDATA[Apple just announced the name for their newest toy, the iPad this week.  My first thought was, &#8220;Oh, that&#8217;s a reasonable name.  It sounds like an iPod, only different.&#8221;  But then I heard people talking about the new iPad and saying &#8220;What will the come up with next?  The iTampon?&#8221;  Being a guy, my initial [...]]]></description>
			<content:encoded><![CDATA[<p>Apple just announced the name for their newest toy, the iPad this week.  My first thought was, &#8220;Oh, that&#8217;s a reasonable name.  It sounds like an iPod, only different.&#8221;  But then I heard people talking about the new iPad and saying &#8220;What will the come up with next?  The iTampon?&#8221; </p>
<p>Being a guy, my initial interpretation of pads is, well&#8230; not what a woman thinks of first.  But now that I have heard about it, I can&#8217;t help but think about it.  I would venture a guess that most women would think of this as a pretty poor name for a product.  The fact that #itampon is a trending topic on Twitter is proof.</p>
<p>Now, I don&#8217;t think that the product name is going to kill Apple.  They might feel some effect from it, but in the end, probably not much.  They&#8217;re lucky.  They&#8217;re a huge company with a pretty high reputation, and they&#8217;ll likely do well, not <em>because</em> of the name, but in <em>spite</em> of the name.  Few other companies could pull this off though.  With the small company that I work for, this would likely kill us off.</p>
<p>So my first reaction is to think about what led them to this name?  I&#8217;ve heard some people say that they must not have thought it through very well.  I seriously doubt that.  I&#8217;ll bet they had many long meetings discussing the name, and chose it from a large collection of other names only after a great deal of thought.  If Apple is like much of the rest of the technology industry, then there is unfortunately a very small number of women there.  Had there been a few more, they could have avoided this disaster.</p>
<p>Apple isn&#8217;t the only company to create not-so-perfect names.  In the past, I worked on a program whose name had to be changed because it was already taken.  Instead, our company chose an acronym that unfortunately sounds way too much like a game from EA.  Anyone who I told about the program immediately asked &#8220;oh like the game?&#8221;  Our boss doesn&#8217;t seem to be too interested in changing the name before it is too late.</p>
<p>This is only the beginning of the list.  Many companies have made mistakes like this.  Don&#8217;t let it happen to you.  You may not come out of it as well as Apple will.</p>
<p>So the important thing to discuss is how to actually come up with good names for software.  Here&#8217;s a few suggestions that I have.</p>
<ol>
<li>Tell as many people about the intended name as possible.  Tell your spouse, tell your friends, and above all, tell a pessimist and a cynic.  See what their first reaction is.  The focus should be less on sheer quantity, and more on variety.</li>
<li>Google it.  Or <a title="google it with Bing" href="http://www.collegehumor.com/video:1915736" target="_blank">google it with Bing</a>.  Whichever.  The point is, the name may be taken, or it may have a meaning that a team of nerds didn&#8217;t realize.  (Yeah, we aren&#8217;t all nerds, but, I&#8217;ll admit it, I am.) <a title="FailBlog" href="http://www.failblog.org" target="_blank">Failblog</a> is full of dumb product names that could have been avoided with a simple web search.  And let&#8217;s be honest, if Apple had done this, they likely would have found <a title="MadTV's iPad spoof" href="http://www.youtube.com/watch?v=8eF0y0IfpPU" target="_blank">MadTV&#8217;s iPad spoof</a>.</li>
<li>Don&#8217;t decide on a product name overnight.  Spend the entire development cycle of the program deciding.  You don&#8217;t need a name until you are ready to start marketing or making big announcements.  I realize that there is a desire to put an interesting title at the top of your program besides &#8220;Form1&#8243;.  And you also want to be able to discuss your program without needing to say &#8220;the program that does ____&#8221;. Many companies use code names for their projects.  I&#8217;d definitely recommend taking advantage of project code names to give your team or company plenty of time to brainstorm and explore plenty of good ideas for the final name.</li>
</ol>
<p>What interesting things does your company do to help pick creative (and safe) names for your software?  Leave a comment and let us know!</p>
]]></content:encoded>
			<wfw:commentRss>http://16bit.orderinchaos.org/2010/01/30/some-thoughts-on-product-names/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Batch File to Merge All Source Code</title>
		<link>http://16bit.orderinchaos.org/2010/01/20/batch-file-to-merge-all-source-code/</link>
		<comments>http://16bit.orderinchaos.org/2010/01/20/batch-file-to-merge-all-source-code/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 05:03:55 +0000</pubDate>
		<dc:creator>RB Whitaker</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[batch file]]></category>
		<category><![CDATA[command prompt]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://16bit.orderinchaos.org/?p=298</guid>
		<description><![CDATA[While I was working on my thesis, I was trying to put together part of my source code for an appendix.  (I know some professors would rather just have source code on a CD or a digital transfer, instead of as an appendix, but my major professor said to do it, so that&#8217;s what happens.) [...]]]></description>
			<content:encoded><![CDATA[<p>While I was working on my thesis, I was trying to put together part of my source code for an appendix.  (I know some professors would rather just have source code on a CD or a digital transfer, instead of as an appendix, but my major professor said to do it, so that&#8217;s what happens.)</p>
<p>Of course, the problem is, I have over 100 source code files, and somehow I need to get them into a Word document.</p>
<p>Solution: batch file.</p>
<p>I&#8217;m sure many of you know your way around a command prompt.  So I guess my point with this post is not to say &#8220;you all ought to go learn how to use a command prompt&#8221; but rather, I guess I&#8217;m just trying to say aren&#8217;t batch files cool?!</p>
<p>Batch files and command prompts give you quite a bit of power.  It is something that I think many of us forget easily.  Or at least I do. </p>
<p>So here is my sample code, which takes all of the Java files in a directory, and combines them into a single output text file, separated by the contents of another file (separator.txt) which in my case contained the text &#8220;/*REPLACE ME&#8211;REPLACE ME&#8211;REPLACE ME*/&#8221; so that I could go through and replace all of them with page breaks once I copied and pasted the output file into my Word document.</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">for /r %%f in (*.java) do (<br />
type &quot;%%f&quot; 1&gt;&gt;output.txt<br />
type separator.txt 1&gt;&gt;output.txt<br />
)</div></div>
]]></content:encoded>
			<wfw:commentRss>http://16bit.orderinchaos.org/2010/01/20/batch-file-to-merge-all-source-code/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Software Post-Mortems</title>
		<link>http://16bit.orderinchaos.org/2010/01/09/software-post-mortems/</link>
		<comments>http://16bit.orderinchaos.org/2010/01/09/software-post-mortems/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 20:52:04 +0000</pubDate>
		<dc:creator>RB Whitaker</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[post-mortem]]></category>
		<category><![CDATA[team]]></category>
		<category><![CDATA[teamwork]]></category>

		<guid isPermaLink="false">http://16bit.orderinchaos.org/?p=295</guid>
		<description><![CDATA[Hi everyone!  It&#8217;s been a little while since we&#8217;ve been able to post things, with the holidays and just generally busy lives.  But I figure it is about time to get something new posted on here. I want to discuss an important tool that can help development teams improve as they move from project to [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everyone!  It&#8217;s been a little while since we&#8217;ve been able to post things, with the holidays and just generally busy lives.  But I figure it is about time to get something new posted on here.</p>
<p>I want to discuss an important tool that can help development teams improve as they move from project to project, or to a new version of a program: A post-mortem.</p>
<p>In the real world, a post-mortem is something doctors will do after a person has died to determine the cause of death.  This is often called an autopsy.</p>
<p>While, hopefully, most of our projects don&#8217;t die, there is great benefits to doing the same kind of process for our software projects, once it is over.  The goal is to review what went well in the project, and what didn&#8217;t, and analyze how to keep doing the good stuff in the future, as well as how to fix the bad stuff in the future.</p>
<p>I would break the post-mortem into the following steps:</p>
<ol>
<li>Plan for it.  Set up a meeting for it, and let everyone involved know they are expected to contribute.</li>
<li>Hold the meeting.  Depending on the size of your team, you may have the entire team meet, or just the key people, such as the QA lead, the lead developer, the project manager, and so on.  Have everyone share their ideas, and make sure someone is taking notes.  Pay special attention to the things that come up more than once, or that everyone seems agrees with.  These are either the things you did really well, or the things you did really poorly.</li>
<li>Write a Post-Mortem Report.  Take the list of things you discussed, and create a report about it.  Make sure everyone on the team gets a copy of it, and that they read it before getting underway with the next project.  This allows everyone to make the changes needed to do better on the next project.</li>
</ol>
<p>Post-mortems can be a huge help to improving the quality of software you produce, and streamlining the way your team works.</p>
]]></content:encoded>
			<wfw:commentRss>http://16bit.orderinchaos.org/2010/01/09/software-post-mortems/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Visual Studio Design Time Painting</title>
		<link>http://16bit.orderinchaos.org/2009/12/14/visual-studio-design-time-painting/</link>
		<comments>http://16bit.orderinchaos.org/2009/12/14/visual-studio-design-time-painting/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 23:18:10 +0000</pubDate>
		<dc:creator>RB Whitaker</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://16bit.orderinchaos.org/?p=284</guid>
		<description><![CDATA[There are occasional times when you create a custom control in Visual Studio where you do some specific painting.  Sometimes, you need to do some different painting when the window is being displayed in the form designer than during the actual execution of the program. I found myself needing this kind of a thing today [...]]]></description>
			<content:encoded><![CDATA[<p>There are occasional times when you create a custom control in Visual Studio where you do some specific painting.  Sometimes, you need to do some different painting when the window is being displayed in the form designer than during the actual execution of the program.</p>
<p>I found myself needing this kind of a thing today when my application would execute just fine, but when the designer was trying to display my form, it would crash, forcing me to manually type in GUI code, or use other less efficient hacks to make my application.</p>
<p>I discovered that there is an extremely simple solution for doing this, and it is useful enough that I think all programmers who use Visual Studio ought to know how to do it, or at least, that it exists.</p>
<p>The following piece of code takes care of this:</p>
<div class="codecolorer-container csharp blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0600FF; font-weight: bold;">protected</span> <span style="color: #0600FF; font-weight: bold;">override</span> <span style="color: #6666cc; font-weight: bold;">void</span> OnPaint<span style="color: #008000;">&#40;</span>PaintEventArgs paintEvent<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
    <span style="color: #0600FF; font-weight: bold;">if</span><span style="color: #008000;">&#40;</span>DesignMode<span style="color: #008000;">&#41;</span><br />
    <span style="color: #008000;">&#123;</span><br />
        <span style="color: #008080; font-style: italic;">// Do whatever you need that is specific to design time here</span><br />
    <span style="color: #008000;">&#125;</span><br />
    <span style="color: #0600FF; font-weight: bold;">else</span><br />
    <span style="color: #008000;">&#123;</span><br />
        <span style="color: #008080; font-style: italic;">// Do things that should only be done outside of design time here</span><br />
    <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://16bit.orderinchaos.org/2009/12/14/visual-studio-design-time-painting/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Black Window of Death</title>
		<link>http://16bit.orderinchaos.org/2009/12/08/the-black-window-of-death/</link>
		<comments>http://16bit.orderinchaos.org/2009/12/08/the-black-window-of-death/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 05:00:44 +0000</pubDate>
		<dc:creator>RB Whitaker</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://16bit.orderinchaos.org/?p=280</guid>
		<description><![CDATA[I was just talking to my brother, who is studying engineering, about some of the programming he does, and he used the term &#8220;Black Window of Death&#8221; to describe a console window. I have to say that while I can&#8217;t completely agree with him, console windows are often black windows of death indeed.  There are occasional [...]]]></description>
			<content:encoded><![CDATA[<p>I was just talking to my brother, who is studying engineering, about some of the programming he does, and he used the term &#8220;Black Window of Death&#8221; to describe a console window.</p>
<p>I have to say that while I can&#8217;t <em>completely</em> agree with him, console windows are often black windows of death indeed. </p>
<p>There are occasional times where a simple console window solves the problem quickly and effectively, and there is no need to do anything more.</p>
<p>But let&#8217;s face the facts:  only computer people will know what to do with a console window.  A &#8220;normal&#8221; person (as in not a computer person) will not have the slightest clue as to what to do with your console window.  If you are the only one using it, you&#8217;re fine.  If only other tech-savvy people use it, they&#8217;ll probably be able to handle it as well.  But as soon as a normal person is supposed to use it, they&#8217;ll be staring at a black window with no clue what to do.</p>
<p>There&#8217;s no excuse for sticking a user with a console-only application.  GUIs are so easy to make these days in programming languages like C# and Java.</p>
<p>So, while there may be times where a console window is the ideal choice, you should at least consider throwing together a simple GUI instead.</p>
<p>If there is some sort of real value to a console-based app (scripting, for example), perhaps you could consider the option of providing <em>both</em> a GUI and a console/command-line interface to your program.</p>
]]></content:encoded>
			<wfw:commentRss>http://16bit.orderinchaos.org/2009/12/08/the-black-window-of-death/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bad Code Offsets</title>
		<link>http://16bit.orderinchaos.org/2009/12/03/bad-code-offsets/</link>
		<comments>http://16bit.orderinchaos.org/2009/12/03/bad-code-offsets/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 02:41:53 +0000</pubDate>
		<dc:creator>Dave Kennedy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bad code]]></category>
		<category><![CDATA[good code]]></category>
		<category><![CDATA[nerd attire]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://16bit.orderinchaos.org/?p=266</guid>
		<description><![CDATA[Bad Code Offsets, they&#8217;re kinda like Carbon Offsets. The announcement of the project essentially says &#8220;bad code is lame, let&#8217;s collectively work to guard against it&#8221;, only, it&#8217;s being marketed better. Today&#8217;s update on the project announces how much money has been raised, what projects are getting what money, and how you can get $500 [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_267" class="wp-caption alignright" style="width: 264px"><a href="http://16bit.orderinchaos.org/wp-content/uploads/2009/12/badcodecert.png"><img class="size-full wp-image-267" title="badcodecert" src="http://16bit.orderinchaos.org/wp-content/uploads/2009/12/badcodecert.png" alt="Source: codeoffsets.com" width="254" height="277" /></a><p class="wp-caption-text">Image Source: codeoffsets.com</p></div>
<p>Bad Code Offsets, they&#8217;re kinda like Carbon Offsets. The <a href="http://thedailywtf.com/Articles/Introducing-Bad-Code-Offsets.aspx">announcement of the project </a>essentially says &#8220;bad code is lame, let&#8217;s collectively work to guard against it&#8221;, only, it&#8217;s being marketed better. Today&#8217;s <a href="http://thedailywtf.com/Articles/Bad-Code-Offsets-An-Update.aspx">update on the project</a> announces how much money has been raised, what projects are getting what money, and how you can get $500 for your own project!</p>
<p>Check out the <a href="http://codeoffsets.com/">project&#8217;s home page</a> to see find out more about it and see how you can buy bad code offsets.</p>
<p>Personally&#8230;. I think I&#8217;d rather just buy their T-shirt. I mean, you&#8217;re contributing to the project all the same &#8211; <em>but</em> you get to both flaunt it around the office on casual Friday&#8217;s. But, since you might keep your offset stocks mounted in a frame in your office for your co-workers anyway, the advantage of the T-shirt is that you can flaunt it at your local watering hole. Oh, and did I mention their logo is awesome?</p>
<p>I mean, we all write bad code and  need clothes.  The next time I have a few bucks to spare, I&#8217;m totally gettin&#8217; me a shirt. <a href="http://16bit.orderinchaos.org/wp-content/uploads/2009/12/bc_logo_sm1.png"><img class="alignnone size-full wp-image-273" title="bc_logo_sm" src="http://16bit.orderinchaos.org/wp-content/uploads/2009/12/bc_logo_sm1.png" alt="bc_logo_sm" width="150" height="122" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://16bit.orderinchaos.org/2009/12/03/bad-code-offsets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

