The many types of asserts and their meaning, and dealing with assert bugs

A good way to get a quick rise out of me is to tell me how you’re going to just delete some noisy assert in your code, or worse still, that some assert is “ignorable” – in fact I think the ignore button on the assert dialog is a crime against humanity.   I think the…

3

A brief excerpt from mail to my team today

“I couldn’t possibly list […] all the crucial changes we made to make [‪#‎MicrosoftEdge‬] possible. Dozens of big initiatives and literally thousands of smaller improvements (and removals!) were needed to get us here. I certainly can’t say that our journey was 100% free of stumbles, because no worthwhile journey is, but I can say that…

2

What you really need to know about regular expressions before using them

If you want to use regular expressions in production code the most important thing you must know about how these things are matched is that there are three general approaches to doing it.  They have different performance characteristics and it is absolutely vital that you know which approach the library you are using implements.  …

1

Shortest Proof of Elegance

About two months ago I had an extraordinary opportunity to talk to some Great People in the context of creating a computer science program at Reed College.  These days being in a roomful of people in which I am the least experienced, or nearly least, is not a thing that happens to me so very…

4

Holistic approaches to performance analysis

About 6 weeks ago I prepared a talk on some of my experiences addressing performance problems in the context of Microsoft Edge.  I ended up not actually giving that talk but I thought it would make an interesting article so I’ve fleshed it out a little and turned it into this. The kind of problems…

2

"Linq to Memory": another old idea

One of my readers asked if I had any particular plans around memory density for Visual Studio to go with my last posting and indeed I had one thought that I considered a very powerful way to create data structures that were more likely to be scalable.  Like most of my ideas it’s a very simple…

10

Low Level Considerations for VS of the Future (an old memo)

I wrote this a long time ago.  It’s very interesting to me how applicable this is today.  And how it is not very specific to Visual Studio at all… Low Level Considerations for VS of the FutureRico Mariani, Sept 12/2007 Introduction I’ve been giving much thought to what enabling steps we have to take to…

2

A systematic approach to finding performance regressions using overweight analysis

I have been using this approach to do systematic analysis of performance regressions for several years now. I came up with it while looking at some tricky problems in Internet Explorer about three years ago and it’s served me well since then. The idea is pretty a simple one but it gives surprisingly good results…

7

A Personal History of Microcomputing (Part 3)

[All the parts in this history] Recap I’m only up to 1980, that’s pretty amazing considering what’s happened in the story so far.  The Altair 8800 made its big splash in the January edition of Popular Electronics (which naturally came out in December).  Now it’s 1980, only a half-decade later, and we’ve gone from that…

2