Preferences

dmytrish
Joined 943 karma
About me: https://github.com/EarlGray

[ my public key: https://keybase.io/dmytrish; my proof: https://keybase.io/dmytrish/sigs/oCCIZQXIgvSoV7t8uYgibLpsvszNB2GHc_60zpe882Y ]


  1. Thanks so much for great work! I hope to finally see VisionFive 2 with enabled GPU acceleration soon.
  2.    ~/c/t/s/zpdf (main)> zig version
       0.15.2
    
    Sky is blue, water is wet, slop does not work.
  3. ...and it does not work. I tried it on ~10 random pdfs, including very simple ones (e.g. a hello world from typst), it segfaults on every single one.
  4. +1, SREs can spend months during their onboarding basically reading design docs and getting to know about services in their vicinity.

    Short of publicly releasing all internal documentation, there's not much that can make the AWS infrastructure reasonably clear to an outsider. Reading and understanding all of this also would be rather futile without actual access to source code and observability.

  5. Considering that D in "ACID" stands for "durable", it's a pretty sloppy joke.
  6. What's great about its type system? I find it severely limited and not actually useful for conveying and checking invariants.
  7. > pass around the allocator to every function that allocates to the heap.

    what prevents a library from taking an allocator, saving it hidden somewhere and using it silently?

  8. So far, most of Zig enthusiasts look to me like people who get sugar rush from writing fast native code and are ignorant (i.e. newcomers to system programming) or arrogant (e.g. long time C programmers stubbornly stuck in their ways) enough to think that memory safety is just a question of not writing stupid bugs. Or luddites that think that programs must always be simple enough to get memory safety right.
  9. Actually, the strong type system is often why people like to write Rust. Because encoding logic invariants in it also helps to prevent logic bugs!

    There is a significant crowd of people who don't necessarily love borrow checker, but traits/proper generic types/enums win them over Go/Python. But yes, it takes significant maturity to recognize and know how to use types properly.

  10. Humans still have to state the goal and write a proof of it, but the proof is computer-verified. It's not irrelevant, except in the sense that any two different ways to prove the same statement are equivalently valid proofs.
  11. Show us the way!
  12. Yes, in some sense JavaScript is the pinnacle of programming language design: it's so resilient to chaos that even stochastic parrots can write it with some success.

    It's like the absolute minimal threshold of demands for sloppy code to work without immediately falling apart.

  13. Linux already has GNOME and KDE as solid mainstream platforms (which is already twice as good as MacOS/Windows), and it also already has Sway, Hyprland, Niri. If an idea is worth implementing, it gets implemented even with Wayland.
  14. There are type hints for function parameters. With some care and guards, Dialyzer can be somewhat helpful.

    What actually drove me nuts was absence of guards and meaningful static analysis on return values. Even in my small but nontrivial personal codebase I had to debug mysterious data mismatches after every refactor. I ended up with a monad-like value checking before abandoning Elixir for my compiler.

  15. I don't know where you got this myth from. Extermination of elite VDV units was not just one plane shot down.

    There were many russian helicopters successfully landing at Hostomel, the area saw heavy fighting for several days until it was under Ukrainian control.

    > The Russian Il-76s carrying reinforcements could not land; they were possibly forced to return to Russia.[35]

    https://en.wikipedia.org/wiki/Battle_of_Antonov_Airport

    Rumors of an Il-76 downed close to Vasylkiv did not prove to be true:

    > Claims have been made that Ukrainian aircraft shot down two Russian Ilyushin Il-76 aircraft transporting assault troops.[33][124][34] However, The Guardian reports "no convincing public evidence has surfaced about the two downed planes, or about a drop of paratroopers in Vasylkiv".[125]

    https://en.wikipedia.org/wiki/Northern_front_of_the_Russian_...

  16. Yes, I find it easier to press single quote in vanilla Firefox, start typing the most unique looking part of the link text, see it become green, press Enter to confirm. The link search feature in Firefox is one of the reasons that keep me using it.
  17. I am not sure I understand what you mean in the context of Haskell.
  18. Yes, but even UART could handle some kind of a simple multiplexer protocol with multiple data streams.
  19. It's a bit creepy to refer to people as "things"
  20. Memory is meant to be reused, "64 bit counter will be enough for everybody" is not how systems programming works.
  21. Async might be a wrong abstraction for high-level programming: green threads/goroutines are so much easier to use.

    On the other hand, writing a state machine for handling concurrent events/transitions is literally async done manually. libuv, any high-performance network server, UI events handling are all like that.

    I agree that doing low-level async right is difficult and might be an impractically long process.

  22. Async is badly needed in systems programming, more so than at the application level: handling events in embedded/low level components is incredibly tedious without it.
  23. `wezterm ssh` uses ssh the way you describe it.

    It does not offer persistence by itself, but iirc there are server components in wezterm which might give you reattach able sessions.

  24. I have already spent more time than I wanted on reading through verbose but elusive articles about Vale, without any insight into how this actually happens.

    I have already spent too much time trying to compile Vale compiler which is a weird mix of Scala and C++ with a small Vale driver. Once it is actually written in Vale without segfaults, I'll revisit the language again.

    Thanks for the Verona recommendation.

  25. Please demonstrate a practical and memory safe systems programming language without borrowing.

    I'd be delighted to see it, because right now I am not aware of any practical way to have memory safe regions without static tracking of borrowing from these regions. It's either that or runtime checking.

  26. My perspective, from a non-native speaker: Latin alphabet has happened to overlap with majority of world capital and economy. That is all to it. It's a never-ending baroque timesink to learn English spelling properly, but it did not matter.

    Computing based on Chinese or Arabic would be a hindrance. Computing based on Hebrew, Cyrillic, Greek or Hindi would not be in any way (although for Slavic languages I do find flexibility of word order and plethora of word forms a hindrance, but it's a linguistic one).

  27. The jakt compiler has been rewritten in jakt.

    Rewriting it in jakt is now a thing!

  28. It's the SunOS of webbrowsers. Chrome is technically opensource too.
  29. Well, it still involves some kind of public key infrastructure, but encryption could be optional even in https. Linux distros have been hosting their packages on plain http for two decades, PGP signatures (again, not a great example of "trivial", I admit) were sufficient to ensure integrity.
  30. Integrity without confidentiality is trivial.

This user hasn’t submitted anything.

Keyboard Shortcuts

Story Lists

j
Next story
k
Previous story
Shift+j
Last story
Shift+k
First story
o Enter
Go to story URL
c
Go to comments
u
Go to author

Navigation

Shift+t
Go to top stories
Shift+n
Go to new stories
Shift+b
Go to best stories
Shift+a
Go to Ask HN
Shift+s
Go to Show HN

Miscellaneous

?
Show this modal