User:Smosher

From Rosetta Code
My Favorite Languages
Language Proficiency
C comfy
Perl comfy
Perl 6 neophyte
Io neophyte
Bash ---

Background[edit]

Since 1998 I've enjoyed working as a programmer and systems administrator. In both capacities there is a lot of work with C, Perl and shell scripting.

Besides those listed (the ones I use regularly) I know too many languages to mention, all to varying degrees. Don't we all?

Interests[edit]

Math[edit]

No matter how much math I learn, I feel like I don't know enough. The process of implementing and debugging math in code is the best way to learn it.

Artificial Intelligence[edit]

I spend a lot of time thinking about AI by way of biological systems simulation. The animal brain is fascinating.

Music[edit]

Both musical composition and sound synthesis hold my interest. Sometimes I even remember to listen to music.

As a back-burner project I'm working on a Linux-based sequencer. (Current features include low-latency mixer, MIDI control, LADSPA support, no GUI.) Presently unreleased.

I would like to create a replacement for LADSPA/DSSI. In the name of flexibility, the plugins simply do not provide enough information to the host and presuppose a scheme where connections are (necessarily) tediously micromanaged by the user.

Stance on Programming[edit]

Relation to Math[edit]

People like to say "programming is math." For the most part I disagree; the mathematician most often codifies definitions, the programmer most often codifies procedures.

There are exceptions on both ends but I find it helpful to keep the distinction in mind. Particularly: even declarative languages operate on machines by way of implementation while higher mathematics is often in a form that must be intelligently interpreted.

State[edit]

Outside of Nirvana, to truly eliminate state the user must be eliminated as well.

I think of state as the eventual contents of a crystallizing dish. A chemist wouldn't propose to perform complex chemistry in only one container, and neither should the programmer. That said, research in this area is laudable and fascinating.

Object Orientation[edit]

Mucking with meta-things feels inelegant. When designing something in OO-style I usually only have patience for prototype models, but classes for standard types seems more natural.

Concurrency[edit]

It's not as scary as its made out to be.

Code[edit]

padKontrol Native Mode[edit]

I have published demo code for operating a Korg padKontrol (hardware MIDI controller) in 'native' mode. It took me too long to track down and interpret (and reconcile) all of the necessary information. The bare-functionality C was published to help others who might want to support pK in native mode.

GitHub[edit]

For now, it's just my gists. I should add the Korg pK code to github at some point.