<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-4853594540365965041</atom:id><lastBuildDate>Fri, 01 Nov 2024 10:33:15 +0000</lastBuildDate><category>agile</category><category>web</category><category>tdd</category><category>programming</category><category>acceptance testing</category><category>requirements</category><category>unit testing</category><category>continuous integration</category><category>deployment</category><category>S+S</category><category>Web Client Software Factory</category><category>about me</category><category>blogs</category><category>books</category><category>code generation</category><category>mac</category><title>it&#39;s about great code</title><description>&quot;enjoying life while appreciating work&quot; - Bob Hartman</description><link>http://great-code.blogspot.com/</link><managingEditor>noreply@blogger.com (Oscar Centeno)</managingEditor><generator>Blogger</generator><openSearch:totalResults>47</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-7302108243777838784</guid><pubDate>Sun, 20 Dec 2009 01:31:00 +0000</pubDate><atom:updated>2009-12-19T20:12:24.645-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">programming</category><title>How concerned are you about Good Code?</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.health-safety-signs.uk.com/productimages/Wash-your-Hands-sign.gif&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 165px; height: 220px;&quot; src=&quot;http://www.health-safety-signs.uk.com/productimages/Wash-your-Hands-sign.gif&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;I&#39;m starting to read &lt;a href=&quot;http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882&quot;&gt;Clean Code&lt;/a&gt; by Robert Martin. *&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Honestly, it makes me realize how unprofessional can we developers be regarding our Code. The book starts by stating that Code is even more important than meeting a deadline or documenting our requirements. Bad code can make your development team reach productivity zero!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One phrase I really liked compares our attitude toward coding practices with hand washing and doctors:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&quot;When hand-washing was first recommended to physicians by Ignaz Semelweis in 1847, it was rejected on the basis that doctors were too busy and wouldn&#39;t have time to wash their hands between patient visits.&quot; (chapter 1)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How professional are you acting as a developer on your daily activities? For example, lets say that &quot;washing hands&quot; while coding is:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- unit test your code, and automate those tests.&lt;/div&gt;&lt;div&gt;- code on a readable way&lt;/div&gt;&lt;div&gt;- make sure your code can be understood by any other peer, not just a genius like you :-)&lt;/div&gt;&lt;div&gt;- functional test your code on your developer machine.&lt;/div&gt;&lt;div&gt;- check if you are adhering to architectural and coding guidelines.&lt;/div&gt;&lt;div&gt;- refactor so that you minimize duplication and reduce coupling.&lt;/div&gt;&lt;div&gt;- ask humbly for help to other developers&lt;/div&gt;&lt;div&gt;- tell the truth, always.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So... are you &quot;washing your hands&quot;?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Many of us tend to craft bad code for meeting deadlines, but  the truth is that making messy code slows us down. Bob Martin says (and I concur) that &quot;the only way to meet a deadline - the only way to go fast - is to keep the code as clean as possible at all times&quot;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This book seems like fun!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;* You can start reading a &lt;span style=&quot;font-weight:bold;&quot;&gt;free&lt;/span&gt; &lt;a href=&quot;http://www.amazon.com/Clean-Code-Handbook-Craftsmanship-ebook/dp/B001GSTOAM/ref=kinw_dp_ke?ie=UTF8&amp;amp;m=AG56TWVU5XWC2&quot;&gt;Sample of &quot;Clean Code&quot; with Amazon Kindle for PC or iPhone&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks to &lt;a href=&quot;http://www.implementingscrum.com/&quot;&gt;Mike Vizdos&lt;/a&gt; for the recommendation!&lt;/div&gt;</description><link>http://great-code.blogspot.com/2009/12/how-concerned-are-you-about-good-code.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-1367918453195390888</guid><pubDate>Thu, 22 Oct 2009 17:16:00 +0000</pubDate><atom:updated>2009-10-22T11:23:29.241-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">web</category><title>Hey, a new thing on youtube! Google Chrome Themes</title><description>I just read this post from Google: &lt;a href=&quot;http://feedproxy.google.com/~r/blogspot/MKuf/~3/ceiS4dwtdVw/art-meets-engineering-with-google.html&quot;&gt;Art meets engineering with Google Chrome Artist Themes&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It drives you to &lt;a href=&quot;http://www.youtube.com/googlechromethemes&quot;&gt;http://www.youtube.com/googlechromethemes&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It&#39;s not a usual YouTube channel. Check the 30 sec video and watch a nice surprise :-) Totally unexpected... cool.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.youtube.com/googlechromethemes&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqylxVzHWfvKDuevsMMZVrePrQRGrOlDhe2xKnD01lwqUEftZbcwsZJ-Erlrg_0fDaXi6b_8_xOzevBir05w9IcwAzoLTg-sDwwNWrWAj8zcE3Vlgod-nTribBvlE5TkQyIxZeYSjkFxat/s400/GoogleChromeThemes-YouTube.png&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 206px; &quot; /&gt;&lt;/a&gt;&lt;/div&gt;</description><link>http://great-code.blogspot.com/2009/10/hey-new-thing-on-youtube-google-chrome.html</link><author>noreply@blogger.com (Oscar Centeno)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqylxVzHWfvKDuevsMMZVrePrQRGrOlDhe2xKnD01lwqUEftZbcwsZJ-Erlrg_0fDaXi6b_8_xOzevBir05w9IcwAzoLTg-sDwwNWrWAj8zcE3Vlgod-nTribBvlE5TkQyIxZeYSjkFxat/s72-c/GoogleChromeThemes-YouTube.png" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-668979600644818146</guid><pubDate>Sun, 18 Oct 2009 02:47:00 +0000</pubDate><atom:updated>2009-10-17T21:06:37.436-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">web</category><title>Your own Harddrive in the Cloud</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://www.getdropbox.com/static/1255762801/images/logo.png&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 231px; height: 60px;&quot; src=&quot;https://www.getdropbox.com/static/1255762801/images/logo.png&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Checkout &lt;a href=&quot;https://www.getdropbox.com/referrals/NTI1NTQ5NjY5&quot;&gt;DropBox&lt;/a&gt;. &lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It gives you &lt;b&gt;free&lt;/b&gt; 2GB of online storage always in sync with a DropBox folder on all your PCs or Macs. You can even share folders online with other people.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you subscribe through &lt;a href=&quot;https://www.getdropbox.com/referrals/NTI1NTQ5NjY5&quot;&gt;this link&lt;/a&gt;, we both would get 250MB extra for free!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;DropBox is not an Online Backup solution. For that, I use &lt;a href=&quot;http://www.mozy.com/&quot;&gt;Mozy&lt;/a&gt;, but lately it feels slow and backup uploadtime is really important; so I&#39;m giving a chance to &lt;a href=&quot;http://www.idrive.com/&quot;&gt;iDrive&lt;/a&gt;. Its faster and has better UI. And it allows me to sync my two Macs to a single account.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I ask you: Is your PC or Mac backup securely stored on a place outside your home? A local USB Disk is not enough.&lt;/div&gt;&lt;/div&gt;</description><link>http://great-code.blogspot.com/2009/10/your-own-harddrive-in-cloud.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-9120342125424237547</guid><pubDate>Fri, 16 Oct 2009 17:34:00 +0000</pubDate><atom:updated>2009-10-16T11:48:26.840-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">tdd</category><title>Our biggest defect</title><description>In &lt;a href=&quot;http://gojko.net/2009/10/16/mary-poppendieck-test-driven-development-redefined/&quot; rel=&quot;bookmark&quot;&gt;Mary Poppendieck: test driven development redefined&lt;/a&gt; Gojko Adzic shares Mary&#39;s insights about what Test Driven Delopment is. Please read it, its a short post. He also shares a quote from Mary:&lt;div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span class=&quot;Apple-style-span&quot;   style=&quot;  color: rgb(51, 51, 51); line-height: 21px; font-family:Verdana, Tahoma, Arial, serif;font-size:12px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;   style=&quot;  color: rgb(51, 51, 51); line-height: 21px; font-family:Verdana, Tahoma, Arial, serif;font-size:12px;&quot;&gt;“the biggest defect we have now [in software development] is tolerating defects”&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;Currently in my workplace, we have some unit testing in place but there are many defects found during our process. I fully agree with Mary&#39;s appreciation, &lt;a href=&quot;http://blog.agilebuddy.com/2009/10/the-7-software-development-wastes-lean-series-part-7-defects.html&quot;&gt;defects are a waste in our process&lt;/a&gt; and each defect should be a learning opportunity for killig the root cause, so it will never happen again.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hey, really, if you find the same defect over and over again in your systems, obviously you need to do things differently! IMO, TDD offers a great base for us to use tests for automating such learning (documenting defects is not enough).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Recommended Reading: &lt;a href=&quot;http://www.blogger.com/The%207%20Software%20Development%20Wastes%20-%20Lean%20series%20Part%207%20-%20Defects&quot;&gt;The 7 Software Development Wastes - Defects&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://great-code.blogspot.com/2009/10/our-biggest-defect.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-3265536244306966513</guid><pubDate>Sun, 27 Sep 2009 05:32:00 +0000</pubDate><atom:updated>2009-09-26T23:33:21.302-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">programming</category><title>Moserware: A Stick Figure Guide to the Advanced Encryption Standard (AES)</title><description>Maybe too geek, but AES Encryption is a cool thing we all developers should have a notion of. Enjoy the comics!&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.moserware.com/2009/09/stick-figure-guide-to-advanced.html&quot;&gt;Moserware: A Stick Figure Guide to the Advanced Encryption Standard (AES)&lt;/a&gt;</description><link>http://great-code.blogspot.com/2009/09/moserware-stick-figure-guide-to.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-1161476336394870090</guid><pubDate>Tue, 01 Sep 2009 21:35:00 +0000</pubDate><atom:updated>2009-09-26T14:51:27.405-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">deployment</category><title>How to: Install SQL Server 2008 SP1 from the Command Prompt</title><description>Hi,&lt;br /&gt;I just wanted to share how to install SQL Server 2008 Service Pack 1 from the command prompt.&lt;br /&gt;&lt;br /&gt;This is a great guideline on &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms144259.aspx&quot;&gt;How to: Install SQL Server 2008 from the Command Prompt&lt;/a&gt;. I was just missing the SP1 part.&lt;br /&gt;&lt;br /&gt;So, you must download the SP1 installer from &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19&amp;amp;displaylang=en&quot;&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19&amp;amp;displaylang=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then, unzip its contents.&lt;br /&gt;&lt;br /&gt;Then, use the following command:&lt;br /&gt;&lt;blockquote&gt;setup.exe /QS /ACTION=Patch /AllInstances /IndicateProgress &gt;&gt; log-sql2008-sp1.txt&lt;/blockquote&gt;&lt;br /&gt;The &quot;&gt;&gt; log-sql2008-sp1.txt&quot; will give you a detailed installation log, just in case...&lt;br /&gt;&lt;br /&gt;You&#39;ve been upgraded to SP1. Hope this helps someone!</description><link>http://great-code.blogspot.com/2009/09/how-to-install-sql-server-2008-sp1-from.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-2506576815211675150</guid><pubDate>Wed, 26 Aug 2009 17:57:00 +0000</pubDate><atom:updated>2009-08-26T11:57:00.353-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">programming</category><title>The Coding Architect vs the Astronaut one</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.freewebs.com/salterspace/astronaut.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 100%;&quot; src=&quot;http://www.freewebs.com/salterspace/astronaut.gif&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;I just read a post from &lt;a href=&quot;http://www.sneal.net/&quot;&gt;Shawn Neal&lt;/a&gt; about the difference between a coding architect and a non coding architect (NCA). Read it on &lt;a href=&quot;http://www.sneal.net/blog/2009/08/09/IfICallYouASoftwareArchitectItsAnInsult.aspx&quot;&gt;If I call you a Software Architect, its an insult&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Basically he talks about the &quot;architect&quot; that doesn&#39;t code, hes call him an &quot;astronaut architect&quot;. He lives too far from the ground and adds no value to the software itself, and only produces Powerpoints and fancy words. Its interesting, and please &quot;no pun intended&quot;, really. If you are a NCA, maybe you may wanna check the article so you can examine your role.&lt;br /&gt;&lt;br /&gt;IMHO, if you are a technical lead (or a XP coach), you must not leave the sofware coding entirely. Yes, you may think in how to improve your development process and other high level stuff, but I think its important to code. On my daily job, I dont usually code as my daily tasks, but I&#39;m always reading code from others and staying up to date on the technology for improving the way we do things. So, I speaking to myself too: If the tech lead stops programming, he loses the contact with the &quot;real wold&quot; and that is not good.&lt;br /&gt;&lt;br /&gt;So, I dont want to be an astronaut, I want to enjoy making useful software and helping others enjoy it too... And you? Do you like writing software?&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt; &lt;/span&gt;</description><link>http://great-code.blogspot.com/2009/08/coding-architect-vs-astronaut-one.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-6996611325334010872</guid><pubDate>Tue, 25 Aug 2009 04:33:00 +0000</pubDate><atom:updated>2009-08-24T22:37:14.987-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">agile</category><title>Is Agile more work? Brief agile explanation</title><description>&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;Hi&lt;/span&gt;, I &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;just&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;wanted&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;share&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;an&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;article&lt;/span&gt; I &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;just&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;read&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;Robert&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;Martin&lt;/span&gt;. &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;It&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_13&quot;&gt;explains&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_14&quot;&gt;how&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_15&quot;&gt;does&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_16&quot;&gt;an&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_17&quot;&gt;agile&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_18&quot;&gt;team&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_19&quot;&gt;working&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_20&quot;&gt;looks&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_21&quot;&gt;like&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_22&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_23&quot;&gt;how&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_24&quot;&gt;traditional&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_25&quot;&gt;pains&lt;/span&gt; (&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_26&quot;&gt;integration&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_27&quot;&gt;hell&lt;/span&gt;, &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_28&quot;&gt;bugs&lt;/span&gt;, &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_29&quot;&gt;messy&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_30&quot;&gt;code&lt;/span&gt;, etc) are &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_31&quot;&gt;avoided&lt;/span&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://butunclebob.com/ArticleS.TimOttinger.MoreWork&quot;&gt;http://butunclebob.com/ArticleS.TimOttinger.MoreWork&lt;/a&gt;&lt;/div&gt;</description><link>http://great-code.blogspot.com/2009/08/is-agilr-more-work-brief-agile.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-5370570642705056128</guid><pubDate>Thu, 20 Aug 2009 14:00:00 +0000</pubDate><atom:updated>2009-08-20T08:00:02.091-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Web Client Software Factory</category><title>SINPE and the Web Client Software Factory</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVPlqU-ldCkLCS5NJSCbPzM-3BLRY7G2QdOAWCK2z9J5cGeaesmGL-bBf81GIbpN7ZHspE1FPeKUgdJodrnl-VJL-T3NZsLHTOsI__yBd2569QeG-ggkdbLZecLx2DceWnMBcni8MhwXI/s1600-h/sinpe.png&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 128px; height: 76px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVPlqU-ldCkLCS5NJSCbPzM-3BLRY7G2QdOAWCK2z9J5cGeaesmGL-bBf81GIbpN7ZHspE1FPeKUgdJodrnl-VJL-T3NZsLHTOsI__yBd2569QeG-ggkdbLZecLx2DceWnMBcni8MhwXI/s200/sinpe.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5367835415619546658&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;A few days ago, I read that &lt;a href=&quot;http://websf.codeplex.com/Thread/View.aspx?ThreadId=41403&quot;&gt;the Microsoft Patterns and Practices (PnP) group is working on a new release&lt;/a&gt; for the &lt;a href=&quot;http://websf.codeplex.com/&quot;&gt;Web Client Software Factory (WCSF&lt;/a&gt;). As some of you know, I work on Central Bank of Costa Rica in the development of the National Payments System (SINPE). We are using the WCSF and I wrote a post for the PnP group to know that we appreciate their work and are interested in knowing about their new releases.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I tried to explain a little bit of how we use the WCSF. The post is on &lt;a href=&quot;http://websf.codeplex.com/Thread/View.aspx?ThreadId=41403&quot;&gt;http://websf.codeplex.com/Thread/View.aspx?ThreadId=41403&lt;/a&gt;, and if you want to read it, it says:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;blockquote&gt;Hi. I read you are building a list of customers using WCSF. Well, I&#39;m writing on behalf of the National Payments System (SINPE) of Costa Rica (Central America).This system is developed by the Central Bank of Costa Rica (&lt;a href=&quot;http://www.bccr.fi.c/&quot;&gt;http://www.bccr.fi.c&lt;/a&gt;r). SINPE offers more than 40 applications (services) and has more than 1500 users, being one of the most important systems of our country.&lt;br /&gt;Currently, SINPE is a Windows Client Application that uses .NET Remoting for client-server communication, but we are developing a number of new finantial services for a new web portal built using the WCSF. This web portal will offer several new finantial services for the people of Costa Rica. Each service is built as a module in the WCSF and operates under a common Framework using EntLib 4. &lt;/blockquote&gt;&lt;blockquote&gt;This new web portal will be publicly accesible thought the Internet (&lt;a href=&quot;http://www.centraldirecto.fi.cr/&quot;&gt;http://www.centraldirecto.fi.cr&lt;/a&gt;), and we are also building a portal for finantial institutions in Costa Rica that will operate on our extranet.These composite websites are planned to be released on late September, 2009.&lt;/blockquote&gt;&lt;blockquote&gt;As you can see, we use the WCSF extensively and are very interested in knowing more about the roadmap of the WCSF, specially on using EntLib 5.&lt;/blockquote&gt;&lt;blockquote&gt;On my personal behalf, I&#39;d like to see the next features on the new release of WCSF:&lt;/blockquote&gt;&lt;blockquote&gt;- Integration of ASP.NET MVC&lt;/blockquote&gt;&lt;blockquote&gt;- Using of Unity for Dependency Injection&lt;/blockquote&gt;&lt;blockquote&gt;- Integration with EntLib 5&lt;/blockquote&gt;Thanks for your work, PnP team!&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://great-code.blogspot.com/2009/08/sinpe-and-web-client-software-factory.html</link><author>noreply@blogger.com (Oscar Centeno)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVPlqU-ldCkLCS5NJSCbPzM-3BLRY7G2QdOAWCK2z9J5cGeaesmGL-bBf81GIbpN7ZHspE1FPeKUgdJodrnl-VJL-T3NZsLHTOsI__yBd2569QeG-ggkdbLZecLx2DceWnMBcni8MhwXI/s72-c/sinpe.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-6382241545290735178</guid><pubDate>Tue, 18 Aug 2009 20:35:00 +0000</pubDate><atom:updated>2009-08-18T14:35:00.326-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">deployment</category><title>How to perform an unattended install of Visual Studio 2008</title><description>This file explains all about how to perform an unattended install of Visual Studio 2008&lt;br /&gt;&lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkID=101063&quot;&gt;http://go.microsoft.com/fwlink/?LinkID=101063&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Want a summary? This is my 3 step guide. Hope it helps!&lt;br /&gt;&lt;br /&gt;1. Create a INI file that contains the configuration you desire with this command:&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;[VISUAL STUDIO SETUP FOLDER]\setup\Setup.exe /createunattend [PATH TO INI FILE TO BE CREATED]&lt;/blockquote&gt;Run the setup UI and at the end you&#39;ll get a &quot;Save settings button&quot;.&lt;br /&gt;&lt;br /&gt;2. Then, modify the INI FILE this way:&lt;br /&gt;&lt;blockquote&gt;Locate and remove &quot;&lt;span class=&quot;code&quot;&gt;gfn_mid windows installer 3.1&lt;/span&gt;&quot;  lines in &lt;span class=&quot;code&quot;&gt;[PreInstallOrder]&lt;/span&gt;,     &lt;span class=&quot;code&quot;&gt;[InstallOrder]&lt;/span&gt;,  and &lt;span class=&quot;code&quot;&gt;[PostInstallOrder]&lt;/span&gt; sections of the file.&lt;br /&gt;&lt;/blockquote&gt;&lt;path to=&quot;&quot; vs2008=&quot;&quot; file=&quot;&quot;&gt;3. Run the unattended installation:&lt;br /&gt;&lt;/path&gt;&lt;blockquote&gt;&lt;path to=&quot;&quot; vs2008=&quot;&quot; file=&quot;&quot;&gt;[VISUAL STUDIO SETUP FORLDER]\setup\Setup.exe /unattendfile &lt;/path&gt;[PATH TO INI FILE]&lt;/blockquote&gt;Also, &lt;path to=&quot;&quot; vs2008=&quot;&quot; file=&quot;&quot;&gt;&lt;path to=&quot;&quot; vs2008=&quot;&quot; file=&quot;&quot;&gt;important to know:&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Visual Studio Log File Locations&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The following log files are generated during Visual Studio 2008 setup:&lt;br /&gt;&lt;br /&gt; * dd_error_&lt;vs_product&gt;_90.txt&lt;br /&gt; * dd_install_&lt;vs_product&gt;_90.txt&lt;br /&gt; * VSMsiLog****.txt (where * is a randomly-generated suffix)&lt;br /&gt;&lt;br /&gt;During Visual Studio setup , the log files are located in the %temp% directory. For example:&lt;br /&gt;&lt;br /&gt; C:\Documents and Settings\[User Name]\Local Settings\Temp&lt;br /&gt;&lt;br /&gt;After Visual Studio installation , the log files are located in the Logs directory in the path that Visual Studio is installed. For example:&lt;br /&gt;&lt;br /&gt; C:\Program Files\Microsoft Visual Studio 9\[Product Name]\Logs&lt;br /&gt;&lt;br /&gt;After a Visual Studio failed installation or removal, the log files are left in the %temp% directory.&lt;/vs_product&gt;&lt;/vs_product&gt;&lt;/blockquote&gt;&lt;vs_product&gt;&lt;vs_product&gt;&lt;br /&gt;&lt;/vs_product&gt;&lt;/vs_product&gt;&lt;/path&gt;&lt;/path&gt;</description><link>http://great-code.blogspot.com/2009/08/how-to-perform-unattended-install-of.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-4891041313660153269</guid><pubDate>Sun, 16 Aug 2009 20:07:00 +0000</pubDate><atom:updated>2009-08-16T14:07:00.437-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">tdd</category><category domain="http://www.blogger.com/atom/ns#">unit testing</category><title>Oh no, a long method... again...</title><description>A few days ago, a fellow coworker asked me to help her in fixing some &quot;legacy unit tests&quot;. I&#39;ll explain why I call them &quot;legacy&quot;, eventhough the code they test is relatively new.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The first test method &quot;TestMethodX&quot; tested MethodX that is located on a Presenter class (we use the &lt;a href=&quot;http://en.wikipedia.org/wiki/Model-view-presenter&quot;&gt;Model-view-presenter&lt;/a&gt; pattern). We ran it and failed. Ok, lets try to fix it:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Following good design principles on the ModelViewPresenter pattern, your method should have just &lt;a href=&quot;http://www.noctovis.net/blog/index.php/2009/01/15/design-principles/&quot;&gt;one responsibility&lt;/a&gt; so it has only one reason to change. TestMethodX was long, had a lot of data initialization and used Mock classes in a very confusing way. There were lots of repeated statements and wasn&#39;t self documented (or had any code comments whatsoever). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. On an Object Programming style, you should assign responsabilities to different objects instead of having a large procedural method. The way, your design is loosely coupled and highly cohesive. That&#39;s a good thing. But MethodX  was very long. It used the View class on strange ways and had lots of ifs, whiles and calls to other private methods. When you try to test such a method, I assure you you&#39;ll have a hard time understanding it. It&#39;s not fun. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Quoting &lt;a href=&quot;http://www.amazon.com/Venkat-Subramaniam/e/B001JOS4R2/ref=ntt_dp_epwbk_T1_0&quot;&gt;Venkat Subramaniam&lt;/a&gt; from &lt;a href=&quot;http://www.agiledeveloper.com/blog/PermaLink.aspx?guid=8a745e85-2a34-4d9c-8c25-ca371530e281&quot;&gt;Agile Developer&lt;/a&gt;:&lt;/div&gt;&lt;br /&gt;&lt;blockquote&gt;Long methods are evil on several grounds:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;They&#39;re hard to understand&lt;/li&gt;&lt;li&gt;They&#39;re hard to change&lt;/li&gt;&lt;li&gt;They&#39;re hard to reuse&lt;/li&gt;&lt;li&gt;They&#39;re hard to test&lt;/li&gt;&lt;li&gt;They have low cohesion&lt;/li&gt;&lt;li&gt;They may have high coupling&lt;/li&gt;&lt;li&gt;They ten to be overly complex&lt;/li&gt;&lt;/ul&gt;Often programmers ask, how &quot;long&quot; is a long method? A method is too long if&lt;br /&gt;&lt;ul&gt;&lt;li&gt;you have to scroll down to look at the complete method&lt;/li&gt;&lt;li&gt;it takes several minutes to understand&lt;/li&gt;&lt;li&gt;you can&#39;t easily write an automated test for it&lt;/li&gt;&lt;li&gt;you can&#39;t state the one prominent purpose for the method&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;div&gt;3. The method wasn&#39;t developed on a TDD style for sure. TDD leads to simple design and promotes clear cohesive code.  So, the programmer that did the tests, obviuously did them afterwards and just as a formalism. The final result was some test code that didn&#39;t add any value to the development process and to the product itself. Honestly, the original developer wasted his time doing that tests.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After reading the unit test and the tested code, we had two options:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. To make the unit test pass and have it constantly verifying a confusing designed class.&lt;/div&gt;&lt;div&gt;2. To delete the unit test and just face the truth that the tested method should be redesigned.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At the end, we decided to delete the unit test cause its existence added no value at all. I&#39;d really like to undeline the concept that &lt;b&gt;Unit tests are a strong resource for helping in your design&lt;/b&gt;. The enfasis shouldn&#39;t be on &lt;b&gt;Test&lt;/b&gt;, but on &lt;b&gt;Design&lt;/b&gt;. They are not just a formalism, they are useful and the final result is great code. That&#39;s what we are talking about. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, if you are a developer, please give it a try to TDD, write code in responde to a unit test. Test first, test early. Make small methods and write human readable code. We, the rest of the world, would really apreciate it! :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Recommended reading&lt;/b&gt;: &lt;a href=&quot;http://www.agiledeveloper.com/blog/PermaLink.aspx?guid=8a745e85-2a34-4d9c-8c25-ca371530e281&quot;&gt;How to convince your fellow developer to write short methods?&lt;/a&gt;&lt;/div&gt;</description><link>http://great-code.blogspot.com/2009/08/oh-no-long-method-again.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-5280982364099868223</guid><pubDate>Thu, 13 Aug 2009 04:40:00 +0000</pubDate><atom:updated>2009-08-12T22:40:01.075-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">tdd</category><category domain="http://www.blogger.com/atom/ns#">unit testing</category><title>Stop writing bugs...</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://infosecurity.us/images/BugsLifeWallpaper800.jpg&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 480px;&quot; src=&quot;http://infosecurity.us/images/BugsLifeWallpaper800.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;div&gt;I read somewhere that the best way to solve bugs in our software is to avoid introducing them in the first place.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Too obvious?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, if you think about it, the one responsible for writing a bug is the programmer itself. Software doesn&#39;t breed bugs by itself. Humans put them there, and humans suffer the consequences: ugly code, broken builds, unhappy users, stressed programmers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, IMHO, the best way for avoiding bugs is to do &lt;a href=&quot;http://en.wikipedia.org/wiki/Test-driven_development&quot;&gt;TDD&lt;/a&gt;... In Test Driven Development, you write software according to a specific automated requeriment (unit test) and nothing more. Your design becomes more cohesive, simple and mantainable. I love automation, so I&#39;ve always liked the idea of having code verifying code. I remember the first time I used JUnit (2000? maybe). Wow, the simple example of automating the tests of a calculator java class made me realize that there was more to writing software than just compiling and nice screens.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;TDD is about automated requirements, good design, cool automation and fewer bugs. If you like the idea, maybe you can benefit from &lt;a href=&quot;http://www.makinggoodsoftware.com/2009/08/05/how-to-write-good-tests/&quot;&gt;How to write good tests. Top 5 considerations to build software without defects.&lt;/a&gt; Oh! And if you can, please read James Shore &lt;a href=&quot;http://jamesshore.com/Agile-Book/&quot;&gt;The Art of Agile Development&lt;/a&gt;. Its really good in showing the big picture of what software development is about and how eXtreme Programming can help.&lt;/div&gt;</description><link>http://great-code.blogspot.com/2009/08/stop-writing-bugs.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-3793852531119206719</guid><pubDate>Sat, 08 Aug 2009 16:00:00 +0000</pubDate><atom:updated>2009-08-08T14:06:52.525-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">programming</category><title>Why do we still do it the waterwall way?</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.hickerphoto.com/data/media/65/waterfall.jpg&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 150px; &quot; src=&quot;http://www.hickerphoto.com/data/media/65/waterfall.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Everybody knows that the &lt;a href=&quot;http://en.wikipedia.org/wiki/Waterfall_model&quot;&gt;waterfall&lt;/a&gt; way of developing software is very risky. You spend a lot of time writing requierements documents, and then a lot of time programming, and then you get a lot of software to a testing phase... and then you show a lot of software to your users...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In many cases, that leads to a lot of misunderstandings on the requiremetns documents, a lot of bugs in your software and unsattisfied users &#39;cause they got something they didn&#39;t ask for.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I just want to ask myself and maybe make you think about it. Maybe it works for you! Maybe not, and your current stress tells you that. Alberto Gutierrez says &lt;a href=&quot;http://www.makinggoodsoftware.com/2009/07/23/software-development-engineering-or-craftmanship/&quot;&gt;on this post&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;Waterfall only works if you follow all of  its steps and if you don’t make any change to the specifications when you start coding, when a waterfall project fails, most of the times is not because waterfall is wrong but because waterfall doesn’t adapt to the type of software they want to build, Waterfall doesn’t work with software that evolves while it’s been built.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;Maybe you only develop this type of projects: everything is sequential and there&#39;s never surprises on the way.  Most of us don&#39;t. So, maybe you&#39;ll like to read a little more and examine how are you developing software... as an engineering process or as a craftmanship? Check &lt;a href=&quot;http://www.makinggoodsoftware.com/2009/07/23/software-development-engineering-or-craftmanship/&quot;&gt;http://www.makinggoodsoftware.com/2009/07/23/software-development-engineering-or-craftmanship/&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just one final thought: &quot;Waterfall&quot; is called that way because rivers never flow backwards... contrary to softwre development.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks for reading!&lt;/div&gt;</description><link>http://great-code.blogspot.com/2009/08/why-do-we-still-do-it-waterwall-way.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-5493804941124524186</guid><pubDate>Tue, 04 Aug 2009 15:16:00 +0000</pubDate><atom:updated>2009-08-04T12:00:44.245-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">continuous integration</category><title>Don&#39;t you love Continuous Integration?</title><description>&lt;div style=&quot;text-align: left;&quot;&gt;Done right, &lt;a href=&quot;http://martinfowler.com/articles/continuousIntegration.html&quot;&gt;Continuous integration&lt;/a&gt; (CI) can make your software development efforts to be more fun and enjoyable. Some bassic thought we should  keep in mind about it:&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;li&gt;Avoid any guess work by using an authoritative version control repository. Don&#39;t leave anything to the mind of any person. They may not be with us tomorrow.&lt;/li&gt;&lt;li&gt;Stop doing tedious tasks manually (stop wasting time)... Instead, automate, automate and automate all you can. Automate compilating, testing, code inspections and installers creation. &lt;/li&gt;&lt;li&gt;Think in deploy since the first day.&lt;/li&gt;&lt;li&gt;Be sure to have trustworthy and frequent feedback about your code base.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div&gt;But also! Don&#39;t forget the human touch of manual testing. After all the code has being compiled, tested, inspected and deployed automatically, use the software as a real user will do. Check the layout, images and the stuff that real users will pay attention to.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I&#39;ve being reading a lot about CI lately, so, I just wanted to make a brief about what I should keep in mind while designing a new CI environment.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally, you may want to take a look at this funny but clear video about CI. Got any comments?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/1TMg9YV1hVg&amp;amp;hl=en&amp;amp;fs=1&amp;amp;&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/1TMg9YV1hVg&amp;amp;hl=en&amp;amp;fs=1&amp;amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;</description><link>http://great-code.blogspot.com/2009/08/dont-you-love-continuous-integration.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-3949223971854654509</guid><pubDate>Thu, 21 May 2009 01:22:00 +0000</pubDate><atom:updated>2009-05-20T19:33:38.835-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">unit testing</category><title>New book! The art of unit testing</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://weblogs.asp.net/blogs/rosherove/image_6E3CE98B.png&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 273px; height: 347px;&quot; src=&quot;http://weblogs.asp.net/blogs/rosherove/image_6E3CE98B.png&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Hi, I just read &lt;a href=&quot;http://weblogs.asp.net/rosherove/archive/2009/05/20/art-of-unit-testing-the-samurai-book-get-it-now-it-s-done.aspx&quot;&gt;the post from Roy Osherove where he anounces that his book&lt;/a&gt; &quot;The art of UNit testing&quot; is published and you can purchase it on PDF or print book.&lt;br /&gt;&lt;br /&gt;He says that he wished he could haave had this book when he started writing his firts tests. When Roy published his first chapter on PDF for free I gladly downloaded it and have used it to start teaching developers on what unit testing is. So, I am sure his book is really useful for anyone who likes unit tests or works with Test Driven Development.&lt;br /&gt;&lt;br /&gt;Wanna give it a try? I will!&lt;br /&gt;&lt;br /&gt;Check this brief from &lt;a href=&quot;http://www.manning.com/osherove/&quot;&gt;http://www.manning.com/osherove/&lt;/a&gt; where you can buy it:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Unit testing, done right, can mean the diff erence between a failed project and a successful one, between a maintainable code base and a code base that no one dares touch, and between getting home at 2 AM or getting home in time for dinner, even before a release deadline.&lt;br /&gt;&lt;br /&gt;The Art of Unit Testing builds on top of what&#39;s already been written about this important topic. It guides you step by step from simple tests to tests that are maintainable, readable, and trustworthy. It covers advanced subjects like mocks, stubs, and frameworks such as Typemock Isolator and Rhino Mocks. And you&#39;ll learn about advanced test patterns and organization, working with legacy code and even untestable code. The book discusses tools you need when testing databases and other technologies. It&#39;s written for .NET developers but others will also benefit from this book.&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can also preorder it on &lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/1933988274/iserializable-20&quot;&gt;Amazon.com&lt;/a&gt;.&lt;/div&gt;</description><link>http://great-code.blogspot.com/2009/05/new-book-art-of-unit-testing.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-3880920187483849495</guid><pubDate>Tue, 12 May 2009 20:11:00 +0000</pubDate><atom:updated>2009-05-12T14:11:38.731-06:00</atom:updated><title>Back up your data with Mozy and save 10%!</title><description>&lt;div style=&#39;width: 300px; max-height: 234px; padding: 8px; margin: 0 auto auto 2px; overflow-y: auto;&#39;&gt;&lt;div style=&#39;float: right; width: 113px; height: 100px; padding: 0; margin: 0;&#39;&gt;&lt;a href=&#39;http://mozy.popularmedia.net/click/share/14c75a20-215f-012c-7020-f42670ac0677&#39;&gt;&lt;img src=&#39;http://www.popularmedia.net/cache/db5d46371deda8eb0a5aaa7e557ced88/72f994064320360c7e3fc37bb9255730/invite_image.gif&#39;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&#39;font: bold 12px Tahoma; color: #2f2f2f; padding: 0; margin: 0 123px 8px 0;&#39;&gt;&quot;This is helping me backup my files online. I just had a crash on my harddrive and Mozy prevented me from loosing 2GB of pictures!&quot;&lt;/div&gt;&lt;div style=&#39;font: 12px Tahoma; color: #2f2f2f; padding: 0; margin: 0 123px 0 0;&#39;&gt;Just type in SAVE10 at checkout and save 10% on a MozyHome Unlimited annual or biennial subscription!&lt;/div&gt;&lt;div style=&#39;font: 11px Tahoma;padding: 0; margin: 8px 0;&#39;&gt;&lt;a style=&#39;color: #005cff;&#39; href=&#39;http://mozy.popularmedia.net/click/share/14c75a20-215f-012c-7020-f42670ac0677&#39;&gt;View &amp;gt;&amp;gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://great-code.blogspot.com/2009/05/back-up-your-data-with-mozy-and-save-10.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-3398002241614260203</guid><pubDate>Tue, 13 Jan 2009 20:16:00 +0000</pubDate><atom:updated>2009-01-13T14:18:19.601-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">unit testing</category><title>Unit Testing in VB.NET – with Typemock Isolator (with a free license offer)</title><description>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial; font-size: 12px; &quot;&gt;&lt;p style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; &quot;&gt;&lt;a href=&quot;http://www.typemock.com/vbpage.php?utm_source=vbp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb&quot; target=&quot;_blank&quot; style=&quot;color: rgb(0, 0, 204); &quot;&gt;Programming Visual Basic&lt;/a&gt; applications?&lt;/p&gt;&lt;p style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; &quot;&gt;Typemock have released a new version of their &lt;a href=&quot;http://www.typemock.com/?utm_source=hp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb&quot; target=&quot;_blank&quot; style=&quot;color: rgb(0, 0, 204); &quot;&gt;unit testing&lt;/a&gt; tool, Typemock Isolator 5.2. &lt;br /&gt;This version includes a new friendly &lt;a href=&quot;http://www.typemock.com/vbpage.php?utm_source=vbp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb&quot; target=&quot;_blank&quot; style=&quot;color: rgb(0, 0, 204); &quot;&gt;VB.NET &lt;/a&gt;API which makes Isolator the best Isolation tool for &lt;a href=&quot;http://www.typemock.com/vbpage.php?utm_source=vbp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb&quot; target=&quot;_blank&quot; style=&quot;color: rgb(0, 0, 204); &quot;&gt;unit testing A Visual Basic (VB) .NET application&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; &quot;&gt;Isolator now allows unit testing in VB or C# for many ‘hard to test’ technologies such as&lt;a href=&quot;http://typemock.com/sharepointpage.php?utm_source=spp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb&quot; target=&quot;_blank&quot; style=&quot;color: rgb(0, 0, 204); &quot;&gt;SharePoint&lt;/a&gt;, ASP.NET MVC, partial support for Silverlight, WPF, LINQ, WF, Entity Framework, &lt;a href=&quot;http://www.typemock.com/wcfpage.php?utm_source=wcfp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb&quot; target=&quot;_blank&quot; style=&quot;color: rgb(0, 0, 204); &quot;&gt;WCF unit testing&lt;/a&gt; and more.&lt;/p&gt;&lt;p style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; &quot;&gt;Note that the first 25 bloggers who blog this text in their blog and tell us about it, will get a &lt;strong&gt;Free Full Isolator license&lt;/strong&gt; (worth $139). If you post this in a &lt;strong&gt;VB.NET dedicated blog&lt;/strong&gt;, you&#39;ll get a license automatically (even if more than 25 submit) during the first week of this announcement.&lt;/p&gt;&lt;p style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; &quot;&gt;Go ahead, click the following link for &lt;a href=&quot;http://blog.typemock.com/2009/01/get-free-isolator-licnese-for-helping.html?utm_source=vb_blog&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvbblog&quot; target=&quot;_blank&quot; style=&quot;color: rgb(0, 0, 204); &quot;&gt;more information &lt;/a&gt;on how to get your free license.&lt;/p&gt;&lt;p style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; &quot;&gt;_&lt;/p&gt;&lt;/span&gt;</description><link>http://great-code.blogspot.com/2009/01/unit-testing-in-vbnet-with-typemock.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-5729422684713100989</guid><pubDate>Mon, 05 Jan 2009 17:45:00 +0000</pubDate><atom:updated>2009-01-05T13:08:04.176-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">mac</category><title>I&#39;m giving a try to Online / Offsite backups</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://mozy.com/images/header-mozy-logo.png&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 206px; height: 52px;&quot; src=&quot;http://mozy.com/images/header-mozy-logo.png&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; When my sister&#39;s Macbook harddrive crashed a year ago, we learned the leason. Backups are vital! So, we bought an external harddrive and upgraded to Mac OSX Leopard, that has Timemachine built-in (an in-site backup solution from Apple). Timemachine is cool, but what happens if my backup drive crashes too? Now, I want to try-out an off-site solution. &lt;br /&gt;&lt;br /&gt;Now Im giving it a try to &lt;a href=&quot;http://www.mozy.com&quot;&gt;Mozy&lt;/a&gt;. &lt;a href=&quot;http://www.mozy.com&quot;&gt;Mozy&lt;/a&gt; has a free account type that lets you use 2GB for backups. Its cool since it runs on my Mac and I configured it to backup every night. Since I &quot;only&quot; have 2GB of online storage, I&#39;m using it just for my personal pictures (got 1.6 GB already only in pictures from 2007 and 2008!).&lt;br /&gt;&lt;br /&gt;It runs unattended each night and it feels nice having my data on a server (or servers) somewhere in the world. If my Mac&#39;s harddrive crashes some day, I&#39;ll have my backup Harddrive, and if that crashes too (hey, disasters happen!), I can have my &lt;a href=&quot;http://www.mozy.com&quot;&gt;Mozy&lt;/a&gt; backup ready for restoring. The unlimited space account is just $5 per month, and I think that&#39;s a good deal.&lt;br /&gt;&lt;br /&gt;If you want to be nice to me giving me 256MB of free storage on Mozy, please, click on the next link and subscribe to Mozy:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://mozy.com/?ref=M7G7DF&quot;&gt;https://mozy.com/?ref=M7G7DF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On your first backup, I&#39;ll be given my free additional storage! Thanks if you want to do that!</description><link>http://great-code.blogspot.com/2009/01/im-trying-online-offsite-backups.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-9107720988712022749</guid><pubDate>Wed, 31 Dec 2008 19:19:00 +0000</pubDate><atom:updated>2008-12-31T13:46:16.147-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">web</category><title>30GB Zunes Failing worldwide!</title><description>Wow, just read some posts stating that Mirosofts Zunes (30GB HDD model) are failing all over the world... It seems that they are rebooting by themselves and then freezing. How weird is that?&lt;br /&gt;&lt;br /&gt;Sorry for my friends who own a Zune :-) No cure yet...&lt;br /&gt;And for making things worse, Microsofts support lines aren&#39;t open today! What can I say? Get a Mac :-)&lt;br /&gt;&lt;br /&gt;What will happen this New Year switch from 2008 to 2009? Better be far from a Zune!&lt;br /&gt;&lt;br /&gt;And what do you think will bring New Year for you? Are you sure you will be alive the whole year? Please visit &lt;a href=&quot;http://www.goodpersontest.com&quot;&gt;www.goodpersontest.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bye!</description><link>http://great-code.blogspot.com/2008/12/30gb-zunes-failing-worldwide.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-2282975075033689083</guid><pubDate>Wed, 24 Sep 2008 02:10:00 +0000</pubDate><atom:updated>2008-09-23T20:23:32.864-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">web</category><title>Google attention to details and the G1</title><description>OK, I generally love Google software. A lot of my data is in their servers (mail, photos, calendar, feeds, blogs, pictures) and they are awesome. Today, they unveilled the new G1, Google&#39;s first Android phone, with T-Mobile.&lt;br /&gt;&lt;br /&gt;Looks cool, and totally open (you can even unlock the Sim after 90 days of use). However, I concur with &lt;a href=&quot;http://gizmodo.com/5053734/how-many-google-phone-engineers-does-it-take-to-tell-the-time&quot;&gt;this gizmodo post&lt;/a&gt; about how the G1 fails in paying attention to details... &lt;br /&gt;&lt;br /&gt;Check the analog and the digital time in this image:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://gizmodo.com/assets/images/gizmodo/2008/09/g1time2.jpg&quot;&gt;&lt;img style=&quot;margin:0 0 10px 10px;cursor:pointer; cursor:hand;&quot; src=&quot;http://gizmodo.com/assets/images/gizmodo/2008/09/g1time2.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;9:10 or 2:47? What are they thinking in?&lt;br /&gt;&lt;br /&gt;Yes, its just a mockup, but where is the coolness in a gadget that doesn&#39;t even show the correct time? Also, when you look at the apps they have no consistent UI style. &lt;br /&gt;&lt;br /&gt;Well, maybe you&#39;ll wanna check &lt;a href=&quot;http://gizmodo.com/5053734/how-many-google-phone-engineers-does-it-take-to-tell-the-time&quot;&gt;this gizmodo post&lt;/a&gt; and take a look at other images...</description><link>http://great-code.blogspot.com/2008/09/google-attention-to-details-and-g1.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-387237438938859095</guid><pubDate>Mon, 15 Sep 2008 19:25:00 +0000</pubDate><atom:updated>2008-09-15T13:39:45.371-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">programming</category><title>Got a Stack Overflow error? (or any other programming related question?)</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.joelonsoftware.com/items/2008/09/15_screenshot.PNG&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px;&quot; src=&quot;http://www.joelonsoftware.com/items/2008/09/15_screenshot.PNG&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;If you&#39;re like me, you frequently search the web for answers on programming stuff, and its frustrating to just find old forum posts with losts of spam or irrelevant answers. And maybe you&#39;ve found a place that boasts in having the exact right answer but it&#39;s a paid suscription site!&lt;br /&gt;&lt;br /&gt;Well, I just read that &lt;a href=&quot;http://stackoverflow.com/&quot;&gt;Stack Overflow&lt;/a&gt; has become a public beta!&lt;br /&gt;&lt;br /&gt;In their own words:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Stack Overflow is a programming Q &amp; A site that&#39;s free. Free to ask questions, free to answer questions, free to read, free to index, built with plain old HTML, no fake rot13 text on the home page, no scammy google-cloaking tactics, no salespeople, no JavaScript windows dropping down in front of the answer asking for $12.95 to go away.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Just check it out the next time you got a programming related question!&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://stackoverflow.com&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;http://stackoverflow.com/Content/Img/stackoverflow-logo-250.png&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;</description><link>http://great-code.blogspot.com/2008/09/if-youre-like-me-you-frequently-search.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-7061946871416291560</guid><pubDate>Fri, 12 Sep 2008 22:52:00 +0000</pubDate><atom:updated>2008-09-12T17:00:45.242-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">S+S</category><category domain="http://www.blogger.com/atom/ns#">web</category><title>Just learned what&#39;s a Mashup</title><description>I&#39;m studying for a speech about web technologies, so I&#39;m all consumed in new terms. One of them is Mashups. Check the article in Wikipedia: &lt;a href=&quot;http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29&quot;&gt;http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One example is &lt;a href=&quot;http://flickrvision.com&quot;&gt;Flickrvision&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://flickrvision.com&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfXafdSY_fp8hT5viDW12ytOGAfw5lmMW_cYtHf_ne3wpsJKTAZhOqPfMIalajbewYd4Z-hV6OJTQE-KnonT7OZasR0Joodc3DUeGQjffie2v-euhMhuRpVAkA3vJbvnzJ0MfyargvR8I/s320/tv_bug3d.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5245271988574923026&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Flickr&quot;&gt;Flickr&lt;/a&gt; is an image storage site that allows users to organise their collection of images and share them. Through the use of its Application Programming Interface (API) the content can be used by other sites to create a mashup. &lt;a href=&quot;http://flickrvision.com&quot;&gt;Flickrvision&lt;/a&gt; is an example of a mashup made using Flickr&#39;s API.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;It even gives you a unique perspective of the last photos that have been uloaded to &lt;a href=&quot;http://en.wikipedia.org/wiki/Flickr&quot;&gt;Flickr&lt;/a&gt;, on a &lt;a href=&quot;http://maps.google.com/&quot;&gt;Google Maps&lt;/a&gt;, and it even can give you a 3D perspective! That is cool.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaCkJ_gjOR8VlpZZemA9in26PD6duYl4KNPfJVksWkC7vVmrHUHkSByXxuJzfBWXdXZSibVkjSotmePTjv5QjeknJC4WNTGMvauFoeB4L4BcO2_cnkUCA6x1bMhMoGJJApaMw3VgcWn5Q/s1600-h/3d.PNG&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaCkJ_gjOR8VlpZZemA9in26PD6duYl4KNPfJVksWkC7vVmrHUHkSByXxuJzfBWXdXZSibVkjSotmePTjv5QjeknJC4WNTGMvauFoeB4L4BcO2_cnkUCA6x1bMhMoGJJApaMw3VgcWn5Q/s320/3d.PNG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5245273050344637730&quot; /&gt;&lt;/a&gt;</description><link>http://great-code.blogspot.com/2008/09/just-learned-whats-mashup.html</link><author>noreply@blogger.com (Oscar Centeno)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfXafdSY_fp8hT5viDW12ytOGAfw5lmMW_cYtHf_ne3wpsJKTAZhOqPfMIalajbewYd4Z-hV6OJTQE-KnonT7OZasR0Joodc3DUeGQjffie2v-euhMhuRpVAkA3vJbvnzJ0MfyargvR8I/s72-c/tv_bug3d.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-6447973187804842411</guid><pubDate>Fri, 05 Sep 2008 23:24:00 +0000</pubDate><atom:updated>2008-09-05T17:38:22.591-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">web</category><title>The history behind Google Chrome (video)</title><description>Right now I&#39;m writing this from &lt;a href=&quot;http://www.google.com/chrome&quot;&gt;Google Chrome&lt;/a&gt;, Google&#39;s new web browser. It&#39;s built on top of&lt;a href=&quot;http://webkit.org/&quot;&gt; The WebKit Open Source Project&lt;/a&gt;, the same as &lt;a href=&quot;http://apple.com/safari&quot;&gt;Apple Safari&lt;/a&gt; web browser. &lt;br /&gt;&lt;br /&gt;They built it from scratch and is thought to be a web brorswer that can keep the fast pace of evolution of the Internet. The javascript engine is really fast and also the rendering of pages I feel that is very fast.&lt;br /&gt;&lt;br /&gt;Check this explanation video from the Google team who developed it:&lt;br /&gt;&lt;br /&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/JGmO7Oximw8&amp;hl=en&amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/JGmO7Oximw8&amp;hl=en&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;If you&#39;d like to watch it with Spanish subtitles, visit &lt;a href=&quot;http://www.youtube.com/watch?v=15qUN0Mzh3A&quot;&gt;http://www.youtube.com/watch?v=15qUN0Mzh3A&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;And Safari?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;I&#39;ll surely keep an eye on this Google project, but I really really like the minimalistic style of &lt;a href=&quot;http://apple.com/safari&quot;&gt;Apple Safari&lt;/a&gt; browser and I haven&#39;t found a more beautiful rendering of pages.&lt;br /&gt;&lt;br /&gt;Below is a comparison of the rendering of the New York Times website.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAif2XugrvlV0n83Xthe8QuAxR44iUA9EfveWgmq57urkxMARcpRDSiVhLSUviiSxaMYrp29N1OOX4HIcHFbgiokFWX3x6ET77RfgsVSOZ8vAS_tXOX3W0Cpr3FxDogVp3SUX2mndBL5I/s1600-h/safari.PNG&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAif2XugrvlV0n83Xthe8QuAxR44iUA9EfveWgmq57urkxMARcpRDSiVhLSUviiSxaMYrp29N1OOX4HIcHFbgiokFWX3x6ET77RfgsVSOZ8vAS_tXOX3W0Cpr3FxDogVp3SUX2mndBL5I/s320/safari.PNG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5242685012859478802&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEBoMa9_t8_OiBVYOcl64lbTMx0hKaYth3c_6FzN7lPkxHfQVhLL1n1hbphCuyxEElVvoPf8wsqYPlj7ZvpxE9vsxSSkh_CYxmhoEOK-tOWqfULBAKpv7A4V8JvM3B2lggWkE40TtEjR0/s1600-h/google.PNG&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEBoMa9_t8_OiBVYOcl64lbTMx0hKaYth3c_6FzN7lPkxHfQVhLL1n1hbphCuyxEElVvoPf8wsqYPlj7ZvpxE9vsxSSkh_CYxmhoEOK-tOWqfULBAKpv7A4V8JvM3B2lggWkE40TtEjR0/s320/google.PNG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5242685018073448898&quot; /&gt;&lt;/a&gt;</description><link>http://great-code.blogspot.com/2008/09/history-behind-google-chrome-video.html</link><author>noreply@blogger.com (Oscar Centeno)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAif2XugrvlV0n83Xthe8QuAxR44iUA9EfveWgmq57urkxMARcpRDSiVhLSUviiSxaMYrp29N1OOX4HIcHFbgiokFWX3x6ET77RfgsVSOZ8vAS_tXOX3W0Cpr3FxDogVp3SUX2mndBL5I/s72-c/safari.PNG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-9001515581767035801</guid><pubDate>Fri, 05 Sep 2008 15:26:00 +0000</pubDate><atom:updated>2008-09-08T13:21:45.518-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">web</category><title>Microsoft&#39;s First Seinfeld Ad Airs: Shoe Circus</title><description>Hey, have you seen the really good TV Ads from Apple? &lt;a href=&quot;http://www.apple.com/getamac/ads/&quot;&gt;http://www.apple.com/getamac/ads/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is just one of the ones I like the most:&lt;br /&gt;&lt;br /&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/ci2D1ig4df4&amp;hl=en&amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/ci2D1ig4df4&amp;hl=en&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=ci2D1ig4df4&quot;&gt;http://www.youtube.com/watch?v=ci2D1ig4df4&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;These ads have hurt a lot Microsofts Vista&#39;s image on customers... Including myself! I really dont like Vista. But know what? Microsoft is going to air several TV ads with Jerry Seinfield! How cool is that? They are even paying him $10 million for that &quot;hard work&quot;... &lt;br /&gt;&lt;br /&gt;And the result? The worst TV Ad I have ever seen! Check it out:&lt;br /&gt;&lt;br /&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/uz6amk3P-hY&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/uz6amk3P-hY&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=uz6amk3P-hY&quot;&gt;http://www.youtube.com/watch?v=uz6amk3P-hY&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More comments about the ad: &lt;a href=&quot;http://forums.macrumors.com/showthread.php?t=556832&quot;&gt;http://forums.macrumors.com/showthread.php?t=556832&lt;/a&gt;. I like this one:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Worst&lt;br /&gt;Ad&lt;br /&gt;Ever?&lt;br /&gt;&lt;br /&gt;Seinfeld reminds me of the mid 1990s. Kinda like Microsoft...&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;haha, Get a Mac :-)</description><link>http://great-code.blogspot.com/2008/09/microsofts-first-seinfeld-ad-airs-shoe.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4853594540365965041.post-3899199109541970939</guid><pubDate>Thu, 28 Aug 2008 19:37:00 +0000</pubDate><atom:updated>2008-09-05T09:39:58.385-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">tdd</category><title>2 brief comments about TDD</title><description>I just found 2 cool introductory articles about test-driven. Maybe you&#39;ll be interested:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.softwareagility.gr/index.php?q=node/16&quot;&gt;Test Driven Development part I : an Intro&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.softwareagility.gr/index.php?q=node/17&quot;&gt;Test Driven Development part II : Code coverage&lt;/a&gt;</description><link>http://great-code.blogspot.com/2008/08/2-brief-comments-about-tdd.html</link><author>noreply@blogger.com (Oscar Centeno)</author><thr:total>0</thr:total></item></channel></rss>