{"id":178,"date":"2010-01-09T12:00:10","date_gmt":"2010-01-09T18:00:10","guid":{"rendered":"http:\/\/www.insomnihack.com\/?p=178"},"modified":"2010-01-11T22:41:10","modified_gmt":"2010-01-12T04:41:10","slug":"rd-week-one-wrap-up","status":"publish","type":"post","link":"http:\/\/www.insomnihack.com\/?p=178","title":{"rendered":"R&#038;D Week One Wrap Up"},"content":{"rendered":"<p>Its a new year, and at work, the emphasis is definitely on the &#8216;new&#8217;. I&#8217;ve joined a new team, social media, in a new department: R&amp;D. I have a new desk (to be honest, its just a new spot in the cube farm), and new operating system: Linux. We&#8217;re working with what is for most of the team a new programming language, Python, and a new continuous integration server: <a href=\"http:\/\/wiki.hudson-ci.org\/display\/HUDSON\/Home\">Hudson<\/a>.<\/p>\n<h2>Hudson<\/h2>\n<p><a href=\"http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson01.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-185\" title=\"Hudson - Front Page\" src=\"http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson01.gif\" alt=\"\" width=\"503\" height=\"455\" srcset=\"http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson01.gif 838w, http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson01-300x271.gif 300w\" sizes=\"(max-width: 503px) 100vw, 503px\" \/><\/a>Hudson is pretty impressive. I&#8217;d never even heard about it before Ed found it last Tuesday. In addition to continuous integration, it can also monitor executions of externally-run jobs. We&#8217;re trying to favor simpler cron jobs running scripts over the complex service-oriented architectures we&#8217;ve worked with on previous projects, so this is a nice bonus. Hudson comes with a ton of plug-ins that enable it to integrate with <a href=\"http:\/\/en.wikipedia.org\/wiki\/Software_configuration_management\">SCMs<\/a> such as <a href=\"http:\/\/git-scm.com\/\">git<\/a>, execute scripts of various languages including Python, and run an assortment of tools including <a href=\"http:\/\/somethingaboutorange.com\/mrl\/projects\/nose\/0.11.1\/\">nose<\/a>, <a href=\"http:\/\/nedbatchelder.com\/code\/coverage\/\">coverage<\/a>, and <a href=\"http:\/\/www.logilab.org\/857\">pylint<\/a> (just to name a few we&#8217;re using). Hudson is written in Java, and it is pretty easy to set up.<\/p>\n<p><a href=\"http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson02.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-186\" title=\"Hudson - Project View\" src=\"http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson02-300x259.gif\" alt=\"\" width=\"300\" height=\"259\" srcset=\"http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson02-300x259.gif 300w, http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson02-1024x886.gif 1024w, http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson02.gif 1041w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson02.gif\"><\/a><a href=\"http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson03.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-187\" title=\"Hudson - Code Coverage\" src=\"http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson03-300x183.gif\" alt=\"\" width=\"300\" height=\"183\" srcset=\"http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson03-300x183.gif 300w, http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson03-1024x625.gif 1024w, http:\/\/www.insomnihack.com\/wp-content\/uploads\/hudson03.gif 1189w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h2>VMWare<\/h2>\n<p>We&#8217;re running all of our Linux systems on VMWare: <a href=\"http:\/\/www.vmware.com\/products\/workstation\/\">Workstation<\/a> 7.0 on our desktops and <a href=\"http:\/\/www.vmware.com\/products\/esxi\/\">ESXi<\/a> on the server. Workstation&#8217;s <a href=\"http:\/\/pubs.vmware.com\/ws7_ace26\/wwhelp\/wwhimpl\/js\/html\/wwhelp.htm#href=ws_user\/newguest.6.4.html\">easy install<\/a> makes setting up Ubuntu 9.10 with an initial user and VMWare toolkit a snap. However, I did notice that for some reason it didn&#8217;t install the shared folders driver, so I had to run VMWare tools setup manually anyway to get shared folders working. I still have Windows on my desktop with Visual Studio, IIS, and SQL Server installed in case I have to go back and fix a <a href=\"http:\/\/www.demandstudios.com\/\">Studio<\/a> bug.<\/p>\n<h2>Why Python?<\/h2>\n<p>The reasons behind the switch from C# and .NET to Python were faster development and easier scalability. I&#8217;m not saying we couldn&#8217;t achieve scalability with .NET, IIS, and SQL Server. I&#8217;m saying for what we&#8217;ll be doing, its easier to accomplish with Python, <a href=\"http:\/\/www.tornadoweb.org\/\">Tornado<\/a>, and <a href=\"http:\/\/nginx.org\/en\/\">nginx<\/a>. Since we&#8217;re new team, any budget increases have to be earned by achieving specific milestones, so it doesn&#8217;t hurt that all of our software tools with the exception of VMWare Workstation are now free.<\/p>\n<h2>Small Team<\/h2>\n<p>Finally, its really nice to be back on a small development team. I only have to report to one person, so those CC&#8217;d email sh*t storms where you&#8217;re trying to keep several stake holders informed of your status is no longer an issue. The other two developers I work with are on either side of me and both highly skilled, so most design and implementation discussions are usually resolved pretty quickly. We even <a href=\"http:\/\/en.wikipedia.org\/wiki\/Pair_programming\">pair programmed<\/a> a few days last week. It was occasionally frustrating as everyone gets up to speed on Python, but there was definitely value in it. We&#8217;re being pretty aggressive with our milestones, so I don&#8217;t think we&#8217;ll be pairing all the time.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Its a new year, and at work, the emphasis is definitely on the &#8216;new&#8217;. I&#8217;ve joined a new team, social media, in a new department: R&amp;D. I have a new desk (to be honest, its just a new spot in the cube farm), and new operating system: Linux. We&#8217;re working with what is for most [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[26,6,25],"_links":{"self":[{"href":"http:\/\/www.insomnihack.com\/index.php?rest_route=\/wp\/v2\/posts\/178"}],"collection":[{"href":"http:\/\/www.insomnihack.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.insomnihack.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.insomnihack.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.insomnihack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=178"}],"version-history":[{"count":0,"href":"http:\/\/www.insomnihack.com\/index.php?rest_route=\/wp\/v2\/posts\/178\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.insomnihack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.insomnihack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=178"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.insomnihack.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}