Cooking Home

A shortcut to thickening a gravy or sauce

Today I learned that you can thicken a gravy/sauce by mixing 1 part flour and 1 part room temp butter together and whisking them in, instead of melting the butter and then mixing the flour in. Pretty cool!

Every now and then when making a gravy I don’t use enough butter/flour, and I don’t realize it until I dump the liquid into it. Normally, I’d grab another pot, melt some butter and mix the flour into it. Using this trick will allow me to not get another pot dirty.


Robot lawnmowers, part 2: Robomow is bad now

In my last post about robot mowers, I mentioned that I bought the latest Robomow mower, based on my great experience with the RS630. With the RK630, I could tell that someone had thought through many of the potential issues and iterated on the platform to make it reliable and easy to maintain and even repair. Much of the robot could even be repaired or replaced without using any tools.

So I was excited to receive the Robomow RK4000. I had high hopes, but they were quickly dashed. The Robomow company has been bought and sold a few times over the years, and I think that the really good engineers have left, sadly. Now Robomow is a subsidiary of MTD, which just got bought by Black and Decker. I didn’t realize any of this until after I ordered the mower. It took weeks for the mower to even ship.

When I received it, I started setting it up and quickly discovered that this mower felt cheap compared to the RS630. I figured that I’d give Robomow the benefit of the doubt, though, and proceeded with installation. Then I realized that everything felt cheap. The 10 inch stakes that hold the robot’s charging base securely in the ground have been replaced by cheap plastic, 4 inch long stakes. That’s one place where they should not be skimping, as the robot needs to plug itself in to charge when it’s done mowing, and if the base moves, it won’t be able to dock correctly.

The base felt cheaper too. It’s made of lighter plastic and I was not convinced that it closed securely enough to keep water out of the wiring.

But I kept going. I powered the mower on and it asked me for my country and to set the date and time. Then it said that it was going to test the wire around my yard (most robot mowers require a perimeter wire around your yard that tells the robot where it’s safe to mow). This involves the robot following the wire all the way around the yard, back to its base. I pressed Go and nothing happened. Well, actually something did happen. The screen said that it was testing the wire, but the robot didn’t move. I left it overnight. It never moved. I made a second, smaller perimeter wire circle in my yard and tried that, to rule out bad perimeter wire…nothing.

I opened up an email ticket with Robomow. I got an immediate response from their helpdesk that my ticket was received, but I didn’t hear back for days (in fact, I still haven’t heard back). So I called the support number that was listed on their website, and it was answered by someone who mentioned Black and Decker, not Robomow. Based on my conversations with the guy who answered the phone, I think that their customer support is just one guy sitting in a room with a bunch of manuals for every Black and Decker product, and trying to troubleshoot based on the same information that customers have. Ultimately, he told me to try a bunch of things that I’d already done, and also a few things that were impossible to do, which he did not seem to understand.

So I returned the RK4000 and bought a Husqvarna Automower, which seems to be pretty popular these days. It worked right out of the box. So I guess that Robomow and I are done! It’s crazy how quickly a company that I would have recommended to anyone has lost me as a customer, probably forever.


Robot lawnmowers (The Robomow R630)

Af9e89793852c739 800x800ar

When we moved to our house, we were excited about our big yard. The last house we lived in had a yard that was so small that it took me maybe 15-20 minutes to mow it. This new yard was large enough that it took me an hour to an hour and a half to finish if I cut it with a walk-behind mower. Quite a difference, and a not insignificant amount of time that I’d have to spend cutting the grass. I didn’t want to buy a riding mower, which would cut down on time but would require maintenance and more storage space.

Hiring someone to cut the grass for us would be very expensive. The expense of hiring someone to cut our grass at the house with the tiny yard was so expensive that I just started cutting the grass myself. Honestly, I didn’t even check into how expensive it would have been at this house. So I decided to look into other options, and ended up with a Robomow R630 robotic lawnmower.

The Robomow was very well engineered and very modular, which made it very easy to do repairs/maintenance. In the time that I’ve owned it, it’s reliably cut the grass the entire time. I’ve replaced the blades a couple of times, and the wheel motors once (after the yard flooded a bit and it ended up half-submerged for a few hours.

I also had to repair the perimeter wire a time or two. Similar to an invisible dog fence, the Robomow requires a boundary wire to be laid out around the yard so that it knows where it’s safe to cut. Once, I cut through the wire myself while fighting a snake with a shovel, and the other time my dog got very excited about digging into a mole tunnel.

Other than that, it’s been great. Every so often, it leaves its charging base, cuts the grass, and returns to its base. The yard is always just cut.

Recently, after a little more than 4 years, we had a deep freeze that basically killed the Robomow. It didn’t even power on for about a week, and now it’s slowly come back to life, but I can’t control it from my phone anymore. I looked into replacing the main board of the unit, but it’s been discontinued, so parts are increasingly expensive and I’m not sure that it would fix the issue. So I decided to buy another robot lawnmower. Lasting for 4 years meant that it cost me about $31/month. Not bad for getting housrs of my life back!

For awhile, I’ve had my eye on the Segway Navimow, which isn’t yet available here in the states. The benefit there is that it uses GPS for navigation, so you can just draw a boundary line around your yard on a map instead of relying on a perimeter wire.

Since I can’t even check one of those out yet, I bought the latest Robomow. I went with the RK4000. It seems very much like the R630, just more refined. I’m mostly looking forward to the better tires and better blade system that will hopefully be easier to change. We’ll see how that goes! I’ll report back.


A car that moves sideways.

Forget normal parallel parking, I want a car that can crabwalk like this Hyundai concept!


A List of Things that happen in every episode of 24, ever.

1. Something absurd happens.

2. Jack Bauer is called in to save the day, as no one else on the planet is as awesome as he is at yelling in people’s faces, shooting them through walls, stabbing scissors into their necks, and generally trying to get himself killed.

3. The other agents speak in “computery” terms that make them sound completely ridiculous to anyone who knows anything about how computers work: “I’m going to vector that firewall’s hard drive to my monitor’s bus!”

4. The very people who called him in to help actively work against Jack, so instead of having the full weight of a team behind him, he has to work with one or 2 agents who have to cover their monitors and sneak around corners into server rooms.

5. Jack stabs someone in the neck with scissors/chops his buddy’s hand off/shoots a room of 50 armed men in the face with one clip from his gun/levitates/builds Chitty Chitty Bang Bang, saves the Rebel Alliance, destroys Babylon 4, gives Worf some pointers, and makes it home in time for an early breakfast, where he eats bullets, using bullets, on a plate of bullets.

6. Jack does not sleep.

7. 3:59:59.


Whenever I make scrambled eggs, I think of people I’ve lost.

I grew up poor. So poor, in fact that at one point during my childhood we ended up having to move in with my mom’s mom: Mary Noel LaGrange. That ended up workng out great for me, because I got to spend a lot of time with my grandmother.

She loved to feed me and watch me eat. Looking back through old photos, I was such a fat baby! A lot of it was her doing.

What I remember most, though, are the quiet mornings that we spent in the kitchen, when she’d make me eggs and cheese.

4 eggs. Cast iron pot. Butter. 2 slices of American cheese.

The pot she used was well seasoned, and I remember that she’d somehow get the eggs and cheese to brown in such a way that they became one delicious entity.

I was by her bedside when she passed away. I was still too young to learn how to cook, so she didn’t get to teach me how to make them.

A few years later Cheryl, the older neighbor girl who lived next door came over and taught me how to make scrambled eggs. She also passed away way too soon, in a horrific car accident.

I have made at least 8,000 scrambled eggs in my life, but I have never been able to replicate my grandmother’s eggs. There’s just something about them that I have yet to figure out.

Every time I make scrambled eggs, I think of my grandmother and Cheryl, and every now and then I throw in some American cheese and try to make those eggs.

One day I’ll get them right.


How to resolve Apple HomeKit issues between the Chamberlain MyQ Home Bridge with a UniFi router

If you have a UniFi setup with a Chamberlain MyQ Home Bridge, sometimes it can be flaky under HomeKit. Specifically, the issue that I was seeing was that the garage door opener could be seen and controlled by the MyQ app, but in the iOS home app, both the MyQ Home Bridge and the garage door opener showed the dreaded “No Response” message. It turns out that the issue is that HomeKit WiFi devices tend to use the 2.4GHz band, but your computers and other devices are probably on the 5GHz band. The UniFi router/WiFi access points will silently create 2 networks with the same SSID… one that’s 2.4GHz and one that’s 5GHz.

Normally that’s not a problem, but due to the way that HomeKit discovers devices, it becomes a quite annoying issue. Basically, HomeKit/Bonjour devices advertise themselves using something called Multicast DNS. In some cases, the UniFi software won’t send the Multicast traffic between the 2 networks, so your HomeKit bridge can’t find the MyQ Home Bridge.

The way that I fixed it was to open the UniFi Controller interface and turn on the setting named “Enable multicast enhancement (IGMPv3)”. I found it under Settings > Wireless Networks. I clicked Edit on my wireless network, and then I clicked Advanced Options to reveal the setting. Once I applied that setting, my Home Bridge showed up immediately.


Don’t ride in the bus. Drive your own car.


I’ve been entrepreneurial since I was young. I started my own business when I was 15, and although I’ve had more than a few years of working for someone else, my goal has always been to work for myself. Over the years, that feeling got stronger and stronger. I was tired of being asked for my opinion about something, taking the time to give a well-reasoned answer and having my advice be completely ignored. I was tired of working on things that never shipped. I was tired of working on things that had no reason other than “because I said so”. I’ve always done my best work when I can see the reason behind the work that I’m doing. Around February of 2013, the startup that I was working for ran out of money and after panicing for a few months, I realized that I’d built up enough of my own business over the years that I didn’t have to find another job. I figured out that if I just focused on growing the apps that I was already working on, I’d be fine.

It’s been a great ride so far. My business has grown and is continuing to grow. By December of last year, I was making as much revenue in 5 days as I did in the entire month of April.

I’ve been doing a lot of thinking recently about why I prefer running my own business. I’ve come to the conclusion that I feel that running your own business is like driving your own car, while working for someone else is like taking the bus.

When you ride in the bus: You can make suggestions to the bus driver, but they don’t have to take them (and they probably won’t). If the bus gets in a wreck, you (and everyone else in the bus) might see it coming, but the only one who can decide to avoid the accident is the person behind the wheel. The bus driver can also decide to kick you off of the bus at any time, for any reason. Conversely, if the bus is consistently the best bus on the road and never gets in any wrecks, it might get upgraded over time, or traded out for a new bus. Everyone in the bus benefits from things like heated seats, free meals, video screens, free wifi, etc (health insurance, stock options, bonuses). You can focus on just the job that you’re getting paid to do. As long as you’re getting that job done within the organization, you’ll probably get paid.

If you drive your own car: You have to be alert all of the time, because your business depends on you being able to see issues coming, and avoiding them. You’re responsible for all of the decisions, so your failure or success depends on you. However, you can take your foot off of the gas at any time. You can take a shortcut, or a more scenic route.  You can buy a sports car if you want (which may accelerate your success or failure, depending on how you drive), you can drive a reliable, dependable car, and you can even drive a minivan if you want (doesn’t go as fast as the rest, but it holds your whole family!), depending on what’s most important to you. Your mistakes and successes are your own.

In my experience, it feels pretty good to be the one driving the car, instead of riding the bus with everyone else. It’s great not to be tied to the same destiny as everyone else, with no real control over how things end up. It’s not the best choice for everyone (some people prefer the illusion of security that employment brings), but it’s definitely the best choice for me.

Maybe you shouldn’t be riding in the bus either.


Say No More Often.

Earlier in my career, I found it very hard to say no to anyone who asked me to do anything for them. I was just happy that people were using what I built, and I wanted to do whatever it took to keep them using my products. If a customer asked for a feature, I’d most likely trip over myself to add it.

Lately, I’ve been saying no more often, both to existing customers who ask for things that are outside of the direction that I have in mind for my products, and to potential new customers who ask for me to do things that I’m not comfortable with (recently a potential new customer asked me to sign an NDA for them to start a trial of my SaaS app, and I said no).

I think that the root cause of my inability to say no in the past was that I didn’t really have a defined audience or direction for my products. It’s pretty hard to be able to say no to things if you don’t know who you want as a customer. So I took some time to define my ideal customers. Since I know who they are now, I also know who doesn’t fit into that group, and it’s easy to tell them no when they ask for things outside of that. I’ve also found it easier to say no once I realized that even if I did what they wanted me to do or added the feature that they wanted me to add, it wouldn’t be something that I would really care about, so the app would suffer overall from lack of focus, and they’d probably leave eventually anyway because I wouldn’t be fully invested in making that feature better over time, leaving me with a feature that literally no one wants.

So, take some time and figure out who your ideal customers are, and what your longer-term vision for your product is. It doesn’t even need to be super long-term, just your vision for the next couple of months is fine. Taking time out from the daily grind of writing code or marketing your app to define who you want for your app to serve will pay off dividends for years to come, and your app (and your life) will be much better because of it.


The stages of being an entrepreneurial developer

Learn to code. Write a lot of code for fun.

Figure out that people will pay for you to write code, start writing code as a job.

Figure out that you want to be in control of your own destiny, and start writing code to solve problems that you see. Make no money.

Figure out that you actually need to solve problems that people see as problems and are willing to pay for solutions for.

Figure out that even though you’re solving real problems that people are willing to pay for solutions for, no one knows about them.

Figure out that you can write the most technically brilliant code ever, but if no one knows about the value of your code, it’s worthless because you can’t feed yourself with brilliant code.

Figure out how to tell people about your products, and how to present them in a way that people will pick up on and buy.

Start selling products successfully.

Spend more time thinking about writing code than writing code.

After thinking about writing code a lot, write less code.

Write smarter code.

Blog more.

Write better marketing copy.

Teach others.

Keep learning.