Subscribe: ISerializable - Roy Osherove's Blog
Added By: Feedage Forager Feedage Grade B rated
Language: English
appxpackage get appxpackage  appxpackage get  appxpackage  code  music  new  remove appxpackage get  remove  testing  tests  unit 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: ISerializable - Roy Osherove's Blog


Last Build Date: Fri, 29 Sep 2017 13:02:16 +0000

Copyright: Roy Osherove

Removing bloatware from a new windows machine

Fri, 29 Sep 2017 13:00:02 +0000

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

Thu, 20 Apr 2017 06:08:44 +0000

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. 


width="360" height="315" src="" frameborder="0" allowfullscreen>

You can check out my online Vim course at 

Or you can go directly to the course page at


Enterprise DevOps

Sat, 29 Oct 2016 17:01:07 +0000

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

Wed, 17 Aug 2016 23:11:38 +0000

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

Mon, 21 Dec 2015 17:40:34 +0000

My off hours hobby is music production. Here are similarities I see between coding and music production so far:   Code compiles into binary - midi is rendered into wav files 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. 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) Pair-Programming - > most new music these days is not done alone: there are lyric writing teams, melodic writing teams, production teams. 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. 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. 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) 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. 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. 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.  There’s more but my head is drawn a blank..   [...]

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

Fri, 30 Jan 2015 06:50:30 +0000

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

Sat, 25 Oct 2014 16:38:15 +0000

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: src="" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> A Second Look at Unit Testing by Roy Osherove from Roy Osherove   [...]

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

Tue, 07 Oct 2014 00:57:36 +0000

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!



New Online Course: Beautiful Builds and Continuous Delivery Patterns

Fri, 11 Jul 2014 08:31:13 +0000


I somehow forgot to blog about this, but it’s never too late. My new online course Beautiful Builds and Continuous Delivery patterns is now available and is $25 until the end of this month (July).

Here’s the course description:

Ah, Continuous Delivery. Everybody and their sister are talking about it, but in real life, nothing is ever as simple as listening to a conference talk about it.

  • Can you really deploy 20 times a day if you QA department is breathing down your neck that they are using the staging server between 9 and 5?
  • Are the teams waiting for each other to finish their work , creating bottlenecks?
  • Is security threatening to have you fired for even suggesting you deploy to production?

In this course Roy Osherove, author of the books “Beautiful Builds” (still in progress, actually) and “The Art of Unit Testing”, discusses common problems and solutions (patterns!) during build automation and continuous delivery.

We start from the basics, defining the differences between automated builds and CI, separation of concerns in build management, and then move on to more advanced things such as making builds faster using artifacts, solving versioning issues with snapshots, cross-team dependencies, and much more.

  • All videos are both streamable AND downloadable to watch offline, no DRM.

More info at



Should you write unit tests or integration tests?

Fri, 11 Jul 2014 08:22:51 +0000

I got this question in the mail. I thought it was quite valid for many other people:



Trying to promote unit tests in a new work place: the “search” action from the UI goes through IOC container which calls a WCF service, where the search itself is done using entity framework auto generated code.
My colleague claims that due to the multiple dependencies, it doesn’t make sense to fake everything when running the unit test, and it makes more sense to do integration tests in this case.

Is my hunch correct? Should I put efforts into implementing unit tests in this complex scenario?


My Answer:

You can go either way.

It really depends on time tradeoffs
  1. How long will it take to write the tests? For integration tests you will have to wait until the whole system is complete to get the tests even failing, unless you start from a webpage, and then they will fail for as long as the entire system of layers is not built.
  2. How long does it take to run and get feedback? integration tests take longer to run usually. and are more complicated to setup. But when they pass you get a good sense of confidence that all the parts work nicely with each other. with unit tests you will get faster feedback, but you will still need those integration tests for full system confidence. On the other hand with integration tests and no unit tests the developers will have to wait in long cycles before they know if they broke something.
There is no one answer. I usually do a mix of both. For web systems I might even start with acceptance tests that fail, and then fill the system slowly with unit tests for parts of the features with more focused functionality. 
I guess you can change the question to : What type of tests should we write FIRST?
Only you know that. it changes for every project and system.