Over the last ROS has gained a large following and mindshare in the robotics community, both in academia and industry. Its flexibility, ease of use, and wide variety of packages make it great for getting up and running quickly. ROS also has easy integration with the Gazebo simulator making building smart robots even easier.
On Hacker News this morning I came across http://www.nanoant.com/c++/cpp-field-accessors-cure-for-public-field-fobia which tries various ways of improving the hellishly verbose getter/setter situation in C++, but fails to find one that works adequately.
Supervisord is a really simple way to control deployed and long-running processes in the cloud. Configuring a regular program to be run and monitored by Supervisor is dead simple. Supervisor only requires that your program stay in the foreground (not daemonize itself) and it will handle starting, stopping, logging, and monitoring your program for its lifetime.
My work laptop is a little bit underpowered and Gnome Shell has been bothering me to no end, so I decided today to switch over to the tiling i3wm window manager. I have tried a few different ones in the past, but never stuck with them for some reason. I was feeling adventurous and fed up, so today felt like a good day to make the switch.
Update: Includes additional CUDA packages that had been missed in original version.
TL;DR - Only ever use a single version of ZMQ at once.
cmake on my Macbook Pro under Mavericks had been taking extraordinarily long. To configure a moderately-sized project (~3000 source files, 159 CMakeLists.txt files) I had to wait 30 seconds! On the “CMake Performance Tips” page, they mention that configuring VTK, a very large project, took 14 seconds. Clearly something was wrong.
I recently ran up against Github’s hard limit on file sizes. They put a hard limit of 100 MB for individual files and a per-repository limit of 1GB per repository. The overall cap is understandable, but I think the 100MB file limit is too restrictive.
Yesterday I wanted to extract the last 2 reprojection errors from some log files and came across/created a nice Bash one-liner to do the job:
Over the last six or so years, I’ve done development on both OS X and Linux, frequently switching between the two and occasionally cross-compiling from OSX targeting Linux. I got used to APT on Linux (Ubuntu/Debian), and always dreaded having to set up a new dev environment on OS X.
Homebrew really is everything Fink and MacPorts wish they could be. It works well, it’s easy to modify, and, for the most part, it fits right into your workflow without any changes. Using programs installed by Homebrew doesn’t require you to change your
$PATH since /usr/local/bin is already included and most libraries are also available immediately in /usr/local/lib.
When I graduated from college with a good job, I kept hearing my friends say: “I should have studied computer science!” My (internal) reaction was always the same. I believe that if they had spent time during college participating in some sort of intellectual or academically oriented extracurricular then they would feel differently, regardless of their major.
This post was going to be about my experience participating in the Crossfit Games, but I thought it would be timely, given my impending departure from Boston, to instead share my thoughts on Crossfit overall. I’ll be reluctantly leaving Crossfit Boston in a few weeks after about 14 months as a member, and in this post I’ll share my thoughts on the Crossfit community and fitness program. Note: These are only my opinions and only reflect my experience at Crossfit Boston and a few other boxes around the country.
When it comes to C and C++ build systems, I strongly prefer CMake. Its combination of clean syntax, C/C++ built-in support, and dependency management is hard to beat in the C++ world. That said, I think CMake could benefit from some improvements to its core functions. In this post I will describe a few bits of CMake functionality I use in my projects to make life easier.
I haven’t heard much about “Resolutions” this year from friends or family, or even in the media. Perhaps after years of failed ideas, people have toned down their expectations. Ever optimistic, though, I’ve decided to make a few resolutions of my own. I still think it’s a good excuse to do some life-refactoring and try to make some concrete improvements.
© Jack Morrison 2017