Thoughts on Open Source

opensource-svg

I used to not understand open source.

Why would people give away their source code for free? Going through the software revolution of the 90s, Microsoft was the king of software. I followed the Microsoft’s decimation of WordPerfect, Borland, Lotus 1-2-3 and Netscape as a kid. And Microsoft didn’t give away software for free, no, let alone source code! Microsoft charged folks for Office, Windows, Visual Studio, etc. To their credit, they still do to a certain extent. So to me, it all seemed counter-intuitive – something that was free, in my mind, would not see any quick progress due to the lack of economic motivation behind it. My overall train of thought could be summarised by this grumpy nerd’s post.

Then Linux Torvalds came along with this :

Hello everybody out there using minix –

I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

— Linus Torvalds

And it’s amazing how others have contributed to the project ever since. Linux is probably the most successful example of open-source software. From the Linux kernel, countless distributions have emerged. Heck, even Android has the Linux kernel in it. Red Hat, CentOS, Ubuntu, Debian, Linux Mint they all share the linux kernel, which is actively being maintained by the Linux Foundation.

There’s a lot of open source software out there, and it’s all a beautiful mess. Companies leveraging on open-source software have been successfully built. Red Hat is a prime example of this, which generates revenue through support and training contracts. http://www.zdnet.com/article/red-hat-nearing-1-billion-in-revenue-not-bad-for-free-software/ And did you know that WordPress, the blog software that you are reading this on, is open-source?

The problem with proprietary software is this : When you don’t know what’s going on, you don’t know what’s going on. Proprietary APIs usually hide the implementation details of a function, so you are at the mercy of whoever holds the proprietary software implementation. You would be in danger even. I’m sure Snowden would agree. With open source, all the implementation details are out there, whether you want to understand it or not. Furthermore, with proprietary software, once the company decides that it is no longer in their financial interests to continue with the work, it is thrown away.

I’ve concluded that to make large scale software without a whole Fortune 500 company like Microsoft or Google behind you, open source is the way to go. I use ZeroMQ in my work, and this is a great example of this. The author has successfully built a community from which many other projects have sprung.  Once folks find that the open source code is useful to them, they will have it in their hearts to contribute back. Even if it is just fixing a bug or two.

My other open source loves are CSound and  AudioKit , all great audio programming open source projects from which one can learn. AudioKit is fairly new, but has enjoyed quick growth due to many developers wanting a Swift audio development framework (pun intended).  It was the CSound code that inspired me to delve into DSP code.

Revenue for the little guy? I’d like to think of somehow who buys stuff I make as paying me to keep it going. It is not easy maintaining a piece of software amidst the ever-changing tech landscape.I would say it takes more energy to maintain software than to shit one out.

Open source is simply a developmental methodology that was ahead of its time. It’s a methodology that places community over software. It’s a reflection of the human need to contribute and make a difference. I that software, like nature, given enough time undergoes evolution. Great software stays and gets better with time.

Advertisements

Android App Compatibility Libraries

I recently got an Android project from a colleague, and was not able to compile due to the seemingly non-presence of

com.android.support:appcompat-v7

My Android environment is unfortunately, offline. Looking in the offline Android Lollipop SDK I realised that the library is in fact there.

Under

sdk>extras>android>m2repository>com>android>support>appcompat-v7

There was a listing of various versions of this library.
..
..
21.0.2
21.0.3

All I had to do was to modify the build.gradle file dependancies.

dependencies {
compile 'com.android.support:appcompat-v7:21.0.3
}

My friend had a later version, 21.1.something installed in his PC.

Why Music Apps are Still Predominantly iOS…

I have toyed with the idea of porting my app TF7 Synth to Android many times. I never actually did it mainly because of three things :

  1. Revenue: I don’t see people buying music apps on Android. Heck, almost none of my friends buy apps on Android. Most people just download the package file from a bittorrent site and install it using the package. Somehow, iOS folks do support the app makers. It’s tough work, we deserve a bit of money for it!!! It used to be that one would pay at least a good hundred bucks for a decent synth. Now, you can buy almost all the best synths on iOS for a hundred bucks during say, the Black Friday season. And, it’s not easy. You wouldn’t believe the amount of time I spend obsessing over an Analog oscillator’s algorithm. *hint hint*
  2. Ecosystem: Before Inter-app audio by Apple even came about, iOS already had AudioBus. Thank God for AudioBus. This allowed folks to connect their audio apps together, turning the iPad into a viable replacement for the audio workstation. Android has nothing. As a standalone synth on Android, the usefulness of TF7 on Android just isn’t there. Oh, and Ableton just came out with Ableton Link for iOS. It works with the Ableton platform, of course.
  3. Latency: The latency issue just didn’t seem worth it – no one has really solved the problem as of now. The SuperPowered guys are now claiming that they have fixed the issue. (I think) The graphic below is by them detailing in one image why there is latency in Android’s audio path.

The rest of the article by SuperPowered here: http://superpowered.com/androidaudiopathlatency/#axzz3ZnU6PI22