Author Archives: andy

Wounded Pride: Part 1

I wish I could say that since my last post here on this blog (more than a few years ago) that my tendency towards pride was lessened. Sadly, my tendency towards pride probably increased as my time at school came to a close after that previous senior project was completed. Little did I know just how much pride would become a stumbling block in my life until the next chapter in school began—the chapter called seminary and a new job.

After graduating from school where things seemed to be going fairly well, I had the opportunity to start a new full time job and then start a new part time school. This time, however, the school was seminary and the job was programming.

I began the new job with a desire to “clean up” some of what I thought were loose ends or aging systems. I really thought I knew what I was doing in those early days and with lots of self-confidence I plowed ahead, “cleaning up” many things along the way.

I didn’t realize that beginning a masters program at seminary would be very different from a bachelors program like the past. Especially challenging was the seeming fact that there were no real rules on how much work could be assigned for a particular class. Yes, there are “official limits” that are listed in syllabi as far as how many hours you can expect to work for a certain number of class credits, but those limits were greatly tested in my experience—especially in the area of reading.

365 Days

It’s hard to let go of things.

After 365 days of work, a modest senior project for school is “finished”. As usual, there’s always more that could be done with this project… and I wish the project could have been more complete by now. At this point it almost doesn’t matter what type of project it was (a simple music generation program) but more that it’s time for a rest.

I’ve learned a lot of things throughout the year, though, like the futility of my plans in life, the emptiness of endless work, the limits of my body under ongoing stress, and the regret for any wasted/misused time this year. Thankful for the lessons (hopefully) learned on the importance of remembering the Sabbath, the importance of right priorities (who am I serving?), and for the Lord’s mercies this year. Time to get back to reality…

There’s something special about programming, though… and building a programming project is like growing a garden: they both take a lot of attention and care. Sometimes programming projects take you away, and some get taken away. This past year has seen both of those directions: a giving and a taking away.

A giving and a taking away.

365

Learning with Time

Listening to songs from years ago really brings me back to the “good times”. 2008 was a golden year. At the same time, 2008 was a time of confusion for me (just like the present…) But listening to these old recorded songs reminds me that my younger self has a lot to teach my older self.

As I get older, though, and while I feel like I’m noticing more or become better at observing (some) things in life… I’m also becoming less active in trying to do much in life. My younger self had so much passion and urgency. What changed? Oh yeah, school.

Faith and not by Sight

Day 28 without Facebook, Twitter, and other social-only networks. At times it’s been harder and easier than I thought it would be. Doing Lent for the sake of Lent can lead to a superficial perspective, though, and I’m wanting this time to be used for focusing upward and not on the things I’m missing in the daily lives of friends and family.

As I heard the other day, this is how it “used to be” before the Internet faucet was unleashed for the general public. I’m definitely not missing my Facebook update-checking, but it is kinda nice to know how things are going for friends and family near and far away. Trying to focus in my own strength leads to failure, though, and even with Facebook and the rest on the sidelines, it’s almost funny how quickly my thoughts begin to focus inward.

By faith and not by sight…

Things Always Changing

It’s funny how fast time goes: one minute, you’re on top of all your passwords, plans, and dev environments… and in the next minute, you’re forgetting passwords, plans, and how you set up those dodgy dev environments years ago.

For example, I just recently noticed that one of my old Python-related projects was no longer working (after a fairly recent server change). After looking into the problem, I end up finding out that I need to upgrade my local virtualenv environment. So I navigate to my environment folder… and realize that I have absolutely no documentation from when I last set up this particular environment. Oops.

There is help out there, though, with potential answers to these types of issues.

To fix this particular issue (and for my personal reference, at least,) I ended up taking the following steps to get things up and running:

  1. Back up your virtualenv directory before doing anything else. (Note: This process is more of a fresh-install than an upgrade… running the command will possibly take away old packages…)
  2. Re-create the virtualenv directory by using the following command:
    $ /path/to/system/default/virtualenv /path/to/your/environment/directory
  3. Then, update individual packages as needed:
    $ pip install package-name-here

Now there’s some documentation for next time…

kanjoto collection

Summer provided some time to begin working on the initial Android implementation of kanjoto. The following entries are a step-by-step look at how this implementation was created and where this implementation is headed.

  1. Wireframes Drawn
  2. Framework Created
  3. Code Reviewed
  4. kanjoto Logic Added
  5. Project Demoed and Presented

Generating MIDI on Android

Went back to a previously-found project that helps with generating MIDI on Android: android-midi-lib. This is a really easy-to-use library (albeit with code-only documentation) that makes it easy to generate MIDI on Android.

I ended up trying out one of the examples included with the android-midi-lib project in a new Android application called Generate. This application then generated a simple MIDI file that could then be read by my earlier-created prototype of a MIDI playback application.

Initial Research

Found a way to play back MIDI files by using MediaPlayer class based off of this tutorial:

A simple exercise to play MIDI audio using MediaPlayer

And that tutorial was found via the breadcrumbs from this Stack Overflow post:

How to play changing midi on Android – jetPlayer

where a user named @dorien was previously asking about similar MIDI playback functionality (and evidently went on to create an Android application that generates counterpoint-focused music.) The paper on this app creation process can be found here:

So at this point I am able to play back pre-generated MIDI files in a basic Android app, and have created a prototype Android application named Playback.