Proposed Utah Code Camp Spring 2016 Talks

It’s that time of year again and I’ve proposed the following talks for the 2016 Utah Code Camp. Please vote for those you’d like to see as I doubt I will be able to give all of them :-).

Vote here: Utah Code Camp Spring 2016 Sessions

Update: Two of my talks were accepted, thank you for your votes! That’s quite a bit of work for me in such a short time, but I will give it the old college try and do my best not to disappoint anyone. See you at Code Camp!

Proposed talks:

  • Software Practices and Principles
    • Why TDD is a Design Activity

      Do you think design is that thing you do at the beginning before you start implementation? Oh pshaw, waterfall thinker! Design is an activity. Designs evolve. Software is the most mutable substance known to mankind. TDD embraces that evolution and malleability and changes design from a phase into an activity we practice every day.

    • Accepted: Modern C++

      Has it been a while since you looked at C++? Do you have a “backwards looking” perspective on C++ based on poorly written old code? Come take a look at modern C++ and dispel your misconceptions about C++. Embrace lightweight abstraction mechanisms with efficient implementations that make your phone’s battery last longer! C++14 is stable and is implemented across all major platforms. C++17 standardization is underway. Compilers are implementing C++17 support in anticipation of the standard, instead of waiting until it is released. The library working group in the standards committee has additions to the C++ Standard Library coming your way.

  • Microsoft Technologies
    • Accepted: Developing iOS and Android Apps with Visual Studio

      In this presentation, we’ll take a look at the additions to Visual Studio 2015 that support the development of iOS and Android applications. We will emphasize cross-platform development of a single code base.

    • NodeJS for Visual Studio

      In this presentation, I’ll give a quick tour of the NodeJS integration for Visual Studio.

SLC Software Craftsmanship: Rewrite or Refactor?

Tomorrow the Salt Lake City Software Craftsmanship group will be holding their 2nd meetup. The reading discussion topic for this month is Rewrite or Refactor?. Dinner will be served and there will be a programming exercise after the reading discussion. See you there!

An Interview with InfoQ about Exercism.io

InfoQ has just published an interview with myself and Katrina Owen, the creator of exercism.io. Check it out!

C++ Now! 2014 Presentations Posted

Ray Fix is posting all the presentations of C++ Now! 2014

You can read my presentations here:

C++ Now! 2014 was a wonderful experience! I very much enjoyed talking with the attendees, both during the show and afterwards at restaurants and the bar. I hope to attend again next year.

Free Workshop: Test-Driven Development in C++, Wednesday, April 30, 2014

Have you heard about that new thing the kids are doing called test-driven development and wondered what it’s all about? Is it about testing? Is it about design? Is it good or is it bad?

Come join me for an evening workshop where I will show you what it’s all about and you’ll have a chance to try it out for yourself on a problem large enough to be interesting, but small enough that you can make progress on it during the workshop. The workshop will use the Boost.Test and Turtle libraries.

Thanks to Fusion-io for the meeting facilities, WiFi access, food (pizza from The Pie) and refreshments.

Seating is limited, so please RSVP to reserve your space.

Date Wednesday, April 30, 2014
Time 6 PM – 9 PM
Location Fusion-io (Google maps)
2855 E. Cottonwood Parkway
Suite 100
Salt Lake City, UT 84121

Read the rest of this entry »

Two Sessions Accepted for C++ Now! 2014 (May 12-17, 2014)

I’m pleased to announce that two of my proposed sessions for C++ Now! 2014 have been accepted! I proposed three sessions to the conference: create a refactoring C++ tool in C++ with clang, test-driven development with Boost.Test and Turtle Mock, and automated acceptance testing with FitNesse. I would have been pleased if just one session were accepted and I’m quite happy that two sessions were accepted, even if it does mean a bunch of work for me. Both sessions will be workshop-oriented, meaning we’ll be looking at code and very few, if any, slides. Death to powerpoint! Long live the code!

Read the rest of this entry »

Spring 2014 Utah Code Camp: March 15th, 2014

The Spring 2014 Utah Code Camp is coming up and I’ve got some proposed sessions. Utah Code Camps are by the developer community and for the developer community. Utah Code Camp is always free! Spring 2014 Utah Code Camp will be held on March 15th, 2014 at the University of Utah Spencer Fox Eccles Business Building.

Read the rest of this entry »

AgileRoots 2010 Videos

Videos of the presentations at AgileRoots 2010 are up for free viewing on confreaks. If you missed my presentation “You Can Test Anything!” with Zhon Johansen at the recent Utah Code Camp, you can catch an earlier slightly less polished version at confreaks.

Utah Code Camp Fall 2010 Schedule

The preliminary schedule has been posted for the Fall 2010 Utah Code Camp on September 25th. I’ll be presenting two sessions: an updated version of my presentation on making internet-enabled applications for Windows Phone 7 and updated version of “You Can Test Anything!” with Zhon Johansen. I’ll have some Windows Phone 7 swag to give out and an MSDN Universal subscription to give away as well. Code Camps are always free and are for the developer community and by the developer community.

There will also be an agile roundtable at Code Camp facilitated by Zhon Johansen. Zhon recently presented on the highly successful agile roundtable we have here in Salt Lake City at the Agile 2010 conference. The local roundtable has been going steady for 10 years and is a great resource to any developer looking to improve their team skills in an agile environment.

Utah Fall Code Camp on Sept. 25th, 2010

Utah Fall Code Camp on September 25th, 2010. I’ve submitted several sessions to the organizers: one on using DirectWrite in C# with SlimDX, an enhanced version of my talk on internet enabled applications for Windows Phone 7 and an updated version of the “You Can Test Anything!” session that Zhon Johansens and I delivered at AgileRoots 2010.

Test-Driven PHP Development

phpOK, so I have a little open source project where we agreed to use PHP as the implementation language. I wanted to practice test-driven development with PHP, so I got out PHPUnit and started coding.

Read the rest of this entry »

Pearson Publishing Sponsors “You Can Test Anything”

I’m pleased to announce that Pearson Publishing will be supporting the Agile Roots 2010 session “You Can Test Anything”, presented by myself and Zhon Johansen. The publisher will be giving us some books to give away to attendees of our session. They are also a sponsor of the conference in general. Thanks, Pearson Publishing!

Today, May 14th, is your last day to register for Agile Roots at the early bird discount and save $100 or more.

“You Can Test Anything” Accepted for Agile Roots 2010

Agile Roots 2010 will be held June 14th and 15th in Salt Lake City, Utah. Zhon Johansen and I will be presenting a 60 minute session titled “You Can Test Anything”. We will give you a whirlwind tour of techniques that show you how to introduce tests into legacy code, i.e. code without existing tests. See you there! Last year’s Agile Roots conference was a great bargain for the price. This year’s conference has been expanded to two days and includes a mix of speakers and hands-on tutorials.

Utah Code Camp on March 27th, 2010

At this Spring’s Utah Code Camp on March 27th, 2010 I will be presenting the following sessions:

  • What’s New in XNA Game Studio 4.0
  • Developing for Windows Phone 7 Series
  • Red, Green, Refactor: Learn Test-Driven Development in Two Hours (with Zhon Johansen)

Check the Utah Code Camp website for more information.

Code Camps are always free.

C++ Mock Object Workshop on January 13th

Zhon Johansen and I will be covering C++ mock object frameworks at the January, 2010 meeting of XP Utah. Zhon will cover googlemock, the Google C++ Mocking Framework, and I will cover mockpp, Mock Objects for C++. XP Utah meets from 7pm to 10pm on the second Wednesday of every month at the Borders bookstore in Murray, UT.

During this workshop, we will practice test-driven development in C++ using mock objects. We will be using Boost.Test as the underlying unit testing framework. The workshop will be organized as a programming kata, first with mockpp and then repeated with googlemock. By repeating the same exercise with the same unit test framework but two different mocking frameworks, participants will be able to compare and contrast the two mock frameworks for C++.

The workshop is free and open to all.

To participate, bring a laptop with a C++ programming environment. There is free wireless at the Borders bookstore. You will want to have downloaded and installed Boost.Test before the workshop. We will start promptly at 7pm in order to work through the kata with both mock object frameworks. If you are unfamiliar with writing unit tests in C++, consult my tutorial on unit testing with Boost.Test.

Direct3D Test Doubles, Part 1

When developing Direct3D code using test-driven development, you need test doubles to stand in for interfaces used by your code. This way you can control the interaction of your system under test with its environment. This post is the first in a series of posts that discuss several ways you can create test doubles for the COM interfaces used by a Direct3D application.

Read the rest of this entry »

Unit Testing Concurrency

Jonathan House passed along a link to Testing Race Conditions in Java, a post from google’s open source blog. It describes ThreadWeaver, a tool for unit testing concurrency in java.

This reminded me of a recent article in MSDN magazine Code Coverage for Concurrency. It describes SyncCover a tool for measuring code coverage in unit tests involving concurrency.

Java and C# both provide language level primitives for synchronization. This makes it difficult to write unit tests that force the code down different paths relating to concurrency and synchronization. The nature of the language level primitives doesn’t lend itself well to faking them out by encapsulation through interfaces or virtual methods.

C++ takes a library approach to concurrency and synchronization. While I haven’t tried this yet myself, I have a feeling that the library approach would make it easier to control the playout of various synchronization and concurrency scenarios when writing unit tests.

Agile Code Reviews, Part 2

In my post on agile code reviews, I described how we were attacking our code through automated refactorings that we trusted to apply without tests. Mostly we applied a series of Extract Method refactorings to long methods in the process of performing a Compose Method refactoring on the long method. Eventually, your team will run out of situations where you can apply automated refactorings to improve the design of your code and you’ll have to start applying actual code changes. Several of the commenters on my previous post remarked that making changes without unit tests implies risk that can only be averted with sufficient manual testing and that such risk is better mitigated by automated tests. In this followup post, I’ll describe the results from our team at applying the decoupling techniques described by Michael Feathers to our legacy code so that we could backfill unit tests onto the legacy code in preparation for a design change we want to make.

Read the rest of this entry »

Unit Test Videos

ElMohanned Ahmed shared these links on unit testing videos with the sl-agile mailing list and I’m sharing them with you.

Read the rest of this entry »

Unit Testing JavaScript on Windows

JavaScript is playing an increasing role in modern applications. While it is commonly used in Web applications to implement client-side scripting, JavaScript is finding its way into more applications every day as it becomes a defacto standard for application scripting. If you practice test-driven development, you need a way to write unit tests around your JavaScript just as much as you need a way to write unit tests against your C++, C# or Java code. In this post I’ll describe a simple mechanism for writing unit tests against JavaScript on Windows via Windows Script Host.

Read the rest of this entry »