<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Brian Frank's Blog</title>
<link>http://niagara-central.com:80/ord?portal:/blog/Blog/1</link>
<description>Brian Frank's Blog</description>
<item>
 <title>Web of Things</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/180</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/180</guid>
 <pubDate>Tue, 01 Sep 2009 15:47:22 EDT</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>With the release of Sedona this summer, Tridium has entered a whole new realm.  Previously all of our software technology was based on Java, which meant it could only be applied with fairly hefty hardware solutions.  But with Sedona we now have software technology which can scale down to edge devices and smart sensors.  Parallel to scaling down our software technology, Tridium has become quite involved in what it takes to scale the Internet down to edge devices.  The first step of this effort is Sedona's use of 6LoWPAN, but the end-game is the "Web of Things".  I have detailed our vision for the Web of Things in a <a href="http://sedonadev.org/whitepapers/web-of-things.pdf">new whitepaper</a>.  I would encourage you to give it a read and help us make this vision come true!</p>]]></description>
</item>
<item>
 <title>Self Programming Language</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/168</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/168</guid>
 <pubDate>Tue, 27 Jan 2009 10:17:55 EST</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>I just stumbled across an <a href="http://www.smalltalk.org.br/movies/">old video</a> from 1995 on the Self programming language.  Most people have probably never heard of Self - it is a rather obscure language from the 90s.  But Self is probably the biggest source of inspiration for many of the key design concepts found in both Niagara AX and oBIX.</p>]]></description>
</item>
<item>
 <title>Sedona on the Java VM</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/166</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/166</guid>
 <pubDate>Mon, 08 Dec 2008 09:17:57 EST</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>I'm excited to announce that Sedona now includes support to run on the Java VM.  You might ask yourself why would I want to run Sedona on the JVM?  There are two key reasons to run on the JVM:</p>]]></description>
</item>
<item>
 <title>6LoWPAN: are you betting for or against the Internet?</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/164</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/164</guid>
 <pubDate>Wed, 08 Oct 2008 14:20:42 EDT</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>Anybody who has heard our Sedona story, has also heard the 6LoWPAN story.  AutomatedBuildings is running a great <a href="http://www.automatedbuildings.com/news/oct08/articles/archrock/080927044404archrock.htm">article</a> about 6LoWPAN, which you should check out if you haven't seen it.</p>]]></description>
</item>
<item>
 <title>Sedona Version Control</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/159</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/159</guid>
 <pubDate>Wed, 10 Sep 2008 16:38:23 EDT</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>As a true open source project, one of the things we'll be doing in the next few months is creating a public version control database for the Sedona codebase (just the actual open source part that is mind you).  This means that everyone will have public access to the "live" source code repository.  Instead of waiting for a Sedona build to get your changes, they will be available immediately as soon as they are checked in.</p>]]></description>
</item>
<item>
 <title>Sedona virtual methods</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/157</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/157</guid>
 <pubDate>Wed, 20 Aug 2008 11:53:33 EDT</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>In Java all methods are virtual by default unless explicitly marked as "final". Personally I think this was a poor design choice.  You must explicitly design for a class and a subset of its methods to be overridden or else your APIs are highly unlikely to be future proof.  The C# language got it right and requires virtual methods to be marked with the "virtual" and "override" keyword.</p>]]></description>
</item>
<item>
 <title>How Open Source Licensing Works</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/156</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/156</guid>
 <pubDate>Thu, 14 Aug 2008 14:01:03 EDT</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>Yesterday one of the highest US federal courts <a href="http://arstechnica.com/news.ars/post/20080813-court-violating-copyleft-copyright-infringement.html">overturned</a> a lower court's decision regarding how open source licenses work.  For anyone using open source licenses this is a really, really big deal.</p>]]></description>
</item>
<item>
 <title>Inside the Sedona Compiler - How a Compiler Works</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/152</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/152</guid>
 <pubDate>Thu, 22 May 2008 13:45:28 EDT</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>A compiler is basically a program used to translate another program from one format into another format.  For example a C compiler translates C source code into machine code.  Javac compiles Java source code into Java bytecode.  Sedonac is actually a suite of compilers - the most interesting one is compileKit which translates Sedona source code into a kit file containing IR (intermediate representation).</p>]]></description>
</item>
<item>
 <title>Open source oBIX server</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/125</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/125</guid>
 <pubDate>Wed, 26 Sep 2007 09:41:10 EDT</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>We've had an open source, client side toolkit for a few years now available at <a href="http://sourceforge.net/projects/obix">SourceForge</a>.  Now there is some activity to start a new open source project for building an oBIX server toolkit.  If you have any interest in contributing ideas, feedback, code, or just want to keep abreast of things, then please join the <a href="http://groups.google.com/group/obix-developers">oBIX Developers</a> on Google Groups.</p>]]></description>
</item>
<item>
 <title>oBIX 1.1</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/115</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/115</guid>
 <pubDate>Thu, 02 Aug 2007 17:07:47 EDT</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>We're gearing up to start work on oBIX 1.1.  Right now we're looking to add two new features to oBIX.  The first is to specify how oBIX is used with RSS and Atom for feeds.  The second feature were looking at is scheduling support within oBIX - most likely based on the iCAL standard (for example can I email the building control system from Outlook).</p>]]></description>
</item>
<item>
 <title>oBIX Meta-model</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/114</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/114</guid>
 <pubDate>Thu, 02 Aug 2007 17:02:44 EDT</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>We build software systems to solve real world problems: control the temperature in a building; monitor energy usage; let our customers buy things online.  All of these systems end up "modeling" their domain.  In building automation we model environmental conditions and equipment; for energy applications we model meters, weather forecasts, and rate pricing; online stores model products, shopping carts, and invoices.</p>]]></description>
</item>
<item>
 <title>Why slots aren't marked input/output</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/110</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/110</guid>
 <pubDate>Thu, 19 Jul 2007 14:40:31 EDT</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>Someone asked me the other day why we don't annotate slots as inputs or outputs.  If you remember back in the good old r2 days we actually did this - and it turns out to be immensely limiting, without much practical value.  Basically any slot (or data item) should be a potential output - if you can read it, then you should be able to use it as the source of a programmatic link.  Furthermore, anything you can change on the property sheet ought to be changeable programatically via a link.  So the only thing that really matters is should a property be changed externally (either via a property sheet or a link).</p>]]></description>
</item>
<item>
 <title>Java's Wrong Turn</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/106</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/106</guid>
 <pubDate>Wed, 20 Jun 2007 14:51:57 EDT</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>Back in the good old Java 1.0 days the JDK was less than a dozen packages.  The original Javadoc sported the latest 1995 HTML look &amp; feel with its rainbow of colored bullets (everybody who was cool used colored bullets back then).  Java 1.1 added a couple of new packages - some were killer new features like java.reflect and java.util.zip.</p>]]></description>
</item>
<item>
 <title>What's up with Sedona</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/102</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/102</guid>
 <pubDate>Wed, 11 Apr 2007 10:13:10 EDT</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>It's been a long time since I've blogged on Sedona  (well actually it has been a long time since I blogged about anything).  That's because I've been busy hacking away at a new Sedona compiler.  About a month ago we decided our current design for Sedona was wrong.  Writing Sedona components in Java, then compiling them into C++ had a couple big problems:</p>]]></description>
</item>
<item>
 <title>Puzzles versus Mysteries</title>
 <link>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/93</link>
 <guid>http://niagara-central.com:80/ord?portal:/blog/BlogEntry/93</guid>
 <pubDate>Tue, 16 Jan 2007 15:59:13 EST</pubDate>
 <description><![CDATA[<p>Posted by Brian Frank</p><p>We have an annual series here called the Richmond Forum that brings in big name speakers each month - usually they are pretty good.  This past weekend the speakers were "futurists" Alvin Toffler (author of Future Shock) and Malcolm Gladwell (author of Blink).  Gladwell is a great speaker - he discussed how problems today have shifted from "puzzles" to "mysteries".  A puzzle is basically a problem of collecting information, whereas a mystery is a problem of trying to make sense of the information you already have.  To quote an example from his <a href="http://www.newyorker.com/fact/content/articles/070108fa_fact?page=1">article</a> in the New Yorker:</p>]]></description>
</item>
</channel>
</rss>
