Forgot your password?

Comment: Re: Your Results Will Vary (Score 1) 241

by acroyear (#47491893) Attached to: Math, Programming, and Language Learning

When a user interface is in, say, HTML5/DOM, one needs to know a lot about controlling how often the browser reloads the page or a portion of it, how much CSS is "too much" before the page rendering is slower than tolerable, how to control a loop to minimize server calls and DOM redraws, and much more. Similarly, a lot of UI is search optimization, deciding how much power of the search goes into the server/db and how much in the UI, then how to find and highlight the search results - all of these are complex processes that can be painfully slow or dramatically fast, but only if you know what bottlenecks to expect.

Anybody can draw a UI on a piece of paper and bullcrap the thing up in jquery-ui or xcode. Making a UI that is functional amidst constantly changing requirements involving ever increasing quantities of data is much harder. Writing components or maintaining frameworks and understanding the decisions the framework designers made (so that you don't violate them, often with painful results in stability or performance, when using them or adding to them) is a huge part of REAL UI work. I have yet to meet a toolkit I didn't need to fix or amend to, in 20 years of UI work. I have yet, in any of those libraries/frameworks, to NOT have Big-O decisions to make when doing so in pieces involving components meant to handle large amounts of data like grids and graphs.

No, it doesn't happen every day. But it happens at least every project.

If you don't speak basic optimization rules/practices like O(N) vs O(log(N)) (and yes, that HAS come up more than once in my work in the last 5 years, nevermind the last 20 when I was doing more J2EE or MoM/Agents work), then I can't trust that you have any discipline to anything else. There's no point in even talking anymore if you can't speak what I consider to be a basic common CS vocabulary.

Yes, much of this is trust: the piece of paper that is a degree is something of a document of trust that you have had certain disciplines and experiences, things that I can't actually get directly from your work prior since I'm not actually allowed to ask to see your code in an interview or before-hand - that usually belongs to your former company.

We don't ask for higher maths because we expect you to use them; your 'experience' during your degree work is almost meaningless in-and-of itself. We ask for higher maths, and for the other aspects of a degree, because the degree is evidence of experience, motivation, and most importantly discipline.

And for many of the "I don't need maths blah blah blah a trade school is fine blah blah blah" posts on this thread (and this same thread every time this topic comes up, which is probably twice a year for the last 18 years I've been on /.), discipline is something I actually see sorely lacking in the comments.

Comment: Re: Your Results Will Vary (Score 5, Interesting) 241

by acroyear (#47486761) Attached to: Math, Programming, and Language Learning

In the end, I've always concluded the same, every year this topic comes up (it is just about annual here). I don't want you to know calculus because you'll actually use calculus on the job (though I have an O(N) vs O(log(N)) question on my interviews that you'd better be able to answer).

I want you to know/pass calculus because by the time you've worked that hard at that level of proofs, you've mastered *variable control*. In each level of math, you don't get out of the class having mastered it. You get out of the class having mastered the year that came before it. When you can pass calculus, you have *mastered* functions and analytic geometry (I hire for UI work). Passing those two the year before showed you mastered variable manipulation and proofs in Algebra 2 before it.

So no, you don't *need* calculus on the job, but you need everything below it, and the best proof that you've *mastered* them (not just taken them, but mastered them) is that you've passed a calculus class.

Comment: given we're nerds who know this stuff... (Score 1) 309

by acroyear (#47204097) Attached to: Was Turing Test Legitimately Beaten, Or Just Cleverly Tricked?

...why didn't /. just wait for the skeptical posts calling the original news articles bullshit in the first place?

Seriously, weeding out the garbage posts, 3/4ths of the comments were calling bullshit when they saw it, and 1/4th were making pointless references to Skynet and HAL.

Comment: Garbage (Score 3, Insightful) 432

by acroyear (#47191355) Attached to: Turing Test Passed

All it showed, like any other Turing Test, is the gullibility of the subjects.

1) "Ukrainian" speaking English
2) 13 years old

Right there you have set up an expectation in the audience of subjects for a limited vocabulary, no need for grammatical perfection, little need for slang, and a lack of education. Now add in "star wars and matrix" and you have reduced the topics of discussion even more to the ones the programmers know best.

This thing would never have answered a question of 'Why', it also was under no pressure to being able to create a pun, both of which are easy things any older and educated human could do.

Garbage test, garbage results.

As usual.

Comment: Martin Fowler's Refactoring (Score 1) 352

by acroyear (#47004687) Attached to: Ask Slashdot: What Should Every Programmer Read?

No, in spite of what some jackasses say, it isn't just rewriting for its own sake. It is improving the structure in standardized ways so that you can add your new features much more safely. In interviews, I prefer people can name some standard refactorings before I ask them the typical questions about design patterns.

Comment: Re:Oh please... (Score 1) 226

by acroyear (#46768605) Attached to: How 'DevOps' Is Killing the Developer

Please fuck off. No, really. Just fuck off.

I was typing in a fucking hurry. Its a fucking comments page of a fucking blog (one i have been fucking typing on since 19-fucking-98), not the fucking New York Times. if you want fucking capitalization to be fucking correct you can fucking type it up your fucking self because I don't give a fuck.

I presume I have expressed my attitude adequately enough? And capitalized New York Times correctly as well?

Comment: Re:It's just like when agile went hip... (Score 1) 226

by acroyear (#46766001) Attached to: How 'DevOps' Is Killing the Developer

Well I would counter that a DevOps team is needed even for customer-deployed or self-run cloud apps (where you're running the cloud in a data center instead of using services like NetApp or AWS). The jobs they do are useful there, in fact more so as staging DBs and environments for QA is harder when you're running all aspects of the cloud layer (though with customer-managed old-school desktop applications, QA is more responsible for their deployments, since testing installation instructions becomes part of their job).

But otherwise, yeah, treating DevOps like a panacea that will solve everything (thus necessitating hiring a DevOps manager who is 'smarter' than your lead architect, at possibly outrageous wages or options) is asking for failure.

Comment: Oh please... (Score 3, Insightful) 226

by acroyear (#46763471) Attached to: How 'DevOps' Is Killing the Developer

You don't force your brightest people to take on additional roles - that is the whole point of a devops team in the first place. Making developers argue about deployments and sending builds to QA and managing your GIT server and development and QA databases and managing your bug tracker is exactly what your developers should *not* be doing, especially if those scripts necessarily have to be in a different language than your application. Sure, your lead developers and architects work with the devops team to support them so they can in turn support you, but that's as far as the relationship goes.

The way we used to do it, where every senior architect is also responsible for all of those other functions (and has to take the time from his team members below him to help build all that out), is exactly how you stop architecting your software: your leads spend so much time trying to automate the drudgery they aren't improving the app.

They aren't improving the app because all of their brainpower is no longer focused on the *customers'* problems, but rather their own and their teams. That isn't a good use of their time. Hiring smart people who need to understand the application and its environment, but are good at scripting these other languages of automation, frees up your team leads to doing what they did before and do best: focus on the application and getting the team to produce the code that serves the customers' needs.

Comment: Re:They should use Firefox while *mocking* Eich (Score 1) 1482

by acroyear (#46633281) Attached to: OKCupid Warns Off Mozilla Firefox Users Over Gay Rights

So when the executive (or the DoJ) mounts a 'weak' defense, thus ensuring that the courts will rule against the law?

There's plenty of ways around absolute declarations like you're suggesting.

I'm not saying you're wrong in itself, just that there are far too many angles and ways around any sort of absolute position that the executive *must* do something.

In the case of California (or more recently, Virginia), when there is a major shift in the controlling party, it gets even more complicated. The referendum in VA was passed in 2006 under Republican leadership. The defense of the law became (in 2013) the responsibility of the new Democratic party Governor and the Democratic party Attorney General. What then is the responsibility of those officers to defend a law they never supported in the first place, particularly when they were elected on a platform encouraging equality?

The responsibility to defend (or not) a law may be the role of the executive, but at the same time, the executive, as a representative of the people, must act per the fact that they were, in fact, elected by the majority of the people. As such, their decisions not to enforce, or more accurately not to aggressively defend, a law they believe to be Unconstitutional is a reflection of the faith in their office given to them by the majority that elected them.

If they do a poor job of it, they can just as easily be kicked out 4-6 years later in the next election.

That said, it would certainly have been easier on everybody if such blatantly Unconstitutional referendums weren't so easily passed by the states in the first place. A constitution, even a state-level one, shouldn't be so easily amended by a simple majority of whomever decides to vote one particular day. The U.S. Constitution is a pain to amend *because* it is meant to be immune to fly-by-night sentiments (prohibition being the one oddball exception to its history).

Comment: Re:They should use Firefox while *mocking* Eich (Score 1) 1482

by acroyear (#46632889) Attached to: OKCupid Warns Off Mozilla Firefox Users Over Gay Rights

but if it sincerely is unconstitutional, what worth is a Governor's (or President's) oath to "Defend the Constitution"?

Refuse it and you are breaking a responsibility of your office. Defend it and you are breaking your oath of office itself?

The legislature, and certainly not "the people" (in the case of a referendum) shouldn't have so much power to put an executive in such a bind.

Comment: My personal "law" (Score 3, Insightful) 373

by acroyear (#46582623) Attached to: Ask Slashdot: What Do You Consider Elegant Code?

Code written to do one thing is inherently elegant.

No code ends up ever having to do one thing.

The job of requirements gathering is to determine what are the constants and what are the variables. In the case of, say, GPS, the constants should be the protocol of the satellites, the max and min # of sat's that can be found at any given time, the grid representation of the earth, and the system clocks.

Nice and easy, right?

Now change all of those to a variable: you have satellites speaking to you in different protocols based on their age. You end up with only one sat connection so no triangulation due to mountain or building blockage. The grid representation of the earth is inherently distorted at the north and south extremes (and whenever you're above 5,000 feet). Oh, and the you forgot to time-distort your own clock for the rotation of the earth, so a tiny offset is being caused by General Relativity.

Suddenly code that was nice and simple is now full of ifs and switch loops and complex adjustments and bits of guess work and comments that say "oh, well, we'll just have to ignore that last part...but we'll only be off by 30 feet or so".

The first bug in software happens when something that was presumed in the requirements to be a constant has to be changed into a variable. Every bug that follows is a result of trying to fix that first bug.

Because of that requirements problem, no working production code can ever be elegant.

Nobody's gonna believe that computers are intelligent until they start coming in late and lying about it.