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

  var _gaq = _gaq || [];
  _gaq.push([‘_setAccount’, ‘UA-21007493-1’]);
  _gaq.push([‘_trackPageview’]);

  (function() {
    var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true;
    ga.src = (‘https:’ == document.location.protocol ? ‘https://ssl’ : ‘http://www’) + ‘.google-analytics.com/ga.js’;
    var s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(ga, s);
  })();</description><title>A Work In Progress</title><generator>Tumblr (3.0; @michaelsh)</generator><link>http://michaelsh.tumblr.com/</link><item><title>מספר המוקד העסקי של אורנג'</title><description>&lt;p&gt;מספר המוקד העסקי של אורנג&amp;#8217; בחיוג ללא מכשיר אורנג&amp;#8217; קיים:&lt;/p&gt;
&lt;p&gt;074-7054050&lt;/p&gt;
&lt;p&gt;לא יאומן שהייתי צריך לחכות חצי שעה בטלפון רק כדי להשיג אותו.&lt;/p&gt;</description><link>http://michaelsh.tumblr.com/post/4254648295</link><guid>http://michaelsh.tumblr.com/post/4254648295</guid><pubDate>Fri, 01 Apr 2011 11:22:00 +0300</pubDate></item><item><title>Education 2.0</title><description>&lt;a href="http://shmichael.com/2011/03/education-2-0/"&gt;Education 2.0&lt;/a&gt;: &lt;p&gt;Seeing Kahn speak at TED reassured me that the classroom indeed has a future (current state: sucks ass). The day is not far when Kahn’s Academy hands out degrees as honorable as Harvard’s or…&lt;/p&gt;</description><link>http://michaelsh.tumblr.com/post/3792906440</link><guid>http://michaelsh.tumblr.com/post/3792906440</guid><pubDate>Sat, 12 Mar 2011 05:13:41 +0200</pubDate></item><item><title>Cutting your losses</title><description>&lt;a href="http://shmichael.com/2011/02/cutting-your-losses/"&gt;Cutting your losses&lt;/a&gt;: &lt;p&gt;Admitting to failure is one of the suckiest experiences in a human life. You never know whether you’re a lousy quitter or the only one going against a herd of idiots. This psychological discomfort…&lt;/p&gt;</description><link>http://michaelsh.tumblr.com/post/3325760413</link><guid>http://michaelsh.tumblr.com/post/3325760413</guid><pubDate>Wed, 16 Feb 2011 18:04:24 +0200</pubDate></item><item><title>How do you study your users?</title><description>&lt;p&gt;There are many options for studying your users: Analytics for every single click in your application; Conversion funnels; recordings of sample user sessions etc.&lt;/p&gt;
&lt;p&gt;I find that for product definition and understanding, it&amp;#8217;s really effective for me to get intimate with a handful of users. Talking with them or watching their sessions is more effective than crunching statistics.&lt;/p&gt;
&lt;p&gt;For measuring success, though, you&amp;#8217;ll have to look at those Excel sheets.&lt;/p&gt;</description><link>http://michaelsh.tumblr.com/post/3179463896</link><guid>http://michaelsh.tumblr.com/post/3179463896</guid><pubDate>Tue, 08 Feb 2011 12:36:49 +0200</pubDate></item><item><title>Why Google is so different from any other big startup</title><description>&lt;p&gt;Google was a &amp;#8220;build it - and they will come&amp;#8221; kind of company. Their edge was completely scientific: Scoring pages against queries in a very meaningful way.&lt;/p&gt;
&lt;p&gt;Most other startups companies, Facebook &amp;amp; Groupon included, have a substantial business side to their operations. The way it looks to me, most of their effort was in user acquisition &amp;amp; business development.&lt;/p&gt;
&lt;p&gt;You need a good business man to launch companies such as Facebook &amp;amp; Groupon. And this business man is not very different than any traditional business man. Google, to contrast, didn&amp;#8217;t need such persona.&lt;/p&gt;
&lt;p&gt;&amp;#8230;And many of Google&amp;#8217;s current difficulties might be explained by understanding this heritage.&lt;/p&gt;</description><link>http://michaelsh.tumblr.com/post/3085409496</link><guid>http://michaelsh.tumblr.com/post/3085409496</guid><pubDate>Thu, 03 Feb 2011 13:28:01 +0200</pubDate></item><item><title>Current web frameworks weren't built for AJAX</title><description>&lt;p&gt;The more I work with Rails (and see others with django, cakePHP et al.) the more I realize how ill-suited these systems are for AJAX-y operations.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. in AJAX, editing is done on fields, not models&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Rails&amp;#8217; &lt;em&gt;opinionated software&lt;/em&gt; approach assumes every entity is rendered exactly once on the page, thus, the default behaviour is to have an id tag and a single form action that deals with all fields of the entity. This prevents me from having editable elements of several models scattered around a webpage (as they should, in many cases).&lt;/p&gt;
&lt;p&gt;An example would be a guest list for an event. I should be able to add or remove guests (i.e. editing the &amp;#8220;event&amp;#8221; model) but I should also be able to edit a guest&amp;#8217;s details (i.e. the &amp;#8220;guest&amp;#8221; model). I might also want to send invitations to specific guests (&amp;#8220;invitation&amp;#8221; model) and this should all happen in the same UI-space.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. rendering should be client side&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In an AJAX-y environment the client should be responsible for rendering, while the server should provide the data changes. e.g. server: &amp;#8220;Post.title has changed&amp;#8221; client: &amp;lt;changes title tag in head section, as well as h1 tag and text references to post.title&amp;gt;&lt;/p&gt;
&lt;p&gt;client-side rendering, and smart server-side notifications make implementations of &amp;#8220;advanced&amp;#8221; AJAX-y features, such as continuous scroll, vastly simpler. A good web framework would also allow high responsiveness by performing the the update immediately on the client side when a user performs an action, and announce asynchronously if a problem occurred. This is most clearly seen in Google Docs. But everyone uses it (e.g. Facebook).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. there is no page&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Facebook works with &amp;#8220;pagelets&amp;#8221;, which are mini-pages brought together in various layouts. Similar in concept to Rails&amp;#8217; partials, these pagelets are dynamically added and removed from the page. In fact, with new Chrome versions there is no page reloading at all in Facebook. A strong javascript framework is required to determine the layouting and logic in adding and removing pagelets from a page.&lt;/p&gt;</description><link>http://michaelsh.tumblr.com/post/2943494012</link><guid>http://michaelsh.tumblr.com/post/2943494012</guid><pubDate>Wed, 26 Jan 2011 20:54:02 +0200</pubDate><category>Rails</category><category>ajax</category><category>TBD</category></item><item><title>Ruby is for SWAT teams</title><description>&lt;p&gt;In Ruby projects one finds many code snippets similar to this one, taken from an&lt;a title="RSpec presentation" href="http://kerryb.github.com/iprug-rspec-presentation"&gt; RSpec presentation&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code class="plain"&gt;a.should equal(b) &lt;/code&gt;&lt;code class="comments"&gt;# both pass if a.equal? b&lt;/code&gt;&lt;/p&gt;

&lt;code class="plain"&gt;a.should be(b)    &lt;/code&gt;&lt;code class="comments"&gt;#&lt;/code&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;Ruby&amp;#8217;s DSLs are one of its prominent abilities, and lib writers go to lengths in making their DSL as talkative as possible - allowing you a wide selection of &amp;#8220;wording&amp;#8221; for your code.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;This is why Ruby is so great - and so dangerous. Maintaining code where the same function has 10 aliases can be very confusing. It takes a disciplined, small team to decide when it best serves the interest of code clarity to actually use more than one alias.&lt;br/&gt;&lt;br/&gt;This becomes far, far worse when you capitalize on Ruby&amp;#8217;s dynamic features, such as class overrides and method_missing. Beginner programmers might pick up some extremely bad habits working with Ruby.&lt;/p&gt;</description><link>http://michaelsh.tumblr.com/post/2908393750</link><guid>http://michaelsh.tumblr.com/post/2908393750</guid><pubDate>Mon, 24 Jan 2011 14:10:24 +0200</pubDate></item><item><title>Mark Zuckerberg: The evolution of a remarkable CEO | VentureBeat</title><description>&lt;a href="http://venturebeat.com/2009/10/02/mark-zuckerberg-the-evolution-of-a-remarkable-ceo/"&gt;Mark Zuckerberg: The evolution of a remarkable CEO | VentureBeat&lt;/a&gt;</description><link>http://michaelsh.tumblr.com/post/2880281914</link><guid>http://michaelsh.tumblr.com/post/2880281914</guid><pubDate>Sun, 23 Jan 2011 00:56:19 +0200</pubDate></item><item><title>Official Google Blog: Google search and search engine spam</title><description>&lt;a href="http://googleblog.blogspot.com/2011/01/google-search-and-search-engine-spam.html"&gt;Official Google Blog: Google search and search engine spam&lt;/a&gt;: &lt;p&gt;Round 2: FIGHT!&lt;/p&gt;</description><link>http://michaelsh.tumblr.com/post/2880005981</link><guid>http://michaelsh.tumblr.com/post/2880005981</guid><pubDate>Sun, 23 Jan 2011 00:38:48 +0200</pubDate></item></channel></rss>

