I have always wanted to “get into” machine learning, but I was always overwhelmed by the vast number of libraries, backends, and packages there are. I learn a lot by the implementation of something, much more so than just reading the math that describes the behavior.
This last semester of my masters degree, I am taking a deep learning course. Although this course isn’t focusing on implementation of algorithms primarily, I am planning on following along with implementation in Julia.
I have gotten pretty far already, and I have learned SO much more in doing so than what I have gotten out of the class so far. I wanted to document this process for anyone who is in a similar place and wants to learn more about using Julia for machine learning.
Alright, so the next step for this project was to install the binding, the bit of plastic that goes around the top soundboard. I left off last time at a cliffhanger, waiting for the binding to glue into place – here are the results:
I have been working on a new library for a while now for RF/Microwave calculations in Julia and I got to a good stopping point to release v0.1
Check it out on my GitHub here
In this library, I provide functionality for some basic linear network analysis, plotting, cascading, stability calculations, and gain calculations.
Alright, I’ll be honest: I had no idea what I was getting into when I started this project. I watched so many people on youtube build these things with such ease, I dunno, I thought it wouldn’t be as hard as it is. There are so many little things that have been getting in the way that no book I have read, no posts on forums, or mentions in videos have accurately described.
A lot has happened since the last I posted: I’ll try to cover it all here:
After I installed the truss rod in the neck, I went to figure out how to manage the peghead overlay.
So today I dealt with installing the truss rod into the neck.
I bought a 3/16″ steel rod from home depot and tried to create 1″ of threads on it with a crummy harbor freight die. I cut off the bad threads and used a good Irwin die I got from Ace.
So I have wanted to build a mandolin for a while now. I have a cheap Ibanez that I got from Guitar Center, but the action is weird, the truss rod is wonky, and the sound is pretty dead. I love building things, so I thought I could give luthiery a try.
I bought The Ultimate Bluegrass Mandolin Construction Manual by Roger Siminoff to follow along and to have actual plans. I have tried to design and build some instruments in the past, but they all were kind of a train wreck.
This mandolin is based on the design of the famous Lloyd Loar F5 Mandolin made by Gibson in the early 20th century. This design is still used everywhere and has the reputation of being the “classic” mandolin design. Once I understand the mechanics of the building process, I hope to design more custom instruments.
I have been using Julia for about four months now and I must admit I am in love. I have found Julia to be extremely expressive and a perfect language for scientific computing (see my other blog post about FDFD). Most of what I have done has been structurally similar to MATLAB or Python’s numpy, but recently I have been getting used to something very different, Julia’s object system. There seem to be a lot of blog posts about this, but I wanted to elaborate on some of the subtleties.
There are many commercial solutions to solving Maxwell’s Equations for complex electromagnetics problems. This general purpose approach is great for commercial solvers, but doesn’t easily lend itself to specific problems for which a solver could be tailored for. There are a few open-source electromagnetics solvers, but the powerful of which are written in syntactically dense C or C++. For this project, I wanted to explore the simulation of a frequency-selective device, or FSS. Specifically, a binary-diffraction grating for mm-wave. These type of devices are well suited for simulation in the frequency domain. For the time being, I chose to stick with the traditional finite-difference method of solving the PDEs. So, presented in this text is a finite difference frequency domain solver using the modern programming language Julia. The device I am simulating is generalized to a 2D solution with periodic boundary conditions but could be easily extended to 3D.
Emacs or vim? Nano or pico? What about notepad++, sublime, atom, VScode, ed?
I have certainly made the rounds with text editors over the years and I never felt like any one was perfect. I used Notepad++ for a long time on windows. I liked the utility it had, but I always wanted a more full-featured IDE that worked with the different languages I would program in. I tried Sublime and its close cousin Atom for a while, but it too lacked some features that I wanted. When developing in linux, I became very familiar with the infamous Vim editor, which I loved. In fact, I kinda went package and extension crazy with linting and smart auto-completion. My vim setup almost did everything I wanted, but it fell short in doing the few things that required a GUI, like editing a LaTex document. I didn’t think the perfect editor existed, that is before I found Spacemacs.
When modeling transistors for use in low noise amplifiers, special care must be taken to accurately simulate small signal noise performance. As the minimum achievable noise temperature drops, measurement uncertainty increases. This work documents the development of models for the OMMIC 4F200, a 70 nm GaAs pHEMT, and the Diramics 4F250, a 100 nm InP HEMT. A two step procedure was taken to completely extract the small signal and noise parameters with reasonable certainty using a modified Pospieszalski model.