Browse by Tags
All Tags »
SELA (
RSS)
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.
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: [ TestClass ] public class LCPTests { [ TestMethod ] public void Get_WithNoValues_ShouldReturnEmptyString() { string result = LCP .Get( new string [] {}); Assert .AreEqual(0, result.Length); } [ TestMethod ] public void...
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...
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...
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...
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 required date range Query SELECT dd.[Date], query...
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 Query SELECT IterationPath...
Well, it’s been a while since I’ve last blogged and it’s time to get back into the rhythm! In this series, which I’m calling TFS Reporting Recipes , I’d like to show some tricks, tips and other patterns that help me along when I’m writing reports for customers. I almost always use the relational warehouse since I feel more comfortable in SQL than in MDX, so for the recipes I assume you’re in the Tfs_Warehouse database. Feel free to sound off in the comments if you have questions/issues that you’d...
Aikido , and I suppose all martial arts, are painful. Mostly physically painful, depending on how skilled – or rather, how unskilled – the person on the other end of your joint is. But there is also a great deal of figurative pain. It’s the pain of letting go of your ego and the pain of emptying your cup . It’s the acceptance that someone half your size (or less) can be twice (or more) as effective as you are, disabling and throwing you around seemingly without even trying. It’s understanding that...
בתור מי שעוסק בתחום ה-ALM, יצא לי להיתקל לא פעם בלקוח ששואל אותי 'למה אני צריך TFS'? הטיעונים סובבים לרוב סביב שני נושאים: הראשון – העובדה ש-TFS הוא כלי מסחרי שדורש רישוי בעוד ש ישנם מוצרים מקבילים חינמיים והשני – ש התקנה ותחזוקה של שרת TFS היא יקרה ומורכבת . התשובה שלי מתחילה תמיד ב-'אתה צודק, לגבי שתי הנקודות'. ברגע שהסכמנו שהוא צודק, נפתחת בפניי הדרך להסביר שהשאלה אינה כה פשוטה כמו שהיא נשמעת. ואז יש לי הזדמנות לטעון מספר דברים משל עצמי. ראשית, ההשוואה בין TFS למוצרים חינמיים היא...
In my last post , I touched briefly on the concept of build extensions , and explained that they are an implementation of WF4 extensions . I thought it would be useful to list the other build extensions that are available inside of a build template: IBuildDetail – This build extension enables you to notify the build server about important aspects of your build (compilation/test status, overall build status, the label associated with the build, etc.). In fact, this is the how the SetBuildDetails built...
In this post I’ll show how to write a somewhat more complex and hopefully fun activity for TFS 2010 Team Build (code is available here ). In particular, I’ll make use of the following features: The ActivityTrackingAttribute class Build Extensions (a specialization of WF4 Workflow Extensions) Since our builds are sometimes long and dull processes, we need some stuff to talk about while they run. What could be better than discussing the prowess of the one-and-only Chuck Norris ? We’ll have Team Build...
In the last post of this series we completed our report so that it contains all the graphical annotations we wanted. It is now time to publish it to the server and make it available to our users . Publishing the Report to the Server Once we have a report running on the local machine, publishing it is the easy part! 1. Open the report that we worked on throughout the previous parts of the series 2. From the main ribbon button, choose the Save As menu option. The...
In the last post of this series, we created a report that visually displayed the data we extracted from the TFS 2010 warehouse. In this post, we’ll add some additional enhancements to the report in order to increase its effectiveness . As you recall, we want our report to look like this: While right now our report looks like this: This means we need to add the following enhancements: 1. Change the report’s title and fields 2. Make sure that cells which have a reason of Fixed...
Welcome back! In the last part of this series we discussed the actual query needed to extract the data from the TFS relational data warehouse. In this post, we’ll see how to use this query in order to create an actual report . Choosing a Report Authoring Tool In order to actually produce our report we need a report authoring tool. This tool should allow us to design our report in a WYSIWYG manner and specify the query for getting the data. We would normally choose...
More Posts
Next page »