• 0 Posts
  • 16 Comments
Joined 1 year ago
cake
Cake day: July 5th, 2023

help-circle



  • As someone who has often been asked for help or advice by other programmers, I know with 100% certainty that I went to university and worked professionally with people who did this, for real.

    “Hey, can you take a look at my code and help me find this bug?”
    (Finding a chunk of code that has a sudden style-shift) “What is this section doing?”
    “Oh that’s doing XYZ.”
    “How does it work?”
    “It calculates XYZ and (does whatever with the result).”
    (Continuing to read and seeing that it actually doesn’t appear to do that) “Yes, but how is it calculating XYZ?”
    “I’m not 100% sure. I found it in the textbook/this ‘teach yourself’ book/on the PQR website.”



  • I tought myself programming as a kid in the 80s and 90s, and just got used to diagnostic print statements because it was the first thing that occurred to me and I had no (advanced) books, mentors, teachers, or Internet to tell me any different.

    Then in university one of my lecturers insisted that diagnostic prints are completely unreliable and that we must always use a debugger. He may have overstated the case, but I saw that he had a point when I started working on the university’s time-sharing mainframe systems and found my work constantly being preempted and moved around in memory in the middle of critical sections. Diagnostic prints would disappear, or worse, appear where, in theory, they shouldn’t be able to, and they would come and go like a restless summer breeze. But for as much as that lecturer banged on about debuggers, he hardly taught us anything about how to use them, and they confused the hell out of me, so I made it through the rest of my degree without using debuggers except for one part of one subject (the “learn about debuggers” part).

    Over 20 years later, after a little professional work and a lot of personal projects and making things for other non-coding jobs I’ve had, I still haven’t really used debuggers much. But lately I’ve been forcing myself to use them sometimes, partly to help me pick apart quirks in external libraries that I’m linking, and partly because I’d like to start using superscalar instructions and threading in my programs, and I remember how that sort of thing screwed up my diagnostic prints in university.






  • Yep, it's probably easier to get an Android device and install readers on it than to try for a prepackaged FOSS reader.

    I use several apps on my Android phone, but mostly Kindle (for Kindle, duh), PDF Reader (for PDFs, duh again), and Lithium (mostly for EPUB but pretty much everything else, too). I get most of my e-books as DRM-free EPUBs and PDFs.


  • I once had a manager hand me a project brief and ask me how quickly I thought I could complete it. I was managing my own workload (it was a bad situation), but it was a very small project and I felt that I had time to put everything else on hold and focus on it. So, I said that I might be able to get it done in four days, but I wouldn’t commit to less than a week just to be sure.

    The manger started off on this half-threatening, half-disappointed rant about how the project had a deadline set in stone (in four days’ time), and how the head of the company had committed to it in public (which in hindsight was absolute rot). I was young and nervous, but fortunately for me every project brief had a timeline of who had seen it, and more importantly, when they had received it. I noticed that this brief had originated over three months prior, and had been sitting on this manager’s desk for almost a month. I was the first developer in the chain. That gave me the guts to say that my estimate was firm, and that if anyone actually came down the ladder looking for heads to set rolling (one of the manager’s threats), they could come to me and I would explain.

    In the end nothing ever came of it because I managed to get the job done in three days. They tried to put the screws to me over that small of a project.



  • Redkey@programming.devtoProgrammer Humor@programming.devdata secured
    link
    fedilink
    arrow-up
    2
    arrow-down
    4
    ·
    11 months ago

    I kind of agree with you but there’s also the issue that when you have a problem with Windows, there are 30 people to tell you, “Here are the hoops, and here’s how to jump through them,” while on Linux there are often only 3-5 people, all telling you, “LOL wipe and replace your whole OS with the distro that I use because I don’t have that specific problem.”



  • Yes, refuse to federate from the get-go. By the time the hostilities become open, it’ll be far too late not only to attempt to repair any existing damage, but even to avoid further damage coming down the line like a juggernaut.

    Plenty of large corporations have shown time and again that SOP is to take over and kill any potential threats before they can develop. When a corporation finds another corporation using their resources for gain, even while still following terms and conditions, the lawyers come out and the fur flies. Why should we be pushovers just because we’re not rich and don’t have a legal fiction to hide behind?

    The Fediverse is a direct competitor to monolithic social networks. That’s definitely how they see us, and it’s how we should see them. I know that there’s a “share and share alike” ethos behind all of this, and that blocking any entity arbitrarily feels wrong and unfair, but it really isn’t. I also know that, assuming that things go well, one day there will be successful business ventures that evolve naturally from the Fediverse, and the community is going to have to decide how to respond to those situations in time. But right now we’re a group of little pigs playing in a somewhat secure pen, and a huge, voracious wolf is asking us to open the gate so it can join in our game. By the time we realize that we haven’t seen Jerry or Louise for a while, the wolf will have changed the lock on the gate and spread rumors about us to the other animals.

    If people still feel uncomfortable with refusing a large corporation “just because”, then make a policy: “Due to the dangers inherent in unequal business relationships, it is our general policy to refuse federation with any entity with an average annual turnover in excess of US$200,000.” You can always make exceptions, and even change the policy later, but it can ease your conscience that you aren’t unfairly targeting one entity without justification; you’re sticking to a sensible policy.


  • Well, I don’t work for Threads or Meta, and I don’t know anything about their short-term or long-term plans. But let’s imagine a theoretical, commercially-operated social web service called “HeartStrings”, which acts in bad faith:

    • HeartStrings uses their significant marketing ability and existing user base to become a dominant entity in the Fediverse. Simultaneously, they downplay or even hide the fact that a lot of their initial content comes from the Fediverse. This isn’t difficult as their traditional target audience probably won’t know about the Fediverse or even be able to understand the concepts behind it without significant explanation, which they are unlikely to pursue on their own.
    • HeartStrings implements extra services for their users which only work on HeartStrings (karma, useful built-in bots and moderation tools, regular prize giveaways, “preferential” positioning of posts from HeartStrings, their own spin on “hot” or other post sorting options)
    • They create local “backups” of posts from other instances (a.k.a. scraped content), “for the convenience of HeartStrings users” and, initially, also as “a service to the Fediverse.”
    • Once they have sufficient users and content, they begin blocking posts both to and from certain other instances (probably not actually defederating, but handling everything silently, internally). When someone finally notices this systematic censorship, HeartStrings provides vague justifications involving “misinformation” and “illegal activities”.
    • Because this creates minimal backlash from core HeartStrings users, the company works faster and faster toward their end goal of completely removing ActivityPub support while simultaneously implying that the Fediverse came to HeartStrings (rather than the other way around), was given a fair chance by HeartStrings, but turns out to be filled with terrorists, drug sellers, pedophiles, and other bad actors. With no central body to defend it effectively against such a well-financed aggressor, the Fediverse takes this virtually without responding.
    • Result: HeartStrings has sucked what free material and promotion it could from the Fediverse during its critical launch phase, then sabotaged the Fediverse, and finally kicked it to the curb.