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
JawnV6
Jul 4, 2004

So hot ...

Dessert Rose posted:

for example, "having to work with/for a couple of complete shitheels"

Exactly. The post didn't begin to take an "honest" look at how it would suck.

And I was giving them the benefit of the doubt earlier, but here's an article that goes into far more depth on just how lovely this is.

Adbot
ADBOT LOVES YOU

JawnV6
Jul 4, 2004

So hot ...

Dren posted:

Why are people upset about this job posting? They are asking for the moon. So what?

That job is probably worth interviewing for for people who have some/most of the skills and are interested in the work. If some of the stipulations seem unfair a candidate should negotiate to either get paid more, agree to take on less responsibility, or both. Interviews work both ways and if they don't want a candidate because they can't afford them then it's their loss. If a candidate is exceptional, which is what they are looking for, they should be prepared to negotiate because that candidate will likely expect to come in and set their own terms.

It's not your run of the mill business clueless about what it takes to pay a creative professional. They've released multiple video games, presumably with a paid coder or two on the team. It's a multimillion dollar business that puts on multiple loving trade shows a year, they're really not hurting for cash.

They're not going to 'bet' on some promising kid like you're hypothesizing. They're going to take a vetted professional who happens to be a starry eyed fan and exploit them for a few years. It's sickening because they'll find someone eager to do it.

Tha Chodesweller posted:

To be fair, if the job turns out to be complete poo poo, you know what questions to ask in your next interview to avoid such bullshit.
"Are you actually running a multimillion dollar business but pretending to be on a shoestring budget? Are you trying to pay me 20% under market for a quarter of my responsibilities because you're popular and I'm a fan?"

Don't seem to generalize too well. I dunno, I haven't searched a lot of jobs. Maybe these questions apply more broadly than I'd expect.

JawnV6
Jul 4, 2004

So hot ...

Pilsner posted:

It's sickening that someone voluntarily accepts a job? I thought the typical developer wasn't a nut with such attitude. What do you propose; making federal standards that ban busy jobs and set a national enforced equal salary for all?

Fact is that if the job position gets filled, the job responsibilities, hours and pay is perfect; otherwise it would remain vacant.

If I'm getting arbitrary wishes, I'd start with "total shitheads don't have a multimillion dollar empire" since that's a tad easier to obtain. It's fine if you're approaching this as if you've never heard of these particular shitheads, but don't expect the rest of us to make believe with you.

And I'm curious how your 'perfect' system ever hires certain roles. Fucks sake that's an idealistic mental model of employment. Nobody ever took a job they didn't want just to put food on the table? Or are you stretching 'perfect' to cover 'grinding poverty coercing people into accepting degrading low wage jobs'

JawnV6 fucked around with this message at 22:09 on Nov 29, 2013

JawnV6
Jul 4, 2004

So hot ...

Suspicious Dish posted:

Uh, have you read any of his other posting?
Yeah it seemed quite in line with his style?

Blinkz0rz posted:

You're actually trying to argue that "he" is gender neutral. This is a thing you're doing. God loving drat that's some dumb poo poo. Seriously. gently caress, man. Goddamn.
I think you're taking a statement of fact out of context as an endorsement and wasting energy going after the wrong target. In this type of discussion you're going for the peanut gallery and this seems like effort that could be better spent.

JawnV6
Jul 4, 2004

So hot ...

Freakus posted:

(Hint: check their openssl dependency).

What does this mean?

JawnV6
Jul 4, 2004

So hot ...
It's the stupidest running "joke"

JawnV6
Jul 4, 2004

So hot ...
Maybe you have to mimic their internal style. So be accusatory, pretend there's no possible way any action of yours could be at fault, and include proof you're throwing a teammate under a bus.

JawnV6
Jul 4, 2004

So hot ...

Tha Chodesweller posted:

I don't think I could write a C++ program without being horribly frustrated anymore.

Pretty common condition.

JawnV6
Jul 4, 2004

So hot ...
Even a crap name shouldn't be a major issue with proper tooling. Oh no, i've mislabeled a variable. This will take multiple keystrokes to unwind.

JawnV6
Jul 4, 2004

So hot ...
I dunno, seems about right for a naive 'wc -l *.cs'? Assume you're running the HTTP server under C# too. The kind of LOC count where you're grabbing all the whitespace too, not counting semicolons. As disingenuous as you could possibly be. Not that I'd know anything about that.

JawnV6
Jul 4, 2004

So hot ...

Ender.uNF posted:

Java does suck. I'm sorry if that's what you learned in school or are forced to use at your soul-sucking corporate job. That doesn't change the fact that it sucks.

How many years of experience are you putting behind this opinion? How much experience with better languages that inform you of the tradeoffs and options available to a language designer?

Pollyanna's basing it on a couple weeks, a few blog posts, and the 3 lines of boilerplate for Hello World. Don't devalue your opinion by viewing this as a team sport and rallying behind the other person saying the same thing.

Nobody's defending java. Nobody's questioning that it sucks. We're questioning Pollyanna's strong stances on what we all know to be unsound footing.

JawnV6
Jul 4, 2004

So hot ...

Dren posted:

Poor Pollyanna just wants to unleash poorly founded vitriol about Java is that so wrong?

It was fine when I was a young whippersnapper, but now it's not and nobody else can have that fun. :colbert:

JawnV6
Jul 4, 2004

So hot ...

Hughlander posted:

So you are saying that bools should coerce to floats and we have functions that compare them with an epsilon like nearlyTrue and nearlyFalse?

It's a trick question since you're likely to only get 10bit ADC across 5V so anything under 5mV wouldn't even show up on that.

JawnV6
Jul 4, 2004

So hot ...
That sure was a funny joke you've drilled through the floor.

JawnV6
Jul 4, 2004

So hot ...
i think we can all agree that programmers would cherish the day computers stopped having to interact with humans or the extant universe

JawnV6
Jul 4, 2004

So hot ...

Steve French posted:

instead of throwing an error like other languages do,

I'm a big fan of the computer making GBS threads itself and calling for a human, but for some reason the web types think you should just keep chuggin'??

JawnV6
Jul 4, 2004

So hot ...

SurgicalOntologist posted:

(The renumbering thing is definitely important. My lab does human subjects research, if we were doing a development study with, say, a child interacting with an adult, we don't want to have to say "oh, looks like you're controlling the wrong avatars, can you switch sensors?" Instead we just give the lower-numbered sensor, of whatever two we happened to grab, to the adult)

The bit I'm not following is how you can simultaneously know you're at the start of a session and NOT know that you might need to change sensor mappings. Seems like you should have a bit at the beginning that maps out the first sensors seen and doesn't need to be handled every time you're checking the mapping?

JawnV6
Jul 4, 2004

So hot ...
Those are some precious bits they're saving! I can't imagine the debug that roots that out. Auto-dialer stuck emitting a bunch of 9's?

JawnV6
Jul 4, 2004

So hot ...

NFX posted:

But you can use the decimal places for country codes!

And we'll store the version ID in the mantissa!!

JawnV6
Jul 4, 2004

So hot ...
Compilers can propagate the undefined operation's lack of constraint to an earlier point in the execution.

Is that the glibbest?

JawnV6
Jul 4, 2004

So hot ...
Just when you thought you were ISO compliant...

JawnV6
Jul 4, 2004

So hot ...
Next week you'll be writing a simple dedicated function instead of some generic monstrosity that's handling a range of inputs that will never, ever, ever, be generated in the real world.

JawnV6
Jul 4, 2004

So hot ...

2banks1swap.avi posted:

Literally a monster.

I wasn't referring to this exact function. I'm saying that you've identified an engineering tradeoff. This week you've seen one extreme in one code base. Next week you might see the other extreme in a different code base. I'm sure you'll talk about it in the same smug as poo poo tone.

JawnV6
Jul 4, 2004

So hot ...

Munkeymon posted:

It was their fault for assuming a transaction ID generated from a set of inputs identified the only possible transaction that could have those inputs, which was an invalid assumption as of some time in 2011.

For that theoretical to be the case, they would have had to send out $450 million through repeated contact with their customer service. I'm willing to allow for a great deal of incompetence around bitcoin, but their customer service reps gleefully sending out their entire cold wallet is a little beyond the pale. I'm cribbing from this article.

JawnV6
Jul 4, 2004

So hot ...
If you want a 10 bit shift just ask for a 10 bit shift.

JawnV6
Jul 4, 2004

So hot ...
Wait, you have a hardware multiplier? That can operate on registers??

JawnV6
Jul 4, 2004

So hot ...

PrBacterio posted:

Is there even an architecture out there in common use anymore, no matter how small and embedded you go, that doesn't? Even the Atmel stuff has a multiply instruction, doesn't it?

Atmel what? Atmel sells everything from beefy 120MHz Cortex M4's with 65k gates including a full FPU down to 8-bit AVR's in the ~10k gate range. Down towards the lower end the hardware multipliers get scarcer and with qualifications like 8-bit only or memory-mapped. For a lot of 'sensor glue' type applications you don't really need to multiply anyway.

TI's MSP430 is another line where hardware multipliers are available, but not common.

JawnV6
Jul 4, 2004

So hot ...

Smugdog Millionaire posted:

What's this use case where you can tolerate occasionally incorrect multiplication as long as you know exactly how long it will take?

Upstream of a Pentium

JawnV6
Jul 4, 2004

So hot ...

Suspicious Dish posted:

Of all the things I expect Crockford to "get right", a decimal floating point format is not one of them.

Can't remember if I said this before, but it looks like being able to access al/cl registers was the driving motivation here.

JawnV6
Jul 4, 2004

So hot ...
The challenge to the demon programmers was to convince their targets that the task set them had a definite conclusion that could be reached in a finite time.

JawnV6
Jul 4, 2004

So hot ...

Jewel posted:

A mentor, however, doesn't seem to be a good option, as it'd probably leave the mentor thinking they're "better" than the other person, and the other person being frustrated that they're "better" than the mentor, with the likely scenario of the mentor's singular mindset polluting the protege's code ("No, don't do it that way, here's how I'd do it").

If you look around and there's not anyone to learn from: leave.

You should be actively seeking out mentors in your company and industry. I have a longer post more suited to the oldie thread about the types of mentors you can't do too well without, but I can't really tell if you're responding to the specific instance or positing that you can't imagine someone unequivocally better existing at all.

JawnV6
Jul 4, 2004

So hot ...

Sagacity posted:

A better option would be what Ithaqua mentioned (pass in a Func) but you could also, you know, have methods that accept a DateTime as input instead of having to inject some kind of nonsensical DateTimeProvider.

And if it checks .Now() twice to monitor some time-consuming method, we'll just modify the function to take two DateTimes! Now our function under test is heavily modified and the values it pulls are completely fed by the environment. So we're testing fake code in a fake environment judged by fake input. Wow, why do people frown on unit testing again!?!?

JawnV6
Jul 4, 2004

So hot ...

Subjunctive posted:

No, that's ridiculous.
Ahem. ur ridiceuolus.

Subjunctive posted:

My issue with DI is the amount of boilerplate overhead in the source and at runtime. I've worked on projects that had to resort to preprocessing the DI code to be direct allocations in order to improve startup time, but that doesn't help the (usually pretty gross) source impact.
This is the stupidest reason to be for/against anything. Rather than have gosh, what is it, 5 freakin lines of code, you'd rather completely change the interface to the function under test. Surely duplicating every goddamn function we're using, somehow correlating our mucked-up versions with our actual production code, and having someone maintain this standard level of muckedupedness... naw, there's no way that takes up more than 5 lines of boilerplate.

JawnV6
Jul 4, 2004

So hot ...

Sagacity posted:

I think that genuinely is better than creating an IDateProvider abstraction to pretty much do the same thing. This doesn't mean I think DI is a useless concept, but there are lots of codebases where any time someone needed a fallback there's this whole interface-class-mock layer which makes the codebase (and the tests themselves) harder to maintain.

No. It's not "pretty much do the same thing." You're advocating forking the production code base, hiding all these changes from your tools, then pretending that testing this not-production code has any meaning. Who's in charge of making sure the fake code base and the production code base are in sync?

DI is forcing you to inform the tools of the changes you're making. And have the tools manage those changed dependencies. Not this one-off ad hoc bullshit. You're like Spolsky rejecting tooled type systems in favor of "programmer gut checks" and it's just as abhorrent.

JawnV6
Jul 4, 2004

So hot ...

Sagacity posted:

All of this can be fixed by only working with sane, smart people that know when to stop adding dependencies and start refactoring. Rebuttal: this thread.

Sane, smart people who don't test their production code? Sane, smart people who completely rewrite the code base to be easier to test? That seems to be our working definition here.

JawnV6
Jul 4, 2004

So hot ...
Good. Cram a bunch of ugly global calls into one file and leave the rest of the code base untouched. Don't fork every function or try to cram every bit of state it might ask for into the function signature.

JawnV6
Jul 4, 2004

So hot ...

Athas posted:

Hello, I write Haskell at my job, and this is pretty much necessary. As for a horror...
Right, comparing a functional language's manipulation of state is totally germane to a conversation about DI in managed languages.

Sagacity posted:

Is the "Fine whatEVS!" approach how you handle every discussion?
I'm talking about a single higher-level principle about how to test code. Testing should be done on "actual code." I didn't think this would be nearly so contentious a proposition, but here we are. For my embedded work ripping away all the micro-specific stuff and stuffing it into a HAL is most of that effort, so that the relevant code is testable in it's abstract state without building a simulator for every flavor of micro that we see. For C# it's using DI to change where a function calls point to test the functionality in a mock environment. I want to check that my code can handle the DateTime cases around leap years and instead of moving some blocks around behind the scenes and leaving production code untouched you're still advocating mucking up the function parameters to pass that information in as if it's tenable for all cases. You've tried to hide it behind gussied up language lauding the superhuman code crafters we mortals couldn't bear to view and how they'd obviously avoid every specific case without having functions having to pull every instance of state they might try to sample or forking the code base and testing that.

You're advocating changing parameters as a way to avoid DI. I tried mentioning a case where a dependency is used twice, forcing this method to add another parameter to the function and highlight how ridiculous it is to try to avoid dependencies by smuggling all this information around in the function signature, you :spergin: out on the details. I tried to retreat to the clear principle of "run tests against Actual Production Code" and you again defend your lovely parameter idea. Changing parameters either uglies up all the code everywhere or you're forking it and testing fake code against a fake environment. All of the "ugly boilerplate" you're ranting against as if it's the root of all evil is in one file apart from the production code base.

So yeah, after 3~4 passes against your lovely disingenuous arguments that refuse to step back and see the forest for the trees, I guess I'm a little short and pithy. I could take another swing, but I'm pretty sure you'll just retreat to complimenting all the amazing humans you work with and avoiding the relevant bits of the discussion.

JawnV6
Jul 4, 2004

So hot ...

Plorkyeran posted:

You're literally advocating using global variables to avoid having to pass arguments to a function.

And if this EGREGIOUS SIN lets us test production code without modification? Can you put those two values up against each other and make a conscious decision or is one so utterly abhorrent that you can't give it any space? I'd welcome a nuanced argument. Saying "gloooobal" with the boogeyman voice doesn't cut it.

I do embedded work. Globals are called "RAM."

JawnV6
Jul 4, 2004

So hot ...

Plorkyeran posted:

Well yes, we can have a discussion about when using global variables is and isn't worth it if you're done trying to claim that you aren't using global variables at all.
Er, care to point out where I did that?

Adbot
ADBOT LOVES YOU

JawnV6
Jul 4, 2004

So hot ...

Sagacity posted:

If you would just read what I'm writing without getting so worked up. Where you are saying I am mucking up function arguments, in my view you are mucking up constructor arguments.
How could I not see all that nuance in this fine post:

Sagacity posted:

Is the "Fine whatEVS!" approach how you handle every discussion?
Truly I've just misrepresented you.

Sagacity posted:

In your implementation you need to pass in a DateTimeProvider, which then has to become part of the state of your class. I think that obscures what your code is doing, because it is unclear where (and when) you are using this DateTimeProvider.
I haven't listed an implementation. Jabor has. Jabor's done a lot of the specifics and appears to be having the other half of the conversation you want to have. Engagement with that poster will likely be more productive. Jabor addressed exactly this argument here, for your reference.

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