Git Resources

Over the last couple of months I have been working on moving all of my personal projects over to Git based source control.  I have moved all of my source code to GitHub.  The reason I did this was because I had been hearing a lot of good things about Git, I was tired of using Subversion, and I figured if the Linux Kernel developers were using it then I should give it some consideration.

I like the concepts of Git, especially the whole “distributed” concept that is one of its main selling points (even if I didn’t understand 100% of the time what it meant).  But what I’ve really come to love about Git is the fact that it really allows you to do what’s called “branch per feature” when developing code.  There are some other nice features that make working with Git so much better than working with Subversion, even in a more corporate environment.  The downside to Git is the lack of graphical tools for the Windows users.  The most powerful tool for Git is it’s command line.  While tools like TortoiseGit do exist, there is still more power in using the command line.

But if you are interested in Git, I have collected some Git resources here below for you.

Git Website – The Git website.  This contains the latest Git source downloads, a free “getting started” book, and other information about Git.

Git For Windows – This wonderful series from Los Techies, is a must read for any windows developer looking to get started with Git.

Git: Your New Best Friend – This is another nice intro to Git that will walk you through several key Git concepts.

GitHub Guides – These guides range from beginners level to more advanced topics.  There are also a couple of GitHub specific guides here.  If you’re looking to get started with Git, you’ll need a Git repository and you can get one at GitHub.

Git Cheatsheet – A nice Git Cheatsheet

Pro Git Book – This is a complete online book, it is also available for purchase.  If you find value in using the online edition, please support the author and buy the book.

Posted in Lists, programming | Tagged , , , | 2 Comments

NAnt Cross Platform Build Scripts

Yesterday I spent a great deal of time getting my build script for my TwitterNET project to run successfully under Linux on Mono.  My build script was already worked nicely on Windows but since I’ve moved to Linux and didn’t really have a Windows computer sitting around I needed to make it work for Linux.  The good news here is that NAnt gives us the ability to build stuff against the Mono runtime and find out what operating system we’re running on.

The first thing we need to do is to find out what operating system the build script is running on. We also need to set that to a property so that we can run tests against it later in the script.

[xml]<property name="build.os" value="${operating-system::get-platform(
environment::get-operating-system())}" />[/xml]

As you can see, we create a property called ‘build.os’ which contains the PlatformID of the operating system we’re running the build script on. With that in mind, we need to also create a new property for our folder/file separator, because Linux uses the forward slash (/) while Windows uses the backward slash (\).

[xml]<property name="file.sep" value="" />

<if test="${build.os == ‘Unix’}" >
<property name="file.sep" value="/" />
</if>[/xml]

Pay attention to the if statement in the above code sample, the test part contains a reference to our ‘build.os’ property we defined earlier. We default the slash to the backward slash (backslash), and then if we’re running on Linux (the PlatformID refers to Unix when running on Linux), change the ‘file.sep’ property the forward slash.

So how do we tell it do something that’s for a Windows build only? Well, we just modify the test part of the if task slightly with:

[xml]<if test="${build.os != ‘Unix’}"> <!– Build on Windows –>[/xml]

We’re just changing the ‘==’ to ‘!=’ (which means “not equals”). So now you can go through a build script, and put anything that is Windows specific under the appropriate IF tests, and do the same with the Linux specific stuff.

If you want to look at my build script to see how I handled things, please feel free to look at it, you can find a copy over on the TwitterNet GitHub page.

There are a couple of gotchas though when doing builds on Linux with Mono. The first is that there is no msbuild equivalent in Mono. There is xbuild, but I was unable to get it to work, I think this was because my solution and csproj files are from Visual Studio 2008. What this means for you the user is that you have to make a direct call to the mono compiler (usually ‘gmcs’ on Ubuntu) and pass the references and each individual file. So anytime you add a file to the project, you have to manually add it to the Linux part of the build script.

Another gotcha is the fact that things like NUnit need to be run using Mono, so you have to have different ‘exec’ tasks to handle the differences. This also means you’ll have to make the ‘mono’ command the program that gets run in your ‘exec’ task and the name of the program being run will become a command line argument. This does however work nicely, once you have it configured correctly. I advise looking at my build script to see what I did to make it work.

Posted in programming | Tagged , , , | Comments Off on NAnt Cross Platform Build Scripts

Question Your Government

I’ve been chewing on some things the past few days.  One of those is Glenn Beck and his recent run in with the liberal left and their smear campaign over the fact that he called Obama a “racist” but this is just one piece of a much larger problem.  I think the main issue people have with people like Glenn Beck, myself, and others is that we question our government.  With the government wanting to start socialized health care, people like me ask “why do we need that, there’s such a small percentage of people without insurance?”  People like Glenn Beck wonder why our president, who is in control of deomocratic republic has people who are communists, radicals, and people of questionable pasts in charge of things.  People like me wonder why we have “czars” (synonomous with “emperors”).

There is a reason why the first amendment of the United States Constitution gives the right of freedom of speech and press (also religion but that’s not part of today’s discussion).  It is so that we as citizens can stand up in public and question our government, our leaders, and those spending our tax dollars.  It is the press’s job to poke, prod, and question our leaders decisions, pasts, and acquantinces.  However, the media, especially outlets like the New York Times, CNN, MSNBC, and other television and newspaper outlets have become little more than mouth pieces of the liberal left.  This isn’t just my opinion but the opinions of others I know, several who would be decidedly liberal left.  It’s no secret that the media has a liberal slant.  It’s no secret the right wingers hate it.  It’s no secret that people like Glenn Beck, and Bill O’Reilly give in to sensationalism.  But they aren’t the only ones.

What I want to see more of is informed debate.  We have so many people yelling and arguing from both sides and they have zero clue what they’re talking about.  The left say the right’s uninformed, and the right says the same of the left.  Problem is, they’re both right and neither side wants to admit it, become educated, and have intelligent conversation that is helpful and informative.  When I go political on this blog, I really try to be informative and not just in attack mode.  I’m not saying I’m always successful at it, but I know that I make a concentrated effort to inform, debate, and listen to the other side.  People who know me, know this to be true.

But it all comes back to basic point.  How much do you trust your leaders, especially politicans.  We all know politicans are stereotypically double speakers, yet people who question the president (any president mind you) are looked at as crazy right-wingers, or leftist nutballs.  It is our job as the citizenery to question our government about everything, it is our right to protest publically against that which we don’t agree with.  We’re all different and not everyone is going to agree on everything.  I don’t agree with socialized healthcare, but you might not agree with teaching abstitence in public schools.  We all have different things we’re passionate about, but it’s those difference that lead us to compromise.  Problem is, we can’t compromise if everyone is name calling and yelling at each other.  So instead of yelling at each other as citizens, why don’t we target our energies at our politicians and leaders and make them understand what’s important to us.  Question your government, your leaders, make them scared of us (the citizens), we have control.  If you don’t like what your senators and representatives are doing, vote them out.  Speak with your vote, your petitions, your public assemblies, and your letters.  Call them on their double speak, call them on their indiscrestions, call them on their past affiliations, this stuff needs to take place on both sides.  A democracy in which the leaders do not fear their constituants (the citizenry) is not a democracy.

Posted in Commentary, Politics | 8 Comments

Social Networks & Job Hunting

As noted yesterday, I was laid off from my job recently (yesterday).  After I was laid off, I posted a note to Twitter and Facebook that linked to the PDF version of my resume.  The idea was to cast the widest net possible so I had stuff to look at and people to talk to when I began my job search today.  That link was re-tweeted no less than 7 times by friends and colleagues.  The end result was that, as of this morning 111 people have clicked on that link.  That’s 111 people that have downloaded and/or viewed my resume.  Since it was a direct PDF link, it can be assumed a large percentage of those people actually saw my resume, because their web browser opened the PDF for view in the web browser itself.

While I haven’t uploaded my new resume to places like Monster.com or HotJobs, in the past I was lucky if 10-12 people clicked on my resume on those sites.  The difference it has made in my search for a job is this, when I began to call people back, return emails, and Twitter direct messages I had 2 phone calls from two different recruiters, 1 email from a corporate recruiter for a consulting company, and 2 Twitter direct messages about possible jobs.  I went from having zero opportunities at 8am yesterday (when I was laid off) to having at least 4 real possible job opportunities in 24 hours.

This really goes to show the power of social networks and having good followers.  I would not have some of the opportunities if it wasn’t for my Twitter followers who retweeted my resume and LinkedIn links like wildfire yesterday.  And on Facebook, I was given instructions for no less than 2 companies on how to apply and send my resume, from real people that I know. Not bots or spam people that can you deal with on places like Monster.

Remember, next time you’re looking for a job, look to your social networks, a lot of good can come from them.

Posted in Commentary, Internet | Comments Off on Social Networks & Job Hunting

Laid Off Today

This morning at 8am, I was officially laid off from my job with Sogeti USA (Houston office).  To say it was a shock would be a lie, things just weren’t going well where I was involved (lack of billing, hard to place, etc) and I saw the writing on the wall long before this proverbial axe came down.  I hold no ill will towards them, and this lay off had nothing to do with me personally.

So tomorrow I begin the hunt for the ever elusive animal known as “employment” and in these troubled times the animal might prove truely elusive.  Time will tell though.  The good news is, that after the layoff I sent my resume out to some people internally and out to some social networks via a link (Michael Koby’s Resume in PDF), and this has already beared some fruit.  Hopfully that “fruit” will grow into interviews and eventually (and hopefully sooner rather than later) offers for employment.

In the mean time, I will get to spend a little more time with my 5 month old son, work on some Android programming, and continue to improve my development skills.

Again, you cam find my resume at the link below.  Please feel free to download it, review it, and pass it around.  Especially if you live in the Houston area.

Michael Koby’s Resume (PDF file)

Posted in Updates | Tagged , , | Comments Off on Laid Off Today

Is Facebook Winning the OpenID War?

I surf the internet a lot.  It’s not really a secret.  I read a lot of sites on a variety of topics.  One thing I have noticed more of as I browse various sites is the “Facebook Connect” icon ().  It might be a small variation on that image, but I’m seeing in more and more places.

A few years ago, there was a large push behind OpenID.  OpenID, worked in  a similar way that Facebook does.  A website could set up a way to authenticate a user via an outside source, allowing the user to have a single password that they had to remember.  The idea behind this is that the one password that would be remembered would be incredibly strong.  But the user could connect to a website without having to signup for an account because the OpenID login was their login.  Facebook Connect works exactly like OpenID does, a person can log into a site using their Facebook credentials, thus allowing them to not have to remember a different password and create a new account on yet another webpage.

My question is, “Is Facebook winning the OpenID war?”. Not that there is really a war going on persey.  I’m sure some people will make the argument that the two technologies are different (and on some level they very much are), but from a end user perspective they accomplish a similar goal and since a lot of people already have Facebook accounts the userbase for Facebook Connect is larger than OpenID.  While some of the underlying technology is different, if the end result is the same from a user perspective, what incentive is there for a user to choose to get an OpenID when their Facebook credentials will work just fine?  Also, from a programmer’s perspective why implement OpenID when I can implement Facebook Connect and achieve a similar result?

Long term, I think Facebook might win out in this “single sign-on” war.  Microsoft tried but it really hasn’t won.  The only place you use your Live ID to log in is a Microsoft site.  Facebook Connect and OpenID are used in more places.  Time’s going to tell the true winner on this one but what do you think?

Posted in Commentary, Technology | Tagged , , | 2 Comments