cultural reviewer and dabbler in stylistic premonitions

  • 742 Posts
  • 1.1K Comments
Joined 3 years ago
cake
Cake day: January 17th, 2022

help-circle












  • The network never went down.

    You say that but, everything I ever posted on identica (and also on Evan’s later OStatus site Status.Net, which i was a paying customer of) went 404 just a few years later. 😢

    When StatusNet shut down I was offered a MySQL dump, which is better than nothing for personal archival but not actually useful for setting up a new instance due to OStatus having DNS-based identity and lacking any concept for migrating to a new domain.

    https://identi.ca/evan/note/6EZ4Jzp5RQaUsx5QzJtL4A notes that Evan’s own first post is “still visible on Identi.ca today, although the URL format changed a few years ago, and the redirect plugin stopped working a few years after that.” … but for whatever reason he decided that most accounts (those inactive over a year, iiuc, which I was because I had moved to using StatusNet instead of identica) weren’t worthy of migrating to his new pump.io architecture at all.

    Here is some reporting about it from 2013: https://lwn.net/Articles/544347/

    As an added bonus, to the extent that I can find some of my posts on archive.org, links in them were all automatically replaced (it was the style at the time) with redirects via Evan’s URL shortening service ur1.ca which is also now long-dead.

    screenshot of Roy Batty (Rutger Hauer) in the 1982 film Blade Runner, during his "Tears in rain" monologue. (no text)

    imo the deletion of most of the content in the proto-fediverse (PubSubHubbubiverse? 😂) was an enormous loss; I and many other people had years of great discussions on these sites which I wish we could revisit today.

    🪦

    The fact that ActivityPub now is still a thing where people must (be a sysadmin or) pick someone else’s domain to marry their online identity to is even more sad. ActivityPub desperately needs to become content addressable and decouple identity from other responsibilities. This experiment (which i learned of via this post) from six years ago seemed like a huge step in the right direction, but I don’t know if anyone is really working on solving these problems currently. 😢














  • Do tech journalists at the New York Times have any idea what they’re talking about? (spoiler)

    'We’re going to talk about these stories.'

    The author of this latest advertorial, Kevin Roose, has a podcast called “Hard Fork”.

    Here he and his co-host attempt to answer the question “What’s a Hard Fork?”:

    kevin roose: Casey, we should probably explain why our podcast is called “Hard Fork.”

    casey newton: Oh, yeah. So our other names didn’t get approved by “The New York Times” lawyers.

    kevin roose: True.

    casey newton: And B, it’s actually a good name for what we’re going to be talking about. A “hard fork” is a programming term for when you’re building something, but it gets really screwed up. So you take the entire thing, break it, and start over.

    kevin roose: Right.

    casey newton: And that’s a little bit what it feels like right now in the tech industry. These companies that you and I have been writing about for the past decade, like Facebook, and Google, and Amazon, they’re all kind of struggling to stay relevant.

    kevin roose: Yeah. We’ve noticed a lot of the energy and money in Silicon Valley is shifting to totally new ideas — crypto, the metaverse, AI. It feels like a real turning point when the old things are going away and interesting new ones are coming in to replace them.

    casey newton: And all this is happening so fast, and some of it’s so strange. I just feel like I’m texting you constantly, “What is happening? What is this story? Explain this to me. Talk with me about this, because I feel like I’m going insane.”

    kevin roose: And so we’re going to try to help each other feel a little bit less insane. We’re going to talk about these stories. We’re going to bring in other journalists, newsmakers, whoever else is involved in building this future, to explain to us what’s changing and why it all matters.

    casey newton: So listen to Hard Fork. It comes out every Friday starting October 7.

    kevin roose: Wherever you get your podcasts.

    This is simply not accurate.

    Today the term “hard fork” is probably most often used to refer to blockchain forks, which I assume is where these guys (almost) learned it, but the blockchain people borrowed the term from forks in software development.

    In both cases it means to diverge in such a way that re-converging is not expected. In neither case does it mean anything is screwed up, nor does it mean anything about starting over.

    These people who’s job it is to cover technology at one of the most respected newspapers in the United States are actually so clueless that they have an entirely wrong definition for the phrase which they chose to be the title of their podcast.

    “Talk with me about this, because I feel like I’m going insane.”

    But, who cares, right? “Hard fork” sounds cool and the times is ON IT.


  • I started to python one and half week ago. So I’m still beginner.

    Nice work! Here are a few notes:

    The WeatherApp object has a mix of attributes with long-term (eg self.LOCATIONS) and short-term (eg self.city) relevance. Instance attributes introduced in places other than __init__, which makes it non-trivial for a reader to quickly understand what the object contains. And, actually, self.{city,lat,lon} are all only used from the add_city method so they could/should be local variables instead of instance attributes (just remove the self. from them).

    There seem to maybe be some bugs around when things are lowercase and when not; for example checking if self.city.lower() in self.LOCATIONS but then when writing there the non-lower self.ctiy is used as the key to self.LOCATIONS.

    The code under if rep == "1" and elif rep == "2" is mostly duplicated, and there is no else branch to cover if rep is something other than 1 or 2.

    It looks like the config only persists favorites so far (and not non-favorite cities which the user can add) which isn’t obvious from the user interface.

    Passing both location and locations into WeatherAPI so that it can look up locations[location] is unnecessary; it would be clearer to pass in the dict for the specific location. It would also be possible to avoid the need for LOWLOCATIONS by adding a non-lowercase name key to the per-location dictionaries that just have lat and lon right now, and then keeping LOCATIONS keyed by the lowercase names.

    HTH! happy hacking :)





  • Why memorize a different command? I assume sudoedit just looks up the system’s EDITOR environment variable and uses that. Is there any other benefit?

    I don’t use it, but, sudoedit is a little more complicated than that.

    details

    from man sudo:

    When invoked as sudoedit, the -e option (described below), is implied.
    
           -e, --edit
                   Edit one or more files instead of running a command.   In  lieu
                   of  a  path name, the string "sudoedit" is used when consulting
                   the security policy.  If the user is authorized by the  policy,
                   the following steps are taken:
    
                   1.   Temporary  copies  are made of the files to be edited with
                        the owner set to the invoking user.
    
                   2.   The editor specified by the policy is run to edit the tem‐
                        porary files.  The sudoers policy  uses  the  SUDO_EDITOR,
                        VISUAL  and  EDITOR environment variables (in that order).
                        If none of SUDO_EDITOR, VISUAL  or  EDITOR  are  set,  the
                        first  program  listed  in the editor sudoers(5) option is
                        used.
    
                   3.   If they have been modified, the temporary files are copied
                        back to their original location and the temporary versions
                        are removed.
    
                   To help prevent the editing of unauthorized files, the  follow‐
                   ing  restrictions are enforced unless explicitly allowed by the
                   security policy:
    
                    •  Symbolic links  may  not  be  edited  (version  1.8.15  and
                       higher).
    
                    •  Symbolic links along the path to be edited are not followed
                       when  the parent directory is writable by the invoking user
                       unless that user is root (version 1.8.16 and higher).
    
                    •  Files located in a directory that is writable by the invok‐
                       ing user may not be edited unless that user is  root  (ver‐
                       sion 1.8.16 and higher).
    
                   Users are never allowed to edit device special files.
    
                   If  the specified file does not exist, it will be created.  Un‐
                   like most commands run by sudo, the editor is run with the  in‐
                   voking  user's  environment  unmodified.  If the temporary file
                   becomes empty after editing, the user will be  prompted  before
                   it is installed.  If, for some reason, sudo is unable to update
                   a file with its edited version, the user will receive a warning
                   and the edited copy will remain in a temporary file.
    

    tldr: it makes a copy of the file-to-be-edited in a temp directory, owned by you, and then runs your $EDITOR as your normal user (so, with your normal editor config)

    note that sudo also includes a similar command which is specifically for editing /etc/sudoers, called visudo 🤪