WTF Bites


  • Garbage Person

    @Atazhaia Um, hello Labor Board?


  • Java Dev

    @Greybeard It gets very hard to miss signing, as HR will constantly remind you until you sign. Especially if the deadline has passed. Then they will remind you with increasing urgency. Text messages, phone calls, hired hitman to hold your loved ones at gunpoint...



  • @Atazhaia said in WTF Bites:

    Updating the Hearthstone mobile app through Google Play does not always mean that the Hearthstone app is actually updated. Because it may surprise you with the need to download an additional 1.2GB of data when you open it, which is a mandatory download to play the game. I dunno why they felt the need to invent their own in-app downloader for game data when Google Play is perfectly able to provide that service.

    There may be three reasons:

    1. Because the content is actually different for different users. The store can't do that. Not a wtf.
    2. Because it is multi-platform and they needed downloader on some other one, so they used it everywhere. Not good, but I wouldn't call this wtf either.
    3. :wtf:

    @RaceProUK said in WTF Bites:

    @Atazhaia It might not be an in-app downloader. Google Play has a limit on how big the APK for the app can be (I forget exactly what it is, but it's well under a gigabyte), but you can add up to two 2GB files of 'additional data', which is downloaded (via the Google Play API) when you first run the app.

    I thought that it does download it automatically. However, it is not solution for everything either. If the data is somehow personalized, the app has to handle it itself.


  • Java Dev

    @Bulb The only personal data is your collection and records, but that's all loaded from your Blizzard account when you log in. Heavy data like game assets are the same for everyone. Maybe I should check how the iOS version does it to see if that also does in-app downloading. As for the PC and Mac version, they get updated through the Blizzard app so they don't do it in-game there.



  • 0_1496662816931_d9d00a8b-a130-480f-b1c0-db477c30bd7c-image.png

    https://www.reddit.com/r/cscareerquestions/comments/6ez8ag/accidentally_destroyed_production_database_on/

    As the onebox says.

    Bonus, the guy who recently nuked gitlab production DB consoles the OP in comments.

    0_1496662977629_ee03e64f-6ced-49ea-880e-a52e3765d4f4-image.png

    At least he's got a sense of humor about it.


  • BINNED

    Unrelatedly related:

    0_1496663528767_5ca91d53-a1da-4171-82a9-e7a8938f99fe-image.png

    Why the hell is the preview bothering with the onebox now? Is there any situation where that will convey any useful information?



  • @Onyx said in WTF Bites:

    Why the hell is the preview bothering with the onebox now? Is there any situation where that will convey any useful information?

    Noticed it. Need some fine-tuning.


  • FoxDev

    @cartman82 As someone who was once railroaded into accepting the blame for a credit card gateway fuck-up (the dev branch had LIVE creds in it) when I was a junior, I fully sympathise with the guy.



  • Protip: Always have a backup.

    Or some intern will school you.



  • I carefully hide the fact I understand Czech from the computer. Colleague does not, and this is what he's got:

    NMAKE – odkazVisual Studio 2015 Ostatní verzeNejnovější dokumentaci k sadě Visual Studio 2017 najdete tady.Nástroj Údržba Program společnosti Microsoft (NOVĚŘTE. EXE) je nástroj příkazového řádku součástí Visual Studio vytvoří projektů založených na příkazy, které jsou obsaženy v souboru popisu.Pokud chcete použít NOVĚŘTE, je nutné ji spustit v okně příkazového řádku Developer. Okno příkazového řádku vývojář má proměnné prostředí pro nástroje a knihovny a nastavit zahrnout cesty k souborům potřebné k sestavení na příkazovém řádku. Podrobnosti o tom, jak otevřete okno příkazového řádku Developer naleznete v tématu Sestavení z příkazového řádku.

    1. The program is still called NMAKE.EXE in Czech Windows.

    2. “NOVĚŘTE” might be parsed as “no věřte”, meaning something like “just believe”, or as “n ověřte”, meaning something like “n verify”.

    3. The word “developer” is translated as “vývojář” sometimes, but not always. The translation would be correct if the word acted as noun, but in the original text it appears to act as adjective.

    4. The text is generally ungrammatical. Back translation by human would go something like:

      Tool Maintenance Program of Microsoft company (JUSTBELIEVE.EXE) is a tool of command line part Visual Studio creates project based on commands, that are contained in file of description.
      If you want to use JUSTBELIEVE, it is necessary to run it in window of command line Developer. Window of command line developer has variable environment for tools and libraries and to set up to include paths to file needed to build on command line. Details about how you open window of command line Developer you will find in topic Build from command line.

    5. Back translation by Google goes like:

      The Microsoft Program Maintenance Tool (NEXT EXE) is a command-line tool that Visual Studio creates commands based on the commands contained in the description file.
      If you want to use NEVER, you need to run it in the Developer command-line window. The command-line developer window has environment variables for tools and libraries, and set to include paths to the files needed to build at the command prompt. For details on how to open the Developer Command Prompt window, see Build from a command line.

      Proving that the quality of Google translate is not significantly better than that of Bing translate (OrWhateverMicrosoftUsed™).


  • Discourse touched me in a no-no place

    @Bulb said in WTF Bites:

    JUSTBELIEVE.EXE

    😆


  • 🚽 Regular

    @Bulb said in WTF Bites:

    variable environment

    Environment that varies, environment of/with variables, or two separate nouns?


  • I survived the hour long Uno hand



  • @Zecc said in WTF Bites:

    Environment that varies, environment of/with variables, or two separate nouns?

    It is ambiguous between the first two options.


  • Garbage Person

    @Atazhaia Still not an excuse for not paying your salary. I don't know about your jurisdiction, but here after someone filed a wage claim they'd get fined pronto. The procedure would most likely change then.


  • Java Dev

    @Greybeard It has not happened yet, and I dunno if it would actually happen if it would be the case. Hourly pay and government regulations make the reports actually important to fill in a timely manner, however. My new job pays monthly so they have less annoyance in the reporting side.



  • @cartman82 saw that when it was posted, that whole thing is amazing. it deserves its own article about how much everyone else in that company fucked up.



  • So, I'm doing this Xamarin thing and thought to take a look on how to deploy it to iOS (besides Android and UWP). Since I didn't want to shell out money for a Mac, I managed to install MacOS on VirtualBox.

    Then I had a look on how to go about it - I mean, I already knew that VisualStudio needs to connect to a Mac for the build process, but Holy Hell! This is definitely something else.

    I mean, for UWP I'm building my stuff (just need a Microsoft account) and only if I actually want to put something into the store I'll have to go through stuff. But pretty streamlined stuff.
    Didn't look at Android, but again, unless I want to put my app into the store I can always build an APK I can sideload. Easily, too!

    And then there's this:

    Fucking hell.



  • @Rhywden Apple never got the "Developers, Developers, Developers" memo.



  • 0_1496697785101_38cd8c4b-d05f-4064-a7f7-8a78fd7390e9-image.png

    Confused about which progress control to use, Steam opts for a hybrid approach. It doesn't work well.



  • @Rhywden "Developers should have to pay us for the privilege of maybe being allowed to use our crappy tools to make more profit for us! And they better not complain or we'll pull their apps from the store."


  • Discourse touched me in a no-no place

    @Rhywden said in WTF Bites:

    So, I'm doing this Xamarin thing and thought to take a look on how to deploy it to iOS (besides Android and UWP). Since I didn't want to shell out money for a Mac, I managed to install MacOS on VirtualBox.

    :doing_it_wrong: 🤑

    And then there's this:

    Fucking hell.

    I'm glad it's so easy. 🍹



  • @Rhywden said in WTF Bites:

    I managed to install MacOS on VirtualBox.

    Hush. Don't say that out loud. As far as I can tell, the license terms prohibit this (this = running MacOS on non-Apple hardware).

    And then they also don't produce any servers. That's how we ended up with virtual Windows build server in a beefy server farm and a slave Mac build “server” on a MacBook sitting under somebody's desk!

    @Rhywden said in WTF Bites:

    Device Provisioning - Xamarin

    YMBNHTA.

    It gets worse. The Enterprise plan, the highest you can have, only permits 100 devices. Per company, because one company can't have multiple accounts, no matter how big it is. IIRC our customer has some subsidiaries just to work around that limitation.



  • @Bulb said in WTF Bites:

    And then they also don't produce any servers. That's how we ended up with virtual Windows build server in a beefy server farm and a slave Mac build “server” on a MacBook sitting under somebody's desk!

    My Mac "build server" is a Docker image on a Linux machine that has 3.2GB of RAM to split between 6 of the 8 build configurations. The other two are on my 16GB Windows desktop machine.


  • Notification Spam Recipient

    @ben_lubar said in WTF Bites:

    @Bulb said in WTF Bites:

    And then they also don't produce any servers. That's how we ended up with virtual Windows build server in a beefy server farm and a slave Mac build “server” on a MacBook sitting under somebody's desk!

    My Mac "build server" is a Docker image on a Linux machine that has 3.2GB of RAM to split between 6 of the 8 build configurations. The other two are on my 16GB Windows desktop machine.

    You can build Mac apps on Linux?!?! Impossibru!



  • @Tsaukpaetra Unless that machine has a fruity logo on it, it's in violation of EULA which specifically prohibits running macOS on non-branded hardware.


  • 🚽 Regular

    @Arantor said in WTF Bites:

    @Tsaukpaetra Unless that machine has a fruity logo on it, it's in violation of EULA which specifically prohibits running macOS on non-branded hardware.

    Yes, I've heard stories of people adding Apple stickers to their Hackintoshes to comply with this rule.



  • @Zecc It would be a stretch for that to comply with the 'Apple-branded' wording of the EULA but I can believe people would do it anyway.


  • Java Dev

    @Zecc said in WTF Bites:

    Yes, I've heard stories of people adding Apple stickers to their Hackintoshes to comply with this rule.

    And if you want an official Apple sticker you can just buy an Apple computer as they give you two logo stickers along with it!



  • @Arantor said in WTF Bites:

    @Tsaukpaetra Unless that machine has a fruity logo on it, it's in violation of EULA which specifically prohibits running macOS on non-branded hardware.

    I'm not running MacOS.

    It's just GCC with the MacOS SDK. The idea being that DFHack needs to be compiled with exactly the same compiler as Dwarf Fortress. On Windows, that's MSVC2015, on Linux and Mac that's GCC4.8.


  • FoxDev

    @ben_lubar said in WTF Bites:

    The idea:wtf: being that DFHack needs to be compiled with exactly the same compiler as Dwarf Fortress.



  • @RaceProUK said in WTF Bites:

    @ben_lubar said in WTF Bites:

    The idea:wtf: being that DFHack needs to be compiled with exactly the same compiler as Dwarf Fortress.

    ABI compatibility and using the same version of the standard library are very important things to consider when making an in-process reverse-engineered memory-hacking tool.


  • Discourse touched me in a no-no place

    @ben_lubar said in WTF Bites:

    ABI compatibility and using the same version of the standard library are very important things to consider when making an in-process reverse-engineered memory-hacking tool.

    And ABIs being just incidentally different between different compilers on the same platform is a :wtf: but that's C++ for you…





  • @anonymous234

    The tmpnam() function returns a pointer to a string that is a valid filename, and such that a file with this name did not exist at some point in time, so that naive programmers may think it a suitable name for a temporary file.

    XD

    Yeah, okay... if I'm parsing those man pages correctly:

    • tmpnam(3) takes no input and returns a valid, unique filename for a temporary file; it verifies that the file does not already exist, but provides no protection against another process creating the same file before you do.
    • mktemp(3) takes a template string and randomizes the last 6 characters of it so that it is a valid, unique filename, then returns it; it verifies that the file does not exist, but provides no protection against another process creating the same file before you do.
    • mkstemp(3) is equivalent to mktemp(3), except that it actually creates the file and returns a file descriptor to it, thus protecting you from having another process create the same file before you do.
    • tmpfile(3) is the equivalent of tmpnam(3), except that it actually creates the file and returns a filestream descriptor to it, thus protecting you from having another process create the same file before you do; also, the file will automatically be deleted when it is closed, or when the program terminates.


  • @anonymous234 said in WTF Bites:

    https://linux.die.net/man/3/mktemp
    https://linux.die.net/man/3/tmpnam
    https://linux.die.net/man/3/mkstemp
    https://linux.die.net/man/3/tmpfile

    You forgot:

    https://linux.die.net/man/3/tempnam


    All but mkstemp and tmpfile are deprecated. The remaining two, tmpfile is portable (conforms to C89) while mkstemp is less portable (only conforms to POSIX.1–2001), but more flexible with the template.



  • @ben_lubar said in WTF Bites:

    I'm not running MacOS.

    It's just GCC with the MacOS SDK.

    That might work for MacOS target, but the starting post was about Xamarin, which means iOS target. And there even if you made llvm cross-compile the binary, you'd still need to create the package and sign it and those tools are Mac-only.



  • @Bulb said in WTF Bites:

    @ben_lubar said in WTF Bites:

    I'm not running MacOS.

    It's just GCC with the MacOS SDK.

    That might work for MacOS target, but the starting post was about Xamarin, which means iOS target. And there even if you made llvm cross-compile the binary, you'd still need to create the package and sign it and those tools are Mac-only.

    You mean like the thing mifki made? https://mifki.com/df/



  • @Bulb said in WTF Bites:

    All but mkstemp and tmpfile are deprecated. The remaining two, tmpfile is portable (conforms to C89) while mkstemp is less portable (only conforms to POSIX.1–2001), but more flexible with the template.

    And in the end, I'm sure 50% of programs just hard code "/tmp/randomfilename".


  • kills Dumbledore

    @anonymous234

    Path.Combine("C:\Temp", Guid.NewGuid().ToString() + ".extension")



  • @ben_lubar said in WTF Bites:

    You mean like the thing mifki made? https://mifki.com/df/

    But do they build that with cross-compiler? Including creating the package for AppStore? I don't believe that.



  • @anonymous234 said in WTF Bites:

    @Bulb said in WTF Bites:

    All but mkstemp and tmpfile are deprecated. The remaining two, tmpfile is portable (conforms to C89) while mkstemp is less portable (only conforms to POSIX.1–2001), but more flexible with the template.

    And in the end, I'm sure 50% of programs just hard code "/tmp/randomfilename".

    I use a name containing the thread ID and timestamp. And in some cases, the timestamp isn't even necessary.


  • 🚽 Regular

    @Jaloopa said in WTF Bites:

    "C:\Temp"

    💢 🍊 🗯



  • @Zecc Better "C:\Temp" than just "C:\"



  • @Medinoc said in WTF Bites:

    @anonymous234 said in WTF Bites:

    @Bulb said in WTF Bites:

    All but mkstemp and tmpfile are deprecated. The remaining two, tmpfile is portable (conforms to C89) while mkstemp is less portable (only conforms to POSIX.1–2001), but more flexible with the template.

    And in the end, I'm sure 50% of programs just hard code "/tmp/randomfilename".

    I use a name containing the thread ID and timestamp. And in some cases, the timestamp isn't even necessary.

    This may have some of the same issues as tmpnam and mktmp, namely that you may be opening yourself to stuff like symlink attacks. (I.e., somebody else guesses the name ahead of time, creates a symlink and by that causes your application to change files that he wouldn't be able to otherwise).



  • @cvi said in WTF Bites:

    @Medinoc said in WTF Bites:

    I use a name containing the thread ID and timestamp. And in some cases, the timestamp isn't even necessary.

    This may have some of the same issues as tmpnam and mktmp, namely that you may be opening yourself to stuff like symlink attacks. (I.e., somebody else guesses the name ahead of time, creates a symlink and by that causes your application to change files that he wouldn't be able to otherwise).

    Wow, you're perfectly right and I had never thought of that. Hackers are more creative than me.

    Well if we must now add "unpredictable" to a set of criteria that so far only included "unique", the output of a CSPRNG (possibly in the form of a version 4 UUID, thanks Jaloopa -- but it can't be a simple NewGuid(), we need more than an ordinary PRNG) can be used/added to the file name.

    ETA: According to StackOverflow it seems NewGuid() / UuidCreate() actually uses a CSPRNG, but since it's not documented as such it's bad form to rely on it.

    Edit2: That said, I work on Windows, where (when not being idiots and using C:\Temp) each user has their own temp directory (unlike *n*x which dumps everyone in /tmp), so a symlink attack would be harder.



  • @Bulb said in WTF Bites:

    @ben_lubar said in WTF Bites:

    You mean like the thing mifki made? https://mifki.com/df/

    But do they build that with cross-compiler? Including creating the package for AppStore? I don't believe that.

    I'm pretty sure either mifki has a Mac or he asked lethosor for help. lethosor used to build df-ai for Mac for me until I got it set up with the Docker image.


  • ♿ (Parody)

    The latest version of Chrome on Linux, Version 59.0.3071.86 (Official Build) (64-bit), has broken menu item highlighting on menus, whether right click context menus or the dots menu or whatever.

    The bookmarks menu is especially retarded. Menus don't have any obvious frame or anything. If I do down a couple of levels of menu in my bookmarks (:doing_it_wrong:) at some point the next level covers up the parent menu and totally blends in so you can't really tell that anything has happened.

    Fuckers.



  • Apparently I am TRWTF.

    0_1496864624657_f4c470a0-f784-476b-9712-e57f8bc7bbc5-image.png

    Yes, I have a cell phone bill. And yes, it is $0.00. Maybe I should just enter the amount I spend on my wife's cell phone bill... but then, if I'm talking about her plan, some of the answers I gave to previous questions would be inaccurate...



  • Status: So, I'm also looking into integrating OneDrive upload for my app. Since it's still Xamarin.Forms I'd really like a solution where I don't have to special snowflake every platform.

    Took a look at the API. According to the docs I either have to special snowflake every platform or do some RESTful requests.

    Only problem: Authentication is through OAuth and one of the parameters the auth process expects is REDIRECT_URI - which makes sense for a web page. For a mobile app? Not so much.

    But never fear! I found a Github repo which promises a solution! https://github.com/Azure-Samples/active-directory-xamarin-native-v2

    Yeah. Obtained the ClientID, search/replaced every occurence thereof. Didn't test iOS because I'm only touch that build process when I have something substantial.

    Tested Android - which let the debugger pop up when I clicked the "Sign In" button, telling me that the app had just been suspended. Good job!
    Tested UWP - which indeed opened a WebView with the proper signin portal. Tried my credentials - I usually get redirected after entering my email (because it's a private account). I actually saw the redirection process after which the WebView simply closed and no fucks errors were given.

    What kind of testing process are those fuckers running?


Log in to reply