<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:georss="http://www.georss.org/georss" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:media="http://search.yahoo.com/mrss/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">

<channel>
	<title>IgorShare Thoughts and Ideas</title>
	<atom:link href="https://igorshare.wordpress.com/feed/" rel="self" type="application/rss+xml"/>
	<link>https://igorshare.wordpress.com</link>
	<description>Consulting and Training</description>
	<lastBuildDate>Fri, 26 Jul 2013 19:34:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<site xmlns="com-wordpress:feed-additions:1">2434376</site><cloud domain="igorshare.wordpress.com" path="/?rsscloud=notify" port="80" protocol="http-post" registerProcedure=""/>
<image>
		<url>https://secure.gravatar.com/blavatar/e19a95eb1c6f9f1e7c8353ccd24ecd0e16fc7616c9c8d23655676b7a4a2f3b7a?s=96&amp;d=https%3A%2F%2Fs0.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>IgorShare Thoughts and Ideas</title>
		<link>https://igorshare.wordpress.com</link>
	</image>
	<atom:link href="https://igorshare.wordpress.com/osd.xml" rel="search" title="IgorShare Thoughts and Ideas" type="application/opensearchdescription+xml"/>
	<atom:link href="https://igorshare.wordpress.com/?pushpress=hub" rel="hub"/>
	<itunes:explicit>no</itunes:explicit><itunes:subtitle>Consulting and Training</itunes:subtitle><item>
		<title>Roslyn: C# is cheating on me with JavaScript (or how to compile C# into JavaScript)</title>
		<link>https://igorshare.wordpress.com/2012/08/20/roslyn-c-is-cheating-on-me-with-javascript-or-how-to-compile-c-into-javascript/</link>
					<comments>https://igorshare.wordpress.com/2012/08/20/roslyn-c-is-cheating-on-me-with-javascript-or-how-to-compile-c-into-javascript/#comments</comments>
		
		<dc:creator><![CDATA[Igor Moochnick]]></dc:creator>
		<pubDate>Tue, 21 Aug 2012 04:17:19 +0000</pubDate>
				<category><![CDATA[Architect]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Compiler]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://igorshare.wordpress.com/?p=597</guid>

					<description><![CDATA[While working extensively on development of the Single Page Applications (SPA) I was facing a fact that my server-side data models were evolving quicker than their JavaScript counterparts. Both the client-side and the server-side data models were getting quickly out of sync. The brute force solution of using the T4 templating engine to emit both [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://igorshare.wordpress.com/wp-content/uploads/2012/08/image.png"><img style="background-image:none;float:left;padding-top:0;padding-left:0;margin:0 20px 20px 0;display:inline;padding-right:0;border-width:0;" title="image" src="https://igorshare.wordpress.com/wp-content/uploads/2012/08/image_thumb.png?w=486&#038;h=370" alt="image" width="486" height="370" align="left" border="0" /></a>While working extensively on development of the Single Page Applications (SPA) I was facing a fact that my server-side data models were evolving quicker than their JavaScript counterparts. Both the client-side and the server-side data models were getting quickly out of sync.</p>
<p>The brute force solution of using the <a href="http://msdn.microsoft.com/en-us/library/bb126445.aspx">T4 templating engine</a> to emit both the client-side and the server side data models didn&#8217;t look that appealing to me. Primarily due to a simple fact that it&#8217;s not that easy to refactor the T4 templates. And, the <a href="http://www.jetbrains.com/resharper/">ReSharper</a> junkie like me, can&#8217;t tolerate this fact.</p>
<p>So I&#8217;ve decided to give the latest release of Roslyn compiler-as-a-service CTP another spin and use it as part of my build sequence and compile my C# models directly into the appropriate JavaScript ones. This was giving me the advantage of using the C# as a primary development environment and leaving the JavaScript to follow the &#8220;big-brother&#8221;.</p>
<p><a href="https://github.com/IgorShare/jinx">Jinx C#-to-JavaScript compiler</a> was created as a result of this exercise. You&#8217;re welcome to get the <a href="https://github.com/IgorShare/jinx">Jinx source</a> from the GitHub. I&#8217;ll appreciate any collaboration on this project.</p>
<p><strong>Note:</strong> all of the code is an intermediate solution that was answering my personal needs for the project I was running. It is in no-way represent the full fledge solution. If you want something bigger and more feature-reach, you can either contribute to my solution or look into projects like <a href="http://projects.nikhilk.net/ScriptSharp">Script#</a> or <a href="http://sharpkit.net/">SharpKit</a>.</p>
<p><span id="more-597"></span></p>
<p>The workflow, I ended up with, was very simple:</p>
<ol>
<li>Build a web application</li>
<li>In the web application create C# data models and, those that have to be compiled to JavaScript, mark them with the [JavaScript] attribute (*)</li>
<li>As a post-build step, run the &#8220;<a href="https://github.com/IgorShare/jinx">jinxc</a>&#8221; command line compiler to emit the JavaScript data models directly into your Scripts folder</li>
</ol>
<p>(*) &#8211; I&#8217;ve decided to use attribute as an option to reduce unnecessary noise from the compilation. The compiler will ignore all of the non-marked classes. This is not a requirement, but an option.</p>
<p>The example, we&#8217;re going to discuss here, is a simple To-Do list SPA application (based on the <a href="http://addyosmani.github.com/todomvc/">ToDoMvc</a> with <a href="http://knockoutjs.com/">Knockout.js</a>) with the Asp.Net WebApi REST service.</p>
<p>The simple <a href="https://github.com/IgorShare/jinx/blob/master/examples/MvcApp.Demo/Models/ToDoItem.cs">C# data model</a> that I needed for the client-server communication looks like this:</p>
<style>.gist table { margin-bottom: 0; }</style><div style="tab-size: 8" id="gist3411131" class="gist">
    <div class="gist-file" translate="no" data-color-mode="light" data-light-theme="light">
      <div class="gist-data">
        
<div class="js-gist-file-update-container js-task-list-container">
      <div id="file-gistfile1-cs" class="file my-2">
    
    <div itemprop="text"
      class="Box-body p-0 blob-wrapper data type-c  "
      style="overflow: auto" tabindex="0" role="region"
      aria-label="gistfile1.cs content, created by igormoochnick on 03:06AM on August 21, 2012."
    >

        
<div class="js-check-hidden-unicode js-blob-code-container blob-code-content">

  <template class="js-file-alert-template">
  <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center">
  <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
    <span>
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a>
    </span>


  <div data-view-component="true" class="flash-action">        <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn">    Show hidden characters
</a>
</div>
</div></template>
<template class="js-line-alert-template">
  <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e">
    <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
</span></template>

  <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="4" data-paste-markdown-skip data-tagsearch-path="gistfile1.cs">
        <tr>
          <td id="file-gistfile1-cs-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td>
          <td id="file-gistfile1-cs-LC1" class="blob-code blob-code-inner js-file-line">[JavaScript]</td>
        </tr>
        <tr>
          <td id="file-gistfile1-cs-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td>
          <td id="file-gistfile1-cs-LC2" class="blob-code blob-code-inner js-file-line">public class ToDoItem</td>
        </tr>
        <tr>
          <td id="file-gistfile1-cs-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td>
          <td id="file-gistfile1-cs-LC3" class="blob-code blob-code-inner js-file-line">{</td>
        </tr>
        <tr>
          <td id="file-gistfile1-cs-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td>
          <td id="file-gistfile1-cs-LC4" class="blob-code blob-code-inner js-file-line">  public Guid guid { get; set; }</td>
        </tr>
        <tr>
          <td id="file-gistfile1-cs-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td>
          <td id="file-gistfile1-cs-LC5" class="blob-code blob-code-inner js-file-line">  public string title { get; set; }</td>
        </tr>
        <tr>
          <td id="file-gistfile1-cs-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td>
          <td id="file-gistfile1-cs-LC6" class="blob-code blob-code-inner js-file-line">  public bool completed { get; set; }</td>
        </tr>
        <tr>
          <td id="file-gistfile1-cs-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td>
          <td id="file-gistfile1-cs-LC7" class="blob-code blob-code-inner js-file-line">}</td>
        </tr>
  </table>
</div>


    </div>

  </div>

</div>

      </div>
      <div class="gist-meta">
        <a href="https://gist.github.com/igormoochnick/3411131/raw/0595eda17cda8cf4a1b3497ed67138c9a24e9c5e/gistfile1.cs" style="float:right" class="Link--inTextBlock">view raw</a>
        <a href="https://gist.github.com/igormoochnick/3411131#file-gistfile1-cs" class="Link--inTextBlock">
          gistfile1.cs
        </a>
        hosted with &#10084; by <a class="Link--inTextBlock" href="https://github.com">GitHub</a>
      </div>
    </div>
</div>

<p>The following command compiles the source data model from C# to JavaScript:</p>
<pre><strong>#&gt; jinxc [original] [destination]</strong></pre>
<p>The compiler creates the following JavaScript data model:</p>
<style>.gist table { margin-bottom: 0; }</style><div style="tab-size: 8" id="gist3411136" class="gist">
    <div class="gist-file" translate="no" data-color-mode="light" data-light-theme="light">
      <div class="gist-data">
        
<div class="js-gist-file-update-container js-task-list-container">
      <div id="file-gistfile1-js" class="file my-2">
    
    <div itemprop="text"
      class="Box-body p-0 blob-wrapper data type-javascript  "
      style="overflow: auto" tabindex="0" role="region"
      aria-label="gistfile1.js content, created by igormoochnick on 03:06AM on August 21, 2012."
    >

        
<div class="js-check-hidden-unicode js-blob-code-container blob-code-content">

  <template class="js-file-alert-template">
  <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center">
  <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
    <span>
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a>
    </span>


  <div data-view-component="true" class="flash-action">        <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn">    Show hidden characters
</a>
</div>
</div></template>
<template class="js-line-alert-template">
  <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e">
    <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
</span></template>

  <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="4" data-paste-markdown-skip data-tagsearch-path="gistfile1.js">
        <tr>
          <td id="file-gistfile1-js-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td>
          <td id="file-gistfile1-js-LC1" class="blob-code blob-code-inner js-file-line">var ToDoItem = function() {</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td>
          <td id="file-gistfile1-js-LC2" class="blob-code blob-code-inner js-file-line">  var self = this;</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td>
          <td id="file-gistfile1-js-LC3" class="blob-code blob-code-inner js-file-line">  return {</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td>
          <td id="file-gistfile1-js-LC4" class="blob-code blob-code-inner js-file-line">    guid: &quot;&quot;,</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td>
          <td id="file-gistfile1-js-LC5" class="blob-code blob-code-inner js-file-line">    title: &quot;&quot;,</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td>
          <td id="file-gistfile1-js-LC6" class="blob-code blob-code-inner js-file-line">    completed: false,</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td>
          <td id="file-gistfile1-js-LC7" class="blob-code blob-code-inner js-file-line">  };</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td>
          <td id="file-gistfile1-js-LC8" class="blob-code blob-code-inner js-file-line">};</td>
        </tr>
  </table>
</div>


    </div>

  </div>

</div>

      </div>
      <div class="gist-meta">
        <a href="https://gist.github.com/igormoochnick/3411136/raw/8f535a51026d8e9691ca9881736e4ca1169018d7/gistfile1.js" style="float:right" class="Link--inTextBlock">view raw</a>
        <a href="https://gist.github.com/igormoochnick/3411136#file-gistfile1-js" class="Link--inTextBlock">
          gistfile1.js
        </a>
        hosted with &#10084; by <a class="Link--inTextBlock" href="https://github.com">GitHub</a>
      </div>
    </div>
</div>

<p>Make sure that the compiler output is generated in the destination folder for all your JavaScript models.</p>
<p>The generated model is very simple (in the current implementation) and represents the RAW structure that you need to fill in before sending it across the wire. <a href="http://api.jquery.com/jQuery.ajax/">JQuery ajax</a> helpers are very handy for that:</p>
<style>.gist table { margin-bottom: 0; }</style><div style="tab-size: 8" id="gist3411363" class="gist">
    <div class="gist-file" translate="no" data-color-mode="light" data-light-theme="light">
      <div class="gist-data">
        
<div class="js-gist-file-update-container js-task-list-container">
      <div id="file-gistfile1-js" class="file my-2">
    
    <div itemprop="text"
      class="Box-body p-0 blob-wrapper data type-javascript  "
      style="overflow: auto" tabindex="0" role="region"
      aria-label="gistfile1.js content, created by igormoochnick on 03:50AM on August 21, 2012."
    >

        
<div class="js-check-hidden-unicode js-blob-code-container blob-code-content">

  <template class="js-file-alert-template">
  <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center">
  <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
    <span>
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a>
    </span>


  <div data-view-component="true" class="flash-action">        <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn">    Show hidden characters
</a>
</div>
</div></template>
<template class="js-line-alert-template">
  <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e">
    <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
</span></template>

  <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="4" data-paste-markdown-skip data-tagsearch-path="gistfile1.js">
        <tr>
          <td id="file-gistfile1-js-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td>
          <td id="file-gistfile1-js-LC1" class="blob-code blob-code-inner js-file-line">this.registerOnServer = function () {</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td>
          <td id="file-gistfile1-js-LC2" class="blob-code blob-code-inner js-file-line">    $.post(&quot;/api/ToDo&quot;, getDataModel());</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td>
          <td id="file-gistfile1-js-LC3" class="blob-code blob-code-inner js-file-line">};</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td>
          <td id="file-gistfile1-js-LC4" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td>
          <td id="file-gistfile1-js-LC5" class="blob-code blob-code-inner js-file-line">this.removeFromServer = function () {</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td>
          <td id="file-gistfile1-js-LC6" class="blob-code blob-code-inner js-file-line">    $.ajax({</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td>
          <td id="file-gistfile1-js-LC7" class="blob-code blob-code-inner js-file-line">        type: &quot;DELETE&quot;,</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td>
          <td id="file-gistfile1-js-LC8" class="blob-code blob-code-inner js-file-line">        url: &quot;/api/ToDo/&quot; + self.guid</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L9" class="blob-num js-line-number js-blob-rnum" data-line-number="9"></td>
          <td id="file-gistfile1-js-LC9" class="blob-code blob-code-inner js-file-line">    });</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L10" class="blob-num js-line-number js-blob-rnum" data-line-number="10"></td>
          <td id="file-gistfile1-js-LC10" class="blob-code blob-code-inner js-file-line">};</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L11" class="blob-num js-line-number js-blob-rnum" data-line-number="11"></td>
          <td id="file-gistfile1-js-LC11" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L12" class="blob-num js-line-number js-blob-rnum" data-line-number="12"></td>
          <td id="file-gistfile1-js-LC12" class="blob-code blob-code-inner js-file-line">this.updateOnServer = function() {</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L13" class="blob-num js-line-number js-blob-rnum" data-line-number="13"></td>
          <td id="file-gistfile1-js-LC13" class="blob-code blob-code-inner js-file-line">    $.ajax({</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L14" class="blob-num js-line-number js-blob-rnum" data-line-number="14"></td>
          <td id="file-gistfile1-js-LC14" class="blob-code blob-code-inner js-file-line">        type: &quot;PUT&quot;,</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L15" class="blob-num js-line-number js-blob-rnum" data-line-number="15"></td>
          <td id="file-gistfile1-js-LC15" class="blob-code blob-code-inner js-file-line">        url: &quot;/api/ToDo/&quot; + self.guid,</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L16" class="blob-num js-line-number js-blob-rnum" data-line-number="16"></td>
          <td id="file-gistfile1-js-LC16" class="blob-code blob-code-inner js-file-line">        data: getDataModel()</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L17" class="blob-num js-line-number js-blob-rnum" data-line-number="17"></td>
          <td id="file-gistfile1-js-LC17" class="blob-code blob-code-inner js-file-line">    });</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L18" class="blob-num js-line-number js-blob-rnum" data-line-number="18"></td>
          <td id="file-gistfile1-js-LC18" class="blob-code blob-code-inner js-file-line">};</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L19" class="blob-num js-line-number js-blob-rnum" data-line-number="19"></td>
          <td id="file-gistfile1-js-LC19" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L20" class="blob-num js-line-number js-blob-rnum" data-line-number="20"></td>
          <td id="file-gistfile1-js-LC20" class="blob-code blob-code-inner js-file-line">function getDataModel() {</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L21" class="blob-num js-line-number js-blob-rnum" data-line-number="21"></td>
          <td id="file-gistfile1-js-LC21" class="blob-code blob-code-inner js-file-line">    var item = new ToDoItem();</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L22" class="blob-num js-line-number js-blob-rnum" data-line-number="22"></td>
          <td id="file-gistfile1-js-LC22" class="blob-code blob-code-inner js-file-line">    item.guid = self.guid;</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L23" class="blob-num js-line-number js-blob-rnum" data-line-number="23"></td>
          <td id="file-gistfile1-js-LC23" class="blob-code blob-code-inner js-file-line">    item.title = self.title();</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L24" class="blob-num js-line-number js-blob-rnum" data-line-number="24"></td>
          <td id="file-gistfile1-js-LC24" class="blob-code blob-code-inner js-file-line">    item.completed = self.completed();</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L25" class="blob-num js-line-number js-blob-rnum" data-line-number="25"></td>
          <td id="file-gistfile1-js-LC25" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L26" class="blob-num js-line-number js-blob-rnum" data-line-number="26"></td>
          <td id="file-gistfile1-js-LC26" class="blob-code blob-code-inner js-file-line">    return item;</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L27" class="blob-num js-line-number js-blob-rnum" data-line-number="27"></td>
          <td id="file-gistfile1-js-LC27" class="blob-code blob-code-inner js-file-line">}</td>
        </tr>
  </table>
</div>


    </div>

  </div>

</div>

      </div>
      <div class="gist-meta">
        <a href="https://gist.github.com/igormoochnick/3411363/raw/787df9e022388f5e03ae41f11acfe8ca3000ca29/gistfile1.js" style="float:right" class="Link--inTextBlock">view raw</a>
        <a href="https://gist.github.com/igormoochnick/3411363#file-gistfile1-js" class="Link--inTextBlock">
          gistfile1.js
        </a>
        hosted with &#10084; by <a class="Link--inTextBlock" href="https://github.com">GitHub</a>
      </div>
    </div>
</div>

<p>As you can see, the usage of the <em><strong>Jinx</strong></em> compiler is straight forward, but the underlying &#8220;magic&#8221; is not that simple. Main task is handled by Roslyn itself &#8211; it parses the source C# and generates a full AST (abstract syntax tree).</p>
<p>There are 2 main ways to traverse the tree:</p>
<ol>
<li>Use the <em>SyntaxWalker</em> helper class &#8211; override only the handlers of interest (i.e. &#8220;<em>override void</em> <em>VisitVariableDeclaration</em>&#8221; will be called ONLY when a variable declaration is visited)</li>
<li>navigate through all of the nodes and their properties by accessing the AST nodes directly</li>
</ol>
<p>The <em><strong>Jinx</strong></em> implementation uses both techniques to achieve its goals: first one &#8211; to jump directly to the points of interest and the second one to interrogate the context in details.</p>
<p>To build the <em><strong>Jinx</strong></em> compiler you&#8217;ll need the following <strong>Prerequisites</strong>:</p>
<ol>
<li>VS 2012</li>
<li>VS 2012 SDK</li>
<li><a href="http://www.microsoft.com/en-us/download/details.aspx?id=27746">Roslyn June 2012 CTP</a> (more <a href="http://blogs.msdn.com/b/jasonz/archive/2012/06/05/announcing-microsoft-roslyn-june-2012-ctp.aspx">info</a>)</li>
</ol>
<p>I&#8217;ll be writing more about Roslyn in general and <em><strong>Jinx</strong></em> in particular. So stay tuned &#8230;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://igorshare.wordpress.com/2012/08/20/roslyn-c-is-cheating-on-me-with-javascript-or-how-to-compile-c-into-javascript/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">597</post-id>
		<media:content medium="image" url="https://2.gravatar.com/avatar/2488f2bfd1e002c87fc60973d91cd72a170375e52cb1ca92982f923db2b13005?s=96&amp;d=identicon&amp;r=G">
			<media:title type="html">IgorM</media:title>
		</media:content>

		<media:content medium="image" url="https://igorshare.wordpress.com/wp-content/uploads/2012/08/image_thumb.png">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>ASPConf 2012: Content for my presentations</title>
		<link>https://igorshare.wordpress.com/2012/07/20/aspconf-2012-content-for-my-presentations/</link>
					<comments>https://igorshare.wordpress.com/2012/07/20/aspconf-2012-content-for-my-presentations/#respond</comments>
		
		<dc:creator><![CDATA[Igor Moochnick]]></dc:creator>
		<pubDate>Sat, 21 Jul 2012 02:10:14 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://igorshare.wordpress.com/?p=580</guid>

					<description><![CDATA[Building complex Single Page Application should be as enjoyable as visit to a SPA You can watch the full Video on Channel9 and get the Source on the GitHub. Tips for Building Responsive Cloud Applications You can watch the full Video on Channel9 and get the Source on the GitHub.]]></description>
										<content:encoded><![CDATA[<h2><a href="http://aspconf.apphb.com/sessions#46">Building complex Single Page Application should be as enjoyable as visit to a SPA</a></h2>
<p>You can watch the <a href="http://channel9.msdn.com/Events/aspConf/aspConf/Building-complex-Single-Page-Application-should-be-as-enjoyable-as-visit-to-a-SPA">full Video on Channel9</a> and get the <a href="https://github.com/IgorShare/ASPConf-2012/tree/master/ASPConf-2012-SPA">Source on the GitHub</a>.</p>
<div data-shortcode="caption" id="attachment_606" style="width: 310px" class="wp-caption alignleft"><a href="http://channel9.msdn.com/Events/aspConf/aspConf/Building-complex-Single-Page-Application-should-be-as-enjoyable-as-visit-to-a-SPA"><img aria-describedby="caption-attachment-606" data-attachment-id="606" data-permalink="https://igorshare.wordpress.com/2012/07/20/aspconf-2012-content-for-my-presentations/aspconf_azure/" data-orig-file="https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf_azure.png" data-orig-size="300,224" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="aspConf_Azure" data-image-description="" data-image-caption="&lt;p&gt;Video&lt;/p&gt;
" data-medium-file="https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf_azure.png?w=300" data-large-file="https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf_azure.png?w=300" src="https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf_azure.png?w=300&#038;h=224" alt="Check out the video" width="300" height="224" class="size-full wp-image-606" srcset="https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf_azure.png 300w, https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf_azure.png?w=150&amp;h=112 150w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-606" class="wp-caption-text">Video</p></div>
<iframe src='https://www.slideshare.net/slideshow/embed_code/13710822' width='425' height='348' sandbox="allow-popups allow-scripts allow-same-origin allow-presentation" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
<hr>
<h2><a href="http://aspconf.apphb.com/sessions#45">Tips for Building Responsive Cloud Applications</a></h2>
<p>You can watch the <a href="http://channel9.msdn.com/Events/aspConf/aspConf/Tips-for-Building-Responsive-Cloud-Applications">full Video on Channel9</a> and get the <a href="https://github.com/IgorShare/ASPConf-2012/tree/master/ASPConf-2012-ResponsiveCloud">Source on the GitHub</a>.</p>
<p><div data-shortcode="caption" id="attachment_607" style="width: 370px" class="wp-caption alignleft"><a href="http://channel9.msdn.com/Events/aspConf/aspConf/Tips-for-Building-Responsive-Cloud-Applications"><img aria-describedby="caption-attachment-607" data-attachment-id="607" data-permalink="https://igorshare.wordpress.com/2012/07/20/aspconf-2012-content-for-my-presentations/aspconf-spa/" data-orig-file="https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf-spa.png" data-orig-size="360,202" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="aspConf Spa" data-image-description="" data-image-caption="&lt;p&gt;Video&lt;/p&gt;
" data-medium-file="https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf-spa.png?w=300" data-large-file="https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf-spa.png?w=360" src="https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf-spa.png?w=360&#038;h=202" alt="Video" width="360" height="202" class="size-full wp-image-607" srcset="https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf-spa.png 360w, https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf-spa.png?w=150&amp;h=84 150w, https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf-spa.png?w=300&amp;h=168 300w" sizes="(max-width: 360px) 100vw, 360px" /></a><p id="caption-attachment-607" class="wp-caption-text">Video</p></div><br />
<iframe src='https://www.slideshare.net/slideshow/embed_code/13710826' width='425' height='348' sandbox="allow-popups allow-scripts allow-same-origin allow-presentation" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></p>
]]></content:encoded>
					
					<wfw:commentRss>https://igorshare.wordpress.com/2012/07/20/aspconf-2012-content-for-my-presentations/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">580</post-id>
		<media:content medium="image" url="https://2.gravatar.com/avatar/2488f2bfd1e002c87fc60973d91cd72a170375e52cb1ca92982f923db2b13005?s=96&amp;d=identicon&amp;r=G">
			<media:title type="html">IgorM</media:title>
		</media:content>

		<media:content medium="image" url="https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf_azure.png">
			<media:title type="html">Check out the video</media:title>
		</media:content>

		<media:content medium="image" url="https://igorshare.wordpress.com/wp-content/uploads/2012/07/aspconf-spa.png">
			<media:title type="html">Video</media:title>
		</media:content>
	</item>
		<item>
		<title>ASPConf: Generating dynamic views, but Google Chrome was too smart for me</title>
		<link>https://igorshare.wordpress.com/2012/07/20/aspconf-generating-dynamic-views-but-google-chrome-was-too-smart-for-me/</link>
					<comments>https://igorshare.wordpress.com/2012/07/20/aspconf-generating-dynamic-views-but-google-chrome-was-too-smart-for-me/#respond</comments>
		
		<dc:creator><![CDATA[Igor Moochnick]]></dc:creator>
		<pubDate>Sat, 21 Jul 2012 01:58:45 +0000</pubDate>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://igorshare.wordpress.com/?p=576</guid>

					<description><![CDATA[I had a blast presenting for ASPConf 2012. I want to thank all the organizers, presenters and attendees. Without you it wouldn’t have been possible. One of the questions from one of the attendees during my “Building complex Single Page Application should be as enjoyable as visit to a SPA” talk was: Q: Is it [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I had a blast presenting for <a href="http://aspconf.apphb.com/">ASPConf 2012</a>. I want to thank all the organizers, presenters and attendees. Without you it wouldn’t have been possible.</p>
<p>One of the questions from one of the attendees during my “<a href="http://aspconf.apphb.com/sessions#46">Building complex Single Page Application should be as enjoyable as visit to a SPA</a>” talk was:</p>
<blockquote><p>Q: Is it possible to bring on-demand portions of the application that will be emitted by the Asp.Net MVC Views (aka: dynamic views generation)</p>
<p>A: Sure (see <strong>Picture #3</strong>).</p></blockquote>
<p>But when, in fact, I’ve tried to demonstrate it right away – I hit a snag.</p>
<p>What happened is: my implementation was correct but Google Chrome was too smart for me to handle it and wrapped the partial HTML with the full “HEAD” and “BODY” tags [See <strong>Picture #1</strong>].</p>
<p>I’ve assumed that my server was returning more than the generated by the Raw view content itself. If I would’ve checked a network stream [See <strong>Picture #2</strong>] (or Fiddler) I would’ve seen another result – the correct one.</p>
<h4>Picture #1</h4>
<p><a href="https://igorshare.wordpress.com/wp-content/uploads/2012/07/image.png"><img loading="lazy" style="background-image:none;margin:5px;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://igorshare.wordpress.com/wp-content/uploads/2012/07/image_thumb.png?w=644&#038;h=388" alt="image" width="644" height="388" border="0" /></a></p>
<h4>Picture #2</h4>
<p><a href="https://igorshare.wordpress.com/wp-content/uploads/2012/07/image1.png"><img loading="lazy" style="background-image:none;margin:5px;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://igorshare.wordpress.com/wp-content/uploads/2012/07/image_thumb1.png?w=644&#038;h=341" alt="image" width="644" height="341" border="0" /></a></p>
<p>So, this is a simple example how you can import a dynamically generated content from an Asp.Net Mvc view into a SPA application:</p>
<p>1. Create a view</p>
<style>.gist table { margin-bottom: 0; }</style><div style="tab-size: 8" id="gist3154205" class="gist">
    <div class="gist-file" translate="no" data-color-mode="light" data-light-theme="light">
      <div class="gist-data">
        
<div class="js-gist-file-update-container js-task-list-container">
      <div id="file-gistfile1-html" class="file my-2">
    
    <div itemprop="text"
      class="Box-body p-0 blob-wrapper data type-html  "
      style="overflow: auto" tabindex="0" role="region"
      aria-label="gistfile1.html content, created by igormoochnick on 01:44AM on July 21, 2012."
    >

        
<div class="js-check-hidden-unicode js-blob-code-container blob-code-content">

  <template class="js-file-alert-template">
  <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center">
  <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
    <span>
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a>
    </span>


  <div data-view-component="true" class="flash-action">        <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn">    Show hidden characters
</a>
</div>
</div></template>
<template class="js-line-alert-template">
  <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e">
    <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
</span></template>

  <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="4" data-paste-markdown-skip data-tagsearch-path="gistfile1.html">
        <tr>
          <td id="file-gistfile1-html-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td>
          <td id="file-gistfile1-html-LC1" class="blob-code blob-code-inner js-file-line">&lt;div id=&quot;home&quot; style=&quot;border: 2px; background: #FF0097;&quot;&gt;</td>
        </tr>
        <tr>
          <td id="file-gistfile1-html-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td>
          <td id="file-gistfile1-html-LC2" class="blob-code blob-code-inner js-file-line">    &lt;h2&gt;Welcome to &quot;Honey-do-list&quot;&lt;br/&gt;from a &quot;@Model.Id&quot;&lt;/h2&gt;</td>
        </tr>
        <tr>
          <td id="file-gistfile1-html-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td>
          <td id="file-gistfile1-html-LC3" class="blob-code blob-code-inner js-file-line">&lt;/div&gt;</td>
        </tr>
  </table>
</div>


    </div>

  </div>

</div>

      </div>
      <div class="gist-meta">
        <a href="https://gist.github.com/igormoochnick/3154205/raw/5ccce95ada324d26cd4bbba22cb06eade49bc75a/gistfile1.html" style="float:right" class="Link--inTextBlock">view raw</a>
        <a href="https://gist.github.com/igormoochnick/3154205#file-gistfile1-html" class="Link--inTextBlock">
          gistfile1.html
        </a>
        hosted with &#10084; by <a class="Link--inTextBlock" href="https://github.com">GitHub</a>
      </div>
    </div>
</div>

<p>2. Create a Controller entry (when you’ll navigate to this view you should see a result on <strong>Picture #2</strong>)</p>
<style>.gist table { margin-bottom: 0; }</style><div style="tab-size: 8" id="gist3154215" class="gist">
    <div class="gist-file" translate="no" data-color-mode="light" data-light-theme="light">
      <div class="gist-data">
        
<div class="js-gist-file-update-container js-task-list-container">
      <div id="file-gistfile1-cs" class="file my-2">
    
    <div itemprop="text"
      class="Box-body p-0 blob-wrapper data type-c  "
      style="overflow: auto" tabindex="0" role="region"
      aria-label="gistfile1.cs content, created by igormoochnick on 01:48AM on July 21, 2012."
    >

        
<div class="js-check-hidden-unicode js-blob-code-container blob-code-content">

  <template class="js-file-alert-template">
  <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center">
  <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
    <span>
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a>
    </span>


  <div data-view-component="true" class="flash-action">        <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn">    Show hidden characters
</a>
</div>
</div></template>
<template class="js-line-alert-template">
  <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e">
    <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
</span></template>

  <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="4" data-paste-markdown-skip data-tagsearch-path="gistfile1.cs">
        <tr>
          <td id="file-gistfile1-cs-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td>
          <td id="file-gistfile1-cs-LC1" class="blob-code blob-code-inner js-file-line">//</td>
        </tr>
        <tr>
          <td id="file-gistfile1-cs-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td>
          <td id="file-gistfile1-cs-LC2" class="blob-code blob-code-inner js-file-line">// GET: /Home/Hello</td>
        </tr>
        <tr>
          <td id="file-gistfile1-cs-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td>
          <td id="file-gistfile1-cs-LC3" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-gistfile1-cs-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td>
          <td id="file-gistfile1-cs-LC4" class="blob-code blob-code-inner js-file-line">public ActionResult Hello()</td>
        </tr>
        <tr>
          <td id="file-gistfile1-cs-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td>
          <td id="file-gistfile1-cs-LC5" class="blob-code blob-code-inner js-file-line">{</td>
        </tr>
        <tr>
          <td id="file-gistfile1-cs-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td>
          <td id="file-gistfile1-cs-LC6" class="blob-code blob-code-inner js-file-line">    var serverInfo = new ServerInfo {Id = &quot;Smart Server &quot;};</td>
        </tr>
        <tr>
          <td id="file-gistfile1-cs-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td>
          <td id="file-gistfile1-cs-LC7" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-gistfile1-cs-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td>
          <td id="file-gistfile1-cs-LC8" class="blob-code blob-code-inner js-file-line">    return View(serverInfo);</td>
        </tr>
        <tr>
          <td id="file-gistfile1-cs-L9" class="blob-num js-line-number js-blob-rnum" data-line-number="9"></td>
          <td id="file-gistfile1-cs-LC9" class="blob-code blob-code-inner js-file-line">}</td>
        </tr>
  </table>
</div>


    </div>

  </div>

</div>

      </div>
      <div class="gist-meta">
        <a href="https://gist.github.com/igormoochnick/3154215/raw/ed662a95d1950727684d0bb7665596382fd1e516/gistfile1.cs" style="float:right" class="Link--inTextBlock">view raw</a>
        <a href="https://gist.github.com/igormoochnick/3154215#file-gistfile1-cs" class="Link--inTextBlock">
          gistfile1.cs
        </a>
        hosted with &#10084; by <a class="Link--inTextBlock" href="https://github.com">GitHub</a>
      </div>
    </div>
</div>

<p>3. Change a dependency path in your SPA view to point to the new content (and the final result should look like <strong>Picture #3</strong>)</p>
<style>.gist table { margin-bottom: 0; }</style><div style="tab-size: 8" id="gist3154224" class="gist">
    <div class="gist-file" translate="no" data-color-mode="light" data-light-theme="light">
      <div class="gist-data">
        
<div class="js-gist-file-update-container js-task-list-container">
      <div id="file-gistfile1-js" class="file my-2">
    
    <div itemprop="text"
      class="Box-body p-0 blob-wrapper data type-javascript  "
      style="overflow: auto" tabindex="0" role="region"
      aria-label="gistfile1.js content, created by igormoochnick on 01:52AM on July 21, 2012."
    >

        
<div class="js-check-hidden-unicode js-blob-code-container blob-code-content">

  <template class="js-file-alert-template">
  <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center">
  <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
    <span>
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a>
    </span>


  <div data-view-component="true" class="flash-action">        <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn">    Show hidden characters
</a>
</div>
</div></template>
<template class="js-line-alert-template">
  <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e">
    <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
</span></template>

  <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="4" data-paste-markdown-skip data-tagsearch-path="gistfile1.js">
        <tr>
          <td id="file-gistfile1-js-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td>
          <td id="file-gistfile1-js-LC1" class="blob-code blob-code-inner js-file-line">define([&quot;text!/../home/hello&quot;], function (template) {</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td>
          <td id="file-gistfile1-js-LC2" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td>
          <td id="file-gistfile1-js-LC3" class="blob-code blob-code-inner js-file-line">    // ... Here is your code ...</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td>
          <td id="file-gistfile1-js-LC4" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-gistfile1-js-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td>
          <td id="file-gistfile1-js-LC5" class="blob-code blob-code-inner js-file-line">});</td>
        </tr>
  </table>
</div>


    </div>

  </div>

</div>

      </div>
      <div class="gist-meta">
        <a href="https://gist.github.com/igormoochnick/3154224/raw/475f2a4f3ed71c7cc82eee093ddd613370e9139f/gistfile1.js" style="float:right" class="Link--inTextBlock">view raw</a>
        <a href="https://gist.github.com/igormoochnick/3154224#file-gistfile1-js" class="Link--inTextBlock">
          gistfile1.js
        </a>
        hosted with &#10084; by <a class="Link--inTextBlock" href="https://github.com">GitHub</a>
      </div>
    </div>
</div>

<h4>Picture #3</h4>
<p><a href="https://igorshare.wordpress.com/wp-content/uploads/2012/07/image2.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://igorshare.wordpress.com/wp-content/uploads/2012/07/image_thumb2.png?w=644&#038;h=256" alt="image" width="644" height="256" border="0" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://igorshare.wordpress.com/2012/07/20/aspconf-generating-dynamic-views-but-google-chrome-was-too-smart-for-me/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">576</post-id>
		<media:content medium="image" url="https://2.gravatar.com/avatar/2488f2bfd1e002c87fc60973d91cd72a170375e52cb1ca92982f923db2b13005?s=96&amp;d=identicon&amp;r=G">
			<media:title type="html">IgorM</media:title>
		</media:content>

		<media:content medium="image" url="https://igorshare.wordpress.com/wp-content/uploads/2012/07/image_thumb.png">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content medium="image" url="https://igorshare.wordpress.com/wp-content/uploads/2012/07/image_thumb1.png">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content medium="image" url="https://igorshare.wordpress.com/wp-content/uploads/2012/07/image_thumb2.png">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Just got one of my patents approved!</title>
		<link>https://igorshare.wordpress.com/2012/07/15/just-got-one-of-my-patents-approved/</link>
					<comments>https://igorshare.wordpress.com/2012/07/15/just-got-one-of-my-patents-approved/#respond</comments>
		
		<dc:creator><![CDATA[Igor Moochnick]]></dc:creator>
		<pubDate>Mon, 16 Jul 2012 01:34:38 +0000</pubDate>
				<category><![CDATA[Thoughts]]></category>
		<guid isPermaLink="false">http://igorshare.wordpress.com/?p=564</guid>

					<description><![CDATA[One of the patents, filed during my tenure in Symantec, was just recently approved. I had a blast working on this product and the team was amazing. We’ve learned so much about building highly scalable systems and NoSql storage from scratch. And we’ve been running a REAL Agile team. US 8,214,490 B1 COMPACT INPUT COMPENSATING [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://www.uspto.gov/web/patents/patog/week27/OG/html/1380-1/US08214490-20120703.html"><img style="margin:5px 10px 5px 5px;display:inline;float:left;" align="left" src="https://i0.wp.com/www.uspto.gov/web/patents/patog/week27/OG/html/1380-1/US08214490-20120703-D00000.gif" /></a></p>
<p>One of the patents, filed during my tenure in Symantec, was just recently approved.</p>
<p>I had a blast working on this product and the team was amazing. We’ve learned so much about building highly scalable systems and NoSql storage from scratch. And we’ve been running a REAL Agile team.</p>
<blockquote>
<p><b>US 8,214,490 B1</b></p>
<p><b>COMPACT INPUT COMPENSATING REPUTATION DATA TRACKING MECHANISM</b></p>
<p>A computer implemented method for determining whether to block incoming electronic content based on running rates of content origination from sources, the method comprising the steps of: </p>
<p>receiving, by a destination computer, information concerning origination of incoming electronic content received from at least one external source over time;</p>
<p>aggregating, by the destination computer, the received information concerning origination of electronic content from the at least one source, wherein the received information comprises notifications from multiple sources;</p>
<p>calculating, by the destination computer, at least one running rate of content origination from the at least one source, based on aggregated information concerning origination of electronic content from the at least one source, wherein the running rate is indicative of a reputation of the at least one source, and wherein the running rate comprises a single number updated using at least an amount of time since the last update to control an influence of new information on the running rate;</p>
<p>receiving, by the destination computer, incoming electronic content from a specific source; and</p>
<p>determining, by the destination computer, whether to block the incoming electronic content from the specific source responsive to at least one running rate of content origination from the specific source.</p>
<p><a href="http://www.uspto.gov/web/patents/patog/week27/OG/html/1380-1/US08214490-20120703.html">Read more …</a></p>
</blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://igorshare.wordpress.com/2012/07/15/just-got-one-of-my-patents-approved/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">564</post-id>
		<media:content medium="image" url="https://2.gravatar.com/avatar/2488f2bfd1e002c87fc60973d91cd72a170375e52cb1ca92982f923db2b13005?s=96&amp;d=identicon&amp;r=G">
			<media:title type="html">IgorM</media:title>
		</media:content>

		<media:content medium="image" url="http://www.uspto.gov/web/patents/patog/week27/OG/html/1380-1/US08214490-20120703-D00000.gif"/>
	</item>
		<item>
		<title>PaaS requires new dictionary definition</title>
		<link>https://igorshare.wordpress.com/2012/06/21/paas-requires-new-dictionary-definition/</link>
					<comments>https://igorshare.wordpress.com/2012/06/21/paas-requires-new-dictionary-definition/#respond</comments>
		
		<dc:creator><![CDATA[Igor Moochnick]]></dc:creator>
		<pubDate>Thu, 21 Jun 2012 13:26:14 +0000</pubDate>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Thoughts]]></category>
		<guid isPermaLink="false">http://igorshare.wordpress.com/?p=560</guid>

					<description><![CDATA[There is a big range of opinions on what PaaS means. Last week during the CloudExpo 2012, one of the representatives of the AT&#38;T booth told me that they offer PaaS when I&#8217;ve mentioned that I&#8217;m an architect and a developer working to provide a cloud abstraction fabric. When I&#8217;ve asked him to elaborate, he [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img style="margin:5px 20px 5px 5px;display:inline;float:left;" align="left" src="https://i0.wp.com/martinjetpack.com/app_images/gallery/_martinjetpack006.jpg" /></p>
<p>There is a big range of opinions on what PaaS means. Last week during the CloudExpo 2012, one of the representatives of the AT&amp;T booth told me that they offer PaaS when I&#8217;ve mentioned that I&#8217;m an architect and a developer working to provide a cloud abstraction fabric. When I&#8217;ve asked him to elaborate, he explained that they provide a way to people to create some forms and workflows to collect customers&#8217; data and aggregate it. When I&#8217;ve asked him about what development environment they support he looked at me like I was an idiot and said: “this is the whole beauty of it &#8211; no development or coding is required but if I need something extra, their smart support team will build it for me”. The explanation of their features reminded me of the Google Docs.</p>
<p>At this moment I felt I was talking to an alien from &quot;Man in Black&quot;. I challenge the guy on the fact that their offering can&#8217;t be possibly called PaaS and that it&#8217;s closer rather to SaaS. The guy killed me with one simple statement: &quot;we provide you a PLATFORM to build your forms, hence we provide a PLATFORM-as-a-Service&quot;.</p>
<p>This conversation represents a similar trend we had a couple of years ago when every vendor who was selling some type of virtualization was claiming an IaaS and cloud affiliation. This is exactly what is causing a huge confusion for the consumers and customers with what the cloud is and means, what it is for and what it can deliver.</p>
<p>I feel that there is a need for a good new dictionary definition that can coin and explain all the cloud-related taxonomy and can either clearly identify the boundaries between the realms or bring the new definitions to all these overlapping gray areas.</p>
<p>In my dictionary: PaaS is a realm for the developers only (no offense for the rest of the world). In this context I mean that PaaS is a systems that exposes a defined set of APIs for anyone who is willing to code new behavior and orchestrate new service and application on top of it. Only in this case it can be called platform.</p>
<p>I do agree that the word “platform” has a wider meaning but I’m looking to create a clear distinction in our verbal communications so we, between ourselves, will know what we’re talking about.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://igorshare.wordpress.com/2012/06/21/paas-requires-new-dictionary-definition/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">560</post-id>
		<media:content medium="image" url="https://2.gravatar.com/avatar/2488f2bfd1e002c87fc60973d91cd72a170375e52cb1ca92982f923db2b13005?s=96&amp;d=identicon&amp;r=G">
			<media:title type="html">IgorM</media:title>
		</media:content>

		<media:content medium="image" url="http://martinjetpack.com/app_images/gallery/_martinjetpack006.jpg"/>
	</item>
		<item>
		<title>Hybrid cloud experiencing explosion rate</title>
		<link>https://igorshare.wordpress.com/2012/06/20/hybrid-cloud-experiencing-explosion-rate/</link>
					<comments>https://igorshare.wordpress.com/2012/06/20/hybrid-cloud-experiencing-explosion-rate/#respond</comments>
		
		<dc:creator><![CDATA[Igor Moochnick]]></dc:creator>
		<pubDate>Thu, 21 Jun 2012 02:59:39 +0000</pubDate>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Thoughts]]></category>
		<guid isPermaLink="false">http://igorshare.wordpress.com/?p=555</guid>

					<description><![CDATA[During the “State of the Clouds” presentation (at the RightScale 2012 conference) I’ve noticed an interesting slide that indirectly proves my point that I was stressing for the last 2 years – the enterprise customers are not yet ready to start using public clouds for their production needs, but they entertain the idea of the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>During the <a href="http://www.rightscale.com/info_center/slide-decks/nyc2012-keynote-state-of-the-cloud.php">“State of the Clouds”</a> presentation (at the RightScale 2012 conference) I’ve noticed an interesting slide that indirectly proves my point that I was stressing for the last 2 years – the enterprise customers are not yet ready to start using public clouds for their production needs, but they entertain the idea of the hybrid solutions. The slide doesn’t say anything specifically about the type of the customers, enterprise or not, but shows the trend in the market which reflects the mind-set shift. </p>
<p>Take a look of the scale and the speed of the Hybrid Cloud adoption:</p>
<p><a href="https://igorshare.wordpress.com/wp-content/uploads/2012/06/image.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://igorshare.wordpress.com/wp-content/uploads/2012/06/image_thumb.png?w=980&#038;h=737" width="980" height="737" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://igorshare.wordpress.com/2012/06/20/hybrid-cloud-experiencing-explosion-rate/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">555</post-id>
		<media:content medium="image" url="https://2.gravatar.com/avatar/2488f2bfd1e002c87fc60973d91cd72a170375e52cb1ca92982f923db2b13005?s=96&amp;d=identicon&amp;r=G">
			<media:title type="html">IgorM</media:title>
		</media:content>

		<media:content medium="image" url="https://igorshare.wordpress.com/wp-content/uploads/2012/06/image_thumb.png">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Azure-related source repositories</title>
		<link>https://igorshare.wordpress.com/2012/06/19/azure-related-source-repositories/</link>
					<comments>https://igorshare.wordpress.com/2012/06/19/azure-related-source-repositories/#respond</comments>
		
		<dc:creator><![CDATA[Igor Moochnick]]></dc:creator>
		<pubDate>Wed, 20 Jun 2012 00:24:27 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud]]></category>
		<guid isPermaLink="false">http://igorshare.wordpress.com/?p=551</guid>

					<description><![CDATA[Microsoft has started opening more and more of the internal source code. Here are a couple of starting points: Windows Azure SDK for .NET All of the Azure SDKs Windows Azure Training Kit]]></description>
										<content:encoded><![CDATA[<p>Microsoft has started opening more and more of the internal source code. Here are a couple of starting points:</p>
<ul>
<li><a href="https://github.com/WindowsAzure/azure-sdk-for-net">Windows Azure SDK for .NET</a></li>
<li><a href="https://github.com/WindowsAzure">All of the Azure SDKs</a></li>
<li><a href="http://windowsazure-trainingkit.github.com/labs.htm">Windows Azure Training Kit</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://igorshare.wordpress.com/2012/06/19/azure-related-source-repositories/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">551</post-id>
		<media:content medium="image" url="https://2.gravatar.com/avatar/2488f2bfd1e002c87fc60973d91cd72a170375e52cb1ca92982f923db2b13005?s=96&amp;d=identicon&amp;r=G">
			<media:title type="html">IgorM</media:title>
		</media:content>
	</item>
		<item>
		<title>Trying to embed Gist in Windows Live Writer</title>
		<link>https://igorshare.wordpress.com/2012/06/17/trying-to-embed-gist/</link>
					<comments>https://igorshare.wordpress.com/2012/06/17/trying-to-embed-gist/#respond</comments>
		
		<dc:creator><![CDATA[Igor Moochnick]]></dc:creator>
		<pubDate>Sun, 17 Jun 2012 16:06:22 +0000</pubDate>
				<category><![CDATA[Training]]></category>
		<guid isPermaLink="false">http://igorshare.wordpress.com/?p=544</guid>

					<description><![CDATA[You need to put the following line in the “source” page of your post: This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>You need to put the following line in the “source” page of your post:</p>
<p>[gist <a href="https://gist.github.com/2944955%5D" rel="nofollow">https://gist.github.com/2944955%5D</a></p>
<p>Here is my test Gist:</p>
<style>.gist table { margin-bottom: 0; }</style><div style="tab-size: 8" id="gist2944955" class="gist">
    <div class="gist-file" translate="no" data-color-mode="light" data-light-theme="light">
      <div class="gist-data">
        
<div class="js-gist-file-update-container js-task-list-container">
      <div id="file-gistfile1-txt" class="file my-2">
    
    <div itemprop="text"
      class="Box-body p-0 blob-wrapper data type-text  "
      style="overflow: auto" tabindex="0" role="region"
      aria-label="gistfile1.txt content, created by igormoochnick on 04:04PM on June 17, 2012."
    >

        
<div class="js-check-hidden-unicode js-blob-code-container blob-code-content">

  <template class="js-file-alert-template">
  <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center">
  <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
    <span>
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a>
    </span>


  <div data-view-component="true" class="flash-action">        <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn">    Show hidden characters
</a>
</div>
</div></template>
<template class="js-line-alert-template">
  <span aria-label="This line has hidden Unicode characters" data-view-component="true" class="line-alert tooltipped tooltipped-e">
    <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
</span></template>

  <table data-hpc class="highlight tab-size js-file-line-container" data-tab-size="4" data-paste-markdown-skip data-tagsearch-path="gistfile1.txt">
        <tr>
          <td id="file-gistfile1-txt-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td>
          <td id="file-gistfile1-txt-LC1" class="blob-code blob-code-inner js-file-line">This is a test Gist</td>
        </tr>
  </table>
</div>


    </div>

  </div>

</div>

      </div>
      <div class="gist-meta">
        <a href="https://gist.github.com/igormoochnick/2944955/raw/9db5517bd1cf517a5adb37dcdc179938f7822aa7/gistfile1.txt" style="float:right" class="Link--inTextBlock">view raw</a>
        <a href="https://gist.github.com/igormoochnick/2944955#file-gistfile1-txt" class="Link--inTextBlock">
          gistfile1.txt
        </a>
        hosted with &#10084; by <a class="Link--inTextBlock" href="https://github.com">GitHub</a>
      </div>
    </div>
</div>

<p>&#160;</p>
<p>Here you can find in-depth explanation how to do this: <a href="http://en.support.wordpress.com/gist/">http://en.support.wordpress.com/gist/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://igorshare.wordpress.com/2012/06/17/trying-to-embed-gist/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">544</post-id>
		<media:content medium="image" url="https://2.gravatar.com/avatar/2488f2bfd1e002c87fc60973d91cd72a170375e52cb1ca92982f923db2b13005?s=96&amp;d=identicon&amp;r=G">
			<media:title type="html">IgorM</media:title>
		</media:content>
	</item>
		<item>
		<title>CloudExpo in retrospective</title>
		<link>https://igorshare.wordpress.com/2012/06/17/cloudexpo-in-retrospective/</link>
					<comments>https://igorshare.wordpress.com/2012/06/17/cloudexpo-in-retrospective/#respond</comments>
		
		<dc:creator><![CDATA[Igor Moochnick]]></dc:creator>
		<pubDate>Sun, 17 Jun 2012 13:53:47 +0000</pubDate>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Thoughts]]></category>
		<guid isPermaLink="false">http://igorshare.wordpress.com/?p=542</guid>

					<description><![CDATA[The visit to NewYork was a success from so many angles. Apparently I did a very bad homework but, accidentally and to my surprise, I hit New York&#8217;s Javits Center at a great point of time &#8211; at the same time there was a whole cluster of cloud-related events going on in parallel and I [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The visit to NewYork was a success from so many angles. Apparently I did a very bad homework but, accidentally and to my surprise, I hit <a href="http://www.javitscenter.com/">New York&#8217;s Javits Center</a> at a great point of time &#8211; at the same time there was a whole cluster of cloud-related events going on in parallel and I was able to get into a bunch of them:</p>
<ul>
<li>Events that I&#8217;ve visited
<ul>
<li><a href="http://cloudcomputingexpo.com/">CloudExpo</a> </li>
<li>BigData Expo </li>
<li>Info360 </li>
<li><a href="http://cloudcamp.org/ny/335">CloudCamp</a> </li>
<li><a href="http://www.rightscale.com/conference/">RightScale user conference</a></li>
<li>ForeCast 2012 (Open Data Center Alliance) </li>
</ul>
</li>
</ul>
<ul>
<li>Events I regret I&#8217;ve missed:
<ul>
<li><a href="http://www.deploycon.com/">PaaS Summit</a> </li>
<li>BigData Expo floor </li>
<li><a href="http://www.deploycon.com/">DeployCon</a> </li>
</ul>
</li>
</ul>
<p>My main goal was to visit CloudExpo and to network. I was looking to establish new connections and partnerships. CloudExpo, for me, was both a great success and a great disappointment.</p>
<p>It was disappointing to me as an architect because I didn&#8217;t learn anything new. I didn&#8217;t account for it to be a trade show in its purest meaning. Most of the sessions were presented by sales and marketing people and were targeted for clueless crowd that, as they thought, never heard about the cloud and was ready to eat any BS that was fed to it. This leads me to ask the CloudExpo organizers (and I got the same feedback from many attendees): please put names of the vendors and presenters&#8217; titles on the Sessions schedule. This will greatly help attendees to make decisions on what sessions to visit.</p>
<p>The success of the CloudExpo concentrated in a bunch of great discussions I had with a couple of smart people and potential partners. Everyone was excited to hear about our BlueMetal ideas on the cloud PaaS abstractions.</p>
<p>One of the biggest ups and downs for me was a session from NetAxiom. The presenter, Sandy Zylka (VP Products &amp; Technology), was speaking in a soft voice of a night time story teller that you use with your kinds when they fall asleep and you want to convince them to finally close their eyes at the end of the story.</p>
<ul>
<li>When she said that now is the time to change the Cloud development paradigm &#8211; I felt enjoyment and excitement. </li>
<li>When she pointed out the current issues in the Cloud development and scaling &#8211; I felt I was flying. </li>
<li>But when she started mentioning some magic things that promise us automatic distribution of the program methods, automatic scaling across multiple machines and nodes &#8211; I started to feel dizziness and got a strong sense of DejaVu: we&#8217;ve been there. It was called RPC. </li>
<li>When the speaker mentioned that all of the current development methodologies are not valid anymore and we need to forget about coding functions and prescriptions for compilers &#8211; I started to feel really sick.</li>
<li>But when she said that it&#8217;s time to do development in graphical format which will produce some XML-like metadata instructions for the system that will ingest it and will figure out auto-magically what to do with all this &#8211; I vomited inside my mouth. </li>
</ul>
<p>Our industry has experienced such disease in the form of UML code generation and COBOL that was promising business people to &quot;describe&quot; stuff without a need for developers (and then developers needed to fix and maintain all this crap). </p>
<p>5 minutes into the presentation and during <a href="http://instagr.am/p/L1g7HMmAYo/">the single slide</a>, I felt as an institutionalized patient with a drooling moth that was fed by a spoon by a nurse. I couldn&#8217;t stand a single word more and left the session. I didn&#8217;t come to hear about <a href="http://instagr.am/p/L1g7HMmAYo/">unicorns pooping the rainbows</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://igorshare.wordpress.com/2012/06/17/cloudexpo-in-retrospective/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">542</post-id>
		<media:content medium="image" url="https://2.gravatar.com/avatar/2488f2bfd1e002c87fc60973d91cd72a170375e52cb1ca92982f923db2b13005?s=96&amp;d=identicon&amp;r=G">
			<media:title type="html">IgorM</media:title>
		</media:content>
	</item>
		<item>
		<title>Redis starting points</title>
		<link>https://igorshare.wordpress.com/2012/06/13/redis-starting-points/</link>
					<comments>https://igorshare.wordpress.com/2012/06/13/redis-starting-points/#respond</comments>
		
		<dc:creator><![CDATA[Igor Moochnick]]></dc:creator>
		<pubDate>Thu, 14 Jun 2012 03:03:43 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://igorshare.wordpress.com/?p=540</guid>

					<description><![CDATA[If you&#8217;re interested I starting using Redis, here are a couple of start points: The Little Redis Book Redis: Zero to Master in 30 minutes Part 1, Part 2]]></description>
										<content:encoded><![CDATA[<p>If you&#8217;re interested I starting using Redis, here are a couple of start points:</p>
<ul>
<li><a href="http://openmymind.net/redis.pdf">The Little Redis Book</a></li>
<li>Redis: Zero to Master in 30 minutes <a href="http://openmymind.net/2011/11/8/Redis-Zero-To-Master-In-30-Minutes-Part-1/">Part 1</a>, <a href="http://openmymind.net/2011/11/8/Redis-Zero-To-Master-In-30-Minutes-Part-2/">Part 2</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://igorshare.wordpress.com/2012/06/13/redis-starting-points/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">540</post-id>
		<media:content medium="image" url="https://2.gravatar.com/avatar/2488f2bfd1e002c87fc60973d91cd72a170375e52cb1ca92982f923db2b13005?s=96&amp;d=identicon&amp;r=G">
			<media:title type="html">IgorM</media:title>
		</media:content>
	<enclosure length="157796" type="application/pdf" url="http://openmymind.net/redis.pdf"/><itunes:explicit/><itunes:subtitle>If you&amp;#8217;re interested I starting using Redis, here are a couple of start points: The Little Redis Book Redis: Zero to Master in 30 minutes Part 1, Part 2</itunes:subtitle><itunes:summary>If you&amp;#8217;re interested I starting using Redis, here are a couple of start points: The Little Redis Book Redis: Zero to Master in 30 minutes Part 1, Part 2</itunes:summary><itunes:keywords>Uncategorized</itunes:keywords></item>
	</channel>
</rss>