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
- 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
2014 5
2013 48
- Lunch Dictator or Tweeting from PHP
- 429 vs 503
- Abstracting time
- Xbox One Launch Day
- What you really need to know when authoring NuGet packages
- My worst stand-up(s)
- What is technical debt really about?
- Dependency injection with IObservable
- Unexpected Progress<T>
- Evolution of a hand rolled fake - part 5
- Task-based Asynchronous pattern - for your pleasure
- The 7th impossible thing - Tests for tests
- Throttling requests to your azure website using IP
- Estimating projects
- 1973 days later
- Using triggers to protect your database from developers - still not a good idea
- SQL server backup myths
- Azure Websites and logs that are no longer updated
- Asynchronous enumerations - summary
- Asynchronous enumerations - Part 5: MyEnumerationAsync
- Asynchronous enumerations - Part 4: IEnumerable<Task<IEnumerable<T>>>
- Asynchronous enumerations - Part 3: IObservable<T>
- Asynchronous enumerations - Part 2: IEnumerable<Task<T>>
- Asynchronous enumerations - Part 1: Task<IEnumerable<T>>
- Asynchronous enumerations - Introduction
- "Mocks: the code smell"
- Don't make it hard to trust your code
- Which collection interface do I use?
- How would I test a WebAPI controller
- If it is hard to test, you did something wrong
- Collection initializers not doing what you expect
- Task-based Asynchronous Pattern - kick starter
- How to know when the garbage collector is not helping you
- Using T4 to eliminate maintenance
- Analyzing logs from Azure web sites
- Using HTML as your web service format
- Analysing code coverage
- Certificates are hard
- An offshoring experiment
- The green February revolution
- Implementing a good GetHashCode
- Cost of meetings
- Implementing IDisposable
- Task-based Asynchronous Pattern - PauseToken and common problems
- Reactive Extensions Reminder
- TestInitialize execution order
- Task-based Asynchronous Pattern - WaitAsync
- 2012 statistics
2012 45
- Type casting with extension methods
- How Spotify Works
- HTTP Keep-Alive is not always your friend - but math is!
- The tale of an UnobservedTaskException
- Lean processes explained with LEGO
- How Do Software Engineers Understand Code Changes?
- Task-based Asynchronous Pattern - WithCancellation again!
- XCOM interactive trailer
- Task-based Asynchronous Pattern - WhenAllOrErrorBatched
- One way to make management understand development
- Writing legacy code on purpose
- Task-based Asynchronous Pattern - WhenSome
- Task-based Asynchronous Pattern - WhenAllOrError
- Task-based Asynchronous Pattern - WithCancellation
- Task-based Asynchronous Pattern - WithTimeout
- Task-based Asynchronous Pattern - Introduction
- Adopt a chaos monkey
- ShimNotSupportedException when using ReSharper unit test runner
- The smart trash can
- Working with threads
- Ten Commandments of Egoless Programming
- Listening to port 80 without being admin
- Stress testing with Fiddler
- Netflix's new take on APi design
- Evolution of a hand rolled fake - part 4
- Evolution of a hand rolled fake - part 3
- Evolution of a hand rolled fake - part 2B
- Evolution of a hand rolled fake - part 2
- Adding a timout to a task
- Identifying IIS worker processes
- Federated login relies on target site to be secure
- Office pranks
- Lego Robots revisited
- Should idempotency be extended to include return codes?
- Configuration in code
- Object pooling vs creating lots of them
- Deployment specific azure config
- Repetitive Lazy<T> to the rescue
- Visual studio achievements
- Avoid timeout when uploading large blobs to Azure
- Evolution of a hand rolled fake
- I hate software that assumes things about database instances
- Development specific azure config
- New year, new team
- 2011 statistics
2011 56
- TPL Dataflow and async/await vs CCR - part 6
- TPL Dataflow and async/await vs CCR - part 5
- TPL Dataflow and async/await vs CCR - summary
- TPL Dataflow and async/await vs CCR - part 4
- TPL Dataflow and async/await vs CCR - part 3
- TPL Dataflow and async/await vs CCR - part 2
- TPL Dataflow and async/await vs CCR - part 1
- TPL Dataflow and async/await vs CCR - Introduction
- Dependency injection and good design
- ForEach enumeration with index
- Computer Science courses you should take if you're a student today
- Roborazzi
- CCR tips and tricks - part 25
- RDS 4 Beta now available
- Robot news
- CCR tips and tricks - summary
- CCR tips and tricks - part 24
- CCR tips and tricks - part 23
- CCR tips and tricks - part 22
- CCR tips and tricks - part 21
- CCR tips and tricks - part 20
- CCR tips and tricks - part 19
- CCR tips and tricks - part 18
- CCR tips and tricks - part 17
- CCR tips and tricks - part 16
- CCR tips and tricks - part 15
- CCR tips and tricks - part 14
- CCR tips and tricks - part 13
- Kinect services for RDS 2008 R3
- CCR tips and tricks - part 12
- CCR tips and tricks - part 11
- CCR tips and tricks - part 10
- CCR tips and tricks - part 9
- CCR tips and tricks - part 8
- CCR tips and tricks - part 7
- CCR tips and tricks - part 6
- CCR tips and tricks - part 5
- CCR tips and tricks - part 4
- CCR tips and tricks - part 3
- CCR tips and tricks - part 2
- CCR tips and tricks - prologue
- Why I started to blog
- Green card medical exam
- Drunken estimation
- Extracting methods for readability (or not)
- There are no best practices
- Load Balancing Private Endpoints on Worker Roles
- Alt.Net Seattle Conference 2011
- Talking about object calisthenics
- How object calisthenics can save the day
- Team coding dojo 2.6
- SQL CLR Aggregates
- Boy scout retrospectives
- @"Tired of Scrum"
- Assert.Inconclusive
- 2010 statistics
2010 71
- Team coding dojo 2.5
- Team coding dojo 2.4
- Team coding dojo 2.3
- Planning poker for your Windows Phone 7
- Team coding dojo 2.2
- Task boards in real life, extreme version
- How to tell your parents what you do
- MVC public service
- TDD Brownbag payback
- The cost of a row in SQL Azure
- One thing you probably want to write in your code review
- Team coding dojo 2.1
- Unit tests makes it harder to refactor code
- The test stairway (or what to test how)
- Make sure you have a backup plan when relocating
- Choosing the right tool for deployment in Twitter datacenter
- Parallel QuickSort using CCR
- High Importance leads to Less Effectivness
- CCR vs Task Parallel Library
- What morale events look like
- Having a ship party at Microsoft
- Sometimes you need to be careful how you setup your tests
- How to not dispatch work in CCR
- Good tools may hide symptoms but not cure the disease - mocking frameworks edition
- Good tools may hide symptoms but not cure the disease
- TDD is not about writing tests
- Why have iterations?
- MSTest does not call all tests in a class before moving on the the next test class
- What to do when one user story is complete and all other user stories are on track
- Viking laws
- Time to change to a new team
- I need a shorter sleep in order to move my snake faster
- New feed for posts
- Can the daily scrum be a waste of time?
- Pex and Moles
- New look and feel
- Getting code coverage in visual studio 2010 when using xUnit.net
- Team dojo 12
- Beware of Parkinson's law
- Malevich the code review tool - part 2
- Can your code handle a räksmörgås?
- Scrum or Kanban?
- Definition of a failed sprint
- Team Dojo 11
- 7 tips for faster SQL queries (are really just 5)
- Comment Driven Development
- Malevich the code review tool
- Handling a lot of email efficiently
- Will code bubbles be the next development UI?
- Improving meetings with ROTI
- Should a professional developer always use TDD?
- Why go to a coding dojo?
- Yet another post about mocking
- Using extension methods to seperate contexts in your DSL
- Why do TDD when it slows you down?
- Working in war teams is great
- Squeezing performance out of memcmp usage
- Considering future performance in your database
- A new unit test framework for C++
- Things you don't want to do with properties in C#
- Using C# properties to create a domain specific language
- Taking responsibility for failure
- On Toyota's recent recall of cars
- Words, words, words
- Using Smilies to Reduce Story Cycle Time
- Team coding dojo 9
- Fun Driven Development and Result Driven Development
- Handling different versions of the database
- Results of a simple TDD experiment
- Mocking framework comparison
- 2009 statistics
2009 158
- Christmas 2009
- The 2009 Advent Calendar Wrap Up
- Final code version for 2009 Advent Calendar
- 2009 Advent Calendar December 24th
- 2009 Advent Calendar December 23rd
- 2009 Advent Calendar December 22nd
- 2009 Advent Calendar December 21st
- 2009 Advent Calendar December 20th
- 2009 Advent Calendar December 19th
- 2009 Advent Calendar December 18th
- 2009 Advent Calendar December 17th
- 2009 Advent Calendar December 16th
- 2009 Advent Calendar December 15th
- 2009 Advent Calendar December 14th
- 2009 Advent Calendar December 13th
- 2009 Advent Calendar December 12th
- 2009 Advent Calendar December 11th
- 2009 Advent Calendar December 10th
- 2009 Advent Calendar December 9th
- 2009 Advent Calendar December 8th
- 2009 Advent Calendar December 7th
- 2009 Advent Calendar December 6th
- 2009 Advent Calendar December 5th
- 2009 Advent Calendar December 4th
- 2009 Advent Calendar December 3rd
- 2009 Advent Calendar December 2nd
- 2009 Advent Calendar December 1st
- The 2009 Advent calendar situation
- Advent calendar 2009 - how to TDD thread safety
- How do you reward good service at a restaurant?
- Pugh Decision Matrix
- How to prevent the use of "SELECT *"
- Team Coding Dojo 7
- How do I get someWin32API method to work in .Net?
- Definition of mocking
- Five reasons to shorten your sprints
- Never convert your story points to time!
- How many t-shirts in your next iteration?
- How to burn down estimates in t-shirt sizes
- Software development at the fish market
- Creative solutions for remote team members
- Coding Dojo 6
- Adding days to an iteration (sprint)
- Exceptions or not?
- SQL programming mistake #12
- Extracting methods is just another level of indirection, or is it? - Part 2
- Extracting methods is just another level of indirection, or is it?
- SQL programming mistakes
- Second Generation Lean Product Development
- One way of executing the daily stand-up
- Coding Dojo 5
- pthread_cond_timedwait behaving differently on different platforms
- Premature optimization is the root of all evil, or is it?
- Team Coding Dojo 5
- Object Calisthenics: Rule 9: Don't use any getters, setters or properties
- Object Calisthenics: Rule 8: Use first class collections
- Object Calisthenics: Rule 7: Don't use any classes with more than two instance variables
- Object Calisthenics: Rule 6: Keep all entities small
- Object Calisthenics: Rule 5: Don't abbreviate
- Object Calisthenics: Rule 4: Use only one dot per line
- Object Calisthenics: Rule 3: Wrap all primitives and strings
- Object Calisthenics: Rule 2: Don't use the else keyword
- Object Calisthenics: Rule 1: Use one level of indentation per method
- Object Calisthenics: First contact
- 20 tips to write a good stored procedure (is really just 12)
- Remember to allocate memory just in case you run out of memory
- What is a Coding Dojo?
- Coding Dojo 4
- How to make FxCop really ignore things you supress
- Visual Studio Options for TDD revisited
- Team Coding Dojo 4
- Visual Studio Options for TDD
- What does commit mean?
- System Center Operations Manager 2007 R2 Connectors released
- On pride and improvements
- Do you want to do a good job or do you want to go home?
- Military decision making
- Podcast about System Center Cross Platform
- Pair programming in the army
- System Center OpsMgr X-Plat Providers source code available
- Search
- Instead of triggers
- Coding Dojo 3
- Remember why you make estimates
- Three good reasons to make small tasks
- Kanban explained with pictures
- Why it is worth adding tests even when the investment is large
- Making the smallest change to make a test pass is not the same thing as making the simplest change
- Team Coding Dojo 3
- PAL to NTCS converter
- Extreme Interviewing
- Power of words
- Test readability
- Random SQL
- Invest in good user stories
- Coding Dojo 2
- Is BDD/TDD and pair programming a waste of time?
- Feeling awkward when writing tests?
- System Center Operations Manager 2007 R2 Released
- Yet another TDD tutorial
- Team Coding Dojo 2
- Reusing functions in PowerShell
- Agile contracts
- Mounting a file system to an FTP server
- Coding Dojo 1
- Fun introduction to F#
- Consultant Bestiary
- What is a good variable name?
- SQL Unit Testing
- Team Coding Dojo 1
- Merging coverage reports with Bullseye
- What is a good team size?
- When to write passing tests before fixing a bug
- Cash register feature
- A reminder if you want to read/write your file in non blocking mode (in C(++))
- Status board example
- Taskboards in virtual reality
- Yet another blog post about taskboards
- Fixing disk configuration/statistics mismatch on HPUX
- Agile Managers
- Definition of Done
- Kanban vs Scrum
- Team Rules
- Another set of evolving tests
- Operations Manager 2007 R2 Release Candidate now released
- Continuous integration and gated check-ins
- Code Stewardship
- When is it time for a complete rewrite?
- The amazing auto woman
- Getting a drivers license in the US
- Agile workspace - part 3
- Refactoring finds dead code
- Design by contract in real life
- Mobile phone costs in the US
- Relocation trip
- Open Space Party
- MineSweeper Kata reflections
- Practical unit testing of graphical user interfaces
- 1234567890
- Agile tools
- ALT.NET Sweden unconference summary
- BDD workshop completed
- Scrum Bestiary
- How to set up an agile work space - budget version
- Dependency injection is more than just a way to make your code more testable
- Can code reviews really change design?
- How to test private methods
- Joining with previous and/or next row
- Taks boards in real life
- CAT - Continuous Acceptance Testing
- Phishing Test
- *DD
- (A-Z) Driven (Development|Design)
- Unit testing graphical user interfaces
- Why slow unit tests are a bad smell:
- CUT - Continuous Unit Testing
- Forgotten XP values
- Reader survey
2008 87
- Christmas 2008
- The 2008 Advent Calendar wrap up
- 2008 Advent Calendar December 24th
- 2008 Advent Calendar December 23rd
- 2008 Advent Calendar December 22nd
- 2008 Advent Calendar December 21st
- 2008 Advent Calendar December 20th
- 2008 Advent Calendar December 19th
- 2008 Advent Calendar December 18th
- 2008 Advent Calendar December 17th
- 2008 Advent Calendar December 16th
- 2008 Advent Calendar December 15th
- 2008 Advent Calendar December 14th
- 2008 Advent Calendar December 13th
- 2008 Advent Calendar December 12th
- 2008 Advent Calendar December 11th
- 2008 Advent Calendar December 10th
- 2008 Advent Calendar December 9th
- 2008 Advent Calendar December 8th
- 2008 Advent Calendar December 7th
- 2008 Advent Calendar December 6th
- 2008 Advent Calendar December 5th
- 2008 Advent Calendar December 4th
- 2008 Advent Calendar December 3rd
- 2008 Advent Calendar December 2nd
- 2008 Advent Calendar December 1st
- The 2008 Advent Calendar situation
- Yet another reason for loving xUnit.net
- Getting your priorities right
- Constraints as User Stories
- Expensive fraud prevention fee
- Dangers of using Visual Studio 2008 Team System Code Coverage Tool for Native C++
- Native C++ Code Coverage reports using Visual Studio 2008 Team System
- Making it easy is not a single responsibility
- System Center Cross Platform and Open Source
- Refactoring for dummies
- C++ pointer basics for kids
- Testdriven Database development
- Using Project Euler to learn BDD.
- Should you track completed effort for your tasks?
- Scrum Gathering Stockholm - Day 3
- Scrum Gathering Stockholm 2008 - Day 2
- Scrum Gathering Stockholm 2008 - Day 1
- Beginners should not use LINQ
- Exit Mocks. Enter Stubs!
- TDD and mocks
- Xbox Fit
- One thing you can do with System Center Cross Platform Extensions
- Positive reports
- My new favorite .Net unit test framework
- Sleep does not sleep for a specified period
- A summary of an Agile 2008 summary
- Sleep less than one millisecond
- Yet Another Tale from an Interview
- Getting the logged on windows user in your apache server
- ntlm.php
- The implementation of iterators in C# and its consequences
- Being agile when there is no project
- How to avoid having too much work in progress
- Building robots with your windows mobile as a brain
- Using CSS to fetch user browser history
- Spending money to improve team productivity
- Hiding or disabling menu items not available?
- Be suspicious to DAL frameworks
- Recursively delete empty directories
- Nothing is "Too simple to test"
- Constraints - when user stories don't do it for you
- Use OneNote 2007 to make screen shots
- Code Coverage
- C# source analysis
- Readable SQL
- How to set up an agile work space
- SQL crosswords
- I don't like Mock objects
- Tobii has an eye for Scrum
- Books on agile
- Stored Procedures and data sharing
- UPSERT in SQL server 2008
- Robot competitions
- Yet another unit test framework for .Net released
- Fixed prices for IT projects are unethical
- Mocks are not Stubs
- Why open source doesn't do it for me
- Applying agile: where to start
- MFC is not dead
- Selenium the test tool
- BDD and DDD