Skip to main content


Showing posts from February, 2016

Hosting portfolio site on GitHub Pages.

Most software developers have a portfolio site where they can show off their projects, knowledge, code, and experiences. It's great to have when searching for a job because it's a chance to woo potential employers with your technical abilities. And it's a great little project that you can always update and experiment with. When I first created my portfolio site, I hosted it on AWS (Amazon Web Services) Elastic Beanstalk. Obviously, Elastic Beanstalk is overkill for a portfolio site since you shouldn't expect that much traffic where you would need a Load Balancer, but I chose to use it for the following reasons:

To become more familiar with Elastic Beanstalk (At the time I was preparing to launch an application to Elastic Beanstalk and this was a great starting point).
They offered a free tier for a year (Nowadays there is no need to pay for having a blog and I believe the same should be true for a portfolio site).
I had a contact form which was sent to the server whe…

Playing around with Blender

I've been contemplating making a 3d game as a side project (of course it will be open source if I do). But I realized that if I were to do so I should become familiar with 3d mapping and rendering software. So, I downloaded the free Blender software and followed some beginner tutorials on YouTube: The tutorials were really well done and easy to follow which is helping me to become more familiar with the software. The images above are renderings of 3d objects I created in Blender. I still have a lot more work to do to be able to freely move around and create with the software. And obviously if I were making objects for games they would have to be low poly (far less detailed than these are) to be able to be rendered in real time. But nonetheless this is a great start.

Chord Diagram Library

Recently I have been working on a guitar chord diagram or chart library, GuitarChords. The whole project is open source and is available on GitHub. It is a native Android library written in Java. The purpose of the library is to provide an easy, efficient, and beautiful way to display guitar (and other stringed instrument) chords natively on Android. It provides a custom View displays notes on strings and frets with the option to provide finger numbering on the notes. It is also easy to convert to and from different formats, such as, String representation, ASCII tab, MusicXML, and ChordPro. It provides additional features like a custom Span that displays a chord when the spanned text is selected and a custom TextView which can display chords and lyrics in ChordPro format. Eventually I plan on adding the ability to mathematically find and represent any chord (might be a difficult task but this removes the need to access a database for chords). Check out the link for examples on ho…

Android Guitar Tuner

Recently I created a guitar tuner application for Android that is written with pure Java (no C++ or NDK usage). The design was inspired by the Google Chrome team's guitar tuner web app using the WebAudio API. I wanted to code a version written natively for Android that didn't have to rely on a WebView, the WebAudio APIs, or server-side logic. Also, I wanted this application to be available to as many versions of Android as possible (whereas the WebAudio API may only be supported in more recent versions of WebView available only on newer flavors of Android). So, I coded it from scratch. I used a portion of the open source TarsosDSP project (their YIN algorithm) to help with the pitch detection.

    The application is available in the Google Play Store for Android: The project is completely open source and the code can be found on the GitHub repository: Fi…