Vagabond – Update

Aside from the getandroidsdkdl script that I was offering for people who wanted to get started with Android Development on Linux, another cool tool I wanted to throw out there was a script I call “Vagabond” which is a Vagrant deployable which automatically configures a development environment that you can use for Android Development on your Linux computer. In fact, it may prove far easier to use it instead of the getandroidsdkdl script (it actually builds off of it). The actual Vagabond script isn’t available yet but I’m letting a rather close circle of friends test it out first before I make it public which shouldn’t be too far off from now. I wanted to give an overview of what it does.

If you’re unfamiliar with Vagrant, follow the previous link to get a better understanding of what it is.

What is Vagabond?

Vagabond is little more than a bash script that you’ll download and execute. Once you execute it, all you’ll need to do is sit back and relax while it configures the VM, installs all of the requisite packages to both update the base VM and the required packages for the Android SDK, and then exposes the synced directory from the guest to the host via host’s PATH and that should take care of everything. The user can then install an IDE of their choice on the host and run the Android SDK tools from their host computer.

Got that? To further simplify, the purpose of the Vagrant image is to host and isolate the the Android SDK and to make it even more portable since it’ll exist exclusively in a VM. The Vagrant Provisioner Script, in tandem with the Vagabond Script, exposes the SDK hosted in the guest VM to the host machine. If it still doesn’t make any sense, you may need to read up on what Vagrant is so that it sinks in a little more.

Vagabond Usage

Vagabond is, and will continue to be, stupid simple to use. I’m planning on adding some additional features to it but for right now, it only requires that you provide it with a directory where you want Vagrant to install and configure the VM in. That’s it. The rest is up to the script.

vagabond.sh [vagrant-project-directory]

Vagabond Details

Vagabond relies on three different pieces of software – Vagrant, Git and Zenity. It will check for the existence of these three on the computer before attempting to do anything. If either one of these are missing from the computer, the script will fail and return an error code specific to whichever program was missing. These codes are detailed in the comments in the script.

Clearly, the reliance on Vagrant should be rather obvious. Git needs to be installed since Vagabond will pull down the Vagrantfile and bootstrap provisioning script from my GitHub. Zenity is used to display the output from Vagrant while it’s running the VM configuration and provisioning script. The choice to use Zenity was made since the output from the provisioning script couldn’t easily be piped back to the terminal that was running Vagabond. I’m still not really sure why this was the case but that’s what was happening. If I can figure it out, or if someone a bit more skilled at bash scripting than myself modifies the source, I’ll yank the Zenity dependency out of there. I can’t say I don’t entirely dislike it though.

Vagabond then attempts to make the directory that the user specified while launching the script. No real magic here. The only thing is that it will check to see if the directory exists prior to running mkdir. Some may see it as a redundant check since mkdir will cater to already existing directories but I wanted some conditionally verbose output. Sue me.

Next Vagabond will move into the new directory and use Git to clone from my GitHub repository that contains the Vagrantfile and bootstrap Provisioning Script. Details on the Vagrantfile can be found if you read the Vagrant documentation. The purpose of the bootstrap script will also become evident as well. At least what it does with regard to Vagrantfile. Cloning from the GitHub will make a vagabond directory inside the directory the user specified for the Vagrant Project and we don’t want that. Vagabond will move the cloned files out of the cloned vagabond directory into the Vagrant Project directory and then remove the cloned directory.

At this point, we’re ready to use Vagrant. Now that Vagrantfile and bootstrap are in place, a call to vagrant up will use the Vagrantfile to configure the VM. Vagrantfile will then rely on bootstrap to supply additional configurations and instructions to the VM. The Vagrant Box used is the hashicorp/precise32 (Ubuntu Precise 32-bit). All other Vagrant configurations are defaults. The bootstrap Provisioning Script does the following:

  • Update apt repositories
  • Upgrade the system as well as install base dependencies for the Android SDK
  • Use a modified version of my getandroidsdkdl script to download the Android SDK from Google. This script will also unpack the SDK into /opt in the VM and configure permissions on it.

Once this is done, Vagabond will expose the synced directory, which is linked to the directory in the VM that contains the SDK, to the host system via a modification to PATH. That’s it. After that, so long as the VM is running, the host will have access to the SDK. The user can download and use whatever tools they want. Since the SDK exists exclusively in the VM, you can port the VM to anywhere you want.

What’s Next?

As I mentioned before, I’m letting a few people test this before I give it GA. Once I get those test results back and make some modifications to the script based on those tests, the version will be locked as 1 and released for GA. Stay tuned!

Ohio Linux Fest – The Aftermath

I’m back home from the Ohio Linux Fest and I’m very, very tired. As much as I want to write more, I think I’m going to keep this short and sweet for the time being and just give a minor overview and save most of the major content for some of the upcoming podcasts that I’m going to be co-hosting to go over the event.

First of all, I know that some of you reading this most likely attended the event and even came to my talk to which I want to extend an infinite amount of gratitude to you for. Little fact – this was my first talk ever at a technology conference. That being said, the turnout far exceeded any expectations I had and the audience was amazing. I got so much great feedback from all of you and you all graciously put up with my horrible jokes. Even more humbling to me was the swath of people who came up after I was done. That made all the stress and shitting bricks worth it.

That being said, the slides that were uploaded to the OLF website on my session profile are not the ones that I used for the presentation. The ones I used were modified in terms of order and containing a few slides that detailed my previous work. Some of you had asked about getting a copy of the slides and I want to make sure that you get the most recent ones so I’m going to upload them and you can download them at your leisure. Of course, I won’t be doing this until tomorrow since I’m seriously going straight to bed right after this. You all can wait until then.

The other thing that I didn’t have that I got asked for was business cards. Thankfully my contact information is “federated” in the sense that all the names are similar. My website is gregfmartin.com, my email is greg@gregfmartin.com and my phone number is 1-800-gregfmartin (not really but it sounds good). Had I known that there was going to be this clamoring for my contact information, I would have better prepared for it.

Finally, I wanted to give honorable mention to Brian Wagner for being not only a tremendous help and resource but a great friend. Also to Stephen McLaughlin a.k.a. DoorToDoorGeek for being a wealth of audio production knowledge and for help with the audio recording equipment (even though I screwed up due to technical difficulties).

Gamergate – The Underlying Problem

To be honest, I’m not really privy to all of the details of Gamegate. All I know is what the media and the almighty Wikipedia tells me.

What I’m more concerned with here is the general form of the issue which is misogyny, misandry and the ego.

The whole Gamergate thing in and of itself is an effect rather than a cause. It wasn’t brought about by the sole actions of a woman or a man or a company (since, you know, they’re legally individuals). Rather it was born long ago from this (now) ridiculous idea that someone who is of a particular gender is somehow inferior to those of the opposite. That state of inferiority breeds all sorts of methods, limited only by the creativity of the human mind, for both bringing it out in the open and making it worse than it is. Unfortunately the collective of society hasn’t progressed to a point yet where that mentality has been flushed down the toilet belonging to the Jungian Subconscious, rather it’s propagated itself into modern day to create even more bigot assholes.

One of the many paradoxes with our society is preaching equality for all in a way that is agnostic of any, and I do mean ANY, factors that would imply differences even in the most minute way. While on the other hand, indirectly applying discriminations based on biases that are either formed from some personal experience or via osmosis from an equally idiotic family. To give an example, a manager considering a male and female employee for a high-salaried position and despite the fact that the woman is a far superior choice on account of work-related talents, the manager, being a male himself, favours the male on gender alone and gives him the job instead. This isn’t just applicable to the Gamergate fiasco (nor is it what happened, I’m just providing an extremely tried-and-true example).

Here’s the interesting thing – this goes both ways. This is something that we conveniently forget because it’s easier to turn on the news and hear about Bob Harrold beating the shit out of Cindy Little while in a drunken stupor (you know, because women don’t drink alcohol and can’t fight). While I can’t necessarily provide examples of misandry, they have occurred otherwise someone wouldn’t have gone through the trouble of creating a word for it. We just don’t hear about it as often. In the same way that a woman can fuck a man to gain favour in some way, a man can fuck a woman to gain favour. In the same way we have extremist feminists, we have extremist chauvinists. In the same way we have males who are rapists, we have women who are rapists.

Get what I’m saying yet? Sexism, in any fashion or any degree, isn’t unique to males and females so much so that we need to go though the trouble of classifying it as either misogyny or misandry.

Please send me hate mail for that last statement. Because it’ll prove how genuinely uneducated you really are.

That being said, it’s not enough to simply (and basically) void the applications of misogyny and misandry. They’re not really a cause either as they’re also more of an effect. Argumentatively they’re an effect of the ego. I made reference to this earlier. Some primordial instinct tells a man that he’s better than a woman and rationalises the stance with piss poor examples like “I bring the money in!” Well what happens when money no longer means anything? (Hard to think about I know but currency is easily invalidated). “I work sixty hours a week!” And she’s not capable of doing that? “I have a penis!” Gender Reassignment has been available for some time bub. Nice try though. Try it the other way around. “I have tits!” Men have nipples too. We can grow them out as well – it’s called eating KFC for a month. “I have a vagina!” See Gender Reassignment. “I bear the children!” Well I can’t argue with that. I’ve seen that enough to know that it sucks.

The point I’m trying to make here is that nearly 99% of the time, our ego is artificially inflated by our own machinations. A recursive issue if you will. Our own ideas of what makes us better than other people, according to the ephemeral laws of our society, give us this ridiculously false notion that we’re someone special. That we’re someone so powerful that others tremble in your presence.

There’s a difference between earning respect based on your actions featuring a wonderful personality and commanding respect because of your artificial position and being an asshat.

Overall, there’s not much we can do to correct this issue of sexism unless society as a whole is prepared to accept a version of equality that truly is agnostic of gender and all that goes with it. However being an extremist on the issue isn’t going to help anything either. Going around screaming “Fuck all men!” just makes other men go “Fuck all women!” and we’re back to square one. As people, we can individually start to foster and nurture the idea that if we start divorcing the archaic notions of differences between men and women and leave it strictly to the anatomical state (barring said Gender Reassignment), it’s going to be easier to help remove sexism.

All that being said, we have to talk about art. Since one of the core arguments surrounding Gamergate is this far-too-long drawn out discussion of if video games really are a form of art.

Video games are as much of a business as they are a form of art. Sure the development team behind a game may be creating it for the love of the art that they chose to profess in whether it be modeling, storytelling, graphic design or programming. But the superorganism that is the company they work for could rightly give two shits about one of their employee’s dreams. The only thing they’re concerned about is profit margins, development costs, advertising and the hopeful evolution of a franchise to continue to rake in the cash long after the game has worn its wear. We’ve all fallen prey to this as well.

According to the Oxford Dictionary, art is defined as such:

The expression or application of human creative skill and imagination, typically in a visual form such as painting or sculpture, producing works to be appreciated primarily for their beauty or emotional power…

The storied and colourful (no pun intended) history of art will show you that long have artists of various disciplines covering various topics have come under scrutiny for their work and that is based strictly on the times. Understandably we can’t appreciate something if it carries with it a personally negative connotation that strikes horrible memories in you but that’s the power of art – the ability to invoke those things in you. Not just the positive but also the negative. If a form of art chooses to work with and reveal the horrible nature of sexism and the hatred that men and women harbour for each other, it should be appreciated for what it really is. If it makes you think about those things, makes you think about how horrible it is for something like sexism to exist, then maybe you should start working to mentally train yourself to remove those biases from your life. The art will always be there regardless if a mass of barking feral dogs that are the “Artists Are All Fucks League” comes demanding it be burnt to the ground for some reason. It’ll come back in one way or another.

That doesn’t mean throwing tits and ass all over the front covers of games is tasteful either.

But let’s clarify one thing here. The actions of a sole independent developer shouldn’t deter from the underlying issues at hand. Bashing her and taking sides between her and her ex only makes you part of the problem. As a male gamer/programmer/tech guru, nothing about this makes me happy.