<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-1924689018684710969</atom:id><lastBuildDate>Mon, 11 Aug 2025 07:24:10 +0000</lastBuildDate><title>Borked Tech</title><description>A mandatory class blog that ended up being fun. So I kept it going</description><link>http://blog.abork.co/</link><managingEditor>noreply@blogger.com (abork)</managingEditor><generator>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1924689018684710969.post-2640364617085293405</guid><pubDate>Thu, 22 Nov 2012 18:34:00 +0000</pubDate><atom:updated>2015-01-18T21:36:21.826-06:00</atom:updated><title>Combining the cloud</title><description>I have this idea, for a program to somehow combine all of my cloud storage services into one giant pool.&lt;br /&gt;
&lt;br /&gt;
I have&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;25 gb of dropbox&amp;nbsp;&lt;/li&gt;
&lt;li&gt;25 gb of skydrive&lt;/li&gt;
&lt;li&gt;5 gb of google drive&lt;/li&gt;
&lt;li&gt;5 gb of cubby&lt;/li&gt;
&lt;li&gt;50 gb of box&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
If I were to somehow combine these, I&amp;nbsp;would&amp;nbsp;have 110 gb of &amp;nbsp;cloud storage. The problem though, is that most of these services have very low maximum file size limits. From Lifehacker,&amp;nbsp;http://lifehacker.com/5905702/dropbox-google-drive-skydrive-and-others-pricing-per-gb-and-more-compared-in-convenient-charts&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;dropbox (no limit)&lt;/li&gt;
&lt;li&gt;skydrive 2gb&lt;/li&gt;
&lt;li&gt;drive 10gb&lt;/li&gt;
&lt;li&gt;cubby 2gb&lt;/li&gt;
&lt;li&gt;box 25mb&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Now, Windows 8 has a new feature called storage spaces, which lets you combine physical hard drives to appear as one big virtual hard drive. Now I would much rather do this on linux using &lt;a class=&quot;vt-p&quot; href=&quot;http://greyhole.net/&quot;&gt;http://greyhole.net&lt;/a&gt;&amp;nbsp;however most of these programs do not have linux clients to sync.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Anyway, how do we get each program&#39;s folder to mount as a drive so we can combine them with storage spaces? Well it is not all that simple. Because of the filesize limits for each service, doing something like&amp;nbsp;&lt;a class=&quot;vt-p&quot; href=&quot;http://serverfault.com/questions/24400/in-windows-how-to-mount-folder-as-a-drive&quot;&gt;mounting a folder as a drive&lt;/a&gt;&amp;nbsp;would make my storage space max filesize 25mb.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
I present an alternative solution. windows&#39;s VHD system. Windows allows you to create virtual disk files that can be mounted as real disks. This solves the problem with box.net&#39;s&amp;nbsp;extremely&amp;nbsp;low filesize limit. However it presents another problem. How many vhds do we need to create to fill up 50gb? well&amp;nbsp;50 gb / 25mb = 16000 disks. I would shoot myself if I had to make these by hand and connect them to my storage space by hand so I will skip the box creation for my testing period.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://blog.abork.co/2012/11/combinig-cloud.html</link><author>noreply@blogger.com (abork)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1924689018684710969.post-5875249602109209382</guid><pubDate>Tue, 06 Nov 2012 17:42:00 +0000</pubDate><atom:updated>2012-11-06T11:42:17.526-06:00</atom:updated><title>Documentation</title><description>I will be finally documenting my Home Network setup on this wiki page&lt;br /&gt;
http://wiki.xbmc.org/index.php?title=User:Yougotborked&lt;br /&gt;
&lt;br /&gt;
I feel it is a good location as it mostly revolves around XBMC</description><link>http://blog.abork.co/2012/11/documentation.html</link><author>noreply@blogger.com (abork)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1924689018684710969.post-1327011057581906413</guid><pubDate>Mon, 09 Jan 2012 04:30:00 +0000</pubDate><atom:updated>2012-01-08T22:30:21.892-06:00</atom:updated><title></title><description>Here is the link to the word doc, If you would rather read that. The formatting Is kinda screwy online.&lt;br /&gt;
&lt;a class=&quot;vt-p&quot; href=&quot;https://sites.google.com/a/abork.co/www/Final.docx&quot;&gt;https://sites.google.com/a/abork.co/www/Final.docx&lt;/a&gt;</description><link>http://blog.abork.co/2012/01/here-is-link-to-word-doc-if-you-would.html</link><author>noreply@blogger.com (abork)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1924689018684710969.post-1563379675533394312</guid><pubDate>Sat, 24 Dec 2011 23:15:00 +0000</pubDate><atom:updated>2011-12-24T17:15:42.563-06:00</atom:updated><title>Final Paper, enjoy!</title><description>&lt;!--[if !mso]&gt;
&lt;style&gt;
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:OfficeDocumentSettings&gt;
  &lt;o:RelyOnVML/&gt;
  &lt;o:AllowPNG/&gt;
 &lt;/o:OfficeDocumentSettings&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves&gt;false&lt;/w:TrackMoves&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val=&quot;Cambria Math&quot;/&gt;
   &lt;m:brkBin m:val=&quot;before&quot;/&gt;
   &lt;m:brkBinSub m:val=&quot;&amp;#45;-&quot;/&gt;
   &lt;m:smallFrac m:val=&quot;off&quot;/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val=&quot;0&quot;/&gt;
   &lt;m:rMargin m:val=&quot;0&quot;/&gt;
   &lt;m:defJc m:val=&quot;centerGroup&quot;/&gt;
   &lt;m:wrapIndent m:val=&quot;1440&quot;/&gt;
   &lt;m:intLim m:val=&quot;subSup&quot;/&gt;
   &lt;m:naryLim m:val=&quot;undOvr&quot;/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState=&quot;false&quot; DefUnhideWhenUsed=&quot;true&quot;
  DefSemiHidden=&quot;true&quot; DefQFormat=&quot;false&quot; DefPriority=&quot;99&quot;
  LatentStyleCount=&quot;267&quot;&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;0&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Normal&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;heading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;35&quot; QFormat=&quot;true&quot; Name=&quot;caption&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;10&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; Name=&quot;Default Paragraph Font&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;11&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtitle&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;22&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Strong&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;20&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;59&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Table Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Placeholder Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;No Spacing&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Revision&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;34&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;List Paragraph&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;29&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;30&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;19&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;21&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;31&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;32&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;33&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Book Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;37&quot; Name=&quot;Bibliography&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; QFormat=&quot;true&quot; Name=&quot;TOC Heading&quot;/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
 {mso-style-name:&quot;Table Normal&quot;;
 mso-tstyle-rowband-size:0;
 mso-tstyle-colband-size:0;
 mso-style-noshow:yes;
 mso-style-priority:99;
 mso-style-parent:&quot;&quot;;
 mso-padding-alt:0in 5.4pt 0in 5.4pt;
 mso-para-margin-top:0in;
 mso-para-margin-right:0in;
 mso-para-margin-bottom:10.0pt;
 mso-para-margin-left:0in;
 line-height:115%;
 mso-pagination:widow-orphan;
 font-size:11.0pt;
 font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:minor-latin;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
table.MsoTableGrid
 {mso-style-name:&quot;Table Grid&quot;;
 mso-tstyle-rowband-size:0;
 mso-tstyle-colband-size:0;
 mso-style-priority:59;
 mso-style-unhide:no;
 border:solid windowtext 1.0pt;
 mso-border-alt:solid windowtext .5pt;
 mso-padding-alt:0in 5.4pt 0in 5.4pt;
 mso-border-insideh:.5pt solid windowtext;
 mso-border-insidev:.5pt solid windowtext;
 mso-para-margin:0in;
 mso-para-margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:11.0pt;
 font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:minor-latin;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapedefaults v:ext=&quot;edit&quot; spidmax=&quot;1031&quot;/&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapelayout v:ext=&quot;edit&quot;&gt;
  &lt;o:idmap v:ext=&quot;edit&quot; data=&quot;1&quot;/&gt;
 &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;
 &lt;span style=&quot;font-family: &amp;quot;Cambria&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 11.0pt; mso-ansi-language: EN-US; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: AR-SA; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-US; mso-fareast-theme-font: major-fareast; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;/span&gt;
    &lt;br /&gt;
&lt;table align=&quot;left&quot; border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; border: none; margin-left: 7.1pt; margin-right: 7.1pt; mso-border-left-alt: solid #93A299 2.25pt; mso-border-left-themecolor: accent1; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-table-anchor-horizontal: margin; mso-table-anchor-vertical: margin; mso-table-left: center; mso-table-lspace: 9.35pt; mso-table-rspace: 9.35pt; mso-table-top: 144.05pt; mso-yfti-tbllook: 1184; width: 80.0%;&quot;&gt;
  &lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;
   
    &lt;td style=&quot;border-left: solid #93A299 2.25pt; border: none; mso-border-left-themecolor: accent1; padding: .15in 5.75pt .15in 5.75pt; width: 383.6pt;&quot; valign=&quot;top&quot; width=&quot;511&quot;&gt;
    &lt;div class=&quot;MsoNoSpacing&quot; style=&quot;mso-element-anchor-horizontal: margin; mso-element-frame-hspace: 9.35pt; mso-element-left: center; mso-element-top: 144.05pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Cambria&amp;quot;,&amp;quot;serif&amp;quot;; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: major-fareast; mso-hansi-theme-font: major-latin;&quot;&gt;Anbork.info presents,&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
   
  &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 1;&quot;&gt;
   &lt;td style=&quot;border-left: solid #93A299 2.25pt; border: none; mso-border-left-themecolor: accent1; padding: 0in 5.4pt 0in 5.4pt; width: 383.6pt;&quot; valign=&quot;top&quot; width=&quot;511&quot;&gt;
    &lt;div class=&quot;MsoNoSpacing&quot; style=&quot;mso-element-anchor-horizontal: margin; mso-element-frame-hspace: 9.35pt; mso-element-left: center; mso-element-top: 144.05pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;&gt;
&lt;span style=&quot;color: #93a299; font-family: &amp;quot;Cambria&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 40.0pt; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: major-fareast; mso-hansi-theme-font: major-latin; mso-themecolor: accent1;&quot;&gt;Pain-Reduction
    Techniques&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 2; mso-yfti-lastrow: yes;&quot;&gt;
   &lt;td style=&quot;border-left: solid #93A299 2.25pt; border: none; mso-border-left-themecolor: accent1; padding: .15in 5.75pt .15in 5.75pt; width: 383.6pt;&quot; valign=&quot;top&quot; width=&quot;511&quot;&gt;
    &lt;div class=&quot;MsoNoSpacing&quot; style=&quot;mso-element-anchor-horizontal: margin; mso-element-frame-hspace: 9.35pt; mso-element-left: center; mso-element-top: 144.05pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;&gt;
&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Cambria&amp;quot;,&amp;quot;serif&amp;quot;; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: major-fareast; mso-hansi-theme-font: major-latin;&quot;&gt;for
    Software Development&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-family: &amp;quot;Cambria&amp;quot;,&amp;quot;serif&amp;quot;; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: major-fareast; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
   
  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;left&quot; border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; margin-left: 7.1pt; margin-right: 7.1pt; mso-border-insideh: none; mso-border-insidev: none; mso-border-left-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-table-anchor-horizontal: margin; mso-table-anchor-vertical: margin; mso-table-left: center; mso-table-lspace: 9.35pt; mso-table-rspace: 9.35pt; mso-table-top: bottom; mso-yfti-tbllook: 1184; width: 81.88%;&quot;&gt;
  &lt;tbody&gt;
&lt;tr style=&quot;height: 52.95pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0; mso-yfti-lastrow: yes;&quot;&gt;
   &lt;td style=&quot;border-left: solid #8A8AA2 1.5pt; border: none; height: 52.95pt; mso-border-left-themecolor: text1; mso-border-left-themetint: 128; padding: 0in 5.4pt 0in 5.4pt; width: 392.05pt;&quot; valign=&quot;top&quot; width=&quot;523&quot;&gt;
    &lt;div class=&quot;MsoNoSpacing&quot; style=&quot;mso-element-anchor-horizontal: margin; mso-element-frame-hspace: 9.35pt; mso-element-left: center; mso-element-top: bottom; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;&gt;
&lt;span style=&quot;color: #93a299; mso-themecolor: accent1;&quot;&gt;Andrew Bork&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot; style=&quot;mso-element-anchor-horizontal: margin; mso-element-frame-hspace: 9.35pt; mso-element-left: center; mso-element-top: bottom; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;&gt;
&lt;a href=&quot;mailto:borkx026@umn.edu?subject=You%20got%20an%20A%20on%20your%20final%20paper%21&quot;&gt;Borkx026&lt;/a&gt;
   &lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot; style=&quot;mso-element-anchor-horizontal: margin; mso-element-frame-hspace: 9.35pt; mso-element-left: center; mso-element-top: bottom; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;&gt;
&lt;span style=&quot;color: #93a299; mso-themecolor: accent1;&quot;&gt;12/14/2011&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;tab-stops: 189.6pt;&quot;&gt;
&lt;span style=&quot;color: #93a299; font-family: &amp;quot;Cambria&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 40.0pt; line-height: 115%; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: major-fareast; mso-hansi-theme-font: major-latin; mso-themecolor: accent1;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #93a299; font-family: &amp;quot;Cambria&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 40.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: AR-SA; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-US; mso-fareast-theme-font: major-fareast; mso-hansi-theme-font: major-latin; mso-themecolor: accent1;&quot;&gt;&lt;br clear=&quot;all&quot; style=&quot;mso-special-character: line-break; page-break-before: always;&quot; /&gt;
 &lt;/span&gt;
 &lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-linespan: 3; mso-element-wrap: around; mso-element: dropcap-dropped; mso-height-rule: exactly;&quot;&gt;


&lt;table align=&quot;left&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; hspace=&quot;0&quot; vspace=&quot;0&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td align=&quot;left&quot; style=&quot;padding-bottom: 0in; padding-left: 0in; padding-right: 0in; padding-top: 0in;&quot; valign=&quot;top&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 46.3pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-linespan: 3; mso-element-wrap: around; mso-element: dropcap-dropped; mso-height-rule: exactly; mso-line-height-rule: exactly; page-break-after: avoid; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;font-size: 61.0pt; mso-bidi-font-family: Calibri; mso-bidi-font-size: 11.0pt; mso-bidi-theme-font: minor-latin; mso-text-raise: -4.0pt;&quot;&gt;W&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
ith an hour left before the deadline, tensions run high
amongst partners Jim and Matt on Coding Team Alpha. Working separately across
campus, they are communicating via gChat regarding a bug that neither of them
seems to be able to find. Jim suggests that the FOR loop may be going past the
allotted array indices into segfault territory. A quick change of the
parameters, compile, run, and … Success! No errors. Now for the test cases.
Pass, Pass, Pass … Fail. “What happened?” asks Matt. “The last test case
failed” types Jim. “Let me take a look at it, go ahead and commit your code”
says Matt. Jim commits the code to their mutual repository and Matt updates his
version. While merging the changes, he notices the conflict.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;His code detects the “to” keyword, and has
the regex backend working properly. The repository does not. He compiles and
runs his version. “Mine just passed all the tests” types Matt. “I added the “to”
parser while you were working on that loop.” With all test cases passing, the
final version is committed and tagged. Both members continue on with their
nights with the deadline achieved.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
This is just one example of a common problem that
programmers working in groups face. But an error with version control software
is hopefully the least of your worries. Bad documentation, inconsistent
development techniques, and how to avoid that dang Subversion error above are a
few of the topics I will discuss in this article.&lt;/div&gt;
&lt;h1&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795002&quot;&gt;How to Read This Paper&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Each major section has a “Reducing the pain”
area, underlined and Italicized that contains what exactly you should do to
make your life easier. Here is an example&lt;/div&gt;
&lt;h4&gt;
&lt;span class=&quot;MsoIntenseReference&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Reducing
the pain on the “How to Read This Paper Section”&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Remember to read this so you know how to reduce
the pain.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Or in an abbreviated format,&lt;/div&gt;
&lt;h4&gt;
&lt;span class=&quot;MsoIntenseReference&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;RTP – How
to Read This Paper&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Remember to read this so you know how to reduce
the pain.&lt;/div&gt;
&lt;h1&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795003&quot;&gt;Disclaimer to the Reader&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The information given in this article is not guaranteed to
actually help you. Because people both work and learn differently you may hate
a certain tool or love another one. Either way, the tools I list are my
personal preference for minimizing pain in software development.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;br clear=&quot;all&quot; style=&quot;mso-special-character: line-break; page-break-before: always;&quot; /&gt;
&lt;/span&gt;

&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoTocHeading&quot;&gt;
Table of Contents&lt;span style=&quot;color: windowtext; font-size: 11.0pt; font-weight: normal; line-height: 115%; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc1&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795002&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;How to Read This Paper&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;1&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc1&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795003&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Disclaimer to the Reader&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;1&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc1&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795004&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Writing and Documentation
 of a Group Project&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;3&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc2&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795005&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Comments&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;3&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc2&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795006&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Working in Groups&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;3&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc2&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795007&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Commit Messages&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;3&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc1&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795008&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Physical Pain in Software
 Development&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;4&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc2&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795009&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;GNU Style&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;4&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc2&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795010&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;The Dvorak Keyboard&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;5&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc1&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795011&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Design Choices&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;5&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc2&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795012&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Software Development
 methodologies (SDLC)&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;5&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc2&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795013&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Defensive Programming&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;6&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc2&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795014&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Understandable Code&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;6&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc1&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795015&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Software Development
 tools&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;7&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc2&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795016&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Version Control - Apache
 Subversion&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;7&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc2&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795017&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Testing frameworks&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;8&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc2&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795018&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Makefiles&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;9&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoToc2&quot; style=&quot;tab-stops: right dotted 467.5pt;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1924689018684710969#_Toc311795019&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;Eclipse, Debugging, and
 IDE’s&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;span style=&quot;mso-tab-count: 1 dotted;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: windowtext; display: none; mso-hide: screen; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;10&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: minor-fareast; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;br clear=&quot;all&quot; style=&quot;mso-special-character: line-break; page-break-before: always;&quot; /&gt;
&lt;/span&gt;

&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795004&quot;&gt;Writing and Documentation of a Group Project&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoQuote&quot;&gt;
“Interpreting bad writing is like interpreting the bible, crazy
people will start killing babies” - Oscar Wilde&lt;/div&gt;
&lt;h2&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795005&quot;&gt;Comments&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Comments have been explained to me in a few different ways
over the years. They can have several different functions within your code and
all of them are just as valid as the next. The first is commenting with the
purpose of reviewing your code. Essentially with this method, the comments are
treated as pseudo code, and reading the comments gives you a literal
understanding of the program. In this style, planning future code can also take
place. Next is commenting to summarize or explain the intent. This style of
commenting is generally more preferred than the previous method, as long as you
are following good coding standards.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;A
good explanation for intent commenting comes from McConnell:&lt;/div&gt;
&lt;div style=&quot;border-bottom: solid #93A299 1.0pt; border: none; margin-left: .65in; margin-right: .65in; mso-border-bottom-alt: solid #93A299 .5pt; mso-border-bottom-themecolor: accent1; mso-border-bottom-themecolor: accent1; mso-element: para-border-div; padding: 0in 0in 4.0pt 0in;&quot;&gt;


&lt;div class=&quot;MsoIntenseQuote&quot; style=&quot;margin-bottom: 14.0pt; margin-left: 0in; margin-right: 0in; margin-top: 10.0pt;&quot;&gt;
&lt;span class=&quot;QuoteChar&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;“Good
comments don&#39;t repeat the code or explain it. They clarify its intent. Comments
should explain, at a higher level of abstraction than the code, what you&#39;re
trying to do”&lt;/span&gt;&lt;/span&gt;. McConnell, Code Complete.&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Explain why you did something rather than telling an
observer what you did. An example given in our class was that of a financial
software program written in an ancient language, COBOL. A past programmer did
not comment why vast amounts of money were being sent to certain people, and in
actuality, those people should not have received it. A third style of
commenting is Algorithmic Description. In this method, one explains technical
design choices, for example, why quicksort was chosen instead of merge sort.
And finally, one can use comments for debugging purposes. An example would be commenting
out debug flags and methods.&lt;/div&gt;
&lt;h2&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795006&quot;&gt;Working in Groups&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Dividing a project among team members will allow one to
finish the project sooner. In my recent assignment, my partner and I never
formally discussed this. This led to an unorganized experience and a semi-incomplete
project. My mentality was to sit down and work on it as much as I could. And
hopefully we would get done early. Work assignments were never distributed, and
the workload turned out to be heavier in my favor. This ended with us turning
in an incomplete project. Regardless of the negatives, there were benefits of
working in groups. In an instance I was out of town, my partner was still able
to work on the assignment and vise-versa. Another benefit was the use of
version control. Trying to wrangle email threads or flash drive swapping or the,
always hilarious, “emailing the code to yourself” are all methods that should not
be used. It removed any guesswork from making sure each of us had the most up
to date codebase.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795007&quot;&gt;&lt;span class=&quot;Heading2Char&quot;&gt;&lt;span style=&quot;font-size: 13.0pt; line-height: 115%;&quot;&gt;Commit Messages&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Heading2Char&quot;&gt;&lt;span style=&quot;font-size: 13.0pt; line-height: 115%;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Because I will talk about version control methods in extreme
depth later, I will explain the ‘need-to know’ to better understand what a
commit message is. When you make changes to a server-hosted copy of a project
and its code, the server asks you to write what you did in those changes. The
commit message is that text.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;It tells
everyone else what you did and why you did it.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;

 
 
  
  &lt;/div&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
   &lt;tbody&gt;
&lt;tr&gt;
    &lt;td&gt;
    &lt;div&gt;

    &lt;div style=&quot;border-bottom: solid windowtext 1.5pt; border: none; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;&quot;&gt;

    &lt;div class=&quot;MsoNormal&quot; style=&quot;border: none; mso-border-bottom-alt: solid windowtext 1.5pt; mso-padding-alt: 0in 0in 1.0pt 0in; padding: 0in;&quot;&gt;
&lt;span style=&quot;color: #93a299; font-size: 10.0pt; line-height: 115%; mso-themecolor: accent1;&quot;&gt;Commit Message&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l2 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;color: #93a299; font-family: Symbol; font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-themecolor: accent1;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #93a299; font-size: 10.0pt; line-height: 115%; mso-themecolor: accent1;&quot;&gt;1-line summary of Main change&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l2 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;color: #93a299; font-family: Symbol; font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-themecolor: accent1;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #93a299; font-size: 10.0pt; line-height: 115%; mso-themecolor: accent1;&quot;&gt;Why did you make every other
    change&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;When
I was first learning how to write commit messages, they were &quot;less than
stellar&quot; as my project partner put it. I would record what changes I made,
but would fail to remember exactly everything I changed in that revision. I
hoped the diffs (see section on Subversion Diff) of the files would explain
what I forgot. The problem though, was not my partner understanding the changes
themselves, but why I changed what I did. He then gave me a format for commit
messages. &lt;/span&gt;

&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;The first line is basically a summary of the main changes or a
title. The preceding lines are explanations of the why the changes occurred.
With this format I eventually got the hang of committing verbosely. The morale
of the story is no matter how small the change, someone at some time is going
to have to try to understand it. It might even be you coming back to a previous
iteration, trying to figure out when you made a certain change. &lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span class=&quot;MsoIntenseReference&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Reducing The
Pain – Writing and Documentation and Groups&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Comment to help others, not yourself.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Yes, work in groups. Divide the project early&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Commit Messages – Summary, followed by why.&lt;/div&gt;
&lt;h1&gt;

 
 
  
  &lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
   &lt;tbody&gt;
&lt;tr&gt;
    &lt;td&gt;
    &lt;div&gt;
&lt;pre style=&quot;background: #F9F9F9; line-height: 14.4pt; vertical-align: top;&quot;&gt;&lt;span style=&quot;color: #993333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;//GNU&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background: #F9F9F9; line-height: 14.4pt; vertical-align: top;&quot;&gt;&lt;span style=&quot;color: #993333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #993333; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #339933; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; line-height: 14.4pt; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;concat &lt;/span&gt;&lt;span style=&quot;color: #009900; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #993333; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #339933; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;s1&lt;/span&gt;&lt;span style=&quot;color: #339933; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #993333; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #339933; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;s2&lt;/span&gt;&lt;span style=&quot;color: #009900; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; line-height: 14.4pt; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #009900; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; line-height: 14.4pt; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #b1b100; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #009900; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color: #339933; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; y&lt;/span&gt;&lt;span style=&quot;color: #009900; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; line-height: 14.4pt; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009900; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; line-height: 14.4pt; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;something &lt;/span&gt;&lt;span style=&quot;color: #009900; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: #339933; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; line-height: 14.4pt; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;somethingelse &lt;/span&gt;&lt;span style=&quot;color: #009900; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: #339933; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; line-height: 14.4pt; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009900; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; line-height: 14.4pt; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;finalthing &lt;/span&gt;&lt;span style=&quot;color: #009900; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: #339933; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F9F9F9; line-height: 14.4pt; margin-bottom: .0001pt; margin-bottom: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #009900; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #93a299; font-size: 10.0pt; mso-themecolor: accent1;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795008&quot;&gt;Physical Pain in Software Development&lt;/a&gt;&lt;/h1&gt;
&lt;h2&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795009&quot;&gt;GNU Style&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Coding requires time, usually a lot. Coding also takes place
in front of a computer. You might be sitting, you might be standing, but you
are probably staring at a screen, using a keyboard. How the code actually looks
on the screen can not only impact on how fast one understands it, but also how
stressed the eye gets over time. &lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
For a recent project, my partner and I decided to switch to
a common coding style for all of our code. We chose GNU style for two main
reasons, increased readability due to eye ergonomics of block statements and
the two space tab width. Like the Allman and Whitesmiths styles, GNU style puts
braces on a line by themselves, indented by two spaces, except when opening a
function definition, where they are not indented. In either case, the contained
code is indented by two spaces from the braces. It is mandated by the GNU
Coding Standards and is used by nearly all maintainers of GNU project software.&lt;br clear=&quot;all&quot; style=&quot;mso-special-character: line-break; page-break-before: always;&quot; /&gt;
&lt;/div&gt;
&lt;h2&gt;

 
 
  
  
  
  
  
  
  
  
  
  
  
  
 
 
 

 
 
&lt;a href=&quot;&quot; name=&quot;_Toc311795010&quot;&gt;The Dvorak Keyboard&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
All that time spent in front of that computer and keyboard
can also have an effect on one’s wrists. The Dvorak Keyboard layout was
designed to help prevent repetitive strain injury and to reduce instances of
carpal tunnel syndrome. The benefits though are not just limited to ergonomics.
Because the home row contains the most used letters in the English alphabet,
the key stroke distribution is around 70% making you a faster typer. Also,
Dvorak uses around 63% of the finger motion of compared to Qwerty which gives
it increased ergonomics. It is important to note that the letter distribution
is limited to the English language, and international users may not see a
benefit. &lt;/div&gt;
&lt;h4&gt;
&lt;span class=&quot;MsoIntenseReference&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;RTP – Physical
Pain&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Use GNU style.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Use the Dvorak keyboard.&lt;/div&gt;
&lt;h1&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795011&quot;&gt;Design Choices&lt;/a&gt;&lt;/h1&gt;
&lt;h2&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795012&quot;&gt;Software Development methodologies (SDLC)&lt;/a&gt;&lt;/h2&gt;
&lt;h4&gt;
Waterfall SDLC&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The traditional&amp;nbsp;waterfall model&amp;nbsp;of software design
contains a number of distinct phases. &lt;span style=&quot;font-size: 10.0pt; line-height: 115%;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l4 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;1.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10.0pt; line-height: 115%;&quot;&gt;Requirements Specification – Defining
the problem and the expected outcome.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l4 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;2.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10.0pt; line-height: 115%;&quot;&gt;Design - This is where a general plan
is created for building the implementation. &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l4 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;3.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10.0pt; line-height: 115%;&quot;&gt;Implementation - The coding is done
here.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l4 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;4.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10.0pt; line-height: 115%;&quot;&gt;Testing and Debugging - Errors are
located and removed. &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l4 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-size: 10.0pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;5.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10.0pt; line-height: 115%;&quot;&gt;Delivery to the customer and
maintenance of the project. &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-size: 10.0pt; line-height: 115%;&quot;&gt;This SDLC
can be compared to an assembly line in which each phase of the project is
separated. However one of the main drawbacks of this method is the extreme
difficulty to return to a previous stage. For example if a requirement changes
in Step 4, one must go back to the design phase and then repeat the
implementation phase. If one is exactly sure of every single requirement and
every single outcome of a simple project, then this can be an efficient method
to use.&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;

 
 
Iterative&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
SDLC&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: black; font-size: 10.0pt; line-height: 115%; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;A counter process to the waterfall method is an
Incremental development scheme. In this system, &lt;/span&gt;a series of
mini-Waterfalls methods are completed, such that new features are added on
during each of the mini-Waterfalls. This method can also do some “Big Design Up
Front, and then proceed to truncated mini-waterfalls. The initial software
concept, requirements analysis, and design of architecture are defined via
Waterfall. &lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
An obvious quality of this method is that one can easily
change the project requirements. At the completion of a feature addition, one
can go back and reevaluate what is needed. If large changes are needed, time is
saved because they were discovered sooner.&lt;/div&gt;
&lt;h2&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795013&quot;&gt;Defensive Programming&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Defensive Programming is not so much a design choice, but a
design necessity. Writing functional code involves writing code that uses valid
input (if any) to achieve some function. Unfortunately, input is not always
valid. The purpose of writing defensive code is to ensure that the program or
method does not do something bad (i.e., crash or, worse, quietly return a bad
value). There are many ways to do this. For example, before using an object
reference, you should make sure the object is valid (i.e., not null). Before
accessing an array, you should validate that the array index is within range
(one of the more common causes of memory access errors). When using a case
statement, a default block should be used in case the input value doesn&#39;t match
any of the expected values. &lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
While not difficult, writing defensive code is a tedious
task. On a recent project we found that adding defensive coding added 5% to our
coding time (i.e., for every 40 hours we spent writing functional code we spent
an additional two hours writing defensive code). For some types of projects,
such as small projects, temporary applications and projects where you are
positive your data is clean (e.g., when you have a small set of long time users
who know what values to enter), it might not make sense investing in defensive
programming. But for projects where data quality is uncertain or the
consequences of failure are high, it makes sense to invest in defensive
programming&lt;/div&gt;
&lt;h2&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795014&quot;&gt;Understandable Code&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
When writing code, an overall thought to keep in one’s head
is KISS, “Keep It Simple Stupid.” Simplicity and clarity should be paramount
because who knows who will look at your code next, let alone need to understand
it. You cannot even rely on yourself to understand your own code after a period
of time. Again, this ties into being able to write good comments. In a utopian
programming world, one would write code that is so understandable, that &lt;span class=&quot;QuoteChar&quot;&gt;“you could read it to your grandmother and she would
understand.”&lt;/span&gt; But that is obviously not the case. Therefore, including
necessary and helpful comments is important to make sure your code is
understood&lt;/div&gt;
&lt;h4&gt;
&lt;span class=&quot;MsoIntenseReference&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;RTP –
Design Choices&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;When faced with a choice between waterfall, and
iterative, choose Iterative.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Defend your code against &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #d2533c; mso-effects-reflection-align: bottomleft; mso-effects-reflection-angdirection: 5400000; mso-effects-reflection-angfadedirection: 5400000; mso-effects-reflection-anglekx: 0; mso-effects-reflection-angleky: 0; mso-effects-reflection-dpidistance: .079pt; mso-effects-reflection-dpiradius: 1.0pt; mso-effects-reflection-pctalphaend: 0%; mso-effects-reflection-pctalphastart: 28.0%; mso-effects-reflection-pctendpos: 45.0%; mso-effects-reflection-pctstartpos: 0%; mso-effects-reflection-pctsx: 100.0%; mso-effects-reflection-pctsy: -100.0%; mso-style-textoutline-fill-alpha: 100.0%; mso-style-textoutline-fill-color: #33404E; mso-style-textoutline-fill-colortransforms: &amp;quot;shade=50000 satm=120000&amp;quot;; mso-style-textoutline-fill-themecolor: accent4; mso-style-textoutline-outlinestyle-align: center; mso-style-textoutline-outlinestyle-compound: simple; mso-style-textoutline-outlinestyle-dash: solid; mso-style-textoutline-outlinestyle-dpiwidth: .354pt; mso-style-textoutline-outlinestyle-join: round; mso-style-textoutline-outlinestyle-linecap: flat; mso-style-textoutline-outlinestyle-pctmiterlimit: 0%; mso-style-textoutline-type: solid; mso-themecolor: text2; text-transform: uppercase;&quot;&gt;Evil&lt;/span&gt;&lt;/b&gt; input!&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Remember your Grandmother.&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;br clear=&quot;all&quot; style=&quot;mso-special-character: line-break; page-break-before: always;&quot; /&gt;
&lt;/span&gt;

&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795015&quot;&gt;Software Development tools&lt;/a&gt;&lt;/h1&gt;
&lt;h2&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795016&quot;&gt;Version Control - Apache Subversion&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;

 
 
  
  &lt;/div&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
   &lt;tbody&gt;
&lt;tr&gt;
    &lt;td&gt;
    &lt;div&gt;

    &lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Who?&lt;/b&gt;
    – Created by Collabnet&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;What?&lt;/b&gt;
    - Software versioning and a revision control system.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Where?&lt;/b&gt;
    – Now an Apache Project&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;When?&lt;/b&gt;
    – October 20, 2000&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Why?&lt;/b&gt;
    - An effort to write an open-source version-control system which operated
    much like CVS but which fixed the bugs and supplied some features missing
    in CVS&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
We were required on a recent project to use a version control method
called Subversion. (SVN) It is mainly a command line interface upon which users
update and commit changes to a shared code base. However don’t let the command
line steer you away. I did not use it once during the entire duration of our
project. An integrated development environment with a subversion plugin was
mainly used, such that most of the problems users run into were eliminated.
Because of this, I highly recommend use of subversion in your next group
project.

&lt;div class=&quot;MsoListParagraph&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;svn&amp;nbsp;&lt;a href=&quot;http://svnbook.red-bean.com/en/1.0/re04.html&quot;&gt;&lt;i&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;checkout&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&amp;nbsp;— Check
out a working copy from a repository.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
This is the first thing one does when&amp;nbsp;working&amp;nbsp;with
a repository of code. You check out a copy for&amp;nbsp;making&amp;nbsp;changes. Now
how do you put those changes back?&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;svn&amp;nbsp;&lt;a href=&quot;http://svnbook.red-bean.com/en/1.0/re06.html&quot;&gt;&lt;i&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;commit&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&amp;nbsp;— to send
changes from your working copy of your own version of the code to the repository&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
It is important to note a common problem users face when
committing new files to the repository. Using the command line, one must first
do an “svn add” of the new file. Then you can actually commit it. In my IDE
however, this command was not needed, as it was done automatically.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
SVN&#39;s best feature is the ability to work on a shared code
base. This code area is called the Trunk. The Trunk is where the full copy of
your code lives all time. When one commits code to SVN they are adding their
changes to the trunk.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;svn&amp;nbsp;&lt;a href=&quot;http://svnbook.red-bean.com/en/1.1/re28.html&quot;&gt;&lt;i&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;update&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&amp;nbsp;— Update
your working copy of the code from the repository.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Updating will bring the latest version of the code from the
repository to your machine. From that point the developers using the repository
can make changes to the updated versions and then commit those changes to
create a new, updated version of the code.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
These two features are great but lead to one issue. If two
team members are working on the same file, make changes to that file, and then
try to commit, they will hit a snag because of an out of sync code base. The
process can be resolved with what is called a merge.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;svn&amp;nbsp;&lt;a href=&quot;http://svnbook.red-bean.com/en/1.0/re16.html&quot;&gt;&lt;i&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;merge&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&amp;nbsp;— apply the
differences between two sources to a working copy path.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
A Merge is when a developer looks at the changes to his/her
local version of a file and the changes made to a Trunk file that hasn&#39;t been
updated on the local version, and fixes the synchronization issue by amending
the code to include both updates and one of the updates. There are 3 possible
outcomes of this process.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l1 level1 lfo7; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Override and Update: In this case, the local
version of the file is discarded and the Trunk code overwrites
everything.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l1 level1 lfo7; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Override and Commit:&amp;nbsp;This is similar to
Override and Update, but the Trunk code is overwritten with the local version.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l1 level1 lfo7; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Merge Changes: In this solution, both changes
are merged into the local version and (s)he is able to commit the file and
overwrite the Trunk file. &amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Now you might ask, &quot;How am I supposed to know what the differences
in the files are?&quot; well SVN has a command for that too.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;mso-list: l5 level1 lfo8; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;svn&amp;nbsp;&lt;a href=&quot;http://svnbook.red-bean.com/en/1.0/re09.html&quot;&gt;&lt;i&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;diff&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;—
Display the differences between two paths (files).&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
During the process of Committing, Updating, and Merging, the
code base can change quite drastically. &amp;nbsp;If a problem arises, backing up
your data is key to continuing a project without major losses. &amp;nbsp;SVN
provides a way to back up your code via Tags.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
A&amp;nbsp;Tag&amp;nbsp;is a snapshot of your code at a given time.
&amp;nbsp;It is similar to a Trunk but it is assumed a Tag will not change in the
future. &amp;nbsp;This is useful if a situation arises where it is necessary to
revert your code base to a prior state. &amp;nbsp;In larger environments, Tags are
created with each build. Version 1.0, and so on.&amp;nbsp;Luckily, we have never
had to revert back to a tag yet in our project.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Just in case you need to offshoot your code for
some&amp;nbsp;reason, say to&amp;nbsp;introduce&amp;nbsp;a new developer to your code, and
you&amp;nbsp;don&#39;t&amp;nbsp;want them working in the Trunk, SVN has something
called&amp;nbsp;Branches, They are a separate Trunk-style project used for work on
the project. &amp;nbsp;Branches can be created from existing code bases, including
the Trunk and Tags. &amp;nbsp;Even better, you can merge between a Branch and the
Trunk to bring in changes from the temporary project that needs to be
implemented into the code base.&lt;/div&gt;
&lt;h2&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795017&quot;&gt;Testing frameworks&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Unit testing&amp;nbsp;is an important part of designing and
developing code. Here are 5 reasons why.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l0 level1 lfo6; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;1.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Unit testing allows you to test your code all
the time, in an easy way -- Instant gratification&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo6; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;2.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;If one starts unit testing early in the process
of writing their code, then it leads to a better design. Your method names and
classes will be based on the tests you write and can therefore help you
organize your code.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo6; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;3.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Unit testing allows one to make changes very
easily to your code later down the line. Developing a good baseline of tests,
lets you refactor you code easily because you know it works already.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo6; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;4.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Since unit tests actually &quot;test your
code,&quot; you can &quot;try to break it.&quot; This will give you an
understanding of your code you would not have if not testing.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l0 level1 lfo6; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;5.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;And the most important (for your boss) Money.
The cost of fixing a bug early is exponentially cheaper than finding it very
late in the development process.&lt;/div&gt;
&lt;div align=&quot;center&quot;&gt;


&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;mso-cellspacing: 0in; mso-padding-alt: 4.5pt 4.5pt 4.5pt 4.5pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-firstrow: yes; mso-yfti-irow: 0; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;padding: 4.5pt 4.5pt 4.5pt 4.5pt;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
CxxTest&amp;nbsp;for C++ is a very nice way to write unit tests
and do unit testing in C++. Cpp files are generated with Perl from your regular
classes and then you compile those and run them. You therefore do not have to
declare your tests in your regular code and can just attach their framework to
do your testing. It even has a plugin for Eclipse that lets you easily write
tests and use them through a GUI.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Some of the features (as taken from its own description):&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Doesn&#39;t require Runtime Type information.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Doesn&#39;t require member template functions.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Doesn&#39;t require exception handling.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Doesn&#39;t require any external libraries
(including memory management, file/console I/O, graphics libraries.)&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l6 level1 lfo3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Is distributed entirely as a set of header
files.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
CxxTest was unruly at times because it does not have the
ability to print out error messages if a test fails. The runtime just breaks
and you must manually go in and add a “cout &amp;lt;&amp;lt; error message;” to the end
of your test. &lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Testing is done by writing test cases mainly with a function
called TS_Assert(). It works very similar to the standard Assert() macro. You
just put whatever function you want to test inside it say,&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;TS_ASSERT(
1 + 1 &amp;gt; 1 );&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;or&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;TS_ASSERT_EQUALS( square(2),4 );&lt;/span&gt;&lt;/div&gt;
&lt;h2&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795018&quot;&gt;Makefiles&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Makefiles are a class of Expert Systems, such that an expert
system is a computer system that emulates the decision-making ability of a
human expert. The general idea is that make supports minimal rebuilds. For
example, you tell it what parts of your program depend on what other parts.
When you update some part of the program, it only rebuilds the parts that
depend on that. While you could do this with a shell script, it would be a lot
more work (explicitly checking the last-modified dates on all the files, etc.) The
only obvious alternative with a shell script is to rebuild everything every
time. For tiny projects this is a perfectly reasonable approach, but for a big
project a complete rebuild could easily take an hour or more -- using make, you
might easily accomplish the same thing in a minute or two.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
In my experience, makefiles are complicated and have a steep
learning curve. They also strictly depend on formatting specifics. Certain
entries must be an exact amount of spaces in a new line. I used them in a
recent project in a different manner though. My IDE (in the next section)
automatically generated them, and I just modified the makefiles for my own
uses. Even with the negative aspects, makefiles create a repeatable process one
can go through so that they do not have to reinvent the wheel every time they
make a change to their code. Any time a process can be repeated, saves both
time and money.&lt;/div&gt;
&lt;h2&gt;
&lt;a href=&quot;&quot; name=&quot;_Toc311795019&quot;&gt;Eclipse, Debugging, and IDE’s&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
As I hinted earlier, I have been using Eclipse, ever since
my second computer science class. But what are the real benefits of IDE&#39;s and
Integrated Build tools and Debugging? All the things I have previously listed
in this paper show up in this amazing IDE. That alone is the benefit: Singular
Integration. Most of the listed concepts below do occur in other IDE’s but these
are my reasons for using Eclipse.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l7 level1 lfo5; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;The concept of a project workspace is introduced
in an IDE. A workspace is just what it sounds like, a place to keep all of your
relevant documents. The IDE knows they all connect so that similar operations
perform on all the files.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l7 level1 lfo5; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Eclipse has Automatic formatting and indentation
correction, such that I just click a button or press a keyboard shortcut to
format all of my code in the project into the GNU style.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l7 level1 lfo5; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;It allows you to right click on a variable and
rename that single variable in multiple locations at one. This saves you vast
amounts of time; you do not have to go searching for all instances of your
hidden “getter/value” method/variable in separate files and folders. Anything
in the project workspace is searched and automatically corrected.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l7 level1 lfo5; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Depending on the Language you are working in,
Eclipse will generate classes, methods and general code for you, if you supply
the interface/requirements definition.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l7 level1 lfo5; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Eclipse has Seamless SVN Integration.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l7 level1 lfo5; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;·&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Eclipse has CXX test integration.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
IDE’s in general have autocompleting function capability.
Your IDE will know what all the possible choices are for every situation you
type, and it will suggest to you which methods to use.&lt;span style=&quot;mso-tab-count: 2;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
Debugging&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Debugging is a methodical process of finding and reducing
the number of bugs, or defects, in a computer program or a piece of electronic
hardware, thus making it behave as expected. Debuggers usually use a concept
called breakpoints to stop at certain lines of code so that one can examine
them. A typical debugging process begins with reproducing the original problem
and trying to simplify it down so that a certain part of the code is deemed a
likely spot that caused the problem. Debugging can be performed via a Trace, or
live, while accessing program states. Print (or tracing) debugging is the act
of watching (live or recorded) trace statements, or print statements, that
indicate the flow of execution of a process. This is sometimes called printf
debugging, due to the use of the printf statement in C.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
In Eclipse, the entire process is contained within a
debugging view. You are able to view current variable states, and follow
function calls up and down the stack. Every step the program takes can be
viewed in order. To set a breakpoint you just double-click on the line of
interest. The only problem with debugging in Eclipse is it searches your
workspace $PATH for your source files and your system $PATH for standard
library source files. If it cannot find them, then it does not display the
source code while one tries to step through the program.&lt;/div&gt;
&lt;h4&gt;
&lt;span class=&quot;MsoIntenseReference&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Reducing The
Pain – Software Development Tools&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Subversion&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1.0in; mso-add-space: auto; mso-list: l3 level2 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;o&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;If using the command line and you have a new
file, always “Add” before you “Commit”&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1.0in; mso-add-space: auto; mso-list: l3 level2 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;o&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Use an IDE with Subversion integration. &lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;Recommendation – Eclipse&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Testing&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1.0in; mso-add-space: auto; mso-list: l3 level2 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;o&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;When using Cxx test, remember to make sure your
makefile includes the library in the correct top-level directory. &lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Makefiles&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1.0in; mso-add-space: auto; mso-list: l3 level2 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;o&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Don’t deal with them. Have your IDE do all your
compilation and run-testing.&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Debugging&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;margin-left: 1.0in; mso-add-space: auto; mso-list: l3 level2 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Courier New&amp;quot;;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;o&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Again, steer away from archaic tools such as GDB
and stick with your IDE.&lt;/div&gt;</description><link>http://blog.abork.co/2011/12/final-paper-enjoy.html</link><author>noreply@blogger.com (abork)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1924689018684710969.post-337032774283240887</guid><pubDate>Tue, 08 Nov 2011 17:31:00 +0000</pubDate><atom:updated>2011-11-08T11:31:00.112-06:00</atom:updated><title>I c u Test</title><description>&lt;div class=&quot;body&quot;&gt;
&lt;div&gt;
&lt;span style=&quot;color: #999999; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: large;&quot;&gt;Unit testing&lt;/span&gt; is an important part of designing and developing code. Here are 5 reasons why.&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Unit testing allows you to test your code all the time, in an easy way. Instant gratification, if you will.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;If one starts unit testing early in the process of writing their code, then it leads to a better design.Your method names and classes will be based on the tests you write and can therefore help you organize your code.&lt;/li&gt;
&lt;li&gt;Unit testing allows one to make changes very easily to your code later down the line. Developing a good baseline of tests, lets you refactor you code easily because you know it works allready.&lt;/li&gt;
&lt;li&gt;Since unit tests actually &quot;test your code,&quot; you can &quot;try to break it.&quot; This will give you an understanding of your code you would not have if not testing.&lt;/li&gt;
&lt;li&gt;And the most important (for your boss) &lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;body&quot;&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;302&quot; src=&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXoAAAEeCAYAAACExd7cAAAABHNCSVQICAgIfAhkiAAAIABJREFUeF7tnQnYTdX+x3/GFIkMlbEMRUhmEYoMN6lbSgO5ZShDpXI1z0n35jbPM6UShWRWJBUZQ8mUIbOEEuFS//tZ926Pv7w5+7xn2Pvs73qe83ids/caPmvt71r7t9b6rRyzZ8/+3RREQAREQAQyhsDOnTutVq1aljNnTsuVK5flpmQ1a9bMmAKqICIgAiIQdQJDhw61DRs22FFHHWX58+f/r9BHHYrKLwIiIAKZRGDlypVWtGhRK1asmCuWG9EriIAIiIAIZA4BhN4TeUb1OTOnaCqJCIiACIgABNasWWNr1661LVu2GPZ6Cb3ahQiIgAhkGIEff/zR+Gzfvt12794toc+w+lVxREAERMB+/fVX99mzZ4/t27dPQq82IQIiIAKZTiAQppv169fblClTMp21yicCIiACKSGQJ08ey507t1tDz1r6QAj9smXLbODAgSkBoEREQAREINMJIPKIPSKfI0eOYAg9mcmbN2+ms1f5REAERCAlBNwo/n+fwAh9SkquRERABEQgogQCYbqJKHsVWwREQARSQkBCnxLMSkQEREAE0kdAQp8+9kpZBERABFJCQEKfEsxKRAREQATSR0BCnz72SlkEREAEUkJAQp8SzEpEBERABNJHQEKfPvZKWQREQARSQkBCnxLMSkQEREAE0kdAQp8+9kpZBERABFJCQEKfEsxKRAREQATSR0BCnz72SlkEREAEUkJAQp8SzEpEBERABNJHQEKfPvZKWQREQARSQkBCnxLMSkQEREAE0kdAQp8+9kpZBERABFJCQEKfEsxKRAREQATSR0BCnz72SlkEREAEUkJAQp8SzEpEBERABNJHQEKfPvZKWQREQARSQkBCnxLMSkQEREAE0kdAQp8+9kpZBERABFJCQEKfEsxKRAREQATSR0BCnz72SlkEREAEUkJAQp8SzEpEBERABNJHQEKfPvZKWQREQARSQkBCnxLMSkQEREAE0kdAQp8+9kpZBERABFJCQEKfEsxKRAREQARiI/Dbb7/Zzz//HNvFMV4loY8RlC4TAREQgVQQmDZtmo0YMSKhSUnoE4pTkYmACIhA9ghMmjTJcufOnb1IDrpbQp9QnIpMBERABOInsGXLFvvhhx+sfv36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&quot; style=&quot;margin-left: auto; margin-right: auto;&quot; width=&quot;400&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;This Is Why Unit Testing Is Important&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;body&quot;&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #999999; font-size: x-large;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;CxxTest&lt;/span&gt;&lt;/span&gt; for C++ is a very nice way to write unit tests and do unit testing in C++. Cpp files are generated with perl from your regular classes and then you compile those and run them. You therefore do not have to declare your tests in your regular code and can just attach their framework to do your testing. It even has an awesome plugin for eclipse that lets you easily write tests and use them through a gui.&lt;br /&gt;
&lt;br /&gt;
Some of the features (as taken from its own description):&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Doesn&#39;t require Runtime Type information.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Doesn&#39;t require member template functions.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Doesn&#39;t require exception handling.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Doesn&#39;t require any external libraries (including memory management, file/console I/O, graphics libraries.)&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Is distributed entirely as a set of header files. &lt;/li&gt;
&lt;/ul&gt;
Testing is done by writing test cases mainly with a function called TS_Assert(). It works very similar to the standard Assert() macro. You just put whatever function you want to test inside it say,&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TS_ASSERT( 1 + 1 &amp;gt; 1 );&lt;/span&gt;&lt;br /&gt;
or&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TS_ASSERT_EQUALS( square(2),4 );&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</description><link>http://blog.abork.co/2011/11/i-c-u-test.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1924689018684710969.post-7833169667664566826</guid><pubDate>Tue, 01 Nov 2011 16:31:00 +0000</pubDate><atom:updated>2011-11-01T11:31:00.870-05:00</atom:updated><title>Sauce Control</title><description>&lt;span style=&quot;background-color: white; color: #cccccc; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: large;&quot;&gt;Source Control&lt;/span&gt; is an important part of the daily programming grind. Every morning we wake up, brush our teeth, and head on to other daily activities. And every afternoon we might continue the constant process of committing our changes and&amp;nbsp;updating&amp;nbsp;to the latest version of our code. But what are these two things I have already mentioned, Committing and Updating? And which source control method are we even talking about?&lt;br /&gt;
&lt;br /&gt;
You can read a&amp;nbsp;concise&amp;nbsp;history of Subversion &lt;a class=&quot;vt-p&quot; href=&quot;http://svnbook.red-bean.com/en/1.1/ch01s02.html&quot;&gt;&lt;i&gt;here&lt;/i&gt;&lt;/a&gt;, but essentially, a previous sauce control schema called CVS lacked in certain features and a few&amp;nbsp;developers&amp;nbsp;let out to&amp;nbsp;create&amp;nbsp;a&amp;nbsp;new&amp;nbsp;system.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;svn&amp;nbsp;&lt;a class=&quot;vt-p&quot; href=&quot;http://svnbook.red-bean.com/en/1.0/re04.html&quot;&gt;&lt;i&gt;&lt;b&gt;checkout&lt;/b&gt;&lt;/i&gt;&lt;/a&gt; — Check out a working copy from a repository.&lt;/span&gt;&lt;/blockquote&gt;
This is the first thing one does when&amp;nbsp;working&amp;nbsp;with a repository of code. You check out a copy for&amp;nbsp;making&amp;nbsp;changes. Now how do you put those changes back?&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;svn &lt;b&gt;&lt;a class=&quot;vt-p&quot; href=&quot;http://svnbook.red-bean.com/en/1.0/re06.html&quot;&gt;&lt;i&gt;commit&lt;/i&gt;&lt;/a&gt; &lt;/b&gt;— to send changes from your working copy of your own version of the code to the repository.&lt;/span&gt;&lt;/blockquote&gt;
SVN&#39;s best feature is the ability to work on a shared code base. This code area is called the Trunk. The Trunk is where the full copy of your code lives all time. When one commits code to SVN they are adding their changes to the trunk.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;svn &lt;a class=&quot;vt-p&quot; href=&quot;http://svnbook.red-bean.com/en/1.1/re28.html&quot;&gt;&lt;i&gt;&lt;b&gt;update&lt;/b&gt;&lt;/i&gt;&lt;/a&gt; — Update your working copy of the code from the repository.&lt;/span&gt;&lt;/blockquote&gt;
Updating will bring the latest version of the code from the repository to your machine. From that point the developers using the repository can make changes to the updated versions and then commit those changes to create a new, updated version of the code.&lt;br /&gt;
&lt;br /&gt;
These two features are great but lead to one issue. If two team members are working on the same file, make changes to that file, and then try to commit, they will hit a snag because of an out of sync code base.&amp;nbsp;Luckily&amp;nbsp;my team has not had this problem yet. The process can be resolved with what is called a merge.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;svn &lt;b&gt;&lt;a class=&quot;vt-p&quot; href=&quot;http://svnbook.red-bean.com/en/1.0/re16.html&quot;&gt;&lt;i&gt;merge&lt;/i&gt;&lt;/a&gt;&lt;/b&gt; — Apply the differences between two sources to a working copy path.&lt;/span&gt;&lt;/blockquote&gt;
A Merge is when a developer looks at the changes to his/her local version of a file and the changes made to a Trunk file that hasn&#39;t been updated on the local version, and fixes the synchronization issue by amending the code to include both updates or one of the updates. There are 3 possible outcomes of this process.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b style=&quot;background-color: transparent;&quot;&gt;Override and Update&lt;/b&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;: In this case, the local version of the file is discarded and the Trunk code overwrites everything.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Override and Commit:&lt;/b&gt; This is similar to Override and Update, but the Trunk code is overwritten with the local version.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Merge Changes&lt;/b&gt;: In this solution, both changes are merged into the local version and (s)he is able to commit the file and overwrite the Trunk file. &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
Now you might ask, &quot;How am I supposed to know what the differences in the files are?&quot; well SVN has a command for that too.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;svn &lt;a class=&quot;vt-p&quot; href=&quot;http://svnbook.red-bean.com/en/1.0/re09.html&quot;&gt;&lt;b&gt;&lt;i&gt;diff&lt;/i&gt;&lt;/b&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;— Display the differences between two paths (files).&lt;/span&gt;&lt;/blockquote&gt;
During the process of Commiting, Updating, and Merging, the code base can change quite drastically. &amp;nbsp;If a problem arises, backing up your data is key to continuing a project without major losses. &amp;nbsp;SVN provides a way to backup your code via Tags. &lt;br /&gt;
&lt;br /&gt;
A &lt;b&gt;Tag&lt;/b&gt; is a snapshot of your code at a given time. &amp;nbsp;It is similar to a Trunk but it is assumed a Tag will not change in the future. &amp;nbsp;This is useful if a situation arises where it is necessary to revert your code base to a prior state. &amp;nbsp;In larger environments, Tags are created with each build. Version 1.0, and so on.&amp;nbsp;Luckily, we have never had to revert back to a tag yet in our project.&lt;br /&gt;
&lt;br /&gt;
Just in case you need to offshoot your code for some&amp;nbsp;reason, say to&amp;nbsp;introduce&amp;nbsp;a new developer to your code, and you&amp;nbsp;don&#39;t&amp;nbsp;want them working in the Trunk, SVN has something called&amp;nbsp;&lt;b&gt;Branches&lt;/b&gt;, They are a separate Trunk-style project used for work on the project. &amp;nbsp;Branches can be created from existing code bases, including the Trunk and Tags. &amp;nbsp;Even better, you can Merge between a Branch and the Trunk to bring in changes from the temporary project that need to be implemented into the code base.&lt;br /&gt;
&lt;br /&gt;
For full&amp;nbsp;technical&amp;nbsp;information on command syntax and even more in-depth&amp;nbsp;information.&amp;nbsp;&lt;a class=&quot;vt-p&quot; href=&quot;http://svnbook.red-bean.com/&quot; style=&quot;background-color: transparent;&quot;&gt;http://svnbook.red-bean.com/&lt;/a&gt;</description><link>http://blog.abork.co/2011/11/sauce-control.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1924689018684710969.post-7998666930067346583</guid><pubDate>Fri, 14 Oct 2011 16:01:00 +0000</pubDate><atom:updated>2011-10-14T22:37:53.929-05:00</atom:updated><title>Partnership For the Win</title><description>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;background-color: white; color: #cccccc; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: large;&quot;&gt;With&lt;/span&gt; an hour left before the deadline, tensions are high
amongst partners Jim and Matt on Coding Team Alpha. Working separately across
campus, they are communicating via gChat on a bug that neither of them seems to
be able to find. Jim suggests that the FOR loop may be going past the allotted
array indices into segfault territory. A quick change of the parameters, compile,
run, and … Success! No errors. Now for the test cases. Pass, Pass, Pass … Fail.
“What happened?” asks Matt. “The last test case failed” types Jim. “Let me take
a look at it, Go ahead and commit” says Matt. Jim commits the code to their
mutual repository and Matt updates his version. While merging the changes, he
notices the conflict. &amp;nbsp;His code detects the “to” keyword, and has the
regex backend working properly. The repository does not. He compiles and runs
his version. “Mine just passed all the tests” types Matt. “I added the “To”
parser while you were working on that loop.” With all test cases passing the
final version is committed and tagged. With the deadline now achieved, both
members continue on with their nights. Although my partner and I finished days
before the deadline, I can remember situations in the past where I was in this
predicament.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
This example shows both benefits and challenges to working
and coding in a group of two people. To go into further detail on the matter, I
will start with the challenges.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-indent: .5in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-indent: .5in;&quot;&gt;
Early in this iteration, my commit
messages to subversion were &quot;Less than stellar&quot; as my partner put it.
I would record what changes I did, but would fail to remember exactly
everything I&amp;nbsp;changed&amp;nbsp;in that revision. And I would hope the diffs of
the files would explain what I forgot. The problem though, was not my partner
understanding the changes themselves, but why I changed what I did. He gave me
a format for commit messages.&amp;nbsp;The first line is basically a summary of the
main changes or a title.&amp;nbsp;The&amp;nbsp;preceding&amp;nbsp;lines
are&amp;nbsp;explanations&amp;nbsp;of the why the changes&amp;nbsp;occurred. With this
format I eventually got the hang of committing verbosely and not just trying to
save time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-indent: .5in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-indent: .5in;&quot;&gt;
Our next challenge&amp;nbsp;was
dividing the project. We never formally discussed this. My mentality was just
to work on it as much as I could. And hopefully we would get done early. It
might have been a good idea to assign work to each of us even though the
workload turned out semi-even.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-indent: .5in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-indent: .5in;&quot;&gt;
There were many benefits I realized
over the course of the project that I am grateful for, the first being the existence
of subversion. Trying to wrangle email threads or flashdrive swapping or the
always hilarious “emailing the code to yourself” are all methods that should be
left in introductory classes. I wish I had known about subversion much earlier,
I would have set up my own repository for every project I have done since. Next
is the parallel aspect of 2 people. As merge-sort proves, dividing something in
half makes it go faster. I was actually out of town the weekend before the
deadline. I had worked on the project up to that point, and my partner took
over the work for the weekend. When I came back, we joined back up and finished
the project.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;</description><link>http://blog.abork.co/2011/10/partnership-for-win.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1924689018684710969.post-2392150638198365494</guid><pubDate>Tue, 27 Sep 2011 19:00:00 +0000</pubDate><atom:updated>2011-10-03T10:17:28.426-05:00</atom:updated><title>It all started with Scheme</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;A&lt;/b&gt;&lt;/span&gt; language of balanced parenthesis: it was the bane of my existence in my first programming class. I can remember my classmates hating the &lt;a class=&quot;vt-p&quot; href=&quot;http://mitpress.mit.edu/sicp/&quot;&gt;textbook&lt;/a&gt; for the class, but I actually enjoyed reading it. This class taught me how to program side by side for the first time. I happened to have a partner that had taken a c++ class who really taught me about abstraction and other basic coding techniques. And I was learning the semantics of scheme faster than he was, so I would sit at the computer and type while he figured out how to organize our railroad program. I had no idea that this was actually a coding technique, I just thought that the system worked well and therefore we should use it.&lt;br /&gt;
&lt;br /&gt;
My next programming class taught me about IDEs and Google Code repositories. It was these two tools that would shape every programming assignment and CS class up until right now. Eclipse was suggested as a tool that we should use for our first object oriented language, Java. Here is a list of everything I love about my IDE:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Automatic formatting and indentation correction&lt;/li&gt;
&lt;li&gt;Renaming a variable or function in multiple places at the same time.&lt;/li&gt;
&lt;li&gt;Automatically generating “dumb code” (getters, setters)&lt;/li&gt;
&lt;li&gt;The vast library of plugins available (SVN specifically)&lt;/li&gt;
&lt;li&gt;The organizational concept of projects and a “Workspace”&lt;/li&gt;
&lt;li&gt;Support for every language I have had to deal with thus far.&lt;/li&gt;
&lt;li&gt;Extremely easy-to-understand debugging.&lt;/li&gt;
&lt;li&gt;Mouse-over documentation popups&lt;/li&gt;
&lt;li&gt;Autocompleting functions&lt;/li&gt;
&lt;li&gt;Generating Classes&lt;/li&gt;
&lt;li&gt;Automatically generating comments&lt;/li&gt;
&lt;li&gt;Automatically generating documentation&lt;/li&gt;
&lt;/ul&gt;
Google code taught me how to share my code with a partner efficiently, so it was easily maintainable, and so that we could both work on it and merge all changes together after one of us had completed a part of the assignment.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;What&lt;/b&gt;&lt;/span&gt; I am unfamiliar with in this class is the concept of software modeling. I have always had the problem of knowing almost exactly what I want to build in my head, then drawing it, but having trouble translating it to code. I had no concept of UML until I bought our &lt;a class=&quot;vt-p&quot; href=&quot;http://www.amazon.com/gp/product/0321193687?ie=UTF8&amp;amp;tag=martinfowlerc-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321193687&quot;&gt;textbook&lt;/a&gt; for the class, and I feel having an actual knowledge of a real system will benefit me in this area. I also am very interested in code generation from these diagrams. Efficiency and automata are some of my favorite things, and any product that can do those, I am going to use.&lt;/div&gt;
&lt;br /&gt;
Another unfamiliar topic I have always wanted to learn about are regular expressions. I would read xkcd all the time and wonder what the hell Randall was talking about. And now I am starting to learn exactly how powerful they are. A very&amp;nbsp;useful&amp;nbsp;search program i use on a minutely basis, &lt;a class=&quot;vt-p&quot; href=&quot;http://www.voidtools.com/&quot;&gt;Everything&lt;/a&gt;, supports regexes and now that I slightly know what I am doing, it has made searching much more accurate.&lt;br /&gt;
&lt;br /&gt;
edit 10/3/11, incorrect link to &quot;everything&quot;&lt;/div&gt;
</description><link>http://blog.abork.co/2011/09/it-all-started-with-scheme.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>3</thr:total><georss:featurename>Kenneth H. Keller Hall, Minneapolis, MN 55455, USA</georss:featurename><georss:point>44.9745749 -93.2322764</georss:point><georss:box>44.9731709 -93.2347439 44.9759789 -93.229808900000009</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1924689018684710969.post-6738321796726136863</guid><pubDate>Thu, 19 May 2011 06:43:00 +0000</pubDate><atom:updated>2011-09-22T12:11:06.346-05:00</atom:updated><title>1st</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Everybody needs a blog right?&lt;br /&gt;
&lt;br /&gt;
My name is Andrew Bork, and I am a senior CS student at the University of Minnesota.&lt;br /&gt;
The purpose of this blog is to record my experiences in my future career and to serve as a required blog for a class I am taking, CSCI 3081 Program Design and Development. &lt;br /&gt;
&lt;br /&gt;
http://www-users.cselabs.umn.edu/classes/Fall-2011/csci3081&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 &lt;/div&gt;
</description><link>http://blog.abork.co/2011/05/first.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item></channel></rss>