Just trying to make sense of things...

Scott Chacon – Git Documentation Master

Friday, 30 October 2009 08:48 by jordan.terrell

As I’ve continued my investigation into Git, a name kept appearing whenever I found excellent Git documentation.  That name is Scott Chacon.  This is a person who favors concepts over commands, and I immensely appreciate his efforts in demystifying Git.  I’ve found three resources that he, to one extent or another, has authored – all of which are great.

Of the three resources, for someone starting out I would recommend the Git Internals PDF.  It’s concise and simple to understand, and I’ve already seen one person who, more or less was anti-Git, read it in an hour and become pro-Git.  The other two resources are excellent as well.

I have to hand it to Scott, he sure knows his Git.  He just also knows how best to teach it.

Categories:   Programming
Actions:   E-mail | | Permalink | Comments (0) | Comment RSSRSS comment feed

iSynaptic.Commons Lives

Friday, 30 October 2009 08:35 by jordan.terrell

The last time I talked about iSynaptic.Commons was in July of 2008.  Basically I said that I was putting the release on hold.  Well, I’ve finally released it under the MS-PL license.

My reason for releasing it is by no means because it is complete.  It is no where near there.  I’ve got a lot of work yet to do on it, and I’ve got many things that I want to completely change or remove.  So my recommendation is that you don’t go use the code in a project you intend for it to keep stable, because it is going to be a moving target for now (i.e. there will be breaking changes).  Especially the Text.Parsing namespace and the Xml namespace.  Those were very naive and simplistic, and I will be replacing.

However, my primary reason for releasing it is to get feedback.  I don’t expect much at first, but I want it to be something I can talk about in this blog, and solicit direct feedback about specific parts of the framework.

Finally, I talked about iSynaptic.SolutionBuild and iSynaptic.Modeling in my previous iSynaptic.Commons post.  SolutionBuild exists and is in partially working order.  I will, at some point, be working on moving this into a public repository.  I may even change SolutionBuild to be based on PowerShell, and possibly psake.  As for the Modeling project, I’ve re-envisioned it under a different project I’m calling iSynaptic.Core.   Currently Core doesn’t exists (other than the repository being stubbed out), but what I wanted to accomplish with the Modeling project will be wrapped into the Core project.  Core will depend on Commons (Commons being a lower-level framework).  Likely, some of what is in Commons will be pushed into Core – I want to keep Commons lightweight, but useful.  Besides rolling Modeling into Core, details on what Core will be is something for a future post.  I don’t necessarily want to talk about it, until I have something to show.

Initially, my activity on all of these initiatives will be light.  I have numerous projects that are work related that I need to complete, and other non-development personal obligations as well.  This is just me taking the first step…

Fowler’s DSL Book Milestone

Wednesday, 21 October 2009 14:08 by jordan.terrell

Martin Fowler just updated his roadmap for his upcoming DSL book.  I can’t wait to get it!

Tags:   ,
Categories:   Programming
Actions:   E-mail | | Permalink | Comments (0) | Comment RSSRSS comment feed

Favor Concepts Over Commands

Monday, 19 October 2009 13:25 by jordan.terrell

Finally, I understand Git!!!

For a while I’ve been scratching my head on why so many people are jumping on the Git bandwagon.  I understood conceptually the benefits of a Distributed Version Control System (DVCS), but every time I sat down to learn Git I ended up more confused than when I started.

I even bought a book - Pragmatic Version Control Using Git.  Even after going through that book I still didn’t get it.  I was drowning in a sea of commands and I understood the basics of adding and committing files, however, outside of that I was finding myself getting into trouble and not having a clue on how to work through it.  I tried using some visual tooling to help, but it didn’t.  I attributed it to Git being far to complicated (and in some ways it is compared to other VCSes), and stopped trying to learn Git with a plan to pick it up in the future.  Much later in the future.

Then I stumbled on a book that, although being published by Apress, is available in open source formPro Git.  Not much time had passed since my last attempt, so I wasn’t really enthusiastic about reading another Git book, so I semi-begrudgingly read chapter 1.  Still, I wasn’t excited – chapter 1 covered the same stuff that was in Pragmatic Version Control Using Git.  Chapter 2 wasn’t that much better – just a laundry list of commands that you are presented with.

Honestly, I don’t know why I kept reading, but I’m SO glad I did.  Chapter 3 is where things just clicked.  The author started to use visualizations to show how Git works, and he started to explain all the underlying concepts of how Git represents things.  As each command is executed, he would show a visualization of how the Git repository changed, and that further reinforced the conceptual ideas.  Thru the rest of the book the visualizations were used and this added so much to the value of the content.

I finally understand Git and I will be slowly moving over to it as my main VCS – replacing Subversion.  I still think that the supporting tools need to mature (e.g. Visual Git tools – I don’t like command prompt source control), but the basic toolkit is rock solid.

If you want to learn Git, I strongly suggest you buy Pro Git (support the author).  If you plan to teach Git using any medium (e.g. book, blog, talk), please favor teaching concepts over commands – your audience just might git [sic] it!

Categories:   Programming | General
Actions:   E-mail | | Permalink | Comments (0) | Comment RSSRSS comment feed

Google Wave = Social Networking Crack

Friday, 2 October 2009 10:19 by jordan.terrell

At least according to others…

I’ve not received an invitation to Google Wave yet.  But from looking at Robert Scoble and Louis Gray’s blog posts, it may be a bit overhyped and overemphasize real-time communication.  It makes me think of people who watch the stock market real-time – every little fluctuation in a stock price or derivative causes a corresponding fluctuation in their heart rhythm.  Not for me.

I’ve found use for certain social networking sites, but I fall into the camp that doesn’t feel compelled to monitor the goings on of my friends and associates on a daily or even weekly basis.  Some social networking platforms I’ve seen bring the worst out of people and they encourage so much drama.

Google Wave, in some ways, aims to bring many of this social networking paradigms together into a unified platform.  Definitely something I’ll try and may even find use for – but so far, based on what I’ve read and seen – it might be something I group into what I affectionately call: Social Networking Crack.

DNUG Talk: Follow Up

Friday, 2 October 2009 10:01 by jordan.terrell

I think last night’s talk I gave on Domain Driven Design was a success.  I received good feedback from those who attended.  We had around 50 attendees.  A good number of people had never heard of Domain Driven Design (which was surprising to me), many had heard of it but didn’t know much about it, and one or two people had read the book.  It was exactly the audience makeup I was targeting.

Domain Driven Design is not an easy topic to introduce.  It’s very broad, at times very complex and intricate, and it is a very conceptual topic – that is to say, it is more about how you think and communicate about a domain (business problem/solution space), and less about how you write software around the domain.

I outlined a number of follow up resources – frankly a LOT of follow up resources.  Domain Driven Design isn’t something that you are going to pick up in a few months; it is going to take time to absorb and apply.  There are technical concerns that often influence how you apply Domain Driven Design, and those concerns can often be addressed with other documented patterns – that’s why I provided supporting resources.

If you came to my talk, I’d appreciate any feedback you’d like to offer.  I’m giving the talk again at the Twin Cities Code Camp on October 24.  That is going to be a challenge – I only have 75 minutes at that venue, and I easily used 90 minutes last night (excluding discussion about follow up resources).

Thanks to everyone who came!

DNUG Talk: Intro to Domain Driven Design

Thursday, 1 October 2009 07:51 by jordan.terrell

I’m giving a talk today at the Twin Cities .NET User Group, sponsored by ILM and hosted at Microsoft.  I chose to give it on Domain Driven Design because it is something that I’ve been learning since 2005, but there still seems to be many people who don’t know what it’s about.  I’ve received lots of feedback from people expressing interest in the topic, so hopefully we’ll see a good turn out.

I’ll be posting the resources after the talk – stay tuned!