GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

Notices by Simon Tatham (simontatham@hachyderm.io)

  1. Embed this notice
    Simon Tatham (simontatham@hachyderm.io)'s status on Thursday, 06-Mar-2025 17:19:43 JST Simon Tatham Simon Tatham
    in reply to
    • Rich Felker

    @dalias on the part of "can get force-pushed between starting to review and merging it": I guess that might mean you like to review patches by pointing a browser at the remote site?

    I can see that if someone points me at a clone of my repo on Github, and I look at the patch in a browser and like it, then there's a risk that the version I 'git fetch' and merge into my repo might not the the same one.

    But that's not how I do it. I 'git fetch' _before_ the review, downloading a copy of the candidate branch to a checkout on my own machine. Then I review the patch in gitk, probably compile and test it too (after at least one eyeball review pass), and if I'm happy, merge it. And all three of those steps refer to the same version of the patch, because I only ran 'git fetch' once (unless the submitter notified me to go and check back for more changes).

    In conversation about 2 months ago from hachyderm.io permalink
  2. Embed this notice
    Simon Tatham (simontatham@hachyderm.io)'s status on Thursday, 06-Mar-2025 17:03:39 JST Simon Tatham Simon Tatham
    in reply to
    • Rich Felker

    @dalias hmm. I think there are really two separate questions there: (a) the risk of the linked-to repo vanishing _while_ you're still reviewing and considering the contribution, and (b) the risk of it vanishing long afterward so that the long-term record goes away.

    I've never considered (b) particularly important, although I'm open to being persuaded otherwise. To my way of thinking, once I've accepted a patch, the _final_ version of the patch is important to preserve, because it reflects the history of how my actual code evolved. But all the review drafts are just scaffolding – important during construction, but after you're done you can safely take them down and throw them away. I apply this equally to other people's patches sent to me, and my own patches I send to other people.

    I've never yet had the problem of the repo containing the PR branch vanishing in mid-review. I would have guessed that it wouldn't be common because it's in the submitter's interest to keep it running! But I suppose I'm thinking on the timescale of weeks at most, however long it takes me to either accept or reject.

    If PRs were public, then it seems more plausible you'd want to keep even the rejected ones forever. A patch I didn't think was worthy of getting into _my_ version of the code might still be useful to someone else to apply downstream of me.

    In conversation about 2 months ago from hachyderm.io permalink
  3. Embed this notice
    Simon Tatham (simontatham@hachyderm.io)'s status on Friday, 31-Jan-2025 21:51:56 JST Simon Tatham Simon Tatham
    in reply to
    • Rich Felker

    @dalias indeed, Unicode does carefully specify its own rule for translating between upper and lower case, which will tell you when there's no such mapping available, and also work correctly when there is one but it doesn't follow the 'xor with 0x20' rule.

    (Fun fact: the 'xor with 0x20' rule works for half the Greek alphabet but not the other half, because the two cases of Greek are separated by 0x20 but offset by 0x10. E.g. the xor rule maps Γ to γ as you'd like, but Σ and σ each map to an unrelated thing.)

    But if I'd used the proper Unicode case mapping rules then the joke wouldn't have worked :-)

    In conversation about 3 months ago from hachyderm.io permalink
  4. Embed this notice
    Simon Tatham (simontatham@hachyderm.io)'s status on Friday, 11-Oct-2024 23:03:40 JST Simon Tatham Simon Tatham
    in reply to
    • Paul Cantrell

    @inthehands conversely, there's a case where people expect code to behave like law. Namely, the people who want encryption systems to have backdoors accessible via govt paperwork like a court order.

    The point they (perhaps deliberately) never understand is: you can't make the _cryptosystem_ verify a court order is legit. A human has to check that. And then they do something to the code. Which the code would obey whether or not the human had checked the court order, or even had one to check.

    In conversation about 7 months ago from hachyderm.io permalink
  5. Embed this notice
    Simon Tatham (simontatham@hachyderm.io)'s status on Tuesday, 10-Sep-2024 17:25:09 JST Simon Tatham Simon Tatham
    in reply to
    • Tony Arcieri 🌹🦀

    @bascule that reminds me of the time I noticed in a web server log that occasionally clients would get a 404 after requesting a bizarre URL of the form

    https://[hostname]/0.000000E+00username/

    which, after some headscratching, I realised was because they had started with

    https://[hostname]/~username/

    and then %-escaped the tilde

    https://[hostname]/%7Eusername/

    and then accidentally used that as a printf format string, which took %7E to be a floating-point format directive!

    In conversation about 8 months ago from hachyderm.io permalink
  6. Embed this notice
    Simon Tatham (simontatham@hachyderm.io)'s status on Saturday, 17-Aug-2024 22:59:16 JST Simon Tatham Simon Tatham

    If you put the same pipe on a process's stdout and stderr, you get all its output interleaved in the order it wrote it (after stdio buffering).

    If you use two pipes, you can tell which output went where.

    But what if you want separation _and_ ordering?

    You can _almost_ do it by making two AF_UNIX datagram sockets connected to the same peer. Then recvfrom() gives you a chunk of data _and_ tells you which socket it was written to.

    But you lose the ability to detect EOF, which is a show-stopper!

    In conversation about 9 months ago from hachyderm.io permalink
  7. Embed this notice
    Simon Tatham (simontatham@hachyderm.io)'s status on Friday, 14-Jun-2024 14:31:11 JST Simon Tatham Simon Tatham

    'mkdir -p' lets you make a deeply nested subdirectory like a/b/c/d, making all the intermediate directories on the way to it. So if even 'a' doesn't exist, it'll make that, then a/b, etc.

    But you can also get it to make multiple _non_-nested directories, because it accepts '..' in the path and doesn't treat it specially:

    $ mkdir -p alpha/../beta/../gamma
    $ ls
    alpha beta gamma
    $

    [Edit: to be clear, I'm pointing out an amusing edge case, not giving advice!]

    In conversation about 11 months ago from hachyderm.io permalink
  8. Embed this notice
    Simon Tatham (simontatham@hachyderm.io)'s status on Tuesday, 30-Apr-2024 16:50:04 JST Simon Tatham Simon Tatham

    Centuries after Sauron's defeat, Middle-Earth developed motor racing, and Gandalf found his new dream job: driving the safety car.

    Unfortunately, he didn't think of applying for that job until he needed a career change, having been fired from the prestigious position of Head of Examinations at the University of Gondor.

    In conversation about a year ago from hachyderm.io permalink
  9. Embed this notice
    Simon Tatham (simontatham@hachyderm.io)'s status on Friday, 26-Apr-2024 16:55:25 JST Simon Tatham Simon Tatham

    In bash, writing ${var?} instead of just ${var} or $var means if var isn't defined then bash will throw an error and _not_ execute your command, instead of expanding it to "" and carrying on.

    mv file1 file2 $subdir # oops, I overwrote file2
    mv file1 file2 ${subdir?} # error message instead of disaster

    My favourite use of this is for example commands in documentation, with placeholders for the user to fill in. Then it's OK if a user accidentally copy-pastes it _without_ filling them in!

    In conversation about a year ago from hachyderm.io permalink

    Attachments


  10. Embed this notice
    Simon Tatham (simontatham@hachyderm.io)'s status on Wednesday, 24-Apr-2024 00:38:33 JST Simon Tatham Simon Tatham

    The Dragon Book orthodoxy for handling source code is a regex-based lexer and an LR parser, in series, with no feedback between them and no weird edge cases.

    What widely used languages can _really_ be parsed this way? So many major languages can't: type name ambiguity, context-sensitive lexing of >>, offside rule, conditionally significant newlines, …

    (Not counting really simple things like Lisp: something with a grammar the size of C, suitable as a full-scale example for a parser generator.)

    In conversation about a year ago from hachyderm.io permalink
  11. Embed this notice
    Simon Tatham (simontatham@hachyderm.io)'s status on Tuesday, 16-Apr-2024 07:59:52 JST Simon Tatham Simon Tatham

    We've released #PuTTY version 0.81. This is a SECURITY UPDATE, fixing a #vulnerability in ECDSA signing for #SSH.

    If you've used a 521-bit ECDSA key (ecdsa-sha2-nistp521) with any previous version of PuTTY, consider it compromised! Generate a new key pair, and remove the old public key from authorized_keys files.

    Other key types are not affected, even other sizes of ECDSA. In particular, Ed25519 is fine.

    This vulnerability has id CVE-2024-31497. Full information is at https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-p521-bias.html

    In conversation about a year ago from hachyderm.io permalink

    Attachments

    1. No result found on File_thumbnail lookup.
      PuTTY vulnerability vuln-p521-bias
  12. Embed this notice
    Simon Tatham (simontatham@hachyderm.io)'s status on Saturday, 06-Apr-2024 20:19:57 JST Simon Tatham Simon Tatham
    • goatsarah

    @goatsarah certainly the Amiga was where I first had a need to refer to the mouse pointer at all, and I'm pretty sure that was what it was called there. So I'd believe it!

    In conversation about a year ago from hachyderm.io permalink
  13. Embed this notice
    Simon Tatham (simontatham@hachyderm.io)'s status on Saturday, 06-Apr-2024 18:45:10 JST Simon Tatham Simon Tatham

    Been reminded a couple of times recently that I seem to be the only person who refuses to say 'mouse cursor'. I call it the mouse _pointer_, to distinguish it from the 'cursor' which is the block or line or caret in your terminal or text-editing environment that shows where your next keyboard input will go.

    If you think 'cursor' is the mouse pointer, what's the other thing called?

    And if you say 'cursor' for both, what's your usual strategy when you need to clarify?

    In conversation about a year ago from hachyderm.io permalink
  14. Embed this notice
    Simon Tatham (simontatham@hachyderm.io)'s status on Sunday, 01-Oct-2023 07:11:42 JST Simon Tatham Simon Tatham

    Linux sometimes reports a USB peripheral as "Generic Mass Storage Device".

    Suddenly strikes me: isn't that a pretty good description of a black hole?

    In conversation Sunday, 01-Oct-2023 07:11:42 JST from hachyderm.io permalink

User actions

    Simon Tatham

    Simon Tatham

    Free software developer. Hobby mathematician.

    Tags
    • (None)

    Following 0

      Followers 0

        Groups 0

          Statistics

          User ID
          180597
          Member since
          30 Sep 2023
          Notices
          14
          Daily average
          0

          Feeds

          • Atom
          • Help
          • About
          • FAQ
          • TOS
          • Privacy
          • Source
          • Version
          • Contact

          GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

          Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.