Code Assist for NativeScript views in WebStorm

For the last few weeks I’ve been spending a bit of my spare time getting up to speed on a relatively new player in the mobile application space named NativeScript. NativeScript lets you write cross-platform mobile applications in TypeScript (or plain javascript if you prefer), a subset of CSS and XML files for views.

One of the struggles I have when I’m learning a new technology is that I’m very slow because I’m constantly switching to a browser to look up syntax, attributes and other language specifics before the mental “muscle memory” is formed. Good IDE support helps with this as the IDE makes suggestions that many times can let you find what you need without having to switch to a browser and look it up. Unfortunately, NativeScript is SO new that support from many today’s popular IDEs isn’t available yet.

Read More

Standing Desk Update

Almost 18 months ago I wrote about starting an experiment with my standing desk. Then last summer, I purchased two ERGO adjustable standing/sitting desks from Autonomous.ai for my wife and myself. I’ve now had the ERGO for a little over 7 months and wanted to share an update about it.

As I mentioned in the unboxing video that my son and I did, the desk is built very solidly. It’s very stable both during regular use and while moving from one position to another. The motors, while not completely silent, are quiet enough–and fast enough–that I can move between positions even when on conference calls without disturbing the conversation. I have gotten a few interesting comments however when I move from one position to another while on a video call and suddenly the other participants start to see the room moving in their video feed!

Read More

The Perfect (Network) Storm

For the last few months, we’ve had a really annoying and intermittent issue with our home networking setup. I’ve had my home network configured to use the 192.168.100.x IP range for several years. In February this year, my Time Warner issued cable modem failed and I purchased a Motorola SB6121. This summer, in preparation for Google Fiber coming to our area, I upgraded my router to a Cisco RV130 small business VPN router. Ever since then, at odd intervals, we’d notice issues with internet access and discover that the router had reconfigured itself to use 10.10.10.x range for the internal network.

After the first couple of times of manually resetting the IP range, I created a backup config file to quickly restore the correct settings and reboot the router. I contacted Cisco support and spoke with several different support technicians. One had me set up a syslog server on my network so we could get a durable copy of the log entries from the router since the internal logs are cleared on a restart. This week, the support tech I was working with and I were reviewing the logs and found something pretty startling.

Any time the cable modem would lose connection to the upstream network, it would assign the IP address 192.168.100.10 to the device connected to its ethernet port until it could reestablish a connection to the upstream DHCP server. That device just so happened to be the WAN interface of the RV130 router. Even though it only happened for a few seconds, the router would see an IP address on the WAN in the same range as the internal LAN. At that point, it made the decision to change the internal IP range to 10.10.10.x to avoid a conflict.

The fix was simply to pick a different IP range for my internal network. Once we figured out what was going on and reconfigured the internal IP range, I tested the theory by power cycling the cable modem while tailing the log file from the router. Sure enough the router configuration stayed consistent and we haven’t had issues since then.

Who would have guessed that a decision that I made 8+ years ago would conflict with a decision the Motorola engineers made for their equipment defaults?  I’m just glad we’re finally stable and I can get back to solving problems with the software that I write vs the stuff in my house that needs to “just work”

Spotify – You can check out, but you can never leave

UPDATE: After replying to the email below, a support representative got back in touch and my Spotify account is now closed. I made sure to let them know that my reason for closing my account was their privacy policy. No idea if it’ll make a difference or not but maybe if they get a bunch of people leaving they’ll wake up.


As I was catching up on overnight updates in my Twitter stream this morning, I ran across a conversation talking about the new privacy policy that is now in effect at Spotify (you can read the highlights here or read the entire thing here).

I’ve been a very casual user of their free account for the last year or so but had recently started using their service more from the app loaded on my Mac. As I read through the highlights of what Spotify makes you agree to let them do, I decided that their service was no longer something I was interested in. I uninstalled their apps from my Mac, iPhone and iPad (and will be making the rest of my family do the same thing later today). I then began searching for how I could have my account cancelled and that’s where the real frustration for the day began.

Read More

Autonomous ERGO Desk – Unboxing and Assembly

Last fall I wrote about making the switch to a standing desk. At the time I went the “cheap” route, getting a used frame from a friend and a recycled door for the top. A couple months ago, I found out about a project on Kickstarter for an electrically-adjustable desk. My experiment has gone so well (hey, I’m still using the standing desk 10 months later) and the project looked so great that my wife and I decided we needed these to replace our existing home office desks.

The project touts itself as the first smart office desk—offering a sort of artificial intelligence that knows when you come to the office, tracks when you need to transition from standing to sitting and can even interfaces with your home automation system. At then end of the day, we decided that we didn’t really need the “smart” features for the difference in price and purchased two of the “DIY” models. The DIY model consists solely of the frame and adjustment controls without the smart features or the top. I also have some pretty specific desktop size needs that the top offered with the desk could not meet, so we’ll be building custom tops for our desks soon.

Read More