Archive for the ‘Programming’ Category

Git and GitHub Support in JetBrains YouTrack

November 22nd, 2011

I recently had the chance to get a demo of JetBrains products’ Git integration and to meet some of the JetBrains development team in person at Øredev in Malmö, Sweden.

I love seeing things integrate better with the GitHub API. It really is fantastic to see what is possible when a rich Internet application additionally becomes a platform for apps that extend the core value proposition. GitHub has executed on this quite well with their API, now at version 3.0 and with features like gist, repo, user, and even organization management.

Youtrack issue bug tracker jetbrainsI like to keep abreast of just about everything that happens in the Git world, and the JetBrains folks certainly as very active there. The JetBrains issue tracking tool, YouTrack, makes extensive use of the GitHub API and has much in the way of Git love. I’ve been pointing folks at the YouTrack overview video if they want a quick summary and the integration demo, if the GitHub facet is the attraction.

It is always fun to ask a vendor for their view of what’s important and what’s next. The JetBrains team said (paraphrased):

  1. Keyboard-centric approach: All common actions have handy shortcuts.
  2. Smart issue search: Search with queries similar to everyday language aided by completion and highlighting. For example, type for me unresolved to filter down to open issues assigned to me.
  3. Batch modification commands similar to search queries: Select multiple issues and resolve them all by typing fixed assignee Matthew
  4. Report from everywhere: You can report issues via email or any third party application via a REST API.
  5. Full customization: You can define and use new attributes for your bug tracking and create workflows using a YouTrack workflow editor with a domain-specific language.
  6. Integration with VCSs via TeamCity and native integration with GitHub: You can specify an Issue ID and command to be applied to the issue right from commit comment. No opening the bug tracker just to change a bug state.
  7. REST API to perform any action programmatically: Complex actions like administration, issue tracking, and user management all have good treatment in the API which means tools can extend the tool if necessary.
  8. Import from other bug trackers: History can be imported from any issue tracker using the YouTrack Client Python library. There are even some ready to use scripts to import from the most popular trackers like JIRA, FogBugz, Mantis, and Bugzilla.
  9. Constant innovation with transparency: The roadmap is public and agile project management is the next big focus.

More Git-integrating tool reviews are being planned. Stay tuned.

Git at the NHJUG

July 23rd, 2011

NHJUG

I had the wonderful opportunity of being sponsored by No Fluff, Just Stuff Symposiums to speak at the New Hampshire JUG in Portsmouth on Tuesday. It was a lively crowd of 20 or so persons hosted by the excellent Ted Pennings, Matt Merrill, NHJUG, and Scott Curry.

Portsmouth nejug

We discussed Git, GitHub, IntelliJ, and eGit with regards to their importance to the broad JVM ecosystem. Many insightful questions were asked, such as “is the efficiency of the hard links to unchanged blobs maintained on Windows.” The answer was yes, because this is not actually a POSIX hardlink for commits, but rather an implementation like, but not exactly hardlinks inside Git tree objects.

CFMeetup

On Thursday, I had the equally delightful opportunity to speak to the CFMeetup online group, hosted by Charlie Aerhart and facilitated in part by Mike Henke, and supported by Tim Cunningham. It had a turnout of 35-45 persons, and has a significant additional viewership for the recorded sessions at Vimeo.

Resources

I promised some links to Git resources and they are as follows:

OSCON gets Git

June 1st, 2011

OSCON 2011Git workshop with Tim Berglund at OSCON 2011. It’ll be my first time at OSCON, and being the open source advocate that I am, I’m nothing short of thrilled to sit and attend a few sessions as well. I’ll be joined by some of my esteemed No Fluff Just Stuff compatriots such as Scott Davis and Daniel Hinojosa, amongst several others. If you are on the fence about attending, check out this partial speaker list, let the awesomeness settle in, and then book your ticket.

Oh, and last, but not least, our Presentation Patterns talk (with the venerable Neal Ford and well-known Nate Schutta) was also accepted as a talk at OSCON. Double win!

Git hits the Road: Sweden, Poland, Germany, Austria, and Switzerland

May 8th, 2011

octocat-class-act.jpgIn the whirlwind last five weeks, I’ve taken Git on the road to five countries for Git and GitHub workshops and presentations. It has been a blast to bring a tool that I’m so excited about to folks that at first are skeptical about changing something as core to their jobs as a version control system. Within a few minutes and a few examples, converts are being made. I’ve found that the best way to share Git is to show how things are frequently done now. Heads nod in agreement. Then, how they could be made better if only… Heads shake, thinking such improvements are not yet possible. Lastly, a demo of Git’s solution to those current problems in an apparent space-age VCS utopia seals the deal. New Git-fanatics are born.

The first pair of recent stops began with ScanDev, a wonderful conference that brings agility, .Net, open source, and Java solutions together under one roof. I will continue to head back any time that I’m invited. Tim Berglund of August Technology Group and I paired up to teach a Git workshop before the conference. I was able to meet a student from Denmark that I had coached via the Internet on the topic of Maven, from years past. He was back to add Git to his skill set. The second leg of the trip after ScanDev routed me to Kraków, Poland for the 33rd Degree conference. I would rate the students there as some of the most intent listeners and passionate learners I’ve had the privilege to teach in the last year. I’m hoping I have an invitation to return to the 2012 instance of this show.

JAX 2011The second tour began eleven days ago and included my very first opportunity to teach Git at JAX in Mainz, Germany. This is a conference that Ted Neward and Neal Ford constantly say wonderful things about. I got to experience that first hand. A completely full room for the Git workshop was a wonderfully welcoming sight. The group and I had a great day together doing tons of hands-on Git repository manipulation.

Leg number two of this run took me to Linz, Austria for a combination of a full-day Git workshop followed by a Git talk at the eJUG run by the very professional Martin Ahrer. The group was chomping at the bit to return to work the following day and start converting SVN repos to Git.

CanooThe summation of this trip took me to Basel, Switzerland, which, I can report, is as beautiful as every other part of Helvetia that I’ve had the chance to see. Hamlet D’Arcy and the Canoo crew had me do two days of Git training in which both Canooies and external students attended. It was maxed out on both days — the room could not hold a single additional person. I squeezed in a walking tour of a quadrant of the city with Hamlet and his daughter on her skooter. I can see the attraction of living there with foot access to meals, shops, parks, the Rhein and flights to just about anywhere in Europe. It was in sum, a delight in every respect.

Attention turns to the future with the St. Louis instance of No Fluff Just Stuff right around the corner at the end of this week and a multi-day Git private training in New York City for the majority of the following week. Then, there’s the Salt Lake City JUG, and the Dallas NFJS. More Git fun almost every week of this year.

With this much attention on Git, there must be something to it. If you haven’t taken a look at it yet, set aside an hour (or six) of your time this coming week and do so. Let me know what you think. Maybe even sign up for a class if your interest is piqued.

Viewing Branch Tracking Info in Git

March 8th, 2011

Many students and colleagues have asked me how to view the branch tracking information in Git. There are a minimum of three answers, each giving more verbose information. I’ve demonstrated each in the following gist at GitHub.

Git at Canoo in Basel, Switzerland

March 8th, 2011

canooS.jpg

Ben Franklin Octocat and I are pleased to announce that I’ll be giving one and possibly even two days of Git training at the Canoo offices in Basel, Switzerland in May.  There is some room for public registrants, so take a quick look at the page and if the very affordable 225 CHF fits your budget, come and join us on that Thursday or Friday for a great day of Git mentoring (in-person is always the most valuable form of learning).

GitHub Octocat, Ben Franklin

You”ll walk away with a solid understanding of the Git DVCS tool — not just wrote memorization.  The class is conducted in a very interactive style and we’ll aim to travel from the basics all the way to some very advanced DVCS moves.  You’ll be able to wield ultimate power over your source code history whether stored locally, at your company, or on the awesome GitHub platform.

See you in CH!

Git Filter-Branch Examples

December 31st, 2010

Have you ever looked at the powerful git filter-branch command? It offers, amongst many features, the ability to maintain history while re-writing the tree to a subset of its past self. A common use case is to prune out a large and unnecessary folder of binaries that was never intended to be under version control.

The filter-branch command can be very confusing at first. What’s needed is a set of working examples. I’ve got 5 scripted flows to show you how to use it. Just hop over to my ever-growing git workbook that I use for workshops and look for module #27 as PDF or as HTML. There’s a corresponding set of samples in the example-repos directory.

If you are interested in more of these type of advanced moves with Git, stay tuned for my upcoming O’Reilly Git Master Class videos (directly O’Reilly link soon), monthly Git trainings via GitHub.com, No Fluff Just Stuff tour stops, or one of my international conferences hosting my Git talks.

Presenting Encryption, Maven at Øredev in Malmö, Sweden

November 12th, 2010

I had the pleasure of presenting two talks at Øredev this week. For those of you that asked, here are the slides and the code samples:

Comments and feedback in both positive and constructive criticism formats are greatly valued. Drop me a line via email or twitter.

ZShell Prompt for Git

November 6th, 2010

I had the pleasure of presenting seven talks at the NFJS Reston Virginia show this weekend. Two of those talks were Git-centric. One was a traditional presentation and the other was a workshop. In the latter, I was asked about my custom Git-status shell prompts. Earlier in my blog, I’ve pointed to my Mac, Linux, and CygWin BASH prompt scripts, but I’d also like to point to my ZShell based scripts as well, which are now housed in their own GitHub repository. Fork, commit, and send pull requests!

Thanks to everyone that attended and made it a great time for me through their interactivity and questions.

Read the rest of this entry »

Clojure RefCard

November 3rd, 2010

Tim Berglund and I are proud to announce his first and my fifth DZone RefCard. This one is on Clojure, a functional programming language for the JVM. Download it and tell us what you think.