Unsolicited plug: Tile trackers

tile-large

A few months ago, mostly out of curiosity, I ordered a few Tile trackers. I’d backed earlier Kickstarters for similar products, but the Tile seems like a smaller, sleeker package. After they finally arrived a few months later, I didn’t have an immediate need for one so I just attached the first to my keychain.

I honestly didn’t think I’d get much use out of it, but after a couple months I’ve had to invoke it about twice a week, and it’s been amazing being able to find my keys within a few seconds. I honestly didn’t think I lost my keys that often, but it’s way more often than I thought.

About the only downsides to the Tile is that it works only within about a 50ft radius of my phone/WiFi, so it’s not good for a roaming pet that wanders your neighborhood or a laptop bag you might lose on a plane.

I’ve also found that after setting up a second one, I tried to give it to a friend but there’s no universal “reset” to a Tile. You have to manually email customer service, wait about a week, and ask them to change the owner accounts on a specific tile.

Is that because they want people to be able to track people on the sly? So maybe thieves can’t turn a Tile off? I found it a bit weird, as well as the included high strength double-sided tape that came with the devices. I know they were aiming for things like TV remotes with it, but the tape gave off a vibe of “stalk your ex by attaching this to their car” when I first opened the box.

Templateitis

We should have a term for when you see a whizbang template, spend an hour incorporating it, then realize it’s actually terrible (only after you have sunk considerable time into the effort).

The internet of buggy things

For the last 15 years or so, I’ve tried out pretty much every home automation thing under the sun. The good news is products are generally getting better and easier to use as companies jump onto the Internet of Things bandwagon, but the bad news is many things are still unreliable.

It’s a tough problem to design to, since virtually everything in a house is very nearly 100% reliable all the time. When was the last time a light switch just up and died on you? And having everything use WiFi as a backbone, itself kind of an ad-hoc standard that sorta mostly works most of the time combined with house electronics is a recipe for disaster.

I really have been locked out of my house twice due to spotty WiFi. I am hesitant to try out any of the WiFi-enabled door locks as a result.

One of the most user-friendly line of products out there is the WeMo line from Belkin. They’re easy to set up, offer flexible options, but after using two hard-wired light switches, three wall plug units, and two motion detectors for the past six months or so, I have to say they don’t hold up over time and it’s baffling how they have failed.

A couple weeks ago, one of my wall switches stopped working on the iPhone app remote, but also the physical switch no longer functioned. A day later, it worked again.

I have a rule for another light switch set to turn on at sunset, and off automatically at 10:30pm. The time of “sunset” doesn’t seem to shift, but amazingly the shut-off time does. Right now, the light goes off every night at 10:08pm. Keep in mind, this is a light switch hard-wired to electricity and has an always-on WiFi connection. Not a single engineer working on the project thought to write some code to maybe check a time server once a day or at the very least once a week? I’m amazed that a time drift of 22min is even possible.

Lastly, one of my WeMo plugs is connected to a set of backyard lights that are fairly far from the WiFi base, but I’ve set up two WiFi extenders closer to the backyard and still the device can connect to the network only sporadically.

Anyway, I know these aren’t easy problems to solve, but given that I prefer my house to be close to 100% reliability, bringing things in from the world of computing that often come up short of that number isn’t really a recipe for success. To anyone considering Internet of Things objects in their home: tread carefully and prepare to be disappointed.

Training the workers of tomorrow

So last month, after seeing loads of Twitter ads for a HTML/Javascript class in Portland, I signed up for a class from Code Fellows. The class finished last week, and I wanted to write up some thoughts about it.

The class was their introductory “Foundations I” course and the aim was to introduce students to HTML, CSS, Javascript, jQuery, and the fundamentals of computer science. That sounded like a heck of a lot to cover in 8 2hr sessions over 4 weeks, but you’re probably wondering why I even signed up for it, since I know HTML/CSS pretty well and probably have introductory experience with everything else. My answer is that I have never learned javascript, like not even a hello world or basic understanding of the fundamentals and I’ve always wanted to sit down and do that. The second reason is that I was curious what a crash course in technology is like and what companies are doing today to try and train people to get into the industry. I wanted to see what coursework covered and how continued development and/or recruiting followed from it.

The course overall was good. The first week we dove right into the basics of javascript, with loads of homework assignments and small group work, and I felt like I was drowning in a good way. It was pretty intense right out of the gate, and continued for the next week. We kept progressing with javascript mainly, and after a couple weeks finally got to jQuery. It was nice to see why jQuery made things easier (we spent two weeks writing javascript by hand, to learn “the hard way”) but I would have understood if the class was jquery-only instead. After the first couple weeks, the organization of the class kind of got murky. We didn’t have tons of small homework assignments and instead did bigger projects once a week. There was still some group work, but it was mostly to help each other solve our own project problems instead of work together. The third week of the course we covered algorithms and it turned out to be a really good section that taught me how to evaluate efficiency (I know what Big O, n log n vs. linear n vs. n^2 all mean). The final week we just mostly worked on our final project.

The course covered a lot of things outside of the basic subject matter in the course description. We had to learn how to use github and all the tools around that and we spent time getting deep into Google Chrome’s devtools which was key to javascript debugging. We covered CSS a bit and only HTML briefly -- I suggested to the instructors that they drop “learning HTML/CSS” as any part of the class and instead assume future students know enough about HTML/CSS to use them fluently in the class. I felt bad for anyone that came into that class never having viewed source before.

The course instruction could have been a lot more organized. It felt like we used a dozen different tools and web apps to do the class to the point where during a possible ice storm that would cancel a class meeting I had to check in three places to get updates (chat, discussion board, announcement site). I kind of wish they built their own CMS to handle everything in one place instead of requiring so many outside tools. The homework was fun, challenging, and intense the first week, less so the second week, then non-existent until the end. Our homework assignments were to make little javascript guessing games and improve existing ones, but I felt like more real-world homework could have been better. Perhaps give us 80% completed code projects we have to finish, or a 100% done project that has significant javascript syntax errors (this is closer to what real coders do each day). I also wish the class taught people how to progressively enhance a web page, so that maybe on day 1 we build a basic homepage for ourselves and by the end of the course it’s all parallax and jquery and impressive looking.

Overall, I had a good time for the energy and costs involved, I finally got a basic understanding of javascript and I completed a bunch of codeschool and codeacademy tutorials I never had the motivation to finish.

My final project is here, and our assignment was to make a visualization of sorting algorithms where we compare one form to another in any way we felt. I remembered the story my old friend Chris Wetherell told me about trying to join Google eons ago, and I used that story as a jumping off point to illustrate some basic number array sorts.

With this course under my belt, I’m working on a new small project I hope to finish this month that basically just requires a bit of jquery and HTML to get working.

I could also tell this intro class was mostly a gateway drug to the more advanced stuff Code Fellows teaches (and the pricing goes significantly up), but I don’t see myself joining their next javascript class with my barely introductory proficiency, but I am curious about their intense python courses for real world web development (but that class runs $10,000, guarantees a job at the end, but only after months of intense daily classes and work). I’m not sure if I’m that into Python just yet.