Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Foxfire_
Nov 8, 2010

Yeah, there's a size limit where "disgruntled/incompetent employee burns everything down" is sufficiently unlikely to not warrant lots of effort on finely grained internal controls.

Spending a month of effort on that isn't a good idea if the company only has a couple years of operating runway

Adbot
ADBOT LOVES YOU

Foxfire_
Nov 8, 2010

Foxfire_
Nov 8, 2010

Kazinsal posted:

Which is especially ridiculous as the libc mktime function takes a struct tm which has the time/date components in the right friggin order inside it.
Unspecified order is the best order :hmmyes:

Foxfire_
Nov 8, 2010

take boat posted:

at companies I've been at, project manager/program manager is not a promotion over software engineer, and defer to engineering on technical decisions and afaict generally make less. of course they can still be a pita to work with but that's true of anyone
Transferring someone who has been ignoring everyone else to do their own bad thing to a management role isn't going to make them spontaneously realize "I am not very good at software and should defer to others"

Foxfire_
Nov 8, 2010

"Can we change our online-only game to not require an account?" is not a useful question for a UI designer to be asking or making mockups for, especially at the point where you are hashing out the details of a screen.

Some of the other stuff mentioned like moving the login screen to the end also just seem worse to me. The normal place for that is at the start of the interaction and you shouldn't surprise the user. It's like if you were making a windows desktop program and had a very convincing first principles argument that the close button should be in the upper left instead of upper right. You still shouldn't do it.

Presumably this assignment prompt comes with some amount of background detail about it? UI for a RTS, a MOBA, and a free-to-play game are not the same.

Foxfire_
Nov 8, 2010

Analogy:

C++ code:
bool Foo(string& name1)
{
  string& name2 = name1;
  string& name3 = name2;
  return (name1 == name2) && (name2 == name3);
}
All of those are names that refer to the same string. There is no one true variable name for the string. All the names you introduce are just different ways to refer to the same platonic string.
Similarly, in structural subtyping, types have no one true name. All the names you introduce are just quick ways to refer to the same type floating in conceptual land

Foxfire_
Nov 8, 2010

Absurd Alhazred posted:

Fine, it's not a replacement, it's just a weird addition.
I can't think of any other language that has mapping types without an analogous operator. C#, Java, Python, Rust, and JavaScript all have that. Not having it is weird.

Spaceship is strange, but it's entire purpose in life is to make it easy to define object ordering without having to explicitly write operator==, operator!=, operator<, operator<=, operator>, and operator>=. It is convenient for that, and you probably shouldn't use it otherwise.

Foxfire_
Nov 8, 2010

Xarn posted:

The output is different with C++17 and C++20.
Having a type with a comparison operator that produces one ordering, and an implicit conversion to another type that produces a different ordering is already a "You should feel bad about yourself" situation

Foxfire_
Nov 8, 2010

Both do that. Using them to design a circuit needs both a language for describing the circuit and a language for saying how to test it. It would probably have been better design to make a harder line between those parts, though they do need to interact a long (i.e. "in this test, we will connect circuit A to circuit B, then wiggle input pins on A and check that the right signals come out of B")

Foxfire_
Nov 8, 2010

I am happy with how my school taught.

Introductory "How to program computer?" was a school-wide required class and taught using Java (I think it is Python now).
C++ was introduced in "Intro to Data Structures" alongside the main data structure content. Everybody taking that was already familiar with imperative languages in general, and C++ is a decent tool for a class that's about stack/queue/linked list/heap/priority queue/binary tree/red-black tree/hash table/... and how to implement them/computational complexity of them. Then there was more C++ stuff in "Into to Algorithms" later.

Foxfire_
Nov 8, 2010

Xarn posted:

The beauty of adding new keywords and not wanting to break anyone ever, so you make the keywords contextual :v:
Contextual keyword is better than forbidding using the word 'final' as a variable name even if there was no history. It's not something that ever actually confuses someone

Foxfire_
Nov 8, 2010

Hammerite posted:

Thank god it's documented what each value means
I've written stuff like that when I've had a lint rule to issue warnings on undocumented enum values, and writing the stupid comment is less ugly and easier than suppressing it for those particular lines

Foxfire_
Nov 8, 2010

Powershell is lot better than unix shell script just because it doesn't have "everything is a string". It's wordy form is very wordy, but its tab completion works on flag names too, so it's not that bad to use interactively in practice.

Shell script being all strings is especially bad combined with POSIX filename horror. They are arbitrary byte sequences, not text. Nobody nonmalicious makes files with names that are things like zalgo text, nonnormalized/malformed UTF-8 sequences, or entirely various forms of whitespace, but those are all perfectly legal filenames in general

Foxfire_
Nov 8, 2010

FlapYoJacks posted:

In *nix land, if your scripting needs to go beyond basic string comparisons, you move to Python or Pearl.
Almost every non-trivial script is past that point.

"Has an array", "has command line arguments", "a string might be empty", and "want to test a commands exit code" are all past that and places where everything-is-a-string starts sucking

Foxfire_
Nov 8, 2010

Bruegels Fuckbooks posted:

because microsoft's manic pixy dream language is special and unique and doesn't invoke functions the way all the other languages do (with parenthesis like god intended).
I have bad news for you about invoking functions in typical unix shells

Foxfire_
Nov 8, 2010

It's like they didn't even consider that the checkbox might be FileNotFound at all

Foxfire_
Nov 8, 2010

FlapYoJacks posted:

There is never a time they shouldn't be. If you need to display the time the conversion happens when converting the timestamp to the user set time zone.
There are many times when I care a great deal about the elapsed time between two events and very little about what non-monotonic calendar time they happened at.

Foxfire_
Nov 8, 2010

I'm gonna guess the AWS rep meant: "It would make AWS a lot of money if you migrated to managed database services and look great on my annual review. Please do that."

Foxfire_
Nov 8, 2010

Doom Mathematic posted:

JavaScript code:
let MAX_DEPTH = 4

// three pages of code later

if (someCondition) {
  MAX_DEPTH = 3
}
Well, yeah. It's three pages of code later, not four

Foxfire_
Nov 8, 2010

I think there's a better argument that every one argument constructor should be marked explicit and not be participating in implicit conversions unless you're absolutely sure you want that

Foxfire_
Nov 8, 2010

ExcessBLarg! posted:

Both Java and Python use object references when assigning non-primitives.
Which are just pointers with better branding and syntax that removes a few footguns

Adbot
ADBOT LOVES YOU

Foxfire_
Nov 8, 2010

I don't think I hate this that much? it's icky, but it's also plain what it does and how it works.

(I do hate that resume() returns 0 on both the first iteration and after it's finished)

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply