Tuesday, February 2, 2010

DZ 3.5 "Deja Vu" Release Is Out

Changes since 3.4.1

  • It is now possible to use Google Calendar as a source for your thermostat schedule;
  • Schedule Updater API is now available, you can integrate DZ's schedule with any other schedule source for which API is available.
Read FAQ: How Schedule Periods Work to learn how to set your own schedule (and you can use the calendar shared from the article as an example), and Configuration Guide to learn how to configure the updater.

Why "Deja Vu"?

This release concludes the "reboot" of DZ code base, started on October 14 2009 (read DZ3 Seeded for more details). Functionality of DZ3 today is more or less the same as it was at 0.1p7dev3 (that's September 2004 all right), but with quite a few distinctive differences that can be briefly summarized as:
  • Improved usability;
  • Improved stability;
  • Improved documentation.
That's all an average user needs to know, but if you're willing to peek under the hood, then here's a longer list:
  • DZ3 is rock solid. Unlike DZ2 where bugfixes were mostly afterthoughts, every questionable piece of code is wrapped into test cases, and whenever there is a problem, more test cases are written to pinpoint it;
  • Reliability has gone up, footprint has gone down. DZ3 runs with JVM heap restricted to four megabytes of RAM, with uptimes measured in weeks - and that is only because the development is happening at such a pace that it is worth to upgrade and restart;
  • DZ1 architecture grew out of monolithic proprietary code that was never published, DZ2 architecture was never finished, DZ3 architecture is everything DZ2 ever wanted to be - on top of almost ten years of experience not only with DZ, but with a lot of other things related and not so related to it;
  • DZ3 code base is transparent to instrumentation. You can chart any data point in between, and see and control all live components via JMX;
  • Thanks to instrumentation that is now available, DZ3 is free from resource leaks;
  • Initial configuration that was always a pain in DZ2 is now documented. Proprietary XML configuration was replaced with Spring IoC Container and looks now like LEGO for adults;
  • User Interface now actually passes "a moron in a hurry" certification and is usable by mere mortals, unlike the Sci-Fi contraption of DZ2;
  • Editable and persistent schedule is available, at long last.
To cut this long list short, DZ3 has reached the point where I always wanted it to be - it just works.

What's Next?

To put it simply,
  • Further scaling down of hardware requirements;
  • Further optimization and reducing the load on DZ3 host device;
  • Web integration;
  • Mobile device integration.
Stay tuned. Meanwhile, enjoy.


Tomasz Korwel was most helpful in making it happen, I don't think DZ3 would be as smooth and reliable as it is without his active feedback and participation.

No comments:

Post a Comment