Today, I had the opportunity to speak at WordCamp Chicago 2013. In an unusal twist for me, I spoke about git, which is a very non-WordPress topic. While I typically like to write a more thorough post to summarize my talks, time was simply not on my side this week. As such, I am including a very short synopsis of my talk with a link to my slides.
The main thesis of my “Enhancing Developer Creativity With Git” talk was that fear can impair creativity and one can overcome his/her fear of git. The three “fears” that I addressed were:
- Fear of not having an undo
- Concern about merging your work
- Fear of committing regressions
For each of these concerns, I discussed “cures” for the fears. With regard to concerns about undoing commits, I talked about git’s
reflog feature that keeps a local log of actions that change the HEAD state of the repository. With
reflog you can easily reset your repository to a previous state in the same way you would expect an “undo” command to work. I highly recommend reading about
reflog as it is a really powerful tool for viewing your local history to “undo” problems with your repository.
I then discussed different strategies for merging topic branches into mainline branches. In addition to committing early and often, I suggested that it is best if you also put effort into your merges. Git offers a number of powerful rools for merging. By walking through examples of
git merge --squash,
git merge --no-ff, and
git rebase -i, I demonstrated how it is possible to sculpt your git history to tell the story that you want it to tell.
Finally, I discussed one of my favorite git tools,
git bisect, which allows you to quickly find a commit that introduced a regression into a repo. Git bisect uses a binary search strategy for finding the offending commit. I used the example of an easy to miss bug in a theme that I recently worked on. It took only about 3 minutes to identify and fix the bug using
git bisect where I otherwise would have spent in excessive of 2–3 hours working on the issue.
Overall, I introduced a number of tools that help free developers from the concerns of a linear VCS system. Instead of being so concerned about every commit, my talk focused on allowing developer to think more about their work and less about their VCS and repo history, which serves to foster more creativity and freedom in their work.
The slides for the talk are available for download. Please leave a note if you have any questions about these git concepts.
I recently gave a talk titled “Core Caching Concepts in WordPress” at WordCamp Seattle 2013. As a companion to the talk, I wanted to write an article that covers the same information presented, as well as add some additional information not covered in the talk. The purpose of this article is to provide a framework […]
For some time, I have been thinking through how WordPress could implement a partial page cache to compliment its page cache and object cache. I believe that it is an important part of making WordPress a successful application engine. After seeing a Twitter thread started by Rarst and propelled by Daniel Dvorkin and a post […]
WordPress makes interacting with an object cache a breeze. With minimal effort, one can set, get, and delete cached objects. The challenge is with how to implement those functions in a reasonable manner to develop a fast and powerful application. One of the more challenging aspects of writing applications is trying to find strategies to […]
I recently had the pleasure of giving a talk at WordCamp Chicago 2012, called Grokking the WordPress Object Cache: Getting a Handle on the WP_Object_Cache Class. Instead of linking people to my slide deck, I decided to write an article that covers the concepts presented in the talk in addition to some more information that […]
It is my pleasure to release a beta version of a WordPress Memcached object cache backend (on GitHub now) based on the PECL Memcached extension. The extension differs from the original WordPress Memcached Object Cache backend in that it is based on the PECL Memcached extension, not the PECL Memcache extension (differeniated by addition or […]
Tonight, I released version 0.1.2 of Debug Bar Cron. Jeremy Felt, my awesome 10up co-worker, pointed out that the times reported for events were always positive. In other words, if an event was scheduled for 2 minutes ago, its scheduled time was reported as “2 mins” instead of “2 mins ago”, implying that the event […]
My main goal when building tollmanz.com was to ensure that the content would always be pleasant to read. I really enjoy the “read later” services and modelled my theme off of those services’ easy-to-read article templates. Before launching, I also knew that I would need to focus a lot of attention on making code easy […]
With the extra time this Memorial Day weekend, I was fortunate enough to finally write a plugin that I have been thinking about for a while. The plugin, released today, is called “A Fresher Cache” (WordPress Plugin Repo, GitHub). It provides a simple API for adding clickable “buttons” to the admin bar that initiate refreshing […]
You try to get all the details right, but sometimes you miss something. I suppose when you do a WordPress talk and you have Alex Mills in the front row, issues are bound to be revealed. In addition to having updated my live slides, below is a list of clarifications and fixes for my bold […]