1. 2

    According to whom has CoffeeScript served its purpose?

    1. 3

      A lot of the good features in Coffeescript like fat arrows made it in to ES6

      1. 2

        Three major features certainly made it into ES6:

        1. Fat Arrow => for declaring an anonymous function with scope context preservation
        2. String interpolation.
        3. Splats and destructuring.

        But that’s not the extent of CoffeeScript’s ergonomic improvements (in no particular order):

        • Everything is an expression. I love this the most about Ruby/Rust/Elm/etc. No need for explicit return keyword (in most cases, except when wanting to short circuit). The last “expression” in a function is automatically returned as its return value.

        • ? to guard against possible undefined keys when doing nested object access (e.g. val = obj.?key.?might.?not.?exist will not crash. In JS you’d have to guard against every level of object access via if (obj && obj.key && obj.key.might && obj.key.might.not)

        • -> skinny arrow to not preserve scope context when declaring an anonymous function. In legitimate cases where you want a closure’s this (or @ syntactic sugar in CoffeeScript) to actually refer to the new anonymous function scope’s this or arguments, you don’t want to use a =>. In vanilla JS, that means writing out function(), in CoffeeScript, it’s a skinny arrow.

        • Not requiring parenthesis for function calls (e.g. alert "Hey ma, no parenths!").

        • Control flow expressions can be suffixed to a line (e.g. alert "You should see this if..." if truthy_value).

        • List Interpretation syntax for loops (Python-esque).

        1. 1

          Try this in ES6:

          alert `Hey ma, no parenths!`
          

          (Tagged template literals + coercion from Array to String, har har har.)

    1. 17

      This is so cool! I really like the structure of this post: recognizing something one person has done well (and therefore other people have failed) and then explaining it

      1. 10

        “done well”

        https://github.com/openbsd/src/blob/master/usr.bin/yes/yes.c https://github.com/coreutils/coreutils/blob/master/src/yes.c

        optimizing to the extreme for fun is kind of interesting, but to do it at the expense of clarity with nothing really to gain seems like a loss.

        1. 9

          I really don’t like GNU’s implementation, NetBSD and COHERENT seem to have the most readable yes out of all the yesses I looked over (BusyBox had the worst). It may be possible to apply this to other utilities like dd and cat, which I plan to look into soon (unless someone else beats me!).

          1. 4

            Who on Earth thinks that BusyBox thing is a good idea? I’d hate to see anything even remotely complicated from whomever wrote that.

            1. 5

              It’s super compact both in code size and resource consumption (one stack variable!!), and it’s still relatively easy to understand. I’d say it’s doing its job marvellously.

              1. 3

                Havent had time to look at the code, but alpine linux uses it by default. And it’s targeted mostly to embeded linux, so I’m guessing ultra optimization is more important to them than readability in this case.

                1. 1

                  Yeah, that isn’t cool. I thought they were just trying to avoid reusing a variable, then I realised they were reusing a variable, and/or moving on to argv[1] :(

              2. 8

                with nothing really to gain

                One poster on Hacker News suggested this: https://news.ycombinator.com/item?id=14543640

                1. 4

                  Classic HN. Always reject the mundane explanation that the program is fast because somebody wanted it to go fast in favor of a narrative involving an epic struggle against corporate overlords.

                  1. 5

                    Check the thread again, GNU explicitly asks people to do this: https://www.gnu.org/prep/standards/standards.html#Reading-Non_002dFree-Code

                    1. 1

                      So why did they wait so long to make this change?

                      1. 5

                        I’m rejecting your characterization of that HN comment, because this is a common method for GNU programs. I am not rejecting your assessment of why it changed though.

                2. 5

                  This wasn’t done “with nothing really to gain” (although the gain might be subjective). It was performed as a reaction to a filed bug: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20029

                  1. 2

                    Interesting, I wonder what the backstory to that is. The example is oddly specific enough (involving a pipeline of yes, echo, a shell range expansion, head, and md5sum), that it look like an unexpected slowdown someone actually ran into in practice, vs. just a bored person benchmarking yes.

                  2. 1

                    If “yes” was written once, decades ago, and someone spent all of one entire week validating, I’m ok with getting a 10x performance increase on every *nix system in existence ongoing.

                    I love it when pipelines/shell scripts can scale vertically for a long time before having to rewrite in some native language.

                1. 8

                  Some enterprising soul out there… please mass manufacture this! I’m dying for an Ergo Dox replacement that doesn’t presume the owner has extremely large hands (the thumb clusters are placed way out of my normal hand reach!)

                  1. 4

                    You might like the Diverge (now at version III with silly LEDs): https://unikeyboard.io/product/diverge/

                    I have a Diverge II and love it. The more natural thumb placement is one of the reasons I went with it over an ErgoDox. Also, I offset my key map “inward” by one column (i.e., g and h are the keys on the inward side of my home row) so that the thumb clusters are even more convenient and so that the outside columns can be used for symbols and meta keys akin to a standard layout.

                    1. 2

                      Hi; I sell assembled and DIY kits that don’t require a lot of hand movement:

                      https://atreus.technomancy.us

                      Not exactly mass-produced of course, since the demand isn’t there in terms of volume. Mine is similar to the one in the link except as a one-piece, so it’s easier to travel with. Also it has a wooden case instead of just using the bare PCB.

                    1. 3

                      Thank you for this!!!!

                      After using Colemak (3+ years) and then attempting Workman (slightly better than Colemak at reducing discomfort with reduced horizontal index finger travel for me personally), I’m ready for a keyboard that’s optimized for reduced pinky usage (even on Windows/Linux machines, I’ve swapped Ctrl with Alt/Meta such that keyboard shortcuts primarily use my thumb like Mac OSX’s Cmd) while still reducing the horizontal finger motion that was so common with Colemak.

                      Time to roll up my sleeves and learn QGMLWY!

                      For anyone who suffers from typing discomfort, I can’t recommend alternative keyboard layouts enough. It’ll likely take a long while to get used to typing in a different keyboard layout, however (I believe Colemak took me well over 8+ months to get decently proficient at [80+ WPM; my QWERTY baseline is about 95WPM], and I never did get proficient to the level I would have liked with Workman…).

                      However, if you’re not willing to take the plunge to retrain your muscle memory (not a small undertaking!), there’s two small changes that really helped me out which I would recommend to anyone:

                      1. Swap Capslock with Backspace. No more reaching the top right side of the keyboard with your right pinky in an awkward motion! Some VIM users have told me they remapped this to Esc… but I’m much more of a Ctrl+C person (plus, after the second tip below, Ctrl+C no longer becomes a torture test on your left pinky!)
                      2. Swap Left Ctrl and Left Alt so that hotkeys only requires your thumb to hold onto the modifier instead of your pinky! (This is unnecessary if you’re on Mac OSX)
                      1. 2

                        I had pinky problems and have been using QFMLWY for 6 years. It’s one of the best investments I’ve made in my career. If you want a keyboard try the Kinesis Advantage.

                        I wrote a little more here last time this came up on lobste.rs

                        1. 2

                          Thanks for the testimonial! Btw, what made you choose QFMLWY over QGMLWY (the latter is the one with ZXCV unchanged)? Part of the reason I was attracted to Colemak/Workman was because I didn’t want to have to change my hot key muscle memory/bindings (one of the reason why I never gave Dvorak a try). I’m guessing you didn’t find that to be a problem?

                          I’ve demo’d the Kinesis Advantage in person, and wasn’t quite a fan of the bowl size (I have small hands. I’ve also used the Ergo Dox previously and had to sell it because my hands also too small to reach the keys and the thumb clusters comfortably)–I’m thinking of getting a TypeMatrix 2030 keyboard since I did enjoy the columnar non-staggered layout of the Ergo Dox.

                          1. 1

                            Oops, I actually use QGMLWB, I can never remember which and just copied what I (mistakenly) said last time. They’re similar enough that you can confuse them so I don’t think it matters what you pick :) I’d just go with your intuition.

                            However, your concern still applies. The answer is that I don’t use keyboard shortcuts outside of my custom Emacs setup in any significant capacity. But even if I did, it wouldn’t have been a consideration–I overhauled everything at once and just resigned to being useless for a few weeks.

                            The TypeMatrix looks good to me except for Ctrl under the pinky. I think if I had used this keyboard I would have kept with the foot pedals.

                            1. 1

                              Yeah, I’m definitely going to give the “most optimized” version a try… What do I have to lose ;)?

                              Re: TypeMatrix: Per my own “life pro tip #2” in my GP post, I would personally be swapping Left Ctrl and Left Alt, so that I’d be using my thumb instead of my pinky for Ctrl (I never ever use Right Ctrl anyways, so that’s not much of a big deal, and if I needed to use Alt, for say Alt + Tab, I just use a combination of my right thumb [on R-Alt] and my left ring finger [on Tab]).

                        2. 2

                          I took the hardware way to solve the ‘pinky’ problem, and bought a typematrix 2030. It brings the enter amd backspace in the middle so you use your index/thumb to press them. The shift/control keys are also taller to make them easier to access.

                          1. 1

                            I swapped CapsLock for Ctrl and its 1000% more comfortable for my hands to not have to reach for the Ctrl key. Having CapsLock on home row and then having it be such a rare keypress (does anyone use caps lock any more) is easy to change into a big win.

                            I’ve used Dvorak for a couple years and as a programmer, I would recommend Colemak to someone interested simply because they leave the symbol keys alone. Having dvorak’s home row vowels is a huge win but largely off setted by putting <>? up at QWE.

                            1. 1

                              However, if you’re not willing to take the plunge to retrain your muscle memory (not a small undertaking!)…

                              Still not a small undertaking, but you feel better even after an hour of fumbling as you learn it. Compared to Colemak and Workman where I still couldn’t get with O and I after weeks of practice…

                              ‘A’ being on the other hand entirely will take some getting used to.

                            1. 2

                              wow, great read. this is one hell of a treat ( i actually wrote that even before reading your username :O )

                              thanks for the references, some more great thoughts in those. (there might be one broken link that lead me to a phx.corporate-ir.net domain .. cant remember which link i had clicked)

                              1. 3

                                The broken link is supposed to link to one of Amazon’s security filings (also referred to as the “2016 Letter to Shareholders”). It’s the letter where Jeff Bezos lays out his “Day 1” vs “Day 2” philosophy and publicly coins the term “disagree and commit”.

                                The relevant portion on “disagree and commit”:

                                Third, use the phrase “disagree and commit.” This phrase will save a lot of time. If you have conviction on a particular direction even though there’s no consensus, it’s helpful to say, “Look, I know we disagree on this but will you gamble with me on it? Disagree and commit?” By the time you’re at this point, no one can know the answer for sure, and you’ll probably get a quick yes.

                                This isn’t one way. If you’re the boss, you should do this too. I disagree and commit all the time. We recently greenlit a particular Amazon Studios original. I told the team my view: debatable whether it would be interesting enough, complicated to produce, the business terms aren’t that good, and we have lots of other opportunities. They had a completely different opinion and wanted to go ahead. I wrote back right away with “I disagree and commit and hope it becomes the most watched thing we’ve ever made.” Consider how much slower this decision cycle would have been if the team had actually had to convince me rather than simply get my commitment.

                                Here’s the actual filing as hosted by the SEC:

                                https://www.sec.gov/Archives/edgar/data/1018724/000119312517120198/d373368dex991.htm

                                1. 4

                                  and publicly coins the term “disagree and commit”.

                                  Small correction: that phrase has been part of the Amazon principles for, basically, ever.

                                  https://www.amazon.jobs/principles

                                  1. 3

                                    I’m pretty sure Andy Grove came up with it at Intel even earlier, but it’s all a part of the cult of management at this point. Disagreements are merely people slowing down “good business activity” from occurring, those bastards. The disease they’re trying to prevent is pretty awful as well: people who think that disagreeing with others is how their voice can be heard, and their value communicated at work.

                                    1. 1

                                      At least Andy Grove’s catch phrase was “constructive confrontation”. His books also bring up trying to find the Cassandra’s in your staff, listen to what they have to say, and incorporate it into your strategy. In printed from, at least, Grove was very for searching for the truth and not just plowing over subordinates.

                              1. 7

                                this is a win-win situation, as far as I can tell. some app makers don’t want their content on user-owned devices. as a user, I don’t want to support such companies. now I have to do less work to avoid them.

                                the unfortunate irony, though, is that Netflix still runs just fine on my rooted devices and my friends always insist on installing it.

                                1. 4

                                  Working on the next big update to Learn TLA+. A lot of small changes, but the main one is that I’m ripping out the current reference section (“here’s the set of all automorphic functions over a set!” is cool but not very useful) and replacing it with a ton of example specs (“here’s how to simulate a client-server architecture!” / “here’s how to find bugs in MongoDB!”) and techniques (“here’s how to add cronjobs!” / “here’s how properly use model values!”). I think that will make it much more useful to people who know the basics but aren’t sure how to apply it.

                                  1. 2

                                    Is the “HEY” the part you’ll be getting to soon ;)? https://www.learntla.com/introduction/

                                    1. 1

                                      That part is 1000% perfect and nothing will ever change my mind

                                  1. 2

                                    I don’t believe education helps. Just provide consulting for the tendering and commissioning.

                                    Requirements analysis is better done by a techie learning the problem domain than a domain expert learning technology. Not every techie can, though. Requirements analysis is a skill very different from coding.

                                    1. 1

                                      If by “education doesn’t help”, you meant to say “educating people who are neither technical nor domain experts to perform requirements analysis does not help”, then you’d be likely right on some practical level.

                                      However, philosophically, I don’t think I can agree.

                                      That kind of thinking is how we write-off large swaths of individuals in orgs as simply being “unproductive” (i.e. “education doesn’t work anyways, so why bother educating them to becoming more self sufficient?”).

                                      I don’t claim to have the answer either, but I don’t want to write off one possible avenue of the solution: educating both sides of the table of the tendering process.

                                      Besides, “provide consulting” isn’t really a solution… Someone still has to learn to do the job, you’ve simply externalized the cost onto another entity that doesn’t even have a vested interest in your system succeeding (it’s no secret that this is one of the longest standing problems of outsourcing/contracting any expert-skill work in an area that you yourself are not an expert in).

                                    1. 1

                                      2FA is mostly security theatre [0], and 2FA that uses SMS is most definitely just masquerading as security theatre in 2017.

                                      Even NIST updated their guidelines [1] last year to discourage using public switched telephone networks (PSTN) to deliver multi-factor authentication tokens:

                                      Note: Out-of-band authentication using the PSTN (SMS or voice) is discouraged and is being considered for removal in future editions of this guideline.

                                      1. The Failure of Two-Factor Authentication by Bruce Schneier
                                      2. https://pages.nist.gov/800-63-3/sp800-63b.html
                                      1. 7

                                        tl;dr:

                                        Google is “strong arming” (by threat of blacklisting) Certificate Authorities to comply with a “Certificate Transparency” program that Google has pushed through the IETF (Internet Engineering Task Force).

                                        The “Certificate Transparency” (hereon referred to as “CT”) program requires that all issued certificates are logged with 2 separate CT servers that is publicly auditable by anyone. The premise being that we can’t prevent Root CA’s from being compromised, but we can do the next best thing, which is to prevent errant certificates from working at all in the popular browsers (starting with Chrome).

                                        If a certificate is used by a server that doesn’t appear in the 2 CT logs, then Chrome will show a bad certificate warning in Chrome (the same way they show a warning for expired or self-signed certificates today).

                                        The other 3 major browser makers (Mozilla, Apple and Microsoft) have yet to comment on whether or not they will follow suit in using the CT logs to blacklist errant certificates.

                                        Here’s Slate’s closing remarks:

                                        There’s really no chance that consumers will ever know enough about these obscure systems to push Google one way or another. So for now, there’s little to stop the company from redesigning the internet’s critical infrastructure however it wants.

                                        1. 3

                                          I think part of the lack of comments from the other browsers is that they like the changes, but figure they don’t have the market share and/or clout to push changes like this through. So if Google succeeds, hooray, we’ll follow their lead. If Google fails, then no sweat of our back, only the Chrome team has egg on their face.

                                          Personally, I’d like this initiative to succeed. The biggest concern with TLS was always that every CA could issue any certificate ever and no one could double check that they are behaving. Now that Chrome has a huge dominant position (60% globally I think), they are forcing CAs to behave.

                                          1. 1

                                            I got scared by the title, as huge companies “improving security” often means screwing over hobbyists (i.e. SecureBoot, locked down phone bootloaders). Relieved to see that it’s just forcing CAs to behave better.

                                          1. 3

                                            Using Tor for webcams and baby monitors due to Tor’s security design sounds nice and all, but… one thing that’s missing from that PDF is how horrendously low* throughput of the Tor network as a whole. It’s dependent on individuals and organizations volunteering bandwidth and compute cycles, and the last time (2 or 3 years ago?) I tried using Tor, it was a terribly slow experience even for regular browsing.

                                            Forget streaming webcams and baby monitors, even highly distributed Youtube videos with edge servers worldwide are sluggish as heck!

                                            [ * ] With loads of caveats. There are fast nodes out there, and you can set up a fast relay of your own to use as the first hop, but the over all throughput is still very much dependent on others in the onion network.

                                            1. 1

                                              I think what should be taken from the slides is “this is a solved problem”.

                                              Tor as it is today may not be up to serving the throughput and latency needs, but the protocol and near-zero effort for the end user to access their devices is.

                                              I have hope that now we have this thought developers will run with it rather than go all ZOMG WEBSCALE CLOUD BBQ on it or try to re-invent their own version of Tor.

                                              Maybe all that is needed is a private closed Tor service (self hosted on the devices themselves) to push signalling over (think encryption keys) and then you can make a direct connection.

                                              Of course the assumption here is that this is a technical problem. Programming rarely is the hard part, the economics for the manufacturers may simply favour centrally controlled infrastructure.

                                            1. 2

                                              read the vocabulary – what do these words mean?

                                              Whatever the programming language’s semantics say they mean.

                                              see the state – what is the computer thinking?

                                              Nothing! Computers don’t think.

                                              The create-by-reacting way of thinking could be stated as: start with something, then adjust until it’s right.

                                              Is this guy seriously considering depriving people of the joy of crafting their own beautiful algorithms? It is admittedly a lot of work, and not everyone’s cup of tea, but why deprive people of the chance to even try it?

                                              We expect readers to understand code that manipulates variables, without ever seeing the values of the variables. The entire purpose of code is to manipulate data, and we never see the data.

                                              Working in the head doesn’t scale.

                                              Mutually inconsistent complaints. It is precisely by not fixing values for your variables that you can prove that something works for any possible value. And this is precisely the only technique that automatically scales to infinitely many cases using a finite amount of reasoning.

                                              1. 2

                                                Is this guy seriously considering depriving people of the joy of crafting their own beautiful algorithms?

                                                I believe his thesis is that people learn crafting algorithms by reusing other algorithms and adjusting them. Any program starts as the Hello World algorithm and is then adjusted into something different.

                                                1. 1

                                                  That’s not how I understood him. What he literally said is:

                                                  start with something, then adjust until it’s right.

                                                  This isn’t about code reuse. It’s about trial and error.

                                                2. 1

                                                  Cherry picking straw man sentences does not a point make.

                                                  Why not address his two bolded thesis statements at the top of the post?

                                                  Programming is a way of thinking, not a rote skill. Learning about “for” loops is not learning to program, any more than learning about pencils is learning to draw.

                                                  People understand what they can see. If a programmer cannot see what a program is doing, she can’t understand it.

                                                  Pretty sure his first sentence nullifies your caricature of his position. He does not advocate divorcing the the thinking from the doing, but rather unifying them so that one can think and do, and one’s doing influences the thinking in a virtuous cycle, aided by the programming tools at hand.

                                                  The rest of his post goes on to show a few (but not the only!) ways the tools can aid in the visualization of the program execution, thereby helping the programmer understand just exactly how their program is actually being interpreted by the computer.

                                                  If I can summarize his position (and my interpretation of yours), it’s that Brett Victor believes people think and learn differently, and teaching students in a purely abstract symbolic manipulation without ever seen the concrete effects of their code is not going to be effective for all.

                                                  Your counter argument is that coding is symbolic manipulation, and making abstract concepts concrete does not help, but rather hampers an individual’s ability to internalize what’s happening and inhibits the building of a mental model that allows working with the program abstraction. Or did I misrepresent what you’re trying to say?

                                                  I don’t actually think you two are in conflict at all. Brett is talking generally, whereas you’re being very specific about algorithmic development. Surely you don’t believe teaching children to program should begin with the same verbosity and tools as those used by working professionals?

                                                  1. 1

                                                    Nothing! Computers don’t think.

                                                    That’s a very narrow minded way to think about thinking.

                                                  1. 9

                                                    We don’t need a new form of money. Especially one that is based on stone age ideas like the gold standard. We need something better than money. I don’t know what that looks like, but I personally would love to live in a world where there is no money.

                                                    Only reason bitcoin works today is because it is convertible to state money. Can you have a stateless currency? I suspect you can’t. Why? Because historically currency was used as a tool to provision armies and states.

                                                    What is bitcoin provisioning? Oh shit, is it skynet? It’s skynet isn’t it.

                                                    1. 5

                                                      I don’t know what that looks like, but I personally would love to live in a world where there is no money.

                                                      Definitely far from perfect, but a fluid reputation-esque based currency called a “Whuffie” was mentioned in Cory Doctorow’s book, Down and Out in the Magic Kingdom (a fun read, plus it’s available on his website for free!).

                                                      These kinds of post-fiat currency “monetary surrogates” are largely predicated on some sort of post-scarcity society, of which we are not anywhere near (though often promised by Singularitarians and Futurists of all stripes…).

                                                      Also, have you seen Black Mirror’s 3rd seasons’ episode “Nosedive” (spoiler alert, link goes to Wikipedia article for that episode)?

                                                      1. 5

                                                        I immediately thought of Nosedive when I was reading your comment! Reputation based systems are fraught with danger because people are so good at gaming the system - any system.

                                                        1. 3

                                                          I think this is absolutely true. Previous job there was a group that wanted to create company wide project stats like “number of refactors, test coverage, errors, lint errors, etc” as a way to motivate employees.

                                                          I was like “wow, this is going to be gamed so fast”. Reminds me of the soviet Gosplan. They had an intricate system to monitor the economy using computers to make sure things are going as planned. As expected people gamed the system like making products travel over rail back and forth to increase “rail miles”.

                                                          This is why I wonder if we can make a system that’s not money like, or point based, or whatever.

                                                        2. 5

                                                          Definitely far from perfect, but a fluid reputation-esque based currency called a “Whuffie” was mentioned in Cory Doctorow’s book, Down and Out in the Magic Kingdom (a fun read, plus it’s available on his website for free!).

                                                          I mean… the entire point of the book is that if you only reward people for being popular they start doing really shitty things. The point of the book is kinda that Whuffie is a terrible idea.

                                                          1. 3

                                                            Whuffie’s creator describes it as a deliberately “a terrible currency”. It exists to criticize misfeatures of our current system by making them much worse.

                                                            This whole thread is building on soft ground.

                                                            1. 1

                                                              So is whuffie kind of like lobster karma?

                                                            2. 6

                                                              Wow. I am confused. This is just mindless rambling yet people seem to like it.

                                                              We don’t need a new form of money. Especially one that is based on stone age ideas like the gold standard.

                                                              Well we might not ‘need’ it but an alternative is definitely useful. There are things that bitcoin can do better than state-sanctioned money.

                                                              Also eating food is a ‘stone age idea’ so I guess we could stop doing that too? Just because something has been around since forever, does not make it bad, stupid or obsolete.

                                                              We need something better than money. I don’t know what that looks like, but I personally would love to live in a world where there is no money.

                                                              I could literally say this about anything. We need something better than cars. I don’t know what it is but I would love to live in a world where there are no cars.

                                                              Only reason bitcoin works today is because it is convertible to state money.

                                                              That is also not true. You could definitely buy some stuff with bitcoin without state money. The fact that state money has been around for centuries and the world’s economy has built itself around state money does mean that it is the most easily used monies.

                                                              Can you have a stateless currency? I suspect you can’t. Why? Because historically currency was used as a tool to provision armies and states.

                                                              This is wild speculation that is clearly false because money is useful even without states or state-sanctioned warfare.

                                                              And just because states use money to pay for armies therefore money cannot exist without state is just a non-sequitur.

                                                              1. 2

                                                                There are things that bitcoin can do better than state-sanctioned money.

                                                                Like what? Expensive to do transactions, and at least state money can be truly anonymous.

                                                                Just because something has been around since forever, does not make it bad, stupid or obsolete.

                                                                Stone age implying we found something better than stone. Stone age does not just imply old.

                                                                I could literally say this about anything. We need something better than cars. I don’t know what it is but I would love to live in a world where there are no cars.

                                                                I’m saying bitcoin isn’t a new thing. Block chain is novel, but money on it isn’t. I can’t imagine what the better thing is because if I could I would make it.

                                                                That is also not true. You could definitely buy some stuff with bitcoin without state money.

                                                                I’m making a claim that bitcoin would not work if it wasn’t convertible to state money. In fact, i can’t imagine you could prevent that from happening anyway. In fact if we lived in a parallel universe where there is no money, nobody in their right mind would think bitcoin solves a problem they have.

                                                                This is wild speculation that is clearly false because money is useful even without states

                                                                History would like to have a word with you. Yes money is useful outside of paying taxes but that’s a side effect. the seeding of it is by states. States go away so does the money and it’s usefulness.

                                                                Example, soviet ruble was used after the break up of the soviet union only because the former states decided to remain using it until the new ruble took over in 1993. Nobody kept using the soviet union beyond that.

                                                                I think money has brainwashed us. We grow up with it, of course it’s normal. It’s part of life. But it’s just an invention that has a very real and focused purpose. It’s there to provision the state.

                                                                We have to use a little more imagination to get rid of it, and bitcoin is not that. Bitcoin is a boring version of the same thing. The communists at least had a little more imagination.

                                                                1. 2

                                                                  Like what? Expensive to do transactions, and at least state money can be truly anonymous.

                                                                  Let you send money to somebody across the globe quickly without the banks taking 5%.

                                                                  I’m making a claim that bitcoin would not work if it wasn’t convertible to state money.

                                                                  A claim which you support with what evidence?

                                                                  This whole thing doesn’t even make sense. What do you mean exactly by ‘would not work’? The more I think about it the sillier this as a thought is.

                                                                  States go away so does the money and it’s usefulness.

                                                                  You do know trading and money has existed before states, right?

                                                                  Example, soviet ruble was used after the break up of the soviet union only because the former states decided to remain using it until the new ruble took over in 1993.

                                                                  Plenty of times people have made their own currency e.g. scrips for community use when state money was in short supply.

                                                                  1. 2

                                                                    Let you send money to somebody across the globe quickly without the banks taking 5%.

                                                                    What’s the per-transaction cost (in electricity generation) for BTC?

                                                                    I’ve seen estimates upwards of $7, which puts it firmly in the ‘not really better than banks’; the receiver will transact again, either to use the money or convert it to fiat, so that’d be $14 (assuming the conversion was free, or you spent all the money on a single transaction).

                                                                    Where does the money to pay for this electricity come from? Inflation.

                                                                2. 1

                                                                  Technically you can buy in BTC without ever exchanging, and that’s what people are trying to achieve, but the scale of it is a niche of a niche at best.

                                                                  Money measures value and enables trade, you can use anything for that purpose, as long as your counterpart recognizes its value. Certainly monopolization helps governments in taxation for monpolized activity like armies and I doubt anyone disagrees.

                                                                  One problem with BTC is completely uneven injection. It’s like the “1%” that gets access to QE rounds and such, and can reap the benefits of this newly expanded monetary base, before it evens out in the market and devalues the currency.

                                                                  So if BTC were widely adopted, the Chinese mining cabal would be the new 1% and people would rather go back trading in tobacco leaves and squirrel skins instead of putting up with that shit.

                                                              1. 4

                                                                I’m a through-and-through erlang devotee, but I’m not sympathetic to the argument that performance doesn’t matter. It matters a lot; there’s a bunch of hard/interesting problems that you’d prefer to fit on one box or within one programming paradigm, and erlang (and ruby, and python, and clojure, and …) frequently makes that impossible. The fact that erlang has a good multi-box story and an acceptable multi-paradigm story doesn’t really help the fact that multi-box and multi-paradigm are both incredibly holistically costly.

                                                                1. 3

                                                                  Agreed. This antipathy for speed is also a very odd idol in the realm of programming.

                                                                  But I think there’s a bigger issue at play here, a tunnel vision of sorts. There’s three general problem domains when it comes to performance:

                                                                  1. Hard real-time (a process absolutely must finish in time, or else it’s in a failed state)
                                                                  2. Soft real-time (a process should finish in time the vast majority of the time. Occasional lapses are not an issue)
                                                                  3. Not real-time (“offline” processing, more or less)

                                                                  These posts are all super focused on the problem domain that Erlang excels at, which is soft real-time, but there are plenty of problems in this world that doesn’t fall into soft real-time problems! Hard real-time applications (like video games) are on one end of the interactive spectrum. It must respond at least 30 frames a second, or else it’s essentially game over for the player. Jank-tastic!

                                                                  And then on the way other side, are offline processes that cares about over all throughput, but not immediate responsiveness (e.g. protein folding).

                                                                  On both end of the spectrum, speed matters. There happens to be a niche in the middle where reactive/responsiveness happens to matter a lot more than pure throughput, but let’s not mistake the tree for the forest!

                                                                  1. 3

                                                                    hard real-time applications (like video games)

                                                                    I think videogames fall differently into hard or soft real-time categories depending on genre.

                                                                    A fighting game like Soul Caliber or Street Fighter is hard real-time, because the entire game is considered worthless and customers will pay no money for it if there’s even a rumour that it might occasionally drop a frame.

                                                                    A game like Skyrim or Mass Effect is definitely soft real-time. They have to give smooth framerates most of the time because in-game combat is real-time-ish. However, these kinds of games can ship with noticeable intermittent (but not frequent) framerate hitches and people will still pay for them. For example, when new areas and scripts get paged in as the player traverses the world, or when a bunch of complicated in-engine scripting kicks in all in one go for some reason.

                                                                    A game like XCOM or Civilisation is pretty much best-effort. It can skip frames all over the place without breaking gameplay. It’ll feel irksome if animations are constantly choppy. Players can even opt to disable (some|most) animations in these games, and many will.

                                                                    …I think FPS games fall into the hard real time category for players who pay close attention to how well they do in competitive matches but the soft real time category for players who don’t. ?

                                                                    1. 2

                                                                      It’s absolutely okay to run an FPS slower than 30 Hz, provided you do so at a constant slow rate (so players can model it in their heads without getting annoyed). Also, note that the game logic is different from the rendering logic–the Quake series ran the actual game logic at between 5 and 20 Hz depending on the game iirc, however fast the rendering itself was happening.

                                                                      1. 2

                                                                        Isn’t quake actually the poster child for FPS dependent logic because you could jump higher with more FPS due to rounding?

                                                                        1. 2

                                                                          Oh yes. Apparently you jump higher at 125fps than you do at 90fps in Quake 3 (and its predecessors).

                                                                        2. 1

                                                                          For a single-player (or PvE) FPS, sure. For a multi-player (PvP) FPS, less so. Aiming with 60Hz rendering is qualitatively easier than aiming with 30Hz rendering, even if rock solid.

                                                                        3. 2

                                                                          A game like XCOM or Civilisation is pretty much best-effort. It can skip frames all over the place without breaking gameplay. It’ll feel irksome if animations are constantly choppy. Players can even opt to disable (some|most) animations in these games, and many will.

                                                                          An interesting middle-ground being RTS. They can run at slow rates, but the interface must stay responsive. I used to play CoH competitively on a box that was always between 10 and 20 frames, with occasional drops and Relic has really handled that well.

                                                                      2. 1

                                                                        Well said!

                                                                        It’s quite astonishing what a single box can do these days - rare indeed is the dataset that can’t fit into RAM.

                                                                      1. 12

                                                                        A great many words, but I have no idea what was said.

                                                                        1. 17

                                                                          Let me attempt to summarize the core argument of the article:

                                                                          Scripted narration in a medium that’s supposed to champion interactivity is a fool’s errand. Instead, narratives should be emergent via mechanics of the game that fosters discovered self-narration.

                                                                          Put more crudely, the author would like gaming to be akin to a child playing with toys. The toys offer zero narration of their own–it’s all in the player’s head!

                                                                          Though games like “Minecraft”, “Dreams” and “The Witness” are not mentioned by name, I would imagine the author very much would like to see more of these, and less of the… well, other games.

                                                                          1. 4

                                                                            My generous summary of this is:

                                                                            1. It’s a positive review of the the game What Remains of Edith Finch, which argues that this game helps show us the way forward for the medium,

                                                                            2. Secondarily, though this gets more space, headline, and attention, what some other people have argued is the way forward for the medium, the ol’ Interactive Storytelling dream of folks like Chris Crawford, Janet Murray, and David Cage, is maybe a dead-end, which we can definitively realize now that we’ve seen what the better way forward is.

                                                                            Admittedly, this is reading between the lines a bit and he doesn’t quite make this argument as I’ve reconstructed it (he seems to be hitting in various directions other than David Cage, who I personally would’ve chosen as a better foil). Bogost’s a personal friend who I’ve known for a little over a decade, and I like much of his writing, but this isn’t my favorite piece of his, even if I’m sympathetic to the form of the argument I’ve reconstructed.

                                                                            1. 7

                                                                              OK. So among the games I’ve played, Doom and Bioshock, which is better? I can accede to the idea that a hypothetical Libertarian Atlantis movie would tell a better story than Bioshock. But does the addition of story elements make Bioshock worse than Doom? Would eliminating all the voiceovers from Bioshock and reducing it to “kill stuff and push buttons” like Doom make it a better game? Not inclined to agree.

                                                                              1. 4

                                                                                I don’t think it’s really arguing at the level of “game A is better than game B”, but more about future agendas. It argues that the holodeck “interactive narrative” dream, which views true interactive storytelling as the way to take the medium to the next level, isn’t promising, and is in favor, instead, of an alternative path forward, which it argues the game What Remains of Edith Finch embodies. Now, it’s hard for me to judge this last claim, because I haven’t played that game.

                                                                                (The “holodeck” reference has an outsized significance in academic game studies, perhaps not obvious to the average reader, because the metaphor was used in an influential 1998 book by Janet Murray entitled Hamlet on the Holodeck: The Future of Narrative in Cyberspace. In addition to referring to the Star Trek holodeck, of course.)

                                                                                1. 1

                                                                                  Ok, thanks, this helps put the article in perspective.

                                                                              2. 2

                                                                                Secondarily, though this gets more space, headline, and attention, what some other people have argued is the way forward for the medium, the ol’ Interactive Storytelling dream of folks like Chris Crawford, Janet Murray, and David Cage, is maybe a dead-end, which we can definitively realize now that we’ve seen what the better way forward is.

                                                                                I’m curious what the “better way” is, in your opinion?

                                                                                “Better” is in the eye of the beholder, as well. As much as I’d love (I don’t, actually…) to play Halo 15 and Call of Duty 26’s multiplayer portion and weave my own narrative devoid of any scripted narrative–such that no two players will experience the same arc of encounter and will each walk away with their own unique experience–I’d much rather experience the works of David Cage, et al. rather than play for play’s own sake (I, for one, cannot wait for Detroit to be released!).

                                                                                I enjoy games the most when it makes me think and relate back to something in the real world and case me to appreciate it more, or see it in a different light.

                                                                                Without any spoilers, the latest game I completed (Horizon: Zero Dawn), made me truly appreciate the design behind Erlang (yes, a seemingly out-of-the-left-field connection!).

                                                                                1. 2

                                                                                  I’d really like see what connection you made there. I don’t know if we have a spoiler tag, but maybe something behind a link?

                                                                                  1. 1

                                                                                    I don’t have strong opinions on the better way personally. I actually started my academic career building AI support for interactive storytelling, with the goal of making games that were non-scripted but still heavily story-based. So I have some sympathy for the Grand Interactive Storytelling dream, enough that I spent a few years working on it (albeit on the backend tech side, since I’m not a writer or game designer), and occasionally still go back to it. But I also have some sympathy for arguments like Bogost’s that argue this is trying to put a square peg in a round hole. I suppose I should stake out a strong opinion on this, given that it’s close to my research area, but I’m somehow just very undecided about it.

                                                                                  2. 1

                                                                                    I really appreciate you adding context to the article. It sounded like something interesting, but I had a hard time making out the thesis. Clearing up the holodeck reference, in particular, helped

                                                                                1. 42

                                                                                  Some of the ones I personally look for:

                                                                                  • Are the perks technologists get universal? If I have unlimited vacation, does everybody in the company get unlimited vacation, or is support treated like second-class citizens?
                                                                                  • Are benefits and salary transparent? Do I know how much everybody makes, and how that compares to the industrial average? Do I know what percentage of the company “ten shares” is? If we don’t have matching 401(k), do I know why?
                                                                                  • Are we appropriately handling issues of diversity and conduct? Does our hiring practice or work culture avoid implicitly discriminating against women and minorities? Nobody’s using “your mom” or “cafebabe” as strings in unit tests, right?
                                                                                  • Is there a process in place to handle abusive or aggressive coworkers? If a project manager made ten people cry and two quit in protest, will he be fired and not promoted?
                                                                                  • Are physical and mental health issues treated appropriately? Will anybody have problems if I go on a 20 minute walk? Will people respect my triggers or think they’re a joke?
                                                                                  • Can you guarantee that I’ll never, ever hear someone say “coding rockstar” unironically?
                                                                                  1. 4

                                                                                    Good points, thanks for your feedback. Can you explain ‘’‘people respect my triggers’’’ more detailed, please? I think I’m missing something.

                                                                                    1. 9

                                                                                      Generally it means: if you know I get upset about something, don’t bring it up when you don’t have to.

                                                                                      1. 1

                                                                                        Like what? Name some of your sensitivities, because I’ll be honest - my first thought was “or you could just man up, and learn how to deal with the fact that people don’t have to maintain lists of all the sensitivities people are trying to avoid.” But then I realised I’m not even sure what you mean.

                                                                                        So please understand that I’m not trying to berate you or flog you, not personally. Just that something about what you said just gives me the creeps. I hope I am allowed to say this because I am not talking about you. I am talking about the general idea that the universe owes anybody anything. It doesn’t. Neither do people. We can say that treating others with respect should be mandatory, but let’s be honest. It isn’t. Safe spaces are a reaction to this. In my opinion, these are toxic.

                                                                                        The planet is full of jerks. There’s also a rise of a victim-based mindset, soft spots must be avoided at all costs, hurt is blamed on the other, and heck, even saying “man up” is called sexist nowadays. We have these idiotic terms like “mansplaining”, people are placing blame all over the place, and criticising anything can instantly get you banned on social media groups.

                                                                                        “You’re either with us, or you’re with the terrorists” is what GW Bush once said.

                                                                                        I wish I had the vocabulary to explain what irks me about this and to explain what is wrong about this. But I don’t. I guess it comes down to one thing for me: I have always felt like bedng treated with respect by someone is a privilege, not a right. And to be honest, I feel more comfortable with this than with the social justice warrior / safe space mentality. So no, I think what you ask is a privilege, not a right. You can’t / shouldn’t be able to demand that people will avoid to talk about subjects that might bother you. On the other hand, you also don’t have to listen to what anyone says. You’re free to respond in whatever way you want. For me, the line that shouldn’t be crossed is with physical violence, or the threat of it, and there are a few other things that may cross the line. Sexual intimidation, to name one. Then again - this actually already fits into the “threat of physical violence” category, come to think about it.

                                                                                        Arbitrary restrictions of free speech will create the biggest chilling effect otherwise, so I think it goes too far to demand from anyone that they must avoid anything.

                                                                                        I hope people get what I’m trying to say, and hope no one takes this personally - I’m a bit allergic to the pro safe space mentality, but I am not trying to personally attack anyone here whose views are different from my own. Talking about triggers. I just guess this is one of my own.

                                                                                        1. 9

                                                                                          Maybe it’d help to hear one of my personal experiences with this. I’m a pretty mentally unstable person, for various reasons, and I treat it with extensive therapy and psychiatry. One of the ways this manifests is I have trouble handling the “Happy Birthday” song. It’s hard to describe exactly; the shape of people’s voices funnels into a punch to the gut that makes me feel trapped and in danger and need to escape.

                                                                                          At my company everybody sings happy birthday on your birthday. And for everybody else, that’s fine! They shouldn’t have to ruin the day just because I don’t like the song. I’m a big boy, I can quietly excuse myself for the singing or hang around the corner and look uncomfortable. But if it’s my birthday, and they’re singing to me… the world bends and everybody has razor sharp teeth and the panic kicks in run run they want to kill and eat you too close TOO CLOSE

                                                                                          So I ask them not to sing on my birthday and they think it’s weird but respect that. That’s what I mean by ‘respect my triggers’. I’m not asking anybody to bend over backwards for me, I just recognize that there’s a part of me that’s distorted and unstable and that sometimes, I may not have a rational motive behind a sincere request I make.

                                                                                          1. 1

                                                                                            Understood. I can totally respect that. Thanks for explaining. Or as we say with No Agenda (the podcast): Tyfyc. Thank you for your courage.

                                                                                          2. 7

                                                                                            I have always felt like bedng treated with respect by someone is a privilege, not a right.

                                                                                            I don’t know about in general, but I’d expect it in a workplace setting at least. Coworkers don’t have to like each other or be friends (I don’t even necessarily like workplaces that try too hard on the “we’re all friends” thing with lots of social outings), but I’d expect some degree of professionalism and collegiality while actually at work.

                                                                                            1. 1

                                                                                              Well, yeah, of course I agree. But at the same time (in my expecience at least) the most rigid place where you have to earn to be treated like one of the team - and are considered a douche if you’re a similing, friendly, considerate person most of the time - is the workplace. Especially between my 16th and 26th it felt like this. Asking for anything felt futile in that period. For the most part I felt like the only thing I could do to gain a moderate amount of respect was to get old and bored with life, and shut up otherwise. It’s probably not like this everywhere, but I think it does apply to most places here in the Netherlands. If you stick your head out the crowd, especially by wanting to be treated in a certain way, is one of the surest ways to losing your job. I don’t like this culture at all, but it is what it is, and “don’t try to change it” has always been our culture’s motto, in a sense.

                                                                                              Bedng

                                                                                              (urgh. That’s one ugly typo I made.)

                                                                                            2. 6

                                                                                              I guess it comes down to one thing for me: I have always felt like bedng treated with respect by someone is a privilege, not a right.

                                                                                              Surely the irony of what you just said, and what you espouse on your profile is apparent to you?

                                                                                              Musician, writer, poet, annoyingly optimistic, respecting all life, pizza, and other stay at home parents relinquishing careerly life.

                                                                                              Like what? Name some of your sensitivities […]

                                                                                              Not sure what that’ll achieve in this thread, considering we’re talking about the principle in abstract and not literal line items. I’m more than happy to let you know my triggers in advance of any professional interactions–if we actually worked together.

                                                                                              Arbitrary restrictions of free speech will create the biggest chilling effect otherwise

                                                                                              Let’s for the moment forget the fact that we already have arbitrary restrictions of free speech in “Western democracies” (no need to bring up authoritarian governments as strawmen arguments), why does it even matter?

                                                                                              This argument about “chilling effect” follows from an inane logic that one ought to be able to voice whatever opinion they want. Why? What good does that do? Sure, you can say that the grass is purple and the sky is zebra. What’s the point? What does that even mean? There’s infinite many speech that can be voiced, but add absolute zero value. Likewise, there are infinite many speech that can be censored while reducing absolutely zero value.

                                                                                              There’s a happy medium somewhere between “censoring everything” and “not censoring at all”. Extremist positions are rarely tenable in the real world, thankfully.

                                                                                              So no, I think what you ask is a privilege, not a right

                                                                                              If it’s a privilege, as you say, then that means some authority can grant that privilege. So, why not the employer in this context?


                                                                                              If I can use your own word, what “irks” me about your post is that you made a bunch of pontification and gesticulation while not making any logical sense (in short, your conclusion does not follow from your premises). Do you realize that what you said in one sentence is in direct contradiction with another sentence?

                                                                                              Take, for example, what I just quoted above. You say that it’s a privilege, not a right. That implies the privilege can be granted. And that’s precisely what we’re talking about here. The granting of such privileges in a professional setting. No one is expecting this to be enshrined in some UN Declaration of Human Rights.

                                                                                              1. 4

                                                                                                (This is a deeply personal comment, and in no way, shape or form do I expect my experience to generalize. Nevertheless, my experience—for good or bad—forms my outlook on life and how I choose to interact with others.)

                                                                                                I was raised in an environment where “man up” was said frequently, both to me and by me. Perhaps it’s a rationalization, but I think I’m better off for it. Complaining or crying was completely unacceptable. “Are you hurt? Do you need me to call 911?” I’d reply, “No” of course, and I’d get, “Then stop your complaining/crying/whatever.” And for the most part, I did, and it worked. On top of all this, when I was real young, I was bullied. A lot.

                                                                                                When you put that all together, I (very fortunately) learned real fast that the only way I was going to live a fulfilling life was if I took responsibility for my own emotions. I wasn’t going to let someone else’s words ruin my day. And thankfully, I mostly did just that, although I’m not perfect at it. Words still hurt sometimes, it sucks, and then life goes on. I hold this philosophy to this day. I can’t really advocate for it, though, because it’s a deeply personal choice (perhaps not even a choice at all!) and I don’t really know how effective it is for others. Certainly, I know others have a similar practice, so I at least know the sample size is not 1, but still, you can’t just tell someone to “suck it up” if they aren’t already predisposed to that way of thinking.

                                                                                                With all that said, I found your comment to be strangely off point. “Safe spaces” gets a lot of press on Twitter and perhaps on some college campuses, but the reality is a lot simpler than that. If someone is going to hurl an insult or make a comment that is too personal, all you need to do is ask, “Could you phrase that more productively?” Or perhaps, “What were you hoping to achieve with this?” Now, some people really are just trolls and want to watch the world burn, and whether they’re playing that as an act or not, I find them absolutely contemptible. But thankfully, most in my experience aren’t like that and they probably just didn’t mean to say something that you thought was unproductive. Most folks just apologize and move on.

                                                                                                I have similar emotional reactions as you to words like “trigger” and “safe place.” They aren’t words I like using, precisely because they do play up the victim mindset (from my perspective, at least), and that’s just not my cup of tea. However, I do strongly believe in some of the ideas that those words tend to encapsulate, like respecting your fellow human. Someone doesn’t need to “earn” my respect. They get it by default because I want others to be their best selves. If I start playing some “earn my respect” bullshit with them, then all I’ve succeeded in doing is 1) started mind games with them and 2) put up barriers to collaborating with their best selves. At a minimum, I am going to be nice to people as best as I can. I don’t always succeed, and I apologize when I’ve failed. But I try. And you know what? I’m not afraid to say that it’d be nice if other people did the same. It’s the minimum we can do to ensure an open exchange of ideas. You can talk about free speech all you want, but if you encourage insults or jerky behavior (or perhaps more realistically, don’t discourage that behavior), then you wind up with a situation where people are afraid to stand up and speak their mind. That’s a bad thing. Whether it’s because they’re not able to “suck it up” or not does not matter.

                                                                                            3. 1

                                                                                              TDD - It Really Works

                                                                                              I beg to differ. This is a baseless claim.

                                                                                              1. 2

                                                                                                This is just my personal experience, but I would say it’s a night and day difference between companies that TDD and companies that don’t.

                                                                                                In my first week at a new I’ve fixed two long-term bugs (one was four years old, one was three months) that would never have made it into production had they been tested. They’re little things that a fully-fleshed out testing suite would’ve found.

                                                                                            4. 2

                                                                                              This…this is a great list. Does anyone know of any such companies?

                                                                                              1. 1
                                                                                              2. 1

                                                                                                Can you guarantee that I’ll never, ever hear someone say “coding rockstar” unironically?

                                                                                                My place of work nailed all your points until this one. Thankfully it never came from the development team itself.

                                                                                              1. 4

                                                                                                Interesting choice, I was also thinking of teaching JavaScript over Python to a friend who has had absolutely zero programming knowledge (and very little computer knowledge in general).

                                                                                                I went with Python in the end (via Codecademy), and I’m not sure if this was the right choice. The spacing aspect proved slightly cumbersome to get used to, as using a keyboard was not a super natural way of input and they typed very slowly (not handicapped–just not a frequent user of computers; their smart phone is their primary computational device). They hated typing spaces (code they wrote would look like foo=str(a+b-d/b)+"bar"), and doubly so for the stringent spacing requirement in Python.

                                                                                                Prototyping and experimentation is very cumbersome as installing and using the command line was not something my friend was used to at all (vs. just right click -> open inspector for JS, all in the same program that they use for FB and everything else).

                                                                                                I think the most important aspect of zero-knowledge programming introduction should be on ease of access and fast iteration, and JavaScript absolutely destroys all competition on both fronts. And it’s not like JavaScript in 2017 is a toy language anymore, so I applaud Stanford for experimenting with teaching it in their intro class.

                                                                                                Unrelated to my own comment, but a comment left by Leland on the blog mentions:

                                                                                                I think the headline is a bit misleading. Java is not gone from Stanford’s huge intro course CS106A and C and C++ are not gone from CS106B or CS 107. Looks like they are experimenting with a pilot version CS106J that uses Javascript.

                                                                                                1. 6

                                                                                                  also thinking of teaching JavaScript over Python

                                                                                                  I’ve agonised over this choice a little myself.

                                                                                                  On the one hand, JavaScript is ubiquitous, it’s easy to make motivating examples like GreaseMonkey scripts, it’s really easy to share the things you’ve made with people, you can’t even buy a computer which doesn’t come with a decent JavaScript interpreter preinstalled. If you use some of the ES Harmony and ES2015 features (and just ignore old-browser compat instead of getting mired in compiler stacks, at least at first) then it’s actually, well, a lot more pleasant than it used to be.

                                                                                                  On the other hand, everything-is-asynchronous is a terrible thing to stump a first-time programmer with. :(

                                                                                                  1. 2

                                                                                                    you can’t even buy a computer which doesn’t come with a decent JavaScript interpreter preinstalled.

                                                                                                    Really? None of my last four computers came with an operating system, let alone a web browser preinstalled.

                                                                                                    1. 3

                                                                                                      Okay, you got me. Pedant! :)

                                                                                                      Maybe I should go bribe someone at American Megatrends Inc to ship some functionality implemented in Node in future versions of their BIOSes, just so I can contradict you at some point ~20 years in the future. ;)

                                                                                                      1. 1

                                                                                                        Crowd fund? Although I shouldn’t joke, there is probably a crowd fund for rewriting BIOSes in rust.

                                                                                                  2. 5

                                                                                                    And it’s not like JavaScript in 2017 is a toy language anymore, so I applaud Stanford for experimenting with teaching it in their intro class.

                                                                                                    A first language has to do much more for students than not being a toy. Unless you want to spend a second semester teaching more programming languages, it has to be good for the kinds of things that they will have to learn after their first semester, like:

                                                                                                    • Data structures and algorithms
                                                                                                    • Modular programming
                                                                                                    • Databases, compilers, network programming, etc.
                                                                                                    1. 1

                                                                                                      A first language has to do much more for students than not being a toy.

                                                                                                      Yes, like I mentioned:

                                                                                                      I think the most important aspect of zero-knowledge programming introduction should be on ease of access and fast iteration

                                                                                                      it has to be good for the kinds of things that they will have to learn after their first semester, like…

                                                                                                      I would in fact rather classes taught using the right tool for the right job. For an introduction, the ability to iterate quickly and try out many different programming constructs to introspect their result trumps other technical considerations. The key focus here is to allow them to build a mental model of how computers interpret their textual inputs and the general flow of a “program”.

                                                                                                      For the record, my introductory CS class used Python (this was in 2007), and second year classes used C/Java (depending on what was being taught).

                                                                                                      Just because a first year introductory classes taught one thing doesn’t mean the rest of the institution is now stuck using that same language.

                                                                                                  1. 9

                                                                                                    Libreboot’s reasoning for leaving GNU: https://libreboot.org/gnu/

                                                                                                    1. 5

                                                                                                      I just realized that the author was kind enough to bring the demo back up temporarily because of Lobste.rs!

                                                                                                      (update: the demo is back online for a little while, just for you lobsters)

                                                                                                      This is an interesting feeling. Has Lobste.rs hit critical mass and achieved a minor slashdot/HN effect?

                                                                                                      @admins: Do we know how much traffic we actually sent their way via unique click-throughs? Would be nice to know if it’s okay to share it :)

                                                                                                      1. 6

                                                                                                        I’m curious, too, if it’s because the author was a Lobste.rs reader following the front page or a lot of traffic. It’s the first time I’ve seen a site do something for Lobste.rs since I’ve been on here. One that wasn’t created by a member for the members or something like that.

                                                                                                      1. 3

                                                                                                        As a user, I’m much happier to have a long-lasting phone that might forget a couple of seconds of data than a device that has to be trashed after a year of use.

                                                                                                        A few seconds of data loss is the difference between “I can access my mobile app’s data after a sudden power loss” and “all my work in a particular app is now corrupt, wtf!?”. Sure, if the developer is using a power-loss resistent (not immune) data storage solution like SQLite, then the problem is alleviate somewhat, but I specifically buy SSD’s with capacitors for that last-few-seconds-of-write to prevent data loss during a power outage situation, I’d prefer my phone did the same.

                                                                                                        NAND write endurance failures are also horribly overblown (both in this article and elsewhere), I used my Crucial M4 SSD as the primary drive & swap file for years and after dozens of terabytes of writes, it was still going strong (and relatively fast–though I don’t know what % of a performance degradation it’s been through). Then that laptop was stolen, but alas, no amount of fsync would have prevented that data loss :P

                                                                                                        Also, as the author noted in a small footnote update, a slightly slower FS will not manifest itself as user-facing UI latency as Android (like iOS) do not run animations on the main OS thread, so the title of “lags 10x more” is really a misnomer.

                                                                                                        1. 1

                                                                                                          The author points out that phones really are a special case… when do they ever experience sudden power loss? Particularly when the battery is not removable, it seems less likely than for desktops.

                                                                                                          1. 5

                                                                                                            When they crash and you have to force reboot them.

                                                                                                            1. 1

                                                                                                              When the battery dies because I’ve been using it all day and I’m on a bus or something rather than near a wall outlet.

                                                                                                              1. 1

                                                                                                                Right, but that isn’t sudden power loss. The OS can tell that the battery is low and has the opportunity for a graceful shutdown.

                                                                                                                1. 3

                                                                                                                  Right, but that isn’t sudden power loss. The OS can tell that the battery is low and has the opportunity for a graceful shutdown.

                                                                                                                  Lithium ion batteries have an “cutoff voltages” for “out of power” (~3.1v), however getting to that voltage is NOT a linear curve with a predictable time range. The micro-controller in a lithium ion battery pack uses many heuristics to guess at the remaining % of battery left based on many criterion (including, but not limited to, current power draw and past behaviour), and is susceptible to significant drift over time.

                                                                                                                  I’m surprised that you have never seen a case where your phone thinks it still has X% of battery left (where X is clearly bigger than 1%) and the phone shuts off suddenly. It’s happened to me on a number of occasions, and I’m glad none of those cases resulted in any data loss.

                                                                                                                  I have a 3 year old iPhone 5S, and the most recent egregious occurrence I can think of is it was stuck at 17% for hours, and then suddenly shut down.

                                                                                                                  And the iPhone is well regarded when it comes to battery management. I can’t imagine how much less reliable the average Android phone’s battery controllers are when it comes to reporting an accurate charge remaining. Sure, we all know of designed obsolescence, and perhaps I should get a new phone, but that would be counter to one of the objectives that the author of the article laid out, which is to have a long lasting phone (by life span, not battery life).

                                                                                                                  1. 2

                                                                                                                    Funnily enough, the only friends of mine who complain about their battery life are iPhone users. ¯\_(ツ)_/¯

                                                                                                                    I’ve only ever owned Samsung smartphones (Galaxy S3 and S5) and have never experienced sudden power loss, but thanks for setting me straight. I didn’t realize it was common.