<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1175026480841117268</id><updated>2011-11-09T08:44:55.373-08:00</updated><category term='git debian'/><category term='thenextgeneration'/><category term='gigism-dev gigism-alpha gigism-beta'/><category term='gigism-dev gigism-idea'/><category term='git'/><category term='learning'/><category term='gigism-dev groovy grails tapestry selenium'/><category term='gigism-dev groovy grails'/><category term='coding'/><title type='text'>Gigism</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-7321884176062737175</id><published>2011-11-09T06:08:00.000-08:00</published><updated>2011-11-09T08:44:55.407-08:00</updated><title type='text'>Privateer vs. Pirate - resolving one's sensibilities</title><content type='html'>&lt;div&gt;In short, I don't sail for the "Queen's Navy" - and I sure won't ask her for permission to operate as I please. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've worked for "the Normals", dealt with "the Squares", and said some incredible brain-dead managementese in the spirit of holding a J-O-B. I want that to be in the past; sometimes the remnant douchbaggery surfaces. My skills have grown and reputation is such that I don't need to sign on with the East India Company, or any other competitor (and I sure as hell won't need to hit the seas under the Union Jack). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Gangplank in the landlocked Old Pueblo has been an experience. It started with a walkabout and some Sonoran Dogs. It turned to chaos in a room - a perfect storm of ideas.  Then, we spent a summer with our ship in dry dock: "One more week, one more week, one more week!" the shipwrights claimed. The shipwright and the taxman - old buds, I guess. Neither can be trusted.  Finally, our ship was to test the waters: an official launch this past Friday. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now we've gone from "All Aboard!" to "Abandon Ship!" in 3 short days. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But what we've learned since April is: "some get it, some don't". Gangplank is an idea and that idea is dangerous (and those that pay tribute to that are part of the Danger Party). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Gangplank is not a space - it is a community. And a community does not need a corporate sponsor nor a &lt;a href="http://en.wikipedia.org/wiki/Letters_of_marque"&gt;letter of marque&lt;/a&gt; to take action. We operate as needed, flying our flag as we see fit from this point forward. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let us get a few things straight about that _idea_ in case you have not self-selected already: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's &lt;b&gt;not&lt;/b&gt; an opportunity to peddle your wares.  It's a chance to expand your mental horizons. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's &lt;b&gt;not&lt;/b&gt; an arena for "vetting your strawman and acquiring cust-dev in order to accumulate feedback metrics". It's a chance to display your merit and prove yourself with actions &amp;amp; presence.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's &lt;b&gt;not&lt;/b&gt; a place for vacantly exchanging business cards. It's a chance to connect and understand perspectives.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's &lt;b&gt;not&lt;/b&gt; a puppet organization. It's a collection of independent, like-minded iconoclasts (or it will be, after this - and we don't take kindly to mutiny). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's &lt;b&gt;not&lt;/b&gt; going to stop being out of step without corporate ideals. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;No quarter will be given. No parlay will be honored. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To join us, follow @DangerParty or search for the hashtags #tusdp #dangerparty&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Explore. Create. Master.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-7321884176062737175?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/7321884176062737175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=7321884176062737175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/7321884176062737175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/7321884176062737175'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2011/11/privateer-vs-pirate-resolving-ones.html' title='Privateer vs. Pirate - resolving one&apos;s sensibilities'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-6983926057401348782</id><published>2011-08-19T09:56:00.000-07:00</published><updated>2011-08-19T10:05:57.414-07:00</updated><title type='text'>Celebrating Whyday</title><content type='html'>I lead a team of developers working on a larger scientific application.  Having fun and reconnecting with the awesome feeling of "creating" things is important.  That playful side of programming is often replaced with "software engineering" (*said of a heavy, deep, serious voice*) or adhering to "best practices."  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Today - we put our "best practices away" as _why asked and have some kid-like fun. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's an excerpt of an email I sent out to the teams who are celebrating: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;Hi all! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I just wanted to remind you that today is Whyday! [0]  We're all celebrating by doing fun coding or learning.  To me, it's all about reconnecting with the playful aspects of programming that originally hooked you in. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Not sure what to do to celebrate? See what everyone is doing to celebrate: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;http://twitter.com/#!/search/%23whyday&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Still don't know? Learn about Hackety Hack! [1] Or learn about "light" frameworks that can enable web programming! [2]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Who is Why the Lucky Stiff? (aka _why)  Well, this is a good place to learn about him [3] as a start.  If nothing else, learn about the contributes that Why made to the community [4] and the inspiration that he was. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm coding on a little Android application [5] before I take off for the day &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We're working some talks from "ART &amp;amp;&amp;amp; CODE" in 2008 as a brown bag today at lunch [6, 7].  And a couple of satire shorts by _why [8].  [...]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Chunky bacon!!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[0] &lt;a href="http://whyday.org/"&gt;http://whyday.org/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;[1] &lt;a href="http://hackety-hack.com/"&gt;http://hackety-hack.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;[2] &lt;a href="https://github.com/camping/camping"&gt;https://github.com/camping/camping&lt;/a&gt;&lt;/div&gt;&lt;div&gt;[3] &lt;a href="http://www.shopify.com/technology/3822402-whyday-is-friday"&gt;http://www.shopify.com/technology/3822402-whyday-is-friday&lt;/a&gt;&lt;/div&gt;&lt;div&gt;[4] &lt;a href="http://viewsourcecode.org/why/"&gt;http://viewsourcecode.org/why/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;[5] &lt;a href="https://github.com/lenards/unalarming-android"&gt;https://github.com/lenards/unalarming-android&lt;/a&gt;&lt;/div&gt;&lt;div&gt;[6] &lt;a href="http://vimeo.com/5551981"&gt;http://vimeo.com/5551981&lt;/a&gt;&lt;/div&gt;&lt;div&gt;[7] &lt;a href="http://vimeo.com/5047563"&gt;http://vimeo.com/5047563&lt;/a&gt;&lt;/div&gt;&lt;div&gt;[8] &lt;a href="http://www.youtube.com/watch?v=mXZ_htL1rOI&amp;amp;feature=related"&gt;http://www.youtube.com/watch?v=mXZ_htL1rOI&amp;amp;feature=related&lt;/a&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-6983926057401348782?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/6983926057401348782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=6983926057401348782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/6983926057401348782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/6983926057401348782'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2011/08/celebrating-whyday.html' title='Celebrating Whyday'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-149595706872582518</id><published>2011-05-14T13:34:00.001-07:00</published><updated>2011-05-14T16:18:14.670-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='thenextgeneration'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Dirty Jobs perspective on programming...</title><content type='html'>Thursday I got to visit Gangplank Chandler (which I'll talk about in another post) and catchup with a friend (Kelly Wilkerson,  who I worked as a teaching assistant with some 10 years ago.  She teaches at Arizona State University now and we got to share some of thoughts, experiences, frustrations, and insights having both gotten the chance to teach classes [1] on our own.   In that vein, I saw &lt;a href="http://dsc.discovery.com/fansites/dirtyjobs/mike-rowe-senate-testimony.html"&gt;Mike Rowe's testimony&lt;/a&gt; to the Senate on Wednesday (5/11/2011) and thought there were some parallels in teaching students to program.  Here's an excerpt from an email I sent on to her:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;So... you might say that students are as disconnected from what they're  doing "standing on the shoulders of giants" when coding as people are who don't  think about where food comes from or who fixes their plumbing:&lt;span style=";font-family:courier new;font-size:100%;"  &gt; &lt;/span&gt;&lt;div  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote  style="margin: 0pt 0pt 0pt 40px; border: medium none; padding: 0px;font-family:courier new;"&gt;&lt;div&gt;&lt;span style="color: rgb(51, 51, 51); line-height: 13px;font-size:100%;" &gt;&lt;p style="margin: 0px; padding: 0px 0px 10px;"&gt; &lt;span style="color: rgb(255, 255, 255);"&gt;Thirty years later in San Francisco when my toilet blew up again. This  time, I didn't participate in the repair process. I just called my  landlord, left a check on the kitchen counter, and went to work. When I  got home, the mess was cleaned up and the problem was solved. As for the  actual plumber who did the work, I never even met him.&lt;/span&gt;&lt;/p&gt; &lt;/span&gt;&lt;/div&gt;&lt;div  style="color: rgb(255, 255, 255);font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 51); line-height: 13px;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  style="color: rgb(255, 255, 255);font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 51); line-height: 13px;font-size:100%;" &gt;&lt;p style="margin: 0px; padding: 0px 0px 10px;"&gt; &lt;span style="color: rgb(255, 255, 255);"&gt;It occurred to me that I had become disconnected from a lot of things  that used to fascinate me. I no longer thought about where my food came  from, or how my electricity worked, or who fixed my pipes, or who made  my clothes. There was no reason to. I had become less interested in how  things got made, and more interested in how things got bought.&lt;/span&gt;&lt;/p&gt; &lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt; &lt;div&gt;&lt;span style="font-style: italic;"&gt;(Above quotation from: &lt;/span&gt;&lt;a style="font-style: italic;" href="http://dsc.discovery.com/fansites/dirtyjobs/mike-rowe-senate-testimony.html" target="_blank"&gt;http://dsc.discovery.&lt;wbr&gt;com/fansites/dirtyjobs/mike-&lt;wbr&gt;rowe-senate-testimony.html&lt;/a&gt;&lt;span style="font-style: italic;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thought about our conversation yesterday and decided  this is actually a nice way, potentially, to talk about this in a  context (Dirty Jobs) that students might recognize or understand... Or  are they not among the millions that watch Discovery Channel?&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;I realize now that I've been away from teaching for about 5 years, how I might related to students would be drastically changed if I was back in the classroom.  I do think that "Dirty Jobs" and the work of architects, programmers, and hackers building the foundational layers that coders use today is something that every students should come to appreciate.  It just sadly will not happen until they have to dig in and try some of the work themselves.&lt;br /&gt;&lt;br /&gt;[1] I taught a number of courses on introductory programming, component-oriented programming, and enterprise web development in the Computer Science Department at the University of Arizona as an adjunct instructor between 2001 and 2006.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-149595706872582518?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/149595706872582518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=149595706872582518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/149595706872582518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/149595706872582518'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2011/05/dirty-jobs-perspective-on-programming.html' title='Dirty Jobs perspective on programming...'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-2537500060575855829</id><published>2011-03-18T16:53:00.001-07:00</published><updated>2011-03-21T20:55:49.681-07:00</updated><title type='text'>Mindfulness Meditation</title><content type='html'>I'm helping restart the &lt;span style="font-weight: bold;"&gt;Mindfulness Meditation&lt;/span&gt; group at the BIO5 Institute.  Every Tuesday, Wednesday, and Thursday morning from 7:45 to 8:45 am in Keating Building, Room 309.  Please enter anytime between 7:45 and 8:45 am.  Sit for as long or as little as you like.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mindfulness Meditation&lt;/span&gt; is a simple practice of awareness.  The goal?  Remain mentally present.&lt;br /&gt;&lt;br /&gt;Google's "Jolly Good Fellow" Chade-Meng Tan is an engineer for the company and led the effort to introduce Mindfulness Meditation there: "I want to create a world where meditation is treated like exercise for the mind." [&lt;a href="http://www.shambhalasun.com/sunspace/?p=11623"&gt;src&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How to meditate:&lt;/span&gt; Sit on a chair or cushion.  Aim for a posture of dignity.  Put your hands where they are comfortable.  Close your eyes, or face a blank wall with your eyes opens.&lt;br /&gt;&lt;br /&gt;Follow your breathing.  Pay attention to the sensations and cadence of your breathing.  When you find your mind wandering to the matters of the day, simply return attention to your breath without judgment (try to avoid being critical).  You may wish to count breaths (when you reach ten, start over at one).  When you find yourself distracted in thought, counting long forgotten, start over at one.  If you find a thought or group of thoughts causing you to lose focus, note that.  You may wish to think about what you can do about those thoughts to put your mind at rest.&lt;br /&gt;&lt;br /&gt;If concentrating on your breath interferes with your breathing, you may "just sit."  Just sitting involves being present and becoming mentally aware of reality.  You may begin by thinking, "here I am in BIO5, just sitting..." but try to get away from the thoughts and words, just be.  When you forget where you are and begin planning your day or your next vacation, stop and remember where you are.  Practice staying mentally present in the moment.&lt;br /&gt;&lt;br /&gt;You may wish to just start by sitting for 2 to 5 minutes.  The effort of being present should help improve your focus during the day.&lt;br /&gt;&lt;h3&gt;Learning more:&lt;/h3&gt;&lt;h5&gt;Articles&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.shambhalasun.com/sunspace/?p=11623"&gt;Aligning Meditation with Real Life&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.pbs.org/thebuddha/blog/2010/Mar/17/mindfulness-2-minutes-chade-meng-tan/"&gt;"Mindfulness in 2 Minutes"&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h5&gt;Books&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;John Kabat-Zinn. 1994. &lt;i&gt;Wherever You Go. There You Are: Mindfulness Meditation in Everyday Life.&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h5&gt;Videos&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=3nwwKbM_vJc&amp;feature=related"&gt;Mindfulness with Jon Kabat-Zinn&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=rSU8ftmmhmw&amp;amp;feature=channel"&gt;Mindfulness Stress Reduction And Healing&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=KtHFjze9X14&amp;amp;feature=channel"&gt;Stress Relief for the Creative and Constantly Connected&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=Nu5irWStNvA"&gt;Meditation as Medicine: Mindfulness-Based Stress Reduction&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=8XCWP4pODbs&amp;amp;NR=1"&gt;Divide and Conquer: How the Essence of Mindfulness Parallels the Nuts and Bolts of Science&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h5&gt;Local meditation centers&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://tucsonmeditation.org/mambo/"&gt;Tucson Community Meditation Center &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://zendesertsangha.org/"&gt;Zen Desert Sangha&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; Thanks to Mary Paniscus for organizing the original Mindfulness Meditation group at BIO5!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-2537500060575855829?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/2537500060575855829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=2537500060575855829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/2537500060575855829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/2537500060575855829'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2011/03/mindfulness-meditation.html' title='Mindfulness Meditation'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-3699327284313316847</id><published>2010-08-05T18:02:00.000-07:00</published><updated>2010-08-05T18:22:57.078-07:00</updated><title type='text'>"SCIENCE IS RAD" Git Commits</title><content type='html'>So I thought &lt;a href="http://collectiveidea.com/blog/archives/2010/08/03/happy-git-commits/"&gt;this&lt;/a&gt; was a great idea!  But I did not want to just copy the clapping, cheering kids.  I work on a bioinformatics &amp; plant sciences project so I thought I'd come up with something more related to that.  I edited a comedy bit that used to appear on &lt;a href="http://www.abc.net.au/triplej/"&gt;Triple J&lt;/a&gt; (the youth radio station for Australia) called "&lt;a href="http://www.abc.net.au/triplej/tv/comedy/precise_history.htm"&gt;A Precise History of ....&lt;/a&gt;"  &lt;a href="http://en.wikipedia.org/wiki/Sam_Simmons_(comedian)"&gt;Sam Simmons&lt;/a&gt; did the bits for Robbie Buck's afternoon (aussie time) radio show and they're pure genius (IHMO).  &lt;br /&gt;&lt;br /&gt;Thanks Collective Idea!  I smile and am giddy with each commit. &lt;br /&gt;&lt;br /&gt;"&lt;a href="http://www.gigism.com/hey_you_science_face.wav"&gt;SCIENCE IS RAD! HEY YOU SCIENCE FACE!&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;Indeed. &lt;br /&gt;&lt;br /&gt;Disclaimer: this clip is not used with permission from Australian Broadcast Company (ABC) or Triple J.  All rights are reserved to ACB/Triple J.  It is 3.5 seconds and falls under no commercial / fair use.  Its' appearance here is promotion of the Triple J and their On-Air talent.  It will be removed upon request. &lt;br /&gt;&lt;br /&gt;P.S. - I didn't give Robbie a link because he can be lame I do not want to promote him. Sorry mate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-3699327284313316847?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/3699327284313316847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=3699327284313316847' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/3699327284313316847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/3699327284313316847'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2010/08/science-is-rad-git-commits.html' title='&quot;SCIENCE IS RAD&quot; Git Commits'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-300807426024022296</id><published>2010-07-24T17:29:00.000-07:00</published><updated>2010-07-24T18:04:07.352-07:00</updated><title type='text'>Finding the right place to put static JavaScript files in GWT</title><content type='html'>I work on in the UI group for a software team building a large distributed system.  We use Google Web Toolkt (GWT) and Sencha's Ext JS extensions for GWT (&lt;a href="http://www.sencha.com/products/gwt/"&gt;GXT&lt;/a&gt;).  And we've been running into some warnings when building the applications that were quite annoying:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] using GWT jars from project dependencies : 2.0.3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] establishing classpath list (scope = test)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] using GWT jars for specified version 2.0.3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] using GWT jars for specified version 2.0.3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] ---------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO]  T E S T S&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] ---------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] Running org.iplantc.de.client.GwtTestComponentValueTable&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] The development shell servlet received a request for 'tizakie.js' in module 'org.iplantc.de.discoveryenvironment.JUnit.gwt.xml' &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO]    [WARN] Resource not found: tizakie.js; (could a file be missing from the public path or a &amp;lt;servlet&amp;gt; tag misconfigured in module org.iplantc.de.discoveryenvironment.JUnit.gwt.xml ?) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 16.982 sec&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] Results :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[INFO] &lt;/span&gt;&lt;/blockquote&gt;&lt;servlet&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;We're working with GWT 2.0 and the inclusion of static JavaScript resources are changed.  &lt;/servlet&gt;So the odd thing is that the functionality supported by ``&lt;span style="font-family:courier new;"&gt;tizakie.js&lt;/span&gt;`` works fine.  So  when deploying the application, or just running it in dev-mode via the  Firefox plugin, everything works as you might expect.  It seems the crux is that the test JUnit servlet is not finding it.&lt;br /&gt;&lt;br /&gt;I took the hunch and starting searching for the info/warning messages on Google and ended up finding the &lt;a href="http://gist.github.com/489143"&gt;private method&lt;/a&gt; that produces the message in the GWTShellServlet.   The servlet is only used during development (which I believe since the package is com.google.gwt.dev.shell).  The interesting part was the name of the method: &lt;a href="http://gist.github.com/489143"&gt;doGetPublicFile&lt;/a&gt;()&lt;br /&gt;&lt;br /&gt;(I should also mention that we use Maven 2 as build engine so I was looking for the best place to put this file in the Maven directory structure)&lt;br /&gt;&lt;br /&gt;So I tried placing the static file in a number of different places to no avail.  The info/warning messages were still happening.  I thought that if I place the static JavaScript file under org.iplantc.de.discoveryenvironment, like specific in a GwtTestCase, then the development shell might find the file.  After all, you have state a package name as your module name for each test case.&lt;br /&gt;&lt;br /&gt;With the project's gwt.xml file coming under org/iplantc/de, I figured that putting the file there might get it resolved:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;org/iplantc/de/&lt;br /&gt;|-- discoveryenvironment.gwt.xml&lt;br /&gt;`-- ...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;But still no luck.  One of my co-works and colleagues, Evan, stopped by my desk and I mentioned my frustration.  He suggested putting the file in a directory named ``public`` under the base directory structure where the *.gwt.xml file for the project was, like so:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;src/main/resources/&lt;br /&gt;|-- discoveryenvironment.properties&lt;br /&gt;|-- log4j.properties&lt;br /&gt;`-- org&lt;br /&gt;    `-- iplantc&lt;br /&gt;        `-- de&lt;br /&gt;            |-- discoveryenvironment&lt;br /&gt;            `-- public&lt;br /&gt;                `-- tizakie.js&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This finally resolved the info/warning messages.  I had seen in GWT In Action that they had their static JavaScript files under public directories for then ScriptaculousDemo, and I had seen the private method that produces the message.  But I never thought to try this.&lt;br /&gt;&lt;br /&gt;I will admit I should have documented all the places that I tried putting the tizakie.js file so I could produce that now.  I'm looking to see if I really have done this correct.  Or, perhaps, this is a artifact of something related to Maven 2 or just GWT.  But it sure is not the most obvious approach to resolving the info/warning messages.&lt;br /&gt;&lt;br /&gt;If anyone has suggestions on the appropriate way to include static JavaScript files (in a Maven 2 directory structure), please post comments.  I know Maven 2 is not used by GWT development team, but if I know where the static JavaScript file should be in the WAR directory structure - I can figure out in Maven 2 how to make that happen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-300807426024022296?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/300807426024022296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=300807426024022296' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/300807426024022296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/300807426024022296'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2010/07/finding-right-place-to-put-static.html' title='Finding the right place to put static JavaScript files in GWT'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-816397634815479324</id><published>2010-07-19T09:00:00.000-07:00</published><updated>2010-07-19T09:13:42.382-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>Recover lost commits from a Git repository</title><content type='html'>This morning I managed to blast away a colleagues local commits.  We were running into ``non-fast-forward`` errors when pushing and somehow I lost one of the local commits (which I'm still curious how I screwed that up).  Anyway, I use the technique I wrote about almost 3 months ago (to the day!): "&lt;a href="http://gigism.blogspot.com/2010/04/recover-deleted-branch-from-git.html"&gt;Recover a deleted branch from a Git repository&lt;/a&gt;"&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The main difference was I was not after the dangling commit, but the commit just before for it (which would show after the dangling commit in ``&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;git-log&lt;/span&gt;``). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I use that command I borrowed from StackOverflow:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;$&gt; git fsck --full --no-reflogs | grep commit&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then, use ``&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;git log --stat &amp;lt;commit-hash&amp;gt;&lt;/span&gt;`` on the identified hashes and look for the following commit that you're after.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I will 100% admit that this is in the realm of MacGyver - but I didn't want to be responsible for blowing away any of my co-workers code.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-816397634815479324?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/816397634815479324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=816397634815479324' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/816397634815479324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/816397634815479324'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2010/07/recover-lost-commits-from-git.html' title='Recover lost commits from a Git repository'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-9111698061779743523</id><published>2010-06-22T22:53:00.001-07:00</published><updated>2010-06-22T22:58:21.830-07:00</updated><title type='text'>Unearthing old "ideas"</title><content type='html'>So I gave a &lt;a href="http://www.slideshare.net/lenards/loosely-coupled-thoughts-3163457"&gt;talk&lt;/a&gt; to a class of undergrads studying Computer Science at Duke University just this past February.  I had talked with the instructor, a friend &amp;amp; colleague, about doing this for years.  Well, I've been digging around an old laptop and I found my list of "ideas" for the talk:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;capture effort &lt;/li&gt;&lt;li&gt;testing is important &lt;/li&gt;&lt;li&gt;refactoring needs a safety net &lt;/li&gt;&lt;li&gt;strive to improve&lt;/li&gt;&lt;li&gt;you are an agent of change (if things aren't to your liking)&lt;/li&gt;&lt;li&gt;the importance of talking to none-tech people&lt;/li&gt;&lt;li&gt;look for outside influence &lt;/li&gt;&lt;li&gt;allow your hobbies to recharge your career &lt;/li&gt;&lt;/ul&gt;I was glad to see that my list of ideas was not too far from the actual talk I gave. &lt;br /&gt;&lt;br /&gt;Tomorrow night, I need to restructure some slides for a talk I'm giving to an interdisciplinary group studying biology who have backgrounds in computer science, mathematics, and biology.  I'll post the slide to Slideshare as soon as they're complete.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-9111698061779743523?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/9111698061779743523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=9111698061779743523' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/9111698061779743523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/9111698061779743523'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2010/06/unearthing-old-ideas.html' title='Unearthing old &quot;ideas&quot;'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-4102633266477831578</id><published>2010-04-20T09:49:00.000-07:00</published><updated>2010-07-19T09:14:26.122-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>Recover a deleted branch from a Git repository</title><content type='html'>So I thought I would quickly note this since I managed to reach into a Git repo and pull out code that I thought I had foolishly deleted.  I was in a rush during a release two weeks ago and in a fit to clean up the repo I was working in trashed a feature branch for code I was working on.&lt;br /&gt;&lt;br /&gt;My colleague Evan said there was a way to grab the branch since it's still in the .git objects (since I had not done a ``&lt;span style="font-family:courier new;"&gt;git-gc&lt;/span&gt;``).  But the method for that was left as an exercise for me, the reader.&lt;br /&gt;&lt;br /&gt;I used the command suggested by &lt;a href="http://stackoverflow.com/users/119005/iamamac"&gt;Iamamac&lt;/a&gt; on &lt;a href="http://stackoverflow.com/questions/1992364/git-recover-deleted-remote-branch"&gt;Stack Overflow&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So here's what I did:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$&gt; git fsck --full --no-reflogs | grep commit&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This finds the "dangling commits" in the repository.  Again, the commit for the HEAD of the branch is still there - but it's just not listed as a ref/head.   This will get you a list like so:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;dangling commit 0c91cb293..&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;dangling commit 1896a7b7f..&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;dangling commit ec9ac3cd..&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;dangling commit 5c6a8f1af..&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;dangling commit fd729386..&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then just use ``&lt;span style="font-family:courier new;"&gt;git-log&lt;/span&gt;`` w/ some extra verbosity to find the HEAD commit you're looking for:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$&gt; git log --stat &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;5c6a8f1af&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Which gives you output like:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;commit 5c6a8f1af&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Author: lenards &lt;lenards@spam-me-not.org&gt;&lt;/lenards@spam-me-not.org&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Date:   Wed Mar 24 08:56:20 2010 -0700&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Test new version of gwtupload&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; pom.xml |    2 +-&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 1 files changed, 1 insertions(+), 1 deletions(-)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I hope that helps someone out...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(and thanks to Scott Chacon and everyone in the Git community for sharing tutorials, advice, and wisdom)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-4102633266477831578?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/4102633266477831578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=4102633266477831578' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/4102633266477831578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/4102633266477831578'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2010/04/recover-deleted-branch-from-git.html' title='Recover a deleted branch from a Git repository'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-6358453096771300023</id><published>2009-07-30T19:35:00.000-07:00</published><updated>2009-07-30T19:50:16.437-07:00</updated><title type='text'>Finally understanding BigTable/HBase</title><content type='html'>A month or two ago I started evaluating &lt;a href="http://en.wikipedia.org/wiki/Hadoop"&gt;Hadoop&lt;/a&gt;, primarily &lt;a href="http://en.wikipedia.org/wiki/Hadoop#Hadoop_Distributed_File_System"&gt;HDFS&lt;/a&gt;.  That was when I caught up to where people were 2+ years ago.  I knew the Google papers were out, but I didn't pay much attention to them.  Now, I'm back using Hadoop (I'm in the process of creating a development cluster, 4 nodes total - baby steps) and trying to understand the sparse multidimensional map approach to data storage (primarily &lt;a href="http://en.wikipedia.org/wiki/HBase"&gt;HBase&lt;/a&gt; - but it would seem to also apply to &lt;a href="http://en.wikipedia.org/wiki/Bigtable"&gt;BigTable&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Cassandra_%28database%29"&gt;Cassandra&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Dynamo_%28storage_system%29"&gt;Dynamo&lt;/a&gt;, and &lt;a href="http://project-voldemort.com/"&gt;Voldemort&lt;/a&gt;).  I think &lt;a href="http://jimbojw.com/wiki/index.php?title=Understanding_Hbase_and_BigTable"&gt;this&lt;/a&gt; wiki entry from Jim Wilson has put more over the top - I think I actually get it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-6358453096771300023?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/6358453096771300023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=6358453096771300023' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/6358453096771300023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/6358453096771300023'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2009/07/finally-understanding-bigtablehbase.html' title='Finally understanding BigTable/HBase'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-6630766006952178870</id><published>2008-11-13T16:00:00.000-08:00</published><updated>2008-11-13T16:17:29.329-08:00</updated><title type='text'>SVN - you amuse me....</title><content type='html'>&lt;span style="font-family: georgia;"&gt;After getting knee-deep in Git, I've struggled with questions about whether branching &amp;amp; merging with Git is truly better than SVN (well, we know it is because Mr. Torvalds' said so).  My current project is something I had been planning on moving to Git.  However, I didn't think since it's just me (a single developer) that the distributed qualities of Git would be enough to warrant the intellectual burden the next developer would have learning it.  I had always planned on keeping a version of the codebase in SVN (via the bi-directional git-svn application).  But a friend at OOPSLA swayed me to learn at just doing the branching &amp;amp; tagging with SVN.  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;I mean, I haven't experienced the pain of merging w/ SVN firsthand - so why not?  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;Here's one reason why: SVN has zero idea about branches.  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;A branch is a branch to you - but to SVN, it's just a copy operation.  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;How do you know when you branches off of the trunk (or another branch)?  Well, you just look for the last copy operation!  YUP!&lt;/span&gt; &lt;pre class="screen"&gt;&lt;blockquote&gt;&lt;span style="font-family: courier new;"&gt;$ svn log --verbose --stop-on-copy \&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;          http://svn.example.com/repos/calc/branches/my-calc-branch&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;…&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;r341 | user | 2002-11-03 15:27:56 -0600 (Thu, 07 Nov 2002) | 2 lines&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Changed paths:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   A /calc/branches/my-calc-branch (from /calc/trunk:340)&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;So - that's interesting.  Yet, I can sort of accept it (though I feel like an idiot doing so).  The kicker is this.... when you do a merge, "how do you know what you've merge?"  Good question!&lt;br /&gt;&lt;br /&gt;Say you have a long-life feature branch.  You've done some development and merged the changes into the trunk (or mainline).  Now, you're continuing to do development.  How will you know where to merge from? &lt;br /&gt;&lt;br /&gt;Interestingly enough, you don't know - unless you follow the branching/merging "best practice" of including your revision numbers for the branch when committing the merge (I'll let that sink in). &lt;br /&gt;&lt;br /&gt;Now - I believe that you have full history with Git.  So I need to go back now and see if that's true.  But I believe you can even look at the merges with something like gitk and you can see the history.  So there is no looking for the last copy operation or checking commit messages to see what revision to start merging from. &lt;br /&gt;&lt;br /&gt;Oh - I am reading an older version of the SVN book (because we are using an old, out-of-date version of SVN).  Perhaps there is a better way to do it now.  But I just wanted to share my amusement.&lt;br /&gt;&lt;br /&gt;source: http://svnbook.red-bean.com/en/1.2/svn-book.html#svn.branchmerge.commonuses.wholebr&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-6630766006952178870?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/6630766006952178870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=6630766006952178870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/6630766006952178870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/6630766006952178870'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2008/11/svn-you-amuse-me.html' title='SVN - you amuse me....'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-6580234282997488713</id><published>2008-08-24T20:01:00.000-07:00</published><updated>2008-08-24T20:05:03.456-07:00</updated><title type='text'>Interesting String behavior in Groovy</title><content type='html'>I've been writing some &lt;a href="http://groovy.codehaus.org"&gt;Groovy&lt;/a&gt; code in the last week. I did something silly that the Java compiler would have caught and scolding me for doing:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;def body&lt;br /&gt;// ....&lt;br /&gt;body += someContent&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;What happened was my body strings were all prefixed with the character string "null."  Apparently doing a concatenation on a null String causes "null" to be produced.&lt;br /&gt;&lt;br /&gt;I do not claim this to be good or bad - I just think it's interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-6580234282997488713?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/6580234282997488713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=6580234282997488713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/6580234282997488713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/6580234282997488713'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2008/08/interesting-string-behavior-in-groovy.html' title='Interesting String behavior in Groovy'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-5918310715950136043</id><published>2008-08-24T19:52:00.000-07:00</published><updated>2008-08-24T20:01:19.051-07:00</updated><title type='text'>getResourceAsStream() depends on what you're calling it on...</title><content type='html'>In writing some unit tests I ran into something I didn't expect.  I had a .properties file that I was using to state metadata.  In this case, the full path to a file my "Class Unit Test" was creating.&lt;br /&gt;&lt;br /&gt;It seems that calling getResourceAsStream() off of getClass() does not return the resource.  It's unfortunately that the Class class has a getResourceAsStream() method if it's not going to actually work.&lt;br /&gt;&lt;br /&gt;So...&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;InputStream input = getClass().getResourceAsStream("./test.properties")&lt;/span&gt;&lt;/blockquote&gt; returns null.&lt;br /&gt;&lt;br /&gt;If you use ResourceBundle to fetch "test" - it works.&lt;br /&gt;&lt;br /&gt;I thought that was odd.  I made a mention to my friend and he suggested that I need to be asking the ClassLoader to fetch the resource, not the class.&lt;br /&gt;&lt;br /&gt;So...&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;InputStream input = getClass().getClassLoader().getResourceAsStream("./test.properties")&lt;/span&gt;&lt;/blockquote&gt;returns the resource.&lt;br /&gt;&lt;div dir="ltr"&gt;&lt;br /&gt;Now - I am executing this from a GroovyTestCase instance.  I do not know the reason for this.  But either way, it's frustrating.&lt;br /&gt;&lt;br /&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/1175026480841117268-5918310715950136043?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/5918310715950136043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=5918310715950136043' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/5918310715950136043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/5918310715950136043'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2008/08/getresourceasstream-depends-on-what.html' title='getResourceAsStream() depends on what you&apos;re calling it on...'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-6783911698190335960</id><published>2008-08-24T19:24:00.000-07:00</published><updated>2010-07-19T09:14:50.807-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>Install Git/Gitosis on a server (Debian) - Part 2</title><content type='html'>So I ran into some more issues before getting my Git hosting (via Gitosis) all working.&lt;br /&gt;&lt;br /&gt;The first hurdle was getting past an error thrown when attempting to do a `git clone` of the gitosis-admin repository.  The error was being thrown by os.py (remember that gitosis-admin is python based).  The error message looked like this:&lt;br /&gt;&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;File ”/usr/bin/gitosis-serve”, line 7, in ? &lt;br /&gt;sys.exit(   File ”/usr/lib/python2.4/site-packages/gitosis-0.2-py2.4.egg/gitosis/app.py”, line 24, in run     return app.main()&lt;br /&gt;File ”/usr/lib/python2.4/site-packages/gitosis-0.2-py2.4.egg/gitosis/app.py”, line 38, in main     self.handle_args(parser, cfg, options, args)&lt;br /&gt;File ”/usr/lib/python2.4/site-packages/gitosis-0.2-py2.4.egg/gitosis/serve.py”, line 205, in handle_args     os.execvp(‘git-shell’, [‘git-shell’, ‘-c’, newcmd])&lt;br /&gt;File ”/usr/lib/python2.4/os.py”, line 341, in execvp     _execvpe(file, args)   File ”/usr/lib/python2.4/os.py”, line 379, in _execvpe     func(fullname, *argrest)&lt;br /&gt;OSError: [Errno 2] No such file or directory&lt;/blockquote&gt;The root cause of this is that the executable `git-shell` is missing from your install directory (be /usr/bin or /usr/local/bin).  I've done a install locally and all the 140-some executables were places in my install directory (/usr/bin).&lt;br /&gt;&lt;br /&gt;Originally, I just copied `git-shell` into /usr/bin.  That's hack-ish, what I ended up doing was creating a symlink to `git-shell` from where I have git (in my case, /opt/git-1.6.0, with a symlink to it named /opt/git).&lt;br /&gt;&lt;br /&gt;So now we can do our clone of the repository:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt; `git clone git@YOUR_SERVER:gitosis-admin.git`&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;This appears in both tutorials I looked at [&lt;a href="http://www.urbanpuddle.com/articles/2008/07/11/installing-git-on-a-server-ubuntu-or-debian"&gt;urban puddle&lt;/a&gt;] [&lt;a href="http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way/comments/2419#comment-2419"&gt;scie.nti.st&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Now we want to create a new repository.  That was my next hurdle; and you won't need to overcome it if you follow directions.  Notably, the simple directions in either.  Which is that you need to modify the gitosis.conf  (which is Step 6 in the Urban Puddle tutorial and "Creating new repositories" in the scie.nti.st tutorial).&lt;br /&gt;&lt;br /&gt;I attempted to simply do something like initialize a git repository, do some commits, add a remote (origin) to the server, and then push to that remote (origin).&lt;br /&gt;&lt;br /&gt;If you have gone awry - like me - you'll run into the following error:&lt;br /&gt;&lt;br /&gt;&lt;span class="caps"&gt;ERROR&lt;/span&gt;:gitosis.serve.main:Repository read access denied&lt;br /&gt;fatal: The remote end hung up unexpectedly&lt;br /&gt;&lt;br /&gt;If you add the following under [gitosis] in the gitosis.conf:&lt;br /&gt;&lt;br /&gt;loglevel = DEBUG&lt;br /&gt;&lt;br /&gt;You'll get some &lt;a href="http://paste.ubuntu.com/40020/"&gt;helpful debug output&lt;/a&gt;.&lt;br /&gt;&lt;div class="paste"&gt;&lt;pre&gt;&lt;blockquote&gt;lenards@deedee:~/devel/cs453/project$ git push origin master:refs/heads/master&lt;br /&gt;DEBUG:gitosis.serve.main:Got command "git-receive-pack 'cs453-project.git'"&lt;br /&gt;DEBUG:gitosis.access.haveAccess:Access check for 'lenards@deedee' as 'writable' on 'cs453-project.git'...&lt;br /&gt;DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'cs453-project.git', new value 'cs453-project'&lt;br /&gt;DEBUG:gitosis.group.getMembership:found 'lenards@deedee' in 'gitosis-admin'&lt;br /&gt;DEBUG:gitosis.group.getMembership:found 'lenards@deedee' in 'cs453-project'&lt;br /&gt;DEBUG:gitosis.access.haveAccess:Access check for 'lenards@deedee' as 'writeable' on 'cs453-project.git'...&lt;br /&gt;DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'cs453-project.git', new value 'cs453-project'&lt;br /&gt;DEBUG:gitosis.group.getMembership:found 'lenards@deedee' in 'gitosis-admin'&lt;br /&gt;DEBUG:gitosis.group.getMembership:found 'lenards@deedee' in 'cs453-project'&lt;br /&gt;DEBUG:gitosis.access.haveAccess:Access check for 'lenards@deedee' as 'readonly' on 'cs453-project.git'...&lt;br /&gt;DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'cs453-project.git', new value 'cs453-project'&lt;br /&gt;DEBUG:gitosis.group.getMembership:found 'lenards@deedee' in 'gitosis-admin'&lt;br /&gt;DEBUG:gitosis.group.getMembership:found 'lenards@deedee' in 'cs453-project'&lt;br /&gt;ERROR:gitosis.serve.main:Repository read access denied&lt;br /&gt;fatal: The remote end hung up unexpectedly&lt;/blockquote&gt;&lt;/pre&gt;&lt;/div&gt;I missed the step in the directions about adding a new group to the gitosis.conf, which is why when doing your `git push origin master:refs/heads/master` it complains about not have readonly access.  There is *no* group to access, so you don't have writable or readonly access.&lt;br /&gt;&lt;br /&gt;After doing Step 6 from Urban Puddle tutorial - I was able to push my new repository for my compiler project.&lt;br /&gt;&lt;br /&gt;I hope this helps someone.&lt;br /&gt;&lt;br /&gt;Andy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-6783911698190335960?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/6783911698190335960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=6783911698190335960' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/6783911698190335960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/6783911698190335960'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2008/08/install-gitgitosis-on-server-debian.html' title='Install Git/Gitosis on a server (Debian) - Part 2'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-1707884965680123717</id><published>2008-08-21T09:45:00.000-07:00</published><updated>2010-07-19T09:15:05.698-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git debian'/><title type='text'>Installing Git on a server (Debian)</title><content type='html'>&lt;a href="http://www.urbanpuddle.com/articles/2008/07/11/installing-git-on-a-server-ubuntu-or-debian" target="_blank"&gt;http://www.urbanpuddle.com/&lt;wbr&gt;articles/2008/07/11/&lt;wbr&gt;installing-git-on-a-server-&lt;wbr&gt;ubuntu-or-debian&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First off - a thank you to Vincent for pulling all these things together.&lt;br /&gt;&lt;br /&gt;I ran into an issue that seem to be related to the version of the git-core package (I'm running debian etch stable).  The version of git-core is 1.4.4, and apparently they had not introduced `git-init` until 1.5.* - so my calls to `gitosis-init` were erroring out (like this gentlemen's: &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=473908" target="_blank"&gt;http://bugs.debian.org/cgi-&lt;wbr&gt;bin/bugreport.cgi?bug=473908&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;So - I just did an install from source for git-1.6.0 ... there are instructions out there, so I bother pointing to those.&lt;br /&gt;&lt;br /&gt;Thank again! I really did appreciate using this.&lt;br /&gt;&lt;br /&gt;The only thing I'd mention after that is the call to `gitosis-init` looks like this for debian:&lt;br /&gt;&lt;br /&gt;su - git -c gitosis-init &lt; /home/joeuser/.ssh/authorized_keys&lt;br /&gt;&lt;br /&gt;I tried to post this as a comment on Vincent's blog but I kept getting Apache errors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-1707884965680123717?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/1707884965680123717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=1707884965680123717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/1707884965680123717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/1707884965680123717'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2008/08/installing-git-on-server-debian.html' title='Installing Git on a server (Debian)'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-3598048238607015391</id><published>2008-08-14T07:50:00.000-07:00</published><updated>2008-08-14T07:54:49.617-07:00</updated><title type='text'>Late again...</title><content type='html'>I've missed my self-made deadline again.  I had a horrible time trying to get my initial site done with the toolset I use daily (which is depressing, and makes me think about the toolset I use). &lt;br /&gt;&lt;br /&gt;Right now, I'm back to looking at Grails.  It still have issues with getting things to work in Grails.  There is something I'm missing, or it's just not clear that how I approach things is wrong.  But I've decided to invest time in learning more about Grails and Groovy for the time being.&lt;br /&gt;&lt;br /&gt;I've also been learning as much as possible about Git.  I recently gave a talk at the local Java Users Group about Git.  It seems to be definite improvement over Subversion.  And if you're thinking about all those posts ripping on Git's implementation or internal design, being a user at the porcelain I honestly don't care how it's implemented underneath.&lt;br /&gt;&lt;br /&gt;Plugging on ... we'll see if I can post more than every four months.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-3598048238607015391?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/3598048238607015391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=3598048238607015391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/3598048238607015391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/3598048238607015391'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2008/08/late-again.html' title='Late again...'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-9071923861590427477</id><published>2008-04-11T11:52:00.000-07:00</published><updated>2008-04-11T12:00:48.474-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gigism-dev gigism-alpha gigism-beta'/><title type='text'>Beta Release - Deadline June 4, 2008</title><content type='html'>I'm hoping to have a beta release of the gigism site up by June 4, 2008.  The beta will likely have a feature-set of a a central syndication feed (in RSS, with the potential for Atom support) along with a venue listing and some "editor choice" syndication feeds.  I've way behind - if you consider I was hoping to have something in place in October.  I've been rather business with work, consulting, and just attempting to stay fit.  I recently read a book called "&lt;a href="http://www.powells.com/biblio/2-9780465024117-2"&gt;Finding Flow&lt;/a&gt;" - and decided that coding on Gigism was good for my soul, overall.&lt;br /&gt;&lt;br /&gt;I'm gunning for an alpha release in the middle of May.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-9071923861590427477?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/9071923861590427477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=9071923861590427477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/9071923861590427477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/9071923861590427477'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2008/04/beta-release-deadline-june-4-2008.html' title='Beta Release - Deadline June 4, 2008'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-2481900321719952342</id><published>2008-04-11T11:40:00.001-07:00</published><updated>2008-04-11T11:51:52.018-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gigism-dev groovy grails tapestry selenium'/><title type='text'>Gigism Redux</title><content type='html'>So I failed horrible at getting an alpha version of Gigism running with Grails.  It wasn't because of the programming language or web framework (Groovy and Grails, in this case).  It was mainly because I was mentally fried and not in a good spot to be learning a new language and framework when I really had not be exposed to the object relational mapping that I attempting to make use. &lt;br /&gt;&lt;br /&gt;I've spent the last three weeks reading, playing, and coding object relationships with Hibernate now.  I think I understand more of the principles that were at play with GORM (the Groovey Object Relational Mapping API).  But I've decided to change the overall foundation of Gigism and go with something that I'm much more familiar with: Tapestry. &lt;br /&gt;&lt;br /&gt;Well, not just Tapestry.  I'm really attempting to mimic the application setup that I use on a daily basis at my current job (Tapestry with Spring and Hibernate). &lt;br /&gt;&lt;br /&gt;Since making the decision to go down the familiar route, I've managed to get an initial database schema in place along with building a good alpha data-layer with Hibernate (using annotations).  I've got some unit-tests in place, and I'm rather happy with the progress in that area.  I've also bogarted a template/layout for the initial site.  I'm not really a wizard with the ol' HTML/CSS - so having a good, attractive setting point is nice (and it appears that there is no shortage of free layouts on the web - many of which are released under Creative Commons). &lt;br /&gt;&lt;br /&gt;Along with unit-testing my code, I've started to play with Selenium RC to get testing in place for the client interface.  I'm hoping that it will allow me to deliver something a bit more stable (or at least stable early on).  Coming from the .NET side of the development fence, I'm not an avid tester (like many in the Java community).  I guess this is an attempt at coming "test infected."  Oh, and I am looking at using Groovy for my unit-tests.  The initial stuff I have is just regular Java with JUnit - but I would like to use Groovy when coming tests just because of the terseness of the code.  I really do like the language overall, I just found myself in over my head when trying to do a site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-2481900321719952342?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/2481900321719952342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=2481900321719952342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/2481900321719952342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/2481900321719952342'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2008/04/gigism-redux.html' title='Gigism Redux'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-8549510707303349858</id><published>2007-08-04T12:16:00.000-07:00</published><updated>2007-08-04T12:36:22.763-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gigism-dev gigism-idea'/><title type='text'>Gigism... a vision for the quest</title><content type='html'>So you go to that show, that gig, you've been waiting for and before the bands go on you bump into  friend.  They drop the news that your favorite band just rolled through town and you missed it. &lt;br /&gt;&lt;br /&gt;Now that sucks!  You weren't paying attention; or, perhaps, you forgot to go out to the website for each venue in town (say, there's maybe 7+ active venues in Tucson) and scroll through the upcoming shows.  It's a sinking feeling - sure, you'll get over it.  But what if the band breaks upon returning home (like Murder City Devils and At The Drive-in did after a tour together).  Or the band never makes it back to your hometown.  Or the lead singer DO'd and dies.  Or one of the guys kills themselves.  Or that was the last show before they started writing shitty music.  There's a ton of things that can happen to generate intense regret.  And ya, regret is bad - but instead becoming better at dealing with regret I'd rather not have to miss said gigs. &lt;br /&gt;&lt;br /&gt;The above example is caused more often when you're not looking - something cool happens and you miss it.  I've also experienced the Gig-Doppler effect - you see the show coming, but things get business in your life and you hear it after it's already passed you. &lt;br /&gt;&lt;br /&gt;This is why I wanted to do 'gigism.'  The goal?  Create a common, easily consumable master-listing of all shows in town (Tucson).  Now, that's casting a large net!  So let's narrow it a bit - a master-listing of all shows from touring-bands coming to town.&lt;br /&gt;&lt;br /&gt;How do you create such a thing?  Well - find some technology that let's you aggregate data efficiently.  And, in my case, be able to program.&lt;br /&gt;&lt;br /&gt;I got into the idea of aggregating data with feeds (Live Bookmarks, RSS, Atom, whatever you want to call it) after google started their google personalized homepage (which is now going by the lame-name igoogle).  I was in San Francisco staying at my friend Stump's and he had a sweet homepage with all this news and information - right there, and automatically updated via ajax.&lt;br /&gt;&lt;br /&gt;And you have it - gigism... the motto I picked when pitching the idea to my friends was "no gossip, no photos - just gig info."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-8549510707303349858?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/8549510707303349858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=8549510707303349858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/8549510707303349858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/8549510707303349858'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2007/08/gigism-vision-for-quest.html' title='Gigism... a vision for the quest'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1175026480841117268.post-2787052303883800862</id><published>2007-07-30T18:32:00.000-07:00</published><updated>2007-07-30T18:44:23.345-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gigism-dev groovy grails'/><title type='text'>The Holy GRAILS</title><content type='html'>Last year at OOPSLA in Portland I picked up the &lt;a href="http://www.pragmaticprogrammer.com/titles/rails/index.html"&gt;Pragmatic Rails&lt;/a&gt; book.  Sure, I fell in love with the quick ways that I could rough out functionality (check out the weblog in 15 minutes - a &lt;a href="http://www.rubyonrails.org/screencasts"&gt;video of Rails&lt;/a&gt; in action).  But, I was far from a proficient Ruby programmer.  Anyway, I liked the idea - but I didn't want to "move there" until I was a better Ruby programmer. &lt;br /&gt;&lt;br /&gt;Over the weekend, I went to &lt;a href="http://www.nofluffjuststuff.com/"&gt;No Fluff, Just Stuff&lt;/a&gt; in Phoenix and was introduced the &lt;a href="http://groovy.codehaus.org/"&gt;Groovy &lt;/a&gt;programming language (a gateway dynamic programming language was C/C#/Java programmers, like myself).  Even better?  There's &lt;a href="http://grails.codehaus.org/"&gt;Grails&lt;/a&gt; - like Rails, but with Groovy as the programming language (there are some differences, but it's not worth me getting into here).   I actually stayed up until 2am that night playing with Groovy - and dreaming of how much easier doing gigism will be in this paradigm.&lt;br /&gt;&lt;br /&gt;Ah, so what is gigism?  Well, it's a term that I hope gets popular - and something I'll leave to another post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1175026480841117268-2787052303883800862?l=gigism.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gigism.blogspot.com/feeds/2787052303883800862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1175026480841117268&amp;postID=2787052303883800862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/2787052303883800862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1175026480841117268/posts/default/2787052303883800862'/><link rel='alternate' type='text/html' href='http://gigism.blogspot.com/2007/07/holy-grails.html' title='The Holy GRAILS'/><author><name>Andrew</name><uri>http://www.blogger.com/profile/16254226981261945404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_coaq5ip2SsA/SRy_fMNI6uI/AAAAAAAAAAM/kna-VaWJ_Dw/s1600-R/n10136498_7789.jpg'/></author><thr:total>0</thr:total></entry></feed>
