<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DE4DSH47fyp7ImA9WhRXGEQ.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020</id><updated>2011-12-26T02:56:19.007-08:00</updated><category term="editor" /><category term="sql" /><category term="java" /><category term="date" /><category term="groovy code" /><category term="gstring" /><category term="oracle" /><title>Groovy Scripting and Programming</title><subtitle type="html">Fun with the Groovy programming language and more</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://groovylang.blogspot.com/" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/groovysp" /><feedburner:info uri="groovysp" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEYDRnoyeip7ImA9WhRXFkU.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020.post-6035092704330079871</id><published>2011-12-23T15:16:00.000-08:00</published><updated>2011-12-23T15:16:17.492-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-23T15:16:17.492-08:00</app:edited><title>Fixing my foot wound</title><content type="html">I just know from outpouring of concern, you are just dying to know how I resolved my Java/SQLServer 2008 issue. So I shall tell you.&lt;br /&gt;
&lt;br /&gt;
I happened to have a 2 month old snapshot of my development Virtual Machine, so I pulled the&amp;nbsp;cached&amp;nbsp;copies&amp;nbsp;of the old install .debs and forced them to install on my current system. Everything works (except for a broken&amp;nbsp;dependency&amp;nbsp;warning ) now.&lt;br /&gt;
&lt;br /&gt;
Now I just have to wait, and test, to see when the&amp;nbsp;problem&amp;nbsp;is really solved and I can update my system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582350746723638020-6035092704330079871?l=groovylang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/6035092704330079871/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://groovylang.blogspot.com/2011/12/fixing-my-foot-wound.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/6035092704330079871?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/6035092704330079871?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/groovysp/~3/LCzf8wOODwI/fixing-my-foot-wound.html" title="Fixing my foot wound" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://groovylang.blogspot.com/2011/12/fixing-my-foot-wound.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEGQn8yfyp7ImA9WhRRFEw.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020.post-571228733224924304</id><published>2011-11-27T08:06:00.001-08:00</published><updated>2011-11-27T08:17:03.197-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-27T08:17:03.197-08:00</app:edited><title>Shooting Myself in the Foot</title><content type="html">I went through a lot of effort recently to create development system to 'isolate' it from my usual pc activities so that my development system would remain stable.&lt;br /&gt;
&lt;br /&gt;
Then what did I do?&lt;br /&gt;
&lt;br /&gt;
I installed a java update without testing it and now a critical process i need (jdbc to sqlserver 2008) is broken.&lt;br /&gt;
&lt;br /&gt;
And, &amp;nbsp;did I have a backup of java ? &amp;nbsp;NO.&lt;br /&gt;
&lt;br /&gt;
So now I will pay the price of having to figure out how to get this to work again.&lt;br /&gt;
&lt;br /&gt;
What did I learn?&lt;br /&gt;
&lt;br /&gt;
1. Backup your programming environment not just your source code (Possibly in git)&lt;br /&gt;
2. Test all updates (I'm running a VM so I can make a snapshot)&lt;br /&gt;
&lt;br /&gt;
I guess the moral of the story is "Experience is what you get when you don't get what you want."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582350746723638020-571228733224924304?l=groovylang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/571228733224924304/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://groovylang.blogspot.com/2011/11/shooting-myself-in-foot.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/571228733224924304?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/571228733224924304?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/groovysp/~3/tXEiuZt4tRU/shooting-myself-in-foot.html" title="Shooting Myself in the Foot" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://groovylang.blogspot.com/2011/11/shooting-myself-in-foot.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAHSXo5eip7ImA9WhRSF0w.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020.post-207737164660281363</id><published>2011-11-19T05:20:00.001-08:00</published><updated>2011-11-19T05:52:18.422-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-19T05:52:18.422-08:00</app:edited><title>7 Reasons Why I still like VI</title><content type="html">I cut my teeth on UNIX 25 years ago and the first text editor I ever leaned to use was vi (on AT&amp;amp;T UNIX) . &amp;nbsp;Over &amp;nbsp;the last 25 years computer interfaces have progressed from ASCII to GUI and programming has progressed from command line to IDE's and I've moved along with with then. But recently I moved my development system from Windows to Linux and had rediscovered VI. Here are my 7 reasons that I still like it and one new one:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;It runs in pretty much any terminal environment&lt;/li&gt;
&lt;li&gt;Being able to open and edit multiple files with a wildcard from the command line&lt;/li&gt;
&lt;li&gt;s&lt;i&gt;ed &lt;/i&gt;scripts for mass edits&amp;nbsp;&lt;/li&gt;
&lt;li&gt;You can delete a word or a series of words with 2 or 3 keystrokes&lt;/li&gt;
&lt;li&gt;The dot (.) repeat last command key&lt;/li&gt;
&lt;li&gt;Never having to touch a mouse&lt;/li&gt;
&lt;li&gt;Being able to impress&amp;nbsp;younger&amp;nbsp;colleagues&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;b&gt;One new reason that &lt;i&gt;vim&lt;/i&gt; provides:&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;&lt;i&gt;Groovy &lt;/i&gt;Syntax highlighting&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
By the way you can install &lt;a href="http://www.vim.org/download.php"&gt;vim &lt;/a&gt;on your windows machine too so you can have these advantages anywhere.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582350746723638020-207737164660281363?l=groovylang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/207737164660281363/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://groovylang.blogspot.com/2011/11/7-reasons-why-i-still-like-vi.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/207737164660281363?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/207737164660281363?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/groovysp/~3/Qb0LuUfW_FU/7-reasons-why-i-still-like-vi.html" title="7 Reasons Why I still like VI" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://groovylang.blogspot.com/2011/11/7-reasons-why-i-still-like-vi.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQERHs5fCp7ImA9WhdVFkg.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020.post-4962549736247843944</id><published>2011-09-21T18:51:00.000-07:00</published><updated>2011-09-21T18:51:45.524-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-21T18:51:45.524-07:00</app:edited><title>Is Groovy Relevant Part Deux</title><content type="html">One of the discussions at the &lt;a href="http://www.nofluffjuststuff.com/"&gt;NFJS&lt;/a&gt;&amp;nbsp;conference&amp;nbsp;last weekend was on this very subject. (&lt;a href="http://groovylang.blogspot.com/2011/09/is-groovy-and-grails-still-relevant.html"&gt;See my earlier post&lt;/a&gt;.) &lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;I learned that there is more Grails acceptance in the 'back office' than I was aware&lt;/li&gt;
&lt;li&gt;Every Session on Language had&amp;nbsp;references&amp;nbsp;to Groovy (even if it wasn't the subject) and typically they were quite positive.&lt;/li&gt;
&lt;li&gt;Also I saw &lt;a href="http://www.eweek.com/c/a/Application-Development/Groovy-JavaScript-Ruby-Among-Fastest-Growing-Programming-Languages-505803/"&gt;this article&lt;/a&gt; in eWeek (has nothing to do with NFJS).&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
So maybe I'll move out of my doldrums now.&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582350746723638020-4962549736247843944?l=groovylang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/4962549736247843944/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://groovylang.blogspot.com/2011/09/is-groovy-relevant-part-deux.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/4962549736247843944?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/4962549736247843944?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/groovysp/~3/bgvYFUEwPaQ/is-groovy-relevant-part-deux.html" title="Is Groovy Relevant Part Deux" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://groovylang.blogspot.com/2011/09/is-groovy-relevant-part-deux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUBQH05eip7ImA9WhdVFUg.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020.post-748236154053532661</id><published>2011-09-20T15:37:00.000-07:00</published><updated>2011-09-20T15:37:31.322-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-20T15:37:31.322-07:00</app:edited><title>This Years Resolutions</title><content type="html">Went to to &lt;a href="http://www.nofluffjuststuff.com/home/main"&gt;NoFluffJustSuff&lt;/a&gt; in Atlanta this weekend, this is a great conference and I always come out of it with new resolutions to improve my programming. I&amp;nbsp;decided&amp;nbsp;on two major areas to work on: &amp;nbsp;First, start using some kind of version control (I don't even think I need to justify this one). Second, learn a functional programming language since this is a paradigm that I'm not&amp;nbsp;familiar&amp;nbsp;with, and it should help me round out my programming skills.&lt;br /&gt;
&lt;br /&gt;
As for the first item, I downloaded &lt;a href="http://git-scm.com/"&gt;git&lt;/a&gt; (its all the rage among the open source folks) and I've started using it. It's surprisingly easy to implement for simple version control that I've tried. You can update and save changes with just two commands. The windows version even has a GUI menu.&lt;br /&gt;
&lt;br /&gt;
As for the second item, I downloaded a copy of &lt;a href="http://clojure.org/"&gt;clojure&lt;/a&gt;&amp;nbsp;which is a lisp-like language that runs on the JVM. While git was easy to figure out, &amp;nbsp;functional programming with clojure is anything but. I have to change my whole perspective form the hybrid OO/procedural&amp;nbsp;method I use now. (And there are way too many list types too) . We will see how that goes.&lt;br /&gt;
&lt;br /&gt;
I'll try to keep you updated on my progress.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582350746723638020-748236154053532661?l=groovylang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/748236154053532661/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://groovylang.blogspot.com/2011/09/this-years-resolutions.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/748236154053532661?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/748236154053532661?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/groovysp/~3/PEyFQTAMGLA/this-years-resolutions.html" title="This Years Resolutions" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://groovylang.blogspot.com/2011/09/this-years-resolutions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcGSHY8cCp7ImA9WhdWF0o.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020.post-6564300758113846626</id><published>2011-09-11T13:47:00.000-07:00</published><updated>2011-09-11T13:47:09.878-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-11T13:47:09.878-07:00</app:edited><title>Is Groovy and Grails still relevant</title><content type="html">Groovy and Grails have been around a while, and are becoming mature. There are lots of cool features and tons of great capabilities. But in the&amp;nbsp;&lt;a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html"&gt;TIOBE Programming Community Index for September 2011&lt;/a&gt;&amp;nbsp;groovy is in the 50 to 100 ranking, which only warrants them a listing with other programs en mass that is more akin to a footnote than anything else. If you look for a job on various freelance sites, you will find the number of Groovy/Grails&amp;nbsp;opportunities&amp;nbsp;in the single digits, and Ruby/Rails and Python opportunities in the triple or quadruple digits.&amp;nbsp;Its very hard to find low end &amp;nbsp;web hosting&amp;nbsp;companies&amp;nbsp;that support Grails. Even &lt;a href="https://www.cloudfoundry.com/"&gt;Cloud Foundry &lt;/a&gt;from VMWare (the parent company of Spring &amp;nbsp;who brought us Groovy) &amp;nbsp;doesn't specifically mention it on the home page of the website&lt;br /&gt;
&lt;br /&gt;
This forces the question: &lt;i&gt;Is groovy worth it?&amp;nbsp;&lt;/i&gt;&amp;nbsp;Even though Groovy is fast and easy and&amp;nbsp;Grails&amp;nbsp;makes creating web apps&amp;nbsp;efficient, I can't use it to make money (and I do have to eat). &amp;nbsp;Should I stick with it, or jump ship to something else ? what do you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582350746723638020-6564300758113846626?l=groovylang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/6564300758113846626/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://groovylang.blogspot.com/2011/09/is-groovy-and-grails-still-relevant.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/6564300758113846626?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/6564300758113846626?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/groovysp/~3/mfWkNp6pAmM/is-groovy-and-grails-still-relevant.html" title="Is Groovy and Grails still relevant" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://groovylang.blogspot.com/2011/09/is-groovy-and-grails-still-relevant.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQAR34zfCp7ImA9WhZaFk8.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020.post-3416944942282108679</id><published>2011-07-02T08:59:00.000-07:00</published><updated>2011-07-02T08:59:06.084-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-02T08:59:06.084-07:00</app:edited><title>C vs. Groovy</title><content type="html">A quick program in C and Groovy, You can compare and contrast&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;/***Cost.groovy***/&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;//Calculate Cost
def cost (s,r,m) {
  s+(r*m)
}

//main portion of progam
(1..10).each{
   println "cost for month $it is ${cost(100,10,it) }"
}
&lt;/pre&gt;&lt;br /&gt;
&lt;hr /&gt;&lt;pre&gt;/***Cost.c ***/

#include &lt;stdio.h&gt;

/* Function protoypes */
float cost(float,float,float);/*Calulates Costs */

/* main function */
void main (void) {
 float c=0; 
 int n;
 for (n=1; n&amp;lt;11; n++) {

  c=cost(100,10,n);
  printf ("Cost for month %i is %f\n",n,c);
 }

}



/* Cost Formula */
float  cost(float s, float r, float m) {
  return  (s+(r*m) );
}

&lt;/stdio.h&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582350746723638020-3416944942282108679?l=groovylang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/3416944942282108679/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://groovylang.blogspot.com/2011/07/c-vs-groovy.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/3416944942282108679?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/3416944942282108679?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/groovysp/~3/cTwMpnDIgsQ/c-vs-groovy.html" title="C vs. Groovy" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://groovylang.blogspot.com/2011/07/c-vs-groovy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8BQ3s4eip7ImA9WhZWGU8.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020.post-3801448453088517860</id><published>2011-05-20T14:27:00.000-07:00</published><updated>2011-05-20T14:27:32.532-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T14:27:32.532-07:00</app:edited><title>My Programming Toolbox</title><content type="html">I've&amp;nbsp;expanded&amp;nbsp;my programming toolbox over the past few months, so figured I'd tell you what's in it right now&lt;i&gt;. (These are the tools that I use regularly.)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Power tools&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;u&gt;Java:&lt;/u&gt;&amp;nbsp;If its big, and complicated I pull out multi purpose language. It runs anywhere, can create a sophisticated GUI, and has static typing. &amp;nbsp;What more could you ask for ?&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;Grails:&lt;/u&gt;&amp;nbsp;Fast and full featured you can build quite a&amp;nbsp;sophisticated&amp;nbsp;web application. Lots of plug-ins save time and effort.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Hand tools:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;u&gt;Groovy:&lt;/u&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;Do you need a&amp;nbsp;sophisticated&amp;nbsp;script, or to build a java class quickly, Groovy fits the bill. It&amp;nbsp;simplifies&amp;nbsp;many common&amp;nbsp;programming&amp;nbsp;tasks but still lets you leverage your java knowledge.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;Powershell:&lt;/u&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;Do you need to talk to Microsoft applications like office, etc. and mange Windows machines? Powershell&amp;nbsp;is your tool. Its a cross between shell scripting and .net programming. and you can access any .Net library too. (Powershell is available on most windows platforms.)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Specialty Tools&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;u&gt;C#&lt;/u&gt;: If nothing but a DLL will do you can do it with C#. Don't worry, if you know java programming in C# is an easy transition. (Visual Studio Express is free too!!)&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;Lua:&lt;/u&gt; A fast scripting language that runs interpreted scripts almost as fast as C. Its great for stuff that needs to run in near real time. Available on most common platforms and can be ported to any platform that has an ANSI C compiler.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;PERL&lt;/u&gt;:&amp;nbsp;Sometimes&amp;nbsp;you need to deal with text files and nothing does it better than PERL.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
One of the keys to building a programming toolbox of your own is to be pragmatic. I'm a big open Source/JVM fan, &amp;nbsp;but I do a lot of work on windows &amp;nbsp;as well, &amp;nbsp;so Windows tools are are a part my toolbox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582350746723638020-3801448453088517860?l=groovylang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/3801448453088517860/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://groovylang.blogspot.com/2011/05/my-programming-toolbox.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/3801448453088517860?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/3801448453088517860?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/groovysp/~3/eGfT2q5kUmw/my-programming-toolbox.html" title="My Programming Toolbox" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://groovylang.blogspot.com/2011/05/my-programming-toolbox.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IARX4ycCp7ImA9Wx5VF0s.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020.post-8309605577673011419</id><published>2010-10-10T19:33:00.000-07:00</published><updated>2010-10-10T19:52:24.098-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-10T19:52:24.098-07:00</app:edited><title>Meta Programming</title><content type="html">I went to the &lt;a href="http://www.nofluffjuststuff.com/"&gt;NoFluffJustStuff&lt;/a&gt;&amp;nbsp;symposium&amp;nbsp;a few weeks ago in Atlanta. (This is a &lt;i&gt;great &lt;/i&gt;conference for JVM programmers.) One of the things I&amp;nbsp;learned&amp;nbsp;about was meta programming (programming the programming language, so to speak), since I moved from&amp;nbsp;Java&amp;nbsp;to Groovy, I never really even thought stuff like this was possible.&lt;br /&gt;
&lt;br /&gt;
One of the things that you can do in groovy is add methods to classes (that you don't have source code for) without inheriting the original class, check this example out, its really cool!!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Code:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;String.metaClass.getCity&amp;lt;&amp;lt;{ return delegate.split(',')[0]}&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;String.metaClass.getState&amp;lt;&amp;lt;{ return delegate.split(',')[1].trim().split(' ')[0] }&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;String.metaClass.getZip&amp;lt;&amp;lt;{ return delegate.split(',')[1].trim().split(' ')[1] }&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cszLine="Cumming, GA 30040"&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;println "Input: $cszLine"&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;println "City: ${cszLine.getCity()}"&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;println "State: ${cszLine.getState()}"&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;println "Zip: ${cszLine.getZip()}"&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;println ""&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cszLine="St. Croix, USVI 00820"&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;println "Input: $cszLine"&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;println "City: ${cszLine.getCity()}"&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;println "State: ${cszLine.getState()}"&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;println "Zip: ${cszLine.getZip()}"&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Output:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;div style="margin-top: 0;"&gt;&lt;output&gt;     &lt;/output&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Input: Cumming, GA 30040&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;City: Cumming&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;State: GA&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Zip: 30040&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Input: St. Croix, USVI 00820&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;City: St. Croix&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;State: USVI&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Zip: 00820&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
So what I did was add 3 methods to String class. &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;getCity()&lt;/span&gt;, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;getState()&lt;/span&gt;, and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;getZip()&lt;/span&gt;. Now whenever I have &amp;nbsp;the City/State/Zip formatted string I can parse out t\eeach element. &amp;nbsp;This is much cleaner from a programming standpoint than creating and calling functions.&amp;nbsp;Of course, the data has to be formatted correctly to work without throwing an exception. &amp;nbsp;(By the way &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;delegate&lt;/span&gt; is how you reference the class your adding methods to.)&lt;br /&gt;
&lt;br /&gt;
This just seems so cool to me, and you can do this for any class. If you have to do a particular calculation on an integer, you could create a method on &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Integer&lt;/span&gt; to do so. if you want dates formatted a special way you could add a&amp;nbsp;method&amp;nbsp;to the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Date&lt;/span&gt; class, the&amp;nbsp;possibilities&amp;nbsp;are endless.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582350746723638020-8309605577673011419?l=groovylang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/8309605577673011419/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://groovylang.blogspot.com/2010/10/meta-programming.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/8309605577673011419?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/8309605577673011419?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/groovysp/~3/KkD0kbT4WOk/meta-programming.html" title="Meta Programming" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://groovylang.blogspot.com/2010/10/meta-programming.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UBQnc5eip7ImA9WxFRF0k.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020.post-3756080701106415003</id><published>2010-05-01T14:27:00.000-07:00</published><updated>2010-05-01T14:27:33.922-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-01T14:27:33.922-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sql" /><category scheme="http://www.blogger.com/atom/ns#" term="gstring" /><category scheme="http://www.blogger.com/atom/ns#" term="date" /><category scheme="http://www.blogger.com/atom/ns#" term="groovy code" /><title>Getting Groovy gStrings to work with sql queries</title><content type="html">If you are building dynamic SQL queries with gstrings, you may have had issues embedding SQL date strings in them, the way I solved this was to explicitly define the query as a string:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;date="{ts '2010-05-01 00:00:00'}"&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="background-color: yellow;"&gt;String&lt;/span&gt; query="""&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; SELECT&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; order_number&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; order_amount&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; FROM&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; orders&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; where&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; order_date &amp;gt;${date}&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;"""&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sql.eachLine(query),{println it })&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582350746723638020-3756080701106415003?l=groovylang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/3756080701106415003/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://groovylang.blogspot.com/2010/05/getting-groovy-gstrings-to-work-with.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/3756080701106415003?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/3756080701106415003?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/groovysp/~3/ZTZzQKRCxuU/getting-groovy-gstrings-to-work-with.html" title="Getting Groovy gStrings to work with sql queries" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://groovylang.blogspot.com/2010/05/getting-groovy-gstrings-to-work-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QFQH44fyp7ImA9WxBbFkQ.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020.post-2111023362070760108</id><published>2010-03-15T16:21:00.000-07:00</published><updated>2010-03-15T16:21:51.037-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-15T16:21:51.037-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="editor" /><title>The Ups and the Downs of the Groovy Console</title><content type="html">Like most scripting languages, Groovy has a programming editor -- the Groovy Console . Groovy's editor is home grown, (and not SciTE). There are, however,a few things you need to be aware of with the Groovy Console.&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;It does not &lt;b&gt;save &lt;/b&gt;when you run the program (so get used to saving before each run)&amp;nbsp; &lt;/li&gt;
&lt;li&gt;I've yet to get the interrupt button to work while its running, so I've had to kill the process (thus issue 1 above).&lt;/li&gt;
&lt;li&gt;If you are working on a program (and have not saved it recently) and go to open another program (file--&amp;gt;open) you're not prompted to save the first file before its replaced. So save often.&lt;/li&gt;
&lt;/ol&gt;I'm willing to bet that as Groovy matures, that the these issues will get resolved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582350746723638020-2111023362070760108?l=groovylang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/2111023362070760108/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://groovylang.blogspot.com/2010/03/ups-and-downs-of-groovy-console.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/2111023362070760108?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/2111023362070760108?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/groovysp/~3/qVH8cK-CaX4/ups-and-downs-of-groovy-console.html" title="The Ups and the Downs of the Groovy Console" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://groovylang.blogspot.com/2010/03/ups-and-downs-of-groovy-console.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUGSX8zfyp7ImA9WxBbEEQ.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020.post-9128643537062533791</id><published>2010-03-07T09:17:00.000-08:00</published><updated>2010-03-08T17:30:28.187-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-08T17:30:28.187-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="groovy code" /><title>Groovy File One Liners</title><content type="html">One of the nice things about Groovy if you are a Java programmer is the ease that you can manipulate files with just one like of code.&lt;br /&gt;
&lt;br /&gt;
Create or replace a file&amp;nbsp; and write a line of text to it:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;new File("myfile.txt").write("Here is a line: \"whats a nice programmer like you doing at a blog like this\" \n");&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Append to a file (creates the if it doesn't exist)&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; new File("myfile.txt").append("\"Looking for a some code like this\"\n");&lt;/div&gt;&lt;br /&gt;
Read the second line (First line is line 0) of the file&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;println new File("myfile.txt").readLines()[1] //what was the response&lt;/span&gt;&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582350746723638020-9128643537062533791?l=groovylang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/9128643537062533791/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://groovylang.blogspot.com/2010/03/groovy-file-one-liners.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/9128643537062533791?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/9128643537062533791?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/groovysp/~3/n7MUNL2l1RI/groovy-file-one-liners.html" title="Groovy File One Liners" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://groovylang.blogspot.com/2010/03/groovy-file-one-liners.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYCRH85cSp7ImA9WxBUGEQ.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020.post-8928432519556964651</id><published>2010-03-06T09:15:00.000-08:00</published><updated>2010-03-06T09:22:45.129-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-06T09:22:45.129-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>Argh..Oracle has taken over the Java page</title><content type="html">While I was adding links to this page I realized that sometime in the last month, Oracle took over the &lt;a href="http://java.sun.com/"&gt;java.sun.com&lt;/a&gt; page. I can't find anything. Oh well, lets hope the change is good in the long run.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582350746723638020-8928432519556964651?l=groovylang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/8928432519556964651/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://groovylang.blogspot.com/2010/03/arghthe-oracle-has-taken-over-java-page.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/8928432519556964651?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/8928432519556964651?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/groovysp/~3/iRLvrLyq77A/arghthe-oracle-has-taken-over-java-page.html" title="Argh..Oracle has taken over the Java page" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://groovylang.blogspot.com/2010/03/arghthe-oracle-has-taken-over-java-page.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ANSXk-eCp7ImA9WxBUGEQ.&quot;"><id>tag:blogger.com,1999:blog-7582350746723638020.post-1620296180768219129</id><published>2010-03-06T08:00:00.000-08:00</published><updated>2010-03-06T08:09:58.750-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-06T08:09:58.750-08:00</app:edited><title>println("Hello World")</title><content type="html">think that its about programming in Groovy. But It may just be groovy.  (bad pun)  &lt;p&gt;What is Groovy anyway?&lt;/p&gt; &lt;p&gt;Groovy is a programming language based on java. Its what happens when you take mix Perl and Java, and sprinkle on some Ruby.&lt;/p&gt; &lt;p&gt;Groovy is weakly typed, unlike java, but shares most of java's syntax (as well as the java virtual machine), but guess what -- you don't need semicolons at the end of the line. You can use pretty much any java class and syntax  you want, and that means that any java programmer can learn it quite quickly. Once you get the hang of it you can pound out code pretty quick. (BTW, Groovy is the core language of the Grails web framework.)  Groovy comes with a simple editor (the groovy console) , as well as a shell for scripting fun, but for heavy duty programming fun its supported by &lt;a href="http://eclipse.org/"&gt;Eclipse&lt;/a&gt;,  and &lt;a href="http://netbeans.org/"&gt;NetBeans&lt;/a&gt; (which I use) .&lt;/p&gt; &lt;p&gt;You can find plenty more Groovy propaganda (and doc)  at the&lt;a href="http://groovy.codehaus.org/"&gt; Groovy Hompage&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The current version of Groovy can be &lt;a href="http://groovy.codehaus.org/Download"&gt;downloaded&lt;/a&gt; for Linux and Windows ( No current OSx support -- whats up with that?  I use all three OS's)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582350746723638020-1620296180768219129?l=groovylang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://groovylang.blogspot.com/feeds/1620296180768219129/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://groovylang.blogspot.com/2010/03/printlnhello-world.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/1620296180768219129?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7582350746723638020/posts/default/1620296180768219129?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/groovysp/~3/m2DPbrcCPGA/printlnhello-world.html" title="println(&quot;Hello World&quot;)" /><author><name>Jeff Spiller</name><uri>https://profiles.google.com/102146485064548473083</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-rmxIUN03PUY/AAAAAAAAAAI/AAAAAAAAAAA/FfjV4nKySys/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://groovylang.blogspot.com/2010/03/printlnhello-world.html</feedburner:origLink></entry></feed>

