HN user

sickill

415 karma

[ my public key: https://keybase.io/sickill; my proof: https://keybase.io/sickill/sigs/-jsu0plZrJkQYYTEy5_807ZrqWGDB9F1w_n9s3w5MKI ]

Posts11
Comments83
View on HN
Not Using Zoom 3 years ago

Let’s try to convince our IT admins to approve Jitsi then. If we don’t try then we’ll be destined to Zoom/Teams/Meet.

I fully agree with you, although this is still step in the right direction compared to them sticking to Twitter/FB/etc.

Subject: Potential Threat to Digital Freedom from Google's Web Environment Integrity

Dear [Recipient],

I'm writing to highlight an important matter regarding the digital freedom and competitiveness on the internet. Google is rapidly advancing a policy named "Web Environment Integrity" (WEI) in their Chromium browser.

WEI allows developers to regulate browser configurations, which could lead to limiting the usage of free browsers or operating systems. This creates a potential for a web environment that discriminates based on browser usage. Further, this scenario could pave the way for governments and corporations to enforce specific browser usage and could also allow Google to restrict access to their services based on browser compliance.

This practice contradicts the fundamental principles of an open and competitive digital marketplace. I strongly encourage your agency to investigate the potential impacts of Google's WEI and consider taking necessary actions.

Your proactive engagement is vital in preserving the principles that ensure a free and open web.

Best regards,

[Your Name]

Are We Sixel Yet 3 years ago

because you can't make asciinema span multiple tabs or panes

Of course you can:

1. create tmux session, create splits/panes 2. detach 3. asciinema rec 4. attach (inside asciinema rec)

This way asciinema records your whole terminal, and tmux running inside of it.

In other words, if you have it like this:

terminal -> tmux -> pane -> asciinema rec

asciinema can't see outside of the pane its running in. However, if you have it like this:

terminal -> asciinema rec -> tmux attach

asciinema sees all of it because its parent is your terminal, not tmux pane.

At my company we used Contabo servers. They were Windows VMs, I can’t tell anything about Linux ones. But, the ones we had felt underpowered for what we expected. It might have been subjective, we haven’t performed any benchmarking, just a feeling. Also, their UI is straight from the 90s, in a bad way.

If you don’t understand the difference between software shipped by a distro and software shipped by developer (npmjs.com) then all is left is preferences or culture war issues.

However there’s fundamental difference: in a model of distribution by a distro the developer only produces a software but they don’t release it themselves. They provide source code and that’s it. Maintainers of packages for each distro vet new releases, test, and sometimes patch them so they work best within context of a given distro. So there’s extra effort spent on making sure the software is stable. In a model where a developer publishes their new release to some package repository directly (npmjs.com is just one of them, same applies to pypi.org, rubygems.org, etc) that extra “QA” by others than the developer doesn’t happen.

But 50x faster? Unlikely.

And yet it is.

The biggest factor here is that CLJS is interpreted, GC-ed with immutable data structures while Rust is lower level with highly optimized WASM bytecode, that's optimized by Rust/LLVM compiler ahead of time.

So, when there's a lot of terminal activity (high speed colorful animation), the terminal emulator in CLJS implementation allocates and GCs millions of data structures every second. In Rust implementation there's very little allocation because most code operates on already pre-allocated buffers, and just mutates then. Both approaches are standard to their language. I could have tried all sorts of tricks (in fact I tried some) in CLJS to make this implementation faster but it would very quickly make the code non-idiomatic, and not fun to work with. But let's say I could make the CLJS impl be on par with a theoretical plain JS impl - this would likely still be many times slower than a basic Rust impl. Modern JS engines are amazing but they just can't beat WASM. Maybe some day :)

Oh wow, thank you! Frankly I'm the least proud of it, as it's been my first Elixir/Phoenix project and there's many things I'd have written differently today, especially after spending last 4 years writing Elixir at work. But time will hopefuly come to bring more love to it too :)