Kissaki

@Kissaki@programming.dev

This profile is from a federated server and may be incomplete. View on remote instance

[History] An editor letter by Edsger Dijkstra, titled: "go to statements considered harmful" (march 1968). ( dl.acm.org )

In this letter, Dijkstra talks about readability and maintainability in a time where those topics were rarely talked about (1968). This letter was one of the main causes why modern programmers don't have to trouble themselves with goto statements. Older languages like Java and C# still have a (discouraged) goto statement,...

Kissaki ,

Go has goto too. They surely did not "mindlessly copy" it.

The standard library makes use of it. So they most definitely see a warranted use-case for it.

Kissaki ,

PDF magic… It has grainy text. But the selectable text and displayed text have a 1-character offset.

I assume they display the original scan so it definitely does not contain errors, while still providing the image-parsed text for searchability, indexability, and select-+copyability?

screenshot of text + backing text offset

Kissaki ,

TL;DR:

You know the state and progress of a program from the line you are on. A goto breaks that.

You can index the progress of a program through static line indexes and a dynamic loop index and function call stack. A goto breaks that. Including a "statements/lines since beginning of execution" is infeasible for understanding.

Kissaki ,

I think it's convoluted way to describe it. Very technically-practical. I agree it's probably because of historical context.

The argument I read out of it is that using goto breaks you being able to read and follow the code logic/run-logic. Which I agree with.

Functions are similar jumps, but with the inclusion of a call stack, you can traverse and follow them.

I think we could add a goto stack / include goto jumps in the call stack though? It's not named though, so the stack is an index you only understand when you look at the code lines and match goto targets.

I disagree with unit tests replacing readability. Being able to read and follow code is central to maintainability, to readability and debug-ability. Those are still central to development and maintenance even if you make use of unit tests.

Kissaki ,

Ironic that you don't share the pointers on what's expected to be checked with us.

Kissaki ,

To make it more accessible

  1. create your own (small) projects
  2. make small contributions where it's possible (skip compiling, or -> 3.)
  3. try to work on a project, and quit early if it's not simple
  4. pick technologies that are simple to set up or you are familiar with

Should I worry about referencing other people's code?

Thanks to the current SEO nightmare, I can no longer use search engines the same reliability as before. Stackoverflow is too toxic and often all I need is to properly look up some more obscure stuff about some API, which "could just be googled". AI, of course, is very unreliable....

Kissaki ,

Yes, you should, as you already do.

Is your question whether you should worry? Whether you should link the source when you're illegally ignoring license terms? Or when you're following license terms?

Kissaki ,

I guess we do scaled trunk development, if you want to call it that. We do allow direct commits, for trivial or safe stuff where reviews would be more noise and hindrance than value. (Code formatting etc.)

We only have one current release version though. (And at times a current test version that deviates from it.)

If there's a need to create a patch release for a tagged version when the trunk proceeded forward with something that shall not be included, I create only a temporary branch from the earlier tagged commit to tag (=create) that patch release.

What are the release branches supposed to be in your graphs? It says developers don't commit. Then who does?

Kissaki ,

Doesn't the "scaled trunk-based development" do that too, with feature branches and merge requests? Trunk is your production-ready branch there.

Public personal dev accounts: opinions?

I feel like there are many devs out there who expose a lot of personal details and opinions all over the web. Maybe it's just me, but when starting out with the internet I tried my best to separate my personal details (name, age, sex, country, ethnicity, family ties, relationship status,...) from usernames in public....

Kissaki ,

Is it gatekeeping if they voice their disapproval? Is any form of disapproval gatekeeping? Where is the line?

They didn't ask them to stop posting or participating. Wouldn't that be the line where it crosses to gatekeeping?

Kissaki ,

The poster licensing to the platform is not the same as licensing to the public.

This instance programming.dev ToS declares:

2.2. By submitting, posting, or displaying user content on our services, you grant us a worldwide, non-exclusive, royalty-free license to use, reproduce, modify, adapt, publish, translate, distribute, and display such user content.

Distribution and displaying with attribution follows CC BY and SA. NC currently probably does - but may or may not (currently accepts donations).

The ToS only defines the license to distribute and display. It does not define how users and consumers of that distribution may or may not use the content.

So from this instance alone, there could be an argument of "the comment defines how it may be used".

But I'm not sure that holds given that federated distribution goes to other instances with different terms. For those that don't define how content may be consumed, it may be a reasonable argument. For those that define it in a conflicting manner, the ToS may override the content CC claim. Given the federated, distributed nature, given that you can reasonably expect such a conflict, there's a question of whether it holds in the first place if you can expect conflict invalidating it.

Either way, it's a convoluted mess, and incredibly noisy. Lemmy content has a language attribute. If there's a need for a license, it should be a metadata attribute in the same manner.

Kissaki ,

Did you consider OP comment harassment?

Kissaki ,

An employer is unlikely to waste time on deep candidate analysis. If they see you as a public code contributor, it's an upside in activity, experience, and conversation starter, and discussion points for any interviews. If they look at your code, it won't be deep. I doubt they would go through the effort of correlating from a public coder profile (e.g. on GitHub) to a Lemmy profile and then look at their posts.

Once they're at the point where that would be a reasonable investment, they already know you personally and don't care about online content anymore.

Maybe some big companies use online analysis tools though.

Anyway, I know what I'm worth as a developer/an employed. I don't think I post that kind of divisive or sensitive stuff that does or possibly should be related to my employment and work. If they see it as such, then I'm fine with it not being a match.

I actually think the public nature could and should be upsides. Related to work or not.

Kissaki ,

Yes, the GPL allows you to make modifications. The GPL still applies.

The cloned repository still holds the history and deleted files. The files that are still there retain the GPL. If you make additions to the GPL sources, the GPL applies to those too. (Copyleft license.)

You can check the summary of GPL on ChooseALicense to understand your rights and conditions a bit better.

Kissaki ,

A patch from January and MFA prevents account takeover.

If you're not updating gitlab for over three months, across max severity security patches, you're negligent.

Kissaki ,

a random program

like

alert(Math.random())
Kissaki ,

You're asking about the backend only, separated from the fronted? The fronted will be HTML only, but independent of the backend anyway?

Doesn't that mean you're introducing another interface and a need for another backend for the HTML frontend generating?

If it's independent, why does the frontend intention matter?


My first choice/exploration would be C#/.NET.

Kissaki ,

They mention the Computer History Museum. The version control history would also be interesting, from a historic and software development industry history. Whatever they may or may not have used back then. Of course publishing that is likely much less viable and possible due to different concerns.

Kissaki ,

I’m not sure I understand what issue Linus et al. are trying to solve. If the full hash is used whenever a commit reference is saved somewhere, then why does it matter how core.abbrev is configured?

What are you referring to?

The article is about abbreviated forms, not full hashes. The Linus quote is specifically about abbreviation.

[Linus] He recommends kernel developers use 12 characters

For a large code base you can expect to further grow continuously for a long time, it makes sense to already use more than a minimum abbreviation so that you references remain unique, even if a decades time.

Configuring a wider and explicit abbreviation width that will remain constant is preferable because the displayed references are what you will copy and reference. It doesn't make sense to work with shorter abbreviations locally, but wider abbreviations when communicating with others. It'd be a hassle to translate and risky to miss doing.

Kissaki ,

When I miss them I create them. Then they're there.

Kissaki ,

This description is so foreign to me. I guess you're talking about big [software] companies?

Nobody in my company, a software development company, measures by lines of code. We bring value through the software we develop and the collaborations we do.

Kissaki ,

I've been using TortoiseGit since the beginning. Nothing ever came close for me.

I in the log view I have overview, filters, and all actions at hand.

Kissaki ,

It’s a fundamentally visual problem

In what way do you mean git versioning is fundamentally visual?

Or do you mean understanding it or visualising it? The data and its relationships?

Kissaki ,

No, there is not.

Mirroring git repos themselves can work with automation. Anything beyond that has serious drawbacks or complexity or won't work.

As for your key auth (git client auth), one key for authentication is sufficient to use across all platforms.

Kissaki ,

It didn't kill GitHub Stars. And they know it.

By looking at commit velocity, issue counts, pull requests, and forks alongside stars, we can better understand a project's adoption and overall value.

Kissaki ,

The advocation for package manager platforms to include licensing and pay is interesting.

Kissaki , (edited )

I had no idea experts exchange existed before stack overflow.

For me, it started showing up in web search results years after stack overflow became popular. And I was confused and annoyed why a copycat with pay walled features (even the answers IIRC) was given priority by search engines.

Genuine Question - have you migrated DBMS on a Production System which wouldn't have been possible with vendor lock-in on the backend?

This is something I have thought a lot recently since I recently saw a project that absolute didn't care in the slightest about this and used many vendor specific features of MS SQL all over the place which had many advantages in terms of performance optimizations....

Kissaki ,

MariaDB is a fork of MySQL that keeps compatibility with its APIs. That's why the move was effortless for you. It's a simple drop-in replacement. Not because "many migrated at the same time". (Maybe you were referring to that, but it wasn't written like that.)

Kissaki ,

The weblink at the bottom to an Atlassian article is a dead link. Sounds about right for Atlassian I guess. Can't keep something running for 9 years.

Kissaki ,

T4, small scripts, text search and replace, multicursor editing if that counts, dotnet code generators

Preference depends on the context.

"Modify" isn't really generating though, so I'm not sure whether your question is clear (to me).

Kissaki , (edited )

While it doesn't provide an SQL interface, I've been using Nushell as my shell, which has native data operations.

I tried querying the same, and I'm still not fluent (this was my third or fourth bigger/practical data querying), but it works well and fast too when you know the syntax:

http get https://api.github.com/orgs/golang/repos | each {|x| get license} | get key | group-by --to-table | update items {|x| $x.items | length }

I've used Nushell for reading en-mass json files, generating command json files for stuff saved in excel files (you can natively open those too), and most recently to query log files for specific information and usage analysis.

/edit: This comment has the better nu solution.

Kissaki ,

Haha, I tried querying in Nushell before reading this and I was sure there was a better way. And indeed there is (especially since I was missing uniq). I'm still learning the available operators, but I enjoy the shell a lot, as well as its promised capabilities.

Kissaki ,

Your description of JIT-learning sounded more like learn-only-on-the-job than JIT.

When you say "should have learned more upfront" I don't see how that would necessarily have to be outside or within the job. Where you learn it is open and arbitrary. For me, it's a question of what's reasonably necessary or efficient, does it make sense to explore more or prototype at work? Outside of that, I would have to have a personal interest in it to explore it in my private time just in time.

Usually, I learn upfront unspecific to concrete work. And that experience and knowledge come in handy at work.

When I'm on the job I work on and learn what is necessary to the degree it makes sense. I prefer to fully understand, but sometimes that's not possible or reasonably, acceptably efficient. Then you can weigh risk vs cost and prospect. There's no way around weighing that each time and individually. Development, in/as general, is too varied to have one arbitrary supposed weighing to follow.

Kissaki ,

Official source (emphasis mine)

Welcome to the Desktop Guide for Windows Forms, a UI framework that creates rich desktop client apps for Windows.

AppImage creation with inclusion of third party binary apps - how to deal with Free and Open Source?

I want to create an AppImage of my Python software and distribute it this way. The script will be compiled with Nuitka to include Python and Standard Library functionality. In the AppImage I want to bundle it with other Libre software, but in binary format downloaded from Arch package repos, as my script depends on them. My...

Kissaki ,

That depends on the licenses. Saying they're libre is a classification, not specific.

Note also that source code may be licensed differently from binaries, assets/resources, etc.

Check the license of what you're obtaining and bundling specifically. To get an overview of licenses and their permissions and requirements, see https://choosealicense.com/

Kissaki OP ,

It requires compile flag and runtime enabling. So it at least requires some thought and development more than just a lib version upgrade.

I saw the link on the Mumble dev chat, so at least they're aware of it.

Given that it's only really (very) useful in very flaky/bad connection scenarios I'm not sure it's even worth it in most cases.

Kissaki ,

This article is much the same if we replace “Discord” with “GitHub”, for instance, or “Twitter” or “YouTube”.

There is a fundamental difference between what they listed as one though: GitHub and YouTube are open to read and access and download and clone. Discord and Twitter are not.

I have much more of an issue with Discord than I have with GitHub or YouTube. Both GitHub and YouTube have free access, and host the largest part of the relevant userbase (synergy effect of having an account).

It's certainly worth discussing in project teams, but personally, I'd never leave GitHub in the current ecosystem for a niche product or platform - if I want contributors and collaborators or visibility. The vast majority of users already know GitHub and most accounts are on GitHub. That can't be said for niche platforms or self-hosted alternatives, which introduce barriers.

Before GitHub Sourceforge was somewhat similar. It was a proprietary but open platform. In a project I participated in (Mumble) it was reasonable enough (no more complicated than between any other platforms) to make the switch to GitHub. I see todays GitHub the same way. As long as it remains so primary prevalent and open to free access it's good enough, and when it goes downhill it's easy enough to switch away to a better alternative.

I'm still fond of alternative FOSS platforms, that they exist and evolve, and maybe easier account creation, synchronization, or federation will make them real alternatives. But for now, they are niche. Which of course doesn't mean niche is unviable or an alternative. But even as an invested and interested FOSS developer, user, and collaborator they're barriers to me. Which makes it obvious to me it's even moreso for less invested people.

Kissaki ,

CNET began publishing articles written by an AI model under the byline "CNET Money Staff".

(emphasis mine)

What a label. I assume that "byline" was their "article author"? "Money Staff". Baffling.

Kissaki ,

January 2023, Futurism brought widespread attention to the issue and discovered that the articles were full of plagiarism and mistakes. […] After the revelation, CNET management paused the experiment, but the reputational damage had already been done.

So the "AI experiment" is not active anymore. But the damage is already done.

It was also new to me that Wikipedia puts time-based reliability qualifiers on sources. It makes sense of course. And this example shows how a source can be good and reliable in the past, but not anymore - and differentiating that is important and necessary.

Kissaki ,

We are beginning a staged dissolution process that will allow our over 600 collectives the time to close or transition their work. Dissolving OCF will take many months, and involves settling all liabilities while spending down all funds in a legally compliant manner.

  1. And it's not sustainable?

Open collective always looked successful, popular, sustainable, professional.

Really unfortunate for those 600. March 15 is very short term.

March 15 is the last day to accept donations. You will have until September 30 to work with us to develop and implement a plan to spend down the money in your fund.

Kissaki ,

OCI does the platform hosting and development. OCF does the non-profit org work. OCF pays the OCI.

At least that's what I read from it.

I wouldn't be surprised if only weeks from now involved people announced a competing/new platform without this setup.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • All magazines