<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet href="http://duncan-cragg.org/css/atom.css" type="text/css" ?>
<!-- Copyright (c) 2006 Duncan Cragg -->

<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
    <id>http://duncan-cragg.org/blog/</id>
    <title>What Not How</title>
    <subtitle>Duncan Cragg on Declarative Architectures</subtitle>
    <author><name>Duncan Cragg</name></author>
    <logo>/favicon.gif</logo>
    <icon>/favicon.ico</icon>
    <rights>All content including photos and images by Duncan Cragg. Copyright (c) Duncan Cragg, your rights preserved: see /CXL.html</rights>
    <generator uri="http://www.djangoproject.com">A Django Production.</generator>
    <link rel="alternate" type="text/html" href="http://duncan-cragg.org/blog/" title="What Not How" />
    <link rel="self" type="application/atom+xml" href="http://duncan-cragg.org/blog/atom/" />

    <updated>2013-01-16T17:09:00Z</updated>


    <entry>
        <id>http://duncan-cragg.org/blog/post/cyrus-2013/</id>
        <title>Cyrus in 2013</title>
        <published>2013-01-16T17:09:00Z</published>
        
        <updated>2013-01-16T17:09:00Z</updated>
        
        <link rel="alternate" type="text/html" href="http://duncan-cragg.org/blog/post/cyrus-2013/" title="Cyrus in 2013" />
        
        <category term="cyberspace" />
        
        <category term="architecture" />
        
        <category term="declarative" />
        
        <category term="json" />
        
        <category term="forest" />
        
        <category term="netmash" />
        
        <category term="cyrus" />
        
        <category term="object-network" />
        
        <category term="fjord" />
        
        <summary type="xhtml">
            <div xmlns="http://www.w3.org/1999/xhtml">

<p>

Well <a href="http://duncan-cragg.org/blog/post/empowering-the-world/">that worked out pretty well</a>: 
I have a 3D environment on Android programmed in a simple but powerful declarative
language which I&#39;ve called &quot;Cyrus&quot;.
</p><p>
<a href="http://the-cyrus.net">Cyrus</a> basically uses JSON all the way through: from user
interface and scene graph to rewrite rules, on the wire and on disk. The Cyrus
programming language is essentially JSON itself, as JSON rewrite rules. I&#39;ve reduced the
noise of JSON in Cyrus by taking out redundant double-quotes, square brackets and
commas. It looks very nice to me.
 &#160; ...
</p>

            </div>
        </summary>
        <content type="xhtml" xml:space="preserve">
            <div xmlns="http://www.w3.org/1999/xhtml">

<p>
</p><div class="summary"><p>
Well <a href="http://duncan-cragg.org/blog/post/empowering-the-world/">that worked out pretty well</a>: 
I have a 3D environment on Android programmed in a simple but powerful declarative
language which I&#39;ve called &quot;Cyrus&quot;.
</p><p>
<a href="http://the-cyrus.net">Cyrus</a> basically uses JSON all the way through: from user
interface and scene graph to rewrite rules, on the wire and on disk. The Cyrus
programming language is essentially JSON itself, as JSON rewrite rules. I&#39;ve reduced the
noise of JSON in Cyrus by taking out redundant double-quotes, square brackets and
commas. It looks very nice to me.
</p></div><p>
<b>The Name Cyrus</b>
</p><p>
Now, probably to everyone&#39;s confusion and annoyance, I&#39;m always thinking of multiple
names for the many things I create around the core principles I&#39;m evangelising. And
then changing them all the time!
</p><p>
So I decided to choose a single new name, <a href="http://the-cyrus.net">&quot;Cyrus&quot;</a>, for <i>everything</i>,
and will endeavour to stick with it this time... I got the name from playing
around with the letters of &#39;cyberspace rules&#39;, but will probably claim it stands for
&quot;cyberspace rules updating state&quot; or something, because that sounds more impressive.
</p><p>
One advantage of this name is that both <a href="http://en.wikipedia.org/wiki/Cyrus_the_Great">academics</a> 
and <a href="http://en.wikipedia.org/wiki/Miley_Cyrus">regular folk</a> should be able to spell it!
</p><p>
So now <a href="http://duncan-cragg.org/blog/tag/netmash/">NetMash</a> and 
<a href="http://duncan-cragg.org/blog/tag/fjord/">Fjord</a> 
are the &quot;Cyrus app&quot; and the &quot;Cyrus programming language&quot; respectively; the 
<a href="http://the-object.net/">Object Network</a> is now just the Cyrus network - a Web of JSON.
</p><p>
Once I have <a href="http://www.ietf.org/tao.html">rough consensus and running code</a>, it&#39;ll all
be exchanging data via the Cyrus Media Type - probably &quot;text/cyrus&quot; for the simplified
form and &quot;application/cyrus+json&quot; for the noisy one. 
</p><p>
The basic underlying model and architecture implemented in Cyrus are still called
<a href="http://rd.springer.com/chapter/10.1007/978-1-4419-8303-9_7">&quot;Functional Observer&quot; and FOREST</a>,
however.
</p><p>
<b>The Future of Programming</b>
</p><p>
<a href="http://twitter.com/edd">Edd Dumbill</a> has recently described how he sees the 
<a href="http://radar.oreilly.com/2013/01/the-future-of-programming.html">Future of Programming</a>.
</p><p>
In that article, Edd offers five categories that he sees as forces driving this, which
I&#39;d paraphrase as: concurrency within and between machines; embedded and mobile
hardware; data-oriented programming; end-user programming; simplifying the software stack.
</p><p>
I was pretty excited to read this, because it accurately describes the drivers behind Cyrus.
</p><p>
<b>Cyrus in 2013</b>
</p><p>
So I&#39;m now going to spend 2013 explaining to everyone why <a href="http://the-cyrus.net">Cyrus</a>
is the next programming language they should try out. And, like I said before, I mean
everyone - from kids to grannies, via Business Analysts. 
</p><p>
Cyrus is, of course, very new, but even while it&#39;s maturing this year, it will still be
good for non-critical uses, such as prototyping - especially mobile or distributed apps
and sketching out business rules - and for making little fun apps, maybe while learning
to program.
</p><p>
Do join the 
<a href="http://groups.google.com/group/cyrus-programming">Cyrus Google Group</a>
if you want to get involved in any way, or just post a comment below.
</p><p>

</p>

            </div>
        </content>
    </entry>
    
    <entry>
        <id>http://duncan-cragg.org/blog/post/empowering-the-world/</id>
        <title>Empowering the World | NetMash</title>
        <published>2012-08-17T11:11:00Z</published>
        
        <updated>2012-08-17T11:11:00Z</updated>
        
        <link rel="alternate" type="text/html" href="http://duncan-cragg.org/blog/post/empowering-the-world/" title="Empowering the World | NetMash" />
        
        <category term="cyberspace" />
        
        <category term="declarative" />
        
        <category term="json" />
        
        <category term="metaverse" />
        
        <category term="netmash" />
        
        <category term="object-network" />
        
        <category term="fjord" />
        
        <summary type="xhtml">
            <div xmlns="http://www.w3.org/1999/xhtml">

<p>

If you also think that <a href="http://duncan-cragg.org/blog/post/fun-virtual-worlds-netmash/">hacking up 3D worlds on Android</a> could be fun, then join me! Stuff you should expect to play with if you want to get involved includes Java, Android, OpenGL ES 2.0, 3D model creation, hyperlinked JSON and JSON rewrite rules. Creatives, evangelists and inspirers are also very welcome to get involved!
</p><p>
The idea is to make an app (<a href="http://netmash.net">NetMash</a>) that lets people build, mash up, animate and program 3D worlds, shared online and all linked-up, Web-like.
</p><p>
Like creative-mode Minecraft, but adding easy in-world programming and shared online by default. Or maybe a bit like an open, distributed, generic, mobile
<a href="http://fuse.microsoft.com/page/kodu">Kodu</a> (or
<a href="http://research.microsoft.com/en-us/projects/kodu/">here</a>), for adults as well as children.
</p><p>
<a href="http://netmash.net">NetMash</a> is intended to deliver creative empowerment to ordinary people. We professional software folk often get stereotyped as geeks, and the creative fun we often have dismissed as in some way unusual. That&#39;s a real shame, because such prejudice means that the other 99.9% of the world are simply missing out on the joy of experiencing the most creative and empowering activities humankind has yet invented.
 &#160; ...
</p>

            </div>
        </summary>
        <content type="xhtml" xml:space="preserve">
            <div xmlns="http://www.w3.org/1999/xhtml">

<p>
</p><div class="summary"><p>
If you also think that <a href="http://duncan-cragg.org/blog/post/fun-virtual-worlds-netmash/">hacking up 3D worlds on Android</a> could be fun, then join me! Stuff you should expect to play with if you want to get involved includes Java, Android, OpenGL ES 2.0, 3D model creation, hyperlinked JSON and JSON rewrite rules. Creatives, evangelists and inspirers are also very welcome to get involved!
</p><p>
The idea is to make an app (<a href="http://netmash.net">NetMash</a>) that lets people build, mash up, animate and program 3D worlds, shared online and all linked-up, Web-like.
</p><p>
Like creative-mode Minecraft, but adding easy in-world programming and shared online by default. Or maybe a bit like an open, distributed, generic, mobile
<a href="http://fuse.microsoft.com/page/kodu">Kodu</a> (or
<a href="http://research.microsoft.com/en-us/projects/kodu/">here</a>), for adults as well as children.
</p><p>
<a href="http://netmash.net">NetMash</a> is intended to deliver creative empowerment to ordinary people. We professional software folk often get stereotyped as geeks, and the creative fun we often have dismissed as in some way unusual. That&#39;s a real shame, because such prejudice means that the other 99.9% of the world are simply missing out on the joy of experiencing the most creative and empowering activities humankind has yet invented.
</p></div><p>
<b>Empowering Families</b>
</p><p>
So, success for NetMash will be measured not just by the fun we&#39;re having building it, but more strictly by its first users: which will include my 10-year old daughter, my 13-year old daughter who has <a href="http://en.wikipedia.org/wiki/Williams_syndrome">Williams Syndrome</a>, their granny and their mum! My wife runs <a href="http://www.relaxkids.com">Relax Kids</a> classes in primary schools, so maybe there&#39;s an opportunity there to introduce the creative joys of programming to a wider group.
</p><p>
That&#39;s my own little world, but I&#39;d also like NetMash to reach people globally that would not normally get access to the creative empowerment of programming.
</p><p>
<b>Empowering the Disenfranchised</b>
</p><p>
Maybe <a href="http://social-impact.thoughtworks.com/">Thoughtworks</a> would be interested in using NetMash in schools that we have contacts with, maybe in a non-Western country where technology and education are often less freely available. 
</p><p>
Mobile is already changing the lives of the hitherto disenfranchised, through greater access to communications, finance and healthcare. Before long, the inevitable arrival of super-cheap Android devices means fully global access to advanced, connected technology, and a global demand for all the opportunity that this brings.
</p><p>
I&#39;d like NetMash to be a part of all that, whether it&#39;s for a boy in a one-room wooden school, or a girl in the school down the road. Or her granny.
</p><p>
<a href="http://duncan-cragg.org/pictures/netmash_.png"><img class="photo post"             src="http://duncan-cragg.org/pictures/netmash_.png" alt="picture"              /></a>
</p>

            </div>
        </content>
    </entry>
    
    <entry>
        <id>http://duncan-cragg.org/blog/post/fun-virtual-worlds-netmash/</id>
        <title>Fun and Virtual Worlds | NetMash</title>
        <published>2012-08-15T11:37:00Z</published>
        
        <updated>2012-08-15T11:37:00Z</updated>
        
        <link rel="alternate" type="text/html" href="http://duncan-cragg.org/blog/post/fun-virtual-worlds-netmash/" title="Fun and Virtual Worlds | NetMash" />
        
        <category term="cyberspace" />
        
        <category term="declarative" />
        
        <category term="json" />
        
        <category term="metaverse" />
        
        <category term="netmash" />
        
        <category term="object-network" />
        
        <category term="fjord" />
        
        <summary type="xhtml">
            <div xmlns="http://www.w3.org/1999/xhtml">

<p>
I just re-read my <a href="http://duncan-cragg.org/blog/post/universe-web/">article on the Universe Web</a>. I think it&#39;s pretty good. Indeed, to be honest, &quot;programming as Cyberspace building&quot; is where my heart has always been, and I&#39;m all about following my heart this year. Especially if it&#39;s more fun, for both myself and others! Or if it opens up new worlds to new people.
</p><p>
In contrast, I don&#39;t see &quot;fun&quot; in W3C or IETF activities. Indeed, there&#39;s recently been a number of examples of tension in that world, between stabilisation and innovation, idealism and pragmatism, Enterprisey and Webby. Interestingly, all those examples have a <a href="http://en.wikipedia.org/wiki/Second-system_effect">&quot;2.0&quot;</a> flavour: HTML5 (Web 2.0), HTTP 2.0 and OAuth 2.0.
</p><p>
My own interests are <a href="http://www.ietf.org/tao.html">rough consensus and running code</a>; innovation and pragmatism. Webbiness not in the W3C sense - &quot;Web&quot; Services, Semantic &quot;Web&quot;, &quot;Web&quot; Sockets, etc. - but in the sense of &quot;the simplest thing that works&quot;. Which is the Web of HTTP (1.1), URLs, JSON and REST, or specifically my <a href="http://rd.springer.com/chapter/10.1007/978-1-4419-8303-9_7">FOREST</a> interpretation. 
</p><p>
I crave the simple and powerful, the cool and the fun. Which ultimately leads to the kind of thing I was describing as the <a href="http://duncan-cragg.org/blog/post/universe-web/">Universe Web</a>. And to be honest, I&#39;d like to write and code for me, not for my peers and colleagues or for my career.
</p><p>
So, to the pursuit of pure joy in place of compromise, I&#39;ll now be focusing my energies on the journey of evolving the <a href="http://netmash.net">NetMash</a> Java server and Android app towards an online, open, hyperlinked virtual world that is programmable in-world by users using simple rules.
</p><p>
Stay tuned!
</p><p>
<a href="http://duncan-cragg.org/pictures/netmash.png"><img class="photo post"             src="http://duncan-cragg.org/pictures/netmash.png" alt="picture"              /></a>
 &#160; ...
</p>

            </div>
        </summary>
        <content type="xhtml" xml:space="preserve">
            <div xmlns="http://www.w3.org/1999/xhtml">

<p>
</p><div class="summary"><p>I just re-read my <a href="http://duncan-cragg.org/blog/post/universe-web/">article on the Universe Web</a>. I think it&#39;s pretty good. Indeed, to be honest, &quot;programming as Cyberspace building&quot; is where my heart has always been, and I&#39;m all about following my heart this year. Especially if it&#39;s more fun, for both myself and others! Or if it opens up new worlds to new people.
</p><p>
In contrast, I don&#39;t see &quot;fun&quot; in W3C or IETF activities. Indeed, there&#39;s recently been a number of examples of tension in that world, between stabilisation and innovation, idealism and pragmatism, Enterprisey and Webby. Interestingly, all those examples have a <a href="http://en.wikipedia.org/wiki/Second-system_effect">&quot;2.0&quot;</a> flavour: HTML5 (Web 2.0), HTTP 2.0 and OAuth 2.0.
</p><p>
My own interests are <a href="http://www.ietf.org/tao.html">rough consensus and running code</a>; innovation and pragmatism. Webbiness not in the W3C sense - &quot;Web&quot; Services, Semantic &quot;Web&quot;, &quot;Web&quot; Sockets, etc. - but in the sense of &quot;the simplest thing that works&quot;. Which is the Web of HTTP (1.1), URLs, JSON and REST, or specifically my <a href="http://rd.springer.com/chapter/10.1007/978-1-4419-8303-9_7">FOREST</a> interpretation. 
</p><p>
I crave the simple and powerful, the cool and the fun. Which ultimately leads to the kind of thing I was describing as the <a href="http://duncan-cragg.org/blog/post/universe-web/">Universe Web</a>. And to be honest, I&#39;d like to write and code for me, not for my peers and colleagues or for my career.
</p><p>
So, to the pursuit of pure joy in place of compromise, I&#39;ll now be focusing my energies on the journey of evolving the <a href="http://netmash.net">NetMash</a> Java server and Android app towards an online, open, hyperlinked virtual world that is programmable in-world by users using simple rules.
</p><p>
Stay tuned!
</p><p>
<a href="http://duncan-cragg.org/pictures/netmash.png"><img class="photo post"             src="http://duncan-cragg.org/pictures/netmash.png" alt="picture"              /></a>
</p></div><p>
</p>

            </div>
        </content>
    </entry>
    
</feed>

