This is a place for me to keep track of my interests, because I have a lot of them, and I'm easily distracted.
I may put this in a mental map. I had something like this in Freemind, many years ago. I should find that and import it into this repo.
Here's a rough first-stab at drafting an interests list (in no particular order):
-
holography, and optics in-general
(write me)
-
physics (outline below, write more later):
- relativity: SR, GR, etc.
- quantum mechanics: QFT, QED, QCD, entanglement, wave function collapse
- quantum computing
- lagrangian and hamiltonian mechanics
- symmetry breaking
- superfluids and Bose-Einstein condensates
-
mathematics (outline below, write more later):
- group theory
- topology
- calculus of variations
- graph theory
- complexity theory (this is more CS, but it's still math, IMHO)
-
raytracing, and computer graphics in-general
Not only have I found computer graphics interesting for about as long as I can remember (it's one of the reasons I got into computers in the first place); but I've also found the math behind it interesting, as well as any special-purpose hardware that goes into it.
One of my first full-time jobs was as the systems administrator of a bunch of SGI IRIX workstations, as well as the applications running on them. And I was right there when the first 3D accelerated graphics cards started to become available for the mainstream PC market.
-
cryptography
(write me)
-
audio and video codecs
(write me)
-
GPGPU - general-purpose graphics processing units
In light of the previous item, you can imagine how excited I got when that hardware started to find applications outside of computer graphics. Most of the ideas behind that technology got their start in the niche HPC mainframe market (e.g., Cray, Connection Machines, etc.). So modern 3D graphics tech is just an outgrowth and a trickle-down of that tech into the mainstream (with a healthy dose of Moore's law heaped on).
The emergence of using that hardware for computations outside of computer graphics brought that theme full-circle (what's old is new again). Interfaces like CUDA and OpenCL are things I've been wanting to learn for quite a while now, but haven't had the time or bandwidth to give (hopefully I can change that).
-
GNU Radio and other SDR (software-defined radio)
Another one of those intersections of "math" and "hardware". And yes, while it's software-defined radio, it still has a large hardware component doing the heavy-lifting (usually in the form of DSP daughter-boards).
ToDo: I should flesh-out this description and actually say something about, y'know, radio. But I was inspired to write something, so I wrote, before I forgot.
-
parallel and concurrent computation (mostly pertaining to number-crunching)
(write me)
-
anything to do with packet capture
One specific project I had in mind is something that puts a NIC in promiscuous mode, listens for file requests over HTTP, and dumps the complete files to disk. It's quite possible there's a fully-formed project on github that already does this, and I just have to find it.
However, even if there are projects out there which do things that I already want, I still want to write code for these kinds of applications (or modify existing code), as a learning exercise.
I also love the opportunity to play with dedicated hardware in this space (i.e., "packet-capture appliances").
-
Lisp, Scheme, and their various descendants
Ever since my first exposure to Lisp (Emacs Lisp), I've caught the bug and haven't been able to shake it. It just makes sense to me, I can't explain why. My latest foray into this world has been learning and using Clojure.
One side-effect of this is that it's made me want to learn more about compiler design, and about code translation in-general. So yeah, I really should pick-up that dragon book sometime.
-
queueing theory
I first became interested in queueing theory when the Linux O(1) scheduler was shiny and new. Around that time, message queueing middleweare also started gaining traction, which also fueled my interest. In the end, I didn't do too much with either of these applications, but I'm still interested in queueing theory as it applies to things like network traffic, actual traffic, and resource utilization as a whole.
I've picked-up Leonard Kleinrock's book, only to put it down again because it required more probability background than I had. I don't seem to have learned probability properly the first time around, so I'm relearning it now. (Fourier Analysis is also required, but I'm pretty well-versed in that already.)
-
OpenGL / WebGL / WebCL
(write me)
-
virtualization
(write me)
-
electronics (a.k.a., actually utilizing my EE degree)
(write me)
-
more to come...
As you can see, this list is mostly on the technical side, but isn't limited to computery things. Here are some things that don't really fit into the general theme, but which I still consider interests:
-
ballroom dancing
I haven't had time to put any energy into this hobby in quite a number of years (not since I worked at Rutgers)
-
music
Yes, this is horribly non-specific. However, my taste in music is also maddeningly non-specific.
I used to be into genres, like prog-rock and ambient, but I get bored easily and I can't find any set of categories that helps describe my tastes (I generally go with "what sounds good", which isn't helpful).
-
art
Again, not terribly descriptive. Maybe I'll list sub-generes here as I think of them.
-
languages (the spoken/written kind)
I've studied Japanese in my spare time "for fun", and I'm probably as skilled in it as your average first-grader in Japan (that's probably being a tad generous).
I also took five years of Spanish (one year in junior high, and all four years of high-school). I can't speak it fluently, and I can only understand every tenth word I hear conversationally.
On the whole, I'd say I'm equally good at both languages (for better or for worse).