<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>

About me
Versión en español de este Tumblelog
I live in Caracas, Venezuela
Developing web applications with Ruby On Rails at
    has_many :developers. 
Where we developed RubyCorner.com.
 My Tweets follow me on Twitter  A few Pictures
  #flickr_badge_source_txt {padding:0; font: 11px Arial, Helvetica, Sans serif; color:#666666;} #flickr_badge_icon {display:block !important; margin:0 !important; border: 1px solid rgb(0, 0, 0) !important;} #flickr_icon_td {padding:0 5px 0 0 !important;} .flickr_badge_image {text-align:center !important;} .flickr_badge_image img {border: 1px solid black !important;} #flickr_badge_uber_wrapper {width:150px;} #flickr_www {display:block; text-align:center; padding:0 10px 0 10px !important; font: 11px Arial, Helvetica, Sans serif !important; color:#3993ff !important;} #flickr_badge_uber_wrapper a:hover, #flickr_badge_uber_wrapper a:link, #flickr_badge_uber_wrapper a:active, #flickr_badge_uber_wrapper a:visited {text-decoration:none !important; background:inherit !important;color:#3993ff;} #flickr_badge_wrapper {background-color:#ffffff;border: solid 1px #000000} #flickr_badge_source {padding:0 !important; font: 11px Arial, Helvetica, Sans serif !important; color:#666666 !important;} www.flickr.com  Go toAníbal Rojas’ photostream  </description><title>Aníbal Rojas</title><generator>Tumblr (3.0; @en-anibal)</generator><link>http://en.anibal.rojas.com.ve/</link><item><title>Using Git? FUCKING COMMIT YOUR CHANGES! AND FUCKING PUSH YOUR BRANCH!</title><description>&lt;p&gt;&lt;em&gt;Seriously&lt;/em&gt;. Stop reading this post, commit your changes, and push your local branch to &lt;em&gt;whatever&lt;/em&gt; remote you want. &lt;strong&gt;Just. Fucking&lt;/strong&gt;. &lt;strong&gt;Do&lt;/strong&gt;. &lt;strong&gt;it&lt;/strong&gt;. How much time does it took? It was &lt;em&gt;nothing&lt;/em&gt;, right? Thanks, &lt;em&gt;now&lt;/em&gt; I will explain you why.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Repos can get corrupted&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt; is a powerful tool, and very stable. But the truth is that can become become corrupt in some weird ways, not all related to Git. Running `&lt;strong&gt;git fsck&lt;/strong&gt;` is one of those thing that you don&amp;#8217;t want to do, and that in my experience is useless most of the time.&lt;/p&gt;
&lt;p&gt;So you have been hacking for a whole day in your a local branch, of  course you don&amp;#8217;t like the shape of your code, or it is incomplete or you  just forgot about it. Then, by the end of the day, when you run &lt;strong&gt;`git status&lt;/strong&gt;`,  instead of lots of uncommited changes and such you see a lot of weird  error messages. Oh boy, yes, your local repository has gone nuts, and if  you are lucky you will be able to dig into the dozen of changed files  to rescue you precious code.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Also, Shit Happens&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lets suppose Git behaves properly, but again &lt;em&gt;shit happens&lt;/em&gt;,  you hard disk can fail (really that still happens), your motherboard can  break or an idiot can spill his Frappucchino over your laptop. And your  code keeps laying there, in a local branch, never commited, never  pushed to any other repository, below a sticky mess of frozen coffee  that starts melting under your watery eyes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How much have you saved by not committing?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;NOTHING&lt;/em&gt; you moron, when you started learning git the mantra  was &amp;#8220;&lt;em&gt;branches are cheap, branches are cheap, branches are cheap, &amp;#8230;&lt;/em&gt;&amp;#8221;, wasn’t it? so  now you start a branch for more or less anything from new features to  hot fixes in production code.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;#8220;The header needs to be shown in a more intense pink?&lt;/em&gt;&amp;#8221; Branch. &amp;#8220;&lt;em&gt;The API has to be refactored to better suit current needs?&lt;/em&gt;&amp;#8221; Branch. &amp;#8220;&lt;em&gt;Your girlfriend called telling you about her best friend who is going to get married.&lt;/em&gt;&amp;#8221; FUCKING BRANCH DUDE!&lt;/p&gt;
&lt;p&gt;So you became branch-addicted, but why for God sake you think that Torvalds himself will &lt;strong&gt;invoice&lt;/strong&gt; you per commit? &lt;em&gt;Why? Why? Why?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Commits are as cheap and fast as branches are in Git, there is no  need to reserve commits as they were bottles of a rare old wine. You are  saving &lt;em&gt;nothing &lt;/em&gt;by not frequently committing your work, except a few CPU cycles of your brain required to be aware of your code state.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tantric Pushes?!!!! WTF?!!!&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lets suppose not only you branched, but that also you commited as I told you. And  then here is your long lived branch day after day, alone, sad and  isolated in your box. Until some moment, days or weeks later when you  decide that yes, your code can see the light&amp;#8230;&lt;/p&gt;
&lt;p&gt;WHAT THE FUCK ARE YOU TRYING TO DO? Holding back your orgasm for a cosmic experience? C&amp;#8217;mon boy, normal people spend fiften minutes on  duty, those two hours intercourses only happen in porn movies.&lt;/p&gt;
&lt;p&gt;Git is extremely efficient transmitting objects, also Git is  distributed by design. Pushing whatever  you have in your branch to another repository will take seconds most of  the time, stick your finger in your nose meanwhile if you find this time too long.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;But I can&amp;#8217;t commit, this code is not ready&amp;#8230;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;BULLSHIT! Code is never ready, why are you afraid of committing  incomplete code? And pushing it into the public light? Dude you are a  great programmer, but unless you are a &lt;em&gt;true&lt;/em&gt; genius you can&amp;#8217;t just  connect a pipe from your brain to your text editor or IDE. And your code  will be evolving minute after minute, hour after hour, day after day  until it rocks.&lt;/p&gt;
&lt;p&gt;Whether you belong to the &lt;a href="http://www.infoq.com/news/2008/01/iterating-and-incrementing"&gt;Incremental or Iterative School of Thinking&lt;/a&gt;, you will &lt;em&gt;always&lt;/em&gt; be reaching little milestones in the evolution of your code that you  can label with a short, meaningful commit message. Nothing fancy  required, tests doesn&amp;#8217;t have to be green, indentation can be fixed later also.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;But I will feel dirty when I run `git log`&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;it is great you finally you started thinking, OK if you follow my  advice and commit frequently you will end with a LOT of commits which  won&amp;#8217;t be useful to describe the evolution of your code to no one. What  can you do?&lt;/p&gt;
&lt;p&gt;Simple, &lt;strong&gt;squash&lt;/strong&gt; your commits when merging your  branch. Squashing will take all those tiny commits and rewrite them to the last state of your branch. In the &lt;a href="http://Git%20merge%20squash"&gt;365 Git tumblelog&lt;/a&gt; you will find a great explanation about your options for squashing.&lt;/p&gt;
&lt;p&gt;As you can see Git allows you to branch, commit and frequently push your code in a Fast and Furious way. You have no excuses now.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;But is this all about having a backup?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;What&amp;#8217;s wrong with backups?&lt;/em&gt; How frequently is your development box backed up? Is your &lt;em&gt;sandboxes/&lt;/em&gt; folder included in your backups? Nightly? Twice a day?&lt;/p&gt;
&lt;p&gt;I am sure you are brilliant enough to code again all the work of the day or the week again, ever with a better twist. But when was last time you went to the beach? Have you seen yourself in the mirror lately &lt;em&gt;Casper&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No, it is &lt;/strong&gt;&lt;strong&gt;not only about cheap backups&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The point is using Git to empower your programming practices, being able to explore solutions to your problems in a more flexible way and going back on your tracks without problem, radiate information about what you are doing (post commit hooks anybody?) to your stakeholders.&lt;/p&gt;
&lt;p&gt;Maybe I am wrong, for sure I don&amp;#8217;t have all the answers, but I think this can be the starting point of something good. What do you think?&lt;/p&gt;</description><link>http://en.anibal.rojas.com.ve/post/13352206231</link><guid>http://en.anibal.rojas.com.ve/post/13352206231</guid><pubDate>Sat, 26 Nov 2011 11:40:22 -0500</pubDate><category>git</category><category>cms</category><category>commits</category><category>branches</category><category>commit</category><category>branch</category><category>sandboxes</category></item><item><title>The real problem with RDBMS and SQL (NoSQL)</title><description>&lt;p&gt;Well maybe not the real, real problem with Realtional Database Management Systems(RDBMS) if you have scalability, performance and such high in your priority list, but in the end:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The real problem with RDBMS and SQL is that they work so well that you end forgetting everything you learnt in the Data Structures Course from the hands of Aho, Hopcroft and Ullman&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Modeling a problem using NoSQL backend requires not only to unlearn SQL and Normal Forms, but to bring back your knowledge of Data Structures and Big O calculus.&lt;/p&gt;</description><link>http://en.anibal.rojas.com.ve/post/219581452</link><guid>http://en.anibal.rojas.com.ve/post/219581452</guid><pubDate>Wed, 21 Oct 2009 22:06:13 -0400</pubDate><category>nosql</category><category>rdbms</category><category>db</category><category>keyvalue</category><category>key-value</category><category>graph</category><category>database</category><category>databases</category><category>sql</category><category>data</category><category>structures</category></item><item><title>Ward Cunningham talks about the Wiki like disposition used in...</title><description>&lt;iframe width="400" height="242" src="http://www.youtube.com/embed/I_75NoC85TE?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Ward_Cunningham"&gt;Ward Cunningham&lt;/a&gt; talks about the Wiki like disposition used in the &lt;a href="http://www.aboutus.org/"&gt;AboutUs&lt;/a&gt; offices, particulary the moving desks that enable both Solo and &lt;a href="http://en.wikipedia.org/wiki/Pair_programming"&gt;Pair Programming&lt;/a&gt; practices.&lt;a href="http://en.wikipedia.org/wiki/Pair_programming"&gt;&lt;br/&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://en.anibal.rojas.com.ve/post/110984361</link><guid>http://en.anibal.rojas.com.ve/post/110984361</guid><pubDate>Thu, 21 May 2009 10:21:37 -0400</pubDate><category>agile</category><category>ward cunningham</category><category>wiki</category><category>office</category><category>furniture</category></item><item><title>Bespin: extensible Web code editor using HTML 5, from Mozilla Labs</title><description>&lt;a href="https://bespin.mozilla.com/"&gt;Bespin: extensible Web code editor using HTML 5, from Mozilla Labs&lt;/a&gt;</description><link>http://en.anibal.rojas.com.ve/post/110927494</link><guid>http://en.anibal.rojas.com.ve/post/110927494</guid><pubDate>Thu, 21 May 2009 07:10:01 -0400</pubDate></item><item><title>Mobile Barcoder Firefox Add-on</title><description>&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2780"&gt;Mobile Barcoder Firefox Add-on&lt;/a&gt;: &lt;p&gt;&lt;img src="https://s3.amazonaws.com/pikchurimages/pic_qim_l.jpg" align="left" height="194" width="195"/&gt;If you have a phone (smartphone) with a Camera and software supporting &lt;b&gt;Mobile Code&lt;/b&gt; (aka 2D barcodes, QR Codes, Data Matrix, Semacode) scannning you can’t miss this add on for Firefox.&lt;/p&gt;
&lt;p&gt;On the fly it will generate a QR, or Data Matrix code depending on your preferences, for the URL you are visiting, and also generate a code for choosen text or link.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Point and shoot browsing/downloading for your smartphone!&lt;/b&gt;&lt;/p&gt;</description><link>http://en.anibal.rojas.com.ve/post/88160911</link><guid>http://en.anibal.rojas.com.ve/post/88160911</guid><pubDate>Fri, 20 Mar 2009 07:22:00 -0400</pubDate></item><item><title>"If you think about it, proprietary software is the software equivalent of a planned economy led by a..."</title><description>“If you think about it, proprietary software is the software equivalent of a planned economy led by a dictators, whereas open source is all about choice, the market economy and multiple competitive players.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;articleId=9128700"&gt;Sun’s McNealy: Some federal officials see open source as ‘anti-capitalist’&lt;/a&gt; (adressing Obama’s goverment)&lt;/em&gt;</description><link>http://en.anibal.rojas.com.ve/post/82269198</link><guid>http://en.anibal.rojas.com.ve/post/82269198</guid><pubDate>Sat, 28 Feb 2009 09:06:30 -0500</pubDate><category>open source</category><category>mcneally</category><category>sun</category><category>obama</category></item><item><title>"The point of this story, I think, is that you should consider spending less time talking, and more..."</title><description>“&lt;p&gt;The point of this story, I think, is that you should consider spending less time talking, and more time prototyping, especially if you’re not very good at talking or powerpoint. Your code can be a very persuasive argument.&lt;/p&gt;

&lt;p&gt;The other point is that it’s important to make prototyping new ideas, especially bad ideas, as fast and easy as possible.&lt;/p&gt;”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Ex-Gmail now FriendFeed hacker &lt;a href="http://paulbuchheit.blogspot.com/2009/01/communicating-with-code.html"&gt;Paul Buchheit&lt;/a&gt; via &lt;a href="http://fishbowl.pastiche.org/2009/01/23/bad_ideas/"&gt;The Fishbowl&lt;/a&gt;&lt;/em&gt;</description><link>http://en.anibal.rojas.com.ve/post/80497818</link><guid>http://en.anibal.rojas.com.ve/post/80497818</guid><pubDate>Sun, 22 Feb 2009 11:38:00 -0500</pubDate></item></channel></rss>

