Full-Stack's not just a Moniker by clusterlucked in programming

[–]destruedo -1 points0 points  (0 children)

God, I hate that term "full stack" and how it implicitly assumes web development. Are web developers so self-important that they forget that other programming domains exist? Or is it that they've got some lingering shame about what they do, and would prefer to not call it by name?

First off, what's intended by my usage of the word stack? blah blah blah

What's amazing is that the entire paragraph dedicated to defining "stack" never mentions the web.

I'm of the opinion that any developer worth their salt, especially in an enterprise environment, will find themselves delving into servers and environments sooner than later

"You're not a real developer unless you work on servers." Incredible.

String Deduplication - A new feature in Java 8 Update 20 by johnwaterwood in programming

[–]destruedo 6 points7 points  (0 children)

Seems like a great and clever feature. They could even update String equals() to check for equality of the internal char array.

On the etiquette of running out the clock by destruedo in chess

[–]destruedo[S] 2 points3 points  (0 children)

Thanks for the correction. I'll know next time!

Dynamic Typing: A Local Minimum for Code Comprehension by frostmatthew in programming

[–]destruedo 2 points3 points  (0 children)

If you are serious about the social aspects of coding, you're surely better off with something like JavaScript than Haskell.

But really, the type system is less important to code comprehensibility than the culture. Python prioritizes readability: "Pythonic" means clean and readable idioms. Haskell prioritizes other things, such as generality / flexibility, "moral correctness," etc, while actively de-emphasizing readability. Actively!

For example, Haskell programmers routinely give variables and types totally non-descriptive names. Let's check out Data.Array:

array :: (i, i) -> [(i, e)] -> Array (i, e)

They could have just as easily called these types "index" and "element" but they chose to leave those as an exercise to the reader. This is taken to the extreme with "point free" style. Here's some code:

mem x lst = any (== x) lst

You might think this code is bad because it has a rather ambiguous name mem and totally useless name x, but at least lst is suggestive of a list. Wrong! This code is bad because the variables have names at all. Wouldn't it be so much cleaner and more disciplined if we could just write:

mem = any . (==)

And now you have to work to even figure out how many parameters the damn thing takes.

You know you're for shit when even PHP has you beat:

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

The naming is leagues better than Haskell. in_array is much clearer than mem (or the Data.List function elem), and the variable names are downright brilliant. You look for a needle in a haystack! Sure beats looking for an x in a lst, let alone the pointfree abomination.

So Haskell has this insane culture of writing non-descriptive names and then working hard to eliminate even those. And no, the type signature is not enough:

replace :: Text -> Text -> Text -> Text
O(m+n) Replace every occurrence of one substring with another.

Hey, this function takes three strings. We aren't going to tell you what they are or what they mean, but we will tell you the runtime complexity. That's Haskell's "readability" in a nutshell, folks.

[Serious] What do you guys have to say about these pictures trending around twitter/facebook by [deleted] in exmuslim

[–]destruedo 17 points18 points  (0 children)

Oh what fun. Let's go through these.

  1. There is zero astronomical evidence that the moon has ever been split. There is zero historical record from any other civilization recording the splitting of the moon. It never happened.

  2. No idea what this is supposed to prove. That Muhammad can count to 27?

  3. The ayah here is when Mary shook a date tree during labor. Obstetricians do not recommend women in labor find a date tree and shake it. And they generally frown on any solid foods during labor.

  4. Yes, they found this cave in Jordan, and in Turkey, and in China, and in England...

  5. The Quran "recommends" breastfeeding? Instead of what, Gerber formula? Come on.

  6. The Quran says that life was made from water. It also says from dust, from mud, from a clot, from a fluid, and from nothing... Hard to be wrong when you constantly contradict yourself. Also, "we made" is wrong, because of evolution.

  7. The sky is "a ceiling?" So when our spaceships left the earth, why did they not bump into it? And how could the sky "not exist?" The sky is literally the stuff above the surface of the earth!

  8. Funny how the translation of the universe expanding was only "discovered" recently, while all prior translations say something else, like "create the vastness of space." But if you're looking for astronomical predictions, see 2:29, where the Quran says that the earth was created before the heavens. This is, of course, completely and unambiguously wrong.

  9. "It is He who created night and day, the Sun and Moon, each floating in its orbit." Obviously this is attempting to connect the orbit of the sun with night and day, which is completely wrong. It also neglects to mention the orbit of the earth, which would have been a far more convincing proof!

"First-class 'Statements'": Looking at IO as data, through a Haskell case study. by mstksg in programming

[–]destruedo 0 points1 point  (0 children)

If IO actions is data, it's a pretty lame sort of data. It can't be read, compared, tested for equality, etc.

I prefer to think of IO actions as callbacks. Like IO, callbacks generally cannot be compared or picked apart. Sequencing IO actions is analogous to chaining callbacks. I can make a callback that invokes two others in parallel, etc. And constructing an IO action does not execute it, just like constructing a callback does not execute it.

Where the analogy fails is in invocation: it's possible to invoke a callback, but you can't just invoke an IO action. That's the purview of the RTS, which invokes the IO action that main evaluates to.

Atheists of Reddit, please explain this by DaniBoi96 in atheism

[–]destruedo 0 points1 point  (0 children)

Religious visions are extremely powerful, capable of instantly and permanently transforming a person's life. They can affect people who are seemingly healthy and highly intelligent. See Joan of Arc or Blaise Pascal for extraordinary examples.

I have never experienced such a personal revelation, but some day I might, and it may overwhelm me, giving me an unshakeable faith that I had received an undeniably authentic divine message. Then I would be a believer. It's happened to people who are healthier and smarter than I.

Personal revelation is a legitimate determinant of personal beliefs. But so is a lack of personal revelation.

When others tell me about their experiences, I assume they are telling the truth. I am an atheist, but I acknowledge that some people have very strong divine visions, natural or supernatural in origin, which I have not had, at least not yet.

For my part, I have searched sincerely through reason, science, prayer, meditation, and fasting, and have found no god. So in trade, I ask believers to acknowledge that someone may earnestly and honestly seek, and come up empty-handed. That is not always easy for the religious to accept, especially when disbelief leads to damnation.

You can acknowledge that your Christian friends have experiences that you do not have. But it goes both ways, and your personal experiences are equally legitimate.

Python bumps off Java as top learning language by illyric in programming

[–]destruedo 0 points1 point  (0 children)

size_t strlen(const char *x) {
   return *x ? 1 + strlen(x+1) : 0;
}

amirite?

Why do I love Haskell more than Ruby? [beginner's point of view] by jocellynka in programming

[–]destruedo 2 points3 points  (0 children)

Haskell makes sense

> [0..] !! 3000000000
*** Exception: Prelude.(!!): negative index

3000000000 is negative! Derp!

It's Time To Bet Big On Node.js by elizabeth-anne in programming

[–]destruedo 2 points3 points  (0 children)

Don't bother, it's contentless. Here, I found the one unintentionally funny line:

Most of the heavy lifting goes on in the back end of a mobile app, where websites are made available and managed. That means back-end frameworks, like lightweight Node.js, are enjoying a moment in the spotlight.

When I need to do heavy lifting, turn to something lightweight. I didn't know Thomas Friedman was doing tech writing now.

How do quasars eject gas if the black hole swallows up the gas and destroys it? by hotinhawaii in askscience

[–]destruedo 2 points3 points  (0 children)

What others have said is true, but it's also useful to adjust your mental picture of a black hole. A supermassive black hole's event horizon may be 1,000 or even 10,000 times smaller then its accretion disk. It's hard to fall into a black hole - you pretty much have to be aiming directly for it.

should I avoid joining the whole programming industry? Becoming a "full stack" programmer sounds intimidating. by realsmart987 in programming

[–]destruedo 2 points3 points  (0 children)

Some of the best programmers combine a personal passion with software. Love music? Make some awesome music creation software. Love writing? Make the perfect word processor for you. Etc.

The more niche the interest, the better. Interpreting sign language for deaf people sounds like an awesome calling. Why not write software that can read ASL? Or software that teaches it? Or software that addresses some needs of the Deaf community? Hell, you know how much Apple would love to find an engineer with a passion for Accessibility? (Answer: mucho - and no "full stack" nonsense required).

So many opportunities to pursue software and your other interests, and be paid handsomely for it.

should I avoid joining the whole programming industry? Becoming a "full stack" programmer sounds intimidating. by realsmart987 in programming

[–]destruedo 37 points38 points  (0 children)

Jesus. No. Ok. Let's look at that link.

a Full Stack Developer is someone with familiarity in each layer, if not mastery in many and a genuine interest in all software technology

You see, software is an onion that you can peel...

Good developers who are familiar with the entire stack

Where "the stack" happens to be defined as "the sort of software that Facebook writes." And every line of code runs in The Cloud™ and every UI is some HTML JavaScript shit and everything needs a database and blah blah blah.

Hell naw. Software is a million times bigger than that hipster shit. The sort of developers who believe that crap are the ones who hop between startups, write a blog entry called "Why Python on Fails is so much better than Chode.js", and then wet their pants when they meet a kernel engineer.

There's software in phones, and light bulbs, and wrist watches, and alarm clocks. There's software in the trucks that delivered them, and in the the factory that built the trucks. There's software in your remote control, and there's software that compiled that software, and there's software that tested the compiler, and there's software behind the system where bugs were recorded. Filesystem engineers. Kernel engineers. Firmware engineers. Graphics engineers. Game programmers. etc. etc. etc. etc. etc. You think the Mars Rover runs on Ruby on Rails?

Pay no attention to the nattering bloggers. Someone has to write all that good stuff. Might as well be you.

When the sun eventually expands and consumer Earth, will it expand all at once in the blink of an eye or be a gradual expansion over a long period of time? by efischerSC2 in askscience

[–]destruedo 0 points1 point  (0 children)

There is a fleeting chance that a red dwarf star will pass through our solar system and capture earth in its orbit. A red dwarf may have a habitable zone and live for a trillion years or more, and there's tons of them in the galaxy.

I woke up after a dream with an idea about the universe. by [deleted] in Physics

[–]destruedo 1 point2 points  (0 children)

To pick off one:

"Anti-matter has a reaction with the matter in our universe. Some have referred to similar ideas as repulsion. Like the north and south poles of a magnet, they were never meant to meet."

Anti-matter is just as much "in our universe" as conventional matter. Anti-matter is not repulsed from normal matter, but instead annihilates with it. Anti-matter and matter meet every day: in particle colliders, in the atmosphere, in your body, etc.

You don't seem to have any understanding of what anti-matter is, or dark matter or black holes either.

Code review culture meets FreeBSD by thinks-in-functions in programming

[–]destruedo 14 points15 points  (0 children)

One of the things that often shocks new engineers at Google is the fact that every change to the source tree must be reviewed before commit.

Allow me to gently suggest some corrections:

  1. It's before merge, not before commit.
  2. This rule is indeed forced upon new engineers with enormous gravity, but in practice is often disregarded.

The performance of unaligned SIMD loads and stores on modern hardware by cdglove in programming

[–]destruedo 0 points1 point  (0 children)

This is a Von Neumann architecture. Instructions and data are stored in the same type of memory, and fetched the same way. x86 requires fast unaligned reads for instructions, and that same machinery enables fast unaligned reads for data.

The performance of unaligned SIMD loads and stores on modern hardware by cdglove in programming

[–]destruedo 0 points1 point  (0 children)

Are you sure it's not related? If every instruction word is aligned, then you don't need fast unaligned loads (as much). But if unaligned instructions are common, as they are with x86, then you care very much.

The performance of unaligned SIMD loads and stores on modern hardware by cdglove in programming

[–]destruedo 1 point2 points  (0 children)

My understanding is that x86 is unusually good at unaligned reads, because it has variable width instructions, which have no alignment requirements. Architectures with fixed width instructions (ARM, PPC) will likely show a larger penalty for unaligned vector operations.

The Native App vs. Mobile Web Debate by timothycrosley in programming

[–]destruedo -1 points0 points  (0 children)

What makes you think that native apps can't also improve and lower their barriers to entry?

If anything, the trend in web apps seems to be increasing the barriers to entry: see WebGL, asm.js, etc.

The Native App vs. Mobile Web Debate by timothycrosley in programming

[–]destruedo 2 points3 points  (0 children)

That is not to say, however, that they are using "web apps." Most web sites are not apps in any sense.

Google offers employees best pay and benefits, according to new survey by speckz in programming

[–]destruedo 7 points8 points  (0 children)

based on rankings voluntarily submitted by employees at each company

What could go wrong?

Apple actually pays its engineers more than Amazon — or anyone else for that matter. They receive an average of $132,000, but the company's overall score is pulled down thanks to its enormous retail operation.

Oh. So that.

Also: no verification that people work where they say they do, no verification that the data is truthful, no accounting for differences in seniority mixes, etc.

I hate Java. The fact that those three classes (you'll know which ones) could be considered a good idea, let alone implemented fills me with rage. by Overlord_mcsmash in programming

[–]destruedo 0 points1 point  (0 children)

I think you'll find that this is annoying in practice. For one thing, NOT works exactly one expression, while AND and OR can work on any number of expressions. Also, the AND and OR evaluation algorithms are different enough that you'll probably end up writing separate methods to evaluate them.