“Eating your own dog food” is a common cliché, but one that’s applicable to new technology. It goes hand-in-hand with learning new things and it’s one reason I like to do hands-on articles. It exposes me to the advantages and difficulties of alternative solutions.
Reading a spec sheet or attending a class or webinar is one thing, but it’s a bit of step to actually use something for an extended period of time. This is where those less obvious and often more important aspects of a system reveal themselves.
I have some examples that made a difference in my views of technologies. One is the smartwatch. I have a Samsung Gear S3. I now use it to answer my phone, run timers for things like cooking, and receive those annoying two-factor authentication texts. I was a late comer to the smartwatch but would not go without one these days.
1. NVIDIA’s Jetson AGX Xavier is an ideal platform for learning and developing machine learning applications.
I’ve also been working with NVIDIA’s Jetson AGX Xavier (Fig. 1) and National Instruments’ ELVIS III (Fig. 2). Both are great pieces of hardware, but it’s the software that makes the difference—and it takes time to use and learn the system to appreciate the power and the difficulties in using the tools. For example, there’s a two-day course that works with the Jetson where you can learn to use the machine-learning tools, including training neural networks. One thing I’ve learned so far is how much more there is to learn using the platform.
2. National Instruments’ ELVIS III is useful for hardware development as well as programming in LabVIEW.
The same is true but different for the ELVIS III. It’s easy to get up and running with the MeasurementsLive web-based interface to the built-in devices like the four-channel oscilloscope. Breadboarding and testing a circuit design is easy; however, the ELVIS III hides a CompactRIO system that runs LabVIEW. I finally have a LabVIEW system that links to my hardware, providing a much different experience than just programming in LabVIEW, which I had done in the past.
Another example is programming with SPARK and Ada. I became a convert a long time ago, but it took time to actually work with the compilers and tools to see how the languages impact the development process. It’s actually a challenge to explain how features like contracts, fixed-point number support, real hierarchical module support, and more precise variable type definitions make a difference in the way one approaches and solves a problem. Likewise, there are the inevitable issues one runs into like generating formatted output without being extremely verbose. Check out learn.adacore.com to try without having to install tools.
Sometimes trying out a development kit or software framework results in a definite no. But it’s difficult to tell either way without actually using it for an extended period of time.