1. 13

    Google’s effort to create a censored search engine for the Chinese market that enables state surveillance.

    My abiding reaction reading this is what utter hypocrisy.

    Surveillance is acceptable when it’s for corporate interests?

    Tracking every possible crumb of data - not only across the internet through analytics. fonts, hosting jquery et.al but physical location too - which is no doubt stored forever in their data centres.

    1. 15

      I wouldn’t say acceptable, but I I think selling ads is a very difference application than state persecution, imprisonment, and execution.

      I mean, I agree is a little bit hypocritical, Google tracks way to much stuff and it’s potentially a bad thing, but collaborating with a totalitarian state known to kill dissidents is way worse.

      1. 1

        I think the line being drawn is the technology being used by organizations to kill people who, by our standards, didn’t warrant killing.

    1. 9

      I really don’t understand why people choose to write on Medium since the reader experience is so awful.

      1. 1

        the reader experience is better than a lot of journalistic places.

        The alternative for lots of medium content is either on some newspaper website, or on your own blog (or I guess something like blogspot?). Better looks are possible, but require access to some sort of design sense that most people simply don’t have.

        “But you can make a simple layout that is nicer than Medium”. Well, you can, but they don’t necessarily know this or have the skills to make a simple thing.

        1. 1

          Network effect is my guess.

          Initially medium was a good tool for writers and readers and they grew aggressively and so it’s reputation grew. So many links to medium on reddit, here, HN etc.

          If you’re interested in getting your links/likes/upvotes/ideas/brand/… across why not go where more people visit?

        1. 2

          Is that magicless-fallback generally part of libc, or only in OpenBSD? For some reason I assumed the kernel did the fallback in that case.

          Also, why is it important that shell-scripts can be run, but shell-scripts without a #! cannot? Is it guarding against the case where an evildoer can chmod +x and append evil commands to a non-shell-script whose content the shell would naturally ignore?

          1. 4

            The magic fallback is a defined part of standard execvpe interface.

            It’s not particularly important. It’s a relic of the past where bits and pieces of “do what i want” snuck in. The shell, sh, should probably be just another command, but it’s kind of special, and then it was convenient to make it try interpreting x files without headers, and then people wanted every program to behave like the shell does.

            The net result of littering this feature around is that future compatibility is hard because you can’t really look at or change one piece of code in isolation.

            1. 1

              I don’t know, but if someone’s able to issue chmod +x successfully then can’t they just add a #! at the beginning of the script - whether it’s on disk or in memory?

              1. 1

                Adding +x requires permissions to write the directory inode, whereas adding #! requires write permissions to the file, so it is subtly different.

                1. 1

                  Adding +x requires permissions to write the directory inode

                  Huh? That’s not the case in any situation I can concoct…consider the existence of fchmod(2), for example.

              2. 1

                I can imagine a case where running certain files through certain shell interpreters, as opposed to a language’s interpreter, can be to the attacker’s advantage.

              1. 13

                I love it. It’s like Terminus with significantly better curly braces.

                Also, you have slashed zeroes, which is what all correct-thinking people prefer.

                1. 2

                  Also, you have slashed zeroes, which is what all correct-thinking people prefer.

                  I use a copy of Droid Sans Mono that I edited to have slashed-zeros. I love the font, but without slashed zeros (or even dot-zeros) it’s useless for coding.

                  Terminus doesn’t render properly on Windows, which is a shame, As Spleen is a bitmap font, I’m guessing I need .fon versions for Windows ?

                  1. 4

                    For those that can’t (or don’t want to) edit fonts cosmix.org have a Droid Sans Mono with both dotted and slashed zero varieties.

                    Arch users can get it from the AUR

                    Powerline version too

                    1. 1

                      Yes, I think .fon is the required format for bitmap fonts on Windows. I’ve generated some .fon files for all sizes here, but I don’t have access to any Windows machine, so I cannot test them. It would be nice if you could try and report results, thanks!

                      1. 1

                        Ok I’ve had a go. They don’t render in Windows at all. :( Windows just shows ‘Courier New’ when I preview the files. Looking via HEX viewer, it seems that your .fon files are missing extra (repeated) meta-data that Windows seem to need. Thanks tho!

                  1. 45

                    I use and love linux, and have read many things about Linus being abusive and what not. I am on the spectrum and wasn’t diagnosed til my 40s. Looking back on my earlier adult years, I was described as abrasive, obnoxious, and many others.

                    I tend not to suffer fools lightly, but somehow, on my own have learned better self-editing skills. Hopefully Linus will figure this out, because it truly will benefit everyone in the community.

                    1. 11

                      on my own have learned better self editing skills.

                      Any tips? I’m probably in a similar position but am trying to be less of an asshole.

                      1. 22

                        Wow. I wish I had a great answer for this. Feeling things, ANYTHING, has always been hard for me, but one thing that has always made me feel things is art. Music and cinema are usually where I go. When something in either of those arenas makes me feel something, I reflect on it and think. I think about that feeling and how it might apply to me and others, and I dunno, maybe it’s re-written my brain wiring a little bit.

                        I guess one basic thing I also do is just not respond sometimes. I give it time, and think about it. When I’m on the internet now, I can’t tell you how many times I’ve started a reply, and then just bailed on it, and never sent it. Or I’ve started a reply, and copied it into my clipboard so I could spend a little time thinking if I really wanted to send it. It’s in the clipboard if I need it.

                        Whereas 30+ years ago, if I was on my BBS or another, I would just furiously write a reply or a message and just hit save, without thinking. So maybe some of this has come with age, also. Supposedly we get wiser as we get older.

                        1. 14

                          I am (was?) also in a similar situation. I never insulted people, like Linus, but I would give very blunt feedback, because that’s how I like to receive feedback. It took me a while (I’m in my thirties now) but I eventually recognised that different people respond differently to different styles of feedback. So I would observe other people’s communication styles, and then mimic a person’s style when giving them feedback. It felt dishonest and almost manipulative at first, but I noticed how much smoother my interactions would be, and after a while I could do it without much effort. It made me more effective in teams, and I think my coworkers feel more positive about working with me these days.

                          1. 7

                            Don’t reply on impulse. Play devil’s advocate when reading your replies. When in doubt, clarify that you are criticizing an idea or a behavior and not attacking the person behind it. If necessary, acknowledge and repeat back what the other person wrote to ensure you are understanding each other before responding.

                          2. 3

                            I am on the spectrum and wasn’t diagnosed til my 40s.

                            This is what surprises me about this post - and your comment. I’m not being judgemental - I’m just ignorant about the condition(s) other than exposure in the media - which must be the worst way to learn about anything.

                            Linus is married and I expect he has a social circle apart from his professional and technical contacts.

                            I’m surprised he hasn’t come to realise until now. Still good for him to publicly admit and address it - that alone takes a lot of bravery - including your comment.

                            1. 11

                              It was actually someone in my social circle who suggested I read Jon Elder Robison’s book, Look Me in the Eye, which began my journey. She said I reminded her a lot of him. When I was in grade school, Aspergers wasn’t really a thing to the point of mass awareness. When it became a thing, I was already in high school. I surely would have benefited from some special education in my more formative years of grade school, but instead I had to learn it the hard way through social failure. This method wasn’t always successful, either.

                              Relationships of all sorts still baffle me, and I often question peoples’ choices when they make a beeline for the worse possible decision, when the best choice is obvious to me, but hey.

                              Human behaviour is so broad that I suspect people on the Aspergers side of the spectrum were just dismissed with people saying, “Oh, that’s just John being John.” In my family, the behaviour was probably more accepted because after my diagnosis, and learning what to look for, it’s clear that my dad is on the spectrum, also. So my behaviour was just probably explained by “the apple not falling far from the tree.”

                              Despite that, my mom definitely didn’t have the patience for a kid on the spectrum. It was bad.

                              But becoming self aware later in life, from where I sit, is a common thing. With age comes wisdom, hopefully.

                              1. 2

                                Thanks for taking the time to reply,

                                I was sent on a management course once which turned out to be a cleverly disguised self-improvement course but I think the thing that stayed with me more than anything was the instructor saying that “people are messy” - his exact phrase, repeated several times. I think part of what he meant was that there is no logic and no rules that govern everybody and every single relationship is unique and challenging in its own way.

                                That freed me from a lot of prejudice and stress I think. Although it may sound scary that you can’t rely on a set of instructions or a template for dealing with people, it’s also quite liberating and helped me avoid stereotyping people and treat them more individually rather than thinking there is some cultural, racial, religious (or any other) “norm” for anyone.

                                1. 3

                                  One thing I learned from working for this particular boss was, “What’s true for me isn’t necessarily true for you (or others). What struck me was a particular example he gave at a staff meeting, one day. This company had an inside sales force. It was phone stuff. They never left the office unless we went to trade shows, but he made them all wear ties because, “Wearing a tie makes you feel better, doesn’t it?” Well speaking for myself, it didn’t. Anything on or near my adam’s apple makes me gag, and wearing a tie all day was torture. The lesson learned was that HE didn’t see that what was true for him, wasn’t always true for everyone else. I applied that lesson to myself from that day forward. I think in management there are some universal truths about respect and behaviour that must apply to everyone, and then there’s all that individual relationship stuff you talked about.

                                  I also know that being on the spectrum, and being awesome like we are, doesn’t always allow us to see these things so clearly in the moment. After all it’s literally a brain wiring thing.

                                  For example. I see a person in this thread replying to everyone about how Linus doing what he is doing is BAD and this and that. I’m beginning to wonder if this person might not be on the spectrum, also, and might be unaware of what they’re putting out into the universe.

                                  Thanks to everyone who’s having a reasonable and rational discussion about this.

                                  BTW, I occasionally host panels at Sci Fi cons about Aspergers and Neuro-diversity with the title, “Sheldon, Asperger, and You,” and they have all been wildly successful. My hope is always to give someone else the gift of self awareness I got when my friend suggested Jon Elder Robison’s book to me.

                          1. 4

                            Hopefully they only hide www. when it is exactly at the start of the domain name, leaving duplicates and domains in the middle (like notriddle.www.github.io and www.www.lobste.rs) alone.

                            1. 43

                              How about just leaving the whole thing alone? URI/URLs are external identifiers. You don’t change someone’s name because it’s confusing. Such an arrogant move from google.

                              1. 11

                                Because we’re Google. We don’t have to care know better than you.

                                1. 3

                                  Eventually the URL bar will be so confusing and arbitrary users will just have to search google for everything.

                                  1. 5

                                    Which is of course, Google’s plan and intent, all along. Wouldn’t surprise me if they are aiming to remove URLs from the omni bar completely at some point.

                                2. 3

                                  It’s the same with Safari on Mac - not only do they hide the subdomain but everything else from the URL root onwards too. Dreadful, and the single worst (/only really bad) thing about Safari’s UI.

                                  1. 3

                                    You don’t change someone’s name because it’s confusing

                                    That’s why they’re going to try to make it a standard.
                                    They will probably also want to limit the ports that you can use with the www subdomain, or at least propose that some be hidden, like 8080

                                    1. 2

                                      Perhaps everyone should now move to w3.* or web.* names just to push back! Serious suggestion.

                                    2. 1

                                      Indeed, but I still think it is completely unnecessary and I don’t get how this “simplifies” anything

                                    1. 3

                                      I can’t read that page. I see it as a purple background with a faint red texture on it. Does chrome on Android have a high contrast feature?

                                      1. 4

                                        Ugh, with JavaScript disabled it’s even worse. The text isn’t even readable.

                                        1. 4

                                          Luckily Firefox has Reader View (and similar for other browsers.)

                                          I’m not against making things look pretty, but no default way to read simply plain text is just unforgivable.

                                          1. 3

                                            Thanks for the feedback, I’ll go through it with our web team to improve things in the future! It’s a shame for our authors if their content cannot be read.

                                        2. 3

                                          There’s some sort of scroll monitoring script that turns the background white, do you have javascript enabled?

                                          1. 1

                                            Thanks for replying! The second time I tried the site, it suddenly turned white and I could read it.

                                        1. 34

                                          I’m impressed by the lack of testing for this “feature”. It may have a huge impact for end users, but they have managed it to ship with noob errors like the following:

                                          Why is www hidden twice if the domain is “www.www.2ld.tld”?

                                          Who in their right mind misses that, and how on Earth wasn’t it caught at some point before it made it to the stable branch?

                                          1. 11

                                            url = url.replace(/www/g, '') - job well done!

                                            1. 21

                                              Worse

                                              What’s really eye-opening is that comment just below wrapped in the pre-processor flag! Stunning.

                                              1. 9

                                                Wow, so whoever controls www.com can disguise as any .com page ever? And, as long as it’s served with HTTPS, it’ll be “secure”? That’s amazing.

                                                1. 5
                                                  1. 5

                                                    Not just .com. On any TLD so you could have lobster.www.rs

                                                  2. 3

                                                    If I may ask, how is this worse than url = url.replace(/www/g, '')? If anything, the current implementation use a proper tokenizer to search and replace instead of a naive string replace.

                                                    1. 2

                                                      That’s just my hyperbole.

                                                2. 10

                                                  Right, the amateurishness of Google here is stunning. You’d think with their famed interview process they’d do better than this.

                                                  On a tangential rant, one astonishing phenomenon is the helplessness of tech companies with multibillion capitalizations on relatively simple things like weeding out obvious bots or fixing the ridiculousness of their recommendation engines. This suggests a major internal dysfunction.

                                                  1. 14

                                                    To continue off on the tangent, it sounds like the classic problem with any institution when it reaches a certain size. No matter which type (public, private, government…), at some point the managerial overhead becomes too great and the product begins to suffer.

                                                    Google used to have a great search engine. It might even still be great for the casual IT user, but the signal-to-noise ratio has tanked completely within the past ~2 years. Almost all of my searches are now made on DuckDuckGo and it’s becoming increasingly rare that I even try Google, and when I do it’s mostly an exercise in frustration and I spend the first 3-4 searches on quoting and changing words to get proper results.

                                                    1. 5

                                                      Large institutions collapsing under their own managerial weight is more of a ‘feature’ in this case.

                                                      1. 1

                                                        What are a few examples of queries for which DDG produces better results than Google?

                                                        1. 2

                                                          I’m not able to rattle off any examples, sorry. I’ll try to keep it in mind and post an example or two, but don’t hold your breath :)

                                                          I’ve been using DDG as my primary search engine for 2-3-4 years now, and have tried to avoid Google more and more in that same time frame. This also means that all the benefits of Google having a full profile on me are missing from the equation, and I don’t doubt that explains a lot of the misery I experience in my Google searches. However, I treat DDG the same and they still manage to provide me with better search results than Google…

                                                          In general every search that includes one or more common words tend to be worse on Google. It seems to me that Google tries to “guess” the intent of the user way too much. I don’t want a “natural language” search engine, I want a search engine that searches for the words I type into the search field, no matter how much they seem like misspellings.

                                                  1. 5

                                                    I think it’s worth linking to the whole course too.

                                                    It’s a shame the slide show doesn’t respond to mouse clicks below the main text. The arrow keys work, but I spent a minute or so clicking like an idiot before the next slide showed up.

                                                    1. 3

                                                      Yeah, the lecture notes on the GHC implementation seem a bit easier to digest than the slides.

                                                    1. 1

                                                      Here’s my issue with this article. The author posits that most podcatchers will remove the ability to subscribe via a URL.

                                                      This makes no sense to me at all. There are many cases where people might want to listen to podcasts not offered through GOOG or APPL.

                                                      Every podcatcher I have access to still supports and explicitly provides options for this.

                                                      1. 5

                                                        Op here,

                                                        I’m saying “I won’t be surprised if these apps gradually and silently remove this feature”. Of course, I can’t know this, but this is what I’m afraid of. And I don’t think it’s that crazy to imagine.

                                                        1. 1

                                                          It’s a valid concern. I guess I feel like as long as there’s any kind of application ecosystem on a given device, there will always be a podcatcher that allows subscriptions via bog standard RSS URL.

                                                        2. 4

                                                          I subscribe to a lot of RSS feeds, including podcasts and there’s been a worrying trend over the last year or two where new podcasts don’t even provide a direct RSS/Atom feed.

                                                          You have to visit their site to download the mp3 manually like some kind of animal. Or worse still, they make some stupid javascript widget or expect you to use a 3rd party app, or they proudly say it’s on itunes - which doesn’t expose the RSS feed - I had to write a scraper to get the RSS feed from the itunes page myself.

                                                          Same with blogs too. So many blogs now don’t have a feed. You’re expected to go to the site to check for new content.

                                                          The slow demise of RSS/Atom is a really worrying situation fo me and very few people seem to care.

                                                          1. 1

                                                            That is disappointing, and surprising given that there are companies like Feedly and Flipboard among others whose sole business relies on consuming RSS-ish feeds.

                                                          2. 1

                                                            How was the author saying that? Sounded like they were saying the other way around, if a podcaster posts just over RSS on their site then users on just Apple won’t see it on Apple by default.

                                                            1. 2

                                                              I think you’re conflating two things.

                                                              There are two problems here:

                                                              1. Unless you take explicit steps, merely publishing an RSS URL will not get your podcast into iTunes/Google Play
                                                              2. The author is worried that podcatchers (which now all provide this feature, if perhaps in an undocumented way for some) will remove the capability of subscribing to podcast RSS feeds via URL.
                                                              1. 2

                                                                Oh you said podcatcher. I read that as podcaster because I never heard of it called a podcatcher but that makes sense now.

                                                          1. 2

                                                            What a delightful API.

                                                            No questions, but I’d really like to see a link to the source code along with the docs though.

                                                            1. 18

                                                              Sounds like the C version of English As She Is Spoke

                                                              1. 5

                                                                My wife teaches English and will really appreciate this. Thanks!

                                                                1. 3

                                                                  This type of naive translation is really common. A personal favourite

                                                                1. 3

                                                                  Nice to know about – I’ve got a few python scripts that’ll help clean up a bit.

                                                                  (Note also the <<- here-doc variant, which is similarly convenient when writing shell scripts.)

                                                                  1. 3

                                                                    Here docs/strings are awesome.

                                                                    Another use case I like (beyond ascii art) is embedding test text file contents in a string along with the test itself. When you come back to it later, instead of the indirection of looking up the contents of an external file and cluttering up the file system, you have it right there with the test.

                                                                    1. 5

                                                                      Perl has __DATA__, which is places at the end of the code in the file, and everything which comes after you can read with the DATA filehandle (I don’t know where Larry stole this idea from).

                                                                      So a file looks like:

                                                                      #!/usr/bin/env perl
                                                                      
                                                                      print "here be dragons!\n"
                                                                      __DATA__
                                                                      {
                                                                         "id": 42
                                                                      }
                                                                      

                                                                      and you can read that last bit by passing a filehandle along. Pretty nice to embed simple stuff in test files, for example.

                                                                    2. 1

                                                                      Note that the <<- heredoc form only works on text indented with tabs, other kinds of white space will be ignored.

                                                                    1. 2

                                                                      I think I’ll recognise SICP code forever.

                                                                      1. 10

                                                                        This just makes me think of when Facebook bought Oculus and everyone was like, “Well fuck, I really wanted on, but I guess not now.”

                                                                        It’s interesting even how, a decade past the days of Bill Gates as a Borg, even as our community has matured and we don’t had on MS anywhere near as much as we use to, we still see this as not something we really want.

                                                                        I agree, Microsoft is really not the company to be running Github. I wonder if it will still stay strong or end up going the way of Source Forge.

                                                                        1. 32

                                                                          Well, for me, it’s not the ancient past so much as present. They patent troll the crap out of companies. That’s anti-innovation that will control an innovation hotbed. The Windows 8 UI debacle and them putting ads on paid services like Live makes me weary of UI-facing changes they might do. Then, they put surveillance into their products mostly for advertisers but maybe governments, too. They do this is in paid products which arent those you expect to sell your info.

                                                                          So, the company’s current actions show they suck in a lot of ways which include screwing over their customers and suing innovators. Bad fit for Github.

                                                                          1. 33

                                                                            Not even the ancient past:

                                                                            • Spying on your activities through telemetry
                                                                            • Not providing full opt-outs in compliance with GDPR
                                                                            • Installing stuff onto your computer without your consent like Candy Crush
                                                                            • Forced updates, sometimes regardless of whether you’re doing something uninterruptable at the time

                                                                            That’s just off the top of my head for Windows 10 as of now.

                                                                            1. 10

                                                                              Spying on your activities through telemetry

                                                                              Telemetry seems to be getting built into everything now as well, Visual Studio and Code, SQL Server, the OS (backported into Win 7 and 8 too), not sure about Office (offline) but it can’t be far behind if not already in there.

                                                                              1. 1

                                                                                It’s in .NET IIRC.

                                                                              2. 3

                                                                                Installing stuff onto your computer without your consent like Candy Crush

                                                                                Is the crapware issue really on Microsoft, or OEMs like Dell and HP?

                                                                                1. 1

                                                                                  Its my understanding its on the home/free versions. The LTSB version is the cleanest.

                                                                                    1. 1

                                                                                      Damn. Windows got even shittier. I honestly didn’t think it possible.

                                                                              3. 6

                                                                                It doesn’t matter to me if it’s Microsoft or not. If Microsoft hadn’t acquired Github, then some other megacorporation probably would have. It just so happens that Microsoft is trying to mind its manners after getting pimp-slapped by Google, Apple, and Facebook, but I’m not going to trust them just because they’re currently the underdog.

                                                                                The problem isn’t Microsoft. The problem is the way we allow corporations to operate in the US. Every time one corporation acquires another, the acquiring corporation becomes bigger and more powerful.

                                                                                This might seem quaint, but I don’t think that corporations as large as Microsoft, Facebook, Apple, AT&T, Alphabet, Comcast, Samsung, Disney, etc. should be permitted to exist. I think they’re inherently inimical to free markets and to democracy. I think that when a corporation’s market capitalization exceeds a certain threshold, it should either be regulated as a public utility, broken up, or dissolved.

                                                                                1. 16

                                                                                  If you try to build it yourself, their build script also appears to download and inject additional code into the built artifact from marketplace.visualstudio.com during the build. I opened one two three issues.

                                                                                  1. 11

                                                                                    My guess is that these practices that disrespect or completely ignore users privacy, like requiring an internet connection (whether to build or just to use a piece of software - even the OS itself) are so deeply baked into Microsoft’s mental culture now there’s no going back. It’s just a given now that they assume they are entitled to grab and record whatever information they want from your machine just in order to use their software.

                                                                                    It’s not just Microsoft, many companies seem to be jumping on the same or similar bandwagon.

                                                                                    1. 6

                                                                                      The same thing happens when you try compiling coreclr (called from here), there’s no way to properly bootstrap it. (And of course, there’s some “telemetry” in there as well, enabled by default during the build, before you have a chance to turn it off.)

                                                                                      1. 7

                                                                                        The same thing happens when you try compiling coreclr

                                                                                        Wow, now I wonder whether this pattern happens in other Microsoft “open source” projects.

                                                                                        And you gotta love this comment:

                                                                                        # curl has HTTPS CA trust-issues less often than wget, so lets try that first.

                                                                                    1. 6

                                                                                      Amazing. Well written, well researched and concise. Parsing is such an interesting problem - it arises naturally almost anywhere you find text.
                                                                                      I’ve read the phrase “parsing is a solved problem” so often in discussions about it but this article puts that in its place. Thoroughly.

                                                                                      1. 5

                                                                                        Parsing is a solved problem in the sense that if you spend enough time working on a grammar it is often possible to produce something that Bison can handle. I once spent several months trying to get the grammar from the 1991(?) SQL standard into a form that Bison could handle without too many complaints.

                                                                                        Bison’s GLR option helps a lot, but at the cost of sometimes getting runtime ambiguity errors, something that non-GLR guarantees will not happen.

                                                                                        So the ‘newer’ parsing techniques don’t require so much manual intervention to get them into a form that the algorithm can handle.

                                                                                        1. 3

                                                                                          I think that usually means for most languages and problems people are applying it to. If so, then it probably is a solved problem given we have parsers for all of them plus generators for quite a lot of those kinds of parsers. Just look at what Semantic Designs does with GLR. There’s FOSS tools that try to similarly be thorough on parsing, term-rewriting, metaprogramming, etc. At some point, it seemed like we should be done with parsing algorithm research for most scenarios to instead polish and optimize implementations of stuff like that. Or put time into stuff that’s not parsing at all much of which is nowhere near as solved.

                                                                                          I still say it’s a solved problem for most practical uses if it’s something machine-readable like a data format or programming language.

                                                                                          Note: It is as awesome an article as you all say, though. I loved it.

                                                                                          1. 5

                                                                                            A solved problem, but for a subset of constrained grammars and languages. Still people say it without any qualification as if there’s nothing more to be said or understood.

                                                                                            I take your points though and there are definitely other areas that need work.

                                                                                            I think my point is just that I’m glad people are still putting effort and research into solved problems like this. No telling where breakthroughs in one area can lead and we’re still restricted constructing and representing language grammar.

                                                                                            1. 3

                                                                                              A solved problem, but for a subset of constrained grammars and languages. Still people say it without any qualification as if there’s nothing more to be said or understood.

                                                                                              Yeah, they should definitely be clear on what’s solved and isn’t. It’s inaccurate if they don’t.

                                                                                        1. 3

                                                                                          I don’t think I’ve ever seen a talk by Guy Steele that wasn’t compelling and this is a true classic. He’s a great thinker and a really talented presenter to boot.

                                                                                          1. 4

                                                                                            *sigh* continuations are one of those things I have trouble with.

                                                                                            The conceptual idea is easy enough to grasp, but I have trouble reasoning about them in code - especially about when they would be a useful choice.

                                                                                            If anyone has links to some good material about continuations with real world practical use cases - not just the simple arithmetic expressions, I’d really appreciate them.

                                                                                            1. 7

                                                                                              I think that they are useful as language building tool, but not a sensible choice for your everyday programming. You (or preferably the base library authors) should hide them in more opinionated abstractions. Much like we hide goto with various flow control mechanisms.

                                                                                              It’s simple to implement cooperative threading with proper IO scheduler using continuations, you can also implement generators or exception handling system.

                                                                                              1. 3

                                                                                                I had trouble with them as well and ended up building them into my statement-oriented language to understand them better. Perhaps that works better for you, like it did for me?