I did a presentation on GIT for Agility at Vancouver Tech Fest today. Here are the slides for those who wanted them! Let me know if you want more info.
http://drop.io/vantechfest
Here are some links to good GIT sites:
Linus Torvalds on GIT: http://www.youtube.com/watch?v=4XpnKHJAok8
GIT magic book: http://www-cs-students.stanford.edu/~blynn/gitmagic/book.html
MSysGIT: http://code.google.com/p/msysgit/
GIT Extensions project for VS: http://code.google.com/p/gitextensions/
I'm glad people liked the presentation. The organizers will post the actual screen capture and audio later.
Saturday, November 21, 2009
Monday, November 2, 2009
ALT.NET Vancouver is on!
We will have a FREE open spaces event held at the 500 Plaza Hotel (Cambie and 12th) starting at 5:30 pm Thursday, Nov. 5th! Participants will include:
Eric Evans
Michael Feathers
and possibly Martin Fowler and others!
This is your chance to participate in an interactive setting with a lot of the presenters from Agile Vancouver.
Please go and sign up at altnetvancouver.ning.com. Please message Stefan Moser or Scott Muc through that site regarding any details.
Eric Evans
Michael Feathers
and possibly Martin Fowler and others!
This is your chance to participate in an interactive setting with a lot of the presenters from Agile Vancouver.
Please go and sign up at altnetvancouver.ning.com. Please message Stefan Moser or Scott Muc through that site regarding any details.
Books at Agile Vancouvre Conference
Since some people couldn't get the time off work or couldn't afford to attend the conference, they won't be able to get the great discount we have on some books that we have at 20% off the cover price. Please look them up online for the price and subtract 20%. We also include the tax in that price. Let me know through twitter:
Refactoring: Ruby Edition Jay Fields / Shane Harvie / Martin Fowler / Kent Beck
Fearless Change: Patterns for Introducing New Ideas Mary Lynn Manns Ph.D./Linda Rising Ph.D.
Working Effectively with Legacy Code Michael Feathers
UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3E Martin Fowler
Domain-Driven Design: Tackling Complexity in the Heart of Software Eric Evans
Lean Software Development: An Agile Toolkit Mary Poppendieck / Tom Poppendieck
Patterns of Enterprise Application Architecture Martin Fowler
Planning Extreme Programming Kent Beck / Martin Fowler
Refactoring: Improving the Design of Existing Code Martin Fowler / Kent Beck / John Brant / William Opdyke / Don Roberts
Analysis Patterns: Reusable Object Models Martin Fowler
Leading Lean Software Development Mary Poppendieck / Tom Poppendieck
Refactoring: Ruby Edition Jay Fields / Shane Harvie / Martin Fowler / Kent Beck
Fearless Change: Patterns for Introducing New Ideas Mary Lynn Manns Ph.D./Linda Rising Ph.D.
Working Effectively with Legacy Code Michael Feathers
UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3E Martin Fowler
Domain-Driven Design: Tackling Complexity in the Heart of Software Eric Evans
Lean Software Development: An Agile Toolkit Mary Poppendieck / Tom Poppendieck
Patterns of Enterprise Application Architecture Martin Fowler
Planning Extreme Programming Kent Beck / Martin Fowler
Refactoring: Improving the Design of Existing Code Martin Fowler / Kent Beck / John Brant / William Opdyke / Don Roberts
Analysis Patterns: Reusable Object Models Martin Fowler
Leading Lean Software Development Mary Poppendieck / Tom Poppendieck
Tuesday, September 22, 2009
Much Ado About Agile 2009 Conference Registration is Open!
This is the line up:
Martin Fowler,
Eric Evans,
Michael Feathers,
Mary Poppendieck,
and others
The conference is going to sell out quickly as it is a small venue.
To register please visit www.agilevancouver.ca
Martin Fowler,
Eric Evans,
Michael Feathers,
Mary Poppendieck,
and others
The conference is going to sell out quickly as it is a small venue.
To register please visit www.agilevancouver.ca
Sunday, September 20, 2009
Event Sourcing and CQS part 1
Lets start by getting the transaction side of the application going. We're going to have a customer class that will have some simple properties at first.
Here is the project setup:

This is a pretty easy start. We have the test project that will exercise anything that we write. The messages project is where all our messages will reside. The Transaction Service will house our coordination of receiving commands to the Domain. We'll worry about the event publishing in a little bit. The Domain project will house our entities.
Time to get some sleep. More on this tomorrow.
Here is the project setup:

This is a pretty easy start. We have the test project that will exercise anything that we write. The messages project is where all our messages will reside. The Transaction Service will house our coordination of receiving commands to the Domain. We'll worry about the event publishing in a little bit. The Domain project will house our entities.
Time to get some sleep. More on this tomorrow.
Time Machine Example Implementation
A little while ago I wrote about a time machine for your application. This based on Greg Young's infamous Event Sourcing strategy. It's time to get a sample application going with this approach. I'll also take it one step further and apply the same strategy to the reporting side of the application. A lot of this hinges on the Open Closed Principle (OCP) so I'll try and enforce that through GIT hooks.
Here is a recap of the steps I'll be taking:
1. Event Sourcing and CQS to the extreme as prescribed by Greg.
2. Event Sourcing for reporting schema changes.
3. OCP application to the versioning of the dB instead of version scripts.
4. Enforcement of the OCP to the pub/sub of the reporting dB.
5. OCP application to the reporting services side through GIT hooks.
This will be hyperlinked as I complete the blog posts.
Here is a recap of the steps I'll be taking:
1. Event Sourcing and CQS to the extreme as prescribed by Greg.
2. Event Sourcing for reporting schema changes.
3. OCP application to the versioning of the dB instead of version scripts.
4. Enforcement of the OCP to the pub/sub of the reporting dB.
5. OCP application to the reporting services side through GIT hooks.
This will be hyperlinked as I complete the blog posts.
Friday, September 18, 2009
The Best Certification
The best "certification" is still community recognition by putting
yourself out there and learning/teaching publicly:
Blogging:
You put up your ideas in front of many eyes. Teach people. They will be better because of you. Learn from people. You will be better because of them.
Twittering:
An optimal conversation is hard to find within your geographical confines. Get the room full of conversations experience on the global scale. What you want to talk about right now is something that others out there want to talk about as well.
Participating in Forums:
To explain something in more than a 140 character-at-a-time conversation, you need a forum. People on forums are there to teach and learn. Participate!
Presenting at User Groups:
Sometimes you just need to talk to people in person and get your ideas out in that manner. Local user groups are great as the attendees are people that you can find common ground with, teach and learn from their critique of what you present.
Presenting at Conferences:
This is an extension of the user group but will connect with a larger group and geographical reach. It will help you develop as a presenter which will make you a better teacher and better learner. The evaluation forms will let you know where you can improve.
Reaching Out to Other User Groups:
Get involved in other user groups. Present there. See what the gap is between the groups. This new dialogue will be very important to learn why the groups exist and why the technologies/methodologies/etc behind each exists.
I resisted that for a long time and only recently bit the bullet to do all of the
above. Your "certification" is the recognition your peers give you.
People right out of school are having a hard time getting work. The
ones that are passionate are the ones that I see getting their career
going in the right direction. They are the ones that are still there
participating in the community. We started an Alt.Net Vancouver group
which is tiny compared to most user groups. But I have a hard time
finding more dedicated people. The inexperienced people are getting
their best "certification".
Hope this will save some people from memorizing index cards and put their time to good use instead!
yourself out there and learning/teaching publicly:
Blogging:
You put up your ideas in front of many eyes. Teach people. They will be better because of you. Learn from people. You will be better because of them.
Twittering:
An optimal conversation is hard to find within your geographical confines. Get the room full of conversations experience on the global scale. What you want to talk about right now is something that others out there want to talk about as well.
Participating in Forums:
To explain something in more than a 140 character-at-a-time conversation, you need a forum. People on forums are there to teach and learn. Participate!
Presenting at User Groups:
Sometimes you just need to talk to people in person and get your ideas out in that manner. Local user groups are great as the attendees are people that you can find common ground with, teach and learn from their critique of what you present.
Presenting at Conferences:
This is an extension of the user group but will connect with a larger group and geographical reach. It will help you develop as a presenter which will make you a better teacher and better learner. The evaluation forms will let you know where you can improve.
Reaching Out to Other User Groups:
Get involved in other user groups. Present there. See what the gap is between the groups. This new dialogue will be very important to learn why the groups exist and why the technologies/methodologies/etc behind each exists.
I resisted that for a long time and only recently bit the bullet to do all of the
above. Your "certification" is the recognition your peers give you.
People right out of school are having a hard time getting work. The
ones that are passionate are the ones that I see getting their career
going in the right direction. They are the ones that are still there
participating in the community. We started an Alt.Net Vancouver group
which is tiny compared to most user groups. But I have a hard time
finding more dedicated people. The inexperienced people are getting
their best "certification".
Hope this will save some people from memorizing index cards and put their time to good use instead!
Subscribe to:
Posts (Atom)
