|
VikingofRock posted:So this might be a naive question, but has anyone ever actually been successfully sued over breaking backwards compatibility? I searched and couldn't find any examples of it, but maybe there's some famous case or something that I just haven't heard of / my googling skills are poor. Gazpacho fucked around with this message at 18:51 on May 2, 2017 |
# ¿ May 2, 2017 18:44 |
|
|
# ¿ Apr 29, 2024 02:36 |
|
Incidentally, this is why Microsoft didn't start to fix the Internet Explorer brokenness until the European Commission threatened to clean their clock with fines.
|
# ¿ May 2, 2017 18:55 |
|
In the Watson case the plaintiffs admit agreeing to the upgrade, so the forcing is not relevant there. And in both cases, what Microsoft neglected to do is as much an issue as what it actively did.
|
# ¿ May 2, 2017 19:23 |
|
Hammerite posted:Can't decide whether I'm being a bit too pedantic, or far too pedantic.
|
# ¿ Jun 25, 2017 01:09 |
|
JavaScript code:
|
# ¿ Jul 14, 2017 01:11 |
|
Wrong, companies are locking themselves so hard into go apps that its value will be beyond question, much the same way that it is verboten to denounce Ronald Reagan in a public forum
|
# ¿ Jul 14, 2017 17:58 |
|
idiotmeat posted:Is that based on docker being written in go?
|
# ¿ Jul 14, 2017 20:08 |
|
Doom Mathematic posted:How come for(; { ... } works, anyway? Shouldn't that at least be for(;true;) { ... }? Or does an empty statement return true?? C's flexible loop statements are something that it gets very, very right, which is why derived languages tend to keep them.
|
# ¿ Jul 25, 2017 00:23 |
|
Doom Mathematic posted:So how come while() { ... }, with no condition, is a syntax error?
|
# ¿ Jul 25, 2017 16:18 |
|
Doom Mathematic posted:I don't understand what you mean by this, aren't there at least three empty expressions, possibly four, in for (; { }? Does ; by itself evaluate to true? In a while loop, the expression just isn't optional. Nobody ever suggested that C was a garden of pure ideology. It gets the job done. Gazpacho fucked around with this message at 04:51 on Jul 26, 2017 |
# ¿ Jul 25, 2017 21:40 |
|
It's defined in C89 and C++, undefined in C99 (type constraints). It's also pretty benign.
|
# ¿ Jul 26, 2017 05:59 |
|
LLVM = Language Lawyer Virtual Machine
|
# ¿ Jul 27, 2017 06:05 |
|
ratbert90 posted:Why do people not even bother cleaning up their code when they send code samples? In this specific case, the information you've provided indicates that the dev didn't bother placing the code under VC to work on it. Because if they had, there'd be no reason to maintain dead code and little risk in factoring the big file. Gazpacho fucked around with this message at 20:06 on Aug 14, 2017 |
# ¿ Aug 14, 2017 19:26 |
|
When I had to use centralized version control (CVS, PVCS, RCS, and Perforce) I ended up manually improvising those steps, or steps dual to them, anyway. I was at a CVS-based company when git was released, but not famous, and I remember telling co-workers "Wouldn't it be great if there were a VC system that didn't revolve around individual file histories?"
|
# ¿ Aug 15, 2017 00:41 |
|
Zaphod42 posted:As long as you use it properly everything in git is super simple and prevents you from loving anything up. You're just using git like CVS right now which isn't really right; you need to embrace the different approach. Its really better. PS: Yes, you do have to use the basic features that git hands you. Still, I find that git doesn't help you in any significant degree to use those features correctly, while Mercurial does, which is why given the choice of the two I'll throw rocks at git. Not sure what the issue with multiple branch heads is, unless someone is so foolish as to push them in spite of the warning not to. Gazpacho fucked around with this message at 02:10 on Aug 15, 2017 |
# ¿ Aug 15, 2017 01:54 |
|
git as such has no sales force. There are no VPs striking "deals" to use git, in contrast with e.g ClearCase. As a trainer you would come in after the decision has already been made, but in my experience git adoption faces more hurdles from management than encouragement, particuarly with regard to auditability and IP security.pre:VERSION CONTROL ARGUMENT Linus Torvalds pee-pee doo-doo git has a bad interface
|
# ¿ Aug 15, 2017 05:23 |
|
Those who defend git's intuitiveness but do not have Mercurial experience should be aware of a few things. - Mercurial has ordinal revisions. Meaning, numbers starting from zero. They're local to each clone, and exist concurrently with the hash revision IDs. Mercurial could work without them, but they exist for UI benefit, so that users can specify ranges of revisions with ranges of numbers, and not "ancestors of this but not this" which borders on writing a script. - Mercurial has rebasing, hard resetting, history rewriting, partial committing. All that stuff in git that's handy if you're prepared to learn it, but not strictly necessary. It comes in the distribution but it's TURNED OFF, because new users shouldn't be bothered with it. When you're ready for one of these features, you can enable it in your config file and go. - Mercurial has no command "forms" indicated by the post-option arguments, because expressing variations is what options are for. As a result, it can follow the longstanding Unix command line convention of using "--" to separate options from trailing arguments, not some trailing arguments from others. - As an example if you want to rebase revisions from A to B onto C, Mercurial rebase requires you to tag each of those with an option, rather than specifying two of them (which two?) in a particular order (which?) and the third with an option that modifies (or maybe doesn't) the semantics of the other two. Git's CLI has been created by and for people who breathe shell scripts, people who long ago forgot how silly it is to write something like [ "x$file" = x ]. And we know that it didn't have to be like that, because Mercurial didn't make the same mistakes. Gazpacho fucked around with this message at 23:40 on Aug 15, 2017 |
# ¿ Aug 15, 2017 23:35 |
|
ShoulderDaemon posted:Having features which are unavailable until a config file is modified is a user-hostile mistake. It results in people writing scripts which mysteriously fail for other users, or it results in some users accidentally breaking their config because they want to use one of these tools, and it means that you have to defensively write documentation and tooling as if all of your users are using their own uniquely personalized VCS instead of a single well-defined program. e: which is not to say that Mercurial lacks an ecosystem. It's just coded in Python, not bash, and at that level features are not turned off. Gazpacho fucked around with this message at 00:18 on Aug 16, 2017 |
# ¿ Aug 16, 2017 00:11 |
|
Suspicious Dish posted:Ordinal revisions are sometimes convenient but when UIs like TortoiseHg prefer showing them and hiding the hash, that's really annoying. A large part of source control is to be a shorthand for team communication and just the other day the ordinal revisions got us into trouble when someone said "go look at 35586" and we were looking at two different commits. Suspicious Dish posted:ok but they don't work. and neither does branching. Suspicious Dish posted:Also, everybody always talks about "Mercurial's UI" as the commands you put in it and forget entirely about the output of the tool, which ranges from "useless" to "excessively harmful". hg log is one of the most useless commands on the planet and gives you everything you don't need, in reverse order. it also only shows you the first line of a commit message, de-emphasizing long, important commit messages that explain things in favor of "fixed junk".
|
# ¿ Aug 16, 2017 20:24 |
|
Finding yourself suddenly on a dev team outnumbered by people who never opt to pursue a problem to its root cause has to be the ultimate workplace horror (and sign to move on).
|
# ¿ Aug 16, 2017 22:51 |
|
Rubellavator posted:One of the conventions our databases use for Boolean values is O/X. I have no idea who came up with that because I don't think I've seen it elsewhere. Another convention we use is X/null. We have no control over this. I'm just waiting for the day.
|
# ¿ Aug 18, 2017 19:42 |
|
New Yorp New Yorp posted:Alternate title: Developer doesn't use source control; learns why he should use source control. PS: There was time when a Microsoft program that unexpectedly deleted all of a user's files (MultiPlan) was cause for a product recall, followed by a shareholder lawsuit. This being the horrors thread, here are the details as I've heard them: MultiPlan used modal commands based on the initial letter of the command. As it happened, the letters of the word "TODAY" would trigger the command sequence "(T)? (O)? (D)elete (A)ll (Y)es" This led to a company-wide policy at Microsoft, as long as it was developing non-GUI apps, that commands would always be introduced by a dedicated escape key, not accepted by default. Gazpacho fucked around with this message at 19:31 on Aug 22, 2017 |
# ¿ Aug 22, 2017 19:22 |
|
Master_Odin posted:Well, for me, I personally hate functions that both mutate their parameters and returns a status flag on completion, especially since this is within a class where you could save data to a class variable. I'd also probably just put all three functions into a try/catch since the point was to quit on error (which shouldn't happen almost ever in production). Ranzear posted:If you want to nip this in the bud, I have a slightly less egregious pattern to suggest for "bail-out" chaining: Gazpacho fucked around with this message at 19:29 on Aug 23, 2017 |
# ¿ Aug 23, 2017 19:27 |
|
sucks because not lazy Bash code:
Gazpacho fucked around with this message at 00:27 on Aug 27, 2017 |
# ¿ Aug 27, 2017 00:23 |
|
Vanadium posted:No that's just monads, I really want a respectable-looking syntax for goto.
|
# ¿ Aug 27, 2017 01:01 |
|
PhantomOfTheCopier posted:In the end, they It's you. You are the problem.
|
# ¿ Sep 4, 2017 19:49 |
|
I'm not saying people can't use the term, or can't use workflows, it's just that I'm not too keen on the whole concept. It reminds me of the way people use the term "design patterns" to mean precisely those patterns handed down in one book by Gamma et al. Gazpacho fucked around with this message at 22:22 on Sep 4, 2017 |
# ¿ Sep 4, 2017 22:08 |
|
Coffee Mugshot posted:It isn't always, but...
|
# ¿ Sep 5, 2017 05:43 |
|
excuse me, excuse me, why does an address line have to be converted to a string?
|
# ¿ Sep 5, 2017 20:18 |
|
Plorkyeran posted:x = 1; x = 2; return x + x; is a perfectly sensible decomposition of that expression. code:
|
# ¿ Sep 6, 2017 22:56 |
|
KernelSlanders posted:There are no sensible decompositions of that expression. C trying to pretend there are in the first place is the horror here. Compiler should just puke. With the -Wall option GCC does detect it though. e: This may sound contradictory, but all I'm saying is that while compilers are free to try to detect multiple assignments, they can't always do it, and the problem of specifying cases in the standard that must be detected is itself not well-defined, and the code generator has to be prepared to deal with it anyway. Gazpacho fucked around with this message at 16:35 on Sep 7, 2017 |
# ¿ Sep 7, 2017 15:43 |
|
- The overlap clause is not relevant to the expression at hand, which involves only one object. - 6.5.16.1 ¶3 says that the effect of the assignment is sequenced after the value of x++ is calculated. - 6.5.2.4 ¶2 says that the side effect of x++ is also sequenced after the value of x++ is calculated. - Absent any constraint on how the two effects are sequenced relative to each other, 6.5 ¶2 leaves the behavior undefined. KernelSlanders posted:All of these replies only further prove my point. The problem is C. To use Xerophyte's example, the fact that you can use the ternary operator to set the assignment location of a RHS expression is insane. That an assignment is a valid LHS returning the assigned to value is also insane.* It's hard to imagine a modern language that would allow such nonsense. The core problem though is that C allows tons of syntax that is nonsensical but is not a compile error. Gazpacho fucked around with this message at 02:08 on Sep 8, 2017 |
# ¿ Sep 8, 2017 02:05 |
|
Seems I wasn't understood earlier about UD being not always being statically detectable in the presence of pointer expressions. Consider a little spin on the tweet code: main.c: C code:
C code:
As mentioned, the developers of GCC have helpfully included detection for some cases. But why write those cases into the standard, when they would be incomplete anyway? You can extend your objections beyond the UD rule to cover assignment expression values, and pointers in general, but pretty soon you're not talking about the C language, which is what the standard exists to specify. Gazpacho fucked around with this message at 02:31 on Sep 8, 2017 |
# ¿ Sep 8, 2017 02:28 |
|
Foxfire_ posted:Only real difference is that C doesn't specify an order to its + operator and Python does.
|
# ¿ Sep 8, 2017 07:32 |
|
VC clone going outrageously slow. I think, WTF is going on, did someone check a database into the repo? So I poke around in the VC web UI a bit... They did. Gazpacho fucked around with this message at 21:00 on Nov 7, 2017 |
# ¿ Nov 7, 2017 20:52 |
|
Database files running 10s of megabytes, checked into VC. Several of them checked in identically two or three times A few third party jars checked in. Some other files that would be compressible to <1%, if anyone had bothered to compress them. Overall 97% of the project file tree in binary files. Wish I knew what I did in this life or another that I end up working in places like this.
|
# ¿ Nov 7, 2017 23:09 |
|
Hammerite posted:why does any of that matter? I mean if they're the product of a build process then sure they shouldn't be checked in - Did you miss the part where multiple copies of the same huge files are checked in? (no duplicate merging with this VC) - We have an artifact repository where binaries and external dependencies of any sort can be uploaded and then fetched during builds. - Kindly get out of the industry. Gazpacho fucked around with this message at 17:07 on Nov 8, 2017 |
# ¿ Nov 8, 2017 17:02 |
|
Carbon dioxide posted:https://www.pcgamer.com/amp/all-this-time-aliens-colonial-marines-stupid-ai-may-have-been-caused-by-a-single-typo/?__twitter_impression=true A more general rule of thumb that isn't obvious to a lot of people: You are the first reviewer of your code. Don't dump the diff on someone else if you aren't willing to look at it yourself. Gazpacho fucked around with this message at 03:21 on Jul 16, 2018 |
# ¿ Jul 16, 2018 03:15 |
|
Checking the init file keys against a registry of valid keys would have helped, but that assumes that the developers are coding the init file reader and have time to overengineer it, rather than using one off the shelf and paying attention to the user-visible functionality of their game
Gazpacho fucked around with this message at 05:45 on Jul 16, 2018 |
# ¿ Jul 16, 2018 05:42 |
|
|
# ¿ Apr 29, 2024 02:36 |
|
Athas posted:There is nothing in CUDA that prevents you from re-numbering your parameters when you add more.
|
# ¿ Jul 20, 2018 22:03 |