Tichu

Updated 2017-09-13 100 points per round (4 5’s worth 5 each, 4 10’s worth 10 each, 4 kings worth 10 each, + 25 dragon - 25 phoenix) combinations: single - pair - stairs - triple - straight (5+, any suits) - full house - bombs {{ quads - straight flush (5+) }} red joker - Phoenix Worth 0.5 more than the top card Wild (except in bombs) BUT it’s worth -25 in the pile.
Read more

VS 2010 and 2013 side by side

I recently attempted to upgrade my aging install of VS 2010 to the latest 2013 (mostly because of an STL-heavy project that could really benefit from some C++11 range-based for). Visual Studio 2012 changed the basic locations of include/library paths, and as a result solution properties need to be updated to point to these new paths. There is a chain of property files determining which include/library paths are loaded, and the SDK paths are contained in the systemwide %APPDATA%\Microsoft\MSBuild\v4.
Read more

Microoptimisation

In a function prologue it’s considered polite (and/or required by ABI) to stash registers and then restore them in the epilogue, so that callers don’t need to do that themselves. The alternative is that all callers stash the registers, and presumably (if each function is called one or more times) then there are many more function calls than function definitions, so having the function do this work is the correct approach to minimise binary size.
Read more

QuickTap

Decompiled the cocacola QuickTap app to see how it worked. 8f4a38321179f79eca3301a63dd66455 *nz.co.ccamatil.quicktap-1.apk TL;DR it’s all remotely federated, there’s zero chance for free drinks unless you’re comfortable either (a) fuzzing coke servers for vulnerabilities, or maybe (b) sniffing other people’s requests and ordering on their account. A physical QR code scan (zxing) is used to set location, and then the phone makes http requests to the coke server to remotely initiate vending.
Read more

Design of backup software

This article covers the design of an ideal file-based backup solution. DESIRED PROPERTIES Untrusted server Incremental forever METHOD Split file into blocks using rsync algorithm / deterministic reparse points This makes it very likely that a 1B addition in the middle of the file won’t cause an entire reupload of the following sections Use a block interval that is quite large (e.g. 100KB) to minimise size of metadata
Read more

Recompressing enwiki

Abstract I download wikipedia database dumps on a semi-regular basis in case of transient internet outages. The file enwiki-latest-pages-articles of 2014-02-21 arrives as an xml.bz2. Is it worth recompressing it? Results size pct ctime dtime uncompressed 47 078 573 765 100.0% - - quicklz 19 691 063 966 41.8% 13m wikitaxi 17 131 739 126 36.4% 2h24m - rar-fastest 13 817 152 272 29.
Read more

DNS Alternative History

TCP/IP works fine without DNS. DNS is an optional layer and it even had competition for a long time (WINS still exists). There’s no fundamental reason why DNS names point to an IP address. They could have pointed to an ip/port tuple; then all protocols would no longer need to have default ports (http does, adc doesn’t) and there wouldn’t be any hassles over SNI adoption (there would be other hassles over adoption).
Read more

Introduction to encrypted, incremental backup

There are a few approaches to encrypted incremental backup assuming the constraints are (1) we don’t trust the remote storage provider to snoop through our data, so it must be encrypted client-side; and (2) bandwidth is expensive, we want to minimise data sent to the remote storage provider - that includes only ever sending the changes to our data. Take duplicity[1] for instance. In order to work with untrusted remote storage sites, all data is encrypted and the encryption key is never exposed to the remote storage provider.
Read more

Psycho-Pass Set Theory

Decided the twist in Psycho-Pass is best understood by goedelian incompleteness in axiomatic set theory In a formal system such as classical arithmetic or human society in Psycho-Pass, goedel’s incompleteness theorem dictates that you encounter statements which may be true but cannot be produced from first principles. As a result, all non-trivial formal systems are incomplete. In these case you can grow your formal system by accepting either this result or its negation as a new axiom
Read more

iodine

By tunnelling network connections over DNS, you can get what amounts to free internet on certain networks, including (…) and most public wifi networks. Process: Find / host an iodine server to create a virtual lan over dns Connect to a proxy on the virtual lan Speeds: Iodine webpage cites 1 Mbit Confirmed 4-5 Mbit on (…) while (…) is connected. However dns traffic is just tcp/udp and is metered while you are connected Only 50kbit on (…) while (…) is disconnected Hosting iodine (…) is running an iodine server.
Read more