Wednesday, September 25, 2013

A grand cavalcade of ideas

One of the problems I have is that when I get one idea, I usually get many, related, ideas. In fact I get so many that if I don't write them down quickly I forget them. And as a suffer of ADD old ideas tend to get pushed aside for the current 'spur of the moment, next great idea'. So this is me, writting down my ideas ;-)

I've been getting comfortable with Node.js and I'm reading a book on the subject to help fll out some of the missing details (Professional Node.js by Pedro Teixeira, good book!). At the moment Javascript is the language of the day. But I have a bit of a love/hate relationship. Especially when it comes to the asynchronous nature of node.js. But I do think it will resolve a number of design problems related to HA .

Projects

  • irrnode - Web interface Irrigation controller
  • HCS II - Web interface & raw & processed socket stream (HCS II is a HA controller)
  • Elk M1 - Web interface & raw & processed socket stream (Elk M1 Security & Automation Control)
  • ECM-1240 - Web interface & raw & processed socket stream (Brultech ECM-1240 - energy monitor)
  • Dollhouse 2.0 - a node.js based HA controller.

Needed libraries

  • daemon (https://github.com/indexzero/daemon.node)
  • Unix device locks (http://github.com/TrevorBurnham/lockfile or https://github.com/isaacs/lockfile)
  • logging
  • socket
  • cron (node.sched)
  • tty (serial terminal server)
  • User configuration interface (saved to json)

As I get time I'll put more of these projects together (I'm expecting the ECM-1240 any day now). And I'll put a few more into planning. Right now I really think about what I want in these projects. I plan on doing that in the form of requirements. So far the irrigation controller is easy to write requirements for. On the other end of the spectrum is the Dollhouse controller. That is proving difficult to write requirements for.

Tuesday, September 17, 2013

Smart Stick vs. Chromecast dongle

The BBC has an article on "Sony Smart Stick to challenge Google Chromecast dongle". And it seems Sony is still a bit clueless about consumer products (they've gotten much worse in the last few decades, in my opinion). It used to be that I wouldn't have a problem buying Sony products. I've purchased many TV sets from them and was very happy with them until I purchased the my Internet ready Flat screen. I paid extra expecting I would get the usual extra value only to find that Sony kept the dev kit tied up in Japan and then pretty quickly dropped it all together! The TV itself is great but not for the extra price of the not 'Internet ready'. Before Sony dropped the UI support I also picked up a Sony Viao laptop, which I decided to keep Windows on. I found out pretty quick that most of the ports were Sony proprietary ports and the installed software had a nasty habit of calling home. So all of that extra value was going into Sony's pocket and I wasn't seeing anything from it. Sony should learn a lesson from Microsoft (so should Microsoft but that's another rant ;-) ). When smart phones first came out Windows had Win CE (or as I prefer to say: wince). And along with the HP palmtop (I had both phone and palmtop), the only way to get an upgrade was to purchase a new device (because MS had discontinued support for that version). How can I trust a product if the vendor drops it like a hot potato? Also at the price Sony is asking I can afford to make a possible mistake with the Google Chromecast dongle ($150 vs. $35). Sorry Sony you've got a lot of 'plaining to do before you see my money again.

Sunday, September 15, 2013

A bit more prep work

I've now migrated my irrnode code over to GitHub (testing my Windows and Linux Eclipse, Emacs+, Egit and Nodeclipse setups). While not perfect (I think I may have missed some code I needed) it's a start. At least I now have a way to make the changes and properly keep track of them. I tend to not put small projects under version control and I always end up regretting it when the project grows. Now that it is much easier I'll just make a habit of putting all my projects under SCM. So, so far, so good.

Anyways back to the setup of Eclipse et al. I'm using ssh with my exchanged ssh keys, which makes updates much easier and makes it more likely I'll just make it the default method of saving things ;-). I must say that the initial instructions I found on the web for importing a project from a Git repository didn't work. I'm not sure if the web pages (dozens of them) were out of date or I'm not using up to date software. Once I figured out that I needed to use the existing files (Git had already downloaded the files and stored them on my PC) then I was good to go. I've also figured out that I should use the ssh method of access with the git URI. Now I'm able to push my commits.

I'm also testing out Bitbucket. It was just as easy to setup and use as GitHub. Can't say which one I prefer as I haven't had much use out off either of them at the moment. Bitbucket does allow private repos for free.

Wednesday, September 11, 2013

Eclipse, egit and online git repos

I've taken a little to learn how to re-use Eclipse. Pretty much I always switch back to Emacs. This time I setup Eclipse to Emacs bindings, setup for node.js and egit. Hopefully this will help me to stick to using Eclipse. I've also run my first git remote and I've testing adding everything and commit and push. I'm also reading lots of books on unit testing (I do something similar but not exactly and I'm not happy with the results. Something a little more structured and formal might help me deal with the complexity. Also I like the idea of automation. I'm also reading about continuous delivery. Sounds neat but I have a bit more (a lot) to learn before I can get to that level of automation. Luckily the node irrnode project is probably a good choice for experimenting on these technologies.

Sunday, September 08, 2013

The constants of change

The last few years have been a wild whirlwind of dramatic change for myself and my family. Hurricane Irene, Super-storm Sandy (it wasn't a hurricane when it struck land), loss of loved ones, health emergencies and the many changes in my employment. We haven't had a chance to catch our breath for even a moment. The latest change is that my job has been outsourced. September 8th is my last day as an AT&T employee, from which I've retired (boy does that make me suddenly feel old). Luckily I've been picked up by Tech Mahindra (TM) so I'm still working (thank you TM).

Of course with challenges come opportunities. As an AT&T employee I really had to be careful with my HA activities. Now, I believe I'll be a bit freer to pursue my interests again. The last few years have brought about great change. Mobility, small low powered embedded processors, multi-core processing, cloud computing, asynchronous/event programming, agile processes such as continuous implementation and continuous delivery promise some rather interesting things with respect to what can be delivered to the end user. I'm now reading up on these and other technologies (my ebooks are filling my nook up). I'm finding myself being excited by the possibilities and fearful of the dangers. We need to think differently, as the above technologies demonstrate. Welcome to the great Internet of things. So while I proceed with much trepidation I lunge forward all the same. Standing still is to fall back.

And to keep this in the spirit of the blog (a HA blog), I'm working on the continuous delivery concept with the Irrigation controller software I'm working on. I'm reading up on unit testing with node.js (I know, step one), I'm also about to open up Github and Bitbucket accounts and I'm researching the build and delivery systems. So I'm eating my own dog food and drinking the kool-aid, yum. ;-)