• 1 Post
  • 19 Comments
Joined 1 year ago
cake
Cake day: June 15th, 2023

help-circle
  • Groceries, in particular, are more of an effect than a cause. Lots of people live without cars in New York City, or London, or Paris, or Toronto, or Tokyo, and they manage to eat. The reason you need to buy 7 days worth of food for two people all at once is because you live in a field far away from everything. “Getting Groceries” becomes a special trip, because, while driving, leaving the highway, stopping and parking are inconvenient.

    As a pedestrian in a city, I was going to walk past 5 food stores on my way between work and home anyway, and it’s really not problem to walk in and buy only what I ran out of yesterday, or some special item I wanted for tonight’s dinner. It’s simple to shop for 5 or 10 minutes, five times a week, rather than one hour once a week, and never need more than a single bag of groceries at a time. And rather than being inconvenient, it’s actually great because I’m only buying what I need right now, the things I’m going to use as soon as I get home, so it’s very simple.

    Allergies could be tricky, yeah. If you’re lucky the local shop, by nature of being smaller and more local, actually knows you and knows you need this stuff and stocks it because they know you’ll buy it from them. But that’s not a guarantee, for sure. That having been said, if the only people driving were people with corn allergies, the roads would be a much safer place!


  • Some tips:

    • Unless the code is very small, or your feature is very big, try to put blinders on, and focus only on the code you absolutely need to to get your feature built. Use search tools to comb through the code to find the relevant methods while reading as little surrounding code as possible, tweak those methods to be different, and call that a first draft. If the maintainer wants the code refactored or differently arranged, they can help with that as part of the review process
    • Being unable to build sucks, it really does. But if the software is released for your platform, it means someone out there is able to build it. And these days that someone is often an automated build tool that runs per release. See if you can figure out how this tool works. What build steps it uses, what environment it runs in, etc. If you can’t figure that out, try contacting the person who releases the builds
    • If the software is in apt (if you’re on a Debian-based system), you can use apt build-dep, apt source, and debuild to try and recreate the native apt build process. These tools will give you the source that built the system package, and its dependencies, and allow you to build a deb yourself out of it. Test the build to make sure it’s working as-is. If it is, and if the software’s dependencies haven’t changed too much, you can even use apt to fetch the old version that’s in the repos, update the code to reflect the upstream release, and then test the build there to see if it still builds. If so, now you have something you can start working off.
    • If you aren’t on an apt system, but do have a package manager, I assume there’s an equivalent to the workflow mentioned above
    • If your change is subtle enough that you think it’s pretty low-risk, you could just edit the code even though you can’t build it. This might be sufficient for bug-fixes where you just need to check something is greater than zero, or features where you pass a true instead of a false in certain conditions or something. You should probably mention this in your PR / MR / Patch so the reviewer knows to test building it before merging.
    • This one is a bit wild, but let’s say you’re on a Mac or Windows machine, and the build instructions only work for Linux. You can just run a virtual machine that’s got Ubuntu or something running on it, and use it as your build environment. These days you can probably be in a simpler situation with Docker or something more lightweight, but as a worst-case scenario, a full virtual machine is there for you if you need it
    • And finally, if the tool isn’t a crazy popular or busy tool, it’s possible the maintainer or other people in the community are more approachable than you think. If they are looking for contributions, then getting a willing contributor’s build environment setup is a benefit to the project. Improving their build docs helps not just you, but potential future contributors as well. A project will usually be more helpful towards someone who says “I’m trying to build this feature, but I’m running into trouble” compared to someone saying “why doesn’t your tool do X”. You may need to be a bit patient, they’re probably doing this on volunteer hours, but they might be happy to help you get your stuff sorted out

    Good luck out there, and try not to be discouraged!



  • To be fair, we don’t see like reverse engineered printing. Printing is reverse engineered seeing. If we saw like this post is claiming shrimp see, and blue was blue and green was green and yellow was yellow, we wouldn’t be able to print by mixing three colours. We’d need one pigment per photoreceptor, same as we do now.



  • 100% you can do it with some good instructional content and a smidge of patience!

    A standard lock is disturbingly easy to pick… We used to run a booth at a maker event where we taught members of the public passing by including, like, 5 year olds to pick padlocks.

    Unrelated, but BTW there are some jurisdictions if I’m not mistaken where having lock picking tools found on you is considered “criminal intent” or something, but on the other hand if you’re already at the point where your bag is being searched you may already be boned…



  • I’ve never been a Twitter/microblog user, but here’s how I gather it worked, presented in the order in which it was developed.

    Do you ever think “oh, that’s a funny/interesting thought I had”, but there’s no one around to tell? Or not enough people and you think it had more potential than that? Microblog. Unlike a forum, you just dump in out into the void as-is. It’s a broadcast. Like if every account was a personal /r/showerthoughts.

    From there we make it so I can subscribe to my friends. Now when they post their funny thoughts, or even just being like “I feel like tacos tonight, anyone in SF down?” I’ll get their post. Now it’s kinda like open group texting. Except I don’t choose who sees my random thoughts, they self-select. I just broadcast things out there and whoever might be interested might be interested.

    That was basically all that microblogs were, at the beginning. A stream of non-topic’d stuff I said, and you can follow me if you want to hear more like it.

    But sometimes I’m surrounded by strangers, like at a conference. At these points I want to know what random people I don’t follow are all saying about FooCamp. Search already exists so I can see all tweets with the word “cat” in it, but I can’t find a way to fit FooCamp organically into every post, so hashtags get invented as a social convention to say “that was my message, but here are some other keywords for search purposes”. Later they got linkified and so people started putting them inline, but originally they were just at the end and just for extra categorization.

    So now the tool does two things. I can just broadcast out any thought I have without having to care about where to put it, etc. It all goes on my feed and anyone who has chosen to care about me will see it. And I choose who I care to receive broadcasts from because they’re cool, and it doesn’t matter what they’re talking about. But also I can tag a particular message with some categories, and that will allow strangers to see my messages if they happen to be looking for messages in that category, but obviously a single message can be in multiple categories.

    Then later famous people and governments showed up, and people followed them because they love go hear what famous people talk about. But if you don’t follow them, then you don’t hear from them.

    That’s basically it! So it’s kinda like the opposite of a reddit/lemmy/forum/usenet model. Rather than topics that have content posted by people, it’s people who post content that sometimes has a topic. Like a large group-chat (among friends or colleagues) where you’re not really sure who is in the chat, but you don’t have to care. You can prefer one over the other (I know I do), but fundamentally they’re not trying to solve the same problem as lemmy, they’re just a totally different model for communication. More like a friend group than a discussion group.




  • I used to use Firefox before Chrome came out, because it was better than IE. When Chrome came out it was a breath of fresh air. A real third option! (konqueror didn’t really count). And it was faster, cleaner, lighter than Firefox. Just better at everything. So I installed it on all of my family’s computers, which they allowed me to do because IE by then was so bad it was an obvious improvement even for the layman.

    Then in the intervening years Firefox dwindled to basically no market share and IE died, so now Chrome isn’t a third option, it’s the only option. And so I switched back to Firefox basically as a political sacrifice, but there’s no way I’m going to be able to convince any of my family to switch because Firefox isn’t better for them in any perceivable way. It’s just different and they don’t care. If Firefox had 30% market share I’d almost definitely be using Chromium still myself.

    So probably that, but a million times. There was a period where every nerd moved all their associated people to Chrome because it was new, great, and non-dominant. It was hip and indie. And now they’re still there and there’s no reason for them to move that they care about.


  • Ok, let me rephrase your rephrase to be what question I think you’re trying to ask.

    At some point we had decided on a seven day week with week names. That’s fine. But we must also have decided at some point that today was Wednesday in this system.

    So I think you’re asking “what is the first day we all agree was definitely a Sunday, such that all Sundays after were based on that”. Or put another way, at what point did the days of the week get locked to the days of our year.

    I don’t have that answer, but your question confused me, so I’ve reworded it.


  • I don’t know the answer to the title, so I’ll answer the body. The answer is “it depends”.

    If you’re talking to someone in a technical setting, then servers are the physical machines. The computers themselves, sitting in a room somewhere. Or maybe a virtual server that pretends to be a physical machine, but runs on a real server that sits in a room somewhere. Whereas a website is some location you can put into a web browser and get content that “feels” like it’s all one thing.

    The reason this distinction matters is because you can host multiple small websites on a single server. For example there’s no reason a particular machine couldn’t host 10 different lemmy instances, if it’s got enough processing power.

    But on the other hand a popular website may have its work spread across multiple servers. Maybe I’ve got a database server, which is a machine that only runs the database. And then maybe I have a few different web servers that actually serve “the webpage”, but I’ve also got a cache server that stores part of the webpage and serves that when it can, etc. Websites like Facebook or Twitter are considered one website but have thousands and thousands of servers.

    But if you’re talking to someone in a non-technical setting, yeah they’re basically the same.



  • If you’re talking about a community instance that strangers can join, it’s mostly about volunteering and feeling like you’re contributing to something.

    If you’re talking about running one for you alone, or you and friends or family, then it’s mostly about controlling your experience. You control when there are updates, you control what version you run, you know who has your data, it’s you. You know no one’s doing anything bad with it, because it’s you. If there’s something bugging you and someone else wrote a patch to fix it, you can deploy that. Or if there’s some setting to enable or disable a feature for the whole instance, you can set it to your preference.

    The cons are that it’s you. If it goes down because something broke or got corrupted, it doesn’t come back later on its own. You do it. If your database poops the bed and eats all your data, then did you have backups? Were they kept on a different disk than the corrupted one? Because if not then your data is now gone. A new version came out! When does the upgrade happen? When you make time to do it. Maybe there’s manual migration steps you need to do, maybe you need to change some new settings, you should probably make a backup in case you have to roll back… How did you know there was a new version out? How do you know if there’s some critical bug or security flaw you need to fix? You have to subscribe to the community, essentially.

    Maybe you subscribe to a lot of busy photo communities and then one day lemmy is down for you. Weird… the box won’t turn on. Oh, the disk is at 100%. Shit, did you not have a monitor that checks disk usage and emails you when it’s getting full? Oops…




  • Depends on what you want. I’ve been liking Godot, but I’m an “Open Source” person. There’s definitely more of a community around Unity or Unreal.

    But Godot is free in both ways and relatively user friendly, and since you’re uninterested in hiring a hundred people, using a tool that you like is fine, even if it’s not the most popular.

    There’s a course I’ve never used called Learn GDscript which teaches the inbuilt language for Godot (GDScript) in the browser with fun interactive tasks. It looks neat, but I’ve never tried it myself. You can use other languages with Godot, but I recommend the GDScript. It’s very similar to Python and is well integrated into the engine.

    So from there it’s about screwing around! Like other people have said, you’re not going to whip up the game that’s in your head in anything like the time frame you probably think. Even if you think you’re being realistic, it’s probably even worse than that. But I don’t say this to discourage you, I say this to prevent you from discouraging yourself!

    If you can get a game where a green circle goes through a maze and then text shows up on the screen that says “you did it”, that should be viewed as an accomplishment! It’s simple, sure, but it’s something you did. Try to break your game’s features up into micro chunks that are playable. It’s easy to spend 6 months working on something and making progress, but not in any way you can show friends or whoever, and can’t even really “play” yourself. That can be demotivating. Try as much as you can to have something playable as often as possible. It will feel much more like real progress if you constantly have something you can demo.

    And also don’t underestimate how much a bit of art and sound effects can change an experience. Silent 2D boxes is fine to test things out, but even a free art and sound effects pack makes a huge difference in how fun a game can feel. It can make even a simple premise suddenly feel like a game.

    Good luck, have fun! Oh, also once you’re done tripping over your feet, maybe try a game jam! They’re good exercise.


  • I think the normal issue prohibiting e2e encrypted messages being actually good is that end to end encryption requires keys, and keys require verification, and verification requires a trusted outside channel.

    As it stands I would want a secure line to some random user I don’t know anything about, so I need a key. Where do I get a user’s key? I ask the same untrusted admin of their lemmy instance for it and they give it to me. How do I validate this key is actually this user’s? I don’t, I just trust the key the admin gave me. Then I encrypt my message and send it over.

    So it protects against an honest instance being attacked later. Or against a shortsighted admin who might feel a little like peeking but hadn’t thought about being dishonest yet.

    But in exchange for a smidge of security, what you gain is that new clients can’t read any DM you received before you started using it, or a buggy client who hasn’t synced the keys lately sending a message that only 2 of your clients can read but not the one you’re using right now. Or a phone falling into a toilet and effectively taking all your DMs with it because either there was no UI to back up your keys, or there was one but you didn’t use it because no one ever uses it, or there is a UI to backup the keys but no UI to import them on the next client, etc.


  • I think you need to change the goal. Rather than the goal being to purchase the right chair, make the goal into “buying a chair today”. Now your task isn’t to decide on the best chair and to maybe buy no chair if none seem good. Your goal is to have a chair tonight. So at that point if you have seen a few chairs and they all seem equally “fine”, great! In that case pick any of them, they’ll all satisfy the challenge, and go home content!

    Only barely related, there’s a Numberphile video you may find interesting about choosing portapotties, but the premise is “how many do I need to look at before committing to this one without seeing the rest”. Again, barely related, but the takeaway is that you don’t necessarily need to see every chair to get a sense of the average chair and then just pick the next one that seems average or better.