Search The Blog
Latest Posts
Twitter: @RoyOsherove
About this site

TDD in .NET Online Course

TDD and BDD in Ruby Online Course



This site aims to connect all the dots of my online activities - from tools, books blogs and twitter accounts, to upcoming conferences, engagements and user group talks.


Removing bloatware from a new windows machine

Reminder to self: here’s what you do through powershell:

get-appxpackage messaging | remove-appxpackage

get-appxpackage sway | remove-appxpackage

get-appxpackage commsphone | remove-appxpackage

get-appxpackage windowsphone remove-appxpackage

get-appxpackage phone | remove-appxpackage

get-appxpackage communicationsapps | remove-appxpackage

get-appxpackage people | remove-appxpackage

get-appxpackage zunemusic | remove-appxpackage

get-appxpackage zunevideo | remove-appxpackage

get-appxpackage zune | remove-appxpackage

get-appxpackage bingfinance | remove-appxpackage

get-appxpackage bingnews | remove-appxpackage

get-appxpackage bingsports | remove-appxpackage

get-appxpackage bingweather | remove-appxpackage

get-appxpackage bing | remove-appxpackage

get-appxpackage onenote | remove-appxpackage

get-appxpackage maps | remove-appxpackage

get-appxpackage solitaire | remove-appxpackage

get-appxpackage officehub | remove-appxpackage

get-appxpackage skypeapp | remove-appxpackage

get-appxpackage getstarted | remove-appxpackage

get-appxpackage 3dbuilder | remove-appxpackage

Get-AppxPackage drawboardpdf | Remove-AppxPackage

Get-AppxPackage freshpaint | Remove-AppxPackage

Get-AppxPackage nytcrossword | Remove-AppxPackage

Get-AppxPackage microsoft.xboxapp | Remove-AppxPackage

Get-AppxPackage SurfaceHub | Remove-AppxPackage

Get-AppxPackage flipboard | Remove-AppxPackage



(from source)



New Vim Course Online - Vim Hates You

I’ve added a new course to - This time it’s all about Vim, which I’ve been using for a few good years now. 


You can check out my online Vim course at 

Or you can go directly to the course page at


Enterprise DevOps

As part of my work in the past few years I’ve been more and more deeply involved in large scale DevOps implemementations in very large companies. I’m now writing about my experiences in here:

Some of the latest posts include:
And about DevOps metrics:


Code as Music - Test Environments

Music Production also has some corollaries with coding in terms of testing.

When producing music, it is important that the music sounds good on multiple types of speakers: in your car, in your iphone headphones, on a boom box by the pool,  in a club speaker system etc.

In that regard priducing the music locally on yoru own speakers is much like “works on my machine”.

Producers will usually take the music and test it out manually in various systems, or have multiple sets of monitors, but still test the music in their car, on friend’s systems and more.

There are also “emulators” for sound. There are some software solutions that emulate how your music will sound through different speakers, in different locations , in different file formats (mp3 has less data than a .wav file, wav file, for example.

Nothing beats real work integration testing though. Much like code.


Music Production vs. Code Production

My off hours hobby is music production.

Here are similarities I see between coding and music production so far:


  1. Code compiles into binary - midi is rendered into wav files
  2. When producing music you need to take many breaks to get your ears “out of the mix” and get your head clear again. The same goes for coding when facing tough creative problems or complicated code.
  3. Software culture is moving in the direction of automation and factories, with architectures that support changing things on the fly. Music production has two opposing factions: a.  Newer pop songs are made almost in an industrial fashion (try many tracks in a day, find one that works , then lyrics and vocals are found for it from many contenders;  and b. singer-songwriter which is all about manually crafting a song which can take a lot of time. (compare that to a hand crafted optimized piece of code that needs to run at a very low level like a DSP unit or real time calculations)
  4. Pair-Programming - > most new music these days is not done alone: there are lyric writing teams, melodic writing teams, production teams.
  5. in Music, new digital tooling is taking the place of older generation analog tooling. Instead of filling rooms with huge hardware, people use digital work stations with software plugins that emulates almost every piece of hardware out there.  Software coding is fully digital, but used to be very hardware oriented . Software testing is still very manual but automation is starting to take its place.
  6. Long term support: Software can keep changing after you’ve released it (new features added etc. Music is usually delivered in multiple different versions: radio mix, PG safe mix, club mix etc.. and music also gets remixed, new covers by other bands are made, remakes by the original band in shows, digitally remastered albums… not exactly the same, but in music all the “stems” (the parts that make the individual atoms of the song) are always saved and can be used to recreate different variations of the song.
  7. Code has classes and functions, Music production (digital) also has building blocks: Sound designers use waveforms and combine them, munge them up and process them to create new types of sounds that are then reused by other musicians. If a waveform is the input of code, an LFO envelope is a type of function that operates on that code. Those are just two types of the :atoms” of synthesized music)
  8. When mixing, it is encouraged to take many breaks (20 minutes mixing, 15 minutes break) so that your ears don’t get too used to the mix. Programming is also a very tough activity that is helped by taking many small breaks.
  9. TDD: In music you might have a “reference” mix - a song you like or a sound you want to sound like that tells you how close you are to getting the same results (loudness, frequencies, etc). TDD is the same way somewhat in that you set yourself a target and see if you measure up to it or not. Music is not automated for this though, and is not a any kind of regression test.
  10. Music pros do as much integration testing as possible they make their friends, DJS, their mom and their cat hear the mix all the time because they know they are not objective about how it translates in the real world. 
  11. There’s more but my head is drawn a blank..



Two new Online Courses: Effective Total Command and FinalBuilder Training Videos

I’m happy to report two new video courses that I just finished recording and publishing two new courses:

Both of these are tools that I rave about in almost any new windows based dev shop I go to. Most people have at least heard of Total Commander, but never bothered to find out why people like it, even though it looks ugly. But almost nobody heard about FinalBuilder, but those that did, always have this small glitter in their eye, because they know what I mean when I say you can automate pretty much 99% of your problems away with this stuff.

Both of these together (coupled with everything search engine and systeinternals tools) are a godsend to anyone who hates repeating themselves. 

I hope you find these courses helpful. 


What's new and Changed in the Art of Unit Testing 2nd Edition

I still get called out for some things I wrote in the first edition published in 2009. Some people might not be aware there is a 2nd edition out there, or are borrowing old copies. Lots has changed in my thinking about unit testing practices since then and was reflected when the 2nd edition was published in 2013.
In this second edition, I added:
  • Material about constrained versus unconstrained isolation frameworks : specifically those that can fake things like statics and priavte methods.
  • A new chapter 6 on what makes for a good isolation framework and how frameworks like Typemock work under the covers. 
  • I no longer use RhinoMocks. Stay away from it. It is dead. At least for now. I use NSubstitute for examples of Isolation Framework Basics, and I also highly recommend FakeItEasy. I am still not crazy about MOQ, for reasons detailed in chapter 6.
  • I added more techniques to the chapter about implementing unit testing at the organizational level, such as understanding influence factors
  • There are plenty of design changes in the code I show in the book:
  • Mostly I stopped using property setters and am mostly using constructor injection. 
  • Some discussion of SOLID principles is added, but just enough to make it whet your appetite on the subject.
  • The build related sections of chapter 7 also contain new information. I learned a lot since the first book about build automation and patterns. It’s the topic of my next book. In this book I talk about build pipelines and where unit testing fits in the process.
  • I recommend against setup methods, and give alternative ideas on getting the same functionality out of your tests. 
  • I also use newer versions of Nunit so some of the newer Nunit APIs changed in the book( Assert.thorws. vs Assert.Catch, TestCase attributes and more)
  • In chapter 10, the tools relating to legacy code were updated.
  • Having worked with Ruby for the past three years along side .NET, I gained more perspective about design and testability arguments, reflected in chapter 11, dedicated only to this topic.
  • The tools and frameworks appendix was updated with new tools, and old tools were removed.

Also, here is a talk I did about it:



Why The Hell did you move to New Jersey, Roy?

After two years in amazing Norway, our Scandinavian adventure has been transformed into what I can only call so far as “The New Jersey Experience”. I’m here on an O-1 visa. I’m also open to doing part time training courses in the area so contact me.

The three little boys, my wife and me moved to Tenafly, home of many other Israelis, to stay 20 minutes away from New York City (baby), in a nice and quiet place with (supposedly) good education for the kids.

Things we missed in Norway that we can easily find here include, but are not limited to: 

  • Hummus
  • Places open after 7pm
  • Actual Tasty Cereal

Things we miss from Norway now that we’re in the US:

  • Our wonderful Oslo International School. School here is very strict: just 22 minutes of break a day for a 5 and 7 year old are basically torture.
  • Law and order
  • Paying 50$ for a pizza

Things I plan to pursue while I’m here

  • Leading awesome technological teams, flow and architectures
  • Training on the side
  •  Try my hand at some stand up comedy open mics
  • Work on making some electronic music 
  • Work on making more online courses (vim is coming!)

So, why?

We couldn’t think of a place more different than Norway, where we will learn things we didn’t even know we didn’t know. It’s all about ravines.

Let the games begin!


Web Analytics