<?xml version="1.0" encoding="UTF-8" ?>
<rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
        <channel>
        <title>Tools - ReadWrite</title>
        <link>http://readwrite.com</link>
        <description />
        <language>en</language>
        <copyright>Copyright 2012 SAY Media, Inc.</copyright>
        <managingEditor>readwriteweb@gmail.com</managingEditor>
        <docs>http://blogs.law.harvard.edu/tech/rss</docs> 
        <lastBuildDate>Thu, 31 May 2012 11:30:00 -0700</lastBuildDate>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://rww.superfeedr.com/" />

                    <item>
                <title><![CDATA[MIT Brain Who Beat the Casinos Launches Service to Quantify Developer Performance]]></title>
                <description><![CDATA[
                                        <p class="p1"><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/tenxerlogo-1.jpg" style="" />
			</span>
Jeff Ma, the MIT blackjack team member who served as the inspiration for Ben Mezrich’s book <a href="http://www.amazon.com/Bringing-Down-House-Students-Millions/dp/0743225708" target="_blank">Bringing Down the House</a> and the film <a href="http://www.sonypictures.com/homevideo/21/" target="_blank">21</a>, gave developers at the <a href="http://summit.atlassian.com/"><span class="s1">Atlassian Summit</span></a> a glimpse of his new stealth startup: TenXer.</p>
<p class="p1"><span class="s1"><a href="http://signup.tenxer.com/">TenXer</a></span> is a tool for measuring employee performance, and is <a href="https://marketplace.atlassian.com/plugins/com.tenxer.atlassian.plugins.tenxer"><span class="s1">now available</span></a> as a plugin for <a href="http://atlassian.com/"><span class="s1">Atlassian</span></a>’s bug-tracking tool <a href="http://www.atlassian.com/software/jira/overview"><span class="s1">JIRA</span></a> via the relaunched <a href="https://marketplace.atlassian.com/"><span class="s1">Atlassian Marketplace</span></a>. Atlassian makes a variety of tracking, collaboration and software development products.</p>
<p class="p1">Using the JIRA plugin, development teams can track their metrics and see a performance dashboard. This appears to be the first public release of TenXer, and it doesn’t seem to be accessible outside of JIRA yet.</p>
<p class="p1"><a href="http://en.wikipedia.org/wiki/Jeff_Ma" target="_blank">Ma and his fellow MIT students</a> earned big bucks with their card counting system in the 1990s, but were eventually <a href="http://www.usatoday.com/life/movies/news/2008-03-25-jeff-ma-21_N.htm"><span class="s1">banned from just about every blackjack table</span></a> in the country. Since then, Ma has occupied his time founding companies like <a href="http://www.protrade.com/"><span class="s1">PROTRADE</span></a> and <a href="http://www.citizensports.com/"><span class="s1">Citizen Sports</span></a>, which <a href="http://techcrunch.com/2010/03/17/yahoo-acquires-citizen-sports/"><span class="s1">sold to Yahoo</span></a> in 2010. He’s also been giving talks on teamwork at various conferences.</p>
<p class="p1">In his keynote at Atlassian Summit, Ma explained that he noticed that successful individuals and teams, from athletes to businesses, quantify their performance and measure progress toward specific goals. That led him to found TenXer to create a system tracking employee performance. To this end, the TenXer plugin for JIRA measures metrics - such as bugs closed, bugs fixed and work logged - to help quantify developer performance. The name TenXer comes from the idea that “great employees are 10x better than the average.”</p>
<p class="p1"><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/tenxer.png" style="" />
			</span>
</p>
<p class="p1">According to <a href="http://articles.businessinsider.com/2012-03-07/tech/31131149_1_first-startup-successful-startups-boulder"><span class="s1">Business Insider</span></a>, Niel Robertson, co-founder of <a href="http://www.trada.com/"><span class="s1">Trada</span></a>, is also a co-founder of TenXer. <a href="http://angel.co/tenxer"><span class="s1">AngelList cites</span></a> David Jeske as an investor.</p>
<p class="p1">The Atlassian Marketplace is an app-store style service for purchasing and installing plugins and integrations for Atlassian products. It was formerly known as Atlassian Plugin Exchange and was relaunched today at the summit.</p>
                    ]]></description>
                <link>http://readwrite.com/2012/05/31/mit-brain-who-beat-the-casinos-launches-service-to-quantify-developer-performance</link>
                <guid>http://readwrite.com/2012/05/31/mit-brain-who-beat-the-casinos-launches-service-to-quantify-developer-performance</guid>
                <category>Gaming</category>
                <pubDate>Thu, 31 May 2012 11:30:00 -0700</pubDate>
                <author>Klint Finley</author>
            </item>
                    <item>
                <title><![CDATA[Loomio: Making Better Decisions Remotely Possible]]></title>
                <description><![CDATA[
                                        <img src="http://readwrite.com/files/styles/800_450sc/public/files/fields/loomio.png" />
                                        <p>Email, instant messaging, forums, code forges and other collaboration tools make it possible for distributed teams to get work done - but they're not great tools for making decisions. The team behind <a href="http://loomio.org/">Loomio</a> wants to solve that with a new Web-based tool for focused, concise discussions that allow all team members to be heard.&nbsp;</p>
<p>If you've ever worked with a distributed team, you know how difficult it can be to make decisions as a group. Discussions are unstructured, rambling affairs with dozens of messages flying about and no good way to track consensus. Even worse, requests for feedback can go without comment entirely, or with only a few stakeholders raising a voice.</p>
<h2>Agree, Disagree, Abstain, Block</h2>
<p>Discussion in Loomio starts with a discussion and specific proposal, and members have the option of voting on the proposal. A group can define the options (defaults are yes/no, abstain and block), and each member can give their view summary. As votes are tallied, everyone can see get a chart that shows how many folks are in agreement, how many aren't, how many have abstained, etc.</p>
<p>This <em>sounds</em> pretty simple, but most of today's collaboration tools don't provide a good way to focus a discussion. The key to Loomio is that it provides a central tool for discussions and (if used properly) narrows things down to decisions that are easy to vote on.&nbsp;<em style="border-style: initial; border-color: initial;">Central</em>&nbsp;is key here.&nbsp;It helps a lot to confine activity to <em>one</em> tool rather than making users look all over for information.</p>
<p>A lot of online teams communicate in several ways, including email, IM, IRC, over the phone and face to face. Stakeholders who prefer one medium (like email) lose out if discussions are held in IRC, or vice-versa. Even worse, stakeholders may be totally unaware a decision is being made at all. If a group settles on Loomio, it would enable the group to say "decisions are made <em>here</em> and nowhere else." If something <em>isn't</em> put up in Loomio (or another approved tool), then a decision wouldn't be legitimate.</p>
<p>Settling on a decision tool like Loomio should also help cut down on noise in other communication channels. It's popular to have discussions in email and CC everyone who <em>might</em> have an opinion or <em>might</em> need to vote on something. An active team can inspire email fatigue pretty quickly with discussions that are neverending. Loomio would allow users to visit, vote and get back to work.</p>
<p><iframe src="http://www.youtube.com/embed/xctXFj-Oidk" frameborder="0" width="560" height="315"></iframe></p>
<p>Actually, Loomio isn't <em>only</em> for distributed teams. There's no reason it couldn't be used in any organization, but its especially appropriate for situations where team members or stakeholders are far-flung.</p>
<h2>Can Loomio Solve the Problem?</h2>
<p>Like any tool, Loomio would only be effective if used properly. The early design could probably do with some modification - a more obvious start and end date for votes, for example - but the initial design is solid. The Loomio team says it's already in use by some organizations. New Zealand companies or organizations like&nbsp;<a href="http://www.enspiral.com/">Enspiral</a> and <a href="http://www.buckybox.com/">BuckyBox</a>&nbsp;are among the first adopters&nbsp;- though no one seems to be providing a public instance that we can point to.</p>
<p>If you want to help, the group is looking for contributions from Ruby on Rails developers, as well as&nbsp;<a style="border-style: initial; border-color: initial;" href="https://www.pledgeme.co.nz/Crowd/Details/166">a little extra cash</a>&nbsp;(NZ $5,000) to help the volunteer team devote more time to Loomio development. The project is sort-of open source and already on <a href="https://github.com/enspiral/loomio">GitHub</a>. It's "sort-of" open source because the site <em>says</em> it's open source, but if you look at the license text on GitHub it's basically a stump saying: "We need to add the license. GPLv2?" The pledge drive (through the Pledge Me platform) ends on May 18th. The developers have already raised more than their target, but more money might mean more time spent on development.</p>
<p>If adopted a bit more widely, Loomio might help take distributed teams to a new level - much like GitHub has helped with development. It is a simple concept, but bringing order to decision-making could help teams communicate better and make better decisions, no matter where they happen to be located.&nbsp;</p>
                    ]]></description>
                <link>http://readwrite.com/2012/05/16/loomio-making-better-decisions-remotely-possible</link>
                <guid>http://readwrite.com/2012/05/16/loomio-making-better-decisions-remotely-possible</guid>
                <category>Analysis</category>
                <pubDate>Wed, 16 May 2012 06:33:00 -0700</pubDate>
                <author>Joe Brockmeier</author>
            </item>
                    <item>
                <title><![CDATA[Revenge of the DevOps: Microsoft Targets Next Visual Studio for Admins Too]]></title>
                <description><![CDATA[
                                        <p><a href="http://www.readwriteweb.com/hack/120326%20Visual%20Studio%2011%2001.jpg"><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/assets_c/2012/03/120326%252520Visual%252520Studio%25252011%25252001-thumb-610x327-39805.jpg" style="" />
			</span>
</a></p>

<p>You've heard this from ReadWriteWeb for the past several months: The exodus to the cloud for enterprise services and resources is moving control of everyday work away from the IT department. So what happens with all those displaced IT workers and administrators who are no longer managing applications and services day-to-day?</p>

<p>Well, if you ask the folks producing the next edition of Visual Studio for Microsoft's upcoming Windows 8, they become developers.</p>
<p>"One of the things that we think about is like, hey, there is a world of development and there is a world of operations. In some sense, those worlds have been far apart in the past. [With] Visual Studio 11, we are taking the next big steps in terms of providing a tight workflow between the dev world and the ops world - we call it the 'DevOps loop.'" This from S. Somasegar, Microsoft's corporate vice president for the Developer Division, during the recent rollout of the first public beta of VS 11 - historically its principal developers' suite.</p>

<h2>Not Those Two Worlds Over There, But These Two Over Here</h2>

<p>Over the last five years, Microsoft has operated under the notion that there are two separate classes of developers, which it once called "Web developers" and "apps developers." The former group has been addressed with a product line called Expression Studio, which was originally geared toward the Web designer that Microsoft described as hailing from the world of graphic design - someone more experienced using Photoshop than Eclipse. Now, with the Windows 8 design motif hinging upon Web apps that it wants its mainline developers to embrace - the workers who know C# and Visual Basic - it can't exactly afford to treat Web apps developers as <i>sous-chefs</i>.</p>

<p><a href="http://www.readwriteweb.com/hack/120326%20Visual%20Studio%2011%2002.jpg"><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/assets_c/2012/03/120326%252520Visual%252520Studio%25252011%25252002-thumb-610x328-39807.jpg" style="" />
			</span>
</a></p>

<p>So it did not go unnoticed that the latest VS 11 beta not only has extensive support for JavaScript app developers, but also contains the Expression Blend component - the tool from Expression Studio for devs to design CSS stylesheets. If Microsoft still has two audiences, two worlds, in mind for its developer product lines, their characteristics are evidently both in flux. Coming into focus ever so gradually is a concept called <i>DevOps</i> - essentially, the admin or system operator who either dabbles in development, or has already taken the dive and who Microsoft is only now discovering.</p>

<p>"We're looking very heavily in bringing in another role, as part of the software development team: That's the operations professional," said Corporate VP Jason Zander during the VS 11 rollout event. "DevOps is a good example of that. We have the developer in the operations cycle - sometimes it's the same person, sometimes it's different departments... We recognize especially as we all start going out and building really advanced services and sticking those out in the cloud, it's necessary for us to really get that loop working very tightly."</p>

<p><iframe src="http://www.microsoft.com:80/presspass/silverlightApps/videoplayer3/standalone.aspx?contentID=visstud11_vid1&src=/presspass/presskits/developer/channel.xml" width="640" height="360" frameborder="0" scrolling="no"></iframe></p>

<p>Windows 8 will ship with two worlds of its own: one which encompasses the new and emerging world of touch-capable apps, and one which most Windows applications will run on today. Microsoft doesn't want these two models to align with separate developer classes - and that's a smart decision. If the "Expression" realm aligned itself with Metro-style Web apps and the "Visual Studio" realm with Desktop-style .NET applications, Windows itself would split into two competing ecosystems.</p>

<p>So think of this latest product cycle as "open-ecosystem surgery" - a route to cross-pollinate Microsoft's existing dev groups, with the result (hopefully) being that a new pair of groups emerges along a different dividing line. Planting some new seeds in this reconfigured garden, Microsoft will be offering an express version of its premium Visual Studio tier. The SKU that used to be marketed to large teams will now get an Express version, hosted within the Windows Azure cloud, for smaller teams.</p>

<p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/120326%252520Visual%252520Studio%25252004.jpg" style="" />
			</span>
</p>

<p>Worth noting is this new TFS project dashboard, which is supplied by the cloud-based team server. It's not just that it incorporates Microsoft's corporate-wide layout - it borrows its on-screen gadget concept from the upcoming Server Manager tool for the next Windows Server "8."</p>

<p>"The Team Foundation Server Express product uses a lot of the core technologies from the full-fledged [TFS] product that a lot of our developer customers love and use today," remarked Somasegar. "As a result, you get a lot of the core functionality like work item tracking, <a href="http://msdn.microsoft.com/en-us/magazine/cc163498.aspx">source control</a>, [issue] management tracking... being able to have task boards that allow you to follow agile practices." Like the developer division's other Express tools, the new TFS Express will be free; but unlike the others, it will support teams of up to five.</p>

<p>In an interview with ReadWriteWeb, Jason Zander tells us to expect <i>some</i>, though not <i>all</i>, DevOps-oriented features from the existing Team Foundation Server to become incorporated into the Express edition. But routing work items between two roles - for example, starting with a developer role and delegating to an operator role - will be enabled within TFS Express.</p>

<p><a href="http://www.readwriteweb.com/hack/120326%20Visual%20Studio%2011%2003.jpg"><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/assets_c/2012/03/120326%252520Visual%252520Studio%25252011%25252003-thumb-610x343-39810.jpg" style="" />
			</span>
</a></p>

<h2>A Broader Mix of Both Worlds</h2>

<p>Microsoft will be taking further steps than we had been told last September to bring the existing .NET developer base into the Metro-style world. Although it's already an accepted fact that Silverlight development is at a dead end, Microsoft is building <a href="http://msdn.microsoft.com/en-us/library/windows/apps/br230302%28v=vs.110%29.aspx">additions to the .NET Framework</a> that will enable C# and Visual Basic developers to build what Microsoft will officially call "Metro-style apps." This is important because <a href="http://www.readwriteweb.com/hack/2011/09/build-2011-what-is-winrt-and-i.php">when we were introduced to the Metro concept last September</a>, it was characterized as the style of apps you create using the WinRT runtime library. WinRT is not .NET; and at that time, there were elements of Metro-looking layout that you could incorporate into a .NET app, but it might not be something that runs in a tile on the Start screen.</p>

<p>That has changed: With these new additions to .NET Framework 4.5, including .NET for Metro-style apps, C# and Visual Basic apps <i>can</i> be created using VS 11.</p>

<p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/Jason%252520Zander%252520-%252520Microsoft.png" style="" />
			</span>
Jason Zander tells us more: "The core subsystems that you want to rely on for a Metro-style application are provided by the Windows Runtime. It's the same one that's sourced up, whether using C++, JavaScript, C#, or VB. There is still the Common Language Runtime [from .NET] in there, and there's still some of the core base class libraries that I need to write code... but one key difference, just to demonstrate this point, is that there's already a communications stack in WinRT, and we just use that one."</p>

<p>For now, Zander says, this will not mean that Metro-style apps will be available to the entire multitude of .NET languages, though he does not discount the possibility that <i>other contributors</i> could change that in the future.  The Metro-style additions will be exclusively for C# and Visual Basic.</p>

<p>"To the extent that you're a JavaScript developer and you're writing a Metro-style application, then of course you can just use JavaScript. We do enable the ability for that application... to call out to C++ or .NET assemblies," Zander explains. One example he offers would be a physics library written in C++, which may then be called from JavaScript code in the Metro app. "That's kind of a hybrid application that has both components in it," he says.</p>

<p>"If I'm a Silverlight developer today, and I'd like to author a Metro-style application, probably one of the most direct routes to being able to do that is to target XAML and C#, for example, as a Metro-style app there. And then taking a Silverlight app with the XAML, using some of the code that you have, and being able to retarget that inside of the new Metro project that you write. We do not have tools that will automatically convert those assets over," Zander warns. "And because you are targeting the Windows Runtime, there are some differences." There are new markup items for using XAML with touch and hover gestures, for instance. Windows Phone 7 apps will face a similar transition to Metro and C#, he adds.</p>

<p>But if the developer wants to transition his skill set from Silverlight to JavaScript/HTML, "in that case, you're rebuilding the application. We're not going to try to automatically map anything over. My experience with those types of tools is, they generally have a hard time giving you the fidelity that you'd expect. Sometimes the apps kinda work; and if you're targeting a new medium, like from Silverlight to JavaScript/HTML, those are different enough that I feel you'd actually be more productive as a developer to use [the Silverlight base] more as inspiration than as core assets."</p>

<p>It'll be a difficult set of bridges to build, but in this particular department, Microsoft does have one factor squarely in its favor: It does not have much competition for building Windows apps. Right now, the competition is from the cross-platform development realm, but that realm will not have a leg up on WinRT and the new .NET Framework additions. Microsoft has juggled the order of elements in the universe before. For the converging worlds of apps developers and system operators, don't count it out yet.</p>
                    ]]></description>
                <link>http://readwrite.com/2012/03/27/revenge-of-the-devops-microsof</link>
                <guid>http://readwrite.com/2012/03/27/revenge-of-the-devops-microsof</guid>
                <category>Tools</category>
                <pubDate>Tue, 27 Mar 2012 06:00:00 -0700</pubDate>
                <author>Scott M. Fulton</author>
            </item>
                    <item>
                <title><![CDATA[Umbraco CMS' Latest Reinvention Finally Complete]]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/assets_c/2011/08/umbracologo-thumb-150x150-32700.png" style="" />
			</span>
One other way to think of a "content management system" is as a database engineered to present data in a rich and navigable format.  As such, a CMS doesn't have to be "the company blog;" and a business' communications - especially the kind that used to be logged on the intranet - don't have to look like WordPress.</p>

<p>A few months later than originally planned, the "RTM" code for version 5 of the open source Umbraco CMS has <a href="http://umbraco.codeplex.com/releases">made its way to CodePlex</a>, Microsoft's open source distribution channel.  Now the hard part begins: updating, and in many cases replacing, existing documentation that goes back to version 3.</p>
<p>The various elements of Umbraco's CMS database are referred to as <i>document types</i>.  You define how a document type functions and operates by way of macros (not how it looks; that's done with CSS).  From version 3 of Umbraco, which was only a few years ago, up until now, there have been unofficially three, and actually <i>four</i> somewhat different methodologies for producing macros.  Version 3 relied on XSLT, a W3C standard since the late 1990s.  XSLT effectively leverages XML to embed server-side instructions into an HTML page, that translates data from an outside source into content and HTML markup.  The client never sees the code, or, to use W3C's term for it, the <i>stylesheet</i>, even though it wasn't being used for style in this context.</p>

<p>XSLT seemed to be the right choice at first, because it was inarguably a world standard, nobody owned it, and it was well documented.  It was terribly cumbersome, however.  Here's an excerpt from a CMS I created for Umbraco v3 two years ago.  It's a code segment that projects the three newest headlines from a blog with my name.</p>

<blockquote><code>

<p>&lt;xsl:param name="currentPage"/&gt;<br />
&lt;xsl:template match="/"&gt;<br />
&lt;ul&gt;<br />
&lt;xsl:for-each select="$currentPage/ancestor-or-self::root/descendant-or-self::node [@nodeName='Scott Fulton']/node [string(data [@alias='umbracoNaviHide']) != '1']"&gt;<br />
  &lt;xsl:sort select="data [@alias = 'DisplayDate']" order="descending" /&gt;<br />
  &lt;xsl:if test="position() &lt;= 3"&gt;<br />
	&lt;li&gt;<br />
		&lt;a href="{umbraco.library:NiceUrl(@id)}"&gt;<br />
			&lt;xsl:value-of select="data [@alias='DisplayHeadline']"/&gt;<br />
		&lt;/a&gt;<br />
	&lt;/li&gt;<br />
  &lt;/xsl:if&gt;<br />
&lt;/xsl:for-each&gt;<br />
&lt;/ul&gt;</p>

<p></code></blockquote></p>

<p>It looks far more confusing than it actually is.  The easiest part is spotting the pure HTML, such as the UL block where the results are rendered.  You can spot certain global variables, or <i>parameters</i>, by the <code>$</code> prefix, as in <code>$currentPage</code>.  Then the whole bit about <code>ancestor-or-self::root</code> and all that is part of another W3C standard called XPath, which is used here to navigate through the database tree.  To make sure the articles are sorted by the date of publication as opposed to the date of creation, I invoked the <code>DisplayDate</code> variable as the sort parameter sent to the <code>xsl:sort</code> instruction.  (Every single XSLT instruction has an <code>xsl:</code> prefix.  I sometimes spent hours wondering why some macros were stuck, only to find I had written "xslt:" as the prefix.)</p>

<p>But the layers of abstraction between the variable name and the XSLT instruction were three-fold, and this was the case all the time.  <code>select="data [@alias = 'DisplayDate']"</code> used single quotes to denote the variable separate from the attribution, which was always preceded by <code>@alias</code> (JavaScript devs, imagine always having to write "the name of the variable is" before every variable), which is demarcated by [square brackets] that separate the attribution from the <code>data</code> market ("the following data is data"), which is then set off from the property name using double-quotes.  The result looked like the cat had danced on the keyboard, and few XSLT veterans would claim it as legitimate.</p>

<p>With version 4, the Umbraco developers began taking controversial, but necessary, steps to move toward a more sensible approach.  As Microsoft began its major push for an architecture called MVC (Model / View / Controller) for ASP.NET, it only made sense that Umbraco adopt it somehow.  It fit perfectly with Umbraco's original philosophy of separating the data from the rendering of the data, and separating that from the device that controls it.</p>

<p>But the easiest route to embracing MVC appeared to be the direct one, which with respect to a Microsoft technology meant embracing a Microsoft language: C#.  After Microsoft made available a broader array of development tools such as WebMatrix that didn't tie devs down to using the commercial Visual Studio, the skepticism winded down.</p>

<p>Now using Umbraco's third iteration of Microsoft's Razor - its scripting language based on C# - it is entirely feasible for the above monstrosity of an excerpt to be boiled down to a single instruction.</p>

<p>With thanks to <a href="https://gist.github.com/1710859">long-time Umbraco contributor Warren Buckley</a>, here's a complete example of the change in legibility from XSLT to Umbraco v5 Razor.  The following two excerpts do the exact same thing.  Here's the Umbraco v3 version:</p>

<p><code><blockquote></p>

<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;!DOCTYPE xsl:stylesheet [ &lt;!ENTITY nbsp "&#x00A0;"&gt; ]&gt;<br />
&lt;xsl:stylesheet <br />
	version="1.0" <br />
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" <br />
	xmlns:msxml="urn:schemas-microsoft-com:xslt" <br />
	xmlns:umbraco.library="urn:umbraco.library" {0}<br />
	exclude-result-prefixes="msxml umbraco.library {1}"&gt;</p>

<p>&lt;xsl:output method="xml" omit-xml-declaration="yes" /&gt;</p>

<p>&lt;xsl:param name="currentPage"/&gt;</p>

<p>&lt;!-- Don't change this, but add a 'contentPicker' element to --&gt;<br />
&lt;!-- your macro with an alias named 'source' --&gt;<br />
&lt;xsl:variable name="source" select="/macro/source"/&gt;</p>

<p>&lt;xsl:template match="/"&gt;</p>

<p>&lt;!-- The fun starts here --&gt;<br />
&lt;ul&gt;<br />
&lt;xsl:for-each select="umbraco.library:GetXmlNodeById($source)/node [string(data [@alias='umbracoNaviHide']) != '1']"&gt;<br />
	&lt;li&gt;<br />
		&lt;a href="{umbraco.library:NiceUrl(@id)}"&gt;<br />
			&lt;xsl:value-of select="@nodeName"/&gt;<br />
		&lt;/a&gt;<br />
	&lt;/li&gt;<br />
&lt;/xsl:for-each&gt;<br />
&lt;/ul&gt;</p>

<p>&lt;/xsl:template&gt;</p>

<p>&lt;/xsl:stylesheet&gt;</p>

<p></code></blockquote></p>

<p>Here is the Umbraco v5 version:</p>

<p><code><blockquote></p>

<p>@inherits PartialViewMacroPage<br />
@using Umbraco.Cms.Web<br />
@using Umbraco.Cms.Web.Macros<br />
@using Umbraco.Framework</p>

<p>@{<br />
    //Get the macro parameter and check it has a value otherwise set to empty hive Id<br />
    var startNodeID = String.IsNullOrEmpty(Model.MacroParameters.startNode) ? HiveId.Empty.ToString() : Model.MacroParameters.startNode;</p>

<p>    //Check that we have a HiveId to work with<br />
    if (startNodeID != HiveId.Empty.ToString())<br />
    {<br />
        var startNode = Umbraco.GetDynamicContentById(startNodeID);</p>

<p>        //Check that startNode has child pages<br />
        if (startNode.Children.Any())<br />
        { <br />
            &lt;ul&gt;<br />
                @foreach (var page in startNode.Children)<br />
                { <br />
                    &lt;li&gt;&lt;a href="@page.Url"&gt;@page.Name&lt;/a&gt;&lt;/li&gt;<br />
                }<br />
            &lt;/ul&gt;<br />
        }<br />
    }<br />
    else<br />
    { <br />
        &lt;p&gt;HiveId is empty&lt;/p&gt;<br />
    }  <br />
}<br />
</code></blockquote></p>
                    ]]></description>
                <link>http://readwrite.com/2012/02/17/umbraco-cms-latest-reinvention</link>
                <guid>http://readwrite.com/2012/02/17/umbraco-cms-latest-reinvention</guid>
                <category>Tools</category>
                <pubDate>Fri, 17 Feb 2012 04:30:00 -0800</pubDate>
                <author>Scott M. Fulton</author>
            </item>
                    <item>
                <title><![CDATA[HP Aims to Redefine Apps Performance Testing with Cloud Platform]]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/enterprise/assets_c/2011/08/hp-logo-3d-291x300-thumb-150x154-32673.jpg" style="" />
			</span>
When mobile users feel they don't like how their apps perform after the first trial, some 75% of them won't launch the app again.  That's the metric cited by engineers and marketers at HP Software, who note that this first wave of mobile apps brought forth by the iPhone has resulted in a glut of programs that make even the best performing mobile hardware into a pocket full of silicon cement.</p>

<p>This morning, HP begins a repurposing of the performance testing tools for websites that it gained through the Mercury Interactive acquisition of 2006, for the mobile apps era.  It's unveiling what it calls "LoadRunner-in-the-Cloud," complete with hyphens.  It will act as an off-premise testing platform for mobile apps that are deployed as services, simulating the activity generated by thousands of users simultaneously to gauge the resilience of servers and resources.  This way, you might not have to disappoint three-fourths of them to learn how well your service holds up.</p>
<h2>Better Scalability Through Experimentation</h2>

<p>"The application architecture itself is the performance bottleneck nine out of ten times," says Matt Morgan, HP Software's global senior director of solutions marketing, in an interview with RWW.  "By monitoring these services and knowing how long a transaction spends waiting for a data retrieval or a logic process, or some other storage function to occur, you can pinpoint the modules inside the service that have the most potential to slow an application under load.  You can find out which services are not scaling."</p>

<p>When applications are deployed <a href="http://www.readwriteweb.com/cloud/2011/10/alphabet-soup-in-the-cloud-und.php">on PaaS platforms</a> such as Heroku and Windows Azure, Morgan says, a great deal of the complexity of how the software interfaces with the hardware is abstracted into obscurity.  The architectural concept that I dubbed <i>composite applications</i> in 1991 has expanded to a seemingly unmanageable number of tiers.  With the shift to mobile architecture, much of the burden of providing performance has shifted off of the front-end client, and onto the server.  And in-between those two tiers are any number of platforms.  "So this idea that the software is a composition, gets even more complicated," he remarks.</p>

<p>"We correlate the front-end story to the back-end problem.  And if you think about just the complexities of performance monitoring, if you don't do correlation, you can end up with an enormous collection of logs and metrics that don't actually mean anything to the tester," he continues.  "The tester really cares about, how many users can the system support, and what will these users experience when they do concurrently hit their system?"</p>

<p>Mobile apps typically break at some point, and Morgan notes, they don't bend very much before they do.  Maybe an app performs well with 300 simultaneous users, and then fails completely at 325.  So LoadRunner-in-the-Cloud (hereafter LRC) finds the breaking point, which is typically <i>somewhere</i>.  Once that's done, it relies upon feedback provided by a vast network of back-end monitors, probing such factors as SQL queries, server metrics, and diagnoses of the method calls being invoked inside the service.  "By correlating how much time it takes for a transaction to hit these things, you can actually attain a pretty clear picture, and start to show that the areas of your application that are causing problems have a distinct performance impact."</p>

<p><iframe width="610" height="443" src="http://www.youtube.com/embed/cR8-3DRE2zo" frameborder="0" allowfullscreen></iframe></p>

<p><em>The protocol HP uses for emulating user activity in AJAX Web applications, called TruClient, is explained in this video.  TruClient has been extended for LoadRunner-in-the-Cloud.</em><hr /></p>

<h2>Identifying Your App by How and Where It Breaks</h2>

<p>The result is a kind of "stress footprint" that characterizes the resilience state of your mobile app.  The space in which this footprint appears is the <i>scenario</i>, which is LRC's term for a repeatable test.  Each test helps establish a firm baseline, which is then replicated identically for different problem sets - different numbers of users.  This way you're testing how the same code scales up, including with each increment - LRC adds test users on an incremental scale, not logarithmic.  "You're trying to determine, if the exact same actions take place on the server, do things improve with the change?" says the HP senior director.  "Scenarios allow you to digitize that load, creating a one-click re-execution capability, which is very important in an iterative world.  You run your load test, you identify your problem, you make your change, and you go back to your scenario and run the exact same test."</p>

<p>Overlaying the results gives you your best metric as to performance, which in a cloud-based scenario is indeed capable of <i>improving</i> with incrementally added users.</p>

<p>Results from previous load tests, including with earlier builds of your apps, are recorded as <i>snapshots</i>.  New test results can be overlaid atop these earlier ones, in order to determine what code changes made the biggest impact.  "We give you the capability to leverage that information inside of an operational monitoring solution, but if you wanted to monitor a Web or mobile app going forward for functionality, and you want to have visibility to the way it should run, you can use the metrics from LoadRunner to compare against what it's actually doing in production.  That gives you the snapshot of the lab world, where everything works, to the production world where everything's real."</p>

<p>LoadRunner-in-the-Cloud is being offered now to HP partners in the U.S. and Canada, and will be rolled out through OEM partners on their own timetables.  Pricing will be determined by the party making the sale.</p>

<p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/120206%252520Lode%252520Runner%252520on%252520Apple%252520II.jpg" style="" />
			</span>
</p>

<p><em>No, no, not </em>that<em> Lode Runner!  Somebody get our graphics department off the Apple II and replace this!</em></p>
                    ]]></description>
                <link>http://readwrite.com/2012/02/06/hp-aims-to-redefine-apps-perfo</link>
                <guid>http://readwrite.com/2012/02/06/hp-aims-to-redefine-apps-perfo</guid>
                <category>Tools</category>
                <pubDate>Mon, 06 Feb 2012 23:45:00 -0800</pubDate>
                <author>Scott M. Fulton</author>
            </item>
                    <item>
                <title><![CDATA[The Fruit of SproutCore's Labor Will Live On as Amber.js]]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/SproutCore%252520%252528150%252520px%252529.png" style="" />
			</span>
Last month, the team responsible for the creation of SproutCore, one of the more successful of many JavaScript libraries for Web application development, <a href="http://www.readwriteweb.com/hack/2011/11/html5-apps-platform-creator-ab.php">were absorbed as a whole into Facebook</a>, and will likely be working on an apps distribution platform there, probably involving HTML5.  What Strobe left on the table was SproutCore, a project which had evolved into its own independent HTML5 apps framework for both assembly and distribution, but which began at Apple as a JavaScript toolkit for rendering Web apps, including for mobile.</p>

<p>Yehuda Katz and Tom Dale had already left SproutCore in October, prior to the rest of the team's acquisition.  Katz is a core contributor to a number of major, recognizable projects including Ruby on Rails and jQuery; and <a href="https://twitter.com/#!/tomdale/status/133964935398043648">Dale confirmed in a tweet last month</a> that he, Katz, and other notables were starting a new venture to be called Tilde.  This morning on his personal blog, <a href="http://yehudakatz.com/2011/12/08/announcing-amber-js/">Katz announced Tilde's first key project</a>: the reworking of SproutCore 2.0 into a new and emerging project called Amber.js.</p>
<p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/111208%252520Yehuda%252520Katz%252520-%252520Tilde.jpg" style="" />
			</span>
"We became increasingly convinced that calling what we were building 'SproutCore 2.0' was causing a lot of confusion," Katz wrote, "because SproutCore 1.x was primarily a native-style widget library, while SproutCore 2.0 was a framework for building Web-based applications using HTML and CSS for the presentation layer... To clear things up, we have decided to name the SproutCore-inspired framework we have been building (so far called 'SproutCore 2.0') 'Amber.js.'  Amber brings a proven MVC architecture to Web applications, as well as features that eliminate common boilerplate.  If you played with SproutCore and liked the concepts but felt like it was too heavy, give Amber a try."</p>

<p>MVC, as SproutCore 1.5 veterans know, refers to <i>model/view/controller</i> architecture - a way of separating the components of an application into the data, the aspect or view of that data, and the device being used to present that view.  Keeping these components separate ends up simplifying both the management and presentation processes, and lends itself very well to the different toolsets of Web app development.</p>

<p>Katz' history with SproutCore began in the middle of the product's development; his key contribution was the concept of <i>dynamic templating</i>.  This refers to the use of code to specify within a markup page how and where elements of a template may be constructed on the fly.  This way, a JavaScript compiler can effectively produce template elements in accordance with the data, and can change the template when the data changes.  This was a tremendous breakthrough for SproutCore 1.5, which premiered at a time when CSS stylesheets and HTML documents were being intentionally over-provisioned in order to account for any and all contingencies.</p>

<p><a href="http://www.infoq.com/interviews/yehuda-katz-sproutcore#">As Katz told InfoQ a year ago</a>, it also allows the runtime to determine the best templating method for the browser at hand, producing different code for Internet Explorer, for example, than it would for Chrome.</p>

<p><a href="http://blog.sproutcore.com/announcing-sproutcore-2-0/">Tom Dale announced the first Developer Preview of SproutCore 2.0</a> last May, with an emphasis on <a href="http://www.handlebarsjs.com/">the new Handlebars.js coding system</a> (inspired by Mustache.js) for presenting dynamic template elements.  Really more of a syntax than a programming language, Handlebars allows you to insert elements into an HTML page by <code>{{</code> offsetting it in double-curly brackets <code>}}</code>, and then define those elements as variables using JavaScript.</p>

<p>"Handlebars, unlike other templating solutions like Eco, doesn't tempt you to embed domain logic in your HTML," <a href="http://blog.sproutcore.com/why-handlebars/#more-1872">wrote Dale on his personal blog</a> last October.  "Anything other than simple conditionals and loops must be contained in your application's JavaScript, which enforces the separation of concerns and leads to better testability.  The language is also extensible with custom helpers, which allows you to effectively write a template DSL for your particular application."</p>

<p>Although SproutCore 2.0's code today remains <a href="https://github.com/sproutcore/sproutcore20">hosted through the SproutCore organization via GitHub</a>, Katz says it will be relocated to Tilde's namespace within the next few days.</p>
                    ]]></description>
                <link>http://readwrite.com/2011/12/08/the-fruit-of-sproutcores-labor</link>
                <guid>http://readwrite.com/2011/12/08/the-fruit-of-sproutcores-labor</guid>
                <category>Tools</category>
                <pubDate>Thu, 08 Dec 2011 02:30:00 -0800</pubDate>
                <author>Scott M. Fulton</author>
            </item>
                    <item>
                <title><![CDATA[Silverlight Stall: Microsoft Says Final Word on v5 'in the Coming Weeks']]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/Silverlight.png" style="" />
			</span>
Spokespersons for Microsoft and all other sources on the subject are remaining mum today, after an unofficial general release deadline of the end of November for the next edition of its Silverlight Web apps platform passed quietly.  The Silverlight 5 project had been launched as the evolution of Microsoft's graphical platform for Web functionality, though that was before the company's <a href="http://www.readwriteweb.com/hack/2011/09/build-2011-what-is-winrt-and-i.php">dramatic shift in preference to WinRT</a> as the Web apps platform of choice for Windows 8.</p>

<p>Late yesterday, Microsoft's spokespersons were unable even to confirm that Silverlight 5, whose <a href="http://www.silverlight.net/downloads">release candidate remains available now</a>, will make general release in 2011.  However, <a href="http://www.microsoft.com/silverlight/future/">a launch announcement page posted earlier in the year</a> continues to show 2011 as the promised timeframe.  One spokesperson would only say that further news would be revealed "in the coming weeks."</p>
<p>The November timeframe came about as a result of <a href="http://news.softpedia.com/news/Silverlight-5-RTM-by-the-End-of-November-2011-233476.shtml">a statement attributed to Microsoft Corporate VP Scott Guthrie</a>, who remains recognized in the Microsoft developer community as a champion of the platform.  However, that attribution failed to take into account that <a href="http://www.readwriteweb.com/hack/2011/09/build-2011-microsofts-scott-gu.php">Guthrie had already moved to the Server and Tools division</a> which is not accountable for Silverlight.  (Guthrie replaced Bob Muglia <a href="http://www.juniper.net/us/en/company/leadership/bob-muglia/">who left for Juniper Networks</a>.)  So Guthrie perhaps should not have been treated as the final word on the subject; had the news come from <a href="http://www.microsoft.com/presspass/exec/somasegar/">S. Somasegar</a>, it might have carried some weight.</p>

<p>During <a href="http://www.readwriteweb.com/hack/2011/09/build-2011-microsoft---winrt-i.php">an RWW interview with Microsoft executives in September</a>, Somasegar - the current CVP of the Developer division - was clear and unambiguous in revealing that the Silverlight effort is being scaled down.  So that's not at issue; what does concern developers at this point is how they should plan to implement their own skillset transitions from Silverlight to WinRT.</p>

<p>What Microsoft told us would survive during this transition phase is XAML, the resource description language critical to Silverlight.  XAML uses XML-style markup to denote the locations of page elements and controls, and as some developers would argue, is much better suited to the UI of a complex application than HTML.  At last September's Build conference in Anaheim, company representatives demonstrated XAML in developing next-generation apps for Windows 8 outside of Silverlight.</p>

<p>But while the structure of XAML may survive the transition, testers of WinRT are finding out that the various controls and elements that XAML would normally reference in Silverlight have yet to make the journey.  On the company's development forums, registered partners are <a href="http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/380b4b7b-72e2-4435-b7f7-0d2afca4eac0">already compiling lists of thus-far-unsupported features</a> in WinRT.</p>

<p>"I appreciate that WinRT is still in developer preview phase and it will change by the time Windows 8 beta is released," writes forum member Sameer V.  "But the suspense and secrecy is killing me!  First we were worrying if XAML will be present in Win8, now that it is there, it's almost unusable (at least for my app)... I hope someone from MSFT is listening, we need some transparency guys."</p>
                    ]]></description>
                <link>http://readwrite.com/2011/11/30/silverlight-stall-microsoft-sa</link>
                <guid>http://readwrite.com/2011/11/30/silverlight-stall-microsoft-sa</guid>
                <category>Tools</category>
                <pubDate>Wed, 30 Nov 2011 22:30:00 -0800</pubDate>
                <author>Scott M. Fulton</author>
            </item>
                    <item>
                <title><![CDATA[Collabnet Connect Offers New Integrated Dev Tools]]></title>
                <description><![CDATA[
                                        <p>Today, <span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/collabnet150.jpg" style="" />
			</span>
CollabNet announced Connect, its new integration framework to provide app dev orchestration and management. The big news here is its integration with Atlassian's bug tracker tool JIRA. It also brings the Git source code repository into an enterprise setting that can be used more adroitly by larger project teams. The goal is that your data stays in one place while you move through the development and test lifecycle. </p>

<p>You can <a href="http://www.collab.net/products/collabnetconnect/">download a free trial of Connect here</a>.<br />
</p>
<p>CollabNet got started 12 years ago and developed Subversion before turning it over as open source to the <a href="http://www.readwriteweb.com/hack/2011/10/whats-new-in-apache-subversion.php">Apache Foundation</a>.  It has a series of other open source development tools such as TeamForge as well as <a href="http://www.readwriteweb.com/hack/2011/08/new-agile-courseware-from-coll.php">new agile courseware that it announced earlier this summer</a>.</p>

<p>Here is a picture of their current universe:</p>

<p><a href="http://www.readwriteweb.com/hack/collabnet-universe.jpg"><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/assets_c/2011/11/collabnet-universe-thumb-610x428-36432.jpg" style="" />
			</span>
</a></p>

<p>The benefits of Connect include the following:</p>

<ul><li>New integration framework now available for TeamForge 6.1.1 (and other CollabNet products) on-premises and in the cloud
<li>Federation and synchronization, orchestration and governance of application delivery processes across commercial and open source ALM and cloud development tools
<li>Brings Git into an enterprise-grade ALM platform, with consistency of lifecycle and coding practices, governance and security
<li>Turns TeamForge into an open and flexible software change management hub. Connect incorporates third party tools natively into TeamForge. 
<li>Allows ALM users to search, discover and share artifacts and documents across workgroups and locations, no matter what tools are used. 
</ul>

<p>Earlier this year <a href="http://www.readwriteweb.com/cloud/2011/11/github-launches-enterprise-can.php">GitHub Enterprise</a> announced its own integration tool set. It remains to be seen how well Connect will stack up to this. </p>

<p>To make use of all these many features of Connect, you'll need to upgrade to v6.1.1 of TeamForge. There is no additional cost for Connect once you upgrade TeamForge.   </p>
                    ]]></description>
                <link>http://readwrite.com/2011/11/29/collabnet-connect-offers-new-i</link>
                <guid>http://readwrite.com/2011/11/29/collabnet-connect-offers-new-i</guid>
                <category>News</category>
                <pubDate>Tue, 29 Nov 2011 22:00:00 -0800</pubDate>
                <author>David Strom</author>
            </item>
                    <item>
                <title><![CDATA[Built-in Dev Tools in Firefox 10 Look More Chrome-ish]]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/Firefox%252520%252528150%252520px%252529.png" style="" />
			</span>
For most of its existence, Firebug has been the <i>de facto</i> JavaScript developers' console for Firefox; and for several years, most Web development in general involved Firebug to at least some extent.  Now with HTML5 developers expecting to see more workbench functionality built into the browser, Firefox finds itself in yet another chase, this time not only with Google Chrome but with Opera and Microsoft Internet Explorer, in a race to incorporate functionality that Firebug users had always thought they had.</p>

<p>Mozilla's latest nightly build of Aurora, the development channel for Firefox, reveals the incorporation of at least one new feature in its growing built-in dev toolkit that, while welcomed, will already look familiar to some who've sneaked into the Chrome camp: a "bread crumbs" toolbar that represents the relationships between page divisions in the active DOM model, and lets you click on a division name to see it isolated in the browser.</p>
<p>Some months back, Mozilla rolled out an addition to its built-in Firefox dev tools that lets you highlight and focus on an element with a bit more animated style.  The Inspect function (Ctrl + Shift + I) lets you scoot the mouse over the rendered page to see the location and identity of the element under the pointer.  While in Inspect mode, the HTML code for the highlighted elements shows up in a separate window.  This seems nice enough until you try to use it for real work.  To stop the code window from updating itself for every element under the pointer, you click on the element you want to inspect in order to hold the highlighter in place.  Then you can go to the HTML window to scroll through the code, but in the meantime, the page has returned to its regular behavior, albeit with a polarized film over most of it.  You can't easily move from element to element without clicking on the white "X" in the upper right corner, which is sometimes easy to miss.</p>

<p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/111128%252520Aurora%252520dev%252520tools%25252001.jpg" style="" />
			</span>
</p>

<p>The revision of this feature in the latest Aurora builds is a vast improvement, even if Mozilla had to borrow another feature from Chrome to pull it off.  When you press Ctrl + Shift + I, the new bread crumbs toolbar appears along the bottom.  The highlight still follows your pointer, but now a flag appears along the top of the highlight bearing the name or type of the highlighted element.  You can click any element in the bread crumbs list to see that element highlighted.  And to return to the animated selection mode, you just click the <b>Inspect</b> button on the lower left corner.</p>

<p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/111128%252520Aurora%252520dev%252520tools%25252002.jpg" style="" />
			</span>
</p>

<p>Now instead of a separate window, the source code is now hidden within retractable panes.  The <b>HTML</b> button brings up the source code that you'd find within the separate window of Firefox' current release builds, while the <b>Style</b> button brings up a CSS navigator along the right side.  The borders for both panes are easily dragged from side to side to make room.</p>

<p>While Mozilla had been experimenting from time to time with relocating the Web Developer console (where errors are reported, among other things) from the bottom to the top of the active window, in current release builds, Mozilla places it back along the top by default.  A <b>Position</b> button lets the developer move the console to the bottom, or detach it into a separate window.  Although all these tools are often simultaneously necessary, things may get a bit crowded for Mozilla developers with all these panes competing for real estate.</p>
                    ]]></description>
                <link>http://readwrite.com/2011/11/28/built-in-dev-tools-in-firefox</link>
                <guid>http://readwrite.com/2011/11/28/built-in-dev-tools-in-firefox</guid>
                <category>Tools</category>
                <pubDate>Mon, 28 Nov 2011 07:00:00 -0800</pubDate>
                <author>Scott M. Fulton</author>
            </item>
                    <item>
                <title><![CDATA[New Relic Expands Performance Monitoring as a Service with Python]]></title>
                <description><![CDATA[
                                        <p><a href="http://www.readwriteweb.com/hack/New%20Relic%20%28150%20sq%29.jpg"><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/assets_c/2011/11/New%252520Relic%252520%2528150%252520sq%2529-thumb-150x150-36225.jpg" style="" />
			</span>
</a>How exactly <i>should</i> you gain visibility into the performance levels your customers are seeing when they use your Web applications?  One method that's still in wide use is compelling users to install plug-ins and background processes.  But for many users, that's not just performance monitoring, that's <i>behavior</i> monitoring.  You don't want your analytics tool straying too far into the realm of potential privacy violations.</p>

<p>Until HTML5 can fully implement <a href="http://www.readwriteweb.com/hack/2011/08/final-specs-for-browser-neutra.php">its standard methodology for capturing browser performance specs</a>, Web developers need alternatives.  One candidate, provided by a company RWW spoke with called New Relic, is to have Web apps servers supply performance measurement agents to clients while the apps themselves are being served.  These agents communicate not with your server, but with New Relic instead, and the results are made visible as analytics charts through your browser.</p>
<p>"The difference between what we're doing and what our competitors are doing is, we essentially come up with what we call 'curated' metrics," explains Graham Dumpleton, New Relic's principal engineer.  "We work out what we think is going to give you the most value quickly, and highlight those metrics.  That way, when you install the product... instantly you're getting data.  So you don't have a situation where the customer has to fiddle with it, configure it, work out what it is they can actually get out of it that's useful to them.  We find out what are the things that are truly important to a majority of people, so as soon as they turn it on, they're instantly getting value from it."</p>

<p>Like many companies in the Web app space, New Relic started out as a tool for Ruby on Rails.  It soon expanded into Java, .NET, PHP, and added Python to the mix earlier this month.  As Dumpleton explained, the measurement processes for each language and corresponding framework may be entirely different.  For example, measuring Java performance may require bytecode manipulation, literally inserting instructions into the interpreter stream.  PHP, by stark contrast, is written in C, so measuring PHP performance requires communicating with its internal APIs.  For a dynamic scripting language like Ruby, inserting the measurement code may be done using <i>monkey patching</i> - modifying the dynamic classes on the fly.</p>

<p>"That's a big challenge for us, because you can't provide just one solution for each language," explains Dumpleton.  "You have to try to instrument the specific frameworks... and target specific implementation problems.  It has to be targeted. You can't just blanket-profile everything in the language and what's happening in the code, because there's too much overhead.  So we target specific items of interest, and that's how we get the set of curated metrics."</p>

<p><iframe width="600" height="335" src="http://www.youtube.com/embed/udiY_QMgS5Y" frameborder="0" allowfullscreen></iframe></p>

<p>New Relic's new Python agent is designed to work with the language's standard Web Server Gateway Interface (WSGI).  As <a href="https://plus.google.com/114657481176404420131/posts/GAaZprYD5HX">Dumpleton spelled out quite clearly</a> on his Google+ feed earlier this month, "The New Relic Python agent is not just for Apache/mod_wsgi.  Any WSGI 1.0 compliant WSGI server should work."  That includes cloud-based WSGI deployments.  (By the way, <a href="http://code.google.com/p/modwsgi/">mod_wsgi</a> is Dumpleton's own contribution to Apache.)</p>

<p>Once the files are installed on the Web app server, the admin adds the name of the path to New Relic's .INI file as a pair of instructions to the WSGI application script file.  Then there is a small but not unimportant matter: the addition of a wrapper function around the entry point of the Python app itself.  This is the only addition that needs to be made to the actual code.  Python allows the use of so-called <i>decorators</i> to augment the default functionality of an existing function or method without creating a new subclass.  In this case, the syntax <code>@newrelic.agent.wsgi_application()</code> may be used for an app whose entry point is a function named <code>application</code>.</p>

<p>New Relic's information collection model is layered, Dumpleton goes on.  At the lowest level of its model is what it calls the <i>harvester</i>, where the data is collected and sent off to the core app.  Above that is an aggregation layer, followed by another layer that captures data applicable to a specific framework or language, and at the top the hooks for the framework itself.  The bottom two layers are the same for all New Relic agents, from Ruby through .NET to Python.</p>

<p>Just after Dumpleton was brought into the company last December, he developed a Python agent on top of the existing C-language core for the company's PHP agent.  Later Dumpleton and his colleagues were able to slide the Python agent onto a Python core for New Relic's latest agent for Python apps.</p>

<p>"We've actually optimized our own application at New Relic by monitoring it with New Relic," admits the company's marketing director, John Essex.  The company's suite of tools now includes server monitoring as well as client-side, using a so-called "AppMap" that takes account of third-party Web services incorporated into an app.  "It maps your environment for you; you can look into any third-party service connected to an application and tell if there's a bottleneck or not.</p>

<p>"We find that in many shops, people wear more than one hat... and developers fulfill many roles, one of them being operations," Essex adds.  "We've often called this the operations tool that developers love."</p>
                    ]]></description>
                <link>http://readwrite.com/2011/11/22/new-relic-expands-performance</link>
                <guid>http://readwrite.com/2011/11/22/new-relic-expands-performance</guid>
                <category>Tools</category>
                <pubDate>Tue, 22 Nov 2011 02:30:00 -0800</pubDate>
                <author>Scott M. Fulton</author>
            </item>
                    <item>
                <title><![CDATA[Sisyphus: Add Gmail-like Saving to Your Site's Forms]]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/sisyphus.jpg" style="" />
			</span>
Modern browsers are, generally speaking, so much better about stability than they used to be. Still, who hasn't had a browser crash in the middle of filling out a form at some point? Maybe the odds are 1 in 100, maybe they're 1 in 1,000, but it <em>will happen</em>. Now, consider the odds for all the people visiting your sites. If your site has forms of any kind, you should consider using <a href="http://simsalabim.github.com/sisyphus/">Sisyphus</a> to add Gmail-like saving to your site.</p>
<p>Sisyphus is a jQuery plugin that adds form protection to your site. It's easy to add protection with Sisyphus to your site, it requires just a few lines of code and then Sisyphus does all the work.</p>

<p>It uses local storage to save users' work, and the storage is freed up as soon as they reset or submit the form. It works with text areas, dropdowns, checkboxes, radio buttons and selections. Alexander Kaupanin, the author of Sisyphus has adding fields to exclude from observation on the todo list. That means that, eventually, you'll be able to specify individual fields that won't be stored. </p>

<p>According to the Sisyphus homepage, it's been tested with all recent releases of major browsers (IE, Chrome, Firefox, Safari and Opera). Sorry, Lynx users are still out in the cold. Sisyphus is available under the MIT license, so it should be suitable for pretty much any site. If you're looking to test it out, try the <a href="http://simsalabim.github.com/sisyphus/">main page with sample form</a>, and then <a href="https://github.com/simsalabim/sisyphus">grab the code on GitHub</a>.</p>
                    ]]></description>
                <link>http://readwrite.com/2011/10/31/sisyphus-add-gmail-like-saving</link>
                <guid>http://readwrite.com/2011/10/31/sisyphus-add-gmail-like-saving</guid>
                <category>Tools</category>
                <pubDate>Mon, 31 Oct 2011 23:00:00 -0700</pubDate>
                <author>Joe Brockmeier</author>
            </item>
                    <item>
                <title><![CDATA[17 Alternatives to Klout]]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/klout_biglogo_150x150.jpg" style="" />
			</span>
<a href="http://www.readwriteweb.com/archives/will_your_klout_score_be_affected.php">As we wrote about earlier this week, Klout has reworked its algorithms</a>, and your scores have changed. Some have gone up, some down. Despite claiming more transparency with their algorithms, they are still mostly opaque and mysterious. As one of our readers commented, "Klout just pulled a Netflix, taking trust off the table."</p>

<p>So while they tinker with their code, you might want to explore other alternatives that can help you measure your social media effectiveness. We have come up with 17 different services, some free, some fairly expensive. I have tried most of them and will give you my impressions so you can have a head start with your own explorations. </p>
<p>Before I run through the services, let's discuss eight different issues with social media metrics and how the ideal metric should be constructed. </p>

<ol><li> <b>There is no single number that can really be universally useful. </b>It isn't like wining the World Series, where you have to score more runs by the end of the game. There are a variety of actions that you want to examine, and you can win in one area and be off elsewhere. My impression is that we place too much emphasis on the final number without really understanding the reasons for its calculation, as the recent changes in Klout have shown. 

<p><li><b>You are also measuring two grossly different activities: giving and taking.</b> This is more than just what you post and what you consume, and there are many subtleties to both. Just because you have tons of followers and friends doesn't mean that you listen to any of them, nor they listen to you. And some of us, such as myself, are more givers (in that we are focused on outbound actions) than takers (collecting information from our networks). Or vice versa. The ideal social media metric should understand both directions and make appropriate adjustments. </p>

<p><li><b>How transparent is their algorithm, really?</b> By that I mean can you understand how they get the results that you see, and does the scoring make sense to you?  Of course, one issue is having something so transparent that the service can be easily gamed or fooled. </p>

<p><li><b>Can you examine any time-series?</b> Klout has time series data but doesn't label its axes very well, which can be very annoying. The others don't have as much here as I would like. Sometimes you can understand the algorithms better if you can see how they track you over time. </p>

<p><li><b>How much does the service care if your content is original vs. copied?</b> If you most of your Tweets are retweeted content, is that as good as someone who comes up with original thoughts? The ideal metric should take this into account, and most of them have focused in this area, generally because it is easier to measure than some other things. </p>

<p><li><b>How many different social networks should be scanned to derive your total score, and how should they be weighed?</b> Klout has done a decent job of expanding their sources beyond Facebook and Twitter, but some of the other services haven't gotten much beyond these two networks yet. Obviously, the wider the reach the better the view into how you are interacting across many networks.  </p>

<p><li><b>Does the tool provide qualitative suggestions in addition to just scores?</b> The ideal metric should provide insight and suggestions for how to improve your engagement and increase your value to your chosen community. Some of them have overly general suggestions that don't really tell you what you really need to do to improve your use of social media.</p>

<p><li><b>Does your audience really, really like you?</b> Often called sentiment analysis, it isn't enough just to retweet your bon mots but approve of your point of view. There are tools that are beginning to measure this too.<br />
  </ol> <br />
<a href="http://www.readwriteweb.com/hack/twitalyzer.png"><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/assets_c/2011/10/twitalyzer-thumb-610x531-35282.png" style="" />
			</span>
</a><br />
So what alternatives to Klout are out there, and are any of them any better at capturing what you should be doing better for your social media activities? </p>

<h2>Twitter-only metrics</h2>
<ul><li><a href="http://twitterscore.info">Twitter Score</a> gives you a single score (I got a 2 out of 10, which seems somewhat low). 
<li><a href="http://twittergrader.com/">TwitterGrader </a> is another service that gives you a single simple score. I don't think the score is very meaningful: I got 97.5 out of 100, and I know I am not that good. 
<li><a href="http://tweetlevel.edelman.com/">Tweetlevel</a> was built by the Edelman PR firm and it gives some good explanations of its assessments and recommendations, although they could be more fine-grained. It tries to provide historical information but there is no way to manipulate the charts timelines. 
<li><a href="http://tweetreach.com/ ">Tweetreach</a> shows who retweeted you and some summary stats, and is useful to search across trending topic areas and not just specific Twitter accounts.
<li><a href="http://terametric.com">TeraMetric Optimizer for Twitter</a>. This gives you qualitative recommendations on what and how to Tweet. It costs $99/month and has a free trial but requires your credit card info up front.
</ul>

<h2>Facebook-only metrics</h2>
<a href="http://www.booshaka.com/">Booshaka</a> looks at top contributors to your Facebook page

<h2>Google-owned metrics</h2>
Google has been buying up lots of companies this year, and there are probably others that I missed that are in this space. Here are two important ones:
<ul><li><a href="http://socialgrapple.com/features">SocialGrapple</a> has paid accounts starting at $6 a month and going up to $125 a month and is used for really deep dives into Twitter. 
<li><a href="http://www.postrank.com/">Postrank</a>. We have <a href="http://www.readwriteweb.com/tag/postrank">written extensively about them here</a>, which is used to analyze RSS feeds. 
</ul>

<h2>Multiple site focus</h2>
<ul><li><a href="http://www.peerindex.net">PeerIndex</a> is probably the closest competitor to Klout and examines three areas: Activity, Authority, and Audience. They cover multiple sites but are slow to update their scores and don't have much in the way of time-series data.
<li><a href="http://www.Proliphiq.com">Proliphiq</a> which  <a href="http://www.readwriteweb.com/hack/2011/10/be-one-of-the-first-to-try-thi.php">we wrote about earlier in the month</a> has a wide array of measurements and explanations, trending hot topics and more. 
<li><a href="http://twitalyzer.com/">Twitalyzer</a> shows Klout and Peerindex values and costs $5 a month. 
<li><a href="http://www.howsociable.com/">How Sociable</a> is more a general search tool across many sites, and it isn't very accurate since it doesn't tie the search to a particular Twitter username. 
 <li><a href="http://EmpireAvenue.com">Empire Avenue</a> has lots of games and points for various activities, but underneath all this frilly stuff is some interesting analysis of multiple social network sites. 
</ul>
 
<h2>Sentiment Analysis tools</h2>
<ul><li>We wrote about <a href="http://Viralheat.com">Viralheat's sentiment analysis</a> for Facebook and Twitter <a href="http://www.readwriteweb.com/enterprise/2011/08/free-api-for-sentiment-analysi.php">here</a>. 
<li><a href="http://www.mblast.com/mpact">mBlast mPact</a> can monitor multiple networks and provide some sentiment analysis.    
<li>Kred.ly is still in limited beta but offers some promise in terms of looking at sentiment for Twitter initially. 
<li><a href="http://traackr.com">Traackr</a> is another sentiment analyzer and at $500 a month is one of the more expensive tools in this list. 
</ul>

<p>Really, all of these tools are somewhat flawed, and we are just beginning to see some consolidation and improvements, such as what Klout is trying to do. And certainly, Google will help here, as they have purchased two companies this year alone in this space. If any of these tools can help improve your social media methods and increase your influence, then stick with what works and what will motivate you to become a better participant in this genre. <br />
</p>
                    ]]></description>
                <link>http://readwrite.com/2011/10/28/17-alternatives-to-klout</link>
                <guid>http://readwrite.com/2011/10/28/17-alternatives-to-klout</guid>
                <category>APIs</category>
                <pubDate>Fri, 28 Oct 2011 02:30:00 -0700</pubDate>
                <author>David Strom</author>
            </item>
                    <item>
                <title><![CDATA[MySQL Leads Open Source Market Share ]]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/jelastic.png" style="" />
			</span>
Jelastic.com, the Java PaaS similar to Heroku, has compiled an interesting market share analysis of their more than 1,000 developers. Since their service is built on standard application servers and databases, their developers can choose which of four major open source databases they want to use: MySQL, Postgres, MariaDB and MongoDB. Granted, this is just one company's view of things, but given that the numbers are still interesting, and there are some differences between the choices by North American and European developers. </p>
<p>MySQL accounts for nearly half of the population to date, but MariaDB is coming on strong. <br />
<span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/2011/10/open-source-database-marketshare-oct-20112.png" style="" />
			</span>
</p>

<p>And when we look at regional differences, MySQL is stronger in Europe, but MongoDB has more concentration in North America. <br />
<span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/2011/10/open-source-database-marketshare-by-region-oct-20111.png" style="" />
			</span>
<br />
</p>
                    ]]></description>
                <link>http://readwrite.com/2011/10/21/mysql-leads-open-source-market</link>
                <guid>http://readwrite.com/2011/10/21/mysql-leads-open-source-market</guid>
                <category>Analysis</category>
                <pubDate>Fri, 21 Oct 2011 00:30:00 -0700</pubDate>
                <author>David Strom</author>
            </item>
                    <item>
                <title><![CDATA[Latest SAP Mobile Apps Show Progress for Sybase Platform on HTML5]]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/SUP%252520on%252520BB.jpg" style="" />
			</span>
Despite having been generally available for mobile systems like iOS for over two-and-a-half years now, you don't hear much about something called the Sybase Unwired Platform (SUP).  That may change soon, as a new set of mobile apps for human resources professionals, developed in conjunction with Sybase's parent company SAP, are demonstrating an emerging pathway for other developers to develop custom enterprise apps in the same vain.</p>
<p>The SUP system is designed to work with enterprise applications to generate RESTful Web services.  Those services are exposed as APIs, and are generated for use by one of the three leading mobile platforms.  There's a reason for this:  SAP wants its mobile apps to look like they belong on the platforms on which they run, so iPad apps look like iPad users expect.</p>

<p><iframe width="600" height="335" src="http://www.youtube.com/embed/FBk7MLlqMvA" frameborder="0" allowfullscreen></iframe><br />
<em>Part 3 of the video set that begins here (this is Part 1) shows the creation of a Hybrid Web Container.</em><hr /></p>

<p>"SUP allows you to deliver across multiple mobile devices and form factors - iOS, Android, and BlackBerry - and what we've done on top of this platform is provide what we call the Hybrid Web Container," explains Nick Brown, SAP's senior vice president for mobile strategies.  "In essence, it's an HTML5-compliant container with native extensions into the device that allows you to access things like camera, video, and voice (which the current HTML5 does not include).  This Hybrid Web Container runs on top of WebKit [or] Silverlight for Windows, and allows us to have a secure, encrypted conversation with a native store to our HTML5 container."</p>

<h2>The process of mobilizing</h2>

<p>The container is essentially a basic Web form with everyday controls for entering, editing, and deleting data.  Folks who've been designing on-screen forms since the days of Access (some would say these still <i>are</i> the days of Access) will be immediately familiar with this process.  The underlying mechanics of these container forms are in HTML5, Brown tells us, although you can adjust and tailor the CSS to suit your company's style or the general style of your mobile platform.</p>

<p>Sybase calls the act of making its enterprise databases available on mobile devices "mobilizing;" you do this using the SUP development environment.  Dragging and dropping table names from the database list into a diagram creates what SUP calls a <i>mobile business object</i> (MBO).  That object is used as a kind of prototype for the SUP server to determine how data transactions are to work between the server and mobile clients.</p>

<p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/111010%252520Sybase%252520SUP.png" style="" />
			</span>
</p>

<p>"Let's take something simple like leave request approval - I want to mobilize that," Brown says.  In the SUP environment, you define how you generally want forms to appear on your target platform of choice.  Then you identify the data that's relevant to the decision making process - for leave request approval, that would include who's making the request, for how long, when, and how much leave time remains.  That's pretty obvious, but it would also be helpful if the app could report if anyone else has requested the same holiday.</p>

<p>SUP takes that subset of the data model, and then performs <i>code generation</i>.  The code that's generated is specific to individual mobile platforms, either for HTML5 or native apps.</p>

<center><object width="432" height="268"><param name="allowFullScreen" value="true"></param><param name="sapVid" value="http://sap-tv.com/stockfootage/flash/main.swf?a=7302&b=4&l=1"></param><embed allowfullscreen="true" src="http://sap-tv.com/stockfootage/flash/main.swf?a=7302&b=4&l=1" type="application/x-shockwave-flash" width="432" height="268"></embed></object></center>

<h2>Productivity apps from SAP</h2>

<p>The latest mobile productivity apps from SAP itself that use the SUP platform, announced last week for release this quarter, include SAP Manager Insight (shown above), which gives HR managers direct access to key performance indicators (KPIs) for employees.  "Productivity to us means we're providing something to an employee user of a company that helps them either perform a role within their responsibility in a corporation, or generally initiate or move a process forward that's part of the overall back office abilities," says Brown.</p>

<p>Another example is Employee Lookup, which gives a mobile user access to not just the general data about contacts, but also the structure of the organization they work for, in a map that can be traversed by finger.  "Other things would be simple request creations, like a leave request to go on holiday; capturing and recording my time; and creating expense reports," SAP's Brown adds.  "A lot of these users may be non-traditionally targeted users for corporations, who were previously supported via a paper process or a Web portal.  Now, with BYOD (bring-your-own-device) policies at work, we see a real opportunity for our customers - even within SAP - to enable people to access this type of functionality in business processes more easily.  A much broader audience can be addressed through mobility."</p>

<p>Brown offered this illustration:  Suppose a user is fairly high up in an organization, and manages other managers.  She wants to obtain metrics across the entire management team, including employee retention rates and satisfaction rates.  A tablet-based app could access this user in ways that Web portals couldn't.  "So I can look for issues, look for challenges, find managers who need coaching or removal, or managers I want to exemplify in the organization."</p>

<p>One of the problems SAP saw with the Web portal approach is that managers tended to use the goal-setting procedures for those portals perhaps twice per year at best.  Performance tracking needed to run six months or more, because that was the period between average uses.  And in those organizations, managers didn't institute rewards often enough to keep their employees happy.</p>

<p>So the SUP platform has SAP designate a subset of its Human Capital Management (HCM) functionality, and use that as a prototype to create a mobile interface.  "You take that data model, that subset of functionality, and you put it on SUP, and then SUP compiles those databases and those workflows to the targeted devices, so you can just focus on UI - either HTML5, or native UI functionality on the device" the SAP VP says.</p>

<p>"Any Web developer who understands HTML as their primary development platform can take our HTML5 applications, or their portal applications," Brown continues, "and leverage this container to deliver customized [functionality] with their labels, their look-and-feel, as well as support the look-and-feel you would expect on the devices."</p>
                    ]]></description>
                <link>http://readwrite.com/2011/10/10/latest-sap-mobile-apps-show-pr</link>
                <guid>http://readwrite.com/2011/10/10/latest-sap-mobile-apps-show-pr</guid>
                <category>APIs</category>
                <pubDate>Mon, 10 Oct 2011 09:00:43 -0700</pubDate>
                <author>Scott M. Fulton</author>
            </item>
                    <item>
                <title><![CDATA[Dart is to JavaScript as C# is to C++]]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/dart-logo.jpg" style="" />
			</span>
Given the background of Lars Bak, the Google engineer whose V8 JavaScript interpreter upended Firefox's claim on speed, it was reasonable to suspect Google's new Web development language might look a lot like Smalltalk.  But that might have taken the Web in a strange and different direction.  Today, on the day of <a href="http://www.readwriteweb.com/hack/2011/09/google-confirms-hints-dropped.php">a Web developers' conference in Denmark</a>, Google and members of the Chromium open source development team raised the curtain on Dart, the company's bid for a new and somewhat more structured approach to Web programming.</p>

<p>Making Dart work will require a new virtual machine, which puts it on a competitive plane with Java, Adobe Flash, and Microsoft Silverlight.  But architecturally speaking, Dart will be more dependent on the browser, at least for now.<br />
</p>
<p>Google's plan is to implement the Dart virtual machine as a kind of supplement to the browser's existing JavaScript engine.  In other words, it will digest Dart code and produce JavaScript.  Google is being careful not to mention an eventuality where Dart is embedded in all browsers, though <a href="http://googlecode.blogspot.com/2011/10/dart-language-for-structured-web.html">in a blog post this morning</a>, Bak did mention that with respect to integrating the Dart VM in Google Chrome, "we plan to explore this option."</p>

<h2>At last, class</h2>

<p>The reason for Dart's existence appears to be to improve upon JavaScript, whose viability as the functional backbone for distributed applications in the "open Web" seems shakier as time goes on.  Compared to more structured, object-oriented languages like C# and Java, JavaScript often carries with it a lot of duct tape and baling wire.  And compared to more clever dynamic languages like Python, Ruby, and D, JavaScript is more verbose, and doesn't get to the point quickly enough.</p>

<p>As <a href="http://www.dartlang.org/">the first round of Dart tutorials</a> reveals, Bak and his team of architects started from a JavaScript base and worked from there, adding some critical Java elements and improving the underlying assumptions of the interpreter to enable brevity.  True class structures, using the <code>class</code> keyword familiar to Java developers, is the key addition.</p>

<p>With JavaScript, there are a handful of ways to get something object-ish, all of which use the keyword <code>function</code>.  You can declare a function which happens to have properties, and whose function is embedded therein as a kind of method.  The problem with that is that the method itself doesn't get re-used but rather <i>recreated</i> each time, so the alternative is to add the method back to the function's <code>prototype</code> as a kind of bolt-on.  Alternately, you can declare a kind of object using the all-purpose instantiator <code>var</code>, which may use literals to define internal structures.  You then assign a <code>function</code> as a method for one of those literals as though it were a variable value.  Or, you could declare a <code>var</code> and assign the whole thing the result of a <code>function</code>, assuming that function were to be the only component of the object.</p>

<p>None of these methods is particularly elegant.  A great deal of the work performed by the latest generation of JavaScript engines such as V8 and Mozilla's TraceMonkey is actually made up of condensing the "crap code" that inelegant instructions produce, into something less entangled and more precise.</p>

<p>So theoretically, the performance hit incurred by a browser running the Dart VM may be compensated for, by way of code that's easier for the JS interpreter to parse.  Theoretically.</p>

<p>Dart reintroduces <code>class</code> in a way that will be familiar to most Java programmers.  A few tweaks make the definitions more concise; for example, the reflexive pointer <code>this</code> may be used <i>inside</i> the declarative for a member method (as in <code>Ball.throw (this.distance);</code> instead of <code>Ball.throw (distance); this.distance = distance;</code>).  And <code>interface</code> is also supported for creating member properties and methods that may be common to more than one class; a class <code>implements</code> an interface just as you'd expect.</p>

<h2>Still unknown: event triggers</h2>

<p> One dramatic structural change to which some JS developers might object concerns <i>context</i>.  JavaScript functions are often pasted throughout the page, and although somewhere within it is supposed to be a <code>main()</code> function, most functions are triggered by browser events, including <code>window.onload</code>.  With Dart, every <code>&lt;script&gt;</code> element is a self-contained context.  Class members and variables are considered public by default (there's no "public" keyword in Dart), although "public" for Dart is not a scope that encompasses the entire page - just the script.</p>

<p>"In JavaScript, declarations across multiple script tags are combined together in the same namespace," <a href="http://www.dartlang.org/articles/embedding-in-html/">write Sigmund Cherem and Vijay Menon this morning</a>.  "In Dart, code in one script tag cannot directly access code defined in another.  If a script wishes to load code from a different URL, it must do so via <code>#import</code>.  Each script tag must define its own  <code>main()</code> entry point in order to run."</p>

<p>The <code>main()</code> function <i>is</i> the event handler for the <code>DOMContentLoaded</code> event.  Otherwise, we're not seeing from the early documentation any indication of how Dart code responds to browser events the way JavaScript code does.  If Dart makes no changes at all, then it's foreseeable that, while nothing runs until the DOM is loaded, the <code>main()</code> function could be written as empty while the other functions respond to events - which is about as inelegant as most everything else in JavaScript.</p>

<p>But conceivably, this scheme could facilitate a fairly simple and straightforward approach to multithreading:  A page could have multiple scripts, and the VM could run them in parallel... again, theoretically, according to the early documentation.  Browsers don't have multithreading interpreters yet, and Dart is not described thus far as something that will include a JS interpreter, so it's difficult to see how Dart would invoke a feature that doesn't actually exist.</p>

<p>Nevertheless, from an architectural standpoint, there's a lot to like about Dart, and there's reason to believe its wealth of opportunity will be spread among multiple browsers, including even Internet Explorer.  What remains to be seen is how Dart will impact browser-free HTML5 apps, or "native apps," if at all.  We'll be monitoring the news from the developers' conferences as well as from Google itself this week.</p>
                    ]]></description>
                <link>http://readwrite.com/2011/10/10/dart-is-to-javascript-as-c-is</link>
                <guid>http://readwrite.com/2011/10/10/dart-is-to-javascript-as-c-is</guid>
                <category>Tools</category>
                <pubDate>Mon, 10 Oct 2011 02:04:54 -0700</pubDate>
                <author>Scott M. Fulton</author>
            </item>
                    <item>
                <title><![CDATA[Oracle Pushes Its Idea of JavaFX, Replaces Script with XML]]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/JavaFX%252520logo%252520%252528150%252520px%252529.jpg" style="" />
			</span>
Is HTML5 a common platform for rich Internet applications, or a common toolkit for building rich applications on varying platforms?  Oracle's response to that question came yesterday, and in typical Larry Ellison fashion, it essentially boiled down to, "We don't give a rip."</p>

<p>When <a href="http://betanews.com/2008/12/10/sun-s-javafx-is-it-java-javascript-or-something-new/">Sun Microsystems produced the first go-round</a> of JavaFX in December 2008, its aim was to build and promote an entirely new declarative language - not Java, not JavaScript - for describing the front-end UI of a distributed app.  What developers needed at that time was a simpler, programmatic way to approach the contents of UIs.  CSS looked under-developed, and although Microsoft's approach (XAML) was certainly thorough, it lacked the more conservative, procedural approach that veteran programmers were accustomed to.</p>
<p>That was then.  Amid a completely different landscape, Oracle yesterday has remade Sun's JavaFX distributed apps platform into a version 2.0 with fundamental differences from its predecessor.  The most prominent addition is a new Oracle language called FXML that's very different from JavaFX Script in its handling of UI elements, but whose distinctions against XAML seem almost artificial.</p>

<p>"One of the advantages of FXML is that it is based on XML and is familiar to most developers, especially Web developers and developers using other RIA platforms," reads <a href="http://download.oracle.com/javafx/2.0/fxml_get_started/jfxpub-fxml_get_started.htm">new JavaFX 2.0 documentation finalized yesterday</a>.  "Another advantage is that FXML is not a compiled language; you do not need to recompile the code to see the changes you make.  A third advantage is that FXML makes it easy to see the structure of your application's scene graph.  This, in turn, makes it easier to collaborate on user interfaces among the members of your development team."</p>

<h2>The notable and notational differences</h2>

<p>JavaFX, it's very important to note, is not Java.  While JavaFX Script maintained the straightforwardness of Java, it also maintained the same context.  That meant recompiling the app - or at least, <a href="http://kenai.com/projects/openjfx-compiler">recompiling the script</a> - whenever the front end required changing.  In version 2.0, Oracle has cast out the declarative-like portion of JavaFX Script (which lives on in <a href="http://code.google.com/p/visage/">an open source project called Visage</a>), replacing it with FXML and adapting the remaining elements of JavaFX to load that FXML as separate resources.</p>

<p>The difference in methods between JavaFX Script (Visage) and FXML is the difference between <i>procedural</i> and <i>declarative</i> languages.  A procedural language gives instructions on how to build something, as if they were being told to someone else - or rather, as if a professor were giving instructions to his math students.  "Assume there's an object in space, and we don't know what it is yet, but let's call it 'Frank,'" says the procedural language.  "Let's instantiate Frank as a <b>new</b> member of the 'Box' class.  Within that class is another new object whose class is inherited, called 'Button.'"  By stark contrast, a declarative language states where things are as though they already existed.  "Beginning of box," it starts, without having to name it "Frank" or anything else first.  "Inside the box, beginning of button.  Button says, 'Send.'  Reacts to being pressed.  End of button."</p>

<h2>Now with one less letter!</h2>

<p>JavaFX remains a declarative language, and its programs remain constructed using IDEs like NetBeans, which are also used for Java apps.  In fact, you build Java apps that utilize JavaFX front ends using the same environment (more on that later).  But the FXML-based front end for JavaFX 2.0 apps is described in a separate file, and referenced in the JavaFX code using a handful of interwoven methods.  The <code>.getResource</code> method points to the main FXML layout file, and the <code>.getBundle</code> method points to a separate properties file that may contain variations on the main theme.  The <code>.getClass</code> method produces the JavaFX 2.0 equivalent of the front end (the "stage," in Sun's original parlance) had it been written directly into the script.  All three methods are supplied as arguments for the <code>.load</code> method that instantiates an object from external resources.</p>

<p>The syntax of an FXML file follows the "begins-here/ends-here" logic that typifies XML.  Here's an example from Oracle's documentation, which creates an on-screen box that other objects are designed to stack on top of:</p>

<p><code>&lt;StackPane&gt;<br />
            &lt;children&gt;    <br />
                &lt;ImageView&gt;<br />
                   &lt;image&gt;<br />
                        &lt;Image url="@fx_boxback.jpg"/&gt;<br />
                   &lt;/image&gt;<br />
                &lt;/ImageView&gt;<br />
                &lt;Label text="%loginExample" style="-fx-font: NORMAL 20 Tahoma;"/&gt;<br />
            &lt;/children&gt;<br />
        &lt;/StackPane&gt;</code></p>

<p>It's constructions like this one that should have XAML veterans raising an eyebrow.  For Silverlight, the class of on-screen box with essentially the same purpose is <code>StackPanel</code>, with an "<code>l</code>".  What Silverlight calls a "canvas," JavaFX calls a "stage."  And there are plenty more semantics-only differences where that came from.</p>

<p>Another new JavaFX 2.0 feature - which we're told remains forthcoming - is the ability to instantiate JavaFX apps in their entirety (rather than load them separately) <i>through Java</i>, by way of a new API.</p>
                    ]]></description>
                <link>http://readwrite.com/2011/10/05/oracle-pushes-its-idea-of-java</link>
                <guid>http://readwrite.com/2011/10/05/oracle-pushes-its-idea-of-java</guid>
                <category>Tools</category>
                <pubDate>Wed, 05 Oct 2011 01:08:10 -0700</pubDate>
                <author>Scott M. Fulton</author>
            </item>
                    <item>
                <title><![CDATA[Sencha Likes IE10: A Native Apps Library for JS is Coming]]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/Sencha%252520%252528150%252520sq%252529.png" style="" />
			</span>
The big question among Web developers has been whether browser and platform makers are simply leveraging HTML5 as an open-ended means to a closed end: specifically, as a standard language for producing native apps for multiple platforms, as opposed to a single, cross-platform app that plays for all.  That question may very soon be rendered moot if and when the leading producers of JavaScript libraries render native-looking content using cross-platform code.</p>

<p>That day may be drawing very close.  Last week, Michael Mullany, the CEO of Sencha - whose Ext JS library renders spectacular content on multiple browsers regardless of platform - gave an early nod of approval to Internet Explorer 10, the HTML5 rendering engine for Microsoft's forthcoming Windows 8.<br />
</p>
<p>"Simply put, (and with the caveat that we were running on the notably overpowered developer preview hardware) the IE10 HTML5 experience is one of the best we've seen on any platform to date.  After a decade of Web neglect, Microsoft is back with a vengeance," Mullany wrote for his company blog.  Listing the various HTML5 components IE10 will support, he added, "Remarkably, particularly for developers trained to look out for Microsoft platform tie-ins, there are none on this list.  Microsoft simply implemented the draft standards with no extensions or gotchas."</p>

<p>At the forthcoming <a href="http://www.sencha.com/company/events/senchacon-2011/">SenchaCon conference in Austin, Texas</a> in late October, Sencha is expected to unveil (or have already unveiled) the first public beta of its <a href="http://www.readwriteweb.com/mobile/2011/09/sencha-updates-html5-framework.php">Sencha Touch 2 JavaScript library</a>.  Its purpose will be to present a normalized set of tablet-oriented functions, enabling the same apps to play on iOS and Android platforms.  It's a touch-sensitive version of Ext JS, which normalizes the processes of event handling and layouts, and fills in some of the gaps between what HTML5 is expected to support and what these platforms actually do support.</p>

<p>That public beta was expected to go live sometime this week, but was postponed.  We've known for some time Sencha is working toward Windows Phone 7 support.  Could the development team be planning an early experimental round of support for the Windows 8 Developers' Preview as well, and could that be behind the delay?</p>

<p>RWW put that question to Sencha's senior director for product management, Aditya Bansod, who gave us this response:  "We're excited about Microsoft's focus on HTML5 and touch-based interfaces.  We'll be adding support for Windows 8 in the future as a part of our roadmap.  In the nearer term, we'll be adding support for Windows Phone 7 in the Sencha Touch 2.x family of products, and then Windows 8 at an appropriate time in the future."</p>

<p>Bansod's careful distinction between version 2.x and Windows 8 support points to the likelihood of Windows 8 being supported in version 3.  Since Touch 2 also promises native app packaging - the ability for a cross-platform app to be distributed on native app stores like iTunes App Store and Android Market - outright Windows 8 support will have to wait for Microsoft to construct both the operations and the polices around its Windows 8 distribution outlet, currently called just "Store."</p>

<p>In any event, the probability is now great that a plug-in-free JavaScript library will enable a class of mobile apps that can run on multiple mobile platforms as native apps.</p>
                    ]]></description>
                <link>http://readwrite.com/2011/09/29/sencha-likes-ie10-a-native-app</link>
                <guid>http://readwrite.com/2011/09/29/sencha-likes-ie10-a-native-app</guid>
                <category>Tools</category>
                <pubDate>Thu, 29 Sep 2011 05:16:58 -0700</pubDate>
                <author>Scott M. Fulton</author>
            </item>
                    <item>
                <title><![CDATA[A Look at Phabricator: Facebook's Web-Based Open Source Code Collaboration Tool]]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/phabricator.jpg" style="" />
			</span>
It's been out for a while, but hasn't gotten a lot of attention. Facebook <a href="http://phabricator.org/">released Phabricator</a> earlier this summer, an open source collaboration tool for development teams. It's an early release, but already in use by more than 500 engineers at Facebook for normal review, development and sharing of code.</p>

<p>Development of Phabricator is spearheaded by Facebook's Evan Priestley and is being done on (where else?) <a href="http://phabricator.org/">the Phabricator.org</a> Web site.</p>
<h2>What is Phabricator?</h2>

<p>Phabricator is Facebook's in-house suite of Web applications for its engineers to write, review and share source code. It includes workflow tools, utilities and more.</p>

<p>Actually, Phabricator does go beyond the Web with a set of command-line tools called <a href="http://www.phabricator.com/docs/phabricator/article/Arcanist_User_Guide.html">Arcanist</a>. Developers can use it to run unit tests, merge changes, check for syntax errors in code and even extend Arcanist to add new commands. </p>

<p>Some of the noteworthy components in Phabricator include Maniphest, Herald and Diffusion. Maniphest is a take on bug tracking that might be a bit more user friendly than entrenched open source tools like Bugzilla. <a href="http://www.phabricator.com/docs/phabricator/article/Herald_User_Guide.html">Herald</a> is a tool that allows developers to create filters to notify them when objects are created or updated. For example, if you want to be notified of revisions even if you're not on the CC list. Diffusion is Phabricator's repository browser for exploring Git and SVN repositories, and it may be adding Mercurial support in the future. </p>

<p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/phabricator-tasks-1.jpg" style="" />
			</span>
</p>

<p>One thing that's interesting, however, is that Phabricator has no real-time chat features at all. Instead, developers are directed to IRC to discuss issues with Phabricator.</p>

<p>Phabricator is self-hosting, so if you want to jump into Phabricator development you can just log into Phabricator.org with a GitHub or Facebook account. This also lets interested developers get a look at Phabricator without actually having to install it themselves. But if you really want to dig in and host your own, <a href="https://github.com/facebook/phabricator">it's on GitHub</a> now. It is in an early release state, however. Phabricator is under the Apache 2.0 license, so companies should be able to use it for nearly any project without much worry over licensing issues. </p>

<p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/changes-phabricator.jpg" style="" />
			</span>
</p>

<h2>The Road Ahead</h2>

<p>The big question on my mind about Phabricator is <em>where is it going?</em> The <a href="http://www.phabricator.com/docs/phabricator/article/Roadmap_and_Status.html">roadmap and status</a> document on Phabricator.org tries to answer that. According to the roadmap, the current focus is feature buildout. This includes things like adding support for Mercurial, and improving Maniphest, Phriction and Projects. </p>

<p>Farther out, there's consideration for building importers to grab information out of other bug trackers and code review tools. While it could make adoption of Phabricator easier, it also could be "a massive timesuck." Why is lowering the barrier to adoption easier? There's some consideration of Phabricator's mission in the roadmap &ndash; and whether Facebook might eventually want to develop a revenue model around it. There's not a long-term vision for Phabricator yet, beyond improving the tool, but don't be surprised if you start hearing a lot more about it as it matures.<br />
</p>
                    ]]></description>
                <link>http://readwrite.com/2011/09/28/a-look-at-phabricator-facebook</link>
                <guid>http://readwrite.com/2011/09/28/a-look-at-phabricator-facebook</guid>
                <category>Tools</category>
                <pubDate>Wed, 28 Sep 2011 02:00:00 -0700</pubDate>
                <author>Joe Brockmeier</author>
            </item>
                    <item>
                <title><![CDATA[Microsoft Makes the Case for More jQuery, Fewer Dependencies]]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/images/jquery_logo_1210.jpg" style="" />
			</span>
In a Best Practices online advisory to browser-based Web site developers published last week, Microsoft paints a compelling picture for favoring JavaScript libraries - especially jQuery - for rendering client-side UI, over the use of plug-ins.  If Microsoft is to score a blow against Adobe Flash, it has to strike at plug-ins' very reason for existence, arguing that jQuery is faster, easier, cheaper, and prettier.</p>

<p>Microsoft's patterns and practices team had been advocating the use of its Silverlight plug-in for composite applications since 2008, with a project it calls Prism.  That project remains ongoing, though the emphasis in recent months has shifted to Project Silk, which focuses on what the company describes as "building cross-browser Web applications with a focus on client-side interactivity.  These applications take advantage of the latest Web standards, including HTML5, CSS3 and ECMAScript 5, along with modern Web technologies such as jQuery, Windows Internet Explorer 9, and ASP.NET MVC3."</p>
<p>Microsoft's support for jQuery <a href="http://betanews.com/2008/09/30/new-microsoft-support-for-jquery-makes-part-of-its-platform-open-source/">began three years ago, almost to the day</a>, certainly in earnest though overlapping considerably with the company's Silverlight plug-in project.  While Microsoft isn't abandoning Silverlight outright (it touted the forthcoming version 5 just last April), <a href="http://www.readwriteweb.com/hack/2011/09/build-2011-microsofts-scott-gu.php">it is certainly de-emphasizing its own plug-in</a>.</p>

<p>Last summer in Microsoft's forums, the company has responded to developers' inquiries about the relative precedence of Silk over Prism by assuring Silverlight developers that there remains a place for Silverlight in line-of-business applications - programs deployed in-house for employees and knowledge workers, rather than public-facing Web sites.  But that was before the Build conference two weeks ago, when the spotlight for Silverlight was pretty much turned off.</p>

<p>The two project teams share many of the same members, and thus are not in competition with one another.  But in recent days, the two projects have been sharing more than common members, but <i>language</i> as well.  For example, <a href="http://msdn.microsoft.com/en-us/library/ff648465.aspx">a November 2010 description of the "composite application"</a> in the context of Prism, which does involve Silverlight, reads as follows:  "Using design patterns that embody important architectural design principles, such as separation of concerns and loose coupling, Prism helps you to design and build applications using loosely coupled components that can evolve independently but which can be easily and seamlessly integrated into the overall application.  These types of applications are known as composite applications."</p>

<p>This type of modularization has come to define the composite application in much of Microsoft's training.  But now, take a close look at this sample from the latest "drop" of the Silk developers' model app:  "Within a browser-based application, a module can add or remove user interface (UI) elements, add or enhance functionality (or behavior) already available in the UI, or enhance the user experience (UX).  Modules can be built independently of one another but still communicate with each other in a loosely coupled fashion.  Modular applications can make it easier for you to develop, test, deploy, and extend your application.  Modular designs also have well-understood benefits that help you unit test your applications and make them easier to maintain over time."</p>

<p>The Silk project team is suggesting that many of the same goals previously attributed to Prism are attainable using JavaScript and libraries such as jQuery, through Silk best practices.  One independent developer who definitely perceives this trend is Poland-based <a href="http://bartekszafko.pl/2011/07/19/project-silk-subjective-review-part-1/">Bartek Szafko, who wrote last July</a>, "When you look side by side on new Win8 shots and silk they look quite similar.  I believe Silk guidance will be to Windows 8 just like Prism was to WPF and Silverlight."</p>

<p><iframe style="height:288px;width:512px" src="http://channel9.msdn.com/posts/Project-Silk-Mileage-Stats-Application/player?w=512&h=288" frameBorder="0" scrolling="no" ></iframe></p>

<p>The September drop of Silk features the latest update to the project team's model app, originally called "Mileage Stats" but which has evolved into an interactive (or, judging from this video, <i>overactive</i>) monitor of all monetary investments in one's vehicle.  The idea here is to show how a modular app can generate statistics and update only the statistics that have changed, or only the changes the user has directly requested, without reloading the entire page.</p>

<center><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/110926%252520Mileage%252520Stats%252520app%252520test.png" style="" />
			</span>
</center>

<p>Silk documentation refers to a certain word you'll be hearing a lot from Microsoft in the coming years.  Referring to the division of on-screen components into widgets as shown in the above figure, the documentation reads:  "Mileage Stats uses the <b>tile</b> widget to animate the position of all boxes horizontally and vertically, because both the vehicle boxes and the <b>Add Vehicle</b> box need that behavior.  The vehicle widget expands and collapses the vehicle boxes, because only they need that behavior."<br />
Modularization in the Silk model is accomplished through a concept that the original HTML frame elements tried to achieve, but couldn't: subdividing the screen into regions that can not only be addressed independently, but shifted and resized when necessary without disturbing their contents.</p>

<p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/110926%252520jQuery%252520widget%252520screenshot.png" style="" />
			</span>
</p>

<p>A simpler example of modularization for cross-browser apps from the Silk project (which may be more familiar to jQuery veterans), is this example of a jQuery function that's wrapped around a set of elements bunched together from HTML.  In this case, those elements are keywords from a paragraph tagged with <code>&lt;SPAN&gt;</code>, with each element given the name <code>data-tag</code>.  A function, triggered whenever the mouse points to one of these tagged spans, looks up the contents of the span on the Delicious Web site, and posts the textual results of that search in an infobox.  The jQuery function which does the wrapping appears below:</p>

<p><code> (function ($) {<br />
  $('body').infobox({<br />
    dataUrl: 'http://feeds.delicious.com/v2/json/popular/'<br />
  });<br />
  $('span[data-tag]').tagger();<br />
} (jQuery));</code></p>

<p>The function attaches the infobox directly to the span.  Although that infobox has no instructions for its own appearance in this function, it's given a place in the DOM by the creation function for the infobox element, which in jQuery is called <code>_create</code>.  The principle demonstrated here is <i>dynamic tagging</i>.  Here, not only can the destinations of <i>old</i> hyperlinks be updated and made more relevant, but the events that are generated as a result of pointing to the tagged span, and the appearance of the box or other gadget displayed on mouse over, are generated entirely on the fly.</p>

<p>This sort of thing has been happening with jQuery-endowed Web pages for the last handful of years, though perhaps not all Web users are appreciating the breadth of the architectural changes embodied here.  If you're wondering, what Microsoft technologies does Silk specifically promote, the answer is server-side ASP.NET MVC, whose latest versions make liberal use of jQuery.  The Silk philosophy is a relatively new one for Microsoft: an ideal that the purpose for promoting Microsoft-brand technologies on the server side does not have to be the subsequent promotion of Microsoft technology on the client side.</p>
                    ]]></description>
                <link>http://readwrite.com/2011/09/26/microsoft-makes-the-case-for-m</link>
                <guid>http://readwrite.com/2011/09/26/microsoft-makes-the-case-for-m</guid>
                <category>Tools</category>
                <pubDate>Mon, 26 Sep 2011 05:06:43 -0700</pubDate>
                <author>Scott M. Fulton</author>
            </item>
                    <item>
                <title><![CDATA[Armed with a Win8 Tablet, YoYo Games Marches Toward HTML5]]></title>
                <description><![CDATA[
                                        <p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/110922%252520YoYo%252520Games%25252003.jpg" style="" />
			</span>
</p>

<p>Last week in Anaheim, in amongst the crowd of developers at Microsoft's Build 2011 conference assimilating the news about Windows 8, was a team from a London, U.K.-based company called YoYo Games.  In 2000, that company released an interesting entry-level game development and distribution platform called, quite simply, GameMaker.  Following in the hallowed footsteps of the great computer game platforms of the 1980s and '90s, it introduced a stand-alone interpreter whose language borrowed a bit from Pascal.</p>
<p>But in the modern era, stand-alone interpreters mean plug-ins; and the handwriting on the wall from Build 2011 was that <a href="http://www.readwriteweb.com/hack/2011/09/build-2011-what-is-winrt-and-i.php">plug-ins like Silverlight are yesterday's news</a>.</p>

<p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/110922%252520YoYo%252520Games%25252004.jpg" style="" />
			</span>
</p>

<p>Inspired by what they've seen, YoYo is moving full-ahead today with a public commercial release of a beta of a new version of the GameMaker platform that makes the full transition to HTML5.  There's no plug-ins and no interpreter or managed code; instead, there's JavaScript.  And the games this IDE produces runs in everyday Web browsers without embellishment... and perhaps most importantly, without Flash.</p>

<p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/110922%252520YoYo%252520Games%25252001.jpg" style="" />
			</span>
</p>

<p>To a limited extent, it's a move away from the platform that put YoYo in business.  But in <a href="http://www.pocketgamer.biz/r/PG.Biz/YoYo+Games+news/feature.asp?c=33636">an interview for PocketGamer.biz published today</a>, YoYo CEO Sandy Duncan said it was time to take advantage of what he perceives as a decline in the popularity of Flash-based games.  With competitors such as Zynga having already made fortunes from the Facebook Platform (YoYo has a presence there too with enticing titles such as "They Need to Be Fed"), Duncan said HTML5 could give games that had already been developed for Flash "a new lease on life."</p>

<p>"I expect we'll see a resurgence of existing browser game Web sites such as Miniclip as well as the emergence of new 'stores' which will deliver HTML5 content," Duncan told PocketGamer.biz.  "Facebook is the company to watch in this area; we believe it can rival any platform.  However, it needs to get its act together providing a much better consumer and developer experience by supporting discovery in a more imaginative way."</p>

<p>By "discovery," Duncan means the ability for the platform on which apps and games are built, to reveal their wares to potential users in an interesting manner.  Up until very recently, HTML5's ability to provide discovery was perceived as poor.  Game portal sites such as Miniclip remained devoted to Flash, while HTML5 counterparts struggled for recognition on app stores where users have to peruse multiple tiers of menus to find anything at all.</p>

<p><span class="embedded-Media-image img-caption-c">
				<img src="http://readwrite.com/files/files/files/hack/110922%252520YoYo%252520Games%25252005.jpg" style="" />
			</span>
</p>

<p>But Microsoft's prototype of the Windows 8 Start Screen has changed that analysis, and quite quickly.  However you perceive its implementation (I'm already on record as believing it can and should be reworked), the Start Screen's bright, bold tiles are giving HTML5 developers new cause for hope.  Metro tiles can update their own content based on fresh feeds from the Web.  Imagine a big tile that scrolls itself to reveal new HTML5 games in the queue.  They wouldn't necessarily have to be directly installed on the Start Screen to be seen - or rather, to be <i>discovered</i> by users.</p>

<p>Beta testing for <a href="http://www.yoyogames.com/gamemaker/html5">GameMaker:HTML5</a> is officially closed to new applicants now, although the beta platform is available from YoYo Games for a discounted price of $99.</p>
                    ]]></description>
                <link>http://readwrite.com/2011/09/22/armed-with-a-win8-tablet-yoyo</link>
                <guid>http://readwrite.com/2011/09/22/armed-with-a-win8-tablet-yoyo</guid>
                <category>News</category>
                <pubDate>Thu, 22 Sep 2011 09:30:00 -0700</pubDate>
                <author>Scott M. Fulton</author>
            </item>
            </channel>
</rss>

