World's Smartest House
Welcome to my blog. In here you'll find articles about my multi-decade-long pursuit of the "world's smartest house" and other passions. My smart house technology controls heating, lighting, sprinklers, music and more. It talks over the speakers, it plays music by tags in any collection of rooms, and you can even chat to it on messenger using natural language.
Home Automation
Articles about #homeautomation describe a system that includes over 200 sensors within a house and nearby barn that together create an environment where you don't need to touch a light switch during the course of a typical day, where the heating operates in an optimum manner, and where music plays across multiple rooms controlled by a natural language interface.
You'll find blog posts on my favorite features, a discussion on representing the home as a graph and much more.
You'll find posts about #sensors including strain-gauges, PIR, optical beam, microwave-doppler and Bluetooth including the pros and cons of each technology and my experiences with them.
If you want to dive into the technical details around how the house became smart you'll find articles on many of the techniques I've tried including things like #multiple-hypothesis-tracking. So take a look at #homeautomation.
Natural Language Engine
You'll find a few articles here about the history behind my natural language engine for .NET, but head over to nlp.abodit.com for the full picture. My NLP engine is unique in the way it integrates into an existing .NET desktop or server application. Responding to sentences is as simple as writing a method with the permutations of tokens you want to recognize. It offers full intellisense support for meanings (Synsets) with dictionary-like definitions. It handles permutations and optional phrases, it handles grammar production rules and it includes a large set of existing tokens that can recognize numbers, formulas, units of measure and the widest set of temporal expressions possible. And by temporal expressions, I don't just mean picking a datetime from the input, I mean expressions that can represent infinite ranges (every sunday in May
) and complex expressions like last sunday after 5pm
. My natural language engine is also a probailistic parser able to return a sequence of possible parses in descending order of likelihood. It understands some of the ambiguity in the english language like the fact that 'and' sometimes means 'or'.
Travel and Photography
And last, but not least, I'm also documenting some of my favorite travels and photos, so check out the Photography and soon Travel topics below.
Technical Details
This blog was created using next.js
, a ReactJS
static web-site generator. I converted an existing sample blog to Typescript and added a recommendation engine to display relevant "More reading..." articles after each article that you read. This is all driven using YAML front matter on markdown posts, the entire navigation structure is derived from a 'priority' field, a 'date' field and a 'tags' field on each post.