My name is
Christian, lead developer (resume), writer, photographer, runner,
gun enthusiast, libertarian (voluntaryist),
A visit to cousin Dave'sNews, Auto ·Saturday April 16, 2016 @ 19:30 EDT (link)
On this trip back to Canada we had the chance to visit my cousin Dave and his wife Danielle at their place in Wellandport, a sprawling property which features a number of vehicles in various build states (like the field cars, used, when it's drier, in time trials around the track), a well-equipped garage and outbuildings, and the residence, all of which have been extensively upgraded by my cousin, including the installation of a kitchen where there was none. He can be seen in the first image in the stack at left, on his tractor, which while a little older, is in fine working order and has the power to pull trucks out of mud or haul a wagon with four of us (my parents, Honey, and I) in it.
Emily and her boyfriend Johnny (parents own a vineyard which he manages) joined us for dinner, delicious burgers. Dad and David got to playing various stringed instruments (guitars and a banjo) later. I started and then borrowed Losing Joe's Place, one of the Gordon Korman books I hadn't read, to finish later at home (and now have, and need to make sure it goes back to Canada on the next trip). It was the usual Korman fare, but I didn't like it was much as I Want to Go Home or the (early) McDonald Hall books.
Later on I headed over to Shaphan and his wife's place for a college and careers bonfire (Honey didn't want to be around the smoke), where I talked with Jesse and others about chainsaws, since I'd just gotten the DeWalt for clearing the path to the range, and learned I wasn't the first person to get one stuck temporarily…. I also talked with Jamie, and with Andrew, who was working with my cousin to build remote control into a (regular, normal-size) car, which sounds like a fun project and I wish I was closer to participate.
Books finished: Confronting Reality, Warbreaker, Debt of Bones.
Of lawn mowers and chainsawsNews ·Thursday April 14, 2016 @ 18:27 EDT (link)
The house sits on seven acres, and requires new tools for maintenance, starting with a hose, which I bought two lengths of to connect with a valve so I don't have to go all the way around back to the hose bib to turn it on or off. We shopped around to pay someone to mow the first time, and got some good advice: get a zero-turn mower. I had been looking at John Deere, probably something in the X300 series, but after opening up to zero-turns (the lap bar steering turned me off them), I got a Toro SW5000, with a steering wheel instead of bars, and it's been excellent, even fun to drive. On advice I hunted around for ethanol-free gasoline, since ethanol can be hard on small engines, finding it almost an hour away at Harvest Land Co-op in Greenfield (there are other locations but not with ethanol-free gas).
The advantage with the steering wheel over the lap bars is that there's no learning curve; I hopped on and was driving it right away, and so was Honey (see pictures). Zero-turns are easy to make. I had the mulch kit pre-installed, and bought a cover so I could leave it outside, although I might put it away in the shed over winter. I bought it locally from The Mower Shop; I found the best price at a dealer online, but I figured I'd stop in to see if The Mower Shop could meet the price and knock off the tax, and they could and did, and the delivery experience was great too.
Speaking of which, a couple planned projects: bring power (sub-panel) over to the shed for a light or tools, and build a workbench. Trenching to bring cables across seems the most difficult, so overhead or at least above-ground (in flexible all-weather pipe) might be the way to go, and electrical work the most dangerous, but doable.
Another maintenance tool I've had to use is my old backpack sprayer, which I haven't used since our house in Duvall, and it's held up well (except I had to replace a bolt/nut in the pump-arm); I use it to spray RoundUp to kill all the plants that love to shoot up where plants shouldn't (driveway cracks, on the stones behind the house, path to the range, edge of the garden beds, and so forth).
For other indoor and outdoor tools I've been buying DeWalt 20V/40V; they had a combo deal with hammer drill, impact driver, and a light in a hard case, that's been handy for assembly and such. The leaf blower has been great for keeping the driveway clear and when we had a couple trees come down over the path to the range out back during high winds, I added their chainsaw, which worked great for clearing things up (the 90-day return guarantee also helped persuade me to give it a try over gas, and not having to keep gas in it, or worry about how to mix it). Lowe's had a free battery rebate on a string trimmer, and what I needed was beyond my old corded one, so I added that too. I considered getting a pull-behind spreader for the lawn tractor, but assembled my old Earthway manual spreader and gave it a try and it did the trick.
I had to fix the front (electronic) gate keypad too; the internal battery holder had given up (under stress of previous battery corrosion? even though the current ones were good), so I removed it, swapped in a new one, and soldered it on (a recently acquired skill).
New house in NoblesvilleNews ·Tuesday March 1, 2016 @ 17:03 EST (link)
Our three-year search for a house came to an end last year, and we closed on this house in December, and, since we had only a few months to go on our apartment lease, decided to ride it out and move things gradually, hiring a truck (Two Men and a Truck, in fact) for the larger items. Speaking of which, Sunlake Apartments did very well and, as we left everything cleaned, refunded our full security deposit. I'm dating this back to March 1, when we were starting to be fairly well settled.
One of the first things I had done was to install Ethernet (cat6, 23 AWG, CMR UTP, to be precise); I looked into doing it myself but was concerned about making holes in the wall where there ought not to be holes, or other damage, so I paid a professional, Jeremy of Mine Electric, to do it, and was very happy with the results (and based on the trouble they had, I made the right decision to leave it to the pros). I connected it up to a TP-Link 24-port switch and put a TP-Link router between the switch and the incoming internet. We have both AT&T—business class for the servers—because their customer service doesn't suck, and Comcast for speed; since the router made it convenient I took a page from my friend Bob in California's book, even though I don't do a lot of work from home. AT&T is slow due to distance from the distribution point, and if Comcast can manage not to mess things up too badly we may go with just them. Using an actual router is a change from previously having my Linux server/firewall/NAT connected directly, and surely a security improvement, although it made for some topology changes. The previous owners left a cable modem, which we were able to use (after a bit of persuading Comcast's tech support) and a wireless router, which we moved into the living room (and turned into more of an access point, installing DD-WRT). The main server, minas-tirith, lost 1007 days of uptime when I moved it (but that's 1007 days of unpatched kernel vulnerabilities too). It is being switched from Gentoo to Arch Linux (it started as Redhat, a few motherboards and CPUs ago), because that's what I've been using lately and it's also an opportunity to embrace more best practices in regards to security and layout.
Around the end of January I was rear-ended turning into the driveway, but the other person's insurance paid up reasonably for the most part (they tried to fob off an aftermarket trunk lid on me, and I had to pay the difference), and I got the car back about a month later after driving a blue Dodge Dart in the interim. I started putting my hazard lights on turning for a little while after that, but decided that was unnecessary and just made sure that the person behind was giving me enough distance when I signaled, although I don't know for sure if that would have helped; even with distance if the following car is going too fast and not paying attention a collision can result. Parts of the exhaust pipes, trunk lid, bumper, lettering all had to be replaced, and the license plate frame was badly bent.
Speaking of Bob in California, he and his wife Jill and their son Raven got to be our first guests (but due to snow in Colorado not our first overnight guests), stopping in on the way to tour Purdue since their son had early acceptance there for an engineering program, and we had a nice visit.
Several useful items were included in a bill of sale with the house, such as the comfortable leather chairs in the media room, and, speaking of which, a couple more TVs, probably both newer than ours. Since we don't use cable or the like, I bought an MSI Cubi, a small computer, to connect to the media room TV (the other TV, in the kitchen, has a computer connected, which I'll update at some point). I set it up with Kodi like our main TV, and put it on the local network, although for various technical reasons it only accesses our movies so far, not TV shows; but we usually watch shows in the living room and go to the media room for movies anyway.
There's still work to do but we're fairly comfortable here, have maintenance figured out, and are enjoying the space and benefits of the new place (like the great kitchen). And we'd be happy to have more visitors!
Books finished: Zero To One, The Icarus Deception, Hunters of Dune, Sandworms of Dune, The Law of Nines, Paul of Dune, The Winds of Dune, Sisterhood of Dune.
Back to ExacqNews, Technical, Work ·Friday August 21, 2015 @ 19:44 EDT (link)
A few weeks before leaving the startup I was at I had heard that the embedded manager at Exacq, where I worked previously (as manager of API and integration) was retiring. Since I'd been doing embedded development for about the past year and a half, and found it very much agreed with me, I entertained the idea of being able to return to Exacq to replace him when he left. While my time being paid for embedded development specifically consisted solely of said startup, I had a longtime interest in low-level development, compilers, drivers (some for pay), performance optimization, and so forth, and all the algorithms and data structures I could sling applied equally well to embedded systems. So I contacted my former director, we had a good talk over lunch, and started the process for me to come back. It was a bit nonspecific, because Exacq got acquired by a large company and the wheels can move slowly; and also due to company-wide restrictions special approvals had to be obtained and starting would be delayed although I'd at least be able to overlap some with the retiring manager so I could learn and transfer what I could from him.
In the intervening time, as can be seen, we took some trips and read some books. Start was supposed to originally be the beginning of August, but due to more of those large-company delays ended up being closer to the middle of the month. There were also some personnel shifts very close to when I started, somewhat like in API, and I may be able to hire another developer in the upcoming new fiscal year.
There was indeed quite a learning curve to become familiar with the various hardware, firmware, and tools "owned" by the embedded group; I think I got enough of a crash course to be where I can teach myself anything else I need. Developing products that connect to PCs (PCI or (internal and external) USB) is different from developing on more self-contained microcontrollers, although it also makes debugging easier. Our team is also responsible for managing builds, the build server and (usually quarterly) releases (we hope to trial continuous integration soon too). We also own "Edge": running the exacqVision server on (sufficiently powerful) cameras. There is plenty to do; my only complaint is that there's not a lot of pure development per se at the moment; but there's lots to learn and work on and the company is very open to new projects.
Canada tripNews ·Saturday August 8, 2015 @ 18:55 EDT (link)
Hot on the heels of going up to Florida, I decided to go up to visit my parents (and some sisters) in Canada. This time Honey didn't come with me, since she was visiting her parents.
I visited with the Yades while I was there; played Lords of Waterdeep with Jon and Mrs. Yade—second time playing; I believe I came in first the first time I played, didn't this time; beginner's luck.
I swam a lot, and hung out poolside with mom, dad, Emily, and Julia, whoever was around, unwound, tried not to aggravate my sunburn any worse. Julia's at a fairly new copywriting job in Toronto, and Emily recently finished her required internship to become a registered dietitian and will be looking for work soon.
I did forget to bring the spoons back, though.
Books finished: The Litigators, Managing In the Next Society.
Florida visitNews ·Monday July 27, 2015 @ 21:58 EDT (link)
Since Honey's taking distance summer courses and I have some time before my next job (more about that in a later entry), we thought we'd take up a good friend's offer to come down to Florida and stay with them. They live in the St. Petersburg area, where I worked for a little over a year with (although not on the same projects as) my friend Sriram. He and his wife Saranya have two boys. (I've been trying to convince him to move up here and work for Exacq ever since I left there to manage the API group, although I can understand being reluctant to leave Florida, and other reasons.)
They have a beautiful house to the north of St. Pete's (a ways further up than Pinellas Park where we were). From there we traveled around the area a bit; we went to Fort DeSoto beach a few times (and got rather burned; how soon we forget), and ate at the Vietnamese place we used to go to; and on Sunday went to visit with friends at Grace Gospel Chapel in St. Petersburg proper. We just hung out and talked some, e.g. about some startup ideas and plans and the state of the US immigration system (lousy) and education (ditto). We had hoped to get out canoeing somewhere, but the weather did not favor us for the times we had available.
We were only there a little over a week, and it was a fine relaxing time; we came back on the 22nd.
Books finished: Callahan's Con.
Leaving yikesNews, Technical, Work ·Friday July 24, 2015 @ 22:47 EDT (link)
I was the Senior Development Manager for Firmware at Yikes, LLC for a little over a year. Before that, I also did some part-time contracting work for a few months, but they wanted me to come on full-time and we negotiated to an acceptable offer.
While I was there, I architected a system (if link is dead, search the web for articles on "hotel mobile key") I'm proud of, under constraints and complications that made it very difficult at times. I also designed and implemented the firmware and protocols for the in-door device in C++ (C++14, GCC ARM Embedded on Nordic ARM Cortex M0-based microcontrollers), including:
Many of these also involved host-side Bluetooth (BLE) tools (using a USB dongle) written in Python. I also built the first Android mobile app that could access doors—my first mobile app—and then when that was easy, some debugging apps too. This position was a great learning (self-teaching) opportunity for embedded development, which was a good fit with my past experience with compilers, C++ application and protocol development, and driver development. Low-level development has always been of interest to me, and a device with an ARM Cortex processor and only a few kilobytes of RAM to play with is pretty low-level. There were also power constraints: consumption had to be low so that the battery life would meet hotel requirements: physically accessing the doors to replace a battery is expensive and disruptive (that's also why over the air firmware updates were developed). Other resource limitations included bandwidth (BLE, which was also expensive in terms of power) and persistent storage (for reports). These were complex problems to solve, or sometimes careful trade-offs, and I strove for elegant solutions to each one. At one point I took a spare device with Bluetooth support and threw a web server on it and created some web wrappers around the Python tools (with web sockets notifications, also new for me), and ran periodic automated integration tests via the web socket server too.
- interfaces with several locks (and elevators)
- Bluetooth (BLE) communication with phone and other devices
- dynamic configuration model
- event and status reporting (e.g., battery level)
- touch-sensing algorithm (capacitance)
- inside/outside detection algorithms (RSSI)
- over the air firmware updates, boot loader
- over the air debugging (GDB server)
- the security/encryption model (AES-CTR etc.)
- flash file system for storing updates (SPI)
- door open/close detect calibration/algorithm (magnetometer, I2C)
- live-streaming of various debug data (e.g., proximity, capacitance)
- robust message-passing protocols (UART, BLE)
- low-power optimization, shutdown/wake
- "buddy" memory allocator for determinism
So this was fun, certainly, but I expected more than just an opportunity to teach myself another kind of programming (as useful as that has been; see future posts); that was not the whole of the position offered.
All the best to everyone there. I've provided a solid foundation but you have a lot of competition and they've already shipped.
Books finished: Snakes In Suits.
Dune prequels and fat startupsNews ·Saturday July 18, 2015 @ 12:22 EDT (link)
With a series as great as Dune there are serious concerns that anyone continuing it after the death of the original author would fail to capture the spirit of the originals; but I was very pleasantly surprised that Brian Herbert and Kevin J. Anderson's prequels are great in every way, living up to and extending the original works, and I look forward to reading their sequels too.
My former manager at Exacq recommended a couple books which he had successfully applied, at least in part: The Lean Startup and The Geek Leader's Handbook. I haven't The Lean Startup yet, but it has been interesting to look back and note the problems resulting from the lack of application of the principles therein. GLH does have some useful tips but the authors could have done much better pulling together the various articles that became the book; it lacks cohesion, although the individual chapters, except toward the end, are helpful, especially, as promised, "contraxioms": the ways non-geeks look at the world. Apparently we geeks are a lot pickier about what we consider a lie, for instance.
Books finished: Mightier Than the Sword, My Secret Life On the Mcjob, Callahan's Legacy, Peter Drucker On the Profession of Management, The Sword of Shannara, Sewer, Gas and Electric, Callahan's Key, Dune: House Atreides, Dune: House Harkonnen, High-Maintenance Employees, Dune: House Corrino, Dune: The Butlerian Jihad, How Toyota Became #1, Dune: The Machine Crusade, Purple Cow, Being Geek, Good Boss, Bad Boss, The No Asshole Rule, The Lean Startup, The Rise and Fall of the Third Reich, Dune: The Battle of Corrin, The Geek Leader's Handbook.
General update, March 2015News ·Sunday March 8, 2015 @ 19:26 EDT (link)
It's been five months, so this is just a general update.
Honey expects to complete her BS in Psychology at the end of 2015, and is doing very well in her classes and enjoying most except math (fortunately she has her last math class this semester). She is looking at graduate school options in the area.
As of the end of February, I will have been at Yikes one year, counting initial consulting. While the work is interesting—I have had the opportunity to teach myself embedded development, Bluetooth (Low Energy), and lately develop a flash file system—the politics, for want of a better term, can be depressing. I have written about some of the technical challenges on Code Visions, my technical blog.
Indiana as a state seems a little boring. The parks aren't great and there aren't beaches like Florida; we're not enamored of the cold weather, preferring the South; at least cost of living is fairly reasonable.
I am listening my way through William L. Shirer's The Rise and Fall of the Third Reich which is interesting so far.
I have migrated our home entertainment PC from MythTV to Kodi (formerly XBMC), using a custom video add-on that I developed that reads available show information directly from Sick Beard's database. I did this on a new machine (old case, new MB, CPU—our first Intel for a while), and the old one will be decommissioned after the remaining network HDs are moved off of it. I'm pretty happy with the end to end system now; it's pretty much everything I planned to build and looks good, too. There were some add-on requirements that required Kodi changes, too. I suppose I'm looking for a new project now. I've considered looking at incremental compilation with Clang to use it in conjunction with an editor; KDevelop 5 will be doing this, but I haven't heard much about it of late.
Books finished: The Redemption of Althalus, The First 90 Days, The Effective Executive, Shadowdale, Tantras, Waterdeep, Dragon Wing, Elven Star, Fire Sea, Serpent Mage, The Hand of Chaos, Into the Labyrinth, The Seventh Gate, The Integral Trees, Kane and Abel, Life On the Mississippi, Only Time Will Tell, The Sins of the Father, Best Kept Secret, Be Careful What You Wish For, The Psychology of Computer Programming.
David and Danielle's weddingNews ·Saturday October 18, 2014 @ 20:14 EDT (link)
My cousin David (Robins) and Danielle were married at Portal Village in Port Colborne, Ontario today.
<Previous 10 entries>