[-] Kissaki@programming.dev 12 points 3 months ago

Does Deno fit your needs? It is also a drop-in replacement to a large degree, but is somewhat focused on improving the related tooling environment.

I'm not very involved in the (non-browser) JS ecosystem, but it's my tool of choice.

[-] Kissaki@programming.dev 12 points 5 months ago

My [own] projects don't get popular, so having issues enabled doesn't cause issues. :P

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

Great analysis / report. At times a bit repetitive, but that could be useful for people skimming or jumping or quoting as well.


Despite 91% of CTOs citing technical debt as their biggest challenge, it doesn’t make the top five priorities in any major CIO survey from 2022–2024.

Sad. Tragic.


I'm lucky to be in a good, small company with a good, reasonable customer, where I naturally had and grew into having the freedom and autonomy to decide on things. The customer sets priorities, but I set mine as well, and tackle what's appropriate or reasonable/acceptable. Both the customer and I have the same goals after all, and we both know it and collaborate.

Of course, that doesn't help me as a user when I use other software.


Reading made me think of the recent EU digital regulations. Requiring due diligence, security practices, and transparency. It's certainly a necessary and good step in the right direction to break away from the endless chase away from quality, diligence, and intransparency.

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

While I agree with the later (or middle?) points, maybe for different reasons or maybe I would have reasoned differently, I mostly disagree with the earlier points.

Any really important comments get lost in the noise

What kind of comments are they using?

When I leave comments on GitLab they're threads that get resolved explicitly. GitHub also uses resolvable threads. The assignee/creator goes through them one by one, and marks them as resolved when they feel they're done with them. Nothing gets lost like that.

I also make use of '⚠' to mark significant/blocking comments and bullet points. Other labels, like or similar to conventional comment prefixes, like "thought:" or "note:", can indicate other priorities and significance of comments.

Instead of leaving twenty comments, I’d suggest leaving a single comment explaining the stylistic change you’d like to make, and asking the engineer you’re reviewing to make the correct line-level changes themselves.

I kinda agree, but I often leave the comment on the/a code in question, and often add a code change suggestion to visualize/indicate what I mean. This comment may stand in and refer to all other occurrences of this kind of thing. It doesn't have to apply exclusively on those lines.

Otherwise you’re putting your colleagues in an awkward position. They can either accept all your comments to avoid conflict, adding needless time and setting you up as the de facto gatekeeper for all changes to the codebase, or they can push back and argue on each trivial point, which will take even more time. Code review is not the time for you to impose your personal taste on a colleague.

I make sure that my team has a common understanding of, and the comments adding sufficient context/pretext to make it clear, that code change suggestions and "I would have [because]" are usually or in general can be freely rejected, unless specified otherwise. Often, comments include information of how important or not changes are to me, in comments themselves, and/or comments summarizing a review iteration (with a set of comments). The comments can also serve as a spark for discussion about solutions and approaches, common goals or eventual goals of the changed code that may be targeted after the code changes currently under review.

Review with a “will this work” filter, not with a “is this exactly how I would have done it” filter

I wouldn't want to do it like that, specifically. It's a question of weighing risks and medium and long term maintainability vs delivery, work, changeset, and review complexity and delay. Rather than "will this work", I ask my self, "is this good enough [within context]".

Leave a small number of well-thought-out comments, instead of dashing off line comments as you go and ending up with a hundred of them

Maybe I've had too many juniors to get into this mindset. But I've definitely had numerous times where I did many comments on reviews, even again on successive iterations. Besides reviewing the code technically, the review can also serve as a form of communication, assimilation, and teaching (project an codebase at hand, work style, and other things).

It's good to talk about concerns, issues, and frustrations, as well as upsides of doing so and working like that. Retrospectives and personal talks or discussions can help with that. Apart from other discussion, planing, and support meetings, the review is the interface between people and a great way to communicate.

[-] Kissaki@programming.dev 12 points 1 year ago

That goes directly against the open, transparent development model of the Linux Kernel.

When you're developing in the open, everything becomes "public relations".

[-] Kissaki@programming.dev 12 points 1 year ago

A bit too broad to give a specific answer from my side.

Overall, I prefer web based over apps, because I can CSS hack and if necessary JS hack them.

Web also means it doesn't litter my PC or mobile phone or tablet. And that it can't fetch more data than it needs or I want it to have access to.

Bad software is bad software, no matter if it's installed or on the web.

5
submitted 2 years ago* (last edited 2 years ago) by Kissaki@programming.dev to c/dotnet@programming.dev

This first push resulted in NuGet Restore times being cut in half, which was a reasonable stopping point for our work. However, along the way, we realized that a more extensive rewrite could improve performance by a factor of 5x or more.

Written from the perspective of several team members, this entry provides a deep dive into the internals of NuGet, as well as strategies to identify and address performance issues.

118
22
4
submitted 2 years ago* (last edited 2 years ago) by Kissaki@programming.dev to c/dotnet@programming.dev

In the rapidly evolving world of AI and machine learning, effective communication between models and applications is critical. The Model Context Protocol (MCP) is a standardized protocol designed to facilitate this communication by providing a structured way to exchange context and data between AI models and their clients.

The MCP C# SDK is in preview and APIs may change. We will continuously update this blog as the SDK evolves.

[-] Kissaki@programming.dev 12 points 2 years ago

Very interesting. A trove of experience and practical knowledge.

They were able to anticipate most of the loss scenarios in advance because they saw that logical arguments were not prevailing; when that happens, ""there's only one explanation and that's an alternative motive"". His ""number one recommendation"" is to ensure, even before the project gets started, that it has the right champion and backing inside the agency or organization; that is the real determiner for whether a project will succeed or fail.

Not very surprising, but still tragic and sad.

2

The Push Notification Hub (PNH) service recently went through significant modernization. We migrated from legacy components like .NET Framework 4.7.2 and custom HTTP server called “RestServer”, to .NET 8 and ASP.NET Core 8. Moreover, for handling outgoing requests, we moved from custom HTTP client/handler called “HttpPooler”, to Polly v8 and SocketsHttpHandler. This article describes the journey thus far and its impact on PNH performance.

Sections: Intro (what is PNH), expectations, measurement, migration phases (concrete tech and measurements), closing thoughts, next steps.

PNH is deriving great benefits from .NET 8. Overall performance improved, as evidenced by the Q-Factor metric, by about 70%. Performance is a major factor for a service like this and will reflect positively in basically all flows on Teams platform that got to do with messaging. The results actually exceeded our expectations by significant margin.

-3

The Push Notification Hub (PNH) service recently went through significant modernization. We migrated from legacy components like .NET Framework 4.7.2 and custom HTTP server called “RestServer”, to .NET 8 and ASP.NET Core 8. Moreover, for handling outgoing requests, we moved from custom HTTP client/handler called “HttpPooler”, to Polly v8 and SocketsHttpHandler. This article describes the journey thus far and its impact on PNH performance.

Sections: Intro (what is PNH), expectations, measurement, migration phases (concrete tech and measurements), closing thoughts, next steps.

PNH is deriving great benefits from .NET 8. Overall performance improved, as evidenced by the Q-Factor metric, by about 70%. Performance is a major factor for a service like this and will reflect positively in basically all flows on Teams platform that got to do with messaging. The results actually exceeded our expectations by significant margin.

3

Dev containers are pre-configured, isolated environments that allow developers to work on projects without worrying about dependencies and configurations. They are particularly useful for trying out new technologies, as they provide a consistent and reproducible setup.

The containers are docker containers.

11
Cysharp libraries (cysharp.co.jp)
submitted 2 years ago* (last edited 2 years ago) by Kissaki@programming.dev to c/dotnet@programming.dev

Working together with Cygames to push the limits of performance of both server-side(.NET) and client-side(Unity) C# through open source.

GitHub https://github.com/Cysharp

  • MemoryPack: Extreme performance binary serializer for C# and Unity.
  • MagicOnion: Unified Realtime/API framework for .NET platform and Unity.
  • ConsoleAppFramework: Micro-framework for console applications to building CLI tools for .NET.
  • MasterMemory: Embedded Typed Readonly In-Memory Document Database for .NET and Unity.
  • ZString: Zero Allocation StringBuilder for .NET and Unity.
  • UniTask: Provides an efficient async/await integration for Unity.

The libraries look very interesting.

4

These services run on Azure compute and are primarily .NET based.

[.NET Aspire] lets us find all of those minor issues locally, and removes much of the need for full deployment to do our basic hookup validation.

.NET Aspire also automates emulator usage for Azure dependencies out of the box

11
4
26
[-] Kissaki@programming.dev 12 points 2 years ago

I consider python a scripting language too.

[-] Kissaki@programming.dev 12 points 2 years ago* (last edited 2 years ago)

Your broad claim and what is actually being banned on instances makes it seem you want to include questionable if not destructive opinions.

Can you be more concrete? What are you missing, and where?

What banned content that couldn't find a home on another instance do you want to see?

Do you think opinions should be shareable in any form, or only in respectful form?

[-] Kissaki@programming.dev 12 points 2 years ago

Is your suggestion that people should? Isn't Rust the more realistic, effective solution because it forces people to do better? Evidently, "correct memory safety in C/C++" didn't work out.

[-] Kissaki@programming.dev 12 points 2 years ago* (last edited 2 years ago)

Study, get a bachelors degree

That's not 6 months though

[-] Kissaki@programming.dev 12 points 2 years ago

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.

view more: ‹ prev next ›

Kissaki

0 post score
0 comment score
joined 3 years ago
MODERATOR OF