<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Get Angular</title>
	<atom:link href="http://blog.getangular.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.getangular.com</link>
	<description>Web Apps Made Simple</description>
	<lastBuildDate>Mon, 07 Dec 2009 02:37:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>&lt;angular/&gt; plugin for WordPress</title>
		<link>http://blog.getangular.com/2009/12/06/angular-plugin-for-wordpress/</link>
		<comments>http://blog.getangular.com/2009/12/06/angular-plugin-for-wordpress/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 02:20:58 +0000</pubDate>
		<dc:creator>misko</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.getangular.com/?p=65</guid>
		<description><![CDATA[<p>Embedding &lt;angular/&gt; in existing pages is very easy, just add the appropriate &lt;script/&gt; tag. To make this even easier and to add few extras we have made a WordPress &lt;angular/&gt; plug-in for your enjoyment.</p>
<h2>Basics</h2>
<p>As expected you can now embed &lt;angular/&gt; into your blog like this:</p>
<hr />
<pre ng-non-bindable="">
&lt;div&gt;
Enter name: &lt;input name="name" value="World."/&gt;&lt;br/&gt;
Hello {{name}}!
&lt;/div&gt;
</pre>
<hr />
Which will render like this:</p>
<hr />
<div>Enter name:<br />
<input name="name" value="World." /> <br/><br />
Hello {{name}}!
</div>
<hr />
<h2>Advanced</h2>
<p>But we have added something extra! If you want to share your code with the world you can do so by adding <tt>class="angular"</tt> attribute to your code.</p>
<hr />
<pre ng-non-bindable="">
&lt;div class="angular"&gt;
Enter name: &lt;input name="name" value="World."/&gt;&lt;br/&gt;
Hello {{name}}!
&lt;/div&gt;
</pre>
<hr />
Which will render like this:</p>
<hr />
<div class="angular"><div id="angularTab-0" ng-init="$window.jQuery('#angularTab-0').tabs();$window.prettyPrint();"><ul><li><a href="#angular-0">With&nbsp;&lt;angular/&gt;</a></li><li><a href="#angularOff-0">Without&nbsp;&lt;angular/&gt;</a></li><li><a href="#angularSrc-0">HTML&nbsp;Source</a></li></ul><div id="angular-0">Enter name:<br />
<input name="name" value="World." /> <br/><br />
Hello {{name}}!
</div><div id="angularOff-0" ng-non-bindable="">Enter name:<br />
<input name="name" value="World." /> <br/><br />
Hello {{name}}!
</div><div id="angularSrc-0"><pre class="prettyprint" ng-non-bindable="">&lt;div class=&quot;angular&quot;&gt;Enter name:&lt;br /&gt;
&lt;input name=&quot;name&quot; value=&quot;World.&quot; /&gt; &lt;br/&gt;&lt;br /&gt;
Hello {{name}}!
&lt;/div&gt;</pre></div></div></div>
<hr />
<h2>Installation</h2>
<ol>
<li>Download &lt;angular/&gt; WordPress plug-in <a href="http://wordpress.org/extend/plugins/angular/installation/">here</a>.</li>
<li>Upload the angular directory to the /wp-content/plugins/ directory</li>
<li>Activate the plug-in through the &#8216;Plug-ins&#8217; menu in WordPress</li>
<li>Set your library and database name on the plug-in configuration page</li>
</ol>
<p><img src="http://blog.getangular.com/wp-content/uploads/2009/12/angular-plugin-screenshot.png" alt="angular-plugin-screenshot" title="angular-plugin-screenshot" width="600" height="380" class="alignnone size-full wp-image-84" /></p>
]]></description>
			<content:encoded><![CDATA[<p>Embedding &lt;angular/&gt; in existing pages is very easy, just add the appropriate &lt;script/&gt; tag. To make this even easier and to add few extras we have made a WordPress &lt;angular/&gt; plug-in for your enjoyment.</p>
<h2>Basics</h2>
<p>As expected you can now embed &lt;angular/&gt; into your blog like this:</p>
<hr />
<pre ng-non-bindable="">
&lt;div&gt;
Enter name: &lt;input name="name" value="World."/&gt;&lt;br/&gt;
Hello {{name}}!
&lt;/div&gt;
</pre>
<hr />
Which will render like this:</p>
<hr />
<div>Enter name:<br />
<input name="name" value="World." /> <br/><br />
Hello {{name}}!
</div>
<hr />
<h2>Advanced</h2>
<p>But we have added something extra! If you want to share your code with the world you can do so by adding <tt>class="angular"</tt> attribute to your code.</p>
<hr />
<pre ng-non-bindable="">
&lt;div class="angular"&gt;
Enter name: &lt;input name="name" value="World."/&gt;&lt;br/&gt;
Hello {{name}}!
&lt;/div&gt;
</pre>
<hr />
Which will render like this:</p>
<hr />
<div class="angular"><div id="angularTab-0" ng-init="$window.jQuery('#angularTab-0').tabs();$window.prettyPrint();"><ul><li><a href="#angular-0">With&nbsp;&lt;angular/&gt;</a></li><li><a href="#angularOff-0">Without&nbsp;&lt;angular/&gt;</a></li><li><a href="#angularSrc-0">HTML&nbsp;Source</a></li></ul><div id="angular-0">Enter name:<br />
<input name="name" value="World." /> <br/><br />
Hello {{name}}!
</div><div id="angularOff-0" ng-non-bindable="">Enter name:<br />
<input name="name" value="World." /> <br/><br />
Hello {{name}}!
</div><div id="angularSrc-0"><pre class="prettyprint" ng-non-bindable="">&lt;div class=&quot;angular&quot;&gt;Enter name:&lt;br /&gt;
&lt;input name=&quot;name&quot; value=&quot;World.&quot; /&gt; &lt;br/&gt;&lt;br /&gt;
Hello {{name}}!
&lt;/div&gt;</pre></div></div></div>
<hr />
<h2>Installation</h2>
<ol>
<li>Download &lt;angular/&gt; WordPress plug-in <a href="http://wordpress.org/extend/plugins/angular/installation/">here</a>.</li>
<li>Upload the angular directory to the /wp-content/plugins/ directory</li>
<li>Activate the plug-in through the &#8216;Plug-ins&#8217; menu in WordPress</li>
<li>Set your library and database name on the plug-in configuration page</li>
</ol>
<p><img src="http://blog.getangular.com/wp-content/uploads/2009/12/angular-plugin-screenshot.png" alt="angular-plugin-screenshot" title="angular-plugin-screenshot" width="600" height="380" class="alignnone size-full wp-image-84" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.getangular.com/2009/12/06/angular-plugin-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating an Instant Poll</title>
		<link>http://blog.getangular.com/2009/11/09/creating-an-instant-pool/</link>
		<comments>http://blog.getangular.com/2009/11/09/creating-an-instant-pool/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 02:16:02 +0000</pubDate>
		<dc:creator>misko</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.getangular.com/?p=44</guid>
		<description><![CDATA[<p>Say you are writing a blog article and would like to poll your readership about a topic. Here is a quick way of creating a poll on your blog.</p>
<div ng-entity="Poll:{yes:0, no:0}">
  Would you consider using <a href="http://www.getangular.com">&lt;angular/&gt;</a> on you next project?</p>
<div ng-hide="poll">
<ul>
<li><a href="" ng-action="Poll.loadOrCreate('useAngular',{:$.yes=$.yes+1;$.$save({:$root.poll=$})})">Yes</a></li>
<li><a href="" ng-action="Poll.loadOrCreate('useAngular',{:$.no=$.no+1;$.$save({:$root.poll=$})})">No</a></li>
</ul></div>
<div ng-show="poll">
    {{ {series:[{label:['Yes','No'],values:[poll.yes,poll.no]}]}|chart.pie3d:200:100 }}
  </div>
</div>
<p>Here is the explanation on how to do it in your Blog.</p>
<p>First, sign up with &lt;angular/&gt; <a href="http://www.getangular.com">http://www.getangular.com</a></p>
<p>Second, create a library and a database where to store your data on &lt;angular/&gt;. In our case the library is &#8220;angular&#8221; and the database is &#8220;blogdb&#8221;. (If you do view source on this page than you will be able to see the script tag)</p>
<p>Third, enter this text in you blog or on any place where you can host HTML.</p>
<pre ng-non-bindable="">&lt;script type="text/javascript"
  src="http://angular.getangular.com/angular-1.0a.js#database=blogdb"&gt;
&lt;/script&gt;
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;div ng-entity="Poll:{yes:0, no:0}"&gt;</div>

&lt;div ng-entity="Poll:{yes:0, no:0}"&gt;
  Would you consider using
  &lt;a href="http://www.getangular.com"&gt;&amp;lt;angular/&amp;gt;&lt;/a&gt;
  on you next project?
  &lt;div ng-hide="poll"&gt;
    &lt;ul&gt;
      &lt;li&gt;
        &lt;a href=""
           ng-action="Poll.loadOrCreate('useAngular',
             {:$.yes=$.yes+1;$.$save({:$root.poll=$})})"&gt;
          Yes
        &lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;a href=""
          ng-action="Poll.loadOrCreate('useAngular',
            {:$.no=$.no+1;$.$save({:$root.poll=$})})"&gt;
          No
        &lt;/a&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
  &lt;div ng-show="poll"&gt;
    {{ {series:[{label:['Yes','No'],
        values:[poll.yes,poll.no]}]}
       | chart.pie3d:200:100 }}
  &lt;/div&gt;
&lt;/div&gt;</pre>
<p>Here is an explanation of how it works</p>
<ul>
<li><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">ng-entity=&#8221;Poll:{yes:0, no:0}&#8221;</span>: declares an entity &#8216;Poll&#8217; in the database. A new entity will have a yes and no fields both initialized to 0.</li>
<li><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">ng-hide=&#8221;poll&#8221;/ng-show=&#8221;poll&#8221;<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;">: At first the variable poll is not defined so the first half of the page is displayed.  After the user votes the result of the vote is stored in poll variable which causes the question to hide and the poll result to show.</span></span></li>
<li><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px;">ng-action=&#8221;Poll.loadOrCreate(&#8217;useAngular&#8217;, {: $.yes=$.yes+1; $.$save({:$root.poll=$})})&#8221;</span>: Clicking on the Yes/No will load (or create) a document with id &#8220;useAngular&#8221;. Once the document is loaded it will increment the yes/no property and save the document. Upon successful save the</li>
<li><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px;">{series:[{label:['Yes','No'],values:[poll.yes,poll.no]}]}|chart.pie3d:200:100</span>: Display a 3D pie chart with yes and no ratio</li>
</ul>
]]></description>
			<content:encoded><![CDATA[<p>Say you are writing a blog article and would like to poll your readership about a topic. Here is a quick way of creating a poll on your blog.</p>
<div ng-entity="Poll:{yes:0, no:0}">
  Would you consider using <a href="http://www.getangular.com">&lt;angular/&gt;</a> on you next project?</p>
<div ng-hide="poll">
<ul>
<li><a href="" ng-action="Poll.loadOrCreate('useAngular',{:$.yes=$.yes+1;$.$save({:$root.poll=$})})">Yes</a></li>
<li><a href="" ng-action="Poll.loadOrCreate('useAngular',{:$.no=$.no+1;$.$save({:$root.poll=$})})">No</a></li>
</ul></div>
<div ng-show="poll">
    {{ {series:[{label:['Yes','No'],values:[poll.yes,poll.no]}]}|chart.pie3d:200:100 }}
  </div>
</div>
<p>Here is the explanation on how to do it in your Blog.</p>
<p>First, sign up with &lt;angular/&gt; <a href="http://www.getangular.com">http://www.getangular.com</a></p>
<p>Second, create a library and a database where to store your data on &lt;angular/&gt;. In our case the library is &#8220;angular&#8221; and the database is &#8220;blogdb&#8221;. (If you do view source on this page than you will be able to see the script tag)</p>
<p>Third, enter this text in you blog or on any place where you can host HTML.</p>
<pre ng-non-bindable="">&lt;script type="text/javascript"
  src="http://angular.getangular.com/angular-1.0a.js#database=blogdb"&gt;
&lt;/script&gt;
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;div ng-entity="Poll:{yes:0, no:0}"&gt;</div>

&lt;div ng-entity="Poll:{yes:0, no:0}"&gt;
  Would you consider using
  &lt;a href="http://www.getangular.com"&gt;&amp;lt;angular/&amp;gt;&lt;/a&gt;
  on you next project?
  &lt;div ng-hide="poll"&gt;
    &lt;ul&gt;
      &lt;li&gt;
        &lt;a href=""
           ng-action="Poll.loadOrCreate('useAngular',
             {:$.yes=$.yes+1;$.$save({:$root.poll=$})})"&gt;
          Yes
        &lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;a href=""
          ng-action="Poll.loadOrCreate('useAngular',
            {:$.no=$.no+1;$.$save({:$root.poll=$})})"&gt;
          No
        &lt;/a&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
  &lt;div ng-show="poll"&gt;
    {{ {series:[{label:['Yes','No'],
        values:[poll.yes,poll.no]}]}
       | chart.pie3d:200:100 }}
  &lt;/div&gt;
&lt;/div&gt;</pre>
<p>Here is an explanation of how it works</p>
<ul>
<li><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">ng-entity=&#8221;Poll:{yes:0, no:0}&#8221;</span>: declares an entity &#8216;Poll&#8217; in the database. A new entity will have a yes and no fields both initialized to 0.</li>
<li><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">ng-hide=&#8221;poll&#8221;/ng-show=&#8221;poll&#8221;<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;">: At first the variable poll is not defined so the first half of the page is displayed.  After the user votes the result of the vote is stored in poll variable which causes the question to hide and the poll result to show.</span></span></li>
<li><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px;">ng-action=&#8221;Poll.loadOrCreate(&#8217;useAngular&#8217;, {: $.yes=$.yes+1; $.$save({:$root.poll=$})})&#8221;</span>: Clicking on the Yes/No will load (or create) a document with id &#8220;useAngular&#8221;. Once the document is loaded it will increment the yes/no property and save the document. Upon successful save the</li>
<li><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px;">{series:[{label:['Yes','No'],values:[poll.yes,poll.no]}]}|chart.pie3d:200:100</span>: Display a 3D pie chart with yes and no ratio</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.getangular.com/2009/11/09/creating-an-instant-pool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lowering the price of Web-Apps</title>
		<link>http://blog.getangular.com/2009/10/18/lowering-the-price-of-web-apps/</link>
		<comments>http://blog.getangular.com/2009/10/18/lowering-the-price-of-web-apps/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 04:28:33 +0000</pubDate>
		<dc:creator>misko</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.getangular.com/?p=33</guid>
		<description><![CDATA[<p>The old saying goes: Ideas are a dime a dozen, it&#8217;s the execution that counts.</p>
<p>So you are working on a project and all of a sudden you realize that it would be great to have a web-application which keeps track of something. It is exactly what would hit the spot, but than you think about it some more and you realize that your choices are</p>
<ul>
<li>Custom app in php/java/ruby/rails/etc&#8230; would take you days to get up and running and than there is the cost of deployment. You have full control of everything but you have to be an expert in everything.</li>
<li>You could use Google docs (spreadsheet) but that does not have the right look and feel, as you can either have form for collecting data or you can have tabular data. You have zero control of the presentation.</li>
</ul>
<p>So you think about it some more and you realize that the benefits are not worth the effort and the application does not get build. How often has this happen to you?</p>
<p>&lt;angular/&gt; is not about making the building of web-applications easier, it is about allowing you to build an application where no application would have been build before.</p>
<p>Let me give you an example. I do a lot of coding and often I get distracted. So I said, I would love to know the reasons why I get distracted. Would it not be great if I could keep a log, which would than draw a chart for me with how often and why I get distracted? I could have opened a spreadsheet, but somehow the act of opening a spreadsheet is a distraction in itself, so I doubt I would have done it every time I got distracted. So instead I took <a href="http://www.getangular.com/screencast">5 minutes to hack together a quick HTML</a> which allowed me to enter the reason why I was distracted in &lt;angular/&gt;. Now I am a mac user, so I click the &#8220;Open in Dashboard&#8221; on my safari and I had a dashboard widget which allows me to keep track of the reasons whenever I get distracted, with very little effort. I stop coding because I need to go to meeting, I activate Dashboard and enter the reason, someone comes over and asks me a question, ditto.</p>
<p>&lt;angular/&gt; allowed me to go from an idea to working app in 5 minutes. If it was not for &lt;angular/&gt; this simple app would simply not get built. It is great when technology makes existing things easier, it is even better when it enables things which simply would not have happened.</p>
<p>Wait! I have an idea, it would be great to get your opinion on what kind of quick and dirty applications you always wanted to build but the effort was not worth the benefit. What if, we could also vote on other peoples ideas too.</p>
<p>Well here it is:</p>
<hr/>
<div ng-entity="idea=Idea:{yes:0, no:0}" ng-init="ideas=Idea.all()" ng-hide="true" style="color:red">If you can see this than you need to go to <a href="http://blog.getangular.com/2009/10/18/lowering-the-price-of-web-apps">http://blog.getangular.com/2009/10/18/lowering-the-price-of-web-apps</a> to get the full effect. </div>
<p><strong>Your Idea:</strong><br />
<textarea name="idea.description"></textarea></p>
<input type="button" value="Submit" ng-action="$save()"/>
<ul>
<li ng-repeat="idea in ideas.$orderBy({:$.yes - $.no}, true)">
    Votes: ({{idea.yes-idea.no}}) <a href="" ng-action="idea.yes = idea.yes +1; idea.$save()">like it</a>:{{idea.yes}};  <a href="" ng-action="idea.no = idea.no + 1; idea.$save()">hate it</a>:{{idea.no}} | {{idea.$audit.created.by}} | {{idea.description}}
  </li>
</ul>
<hr/>
]]></description>
			<content:encoded><![CDATA[<p>The old saying goes: Ideas are a dime a dozen, it&#8217;s the execution that counts.</p>
<p>So you are working on a project and all of a sudden you realize that it would be great to have a web-application which keeps track of something. It is exactly what would hit the spot, but than you think about it some more and you realize that your choices are</p>
<ul>
<li>Custom app in php/java/ruby/rails/etc&#8230; would take you days to get up and running and than there is the cost of deployment. You have full control of everything but you have to be an expert in everything.</li>
<li>You could use Google docs (spreadsheet) but that does not have the right look and feel, as you can either have form for collecting data or you can have tabular data. You have zero control of the presentation.</li>
</ul>
<p>So you think about it some more and you realize that the benefits are not worth the effort and the application does not get build. How often has this happen to you?</p>
<p>&lt;angular/&gt; is not about making the building of web-applications easier, it is about allowing you to build an application where no application would have been build before.</p>
<p>Let me give you an example. I do a lot of coding and often I get distracted. So I said, I would love to know the reasons why I get distracted. Would it not be great if I could keep a log, which would than draw a chart for me with how often and why I get distracted? I could have opened a spreadsheet, but somehow the act of opening a spreadsheet is a distraction in itself, so I doubt I would have done it every time I got distracted. So instead I took <a href="http://www.getangular.com/screencast">5 minutes to hack together a quick HTML</a> which allowed me to enter the reason why I was distracted in &lt;angular/&gt;. Now I am a mac user, so I click the &#8220;Open in Dashboard&#8221; on my safari and I had a dashboard widget which allows me to keep track of the reasons whenever I get distracted, with very little effort. I stop coding because I need to go to meeting, I activate Dashboard and enter the reason, someone comes over and asks me a question, ditto.</p>
<p>&lt;angular/&gt; allowed me to go from an idea to working app in 5 minutes. If it was not for &lt;angular/&gt; this simple app would simply not get built. It is great when technology makes existing things easier, it is even better when it enables things which simply would not have happened.</p>
<p>Wait! I have an idea, it would be great to get your opinion on what kind of quick and dirty applications you always wanted to build but the effort was not worth the benefit. What if, we could also vote on other peoples ideas too.</p>
<p>Well here it is:</p>
<hr/>
<div ng-entity="idea=Idea:{yes:0, no:0}" ng-init="ideas=Idea.all()" ng-hide="true" style="color:red">If you can see this than you need to go to <a href="http://blog.getangular.com/2009/10/18/lowering-the-price-of-web-apps">http://blog.getangular.com/2009/10/18/lowering-the-price-of-web-apps</a> to get the full effect. </div>
<p><strong>Your Idea:</strong><br />
<textarea name="idea.description"></textarea></p>
<input type="button" value="Submit" ng-action="$save()"/>
<ul>
<li ng-repeat="idea in ideas.$orderBy({:$.yes - $.no}, true)">
    Votes: ({{idea.yes-idea.no}}) <a href="" ng-action="idea.yes = idea.yes +1; idea.$save()">like it</a>:{{idea.yes}};  <a href="" ng-action="idea.no = idea.no + 1; idea.$save()">hate it</a>:{{idea.no}} | {{idea.$audit.created.by}} | {{idea.description}}
  </li>
</ul>
<hr/>
]]></content:encoded>
			<wfw:commentRss>http://blog.getangular.com/2009/10/18/lowering-the-price-of-web-apps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sweet Spot for &lt;angular/&gt;</title>
		<link>http://blog.getangular.com/2009/10/04/sweet-spot-for-angular/</link>
		<comments>http://blog.getangular.com/2009/10/04/sweet-spot-for-angular/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 03:39:11 +0000</pubDate>
		<dc:creator>misko</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.getangular.com/?p=29</guid>
		<description><![CDATA[<p>Building web-applications is hard! Even the simplest hello world application will take you hours to set up and you have to know a lot about how many different pieces of technologies work together. Here is a quick inventory from the browser to the back end of what a typical web-application developer needs to know about: HTML, CSS, JavaScript, cookies, HTTP, URL encodings, Servlets, web-framework (i.e. web-work), authentication, threading, SQL, ObjectRelational mappers, DB Schema, RDMS, DB indexing. If you know all of that, than you have a good chance that after week of work, you can have a hello world application written which will allow the user to authenticate, and persist some data.</p>
<p>But, if you think about it most web-applications are just pretty UI on top of database CRUD (create, read, update, delete). Everything else you do is a constant marshaling of data back and forth. From the HTML input, to URL parameters, to HttpRequest, to BussinessObject, to Value Object, to SQL. Hope you did not make any mistakes, as now you have to do all of this in reverse.</p>
<p>The goal of &lt;angular/&gt; is to make CRUD applications easy to build. &lt;angular/&gt; is not a generic framework where you can build any kind of application, its sweet spot are CRUD web-applications.</p>
<p>We believe that there are many web-application which do not get build because the cost of building them is prohibitive. With &lt;angular/&gt; the cost of building these simple applications is greatly reduced.</p>
<p>While building &lt;angular/&gt; we had few goals in mind:</p>
<p><strong>Managed Database</strong></p>
<p>Building a web-applications is just half the battle, deploying them is another. Now you need to rent a host in the data-center where you can deploy the application, where the database can run. I hope you know how to administer and back up your database. &lt;angular/&gt; provides the database hosting as a service so that your &lt;angular/&gt; application does not have to worry about it.</p>
<p><strong>HTML &amp; CSS</strong></p>
<p>There are a lot more web-designers out there than web-developers. We wanted to make &lt;angular/&gt; simple enough where many of the web-designers, which do not know how to program can now move to the business of building simple web-applications and hence provide a greater value to their customers. In order to build a simple web-application a knowledge of HTML &amp; CSS is all which you need to know. The best way to think about &lt;angular/&gt; is that it is HTML with few extra attributes.</p>
<p><strong>Security/Authentication</strong></p>
<p>The cost of building security and authentication into your web-application is often overlooked when building web-applications. &lt;angular/&gt; offers both out of the box.</p>
<p><strong>Embeddable</strong></p>
<p>There are many ways to get your HTML published. (Blogs, Wikis, Content Management systems, to name a few) &lt;angular/&gt; allows you to enhance all of these pages behavior by adding the power of CRUD to these pages. Embeddability opens up a whole new set of possibilities of enhancing existing web-pages or creating mash ups.</p>
<p><strong>Declarative</strong></p>
<p>I can teach HTML to almost anyone (willing to learn) in just a few minutes. Teaching programming languages such as JavaScript requires weeks of work, and that is if you already know how to program. The difference is that HTML is declarative whereas JavaScript is procedural. You describe how the page looks like, vs instructing the browser how to draw one. This is a huge for the learning curve. Declarative vs procedural is the difference between web-designer and the web-developer.</p>
<p><strong>Rich Widgets</strong></p>
<p>Finally, HTML forms have very limited widgets, you want date-picker? charts? maps? form validation? barcodes? formatters? well you have to go and integrate some JavaScript library and you have to know how to program (vs declaring what you want). We want to extend the HTML so that you can ask for these widgets in declarative fashion in &lt;angular/&gt;.</p>
]]></description>
			<content:encoded><![CDATA[<p>Building web-applications is hard! Even the simplest hello world application will take you hours to set up and you have to know a lot about how many different pieces of technologies work together. Here is a quick inventory from the browser to the back end of what a typical web-application developer needs to know about: HTML, CSS, JavaScript, cookies, HTTP, URL encodings, Servlets, web-framework (i.e. web-work), authentication, threading, SQL, ObjectRelational mappers, DB Schema, RDMS, DB indexing. If you know all of that, than you have a good chance that after week of work, you can have a hello world application written which will allow the user to authenticate, and persist some data.</p>
<p>But, if you think about it most web-applications are just pretty UI on top of database CRUD (create, read, update, delete). Everything else you do is a constant marshaling of data back and forth. From the HTML input, to URL parameters, to HttpRequest, to BussinessObject, to Value Object, to SQL. Hope you did not make any mistakes, as now you have to do all of this in reverse.</p>
<p>The goal of &lt;angular/&gt; is to make CRUD applications easy to build. &lt;angular/&gt; is not a generic framework where you can build any kind of application, its sweet spot are CRUD web-applications.</p>
<p>We believe that there are many web-application which do not get build because the cost of building them is prohibitive. With &lt;angular/&gt; the cost of building these simple applications is greatly reduced.</p>
<p>While building &lt;angular/&gt; we had few goals in mind:</p>
<p><strong>Managed Database</strong></p>
<p>Building a web-applications is just half the battle, deploying them is another. Now you need to rent a host in the data-center where you can deploy the application, where the database can run. I hope you know how to administer and back up your database. &lt;angular/&gt; provides the database hosting as a service so that your &lt;angular/&gt; application does not have to worry about it.</p>
<p><strong>HTML &amp; CSS</strong></p>
<p>There are a lot more web-designers out there than web-developers. We wanted to make &lt;angular/&gt; simple enough where many of the web-designers, which do not know how to program can now move to the business of building simple web-applications and hence provide a greater value to their customers. In order to build a simple web-application a knowledge of HTML &amp; CSS is all which you need to know. The best way to think about &lt;angular/&gt; is that it is HTML with few extra attributes.</p>
<p><strong>Security/Authentication</strong></p>
<p>The cost of building security and authentication into your web-application is often overlooked when building web-applications. &lt;angular/&gt; offers both out of the box.</p>
<p><strong>Embeddable</strong></p>
<p>There are many ways to get your HTML published. (Blogs, Wikis, Content Management systems, to name a few) &lt;angular/&gt; allows you to enhance all of these pages behavior by adding the power of CRUD to these pages. Embeddability opens up a whole new set of possibilities of enhancing existing web-pages or creating mash ups.</p>
<p><strong>Declarative</strong></p>
<p>I can teach HTML to almost anyone (willing to learn) in just a few minutes. Teaching programming languages such as JavaScript requires weeks of work, and that is if you already know how to program. The difference is that HTML is declarative whereas JavaScript is procedural. You describe how the page looks like, vs instructing the browser how to draw one. This is a huge for the learning curve. Declarative vs procedural is the difference between web-designer and the web-developer.</p>
<p><strong>Rich Widgets</strong></p>
<p>Finally, HTML forms have very limited widgets, you want date-picker? charts? maps? form validation? barcodes? formatters? well you have to go and integrate some JavaScript library and you have to know how to program (vs declaring what you want). We want to extend the HTML so that you can ask for these widgets in declarative fashion in &lt;angular/&gt;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.getangular.com/2009/10/04/sweet-spot-for-angular/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello World, &lt;angular/&gt; is here</title>
		<link>http://blog.getangular.com/2009/09/26/hello-world-angular-is-here/</link>
		<comments>http://blog.getangular.com/2009/09/26/hello-world-angular-is-here/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 02:17:12 +0000</pubDate>
		<dc:creator>misko</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.getangular.com/?p=6</guid>
		<description><![CDATA[<p style="color: red;" ng-hide="true" ng-entity="person=HelloWorld">If you see this text, than you are not reading this blog on our site, and the page will be static. To get the full effect please read the original blog on <a href="http://blog.getangular.com/2009/09/26/hello-world-angular-is-here/">http://blog.getangular.com/2009/09/26/hello-world-angular-is-here/</a></p>
<p>Hi I am  <strong>&lt;angular/&gt;</strong>! What is your name?<br />
<input name="person.name" ng-required> (Please enter your name into the text box).</p>
<p ng-show="person.name">Hello {{person.name}}! Please to meet you!</p>
<hr />
<p>We would like to introduce to you a new way of building web applications! All you need is basic working of HTML &amp; CSS and you can declaratively build a web-application in minutes.</p>
<p>Here are the kinds of things yo can do:</p>
<ul>
<li>Bring static HTML to life with just a few keystrokes.</li>
<li>Persist your data in the cloud</li>
<li>Embed your application in existing web page, such as this blog article</li>
</ul>
<p>Here is what you need to know:</p>
<ul>
<li>Basic Knowledge of HTML &amp; CSS</li>
<li>Optional: JavaScript if you want to take the application to the next level.</li>
</ul>
<p>Here is what you DO NOT NEED to know:</p>
<ul>
<li>Databases or SQL.</li>
<li>Back end technology such as Java, Ruby, C# or the likes.</li>
<li>For most things, you don&#8217;t even need to be a programer.</li>
</ul>
<hr />
<p>Well {{person.name}}, believe it or not, but this page is just a wordpress blog written in few minutes with a text editor. I have than added few extra angular tags to the HTML and the page came alive as you can see. Let me take you on the tour of what <strong> &lt;angular/&gt;</strong> can do.</p>
<p>Why don&#8217;t you tell me what you like to do for fun:</p>
<p>Hobby:<br />
<input type="text" name="hobby"/>
<input type="button" ng-action="person.hobbies.add(hobby); hobby=''" value="add"/>
<p>{{person.name}} likes to:</p>
<ul>
<li ng-repeat="hobby in person.hobbies">{{hobby}} [ <a href="#" ng-action="person.hobbies.remove(hobby)">X</a> ]</li>
</ul>
<p>Now lets save your hobbies:</p>
<input type="button" value="Save" ng-action="$save()"/>
<p>Great! here is a QR code which if you scan with your iPhone (App: NeoReader) or Android Phone (App: Barcode reader) it will take you back to this page: </p>
<p>{{$window.location.href|qrcode}}</p>
<p ng-show="person.$id">Congrats {{person.name}}, you have successfully saved your hobbies to the cloud. To access them later here is a permanent url which you can send to your friends or use to edit your hobbies later: <a href="{{$window.location.href}}">{{$window.location.href}}</a></p>
<hr/>
<p>I am sure you are wondering how all of this magic is made. Well, here is a hint, go watch the screen-cast <a href="http://www.getangular.com/screencast">here</a>. Than come back and check the source of this page, as well as the debug view of the internal state of the page here:</p>
<pre>person={{person}}</pre>
<hr/>
<p>&lt;angular/&gt; is still in beta, but we are looking for few brave souls to start building web apps and give us feedback. As a beta user we will work closely with you to help you get started and resolve any issues which you may run into. If interested, sign up on our mailing list (<a href="http://groups.google.com/group/angular">http://groups.google.com/group/angular</a>) and send us an email with the kind of application you would like to build.</p>
<p>Happy coding and looking forward to hear from you&#8230;</p>
<p>The &lt;angular/&gt; team.</p>
]]></description>
			<content:encoded><![CDATA[<p style="color: red;" ng-hide="true" ng-entity="person=HelloWorld">If you see this text, than you are not reading this blog on our site, and the page will be static. To get the full effect please read the original blog on <a href="http://blog.getangular.com/2009/09/26/hello-world-angular-is-here/">http://blog.getangular.com/2009/09/26/hello-world-angular-is-here/</a></p>
<p>Hi I am  <strong>&lt;angular/&gt;</strong>! What is your name?<br />
<input name="person.name" ng-required> (Please enter your name into the text box).</p>
<p ng-show="person.name">Hello {{person.name}}! Please to meet you!</p>
<hr />
<p>We would like to introduce to you a new way of building web applications! All you need is basic working of HTML &amp; CSS and you can declaratively build a web-application in minutes.</p>
<p>Here are the kinds of things yo can do:</p>
<ul>
<li>Bring static HTML to life with just a few keystrokes.</li>
<li>Persist your data in the cloud</li>
<li>Embed your application in existing web page, such as this blog article</li>
</ul>
<p>Here is what you need to know:</p>
<ul>
<li>Basic Knowledge of HTML &amp; CSS</li>
<li>Optional: JavaScript if you want to take the application to the next level.</li>
</ul>
<p>Here is what you DO NOT NEED to know:</p>
<ul>
<li>Databases or SQL.</li>
<li>Back end technology such as Java, Ruby, C# or the likes.</li>
<li>For most things, you don&#8217;t even need to be a programer.</li>
</ul>
<hr />
<p>Well {{person.name}}, believe it or not, but this page is just a wordpress blog written in few minutes with a text editor. I have than added few extra angular tags to the HTML and the page came alive as you can see. Let me take you on the tour of what <strong> &lt;angular/&gt;</strong> can do.</p>
<p>Why don&#8217;t you tell me what you like to do for fun:</p>
<p>Hobby:<br />
<input type="text" name="hobby"/>
<input type="button" ng-action="person.hobbies.add(hobby); hobby=''" value="add"/>
<p>{{person.name}} likes to:</p>
<ul>
<li ng-repeat="hobby in person.hobbies">{{hobby}} [ <a href="#" ng-action="person.hobbies.remove(hobby)">X</a> ]</li>
</ul>
<p>Now lets save your hobbies:</p>
<input type="button" value="Save" ng-action="$save()"/>
<p>Great! here is a QR code which if you scan with your iPhone (App: NeoReader) or Android Phone (App: Barcode reader) it will take you back to this page: </p>
<p>{{$window.location.href|qrcode}}</p>
<p ng-show="person.$id">Congrats {{person.name}}, you have successfully saved your hobbies to the cloud. To access them later here is a permanent url which you can send to your friends or use to edit your hobbies later: <a href="{{$window.location.href}}">{{$window.location.href}}</a></p>
<hr/>
<p>I am sure you are wondering how all of this magic is made. Well, here is a hint, go watch the screen-cast <a href="http://www.getangular.com/screencast">here</a>. Than come back and check the source of this page, as well as the debug view of the internal state of the page here:</p>
<pre>person={{person}}</pre>
<hr/>
<p>&lt;angular/&gt; is still in beta, but we are looking for few brave souls to start building web apps and give us feedback. As a beta user we will work closely with you to help you get started and resolve any issues which you may run into. If interested, sign up on our mailing list (<a href="http://groups.google.com/group/angular">http://groups.google.com/group/angular</a>) and send us an email with the kind of application you would like to build.</p>
<p>Happy coding and looking forward to hear from you&#8230;</p>
<p>The &lt;angular/&gt; team.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.getangular.com/2009/09/26/hello-world-angular-is-here/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
