Squadrick a personal tech blog

(Better) Interprocess Locks

Jan 2020 Update: This lock does not work. Please don’t use it. I’m currently trying to fix it. Check out the previous post instead, which as of right now seems to work as intended. In the words of Linux Torvals: “Because you should never ever think that you’re clever enough to write your own locking routines.. Because the likelihood is that ... Read more

Interprocess Locks

Interprocess message passing is an important tool, especially when developing large complex systems like robots. ROS is commonly used for pretty much every small/medium scale robot, and it’s no different at Project MANAS where we were using ROS across the board. ROS uses a publish-subscribe paradigm for communicating between messages, and intern... Read more

TensorFlow Addons

I’ve recently spent a lot more time contributing to open source software. One of the major projects is TensorFlow Addons, which a SIG that basically replaces the old tf.contrib for TensorFlow 2. I was fortunate enough to be made a maintainer of the project. We recently released this blog which talks about Addons in details. Read more

Guarded Types in C++

I was working with C++ to build a replacement for Costmap ROS to use in a driverless car, since Costmap ROS is targeted towards smaller autonomous bots. To this end, the current plan is to make it work in real time, and include some more functionality (like bayesian updates). In my implementation, the costmap is split into two parts: Costmap, w... Read more

Neural Network Compiler (NNC)

This was the documentation for a project I completed as part of my compilers class. It’s a language to define neural networks, which is then optimized and compiled into efficient executable C++ code. The code of the compiler needs some refining, and will be released shortly. Also, note that the entire project was completed in around 48 hours, so... Read more