{"id":2662,"date":"2013-09-14T01:26:58","date_gmt":"2013-09-14T01:26:58","guid":{"rendered":"http:\/\/13.52.125.237\/?p=2662"},"modified":"2014-09-15T16:39:37","modified_gmt":"2014-09-15T16:39:37","slug":"ruby-on-rails","status":"publish","type":"post","link":"https:\/\/sotaenterprises.com\/?p=2662","title":{"rendered":"Ruby on Rails"},"content":{"rendered":"<p>Yesterday, I started reading through the <em>Book of Ruby<\/em> (Huw Collingbourne), which is a bible for Ruby developers. \u00a0 This book focuses on the Ruby language itself. \u00a0 Ruby syntax reminds me of Pascal but with significant improvements.<\/p>\n<p>In terms of capability, Ruby seems roughly equal to Groovy, offering meta-programming and closures. \u00a0I feel that the jump from Java to idiomatic Ruby would be about the same as a jump from Java to Groovy. \u00a0The key is taking advantage of all of the new language features to simplify code.<\/p>\n<p>Ruby is dynamically typed. \u00a0This means errors can sneak in where they would be caught at design time with a strongly-typed language like Java. \u00a0Fortunately, Rails supports a super-disciplined, test-everything philosophy, which is a good idea in any case. \u00a0This makes me believe that the actual benefits of strict typing may be overrated, so long as ample unit testing is performed. \u00a0We Java developers may have been brainwashed into thinking that strong typing is a panacea.<\/p>\n<p>I was drinking from a fire hose, running through the Ruby on Rails Tutorial (<em>Michael Hartl<\/em>). \u00a0The first chapters of the book get you set up with the proper development infrastructure.<\/p>\n<p>I&#8217;ve evaluated a couple of Ruby IDEs and ultimately I&#8217;ve settled on RubyMine.<br \/>\n<a href=\"http:\/\/sotaenterprises.com\/wp-content\/uploads\/2013\/09\/RubyMine.png\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-2663\" alt=\"RubyMine\" src=\"http:\/\/sotaenterprises.com\/wp-content\/uploads\/2013\/09\/RubyMine.png\" width=\"653\" height=\"545\" srcset=\"https:\/\/sotaenterprises.com\/wp-content\/uploads\/2013\/09\/RubyMine.png 653w, https:\/\/sotaenterprises.com\/wp-content\/uploads\/2013\/09\/RubyMine-300x250.png 300w, https:\/\/sotaenterprises.com\/wp-content\/uploads\/2013\/09\/RubyMine-450x375.png 450w\" sizes=\"(max-width: 653px) 100vw, 653px\" \/><\/a><br \/>\nRubyMine is crammed with features and has been working beautifully thus far. \u00a0There is also an Eclipse-based IDE called Aptana, but my sense is RubyMine is the better choice. \u00a0One drawback with RubyMine is that it is Swing-based, so it has a slightly clunky look and feel; however, the developers have done a great job making the best of things within that constraint.<\/p>\n<p>The Rails tutorial has also given me a crash course in Git and GitHub. \u00a0If you have nothing better to do, you can actually visit my first application (<strong>first_app<\/strong>) here:<\/p>\n<p><a href=\"https:\/\/github.com\/sotarules\/first_app\">https:\/\/github.com\/sotarules\/first_app<\/a><\/p>\n<p>Finally, this tutorial stepped me through the process of setting up Heroku, which is apparently a preferred cloud provider for Rails.<\/p>\n<p><a href=\"http:\/\/sotaenterprises.com\/wp-content\/uploads\/2013\/09\/Heroku.png\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-2664\" alt=\"Heroku\" src=\"http:\/\/sotaenterprises.com\/wp-content\/uploads\/2013\/09\/Heroku.png\" width=\"800\" height=\"604\" srcset=\"https:\/\/sotaenterprises.com\/wp-content\/uploads\/2013\/09\/Heroku.png 800w, https:\/\/sotaenterprises.com\/wp-content\/uploads\/2013\/09\/Heroku-300x226.png 300w, https:\/\/sotaenterprises.com\/wp-content\/uploads\/2013\/09\/Heroku-450x339.png 450w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>I&#8217;m proud to say that this application is running in the cloud as expected, but it doesn&#8217;t do anything useful. \u00a0This was just an exercise to ensure that all infrastructure hurdles have been dealt with before actual development begins.<\/p>\n<p>I&#8217;m planning to develop my first demonstration app next week. Stay tuned for excitement and surprises.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yesterday, I started reading through the Book of Ruby (Huw Collingbourne), which is a bible for Ruby developers. \u00a0 This book focuses on the Ruby language itself. \u00a0 Ruby syntax reminds me of Pascal but with significant improvements. In terms of capability, Ruby seems roughly equal to Groovy, offering meta-programming and closures. \u00a0I feel that [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0},"categories":[1],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/sotaenterprises.com\/index.php?rest_route=\/wp\/v2\/posts\/2662"}],"collection":[{"href":"https:\/\/sotaenterprises.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sotaenterprises.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sotaenterprises.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sotaenterprises.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2662"}],"version-history":[{"count":4,"href":"https:\/\/sotaenterprises.com\/index.php?rest_route=\/wp\/v2\/posts\/2662\/revisions"}],"predecessor-version":[{"id":2675,"href":"https:\/\/sotaenterprises.com\/index.php?rest_route=\/wp\/v2\/posts\/2662\/revisions\/2675"}],"wp:attachment":[{"href":"https:\/\/sotaenterprises.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2662"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sotaenterprises.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2662"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sotaenterprises.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}