I use Python in my day-to-day work for scientific computing and software engineering. Occasionally, however, I find myself working with equipment that only supports MATLAB, and I need to stream information quickly between MATLAB and Python modules.
These days, there are many serialization formats to choose from when programming in Python: JSON, BSON, protobufs, Avro. Unfortunately, MATLAB only offers an official implementation for JSON. The nice thing about JSON is that the messages themselves are very readable. But the downside is that the messages end up huge, resulting in slow send times, and I needed something fast. …
In this tutorial, I show how to share neural network layer weights and define custom loss functions. The example code assumes beginner knowledge of Tensorflow 2 and the Keras API.
For a recent project, I wanted to use Tensorflow 2 / Keras to re-implement DeepKoopman, an autoencoder-based neural network architecture described in “Deep learning for universal linear embeddings of nonlinear dynamics”. My end goal was to create a user-friendly version that I could eventually extend
DeepKoopman embeds time series x onto data into a low-dimensional coordinate system y in which the dynamics are linear.
A brief description of Champion, Lusch, Kutz, and Brunton (PNAS 2019).
In “Data-driven discovery of coordinates and governing equations,” Champion, Lusch, Kutz, and Brunton develop a method to discover low-dimensional dynamics from high-dimensional systems. Their work is motivated by the recognition that the discovery of governing equations for dynamical systems first requires the use of the appropriate coordinate system. The authors build on SINDy (sparse identification of nonlinear dynamics) by adding an autoencoder into SINDy’s sparse regression framework. The autoencoder serves as a flexible model to find a coordinate transform where the underlying dynamics are simple. …
The Spark Gap podcast covers practical topics in embedded electronics, especially relevant for junior engineers getting hands-on with embedded products. Sadly, Karl and Corey stopped releasing new episodes, but the current archive of 53 episodes has great information. I summarize some of my favorite lessons below.
Many lessons will be obvious to the experienced embedded engineer, but I hope there's something new to learn for everyone.
Don't expect to get a clean 5V or 9V from your wallwart power supply.
So you’ve taken the Star Ferry, partied it up in LKF, and gazed down on Hong Kong from Victoria Peak. Now what?
Even if this is your second, third, or twentieth trip, Hong Kong has lots to offer.
Sai Kung is in the east side of Hong Kong and is known for its fishing villages. Along the main promenade, you’ll see advertisements for fishing tours, where they’ll take you out on a boat and fish together, then have a meal together back on shore. The restaurants’ fish tanks hold some pretty impressive fish.
A neat contrast between visiting an open source company and most other companies was the openness. They showed us the entire facility, answered all of our questions, and even encouraged us to share what we saw.
Recently, I’ve been wondering what value Sparkfun adds over buying cheap boards on Banggood. After visiting Sparkfun, I think it comes down to the awesome learning resources and the quality. Sparkfun developers for a…
I recently traveled to Denver for the Open Source Hardware Summit and had the chance to explore around the city. It was also the weekend of the Great American Beer Festival and Zombie Crawl, so Denver was packed! Here are some fun things to do in Denver (items in bold font are places I’ve been to).
Denver’s many neighborhoods each have distinct personalities, lending Denver a larger city feel while still being walkable. Some of my favorite neighborhoods were:
I recently started working as an Embedded Software Engineer. Many of my peers ask what Embedded Software even is, as there are few resources for people interested in understanding Embedded Software.
I saw this article by D-Rev for people interested in a career in design and social impact and was inspired to compile a similar list for Embedded Software. Hope you enjoy it! If you have something to add, leave a response.
Thanks to Vikram and my mentors for contributing their own advice.
Embedded software is software for hardware. Embedded software controls hardware devices or interfaces directly with the electronics…
PhD Candidate at Caltech