Speaking At DevReach 2013, Sofia


Wow, what a lonely blog this has become… Alas, I don’t really have an excuse for why I haven’t been keeping it up-to-date.  But I suppose that better late than never?  :-) Well, on to the point of this post:  as you can understand from the title, I will be speaking at DevReach 2013 in Sofia, Bulgaria.  This time around the subject is how to write your own developer-testing framework (think <YourNameHere>Unit).  I’d be happy to meet any of my readers who are there!
one comment

From Good to Great: Becoming a Rock-Star Developer in 4 (Easy?) Steps


Maybe you’re stuck in your career and looking for that new ‘thing’ that will jump-start it back.  Maybe you’ve encountered a technical problem that is just too big for your current state of knowledge.  Hopefully neither of these things are true, and you’re simply looking to improve your craft and competence for the sake of becoming better.  Whatever the reason, rest assured that there are things you can start doing today.  Even right now, if you’re so inclined. Over the course of my years in the industry, I’ve met a lot of great developers and technical people.  Many...
no comments

Functional Programming Talk


Yesterday I had the pleasure of speaking in front of a number of my colleagues in Sela about functional programming.  My talk’s title was ‘The Essence of Functional Programming’ and it dealt with what I consider to be the primary differences between functional and other languages.  Thanks to everyone who came – it was pleasure (broken air-conditioning not withstanding..)!  Slide deck is available here.

Testing a Longest-Common Prefix Implementation Using Model-Based Testing


In  my last post I discussed how to implement a Longest-Common Prefix (LCP) algorithm in both an imperative and functional manner in C#.  I also mentioned the fact that for the imperative implementation I needed some to write some unit tests.  Here is the test code: public class LCPTests { public void Get_WithNoValues_ShouldReturnEmptyString() { string result = LCP.Get(new string {}); Assert.AreEqual(0, result.Length); } ...

Longest Common Prefix with C# and LINQ


I recently can across an interesting problem:  Given a set of n directories, find the most nested directory that is an ancestor of all of them.  This is equivalent to finding the longest common prefix. For example, if I have the following paths: /dir1/dir2/dir3 /dir1/dir2/dir4 Then the longest common prefix is just /dir1/dir2.  If we now add /dir1/dir5 to the set, we get: /dir1/dir2/dir3 /dir1/dir2/dir4 /dir1/dir5 Then the longest common prefix changes to /dir1.  In order to do this, I start by comparing the first and second directories by splitting them on the / symbol, and then comparing the elements of the resulting arrays. ...
one comment

SDP 13 Talks


This week we’re running the Sela Developer Practice conference and this year it’s bigger and better than ever, with speakers coming from outside of Israel to deliver talks.  I was fortunate enough to see the 10 Reasons Software Sucks talk by Caleb Jenkins and had a chance to grab a beer and some good food with him later for some one-on-one chat.  Seriously people, if you get a chance – go watch this guy speak.  He  ROCKS!  I gave two sessions at this SDP: 1.  Model-Based Testing with Spec Explorer 2010 – I discussed what Model-Based...
no comments

Getting Started with Getting Started: Yet Another TDD Post


Sit back for a second and think:  what’s the scariest moment when starting a new project?  For me, it’s sitting in front of an empty code file.  I mean, I have the latest versions of Visual Studio and Windows on my machine (2012 and 8, respectively, at the time of writing), everything is humming along nicely, all this power at my fingertips – and nothing to apply it to.  I’m staring at an abyss.  It’s absolutely terrifying. I had always thought that it’s just me and my personal biases, but recently I had the chance to witness...
one comment

TFS Reporting Recipes #2: Get Daily Values for a Date Range


Purpose One of the most commonly required features in a report is a list of the daily values of some metric over a range of dates (for example, how many open bugs were in the system at the end of the day for each day in the last month).  This query will retrieve these metric values for each day in the date range. Prerequisites TFS 2010 or higher @StartDate parameter – The beginning of the required date range @EndDate parameter – The end of the...
no comments

TFS Reporting Recipes #1: Get the Iteration Path/GUID for the Current Sprint


Purpose Many times you want to filter the contents of reports based on sprints or iterations (for example, the number of re-opened bugs in each sprint in the project).  In this case, you often want the default of the report filter to show the iteration path of the current sprint.  This query will retrieve the current sprint’s iteration path. Prerequisites TFS 2010 or higher The Scrum process template A @ProjectGUID  parameter – The GUID of the Team Project in which you’re interested ...
no comments