<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0UEQXg-eSp7ImA9WhVVE0k.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878</id><updated>2012-05-06T14:53:20.651-07:00</updated><title>Gigantt Blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.gigantt.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.gigantt.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/GiganttBlog" /><feedburner:info uri="giganttblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;D0IFRn4_cSp7ImA9WhVWEU4.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-8925143192220469862</id><published>2012-04-22T14:57:00.000-07:00</published><updated>2012-04-22T15:58:37.049-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-22T15:58:37.049-07:00</app:edited><title>What's New in Gigantt</title><content type="html">&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;We've focused on just one thing in this release - usability. After getting tons of feedback from new users we decided to put new feature development on hold and make the existing ones easier to use.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2&gt;

&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;All New Design&lt;/span&gt;&lt;/h2&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;The new look is much cleaner and more compact:&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://s3.amazonaws.com/gigantt_pub_imgs/2012/04/1335130806.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="247" src="https://s3.amazonaws.com/gigantt_pub_imgs/2012/04/1335130806.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small; font-weight: normal;"&gt;We've gotten rid of a few buttons that users didn't really need. Now there's tons of space for actually viewing your plan - space that used to be occupied by various panels and toolbars. And of course shiny new buttons for everything.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: small; font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2&gt;

&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;"The Bubble"&lt;/span&gt;&lt;/h2&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Gigantt is all about fast keyboard shortcuts for rapid editing, but over time we've really been neglecting the mouse, and it turned out that quite a few users aren't big fans of keyboard shortcuts. So we've really streamlined the mouse. Now a simple drag operation can both create tasks and draw arrows between them.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://s3.amazonaws.com/gigantt_pub_imgs/2012/04/1335131562.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="269" src="https://s3.amazonaws.com/gigantt_pub_imgs/2012/04/1335131562.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Here's how it looks in action:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://2.gvt0.com/vi/B7bUNVPIYdo/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/B7bUNVPIYdo&amp;fs=1&amp;source=uds" /&gt;

&lt;param name="bgcolor" value="#FFFFFF" /&gt;

&lt;embed width="320" height="266"  src="http://www.youtube.com/v/B7bUNVPIYdo&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;h2&gt;

&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Mac Support&lt;/span&gt;&lt;/h2&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Gigantt is now officially supported on the Mac and is tested on both Safari and Chrome.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;There isn't much difference between the PC and Mac versions, except for the keyboard shortcuts. If you're a mac user you can print out &lt;a href="http://help.gigantt.com/wi/images/e/e3/Gigantt_KeyboardShortcuts_Mac.pdf"&gt;the keyboard cheat sheet&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;h2&gt;

&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Tons of Small Improvements&lt;/span&gt;&lt;/h2&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Lots of stuff that you've been asking for and we've finally implemented.&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Here's a very partial list:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;You can change the estimate of several tasks at once.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;New keyboard shortcuts&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;R: Assign to a new &lt;b&gt;r&lt;/b&gt;esource.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;T: Change the &lt;b&gt;t&lt;/b&gt;ime estimate.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;N: Add a &lt;b&gt;n&lt;/b&gt;ote to the task.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Double-click outside any task (on the white space) to zoom-out.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Double-click on an arrow to "split" it (insert an intermediate task).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;If you haven't already, &lt;a href="https://www.gigantt.com/"&gt;go sign up&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-8925143192220469862?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=nz7eYD7o6PM:QlWvAFpKC3g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=nz7eYD7o6PM:QlWvAFpKC3g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=nz7eYD7o6PM:QlWvAFpKC3g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=nz7eYD7o6PM:QlWvAFpKC3g:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=nz7eYD7o6PM:QlWvAFpKC3g:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=nz7eYD7o6PM:QlWvAFpKC3g:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=nz7eYD7o6PM:QlWvAFpKC3g:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=nz7eYD7o6PM:QlWvAFpKC3g:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=nz7eYD7o6PM:QlWvAFpKC3g:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/nz7eYD7o6PM" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2012/04/whats-new-in-gigantt.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/8925143192220469862?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/8925143192220469862?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/nz7eYD7o6PM/whats-new-in-gigantt.html" title="What's New in Gigantt" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2012/04/whats-new-in-gigantt.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EGSX06fSp7ImA9WhVWEU8.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-5043923797360070598</id><published>2012-04-22T07:25:00.000-07:00</published><updated>2012-04-22T14:20:28.315-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-22T14:20:28.315-07:00</app:edited><title>Cracking a Safe with UX</title><content type="html">&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Your mission, should you choose to accept it, is to figure out the four-digit code of this safe &lt;b&gt;with just one try&lt;/b&gt;:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://s3.amazonaws.com/gigantt_pub_imgs/2012/04/1335100803.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;img border="0" height="288" src="https://s3.amazonaws.com/gigantt_pub_imgs/2012/04/1335100803.png" width="320" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;With only four keys being schmutzed we know whoever punches in the code touches only 2, 5, 8 and probably 9. With four options we have just 256 codes to try.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;However, since it's pretty obvious that digits aren't repeated in the code (otherwise we would not see as many as four dirty buttons), the number of combinations drops to just 24.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;But&lt;b&gt;&amp;nbsp;&lt;/b&gt;can we use our UX expertise to crack this code &lt;b&gt;in less than 24 tries&lt;/b&gt; (at most)?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;First, the rules should be made clear. In this keypad you have to first press the key button, then the four-digit code, and then the key button again. Now let's have a crack at it.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Which digit is first? That's actually really easy to guess using Fitts' law.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Fitts's_law"&gt;Fitts' law&lt;/a&gt;&amp;nbsp;is about ergonomics - how people use machines. Specifically it's about pointing. What it says sounds almost trivial: the bigger and closer the target, the easier it is for us to point to it accurately. So if a button is bigger, it's easier for us to point to it. The same goes if a button is closer to our finger - the &lt;i&gt;farther &lt;/i&gt;it is, the less accurate we are at pointing to it.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;We can deduce from Fitts' law that the larger the dirt circle around a button, the more the finger had to travel to get to it.&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;The button with the biggest circle of dirt is clearly 2. This means the finger that presses 2 travels the farthest distance from its initial location. Because the distance is so great the finger usually misses it quite a lot, hence the large dirt circle. So its likely that 2 is the first button pressed. The finger has to start from the key button, then travel the greatest distance to 2, and then continue to some other key.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://s3.amazonaws.com/gigantt_pub_imgs/2012/04/1335102328.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="288" src="https://s3.amazonaws.com/gigantt_pub_imgs/2012/04/1335102328.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Great.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;Code thus far: 2 _ _ _&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;We're down to 6 possible combinations.&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;But can we narrow it down even more?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Which button is next?&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;If 8 were the second digit, followed by 9 or 5, we would expect to see a bigger dirt circle around 8 than around 5, right? Because the distance from 2 to 8 is greater than from 5 or 9 to 8. Clearly, then, the next key is 5. And now there are just two left.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://s3.amazonaws.com/gigantt_pub_imgs/2012/04/1335104112.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="288" src="https://s3.amazonaws.com/gigantt_pub_imgs/2012/04/1335104112.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b style="font-family: 'Courier New', Courier, monospace;"&gt;Code thus far: 2 5 _ _&lt;/b&gt;
&lt;br /&gt;
&lt;b style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;So which is the 3rd button: 9 or 8? 9 has the smallest dirt circle around it, so it stands to reason that the finger travels a very short distance in order to get to it. This seems to suggest that we need to press 8 and then 9. But if that's the case then why is the circle of dirt around 8 bigger than around 9? Both are pressed after adjacent buttons, after all, so shouldn't we expect them to have the same sized dirt?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Time to think about ergonomics some more. Since the key pad is mounted on a door we need to raise our hand in order to tap on it. Now it's a bit easier to move your finger sideways in this position than up and down. Why? In order to move your finger vertically you have to move your elbow, which requires your shoulder muscles to go to work. Those are some big joints. In contrast, move between horizontally adjacent buttons your elbow can almost stay in place, with only the rest of your arm moving. Try it. I'll wait for you.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;See? So vertical moves are harder, and therefor we can expect buttons that are pressed after horizontally adjacent neighbors to have smaller dirt circles than those pressed after vertically adjacent neighbors.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;So it's 8 and then 9.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b style="font-family: 'Courier New', Courier, monospace;"&gt;Code: 2 5 8 9&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Just one attempt.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Conclusion: Fitts' law works all over the place, not just in computer GUI.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Also: clean your damned keypads.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;We used Fitts' law when we designed our new Bubble Menu interface:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://2.gvt0.com/vi/B7bUNVPIYdo/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/B7bUNVPIYdo&amp;fs=1&amp;source=uds" /&gt;


&lt;param name="bgcolor" value="#FFFFFF" /&gt;


&lt;embed width="320" height="266"  src="http://www.youtube.com/v/B7bUNVPIYdo&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;The buttons inside the bubble are relatively big and since the bubble opens up wherever you start dragging from the buttons are always close to the mouse's cursor. Close and equidistant.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;So &lt;a href="http://gigantt.com/"&gt;go sign up for Gigantt&lt;/a&gt;. Active beta users will enjoy a lifetime discount when Gigantt leaves the beta phase.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-5043923797360070598?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=6Qp2od7qTe8:9AlpA8LTRS4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=6Qp2od7qTe8:9AlpA8LTRS4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=6Qp2od7qTe8:9AlpA8LTRS4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=6Qp2od7qTe8:9AlpA8LTRS4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=6Qp2od7qTe8:9AlpA8LTRS4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=6Qp2od7qTe8:9AlpA8LTRS4:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=6Qp2od7qTe8:9AlpA8LTRS4:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=6Qp2od7qTe8:9AlpA8LTRS4:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=6Qp2od7qTe8:9AlpA8LTRS4:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/6Qp2od7qTe8" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2012/04/hacking-safe-with-ux.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/5043923797360070598?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/5043923797360070598?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/6Qp2od7qTe8/hacking-safe-with-ux.html" title="Cracking a Safe with UX" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2012/04/hacking-safe-with-ux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcCQXY4fSp7ImA9WhVQGEQ.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-5274283698767500231</id><published>2012-04-08T07:41:00.000-07:00</published><updated>2012-04-08T07:41:00.835-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-08T07:41:00.835-07:00</app:edited><title>Feature Sneak Peak - "The Bubble"</title><content type="html">We don't normally do this, but "the bubble" turned out so cool we wanted to share it with everybody even before it reaches production.&lt;br /&gt;
&lt;br /&gt;
Have a look.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://2.gvt0.com/vi/B7bUNVPIYdo/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/B7bUNVPIYdo&amp;fs=1&amp;source=uds" /&gt;

&lt;param name="bgcolor" value="#FFFFFF" /&gt;

&lt;embed width="320" height="266"  src="http://www.youtube.com/v/B7bUNVPIYdo&amp;fs=1&amp;hd=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-5274283698767500231?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=2xcv_R2HUvk:cQlEGslAIUo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=2xcv_R2HUvk:cQlEGslAIUo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=2xcv_R2HUvk:cQlEGslAIUo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=2xcv_R2HUvk:cQlEGslAIUo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=2xcv_R2HUvk:cQlEGslAIUo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=2xcv_R2HUvk:cQlEGslAIUo:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=2xcv_R2HUvk:cQlEGslAIUo:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=2xcv_R2HUvk:cQlEGslAIUo:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=2xcv_R2HUvk:cQlEGslAIUo:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/2xcv_R2HUvk" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2012/04/feature-sneak-peak-bubble.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/5274283698767500231?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/5274283698767500231?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/2xcv_R2HUvk/feature-sneak-peak-bubble.html" title="Feature Sneak Peak - &quot;The Bubble&quot;" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2012/04/feature-sneak-peak-bubble.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUFQnw_eyp7ImA9WhVQEkQ.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-8496510349453261</id><published>2012-04-01T07:56:00.003-07:00</published><updated>2012-04-01T07:56:53.243-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-01T07:56:53.243-07:00</app:edited><title>Why geniuses are overrated in software engineering. Knowing that &gt; knowing how.</title><content type="html">&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Knowledge is underrated in software engineering. We value problem solving skills and quick learning a bit too much by comparison. Let me explain what I mean.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Being smart means you can pick up any programming language in no time. You can get to know new technologies quickly and do a good job at using them. But that's not enough. In fact, since learning&amp;nbsp;how to do stuff is&amp;nbsp;so easy these days you don't really get to accumulate a huge advantage over others in this way. Everybody knows how to google, and these days googling takes you 90% of the way to learning anything you need to learn. Sure, smart people learn faster. But how much faster?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Let's see.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;One constant (sort of) is the time is takes to read up on something. Even a genius has to actually RTFM, and if the manual has a few hundred pages then it's going to take a bunch of hours to read it. No getting around that. This genius would probably understand it all immediately and realize the implications and possibilities of this new knowledge in a deeper way, while us ordinary folks would struggle a bit. True. Maybe we would need to find a better written text - something that's easier to understand. Maybe we need a few more examples. The bottom line, though, is that it's going to take a non-genius three days instead of one day to reach roughly the same level of knowledge. 3x as fast. That's about it.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Put another way, geniuses are real good at &lt;i&gt;learning how&lt;/i&gt;, and that makes them more effective. But the reality of software engineering is that we don't spend the entire day every day learning how to do new things. Most of our time is spent&amp;nbsp;&lt;i&gt;applying&lt;/i&gt;&amp;nbsp;this knowledge, you know - actually creating software. So being 3x as fast at learning new stuff probably means you get the job done 15% faster over all. (Why 15%? Whatever, the point is it optimizes a smaller portion of the total work-time as an engineer).&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;So how come we value IQ so much when we evaluate software engineers? Most of us aren't doing rocket science. There's a minimal brain span you need to have so you don't make stupid mistakes and you can actually understand what you're doing. But beyond that it seems that all this brain isn't really making a difference.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Here's the reason. I think.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;What googling doesn't really help you with is knowing &lt;i&gt;that &lt;/i&gt;there's something you need to know. It boils down to search being a function that takes a parameter - you search &lt;i&gt;for something&lt;/i&gt;. If you have no idea that something even exists then you can't really search for it. To learn &lt;i&gt;that&lt;/i&gt;&amp;nbsp;something is possible you need to engage in active exploratory learning. You need to be curious about stuff, talk to people, go outside your narrow field of work and generally fill you brain with facts about the &lt;i&gt;possibility&lt;/i&gt;&amp;nbsp;and &lt;i&gt;existence &lt;/i&gt;of things.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;In short, knowledge, not just know-how, is key. And the kicker is that knowing &lt;i&gt;about &lt;/i&gt;something isn't that hard. Don't need to be a genius to remember that you read about somebody who did something. Then you just need to look it up and apply it. This sort of superficial, broad knowledge makes a ton more difference than know-how. Why? Because so much time is wasted trying to solve problems that have already been solved. Being a genius can really be a hindrance to productivity in this sense. Brainiacs often underestimate the difficulty of problems, or just seek out challenges because they're getting bored. This is costly. You don't want a genius reinventing new kind of scalable database for your terabytes of data. You want somebody who's heard&lt;i&gt; &lt;/i&gt;of &lt;a href="http://cassandra.apache.org/"&gt;Cassandra&lt;/a&gt;&amp;nbsp;or &lt;a href="http://www.couchbase.com/"&gt;CouchBase&lt;/a&gt;&amp;nbsp;and follows the &lt;a href="http://highscalability.com/"&gt;High Scalability Blog&lt;/a&gt;. That's the guy you want.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Bottom line, I would value someone who's &lt;i&gt;heard&lt;/i&gt; about every new technology or technique much more than someone who would be able to utilize it 15% more efficiently. When the playing field for learning &lt;i&gt;how&lt;/i&gt; is pretty much flat, thanks to Google, we can differentiate ourselves and compete by accumulating knowledge. Sounds a bit trivial when put this way, but &amp;nbsp;really this sort of broad knowledge is just not something that hiring managers are focusing on these days. The mantra seems to be that smart people could learn anything, so why bother testing their knowledge - that would be like evaluating a new car model based on &lt;i&gt;where &lt;/i&gt;this car has been driven. Kind of pointless, right?&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;No. It's not like that. It's not just about how fast you can learn - it's more about how much you &lt;i&gt;have&lt;/i&gt; learned&lt;i&gt;. &lt;/i&gt;It's not just about how &lt;i&gt;deep&lt;/i&gt; your knowledge - it's more about how &lt;i&gt;wide&lt;/i&gt;&amp;nbsp;it is.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;So width more important than depth and speed.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;That's what she said.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-8496510349453261?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=ci1O4Qy2ubU:RCz3qdzd-T8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=ci1O4Qy2ubU:RCz3qdzd-T8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=ci1O4Qy2ubU:RCz3qdzd-T8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=ci1O4Qy2ubU:RCz3qdzd-T8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=ci1O4Qy2ubU:RCz3qdzd-T8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=ci1O4Qy2ubU:RCz3qdzd-T8:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=ci1O4Qy2ubU:RCz3qdzd-T8:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=ci1O4Qy2ubU:RCz3qdzd-T8:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=ci1O4Qy2ubU:RCz3qdzd-T8:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/ci1O4Qy2ubU" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2012/04/why-geniuses-are-overrated-in-software.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/8496510349453261?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/8496510349453261?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/ci1O4Qy2ubU/why-geniuses-are-overrated-in-software.html" title="Why geniuses are overrated in software engineering. Knowing that &gt; knowing how." /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2012/04/why-geniuses-are-overrated-in-software.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcNSXY8eip7ImA9WhVREEU.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-6011128043309353876</id><published>2012-03-18T08:54:00.001-07:00</published><updated>2012-03-18T08:54:58.872-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-18T08:54:58.872-07:00</app:edited><title>Speeeeeeed!</title><content type="html">&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Today's release of Gigantt is all about performance. Navigating inside plans, zooming in and out - it's all real snappy now. Try it out: &lt;a href="http://www.gigantt.com/"&gt;http://www.gigantt.com&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-aAaQ_CtHxfg/T2YEk1HwkGI/AAAAAAABQfE/Xvqig2NDTSg/s1600/iStock_000018334870XSmall.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="208" src="http://2.bp.blogspot.com/-aAaQ_CtHxfg/T2YEk1HwkGI/AAAAAAABQfE/Xvqig2NDTSg/s320/iStock_000018334870XSmall.jpg" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Flash Optimization&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;So what did we actually do? Programmers, read on. Humans, feel free to skip the rest of this post and move straight on to &lt;/span&gt;&lt;a href="http://www.gigantt.com/" style="font-family: Arial, Helvetica, sans-serif;"&gt;trying it out&lt;/a&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Our recent releases have been focused on adding functionality and the whole thing just got very heavy and bloated. Memory was leaking because apparently Adobe Flex isn't really meant for creating thousands of recursive controls over and over again. The worst part was the latency - if you've navigated into a task that contained many sub-tasks it would take them a while to load which was very frustrating and it &lt;/span&gt;&lt;b style="font-family: Arial, Helvetica, sans-serif;"&gt;slowed you down.&lt;/b&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;That dog won't hunt. We learned that one of the slowest things you can do in Flex is to add and remove elements from the display list. So now we don't. We recycle and hide unused elements instead of adding/removing them. That also took care of the memory leaks, since apparently we cannot rely on Flex to properly dispose of unused objects (even [sigh] when the Flex Profiler itself shows no paths to those objects from the GC root).&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Rendering tiny zoomed-out sub-tasks was&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;rewritten in lower-level Flash graphics (as a C++ developer it sounds odd to me - "low level Flash"... but I'm getting used to it). This approach worked great when we implemented Team View so we adopted in the other views as well.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;So how noticeable is the difference? Quite noticeable. We measured how long it takes to drill down from the top of a large plan to the bottom-most "leaf" task and it took about one third of the time. So roughly 3x as fast. But that's mainly because the built-in animation simply takes its time (about 400ms) - without it navigation just seems jumpy and weird. When we profiled just rendering time we saw a 10x improvement.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Hopefully you'll notice this too.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-6011128043309353876?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=ryARh1loxoA:xA_WokfC82w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=ryARh1loxoA:xA_WokfC82w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=ryARh1loxoA:xA_WokfC82w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=ryARh1loxoA:xA_WokfC82w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=ryARh1loxoA:xA_WokfC82w:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=ryARh1loxoA:xA_WokfC82w:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=ryARh1loxoA:xA_WokfC82w:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=ryARh1loxoA:xA_WokfC82w:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=ryARh1loxoA:xA_WokfC82w:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/ryARh1loxoA" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2012/03/speeeeeeed.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/6011128043309353876?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/6011128043309353876?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/ryARh1loxoA/speeeeeeed.html" title="Speeeeeeed!" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-aAaQ_CtHxfg/T2YEk1HwkGI/AAAAAAABQfE/Xvqig2NDTSg/s72-c/iStock_000018334870XSmall.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2012/03/speeeeeeed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYNQHk_fSp7ImA9WhVTEks.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-7075177257477171770</id><published>2012-02-26T06:39:00.003-08:00</published><updated>2012-02-26T06:39:51.745-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-26T06:39:51.745-08:00</app:edited><title>What are we doing next month?</title><content type="html">&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;I'm happy to announce the latest version of Gigantt. The long anticipated and much requested "Team View" is now live. Finally you can see what every team member is doing at any given time.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;You can see Team View in action in the following two-minute video:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://2.gvt0.com/vi/ap-mLIr9x-4/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ap-mLIr9x-4&amp;fs=1&amp;source=uds" /&gt;
&lt;param name="bgcolor" value="#FFFFFF" /&gt;
&lt;embed width="320" height="266"  src="http://www.youtube.com/v/ap-mLIr9x-4&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Learn more on our &lt;a href="http://help.gigantt.com/wiki/Team_View"&gt;help wiki&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;If you think Team View looks awesome you can &lt;a href="http://www.gigantt.com/"&gt;sign-up&lt;/a&gt; for the private beta program. More invites will be going out in about two weeks.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-7075177257477171770?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=vVBE_ETVMbU:qqTVpzN4ArE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=vVBE_ETVMbU:qqTVpzN4ArE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=vVBE_ETVMbU:qqTVpzN4ArE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=vVBE_ETVMbU:qqTVpzN4ArE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=vVBE_ETVMbU:qqTVpzN4ArE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=vVBE_ETVMbU:qqTVpzN4ArE:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=vVBE_ETVMbU:qqTVpzN4ArE:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=vVBE_ETVMbU:qqTVpzN4ArE:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=vVBE_ETVMbU:qqTVpzN4ArE:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/vVBE_ETVMbU" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2012/02/what-are-we-doing-next-month.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/7075177257477171770?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/7075177257477171770?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/vVBE_ETVMbU/what-are-we-doing-next-month.html" title="What are we doing next month?" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2012/02/what-are-we-doing-next-month.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUDQ3g4eCp7ImA9WhRaEkk.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-4437097689557673433</id><published>2012-02-14T10:31:00.000-08:00</published><updated>2012-02-14T10:31:12.630-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-14T10:31:12.630-08:00</app:edited><title>Screenshots Straight into Imgur.com</title><content type="html">&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;If you tend to use lots of screen-shots (like me) you should probably know &lt;a href="http://www.techsmith.com/snagit.html"&gt;SnagIt&lt;/a&gt;. It's the number-one screen-shot application for Windows. It takes over of your PrintScreen keyboard button and when you click it you can then choose the screen area to capture.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i.imgur.com/Wgxbk.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="171" src="http://i.imgur.com/Wgxbk.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;If you create lots and lots of screen-shots you can configure SnagIt to automatically write the files to some directory. But what if you always need to upload these image files to some public location?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;That's where &lt;a href="http://imgur.com/"&gt;imgur&lt;/a&gt;&amp;nbsp;comes into play. They'll gladly host your image files and give you permanent links to them. The cool thing about this is that they have an API. So, yes, you've guessed it, you can connect SnagIt to imgur!&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i.imgur.com/Q2Pwc.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="127" src="http://i.imgur.com/Q2Pwc.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Here's how:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;You need Python (if you're not a programmer, this isn't for you, sorry...)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Save this script somewhere in your machine:&amp;nbsp;
&lt;a href="https://gist.github.com/1828787"&gt;https://gist.github.com/1828787&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Then configure SnagIt to output into this script as a program. You might need to wrap it with a CMD file, depending on your local python setup.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;That's it. Now when you snag a new screen-shot it will automatically be uploaded to imgur and the URL will be copied into your clipboard. PrintScreen -&amp;gt; Paste URL into your blog or Facebook status -&amp;gt; Bang, you're done.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-4437097689557673433?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=_giiHT1ThBE:dD0_Saiji1E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=_giiHT1ThBE:dD0_Saiji1E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=_giiHT1ThBE:dD0_Saiji1E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=_giiHT1ThBE:dD0_Saiji1E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=_giiHT1ThBE:dD0_Saiji1E:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=_giiHT1ThBE:dD0_Saiji1E:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=_giiHT1ThBE:dD0_Saiji1E:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=_giiHT1ThBE:dD0_Saiji1E:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=_giiHT1ThBE:dD0_Saiji1E:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/_giiHT1ThBE" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2012/02/screenshots-straight-into-imgurcom.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/4437097689557673433?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/4437097689557673433?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/_giiHT1ThBE/screenshots-straight-into-imgurcom.html" title="Screenshots Straight into Imgur.com" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2012/02/screenshots-straight-into-imgurcom.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QFQXwzeSp7ImA9WhRbFk4.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-108604656690514262</id><published>2012-02-07T04:07:00.000-08:00</published><updated>2012-02-07T10:28:30.281-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-07T10:28:30.281-08:00</app:edited><title>A Programmer's Guide to Successful Outsourcing Online</title><content type="html">&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Gigantt outsources much of its work online through sub-contractors. If it's not part of our core intellectual property then we get someone else to do it. It's much more cost-effective. Every full-time employee gets a discretionary outsourcing budget used to get work done, no questions asked as long as it's within the following guidelines.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;1. It's amazing how much you can actually outsource effectively once you do the mental switch. It ain't about the jobs you can't or don't want to be doing, it's about the jobs you &lt;b&gt;shouldn't &lt;/b&gt;be doing.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Let's say you need to learn about a new technology and whether or not integrating it into the product is a smart move. The auto-didactic hacker approach would automatically lead you through the path of reading manuals, searching forums, asking questions online and generally satisfying your intellectual curiosity through hours of reading and playing around with new toys. Now l&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;et's say you value your time as a developer at $100/hour (it can&amp;nbsp;&lt;/span&gt;&lt;a href="http://blog.asmartbear.com/value-time.html" style="font-family: Arial, Helvetica, sans-serif;"&gt;actually be much more&lt;/a&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;). If you spend only three hours figuring out a new technology - that's $300. But why not pay someone who's already an expert at this technology to tutor you on Skype for one hour? That person probably values their time roughly the same as you do. You just got the best tutorial you could get and saved $100 in the process.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Notice this particular example only really works if people don't need to get their boss's approval for every job they wish to outsource. Not many people would be comfortable approaching their boss and asking him to pay for an hour's worth of tutoring, but often that's the most cost-effective thing to do.&lt;/span&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;The point is to be mindful of the possibility of outsourcing and really think twice before deciding to do something on your own.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;2. Get to know &lt;a href="https://www.odesk.com/"&gt;oDesk&lt;/a&gt;. It's probably the smoothest running outsourcing engine out there, with more than a million sub-contractors. Posting a new contract takes us no more than 5 minutes now. And, if you know what you're doing, deciding on a candidate and hiring can take about 10 additional minutes. That's about 15 minutes we can put down as cost-of-transaction. At the above rate that's $25 overhead. Naturally this means if you can do the job yourself faster than that then you should. But most jobs take more than 15 minutes.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;3. Insist on superb English communications skills. That is, of course, assuming English is your work language. This cannot be stressed enough. 90% of outsourcing success and failure is attributable to communication quality. If you aren't speaking exactly the same language, literally, it's not going to work. Be very selective when evaluating candidate's CVs and cover letters. We automatically disqualify based on the tiniest spelling, punctuation, grammatical and style errors. If a candidates can't be bothered to proofread his own profile then you're probably not going to get a 100% perfectionist performance our of them.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;4. Plant some non-obvious requirement into your job post. You need to be able to identify (and disqualify) those that send out applications en-masse without really investing time into their cover letter. We sometimes ask for a sample of their English writing work in the job description, even if the job itself is completely unrelated to writing. If candidates don't attach such a link they obviously either didn't read the job description (don't care enough) or can't follow simple instructions.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;5. If it's a long-term job or requires any amount of talking over phone or Skype then be sure you can understand the person's accent. Many sub-contractors, especially in Asia, are just not that easy for westerners to understand. It's a matter of accent and also a matter of connection quality - Skype can really a problem in this respect. So do a Skype interview. It can be as short as five minutes. Again, this often does not apply because some jobs require no Skyping to get done at all.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;6. Use an hourly rate instead of a fixed-price for the job. Don't worry so much about people billing too many hours. That never happened to us and we've employed dozens of people. Using an hourly rate even for stuff that initially seems like a very clear cut and properly estimated job has a few advantages. Unless your job description is superbly clear and comprehensive, realize that you might not get exactly what you asked for. People will misunderstand and then have to repeat work for you, and if they start losing money while doing so you'll get hurried, resentful work. Unless you've worked with the particular sub-contractor before and he's doing the same exact job again you can't really trust their fixed-price bid to be spot on. The point of outsourcing is to &lt;b&gt;not &lt;/b&gt;worry about the job, and this means you have to employ people who are willing to redo and improve their work up to your standards, which may be higher than theirs.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;7. Be very clear about I/O. It's just like design by contract. Specify exactly what your input is going to be and how you expect to get their output. It can be trivial stuff like which file formats or applications to use. But it can also be about progress updates - how often do you expect them to occur, etc. Our job descriptions often ask sub-contractors to spend not more than X hours initially on the job, then stop working and report to us with their progress so we can evaluate it and adjust expectations.* The clearer you are about breaking down the work into milestones and receivables the less you'll be disappointed.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;8. Coordinate expectations about the amount of work that needs to be done and realize that sub-contractors usually work on more than one job at a time. Specify exactly how many hours per day or week you expect them to work. If the work is occasional in nature then coordinate expectations and realize they might not always be available on a day's notice.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;9. Consider over-hiring. Need some data-entry work to be done? Hire two or three people for the same job (usually $2-$3 an hour - very cheap in western standards) and see which one performs best on a smaller initial milestone - that's the one you keep for the long term. Be honest and upfront about the fact that work will start on a smaller evaluation basis. Let people prove themselves to you by working (and getting paid). The cost of hiring and firing is very, very low and we developers are accustomed to the very opposite (recruiting takes forever and mistakes are very costly).&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;If the work is repetitive and error prone, people will become fatigued and make mistakes, especially the 17th time they basically do the same thing. In such cases it's perfectly reasonable to hire more people for the job than strictly necessary. Redundancy is your friend because it's unlikely two people will do make the exact same mistake. It also helps with the issue of availability mentioned earlier.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;10. Finally, be respectful and&amp;nbsp;courteous. Yes, hiring and firing on oDesk can take five minutes and have little implications for you, but the people working for you deserve your respect, even when they occasionally don't live up to your high expectations. It sounds silly to have to even mention this as a tip... Outsourcing online usually happens across cultural boundaries and not everyone has the same work attitude, conversational style and politeness (Israelis, I'm looking at you!). So be extra nice.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;---------------------------------------------------------&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;*&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;This is actually a tip by&amp;nbsp;&lt;a href="http://www.fourhourworkweek.com/"&gt;Tim Ferris&lt;/a&gt;. Read his book, or at least the chapter on outsourcing. Another great chapter on outsourcing can be found on&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.startupbook.net/"&gt;http://www.startupbook.net/&lt;/a&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-108604656690514262?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=pclYuAw0rRo:l8T3i5Ogm0g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=pclYuAw0rRo:l8T3i5Ogm0g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=pclYuAw0rRo:l8T3i5Ogm0g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=pclYuAw0rRo:l8T3i5Ogm0g:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=pclYuAw0rRo:l8T3i5Ogm0g:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=pclYuAw0rRo:l8T3i5Ogm0g:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=pclYuAw0rRo:l8T3i5Ogm0g:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=pclYuAw0rRo:l8T3i5Ogm0g:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=pclYuAw0rRo:l8T3i5Ogm0g:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/pclYuAw0rRo" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2012/02/programmers-guide-to-successful.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/108604656690514262?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/108604656690514262?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/pclYuAw0rRo/programmers-guide-to-successful.html" title="A Programmer's Guide to Successful Outsourcing Online" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.gigantt.com/2012/02/programmers-guide-to-successful.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAER3s8eyp7ImA9WhRbFkk.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-7445562054583685218</id><published>2012-02-04T06:01:00.000-08:00</published><updated>2012-02-07T10:51:46.573-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-07T10:51:46.573-08:00</app:edited><title>Clear Browser Cache - a Saturday Project</title><content type="html">&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;i&gt;UPDATE: Because of embedded iframes in this post I highly recommend you read it out of your RSS reader&lt;/i&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Woke up today with an idea that must have its day. So, you know how web applications sometimes ask you to clear your browser's cache. It's the equivalent of "turning it off an on again". A general cure for everything.&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://3.gvt0.com/vi/nn2FB1P_Mn8/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/nn2FB1P_Mn8&amp;fs=1&amp;source=uds&amp;t=10s" /&gt;


















&lt;param name="bgcolor" value="#FFFFFF" /&gt;


















&lt;embed width="320" height="266"  src="http://www.youtube.com/v/nn2FB1P_Mn8&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;But how do you explain to very simple users the steps to clearing their browser cache? Most users probably don't even know what sort of browser they're using. You need to detect it for them and present them with step-by-step instructions (with screen-shots), and practically nobody does this. It's just too much work.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;We need a website that does just this - it detects your browser and shows nothing but the steps to clear your cache. Web developers could then just refer to it instead of recreating it on their own over and over again. They could even embed it as an iframe...&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;So this is my Saturday project. Let's see how far I can get today.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;09:30 - Wrote the into above and checking online that nobody has already done this.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;09:31 - This can be a totally static website with just Javascript to detect the browser. So it can be hosted in its entirety from S3. I always wanted to do that. Let's read up on how.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;09:38 - Seems simple enough. Just create a HTML page and upload it to a new bucket on S3. Then turn the "website" switch in the bucket properties.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Created a bucket called "clearcache" (I already have a Amazon account).&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Created a new local directory for this project on the best source control system - DropBox :)&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Created a hello world html file called index.html&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Now just &lt;/span&gt;&lt;span style="background-color: #ffe599; font-family: 'Courier New', Courier, monospace;"&gt;s3cmd sync . s3://clearcache&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Oops! Amazon says access denied when I tried to view the website at&amp;nbsp;&lt;/span&gt;&lt;a href="http://clearcache.s3-website-us-east-1.amazonaws.com/"&gt;http://clearcache.s3-website-us-east-1.amazonaws.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Giving "View Permissions" to the bucket doesn't seem to solve the problem.. but making the index.html file public does. But that's no good - would I need to do this for every file I upload?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;09:56 - Time to &lt;a href="http://docs.amazonwebservices.com/AmazonS3/latest/dev/HostingWebsiteOnS3Setup.html"&gt;RTFM&lt;/a&gt;...&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;09:57 - Argh.. they ask you to create a "bucket policy" and upload it. Common, Amazon, couldn't this have been a checkbox?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Ok, so the site is up.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;10:10 - Let's give it a nice name like&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt; clearcache.gigantt.com&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;. Amazon suggest adding a cname in the domain DNS records.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;That doesn't seem to work. Gives a permission error..&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;The manual says the bucket name has to be the same as the domain name.. rats!&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Ok, let's rename the bucket to &lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;clearcache.gigantt.com&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Great, now I get to wait 30 minutes for the dns cache to expire.&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;I guess that's a good a time as any to eat breakfast.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;10:42 - And we're back. And the new cname works:&amp;nbsp;&lt;/span&gt;&lt;a href="http://clearcache.gigantt.com/"&gt;http://clearcache.gigantt.com/&lt;/a&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Time for a little design.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;This website should be dead simple. You visit it and all you see is instruction on how to clear your browser. So we need some javascript that can detect browser, OS (because screen-shots will look different on each OS) and browser version. Probably also language, but let's start with just English for now.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;I'm thinking the index page should just contain enough js to determine the right version and then fetch the appropriate html. So it's basically a dictionary of browsers identifiers to HTML manuals. Which also means we need to show a default in case we don't have a manual for the specific browser at hand. That can probably be some 3rd party web site that explains the same steps but doesn't detect the version.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;10:53 - Cool. There's a &lt;a href="http://www.quirksmode.org/js/detect.html"&gt;JS library &lt;/a&gt;that does browser detection pretty well. We'll make our index.html file link to it and also add JQuery just for good measure.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;10:58 - Here's our skeleton HTML. We'll worry about validation later:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;iframe src="http://pastebin.com/embed_iframe.php?i=Mv8B3BPw" style="border: none; width: 100%;"&gt;&lt;/iframe&gt;


&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;It prints:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
Your Browser is Chrome 16
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;11:06 - Let's figure out the dictionary we're going to use. I want it to degrade gracefully, so if we have instructions for FireFox but maybe not the specific version in question then it's probably better to show instructions for some other version than to fallback to the options of last resort (linking to an external page). So the keys need to be Language / Browser / Version / OS - in that order. This order makes sense because the same instructions on different OSs are much more similar to each other than instructions for different browsers on the same OS....&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;First let's shove all the JS into one main file:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;iframe src="http://pastebin.com/embed_iframe.php?i=LNihKiVu" style="border: none; height: 15em; width: 100%;"&gt;&lt;/iframe&gt;

&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;12:10 - Here's main.js. It looks for the best match and tries to load the relevant instruction manual:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;iframe src="http://pastebin.com/embed_iframe.php?i=u73EWweU" style="border: none; height: 40em; width: 100%;"&gt;&lt;/iframe&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;12:23 - Now I just need to populate the directory structure lang/browser/version/os.html with a few initial manuals. Let's create the first one for Chrome, then style it a bit.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;12:48 - First manual for Chrome is ready. The html page itself has no styling at all:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;iframe src="http://pastebin.com/embed_iframe.php?i=Fa35pyjv" style="border: none; height: 30em; width: 100%;"&gt;&lt;/iframe&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;And it looks like this:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-TjYwnTyObGM/Ty0OETHssGI/AAAAAAABPiY/LE65yUmhL5o/s1600/manual1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-TjYwnTyObGM/Ty0OETHssGI/AAAAAAABPiY/LE65yUmhL5o/s1600/manual1.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;So obviously it needs some nicer styling.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;12:53 - Let's add CSS to this thing. First, we want it to be mobile friendly from the get-go. So we'll keep the snapshots as narrow as possible and the design itself should be dead simple. Just a centered narrow page with ordered instructions.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-1U4h5VWVWJc/Ty0ceG2v8PI/AAAAAAABPig/AKQhO7BkbEk/s1600/style.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-1U4h5VWVWJc/Ty0ceG2v8PI/AAAAAAABPig/AKQhO7BkbEk/s1600/style.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Nothing too fancy.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;13:55 - Let's &lt;a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself"&gt;DRY&lt;/a&gt;&amp;nbsp;things up. I really don't feel like writing the same html template for each manual. Only three things change, basically: the logo, the instruction text and the image that goes with each instruction. Everything else can and should be generated automatically.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;We want the entire manual HTML file above to be reduced to the following JS snippet:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;


&lt;iframe src="http://pastebin.com/embed_iframe.php?i=ysVtmjLT" style="border: none; height: 15em; width: 100%;"&gt;&lt;/iframe&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;14:34 - Here's the code that generates our HTML from the above JS dictionary:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;iframe src="http://pastebin.com/embed_iframe.php?i=cmHH2NZf" style="border: none; height: 15em; width: 100%;"&gt;&lt;/iframe&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Even the image names are auto-generated (image1.png, image2.png, ...) and each browser has its logo specified just once. Here is the resulting directory structure:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-RQOF8cSd2cU/Ty0nAZ0MTdI/AAAAAAABPiw/LAKOFMUxcYs/s1600/dir.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-RQOF8cSd2cU/Ty0nAZ0MTdI/AAAAAAABPiw/LAKOFMUxcYs/s1600/dir.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;14:39 - Lunch time. Afterwards I'll add Firefox and IE.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;15:48 - Firefox 10 and IE 9 are done. Now it's just a matter of adding more browsers and OSs. But I think I'll offload this to an outsourcing contract on &lt;a href="http://odesk.com/"&gt;oDesk&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;That was fun. Visit &lt;a href="http://clearcache.gigantt.com/"&gt;http://clearcache.gigantt.com&lt;/a&gt; to see the finished product.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Sources: &lt;a href="http://pastebin.com/uDMYW27H"&gt;main.js&lt;/a&gt;, &lt;a href="http://pastebin.com/j5E6xLiC"&gt;index.html&lt;/a&gt;, &lt;a href="http://pastebin.com/5vmNaYmw"&gt;manual.css&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-7445562054583685218?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=YT2WRPQNx70:KMyhN91Q5PE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=YT2WRPQNx70:KMyhN91Q5PE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=YT2WRPQNx70:KMyhN91Q5PE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=YT2WRPQNx70:KMyhN91Q5PE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=YT2WRPQNx70:KMyhN91Q5PE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=YT2WRPQNx70:KMyhN91Q5PE:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=YT2WRPQNx70:KMyhN91Q5PE:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=YT2WRPQNx70:KMyhN91Q5PE:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=YT2WRPQNx70:KMyhN91Q5PE:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/YT2WRPQNx70" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2012/02/clear-browser-cache-saturday-project.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/7445562054583685218?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/7445562054583685218?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/YT2WRPQNx70/clear-browser-cache-saturday-project.html" title="Clear Browser Cache - a Saturday Project" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-TjYwnTyObGM/Ty0OETHssGI/AAAAAAABPiY/LE65yUmhL5o/s72-c/manual1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2012/02/clear-browser-cache-saturday-project.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YASHc8eip7ImA9WhRUFUU.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-5169486880675713626</id><published>2012-01-26T02:47:00.000-08:00</published><updated>2012-01-26T05:39:09.972-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-26T05:39:09.972-08:00</app:edited><title>How to Shampoo Your Employees</title><content type="html">&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;I joined the Israeli Defense Force in 1997 and served the mandatory three year period as a software developer. Army service usually consists of three* phases: first year - you learn the ropes, second year - you get things done, third year - you teach the new guys.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/--u2D0tfLWMw/TyEv_t7z0dI/AAAAAAABPRc/3egPAp2wSHA/s1600/iStock_000017361880XSmall.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="212" src="http://3.bp.blogspot.com/--u2D0tfLWMw/TyEv_t7z0dI/AAAAAAABPRc/3egPAp2wSHA/s320/iStock_000017361880XSmall.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;The Hebrew term for this period where the veterans teach the newcomers is called "the overlap", which, incidentally, is exactly the same Hebrew word for "shampooing". Don't ask me why. It's weird. So the veterans shampoo the newcomers and thus the wheels keep rolling from year to year.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Something similar happens in software companies. The term "training period" doesn't really capture the essence of what really goes on. Newcomers are often extremely well trained at their job already and all they really have to go though is a getting-to-know phase. Getting to know the product, the team, how things usually work. You know, shampooing... English speakers, I suggest you adopt this term.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;One problem that plagues many software teams is knowledge hoarding. You all know someone like that. Someone who really loves being the most informed. Some veteran to whom everyone comes with questions. I guess some people think that makes them more valuable. I think they should be fired as quickly as possible because I've yet to see someone like that actually mend his ways.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;The perfect team player, on the other hand, is someone who's powerful, effective, but also completely replaceable. Like a CPU core. Your machine has four of them. They're expensive and they get things done. But lose one of them and your computer will keep on going, just a little slower. There's nothing it won't be able to do with just three cores, and when you plug in a new one things will go back to normal.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Now here's the secret for ultimate shampooing.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Ready?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Take the third year and the first year and squish them together. In other words, when a newcomer arrives on the scene his first order of business is to write the shampooing plan for his replacement. If one was already written, he can improve and augment it as he picks things up.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;That's a great general principle, and it applies not only to newcomers, because in our line of work we constantly learn new things.&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Keep nothing &lt;/span&gt;&lt;i style="font-family: Arial, Helvetica, sans-serif;"&gt;solely&lt;/i&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; in your head. Be mindful of what you learn, and document it in a&amp;nbsp;discover-able,&amp;nbsp;public way. Not only the idiosyncratic quirks of your project, but also tricks of the trade, theoretical knowledge of the problem domain, mapping out who knows what and where to find stuff. Everything.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Gigantt has recently recruited a QA manager. Until now the QA team had to deal without one. His first job is to write our &lt;i&gt;QA Manager Handbook, &lt;/i&gt;which ought to include 100% of what his successor would have to read in order to get going.&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Being completely replaceable as a team member almost makes you irreplaceable, because so few of us are actually that minded towards knowledge sharing.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;_________________________________________________________&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;* Actually everything in the army consists of three parts. It's... exhausting.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-5169486880675713626?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=uLpBOeCZSVs:TkbZQi_UAc8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=uLpBOeCZSVs:TkbZQi_UAc8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=uLpBOeCZSVs:TkbZQi_UAc8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=uLpBOeCZSVs:TkbZQi_UAc8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=uLpBOeCZSVs:TkbZQi_UAc8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=uLpBOeCZSVs:TkbZQi_UAc8:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=uLpBOeCZSVs:TkbZQi_UAc8:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=uLpBOeCZSVs:TkbZQi_UAc8:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=uLpBOeCZSVs:TkbZQi_UAc8:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/uLpBOeCZSVs" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2012/01/how-to-shampoo-your-employees.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/5169486880675713626?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/5169486880675713626?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/uLpBOeCZSVs/how-to-shampoo-your-employees.html" title="How to Shampoo Your Employees" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/--u2D0tfLWMw/TyEv_t7z0dI/AAAAAAABPRc/3egPAp2wSHA/s72-c/iStock_000017361880XSmall.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2012/01/how-to-shampoo-your-employees.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQERH46fip7ImA9WhRWFU4.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-4780575580541979302</id><published>2012-01-01T08:17:00.000-08:00</published><updated>2012-01-02T11:41:45.016-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-02T11:41:45.016-08:00</app:edited><title>Handwritten Signatures in MS Word</title><content type="html">&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;How many times have you had to print a Word document just so you can sign it and then fax/scan it back to someone?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Ideally you should be able to add your signature directly to the Word document, and then print it to PDF or just send it. This turns out to be really tricky to do, but today I've cracked the problem.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Typically, you get a document looking like this:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-IWTYXLLZ0Jo/TwB0U-ebPFI/AAAAAAABO-4/EJMAiGlJWMk/s1600/communist.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="257" src="http://4.bp.blogspot.com/-IWTYXLLZ0Jo/TwB0U-ebPFI/AAAAAAABO-4/EJMAiGlJWMk/s640/communist.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;How do we add a signature? Well, we could sign our name on a white piece of paper, scan it &amp;nbsp;and just plant that image in Word, right? Not quite. When you scan an image (or take a photo with your iPhone for that matter) you get a JPEG image, and JPEG images do not support &lt;i&gt;transparency&lt;/i&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Here's what a scanned signature looks like right off the scanner:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-gRauebF2P8k/TwCFFz5ss_I/AAAAAAABPAM/eyJEdeBAx-o/s1600/sig1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-gRauebF2P8k/TwCFFz5ss_I/AAAAAAABPAM/eyJEdeBAx-o/s1600/sig1.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;First thing you'll notice is it's big. If you want your signature to look legit when the document is printed you have to scan it at at least 300 &lt;a href="http://en.wikipedia.org/wiki/Dots_per_inch"&gt;DPI&lt;/a&gt;. Your computer screen, however, has a resolution of about 75 DPI normally. So if you add this photo to Word you'll have to re-size it down. The end result is something that looks like this when printed:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-jpZdNaNo_xw/TwCFTQGhR2I/AAAAAAABPAY/FqDMzCkS32w/s1600/jpg+in+word.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-jpZdNaNo_xw/TwCFTQGhR2I/AAAAAAABPAY/FqDMzCkS32w/s1600/jpg+in+word.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Terrible.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;First of all, the white background of the signature photo is opaque. As a result the image hides the "Signature" text and the line we're supposed to sign on. We want to somehow make the white areas transparent, so that when we plant the signature onto the page it looks as if it was drawn on by hand, not plastered on with a computer. This can be done with image editing software, such as Paint.NET (free), if you know what you're doing. The resulting image must be saved in a more appropriate image format - one that supports transparency. Best is PNG.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;But even &lt;b&gt;that's&lt;/b&gt;&amp;nbsp;not enough. The end result, when printed, still looks terribly fake. Here's a close-up version to illustrate:&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ZFAkoaVzWkg/TwCFytvrdCI/AAAAAAABPAk/eFSKYcDGTNM/s1600/upclose.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-ZFAkoaVzWkg/TwCFytvrdCI/AAAAAAABPAk/eFSKYcDGTNM/s1600/upclose.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;See how pixelated it looks? When you print this on a piece of paper you definitely see the difference. Why is this happening? Didn't we take a hi-res scan of the signature?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Why? Because&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Word is dumb. When you scan an image in high resolution (e.g. 300 or DPI, same as a good printer) the image you get on your computer is big.&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;When you then resize the image in Word to fit the signature space, Word just prints the picture as it appears on screen (i.e. in 75 DPI). It's not smart enough to say "this picture is scaled down, but I do have the original high-resolution at hand, so I can send it to the printer at 300 DPI".&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Also, what if we want to print at 600 DPI, but our scanned image is just in 300 DPI? Ideally we'd want a &lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Vector_graphics"&gt;vector&amp;nbsp;&lt;/a&gt;&lt;/i&gt;image of our signature, not a &lt;a href="http://en.wikipedia.org/wiki/Raster_graphics"&gt;&lt;i&gt;raster&lt;/i&gt; &lt;/a&gt;image. Vector graphics nowadays is usually saved in the popular (and open) &lt;a href="http://en.wikipedia.org/wiki/Scalable_Vector_Graphics"&gt;SVG &lt;/a&gt;format. And you can find &lt;a href="http://vectormagic.com/home"&gt;services online&lt;/a&gt;&amp;nbsp;that will try to convert a raster image (e.g. jpg) to SVG. Only one problem with this: Word can't handle SVG. So there's one more hoop to jump through.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Here's what you need to do to take a scanned image of a signature and convert it to something you can actually add to Word.&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;You need just one application - it's called &lt;/span&gt;&lt;a href="http://inkscape.org/" style="font-family: Arial, Helvetica, sans-serif;"&gt;Inkscape&lt;/a&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;and it's a totally free vector graphics application.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Take a white A4 paper and put your signature on it using a nice, thick pen.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Scan it at 300 DPI (grey-scale is fine, too).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Crop out everything but the signature. This can usually be done in the scanner program itself if you do a pre-scan. But you can also do it with MS Paint.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Save it as JPG.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Open Inkscape.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Drag and drop your scanned JPG into Inkscape.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Select the image in Inkscape and choose Path -&amp;gt; Trace Bitmap from the menu.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Use "Brightness Cutoff" with a high threshold (over 0.9) and press Ok.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;It will create a vector version of the signature and place it directly above the image. Drag it away to see the difference between the two.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Feel free to play with the threshold until you get a good reproduction of the original image.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Now select the original image and delete it (DEL).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Select the good vector version and do File -&amp;gt; Document Properties -&amp;gt; Fit page to selection.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Now save as &lt;b&gt;EMF&lt;/b&gt;.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;You can now drag and drop this EMF into Word. Make sure the Text Wrap property of the image in Word is set to "In Front of Text" and then just place it over the signature space.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Here's a close-up of the raster vs. vector images side by side in Inkscape:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-5G-z5id_vwA/TwCDW5ABJCI/AAAAAAABO_o/1WvRKLHzOuI/s1600/sign+side+by+side.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-5G-z5id_vwA/TwCDW5ABJCI/AAAAAAABO_o/1WvRKLHzOuI/s1600/sign+side+by+side.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Here's just one letter scaled way up, just so you see how good the vector version is:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-sL4imqsJY1s/TwCDlGWnWvI/AAAAAAABO_0/JLvZpmx3FrU/s1600/just+n.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-sL4imqsJY1s/TwCDlGWnWvI/AAAAAAABO_0/JLvZpmx3FrU/s1600/just+n.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;And here's what it looks like in Word:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-NwO-nkc-xpo/TwCEttuko1I/AAAAAAABPAA/CcT7qX4c5DA/s1600/inword.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-NwO-nkc-xpo/TwCEttuko1I/AAAAAAABPAA/CcT7qX4c5DA/s1600/inword.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Keep that EMF file at hand.&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;No more printing, faxing and scanning.&amp;nbsp;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-4780575580541979302?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=FVDff4EgLEE:kOn0W29lIus:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=FVDff4EgLEE:kOn0W29lIus:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=FVDff4EgLEE:kOn0W29lIus:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=FVDff4EgLEE:kOn0W29lIus:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=FVDff4EgLEE:kOn0W29lIus:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=FVDff4EgLEE:kOn0W29lIus:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=FVDff4EgLEE:kOn0W29lIus:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=FVDff4EgLEE:kOn0W29lIus:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=FVDff4EgLEE:kOn0W29lIus:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/FVDff4EgLEE" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2012/01/handwritten-signature-in-ms-word.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/4780575580541979302?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/4780575580541979302?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/FVDff4EgLEE/handwritten-signature-in-ms-word.html" title="Handwritten Signatures in MS Word" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-IWTYXLLZ0Jo/TwB0U-ebPFI/AAAAAAABO-4/EJMAiGlJWMk/s72-c/communist.jpg" height="72" width="72" /><thr:total>6</thr:total><feedburner:origLink>http://blog.gigantt.com/2012/01/handwritten-signature-in-ms-word.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8ERn49cCp7ImA9WhRXGUQ.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-1890855548457585218</id><published>2011-12-26T23:19:00.000-08:00</published><updated>2011-12-27T06:40:07.068-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-27T06:40:07.068-08:00</app:edited><title>The GitHub Job Interview</title><content type="html">&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;One interview is never enough&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;to find if the candidate's up to snuff&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;takes two or three more&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;job interviews before&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;you can tell if the CV's a bluff&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;How the hell do you interview a start-up CTO? Finding software developers is hard enough, but a start-up founder can't take any chances when it comes to hiring developer #1. So, what, &lt;i&gt;five &lt;/i&gt;interviews? How much can you &lt;/span&gt;&lt;i style="font-family: Arial, Helvetica, sans-serif;"&gt;talk&lt;/i&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; to someone before you know what's like to work with them?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;It's apparent to anyone who's done this that the marginal value of yet another interview approaches &lt;i&gt;nada&lt;/i&gt;&amp;nbsp;after two or three sessions. Some people are just good at being interviewed and can charm the quark off a hadron, but when you start working together all kinds of stuff rises to the surface.&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;None of this is news to experienced hiring managers. Everybody knows that working together with someone is the ultimate job interview. If only you could try people out before hiring...&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;Bad Solution&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Some hiring managers try to do that. Sort of. They hand out programming exercises and expect candidates to not mind wasting their time developing nonsense code just for the sake of the interview. This sucks. I never do that, and I'd never play along if someone asked me to. It's plain unfair. Worse, however, are those that actually offload real work onto candidates. Yea, that happens. People are expected to work for free before being hired.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;You might say, just hire. Let someone work "on probation" for a short period and if it works out, great. If not.. well, it doesn't really work out that great for &lt;i&gt;them&lt;/i&gt;. Being rejected after two weeks of work doesn't look good on &lt;i&gt;anyone's &lt;/i&gt;CV. Moreover, the time you have to spend with new employees getting them up to speed with your code-base, development guidelines, the product and so on is just too much of an investment. And at the end you're likely facing a disgruntled ex-employee with access to your source-control system. Yikes.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;Awesome Solution&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;That's why I'm advocating the GitHub job interview. Open-Source projects are a fantastic way to collaborate with people you don't know too well. And GitHub in particular, with its ease of forking and pull-requests is just the best (and biggest) platform for open-source collaboration.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Here's what you do. You come up with a cool idea of an open-source project. This becomes your company's development sandbox. Candidates are asked to then contribute to the project in some way. You want to see them code? Ask them to develop a module. You want to see them tackle a bug? Ask them to choose one from the bug-list. This works for every aspect of development work. You can design features together. You can gauge their communication skills. You can see how well they handle reviews. You can ask them to document their work and see how well they can write. But above all, you're not taking advantage of anyone, and true developers probably won't mind investing time into an open-source effort.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Choose your GitHub project wisely. It should be something relatively fun. It ought to use the same technology stack your company uses. And it should be relatively simple to grasp, because the point is not to be investing too much time training people you're not yet hiring.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Not all developers have existing online projects they can point to when you're interviewing them. &amp;nbsp;So make one for them. You avoid hiring and firing. You reduce risk by investing less time and not exposing your IP to candidates.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;This is what Gignatt will be doing, now that &lt;a href="http://linkd.in/gigantt_job1"&gt;we're hiring&lt;/a&gt; our first employees. Stay tuned for details on our open-source project.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-1890855548457585218?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=gP4KpIEFqVA:CDjBKbgHFbU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=gP4KpIEFqVA:CDjBKbgHFbU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=gP4KpIEFqVA:CDjBKbgHFbU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=gP4KpIEFqVA:CDjBKbgHFbU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=gP4KpIEFqVA:CDjBKbgHFbU:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=gP4KpIEFqVA:CDjBKbgHFbU:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=gP4KpIEFqVA:CDjBKbgHFbU:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=gP4KpIEFqVA:CDjBKbgHFbU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=gP4KpIEFqVA:CDjBKbgHFbU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/gP4KpIEFqVA" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2011/12/github-job-interview.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/1890855548457585218?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/1890855548457585218?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/gP4KpIEFqVA/github-job-interview.html" title="The GitHub Job Interview" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><feedburner:origLink>http://blog.gigantt.com/2011/12/github-job-interview.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkANQnwycCp7ImA9WhRSEkQ.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-5644332982722548756</id><published>2011-11-14T11:12:00.001-08:00</published><updated>2011-11-14T11:26:33.298-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-14T11:26:33.298-08:00</app:edited><title>A Self-Referential Demo Video: How To Plan Projects with Gigantt</title><content type="html">&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;We've been getting lots of helpful feedback from our beta users, and one question came up a few times: how do we plan a project?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;That's actually a great question. While using the application may be very easy, it's not often clear, when faced with a blank slate, how to start planning a project.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;So we made this short instructional video. It's three-minutes in length, but it tries to cover a lot. Not only how to get started, but also best practices and techniques we've been learning by using Gigantt ourselves.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;The video is doubly awesome because it's self-referential. You'll have to see what that means yourselves...&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/nertPtIlqfo?rel=0&amp;amp;hd=1" width="640"&gt;&lt;/iframe&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Don't forget our ever-growing &lt;a href="http://help.gigantt.com/wiki/Gigantt_Help"&gt;help wiki&lt;/a&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-5644332982722548756?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=za5KivrSCQ0:obqtwOa7o6Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=za5KivrSCQ0:obqtwOa7o6Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=za5KivrSCQ0:obqtwOa7o6Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=za5KivrSCQ0:obqtwOa7o6Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=za5KivrSCQ0:obqtwOa7o6Q:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=za5KivrSCQ0:obqtwOa7o6Q:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=za5KivrSCQ0:obqtwOa7o6Q:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=za5KivrSCQ0:obqtwOa7o6Q:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=za5KivrSCQ0:obqtwOa7o6Q:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/za5KivrSCQ0" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2011/11/self-referential-demo-video.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/5644332982722548756?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/5644332982722548756?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/za5KivrSCQ0/self-referential-demo-video.html" title="A Self-Referential Demo Video: How To Plan Projects with Gigantt" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/nertPtIlqfo/default.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2011/11/self-referential-demo-video.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcDRH4zeCp7ImA9WhRTGUw.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-7792779683205381219</id><published>2011-11-09T23:27:00.000-08:00</published><updated>2011-11-09T23:27:55.080-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-09T23:27:55.080-08:00</app:edited><title>Waze's Next Killer Feature</title><content type="html">&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;This post is completely off-topic. It's not about project planning. It's about the best damn GPS navigation software out there today - &lt;a href="http://www.waze.com/"&gt;Waze&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-VeGTwxw1NgY/Trt8DVf18RI/AAAAAAABO64/ZU-4qpFNG5Q/s1600/waze.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="121" src="http://4.bp.blogspot.com/-VeGTwxw1NgY/Trt8DVf18RI/AAAAAAABO64/ZU-4qpFNG5Q/s320/waze.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Waze is awesome because it uses information gathered from all its users' smart phones to learn where traffic is jammed and route drivers accordingly using the quickest route.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;But there's one thing I always miss when using Waze - it doesn't tell me where I can park. Sure, adding a parking lot layer over the map is sort of a solution. Many competing products do this. But in some places [cough]Tel Aviv![/cough] this is simply not enough because there are &lt;b&gt;waaay &lt;/b&gt;too few parking lots.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-FIvOxVicfVo/Trt7x5d5ZCI/AAAAAAABO6w/8gznz2AI3fs/s1600/parking.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="307" src="http://4.bp.blogspot.com/-FIvOxVicfVo/Trt7x5d5ZCI/AAAAAAABO6w/8gznz2AI3fs/s320/parking.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Where do I park???&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;So here's what Waze's next killer feature could be: &lt;b&gt;crowd-sourced parking&lt;/b&gt;. As a user I would definitely pay money to know where the closest publicly available parking spot it. Waze could set up a whole economy of parking spots: when you leave a spot you "check out" with Waze. If you're looking for a parking spot you hit the P button and Waze directs you to the nearest one. Users could accumulate parking credits when they check out and another Waze user takes their place.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;I hope somebody there reads this.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Anywayz, Gigantt&amp;nbsp;♥ Waze.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-7792779683205381219?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=U2ViizZZSsk:g3Tpr8K_eAs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=U2ViizZZSsk:g3Tpr8K_eAs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=U2ViizZZSsk:g3Tpr8K_eAs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=U2ViizZZSsk:g3Tpr8K_eAs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=U2ViizZZSsk:g3Tpr8K_eAs:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=U2ViizZZSsk:g3Tpr8K_eAs:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=U2ViizZZSsk:g3Tpr8K_eAs:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=U2ViizZZSsk:g3Tpr8K_eAs:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=U2ViizZZSsk:g3Tpr8K_eAs:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/U2ViizZZSsk" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2011/11/wazes-next-killer-feature.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/7792779683205381219?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/7792779683205381219?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/U2ViizZZSsk/wazes-next-killer-feature.html" title="Waze's Next Killer Feature" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-VeGTwxw1NgY/Trt8DVf18RI/AAAAAAABO64/ZU-4qpFNG5Q/s72-c/waze.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.gigantt.com/2011/11/wazes-next-killer-feature.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAAQXczeSp7ImA9WhRTEEo.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-7018714951337111729</id><published>2011-10-31T07:44:00.000-07:00</published><updated>2011-10-31T07:52:20.981-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-31T07:52:20.981-07:00</app:edited><title>Cheat Sheet</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;All you really need to know to get started with Gigantt is ENTER for a new task and INSERT for a new child task. But power users quickly become thirsty for more &lt;a href="http://help.gigantt.com/wiki/Keyboard_Shortcuts"&gt;keyboard shortcuts&lt;/a&gt;, and Gigantt has one for every possible action.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Gigantt's&amp;nbsp;&lt;a href="http://help.gigantt.com/"&gt;help wiki&lt;/a&gt; now contains a &lt;a href="http://help.gigantt.com/wi/images/9/92/Gigantt_KeyboardShortcuts.pdf"&gt;keyboard shortcut cheat sheet&lt;/a&gt; you can download and print.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-ujLCAmkI4x4/Tq6z5egFm7I/AAAAAAABO6o/UiNvsVNfBzY/s1600/cheet+sheet.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-ujLCAmkI4x4/Tq6z5egFm7I/AAAAAAABO6o/UiNvsVNfBzY/s400/cheet+sheet.png" width="282" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://help.gigantt.com/wi/images/9/92/Gigantt_KeyboardShortcuts.pdf"&gt;hi-res&lt;/a&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-7018714951337111729?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=k1b5n9OuEIQ:nshMjxSN8aQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=k1b5n9OuEIQ:nshMjxSN8aQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=k1b5n9OuEIQ:nshMjxSN8aQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=k1b5n9OuEIQ:nshMjxSN8aQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=k1b5n9OuEIQ:nshMjxSN8aQ:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=k1b5n9OuEIQ:nshMjxSN8aQ:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=k1b5n9OuEIQ:nshMjxSN8aQ:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=k1b5n9OuEIQ:nshMjxSN8aQ:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=k1b5n9OuEIQ:nshMjxSN8aQ:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/k1b5n9OuEIQ" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2011/10/cheat-sheet.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/7018714951337111729?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/7018714951337111729?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/k1b5n9OuEIQ/cheat-sheet.html" title="Cheat Sheet" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-ujLCAmkI4x4/Tq6z5egFm7I/AAAAAAABO6o/UiNvsVNfBzY/s72-c/cheet+sheet.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2011/10/cheat-sheet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EGRHo7fyp7ImA9WhdaEkw.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-8045705153081633417</id><published>2011-10-21T08:40:00.000-07:00</published><updated>2011-10-21T08:40:25.407-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T08:40:25.407-07:00</app:edited><title>Gigantt Presenting at TechAviv</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://photos3.meetupstatic.com/photos/event/9/b/c/0/600_52359872.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="238" src="http://photos3.meetupstatic.com/photos/event/9/b/c/0/600_52359872.jpeg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Gigantt will be on stage Wednesday at &lt;a href="http://www.meetup.com/TechAviv/events/36813152/"&gt;the next TechAviv Founders Club conference&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Come watch and mingle - places are limited, so better register now.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-8045705153081633417?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=zEFdVDCYrQQ:V0zFjbMbIMY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=zEFdVDCYrQQ:V0zFjbMbIMY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=zEFdVDCYrQQ:V0zFjbMbIMY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=zEFdVDCYrQQ:V0zFjbMbIMY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=zEFdVDCYrQQ:V0zFjbMbIMY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=zEFdVDCYrQQ:V0zFjbMbIMY:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=zEFdVDCYrQQ:V0zFjbMbIMY:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=zEFdVDCYrQQ:V0zFjbMbIMY:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=zEFdVDCYrQQ:V0zFjbMbIMY:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/zEFdVDCYrQQ" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2011/10/gigantt-presenting-at-techaviv.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/8045705153081633417?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/8045705153081633417?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/zEFdVDCYrQQ/gigantt-presenting-at-techaviv.html" title="Gigantt Presenting at TechAviv" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2011/10/gigantt-presenting-at-techaviv.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEDQ3syeCp7ImA9WhdbFkw.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-2998222124312099276</id><published>2011-10-14T09:44:00.000-07:00</published><updated>2011-10-14T09:44:32.590-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-14T09:44:32.590-07:00</app:edited><title>Help!</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://help.gigantt.com/"&gt;Gigantt's Help web site&lt;/a&gt; is now up. It's in the form of a wiki. A true wiki; meaning anyone can edit it.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Right now it contains mostly articles explaining the existing features, keyboard shortcuts, FAQs, that kind of stuff. But I do welcome contributions from users.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-2998222124312099276?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=dEM-N83Cn5U:dcEvlPKE-ms:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=dEM-N83Cn5U:dcEvlPKE-ms:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=dEM-N83Cn5U:dcEvlPKE-ms:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=dEM-N83Cn5U:dcEvlPKE-ms:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=dEM-N83Cn5U:dcEvlPKE-ms:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=dEM-N83Cn5U:dcEvlPKE-ms:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=dEM-N83Cn5U:dcEvlPKE-ms:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=dEM-N83Cn5U:dcEvlPKE-ms:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=dEM-N83Cn5U:dcEvlPKE-ms:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/dEM-N83Cn5U" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2011/10/help.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/2998222124312099276?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/2998222124312099276?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/dEM-N83Cn5U/help.html" title="Help!" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2011/10/help.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUINSXgyfSp7ImA9WhdbEUk.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-6572779400218593736</id><published>2011-10-08T23:59:00.000-07:00</published><updated>2011-10-08T23:59:58.695-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-08T23:59:58.695-07:00</app:edited><title>Team Edition</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Today, after way too many weeks of testing and improvements, Gigantt's &lt;i&gt;Team Edition &lt;/i&gt;is live. You can finally assign tasks to people (or other resources) and enjoy Gigantt's smart goal-based task scheduling.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Here's what the new version looks like:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-sMvegsaqmdU/To9UR8jFyWI/AAAAAAABO4E/bMqBBxPArvg/s1600/team+edition.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="218" src="http://2.bp.blogspot.com/-sMvegsaqmdU/To9UR8jFyWI/AAAAAAABO4E/bMqBBxPArvg/s400/team+edition.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;A few new things to notice.&amp;nbsp;&lt;/span&gt;All of these tasks are assigned to Cosmo Kramer, as evident by the watermark on the bottom-left corner. It tells us that Kramer is in charge of this part of the plan, and that any new task created here will be assigned to him by default.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-O3zYOLmlXw8/To9U-XWlTUI/AAAAAAABO4I/uHQa39WUfEo/s1600/watermark.png" imageanchor="1" style="display: inline !important; margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="68" src="http://1.bp.blogspot.com/-O3zYOLmlXw8/To9U-XWlTUI/AAAAAAABO4I/uHQa39WUfEo/s320/watermark.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;If we decide to add another task here and assign it to George Costanza, we'll see his name on the left of the task:&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-6miK5AAniMc/To9V-M_RMVI/AAAAAAABO4M/JPUPHmSq9tA/s1600/george.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="267" src="http://1.bp.blogspot.com/-6miK5AAniMc/To9V-M_RMVI/AAAAAAABO4M/JPUPHmSq9tA/s400/george.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;All the other tasks belong to Kramer - the default owner of tasks in this area - so there's no point in showing his name beside each and every task. That's why only George's name is shown.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;To reassign a task just click on the left side-panel and you'll see this popup where you can select any team member:&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-YS4glIq5Vg4/To9YP8PFk9I/AAAAAAABO4Y/PSoFqwXsBII/s1600/owner.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-YS4glIq5Vg4/To9YP8PFk9I/AAAAAAABO4Y/PSoFqwXsBII/s320/owner.png" width="248" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;You can also reach it with the keyboard - Tab will reach the button and Enter will open the panel.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;The start &amp;amp; finish dates of each task is shown in the time-bar above:&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-MWZ1m3m5u-U/To9YaSl2r3I/AAAAAAABO4c/pcu9TD_mGi8/s1600/dates.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="94" src="http://3.bp.blogspot.com/-MWZ1m3m5u-U/To9YaSl2r3I/AAAAAAABO4c/pcu9TD_mGi8/s320/dates.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;There's now a wider range of estimates that you can choose for each task, including even a one-minute estimate (useful for check-lists). The estimate panel has an array of buttons so that estimating a task is just one click for ultra-fastness:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-n4MDSVn1vsw/To9ZToW7IOI/AAAAAAABO4g/VOZUe0DsoV4/s1600/estimate.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="230" src="http://2.bp.blogspot.com/-n4MDSVn1vsw/To9ZToW7IOI/AAAAAAABO4g/VOZUe0DsoV4/s320/estimate.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Important note: as part of the beta-ness of this version there's still no UI to add/remove members from your team. That's in the next version. No worries, though, just write to support@gigantt.com and we'll do it for you.
&lt;/span&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-6572779400218593736?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=gxlvrg0TYSg:OcLoWf-Er5c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=gxlvrg0TYSg:OcLoWf-Er5c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=gxlvrg0TYSg:OcLoWf-Er5c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=gxlvrg0TYSg:OcLoWf-Er5c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=gxlvrg0TYSg:OcLoWf-Er5c:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=gxlvrg0TYSg:OcLoWf-Er5c:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=gxlvrg0TYSg:OcLoWf-Er5c:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=gxlvrg0TYSg:OcLoWf-Er5c:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=gxlvrg0TYSg:OcLoWf-Er5c:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/gxlvrg0TYSg" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2011/10/team-edition.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/6572779400218593736?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/6572779400218593736?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/gxlvrg0TYSg/team-edition.html" title="Team Edition" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-sMvegsaqmdU/To9UR8jFyWI/AAAAAAABO4E/bMqBBxPArvg/s72-c/team+edition.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2011/10/team-edition.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4HQ34zfSp7ImA9WhdQEkw.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-6822241147961991831</id><published>2011-08-12T22:22:00.000-07:00</published><updated>2011-08-12T22:22:12.085-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-12T22:22:12.085-07:00</app:edited><title>Prioritizing Goals in Gigantt</title><content type="html">&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Should we invest time in infrastructure or focus on shipping the next big feature? Should the QA team work on "Product A" or "Product B"?&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Managing a complex work plan that spans multiple projects and teams means always being able to decide what's more important. And there's &lt;b&gt;always&lt;/b&gt;&amp;nbsp;a decision to be made. Telling your development team to focus 35% of their time on one project and the rest on another is a sure recipe for both projects &lt;i&gt;not&lt;/i&gt; finishing on time. Keep it simple, break the plan into smaller chunks and decide what's more important.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;This is how Gigantt tackles prioritization. Instead of maintaining complex resource allocation schemes, users of Gigantt define g&lt;i&gt;oals &lt;/i&gt;and prioritize&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt; them. A&amp;nbsp;&lt;i&gt;goal&lt;/i&gt; in Gigantt is just any task in the work plan. When you mark a task as a &lt;i&gt;goal&lt;/i&gt;, Gigantt analyzes the entire work plan and considers all the tasks that have to be completed for the &lt;i&gt;goal &lt;/i&gt;to be reached. For you nerds, it's like a reverse DFS of the work-plan graph. Okay, enough nerd talk, let's see an example.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;i&gt;Kramerica Industries &lt;/i&gt;has two products: &lt;i&gt;Widget&lt;/i&gt; and &lt;i&gt;Cajiggre&lt;/i&gt;, and there's a work-plan for a few weeks ahead.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-tbSnSADbAnc/TkT43VmnpjI/AAAAAAABOyE/CkS4WvOdm0M/s1600/CropperCapture91.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="252" src="http://2.bp.blogspot.com/-tbSnSADbAnc/TkT43VmnpjI/AAAAAAABOyE/CkS4WvOdm0M/s640/CropperCapture91.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Jerry is in charge of &lt;i&gt;Widget &lt;/i&gt;and Kramer is in charge of &lt;i&gt;Cajiggre&lt;/i&gt;, and as long as that's the case there's not much to prioritize. Work happens independently and in parallel. Things become more interesting when there are shared resources between products. So let's throw George into the mix as &lt;i&gt;QA Manager. &lt;/i&gt;George has to test each version of each product before it can be shipped, and there's only one George... Let's see how each product's plan looks now.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Jerry's plan looks OK. He does the development and George does the testing (and shipping) right after each version is finished:&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-KVcdLG5TW_8/TkT7VzqyAuI/AAAAAAABOyI/o8pCFUTHbpw/s1600/CropperCapture92.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="328" src="http://3.bp.blogspot.com/-KVcdLG5TW_8/TkT7VzqyAuI/AAAAAAABOyI/o8pCFUTHbpw/s640/CropperCapture92.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;But Kramer's plan has a few delays in it. For example, George is busy testing &lt;i&gt;Widget &lt;/i&gt;1.0 when he could be testing &lt;i&gt;Cajiggre &lt;/i&gt;2.0:&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-DhBm2s8SjU4/TkT7zV1AAHI/AAAAAAABOyM/LkbOoaxndD4/s1600/CropperCapture93.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="328" src="http://1.bp.blogspot.com/-DhBm2s8SjU4/TkT7zV1AAHI/AAAAAAABOyM/LkbOoaxndD4/s640/CropperCapture93.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;At which point a decision has to be made, which product is more important. Since &lt;i&gt;Widget &lt;/i&gt;appears before &lt;i&gt;Cajiggre &lt;/i&gt;in the work plan, Gigantt will automatically give it preference when assigning resources. Whatever appears on top is considered higher priority. This is true for simple tasks as well as for whole projects and it's the simplest way to prioritize in Gigantt. But what if &lt;i&gt;Cajiggre &lt;/i&gt;2.0 is actually a top priority for the company? We need finer-grained control over priorities, not just between products but also between individual versions of each one. We achieve this by marking all of the &lt;i&gt;ship &lt;/i&gt;tasks as goals.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Just toggle the little star icon for every task that should be considered a goal:&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-sIvWT7u7Hl4/TkT_b8bTKcI/AAAAAAABOyQ/nvKyVzGguoI/s1600/CropperCapture94.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="248" src="http://1.bp.blogspot.com/-sIvWT7u7Hl4/TkT_b8bTKcI/AAAAAAABOyQ/nvKyVzGguoI/s640/CropperCapture94.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;If we then click on&lt;i&gt; (prioritize)&amp;nbsp;&lt;/i&gt;we see an ordered table of all the goals in our work plan:&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-QIyHFPJ0rZg/TkT_3oj4wiI/AAAAAAABOyU/buA5XeWQmyA/s1600/CropperCapture95.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="308" src="http://4.bp.blogspot.com/-QIyHFPJ0rZg/TkT_3oj4wiI/AAAAAAABOyU/buA5XeWQmyA/s400/CropperCapture95.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;If we drag "Ship 2.0" to the top, as the video below shows, all the tasks leading up to "Ship 2.0" get rescheduled so that "Ship 2.0" completes as early as possible.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;iframe allowfullscreen="" frameborder="0" height="349" src="http://www.youtube.com/embed/3S6KmETF12s" width="560"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Same thing can be done with individual tasks, not just entire versions of the product. Since a goal is defined as &lt;i&gt;everything that must happen in order for a given task to finish &lt;/i&gt;it's entirely possible to define multiple goals in the same projects. Notice that goals can also overlap (share tasks).&lt;/span&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-5X6wrnfnTbs/TkYJmfbn83I/AAAAAAABOzI/bOhOpg8_hmE/s1600/CropperCapture97.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="186" src="http://1.bp.blogspot.com/-5X6wrnfnTbs/TkYJmfbn83I/AAAAAAABOzI/bOhOpg8_hmE/s400/CropperCapture97.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;first task is shared by both goals and thus has top priority (red)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Whenever there's any contention about a shared resource, managers can easily define any task as a goal and prioritize it to settle the dispute. They&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;can also play around with priorities to see how much it effects the finish dates of each goal.&amp;nbsp;Instead of allocating resources in advance to various teams and then fighting over who "owns" the lab this week, only goals are prioritized and everything else is derived from that. Prioritizing goals is less confrontational than prioritizing teams or entire products.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;What I like best about Gigantt's &lt;i&gt;goals&lt;/i&gt;&amp;nbsp;is how clearly the organization's priorities are conveyed to the teams. It's hard to get confused by that table above. Everybody knows where their efforts should be focused.&lt;/span&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/6772217076987084878-6822241147961991831?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=sBx8M_EKrk4:haPIPQEwpvw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=sBx8M_EKrk4:haPIPQEwpvw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=sBx8M_EKrk4:haPIPQEwpvw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=sBx8M_EKrk4:haPIPQEwpvw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=sBx8M_EKrk4:haPIPQEwpvw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=sBx8M_EKrk4:haPIPQEwpvw:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=sBx8M_EKrk4:haPIPQEwpvw:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=sBx8M_EKrk4:haPIPQEwpvw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=sBx8M_EKrk4:haPIPQEwpvw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/sBx8M_EKrk4" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2011/08/prioritizing-goals-in-gigantt.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/6822241147961991831?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/6822241147961991831?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/sBx8M_EKrk4/prioritizing-goals-in-gigantt.html" title="Prioritizing Goals in Gigantt" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-tbSnSADbAnc/TkT43VmnpjI/AAAAAAABOyE/CkS4WvOdm0M/s72-c/CropperCapture91.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2011/08/prioritizing-goals-in-gigantt.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EESHg_eSp7ImA9WhdSFU8.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-2136769272827319145</id><published>2011-07-24T08:33:00.000-07:00</published><updated>2011-07-24T08:33:29.641-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-24T08:33:29.641-07:00</app:edited><title>A Duck!</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;I believe it was the comedy genius John Cleese who once said that the funniest animal is the duck.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Today I took a day off from working on resource scheduling algorithms and decided to write a fun little tool that I've been needing. So, ever needed to copy paste some text from your PC to your iPhone? Sending yourself emails is so lame. I wanted something that was fast, requires no registration and nothing to install on my mobile phone.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;I give you &lt;a href="http://www.copy-duck.com/"&gt;Copy Duck&lt;/a&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ZMiQkBS_u3U/Tiw6dKI3tDI/AAAAAAABOpM/p7TU-WImcos/s1600/CropperCapture83.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-ZMiQkBS_u3U/Tiw6dKI3tDI/AAAAAAABOpM/p7TU-WImcos/s320/CropperCapture83.png" width="318" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;You just paste stuff, take a snapshot of the QR-code, and then you see the same text on your mobile. Tested it on Chrome/iPhone but it should work on any modern smartphone (if you have a QR scanner app).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;For the geeks: built with Google App Engine using Python, jQuery and Google Chart API.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-2136769272827319145?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=Zptv6eYKT2c:or8ujPSjvSk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=Zptv6eYKT2c:or8ujPSjvSk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=Zptv6eYKT2c:or8ujPSjvSk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=Zptv6eYKT2c:or8ujPSjvSk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=Zptv6eYKT2c:or8ujPSjvSk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=Zptv6eYKT2c:or8ujPSjvSk:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=Zptv6eYKT2c:or8ujPSjvSk:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=Zptv6eYKT2c:or8ujPSjvSk:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=Zptv6eYKT2c:or8ujPSjvSk:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/Zptv6eYKT2c" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2011/07/duck.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/2136769272827319145?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/2136769272827319145?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/Zptv6eYKT2c/duck.html" title="A Duck!" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-ZMiQkBS_u3U/Tiw6dKI3tDI/AAAAAAABOpM/p7TU-WImcos/s72-c/CropperCapture83.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.gigantt.com/2011/07/duck.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YHSHo-fSp7ImA9WhZbGEk.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-1313642521715005984</id><published>2011-06-23T09:02:00.000-07:00</published><updated>2011-06-23T09:05:39.455-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-23T09:05:39.455-07:00</app:edited><title>Keyboard vs. Mouse</title><content type="html">&lt;a href="http://dl.dropbox.com/u/132375/Gigantt/blog/keyboard.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;img border="0" height="133" src="http://dl.dropbox.com/u/132375/Gigantt/blog/keyboard.jpg" width="200" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;When it comes to speed nothing beats keyboard shortcuts. First time users of Gigantt often start out by using the mouse quite a lot: clicking on buttons, zooming in and out with the mouse wheel. But once they learn the keyboard shortcut alternatives they usually adopt them and don't look back. Ten fingers are faster than two fingers.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="clear: right; float: right; font-family: Verdana, sans-serif; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="145" src="http://dl.dropbox.com/u/132375/Gigantt/blog/mouse.jpg" width="200" /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Keyboard shortcuts also have the advantage of not cluttering up the screen with endless buttons and menus. But there's a &lt;a href="http://en.wikipedia.org/wiki/User_experience"&gt;UX&lt;/a&gt;&amp;nbsp;price to pay - a steeper learning curve. For everything but the most obvious and intuitive keyboard shortcuts, like ESC (cancel), Ctrl+C (copy), there's no getting around the fact that users probably won't be able to guess which key-combo corresponds to which feature.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;We still try our best to make sure keyboard shortcuts are as intuitive as possible. For example:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;D - Mark a task as &lt;b&gt;d&lt;/b&gt;one&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I - &lt;b&gt;I&lt;/b&gt;mplode&lt;b&gt; &lt;/b&gt;a few tasks into one complex task&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;E - &lt;b&gt;E&lt;/b&gt;xplode&lt;b&gt; &lt;/b&gt;a complex task into several tasks (the opposite of implode)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;L - Create a &lt;b&gt;l&lt;/b&gt;ink between tasks&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;DEL - deletes anything selected&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;INSERT - inserts a new task.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;See? It all makes sense...&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Until now nearly all mouse operations had keyboard alternatives. I say nearly because there's one thing you still couldn't do: select and manipulate arrows between tasks. Now you can.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ZRdSnZ65hjY/TgL2uKYsHFI/AAAAAAABOi8/Cxvg3PpAaAI/s1600/CropperCapture79.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;img border="0" height="106" src="http://1.bp.blogspot.com/-ZRdSnZ65hjY/TgL2uKYsHFI/AAAAAAABOi8/Cxvg3PpAaAI/s400/CropperCapture79.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;The Up &amp;amp; Down keys still navigate between tasks according to their vertical order. If you want to select the arrow &lt;i&gt;into &lt;/i&gt;the current task, just hit Left. You can then delete the arrow with DEL, insert an intermediate task with INSERT, and so on. If there are more than one arrow you can move between arrows with Up/Down as well.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;These new shortcut solve a painful UX problem: switching input modes. No matter which you prefer, mouse or keyboard, having to constantly switch between them is a real speed bump. So rejoice, fellow typists! From this day on no feature is beyond your keyboard's reach.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-1313642521715005984?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=5RPqjCPtLgQ:Y6ofngXWHl0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=5RPqjCPtLgQ:Y6ofngXWHl0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=5RPqjCPtLgQ:Y6ofngXWHl0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=5RPqjCPtLgQ:Y6ofngXWHl0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=5RPqjCPtLgQ:Y6ofngXWHl0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=5RPqjCPtLgQ:Y6ofngXWHl0:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=5RPqjCPtLgQ:Y6ofngXWHl0:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=5RPqjCPtLgQ:Y6ofngXWHl0:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=5RPqjCPtLgQ:Y6ofngXWHl0:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/5RPqjCPtLgQ" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2011/06/keyboard-vs-mouse.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/1313642521715005984?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/1313642521715005984?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/5RPqjCPtLgQ/keyboard-vs-mouse.html" title="Keyboard vs. Mouse" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-ZRdSnZ65hjY/TgL2uKYsHFI/AAAAAAABOi8/Cxvg3PpAaAI/s72-c/CropperCapture79.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2011/06/keyboard-vs-mouse.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkINQn87fip7ImA9WhZbFEg.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-938238307387891566</id><published>2011-06-18T21:43:00.001-07:00</published><updated>2011-06-18T21:43:13.106-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-18T21:43:13.106-07:00</app:edited><title>Collaboration in Gigantt</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Today we're happy to release the first collaborative version of Gigantt.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; margin-top: 0.5em;"&gt;&lt;br /&gt;
What's changed?&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Collaboration&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Multiple users can now edit the same plan at the same time. It's also cool for the same user to edit the plan in multiple browser windows. However, Gigantt still doesn't support managing multiple resources (i.e. a team). That's our next major feature.&lt;br /&gt;
So what happens if two people make conflicting changes at the exact same time? Gigantt helps you avoid this problem by featuring a "freeze period". Basically, any task you modify and its immediate vicinity get frozen for 60 seconds. During this period only you can edit these tasks. Others have to wait for them to "thaw". Frozen items have a snowflake icon. If you hover over one you'll see who has been editing it and how long until it thaws out. &lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;a href="http://2.bp.blogspot.com/-M2e9DcSyxOQ/Tf16VMh2dMI/AAAAAAABOhw/oGRin1W_R6o/s1600/frozen.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="107" src="http://2.bp.blogspot.com/-M2e9DcSyxOQ/Tf16VMh2dMI/AAAAAAABOhw/oGRin1W_R6o/s400/frozen.png" width="400" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
We think this approach to collaboration is better than simply letting people step on each other's toes and then asking them to resolve their conflicting changes.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Visual Clipboard&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
We got quite a lot of feedback about the way copy, cut &amp;amp; paste wasn't so intuitive. Now it's just like in Windows explorer, but you also get a visual clipboard window that shows you the contents of the clipboard.&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;a href="http://2.bp.blogspot.com/-G3hZAd1dRmA/Tf16hU7-oEI/AAAAAAABOh0/VgcESMcfie8/s1600/clipboard.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-G3hZAd1dRmA/Tf16hU7-oEI/AAAAAAABOh0/VgcESMcfie8/s1600/clipboard.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
The clipboard is also used for creating connections between remote items. To create a new link you select the source task and hit "L" (or the new link button). The task will be added to the clipboard in _linking_ mode. You then&lt;br /&gt;
select the target task and paste. That's it.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Performance&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
We won't bore you with all the details, but Gigantt is now wicked fast. Navigation is much quicker, even for very complex tasks, because sub-tasks are now rendered in the background (they sort of fade in). Auto-save is also much faster and so is every editing operation.&lt;br /&gt;
&lt;br /&gt;
There are tons more improvements and fixes. But I'll leave it to you to find.&lt;br /&gt;
&lt;br /&gt;
Keep sending us your feedback. It's really valuable to us and we do act on it.&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-938238307387891566?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=NdL1zkt-My0:gE54O7uMv6g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=NdL1zkt-My0:gE54O7uMv6g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=NdL1zkt-My0:gE54O7uMv6g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=NdL1zkt-My0:gE54O7uMv6g:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=NdL1zkt-My0:gE54O7uMv6g:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=NdL1zkt-My0:gE54O7uMv6g:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=NdL1zkt-My0:gE54O7uMv6g:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=NdL1zkt-My0:gE54O7uMv6g:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=NdL1zkt-My0:gE54O7uMv6g:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/NdL1zkt-My0" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2011/06/collaboration-in-gigantt.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/938238307387891566?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/938238307387891566?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/NdL1zkt-My0/collaboration-in-gigantt.html" title="Collaboration in Gigantt" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-M2e9DcSyxOQ/Tf16VMh2dMI/AAAAAAABOhw/oGRin1W_R6o/s72-c/frozen.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2011/06/collaboration-in-gigantt.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08CSXY-eyp7ImA9WhZUEkg.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-1755925822695598415</id><published>2011-06-05T00:44:00.000-07:00</published><updated>2011-06-05T00:44:28.853-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-05T00:44:28.853-07:00</app:edited><title>T-Shirt Sized Estimates</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-OvZM6uUWGog/TesxMXizReI/AAAAAAABOhQ/g4quECea3fY/s1600/size-L.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="110" src="http://2.bp.blogspot.com/-OvZM6uUWGog/TesxMXizReI/AAAAAAABOhQ/g4quECea3fY/s320/size-L.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;How long would it take you to write a Hello World program in a language you've never used? Minutes, probably. But how many minutes? three? nine? Asking for such precise estimates just doesn't feel right, does it? But if you pose the question like this "Would it take you less than 15 minutes?" it suddenly seems like an entirely reasonable question.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;This, in a nutshell, is why&amp;nbsp;T-shirt&amp;nbsp;sized estimates work. There are other reasons, as well, but before we dive into them let's review what T-shirt sized estimates (TSE) are.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Agile development methodology has made the concept of TSE rather popular in recent years. The idea is to give rough estimates to tasks in the form of T-shirt sizes. Small, medium, large, extra-large and so on; you get the point. But what does "small" mean, really? This is pretty open to interpretation and each team may define these sizes in its own terms. Some associate a duration range with each size. e.g. S is less than one hour. M is between one and three hours. Some associate T-shirt sizes with points that are later added to an aggregate estimate. But in essence the idea is simple: instead of arguing over how many minutes or hours a task is going to take, let's just agree that it's &lt;i&gt;small &lt;/i&gt;and move on.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Now there's a hidden aspect to this method. The sizes are limited and have an upper bound. No T-shirt is XXXXXXXXL. This is significant. People are terrible estimators of large efforts. We're less terrible with reasonably sized efforts. So using TSE doesn't mean we don't invest any real effort into estimating and just spit-ball "2 years!". It only means we're not fooling ourselves into thinking that giving a very specific estimate would improve our project's total estimate in any way.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;In fact, overly specific estimates are detrimental to delivery on time. Estimation is a well researched area in psychology. People aren't just bad at estimating, they're also terrible at knowing how bad their estimate really are. That's why the vast majority of people consider their own intelligence or attractiveness to be above average (which is plainly impossible). Ask people to give a 90% certainty estimate and they'll consistently give a too precise answer. A well known experiment has been widely replicated in many classrooms. Students are asked when queen Victoria was born, and they need to give their answer in the form of a &lt;b&gt;range &lt;/b&gt;of years (e.g. 1800-1900) that they consider to be &lt;b&gt;90% certain&lt;/b&gt; to be true. The goal of this experiment is to see how well people estimate their own ignorance/knowledge. Statistically, you would expect students to specify a range so wide that only 10% of the students would actually miss the correct year. But instead a much larger portion of the audience gives a wrong answer by selecting a too-narrow range. We're overconfident in our knowledge and underestimate our ignorance.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;When you think about it, efforts estimates are really a form of self-estimation (uh-oh!). People are asked how long it would take &lt;b&gt;them&lt;/b&gt;&amp;nbsp;to finish a task. That's why most estimates are overly optimistic. It's tied to a host of psychological factors: over-estimating our own capabilities and skills, wanting to please our superiors (and ourselves) with a smaller estimate, ignoring potential unexpected surprises along the way, etc.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Here's how TSE solve these problems.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;First, if you force people to round their answers they're more likely to factor some uncertainty into it. If you internally estimate a task at 40 minutes, but are then asked to choose between a 30 or 60 minute estimate, you'll suddenly remind yourself that 40 minutes doesn't really take into account various overheads or possible interruptions. And it's much easier to justify an over-estimation to yourself when it's someone else who's forcing you to round it up. Rounding up on a small scale is a good thing.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Second, by limiting yourself to small estimates you avoid those big vague predictions which are the root of all evil. If there's no T-shirt size for 3 months, then you have no choice but to actually break your estimate down to smaller chunks. This, in turns, forces you to invest just a bit more time into planning ahead than you might have otherwise. Suddenly you're reminded of holidays and hiring efforts, and integration, and setup time...&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;This, of course, is tied to the first rule of project underestimation: it's not the estimates that are wrong, it's the plan that's incomplete.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;If you allow yourself overly specific large estimates you also introduce a mental block: you've checked the box. It's "done". You wrote down "4 months" as your estimate for that distant milestone and now you don't have to look at it again until you reach that task. How convenient. If, on the other hand, you only allow yourself to provide smaller estimates, that milestone is now sitting there taunting you, begging to be further elaborated. You may be comfortable with a large estimate that's not based on reality, but if the aggregate estimate is small because you haven't yet taken the time to drill down even a bit to day-scale, well... that's just unacceptable.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Third, it's harder to argue with TSE. Which is another way of saying it's easier to accept a TSE. When your manager sees you've created a well thought out plan in advance that tries to capture all those details that normal intuition misses, he's not going to haggle with you over your that one-week estimate for integration time ("one week? no no... it's 4 days at most!"). That's just not going to matter. Everybody knows we're not that good at estimating in that scale, anyway, so as long as an estimate isn't egregiously wrong people just move on. The discussion is suddenly focused on &lt;b&gt;the&amp;nbsp;content &lt;/b&gt;of your work plan, instead of the price tag attached to each task. Now the challenge &amp;nbsp;is "who can think of more shit that can go wrong, that you forgot to include" instead of "who thinks this feature can be developed in less time".&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;I believe TSE needs to be the default method for estimating projects, &lt;b&gt;as long as they're restricted to small sizes&lt;/b&gt;. Gigantt uses a variation of TSE. Our estimates aren't actually S/M/L/XL. Here's what estimates currently look like.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-KGTE1taenO0/TesnXgpZ_4I/AAAAAAABOhM/DwR4pr8RTuE/s1600/TSE.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-KGTE1taenO0/TesnXgpZ_4I/AAAAAAABOhM/DwR4pr8RTuE/s1600/TSE.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;one week task estimate&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;The largest option is one week. Estimating a task is a one-click operation. This really reduces the friction of estimating (something people just don't like doing). It's always going to be the preferred, easiest way of estimating in Gigantt. In future versions we'll also add 0-duration estimates, for checklist type tasks (e.g. milestones). We may even add custom estimates (e.g. "4 months"), because we realize not everybody shares our above views on how to properly estimate projects and alternative project management solutions do offer this feature ubiquitously. But even if we do it's certainly going to be the 2nd choice, and we hope most users won't take advantage of this feature at all.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-1755925822695598415?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=T2yZPaah2uY:a-PRdd2QoQw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=T2yZPaah2uY:a-PRdd2QoQw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=T2yZPaah2uY:a-PRdd2QoQw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=T2yZPaah2uY:a-PRdd2QoQw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=T2yZPaah2uY:a-PRdd2QoQw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=T2yZPaah2uY:a-PRdd2QoQw:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=T2yZPaah2uY:a-PRdd2QoQw:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=T2yZPaah2uY:a-PRdd2QoQw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=T2yZPaah2uY:a-PRdd2QoQw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/T2yZPaah2uY" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2011/06/t-shirt-sized-estimates.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/1755925822695598415?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/1755925822695598415?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/T2yZPaah2uY/t-shirt-sized-estimates.html" title="T-Shirt Sized Estimates" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-OvZM6uUWGog/TesxMXizReI/AAAAAAABOhQ/g4quECea3fY/s72-c/size-L.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2011/06/t-shirt-sized-estimates.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMFRH0yeSp7ImA9WhZWFU4.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-1606773962176678960</id><published>2011-05-13T13:03:00.000-07:00</published><updated>2011-05-16T01:10:15.391-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-16T01:10:15.391-07:00</app:edited><title>Ants, Popcorn &amp; Sex – An Introduction To Resource Leveling Algorithms</title><content type="html">&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, sans-serif;"&gt;What would you do if you were asked to plan the construction of a building? Construction projects are typically big, involving many people and resources. They're also time-sensitive - you have exactly one week to build each floor, and the material for the next one needs to arrive just in time. Cement won't wait.&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ai4RYPTIwak/Tc2KLO-sG_I/AAAAAAABOfk/XnTqWDkmF5Q/s1600/building.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://4.bp.blogspot.com/-ai4RYPTIwak/Tc2KLO-sG_I/AAAAAAABOfk/XnTqWDkmF5Q/s400/building.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, sans-serif;"&gt;Since the 50's various methodologies have been developed to tackle the issue of creating a work-plan that result in a smooth-running project, with as few costly delays as possible and without wasting precious resources. Most notable in the construction industry is the &lt;a href="http://en.wikipedia.org/wiki/Critical_path_method"&gt;Critical Path&lt;/a&gt; method. But while CPM may help you create a logically coherent plan that finishes on time, it doesn't really guarantee you that your plan is optimal in any way. What if the whole thing could be finished two months earlier? What if it could cost a lot less money simply by better utilizing the same resources? These are big projects with big money that needs to be spent correctly.&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;This brings us to the concept of resource leveling. It's easiest to describe what resource leveling is by giving examples of projects running without it. For example:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;Workers  are standing around idly because it's not their turn to use some  machine.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;Lots  of people are hired at the beginning of the project and then need to  be fired when they're not needed.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;It's all about making the best use of limited resources. Ideally, you'd want to hire a fixed number of people and employ them fully for the entire duration of the project. When that's the case your project is optimally planned for the amount of resources it may expend. &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;To better illustrate what resource leveling “looks like” resource histograms are often used. It's just a graph with two axes: time and resources. The horizontal axis is usually work days and the vertical axis is the amount of resources used (e.g. man hours).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;Here's a terrible one where it's easy to see that resources aren't used evenly throughout the project.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-xRzyooQOTNk/Tc2KacMZR9I/AAAAAAABOfo/oYEdkj8DCao/s1600/CropperCapture69.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="241" src="http://3.bp.blogspot.com/-xRzyooQOTNk/Tc2KacMZR9I/AAAAAAABOfo/oYEdkj8DCao/s320/CropperCapture69.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;Resource leveling is all about getting that histogram to have a rectangular shape. If all of your workers are constantly employed then there's not much to improve - you have a perfectly leveled plan.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-W4b-FAnYQlY/Tc2KeVZgntI/AAAAAAABOfs/ZoVk5NHGcvY/s1600/CropperCapture68.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-W4b-FAnYQlY/Tc2KeVZgntI/AAAAAAABOfs/ZoVk5NHGcvY/s1600/CropperCapture68.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;It is thus the process of moving tasks around, while still maintaining their logical order of dependence, in a way that maximizes the use of your available resources. Resource leveling algorithms differ mainly in the way in which you choose which task to move where. &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;Turns out it's a hard problem. NP-hard, to be exact. In other words, you can't simply try all feasible task arrangements until you find the optimal one. Unless of course you project is tiny, trying to exhaust every possible solution to the problem generally requires an exponential running time, and your deadline is probably before the next ice-age, so no luck there.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;The problem is known as the &lt;/span&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;i&gt;resource constrained scheduling problem (RCSP)&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;. In a way it is a generalization of the &lt;/span&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Travelling_salesman_problem"&gt;traveling salesman problem&lt;/a&gt; (TSP)&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;. There are tons of very clever algorithms that try to solve these problems by &lt;/span&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;&lt;b&gt;approximating &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;the optimal solution. They differ in their running time and how close they get to an optimal solution. Some of them are pretty neat. Let's review them.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif; font-size: large;"&gt;Heuristic Algorithms&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;This family of algorithms tries to use rules of thumb to make decisions. Remember, the decision a RCSP algorithm has to make is which job to shift in time in order to evenly distribute resources. Not every job can be moved. Some have to happen at a very specific time and have many successive jobs depending on their completion. But there's always some degree of freedom (or &lt;/span&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;i&gt;float&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;) in the plan, and that's the space in which these algorithm mostly operate. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;An example of a heuristic is the following rule: choose the job with the most float from all the jobs in the last sequence step of the plan (i.e. it's final stages), and move it to a location where it has the biggest positive impact on the plan's “levelness”. Do this repeatedly, constantly measuring how leveled the resource histogram is at every step, until you can improve no more. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;It's a relatively simple heuristic - too simple, really. Think about it; why should it find the optimal solution? It scans the work plan from end to beginning, greedily shifting jobs as much as it can. Why start at the end? Why not shift the smallest job instead of the one with the most float? It might very well make some unfortunate early decisions that would prevent it from reaching the optimal solution. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;Most heuristic algorithms are considerably cleverer than the one above, but they've long been considered insufficient since it's not hard to find negative examples where they produce really poor results.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif; font-size: large;"&gt;&lt;span style="font-style: normal;"&gt;Metaheuristic Algorithms&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;Instead of following a rule of thumb when searching the solution space, &lt;a href="http://en.wikipedia.org/wiki/Metaheuristic"&gt;metaheuristics&lt;/a&gt; often try to take cues from various natural processes in trying to figure out their search strategy. How do ants “know” the shortest path from their colony to food? How do organisms “know” how to adapt to their environment? Let's see how the answers to these questions can reveal interesting solutions to RCSP.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;&lt;b&gt;Genetic Algorithms&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;Which job shall we shift next and where do we shift it to? Deciding on this question over and over forms a path through the solution space. Our goal is to find the global optima – the place in which the histogram is rectangular (i.e. has a minimal moment, or in other words the least amount of fluctuations in resources). If we measure how leveled a plan is by some function F (for Fluctuations), we can describe our effort as trying to find the lowest point in the solution space, where F reaches a global minimum. The solution space usually has many dimensions, but for the sake of illustration let's think of it as a 3D terrain. Your goal is to reach the deepest valley, but you can't look ahead more than one step. How do you decide which way to go? Where do you even start?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-MOfpDBVp3j8/Tc2K6po1QbI/AAAAAAABOf4/yRdXnWYpE1I/s1600/function.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="315" src="http://4.bp.blogspot.com/-MOfpDBVp3j8/Tc2K6po1QbI/AAAAAAABOf4/yRdXnWYpE1I/s320/function.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;Instead of trying to solve the problem directly (as the heuristic algorithm above) metaheuristic algorithms are good at taking an existing solution and improving it iteratively. Genetic algorithms belong to this family. They start out by creating a few solutions somewhat at random. Each solution is encoded as a “DNA” sequence. For example, if the path a solution takes is “left, right, straight, straight” then its DNA can be encoded as “LRSS”. Each solution's fitness (how well it levels the histogram) is measured and the best ones are mated with each other to produce offsprings that share half of each parent's DNA at random. Then the process is repeated with the next generation. By adding randomness in the form of mutations we can prevent the algorithm from fixating on a sub-optimal path for too long. Mutations drive the algorithm to explore new paths, and getting rid of the unfit drives the algorithm to improve the promising paths.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;A major challenge of such metaheuristics is, indeed, not getting stuck in local optima. A cool way to overcome this challenge is called &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;i&gt;simulated annealing&lt;/i&gt;&lt;/span&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;&lt;b&gt;Simulated Annealing&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;Imagine we're trying to find the deepest valley in the terrain pictured above by scattering a few popcorn kernels from above and letting them fall into the valleys. You want at least one of these kernels to reach the deepest valley, but how do you prevent them from getting stuck in a local valley? You turn on the “temperature” of the terrain until they start to pop and jump around slightly, possibly jumping right out of the local valley they might be in. You then turn the temperature back down and let them continue falling.  This is similar to how simulated annealing works. Just like a metallurgist heats up a metal and cools it over and over to make it stronger, the simulated annealing approach to RCSP allows the algorithm to explore the solution space by converging on promising paths (cold) but also jumping around to explore nearby paths every once in a while (hot).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;&lt;b&gt;Ant Colony Optimization&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;Ants are smarter than popcorn. Collectively, that is. Individually, not so much. Let's see how ants would find the deepest valley. Ants seek food pretty much at random, at first. They don't have a fantastic sense of smell like dogs, or amazing vision. But once they find food they somehow converge pretty quickly onto the shortest path from their colony to it. It doesn't take them long to form an orderly single file that shoots directly to the food and back. They do this by secreting pheromones. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;Each ant secrets a pheromone that causes other ants to want follow it. The more pheromone an ant picks up, the more likely it is to go in its direction. If an ant finds food and travels back and forth on the same path, it secrets more and more pheromone along this path, making it more and more appealing to other ants. And the more ants follow the path it becomes even stronger. It's a feedback loop that makes the ants converge on a path to food. But that's only part of the story. The pheromone also evaporates over time. So what happens if two ants find two separate paths to the same food, but one is longer than the other? The longer path takes more time to travel and as a result the pheromone has more time to evaporate, making it ultimately less attractive to the ants. So ants don't just find food and “tell” each other about it, they also iteratively find the best route to the food by choosing the one with the most pheromone on it.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/--mEz5flrXtc/Tc2LArxfISI/AAAAAAABOf8/Ae8DW7ZHP_Y/s1600/ants.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/--mEz5flrXtc/Tc2LArxfISI/AAAAAAABOf8/Ae8DW7ZHP_Y/s320/ants.png" width="296" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;We can do the same for the RCSP. Start out with a few feasible work plan arrangements and let simulated ants search for improvements. When an ant chooses a modification to the plan that results in a more rectangular histogram (an improvement) we deposit pheromones along the path to that solution. The bigger the improvement, the more pheromone we deposit. Pheromones here are just the probability of an ant following the same path. Ants will still wander off a bit, trying to explore nearby paths, but as the scent becomes stronger they will converge on a good solution. Pheromone evaporation will make sure they choose the shortest path. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;There are many more approaches to solving such global optimization problems: artificial neural-networks, packing algorithms, monkey searches, tabu search, bee colony optimization (like ants, but with dancing instead of secreting).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" dir="LTR" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="font-family: Tahoma, sans-serif;"&gt;&lt;span style="font-style: normal;"&gt;What's neat about all these algorithms, aside from their awesome names, is that they don't require a real understanding of the particular problem at hand. They don't rely on intuition in deciding how to reschedule jobs. They just know how to improve an existing solution.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-1606773962176678960?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=078Ht4wvCm0:iQSjqYK5jeA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=078Ht4wvCm0:iQSjqYK5jeA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=078Ht4wvCm0:iQSjqYK5jeA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=078Ht4wvCm0:iQSjqYK5jeA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=078Ht4wvCm0:iQSjqYK5jeA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=078Ht4wvCm0:iQSjqYK5jeA:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=078Ht4wvCm0:iQSjqYK5jeA:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=078Ht4wvCm0:iQSjqYK5jeA:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=078Ht4wvCm0:iQSjqYK5jeA:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/078Ht4wvCm0" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2011/05/ants-popcorn-sex-introduction-to.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/1606773962176678960?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/1606773962176678960?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/078Ht4wvCm0/ants-popcorn-sex-introduction-to.html" title="Ants, Popcorn &amp; Sex – An Introduction To Resource Leveling Algorithms" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-ai4RYPTIwak/Tc2KLO-sG_I/AAAAAAABOfk/XnTqWDkmF5Q/s72-c/building.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2011/05/ants-popcorn-sex-introduction-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcCRX87fip7ImA9WhZWEEs.&quot;"><id>tag:blogger.com,1999:blog-6772217076987084878.post-4744245177008912629</id><published>2011-05-10T15:37:00.000-07:00</published><updated>2011-05-10T15:37:44.106-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-10T15:37:44.106-07:00</app:edited><title>Collaboration in Gigantt</title><content type="html">&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;We're in the final testing stages of the first version of Gigantt that supports real-time collaboration.&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;You can see what it's going to be like in our &lt;a href="http://www.youtube.com/user/GiganttDotCom#p/a/u/0/HwiNYKx_UyQ"&gt;new preview video&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://0.gvt0.com/vi/HwiNYKx_UyQ/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/HwiNYKx_UyQ&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266" src="http://www.youtube.com/v/HwiNYKx_UyQ&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;turn on your speakers for full enjoyment. :)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Gigantt takes a novel approach to collaboration. We want to allow multiple users editing the same plan at the same time - seeing each other's changes as they are made (like Google Docs, Wave) - but we don't want people stepping on each other's toes. Our solution is called a &lt;i&gt;freeze period&lt;/i&gt;. Basically anything you touch while editing a plan in Gigantt gets frozen for everybody else for 60 seconds. So each user can safely edit his own area of the organization's big work plan. &lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-hvADYygY938/Tcm78IIFTvI/AAAAAAABOfY/kEuC2pr4F4Y/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="70" src="http://1.bp.blogspot.com/-hvADYygY938/Tcm78IIFTvI/AAAAAAABOfY/kEuC2pr4F4Y/s400/Untitled.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;This approach has the advantage of making it visibly clear when someone else is editing the plan with you, so you can &lt;i&gt;avoid &lt;/i&gt;conflicts instead of having to &lt;i&gt;resolve &lt;/i&gt;them. We think this is a better form of collaboration than what most other collaborative systems offer, where if two people are editing the same document one of them will be notified of a conflict once he tries to save his changes (e.g. Wikipedia). We believe true collaboration is not racing to save your changes before someone else does, but rather being aware of who's editing alongside you right now and being able to give each other just enough time to edit in peace.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Our apologies, again, for taking so long working on this release. We want to get it right. Many people have signed up for an invite to the private beta program - more than we can handle at this point. But once this collaboration release is finished we're immediately going to start working on the registration/invitation system (now it's all manual) so we can let more people in. Thanks for being patient.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6772217076987084878-4744245177008912629?l=blog.gigantt.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=Yx62mqWMMgA:VUbeMNG9OY8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=Yx62mqWMMgA:VUbeMNG9OY8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=Yx62mqWMMgA:VUbeMNG9OY8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=Yx62mqWMMgA:VUbeMNG9OY8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=Yx62mqWMMgA:VUbeMNG9OY8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=Yx62mqWMMgA:VUbeMNG9OY8:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=Yx62mqWMMgA:VUbeMNG9OY8:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GiganttBlog?a=Yx62mqWMMgA:VUbeMNG9OY8:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GiganttBlog?i=Yx62mqWMMgA:VUbeMNG9OY8:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GiganttBlog/~4/Yx62mqWMMgA" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://blog.gigantt.com/2011/05/collaboration-in-gigantt.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/4744245177008912629?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6772217076987084878/posts/default/4744245177008912629?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GiganttBlog/~3/Yx62mqWMMgA/collaboration-in-gigantt.html" title="Collaboration in Gigantt" /><author><name>Assaf</name><uri>http://www.blogger.com/profile/07807112192107539607</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-hvADYygY938/Tcm78IIFTvI/AAAAAAABOfY/kEuC2pr4F4Y/s72-c/Untitled.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.gigantt.com/2011/05/collaboration-in-gigantt.html</feedburner:origLink></entry></feed>

