Recent Posts by Itamar Ostricher

Weekly Review, September 27

By Saturday, September 27, 2014 0 Permalink 1

With Rosh Hashana and a personal planned vacation this week, I had little time for anything else.

Oogi and I just returned from our first child-free weekend vacation since the twins were born (7.5 months). It was short and sweet. One night at Brown Hotel in Tel Aviv, with plenty of food, drinks, and sleep! We went for a package that included a treatment in their in-house spa, fancy dinner at Meir Adoni’s Mizlala restaurant, and an excellent breakfast at Lulu Kitchen & Bar. We almost forgot how it felt to be able to just do whatever we want to. Go out for ice cream? So easy! No half-hour-long diaper bag and stroller productions! The best part? Maybe waking up at 6AM, and falling back asleep, because nobody’s crying for a morning bottle. Or maybe waking up again at 9AM, being able to just stay in bed for a while, doing nothing. Oh, the simple things…

The Weekly Review is (hopefully) a recurring summary, reviewing highlights from the last week.

Continue Reading…

Multi-Module SCons Project With Separate Build Directory

By Thursday, September 25, 2014 0 , , Permalink 3

This is the third post in my SCons series. The topic of this post is setting up a multi-module C++ project using SCons, with a separate build directory.

In previous posts in the series I introduced the SCons open source build tool, and described a simple C++ example project that uses SCons.

In this post I use the exact same C++ project from the basic example. I rewrite the build scripts, using SCons, to achieve the following properties:

  1. Divide the project into distinct modules. A module maps to a directory in the project tree. Each module contains a SConscript file, describing the targets included in that module.
  2. Separate the build output directory from the module source code directories. I like my project tree clean and tidy, without object files scattered between source files.
  3. Allow build targets in modules to refer to other targets in other modules easily. This is required, for example, when a program in one module uses functions from a static library in another module.

The final result is available on my GitHub scons-series repository. In the rest of this post I explain the details of what I came up with.

Continue Reading…

Got My littleBits Cloud Starter Bundle!

By Tuesday, September 23, 2014 0 , , Permalink 2

As mentioned in the last weekly review, I just got my first littleBits kit. It’s a Cloud Starter Bundle, and it looks fun.

I haven’t decided what I’m going to do with it first. The most interesting part, as far as I’m concerned, is the cloudBit. With this module, it should be easy to turn any DIY-electronics project to a connected IoT thingy. I thought I’d use it to improve my connected A/C project, by replacing the laptop that drives the Arduino with the cloudBit. To do that, I need to change the way I get feedback from the A/C, which is something I wanted to do anyway.

In my original connected A/C project I determine the state of the A/C by listening to beeps from the control unit. This approach has several drawbacks:

  1. It requires something that can listen to beeps, and analyze them. Currently it’s the laptop that I use as a bridge between the Arduino and the world. I guess I could do it using the Arduino itself, or a Raspberry Pi. But it would add complexity, and require extra hardware to enable listening.
  2. It is susceptible to mistakes. The laptop is close to the sound source, but not close enough to detect with 100% reliability. It may miss beeps.
  3. It is passive. I cannot monitor the state of the A/C without sending a command to change it. It doesn’t solve the scenario where I’m out, and I want to verify that I turned off the A/C.

Given the above, I want to improve my existing project. If I can do it with the littleBits stuff, that’s a bonus.

The improvement I’m seeking is a way to actively detect the current state of the A/C with high reliability, without needing to change it. Ideally, I’d want to monitor the full state – on/off, temperature, mode, and fan speed. I think that Sensibo is supposed to do that, once they complete the project and ship (I backed the Indiegogo campaign the minute it started 🙂 ). Until that happens, I’d be happy to detect just the power state (on / off).

The state monitoring solution must be non-destructive, as the A/C is a central unit in a rented apartment. One idea I have is to find a way to monitor the A/C power consumption. If I could do that in a non-destructive way, I should be able to differentiate between on and off states. But I’m not sure how to implement it…

Do you have an idea how I can monitor the A/C power consumption? Or any other idea on how to actively determine its state without changing it? I’d love to get more ideas, so I can go ahead and make it happen! 🙂 I’m OK with purchasing extra hardware, as long as it’s cheap enough.

Continue Reading…

Weekly Review, September 20

By Saturday, September 20, 2014 0 Permalink 2

This week I attended the Google Cloud Platform @DLD event. The event was somewhat disappointing, with mediocre lectures that didn’t go deep enough. But the one-on-one sessions that followed were worth the time, at least for me. Were you there? Share your thoughts in the comments!

Not long ago, I got the Experimenting with Babies book, by Shaun Gallagher. A couple of days ago I got an approval to document and publish a couple of experiments from the book, so stay tuned for that!

I just got my first littleBits set – the cloud starter bundle. Hope I find the time soon to dive into it, and see what I can make it do 🙂 . Got one of their kits yourself? I’d love to hear what you came up with!

The Weekly Review is (hopefully) a recurring summary, reviewing highlights from the last week.

Continue Reading…

Manage Windows In OS X Like a Boss With Spectacle

I hate using the mouse or trackpad on my MacBook to manage open windows. When using multiple monitors, I move windows between the monitors and resize them all the time. That’s why my mind was blown when I found out about Spectacle.

Spectacle is light, simple, and open source. It does one thing – control window size and position using keyboard shortcuts. It does it well. I installed it a couple of days ago, and I just can’t remember how I was able to work without it.

This post is part of my Mac Power User Training series. Follow it to see how I try to go from Mac novice to a pro.

Continue Reading…

A Basic SCons Project Example

By Thursday, September 18, 2014 0 , Permalink 2

SCons is an open source software construction tool – a next generation build tool.

I have previously written an introduction to SCons.

This post is a short example of a basic C++ project, that uses SCons.

The purpose of this basic example is to set a baseline. It demonstrates how to build a non-trivial C++ project with out-of-the-box SCons. Future posts in my SCons series will describe various extensions to SCons, so it is important to be able to compare to a simple baseline.

Continue Reading…

SCons Intro: A Sane Software Construction Tool

By Thursday, September 11, 2014 0 , , Permalink 5

If you ever built C/C++ programs, you probably know about Make. But Make has long been broken. Everybody knows that.

SCons is an open source software construction tool – a next generation build tool.

You can think of SCons as an improved, cross-platform substitute for Make. One that also bakes in features from autoconf/automake and ccache.

SCons is my chosen C/C++ software build framework.

This is the first post in a series of SCons posts. In the series I will describe SCons, and analyze its strengths and weaknesses. I also explain how I use it (in DayJob) to build non-trivial software, and explore potential enhancements to optimize my workflow.

I open the series with an introduction to SCons.

Continue Reading…