[0]: https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL/eInv...
1,260 karma · joined November 2, 2009
[0]: https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL/eInv...
alias dogit='GIT_WORK_TREE=/path/to/src/dir GIT_DIR=/path/to/dotgit/dir git'
dogit pull remote treeish
---I set this up as a "poor man's version control" on a large client's server back in 2016-ish. I was lost for words when last year I saw my colleagues still using Ctrl-R to rerun that alias line.
In recent versions of Chrome, you can right-click the bar and choose "Always show full URLs" to fix that particular stupidity.
General accessibility be damned.
<noscript> fallback messages be damned. (Except when snitching on your page views to Google Analytics, that's too important to be neglected! I wonder if GA has any default marker to let their customers distinguish these views from normal ones, or if that's still left to each customer to implement manually.)
UI customizations in the form of browser extensions and styles be damned.
Ad blocking be damned.
Generally, it should be noted that an <a> tag is only appropriate if it makes sense to right-click this element and get options to "open in new tab" or "add to bookmarks". All the stupid "buttons" implemented as <a href="#"> + e.preventDefault() need to die.
[0]: https://stripe.com/partners/apps-and-extensions/invoicing
PHP closures have to specify which variables they close over, and whether it's done by-val or by-ref [0].
Nowadays there's also a shorthand single-expression-closure syntax that closes implicitly and by value [1].
[0]: https://www.php.net/manual/en/functions.anonymous.php#exampl...
And there's also XKCDB [1].
† (if you follow these rules I memorized to show off how smart I am).
---
The first one, ExecuteXML, takes an <XmlBody> representing a regular SAP B1 XML request and passes it on to one of the real SAP services. We have to find our own XSDs for the inner part, because they sure as hell don't have those.
The second one is ExecuteSQL. It lets us run raw SQL against the SAP database. It doesn't have any support for prepared parameters. What it does have is a blacklist to prevent DDL and other funny business, such as semicolons. This blacklist runs on the raw string you send, and doesn't understand any escape characters. To send a string containing a literal semicolon, I had to turn it into CONVERT(VARCHAR(MAX), 0x...).
[0]: https://www.w3.org/International/questions/qa-personal-names
This reminds me a lot of Perl with its creative naming for things, e.g. promises giving you a `Vow` object that you can `keep()` or `break()`. Or how you `bless` an associative array into becoming an object of a certain class.
On the one hand, it is good to have precise and specific terms without reaching for a thesaurus or overloading the same term (e.g. the many meanings of `static` in C).
On the other hand, if every framework and language invents its own terms for everything under the sun, that will not help polyglots or newcomers.
(On the third hand, we have foreigners trying to spot a difference between a "promise" and a "vow".)
Promises are my favourite example of this, because just between C++, C#, JavaScript, and Perl, I can find three-and-a-half different taxonomies for the same functionality.
[0]: https://developer.mozilla.org/en-US/docs/Web/API/Window/even...
[0]: https://www.reddit.com/r/programming/comments/ar1qj1/_/egl52...
It should be noted that the Soviet state was very aggressive in whitewashing themselves and marring their opponents. "Who needs your damned truth if it makes our lives more difficult", one of their leaders said. Their documents should not be taken at face value.
[0]: https://en.wikipedia.org/wiki/Totskoye_nuclear_exercise
---
But the RA2: Yuri's Revenge binary was just patched where needed. This distinction was made because at the time YR already had some hardcore fans decompiling it and enhancing it, EA's community manager heard about this and made sure that community effort was not destroyed. I was one of those fans, and taking it apart was one hell of an adventure. We didn't decompile all of it, but we figured out many details, and added a lot of bugfixes and enhancements. It's not the same thing as the real source code, but you can see what we got in [1]/[2]/[3] (unfortunately those haven't been updated in a while).
[0]: https://en.wikipedia.org/wiki/Command_%26_Conquer:_The_First...
[1]: https://github.com/Ares-Developers/YRpp
[2]: https://github.com/Ares-Developers/Ares
[3]: https://www.modenc.renegadeprojects.com/Contributing_to_Ares
[0]: https://www.troyhunt.com/extended-validation-certificates-ar...
KeePass sources are available [0], you can see the specific algorithms it uses in [1].
[0]: https://sourceforge.net/projects/keepass/files/KeePass%202.x...
[1]: https://fossies.org/windows/misc/KeePass-2.42.1-Source.zip/K...