Aikido Programming Language

Aikido Programming Language

I found the aikido programming language the other day online and it suddenly sparked my interest. The project is _very_ dead mind you, and I don’t have any absurd thoughts of actually trying to resurrect it into becoming the python or something. Its something I found interesting and I’m going to play with it. As always help is welcome and encouraged, why not?

Here’s what I’ve found so far:

  1. The code is full of references to Solaris. I have nothing personal against Solaris except that’s its worse than BSD for number of people that use it and I consider it a failed OS. I’ve removed all the references in the makefiles to Solaris the code clean up will follow.
  2. The code itself doesn’t compile. Apparently a lot in the C++ world has changed (I wouldn’t know) since 2003 or so. I’m not thinking I’ll have to change a lot to get it up and running, but somethings will have to be done.
  3. The code has GTK sort-of-kinda built in and, well, it’s so old it won’t compile and can’t even detect GTK installed on my system. At this point I really just want to remove it, but I’m thinking I’ll leave it for now just in case. 

Here’s what I have tentatively planned to do just for fun:

  1. Switch the build system to CMake. I suppose there is nothing wrong with the makefiles it’s currently using but I don’t like make. I like CMake.
  2. I’d like it compile so I can really understand what’s going on and how it all works. This is really goal numero uno. 
  3. I really want to be rid of the license the code is currently under. I’m not a lawyer though and I’m a little scared to just rip off the license and slap on a new one. The code is currently under the Sun Public License. I’d like to switch it to the CDDL which I think is the successor of the SPL. Can I though? Is that legal?

That’s really about it. So, please, everyone go to Github right now, checkout the code, fix something, and issue a pull request.

Koding

Koding

I just discovered this new site “Koding” that appears to make coding social? I guess I’m skeptical because I though open source coding was social by default. No?

Either way anyone else a member of this site? I just found it and logged in using my github profile. If you are let me know. I’m curious.

Writing C Libraries

Writing C Libraries

This is actually a series of blog post about writing and then maintaining C libraries. I don’t currently do that, but considering that Vala is compiled to C it seems to still be very relevant to anyone who maintains or wants to create and maintain a library in Vala.

Travis CI – Why?

Yesterday I got Travis CI working for my pet project  balística. Now that I’ve done it, I’m not real sure what the point of it is.

I mean, I’m writing the software. At this point I’m also the sole contributor. No else has commit access except me. I know whether or not my software compiles before I push I’m the one that wrote it.

For anyone else out there who uses Travis CI, why? What benefit are getting from it?

Currently, for me, it’s just misleading. As of this moment, my project is looking for GTK+ 3.6 or greater and the Ubuntu instance Travis CI is offering only has 3.4. So it appears my code fails to compile when it never actually reaches the compilation stage to start with :(.

UPDATE:

After looking through the log produced by Travis CI I found that the Ubuntu LTS version that they’re using only has GTK+ 3.4.2 in it. After dropping my required version to that, it now builds just fine. I’m not really worried about that breaking anything else since my use of GTK+ at this point is still minimal at best.

UPDATE:

After looking though it, it looks like this is more a pain in the ass than anything. I’m removing it.

Using Travis CI with Vala

Travis CI seems to be catching on pretty well these days. I’ve seen quite a few projects using it on Github, so I wanted to see what all the fuss was about.

If you look at their page you’ll notice Vala is not one of the supported languages. Not to fear though since Vala is merely the middle man and actually ends up being pure C. The only real tricky part then is figuring out how to setup your .travis.yml file so that Travis can compile your Vala -> C.

After a little Googling, here is what I came up with:

language: c
compiler: gcc
before_install:
  - sudo add-apt-repository ppa:vala-team/ppa -y
  - sudo apt-get update -qq
  - sudo apt-get install -qq gnome-common libglib2.0-dev libgtk-3-dev
         libsqlite3-dev libvala-0.22-dev valac-0.22 gobject-introspection
script:
  - cmake .
  - make

The Travis CI servers are just virtual Ubuntu instances so you can use sudo apt-get to install anything you need including new PPAs and any other packages necessary… including Vala!

One thing of note though, it would appear that the servers by default have a lot of things preinstalled for you. Notice I didn’t have to install Cmake and I’m pretty sure I don’t have to install the Sqlite headers either.

Writing Professional Software

I’m working a pet project. It’s just me. No one else has contributed yet. I’m not upset about that; I actually expect that for something like this. The project is called balística. It’s an open source ballistics calculator I’m writing in Vala. So far so good with it I suppose. This is probably the farthest along I’ve ever made it with a project I’ve started and I’ve discovered a lot very interesting things along the way. Facts about software development that I didn’t know before. Facts I wanted to share with anyone else who is considering such a project.

  1. Writing genuine professional software is HARD. Wow. Just wow. For inspiration, ideas, and “howto”s  I find myself reading and, a lot of times, more or less, just copying how Yorba does it with their projects; specifically Geary their mail program. Going through their code and attempting to mimic certain features in my own program has really demonstrated how difficult truely good software is to write. I’m in IT for a living and given that, I spend my days mostly writing reports and maintaining Oracle databases. I don’t genuinely write a lot of software of this nature for money. Now that I’m doing it for a “fun” though Yorba’s failed crowdfunding attempt doesn’t seem nearly so outrageous.
  2. Professional software is fun to write, but also incredibly frustrating.
    1. I find it very difficult to concentrate on adding features. Instead, I just find myself constantly rewriting current features to make them better. It’s a trap I assume most people will fall into at one point in their careers but this is a first for me and its really weird.
    2. Getting things to work properly is much harder than anticipated. I expected the nature of programming the application to just flow together. Features would easily build upon each other like blocks. So far it really hasn’t. Every new feature. Every new idea. Everything I want to do ends up becoming a major hurdle for me. It really wears on the sole.
    3. My skills are much lower than I hoped/thought they were. I feel like a bad episode of Top Gear every time I sit down to work. “How hard could it be?” I keep asking myself. And just like on Top Gear I find out it’s really freaking hard.
    4. My understanding of the basic libraries and architectures that power Linux and Gnome is more or less nill. I’ve done very little GUI programming in my life. Honestly, I hate it, and try to avoid it. Now that I’m getting neck deep in them though I find them terribly frustrating and tedious. I have neither an eye for design or aesthetics. The GTK toolkit is completely foreign to me. And if it weren’t for Vala and companies like Yorba I’d never be able to do anything with glib either.

Now that I’ve covered the downers of this, there is light at the end of the tunnel. This is genuinely fun to do. I really do enjoy learning how to do this. I can’t express in words how much I’ve learned how to do by starting this project. As frustrating and depressing as it can be, it’s all worth it when you see your code compile, link, and then execute just like you want it to.