OK so Google knows everything about you… your purchasing habits… your weird fetishes… and your location constantly updated in realtime. Who cares, you get cool maps and custom search results and shit, right? Fine and dandy, just know what it really means. Here’s how to find someone’s full name given just their cellphone number for anyone that has verified their Google Plus account with their cellphone number (a LOT of people, btw…) (continued…)

Vote in the comments!

I really like the “fast” C++11 types, that give best performance for a guaranteed minimum bit width. Use them when you know a variable will not exceed the maximum value of that bit width, but does not have to be a precise bit width in memory or elsewhere.

Pick specific-width fields whenever data is shared with other processes and components and you want a guarantee of its bit width.

And when using pointer size and array indices you should use types defined for those specific situations.

FAST types:


    int_fast8_t
    int_fast16_t                fastest signed integer type with width of
    int_fast32_t                at least 8, 16, 32 and 64 bits respectively
    int_fast64_t

    uint_fast8_t
    uint_fast16_t               fastest unsigned integer type with width of
    uint_fast32_t               at least 8, 16, 32 and 64 bits respectively
    uint_fast64_t

SMALL types:


    int_least8_t
    int_least16_t               smallest signed integer type with width of
    int_least32_t               at least 8, 16, 32 and 64 bits respectively
    int_least64_t

    uint_least8_t
    uint_least16_t		smallest unsigned integer type with width of
    uint_least32_t		at least 8, 16, 32 and 64 bits respectively
    uint_least64_t

EXACT types:


    int8_t                      signed integer type with width of
    int16_t                     exactly 8, 16, 32 and 64 bits respectively
    int32_t                     with no padding bits and using 2's complement for negative values
    int64_t                     (provided only if the implementation directly supports the type)

    uint8_t                     unsigned integer type with width of
    uint16_t                    exactly 8, 16, 32 and 64 bits respectively
    uint32_t                    (provided only if the implementation directly supports the type)
    uint64_t

SPECIFIC-USE types:


    intptr_t                    integer type capable of holding a pointer
    uintptr_t                   unsigned integer type capable of holding a pointer 
    size_t                      unsigned integer type capable of holding an array index (same size as uintptr_t)

Pretty much SAY BYE BYE TO [int]! 🙂 …or when going across OSes and 32/64bit platforms you will be playing with this matrix of fun (originally from here):

image2

Awesome keyboard shortcuts

Some are old, some are new. Sum > parts. Ahh nice. 🙂

  • Windows+X => Ahh all the good gooey stuff they hid!
  • Windows+# => Switch to pinned app number #
  • Shift+Windows+# => Run new instance of pinned app number #
  • Ctrl+Shift+leftclick icon => Run as admin
  • Ctrl+Shift+Windows+# => COMBO MOVE! Run new instance of pinned app number # as admin – awesome…
  • Ctrl+Shift+Esc => Instant task manager
  • Windows+up/left/right/down => Move current window to max/left/center/right/min – play with this one, it’s fun!
  • Shift+Windows+left/right => Move current window to left/right monitor
  • Alt+# => Switch to Dexpot virtual desktop number #
  • Shift+Alt+# => Move current window to Dexpot virtual desktop number #
  • Windows+Pause => Control Panel/System settings (then jump to device manager, adv system settings, etc., nice!)
  • Alt+PrtScn => Put a snapshot of current window on clipboard

More Nice

  • Another nicety, massively improved merge handling during file copying – although, c’mon, this should have been a Windows 3.1 feature… but it will compare source and destination, and let you hand-pick from a long list of file conflicts, with exact matches excluded. Pretty nice.
  • I use Window’s “Extra Large Inverted” set of mouse pointers, they are fantastic to help me find my pointer in my 2 x 1080p sea of real estate.

Annoyances

And what would life be without an annoyances list…

  • Sliding the pointer from one screen to another NO LONGER WORKS, doh! Win 8.1 “catches” the mouse if you are at the top or bottom edge of the screen (which you almost always are) and pops up the stupid lucky charms or whatever they call it. So you have to nervously ski the mouse through the middle of the screen as you go from monitor to monitor. THIS IS TERRIBLE BEHAVIOR. My favorite part: if you are sliding to the second monitor to click the window there and give it focus, when your mouse is caught, it will be right on the CLOSE BUTTON of the app on the first monitor… and… drumroll… you’ve now accidentally closed the app! Yay fun!
  • (from Dan…) In win 8, Internet Explorer, the vertical scroll bar only appears for a few seconds. So if you put your mouse there and click to scroll down, then read and click again to scroll down more, nothing happens because the scroll bars have disappeared. You have to wiggle your mouse to get them to reappear and then click to scroll down again.
  • Every. Tiley. App. Sucks. Fine, do your tiley app chooser thing. But Microsoft, you’ve had a lobotomy if you think people want apps THIS dumb!
  • This is what happens when you model a desktop interface after a 3″ phone screen, DOH.
    win81_feeling_of_emptiness

Annoyances

But will the USA Freedom Act get traction?

If you aren’t up to speed already, Bruce Schneier’s cryptogram is an excellent source of hard trustworthy information.