The Curious Engineer

All blogs / C# / .NET

Being Cellfish

learn.microsoft.com/en-us/archive/blogs/cellfish

Stuff I wished I've found in some blog (and sometimes did)

C# / .NETTesting / QASoftware / engineering practiceConcurrencyMicrosoft blogsMSDN archive

’10’15’20’25
Posts
471 from 8 Apr 2008 to 31 Mar 2015
Posting
archived, read-only
Kind
personal blog
Feed
https://learn.microsoft.com/en-us/archive/blogs/cellfish/feed.xml

2015 1

  1. What has happened?

2014 5

  1. When to use Tuples in C#
  2. Tail Recursion and C#
  3. Logical task combinators
  4. Hashtable vs ConcurrentDictionary
  5. Circuit Breaker Pattern

2013 48

  1. Lunch Dictator or Tweeting from PHP
  2. 429 vs 503
  3. Abstracting time
  4. Xbox One Launch Day
  5. What you really need to know when authoring NuGet packages
  6. My worst stand-up(s)
  7. What is technical debt really about?
  8. Dependency injection with IObservable
  9. Unexpected Progress<T>
  10. Evolution of a hand rolled fake - part 5
  11. Task-based Asynchronous pattern - for your pleasure
  12. The 7th impossible thing - Tests for tests
  13. Throttling requests to your azure website using IP
  14. Estimating projects
  15. 1973 days later
  16. Using triggers to protect your database from developers - still not a good idea
  17. SQL server backup myths
  18. Azure Websites and logs that are no longer updated
  19. Asynchronous enumerations - summary
  20. Asynchronous enumerations - Part 5: MyEnumerationAsync
  21. Asynchronous enumerations - Part 4: IEnumerable<Task<IEnumerable<T>>>
  22. Asynchronous enumerations - Part 3: IObservable<T>
  23. Asynchronous enumerations - Part 2: IEnumerable<Task<T>>
  24. Asynchronous enumerations - Part 1: Task<IEnumerable<T>>
  25. Asynchronous enumerations - Introduction
  26. "Mocks: the code smell"
  27. Don't make it hard to trust your code
  28. Which collection interface do I use?
  29. How would I test a WebAPI controller
  30. If it is hard to test, you did something wrong
  31. Collection initializers not doing what you expect
  32. Task-based Asynchronous Pattern - kick starter
  33. How to know when the garbage collector is not helping you
  34. Using T4 to eliminate maintenance
  35. Analyzing logs from Azure web sites
  36. Using HTML as your web service format
  37. Analysing code coverage
  38. Certificates are hard
  39. An offshoring experiment
  40. The green February revolution
  41. Implementing a good GetHashCode
  42. Cost of meetings
  43. Implementing IDisposable
  44. Task-based Asynchronous Pattern - PauseToken and common problems
  45. Reactive Extensions Reminder
  46. TestInitialize execution order
  47. Task-based Asynchronous Pattern - WaitAsync
  48. 2012 statistics

2012 45

  1. Type casting with extension methods
  2. How Spotify Works
  3. HTTP Keep-Alive is not always your friend - but math is!
  4. The tale of an UnobservedTaskException
  5. Lean processes explained with LEGO
  6. How Do Software Engineers Understand Code Changes?
  7. Task-based Asynchronous Pattern - WithCancellation again!
  8. XCOM interactive trailer
  9. Task-based Asynchronous Pattern - WhenAllOrErrorBatched
  10. One way to make management understand development
  11. Writing legacy code on purpose
  12. Task-based Asynchronous Pattern - WhenSome
  13. Task-based Asynchronous Pattern - WhenAllOrError
  14. Task-based Asynchronous Pattern - WithCancellation
  15. Task-based Asynchronous Pattern - WithTimeout
  16. Task-based Asynchronous Pattern - Introduction
  17. Adopt a chaos monkey
  18. ShimNotSupportedException when using ReSharper unit test runner
  19. The smart trash can
  20. Working with threads
  21. Ten Commandments of Egoless Programming
  22. Listening to port 80 without being admin
  23. Stress testing with Fiddler
  24. Netflix's new take on APi design
  25. Evolution of a hand rolled fake - part 4
  26. Evolution of a hand rolled fake - part 3
  27. Evolution of a hand rolled fake - part 2B
  28. Evolution of a hand rolled fake - part 2
  29. Adding a timout to a task
  30. Identifying IIS worker processes
  31. Federated login relies on target site to be secure
  32. Office pranks
  33. Lego Robots revisited
  34. Should idempotency be extended to include return codes?
  35. Configuration in code
  36. Object pooling vs creating lots of them
  37. Deployment specific azure config
  38. Repetitive Lazy<T> to the rescue
  39. Visual studio achievements
  40. Avoid timeout when uploading large blobs to Azure
  41. Evolution of a hand rolled fake
  42. I hate software that assumes things about database instances
  43. Development specific azure config
  44. New year, new team
  45. 2011 statistics

2011 56

  1. TPL Dataflow and async/await vs CCR - part 6
  2. TPL Dataflow and async/await vs CCR - part 5
  3. TPL Dataflow and async/await vs CCR - summary
  4. TPL Dataflow and async/await vs CCR - part 4
  5. TPL Dataflow and async/await vs CCR - part 3
  6. TPL Dataflow and async/await vs CCR - part 2
  7. TPL Dataflow and async/await vs CCR - part 1
  8. TPL Dataflow and async/await vs CCR - Introduction
  9. Dependency injection and good design
  10. ForEach enumeration with index
  11. Computer Science courses you should take if you're a student today
  12. Roborazzi
  13. CCR tips and tricks - part 25
  14. RDS 4 Beta now available
  15. Robot news
  16. CCR tips and tricks - summary
  17. CCR tips and tricks - part 24
  18. CCR tips and tricks - part 23
  19. CCR tips and tricks - part 22
  20. CCR tips and tricks - part 21
  21. CCR tips and tricks - part 20
  22. CCR tips and tricks - part 19
  23. CCR tips and tricks - part 18
  24. CCR tips and tricks - part 17
  25. CCR tips and tricks - part 16
  26. CCR tips and tricks - part 15
  27. CCR tips and tricks - part 14
  28. CCR tips and tricks - part 13
  29. Kinect services for RDS 2008 R3
  30. CCR tips and tricks - part 12
  31. CCR tips and tricks - part 11
  32. CCR tips and tricks - part 10
  33. CCR tips and tricks - part 9
  34. CCR tips and tricks - part 8
  35. CCR tips and tricks - part 7
  36. CCR tips and tricks - part 6
  37. CCR tips and tricks - part 5
  38. CCR tips and tricks - part 4
  39. CCR tips and tricks - part 3
  40. CCR tips and tricks - part 2
  41. CCR tips and tricks - prologue
  42. Why I started to blog
  43. Green card medical exam
  44. Drunken estimation
  45. Extracting methods for readability (or not)
  46. There are no best practices
  47. Load Balancing Private Endpoints on Worker Roles
  48. Alt.Net Seattle Conference 2011
  49. Talking about object calisthenics
  50. How object calisthenics can save the day
  51. Team coding dojo 2.6
  52. SQL CLR Aggregates
  53. Boy scout retrospectives
  54. @"Tired of Scrum"
  55. Assert.Inconclusive
  56. 2010 statistics

2010 71

  1. Team coding dojo 2.5
  2. Team coding dojo 2.4
  3. Team coding dojo 2.3
  4. Planning poker for your Windows Phone 7
  5. Team coding dojo 2.2
  6. Task boards in real life, extreme version
  7. How to tell your parents what you do
  8. MVC public service
  9. TDD Brownbag payback
  10. The cost of a row in SQL Azure
  11. One thing you probably want to write in your code review
  12. Team coding dojo 2.1
  13. Unit tests makes it harder to refactor code
  14. The test stairway (or what to test how)
  15. Make sure you have a backup plan when relocating
  16. Choosing the right tool for deployment in Twitter datacenter
  17. Parallel QuickSort using CCR
  18. High Importance leads to Less Effectivness
  19. CCR vs Task Parallel Library
  20. What morale events look like
  21. Having a ship party at Microsoft
  22. Sometimes you need to be careful how you setup your tests
  23. How to not dispatch work in CCR
  24. Good tools may hide symptoms but not cure the disease - mocking frameworks edition
  25. Good tools may hide symptoms but not cure the disease
  26. TDD is not about writing tests
  27. Why have iterations?
  28. MSTest does not call all tests in a class before moving on the the next test class
  29. What to do when one user story is complete and all other user stories are on track
  30. Viking laws
  31. Time to change to a new team
  32. I need a shorter sleep in order to move my snake faster
  33. New feed for posts
  34. Can the daily scrum be a waste of time?
  35. Pex and Moles
  36. New look and feel
  37. Getting code coverage in visual studio 2010 when using xUnit.net
  38. Team dojo 12
  39. Beware of Parkinson's law
  40. Malevich the code review tool - part 2
  41. Can your code handle a räksmörgås?
  42. Scrum or Kanban?
  43. Definition of a failed sprint
  44. Team Dojo 11
  45. 7 tips for faster SQL queries (are really just 5)
  46. Comment Driven Development
  47. Malevich the code review tool
  48. Handling a lot of email efficiently
  49. Will code bubbles be the next development UI?
  50. Improving meetings with ROTI
  51. Should a professional developer always use TDD?
  52. Why go to a coding dojo?
  53. Yet another post about mocking
  54. Using extension methods to seperate contexts in your DSL
  55. Why do TDD when it slows you down?
  56. Working in war teams is great
  57. Squeezing performance out of memcmp usage
  58. Considering future performance in your database
  59. A new unit test framework for C++
  60. Things you don't want to do with properties in C#
  61. Using C# properties to create a domain specific language
  62. Taking responsibility for failure
  63. On Toyota's recent recall of cars
  64. Words, words, words
  65. Using Smilies to Reduce Story Cycle Time
  66. Team coding dojo 9
  67. Fun Driven Development and Result Driven Development
  68. Handling different versions of the database
  69. Results of a simple TDD experiment
  70. Mocking framework comparison
  71. 2009 statistics

2009 158

  1. Christmas 2009
  2. The 2009 Advent Calendar Wrap Up
  3. Final code version for 2009 Advent Calendar
  4. 2009 Advent Calendar December 24th
  5. 2009 Advent Calendar December 23rd
  6. 2009 Advent Calendar December 22nd
  7. 2009 Advent Calendar December 21st
  8. 2009 Advent Calendar December 20th
  9. 2009 Advent Calendar December 19th
  10. 2009 Advent Calendar December 18th
  11. 2009 Advent Calendar December 17th
  12. 2009 Advent Calendar December 16th
  13. 2009 Advent Calendar December 15th
  14. 2009 Advent Calendar December 14th
  15. 2009 Advent Calendar December 13th
  16. 2009 Advent Calendar December 12th
  17. 2009 Advent Calendar December 11th
  18. 2009 Advent Calendar December 10th
  19. 2009 Advent Calendar December 9th
  20. 2009 Advent Calendar December 8th
  21. 2009 Advent Calendar December 7th
  22. 2009 Advent Calendar December 6th
  23. 2009 Advent Calendar December 5th
  24. 2009 Advent Calendar December 4th
  25. 2009 Advent Calendar December 3rd
  26. 2009 Advent Calendar December 2nd
  27. 2009 Advent Calendar December 1st
  28. The 2009 Advent calendar situation
  29. Advent calendar 2009 - how to TDD thread safety
  30. How do you reward good service at a restaurant?
  31. Pugh Decision Matrix
  32. How to prevent the use of "SELECT *"
  33. Team Coding Dojo 7
  34. How do I get someWin32API method to work in .Net?
  35. Definition of mocking
  36. Five reasons to shorten your sprints
  37. Never convert your story points to time!
  38. How many t-shirts in your next iteration?
  39. How to burn down estimates in t-shirt sizes
  40. Software development at the fish market
  41. Creative solutions for remote team members
  42. Coding Dojo 6
  43. Adding days to an iteration (sprint)
  44. Exceptions or not?
  45. SQL programming mistake #12
  46. Extracting methods is just another level of indirection, or is it? - Part 2
  47. Extracting methods is just another level of indirection, or is it?
  48. SQL programming mistakes
  49. Second Generation Lean Product Development
  50. One way of executing the daily stand-up
  51. Coding Dojo 5
  52. pthread_cond_timedwait behaving differently on different platforms
  53. Premature optimization is the root of all evil, or is it?
  54. Team Coding Dojo 5
  55. Object Calisthenics: Rule 9: Don't use any getters, setters or properties
  56. Object Calisthenics: Rule 8: Use first class collections
  57. Object Calisthenics: Rule 7: Don't use any classes with more than two instance variables
  58. Object Calisthenics: Rule 6: Keep all entities small
  59. Object Calisthenics: Rule 5: Don't abbreviate
  60. Object Calisthenics: Rule 4: Use only one dot per line
  61. Object Calisthenics: Rule 3: Wrap all primitives and strings
  62. Object Calisthenics: Rule 2: Don't use the else keyword
  63. Object Calisthenics: Rule 1: Use one level of indentation per method
  64. Object Calisthenics: First contact
  65. 20 tips to write a good stored procedure (is really just 12)
  66. Remember to allocate memory just in case you run out of memory
  67. What is a Coding Dojo?
  68. Coding Dojo 4
  69. How to make FxCop really ignore things you supress
  70. Visual Studio Options for TDD revisited
  71. Team Coding Dojo 4
  72. Visual Studio Options for TDD
  73. What does commit mean?
  74. System Center Operations Manager 2007 R2 Connectors released
  75. On pride and improvements
  76. Do you want to do a good job or do you want to go home?
  77. Military decision making
  78. Podcast about System Center Cross Platform
  79. Pair programming in the army
  80. System Center OpsMgr X-Plat Providers source code available
  81. Search
  82. Instead of triggers
  83. Coding Dojo 3
  84. Remember why you make estimates
  85. Three good reasons to make small tasks
  86. Kanban explained with pictures
  87. Why it is worth adding tests even when the investment is large
  88. Making the smallest change to make a test pass is not the same thing as making the simplest change
  89. Team Coding Dojo 3
  90. PAL to NTCS converter
  91. Extreme Interviewing
  92. Power of words
  93. Test readability
  94. Random SQL
  95. Invest in good user stories
  96. Coding Dojo 2
  97. Is BDD/TDD and pair programming a waste of time?
  98. Feeling awkward when writing tests?
  99. System Center Operations Manager 2007 R2 Released
  100. Yet another TDD tutorial
  101. Team Coding Dojo 2
  102. Reusing functions in PowerShell
  103. Agile contracts
  104. Mounting a file system to an FTP server
  105. Coding Dojo 1
  106. Fun introduction to F#
  107. Consultant Bestiary
  108. What is a good variable name?
  109. SQL Unit Testing
  110. Team Coding Dojo 1
  111. Merging coverage reports with Bullseye
  112. What is a good team size?
  113. When to write passing tests before fixing a bug
  114. Cash register feature
  115. A reminder if you want to read/write your file in non blocking mode (in C(++))
  116. Status board example
  117. Taskboards in virtual reality
  118. Yet another blog post about taskboards
  119. Fixing disk configuration/statistics mismatch on HPUX
  120. Agile Managers
  121. Definition of Done
  122. Kanban vs Scrum
  123. Team Rules
  124. Another set of evolving tests
  125. Operations Manager 2007 R2 Release Candidate now released
  126. Continuous integration and gated check-ins
  127. Code Stewardship
  128. When is it time for a complete rewrite?
  129. The amazing auto woman
  130. Getting a drivers license in the US
  131. Agile workspace - part 3
  132. Refactoring finds dead code
  133. Design by contract in real life
  134. Mobile phone costs in the US
  135. Relocation trip
  136. Open Space Party
  137. MineSweeper Kata reflections
  138. Practical unit testing of graphical user interfaces
  139. 1234567890
  140. Agile tools
  141. ALT.NET Sweden unconference summary
  142. BDD workshop completed
  143. Scrum Bestiary
  144. How to set up an agile work space - budget version
  145. Dependency injection is more than just a way to make your code more testable
  146. Can code reviews really change design?
  147. How to test private methods
  148. Joining with previous and/or next row
  149. Taks boards in real life
  150. CAT - Continuous Acceptance Testing
  151. Phishing Test
  152. *DD
  153. (A-Z) Driven (Development|Design)
  154. Unit testing graphical user interfaces
  155. Why slow unit tests are a bad smell:
  156. CUT - Continuous Unit Testing
  157. Forgotten XP values
  158. Reader survey

2008 87

  1. Christmas 2008
  2. The 2008 Advent Calendar wrap up
  3. 2008 Advent Calendar December 24th
  4. 2008 Advent Calendar December 23rd
  5. 2008 Advent Calendar December 22nd
  6. 2008 Advent Calendar December 21st
  7. 2008 Advent Calendar December 20th
  8. 2008 Advent Calendar December 19th
  9. 2008 Advent Calendar December 18th
  10. 2008 Advent Calendar December 17th
  11. 2008 Advent Calendar December 16th
  12. 2008 Advent Calendar December 15th
  13. 2008 Advent Calendar December 14th
  14. 2008 Advent Calendar December 13th
  15. 2008 Advent Calendar December 12th
  16. 2008 Advent Calendar December 11th
  17. 2008 Advent Calendar December 10th
  18. 2008 Advent Calendar December 9th
  19. 2008 Advent Calendar December 8th
  20. 2008 Advent Calendar December 7th
  21. 2008 Advent Calendar December 6th
  22. 2008 Advent Calendar December 5th
  23. 2008 Advent Calendar December 4th
  24. 2008 Advent Calendar December 3rd
  25. 2008 Advent Calendar December 2nd
  26. 2008 Advent Calendar December 1st
  27. The 2008 Advent Calendar situation
  28. Yet another reason for loving xUnit.net
  29. Getting your priorities right
  30. Constraints as User Stories
  31. Expensive fraud prevention fee
  32. Dangers of using Visual Studio 2008 Team System Code Coverage Tool for Native C++
  33. Native C++ Code Coverage reports using Visual Studio 2008 Team System
  34. Making it easy is not a single responsibility
  35. System Center Cross Platform and Open Source
  36. Refactoring for dummies
  37. C++ pointer basics for kids
  38. Testdriven Database development
  39. Using Project Euler to learn BDD.
  40. Should you track completed effort for your tasks?
  41. Scrum Gathering Stockholm - Day 3
  42. Scrum Gathering Stockholm 2008 - Day 2
  43. Scrum Gathering Stockholm 2008 - Day 1
  44. Beginners should not use LINQ
  45. Exit Mocks. Enter Stubs!
  46. TDD and mocks
  47. Xbox Fit
  48. One thing you can do with System Center Cross Platform Extensions
  49. Positive reports
  50. My new favorite .Net unit test framework
  51. Sleep does not sleep for a specified period
  52. A summary of an Agile 2008 summary
  53. Sleep less than one millisecond
  54. Yet Another Tale from an Interview
  55. Getting the logged on windows user in your apache server
  56. ntlm.php
  57. The implementation of iterators in C# and its consequences
  58. Being agile when there is no project
  59. How to avoid having too much work in progress
  60. Building robots with your windows mobile as a brain
  61. Using CSS to fetch user browser history
  62. Spending money to improve team productivity
  63. Hiding or disabling menu items not available?
  64. Be suspicious to DAL frameworks
  65. Recursively delete empty directories
  66. Nothing is "Too simple to test"
  67. Constraints - when user stories don't do it for you
  68. Use OneNote 2007 to make screen shots
  69. Code Coverage
  70. C# source analysis
  71. Readable SQL
  72. How to set up an agile work space
  73. SQL crosswords
  74. I don't like Mock objects
  75. Tobii has an eye for Scrum
  76. Books on agile
  77. Stored Procedures and data sharing
  78. UPSERT in SQL server 2008
  79. Robot competitions
  80. Yet another unit test framework for .Net released
  81. Fixed prices for IT projects are unethical
  82. Mocks are not Stubs
  83. Why open source doesn't do it for me
  84. Applying agile: where to start
  85. MFC is not dead
  86. Selenium the test tool
  87. BDD and DDD