Posts Tagged ‘Git’

JavaZone 2010, Norway

September 10th, 2010

IMG_0232.JPG

I had the privilege of presenting three talks at the massive JavaZone in Norway this year. What an amazing conference; and to think it is all run by a Java Users Group (JUG) called JavaBin.

My slides are online for:

The feedback and comments from Sigmund and Morten were wonderful. I loved getting to say hello to folks I met last year, such as Erik Mogensen. It’s like extended family here.

I hope I get invited back next year. Now, I’m off to do a hike with the organizers in the mountains of Norway!

Presenting at the Raleigh-Durham No Fluff Just Stuff Symposium

August 29th, 2010

North Carolina

This week, I made a four day journey to the very forested state of North Carolina. Joey knew a Coloradoan was coming and turned on the statewide AC to bring it down to a comfortable 72 degrees Fahrenheit when I landed. The food was great, the people were super, and the technology was awesome.

Relevance

I had an open invitation to come out and visit the team at Relevance, which I’d been waiting to cash in. The Research Triangle NFJS Symposium finally made that visit possible.

I had a great time meeting the entire Relevance team, working with Stu Halloway on automating the Clojure release scripts through some Bash scripting, Git calls and Maven Ant Tasks.

At lunch, I gave a live demo of my workflow with the DevonThink Pro product, including capturing and aggregating multiple RSS streams alongside archived emails and snippets from web pages.

In the afternoon, I had the fun assignment of working with Aaron Bedra on an implementation of JCE symmetric AES encryption on a Clojure project. He followed up a day later on “Relevance Open Source Friday” by beginning to move the implementations over to a standard library for upcoming public consumption.

No Fluff, Just Stuff

I had the pleasure of presenting Encryption, Open Source Debugging on the JVM (over 50 deliveries of that one now), Hadoop, Maven 3 and Git to the engaged audience in Raleigh on Friday and Saturday. The during-presentation questions were spot on, and even when the topics got heady, the students just leaned forward in their chairs and kept on making insightful inquiries. Attendees of that nature are pure candy to a passionate presenter like myself. I especially want to thank Darin Pope, Billy Dupre, David Bloom, David Deininger, Sri Sankaran, Asif Rashid, and Ed Savage for providing much-desired feedback on Twitter.

I know I’ll be back for the NFJS show next year, but I’ll make all efforts to put in a few more visits prior to that. A city with a technology culture of this strength demands that I do. Thanks for having me and perhaps I’ll see some of you at the Rich Web Experience in December on the beaches of sunny Florida.

Resources

For the folks that attended my talks this weekend, here are some constantly updated supplemental materials to resources that are paired with the slides:

Encryption

Open Source Debugging

Hadoop

Maven 3

Git

Rich Web Experience – Florida in December

August 23rd, 2010

I’m excited to be presenting at the Rich Web Experience this December. It’ll be a great show, but the venue location simply adds to the magnetism. Who can resist beaches and Florida in December?

I’ll be doing a sharpened version of my iOS workshop with Ben Ellingson. Attendance numbers will be greatly limited compared to our last time we ran this workshop so as to give plenty of one-on-one attention to students. We’ll get to use the latest iOS 4 SDK with its polished UI, developer-helpful features and Git integration. I hope you’ll consider joining us for this special one-day addition to the conference. Ben and I will be tempted to run the workshop on the beach.

I’ll also be doing a Git workshop in the main portion of the show. If you haven’t already heard, Git (and GitHub) is the hot new open source source code control tool that is agnostic to your programming language of choice but adds features driven by developer needs, not by marketing teams. Bring your notebook, see what the buzz is about, and walk away with a Monday-morning-equipped set of skills to apply Git on your next project.

See you on the beach!

Git Bash Prompt

August 18th, 2010

I’ve recently been asked about my Bash prompt (derived from a conglomerate of similar OSS solutions) that shows off the current Git branch and the status in the prompt. Here is my version for both Mac and Unix.

gist: 48058 Windows (Cygwin) Show Git dirty status in your Unix bash prompt
gist: 47267 Show Git dirty status in your Unix bash prompt (symbols not compatible with CygWin)

Git at the Atlanta JUG

August 17th, 2010

Today, I’m excited to be presenting Git (my current favorite topic) to the Atlanta JUG (AJUG) on behalf of the No Fluff Just Stuff Symposium Series. Gunnar Hillert has been most welcoming, and Pratik Patel has been a great promoter of the talk. Thank you both.

In about 75 minutes, I’ll explain why the Git Version Control System deserves your attention as your next version control system. I’ll show you its blazing speed adding 5000 files to a repo, creating a repository at GitHub, initiating a local branch, merging with a colleague’s repository, and finding which commit broke the integration tests.

I’ve also set up a few resources for attendees to peruse after the talk, including:

In short, if you have the least bit of dissatisfaction with your existing version control system, this talk should tip you squarely in favor of the new world of Distributed Version Control Systems (DVCS), and specifically, my favorite implementation, Git.

IBM Podcast: Andy Glover interviews Matthew McCullough about Git

August 12th, 2010

Andy Glover recently interviewed me for his new series of IBM podcasts. I was able to share about 20 minutes of my experience with and passion for the Git version control system with his audience. It was an exciting opportunity. Thanks Andy!

Give it a listen and tell me what you think. But more importantly, give Git a try! I think you’ll be pleasantly surprised.

Git on Windows + Maven Gits on the Bleeding Edge

April 25th, 2009

Git, the oft-referred to as “Linux, Rubyists, and Cool Kids source code control system”, is gaining ground so fast that there’s not enough room in this post to mention all the traction and good press it is achieving. Yet, a common comment I hear over lunches and cubicle walls is

Git doesn’t have good support on Windows yet.

I politely disagree.

While the methods for putting Git on Windows have a slight variance from that of putting it on Mac or Linux, I have seen no real compatibility issues in my near daily use of it on all three aforementioned platforms. Is there still room for it to get better on Windows though? Definitely!

The next lament I hear is

If only there were a Tortise-like UI for Git.

Let me also put that to rest and direct you to the TortiseGit homepage. While TortiseGit is still a work in progress, I’ve seen a handful of folks already putting it to productive daily use. And if you don’t like TortiseGit, then try GitSafe. And if you are using IntelliJ, support is built right into v8.1, Eclipse has eGit as an official Eclipse project now, and NetBeans has an issue open and some ongoing work for support which, awesomely consumes parts of eGit (JGit Libs) from Eclipse.

And just to share the “Peanutbutter in my Chocolate” favorite story of the week, Maven is moving to Git in many directions at once:

  1. I asked Jukka Zitting of Apache to mirror the Maven SVN trunks to Git. 36 hours later, it was done. What an amazing team player Jukka is.
  2. Maven: The Definitive Guide has moved its canonical repository to GitHub. Fork, contribute, and issue pull requests to Sonatype at will!
  3. Jason van Zyl, the founder of Maven, has sent out an inquiry to the Maven Dev mailing list musing about moving Maven’s official source repo to Git.

If you have yet to explore or fully leverage the power of Git or Maven, now is a critical juncture of market acceptance for these tools, and accordingly, a perfect time to explore their benefits. For the latest news on Git, Maven, iPhone development, and Open Source, join the conversation over at Twitter.

Git More

March 24th, 2009

It seems like all the cool kids were already talking about Git, and now even the button-down organizations I work with are taking notice.

  1. JRuby is moving over to Kenai on a Git repository
  2. Grails is on GitHub. Yes, Graeme’s even excited about it. And Jason Rudolph is thinking he can nearly expunge his knowledge of git-svn.
  3. And my favorite Peanut butter and Chocolate story of Maven, Git and Ruby Gems is on a GitHub repo.

The folks in Minneapolis at NFJS and at the Albuquerque JUG last week had a rocking good time with Git when I presented it at both places.

Jason van Zyl of Maven fame has caught the Git bug too. And Don Brown and I work on the Maven CLI plugin in a GitHub repo, for which forking and pulling has become a way of life.

Part of this surge on Git is spurred by the fact that great new training materials are sprouting right and left. If you are hungry for more Git education, then in addition to the git bookmarks I’m constantly updating, take a look specifically at:

  1. The OGRE Git Tutorial
  2. The higher-education Git Magic eBook at Stanford
  3. The down to earth GitHub learning pages
  4. Or the brand new GitGuru

Git Going… and I’ll see you in Seattle in a little under two weeks to convince you Why Git is Better than X!

Git Cleanup Screencast

February 19th, 2009

Are you a new user of Git? Here’s some basic help with cleaning up your Git working directories & files. This quick screencast shows you the basics of how Git enables you to ignore files that you never want to track, purge files that are untracked while leaving your tracked files intact, and lastly, roll back all your changes to tracked files to the last-known-good state.

Clean your Git up to Pull successfully

February 14th, 2009

Here’s a quick Git pulling & merging tip for those of you learning this awesome Distributed Version Control System.

Git Pull’s Double Duty

As you may be aware, the git pull command actually does two things under the covers. It does a git fetch to freshen your tracked remote branch and it does a git merge to merge it into the linked local branch. Sometimes this can go awry if you’ve been experimenting with files locally and forgot to return them to a checked-in state. Git errors out nicely, saying “I don’t know what you want me to do, but I’m going to be cautious here and just let you tell me exactly how to handle this.”

Error Message

One of the possible error messages you’ll see is:

error: Entry 'myapp/src/main/resources/scripts/launchapp.bat' not uptodate

Solutions

If your local changes are unimportant to you and you just want to get back in alignment with the remote branch, you have two options to apply depending on the state of your local files. First, you can reset any tracked files to their last committed state via the following command. This discards any local changes to any tracked files.

git reset --hard

Second, you can discard any untracked local files via the git clean command, in the case that they are colliding with files that the remote branch has actually added and is now tracking. You can purge your repository’s current branch of untracked local files by typing:

git clean -f

And in case you are paranoid about what this will remove, you can get a safe preview of what it would do by typing:

git clean -n

Which outputs a preview list like so:

[~/Documents/Code/myproj.git]: git clean -n
Would remove morecruft.java
Would remove unwatedfile.txt