Tycho: It feels like subterfuge, and the raw facts of the case are true, but Kara is way into this kind of shit. It’s not really a “deal.” This is not how it works at my house. There is no special allowance for toys-playing-with, even if they are the very best toys. We had a chance to check out the Twitch App for the Xbox One, and and maybe it wasn’t the best advertisement for the app because we found a bug, but… yeah. They’re coming out swinging. I’ll let Gabe do that part, that’s his thing. It’s one part of…
Gabe: Major Nelson came by the office on Wednesday to show Tycho and I how the new Twitch app worked on Xbox One. He had stopped by a few weeks prior and found us streaming from the PS4. Larry is a cool guy though and even jumped into our stream and showed off the Titanfall controller. I was a little worried the PS4 camera would melt him but he left unscathed. Anyway he knows we like to stream now and he wanted to show off their new app. He ended up hooking me up with a code so I could grab it myself at home and play with it before its official release on Tuesday alongside Titanfall. I played with…
Gabe: I just wanted to give a few updates on some of the stuff we have in the works. Pax East Pins Kiko just posted a preview of this year’s PAX East pin set. You’ll be able to pick this up at the merch booth. We will be updating that site with more pin news over the next couple weeks. We’ve got a lot of cool pins launching at East this year and we’ll be covering them all on the Pinny Arcade site. Game Night 2 I’m going to be hosting another board game night at Snapdoodle Toys in Kenmore on March 15th. The last time I did this we packed out the store with folks playing all sorts…
A 2-by-2 grid of boxes.
The top row is labeled FILETIME; the bottom row is labeled
The first column is labeled UTC; the second column is labeled Local.
The upper left box
is labeled GetSystemTimeAsFileTime.
There is an outgoing arrow to the right
FileTimeToLocalFileTime leading to the box in the
second column labeled None.
There is an outgoing arrow downward labeled
leading to the box in the second row, first column,
From the box in the upper right corner labeled None,
there is an outgoing arrow
leading to the box in the second row, second column,
I was wrong, but I'm going to try to get off on a technicality.
You can connect the two boxes by calling
with NULL as the time zone parameter,
which means "Use the current time zone."
The same diagram as above, but there is a new arrow connecting
This works here because the time being converted always refers to the current time.
Here comes the technicality.
This technique doesn't work in general because
uses the time zone in effect at the time being converted,
whereas the FileTimeToLocalFileTime
function uses the time zone in effect right now.
Furthermore, it doesn't take into account changes in daylight savings rules
may have historically been different from the current set of rules.
(Though this is easily repaired by switching to
The trick works here because the time we are converting is right now.
In other words, the more general diagram does not commute.
Instead, it looks more like this:
Same as before, but this time the boxes are unlabeled,
and the bottom right box is split in two.
The inbound arrow from the left goes to one box and the inbound arrow from the top
goes to another box.
The two halves of the split boxes are marked as not equal.
This is why the documentation for
FileTimeToLocalFileTime tells you
that if you want to get from the upper left corner to the upper right corner
while accounting for daylight saving time relative to the time being converted,
then you need to take the long way around.
So what we have is not so much a commutative diagram as a something like covering space:
If you start at any box and travel around the diagram,
you won't necessarily end up where you started.
Let's start at the upper left corner for the sake of example.
Back to the four-box diagram, with empty boxes.
The arrows follow a clockwise path.
From the upper left, we go to the upper right via FileTimeToLocalFileTime,
then to the bottom right via FileTimeToSystemTime,
then to the bottom left via TzSpecificLocalTimeToSystemTimeEx,
then back to the upper left via LocalFileTimeToFileTime.
When you return to the upper left box, you might end up somewhere else,
probably an hour ahead of or behind where you started.
Each time you take a trip around the diagram, you drift another hour further away.
Well, until you hit another daylight saving time changeover point.