<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D0YFR3wzeCp7ImA9WhRbEEQ.&quot;"><id>tag:blogger.com,1999:blog-31446756</id><updated>2012-02-01T11:18:36.280Z</updated><title>Solution Revolution</title><subtitle type="html">innovative, reliable technology</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://sol-rev.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>337</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/TSaX" /><feedburner:info uri="blogspot/tsax" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DkYDRHY9fSp7ImA9WhRUEEk.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-1346769470287026840</id><published>2012-01-20T07:22:00.001Z</published><updated>2012-01-20T07:22:55.865Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T07:22:55.865Z</app:edited><title>Announcing node.js support - AppHarbor</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile1.posterous.com/getfile/files.posterous.com/solrev/tznEGxznCyolwnmbklEululJJpiEwFFArwJvBcrIqiDkyekBvDndsCemIfbH/media_httpblogappharb_juhay.png.scaled1000.png"&gt;&lt;img alt="Media_httpblogappharb_juhay" height="419" src="http://getfile0.posterous.com/getfile/files.posterous.com/solrev/tznEGxznCyolwnmbklEululJJpiEwFFArwJvBcrIqiDkyekBvDndsCemIfbH/media_httpblogappharb_juhay.png.scaled500.png" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://blog.appharbor.com/2012/01/19/announcing-node-js-support"&gt;blog.appharbor.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;oooh very nice!&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/announcing-nodejs-support-appharbor"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-1346769470287026840?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/1346769470287026840/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=1346769470287026840" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/1346769470287026840?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/1346769470287026840?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/vFWKmRT5rcQ/announcing-nodejs-support-appharbor.html" title="Announcing node.js support - AppHarbor" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2012/01/announcing-nodejs-support-appharbor.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUCQHY4fCp7ImA9WhRVGUg.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-8479200546867321744</id><published>2012-01-19T07:14:00.001Z</published><updated>2012-01-19T07:14:21.834Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-19T07:14:21.834Z</app:edited><title>Sublime Text: The text editor you'll fall in love with</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile5.posterous.com/getfile/files.posterous.com/solrev/vzcHIsvjsHecEgowExeEyChivoonxihkgblBBJbaGrpDtgnmDzkwehAiFDBI/media_httpwwwsublimet_EHJzC.png.scaled1000.png"&gt;&lt;img alt="Media_httpwwwsublimet_ehjzc" height="390" src="http://getfile2.posterous.com/getfile/files.posterous.com/solrev/vzcHIsvjsHecEgowExeEyChivoonxihkgblBBJbaGrpDtgnmDzkwehAiFDBI/media_httpwwwsublimet_EHJzC.png.scaled500.png" width="500" /&gt;&lt;/a&gt; &lt;/div&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.sublimetext.com/"&gt;sublimetext.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;version 2 also has a package on git-hub that gives you intelisense.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/sublime-text-the-text-editor-youll-fall-in-lo"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-8479200546867321744?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/8479200546867321744/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=8479200546867321744" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/8479200546867321744?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/8479200546867321744?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/vy4UZ0ESAfc/sublime-text-text-editor-you-fall-in.html" title="Sublime Text: The text editor you&amp;#39;ll fall in love with" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2012/01/sublime-text-text-editor-you-fall-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AARHk4fyp7ImA9WhRWEE4.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-3774241800387960515</id><published>2011-12-28T01:29:00.001Z</published><updated>2011-12-28T01:29:05.737Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-28T01:29:05.737Z</app:edited><title>Topten Software - petapoco</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;blockquote&gt;&lt;div&gt;          	&lt;div&gt;    &lt;h3&gt;PetaPoco&lt;/h3&gt;  &lt;ul&gt;  	&lt;li&gt;&lt;a href="http://www.toptensoftware.com/petapoco#"&gt;Main&lt;/a&gt;&lt;/li&gt;   	&lt;li&gt;&lt;a href="http://www.toptensoftware.com/petapoco#"&gt;Documentation&lt;/a&gt;&lt;/li&gt;   	&lt;li&gt;&lt;a href="http://www.toptensoftware.com/petapoco#"&gt;License&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt;  &lt;/div&gt;  &lt;h3&gt;PetaPoco&lt;/h3&gt;  &lt;h3&gt;  &lt;/h3&gt;&lt;p&gt;A tiny ORM-ish thing for your POCOs&lt;/p&gt;    &lt;p&gt;PetaPoco is a tiny, fast, single-file micro-ORM for .NET and Mono.&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;Like &lt;a href="http://blog.wekeroad.com/helpy-stuff/and-i-shall-call-it-massive" target="_blank"&gt;Massive&lt;/a&gt; it's a single file that you easily add to any project&lt;/li&gt;  &lt;li&gt;Unlike &lt;a href="http://blog.wekeroad.com/helpy-stuff/and-i-shall-call-it-massive" target="_blank"&gt;Massive&lt;/a&gt; it works with strongly typed &lt;a href="http://en.wikipedia.org/wiki/Plain_Old_CLR_Object" target="_blank"&gt;POCO&lt;/a&gt;'s&lt;/li&gt;  &lt;li&gt;Like &lt;a href="http://blog.wekeroad.com/helpy-stuff/and-i-shall-call-it-massive" target="_blank"&gt;Massive&lt;/a&gt;, it now also supports dynamic Expandos too - &lt;a href="http://www.toptensoftware.com/Articles/104/PetaPoco-Not-So-Poco-or-adding-support-for-dynamic" target="_blank"&gt;read more&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;Like &lt;a href="http://ar.rubyonrails.org/" target="_blank"&gt;ActiveRecord&lt;/a&gt;, it supports a close relationship between object and database table&lt;/li&gt;  &lt;li&gt;Like &lt;a href="http://www.subsonicproject.com" target="_blank"&gt;SubSonic&lt;/a&gt;, it supports generation of poco classes with T4 templates&lt;/li&gt;  &lt;li&gt;Like &lt;a href="http://code.google.com/p/dapper-dot-net/" target="_blank"&gt;Dapper&lt;/a&gt;, it's fast because it uses dynamic method generation (MSIL) to assign column values to properties&lt;/li&gt;  &lt;/ul&gt;  &lt;h3&gt;Background&lt;/h3&gt;  &lt;p&gt;PetaPoco was original inspired by Rob Conery's &lt;a href="http://blog.wekeroad.com/helpy-stuff/and-i-shall-call-it-massive" target="_blank"&gt;Massive&lt;/a&gt; project but for use with non-dynamic &lt;a href="http://en.wikipedia.org/wiki/Plain_Old_CLR_Object" target="_blank"&gt;POCO&lt;/a&gt; objects.  It came about because I was finding many of my projects that used SubSonic/Linq were slow or becoming mixed bags of Linq and &lt;a href="http://www.subsonicproject.com/docs/CodingHorror" target="_blank"&gt;CodingHorror&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I needed a data acess layer that was tiny, fast, easy to use and could run on .NET 3.5 and/or Mono 2.6 (ie: no support for dynamic expandos).  Rob's claim of Massive being only 400 lines of code intruiged me and I wondered if something similar could be done without dynamics.&lt;/p&gt;  &lt;p&gt;So, what's with the name?  Well if Massive is massive, this is "Peta" massive (it's now over 1,500 lines after all) and since it works with "Poco"s ... "PetaPoco" seemed like a fun name!!&lt;/p&gt;  &lt;p&gt;PetaPoco's line count has grown to more than I originally hoped - it's not the tiny 400 lines of Massive. But check out what it can do ... it packs a lot of punch for it's size.&lt;/p&gt;  &lt;h3&gt;Features at a Glance&lt;/h3&gt;  &lt;ul&gt;  &lt;li&gt;Tiny, no dependencies... a single C# file you can easily add to any project.&lt;/li&gt;  &lt;li&gt;Works with strictly undecorated POCOs, or attributed almost-POCOs.&lt;/li&gt;  &lt;li&gt;Helper methods for Insert/Delete/Update/Save and IsNew&lt;/li&gt;  &lt;li&gt;Paged requests automatically work out total record count and fetch a specific page.&lt;/li&gt;  &lt;li&gt;Easy transaction support.&lt;/li&gt;  &lt;li&gt;Better parameter replacement support, including grabbing named parameters from object properties.&lt;/li&gt;  &lt;li&gt;Great performance by eliminating Linq and fast property assignment with DynamicMethod generation.&lt;/li&gt;  &lt;li&gt;Includes T4 templates to automatically generate POCO classes for you.&lt;/li&gt;  &lt;li&gt;The query language is SQL... no weird fluent or Linq syntaxes (yes, matter of opinion)&lt;/li&gt;  &lt;li&gt;Includes a low friction SQL builder class that makes writing inline SQL &lt;em&gt;much&lt;/em&gt; easier.&lt;/li&gt;  &lt;li&gt;Hooks for logging exceptions, installing value converters and mapping columns to properties without attributes.&lt;/li&gt;  &lt;li&gt;Works with SQL Server, SQL Server CE, MySQL, PostgreSQL and Oracle.&lt;/li&gt;  &lt;li&gt;Works under .NET 3.5 or Mono 2.6 and later.&lt;/li&gt;  &lt;li&gt;Experimental support for &lt;code&gt;dynamic&lt;/code&gt; under .NET 4.0 and Mono 2.8&lt;/li&gt;  &lt;li&gt;NUnit unit tests.&lt;/li&gt;  &lt;li&gt;OpenSource (Apache License)&lt;/li&gt;  &lt;li&gt;All of this in about 1,500 lines of code&lt;/li&gt;  &lt;/ul&gt;  &lt;h3&gt;Download&lt;/h3&gt;  &lt;p&gt;PetaPoco is available from:&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;NuGet - &lt;a href="http://nuget.org/List/Packages/PetaPoco" target="_blank"&gt;http://nuget.org/List/Packages/PetaPoco&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;GitHub - &lt;a href="https://github.com/toptensoftware/petapoco" target="_blank"&gt;https://github.com/toptensoftware/petapoco&lt;/a&gt;&lt;/li&gt;  &lt;/ul&gt;  &lt;h3&gt;Show Me the Code!&lt;/h3&gt;  &lt;p&gt;These examples start out more verbose than they need to be but become less so as more features are   introduced... make sure you read to the bottom for the full experience.  I've explicitly referenced the PetaPoco   namespace to make it obvious what comes from where but in reality you'd probably chuck in a &lt;code&gt;using PetaPoco;&lt;/code&gt;.&lt;/p&gt;  &lt;p&gt;Also, all of these examples have been hand-typed and never compiled.  There are probably  typos.  If so, please &lt;a href="http://www.toptensoftware.com/contact" target="_blank"&gt;let me know&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;No Assembly&lt;/h3&gt;  &lt;p&gt;PetaPoco is supplied as a single file - &lt;a href="https://github.com/toptensoftware/PetaPoco/blob/master/PetaPoco/PetaPoco.cs" target="_blank"&gt;PetaPoco.cs&lt;/a&gt;.  With no dependencies other than  what's in the GAC, just add this file to your project and you're set to go...&lt;/p&gt;  &lt;h3&gt;Running Queries&lt;/h3&gt;  &lt;p&gt;First define your POCOs:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;// Represents a record in the &amp;quot;articles&amp;quot; tablepublic class article{    public long article_id { get; set; }    public string title { get; set; }    public DateTime date_created { get; set; }    public bool draft { get; set; }    public string content { get; set; }}&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;Next, create a &lt;code&gt;PetaPoco.Database&lt;/code&gt; and run the query:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;// Create a PetaPoco database objectvar db=new PetaPoco.Database(&amp;quot;connectionStringName&amp;quot;);// Show all articles    foreach (var a in db.Query&amp;lt;article&amp;gt;(&amp;quot;SELECT * FROM articles&amp;quot;)){    Console.WriteLine(&amp;quot;{0} - {1}&amp;quot;, a.article_id, a.title);}&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;To query a scalar:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;long count=db.ExecuteScalar&amp;lt;long&amp;gt;(&amp;quot;SELECT Count(*) FROM articles&amp;quot;);&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;Or, to get a single record:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;var a = db.SingleOrDefault&amp;lt;article&amp;gt;(&amp;quot;SELECT * FROM articles WHERE article_id=@0&amp;quot;, 123));&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;h3&gt;Paged Fetches&lt;/h3&gt;  &lt;p&gt;PetaPoco can automatically perform paged requests.&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;var result=db.Page&amp;lt;article&amp;gt;(1, 20, // &amp;lt;-- page number and items per page        &amp;quot;SELECT * FROM articles WHERE category=@0 ORDER BY date_posted DESC&amp;quot;, &amp;quot;coolstuff&amp;quot;);&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;In return you'll get a PagedFetch object:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;public class Page&amp;lt;T&amp;gt; where T:new(){    public long CurrentPage { get; set; }    public long ItemsPerPage { get; set; }    public long TotalPages { get; set; }    public long TotalItems { get; set; }    public List&amp;lt;T&amp;gt; Items { get; set; }}&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;Behind the scenes, PetaPoco does the following:&lt;/p&gt;  &lt;ol&gt;  &lt;li&gt;Synthesizes and executes a query to retrieve the total number of matching records&lt;/li&gt;  &lt;li&gt;Modifies your original query to request just a subset of the entire record set&lt;/li&gt;  &lt;/ol&gt;  &lt;p&gt;You now have everything to display a page of data and a pager control all wrapped up in one handy   little object!&lt;/p&gt;  &lt;h3&gt;Query vs Fetch&lt;/h3&gt;  &lt;p&gt;The Database class has two methods for retrieving records &lt;code&gt;Query&lt;/code&gt; and &lt;code&gt;Fetch&lt;/code&gt;.  These are pretty  much identical except Fetch returns a List&amp;lt;&amp;gt; of POCO's whereas Query uses &lt;code&gt;yield return&lt;/code&gt; to iterate  over the results without loading the whole set into memory.&lt;/p&gt;  &lt;h3&gt;Non-query Commands&lt;/h3&gt;  &lt;p&gt;To execute non-query commands, use the Execute method&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;db.Execute(&amp;quot;DELETE FROM articles WHERE draft&amp;lt;&amp;gt;0&amp;quot;);&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;h3&gt;Inserts, Updates and Deletes&lt;/h3&gt;  &lt;p&gt;PetaPoco has helpers for insert, update and delete operations.&lt;/p&gt;  &lt;p&gt;To insert a record, you need to specify the table and its primary key:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;// Create the articlevar a=new article();a.title=&amp;quot;My new article&amp;quot;;a.content=&amp;quot;PetaPoco was here&amp;quot;;a.date_created=DateTime.UtcNow;// Insert itdb.Insert(&amp;quot;articles&amp;quot;, &amp;quot;article_id&amp;quot;, a);// by now a.article_id will have the id of the new article&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;Updates are similar:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;// Get a recordvar a=db.SingleOrDefault&amp;lt;article&amp;gt;(&amp;quot;SELECT * FROM articles WHERE article_id=@0&amp;quot;, 123);// Change ita.content=&amp;quot;PetaPoco was here again&amp;quot;;// Save itdb.Update(&amp;quot;articles&amp;quot;, &amp;quot;article_id&amp;quot;, a);&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;Or you can pass an anonymous type to update a subset of fields.  In this case only the article's title field will be updated.&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;db.Update(&amp;quot;articles&amp;quot;, &amp;quot;article_id&amp;quot;, new { title=&amp;quot;New title&amp;quot; }, 123);&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;To delete:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;// Delete an article extracting the primary key from a recorddb.Delete(&amp;quot;articles&amp;quot;, &amp;quot;article_id&amp;quot;, a);// Or if you already have the ID elsewheredb.Delete(&amp;quot;articles&amp;quot;, &amp;quot;article_id&amp;quot;, null, 123);&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;h3&gt;Decorating Your POCOs&lt;/h3&gt;  &lt;p&gt;In the above examples, it's a pain to have to specify the table name and primary key all over the place,  so you can attach this info to your POCO:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;// Represents a record in the &amp;quot;articles&amp;quot; table[PetaPoco.TableName(&amp;quot;articles&amp;quot;)][PetaPoco.PrimaryKey(&amp;quot;article_id&amp;quot;)]public class article{    public long article_id { get; set; }    public string title { get; set; }    public DateTime date_created { get; set; }    public bool draft { get; set; }    public string content { get; set; }}&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;Now inserts, updates and deletes get simplified to this:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;// Insert a recordvar a=new article();a.title=&amp;quot;My new article&amp;quot;;a.content=&amp;quot;PetaPoco was here&amp;quot;;a.date_created=DateTime.UtcNow;db.Insert(a);// Update ita.content=&amp;quot;Blah blah&amp;quot;;db.Update(a);// Delete itdb.Delete(a);&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;There are also other overloads for Update and Delete:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;// Delete an articledb.Delete&amp;lt;article&amp;gt;(&amp;quot;WHERE article_id=@0&amp;quot;, 123);// Update an articledb.Update&amp;lt;article&amp;gt;(&amp;quot;SET title=@0 WHERE article_id=@1&amp;quot;, &amp;quot;New Title&amp;quot;, 123);&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;You can also tell it to ignore certain fields:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;public class article{    [PetaPoco.Ignore]    public long SomeCalculatedFieldPerhaps    {         get; set;     }}&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;Or, perhaps you'd like to be a little more explicit. Rather than automatically mapping all columns you can  use the ExplicitColumns attribute on the class and the Column to indicate just those columns that should be  mapped.&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;// Represents a record in the &amp;quot;articles&amp;quot; table[PetaPoco.TableName(&amp;quot;articles&amp;quot;)][PetaPoco.PrimaryKey(&amp;quot;article_id&amp;quot;)][PetaPoco.ExplicitColumns]public class article{    [PetaPoco.Column] public long article_id { get; set; }    [PetaPoco.Column] public string title { get; set; }    [PetaPoco.Column] public DateTime date_created { get; set; }    [PetaPoco.Column] public bool draft { get; set; }    [PetaPoco.Column] public string content { get; set; }}&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;This works great with partial classes. Put all your table binding stuff in one .cs file and calculated and   other useful properties can be added in a separate file with out thinking about the data layer).&lt;/p&gt;  &lt;h3&gt;Hey! Aren't there already standard attributes for decorating a POCO's database info?&lt;/h3&gt;  &lt;p&gt;Well I could use them but there are so few that PetaPoco supports that I didn't want to cause confusion over what it could do.&lt;/p&gt;  &lt;h3&gt;Hey! Wait a minute... they're not POCO objects!&lt;/h3&gt;  &lt;p&gt;Your right, the attributes really do break the strict concept of &lt;a href="http://en.wikipedia.org/wiki/Plain_Old_CLR_Object" target="_blank"&gt;POCO&lt;/a&gt;,   but if you can live with that they really do make working with PetaPoco easy.&lt;/p&gt;  &lt;h3&gt;T4 Template&lt;/h3&gt;  &lt;p&gt;Writing all those POCO objects can soon get tedious and error prone... so PetaPoco includes a &lt;a href="http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx" target="_blank"&gt;T4 template&lt;/a&gt;   that can automatically write classes for all the tables in your your SQL Server, SQL Server CE, MySQL, PostgreSQL or Oracle database.&lt;/p&gt;  &lt;p&gt;Using the T4 template is pretty simple.  The git repository includes three files (The NuGet package adds   these to your project automatically in the folder &lt;code&gt;\Models\Generated&lt;/code&gt;).&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;PetaPoco.Core.ttinclude - includes all the helper routines for reading the DB schema&lt;/li&gt;  &lt;li&gt;PetaPoco.Generator.ttinclude - the actual template that defines what's generated&lt;/li&gt;  &lt;li&gt;Database.tt - the template itself that includes various settings and includes the two other ttinclude files.&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;A typical Database.tt file looks like this:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;&amp;lt;#@ include file=&amp;quot;PetaPoco.Core.ttinclude&amp;quot; #&amp;gt;&amp;lt;#    // Settings    ConnectionStringName = &amp;quot;jab&amp;quot;;    Namespace = ConnectionStringName;    DatabaseName = ConnectionStringName;    string RepoName = DatabaseName + &amp;quot;DB&amp;quot;;    bool GenerateOperations = true;    // Load tables    var tables = LoadTables();#&amp;gt;&amp;lt;#@ include file=&amp;quot;PetaPoco.Generator.ttinclude&amp;quot; #&amp;gt;&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;To use the template:&lt;/p&gt;  &lt;ol&gt;  &lt;li&gt;Add the three files to you C# project&lt;/li&gt;  &lt;li&gt;Make sure you have a connection string and provider name set in your app.config or web.config file&lt;/li&gt;  &lt;li&gt;Edit ConnectionStringName property in Records.tt (ie: change it from "jab" to the name of your connection string)&lt;/li&gt;  &lt;li&gt;Save Database.tt.    &lt;/li&gt;  &lt;/ol&gt;  &lt;p&gt;All going well Database.cs should be generated with POCO objects representing all the tables in your database. To get   the project to build you'll also need to add PetaPoco.cs to your project and ensure it is set to compile (NuGet does   this for you) .&lt;/p&gt;  &lt;p&gt;The template is based on the &lt;a href="http://subsonicproject.com" target="_blank"&gt;SubSonic&lt;/a&gt; template.  If you're familiar with its  ActiveRecord templates you'll find PetaPoco's template very similar. &lt;/p&gt;  &lt;h3&gt;Automatic Select clauses&lt;/h3&gt;  &lt;p&gt;When using PetaPoco, most queries start with "SELECT * FROM table".  Given that we can now grab the table   name from the POCO object using the TableName attribute, there's no reason we can't automatically  generate this part of the select statement.&lt;/p&gt;  &lt;p&gt;If you run a query that doesn't start with "SELECT", PetaPoco will automatically put it in. So this:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;// Get a recordvar a=db.SingleOrDefault&amp;lt;article&amp;gt;(&amp;quot;SELECT * FROM articles WHERE article_id=@0&amp;quot;, 123);&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;can be shortened to this:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;// Get a recordvar a=db.SingleOrDefault&amp;lt;article&amp;gt;(&amp;quot;WHERE article_id=@0&amp;quot;, 123);&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;PetaPoco doesn't actually generate "SELECT *"... rather it picks the column names of the POCO  and just queries for those columns.&lt;/p&gt;  &lt;h3&gt;IsNew and Save Methods&lt;/h3&gt;  &lt;p&gt;Sometimes you have a POCO and you want to know if it's already in the database.  Since we have the primary key all we need to do is check if that property has been set to something other than the default value.&lt;/p&gt;  &lt;p&gt;So to test if a record is new:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;// Is this a new record if (db.IsNew(a)){    // Yes it is...}&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;And related, there's a Save method that will work out whether to Insert or Update&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;// Save a new or existing recorddb.Save(a);&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;h3&gt;Transactions&lt;/h3&gt;  &lt;p&gt;Transactions are pretty simple:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;using (var scope=db.Transaction){    // Do transacted updates here    // Commit    scope.Complete();}&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;Transactions can be nested, so you can call out to other methods with their own nested transaction scopes  and the whole lot will be wrapped up in a single transaction.  So long as all nested transcaction scopes   are completed the entire root level transaction is committed, otherwise everything is rolled back.&lt;/p&gt;  &lt;p&gt;Note: for transactions to work, all operations need to use the same instance of the PetaPoco database   object.  So you'll probably want to use a per-http request, or per-thread IOC container to serve up a shared  instance of this object.  Personally &lt;a href="http://structuremap.net" target="_blank"&gt;StructureMap&lt;/a&gt; is my favourite for this.&lt;/p&gt;  &lt;h3&gt;But where's the LINQ stuff?&lt;/h3&gt;  &lt;p&gt;There isn't any.  I've used Linq with Subsonic for a long time now and more and more I find myself descending  into &lt;a href="http://subsonicproject.com/docs/CodingHorror" target="_blank"&gt;CodingHorror&lt;/a&gt; for things that:&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;can't be done in Linq easily&lt;/li&gt;  &lt;li&gt;work in .NET but not under Mono (especially Mono 2.6)&lt;/li&gt;  &lt;li&gt;don't perform efficiently.  Eg: Subsonic's activerecord.SingleOrDefault(x=x.id==123) seems to be about 20x  slower than CodingHorror. (See &lt;a href="https://github.com/subsonic/SubSonic-3.0/issues/258" target="_blank"&gt;here&lt;/a&gt;)&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;Now that I've got CodingHorror all over the place it bugs me that half the code is Linq and half is SQL.&lt;/p&gt;  &lt;p&gt;Also, I've realized that for me the most annoying thing about SQL directly in the code is not the fact that it's   SQL but that it's nasty to format nicely and to build up those SQL strings.&lt;/p&gt;  &lt;p&gt;So...&lt;/p&gt;  &lt;h3&gt;PetaPoco's SQL Builder&lt;/h3&gt;  &lt;p&gt;There's been plenty of attempts at building fluent type API's for building SQL.  This is my version and it's really  basic.    &lt;/p&gt;  &lt;p&gt;The point of this is to make formatting the SQL strings easy and to use proper parameter replacements  to protect from SQL injection. This is not an attempt to ensure the SQL is syntactically correct, nor is it  trying to hold anyone's hand with intellisense.&lt;/p&gt;  &lt;p&gt;Here's its most basic form:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;var id=123;var a=db.Query&amp;lt;article&amp;gt;(PetaPoco.Sql.Builder    .Append(&amp;quot;SELECT * FROM articles&amp;quot;)    .Append(&amp;quot;WHERE article_id=@0&amp;quot;, id))&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;Big deal right?  Well what's cool about this is that the parameter indicies are specific to each &lt;code&gt;.Append&lt;/code&gt; call:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;var id=123;var a=db.Query&amp;lt;article&amp;gt;(PetaPoco.Sql.Builder    .Append(&amp;quot;SELECT * FROM articles&amp;quot;)    .Append(&amp;quot;WHERE article_id=@0&amp;quot;, id)    .Append(&amp;quot;AND date_created&amp;lt;@0&amp;quot;, DateTime.UtcNow))&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;You can also conditionally build SQL.    &lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;var id=123;var sql=PetaPoco.Sql.Builder    .Append(&amp;quot;SELECT * FROM articles&amp;quot;)    .Append(&amp;quot;WHERE article_id=@0&amp;quot;, id);if (start_date.HasValue)    sql.Append(&amp;quot;AND date_created&amp;gt;=@0&amp;quot;, start_date.Value);if (end_date.HasValue)    sql.Append(&amp;quot;AND date_created&amp;lt;=@0&amp;quot;, end_date.Value);var a=db.Query&amp;lt;article&amp;gt;(sql)&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;Note that each append call uses parameter @0?  PetaPoco builds the full list of arguments and   updates the parameter indices internally for you.&lt;/p&gt;  &lt;p&gt;You can also use named parameters and it will look for an appropriately named property on  any of the passed arguments&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;sql.Append(&amp;quot;AND date_created&amp;gt;=@start AND date_created&amp;lt;=@end&amp;quot;,                 new                 {                     start=DateTime.UtcNow.AddDays(-2),                     end=DateTime.UtcNow                 }            );&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;p&gt;With both numbered and named parameters, if any of the parameters can't be resolved   an exception is thrown.&lt;/p&gt;  &lt;p&gt;There are also methods for building common SQL stuff:&lt;/p&gt;  &lt;div class="CodeRay"&gt;  &lt;div class="code"&gt;&lt;div class="CodeRay"&gt; &lt;div class="code"&gt;&lt;pre&gt;var sql=PetaPoco.Sql.Builder()            .Select(&amp;quot;*&amp;quot;)            .From(&amp;quot;articles&amp;quot;)            .Where(&amp;quot;date_created &amp;lt; @0&amp;quot;, DateTime.UtcNow)            .OrderBy(&amp;quot;date_created DESC&amp;quot;);&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;/div&gt;    &lt;h3&gt;SQL Command Tracking&lt;/h3&gt;  &lt;p&gt;Sometime it's useful to be able to see what SQL was just executed.  PetaPoco exposes these three properties:&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;LastSQL - pretty obvious&lt;/li&gt;  &lt;li&gt;LastArgs - an object[] array of all arguments passed&lt;/li&gt;  &lt;li&gt;LastCommand - a string that shows the SQL and the arguments&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;Watching the LastCommand property in the debugger makes it easy to see what just happened!&lt;/p&gt;  &lt;h3&gt;OnException Handler Routine&lt;/h3&gt;  &lt;p&gt;PetaPoco wraps all SQL command invocations in try/catch statements. Any exceptions are passed  to the virtual OnException method.  By logging these exceptions (or setting a breakpoint on this method)  you can easily track where an when there are problems with your SQL.&lt;/p&gt;  &lt;h3&gt;More&lt;/h3&gt;  &lt;p&gt;The covers most of the basics of working with PetaPoco, but for more please &lt;a href="http://www.toptensoftware.com/petapoco#"&gt;read these blog posts about PetaPoco&lt;/a&gt;.&lt;/p&gt;                    &lt;p&gt;&amp;nbsp;&lt;/p&gt;    &lt;/div&gt;&lt;/blockquote&gt;    &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.toptensoftware.com/petapoco/"&gt;toptensoftware.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/topten-software-petapoco"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-3774241800387960515?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/3774241800387960515/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=3774241800387960515" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/3774241800387960515?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/3774241800387960515?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/S3Ig_zhWUXU/topten-software-petapoco.html" title="Topten Software - petapoco" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/topten-software-petapoco.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8AR38zeyp7ImA9WhRXFkw.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-7293552872821215896</id><published>2011-12-23T05:07:00.001Z</published><updated>2011-12-23T05:07:26.183Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-23T05:07:26.183Z</app:edited><title>Using SignalR to broadcast a slide deck</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile9.posterous.com/getfile/files.posterous.com/solrev/HGDfhCopCEmahnJIqvfEeJEvfilFswFDgCqypcEIavuiksflewdqvtwsoIgx/media_httpblogmaarten_FJfyl.jpg.scaled1000.jpg"&gt;&lt;img alt="Media_httpblogmaarten_fjfyl" height="243" src="http://getfile8.posterous.com/getfile/files.posterous.com/solrev/HGDfhCopCEmahnJIqvfEeJEvfilFswFDgCqypcEIavuiksflewdqvtwsoIgx/media_httpblogmaarten_FJfyl.jpg.scaled500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://blog.maartenballiauw.be/post/2011/12/06/Using-SignalR-to-broadcast-a-slide-deck.aspx"&gt;blog.maartenballiauw.be&lt;/a&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/using-signalr-to-broadcast-a-slide-deck"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-7293552872821215896?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/7293552872821215896/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=7293552872821215896" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/7293552872821215896?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/7293552872821215896?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/RWS49iMNAq8/using-signalr-to-broadcast-slide-deck.html" title="Using SignalR to broadcast a slide deck" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/using-signalr-to-broadcast-slide-deck.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAMQXw9eCp7ImA9WhRXFkw.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-8142976805959719394</id><published>2011-12-23T05:06:00.001Z</published><updated>2011-12-23T05:06:20.260Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-23T05:06:20.260Z</app:edited><title>Instagram Engineering • Sharding &amp; IDs at Instagram</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;img alt="Media_httpstatictumbl_dgxjy" height="84" src="http://getfile4.posterous.com/getfile/files.posterous.com/solrev/aszzhDCjyCwyhtnDzsGenqhDjHrAswqvsIwDvqDhCubjIEHxengImgzoyyHa/media_httpstatictumbl_DGxJy.png.scaled500.png" width="302" /&gt; &lt;/div&gt; &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://instagram-engineering.tumblr.com/post/10853187575/sharding-ids-at-instagram"&gt;instagram-engineering.tumblr.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/instagram-engineering-sharding-ids-at-instagr"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-8142976805959719394?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/8142976805959719394/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=8142976805959719394" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/8142976805959719394?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/8142976805959719394?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/dQT6JDz1qjg/instagram-engineering-sharding-ids-at.html" title="Instagram Engineering • Sharding &amp;amp; IDs at Instagram" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/instagram-engineering-sharding-ids-at.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcBRXw9eSp7ImA9WhRQGU8.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-7559857193824922159</id><published>2011-12-15T05:14:00.001Z</published><updated>2011-12-15T05:14:14.261Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-15T05:14:14.261Z</app:edited><title>Finding the Perfect Icon Set | Think Vitamin</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile4.posterous.com/getfile/files.posterous.com/solrev/iqkAnqiaJvmjgtgGcHdcfpqwqHdgjBIvCsDtbrCGnxweGDfHECpzgJnAhvHl/media_httpiimgurcom2b_kuncl.jpg.scaled1000.jpg"&gt;&lt;img alt="Media_httpiimgurcom2b_kuncl" height="197" src="http://getfile2.posterous.com/getfile/files.posterous.com/solrev/iqkAnqiaJvmjgtgGcHdcfpqwqHdgjBIvCsDtbrCGnxweGDfHECpzgJnAhvHl/media_httpiimgurcom2b_kuncl.jpg.scaled500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://thinkvitamin.com/design/tips-for-finding-the-perfect-icon-set/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+carsonified+%28Carsonified%29&amp;amp;utm_content=Google+Reader"&gt;thinkvitamin.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;Expensive icon sets. FamFam are free buit limited&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/finding-the-perfect-icon-set-think-vitamin"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-7559857193824922159?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/7559857193824922159/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=7559857193824922159" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/7559857193824922159?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/7559857193824922159?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/dq1IIjX0204/finding-perfect-icon-set-think-vitamin.html" title="Finding the Perfect Icon Set | Think Vitamin" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/finding-perfect-icon-set-think-vitamin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04DRXg_fyp7ImA9WhRQGU8.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-7482577960515822030</id><published>2011-12-15T05:12:00.003Z</published><updated>2011-12-15T05:12:54.647Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-15T05:12:54.647Z</app:edited><title>John Sheehan : Blog: I love travel sites that auto-populate the search...</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;img alt="Media_http26mediatumb_dzeen" height="131" src="http://getfile0.posterous.com/getfile/files.posterous.com/solrev/rypBoBBcGEmEthmzhpEanCgurshEmiyGwhaabhifmjhAmGGogspJbxkABxcA/media_http26mediatumb_DzEen.png.scaled500.png" width="500" /&gt; &lt;/div&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://john-sheehan.com/post/1022097267/i-love-travel-sites-that-auto-populate-the-search"&gt;john-sheehan.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;I think we do this. Otherwise it will get added to our backlog if I can tomorrow!&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/john-sheehan-blog-i-love-travel-sites-that-au"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-7482577960515822030?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/7482577960515822030/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=7482577960515822030" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/7482577960515822030?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/7482577960515822030?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/hsCXOSbyQfU/john-sheehan-blog-i-love-travel-sites.html" title="John Sheehan : Blog: I love travel sites that auto-populate the search..." /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/john-sheehan-blog-i-love-travel-sites.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04GQXszeip7ImA9WhRQGU8.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-3261119022931923049</id><published>2011-12-15T05:12:00.001Z</published><updated>2011-12-15T05:12:00.582Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-15T05:12:00.582Z</app:edited><title>Scaling High-Availability Infrastructure in the Cloud</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;img alt="Media_httpwwwtwilioco_jeqhg" height="310" src="http://getfile9.posterous.com/getfile/files.posterous.com/solrev/tbuJgDgFqenlmvBzgGxolelFzvviAsxjxnlHoIvIIysfriIfwBdbxjnzusvm/media_httpwwwtwilioco_JeqHG.png.scaled500.png" width="340" /&gt; &lt;/div&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.twilio.com/engineering/2011/12/12/scaling-high-availablity-infrastructure-in-cloud"&gt;twilio.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;An interesting post by one of my favourite start ups at the moment.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/scaling-high-availability-infrastructure-in-t"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-3261119022931923049?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/3261119022931923049/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=3261119022931923049" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/3261119022931923049?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/3261119022931923049?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/6oK2eHth07U/scaling-high-availability.html" title="Scaling High-Availability Infrastructure in the Cloud" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/scaling-high-availability.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AMRX49cCp7ImA9WhRQGU8.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-8990180859343024948</id><published>2011-12-15T05:09:00.003Z</published><updated>2011-12-15T05:09:44.068Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-15T05:09:44.068Z</app:edited><title>Updated: The Best Email Client for Mac</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile4.posterous.com/getfile/files.posterous.com/solrev/jEIgskyEiehjcvFpqsnwgFnyoCmBbugksoyqjHngypIfHxqdBltxktltmIor/media_httpfastcachega_JpJsI.jpg.scaled1000.jpg"&gt;&lt;img alt="Media_httpfastcachega_jpjsi" height="281" src="http://getfile2.posterous.com/getfile/files.posterous.com/solrev/jEIgskyEiehjcvFpqsnwgFnyoCmBbugksoyqjHngypIfHxqdBltxktltmIor/media_httpfastcachega_JpJsI.jpg.scaled500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://lifehacker.com/5868170/updated-the-best-email-client-for-mac"&gt;lifehacker.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;An updated post including Sparrow.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/updated-the-best-email-client-for-mac"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-8990180859343024948?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/8990180859343024948/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=8990180859343024948" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/8990180859343024948?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/8990180859343024948?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/T80CG4L9h7c/updated-best-email-client-for-mac.html" title="Updated: The Best Email Client for Mac" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/updated-best-email-client-for-mac.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ACRXs-fSp7ImA9WhRQGU8.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-7930678085426133313</id><published>2011-12-15T05:09:00.001Z</published><updated>2011-12-15T05:09:24.555Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-15T05:09:24.555Z</app:edited><title>The Best Email Client for Mac OS X</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile2.posterous.com/getfile/files.posterous.com/solrev/ezbaavqyteufJEJHsgFmfmxFIbDfozfrulqEiGpttDtdljwDkFekquCFdjyo/media_httpfastcachega_Cxpqw.jpg.scaled1000.jpg"&gt;&lt;img alt="Media_httpfastcachega_cxpqw" height="281" src="http://getfile0.posterous.com/getfile/files.posterous.com/solrev/ezbaavqyteufJEJHsgFmfmxFIbDfozfrulqEiGpttDtdljwDkFekquCFdjyo/media_httpfastcachega_Cxpqw.jpg.scaled500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://lifehacker.com/5811204/the-best-email-client-for-mac-os-x"&gt;lifehacker.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;an older post and one I wished I had seen before paying for PostBox even though I love it.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/the-best-email-client-for-mac-os-x"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-7930678085426133313?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/7930678085426133313/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=7930678085426133313" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/7930678085426133313?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/7930678085426133313?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/Qe-EbuKrc4M/best-email-client-for-mac-os-x.html" title="The Best Email Client for Mac OS X" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/best-email-client-for-mac-os-x.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ENQH8zfSp7ImA9WhRQGU8.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-6276355211844548064</id><published>2011-12-15T05:08:00.001Z</published><updated>2011-12-15T05:08:11.185Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-15T05:08:11.185Z</app:edited><title>Sparrow — Get mail done</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile1.posterous.com/getfile/files.posterous.com/solrev/sIAddBrbInmehJCcHDsEgjDFlnrwfJBAkvdmhsDkslnkGEIoxpitwjwcHwJg/media_httpsparrowmail_EJcwI.png.scaled1000.png"&gt;&lt;img alt="Media_httpsparrowmail_ejcwi" height="281" src="http://getfile8.posterous.com/getfile/files.posterous.com/solrev/sIAddBrbInmehJCcHDsEgjDFlnrwfJBAkvdmhsDkslnkGEIoxpitwjwcHwJg/media_httpsparrowmail_EJcwI.png.scaled500.png" width="500" /&gt;&lt;/a&gt; &lt;/div&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://sparrowmailapp.com/"&gt;sparrowmailapp.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;I'm using and enjoying PostBox but this looks quite good as well. no time to check it out yet but posting it here for when I do have some spare time.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/sparrow-get-mail-done"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-6276355211844548064?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/6276355211844548064/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=6276355211844548064" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/6276355211844548064?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/6276355211844548064?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/PqckB2EyvvY/sparrow-get-mail-done.html" title="Sparrow — Get mail done" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/sparrow-get-mail-done.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EGR3g_eyp7ImA9WhRQGU8.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-2823560926484733531</id><published>2011-12-15T05:07:00.001Z</published><updated>2011-12-15T05:07:06.643Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-15T05:07:06.643Z</app:edited><title>Plaform Updates: Operation Developer Love - Facebook developers</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;blockquote&gt;&lt;div&gt;&lt;p&gt;&lt;img src="http://developers.facebook.com/attachment/odl_tall.png" height="180" width="108" style="" /&gt;&lt;/p&gt;    &lt;p&gt;Last week we &lt;a href="https://developers.facebook.com/blog/post/609/"&gt;introduced the Subscribe Button for Websites&lt;/a&gt;, announced the &lt;a href="https://developers.facebook.com/blog/post/611/"&gt;removal of App Profile Pages&lt;/a&gt; on February 1st, 2012, provided a &lt;a href="https://developers.facebook.com/blog/post/613/"&gt;recap on our recent Social Games Hack&lt;/a&gt; and published a tutorial on &lt;a href="https://developers.facebook.com/blog/post/612/"&gt;debugging Open Graph apps&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;Finally, we updated &lt;a href="https://developers.facebook.com/blog/post/614/"&gt;the JavaScript SDK to only support OAuth 2.0&lt;/a&gt;. This new JavaScript SDK was first announced in July with the requirement that all apps to migrate by &lt;a href="https://developers.facebook.com/docs/oauth2-https-migration/"&gt;October 1, 2011&lt;/a&gt;. If your app was affected, read more about the specific changes that you need to make &lt;a href="https://developers.facebook.com/blog/post/525/"&gt;here&lt;/a&gt;. A friendly reminder that it is important to follow the &lt;a href="http://developers.facebook.com/blog"&gt;Facebook Developer Blog&lt;/a&gt; or the &lt;a href="https://developers.facebook.com/roadmap"&gt;Roadmap&lt;/a&gt; for breaking change updates. This can be done by &lt;a href="https://www.facebook.com/developers/emailsettings.php"&gt;email&lt;/a&gt; or &lt;a href="https://developers.intern.facebook.com/blog/feed"&gt;RSS&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;&lt;b&gt;Platform Changes&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;This week we completed the discontinuation of the Dashboard APIs with the exception of &lt;code&gt;dashboard.incrementCount&lt;/code&gt;, &lt;code&gt;dashboard.decrementCount&lt;/code&gt;, &lt;code&gt;dashboard.setCount&lt;/code&gt; and &lt;code&gt;dashboard.getCount&lt;/code&gt; methods. All apps should upgrade to the new &lt;a href="https://developers.facebook.com/blog/post/464"&gt;Requests 2.0&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;&lt;b&gt;Upcoming changes on January 1, 2012&lt;/b&gt;&lt;/p&gt;    &lt;ul&gt;  &lt;li&gt;&lt;b&gt;Deprecating the &lt;a href="http://developers.facebook.com/blog/post/615#"&gt;FB.Data.*&lt;/a&gt; JS SDK APIs&lt;/b&gt; This will be no longer supported and will not be available to new apps.&lt;/li&gt;  &lt;li&gt;&lt;b&gt;Deprecating FB.Canvas.setAutoResize&lt;/b&gt; We have renamed FB.Canvas.setAutoResize to FB.Canvas.setAutoGrow so that the method more accurately represents its function. Fb.Canvas.setAutoResize will be removed.&lt;/li&gt;  &lt;li&gt;&lt;b&gt;Deprecating FBML&lt;/b&gt; FBML will no longer be supported as of &lt;b&gt;January 1, 2012&lt;/b&gt;. Aside from security and privacy related bugs, we will not fix any bugs related to FBML after January 1, 2012. On June 1, 2012 FBML endpoints will be removed from Platform&lt;/li&gt;  &lt;li&gt;&lt;b&gt;All apps will be opted into "Upgrade to Requests 2.0" and "Requests 2.0 Efficient"&lt;/b&gt; Existing apps will be opted into “Requests 2.0 Efficient” and "Upgrade to Requests 2.0" migrations and all developers must ensure that they are using the correct request_id format and deleting requests appropriately. Details &lt;a href="https://developers.facebook.com/blog/post/569/"&gt;here&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;b&gt;Enforcing Credits Policy&lt;/b&gt; We have added a new policy to the &lt;a href="https://developers.facebook.com/policy/credits/"&gt;Facebook Credits Terms&lt;/a&gt; that prohibits routing Credits from one app to another app without our prior authorization.  &lt;blockquote&gt;2.14 You may not accept Credits in one app and deliver or transfer the purchase to the user in another app without our prior authorization. For example, an app solely designed to facilitate transactions is not permitted.&lt;/blockquote&gt;  &lt;p&gt;Apps that are not compliant by January 1, 2012 run the risk of having their Credits disabled shortly after.&lt;/p&gt;&lt;/li&gt;  &lt;/ul&gt;    &lt;p&gt;  Please refer to the &lt;a href="https://developers.facebook.com/roadmap"&gt;Platform Roadmap&lt;/a&gt; for more info on these and other upcoming changes.  &lt;/p&gt;    &lt;p&gt;  &lt;b&gt;Bug Activity from 12/6 to 12/13&lt;/b&gt;  &lt;/p&gt;    &lt;ul&gt;  &lt;li&gt;210 bugs were reported&lt;/li&gt;  &lt;li&gt;89 bugs were reproducible and accepted (after duplicates removed)&lt;/li&gt;  &lt;li&gt;61 bugs were by design&lt;/li&gt;  &lt;li&gt;27 bugs were fixed&lt;/li&gt;  &lt;li&gt;71 bugs were duplicate, invalid, or need more information&lt;/li&gt;  &lt;/ul&gt;    &lt;p&gt;  &lt;b&gt;Bugs fixed from 12/6 to 12/13&lt;/b&gt;  &lt;/p&gt;    &lt;ul&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/326926027320196"&gt;Link to the "How do I get reimbursed" page is wrong&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/124995400948223"&gt;Duplicate attribute - num_posts - listed on Comment Plugin Documentation Page&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/256444431075802"&gt;Dead link on &lt;a href="http://developers.facebook.com/docs/guides/canvas/#insights"&gt;http://developers.facebook.com/docs/guides/canvas/#insights&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/158723520894230"&gt;BREAKING CHANGE: Format of Facebook API Response&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/285440228160623"&gt;Documentation typo: "JavaScript" misspelled in link "JavaScrtip SDK" at &lt;a href="https://developers.facebook.com/docs/reference/javascript/FB.init/"&gt;https://developers.facebook.com/docs/reference/javascript/FB.init/&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/267972309919356"&gt;"format error in Old REST API Documentation page&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/242704499126462"&gt;New Auth does not send "code" to redirect page if users skips extended permissions&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/228888177178407"&gt;Requests 1.0 no longer showing request message&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/248587011865643"&gt;Cannot delete posts to app and fan pages&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/114326045347805"&gt;Like Box feed photo squished&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/182705755149358"&gt;connect() timed out!&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/202061939872315"&gt;server whitelist does not accept ipv6 adddresses&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/145804828853802"&gt;Facebook comments disappear past May 2011 v2&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/240521779341234"&gt;Graph API stats for an adgroup - missing unique impressions&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/308316382512599"&gt;Like Box Error.&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/190140734398158"&gt;Facebook Send button missing icon&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/188045844609566"&gt;Live stream box configuration error&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/273142312725520"&gt;Allow page&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/259085580801085"&gt;iphone and ipad apps lose URL context on redirect for canvas apps&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/222763661119914"&gt;Facebook Ads API - Ad group Suggested Bid&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/158684890893035"&gt;Dark scheme hides links on social plugin&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/204942886240556"&gt;Broken Link - Mobile SSO Documentation&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/174276242655775"&gt;fb:comment returning httpS content when called over http&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/181487731927353"&gt;Notifications auto-scroll not working for game requests&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/172406742840270"&gt;Live Stream Plugin not displaying posts&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/216327195092981"&gt;Like button not counting likes for some app pages&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.facebook.com/bugs/111829965587408"&gt;Bad request error&lt;/a&gt;&lt;/li&gt;  &lt;/ul&gt;    &lt;p&gt;  &lt;b&gt;Activity on &lt;a href="http://facebook.stackoverflow.com"&gt;facebook.stackoverflow.com&lt;/a&gt; this week:&lt;/b&gt;  &lt;/p&gt;    &lt;ul&gt;  &lt;li&gt;140 questions asked&lt;/li&gt;  &lt;li&gt;16 &lt;a href="http://blog.stackoverflow.com/2008/09/ok-now-define-answered/"&gt;answered&lt;/a&gt;, 11% answered rate&lt;/li&gt;  &lt;li&gt;50 replied, 36% reply rate&lt;/li&gt;  &lt;/ul&gt;  &lt;/div&gt;&lt;/blockquote&gt;    &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://developers.facebook.com/blog/post/615/"&gt;developers.facebook.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;Some facebook developer love.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/plaform-updates-operation-developer-love-face"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-2823560926484733531?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/2823560926484733531/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=2823560926484733531" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/2823560926484733531?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/2823560926484733531?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/y68qgQlUW_4/plaform-updates-operation-developer.html" title="Plaform Updates: Operation Developer Love - Facebook developers" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/plaform-updates-operation-developer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEERHgzfCp7ImA9WhRQGU8.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-5975123352283757489</id><published>2011-12-15T04:50:00.001Z</published><updated>2011-12-15T04:50:05.684Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-15T04:50:05.684Z</app:edited><title>Most Popular Mac Downloads and Posts of 2011</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile9.posterous.com/getfile/files.posterous.com/solrev/FwzlbkAFenvJhelBzjvivdDmqfGzoovmJtnGFdrgvBDahgEHmEnGjhtnHFEz/media_httpfastcachega_iDych.jpg.scaled1000.jpg"&gt;&lt;img alt="Media_httpfastcachega_idych" height="281" src="http://getfile6.posterous.com/getfile/files.posterous.com/solrev/FwzlbkAFenvJhelBzjvivdDmqfGzoovmJtnGFdrgvBDahgEHmEnGjhtnHFEz/media_httpfastcachega_iDych.jpg.scaled500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://lifehacker.com/5868231/most-popular-mac-downloads-and-posts-of-2011"&gt;lifehacker.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;must be careful of disk space on my SSD but here are some useful links of what lifehacker considers the best mac downloads and posts of 2011.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/most-popular-mac-downloads-and-posts-of-2011"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-5975123352283757489?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/5975123352283757489/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=5975123352283757489" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/5975123352283757489?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/5975123352283757489?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/32Un4PT8bv4/most-popular-mac-downloads-and-posts-of.html" title="Most Popular Mac Downloads and Posts of 2011" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/most-popular-mac-downloads-and-posts-of.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYMSX45fyp7ImA9WhRQFEw.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-5706105894521416286</id><published>2011-12-09T05:56:00.001Z</published><updated>2011-12-09T05:56:28.027Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-09T05:56:28.027Z</app:edited><title>KsigDo. A Knockout, SignalR, ASP.net, MVVM, MVC and EF all mixed together into a multiuser real time sync To Do" example | Coding4Fun Blog | Channel 9</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/1wh33W-09bk&amp;amp;hl=en" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;embed src="http://www.youtube.com/v/1wh33W-09bk&amp;amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425" /&gt;&lt;/object&gt;    &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://channel9.msdn.com/coding4fun/blog/KsigDo-A-Knockout-SignalR-ASPnet-MVVM-MVC-and-EF-all-mixed-together-into-a-multiuser-real-time-sync-"&gt;channel9.msdn.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;Magnets and mirrors the only missing technology is this wonderful example.Things have moved on somewhat since I added a hit counter to a website back in the 1990's.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/ksigdo-a-knockout-signalr-aspnet-mvvm-mvc-and"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-5706105894521416286?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/5706105894521416286/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=5706105894521416286" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/5706105894521416286?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/5706105894521416286?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/FUca0fgGyxE/ksigdo-knockout-signalr-aspnet-mvvm-mvc.html" title="KsigDo. A Knockout, SignalR, ASP.net, MVVM, MVC and EF all mixed together into a multiuser real time sync To Do&amp;quot; example | Coding4Fun Blog | Channel 9" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/ksigdo-knockout-signalr-aspnet-mvvm-mvc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYCSH46cSp7ImA9WhRQFE0.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-6045854700014231785</id><published>2011-12-09T04:49:00.001Z</published><updated>2011-12-09T04:49:29.019Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-09T04:49:29.019Z</app:edited><title>CSSCop - Visual Studio Gallery</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;img alt="Media_httpi1visualstu_psbaq" height="137" src="http://getfile2.posterous.com/getfile/files.posterous.com/solrev/cwvGnhqldmvCiksAeinIwsoqoeyhxfvxwqwAitfjgAycrgBHCpytEeoyuurb/media_httpi1visualstu_psBaq.png.scaled500.png" width="200" /&gt; &lt;/div&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://visualstudiogallery.msdn.microsoft.com/a921b98e-9430-4be2-bf53-1169e12bdb50"&gt;visualstudiogallery.msdn.microsoft.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;CSSCop extension made by Mads, the same guy now at Microsoft making cool plugins that will probably end up in Visual Studio.Next&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/csscop-visual-studio-gallery"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-6045854700014231785?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/6045854700014231785/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=6045854700014231785" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/6045854700014231785?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/6045854700014231785?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/kWgqVtFpd40/csscop-visual-studio-gallery.html" title="CSSCop - Visual Studio Gallery" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/csscop-visual-studio-gallery.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUMQngycSp7ImA9WhRQE0Q.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-7825087951869814611</id><published>2011-12-09T02:04:00.001Z</published><updated>2011-12-09T02:04:43.699Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-09T02:04:43.699Z</app:edited><title>Hello MonoDroid</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile9.posterous.com/getfile/files.posterous.com/solrev/cwxhttlFokBjAcywxDmvDmcDJoslhczGFpdwtnCilzCADlnlCbIvAtFhwwjc/media_httpdocsxamarin_szoht.png.scaled1000.png"&gt;&lt;img alt="Media_httpdocsxamarin_szoht" height="377" src="http://getfile8.posterous.com/getfile/files.posterous.com/solrev/cwxhttlFokBjAcywxDmvDmcDJoslhczGFpdwtnCilzCADlnlCbIvAtFhwwjc/media_httpdocsxamarin_szoht.png.scaled500.png" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://docs.xamarin.com/android/getting_started/installation/Installation_for_Mac"&gt;docs.xamarin.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;Quite a few versions to target/support. Hmm. How hard can it be. Seeing as Java is closer to C Sharp than Objective-C perhaps Android development should be native. Will see how I get on with MonoDevelop first.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/hello-monodroid"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-7825087951869814611?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/7825087951869814611/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=7825087951869814611" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/7825087951869814611?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/7825087951869814611?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/OvQCFk6WQeE/hello-monodroid.html" title="Hello MonoDroid" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/hello-monodroid.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYFQHc4eSp7ImA9WhRQE0Q.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-2028685437086686079</id><published>2011-12-09T02:01:00.001Z</published><updated>2011-12-09T02:01:51.931Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-09T02:01:51.931Z</app:edited><title>Hello iPad and hello iPhone</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile0.posterous.com/getfile/files.posterous.com/solrev/HdatbFJCmpiuiqdtfsIypmaHGDDBopykmyunmyJIGocaDDGEJDrAtwqCbsnj/media_httpdocsxamarin_byfBx.png.scaled1000.png"&gt;&lt;img alt="Media_httpdocsxamarin_byfbx" height="444" src="http://getfile8.posterous.com/getfile/files.posterous.com/solrev/HdatbFJCmpiuiqdtfsIypmaHGDDBopykmyunmyJIGocaDDGEJDrAtwqCbsnj/media_httpdocsxamarin_byfBx.png.scaled500.png" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://docs.xamarin.com/ios/getting_started/ipad_and_universal_apps"&gt;docs.xamarin.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;MonoDevelop updated itself and launched this help screen. Next up should be MonoDroid.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/hello-ipad-and-hello-iphone"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-2028685437086686079?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/2028685437086686079/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=2028685437086686079" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/2028685437086686079?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/2028685437086686079?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/bS7iRtXG4mU/hello-ipad-and-hello-iphone.html" title="Hello iPad and hello iPhone" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/12/hello-ipad-and-hello-iphone.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQGQnkzfyp7ImA9WhRRFUQ.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-7241058315561457004</id><published>2011-11-29T19:18:00.001Z</published><updated>2011-11-29T19:18:43.787Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-29T19:18:43.787Z</app:edited><title>Twine : Listen to your world, talk to the Internet by Supermechanical — Kickstarter</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile1.posterous.com/getfile/files.posterous.com/solrev/lBmClvGknJGlxIkHpnzrIErCHryatIEdJjGnfvBAGdiehtzgixafiGyfnCCw/media_httpsupermechan_cJyle.jpg.scaled1000.jpg"&gt;&lt;img alt="Media_httpsupermechan_cjyle" height="421" src="http://getfile4.posterous.com/getfile/files.posterous.com/solrev/lBmClvGknJGlxIkHpnzrIErCHryatIEdJjGnfvBAGdiehtzgixafiGyfnCCw/media_httpsupermechan_cJyle.jpg.scaled500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.kickstarter.com/projects/supermechanical/twine-listen-to-your-world-talk-to-the-internet"&gt;kickstarter.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;cool!&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/twine-listen-to-your-world-talk-to-the-intern"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-7241058315561457004?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/7241058315561457004/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=7241058315561457004" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/7241058315561457004?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/7241058315561457004?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/MssSzRA96Fk/twine-listen-to-your-world-talk-to.html" title="Twine : Listen to your world, talk to the Internet by Supermechanical — Kickstarter" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/11/twine-listen-to-your-world-talk-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMFSHkzeSp7ImA9WhRREEo.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-2603577515993875412</id><published>2011-11-23T19:26:00.001Z</published><updated>2011-11-23T19:26:59.781Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-23T19:26:59.781Z</app:edited><title>IMS BLTI In SCORM Cloud</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;img alt="Media_httpcdn1scormco_ijkrh" height="257" src="http://getfile7.posterous.com/getfile/files.posterous.com/solrev/GgsIzmCFdeDjnvCoovBulyvFsjfpfeAsuzaBqCEiIJquHIDGIIhJabAbrmIi/media_httpcdn1scormco_IJkrh.jpg.scaled500.jpg" width="400" /&gt; &lt;/div&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://feedproxy.google.com/~r/scorm/blog/~3/o7vbpJrD_1E/"&gt;feedproxy.google.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;Something that would have interested me in my old e-learning days!&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/ims-blti-in-scorm-cloud"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-2603577515993875412?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/2603577515993875412/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=2603577515993875412" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/2603577515993875412?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/2603577515993875412?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/Pm0En4gR3J0/ims-blti-in-scorm-cloud.html" title="IMS BLTI In SCORM Cloud" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/11/ims-blti-in-scorm-cloud.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEHQns_fyp7ImA9WhRSFk4.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-683934758553190447</id><published>2011-11-18T16:43:00.001Z</published><updated>2011-11-18T16:43:53.547Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-18T16:43:53.547Z</app:edited><title>Postbox — Awesome Email</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile5.posterous.com/getfile/files.posterous.com/solrev/GcfagwtBbapHJEGuysHHBpifzAefqAmzpoEcEeJFoCiztfluyEnlnvtsFraa/media_httpstaticpostb_qwnza.png.scaled1000.png"&gt;&lt;img alt="Media_httpstaticpostb_qwnza" height="315" src="http://getfile2.posterous.com/getfile/files.posterous.com/solrev/GcfagwtBbapHJEGuysHHBpifzAefqAmzpoEcEeJFoCiztfluyEnlnvtsFraa/media_httpstaticpostb_qwnza.png.scaled500.png" width="500" /&gt;&lt;/a&gt; &lt;/div&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.postbox-inc.com/"&gt;postbox-inc.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;Giving this a trial as a replacement for Mail.App. Seeing if it handles multiple gmail app accounts properly.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/postbox-awesome-email"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-683934758553190447?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/683934758553190447/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=683934758553190447" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/683934758553190447?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/683934758553190447?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/YtVN5Zwa4l0/via-postbox-inc.html" title="Postbox — Awesome Email" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/11/via-postbox-inc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkICRXY9eyp7ImA9WhRSFk4.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-7173680607549004717</id><published>2011-11-18T16:42:00.001Z</published><updated>2011-11-18T16:42:44.863Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-18T16:42:44.863Z</app:edited><title>Alfred App</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile1.posterous.com/getfile/files.posterous.com/solrev/pzIjlaymdhJrJJxihzhIbjxsvlxJDsAGbszHwhulgxlnhdewoDDIxqjtwnah/media_httpwwwalfredap_jmeuE.jpg.scaled1000.jpg"&gt;&lt;img alt="Media_httpwwwalfredap_jmeue" height="290" src="http://getfile7.posterous.com/getfile/files.posterous.com/solrev/pzIjlaymdhJrJJxihzhIbjxsvlxJDsAGbszHwhulgxlnhdewoDDIxqjtwnah/media_httpwwwalfredap_jmeuE.jpg.scaled500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.alfredapp.com/"&gt;alfredapp.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;A launchy style replacement for the finder&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/alfred-app"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-7173680607549004717?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/7173680607549004717/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=7173680607549004717" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/7173680607549004717?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/7173680607549004717?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/s6VNJ8tv2pM/via-alfredapp.html" title="Alfred App" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/11/via-alfredapp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIESH8_cSp7ImA9WhRSFk4.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-1025171711641336080</id><published>2011-11-18T16:41:00.001Z</published><updated>2011-11-18T16:41:49.149Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-18T16:41:49.149Z</app:edited><title>Sequel Pro</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile7.posterous.com/getfile/files.posterous.com/solrev/rafwbfwduFtyuzdfhfzrfyGnDrerguFznHnBxDEcfumIJnynbEhmIyDsglEu/media_httpwwwsequelpr_oopCq.png.scaled1000.png"&gt;&lt;img alt="Media_httpwwwsequelpr_oopcq" height="218" src="http://getfile3.posterous.com/getfile/files.posterous.com/solrev/rafwbfwduFtyuzdfhfzrfyGnDrerguFznHnBxDEcfumIJnynbEhmIyDsglEu/media_httpwwwsequelpr_oopCq.png.scaled500.png" width="500" /&gt;&lt;/a&gt; &lt;/div&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.sequelpro.com/"&gt;sequelpro.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;MySQL database management for Mac OS X&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/sequel-pro"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-1025171711641336080?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/1025171711641336080/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=1025171711641336080" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/1025171711641336080?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/1025171711641336080?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/QtRb329AtXI/via-sequelpro.html" title="Sequel Pro" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/11/via-sequelpro.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMARXw8fip7ImA9WhRSFk4.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-3582385133510543695</id><published>2011-11-18T16:40:00.001Z</published><updated>2011-11-18T16:40:44.276Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-18T16:40:44.276Z</app:edited><title>monocross - A cross-platform MVC pattern for mobile development in .NET/C# and Mono - Google Project Hosting</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile0.posterous.com/getfile/files.posterous.com/solrev/ndtBnalmDleJygGFBntmamFaxrweiIkekFvDqEvhzpnHjkdopzqxGJEGIDyn/media_httpmonocrossgo_JIDyd.png.scaled1000.png"&gt;&lt;img alt="Media_httpmonocrossgo_jidyd" height="295" src="http://getfile3.posterous.com/getfile/files.posterous.com/solrev/ndtBnalmDleJygGFBntmamFaxrweiIkekFvDqEvhzpnHjkdopzqxGJEGIDyn/media_httpmonocrossgo_JIDyd.png.scaled500.png" width="500" /&gt;&lt;/a&gt; &lt;/div&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://code.google.com/p/monocross/"&gt;code.google.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/monocross-a-cross-platform-mvc-pattern-for-mo"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-3582385133510543695?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/3582385133510543695/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=3582385133510543695" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/3582385133510543695?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/3582385133510543695?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/QB7Hmcgheto/via-code.html" title="monocross - A cross-platform MVC pattern for mobile development in .NET/C# and Mono - Google Project Hosting" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/11/via-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ABR3g6fCp7ImA9WhRTE0k.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-8453253660928685393</id><published>2011-11-03T19:49:00.001Z</published><updated>2011-11-03T19:49:16.614Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-03T19:49:16.614Z</app:edited><title>MacHg</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;img alt="Media_httpjasonfharri_jrkwv" height="320" src="http://getfile7.posterous.com/getfile/files.posterous.com/solrev/wcdhwJrkqGGteFuwImEhHufeuwjEttDBiCaoBImHepmACtctbcpcuDjHEheu/media_httpjasonfharri_jrkwv.png.scaled500.png" width="455" /&gt; &lt;/div&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://jasonfharris.com/machg/"&gt;jasonfharris.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;Going to give this a go for my mercurial source control work on my new shiny macbook pro&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/machg"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-8453253660928685393?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/8453253660928685393/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=8453253660928685393" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/8453253660928685393?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/8453253660928685393?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/D99-d0tZfP4/machg.html" title="MacHg" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/11/machg.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4NRX86fyp7ImA9WhRTE00.&quot;"><id>tag:blogger.com,1999:blog-31446756.post-6577283495970890917</id><published>2011-11-03T07:23:00.001Z</published><updated>2011-11-03T07:23:14.117Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-03T07:23:14.117Z</app:edited><title>Amazon Simple Notification Service Now Supports SMS</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;div class='p_embed p_image_embed'&gt; &lt;img alt="Media_httpmediaamazon_hlxgu" height="656" src="http://getfile2.posterous.com/getfile/files.posterous.com/solrev/yIzrtIhmqnuoCqElDpamesjndoukIqmAEdpqthqqcCblvJIzEhcncGBDqfwq/media_httpmediaamazon_HlxGu.png.scaled500.png" width="475" /&gt; &lt;/div&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://aws.typepad.com/aws/2011/11/amazon-simple-notification-service-now-supports-sms.html"&gt;aws.typepad.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;US only for now but should rollout to other regions at some point.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://blog.solutionrevolution.net/amazon-simple-notification-service-now-suppor"&gt;solution revolution&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31446756-6577283495970890917?l=sol-rev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sol-rev.blogspot.com/feeds/6577283495970890917/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=31446756&amp;postID=6577283495970890917" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/6577283495970890917?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/31446756/posts/default/6577283495970890917?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TSaX/~3/GrB0TgnQ-4Y/amazon-simple-notification-service-now.html" title="Amazon Simple Notification Service Now Supports SMS" /><author><name>solution revolution</name><uri>http://www.blogger.com/profile/17824462853447272967</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://2.bp.blogspot.com/_WnPb2kqqhc4/SQBQBSxW3eI/AAAAAAAAATU/libYjBhhDQs/S220/orange-circle.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://sol-rev.blogspot.com/2011/11/amazon-simple-notification-service-now.html</feedburner:origLink></entry></feed>

