28 11 / 2012

useful for calculating seconds since epoch

31 10 / 2012

This is a classic Fitts’s Law problem, and Fitts’s Law states that the ease of hitting a target is a function of both the size of the target and the distance to get there. So you want bigger targets on bigger displays, because there’s more distance for your pointer (in this case, your finger) to travel, but you can get away with smaller targets on a smaller display because there’s less distance to travel.

29 10 / 2012

To OEMs, it seems creating a family of products means nothing more than simply making a set of devices look similar. Hogwash. The reason Apple has been so successful is because its family of products operate better as a unit, with cross-platform features (iTunes, iCloud, iMessage, and so forth) that no competitor can rival. The experiences need to be designed together.

25 10 / 2012

23 10 / 2012

The web kills off other protocols because it has something most protocols lack: a simple way of labeling every available item. Every resource on the Web has at least one URI. You can stick a URI on a billboard. People can see that billboard, type that URI into their web browsers, and go right to the resource you wanted to show them. It may seem strange, but this everyday interaction was impossible before URIs were invented.

22 10 / 2012

"the easier you can communicate, the faster change happens."

19 10 / 2012

Generating ideas is the easiest part of creating a presentation. The hard part is deciding what to keep. Many of your ideas may be fascinating or clever, but you can’t squeeze them all in — and no one wants to hear them all, anyway.

19 10 / 2012

The flipside of the increasing file-sizes is that the internal storage of smartphones and tablets is becoming a scarcer resource, as the device capabilities struggle to keep up with the requirements of apps and mobile content. Markkanen predicts, “Especially the consumers with 16GB devices are likely to become more conscious about what apps to keep and what to uninstall, so the developers’ bar to impress will be getting even higher than it is now. This could also speed up the adoption of the mobile cloud as a storage remedy quite significantly.”

10 10 / 2012

The most common reason for managed heap corruption is bad PInvoke’s. We pass in a buffer to a native (non .net) API which the native API is supposed to return some data in, but the buffer is too small for the results. Since the API has no clue about .net and no clue about the boundaries, it just happily writes its data.

The moral of the story? First off, make sure that if you call an API and one of the parameters is an [out] parameter you need to make sure that your buffer is large enough to store the result. Secondly, if you get this kind of issue, the first thing you should look for in the code is calls to unmanaged API’s.

10 10 / 2012

Tracing Win32 API While Debugging a Process

  • 1: 0:001> !logexts.loge
  • 2: 001> !logc e *
  • All categories enabled.
  • 2: 001> !logo e d Debugger Enabled Text file Disabled Verbose log Enabled
  • 2: 001> g