Skip Navigation
What’s in a name?
  • of course!

  • White House: Future Software Should Be Memory Safe
  • I feel this is a bit of a moot point from the White House. Memory-safe languages have been around for decades. I feel like the amount of C/C++ out there isn't so much that people think having dangerous stuff around is good, but more that nobody really wants to pay to change it.

  • Does email (SMTP/POP3) count as a member of the fediverse?
  • Depends how you look at it! Here’s me accessing Mastodon and the fediverse via email: https://lemmy.world/post/11020167 I’ve written a a couple more prototypes to connect one to the other. If anyone is interested I could write up more about how it works or do a more public demo

  • Any apps or sites that scrapes web pages and gives much better privacy respecting web pages or apps than the official ones ?
  • Not included in the above, but handy is also an alternative web UI for Reuters news: https://neuters.de

  • RFC 9512: YAML Media Type
  • Link to the YAML spec, for the (very) brave: https://yaml.org/spec/1.2.2/

  • Third time's a charm
  • no you didn't Mr. Simpson, no one can

  • No sir
  • took me a couple but worth it

  • Australia is bigger than some people overseas imagine.
  • The other fun one is that the continental US (AKA everything except Alaska) is just about the same size as Australia. Then when you consider that there's 49 states versus Australia's 7, you can see how the numbers come about.

  • 💰➡️✝️
  • well there was probably awareness of ideas of sacrifice, punishment, right/wrong. Old ideas...

  • Unexpected comment behaviour between Mastodon and Lemmy
  • Good question! Sorry if this answer is weird :)

    For me, I don't actually interact from Mastodon per se. I wrote a couple of read-only Lemmy & Mastodon clients. One for a weird text editing environment I use (https://lemmy.sdf.org/post/1035382) and via email (https://gts.olowe.co/@o/statuses/01HMQ9N4HQ2ETGZWJS49K5NG5Y). To reply to or create posts, I use a write-only Mastodon client I wrote.

    My idea is to exercise the fediverse. In principal I don't think I should need separate accounts for Lemmy, PeerTube, Mastodon, Kbin, Akkoma, etc.

    Right now I'm replying from an account on lemmy.sdf.org as I can't reply from GoToSocial (Lemmy and GoToSocial don't work well together right now) and my Mastodon server (hachyderm.io) has a post limit of 500 characters.

  • Unexpected comment behaviour between Mastodon and Lemmy
  • Ah ha makes sense now! The "Replying to comments" section of that article explains exactly what's happening. If I understand correctly the community itself (!privacy@lemmy.ml in my above example) is not notified of my reply from Mastodon. If the community did know, then it would broadcast a notification of the activity to whoever else is subscribed to !privacy@lemmy.ml.

  • Why We Can't Have Nice Software
  • I honestly find it worrying that someone would think it's some sort of deeply ingrained human trait when it's clearly not culturally universal (eg. small hunter-gatherer tribes wouldn't exist otherwise) and not present through all of history.

    I think "growth" is a strong signal for people to put faith and trust into something. And that these emotions have influenced our behaviour for a long time.

    Why did the Roman empire keep expanding? What made them want more? I'm not a historian nor an anthropologist (far from either!). But this feels like "line go up" behaviour. What would it mean for those in power to communicate that some part of the empire was receding? Even if, overall, the empire was objectivetly huge relative to other organised groups?

    One thing I think about is there could be eroding confidence and trust of those in power by colleagues and the general population. If people lose faith, the powerful lose power; they lose ability to influence behaviour. Growth is obsessed over because it's a means to capture influence over the means of production (and capture profit).

    The line has to go up because the current economic system demands it has to go up

    What about outside of economics? Even metrics on https://fedidb.org: shrinking numbers are coloured red. Growing numbers green. Green = good, red = bad.

    Another thought. The other day I was at a cricket match. Grand final. Because the home team was losing, the stadium started to empty. It wasn't about enjoying the individual balls/plays. Supporters were not satisfied with coming second (an amazing achievement, much "profit"!), it needed to be more.

    To stretch this shitty metaphor further, when the supporters (investors?) lost confidence in their ability to deliver more, they just abandoned the entire match (enterprise?) altogether!

    Again: I'm not stating anything here as fact. I'm just absolutely dumbfounded as to why "line go up" is, as you say, such an obsession. I hear you when you say that it's a consequence of how the modern economy works. That makes sense. I guess I wonder what would happen if we snapped our fingers and we could start again. I wonder what the economy system would look like. Would we still be obsessed with growth?

  • Unexpected comment behaviour between Mastodon and Lemmy
  • Gotcha. I had a feeling something around how Mastodon doesn't support ActivityPub Groups (yet?) would be where things are going on. Congrats on piefed, by the way. I'll start studying the codebase now as I'm keen to understand how server-to-server communication works more deeply than I do now. Sending Announce(?) and fetching stuff from other servers...

    When I look at the ActivityPub Note object (via curl -H 'Accept: application/activity+json https://hachyderm.io/@otl/111887721960075860) I see:

    {
        "@context": [
            "https://www.w3.org/ns/activitystreams",
            {
                "ostatus": "http://ostatus.org#",
                "atomUri": "ostatus:atomUri",
                "inReplyToAtomUri": "ostatus:inReplyToAtomUri",
                "conversation": "ostatus:conversation",
                "sensitive": "as:sensitive",
                "toot": "http://joinmastodon.org/ns#",
                "votersCount": "toot:votersCount"
            }
        ],
        "id": "https://hachyderm.io/users/otl/statuses/111887721960075860",
        "type": "Note",
        "summary": null,
        "inReplyTo": "https://ttrpg.network/comment/4965852",
        "published": "2024-02-07T01:59:08Z",
        "url": "https://hachyderm.io/@otl/111887721960075860",
        "attributedTo": "https://hachyderm.io/users/otl",
        "to": [
            "https://www.w3.org/ns/activitystreams#Public"
        ],
        "cc": [
            "https://hachyderm.io/users/otl/followers",
            "https://ttrpg.network/u/Neato",
            "https://lemmy.world/u/ForgottenFlux"
        ],
        "sensitive": false,
        "atomUri": "https://hachyderm.io/users/otl/statuses/111887721960075860",
        "inReplyToAtomUri": "https://ttrpg.network/comment/4965852",
        "conversation": "tag:hachyderm.io,2024-02-06:objectId=123754186:objectType=Conversation",
        "content": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://ttrpg.network/u/Neato\" class=\"u-url mention\">@<span>Neato</span></a></span> <span class=\"h-card\" translate=\"no\"><a href=\"https://lemmy.world/u/ForgottenFlux\" class=\"u-url mention\">@<span>ForgottenFlux</span></a></span>  I totally get how you feel. One use-case I think of is machine-generated image alt-text. These are often not added to images. But with image-to-text ML models, visually-impaired people could hear a descriptions of images that before were never annotated.</p>",
        "contentMap": {
            "en": "<p><span class=\"h-card\" translate=\"no\"><a href=\"https://ttrpg.network/u/Neato\" class=\"u-url mention\">@<span>Neato</span></a></span> <span class=\"h-card\" translate=\"no\"><a href=\"https://lemmy.world/u/ForgottenFlux\" class=\"u-url mention\">@<span>ForgottenFlux</span></a></span>  I totally get how you feel. One use-case I think of is machine-generated image alt-text. These are often not added to images. But with image-to-text ML models, visually-impaired people could hear a descriptions of images that before were never annotated.</p>"
        },
        "attachment": [],
        "tag": [
            {
                "type": "Mention",
                "href": "https://ttrpg.network/u/Neato",
                "name": "@Neato@ttrpg.network"
            },
            {
                "type": "Mention",
                "href": "https://lemmy.world/u/ForgottenFlux",
                "name": "@ForgottenFlux@lemmy.world"
            }
        ],
        "replies": {
            "id": "https://hachyderm.io/users/otl/statuses/111887721960075860/replies",
            "type": "Collection",
            "first": {
                "type": "CollectionPage",
                "next": "https://hachyderm.io/users/otl/statuses/111887721960075860/replies?only_other_accounts=true&page=true",
                "partOf": "https://hachyderm.io/users/otl/statuses/111887721960075860/replies",
                "items": []
            }
        }
    }
    

    So I'm assuming an Announce was posted to the shared inboxes at lemmy.ml, lemmy.world and ttrpg.network... hmm... I better start reading!

  • Unexpected comment behaviour between Mastodon and Lemmy
  • Ah! Interesting.

    Which instances? Do you mean hachyderm.io with, say, lemmy.one?

  • Unexpected comment behaviour between Mastodon and Lemmy

    My replies via Mastodon to Lemmy posts don't get distributed as expected. For example:

    • Original post: https://lemmy.ml/post/11552444
    • A reply via Lemmy: https://ttrpg.network/comment/4965852
    • My reply to that: https://hachyderm.io/@otl/111887721960075860

    It seems my reply only shows in these Lemmy servers:

    • lemmy.ml (the server of the group to which the post was made)
    • lemmy.world (the server of the post's author)
    • ttrpg.network (the server of the comment's author)

    From some other lemmy servers, my comment is not present:

    • lemmy.sdf.org: https://lemmy.sdf.org/comment/8124910
    • lemmy.one: https://lemmy.one/comment/6912806
    • aussie.zone: https://aussie.zone/comment/6414209

    I expected that my reply would show on any other Lemmy server with subscriptions to !privacy@lemmy.ml. Does that make sense? I'm hoping to help troubleshoot federation like this as I'm super excited about ActivityPub and what it means for the internet! :)

    12
    How to liven up retrospectives when they've gotten uneventful / unhelpful?
  • Thanks for helping me reframe my thoughts.

    Haha don't worry it's for framing my thoughts too! ;)

    To that end, I'd want topics to be problems or shout outs. Something like "how do we test credit cards" might be a sign of "our documentation isn't great and it slows me down" but it's talked about as a discreet item.

    Devil's advocate: what are those good practices? What constitutes improvement? One way to focus discussion is to try and pick some specific team values/objectives. Let's go with the example about Jira.

    Similarly "I haven't seen Jira used this way before" isn't a problem; maybe the underlying issue is "I don't understand how we use Jira" or "what we're doing causes a lot of paperwork"

    The statement "I haven't seen Jira used this way before" is not ideal starting point for discussion - agreed! But with a value in mind I think we can work with it. Let's say, for argument's sake, the goal is stronger shared understanding of project management.

    You mentioned other team members asked "what's the problem you're hoping to solve?". I think that's a very pragmatic, specific question (I'm a software engineer, too, I get it!) but it's not really in the service of the goal of the discussion: a stronger understanding of project management.

    So how can discussion help with that? What about a Q&A session? The interactive, conversational exchange is a natural way for people to learn (I hear ChatGPT is pretty popular!), and it's likely others will learn a bunch of stuff too about why things are done the way they are.


    Another technique is to use the free-flowing discussion format for what its best at: exploration of ideas, not necessarily solving problems. Solving problems usually takes code, data, testing, experimentation... things that require time at the keyboard.

    Taking the credit card example:

    Something like "how do we test credit cards" might be a sign of "our documentation isn't great and it slows me down" but it's talked about as a discreet item.

    Use the conversational format to its advantage. Respond to the question with another question: "why do you ask how we test credit cards?" From there they might reply with something about documentation, or maybe the tests aren't clear, or they're not run often enough. Maybe they want ways to run credit card tests on their own workstation as unit tests? From there we identify a whole bunch of ways to improve the code/project/workflow/better align with best practices.

    Anyway, I'm not a manager :) I'm just thinking out loud so next time I start speaking to a team to join maybe I understand the dynamics a bit more.

  • How to liven up retrospectives when they've gotten uneventful / unhelpful?
  • Hm. Interesting. This is something that gets me too...

    Taking a step back: what are you hoping to achieve with the retrospective?

    I find that the items people are bringing up aren't really important or could just be a question in Slack.

    What criteria would make something important? Conversely: what makes something minor?

    Once we nail these it might be easier to focus the discussion.

  • Why We Can't Have Nice Software
  • Growth might be impossible, but a steady and "boring" amount of profit should still be possible selling plain-ole-dishwashers. Yet ... for some reason, we don't see that.

    God yes this bothers and fascinates me.

    Instead companies throw everything into growth and we get the retarded bluetooth enabled dishwasher problem everywhere, and I'd like toknow more about why.

    I think it's alluded to in the article:

    They found a way to make consumers spend more money on dishwashing. The line goes up, for one more year. But it's not enough. It has to go up every year.

    Digging deeper: why must the line go up? Pesonally I see it as a deeply emotional, human thing.

    When you read those annual financial reports from big companies, they will do anything to make sure things look rosy. Bullshit terms like "negative growth" are used because "loss" or "shrink" sound bad. So what if it sounds bad?

    Confidence. Trust. It's emotional. These are deep in our psyche. It's how governments get elected, contracts are won, and investments are made. It's what makes us human. If that line goes down... will it go back up? What's going to happen? Alarm bells! Uncertaintly. Anxiety. People abandon you. Money, power, influence fades. You could find yourself replaced by the up-and-coming who "show promise".

    Our social emotional species has hundreds of thousands of years (millions?) of years of this stuff hardwired into us. Trust let us cooperate beyond our own individual or family interests. Would we be human otherwise? (I found the article Behavioural Modernity interesting).

  • Why We Can't Have Nice Software
  • Not sure it’s capitalism per se. Perhaps rampant waste. Criticism of capitalism could include monopoly formation; massive tech companies buy small ones (obtain more capital = more control over production = more profit).

    There’s despair over everyone, big & small, resolving the same recreated problems. Kelley doesn’t talk about breaking Microsoft up (i.e. redistributing their capital). He implies he’d be ok for Microsoft to maintain its market position if it just fixed some damn bugs.

  • How I reduced the size of my very first published docker image by 40% - A lesson in dockerizing shell scripts
  • The art of turning a 500-line text file into a 50MB tarball. Welcome to the future :(

  • Article suggests that 1 million ML specialists will be needed in 2027. What do you think of that?
  • Here’s the article’s source: https://www3.weforum.org/docs/WEF_Future_of_Jobs_2023.pdf

    That report’s data is a survey they sent out to companies. Quantising “so… what do you think is gonna happen?” seems… shonky?

  • Simple Made Easy - Rich Hickey (2011)
    www.infoq.com Simple Made Easy

    Rich Hickey emphasizes simplicity’s virtues over easiness’, showing that while many choose easiness they may end up with complexity, and the better way is to choose easiness along the simplicity path.

    Simple Made Easy

    One of my favourite talks on programming. Just wanted to share for others who haven't seen this before.

    3
    Anyone subscribe to Crikey?

    https://www.crikey.com.au How is it?

    Last year I gifted a news junky friend a year subscription to the New York Times. That was cool but they are more interested in Australian stories. Normally they browse the ABC and BBC apps.

    3
    git-send-email.io - Learn to use email with Git

    With Github so popular now, not everyone is aware of the workflows that git provides out-of-the-box for collaboration. Thought this may pique some people's curiosity :)

    6
    Rejected automation?
    www.srcbeat.com Why in-car computer systems are so bad - Part 1

    Do the people making these things even know what they are doing? Maybe not.

    Let’s share stories where your automation efforts have been rejected and you can’t quite understand why! Here’s mine.

    16
    [Praise] Small app size!

    I’m in Indonesia at the moment and my internet connections are poor. So having an app that weighs just 20MB is fantastic!

    That’s all I really wanted to say. Congrats to the devs on the progress so far!

    3
    What next for a hobbyist documentarian?

    TL;DR Seeking any advice on making documentaries about things around me!

    I've done a couple of short videos as a hobby between jobs. I'm a programmer by trade. It was really fun to make these in particular:

    • a short documentary [Backpackers In Cairns, Australia During the COVID-19 Pandemic]
    • a group profile of the [NSW Carriage Driving Society].

    But these take time that I don't really have any more; I've got a girlfriend and we don't want to spend all that time on the road! I tried to shoot a couple of 90-second news packages for a local news website but it was really hard. I hate politics and I hate that breaking news cycle.

    Off the top of my head, here are some things that I think would be fun to shoot and edit:

    • Documenting local organised events. Not just the highlights; from setting up and packing down again, mishaps along the way.
    • From bin to...? Where our rubbish goes
    • Cancelled buses: why bus drivers are so hard to find

    I feel embarassed to speak to people about these things. The word "imposter" comes to mind. I don't have any political agenda and I don't care about getting clicks via outrage. It's about discovering how things work - how things really are - and sharing that discovery.

    Alternatively I thought about shooting footage and uploading it "raw" to YouTube and/or editorial footage stock sites. From there I could pass it on to local news publications.

    Keen to hear any advice on what I could do next. Any YouTube channels which cover this kind of thing in a similar tone?

    [Backpackers In Cairns, Australia During the COVID-19 Pandemic]: https://www.youtube.com/watch?v=V5nljUo-P58 [NSW Carriage Driving Society]: https://www.youtube.com/watch?v=Pul4TCF77PE

    2
    Deleting >4000 junk communities by @LMAO

    I recently wrote a command-line utility [lemmyverse] to find communities indexed by [Lemmy Explorer]. A quick count shows almost 14%(!) of all communities indexed by lemmyverse are junk communities created by a single user @LMAO ([reported here]):

    % lemmyverse . | wc -l 30376 % lemmyverse enoweiooe | wc -l 4206

    Here's a python script, using no external dependencies, which uses Lemmy's HTTP API to delete all communities that @LMAO moderates:

    #!/usr/bin/env python

    import json import urllib.parse import urllib.request

    baseurl = "https://lemmy.world" username = "admin" password = "password"

    def login(user, passwd): url = baseurl+"/api/v3/user/login" body = urllib.parse.urlencode({ "username_or_email": user, "password": passwd, }) resp = urllib.request.urlopen(url, body.encode()) j = json.load(resp) return j["jwt"]

    def get_user(name): query = urllib.parse.urlencode({"username": name}) resp = urllib.request.urlopen(baseurl+"/api/v3/user?"+query) return json.load(resp)

    def delete_community(token, id): url = baseurl+"/api/v3/community/delete" params = { "auth": token, "community_id": id, } body = urllib.parse.urlencode(params) urllib.request.urlopen(url, body.encode())

    token = login(username, password) user = get_user("LMAO") for community in user["moderates"]: id = community["community"]["id"] try: delete_community(token, id) except Exception as err: print("delete community id %d: %s" % (id, err))

    Change username and password on lines 8 and 9 to suit.

    Hope that helps! :) Thanks for the work you all put in to running this popular instance.

    [reported here]: https://lemmy.world/post/943832 [lemmyverse]: https://lemmy.ml/post/2175658 [Lemmy Explorer]: https://lemmyverse.net

    22
    lemmyverse: find communities from the command line

    lemmyverse: search lemmy communities from the command-line. Thanks to the data HTTP API from [lemmyverse.net]! This is not really as polished as I like but, hey, in the interest of having a lively Lemmy I thought I'd share anyway :)

    Usage

    lemmyverse searches community names and descriptions using a regular expression:

    lemmyverse pattern

    Find communities about motorcycles:

    $ lemmyverse motorcycle 120024@lemmy.world All Things motorcycles 20hirnzelle@feddit.ch All Things motorcycles 7810322@lemmy.world All Things motorcycles bmwmotorrad@lemmy.world Community for BMW motorcycles. A place to share bootstrappable@slrpnk.net A community to discuss all things BMW cars & motorcycles.\nFeel free to show off your new vehicle/parts buell@lemmy.world A discussion area for Buell motorcycles. motorcycle_logistics@lemmy.world A community for pictures and videos of people using motorcycles to transport things in a creative manner.\n\nThis includes motorcycles@feddit.de This community is for all things motorcycle related. At a later point and with enough traction gained ...

    Find communities for the Plan 9 operating system:

    $ lemmyverse '(plan9)|(Plan 9)' plan9@lemmy.sdf.org Discussions on the Plan9 operating system.

    Why?

    I run relatively slow hardware and I'm travelling in Bali, Indonesia at the moment. Loading [lemmyverse.net] in a web browser takes ages and gets the laptop fans spinning (it's hot here!). So I had some fun creating a tiny command-line program to find Lemmy communities using classic UNIX tools awk(1), tr(1), grep(1) etc.

    More info

    See the [man page]:

    LEMMYVERSE(1) General Commands Manual LEMMYVERSE(1)

    NAME lemmyverse - find lemmy communities

    SYNOPSIS lemmyverse pattern

    DESCRIPTION lemmyverse finds Lemmy communities indexed by lemmyverse.net using the given regular expression as interpreted by grep(1). Both the names and descriptions of the communities are searched.

    On first run, a local community database must be generated. The full community index is downloaded from https://lemmyverse.net using curl(1), transformed, then stored in the user cache directory. To regenerate the database, remove the file and run lemmyverse again.

    FILES communities Community database from lemmyverse.net.

    ENVIRONMENT lemmyverse uses the following environment variables:

    XDG_CACHE_DIR The directory to store the community database. If unset, $HOME/.cache/lemmyverse is used.

    EXAMPLES Find communities for the Plan 9 operating system: lemmyverse '(plan9)|(Plan 9)'

    List all communities from the instance lemmy.sdf.org: lemmyverse '@lemmy.sdf.org'

    EXIT STATUS The lemmyverse utility exits 0 on success, and >0 if an error occurs.

    SEE ALSO grep(1), curl(1), https://lemmyverse.net

    [lemmyverse.net]: https://lemmyverse.net [man page]: https://git.sr.ht/~otl/x/tree/master/item/man/lemmyverse.1

    12
    research!rsc: Coroutines for Go

    Go tech lead Russ Cox:

    > This post is about why we need a coroutine package for Go, > and what it would look like.

    With a post like this it usually means there will almost certainly be a new standard library package. But even more interestingly:

    > If we are to add coroutines to Go, we should aim to do it without language changes. > That means the definition of coroutines should be possible to implement and understand in terms of ordinary Go code. > Later, I will argue for an optimized implementation provided directly by the runtime, > but that implementation should be indistinguishable from the pure Go definition.

    0
    research!rsc: Storing Data in Control Flow

    Go project tech lead Russ Cox talks about a technique to make programs clearer using concurrency.

    0
    Advice for Operating a Public-Facing API

    An OpenBSD developer and the one-man-band behind [Pushover] gives some advice after 10 years of running a public HTTP API. It's interesting as big companies are happy to publish articles about all the fancy stuff they developed to run some API, but you don't always hear from a sole developer running a service for such a long time.

    [Pushover]: https://pushover.net

    3
    (mac)OStalgia

    There's something about the consistency that is missing nowadays.

    0