<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: coderedart</title><link>https://news.ycombinator.com/user?id=coderedart</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 13 Aug 2026 20:25:19 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=coderedart" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by coderedart in "Deutsche Bank becomes first foreign yuan clearing bank in Europe"]]></title><description><![CDATA[
<p>India is pro-coal (has local sources), but anti-oil (import dependence). It is only pro-coal because there's no other alternatives at cost/scale for baseload generation.</p>
]]></description><pubDate>Thu, 13 Aug 2026 16:55:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=49288770</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=49288770</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49288770</guid></item><item><title><![CDATA[New comment by coderedart in "Returning to Zig"]]></title><description><![CDATA[
<p>duplicate from 11 hours ago: <a href="https://news.ycombinator.com/item?id=48790302">https://news.ycombinator.com/item?id=48790302</a><p>A more direct title is: ai-hating-author abandons ai-loving-rust for ai-hating-zig.</p>
]]></description><pubDate>Sun, 05 Jul 2026 12:08:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48793556</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=48793556</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48793556</guid></item><item><title><![CDATA[New comment by coderedart in "Why the US Navy won't blast the Iranians and 'open' Strait of Hormuz"]]></title><description><![CDATA[
<p>very likely to be India.<p>- Plenty of sources online about the LPG crisis, as the govt has invoked essential commodities act (gives govt extra powers to crush black market and force companies to prioritize distribution to domestic households over industrial use cases).<p>- E-commerce like amazon/flipkart have also run out of induction stoves (or selling at a premium like RAM).<p>- Electricity is a state subject, and two of the south India states (bangalore-KT/hyderabad-TG) offer free electricity up to 200 units for low-income households under "gruha jyothi scheme"</p>
]]></description><pubDate>Wed, 01 Apr 2026 14:40:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47601611</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=47601611</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47601611</guid></item><item><title><![CDATA[New comment by coderedart in "OpenSUSE Kalpa"]]></title><description><![CDATA[
<p>I daily drive kalpa and also installed it on my family computer. I landed on kalpa after a long time researching, so, let me dump an overview of this new distro tech.<p># Terminology<p>1. Immutable: The core OS (/usr directory) is kept in "pristine" condition by disallowing modifications.<p><pre><code>  - Discourage installing packages or removing packages.
 
  - well-tested (as most users are running the same OS with same package version)

  - System upgrades are an entirely new immutable copy
</code></pre>
2. Atomic/Transactional: Similar to atomicity in databases, where a bunch of operations are bundled into a transaction (atomic =indivisible unit), and it either succeeds completely or it fails completely. Just like that, a system upgrade succeeds or it doesn't. There's no partial package updates.<p>NOTE: kalpa in particular, uses suse-microos tech called Transactional-Update <a href="https://documentation.suse.com/sles/15-SP7/html/SLES-all/cha-transactional-updates.html" rel="nofollow">https://documentation.suse.com/sles/15-SP7/html/SLES-all/cha...</a><p># Atomic styles<p>4 mainstream models of immutable distros:<p>1. declarative-config: ALL your system configuration in a config file eg: package versions, network config, user accounts and so on. eg: NixOS, BlendOS<p>2. OSTree-based: You use cloud/container (OCI) technology (eg: docker files) to layer upon existing layers (eg: pre-baked system images). eg: fedora's atomic spins, vanillaOS, endlessOS. So, fedora coreOS is the base layer -> atomic spins like silverblue/kinoite layer desktop packages like gnome/kde etc.. -> the infamous gaming distro "bazzite" layers gaming packages like wine/steam/drivers etc. and so on.<p>3. Btrfs-snapshot-based: You take a btrfs snapshot of your root partition before upgrading, so that you can boot into it if the upgrade fails. eg: suse-microos family (kalpa belongs here), chimeraOS<p>4. systemd-mkosi based: You essentially "curate" an entire OS filesystem in a directory using mkosi and deploy it as an immutable disk image. eg: kdelinux<p>NOTE: systemd-mkosi is the vision of systemd maintainers as mentioned here: <a href="https://0pointer.net/blog/fitting-everything-together.html" rel="nofollow">https://0pointer.net/blog/fitting-everything-together.html</a> . There's a whole bunch of system features in development to achieve this ideal.<p>Most of these distros (except btrfs-based) simply use the A/B root system. They just maintain two root partitions/images, put any upgrade into the "other" partition, mark that as live and the current partition as backup. If the boot into the new partition fails, they just boot into the backup partition and just wait for next upgrade.<p>As they don't allow usage of system package manager, you are supposed do package management at <i>user</i> level. For gui apps, you resort to flatpak. For other utilities, you usually pick homebrew or language-specific tools like cargo, pip/npm etc..<p># The magical tool called Distrobox<p>This runs containers in userspace and tries to integrate them into your system as much as possible.<p>A lot of software development requires system level services or shell access or install dependencies etc.. You obviously can't do that on host, as system package management is essentially forbidden and half the point of immutable distros is to keep the host "clean".<p>So, you create a container and do all your development in there. If it gets too dirty, you just delete it and create a new one.<p>Personally, I use an arch container for development, as it has all the bleeding edge packages and the convenient AUR too. vscode (from flatpak) supports connecting to containers using official remote extension. I also run a media server inside it. You can also install any system packages or cmdline utilities you want inside it (eg: codecs, ollama, etc..).<p># Why kalpa over others?<p>- Great KDE polish that suse is known for<p>- btrfs tech is mature and was already used in suse for years, the atomic system is very simple to understand and you can just pick the snapshot you want at boot menu.<p>- Despite being immutable, customizing the system (eg: installing a driver, kernel modules, firewalls etc. ) is easy too.<p><pre><code>  - just enter a transactional update shell

  - this creates a new mutable snapshot of the current system and chroots into it

  - run all the commands you want inside the shell. eg: install/remove packages, enable services etc.

  - exit shell. This will mark the transaction as success/complete and set the snapshot as live for next boot.
</code></pre>
- Minimal by default.<p>- Updates are fast/tiny, as they are just routine rolling release updates from tumbleweed repos.<p>There are some problems too:<p>- single maintainer<p>- less popular, compared to alternatives like fedora-based atomic spins.<p>- It's based on tumbleweed, so, you get <i>lots</i> of tiny updates (almost daily). Fedora based, for example, have weekly/bi-weekly updates.<p>- still in alpha stage (but once you set it up, it's rock solid).<p>- Immutability is still a new concept, and flatpaks are rough around the edges. Expect bugs. Mutable/traditional distros are still easier to use, as that has been "the way" forever.</p>
]]></description><pubDate>Tue, 17 Mar 2026 18:01:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47416069</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=47416069</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47416069</guid></item><item><title><![CDATA[New comment by coderedart in "Bootc and OSTree: Modernizing Linux System Deployment"]]></title><description><![CDATA[
<p>Kdelinux uses pacman for now, but the eventual goal is systemd-sysext based mkosi images.<p>They are also considering moving to buildstream and join gnome.</p>
]]></description><pubDate>Sat, 28 Feb 2026 13:33:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47195174</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=47195174</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47195174</guid></item><item><title><![CDATA[New comment by coderedart in "Fast Lua runtime written in Rust"]]></title><description><![CDATA[
<p>The naming is definitely unfortunate, as I was briefly excited for a lua VM written in rust.<p>Anyway, for those who want a lua version of nodejs/bun/deno, try looking at <a href="https://luvit.io/" rel="nofollow">https://luvit.io/</a> (lua) or <a href="https://lune-org.github.io/docs/" rel="nofollow">https://lune-org.github.io/docs/</a> (luau - AKA roblox lua).</p>
]]></description><pubDate>Mon, 24 Nov 2025 16:17:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46035695</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=46035695</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46035695</guid></item><item><title><![CDATA[New comment by coderedart in "Fast Lua runtime written in Rust"]]></title><description><![CDATA[
<p>It seems to just be re-exposing existing lua runtimes, which makes the naming very unfortunate IMO. The underlying runtime Luau, for example, details its performance here <a href="https://luau.org/performance" rel="nofollow">https://luau.org/performance</a> . Luajit is already popular and has plenty of benchmarks online.</p>
]]></description><pubDate>Mon, 24 Nov 2025 16:09:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46035606</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=46035606</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46035606</guid></item><item><title><![CDATA[New comment by coderedart in "Android and iPhone users can now share files, starting with the Pixel 10"]]></title><description><![CDATA[
<p>Throwing in my support for kde connect. It's just super convenient and it's FOSS + cross platform too. kde should honestly advertise it aggressively. There's nothing like it anywhere else.</p>
]]></description><pubDate>Fri, 21 Nov 2025 11:21:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46003434</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=46003434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46003434</guid></item><item><title><![CDATA[New comment by coderedart in "Fil-C: A memory-safe C implementation"]]></title><description><![CDATA[
<p>You absolutely can just transpile any language into any language. You just need to be willing to give up on performance, and fil-c is more or less doing just that.</p>
]]></description><pubDate>Wed, 29 Oct 2025 11:56:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=45745621</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=45745621</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45745621</guid></item><item><title><![CDATA[New comment by coderedart in "The Titania Programming Language"]]></title><description><![CDATA[
<p>That would mess with dot syntax usually reserved for method calls. Like rust's "hello".to_string();</p>
]]></description><pubDate>Mon, 15 Sep 2025 01:34:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=45245169</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=45245169</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45245169</guid></item><item><title><![CDATA[New comment by coderedart in "Safe C++ proposal is not being continued"]]></title><description><![CDATA[
<p>Local reasoning is the foundation of everything formal (this includes type systems) and anyone in the type-system-design space would know that. Graydon Hoare (ex-rust dev) wrote a post about it too (which links to another great without-boat's post in the very first line): <a href="https://graydon2.dreamwidth.org/312681.html" rel="nofollow">https://graydon2.dreamwidth.org/312681.html</a><p>The entire point of having a static-type-system, is to enable local reasoning. Otherwise, we would just do whole program analysis on JS instead of inventing typescript.</p>
]]></description><pubDate>Sun, 14 Sep 2025 21:06:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45243260</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=45243260</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45243260</guid></item><item><title><![CDATA[Distributing shared libraries with the executable on Linux]]></title><description><![CDATA[
<p>Article URL: <a href="https://aimlesslygoingforward.com/blog/2014/01/19/bundling-shared-libraries-on-linux/">https://aimlesslygoingforward.com/blog/2014/01/19/bundling-shared-libraries-on-linux/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43048728">https://news.ycombinator.com/item?id=43048728</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 14 Feb 2025 14:35:12 +0000</pubDate><link>https://aimlesslygoingforward.com/blog/2014/01/19/bundling-shared-libraries-on-linux/</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=43048728</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43048728</guid></item><item><title><![CDATA[New comment by coderedart in "Why wordfreq will not be updated"]]></title><description><![CDATA[
<p>I hate this. I did not notice the vast majority of them. So many backgrounds/sets are just green screens :(</p>
]]></description><pubDate>Thu, 19 Sep 2024 11:14:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=41590615</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=41590615</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41590615</guid></item><item><title><![CDATA[New comment by coderedart in "WebAssembly: A promising technology that is quietly being enshitified"]]></title><description><![CDATA[
<p>Actually, <i>looking</i> at the <a href="https://component-model.bytecodealliance.org/design/wit.html" rel="nofollow">https://component-model.bytecodealliance.org/design/wit.html</a> is the best way of understanding why we have what we have.<p>We have the basic primitives like signed and unsigned integers of various sizes, floating point numbers, bools and chars.<p>Remember that wasm components are like shared libraries (dll/so objects). Shared libraries themselves have dependencies (eg: vlc needs qt, which needs mesa, which needs x11/wayland etc..). Each component/shared library has a set of imports from other shared libraries <i>and</i> exports items to other shared libraries or apps.<p>For example, lets say that I want give a vector/array as an argument or receive it as the return type. On native libs, we just give a pointer + len as arguments, and the function can simply read/write using that pointer.<p>Except, wasm components are isolated (shared-nothing model). So, I can't just allocate the bytes and give a "pointer" to the jpeg decoder. Because both of us don't share the memory. This has a few reasons:<p>1. security: separate memories make sure that a component can't read/write another component's memory.
2. safety: If we don't have higher level types, then people will just pass around blobs and cast those bytes into types. Imagine one component thinks of rect as `Rect { x, y, w, h: f32 }` and another component thinks `Rect { x1, y1, x2, y2: f32}`. Without "record" types, we can't find that error.
3. flexibility: Lets say we want to pass around a list of strings between components. how would you do it between rust and js? To let each language feel natural, we need to "copy" these higher level types across the boundary (and wasm needs to understand these higher level types) into the respective suitable types.<p>This is why we have records (structs), strings, list<T>, variants (tagged unions), Option<T> and such types to allow for a feature-rich API. These are all passed by copy at the boundary with proper validation by the runtime in advance, so you get both performance, safety and ergonomics.<p>Finally, we also need to talk about "ownership", because some objects (like files via file descriptors) need to be passed across component boundary and we need to wasm let somehow know that we are passing on ownership of the file. We do this with "resource" (object with an ownership like a file descriptor or host native object or socket etc..). And wasm must also ensure that the object will be alive for the duration of the borrow.<p>The rest of the WIT is simple.<p>Interface is literally just a group of type signatures or objects. just like a module in python, rust. In C world, we usually just prefix the library/type name for all the function that belong to a certain library/type. In WASI, we just place the related fns inside an interface.<p>Similarly, a world is just a group of imports and exports that represent a component. world = component. world can import/export types/interfaces/fns/data. You can have multiple 'worlds' and interfaces within a wit file.<p>And a package is a group of wit files. similar to a java or go package that a file belongs to.<p>Its not really hard to understand. Most of the terminology directly translates to what we all see in any modern language like js, py, java, rust, go etc..<p>And the docs are not accessible at the moment, because its still a WIP and unstable. They are experimenting with rust and js to see how well this model works in practice.</p>
]]></description><pubDate>Fri, 24 May 2024 05:23:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=40463063</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=40463063</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40463063</guid></item><item><title><![CDATA[New comment by coderedart in "Parsing: The Solved Problem That Isn't (2011)"]]></title><description><![CDATA[
<p>Its definitely rarer than double or single quotes occurring in string. But I was wondering about the parent comment's concern of passing a string through multiple levels of escaping.<p>> until you need to get your string through several levels of escape. how many backslashes to add? depends on how deep your pipe is and how each of those layers is defined</p>
]]></description><pubDate>Thu, 22 Feb 2024 15:29:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=39468519</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=39468519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39468519</guid></item><item><title><![CDATA[New comment by coderedart in "Parsing: The Solved Problem That Isn't (2011)"]]></title><description><![CDATA[
<p>Won't you still have to escape the closing bracket if it occurs inside the string?</p>
]]></description><pubDate>Thu, 22 Feb 2024 05:30:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=39463589</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=39463589</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39463589</guid></item><item><title><![CDATA[New comment by coderedart in "Castle Engine – Free open-source cross-platform 3D/2D game engine using Pascal"]]></title><description><![CDATA[
<p>Ty. I could feel that there was a joke in there somewhere, but didn't remember the mercury pressure thing</p>
]]></description><pubDate>Mon, 19 Feb 2024 09:23:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=39427667</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=39427667</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39427667</guid></item><item><title><![CDATA[New comment by coderedart in "28-ton, 1.2-megawatt tidal kite is now exporting power to the grid"]]></title><description><![CDATA[
<p>Water heater for bath/showers</p>
]]></description><pubDate>Mon, 12 Feb 2024 17:02:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=39347280</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=39347280</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39347280</guid></item><item><title><![CDATA[New comment by coderedart in "A look at the Mojo language for bioinformatics"]]></title><description><![CDATA[
<p>There was v lang in recent memory which made grand claims.</p>
]]></description><pubDate>Mon, 12 Feb 2024 02:27:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=39340757</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=39340757</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39340757</guid></item><item><title><![CDATA[New comment by coderedart in "A reasonable configuration language"]]></title><description><![CDATA[
<p>using wasm goes into crazy territory imo. It would <i>probably</i> be bigger, and opaque, with no proper errors (unless you compile debug info which would make it much bigger).<p>I think we already have an almost perfect language i.e. Lua
Everyone knows it (or can learn it easily). tiny runtime to embed. sandboxed by default. garbage collected. Only feature missing is static typing.</p>
]]></description><pubDate>Sun, 04 Feb 2024 19:14:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=39253370</link><dc:creator>coderedart</dc:creator><comments>https://news.ycombinator.com/item?id=39253370</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39253370</guid></item></channel></rss>