<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>The Ranger's shared items in Google Reader</title><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ivari" /><language>en</language><managingEditor>noemail@noemail.org (The Ranger)</managingEditor><lastBuildDate>Wed, 16 Nov 2011 02:46:01 PST</lastBuildDate><generator>Google Reader http://www.google.com/reader</generator><gr:continuation xmlns:gr="http://www.google.com/schemas/reader/atom/">CO6HtY2li6wC</gr:continuation><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="ivari" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><description></description><item><title>Nokia toob suvel turule oma tahvelarvuti</title><link>http://uudised.err.ee/index.php?06239110</link><category>Varia</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">erruudised@err.ee</dc:creator><pubDate>Wed, 16 Nov 2011 00:44:00 PST</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/15544fb6c9e1ccb9</guid><description>Soome mobiilitootja Nokia kavatseb järgmise aasta juunis turule tuua oma esimese tahvelarvuti.&lt;br&gt;&lt;br&gt;&lt;a href="http://uudised.err.ee/index.php?06239110"&gt;Loe edasi &amp;gt;&lt;/a&gt;</description></item><item><title>Viirus levitab Facebookis pornot ja vägivaldseid pilte</title><link>http://uudised.err.ee/index.php?06239061</link><category>Varia</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">erruudised@err.ee</dc:creator><pubDate>Tue, 15 Nov 2011 06:17:00 PST</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/f4e8be5c39b4a8d3</guid><description>Facebook tegeleb kaebustega, et suhtlusvõrgustikku on viimasel ööpäeval  postitatud pornograafilisi ja vägivaldseid pilte, mis ilmuvad kasutajate  uudisvoogu.&lt;br&gt;&lt;br&gt;&lt;a href="http://uudised.err.ee/index.php?06239061"&gt;Loe edasi &amp;gt;&lt;/a&gt;</description></item><item><title>Swedbank tahab netipanga serverid Rootsi viia, eksperdid näevad ohtu</title><link>http://uudised.err.ee/index.php?06238928</link><category>Majandus</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">erruudised@err.ee</dc:creator><pubDate>Sun, 13 Nov 2011 22:36:00 PST</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/fd992dcbf315bbff</guid><description>Riigi infosüsteemi ameti (RIA) küberturbe spetsialiste on viimastel  nädalatel ärevaks teinud Eestis tegutsevate pankade plaanid, mille  kohaselt tahetakse serverikeskused omavahel ühendada ja seda muidugi  panga koduriigis.&lt;br&gt;&lt;br&gt;&lt;a href="http://uudised.err.ee/index.php?06238928"&gt;Loe edasi &amp;gt;&lt;/a&gt;</description></item><item><title>Your users don't care if you use Web Sockets</title><link>http://feedproxy.google.com/~r/ScottHanselman/~3/1DLSuWRmULY/YourUsersDontCareIfYouUseWebSockets.aspx</link><category>HTML5</category><category>Musings</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Scott Hanselman</dc:creator><pubDate>Wed, 09 Nov 2011 12:43:40 PST</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/c7a78b0a3a9ca6c1</guid><description>&lt;div&gt;&lt;p&gt;I had a lovely time at the &lt;a href="http://www.krtconf.com/"&gt;Keeping It Realtime Conference&lt;/a&gt; this week in Portland. The conference was put on by the lovely folks over at &lt;a href="http://www.andyet.com/"&gt;&amp;amp;yet&lt;/a&gt; and I&amp;#39;m glad I met them. &amp;quot;KRTConf&amp;quot; was a whole conference dedicated to &amp;quot;real-time&amp;quot; web applications. This largely meant &lt;a href="http://www.nodejs.org"&gt;node&lt;/a&gt; but also other real-time frameworks including Damien and David's &lt;a href="http://www.github.com/signalr"&gt;SignalR&lt;/a&gt; that &lt;a href="http://www.paulbatum.com/"&gt;Paul Batum&lt;/a&gt; (Paul owns Web Sockets for .NET) and I presented. I'll blog our demo soon.&lt;/p&gt;  &lt;p&gt;Some folks in the audience wanted to make a real-time app today but really wanted to use Web Sockets today and had concerns about broad support. Coincidentally, I had just visited &amp;amp;yet&amp;#39;s new site for product called &amp;quot;&amp;amp;!&amp;quot; or &amp;quot;&lt;a href="https://andbang.com"&gt;AndBang&lt;/a&gt;,&amp;quot; a collaboration tool for teams. However, when I visited the page I got this message: &lt;a title="https://andbang.com/you-need-websockets-yo" href="https://andbang.com/you-need-websockets-yo"&gt;https://andbang.com/you-need-websockets-yo&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="https://andbang.com"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" title="Your browser doesn&amp;#39;t support Web Sockets, so be sad" border="0" alt="Your browser doesn&amp;#39;t support Web Sockets, so be sad" src="http://www.hanselman.com/blog/content/binary/Windows-Live-Writer/Your-users-dont-care-if-you-use-WebSocke_A7E1/image_96f4d1c1-d35f-4634-aec6-fcce9d71a4f6.png" width="696" height="325"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px 0px 0px 2px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" title="Switching protocols from HTTP to WebSockets" border="0" alt="Switching protocols from HTTP to WebSockets" align="right" src="http://www.hanselman.com/blog/content/binary/Windows-Live-Writer/Your-users-dont-care-if-you-use-WebSocke_A7E1/websocketmonkey_8d0fa1f7-89a4-495d-9a60-f13b5b1ee4fa.png" width="401" height="253"&gt;In the near future, all browsers and servers will support Web Sockets, a technique by which a persistent connection is &lt;em&gt;negotiated &lt;/em&gt;over HTTP and then a protocol switch happens from http:// to ws://. However, not every browser or server is there yet (IE9, for example) and there&amp;#39;s some arguing about versioning, etc. If you don&amp;#39;t support Web Sockets, falling back to &amp;quot;Long Polling&amp;quot; is a way to get effectively the same behavior that works everywhere. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Long polling is a technique that lets it &lt;em&gt;look &lt;/em&gt;like your browser has a &amp;quot;persistent connection&amp;quot; to the server when in fact you&amp;#39;ve just got a really &amp;quot;persistent client.&amp;quot; &lt;/strong&gt;By this I mean, rather than a connection that doesn't shut down (persistent) you have a client that will make a call and when it completes, it'll call back. The very definition of persistent, eh? See what I did there?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Persistent: Continuing firmly or obstinately in a course of action in spite of difficulty or opposition.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Long Polling is not as efficient but it works nicely and is a totally reasonable fallback when Web Sockets support is unavailable. The &lt;a href="http://blogs.msdn.com/b/ie/archive/2011/04/12/native-html5-first-ie10-platform-preview-available-for-download.aspx"&gt;latest preview release of IE10 includes Web Sockets support&lt;/a&gt;. But my mom doesn't know about Web Sockets and shouldn't have to. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The 10,000 people on the planet that care about Web Sockets are not your customers, and while using Web Sockets might get you mentioned on TechCrunch, supporting &lt;em&gt;only&lt;/em&gt; Web Sockets is a great way to cut your potential audience in half.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You can use the lovely &lt;a href="http://caniuse.com/websockets"&gt;CanIUse&lt;/a&gt; web site to find out if you browser supports something you'd like to use. Here's their Web Sockets table.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://caniuse.com/#search=websockets"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" title="Table of Browsers and their support for Web Sockets" border="0" alt="Table of Browsers and their support for Web Sockets" src="http://www.hanselman.com/blog/content/binary/Windows-Live-Writer/Your-users-dont-care-if-you-use-WebSocke_A7E1/image_b620a6ec-4062-4574-a360-c0ce2eb2e91c.png" width="800" height="211"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Your users don't care about Web Sockets. &lt;/strong&gt;They care about delightful sites. We use JavaScript &lt;a href="http://remysharp.com/2010/10/08/what-is-a-polyfill/"&gt;polyfills&lt;/a&gt; when our browsers don't support HTML5 features we want. We use jQuery when JavaScript support is dodgy between browsers. And our web frameworks should gracefully fallback to use Long Polling when Web Sockets isn't available. &lt;/p&gt;  &lt;h3&gt;Related Links&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.paulbatum.com/2011/09/getting-started-with-websockets-in.html"&gt;Getting Started with WebSockets in .NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx"&gt;Asynchronous scalable web applications with real-time persistent long-running connections with SignalR&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;P.S. Yes, if your app is a real-time trading app or and needs down-to-the-millisecond timing, then sure, maybe you need Web Sockets. But your app isn't that app.&lt;/p&gt;&lt;br&gt;&lt;hr&gt;© 2011 Scott Hanselman. All rights reserved. &lt;br&gt;&lt;/div&gt;&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/abrdk7uet7v0ksr8p75hfrs71g/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fwww.hanselman.com%2Fblog%2FYourUsersDontCareIfYouUseWebSockets.aspx" width="100%" height="280" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=1DLSuWRmULY:FkdumXf-UL0:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?i=1DLSuWRmULY:FkdumXf-UL0:D7DqB2pKExk" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=1DLSuWRmULY:FkdumXf-UL0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?i=1DLSuWRmULY:FkdumXf-UL0:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=1DLSuWRmULY:FkdumXf-UL0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=1DLSuWRmULY:FkdumXf-UL0:MjquXQBfoPI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?d=MjquXQBfoPI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=1DLSuWRmULY:FkdumXf-UL0:5M_9TJJRyfI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?d=5M_9TJJRyfI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=1DLSuWRmULY:FkdumXf-UL0:YKYwmLGm_co"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?d=YKYwmLGm_co" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ScottHanselman/~4/1DLSuWRmULY" height="1" width="1"&gt;</description></item><item><title>Solving the Shakespeare Million Monkeys Problem in Real-time with Parallelism and SignalR</title><link>http://feedproxy.google.com/~r/ScottHanselman/~3/UaQClG14fpQ/SolvingTheShakespeareMillionMonkeysProblemInRealtimeWithParallelismAndSignalR.aspx</link><category>ASP.NET</category><category>Javascript</category><category>SignalR</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Scott Hanselman</dc:creator><pubDate>Fri, 11 Nov 2011 17:09:22 PST</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/750d7afda78d2a53</guid><description>&lt;div&gt;&lt;p&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" title="A monkey with a skull. Oh yes." border="0" alt="A monkey with a skull. Oh yes." align="right" src="http://www.hanselman.com/blog/content/binary/Windows-Live-Writer/a3b68ce09480_D458/HamletMonkey_acc00dbc-496a-4f3d-b63f-cc70ebe8a8c1.jpg" width="233" height="300"&gt;A little &lt;a href="http://channel9.msdn.com/blogs/matthijs/lap-around-net-4-with-scott-hanselman"&gt;over 18 months ago&lt;/a&gt; I was talking to &lt;a href="http://blogs.msdn.com/toub/"&gt;Stephen Toub&lt;/a&gt; (he of the &lt;a href="http://www.hanselman.com/blog/BackToParallelBasicsDoYouReallyWantToDoThatOrWhyDoesntTheNewParallelForSupportBigInteger.aspx"&gt;Parallel Computing fame&lt;/a&gt;) about parallelism and the kinds of problems it could solve. &lt;/p&gt;  &lt;p&gt;I said, naively, &amp;quot;could we solve the &lt;a href="http://en.wikipedia.org/wiki/Infinite_monkey_theorem"&gt;million monkey's problem&lt;/a&gt;?&amp;quot; &lt;/p&gt;  &lt;p&gt;He said, &amp;quot;the what?&amp;quot;&lt;/p&gt;  &lt;p&gt;&amp;quot;You know, if you have an &lt;a href="http://www.hanselman.com/blog/SolvingTheShakespeareMillionMonkeysProblemInRealtimeWithParallelismAndSignalR.aspx"&gt;infinite number of monkeys and an infinite number of keyboards they will eventually write Shakespeare&lt;/a&gt;.&amp;quot;&lt;/p&gt;  &lt;p&gt;We brainstormed some ideas (since Stephen is a smarter than I, this consisted mostly of him gazing thoughtfully into the air while I sat on my hands) and eventually settled on an genetic algorithm. &lt;strong&gt;We would breed thousands of generations of (hypothetical) monkeys a second and then choose which ones would be allowed to perpetuate the species based solely on their ability to write Shakespeare.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;We used the .NET 4 Task Parallel Library to make it easier for the algorithm to scale to available hardware. I mean, anyone can foreach over a million monkeys. But loops like that in parallel over 12 processors takes talent, right? Well, kinda. A lot of it is done for you by the Parallelism Features in .NET and that's the point. It's Parallel Processing for the Masses.&lt;/p&gt;  &lt;p&gt;We created a WinForms version of this application and I've used it on and off to demonstrate parallel computing on .NET. Then &lt;a href="http://www.paulbatum.com"&gt;Paul Batum&lt;/a&gt; and I went to the &lt;a href="http://www.krtconf.com/"&gt;Keeping It Realtime&lt;/a&gt; conference to demonstrate &lt;a href="http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx"&gt;SignalR&lt;/a&gt; this &lt;a href="http://www.hanselman.com/blog/YourUsersDontCareIfYouUseWebSockets.aspx"&gt;last week&lt;/a&gt;. I didn&amp;#39;t want to do the same &amp;quot;here&amp;#39;s a real-time chat app&amp;quot; or &amp;quot;here&amp;#39;s a map that shows its results in real-time&amp;quot; demos that one always does at these kinds of things. I suggested that we port our WinForms Shakespeare Monkey demo to ASP.NET and SignalR and that&amp;#39;s what Paul proceeded to do.&lt;/p&gt;  &lt;p&gt;&lt;img title="Looks like 80,000 generations of monkeys" alt="Looks like 80,000 generations of monkeys" src="http://www.hanselman.com/blog/images/SignalRMonkeys.gif"&gt;&lt;/p&gt;  &lt;p&gt;When doing something that is crazy computationally intensive but also needs to return real-time results you might think to use node for the real-time notification part and perhaps spawn off another process and use C or something for the maths and then have them talk to each others. We like node and you can totally &lt;a href="http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx"&gt;run node on IIS&lt;/a&gt; or even &lt;a href="http://www.hanselman.com/blog/WebMatrixAndNodejsTheEasiestWayToGetStartedWithNodeOnWindows.aspx"&gt;write node in WebMatrix&lt;/a&gt;. However, node is good at some things and .NET is good at some things. &lt;/p&gt;  &lt;p&gt;For example, .NET is really good at CPU-bound computationally intensive stuff, like, I dunno, &lt;a href="http://msdn.microsoft.com/en-us/library/hh304369.aspx"&gt;parallel matrix multiplication&lt;/a&gt; in F# or the like. ASP.NET is good at scaling web sites like Bing, or StackOverflow. You may not think IIS and ASP.NET when you think about real-time, but &lt;a href="http://www.github.com"&gt;SignalR&lt;/a&gt; uses asynchronous handlers and smart techniques to get awesome scale when using long-polling and scales even more in our labs when using an efficient protocol like &lt;a href="http://blogs.msdn.com/b/ie/archive/2011/09/13/ie10pp3.aspx"&gt;WebSockets&lt;/a&gt; with the &lt;a href="http://www.paulbatum.com/2011/09/getting-started-with-websockets-in.html"&gt;new support for WebSockets in .NET 4.5&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;So, we wanted to see if you combined asynchronous background work, use as many processors as you have, get real-time status updates via SignalR over long-polling or Web Sockets, using C#, .NET 4.5, ASP.NET and IIS. &lt;/p&gt;  &lt;p&gt;It takes about 80,000 generations of monkeys at thousands of monkey generations a second (there's 200 monkeys per generation) to get the opening line of Hamlet. So that's ~16,000,000 monkeys just to get this much text. As they say, that's a lot of monkeys.&lt;/p&gt;  &lt;p&gt;Here's the general idea of the app. The client is pretty lightweight and quite easy. There's two boxes, two buttons and a checkbox along side some text. There's some usual event wireup with started, cancelled, complete, and updateProgress, but see how those are on a monkey variable? That's from $.connection.monkeys. It could be $.connection.foo, of course, as long as it's hanging off $.connection. &lt;/p&gt;  &lt;p&gt;Those functions are client side but we raise them from the server over the persistent connection then update some text.&lt;/p&gt;  &lt;pre&gt;&amp;lt;script src=&amp;quot;Scripts/jquery-1.6.4.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;    &lt;br&gt;&amp;lt;script src=&amp;quot;Scripts/json2.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br&gt;&amp;lt;script src=&amp;quot;Scripts/jquery.signalR.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br&gt;&amp;lt;script src=&amp;quot;signalr/hubs&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br&gt;&amp;lt;script&amp;gt;&lt;br&gt;    $(function () {&lt;br&gt;        $('#targettext').val('To be or not to be, that is the question;\nWhether \'tis nobler in the mind to suffer\n\The slings and arrows of outrageous fortune,\n\Or to take arms against a sea of troubles,\n\And by opposing, end them.');&lt;br&gt;&lt;br&gt;        var monkeys = $.connection.monkeys,&lt;br&gt;            currenttext = $('#currenttext'),&lt;br&gt;            generationSpan = $('#generation'),&lt;br&gt;            gpsSpan = $('#gps');&lt;br&gt;&lt;br&gt;        monkeys.updateProgress = function (text, generation, gps) {&lt;br&gt;            currenttext.val(text);&lt;br&gt;            generationSpan.text(generation);&lt;br&gt;            gpsSpan.text(gps);&lt;br&gt;        };&lt;br&gt;&lt;br&gt;        monkeys.started = function (target) {&lt;br&gt;            $('#status').text('Working...');&lt;br&gt;            $('#targettext').val(target);&lt;br&gt;            $('#cancelbutton').removeAttr('disabled');&lt;br&gt;        };&lt;br&gt;&lt;br&gt;        monkeys.cancelled = function () {&lt;br&gt;            $('#status').text('Cancelled');&lt;br&gt;            $('#cancelbutton').attr('disabled', 'disabled');&lt;br&gt;        };&lt;br&gt;&lt;br&gt;        monkeys.complete = function () {&lt;br&gt;            $('#status').text('Done');&lt;br&gt;            $('#cancelbutton').attr('disabled', 'disabled');&lt;br&gt;        };&lt;br&gt;&lt;br&gt;        $.connection.hub.start({}, function () {&lt;br&gt;            $('#startbutton').click(function (event) {&lt;br&gt;                $('#status').text('Queued...');&lt;br&gt;                monkeys.startTyping($('#targettext').val(), $('#isparallel').is(':checked'));&lt;br&gt;            });&lt;br&gt;&lt;br&gt;            $('#cancelbutton').click(function (event) {&lt;br&gt;                monkeys.stopTyping();&lt;br&gt;            });&lt;br&gt;        });&lt;br&gt;&lt;br&gt;    });&lt;br&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;

&lt;p&gt;The magic start with $.connection.hub.start. The hub client-side code is actually inside ~/signalr/hubs. See how that's include a the top? That client-side proxy is generated based on what hub or hubs are on the server side. &lt;/p&gt;

&lt;p&gt;The server side is structured like this:&lt;/p&gt;

&lt;pre&gt;[HubName(&amp;quot;monkeys&amp;quot;)]&lt;br&gt;public class MonkeyHub : Hub&lt;br&gt;{&lt;br&gt;    public void StartTyping(string targetText, bool parallel)&lt;br&gt;    {&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    public void StopTyping()&lt;br&gt;    {&lt;br&gt;    }&lt;br&gt;&lt;br&gt;}&lt;/pre&gt;

&lt;p&gt;The StartTyping and StopTyping .NET methods are callable from the client-side via the monkeys JavaScript object. &lt;strong&gt;So you can call server-side C# from the client-side JavaScript and from the C# server you can call methods in JavaScript on the client. &lt;/strong&gt;It'll make the most sense if you debug it and watch the traffic on the wire. The point is that C# and Json objects can flow back and forth which blurs the line nicely between client and server. It's all convention over configuration. That's how we talk between client and server. Now, what about those monkeys?&lt;/p&gt;

&lt;p&gt;You can check out the code in full, but StartTyping is the kick off point. Note how it's reporting back to the Hub (calling back to the client) constantly. Paul is using Hub.GetClients to talk to all connected clients as broadcast. This current implementation allows just one monkey job at a time. Other clients that connect will see the job in progress.&lt;/p&gt;

&lt;pre&gt;public void StartTyping(string targetText, bool parallel)&lt;br&gt;{&lt;br&gt;    var settings = new GeneticAlgorithmSettings { PopulationSize = 200 };&lt;br&gt;    var token = cancellation.Token;&lt;br&gt;&lt;br&gt;    &lt;br&gt;    currentTask = currentTask.ContinueWith((previous) =&amp;gt;&lt;br&gt;    {&lt;br&gt;        // Create the new genetic algorithm&lt;br&gt;        var ga = new TextMatchGeneticAlgorithm(parallel, targetText, settings);&lt;br&gt;        TextMatchGenome? bestGenome = null;&lt;br&gt;        DateTime startedAt = DateTime.Now;&lt;br&gt;&lt;br&gt;        Hub.GetClients&amp;lt;MonkeyHub&amp;gt;().started(targetText);&lt;br&gt;&lt;br&gt;        // Iterate until a solution is found or until cancellation is requested&lt;br&gt;        for (int generation = 1; ; generation++)&lt;br&gt;        {&lt;br&gt;            if (token.IsCancellationRequested)&lt;br&gt;            {&lt;br&gt;                Hub.GetClients&amp;lt;MonkeyHub&amp;gt;().cancelled();&lt;br&gt;                break;&lt;br&gt;            }&lt;br&gt;&lt;br&gt;            // Move to the next generation&lt;br&gt;            ga.MoveNext();&lt;br&gt;&lt;br&gt;            // If we've found the best solution thus far, update the UI&lt;br&gt;            if (bestGenome == null ||&lt;br&gt;                ga.CurrentBest.Fitness &amp;lt; bestGenome.Value.Fitness)&lt;br&gt;            {&lt;br&gt;                bestGenome = ga.CurrentBest;&lt;br&gt;                &lt;br&gt;                int generationsPerSecond = generation / Math.Max(1, (int)((DateTime.Now - startedAt).TotalSeconds));&lt;br&gt;                Hub.GetClients&amp;lt;MonkeyHub&amp;gt;().updateProgress(bestGenome.Value.Text, generation, generationsPerSecond);&lt;br&gt;&lt;br&gt;                if (bestGenome.Value.Fitness == 0)&lt;br&gt;                {&lt;br&gt;                    Hub.GetClients&amp;lt;MonkeyHub&amp;gt;().complete();&lt;br&gt;                    break;&lt;br&gt;                }&lt;br&gt;            }&lt;br&gt;        }                &lt;br&gt;    }, TaskContinuationOptions.OnlyOnRanToCompletion);&lt;br&gt;}&lt;/pre&gt;

&lt;p&gt;If he wanted, he could use this.Caller to communicate with the specific client that called StartTyping. Inside ga.MoveNext we make the decision to go parallel or not based on that checkbox. &lt;strong&gt;This is where we pick two random high quality parent monkeys from our population for a potential future monkey. Hopefully one whose typing looks more like Shakespeare and less like a Regular Expression.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By simply changing from Enumerable.Range to ParallelEnumerable.Range we can start taking easily parallelizable things and using all the processors on our machine. &lt;strong&gt;Note the code is the same otherwise.&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;private TextMatchGenome[] CreateNextGeneration()&lt;br&gt;{&lt;br&gt;    var maxFitness = _currentPopulation.Max(g =&amp;gt; g.Fitness) + 1;&lt;br&gt;    var sumOfMaxMinusFitness = _currentPopulation.Sum(g =&amp;gt; (long)(maxFitness - g.Fitness));&lt;br&gt;&lt;br&gt;    if (_runParallel)&lt;br&gt;    {&lt;br&gt;        return (from i in ParallelEnumerable.Range(0, _settings.PopulationSize / 2)&lt;br&gt;                from child in CreateChildren(&lt;br&gt;                    FindRandomHighQualityParent(sumOfMaxMinusFitness, maxFitness),&lt;br&gt;                    FindRandomHighQualityParent(sumOfMaxMinusFitness, maxFitness))&lt;br&gt;                select child).&lt;br&gt;                ToArray();&lt;br&gt;    }&lt;br&gt;    else&lt;br&gt;    {&lt;br&gt;        return (from i in Enumerable.Range(0, _settings.PopulationSize / 2)&lt;br&gt;                from child in CreateChildren(&lt;br&gt;                    FindRandomHighQualityParent(sumOfMaxMinusFitness, maxFitness),&lt;br&gt;                    FindRandomHighQualityParent(sumOfMaxMinusFitness, maxFitness))&lt;br&gt;                select child).&lt;br&gt;                ToArray();&lt;br&gt;    }&lt;br&gt;}&lt;/pre&gt;

&lt;p&gt;My 12 proc desktop does about 3800 generations a second in parallel.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/Windows-Live-Writer/a3b68ce09480_D458/Windows%20Task%20Manager%20(112)_2.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" title="Hexacore Super Computer!" border="0" alt="Hexacore Super Computer!" src="http://www.hanselman.com/blog/content/binary/Windows-Live-Writer/a3b68ce09480_D458/Windows%20Task%20Manager%20(112)_thumb.png" width="600" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Big thanks to &lt;a href="http://www.paulbatum.com/"&gt;Paul&lt;/a&gt; for the lovely port of this to SignalR and to Stephen Toub for the algorithm.  &lt;/p&gt;

&lt;p&gt;The code for &lt;a href="https://bitbucket.org/shanselman/signalrmonkeys/overview"&gt;the SignalR monkeys demo is on my BitBucket&lt;/a&gt;. Right now it needs .NET 4.5 and the Visual Studio Developer Preview, but you could remove a few lines and get it working on .NET 4, no problem. &lt;/p&gt;

&lt;p&gt;Note that that &lt;a href="http://github.com/signalr"&gt;SignalR&lt;/a&gt; works on .NET 4 and up and you can play with it today. You can even chat with the developers in the SignalR chat app in the 'aspnet' room at &lt;a title="http://chatapp.apphb.com/" href="http://chatapp.apphb.com"&gt;http://chatapp.apphb.com&lt;/a&gt;. Just /nick yourself then /join aspnet.&lt;/p&gt;

&lt;p&gt;No monkeys were hurt in the writing of this blog post.&lt;/p&gt;&lt;br&gt;&lt;hr&gt;© 2011 Scott Hanselman. All rights reserved. &lt;br&gt;&lt;/div&gt;&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/abrdk7uet7v0ksr8p75hfrs71g/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fwww.hanselman.com%2Fblog%2FSolvingTheShakespeareMillionMonkeysProblemInRealtimeWithParallelismAndSignalR.aspx" width="100%" height="280" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=UaQClG14fpQ:L7utN1CW4NM:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?i=UaQClG14fpQ:L7utN1CW4NM:D7DqB2pKExk" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=UaQClG14fpQ:L7utN1CW4NM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?i=UaQClG14fpQ:L7utN1CW4NM:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=UaQClG14fpQ:L7utN1CW4NM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=UaQClG14fpQ:L7utN1CW4NM:MjquXQBfoPI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?d=MjquXQBfoPI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=UaQClG14fpQ:L7utN1CW4NM:5M_9TJJRyfI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?d=5M_9TJJRyfI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=UaQClG14fpQ:L7utN1CW4NM:YKYwmLGm_co"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?d=YKYwmLGm_co" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ScottHanselman/~4/UaQClG14fpQ" height="1" width="1"&gt;</description></item><item><title>Even 12 Year Olds Can Write Their Own Justin Bieber Apps</title><link>http://feedproxy.google.com/~r/readwriteweb/~3/jglXL2h1-Yc/even-12-year-olds-can-write-th.php</link><category>News</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Adam Popescu</dc:creator><pubDate>Tue, 08 Nov 2011 06:30:00 PST</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/9152dd0ca4181ff2</guid><description>&lt;p&gt;&lt;img alt="Bieber-150.png" src="http://www.readwriteweb.com/hack/Bieber-150.png" width="150" height="150"&gt;While it's widely accepted that most 12-year-olds are comfortable using iPhone apps, it's not common that many 12-year-olds can code up their own.  Meet Thomas Suarez, who has created two of his own. Both are distributed by Carrot Corp, the startup Thomas founded, but cannot legally own because he's under 18 (his father is listed as the company's president). Hundreds of downloads later, the prodigious sixth grader's choice for what to do next seems to be the only thing that fits into his age group's sensibilities: that's right, he spent his profits on an Xbox.&lt;br&gt;
 &lt;br&gt;
&lt;/p&gt;
&lt;p align="right"&gt;&lt;em&gt;Sponsor&lt;/em&gt;&lt;br&gt;&lt;a href="http://d.ads.readwriteweb.com/ck.php?n=30018&amp;amp;cb=30018"&gt;&lt;img src="http://d.ads.readwriteweb.com/avw.php?zoneid=14&amp;amp;cb=30018&amp;amp;n=30018" border="0" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Last month the Manhattan Beach, California kid developer spoke about his burgeoning career and the technology gap separating young and old at TEDx conference about ideas worth spreading. At TEDxManhattan Beach, the young man took the microphone with confidence and smiles, speaking quite effectively and intelligently to an older crowd.&lt;/p&gt;

&lt;p&gt;Here you can see him on stage, talking about how he created his apps with the iPhone SDK, some Python scripting and support from one of his teachers. He has amazing stage presence too. &lt;/p&gt;

&lt;p&gt;&lt;iframe width="560" height="349" src="http://www.youtube.com/embed/ehDAP1OQ9Zw" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;

&lt;p&gt;"These days students usually know a little more than teachers with the technology," he said to a chorus of amused laughs. "Not many parents know how to make apps!" &lt;br&gt;
 &lt;br&gt;
Thomas, a self-taught programmer and student of Apple's "one to one" training service program, spoke for five minutes about the gap separating young and old, several times alluding to adults as the kids, and kids as adults in the world of tech.&lt;br&gt;
 &lt;br&gt;
"My first app was a unique fortune teller called Earth Fortune, that would display different colors of Earth depending on what your fortune was," Thomas said during his TED talk. "My favorite, most successful app is &lt;a href="http://itunes.apple.com/us/app/bustin-jieber/id404956571?mt=8"&gt;Bustin Jieber--a Justin Bieber whac-a-mole."&lt;/a&gt;  (It costs a buck.)&lt;br&gt;
  &lt;br&gt;
In late 2010, he released the app using the premise of the Whac-A-Mole game. Spin-offs include Bustin Howie, and Bustin Piers (lampooning Howie Mandel and Piers Morgan). "I created it because a lot of people at school disliked Justin Bieber." He isn't alone in that sentiment, clearly. &lt;br&gt;
 &lt;br&gt;
So far he's made about $1,000 from the app, but the experience has made him a local celebrity. "A lot of kids these days like to play games, but now they want to make them. And it's difficult, because not many kids know where to go to find out how to make a program...Any student at my school can come and learn how to design an app. This is so I can share my experience with others."&lt;br&gt;
 &lt;br&gt;
With the help of his two younger brothers, Thomas lectures in front of a group of about 20 students at lunchtime. With the district part of the iPad pilot program, integrating iPads into the classroom and hour-long lunch lessons on the ins and outs of app creation, could the South Bay area of Los Angeles be the next blue chip incubator for tech talent? At least for the younger set. &lt;br&gt;
 &lt;br&gt;
"A big challenge is how should the iPads be used and what apps should we put on the iPads," he questioned at the end of his TED talk. "We're getting feedback from the teachers at the school to see what apps they like. When we design the app and we sell it, it will be free to local districts. And other districts that we sell to, all the money from that will be funneled to local ed foundations."&lt;br&gt;
 &lt;br&gt;
While the young technophile is working with a third-party company to make new apps, he said his next goal is to get into Android programming, continue his app club "and find other ways for students to share knowledge with others." &lt;/p&gt;

&lt;p&gt;A very impressive 12-year old to be sure. And certainly the shape of things to come. &lt;br&gt;
&lt;/p&gt;
&lt;strong&gt;&lt;a href="http://www.readwriteweb.com/hack/2011/11/even-12-year-olds-can-write-th.php#comments-open"&gt;Discuss&lt;/a&gt;&lt;/strong&gt;&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/bh8m03d07dnj95a0qa1ma5k32c/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fwww.readwriteweb.com%2Fhack%2F2011%2F11%2Feven-12-year-olds-can-write-th.php" width="100%" height="280" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=jglXL2h1-Yc:hMjA2S1PB_o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=jglXL2h1-Yc:hMjA2S1PB_o:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?i=jglXL2h1-Yc:hMjA2S1PB_o:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=jglXL2h1-Yc:hMjA2S1PB_o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=jglXL2h1-Yc:hMjA2S1PB_o:Ij26kaj3iuU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=Ij26kaj3iuU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=jglXL2h1-Yc:hMjA2S1PB_o:C2pbw5bZMiI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=C2pbw5bZMiI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=jglXL2h1-Yc:hMjA2S1PB_o:HaYztYP2wyo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=HaYztYP2wyo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=jglXL2h1-Yc:hMjA2S1PB_o:fvyXWMd9xfE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=fvyXWMd9xfE" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=jglXL2h1-Yc:hMjA2S1PB_o:OqabYuBsmOY"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=OqabYuBsmOY" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/readwriteweb/~4/jglXL2h1-Yc" height="1" width="1"&gt;</description></item><item><title>Transfer Money Via NFC with the PayPal Android App</title><link>http://feedproxy.google.com/~r/readwriteweb/~3/EQPXXQSEvOM/transfer_money_via_nfc_with_the_paypal_android_app.php</link><category>Mobile</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dan Rowinski</dc:creator><pubDate>Tue, 08 Nov 2011 12:20:00 PST</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/23a703db67b0f892</guid><description>&lt;p&gt;&lt;img alt="paypal_150x150.jpg" src="http://www.readwriteweb.com/paypal_150x150.jpg" width="150" height="150"&gt;PayPal today issued an update to its &lt;a href="https://market.android.com/details?id=com.paypal.android.p2pmobile&amp;amp;feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5wYXlwYWwuYW5kcm9pZC5wMnBtb2JpbGUiXQ.."&gt;Android app&lt;/a&gt; that will enable people to make payments to each other via near field communications enabled smartphones. This does not include consumer to merchant payments but rather is a widget geared towards making payments with friends or other PayPal using people that happen to have NFC on their devices.&lt;/p&gt;

&lt;p&gt;PayPal has shunned NFC to this point in its mobile payments push. The company's stance has been "it will not be a hard thing for us to implement if we find that it gains popularity." Really, this new NFC sharing widget for Android does not change that stance at all. Peer-to-peer payments in PayPal are a service, not a business vertical. Essentially, this update for PayPal does not affect how the company will approach mobile payments.&lt;/p&gt;
&lt;p align="right"&gt;&lt;em&gt;Sponsor&lt;/em&gt;&lt;br&gt;&lt;a href="http://d.ads.readwriteweb.com/ck.php?n=30034&amp;amp;cb=30034"&gt;&lt;img src="http://d.ads.readwriteweb.com/avw.php?zoneid=14&amp;amp;cb=30034&amp;amp;n=30034" border="0" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PayPal does not make any money from peer-to-peer transactions. It is a feature that the company offers more or less because it can. Really, the best thing that peer-to-peer does for PayPal is give it insights into how people transfer money between each other through the data generated by each transaction.&lt;/p&gt;

&lt;p&gt;The way PayPal makes it sound in the update to the Android app is that the new NFC  feature is no different. It is a "hey, why not?" type of feature. Yet, it could be the set up for quite a bit more.&lt;/p&gt;

&lt;p&gt;&lt;img alt="paypal_android.jpg" src="http://www.readwriteweb.com/paypal_android.jpg" width="521" height="295" style="text-align:center;display:block;margin:0 auto 20px"&gt;&lt;/p&gt;

&lt;p&gt;If PayPal tracks the data on peer-to-peer for trends (location, time of day, how much is being transferred, how far away are they) then the NFC rollout could be the first steps to tracking where, when and how to implement a possible NFC solution for smartphones.&lt;/p&gt;

&lt;p&gt;There will be a wave of Android devices in 2012 that are NFC enabled. Right now there are only a handful with the Samsung Nexus S the most prominent of the bunch. This is a way for PayPal to have some type of NFC offering in the mix for when consumers get NFC devices in their hands and do not have much of a reason to actually use the feature. &lt;/p&gt;

&lt;p&gt;&lt;img alt="NFC_Nexus_Smartphones.jpg" src="http://www.readwriteweb.com/NFC_Nexus_Smartphones.jpg" width="606" height="360" style="text-align:center;display:block;margin:0 auto 20px"&gt;&lt;/p&gt;

&lt;p&gt;We can imagine a dozen scenarios where independent merchants could use NFC payments. It comes back down to our well-worn farmer's market scenario - a farmer could use a NFC phone to accept PayPal payments from other PayPal Android users with NFC. While that seems cool, think of the limiting factors - both parties need NFC, Android, PayPal and a desire to do business. Finding two matching parties with those particular attributes right now is a niche within a niche.&lt;/p&gt;

&lt;p&gt;By instituting the completely non-threatening peer-to-peer feature, PayPal sets itself up to widen the set of functionality down the line. For a company that is moving horizontally through the mobile payments sector, that shows surprising foresight. &lt;br&gt;
&lt;/p&gt;
&lt;strong&gt;&lt;a href="http://www.readwriteweb.com/archives/transfer_money_via_nfc_with_the_paypal_android_app.php#comments-open"&gt;Discuss&lt;/a&gt;&lt;/strong&gt;&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/bh8m03d07dnj95a0qa1ma5k32c/468/60#http%3A%2F%2Fwww.readwriteweb.com%2Farchives%2Ftransfer_money_via_nfc_with_the_paypal_android_app.php" width="100%" height="60" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=EQPXXQSEvOM:FJnGQwY45Fo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=EQPXXQSEvOM:FJnGQwY45Fo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?i=EQPXXQSEvOM:FJnGQwY45Fo:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=EQPXXQSEvOM:FJnGQwY45Fo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=EQPXXQSEvOM:FJnGQwY45Fo:Ij26kaj3iuU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=Ij26kaj3iuU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=EQPXXQSEvOM:FJnGQwY45Fo:C2pbw5bZMiI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=C2pbw5bZMiI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=EQPXXQSEvOM:FJnGQwY45Fo:HaYztYP2wyo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=HaYztYP2wyo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=EQPXXQSEvOM:FJnGQwY45Fo:fvyXWMd9xfE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=fvyXWMd9xfE" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=EQPXXQSEvOM:FJnGQwY45Fo:OqabYuBsmOY"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=OqabYuBsmOY" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/readwriteweb/~4/EQPXXQSEvOM" height="1" width="1"&gt;</description></item><item><title>Steve Jobs Wins: Adobe to Give Up Mobile Flash for HTML5</title><link>http://feedproxy.google.com/~r/readwriteweb/~3/vngNzfuhLRM/steve_jobs_wins_adobe_to_give_up_mobile_flash_for.php</link><category>Mobile</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Marshall Kirkpatrick</dc:creator><pubDate>Tue, 08 Nov 2011 22:25:43 PST</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/25dec17daeddb928</guid><description>&lt;p&gt;&lt;img src="http://rww.readwriteweb.netdna-cdn.com/images/flash_jan_09.jpg"&gt;&lt;strong&gt;Alt title: A Win for the Web.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sources close to the news have &lt;a href="http://www.zdnet.com/blog/perlow/exclusive-adobe-ceases-development-on-mobile-browser-flash-refocuses-efforts-on-html5/19226"&gt;told ZDNet reporter Jason Perlow tonight&lt;/a&gt; that Adobe&lt;a href="http://www.techmeme.com/111109/p4#a111109p4"&gt; will announce soon&lt;/a&gt; that it has given up on the development of mobile flash and will increase its investment in supporting HTML5.  The company will say, according to an email published by Perlow, that it will encourage app developers to work with the cross-platform Adobe AIR platform to be distributed across mobile app stores, a caveat that could mean the news is less dramatic than it might seem.  Rather than building with AIR for mobile, though, it seems likely that more developers will focus on HTML5 instead.&lt;/p&gt;

&lt;p&gt;Feisty Twitter user &lt;a href="https://twitter.com/#!/counternotions/status/134150622101504000"&gt;Counternotions&lt;/a&gt; quotes Adobe's CEO from 2010 "Technology problems [w/ Flash] Mr. Jobs mentions...are 'really a smokescreen.'"  Apple's refusal to go with the glitchy, gloppy proprietary protocol that performs poorly on Apple devices had to be a big part of what turned the tide.  &lt;/p&gt;
&lt;p align="right"&gt;&lt;em&gt;Sponsor&lt;/em&gt;&lt;br&gt;&lt;a href="http://d.ads.readwriteweb.com/ck.php?n=30045&amp;amp;cb=30045"&gt;&lt;img src="http://d.ads.readwriteweb.com/avw.php?zoneid=14&amp;amp;cb=30045&amp;amp;n=30045" border="0" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Adobe prints giant piles of money from sales of its Flash authoring tools. (Point aptly critiqued below in comments, by the way.  Flash on the desktop remains alive and relatively well.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Adobe &lt;a href="http://blogs.adobe.com/conversations/2011/11/flash-focus.html"&gt;published this statement today&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Apple CEO Jobs &lt;a href="http://www.readwriteweb.com/archives/steve_jobs_speaks_why_we_dont_allow_flash_on_iphone_and_ipad.php"&gt;explained why&lt;/a&gt; he was opposed to the inclusion of support for Flash on Apple mobile devices in the Spring of 2010.  Sarah Perez summarized his arguments as follows:&lt;br&gt;
&lt;ol&gt;&lt;br&gt;
	&lt;li&gt;It's proprietary.&lt;/li&gt;&lt;br&gt;
	&lt;li&gt;Most Web video plays on the iPhone/iPod Touch/iPad&lt;/li&gt;&lt;br&gt;
	&lt;li&gt;Who needs Flash games? We have apps for that.&lt;/li&gt;&lt;br&gt;
	&lt;li&gt;Flash has poor security.&lt;/li&gt;&lt;br&gt;
	&lt;li&gt;Flash doesn't perform well on mobile devices.&lt;/li&gt;&lt;br&gt;
	&lt;li&gt;Flash negatively affects battery life.&lt;/li&gt;&lt;br&gt;
	&lt;li&gt;Flash was designed for PCs, not touchscreens.&lt;/li&gt;&lt;br&gt;
&lt;/ol&gt;&lt;/p&gt;

&lt;p&gt;Adobe &lt;a href="http://www.readwriteweb.com/archives/on_mobile_flash_apple_stands_alone.php"&gt;contested those arguments&lt;/a&gt; of course, and Google was happy to support Flash on Android.   At least &lt;a href="http://www.readwriteweb.com/archives/does_html5_really_beat_flash_surprising_results_of_new_tests.php"&gt;one prominent benchmarking test&lt;/a&gt; found HTML5's performance to be comparable to Flash's. The European Union went so far as to consider &lt;a href="http://www.readwriteweb.com/archives/eus_may_force_flash_onto_apple_products.php"&gt;forcing Apple to support Flash on the iPhone&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Adobe began offering&lt;a href="http://www.readwriteweb.com/archives/Adobe_Releases_Flash_to_HTML5_Conversion_Tool.php"&gt; an experimental Flash to HTML5 conversion technology&lt;/a&gt; this Spring.&lt;/p&gt;

&lt;p&gt;Perlow, who broke the story tonight, has been a Senior Technology Editor at CBS's ZDNet since 2008 and was a Senior Editor at Linux Magazine for ten years prior.&lt;/p&gt;

&lt;p&gt;The leaked news from Adobe says that the company will "continue to support the current Android and PlayBook configurations with critical bug fixes and security updates."  That doesn't mean much for future configurations of those Operating Systems.&lt;/p&gt;

&lt;p&gt;ZDNet's Microsoft specialist Mary Jo Foley &lt;a href="http://www.zdnet.com/blog/microsoft/will-there-be-a-silverlight-6-and-does-it-matter/11180"&gt;reported earlier today&lt;/a&gt; that Silverlight may be slated for an imminent demise as well.  Open standards FTW.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;[Note: This post was written in a hurry but delayed until Flash and AIR apps on my Mac could be force quit.  It's running much better now.]&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;strong&gt;&lt;a href="http://www.readwriteweb.com/archives/steve_jobs_wins_adobe_to_give_up_mobile_flash_for.php#comments-open"&gt;Discuss&lt;/a&gt;&lt;/strong&gt;&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/bh8m03d07dnj95a0qa1ma5k32c/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fwww.readwriteweb.com%2Farchives%2Fsteve_jobs_wins_adobe_to_give_up_mobile_flash_for.php" width="100%" height="280" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=vngNzfuhLRM:5VIVGzKiv9I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=vngNzfuhLRM:5VIVGzKiv9I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?i=vngNzfuhLRM:5VIVGzKiv9I:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=vngNzfuhLRM:5VIVGzKiv9I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=vngNzfuhLRM:5VIVGzKiv9I:Ij26kaj3iuU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=Ij26kaj3iuU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=vngNzfuhLRM:5VIVGzKiv9I:C2pbw5bZMiI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=C2pbw5bZMiI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=vngNzfuhLRM:5VIVGzKiv9I:HaYztYP2wyo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=HaYztYP2wyo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=vngNzfuhLRM:5VIVGzKiv9I:fvyXWMd9xfE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=fvyXWMd9xfE" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=vngNzfuhLRM:5VIVGzKiv9I:OqabYuBsmOY"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=OqabYuBsmOY" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/readwriteweb/~4/vngNzfuhLRM" height="1" width="1"&gt;</description></item><item><title>Facebook Restores the Old News Feed [UPDATED]</title><link>http://feedproxy.google.com/~r/readwriteweb/~3/yUGk7VgHclw/facebook_restores_the_old_news_feed.php</link><category>Facebook</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alicia Eler</dc:creator><pubDate>Wed, 09 Nov 2011 17:42:00 PST</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/78cb23d5aecee8c1</guid><description>&lt;p&gt;&lt;img alt="Facebook Logo_150x150.jpg" src="http://www.readwriteweb.com/Facebook%20Logo_150x150.jpg" width="150" height="150"&gt;Today Facebook &lt;a href="https://blog.facebook.com/blog.php?post=10150286921207131"&gt;announced &lt;/a&gt; an update to its much contested news feed. This new version builds upon the current hybrid news feed, and has some aspects of the old one. But instead of being able to toggle back-and-forth between "top news" and "recent news," users will see a "sort" button at the top which gives them the option to see highlighted stories first, or recent stories first. &lt;/p&gt;

&lt;p&gt;"The highlighted stories are the ones which have the most likes or the ones which are featured to you," a Facebook spokesperson told ReadWriteWeb. "The most recent stories will be under those top stories. There will be a button where you can sort chronologically." &lt;/p&gt;

&lt;p&gt;One thing that won't change in this news feed update is the larger-sized photos.&lt;/p&gt;

&lt;p&gt;The update will rollout out tonight and continue over the coming weeks. See screengrabs after the jump.&lt;/p&gt;
&lt;p align="right"&gt;&lt;em&gt;Sponsor&lt;/em&gt;&lt;br&gt;&lt;a href="http://d.ads.readwriteweb.com/ck.php?n=30072&amp;amp;cb=30072"&gt;&lt;img src="http://d.ads.readwriteweb.com/avw.php?zoneid=14&amp;amp;cb=30072&amp;amp;n=30072" border="0" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt="FB-news-feed-1.png" src="http://www.readwriteweb.com/FB-news-feed-1.png" width="531" height="494" style="text-align:center;display:block;margin:0 auto 20px"&gt;&lt;/p&gt;

&lt;p&gt;Here's the second screenshot:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.readwriteweb.com/FB-news-feed-2-new.png"&gt;&lt;img alt="FB-news-feed-2-new.png" src="http://www.readwriteweb.com/assets_c/2011/11/FB-news-feed-2-new-thumb-525x492-35786.png" width="525" height="492" style="text-align:center;display:block;margin:0 auto 20px"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is big news for Facebook users, who have complained relentlessly since the news feed switched over to hybrid. &lt;/p&gt;

&lt;p&gt;Giving users the option to experience a news feed that's closer to the old one seems like a smart move Facebook. &lt;/p&gt;

&lt;p&gt;The Facebook hybrid news feed has come under controversy since it launched. It has inspired more &lt;a href="http://www.readwriteweb.com/archives/facebooks_hybrid_news_feed_wants_you_to_pay_attent.php"&gt;interaction&lt;/a&gt; than the old news feed, and the&lt;a href="http://www.readwriteweb.com/archives/why_is_facebooks_hybrid_news_feed_inspiring_more_interaction.php"&gt; "new top story"&lt;/a&gt; section might be the reason. But Facebook users have demanded their old news feed - and it looks like they won. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;Are you glad that the Facebook news feed is changing? Tell us what you think in the comments.&lt;/b&gt;&lt;/p&gt;
&lt;strong&gt;&lt;a href="http://www.readwriteweb.com/archives/facebook_restores_the_old_news_feed.php#comments-open"&gt;Discuss&lt;/a&gt;&lt;/strong&gt;&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/bh8m03d07dnj95a0qa1ma5k32c/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fwww.readwriteweb.com%2Farchives%2Ffacebook_restores_the_old_news_feed.php" width="100%" height="280" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=yUGk7VgHclw:IlJ6astg-BA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=yUGk7VgHclw:IlJ6astg-BA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?i=yUGk7VgHclw:IlJ6astg-BA:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=yUGk7VgHclw:IlJ6astg-BA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=yUGk7VgHclw:IlJ6astg-BA:Ij26kaj3iuU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=Ij26kaj3iuU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=yUGk7VgHclw:IlJ6astg-BA:C2pbw5bZMiI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=C2pbw5bZMiI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=yUGk7VgHclw:IlJ6astg-BA:HaYztYP2wyo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=HaYztYP2wyo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=yUGk7VgHclw:IlJ6astg-BA:fvyXWMd9xfE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=fvyXWMd9xfE" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=yUGk7VgHclw:IlJ6astg-BA:OqabYuBsmOY"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=OqabYuBsmOY" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/readwriteweb/~4/yUGk7VgHclw" height="1" width="1"&gt;</description></item><item><title>Inimesed kasutavad üha vähem sularaha</title><link>http://uudised.err.ee/index.php?06238594</link><category>Eesti</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">erruudised@err.ee</dc:creator><pubDate>Tue, 08 Nov 2011 23:38:00 PST</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/c5d8b68d9f2b868f</guid><description>Sularaha roll eestimaalaste tegemistes on märgatavalt vähenenud ning üks põhjuseid on ilmselt ka üleminek eurole.&lt;br&gt;&lt;br&gt;&lt;a href="http://uudised.err.ee/index.php?06238594"&gt;Loe edasi &amp;gt;&lt;/a&gt;</description></item><item><title>Eesti Loto veebileht oli mitu tundi maas</title><link>http://uudised.err.ee/index.php?06238657</link><category>Eesti</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">erruudised@err.ee</dc:creator><pubDate>Wed, 09 Nov 2011 09:45:00 PST</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/d845c56a1004ddd9</guid><description>Eesti Loto veebikeskkond, kust on võimalik osta lotopileteid ja kontrollida tulemusi, ei olnud täna õhtul ligi kolm tundi töökorras.&lt;br&gt;&lt;br&gt;&lt;a href="http://uudised.err.ee/index.php?06238657"&gt;Loe edasi &amp;gt;&lt;/a&gt;</description></item><item><title>Eesti füüsikaõpetajad käisid CERNis teadmisi omandamas</title><link>http://uudised.err.ee/index.php?06238398</link><category>Eesti</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">erruudised@err.ee</dc:creator><pubDate>Sun, 06 Nov 2011 21:09:00 PST</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/a400644c3d21b978</guid><description>Tänu Šveitsis CERNis osakestekiirendiga töötavate Eesti teadlaste eestvedamisele sai 16 füüsikaõpetajat riigi kulul tutvuda koolivaheajal Euroopa moodsaima teaduskeskusega.&lt;br&gt;&lt;br&gt;&lt;a href="http://uudised.err.ee/index.php?06238398"&gt;Loe edasi &amp;gt;&lt;/a&gt;</description></item><item><title>Maakera ei pea kõikide inimeste tarbimisunistuste täitumisele vastu</title><link>http://uudised.err.ee/index.php?06238384</link><category>Eesti</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">erruudised@err.ee</dc:creator><pubDate>Sun, 06 Nov 2011 11:29:00 PST</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/775f40e90c1487bf</guid><description>Lõppeval nädalal sai inimesi maakeral seitse miljardit, kuid kui kõik tahaksid elada ja tarbida sama hästi kui meie, ei peaks maakera sellele tempole vastu, ütles bioloog Georg Aher.&lt;br&gt;&lt;br&gt;&lt;a href="http://uudised.err.ee/index.php?06238384"&gt;Loe edasi &amp;gt;&lt;/a&gt;</description></item><item><title>Kriminaalse sisuga arvutimängud ei pruugi lapsele hästi mõjuda</title><link>http://uudised.err.ee/index.php?06238389</link><category>Varia</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">erruudised@err.ee</dc:creator><pubDate>Sun, 06 Nov 2011 12:38:00 PST</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/c43cd171040b2ebf</guid><description>Arvutimängud on netipõlvkonna jaoks sama loomulikud, kui varasematele sugupõlvedele võsavahel indiaanlase ja kauboi mängimine, uue aja mängud avavad aga ukse mõttemaailma ja tegevuste juurde, millest enamik lapsevanemaid oma võsukesi meelsamini eemal hoiaksid.&lt;br&gt;&lt;br&gt;&lt;a href="http://uudised.err.ee/index.php?06238389"&gt;Loe edasi &amp;gt;&lt;/a&gt;</description></item><item><title>There is No Silver Bullet In Software Development</title><link>http://thecodist.com/article/there_is_no_silver_bullet_in_software_development</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">(author unknown)</dc:creator><pubDate>Sat, 05 Nov 2011 07:41:26 PDT</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/2a9ce73e7edd0398</guid><description>&lt;p&gt;In my 30 years of programming at or near the leading edge of software technology I've seen a ton of ideas, tools, languages, processes and methodologies appear that each claimed to be the ultimate solution for improving how software is written.&lt;/p&gt;

&lt;p&gt;Not one of them ever got beyond marginal success and many actually made things worse.&lt;/p&gt;

&lt;p&gt;There isn't anything wrong about new ideas; each one represents a datapoint in an ever expanding search for a better way. Writing software is still hard and with each generation of technology expectations of the industry or the market often increases faster than the ability of programmers to keep up. So new ideas are necessary to find some way to get things done and stay one step ahead of the technology steamroller.&lt;/p&gt;

&lt;p&gt;The assumption that there exists one idea that will revolutionize programming is what never seems to vanish despite decades of examples that prove there is no such thing. Even what amounts to the biggest change I can remember during my career, Object Orientation, which still dominates the programming language universe, isn't a panacea. Like so many other ideas it's only another tool in the toolbox, not the holy grail.&lt;/p&gt;

&lt;p&gt;The one thing that unites all the great projects I have worked on over the years has always been the ability of the people involved. By people I mean everyone from managers to developers to architects to testers and often the customers as well. The best ones were able to communicate well, had both imagination to figure out how to solve tough problems and the discipline to know what to keep and what to reject, enough experience to know when a direction was going to work, the freedom to find and use the best tools or ideas to get the job done, and enough leadership to get the project complete. Sure it sounds pretty vague but during my lifetime of work nothing stands out but the people involved.&lt;/p&gt;

&lt;p&gt;What has irked me most of my time is when people stand on a soapbox and say things like "if you don't use X then your code will suck" where X could be almost anything. I've heard this for so long it goes in one ear and out the other. &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;For every software development idea X that was invented at time Y people were still able to deliver excellent software long before Y.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example I never heard of the term "unit testing" until the mid to late 90's. Yet me and the team I worked with on Trapeze, Persuasion and Deltagraph shipped 13 major releases of the 3 products (only 1 for Persuasion) with a nary a single unit test. The software was shipped on floppy disks (10 in the case of Deltagraph) where each release generally cost at least $10 to duplicate plus shipping. Deltagraph at its peak had 100,000 customers so the publishers entire profit for the year might be the eaten up by having to ship out a whole new set of disks if something major went wrong -- but not once did we have to do it. Today you can patch a bug online instantly (or not if you have to wait on the App Store review).&lt;/p&gt;

&lt;p&gt;For Trapeze and Deltagraph the final ship decision was mine but the whole team knew and understood how to produce something that worked with no UML, no unit tests, no test first development, no design patterns, etc. and in C no less. Of course we weren't alone in that.&lt;/p&gt;

&lt;p&gt;Would we have produced more quality or taken less time with all the modern ideas? Maybe, but it's always hard to compare different eras. Would doing things the way we worked back then work today? Tough to say as today's marketplace is so different. The point I am trying to make is that it's not the tool or the methodology or the language or the flavor of the month that matters but the people and how they go about getting the software done.&lt;/p&gt;

&lt;p&gt;Over the years listening to software tool vendors was always a fun thing to do. Each one sold their products or system as if they were the final answer to all of life's programming problems. They never were of course but the fear of every programmer was that some manager would believe the hype and we'd all get stuck with something hopeless.&lt;/p&gt;

&lt;p&gt;Managers and especially CIO/CTO types with no real technology background are the worst culprits when it comes to buying hype. Some vendors talks them up or they read an article and suddenly the entire company has to switch to something different. I'm sure every programmer has experienced this kind of insanity.&lt;/p&gt;

&lt;p&gt;One CIO I worked for bought an expensive technology from a vendor that promised better enterprise development and then was asked to write a glowing report for their website about how it reduced our time to write software from 8 months to 5 weeks. Then that company sent some marketing people to interview the programmers and were shocked to find we didn't use it other than for one simple calculator, done only to keep the CIO at bay.&lt;/p&gt;

&lt;p&gt;It's not that you can't improve things with better ideas, methodologies or tools; if not for improvements in how we write software theres no way we could keep up the demands of the modern world. It's just the expectation that something by itself is the perfect antidote to whatever ails your organization that is wrong.&lt;/p&gt;

&lt;p&gt;I once spent a long time explaining Agile to the methodology team at the company I worked at (financial service firm) which operated more or less a waterfall. The team (yes there were actually 3 people on it) then went off and a few months later came up with the new methodology. Instead of something lean and agile they had taken the waterfall to a new extreme, basically 15 steps each with documents, meetings and schedule that defied understanding. The funny thing was the the 15th step was basically "write the software". Agile in concrete overshoes.&lt;/p&gt;

&lt;p&gt;That's the flip side to new ideas - when people take the idea and recast it in the old idea's form and present it as new.&lt;/p&gt;

&lt;p&gt;Clearly everyone wants to write software better and write better software. The issue is that the belief that any one thing will solve the problems is faulty but never seems to go away and probably never will. The real solution lies in the people involved and that sounds too fuzzy to be real so people try to find some technology solution to make things better.&lt;/p&gt;

&lt;p&gt;As a final example I point to the original iPhone. Every phone manufacturer in the world had smart people. All of them had successful products and a long history in the industry. Yet Steve Jobs had an idea and a team he picked that he was confident could bring everything together from design to coding to manufacturing to marketing to make a phone with 3 buttons to change the entire industry. There was no single reason Apple did this (beyond Steve anyway) but the right people with the knowledge, experience and freedom to innovate and especially ability to communicate. The team made this happen, not any particular process or methodology or tool or language.&lt;/p&gt;

&lt;p&gt;So keep your silver bullets handy for killing Werewolves and occasionally drinking a cold (crappy) beer. Just remember that in checking out something new in the programming universe you might find a better tool for your toolbox but you'll never throw the toolbox away completely and skip magically into nirvana.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/thecodist/~4/IdUwCvyj_AQ" height="1" width="1"&gt;</description></item><item><title>Sõõrumaa ühendas K Grupi ja Pristise</title><link>http://uudised.err.ee/index.php?06238002</link><category>Majandus</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">erruudised@err.ee</dc:creator><pubDate>Tue, 01 Nov 2011 00:23:00 PDT</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/467ad00a2c3e0b71</guid><description>Urmas Sõõrumaa lõi uue turvafirma USS, mis ühendab Pristise ja talle kuulunud K Grupi ning tõuseb G4S-i järel suuruselt teiseks turvaettevõtteks Eestis.&lt;br&gt;&lt;br&gt;&lt;a href="http://uudised.err.ee/index.php?06238002"&gt;Loe edasi &amp;gt;&lt;/a&gt;</description></item><item><title>Dolphin, a 3rd Party Android Browser, Relayed URL Data</title><link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/mMFlavkkYjk/dolphin-a-3rd-party-android-browser-relayed-url-data</link><category>android</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Soulskill</dc:creator><pubDate>Sat, 29 Oct 2011 08:40:00 PDT</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/760194c706c76b8f</guid><description>&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/lrqi37l1p7a6hqgtg7dfla1i4g/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fyro.slashdot.org%2Fstory%2F11%2F10%2F29%2F1251215%2Fdolphin-a-3rd-party-android-browser-relayed-url-data%3Futm_source%3Drss1.0mainlinkanon%26utm_medium%3Dfeed" width="100%" height="280" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;An anonymous reader sends this excerpt from AndroidPolice.com:
"As it turns out, Dolphin HD, one of the top browsers the Android platform has to offer, sends pretty much every web page URL you visit, including those that start with https, to a remote server en.mywebzines.com, which belongs to the company. In fact, the WebZines feature was introduced only recently back in June with version 6.0, so it's safe to say this tracking started around the same time.'"
The Dolphin team quickly responded with a blog post saying they did not store any of the data, and no browsing information was captured about users. They also rolled out a new version of the browser, 7.0.2, which fixed the issue.&lt;p&gt;&lt;a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fyro.slashdot.org%2Fstory%2F11%2F10%2F29%2F1251215%2Fdolphin-a-3rd-party-android-browser-relayed-url-data%3Futm_source%3Dslashdot%26utm_medium%3Dfacebook" title="Share on Facebook"&gt;&lt;img src="http://a.fsdn.com/sd/facebook_icon_large.png"&gt;&lt;/a&gt;
   
      &lt;a href="http://twitter.com/home?status=Dolphin%2C+a+3rd+Party+Android+Browser%2C+Relayed+URL+Data%3A+http%3A%2F%2Fbit.ly%2FvswsEJ" title="Share on Twitter"&gt;&lt;img src="http://a.fsdn.com/sd/twitter_icon_large.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://yro.slashdot.org/story/11/10/29/1251215/dolphin-a-3rd-party-android-browser-relayed-url-data?utm_source=rss1.0moreanon&amp;amp;utm_medium=feed"&gt;Read more of this story&lt;/a&gt; at Slashdot.&lt;/p&gt;&lt;iframe src="http://slashdot.org/slashdot-it.pl?op=discuss&amp;amp;id=2499812&amp;amp;smallembed=1" style="height:300px;width:100%;border:none"&gt;&lt;/iframe&gt;&lt;img src="http://feeds.feedburner.com/~r/Slashdot/slashdot/~4/mMFlavkkYjk" height="1" width="1"&gt;</description></item><item><title>Nokia Unveils OLED Phone You Control By Bending</title><link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/gDOhwqe9Itc/nokia-unveils-oled-phone-you-control-by-bending</link><category>cellphones</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">timothy</dc:creator><pubDate>Fri, 28 Oct 2011 22:33:00 PDT</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/81726d77a19215f2</guid><description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~at/DNiNfx0vpJcbWPlme30028-LkWM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~at/DNiNfx0vpJcbWPlme30028-LkWM/0/di" border="0" ismap&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="http://feedads.g.doubleclick.net/~at/DNiNfx0vpJcbWPlme30028-LkWM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~at/DNiNfx0vpJcbWPlme30028-LkWM/1/di" border="0" ismap&gt;&lt;/a&gt;&lt;/p&gt;jldailey618 writes "Nokia just unveiled an OLED smartphone that is controlled by flexing the device with both hands. By bending corners and pushing the sides inward and outward, the user can scroll, zoom, and select. 'Researchers would not discuss exactly how the processor behind the twisty screen functioned, but they did say that it would be compatible with most current operating systems.'" Reader jones_supa adds a link to The Inquirer (with video), which points out that the twist-based (rather than poke-based) interface means "you can do many basic functions such as scrolling, zooming and answering calls even while wearing mittens."&lt;p&gt;&lt;a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fhardware.slashdot.org%2Fstory%2F11%2F10%2F29%2F0048255%2Fnokia-unveils-oled-phone-you-control-by-bending%3Futm_source%3Dslashdot%26utm_medium%3Dfacebook" title="Share on Facebook"&gt;&lt;img src="http://a.fsdn.com/sd/facebook_icon_large.png"&gt;&lt;/a&gt;
   
      &lt;a href="http://twitter.com/home?status=Nokia+Unveils+OLED+Phone+You+Control+By+Bending%3A+http%3A%2F%2Fbit.ly%2Fruhpzm" title="Share on Twitter"&gt;&lt;img src="http://a.fsdn.com/sd/twitter_icon_large.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://hardware.slashdot.org/story/11/10/29/0048255/nokia-unveils-oled-phone-you-control-by-bending?utm_source=rss1.0moreanon&amp;amp;utm_medium=feed"&gt;Read more of this story&lt;/a&gt; at Slashdot.&lt;/p&gt;&lt;iframe src="http://slashdot.org/slashdot-it.pl?op=discuss&amp;amp;id=2499298&amp;amp;smallembed=1" style="height:300px;width:100%;border:none"&gt;&lt;/iframe&gt;&lt;img src="http://feeds.feedburner.com/~r/Slashdot/slashdot/~4/gDOhwqe9Itc" height="1" width="1"&gt;</description></item><item><title>Meet Firefox's Built-In PDF Reader</title><link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/76dRnpQykf4/meet-firefoxs-built-in-pdf-reader</link><category>firefox</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">timothy</dc:creator><pubDate>Fri, 28 Oct 2011 15:36:00 PDT</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/04a1ae1b34dc0d4c</guid><description>&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/lrqi37l1p7a6hqgtg7dfla1i4g/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fnews.slashdot.org%2Fstory%2F11%2F10%2F28%2F2223223%2Fmeet-firefoxs-built-in-pdf-reader%3Futm_source%3Drss1.0mainlinkanon%26utm_medium%3Dfeed" width="100%" height="280" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;An anonymous reader writes "Not long ago, Mozilla coders announced that they were starting to build PDF.js, a way to display Acrobat documents in the browser using pure web code. No longer will you have to fight with an external PDF plug-in in Firefox. Development on PDF.js has progressed to the point now where you can take an early peek at it. Huzzah!"&lt;p&gt;&lt;a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fnews.slashdot.org%2Fstory%2F11%2F10%2F28%2F2223223%2Fmeet-firefoxs-built-in-pdf-reader%3Futm_source%3Dslashdot%26utm_medium%3Dfacebook" title="Share on Facebook"&gt;&lt;img src="http://a.fsdn.com/sd/facebook_icon_large.png"&gt;&lt;/a&gt;
   
      &lt;a href="http://twitter.com/home?status=Meet+Firefox&amp;#39;s+Built-In+PDF+Reader%3A+http%3A%2F%2Fbit.ly%2FrARn4D" title="Share on Twitter"&gt;&lt;img src="http://a.fsdn.com/sd/twitter_icon_large.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://news.slashdot.org/story/11/10/28/2223223/meet-firefoxs-built-in-pdf-reader?utm_source=rss1.0moreanon&amp;amp;utm_medium=feed"&gt;Read more of this story&lt;/a&gt; at Slashdot.&lt;/p&gt;&lt;iframe src="http://slashdot.org/slashdot-it.pl?op=discuss&amp;amp;id=2499178&amp;amp;smallembed=1" style="height:300px;width:100%;border:none"&gt;&lt;/iframe&gt;&lt;img src="http://feeds.feedburner.com/~r/Slashdot/slashdot/~4/76dRnpQykf4" height="1" width="1"&gt;</description></item><item><title>Developers: Your Google Maps API Free Riding Days Are Over</title><link>http://feedproxy.google.com/~r/readwriteweb/~3/UA2gdbJPZRY/google_maps_api_paid_no_longer_free.php</link><category>Google</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Marshall Kirkpatrick</dc:creator><pubDate>Wed, 26 Oct 2011 22:22:05 PDT</pubDate><guid isPermaLink="false">tag:google.com,2005:reader/item/2e8177aad2877c98</guid><description>&lt;p&gt;&lt;img src="http://rww.readwriteweb.netdna-cdn.com/images/latlong_jun10.jpg"&gt;Months after warning developers it would happen, the Google Developer team &lt;a href="http://googlegeodevelopers.blogspot.com/2011/10/introduction-of-usage-limits-to-maps.html"&gt;announced tonight &lt;/a&gt;that the era of unlimited Google Maps usage for free is officially over.  Developers whose apps load more than 25,000 basic maps or 2500 stylized maps per day will have to cough up some cash.  &lt;/p&gt;

&lt;p&gt;An era has ended for the first API that really made mashups mainstream, most famously via &lt;a href="http://housingmaps.com"&gt;housingmaps.com&lt;/a&gt;, a mashup of Craigslist rental search results and Google Maps.  Unlimited access may no longer be available for free, but &lt;strong&gt;some observers say it's a good move for the developer ecosystem.&lt;/strong&gt;  "For some developers this can clearly be an issue but overall it's healthy for the ecosystem," John Musser of API watch-dog site &lt;a href="http://programmableweb.com"&gt;Programmable Web&lt;/a&gt; told us tonight.  "Services need to be sustainable with business models that work for both sides."&lt;/p&gt;
&lt;p align="right"&gt;&lt;em&gt;Sponsor&lt;/em&gt;&lt;br&gt;&lt;a href="http://d.ads.readwriteweb.com/ck.php?n=29797&amp;amp;cb=29797"&gt;&lt;img src="http://d.ads.readwriteweb.com/avw.php?zoneid=14&amp;amp;cb=29797&amp;amp;n=29797" border="0" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Launched in June of 2005, the Google Maps API is the archetypal API, or Application Programming Interface.  A number of other map APIs now allow data to be displayed on a map, though, and thousands of other APIs allow data to be read from or written to other websites and services.&lt;/p&gt;

&lt;p&gt;The free vs commercial nature of Google APIs and the Maps API in particular have always been a little unclear.  &lt;/p&gt;

&lt;p&gt;"Given the value these APIs give and the cost of running them," says independent Australian developer &lt;a href="https://plus.google.com/103697821787469756035/"&gt;Daniel Treadwell&lt;/a&gt; in words echoed by many people, "I think charging for it isn't a problem at all. The last thing anyone wants is for it to be retired like some others have been."&lt;/p&gt;

&lt;center&gt;&lt;img alt="valleyjoke.jpg" src="http://www.readwriteweb.com/images/valleyjoke.jpg" width="569" height="209"&gt;&lt;/center&gt;

&lt;p&gt;This Spring, there was &lt;a href="http://www.readwriteweb.com/archives/google_announces_apis_scheduled_for_shutdown.php"&gt;a massacre of free Google APIs&lt;/a&gt; that got slated for shut down so the company could focus on other priorities.  Weeks later, Google changed its mind about its Translate API in particular,&lt;a href="http://allthingsd.com/20110603/google-not-killing-translate-api-after-all-will-develop-paid-version/?reflink=ATD_mktw_quotes"&gt; announcing it would develop a paid version&lt;/a&gt; that developers dependent on it could rely on.&lt;/p&gt;

&lt;p&gt;It's extremely unlikely that the Maps API would ever disappear altogether, but even if it did there are already viable alternatives including Open Street Map and MapQuest.  Other up-and-coming options include &lt;a href="http://developmentseed.org"&gt;DevelopmentSeed&lt;/a&gt; and &lt;a href="http://TileMill.com"&gt;TileMill&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So far, though, many developers appear satisfied with the way Google is handling this transition tonight. (Except some dissenters &lt;a href="https://plus.google.com/u/0/117421021456205115327/posts/bvtC8T41jDy"&gt;on my Google Plus thread&lt;/a&gt;, which is great to see.  Keep it up, dissenters!) That's good for the future of location-based application development and innovation.  Google Maps is a living, breathing, changing, incredibly valuable resource.  If you wrote an app that has got enough traction that you're cranking on that API past a certain limit, paying something for it certainly seems fair.&lt;/p&gt;

&lt;p&gt;Paul Rademacher, the creator of HousingMaps.com, had this to say in response to the announcement:&lt;br&gt;
&lt;blockquote&gt;My concern would be that individual and small-team developers (who have fueled the geo explosion) not be scared away by this change.  25,000 maps per day is actually quite high, and should cover the long tail of API sites.  It takes a lot of press or very healthy sustained traffic to reach that number.  One main question developers will have is "what happens if my site suddenly hits the front page of X and gets huge traffic?"  That should be ok according to the Maps API FAQ, so long as it's a short-term spike.  I expect the vast majority of sites won't be affected at all by the new usage limit, some very small number of very large sites will be affected, and for those in between: talk to Google API Premier team and figure something out.  To the small geo developers: please keep coding!!&lt;/blockquote&gt;&lt;br&gt;
&lt;/p&gt;
&lt;strong&gt;&lt;a href="http://www.readwriteweb.com/archives/google_maps_api_paid_no_longer_free.php#comments-open"&gt;Discuss&lt;/a&gt;&lt;/strong&gt;&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/bh8m03d07dnj95a0qa1ma5k32c/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fwww.readwriteweb.com%2Farchives%2Fgoogle_maps_api_paid_no_longer_free.php" width="100%" height="280" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=UA2gdbJPZRY:ztMibli70CU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=UA2gdbJPZRY:ztMibli70CU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?i=UA2gdbJPZRY:ztMibli70CU:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=UA2gdbJPZRY:ztMibli70CU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=UA2gdbJPZRY:ztMibli70CU:Ij26kaj3iuU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=Ij26kaj3iuU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=UA2gdbJPZRY:ztMibli70CU:C2pbw5bZMiI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=C2pbw5bZMiI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=UA2gdbJPZRY:ztMibli70CU:HaYztYP2wyo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=HaYztYP2wyo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=UA2gdbJPZRY:ztMibli70CU:fvyXWMd9xfE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=fvyXWMd9xfE" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/readwriteweb?a=UA2gdbJPZRY:ztMibli70CU:OqabYuBsmOY"&gt;&lt;img src="http://feeds.feedburner.com/~ff/readwriteweb?d=OqabYuBsmOY" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/readwriteweb/~4/UA2gdbJPZRY" height="1" width="1"&gt;</description></item></channel></rss>

