{"id":363,"date":"2007-09-08T12:16:54","date_gmt":"2007-09-08T16:16:54","guid":{"rendered":"http:\/\/www.dr-chuck.com\/wordpress\/?p=363"},"modified":"2011-12-17T12:23:53","modified_gmt":"2011-12-17T16:23:53","slug":"ruby-ims-tool-interoperability","status":"publish","type":"post","link":"https:\/\/www.dr-chuck.com\/csev-blog\/2007\/09\/ruby-ims-tool-interoperability\/","title":{"rendered":"Ruby: IMS Tool Interoperability"},"content":{"rendered":"<p>Well I wrote my first Ruby application.  It was an IMS Tool Interoperability endpoint.   It has REST Web services and stores sessions in a database.  It meets the REST profile for IMS Tool Interoperability.<br \/>\nMy overwhelming feeling is that Ruby is absolutely amazing &#8211; I now know why Steven Githens uses sash.  Having a console to test code even before you put it into a controller is simply amazing.<br \/>\nOne thing I was amazed by is that I have to stop and think some times &#8211; because code is written so quickly and debugged so quickly &#8211; you actually have stop and think more often &#8211; the typing of the code is not the rate limiting factor &#8211; how well you have throught through your problem *is* the rate limiting factor.<br \/>\nIn Java there is so much cruft and the speed of the debugging cycle is so plodding &#8211; I have gotten to the point in Java that I can do designs whlie waiting for a compile or server restart.  In Ruby there is no such slack time &#8211; so I find I need to get up and walk around once in a while to let the idease anneal in my mind.  After I settle back down and have the ideas worked out &#8211; making them work in Ruby is done in a flash.<br \/>\nProbably my biggest peeve about Ruby\/Rails is a lack of a book that tells you everything that you can do &#8211; all the books I have are example after example &#8211; and they are all too simple &#8211; because they are solving a small problem they never who you how to do a subtle thing like declare that a column in a database is not null.<br \/>\nI need a reference manual.  Here are some sites that are helping me not go too crazy:<br \/>\nhttp:\/\/www.railsapi.org\/<br \/>\nhttp:\/\/zamples.com\/JspExplorer\/content\/rubyUG\/<br \/>\nUsing Google with things like this works sometimes<br \/>\nruby string class<br \/>\nrails activerecord class<br \/>\nI use this to find stuff in Java by typing<br \/>\njava string class<br \/>\nBut I am looking for a definitive 10000 page manual for Ruby and Rails.  I am tred of poring throush 20 line examples :)<br \/>\nI am also really liking Model-View-Controller &#8211; but there does seem to be something eauivalent to Components that I am missing.  Where do you do things like performance tune, cache, etc etc.  I think the Model is too thin of a layer to do it &#8211; and the Controller is not the right place either.<br \/>\nI do like the Rails abstraction between View and Controller.  I have a lot yet to learn but the fact that Urls are abstracted feels very portlet like and WSRP like.. Hmmm.  Me likes.<br \/>\nAll in all it is amazing that I need to stop and think because things get coded up so quickly.<br \/>\nHere is a picture of the running app in Sakai:<br \/>\n<a href=http:\/\/www.dr-chuck.com\/images\/2007\/09\/index.php?img=08-09-07_120056_01.jpg>IMS Tool Interoperability in Ruby<\/a><br \/>\nI need to move the from my desktop to a server so others can use it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well I wrote my first Ruby application. It was an IMS Tool Interoperability endpoint. It has REST Web services and stores sessions in a database. It meets the REST profile for IMS Tool Interoperability. My overwhelming feeling is that Ruby is absolutely amazing &#8211; I now know why Steven Githens uses sash. Having a console [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-363","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/comments?post=363"}],"version-history":[{"count":1,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/363\/revisions"}],"predecessor-version":[{"id":2454,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/363\/revisions\/2454"}],"wp:attachment":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/media?parent=363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/categories?post=363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/tags?post=363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}