Kissaki

joined 2 years ago
MODERATOR OF
[–] Kissaki@programming.dev 2 points 2 months ago* (last edited 2 months ago)

Dependency injection has significant upsides, but the indirection also has significant downsides for direct readability and traceability. Suddenly, you separated definition and call into distanced registration and use, with magic indirection that may or may not use various lifetime behaviors or proxying and wrapping or later replacement on types.

I've tried reading (and fixing) a library that made excessive use of DI, and it was very hard to follow or get into.

[–] Kissaki@programming.dev 1 points 2 months ago

I created a Nushell plugin in Rust that merely converts between Nushell and BSON data formats.

It works, but I still have a fundamental lack of understanding of the magic abstract generalized data transformation framework/interface.

I wish there were fewer magic conversions and transformations, and less required knowledge of them and calling or knowing the correct ones. Magic traits leading to magic conversions for magic reasons. Or something.

[–] Kissaki@programming.dev 12 points 2 months ago (1 children)

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 5 points 2 months ago

That webpage certainly blinds me like a surgeon's light would /s 😏

[–] Kissaki@programming.dev 5 points 2 months ago

The only connection between "game dev" and their posts has been "I made this" as well. Not about the dev experience or progress or anything like that. Just low-key ads/marketing, unfortunately.

IIRC and from the two or three previous posts I have seen anyway.

[–] Kissaki@programming.dev 1 points 2 months ago (2 children)

This service has been suspended by its owner.

This is all I see on the linked webpage.

[–] Kissaki@programming.dev 1 points 2 months ago

Looking at the US in particular right now, I'm not confident it would be used on good conscience. Who knows what they want to prosecute. Justice frameworks can only work with confidence in justice.

This explanation sounds fine. I haven't seen an actual link to the content of the agreed upon convention across the linked sites.

The Wikipedia article on United Nations Convention against Cybercrime paints a much more concerning picture.

The convention names four types of crimes in particular, which human rights advocates argue are framed too broadly, applicable to any crime committed using an information or communications technology. Many of the crimes it would apply to have only a thin connection to the kind of serious cybercrime, like ransomware and child exploitation, that motivated the convention.

Several organizations highlight the way the convention's language about human rights protections are largely suggestions left to the discretion of member states, including those with a record of human rights abuses.

Let's hope it's a useful framework countries will still make assessments and restrictions on depending on who they're dealing and working together with. I'm still concerned though.

Why is this community not allowing English language comments when it's seemingly obviously in English?

[–] Kissaki@programming.dev 4 points 2 months ago

Quite regularly, tbh.

[–] Kissaki@programming.dev 2 points 2 months ago

That’s a three year history of accessibility incompetence from the OpenAI team. From the same company asking authors to use ARIA to better slurp / steal their content.

💀

[–] Kissaki@programming.dev 0 points 2 months ago* (last edited 2 months ago)

Visual Studio provides some kind of AI even without Copilot.

Inline (single line) completions - I not always but regularly find quite useful

Repeated edits continuation - I haven't seen them in a while, but have use them on maybe two or three occasions. I am very selective about these because they're not deterministic like refractorings and quick actions, which I can be confident in correctness even when doing those across many files and lines. For example invert if changes many line indents; if an LLM does that change you can't be sure it didn't change any of those lines.

Multi-line completions/suggestions - I disabled those because it offsets/moves away the code and context I want to see around it, as well as noisy movement, for - in my limited experience - marginal if any use[fulness].

In my company we're still in selective testing phase regarding customer agreements and then source code integration into AI providers. My team is not part of that yet. So I don't have practical experience regarding any analysis, generating, or chat functionality with project context. I'm skeptical but somewhat interested.

I did do private projects, I guess one, a Nushell plugin in Rust, which is largely unfamiliar to me, and tried to make use of Copilot generating methods for me etc. It felt very messy and confusing. Generated code was often not correct or sound.

I use Phind and more recently more ChatGPT for research/search queries. I'm mindful of the type of queries I use and which provider or service I use. In general, I'm a friend of ref docs, which is the only definite source after all. I'm aware of and mindful of the environmental impact of indirectly costly free AI search/chat. Often, AI can have a quicker response to my questions than searching via search ending and on and in upstream docs. Especially when I am familiar with the tech, and can relatively quickly be reminded, or guide the AI when it responds bullshit or suboptimal or questionable stuff, or also relatively quickly disregard the entire AI when it doesn't seem capable to respond to what I am looking for.

[–] Kissaki@programming.dev 2 points 2 months ago (1 children)

demo login says invalid username or password. Is it possible someone changed the password on the demo account?

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

The entire SDK is programmed in CMake! 😱

… okay, it's git submodules

submodules screenshot

 

My home PC is still on Windows 10 22H2, while my work machine is on Windows 11 23H2, and, to no surprise, neither machine reproduced the issue – Skimmer spawned on the water just fine, creating one via script and putting CJ in a driver’s seat worked too.

That said, I also asked a few people who upgraded to 24H2 to test this on their machines and they all hit this bug.

I have a likely explanation for why Rockstar made this specific mistake in the data to begin with – in Vice City, Skimmer was defined as a boat, and therefore did not have those values defined by design! When in San Andreas they changed Skimmer’s vehicle type to a plane, someone forgot to add those now-required extra parameters. Since this game seldom verifies the completeness of its data, this mistake simply slipped under the radar.

What made the game work fine despite of this issue for over twenty years, before a new update to Windows 11 suddenly challenged this status quo?

 

GitHub

Theia IDE is compatible with VS Code APIs and can install and use VS Code extensions. Has additional APIs for customizations not available in VS Code.

Have you tried Theia IDE? Any assessments or experiences to share?

 

Abstract:

When a website is accessed, a connection is made using HTTPS to ensure that it ends with the website owner and that subsequent data traffic is secured. However, no further assurances can be given to a user. It is therefore a matter of trust that the site is secure and treats the information exchanged faithfully. This puts users at risk of interacting with insecure or even fraudulent systems. With the availability of confidential computing, which makes execution contexts secure from external access and remotely attestable, this situation can be fundamentally improved.

In this paper, we propose browser-based site attestation that allows users to validate advanced security properties when accessing a website secured by confidential computing. This includes data handling policies such as the data provided being processed only during the visit and not stored or forwarded. Or informs the user that the accessed site has been audited by a security company and that the audited state is still intact. This is achieved by integrating remote attestation capabilities directly into a commodity browser and enforcing user-managed attestation rules.

Some excerpts:

Such a secured context is encrypted at all times, but is decrypted within the CPU only when the context is about to be executed. Thus, code and data are now also protected from unwanted access during execution. In order to validate that confidential computing applies to a secured context, remote attestation must be performed. During this process, a request is sent to a secured context, which in turn requests an attestation report from a Hardware Root of Trust (HRoT) local to the platform.

We argue that end users could also benefit greatly from the extended guarantees of confidential computing when accessing a secured website. However, there are two main obstacles: First, there is no standardized way for users to detect a secured context and perform remote attestation. Second, if remote attestation is enabled, users must be able to interpret an attestation result to decide whether the remote site is trustworthy.

In this paper, we present site attestation, which takes advantage of confidential computing to improve trust and security when surfing the Web.

7 CONCLUSION

Today, when accessing websites, users have to trust that the remote system is secure, respects data protection laws, and is benevolent. With the availability of confidential computing, remote execution contexts can be secured from external access and become attestable. Site attestation proposes to secure websites through confidential computing and perform remote attestation with trustworthiness policies while surfing the Web, reducing the need to blindly rely on the website’s reputation.

GitHub repo with Nginx, httperf, and Firefox code

 

For those familiar with Git terminology:

The simplest way to assemble a triangular workflow is to set the branch’s merge key to a different branch name, like so:

[branch “branch”]
   remote = origin
   merge = refs/heads/default

This will result in the branch pullRef as origin/default, but pushRef as origin/branch, as shown in Figure 9.

Working with triangular forks requires a bit more customization than triangular branches because we are dealing with multiple remotes. […]

 

Explicit Assembly References are stand-alone assemblies directly referenced in your project. They are not pulled in through NuGet packages, project references, or the Global Assembly Cache (GAC). These assemblies often represent legacy .NET Framework components, especially those compiled for 32-bit, which are not easily upgraded to modern .NET and may exist outside of package management.

Until now, the Toolbox in the Windows Forms designer only displayed controls sourced from NuGet packages or project references.

view more: ‹ prev next ›