Threads for rpaulo

  1. 11

    I find music theory fascinating from a philosophical perspective because:

    • our perception of pitch, and of pleasing combinations of pitches, is mathematical. Our ears/brains experience pitches logarithmically and like small-integer ratios.
    • So music theory is basically simple applied math — integer ratios, modular arithmetic, logs base 2.
    • We expect that mathematical structures will fit together perfectly, because usually they do. When you prove a=b, then a is precisely equal to b, no slop, no rounding error.
    • But when you do the very fundamental exercise described in this article, which Pythagoras was probably not the first to try, you end up with a beautiful structure of 12 notes … but it doesn’t quite fit. By all rights it ought to be a perfect 12-pointed star with all its lovely symmetries, but the damn thing doesn’t close. And yet we use this star, this circle of fifths, as a foundational structure of music in nearly every human culture.
    • This problem has been bothering musicians, and causing real problems, for about 2,000 years. You couldn’t transpose pieces to a different key or play them on certain instruments. Composers couldn’t use certain intervals or harmonies because they sound like shit. In fact no matter what you do you can’t get all harmonies to sound right. Composers were literally engaging in flame wars and nearly coming to blows in 18th-century Europe over this.
    • Our current Western tuning is a kind of hack that’s very symmetrical — 12 equal steps of the 12th root of 2 — but which makes all intervals except octaves slightly wrong. The wrongness is small enough to ignore, and it turns out if you grow up with it the true integer-ratio intervals sound weird and wrong.

    Anyway. And it’s all based on this odd coincidence that (3/2)^12 is almost equal to 2^7. If that weren’t the case, music would be indescribably different.

    1. 2

      Jacob Collier does a great quick demo of how different the integer-ratio vs 12th-root-2 notes can sound: https://www.youtube.com/watch?v=XwRSS7jeo5s

      1. 2

        Rhythm is also fascinating! It is so syntactical

        1. 1

          I don’t think the circle of fifths is used outside western music. Can you explain why you say “nearly every human culture”?

          1. 3

            12 tone equal temperament (which the circle of fifths arises from) has been around for a couple thousand years and has influenced a plurality of non-westerners. Especially after the internet, our music tastes have started to converge across the world. There are of course non-western cultures that don’t use 12 tones and thus don’t have the same circle of fifths, but if you listen to the radio in Eastern Europe, South America, East Asia, etc (big first-world cultural hubs), you’ll find plenty of pop songs structured very similarly to American pop songs. Bad Bunny and Higher Brothers are some examples of converging music tastes imo.

            1. 1

              Sorry, I was being a bit lazy there. What’s universal is the use of simple pitch ratios as musical intervals. Every culture that has any sort of music has discovered & used pentatonic scales (or so I’ve read.)

          1. 2

            It’s long weekend in canada and I got a cold. So going to spend most time on the piano with a mask on, prepping for exam next week!

            1. 1

              Which exam? I’ve been doing MTAC piano exams.

              1. 1

                Hey, that’s awesome! Is that a teacher’s cert or as a student? I didn’t know about MTAC. I’m doing my Level 6 RCM exam this Thursday. Went back to piano after a looong time away.

                1. 1

                  Student level 5. I started playing piano in 2019 so I’m an adult student.

                  1. 1

                    That’s awesome! I’m an adult student as well! I can’t see the MTAC syllabus, but based on both RCM and MTAC having 10-11 levels, they should be very similar. I started again in Aug 2020 as well. Best decision ever!

                    1. 1

                      It’s not really public (you have to buy it) but they can be found on the tuning note website http://thetuningnote.com/mtac/CM/2012%20Level%205%20zRepertoire%20Requirements.pdf

            1. 2

              Drinking

              1. 1

                Hopefully not alone…

              1. 10

                Eyyy, this is my project. :-) – Happy to answer any questions.

                1. 2

                  This is a great project! Btw Albufeira is in Portugal. :-)

                  1. 2

                    This is the most random comment I have ever received. Thanks for that :-D – It took me a looooong time to figure out that you’re referring to the travel map on my blog. Hehe.

                  2. 2

                    Hi - this looks nice.

                    What is the security story here? Is there a document that shows the flow from curl all the way to the notification on the phone?

                    1. 2

                      Hi. There’s no documentation page (yet) that describes architecture and flow, though just judging by how often I have ASCII-drawn it, there really should be one :-)

                      From the very start, ntfy was designed as a convenience-first app (as simple as possible), which you can see by how simple the curl and POST/PUT requests are. That’s not an excuse, it’s just a conscious choice I made. Because of that, nothing is encrypted at rest (only transport encryption if TLS is used).

                      Flow 1 (with Firebase):

                      client (e.g. curl) ---[HTTP(S)]---> ntfy server [store in cache] ---> Firebase ---> Android app
                      

                      Flow 2 (without Firebase):

                      client (e.g. curl) ---[HTTP(S)]---> ntfy server [store in cache] ---[HTTP(S) JSON/WS]--> Android app
                      

                      Flow 3 (iOS):

                      client (e.g. curl) ---[HTTP(S)]---> ntfy server [store in cache] ---> Firebase ---> APNS ---> iOS
                      

                      Messages are stored in plaintext in a SQLite database on the server, unless the X-Cache: no header is passed. All messages are forwarded to Firebase, unless the X-Firebase: no header is passed.

                      If you want private messages, you can either wait for the E2E feature (https://github.com/binwiederhier/ntfy/issues/69), which I have already begun developing, and which sadly destroy the ease of use.

                      Or you can run your own selfhosted server and add basic auth and ACLs (https://ntfy.sh/docs/config/#access-control).

                      1. 3

                        For more complex cases, it’s worth looking at what Signal does. They basically treat the notification services as a 1bit signal that there is something pending (I think that they may also send occasional spurious ones to make traffic correlation harder). Once the app receives the notification, it wakes up and polls the real service.

                        I couldn’t see anything about efficiency though. The reason most apps use a notification service is to allow a single background service that consumes a tiny amount of RAM to have a single network connection with a very long timeout and then wake up when a notification arrives and prod the system to either forward it to the running app or start the app and forward it if necessary. From the examples, it wasn’t clear how you achieve anything like this, it looked as if the apps were running in the foreground and received the notification directly. I guess you are doing this because. I believe, iOS doesn’t allow background apps to maintain persistent network connections.

                        1. 1

                          They basically treat the notification services as a 1bit signal that there is something pending

                          This is what ntfy does for iOS for selfhosted servers: It sends a poll_request via APNS, and then the app will poll the original selfhosted server. There’s a description of this here: https://ntfy.sh/docs/config/#ios-instant-notifications – iOS is veeeeery limited in what you can do. Everything has to go through a central server, so selfhosted servers are technically not really possible at all. It’s quite sad.

                          I couldn’t see anything about efficiency though.

                          I responded a bit about this here: https://lobste.rs/s/41dq13/zero_cost_push_notifications_your_phone#c_b6qfnd – Bottom line is that for Android, it’s either Firebase (FCM) or a long-standing JSON stream or WebSocket connection. FCM consumes no battery, and the foreground service consumes 0-1% on my phone for the entire day. If used heavily obviously more

                          1. 2

                            I see. I was hoping that it was possible to use this stand alone, but I guess that’s just not permitted on iOS. It would be nice if there were an Android service that de-Google’d devices could use as a single thing maintaining a service and multiplex the waiting so that apps using an individual server can still exit and be restarted when a notification aimed at them arrives.

                            1. 2

                              It would be nice if there were an Android service that de-Google’d devices could use as a single thing maintaining a service and multiplex the waiting so that apps using an individual server can still exit and be restarted when a notification aimed at them arrives.

                              I think you are talking about what https://unifiedpush.org/ is trying to be. ntfy is a distributor for UnifiedPush-enabled apps.

                              1. 2

                                Yes, exactly! Thank you!

                    2. 2

                      Great docs and cool concept. Well done!

                      Not a question, but I assume you’re accepting compliments as well :)

                      [edit]

                      I actually have a suggestion for the mobile apps. Support deep links to reconfigure the notification server, e.g. https://ntfy.sh/configure?base_url=<NEW NTFY SERVER URL>. When accessed, the user is prompted to allow the app to be reconfigured with the new notify server URL. This would allow self-hosters to more easily roll out push notifications using self-hosted instances. Maybe not a priority for you as a fun open source project with no profit motive, but possibly worth considering.

                      1. 1

                        I always try to write the docs the way I’d want them from other projects: Lots of examples and pictures :D – Thank you for the kind words.

                        [edit]

                        Support deep links to reconfigure the notification server

                        Surprisingly, this has been suggested recently (https://github.com/binwiederhier/ntfy/issues/440). It’s surprising to me, because I don’t quite understand the use case. If you have a self-hosted server, why would you need a shortcut to configure the app that way? Why not just go in the settings and configure it yourself. It’s a step you have to do only once, so it surely can’t be a huge hassle, right?

                        I’m genuinely asking, because maybe I don’t quite understand the case. Feel free to answer or +1 the GitHub ticket.

                        1. 2

                          Cool, I’ll go ahead and follow up with details on the GH issue.

                    1. 5

                      Company: Apple

                      Company site: https://www.apple.com

                      Positions: Software Engineer - OS Networking

                      https://jobs.apple.com/en-us/details/200370900/software-engineer-os-networking?team=SFTWR

                      https://jobs.apple.com/en-us/details/200308413/software-engineer-os-networking?team=SFTWR

                      https://jobs.apple.com/en-us/details/200256976/software-engineer-os-networking?team=SFTWR

                      https://jobs.apple.com/en-us/details/200308432/software-engineer-os-networking?team=SFTWR

                      Location: On-site. Cupertino or San Diego

                      Description: We have 2 positions in Cupertino and 2 positions in San Diego for SWEs who want to work on operating system networking. This includes, but is not limited to, software that implements, TCP/IP, firewalls, QUIC, network device drivers, networking APIs (https://developer.apple.com/documentation/network), networking infrastructure, VPNs, wireless/Ethernet/cellular networks, etc.

                      Tech stack: C, Obj-C, C++, Swift

                      Compensation: Competitive pay and great benefits. The recruiter will cover all of this.

                      Contact: You can either apply through the website or you can email me (rpaulo at apple.com) and I will be glad to forward your resumé to the hiring in manager / recruiter. Feel free to contact me if you have questions about these job openings.

                      1. 4

                        Although the keys of this initial encryption are known to observers of the connection

                        I haven’t looked at the specs yet. Is that true? Isn’t that horrible?

                        1. 6

                          I think it’s fundamentally unavoidable. At the point that a browser initiates a connection to a server, the server doesn’t yet know which certificate to present. DH alone doesn’t authenticate that you haven’t been MITM’d.

                          1. 5

                            It’s not unavoidable if both parties can agree on a PSK (pre-shared key) out-of-band, or from a previous session - and IIRC, the TLS 1.3 0-RTT handshake which is now used by QUIC can negotiate PSKs or tickets for use in future sessions once key exchange is done. But for the first time connection between two unknown parties, it is certainly unavoidable when SNI is required, due to the aforementioned inability to present appropriate certificates.

                            1. 2

                              On the other hand, if you have been MitM’d you’ll notice it instantly (and know that the server certificate has been leaked to Mallory in the Middle). And now every connection you make is broken, including the ones they did not want to block. I see to ways of avoiding that:

                              1. Don’t actually MitM.
                              2. Be a certificate authority your users “trust” (install your public key in everyone’s computers, mostly).
                              1. 2

                                No, but DH prevents sending a key across the wire, making them known and prevents passive observers from reading ciphertext. Wouldn’t it make sense to talk to the server first?

                                1. 3

                                  Without some form of authentication (provided by TLS certificates in this case), you have no way to know whether you’re doing key exchange with the desired endpoint or some middlebox, so you don’t really gain anything there.

                                  1. 3

                                    You gain protection against passive observers, thereby increasing costs of attackers trying to snoop on what services people connect to. Also when you then anyways end up receiving the certificate you at worst retro-actively could verify you weren’t snooped at, which is more than you have when it’s actually that you send a key that allows you to decrypt, which still sounds odd to me.

                                    1. 3

                                      What you’re suggesting is described on https://www.ietf.org/id/draft-duke-quic-protected-initial-04.html This leverages TLS’s encrypted client hello to generate QUIC’s INITIAL keys.

                                  2. 1

                                    I don’t know how much sense it makes? Doing a DH first adds more round trips to connection start, which is the specific thing QUIC is trying to avoid, and changes the way TLS integrates with the protocol, which affects implementability, the main hurdle QUIC has had to overcome.

                                    1. 1

                                      I get that, but how does it make sense to send something encrypted when you send the key to decrypt it with it? You might as well save that step, after all the main reason to encrypt something is to prevent it from being read.

                                      EDIT: How that initial key is sent isn’t part of TLS, is it? It’s part of QUIC-TLS (RFC9001). Not completely sure, but doesn’t regular 0-RTT in TLSv1.3 work differently?

                                      1. 5

                                        The purpose of encrypting initial packets is to prevent ossification.

                                        1. 1

                                          Okay, but to be fair that kind of still makes it seem like the better choice would be unauthenticated encryption that is not easily decryptable.

                                          I know 0RTT is a goal but at least to me it seems like the tradeoff isn’t really worth it.

                                          Anyways thanks for your explanations. It was pretty insightful.

                                          I guess I’ll read through more quic and TLS on the weekend if I have time.

                                          1. 1

                                            The next version of QUIC has a different salt which prevents ossification. To achieve encryption without authentication, the server and the client can agree on a different salt. There’s a draft describing this approach, I think.

                                        2. 1

                                          how does it make sense to send something encrypted when you send the key to decrypt it with it?

                                          According to https://quic.ulfheim.net/ :

                                          Encrypting the Initial packets prevents certain kinds of attacks such as request forgery attacks.

                                  3. 2

                                    It’s not more horrible than the existing TLS 1.3 :-) I sent out a link to something that may be of interest to you.

                                    1. 0

                                      It’s only the public keys that are known, and if they did their job well, they only need to expose ephemeral keys (which are basically random, and thus don’t reveal anything). In the end, the only thing an eavesdropper can know is the fact you’re initiating a QUIC connection.

                                      If you want to hide that, you’d have to go full steganography. One step that can help you there is making sure ephemeral keys are indistinguishable from random numbers (With Curve25519, you can use Elligator). Then you embed your abnormally high-entropy traffic in cute pictures of cats, or whatever will not raise suspicion.

                                      1. 1

                                        This is incorrect, see RFC9001. As a passive observer you have all the information you need to decrypt the rest of the handshake. This is by design and is also mentioned again in the draft that rpaulo mentioned.

                                        The problems with this are mentioned in 9001, the mentioned draft and the article.

                                        1. 1

                                          Goodness, I’m reading section 7 of the RFC right now, it sounds pretty bad. The thing was devised in 2012, we knew how to make nice handshakes that leak little information and for heaven’s sake authenticate everything.

                                          As a passive observer you have all the information you need to decrypt the rest of the handshake.

                                          Now I’m sure it’s not that bad. I said “It’s only the public keys that are known”. You can’t be implying we can decrypt or guess the private keys as well? And as a passive observer at that? That would effectively void encryption entirely.

                                    1. 1

                                      dscacheutil is unrelated to mDNSResponder.

                                      1. 2

                                        And so I assumed I just didn’t get classes.

                                        I remember feeling. Spent a couple years in college felling this way.

                                        At this point of my career, I don’t see the added complexity of classes as a problem.

                                        1. 1

                                          Very interesting. I had no idea Pom gets Wi-Fi existed.

                                          1. 6

                                            Why another file manager? I wanted something simple and minimalistic, something to help me with faster navigation in the filesystem. A cd & ls replacement. So I build “llama”. It allows to quickly navigate with fuzzy searching, cd integration is quite simple. Opens vim right from llama. That’s it. Simple and dumb as a llama.

                                            1. 6

                                              llama

                                              fuzzy search

                                              Will check it out for that alone.

                                              1. 0

                                                I think nnn also has that

                                                1. 1

                                                  I meant the play on words :D

                                                  1. 2

                                                    Lol, took me a while to figure it out :D

                                              2. 5

                                                I think you should reconsider insulting llamas :-) They are not that dumb.

                                                1. 3

                                                  Have you seen a llama face?)

                                                  1. 3

                                                    That’s not where the intelligence is stored.

                                                    1. 0

                                                      Yes, it’s behind and the dace is a mirror of intelligence.

                                                2. 3

                                                  And I say, “Hey, Llama, hey, how about a little something, you know, for the effort, you know.” And he says, “Oh, uh, there won’t be any money, but when you die, on your deathbed, you will receive total consciousness.” So I got that goin’ for me, which is nice.

                                                1. 2

                                                  Interesting. I have the exact same trackball for more than a year and never had any problems. I wonder how long you’ve been using it.

                                                  1. 2

                                                    It does sound like a debugging aid given that different opposes generate different frequencies

                                                    1. 1

                                                      I meant “opcodes”

                                                    1. 2

                                                      The PID controller temperature problem is why I did mine on the outside. It was a little unwieldy there, but didn’t overheat. (Mine was a late 90s aluminum boiler model.)

                                                      Steaming was improved by attaching a spare steam wand intended for a Rancilio Silvia. I used an auber controller with a second set point for steaming. I don’t think autotune ever worked very well for me.

                                                      Here’s a not-terribly-good video of what mine looked like in action. I’m glad to see people are still doing these same mods.

                                                      That steamer you wound up with looks fancy. Is it larger and more expensive than the classic?

                                                      1. 1

                                                        It was about £150 from Amazon. Works very well!

                                                        1. 2

                                                          So you’re getting an experience that approaches a high end double boiler machine with a classic + that beast. Very nicely done!

                                                          (I don’t mean to dismiss a good double boiler setup… there is a lot to be said for one, especially if it’s got a rotary pump and you’re going to connect its feed and drain to your household plumbing, but then you’d be spending around 4x what I’d guess your entire coffee station cost, for what amounts to a very minor step-up in espresso quality plus some nice ergonomics.)

                                                          1. 1

                                                            Thank you :)

                                                            I do plan on upgrading to a plumbed in, dual boiler machine with rotary pump at some point.

                                                            1. 1

                                                              As someone who moved from a Silvia with PID and insulation, I disagree with your statement about approaching a high end double boiler. It’s still not as consistent and the steam capabilities of a Gaggia/Silvia are awful when compared with a DB or even HX.

                                                              1. 1

                                                                I was referring to the OP’s solution with the separate dedicated milk steamer. Even the PID’d gaggia’s steam was a challenge compared to the DB. (I could manage a good macchiato, but it was harrder.)

                                                                I moved from my classic to an Izzo Alex Duetto when I got the opportunity to plumb in, along with the HG-One manual grinder (with Mazzer Robur burrs). Before I passed my modified Classic along, I took the opportunity to do some triangle tests with Klatch’s World’s best blend and the two machines, using the same grinder, with me pulling all the shots, and the same basket for both.

                                                                While the shots were distinguishable on the triangle tests the verdict was distinctly mixed as to which was better. Duetto won, but it was a much closer margin than I’d have guessed.

                                                                That’s why I called the espresso a minor step-up on the higher end machine. The ergonomics were hands down better, of course. But if plumbing wasn’t a possibility and I had a separate milk steamer? Pairing a really good grinder with the low-end machine and a great basket, I’d put the espresso from the well-controlled low-end machine next to the high-end one with confidence as long as I wasn’t catering, running a bar, or engaged in some other high volume activity.

                                                        1. 2

                                                          I did very similar modifications to my Silvia 6y ago. There’s a lot of information on http://www.pidsilvia.com

                                                          1. 4

                                                            Impressive. Now I want to see Lua as an x86 boot loader. :-)

                                                            1. 2

                                                              FWIW, the FreeBSD/illumos boot loader uses Lua.

                                                              1. 12

                                                                I know, I worked on it :-)

                                                            1. 8

                                                              Reviews for quality are hard and time consuming. I personally can’t really review the code looking at the diff, I can give only superficial comments. To understand the code, most of the time I need to fetch it locally and to try to implement the change myself in a different way. To make a meaningful suggestion, I need to implement and run it on my machine (and the first two attempts won’t fly). Hence, a proper review for me takes roughly the same time as the implementation itself.

                                                              I think this isn’t true for most PRs I deal with. To make a meaningful suggestion, I often need to think about the code by browsing the project’s source code. On projects that I really know, I may have already thought how to implement certain feature and it’s fun to see what others came up with. I only run the code that I’m reviewing when I suspect there’s something wrong with it but it’s not clear from reading the code. I generally don’t try to implement it myself unless I came up with a different solution and explaining it in words takes more time than writing some code / pseudo code.

                                                              So, instead of scrutinizing away every last bit of diff’s imperfection, my goal is to promote the contributor to an autonomous maintainer status. This is mostly just a matter of trust. I don’t read every line of code, as I trust the author of the PR to handle ifs and whiles well enough (this is the major time saver). I trust that people address my comments and let them merge their own PRs (bors d+). I trust that people can review other’s code, and share commit access (r+) liberally.

                                                              This saves time, but doesn’t improve quality. It’s the objective of code review to find bugs and design issues. IMHO, it’s a waste of time to pretend the code was reviewed. Even the most senior programmer makes mistakes. Scrutinizing code from someone who is senior is as important as scrutinizing code from someone who is not.

                                                              1. 35

                                                                If there are any questions or remarks, I am right here!

                                                                1. 15

                                                                  I wish I could invite this story multiple times. The perfect combination of being approachable, while still being packed with (to me) new information. Readable without ever being condescending.

                                                                  One thing I learned was that DNA printers are a thing nowadays. I had no idea. Are these likely to be used in any way by amateur hackers, in the sense that home fusion kits are fun and educational, while never being useful as an actual energy source?

                                                                  1. 14

                                                                    So you can actually paste a bit of DNA on a website and they’ll print it for you. They ship it out by mail in a vial. Where is breaks down is that before you inject anything into a human being.. you need to be super duper extra totally careful. And that doesn’t come from the home printer. It needs labs with skilled technicians.

                                                                    1. 7

                                                                      Could any regular person make themselves completely fluorescent using this method? Asking for a friend.

                                                                    2. 5

                                                                      You may be interested in this video: https://www.youtube.com/watch?v=2hf9yN-oBV4 Someone modified the DNA of some yeast to produce spider silk. The whole thing is super interesting (if slightly nightmarish at times if you’re not a fan of spiders).

                                                                      1. 2

                                                                        So that’s going to be the next bioapocalypse then. Autofermentation but where as well as getting drunk, you also poop spider silk.

                                                                    3. 8

                                                                      Love the article. Well done.

                                                                      1. 5

                                                                        Thanks for the awesome article! Are there any specific textbooks or courses you’d recommend to build context on this?

                                                                        1. 12

                                                                          Not really - I own a small stack of biology books that all cover DNA, but they cover it as part of molecular biology, which is a huge field. At first I was frustrated about this, but DNA is not a standalone thing. You do have to get the biology as well. If you want to get one book, it would have to be the epic Molecular Biology of the Cell. It is pure awesome.

                                                                          1. 2

                                                                            You can start with molecular biology and then a quick study of bio-informatics should be enough to get you started.

                                                                            If you need a book, I propose this one, it is very well written IMO and covers all this stuff.

                                                                          2. 2

                                                                            Great article! I just have one question. I am curious why this current mRNA vaccine requires two “payloads” ? Is this because it’s so new and we haven’t perfected a single shot or some other reason?

                                                                            1. 2

                                                                              As I understand it[1] a shot of mRNA is like a blast of UDP messages from the Ethernet port — they’re ephemeral and at-most-once delivery. The messages themselves don’t get replicated, but the learnt immune response does permeate the rest of the body. The second blast of messages (1) ensures that the messages weren’t missed and (2) acts as a “second training seminar”, refreshing the immune system’s memory.

                                                                              [1] I’m just going off @ahu’s other blogs that I’ve read in the last 24 hours and other tidbits I’ve picked up over the last 2 weeks, so this explanation is probably wrong.

                                                                              1. 2

                                                                                It’s just the way two current mRNA vaccines were formulated, but trials showed that a single shot also works. We now know that two shots are not required.

                                                                                1. 2

                                                                                  The creators of the vaccine say it differently here: https://overcast.fm/+m_rp4MLQ0 If I remember correctly, they claim that one shot protects you but doesn’t prevent you to be infective, while the second make sure that you don’t infect others

                                                                                2. 1

                                                                                  Not an expert either, but I think this is linked to the immune system response, like some other vaccines, the system starts to forget, so you need to remind him what the threat was.

                                                                                3. 1

                                                                                  Is there any information on pseudouridine and tests on virus encorporating it in their DNA?

                                                                                  The one reference in your post said that there is no machinery in cells to produce it, but the wiki page on it says that it is used extensively in the cell outside of the nucleus.

                                                                                  It seems incredibly foolhardy to send out billions of doses of the vaccine without running extensive tests since naively any virus that mutated to use it would make any disease we have encountered so far seem benign.

                                                                                  1. 1

                                                                                    From https://en.wikipedia.org/wiki/Pseudouridine#Pseudouridine_synthase_proteins:

                                                                                    Pseudouridine are RNA modifications that are done post-transcription, so after the RNA is formed.

                                                                                    That seems to mean (to me, who is not a biologist) that a virus would have to grow the ability to do/induce such a post-processing step. Merely adding Ψ to sequences doesn’t provide a virus with a template to accelerate such a mutation.

                                                                                    1. 1

                                                                                      And were this merely a nuclear reactor or adding cyanide to drinking water I’d agree. But ‘I’m sure it will be fine bro’ is how we started a few hundred environmental disasters that make Chernobyl look not too bad.

                                                                                      ‘We don’t have any evidence because it’s obvious so we didn’t look’ does not fill me with confidence given our track record with biology to date.

                                                                                      Something like pumping rats with pseudouridine up to their gills then infecting them with rat hiv for a few dozen generations and measuring if any of the virus starts encorporating pseudouridine in its RNA would be the minimum study I’d start considering as proof that this is not something that can happen in the wild.

                                                                                      1. 2

                                                                                        As I mentioned, I’m not a biologist. For all I know they did that experiment years ago already. Since multiple laymen on this forum came up with that concern within a few minutes of reading the article, I fully expect biologists to be aware of the issue, too.

                                                                                        That said, in a way we have that experiment already going on continuously: quickly evolving viruses (such as influenza) that mess with the human body for generations. Apparently they encountered pseudouridine regularly (and were probably at times exposed to PUS1-5 and friends that might have swapped out an U for a Ψ in a virus accidentally) but still didn’t incorporate it into their structure despite the presumed improvement to their fitness (while eventually leading our immune system to incorporate a response to that).

                                                                                        Which leaves me to the conclusion that

                                                                                        1. I’d have to dig much deeper to figure out a comprehensive answer, or
                                                                                        2. I’ll assume that there’s something in RNA processing that makes it practically impossible for viruses to adopt that “how to evade the immune system” hack on a large scale.

                                                                                        Due to lack of time (and a list of things I want to do that already spans 2 or 3 lifetimes) I’ll stick to 2.

                                                                                  2. 1

                                                                                    I enjoyed the article, reminded me of my days at the university :-)

                                                                                    So here are some quick questions in case you have an answer:

                                                                                    • Where does the body store info about which proteins are acceptable vs not?
                                                                                    • How many records can we store there?
                                                                                    • Are records indexed?
                                                                                    • How does every cell in the body gets this info?
                                                                                    1. 12

                                                                                      It is called negative selection. It works like this:

                                                                                      1. Body creates lots of white blood cells by random combination. Each cell has random binding sites binding to specific proteins and will attack them.
                                                                                      2. Newly created white blood cells are set loose in staging area, which is presumed to be free of threats. All cells triggering alarm in staging area kill themselves.
                                                                                      3. White blood cells, negatively selected not to react to itself, mature and are released to production.
                                                                                      1. 1

                                                                                        Interesting, thanks for sharing!

                                                                                      2. 5

                                                                                        How does info spread through the body

                                                                                        I came across this page relatively recently and it really blew my mind.

                                                                                        glucose is cruising around a cell at about 250 miles per hour

                                                                                        The reason that binding sites touch one another so frequently is that everything is moving extremely quickly.

                                                                                        Rather than bringing things together by design, the body can rely on high-speed stochastic events to find solutions.

                                                                                        This seems related, to me, to sanxiyn’s post pointing out ‘random combination’ - the body:

                                                                                        • Produces immune cells which each attack a different, random shape.
                                                                                        • Destroys those which attack bodily tissues.
                                                                                        • Later, makes copies of any which turn out to attack something that was present.

                                                                                        This constant, high-speed process can still take a day or two to come up with a shape that’ll attack whatever cold you’ve caught this week - but once it does, that shape will be copied all over the place.

                                                                                        1. 2

                                                                                          I did some projects in grad school with simulating the immune system to model disease. Honestly we never got great results because a lot of the key parameters are basically unknown or poorly characterized, so you can get any answer you want by tweaking them. Overall it’s less well understood than genetics, because you can’t study the immune system in a petri dish. It’s completely fascinating stuff though: evolution built a far better antivirus system for organisms than we could ever build for computers.

                                                                                      1. 3

                                                                                        BOFH 3 used to be funny. Not anymore

                                                                                        1. 1

                                                                                          I read the 3rd entry in the linked list - it wasn’t funny then, either.

                                                                                        1. 26

                                                                                          All highly biased articles that fail to explain their inflammatory titles suck.

                                                                                          1. 3

                                                                                            I wouldn’t even call this an article, it’s just a bunch of random quotes and a list of things someone doesn’t like for some pretty non-obvious reasons we can only guess at (in some of the cases, anyway).

                                                                                            1. 1

                                                                                              Completely agree. I was hoping someone could shine some light on some of the choices. Obviously, this comes from someone involved with Plan 9. But if there were no Plan 9, how would this list look like?

                                                                                              1. 1

                                                                                                It’d likely be something like suckless. Here’s a rant about POSIX locales that might be relevant. These are easy to find if you search. I’d propose you do so.

                                                                                                I think cat-v can be summarized as striving for mathematical-like simplicity and solving the problems in right place. I find this simplicity invaluable because it reduces noise a lot.