Readit News logoReadit News
akritid commented on Show HN: A fast, dependency-free traceroute implementation in pure C   github.com/davidesantange... · Posted by u/daviducolo
alt187 · 2 months ago
ChatGPT isn't an author, so it shouldn't be listed. Instead, every single piece of human creation that's been sloshed and slurried to produce this drab drivel should be put as authors. That would be fair.
akritid · 2 months ago
If FSF trained a net on all the code that has Copyright assigned to FSF, could it be used to ethically vibe code free software retaining the same Copyright and license? Perhaps even pointing to a file on fsf.org with all the author's names?
akritid commented on A love letter to the CSV format   github.com/medialab/xan/b... · Posted by u/Yomguithereal
Eridrus · 9 months ago
Doing sequential reading into a queue for workers to read is a lot more complicated than having a file format that supports parallel reading.

And the fix to allow parallel reading is pretty trivial: escape new lines so that you can just keep reading until the first unescaped new line and start at that record.

It is particularly helpful if you are distributing work across machines, but even in the single machine case, it's simpler to tell a bunch of workers their offset/limit in a file.

akritid · 9 months ago
The practical solution is to generate several CSV files and distribute work at the granularity of files
akritid commented on The Simplicity of Prolog   bitsandtheorems.com/the-s... · Posted by u/thunderbong
2-3-7-43-1807 · a year ago
do you know what you are writing about? I mean have you actually done something with datalog? and then _which_ datalog? if yes, then you are probably someone working with it academically or the answer is no. because try to even set a toy project up with it (for the purpose of learning how to use it) and you'll quickly run into unmaintained interpreters, discussions of what datalog is and what not and you can choose between difficult to understand academic papers or simplistic introductions that lead you no where.
akritid · a year ago
I have found two somewhat usable (your point still stands): soufflé (high performance but more limited) and DES, which works well for some simple personal data management, after some code massage (it’s written in Prolog). Any other recommendations? And since the prolog experts are here: what do you think about Ciao? Seems quite polished but also adventurous to (non-expert) me
akritid commented on Ask HN: Programmers who don't use autocomplete/LSP, how do you do it?    · Posted by u/zackoverflow
TheCapeGreek · a year ago
PSA: No matter how good you are, please don't do this if you're working in a tech stack you are not familiar with, in a team with people who are experts and are using fully fledged IDEs.

There will be inevitable ultra-basic mistakes, especially if you're also not familiar with testing the code you're actually writing.

I say this as a specialist using an IDE and having had PRs sent to me that weren't even syntactically valid, because the developer was not using an LSP in a language they were not familiar with.

akritid · a year ago
Not using LSP does not mean not compiling/running. Using an LSP should not qualify you to commit without compiling or running either!
akritid commented on Ubuntu Hoping to Remove Qt 5 Before Ubuntu 26.04 LTS   phoronix.com/news/Ubuntu-... · Posted by u/sandwichsphinx
anthk · a year ago
EMWM there, with a Vim build of Motif too.

https://fastestcode.org/emwm.html

akritid · a year ago
So there must be at least three of us. Hi!
akritid commented on Why Haskell?   gtf.io/musings/why-haskel... · Posted by u/mesaoptimizer
cubefox · a year ago
I don't know about such urges. But sometimes there is no possibility to inspect all user code, e.g. when you are providing a library or API function.
akritid · a year ago
Good point. In such case I would probably consider leaving the signature as is, even after tightening, and possibly offer a function with stricter signature for new code to use while deprecating the older variant. This would inform the users without rug pulling.
akritid commented on Why Haskell?   gtf.io/musings/why-haskel... · Posted by u/mesaoptimizer
cubefox · a year ago
> If your value of Y is predicated on receiving an X

We didn't assume it is. Say you have a function of type (String -> String|Null). Further assume that you realize you don't necessarily need a String as input, and that you in fact are able to always output a string, no matter what. This means you can rewrite (improve!) the function such that it now has the type (String|Null -> String). Relaxing the type requirements for your inputs, or strengthening the guarantees for the type of your output, or both, is always an improvement. And there is no logical reason why you would need to change any external code for that. But many type systems are not able to automatically recognize and take advantage of this logical fact.

> > Several other null-safe languages [...] returning Y implies returning Y or Null.

> I have trouble seeing how the language is null-safe in that situation.

If you always assign a value of type Y to a variable of type Y|Null, the compiler will enforce a check for Null if you access the value of the variable, which is unnecessary (as the type of the variable could be changed to Y), but it can't result in a null pointer exception.

akritid · a year ago
This came to mind while considering your interesting point: After such a change, wouldn’t you feel the urge to inspect all users of the stricter return type and remove unnecessary handling of a potential null return?
akritid commented on Greppability is an underrated code metric   morizbuesing.com/blog/gre... · Posted by u/thunderbong
db48x · a year ago
Rust and Javascript and Lisp all get extra points because they put a keyword in front of every function definition. Searching for “fn doTheThing” or “defun do-the-thing” ensures that you find the actual definition. Meanwhile C lacks any such keyword, so the best you can do is search for the name. That gets you a sea of callers with the declarations and definitions mixed in. Some C coding conventions have you split the definition into two lines, first the return type on a line followed by a second line that starts with the function name. It looks ugly, but at least you can search for “^doTheThing” to find just the definition(s).
akritid · a year ago
Looks fine (subjective) and there is also ctags
akritid commented on Plan 9 is a uniquely complete operating system   posixcafe.org/blogs/2024/... · Posted by u/moody__
pjmlp · a year ago
Plan 9 => Inferno, which is still Plan

Alef => Limbo => Go.

Being able to backport Go into Plan 9, doesn't make sense in this context, that isn't how historical evolution works.

Also even Inferno has the necessary C infrastructure to port Go, if someone hasn't done it already.

akritid · a year ago
I suspect you would have to port Go to run on Dis, the VM. C is for the OS. It’s a different design, without mmu. Plan 9 is still a classic OS with hardware isolation
akritid commented on Plan 9 is a uniquely complete operating system   posixcafe.org/blogs/2024/... · Posted by u/moody__
kccqzy · a year ago
> The Plan 9 implementations tend to not be as feature rich as the proper upstream variants.

This is IMO the biggest drawback. Why wouldn't any user want the software to be feature rich? In fact, looking at Plan 9, I often feel that the provided software is just a MVP.

akritid · a year ago
It is a personal choice of course, but some people enjoy the feeling of fully learning a piece of software, which is impossible with most.

u/akritid

KarmaCake day23August 5, 2021View Original