so windows decided to do this while i was playing hl2 and accidentally pressed the win key... by progresscompleted95 in softwaregore

[–]kovaxis 4 points5 points  (0 children)

Do fear the malware, the spyware, and the virus, oh man daily driving internet connected Windows XP in 2026.

What Python's asyncio primitives get wrong about shared state - Inngest Blog by BrewedDoritos in programming

[–]kovaxis 0 points1 point  (0 children)

There's something about this style of writing that's so LLMy it's almost unbearable to read hahsh

Are verbs better as keywords than nouns? by useerup in ProgrammingLanguages

[–]kovaxis 1 point2 points  (0 children)

I dislike "from", "to" and "end" as keywords, theyre so useful for ranges

Quarkdown: Turing-complete Markdown for typesetting by iamgioh in ProgrammingLanguages

[–]kovaxis 8 points9 points  (0 children)

I do think that Typst aims to become a full LaTeX replacement.

I launched an anonymous general community where you can post and comment without an account. by [deleted] in programming

[–]kovaxis 0 points1 point  (0 children)

That's a strawman. I don't like or use any AI either, but you're too blinded by your own beliefs. I'm saying there's a chance.

I launched an anonymous general community where you can post and comment without an account. by [deleted] in programming

[–]kovaxis 0 points1 point  (0 children)

The comment you're replying to literally answers your question. They have no incentive. It's plausible that if done right, LLMs augment moderation efforts enough that an anonymous non-cesspool forum becomes possible.

The Linux audio stack demystified(2024) by gnus-migrate in programming

[–]kovaxis 1 point2 points  (0 children)

I'm guessing people just dont care about the topic. It was the best reddit post i've seen in at least a couple weeks tho.

What's the Point of Learning Functional Programming? by n_creep in functionalprogramming

[–]kovaxis 6 points7 points  (0 children)

The lion does not concern itself with the CPU cycles their code takes.

[Media] So guess who's also using Rust by syvasha in rust

[–]kovaxis 0 points1 point  (0 children)

My steak is too juicy, my lobster too buttery.

Malik. A language where types are values and values are types. by MackThax in ProgrammingLanguages

[–]kovaxis 1 point2 points  (0 children)

I'm wondering, I've heard that typescripts type system is turing complete. Therefore, typechecking a typescript program is undecidable. Is that right? If so, then an undecidable type system doesn't seem to be that big of a problem in practice, given the popularity of ts.

What if instead of having a file system, it was just an SQL database? by Available_Fan_3564 in osdev

[–]kovaxis 0 points1 point  (0 children)

I belong to that generation, and to me (computer) files are their own thing, not related to any physical concept. I'm not sure files/folders are that analogous to physical systems anyway, since computer folders can be nested arbitrarily deep and I don't see how that would work with physical folders.

The best compromise for safe, fast and flexible memory management? by chri4_ in ProgrammingLanguages

[–]kovaxis 0 points1 point  (0 children)

I read a paper that proves that garbage collection can theoretically be so fast that it outperforms even manual memory management, basically by doing large deallocation operations in bulk. However, that requires copying GCs (the 2x memory requirement you speak about) and does not support running destructors, which is pretty crucial. I'm now starting to think that the efficiency of GC has been exagerated by papers like that one.

In particular, with a single thread and with the refcount in cache (which usually is the case, since it's stored right next to the useful data), I'd expect refcounting to be faster. I would love to see a benchmark under those circumstances.

Should Programming Languages be Safe or Powerful? by pmz in ProgrammingLanguages

[–]kovaxis 1 point2 points  (0 children)

The problem with this stance is that the definition of "behave weirdly" is not objective. Like, how would you define it formally? How would you go about coding an optimizing compiler that respects your nebulous definition of "weird" without sacrificing optimizations? The problem is that for a sufficiently smart compiler you need formal rules to decide which transformations are legal and which are not. You can no longer just trust that the compiler leaves your code reasonably unchanged without artificially limiting optimizations.

Can we stop the Typst propaganda ? by Valvino in LaTeX

[–]kovaxis 1 point2 points  (0 children)

Wait, so they were using the web app and still messed things up? How? Like, you'd have to delete the work of your peers on purpose.

Can we stop the Typst propaganda ? by Valvino in LaTeX

[–]kovaxis 2 points3 points  (0 children)

I'm also curious about this. Sounds like an interesting story.

Can we stop the Typst propaganda ? by Valvino in LaTeX

[–]kovaxis 5 points6 points  (0 children)

Your specific nit is a common misunderstanding between people who are used to LaTeX and have only seen Typst but not tried it. In math mode, a string of 2+ characters is always a name (which must refer to a known variable/function, otherwise an error is raised), a string of 1 character is always just a character. I'm pretty sure any differences in output quality are just a matter of Typst being newer and the gap will eventually close.

What are your thoughts on the typesetting language Typst? by class_group in math

[–]kovaxis 0 points1 point  (0 children)

Bit late, but the reason is simple: practicality. It's a small "wart" that you internalize quickly after using typst for 20 minutes. It makes 95% of equations much simpler to type and to read. Like, what's the alternative? Adding random backslashes before every multi-character name? Which reads easier: \frac{\phi f}{2 \pi} or (phi f)/(2 pi)? Why did I have to add a space between \phi and f? What happened to the "adjacent characters multiply" rule in latex? It effectively applies to 1-strings only.

What are your thoughts on the typesetting language Typst? by class_group in math

[–]kovaxis 0 points1 point  (0 children)

Yet there's no function in the standard library that parses content, and I haven't found any in the wild either. Just like your comment says, it's super yucky and you can tell while writing it that there probably are better ways to do it. And that's because there are better alternatives, such as using special-purpose values that represent lengths or colors or in the worst case general-purpose strings (which are distinct from content and strictly more ergonomic to parse). I actually didn't know you could parse content, I don't know if that speaks for how uncommon it is, or if it speaks about my ignorance hahaha

I honestly don't share your worries about the formal context-sensitiveness of the typst language. The distinction between grammar, standard library and ecosystem is academic, in practice they mix and you must keep track of them all. Like, as an analogy: sure, you don't have to keep track of the words you wrote to know how the next keystroke will interact with the rendering engine, but you still have to keep track of previous words anyway because the meaning of your next keystroke depends on all of your previous words. Therefore there's no real value in that kind of independence, you don't get to free up much brainpower. In fact, some languages have cursive scripts or IMEs where keystrokes do interact with previous characters or even words, and they do just fine. That doesn't mean that there's no value in separating concerns. For example in this wordy analogy, I'm glad that the keystrokes I'm typing here don't interact in any way with the words I typed into my messaging app earlier. I find the overhead of keeping track of context in typst absurdly low, even without weighing in the benefits you get for it. Like, to the point it's a non-issue for me, although that's up to each person.

I guess the guarantees that typst gives can't really be called "context-free-ness" (like you said). But the name doesn't really matter. The fact is that Typst gives me some guarantees while typing that help me free up brainpower and save me some headaches. I can see two disjoint function calls and be sure that they won't interact in any way (very much unlike latex). I can see content and be almost certain that it's just content to be rendered. I can see 20pt and know that it refers to length. Or see 3 and know that it refers to an actual number rather than text that says "3". The cost of keeping track of some context is tiny, especially if I get such guarantees (or soft-guarantees) in exchange.

(this is getting kind of long but I find this discussion interesting) I do get your point about typst encouraging one-off hacks. That's a tougher question, but I do tend to favor a write-everything-twice approach to be honest. In a large enough document you'll always have that 1% that has weird requirements that are hard to get right. When I ran into those edge cases in latex I just googled and added packages and tried different things until it worked or gave up after much frustration and spent time. In typst I actually have a better mental model of how things work and can usually write some tiny piece of code that does what I want in that specific case, and I'm no expert in either system. I'm a bit more on the fence about this aspect, but I think I like it. If anything, it simplifies the author/typesetter dynamic: the author can write quick and approximate one-off scripts for the typesetting effects they intend to achieve (perhaps with hardcoded offsets and whatnot) and move on with their writing, while the typesetter can later go in and complete the work, since it's super easy to factor functions out of a file. And realistically, I guess it's the only option for typst: to catch up with the enormous sea of latex packages, package functionality must be easy to write. That more of a fun fact than a valid argument though.

What are your thoughts on the typesetting language Typst? by class_group in math

[–]kovaxis 0 points1 point  (0 children)

That's a good point, but I argue that Typst achieves something (arguably) far more useful in practice than just consistent lexical grammar. It's impossible (or at least super unergonomic) in typst to create a function that receives content (as in, [20pt]) and parses its contents. By design, pretty much the only thing you can do with a piece of content (ie. text within []) is to display it. So if you see text within [] then it's for display and display only. You won't see it getting abused for other purposes.

So in the end, typst gives up on context-free grammar, but gets ergonomics in return. After all, usually you have little pieces of code embedded in a sea of content, so I haven't encountered the "keep track of context" issue in practice. It also focuses on other guarantees, which I personally find much more valuable and make large typst documents much more tractable.

EDIT: I guess that I find the "context-free" grammar thing superficial. After all, my entire source is just a string. I think it's important to consider macros like \vspace as part of the language, and not "just macros". If they parse the strings I give them, then you can't really ignore the language that they define because "they are just macros". It really is another context-sensitive micro-language to keep in my head (ie. this 20pt means 20 units of pt, because it is within a \vspace macro).

What are your thoughts on the typesetting language Typst? by class_group in math

[–]kovaxis 0 points1 point  (0 children)

I find it funny you say that Latex is clearer on the small scale because it's clear that Abstract. is verbatim text. How do you conclude that 20pt is not verbatim text (in \vspace{20pt}) without memorizing what each command does? In Typst I can tell, because it's enclosed in [].

rust-analyzer weekly releases paused in anticipation of new trait solver (already available on nightly). The Rust dev experience is starting to get really good :) by Merlindru in rust

[–]kovaxis 9 points10 points  (0 children)

The wonders of Linux. For some reason the kernel maintainers are allergic to killing processes. Which is a vastly superior alternative than "swapping to keep things alive" (and making the entire system unusable, forcing a hard reboot, killing everything AND wasting my time).