Products That Work – Almond+

January 19, 2015

Not yet everything that was promised, but improved WiFi performance over my former unit.

I took a chance on the Kickstarter for Securifi Almond+ : (3 Minute Setup) Long Range Touchscreen Wireless AC Router / Range Extender + Home Automation Hub, and after some delay received and set up this Wireless AC Router. I immediately noticed a significant improvement in signal strength, data transfer speeds, and coverage now beyond the footprint of the house. Previously my Belkin N+ had never operated at this level of performance, but then it was generations old in hardware…

For the first 6 months I’ve used it basically as a wireless router and network switch, mostly because it was missing the Home Automation (HA) support. As a WiFi it performed well, with only very infrequent web page load issues (assumed to be the garbled data bug, now fixed as of the FW R069cb beta release) and just a few reboots required during the 6 months. I can recall only 1 time I rebooted it due to some failure in operation, and I wasn’t sure it was the Almond+ or the Comcast modem.

Although advertised as supporting HA, it wasn’t until this month that it has a fraction of the basics. As of mid January 2015 it still isn’t ready to support HA at the level anyone would expect as bare minimum. No Scenes, buggy Rule Editing, and a relatively short supported device list. Another release is due shortly that is expected to remedy this, but although the folks at Securifi are no doubt working hard, they have a history of over promising on deliveries.

Don’t let that stop you from picking this unit up if you are in need of improved WiFi and plan to add HA, as Securifi is responsive and continuing to improve their product. I expect it won’t be long before HA will be properly supported. I have purchased the Belkin WeMo LED Bulbs ( Belkin WeMo (F7C033) LED Light Bulb, Control Your Lights From Anywhere with the Home Automation App for Smartphones and Tablets, Wi-Fi Enabled (WeMo Starter Set Required) ), installed them easily and quickly, and can control them individually with the Almond+ Android App. However, I found that this Almond+ Lamp Controller is better for controlling lamps individually or in sets.

Why have I rated this a Products That Work? The non-HA aspects of the unit are as functional and reliable as any good WiFi I’ve used, and the HA is due shortly. Given that I was able to network install it in a few minutes and forget it for 6 months, it works.


Products That Work – Cozy Products Toasty Toes

December 22, 2014

Have you ever wanted a footrest? Or warmer feet in the winter? How about both? Cozy Products has an answer. Cozy Products TT Toasty Toes Ergonomic Heated Foot Warmer

In the winter our building tends to run on the cooler side; which is fine, but I prefer a small boost temp, with a more ergonomic leg position to boot. This item does the trick.

Products That Work – OBDLink LX Bluetooth

December 10, 2014

Sometimes you just need an effective tool to complete a task and save some money. And have a little fun.

The OBDLink products from will do just that. Although I haven’t personally tested all of their products, I recently purchased a ScanTool 427201 OBDLink LX Bluetooth: OBD Adapter/Diagnostic Scanner for Android & Windows diagnostic tool via A few weeks after our first vehicle threw a code and lit up the trouble indicator on the dash, our 2nd vehicle also threw a code. After getting hit with a high fee by a local auto service shop to check and reset the 1st vehicle, I purchased the 427201 for less $$, including shipping.

It was a breeze to use; although it does take quite a few steps to configure, it is straightforward. I located the OBD port, which is usually near the driver’s knees, and plugged in the ScanTool. Next, I loaded the ScanTool app on my phone, paired my phone via Bluetooth, launched the app and set up a profile. I read out the codes, recognized the issue, and reset the codes. And saved money over using a shop. Of course, don’t take any code lightly, be sure to understand and promptly address the cause of the code, or you may be paying more later. But, for this example, sometimes a vehicle will throw codes that are caused by an issue such as low voltage from the 12V accessory battery, and is a nuisance. The shop fee would cover a new battery! Or perhaps you want to see if an issue was a transient, or will subsequently reproduce. After all, even cars glitch now and then despite the manufacturers best efforts; they’re a complex network of mini processors, sensors, and wiring. Any item in the network can cause the dash to light up.

And sometimes a tool can become a toy – I have since put the 427201 to use monitoring the health of a 2002 Toyota Prius, which has a high voltage traction battery pack. The dashboard exposes very little useful information so a CAN scan tool such as this combined with apps like TouchScan (OBD Diagnostics) or Torque Pro provides a window into the inner workings of today’s advanced vehicles. ScanTool’s free application is also useful, and Torque Lite is available for basic testing purposes prior to purchasing the Pro. I was happy to see the pack was still ‘balanced’ after 12 years.


Reductio, NaN filtering

October 12, 2014

Stats, JS: Reductio NaN filtering

Published October 2014

Reductio requires clean and complete data. Having several use-cases where data is either sparse or may contain NaN values in a dataset, and prefering not to pre-filter data just for Reductio, I prototyped a small change to Reductio to filter NaN’s. It worked well, so an Issue was submitted to Reductio Github.

Since there are some costs to me for these efforts, if you find value in any of my work, please consider a donation.

Please consider a donation if you find value in my free/open source contributions.

Reductio, StDev

October 8, 2014

Stats, JS: Reductio StDev

Published October 2014

I had a need to add statistics to SLIDcES, and found Reductio, but it was missing Standard Deviation. A short time later, and EthanJ had incorporated my contribution. Thanks esjewett for a quick turnaround.

Since there are some costs to me for these efforts, if you find value in any of my work, please consider a donation.

Please consider a donation if you find value in my free/open source contributions.


September 21, 2014

App: Stocks, 23.Meteor.Com, @

Published: Sep 2014

While working on ScoreCrowd, I had also prototyped a stock tracking application using Meteor. I’ve just completed an iteration on it and have published it now for others to try out.


  • A category tag field
  • Can change the time span for each chart column, units are days.
  • Login to manage your own set

‘Stocks’ will run on any device with a browser that is considered ‘modern’. IE10 or Chrome or Dolphin for example.


If you like the idea, use it and want to see more features, or have any problems, let me know through feedback here. And please, consider a donation. Thanks.

Please consider a donation if you find value in my free/open source contributions.

DC.js 2.0.0-dev Pareto + Workaround

May 24, 2014

JS: dc.js (workaround, line/bar composite)

Published: May 2014

When I created a DC.js Pareto chart, as a composite of barChart and lineChart, I found the line chart’s samples and xaxis ordering wasn’t consistent – The lines between sample points were jumbled, but the point Y values were correct. So I implemented a workaround. I found a new entry concerning this issue in the DC issues list, along with a question about it on SO. I created the following plunker to demonstrate the workaround.

Please, if you find my contribution useful, consider a donation. Thanks.

Please consider a donation if you find value in my free/open source contributions.

DC.js, Dynamic Table Column Headers

March 31, 2014

JS: dc.js

Published: March 2014

If you haven’t already discovered d3.js, crossfilter.js and dc.js, you might want to take a look. I’ve recently started using it for both personal and professional uses, to generate reactive charts that also allow you to slice-n-dice your data. I’ll post more on what I’m doing with dc.js in the future.

I found that dc.js had no provision for ‘dynamic’ column headers for the ‘table’ functionality, and I needed that so I could use one web page to view different source data, instead of coding a specific page for each table view. So my first contribution to dc.js’s github was just submitted in the hopes the dc.js staff agrees and integrates the functionality for others to use.

Please, if you find my contribution useful, consider a donation. Thanks. This was developed on my personal time so that it can be used without restriction.

Please consider a donation if you find value in my free/open source contributions.

March 22, 2014

App: ScoreCrowd, @

Published: March 2014

A while back I ran across, and decided to try it out. After a while I hit on the idea of keeping score of a sports game using Meteor.

How many times have you been to a game where

  • you can’t see the scoreboard
  • the board isn’t working, and you keep track using sunflower seeds in piles 😉
  • the operator stayed up too late the night before and is making mistakes
  • someone couldn’t make it but you text them updates, while missing moments of the game runs on any device with a browser that is considered ‘modern’. IE10 or Chrome or Dolphin for example.

If someone just wants to look at the score, no login is necessary, just join the desired ‘game’. Someone needs to set up and start the game, and keep score. Anyone with the same ‘login’ can manage the score, so it’s as private or share-able as you like. Even a player, coach or parent in the dugouts or on the bench can join in.

The name is a play on scoreboard, but scored by the crowd. Alternatively I considered CrowdScore. Let me know which you prefer.

When time permits, I may add additional functionality; its not finished, at least considering all the possibilities, but it is functional. Facebook login is yet to be tested; let me know if you want to use Facebook login; otherwise I may just remove it and leave Twitter login support.


If you like the idea, and use it and want to see more features, or have any problems, let me know through feedback here. And please, consider a donation. Thanks.

Please consider a donation if you find value in my free/open source contributions.

B4A-Bridge-Relay by 12Lab

January 4, 2014

App: B4A-Bridge-Relay, B4A-Bridge-Relay-Free

Published: January 2014

Having 3 or more devices (or even 2!) on which to test an application in development is presently cumbersome from the B4A IDE (as of 3.2). I realized that a few changes to B4A-Bridge would save many iterations through the IDE. In a private communication with the principal, Erel Uziel, Anywhere Software approved derivative works based upon Anywhere Software posted source on the B4A/B4PPC forums. With B4A-Bridge-Relay, deploying an app to more than one device takes essentially no more time than it does with just one.

The existing B4A-Bridge (2.10) was refactored to separate the Service framework from the B4A-Service functionality, a new Class added for downstream connections, and packet counting was added to the apk deployment transfer, so progress can be monitored as necessary. You get confirmation that the transfer to the -Relay started, then you can turn your attention elsewhere. If you find yourself in a ‘poor’ WiFi environment, this will also save you some guessing. The ‘H’eartbeat indicator will also assist with this situation, and the colored status text makes it easy to tell at a glance. If you use B4A-Bridge-Relay on all client devices, you can observe the transfer to each device.

B4A-Bridge-Relay also displays additional Server information as compared to the standard B4A-Bridge. In WiFi mode, the port used is displayed after the IP address. In Bluetooth mode, the MAC Address and the Name are displayed. These identifiers are helpful in certain situations.


Short Press of the “Skip Clients” button will tell the Service to not use the application client list, Long Press will allow view/delete of clients from the application’s client list. “Use Clients” functionality is maintained; Short Press tells the Service to use the application’s client list, Long Press allows adding a new client to the application’s client list. Changes to the application client list are immediately applied to the Service list; however, after entering any desired clients, press F2 in the B4A IDE to force all clients to ‘connect’.

When adding a client address, you can now use a range or the ‘*’ wildcard in the last segment. will auto-populate clients .4,.5,.6,.7,.8. The end of the range can be left off, in which case it defaults to -254. If the wildcard is used, such as 192.168.2.* , then .2,.3,…,.253,.254 is auto-populated. If some of those IP addresses in the range do not actually have a real associated target device, that is fine; B4A-Bridge-Relay will just skip over them if the IDE-initiated connection attempt fails. Entering the device’s address as a client will be ignored, as will any duplicate client addresses; this also functions as a cancel operation.

The Status area shows the first few connected clients in the  client list. To see the full list, long-press on Skip Clients, scroll through it as needed, then cancel when finished.


At least some older phones (example, HTC WildFire running Android 2.3.5) may hang a port open; this can be identified by use of port 6906 when the WiFi service is started. The application displays “My IP: A.B.C.D:port” when Start-Wifi is pressed. Port is usually 6789, except when it isn’t available, and then it uses port 6906. Currently it is not possible to set the port for a client in the Relay application, it always uses the default of 6789.  Since the original B4A-Bridge is registered as a different application in Android, you may have one of them running holding the port open, and if its Service is running, the Relay (or the IDE) will connect to it on port 6789. Fix is to clear the in-use/hung port by either stopping the offending application/service, or rebooting the phone.


2014/09/12 v2.10.10: “-Free” updated with improved layout.

2014/07/27 v2.10.9: “-Free” updated with changed “Wake Lock” behavior; The lock is no longer released when the Activity is paused. Use the Exit button to release the lock and exit the application. This is to fix a Compile/Run deployment issue, the android may go to sleep when B4a-Bridge-Relay-Free is paused to switch to installation. If this is found acceptable by users it will be added to the paid version.

2014/06/29 v2.10.8: Added “-Free” version so there is no direct cost to try -Relay out.

2014/06/28 v2.10.7: Added “Wake Lock”, keep the device from sleeping, while UI is up.

2014/02/13 v2.10.6: Added Tablet friendly layout, connection ‘H’eartbeat indicator and colored status.

2014/02/10 v2.10.4-5: Enhancement; Bug Fixes. In some modes, such as Portrait, the Phone keyboard is used, to make it easier to enter addresses. Keyboard is now auto-displayed when adding a client. IP entry has validation. When IP address range and wildcard was added (v2.10.3), the ability to enter a standard IP address was broken. This is now fixed. 2.10.4 did not accept IP address segments with value of 0. Fixed.

2014/01/28 v2.10.3 Update: Added a new feature where a range or wildcard can be used in the last IP address segment when adding client(s). See above for more details on how this is entered.

2014/01/11 v2.10.2 Update: Testing of the BT server mode uncovered a bug that was preventing the BT mode from starting; instead it would start the Wifi mode. Issue has been corrected. An enhancement is also in this release: Server ID (identification) displayed continues to show the Wifi IP address for Wifi mode (displayed as IP:Port), but now displays the BT MAC and Name for BT mode.

2014/01/08 v2.10.1 Update: “Clear Clients” button in v2.10 not only removed the client list from the Service, it was also unintentionally clearing the application’s backing list of clients. The intention is to have the application maintain a list of clients, irregardless of whether the Service was actively using the list. Issue is corrected; the button is now relabeled as “Skip Clients”. Also, “Start-Wifi” was not starting the Service on the correct port, until “Stop” was pressed and “Start-Wifi” pressed again. Corrected.

2014/01/04 v2.10 Initial release: is based upon B4A-Bridge v2.10. Added Apk transfer packet counting/display. Added downstream clients. Wifi mode has been tested, Bluetooth functionality not changed. This version is made available to support multiple WiFi connected client devices.

Apk transfer ‘progress’ code addition is available at: See page-1 post 18-20 for details on 2.09, 2.10.

Release Note is at:

If you find this useful beyond the low cost to you in Google Play, please consider a donation.

Please consider a donation if you find value in my free/open source contributions.