[-] Kissaki@programming.dev 9 points 1 month ago

The entire SDK is programmed in CMake! 😱

… okay, it's git submodules

submodules screenshot

[-] Kissaki@programming.dev 9 points 2 months ago

Primary source / Official news post is at https://www.fsf.org/news/fsf-turns-forty-with-a-new-president-and-a-new-campaign

Regarding LibrePhone:

In the afternoon, FSF executive director Zoë Kooyman announced an exciting new project: Librephone.

Librephone is a new initiative by the FSF to bring full computing freedom to mobile computing environments. The LibrePhone Project is a partnership with Rob Savoye, a developer who has worked on free software (including the GNU toolchain) since the 1980s. "Since mobile phone computing is now so ubiquitous, we're very excited about LibrePhone and think it has the potential to bring software freedom to many more users all over the world."

No links or references to the project. Seemingly no page on the website, or on the campaigns page [yet].

[-] Kissaki@programming.dev 8 points 4 months ago* (last edited 4 months ago)

TortoiseGit.

Through settings, I move the Show Log to the top context menu level, and it's my entry point to every Git operation.

I see a history tree to see and immediately understand commit and branch relationships and states. I can commit, show changes, diff, rebase interactive or not, push, fetch, switch, create branches and tags, squash and split commits, commit chunk-wise through "restet after commit", … And everything from a repo overview.

/edit: To add; other clients I tried never reached what I want from a UI/GUI, never reached TortoiseGit. Including IDE integrations where I'm already in the IDE; I prefer the separate better TortoiseGit.

GitButler is interesting for it's different approach, but when I tried it out the git auth didn't remember my key password. (Since trying out jj I found out it may have been due to disabled OpenSSH Service.)

[-] Kissaki@programming.dev 8 points 4 months ago

If they never deleted any data of close accounts, wouldn't that be a lot of wasted storage space? Wouldn't it be way too much data?

[-] Kissaki@programming.dev 9 points 7 months ago

Unfortunately, that poisons not only the AI.

[-] Kissaki@programming.dev 9 points 9 months ago

Check what? They're right.

[-] Kissaki@programming.dev 8 points 10 months ago* (last edited 10 months ago)

I'm very skeptical of sticking to "old and tested" without reasoning.

If you're talking about the implementation, if they're making changes it's no longer "well tested". If it's undocumented, it's not approachable. If you're talking about toolchain, if the old is unapproachable because of inherent toolchain barriers, and custom toolchain dialects, I think it's good to question.

There may also be something to say about them struggling to get new contributors and maintainers (from what I heard/read).

[-] Kissaki@programming.dev 8 points 11 months ago

Given the prevalence of NodeJS and its compatible tools and platforms, I can't see it as a mistake.

Through compatibility, Deno established an upgrade path.

However since 2022, Deno is trying to imitate Node more and more, and this is destroying Deno’s ecosystem.

My impression was that Deno specifically does not try to nor want to imitate Node. They specifically announce and document their intended tooling and ecosystem which is different from the NodeJS and NPM ecosystem.

Their reasons for NodeJS support is for compatibility and enabling users of those platforms to use Deno.

Without it, I don't see Deno replacing NodeJS in a considerable manner. Now, it's a possibility. (But the sheer volume and prevalence still makes it seem unlikely.)

[-] Kissaki@programming.dev 9 points 1 year ago* (last edited 1 year ago)

Using early returns and ternary conditional operator changes

private boolean meetsRiderPreferences(Rider rider, Driver driver) {
    if (driver.rating >= 4.5) {
        if (rider.preferences.includes('Premium Driver')) {
              return driver.isPremiumDriver;
        } else {
              return true;
        }
    } else if (driver.rating >= 4.0) {
        return true;
    } else {
        return false;
    }
}

to

private boolean meetsRiderPreferences(Rider rider, Driver driver) {
    if (driver.rating < 4.0) return false;
    if (driver.rating < 4.5) return true;

    return rider.preferences.includes('Premium Driver') ? driver.isPremiumDriver : true;
}

dunno if java has them, but in C# switch expressions could put more of a case focus on the cases

private boolean meetsRiderPreferences(Rider rider, Driver driver) {
    return driver.rating switch {
        < 4.0 => false,
        < 4.5 => true,
        _      => rider.preferences.includes('Premium Driver') ? driver.isPremiumDriver : true,
    };
}

or with a body expression

private boolean meetsRiderPreferences(Rider rider, Driver driver) => driver.rating switch {
    < 4.0 => false,
    < 4.5 => true,
    _      => rider.preferences.includes('Premium Driver') ? driver.isPremiumDriver : true,
};

The conditional has a true result so it can be converted to a simple bool condition as well.

private boolean meetsRiderPreferences(Rider rider, Driver driver) => driver.rating switch {
    < 4.0 => false,
    < 4.5 => true,
    _      => !rider.preferences.includes('Premium Driver') || driver.isPremiumDriver,
};
[-] Kissaki@programming.dev 8 points 2 years ago* (last edited 2 years ago)

I wouldn’t do that, too much tunnel vision and biases.

Absolutely not. Self-reviews are very productive. I can confirm this from my own work and my colleagues, who also find it so.

You're of course free to vary the degree and depth of self-review, but tunnel vision and bias is definitely not overbearing and diminishing in those situations for us.

Someone else will of course see more, what you may not see due to tunnel vision. But that's besides the point.

view more: ‹ prev next ›

Kissaki

joined 2 years ago