1. 13

    Fails to deliver on the promise of an unthinkable thought.

    1. 4

      The author seems to be thinking that the Smalltalk programme had some merits that the current PLT programme doesn’t, which I find unthinkable. So it delivered as far as I’m concerned.

      1. 3

        Most tantalizing question was:

        ..when and why did we start calling programming languages “languages”?

        1. 3

          That seems neither unthinkable nor unanswerable. I mean, I don’t know the answer off hand, but there’s a finite number of papers one can read to find out.

          1. 1

            Yup. I wasn’t disagreeing with you.

          2. 1

            The same reason earlier formal languages like predicate logic are called languages.

            1. 1

              Uhh, citation required?

              1. 2

                Do you not think computer languages are formal languages? Do I need a citation if I say English is a natural language?

                1. 1

                  Ah, that link/term is helpful. Thanks!

                  I’m sorry I’m annoying you.

                  Do I need a citation if I say English is a natural language?

                  No, but the whole point under discussion is why our terminology connects formal languages with natural languages. When did the term “formal language” come to be? The history section in your Wikipedia link above mentions what the term can be applied to, but not when the term was coined. Was it coined by Chomsky at the dawn the field of mathematical linguistics? That’s not before computers, in which case the causality isn’t quite as clear and obvious as you make it sound.

                  I’ll stop responding now, assuming you don’t find this as interesting as I do.

                  Edit: wait, clicking out from your profile I learn that you are in fact a linguist! In which case I take it back, I’m curious to hear what you know about the history of Mathematical Linguistics.

                  1. 3

                    Was it coined by Chomsky at the dawn the field of mathematical linguistics?

                    It’s at least older than that. The term “formal language theory” in the sense of regular languages, context-free grammars etc. does date to Chomsky. But the idea that one might want to invent a kind of “formal” language for expressing propositions that’s more precise than natural languages is older. One important figure making that argument was Gottlob Frege, who was also an early user of the term (I’m not sure if he actually coined it). He wrote an 1879 book entitled Begriffsschrift, eine der arithmetischen nachgebildete Formelsprache des reinen Denkens, which you could translate as something like, Concept-Script, a formal language modeled on that of arithmetic, for pure thought.

                    1. 1

                      Thanks a lot for that elaboration on the Frege link!

                    2.  

                      In general they’re all languages because they have a syntax (certain combinations are ‘ungrammatical’ or produce interpreter/compiler errors) and a (combinatorial) semantics (the basic symbols have meaning and there are rules for deriving the meaning of [syntactic] combinations of symbols).

                      Formal languages go back at least to Frege’s Begriffsschrift of 1879, which isn’t before Babbage described the Analytical Engine (1837) but certainly before digital computers. And there are precursors like Boole’s Logic and Leibniz also worked on something of the same sort, and there are yet earlier things like John Wilkins’ “philosophical language” and other notions of a similar kind.

                      For modern linguistic work on semantics, the work of Richard Montague is perhaps the most important, and there are connections to computer science from very early on - Montague employs Church’s lambda calculus (from the 1930s) which also underlies Lisp.

            2. 1

              Nothing that extreme, no, but I’d say it delivers on questioning rarely-questioned assumptions.

              1. 1

                How would you know? Maybe you simply failed to think it.

              1. 12

                Remember when they stopped putting serial ports on laptops and the world ended because we lost 5v signals?

                1. 18

                  The difference, of course, is that devices with the 3.5mm jack are ubiquitous, even among laypeople.

                  1. 10

                    And analog. Prior moves to digital that was capable of DRM often led to them getting some DRM. Good to always remember the suppliers don’t have our freedoms in mind.

                    1. 3

                      Yeah I am surprised this gets shoved under the carpet so much. With digital-out only, vendors can decide what you listen to.

                      We aren’t quite at the “sorry this app only works with Beats headphones” stage yet but getting rid of the jack opens up this avenue.

                      1. 2

                        Well, there’s this plus proprietary stuff used to get more money out of customers. Apple is best known of those doing the latter.

                    2. 1

                      Yeah you don’t have to worry about your baud rate with a headphone jack.

                      1. 1

                        Laypeople aren’t soldering their own heart monitors either. The people who are will probably find a way to make things work.

                    1. 1

                      I’m not sure how it works, but some iPads come with an embedded apple sim. Not removable? It would be great if new phones had the sim included in the trust zone so it can’t be removed or accessed without unlocking the phone. Still susceptible to carrier incompetence, but that can be improved too.

                      1. 1

                        the store has undefined behavior if the alignment is not set to a value which is at least the size in bytes of the pointee

                        The alignment is 4. The pointee is size 1. 4 is at least 1?

                        1. 7

                          It’s the other way around. The bytes are guaranteed to be aligned to 1, but the store requires the bytes to be aligned to at least 4.

                          1. 1

                            I think he was making a language joke about how english lets “at least” mean both “mathematically not less than” and “not less restrictive than”. In this case, the two meanings are opposite. Ha, ha.

                        1. 2

                          TIL there’s delidding as a service.

                          1. 2

                            basically a solution in search of problems

                            Remember when LASER was called a solution in search of a problem? I hope we can find some use for distributed blockchains after the speculation bubble bursts.

                            1. 5

                              Easier to figure out some if you say audit logs like they used to be called. There’s piles of applications of them in the literature for both accounting and CompSci. Just think distributed as you explore each one. Can still use regular, efficient tech with replication, distributed checking, and signatures, too. Kind of like banks and DVCS’s whose ecosystems are still going strong.

                              1. 3

                                No?

                              1. 4

                                These engineers produced an add-on for an iPhone (in the style of a “shield”) which connects to the test points on the iPhone motherboard to monitor actual use of GPS, wifi, etc, and as a result discovered that the device apparently transmits while in airplane mode.

                                They stuck the whole thing in a case with a built in screen on it which displays line graphs for cellular, GPS, wifi, and bluetooth activity.

                                This is hardware hacking at its finest. Why the downvote, did the wall of text about human rights at the top get in the way of the juicy build log in the middle and bottom? :)

                                1. 2

                                  did the wall of text about human rights at the top get in the way of the juicy build log in the middle and bottom?

                                  I have not (yet) read the article, but if you were to train a Bayesian filter (or neural net to be cool), I suspect a long nontechnical intro would predict a nontechnical ending. I imagine many humans have similar biases.

                                  1. 1

                                    Alas!

                                1. 5

                                  Wild guess without reading article: the city did something and we’re going to pretend they did something else so we can be extra mad. Close?

                                  1. 2

                                    I have received a threatening letter from the city’s government in which they are warning me that I have to pay them a certain amount of money for the usage of the name ******** in the name of my Facebook page. If I don’t start paying them, they will start their Facebook teams and contact the court so that they could shut down my Facebook profile.

                                    All other Facebook pages that promote the city and have the noun ******** in its name got the identical threats.

                                    1. 6

                                      So it’s not a blanket ban on typing the name of the city, but we’re going to act like it is?

                                      Is this any different from the fact I might have trouble creating a Facebook page called Xerox, but yet the internet police aren’t going to come get me for writing this comment with the word Xerox in it?

                                  1. 8

                                    Never roll out your own crypto

                                    This one doesn’t mean that you shouldn’t write any, it means that you shouldn’t use your own crypto for security reasons, but you still can learn !

                                    1. 4

                                      In particular, the advice was originally intended to mean “don’t invent/write your own primitives or modes”. It has morphed into “don’t write crypto code period”. Case in point: JWT.

                                      With libraries like sodium (or even OpenSSL if you tread carefully), there is no reason why a developer can’t safely encrypt a cookie.

                                      1. 5

                                        History has shown that most people who think they can safely encrypt a cookie screw up the MAC and open themselves up to all sorts of heinous cookie forgery vulns.

                                        1. 2

                                          Exactly. The whole task has to be designed and reviewed by security experts due to composition errors. There’s also sometimes assumptions that primitive builders assume others will know but don’t document. Related to that, there’s system/environment aspects that might need considering such as whether it has swap or hibernate which can put keys on hard disks. Lots of little things I don’t trust a non-security engineer to know.

                                    1. 2

                                      I got a 1080 ti for list shortly after launch. At the time I was kind of ambivalent because I didn’t have a pressing need to upgrade. Can always do it later, right? Probably the only time I can recall where it was better to buy new hardware sooner rather than waiting.

                                      1. 1

                                        You should mine with that when you’re not using the computer. 1080ti earns about $5/day or more.

                                      1. 5

                                        In the simplest of terms, it blocks most of the elements which causes the web to load slower on mobile, like large amounts of JavaScript, third-party tracking scripts and bloated CSS.

                                        For all that I’ve read about AMP, I still haven’t understood why AMP is the only way to avoid bloating a page with large amounts of JavaScript and tracking scripts.

                                        1. 6

                                          I still haven’t understood why AMP is the only way to avoid bloating a page with large amounts of JavaScript and tracking scripts.

                                          The problem with this approach is it isn’t new, doesn’t get you conference talks and Medium posts, and it isn’t pioneered by Google. Therefore, can it really be any good?

                                          1. 4

                                            My guess is that it’s easier to promote this in some companies, exactly because “it’s the new hot thing from Google”. Otherwise you might get “Yes, we certainly want our site faster, but we definitely need those two ad networks, seven tracking systems and all the social widgets”.

                                            1. 3

                                              Excellent point. I was presuming malevolence, but groupthink can also be weaponized to get people to do the right thing!

                                        1. 5

                                          I’m curious as to Google’s motivation for Fuschia: what does it offer over Linux?

                                          1. 26

                                            They’ll be able to use a license other than the GPL and have a stable ABI. This would please a lot of device manufacturers

                                            1. 4

                                              Isn’t the Linux ABI somewhat stable? Isn’t that a sticking point for Linus, not breaking userspace?

                                              1. 12

                                                The syscall interface is stable. The ABI for kernel modules/drivers is not.

                                                1. 2

                                                  If this is the main objective, didn’t they “solve” this with Android’s new hardware abstraction layer?

                                                  Rebuilding from the ground up seems like a huge amount of work when we can build up piecemeal stuff pretty nicely

                                                  1. 9

                                                    I doubt the ABI chances have been solved with the /vendor partition. As I understand it, this change just allows for a clear separation between what is and isn’t the core Android system. Manufactures can still have binary blobs in /vendor and not release their customizations and plugins kept there. ABI breakage happens at the Kernel level, and can only be solved in the Android world if Google forced all manufactures to one standard Kernel for all devices.

                                                    The GPL is also something they can’t solve either. This is probably the saddest part of the Fuchsia project, and echos Google releasing Chrome after drumping so much money into Firefox. They support the OSS tool, but then dump them because they want their own control and licensing. Their new tool is still OSS, but with a license that’s better for them. I wrote about how companies embrace/use OSS a while back:

                                                    http://penguindreams.org/blog/the-philosophy-of-open-source-in-community-and-enterprise-software/

                                            2. 11

                                              We’ve seen a large number of Google devices coming to market (tablets, phones, notebooks). I wouldn’t be surprised if they were on their way to an “Apple”-like hardware mode where we have a 3rd, proprietary, but fully integrated environment to choose from. MSFT has the same sort of model going, with the Surface line of things, so it could be that we have an all out war between MSFT and Google for the next generation of business machines. I mean, look at the product lines:

                                              • Office: Covered by both, with MSFT having the product to beat
                                              • Email/Calendaring/Collaboration/etc: Exchange / Sharepoint vs Apps for Business
                                              • Managed “IT” services: Windows Server (run yourself, with domains etc) vs. Apps for Business

                                              Apple isn’t a threat to MSFT in this space, though it has a lot of similar, consumer grade, products.

                                              Obviously, there’s a bootstrapping problem for Google here, but, I’m sure there’s nothing stopping the Fuchsia team from running a Dalvik VM, or making Android apps run seamlessly on it, and I’d fathom that that’s part of the plan for adoption, with Dart/Flutter being the answer to C#/.NET.

                                              Google recently killed off Chrome Apps, so it seems that extending the Chromebook beyond running android apps, and Chrome Extensions (very limited as far as I can tell) will lead to an eventual death for the Chrome OS line of products.

                                              So, you have the ability to take what you’ve learned from Chrome OS, integrate all the hosted “cloud” stuff seamlessly into a full feature operating system that has better native app abilities? Seems like a lot of potential to gain market share, especially, as they are doing so in the open, where “what’s this Fuchsia thing?” is being asked about, people can look at, play with it, and audit the design, source code, and, of course, write blog posts about how it’s broken. Basically, they’re in a really good position here, technically, and from a marketing standpoint. It markets itself! And jeesh! Think of all the baggage they are eliminating by starting fresh.

                                              Black hats are salivating, and keeping track of all the errors that are being made in commits, just hoping that they become exploitable in some future, after aging a couple years without being touched….

                                              1. 7

                                                See the linked article in the article about how Google likes to build two of everything. I figure it’s essentially a hedge. If it turns out to be awesome in some way that Linux can’t be, they can move to it. If it turns out they need to do something they can’t do on Linux, they have this other OS all ready to go. If it turns out that it doesn’t do anything as well as Linux-based systems already can, then they aren’t really out anything but some money and engineer time, which they have plenty of. Google likes to do this in a number of domains to ensure that they stay on top no matter which way the industry goes.

                                                1. 11

                                                  Linux has accumulated a lot of irrelevant features (attack surface) over time?

                                                  1. 4

                                                    They have the money and time to do it? Or perhaps they are tired of trying to make the fragmented android / linux ecosystem work for them amd want to take a new approach they can fully control. Ui-wise I’m happy to see that it seems to have a functional out-of-the-box app launcher ala Kiss, though I guess any ui component will massively change in the future.

                                                  1. -2

                                                    What I find “ridiculous” is the use of the term “ridiculously” in the title; I put it in the same level as “blazingly,” a term that has been used very lightly in the past years and means nothing anymore.

                                                    1. -1

                                                      ridiculously, adv. so as to invite mockery or derision.

                                                      I guess that means it’s actually really slow?

                                                    1. 3

                                                      If it’s too much work, don’t do it? Left unanswered is why it’s necessary to post links to your blog on every site imaginable.

                                                      1. 1

                                                        Yes, my feeling when reading this was that in the “good old days” we had a heterogeneous, distributed, self-organising network of people doing and making things they like, others discovering, reading and sharing it, and communities and services forming to facilitate this.

                                                        Then Facebook, Twitter, etc. gobbled up all of this into their giant silos, all in the name of ‘user engagement’, ‘content consumption’, etc. and this is bad.

                                                        Yet, the author then goes on about which of these silos give their blog posts the most ‘engagement’, or how to format posts for the highest ‘consumption’, etc. which sounds exactly like the ‘attention hijacking’ BS which lead to those silos.

                                                      1. 4

                                                        Why would you ever benchmark something by changing two variables at once?

                                                        1. 7

                                                          Despite the (very misleading) title, it doesn’t look like it was even really an attempt at careful benchmarking, just two tests run a year apart, differing by whatever happened to change on the author’s laptop in that year (one test was run now, and one is just pulling numbers from an old blog post). In that time, they appear to have upgraded OSX, changed filesystems, and applied Meltdown patches, among who knows what other changes.

                                                        1. 5

                                                          “Intel CPUs allow you to read memory from other processes while in a transient instruction”

                                                          Nope nope nope. They allow you to read any memory that is mapped in to the current address space, which has traditionally included memory belonging to the kernel, but not generally memory belonging to other processes (unless it is also in the kernel’s memory space).

                                                          I’ve heard so much about these problems that is, if not blatantly false, at least slightly wrong. I wish people would stick to hard, correct, facts. It’s important, especially for this kind of problem.

                                                          Edit: So, generally all of physical memory is mapped into kernel space in modern 64-bit systems. Since you’ve got so much address space to play with, I guess there’s no good reason not to do so - well, other than Meltdown, of course… still wish the article had been more explicit, but I know that’s a bit weak.

                                                          1. 4

                                                            All of physical memory, which includes other processes, generally is in the kernel address space.

                                                            1. 3

                                                              Feeling like I’m about to have to eat my hat, but: If the kernel runs a thread which maps all physical memory into its address space, then aye. But processes do not generally run with an address mapping which includes all of physical memory, surely? They have the kernel mapped in, certainly, but are you saying that this includes a mapping of all of physical memory? Does this include Linux as well as OpenBSD? Is this mapping above the process’ own regular address space or below it, which would (presumably) preclude access by Meltdown anyway? (edit: I assume last q doesn’t make sense, if it is indeed mapped in then it must be in the regular “high” part of memory that the kernel occupies).

                                                              1. 5
                                                                1. 3

                                                                  Thanks. However:

                                                                  Linux limits the direct physical mapping to ~896M

                                                                  A long way from “all of physical memory”, no? I may still be missing something.

                                                                  edit: Yeah, I was. 64 bits vs 32.

                                                                  Of course even this much is probably enough to make it possible for one process to access at least some memory belonging to other processes, so I guess my original statement is not correct, regardless.

                                                                  I guess my kernel-design thinking is stuck firmly in the 32-bits era. :(

                                                          1. 1

                                                            Why do we have a science tag if general science is offtopic?

                                                            1. 2

                                                              I think not many people read the article to the end.

                                                            1. 12

                                                              I never understood the popularity of solarized. It lacks contrast and makes my eyes hurt.

                                                              1. 12

                                                                There was a blog post which said it was made with science or whatever. Science can’t be wrong.

                                                                1. 3

                                                                  The implication that the goodness of something so subjective can be quantified really irks me. However, I think a lot of people ate this up, as I’ve seen people non-ironically citing this as a reason it is good.

                                                                  1. 3
                                                                    1. 2

                                                                      I hear it’s Cave Johnson’s favorite IDE color scheme.

                                                                    2. 5

                                                                      I’m more and more in favour of highlighting comments more than the individual parts in the code (variables, strings, …) – and I find that comments often have the least contrast :(

                                                                      1. 2

                                                                        In Visual Studio Code you can quite easily try this out since you can add your own customizations to the highlighting in the settings. For instance, you could add

                                                                            "editor.tokenColorCustomizations": {
                                                                                "comments": "#e1a866"
                                                                            }
                                                                        

                                                                        to change the color of all comments.

                                                                      2. 1

                                                                        I think it depends a lot on lighting. I use the dark theme at evening/night, and don’t have a lot of light in the room. More contrast rich themes like Monokai hurt my eyes in that setting.

                                                                        The Solarized theme that comes with Visual Studio Code actually uses a base color with more contrast than the original design. But I find that rather annoying in the light theme, especially since they also use bold.

                                                                        1. 2

                                                                          More contrast rich themes like Monokai hurt my eyes in that setting.

                                                                          That makes sense. It’s funny, at night I will continue using typical white-on-black high-contrast color schemes but just drop the monitor brightness a lot if I happen to be hacking away in the dark. Usually I just turn the lights on, though.

                                                                          1. 1

                                                                            For me both variants of Solarized are difficult to read in the daytime on a nice display and borderline unusable at any time of day on a low-end display. On the other hand, I find high-contrast dark themes too harsh, so I tend to use dark themes that are somewhere in the middle (~#999 on ~#222) and higher-contrast light themes (~#222 on ~#f5f5f5).

                                                                            1. 1

                                                                              gruvbox dark works well for me :)

                                                                              1. 2

                                                                                I think the red is perhaps, well, a bit too red in gruvbox. The (over-)use of red/orange/pink in many Solarized themes was part of the reason I made this variant.

                                                                                Darktooth is another interesting gruvbox-like theme.

                                                                          2. 1

                                                                            Agree on the importance of contrast. Lots of color themes are happy to use tons of different colors on things that aren’t completely semantically different (a numeric literal doesn’t always need to stand out a lot) while ignoring the more subtle details such as contrast.

                                                                            I want the attention to detail Solarized has, but with more contrast, and something besides an ocean or a piece of parchment as the background. I’ve been using a version of Github’s color scheme in my editor for awhile, but have yet to really find a color theme that I really like.

                                                                          1. 16

                                                                            99.9999999% of pushnotification are pure shit exactly like advertisement. Why one should be better than the other ?

                                                                            1. 5

                                                                              Hmm, every single push notification I get on my phone is useful (new podcast published, new chat message from people I care about, period ticket for public transport has expired). Every web push notification is similar (someone pinged me in IRC, someone sent me a message on Telegram). If 99.999% of the push notifications you receive are shit, you have failed as an administrator of your personal devices.

                                                                              1. 17

                                                                                you have failed as an administrator of your personal devices

                                                                                it’s quite the industry fail that this is even a role that exists.

                                                                                1. 2

                                                                                  I administrate pretty aggressively as well, but I found it only manageable, at least on Android, if you start by blocking all notifications, and then opt in very selectively. Specifically, I have every app’s notifications blacklisted in the main Android settings, and then I have selectively enabled notifications from only two (Signal and Messages).

                                                                                  Before I discovered you could do that, I found curating notifications to be too much of a game of whack-a-mole that repeatedly wasted my time and energy. Even when I’d get into a state where I was happy with the notifications I was getting, it was always temporary, because many apps will add new types of notifications when the app auto-updates, and opt you in to them by default. Then you have to try to dig through each app’s settings menu (each one different and seemingly deliberately complicated) to figure out where this new notification is coming from. Examples from the past few months of apps that have done this: Twitter, Google Maps, Maps.me. After this happened repeatedly, I got tired of it and just blacklisted them all. If they weren’t so aggressively trying to spam me, I wouldn’t mind notifications from some (e.g. I found some of the Google Maps transit notifications useful), but not at the cost of every other app update adding a new kind of notification to advertise McDonald’s locations to me.

                                                                                  1. 1

                                                                                    I have somehow never installed any notification-spammy Android apps. Well, almost — SoundHound occasionally shows some junk, but it’s so rare I haven’t even bothered to disable it.

                                                                                    The notification I see the most is “tap to update Firefox Nightly” :D

                                                                                  2. 2

                                                                                    Note that you added an important qualifier, that you receive. This is a subset of all notifications.

                                                                                    1. 2

                                                                                      I mean 100% of the push notification they ask me for permission and that I refuse. I should never have refuse something that I did not wanted first

                                                                                    2. 3

                                                                                      90% of everything is crap. 90% of HTML’s img tag usage is crap.

                                                                                      Those statements are not very useful by themselves. User have to limit number of sites that he uses or a browser, with optional extension, has to filter all the sites.

                                                                                      If I ever implement my idea of a search engine that doesn’t index ad serving and maybe also JavaScript serving sites then I will see if that kind of web is useful.

                                                                                      1. 1

                                                                                        Starting to hear neil postman’s ghost wail “I told you so”.

                                                                                      1. 6

                                                                                        This is just gold:

                                                                                        Under the new patch, Linux listed all x86-compatible chips as vulnerable, including AMD processors. Since the patch tended to slow down the processor, AMD wasn’t thrilled about being included. The day after Christmas, AMD engineer Tom Lendacky sent an email to the public Linux kernel listserve explaining exactly why AMD chips didn’t need a patch.

                                                                                        “The AMD microarchitecture does not allow memory references, including speculative references, that access higher privileged data when running in a lesser privileged mode when that access would result in a page fault,” Lendacky wrote.

                                                                                        A very interesting article. Would be more interesting to know the details behind the above gaffe — did the AMD engineer break his NDA, or did he come up with the root cause behind the patch independently?

                                                                                        TBH, regarding discussions on public listserve, it seems really weird that these kinds of things wouldn’t be done behind closed doors — just because the software is OSS, doesn’t mean that every single change has to be thoroughly explained on the public mailing lists, like Verge seems to suggest. In the BSD world, for example, internal developer-only (i.e., committer-only) mailing lists do exist, which, for better or worse, make it easy to not unneccessarily publicise such changes, whilst still gettting the exposure and feedback from the developer community.

                                                                                        1. 16

                                                                                          When you know a secret for too long, you forget what’s supposed to be secret and what’s not. Also, when too many people know, you forget who knows and doesn’t. You forget when it’s secret and when it’s public. When the secret topic is half secret and half public, you forget precisely what’s secret and what’s not. Etc., etc.

                                                                                          Governments, with 100 years of practice, screw this up. Amateurs are doomed.