<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: dharmatech</title><link>https://news.ycombinator.com/user?id=dharmatech</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 13 Jun 2026 08:36:27 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=dharmatech" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by dharmatech in "OCaml Onboarding: Introduction to the Dune build system"]]></title><description><![CDATA[
<p>I've been messing around with ocaml on plan9:<p><a href="https://github.com/dharmatech/ocaml" rel="nofollow">https://github.com/dharmatech/ocaml</a></p>
]]></description><pubDate>Mon, 08 Jun 2026 19:44:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48450685</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48450685</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48450685</guid></item><item><title><![CDATA[New comment by dharmatech in "Rubish: A Unix shell written in pure Ruby"]]></title><description><![CDATA[
<p>Cool project!<p>Just for fun, looking at code count as a rough measure of complexity.<p>rubish: 26,842<p>rc (plan9 shell): 5,888<p>To be fair, rubish does a lot more than rc. rc is pretty minimal.<p>rc source:<p><a href="https://github.com/9front/9front/tree/front/sys/src/cmd/rc" rel="nofollow">https://github.com/9front/9front/tree/front/sys/src/cmd/rc</a><p>Measures below:<p><pre><code>    $ wc -l `find . -name '*.rb'`
      1124 ./rubish/execution_context.rb
        43 ./rubish/frontend.rb
      260 ./rubish/builtins/hash_directories.rb
      510 ./rubish/builtins/echo_printf.rb
      834 ./rubish/builtins/bind_readline.rb
      182 ./rubish/builtins/directory_stack.rb
      299 ./rubish/builtins/read.rb
      324 ./rubish/builtins/trap.rb
      129 ./rubish/builtins/arithmetic.rb
      862 ./rubish/completion.rb
      988 ./rubish/expansion.rb
      431 ./rubish/completions/git.rb
      114 ./rubish/completions/ssh.rb
      530 ./rubish/completions/bash_helpers.rb
      453 ./rubish/completions/help_parser.rb
      167 ./rubish/ast.rb
        46 ./rubish/frontend/tty.rb
      1179 ./rubish/runtime.rb
      127 ./rubish/lazy_loader.rb
        63 ./rubish/data_define.rb
      1163 ./rubish/runtime/command.rb
      153 ./rubish/runtime/job.rb
      7270 ./rubish/runtime/builtins.rb
      306 ./rubish/config.rb
      2442 ./rubish/repl.rb
      1316 ./rubish/codegen.rb
      1180 ./rubish/lexer.rb
      742 ./rubish/history.rb
      1169 ./rubish/parser.rb
        67 ./rubish/startup_profiler.rb
      848 ./rubish/prompt.rb
        47 ./rubish/data/readline_config.rb
      716 ./rubish/data/builtin_help.rb
      251 ./rubish/data/shell_options.rb
        53 ./rubish/data/completion_data.rb
        5 ./rubish/version.rb
      248 ./rubish/shell_state.rb
      140 ./rubish/arithmetic.rb
        61 ./rubish.rb
    26842 total

</code></pre>
rc:<p><pre><code>    $ wc -l *.c *.h *.y
      547 code.c
    1173 exec.c
      234 getflags.c
      259 glob.c
      240 havefork.c
      137 here.c
      301 io.c
      436 lex.c
      169 pcmd.c
      78 pfnc.c
      494 plan9.c
      539 simple.c
      74 subr.c
      37 trap.c
      190 tree.c
      420 unix.c
      109 var.c
      85 exec.h
      72 fns.h
        7 getflags.h
      28 io.h
      167 rc.h
      92 syn.y
    5888 total</code></pre></p>
]]></description><pubDate>Sat, 23 May 2026 10:52:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48246591</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48246591</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48246591</guid></item><item><title><![CDATA[New comment by dharmatech in "Show HN: Freenet, a peer-to-peer platform for decentralized apps"]]></title><description><![CDATA[
<p>This is cool!<p>OK, time for inception... 9social on freenet-git<p>¯ \ _ ( ツ ) _ / ¯</p>
]]></description><pubDate>Thu, 21 May 2026 22:10:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48229448</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48229448</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48229448</guid></item><item><title><![CDATA[New comment by dharmatech in "Show HN: Freenet, a peer-to-peer platform for decentralized apps"]]></title><description><![CDATA[
<p>I definitely think we should be exploring decentralized approaches to services we use.<p>I also would like to see an emphasis on local-first approaches.<p>This experiment, in the spirit of UNIX, composes git and text files to form a social network:<p><a href="https://github.com/dharmatech/9social" rel="nofollow">https://github.com/dharmatech/9social</a><p>Video demo:
<a href="https://youtu.be/q6qVnlCjcAI" rel="nofollow">https://youtu.be/q6qVnlCjcAI</a></p>
]]></description><pubDate>Thu, 21 May 2026 21:58:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48229342</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48229342</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48229342</guid></item><item><title><![CDATA[New comment by dharmatech in "OpenBSD 7.9"]]></title><description><![CDATA[
<p>Thanks for checking it out, pjmlp!</p>
]]></description><pubDate>Wed, 20 May 2026 21:43:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=48214571</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48214571</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48214571</guid></item><item><title><![CDATA[New comment by dharmatech in "OpenBSD 7.9"]]></title><description><![CDATA[
<p>Hey pjmlp (waves),<p>I know you've been an advocate for OSes and languages that are outside of the mainstream.<p>I finally got around to living in plan9...<p>My experiment, a social network for plan9 written in rc and some awk.<p><a href="https://github.com/dharmatech/9social" rel="nofollow">https://github.com/dharmatech/9social</a></p>
]]></description><pubDate>Tue, 19 May 2026 21:27:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48199914</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48199914</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48199914</guid></item><item><title><![CDATA[New comment by dharmatech in "The Emacsification of Software"]]></title><description><![CDATA[
<p>> how do you manage discovery of other users<p>Here's my personal profile on 9social:<p><a href="https://github.com/dharmatech/9social-user-dharmatech" rel="nofollow">https://github.com/dharmatech/9social-user-dharmatech</a><p>Each profile has a `following` file which shows who they're following:<p><a href="https://github.com/dharmatech/9social-user-dharmatech/blob/main/following" rel="nofollow">https://github.com/dharmatech/9social-user-dharmatech/blob/m...</a><p>So, once you know someone on the network (now you know me!) you can see who they follow. And who each of them follow... And so on.</p>
]]></description><pubDate>Fri, 15 May 2026 01:14:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=48143318</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48143318</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48143318</guid></item><item><title><![CDATA[New comment by dharmatech in "The Emacsification of Software"]]></title><description><![CDATA[
<p>> how do you manage identity/authentication<p>Well, each user's profile is just a git repository (possibly on github).
So I'd think about identity/authentication
in the same way users think about it for their code projects.<p>If you have specific scenarios you're wondering about, feel free to ask.</p>
]]></description><pubDate>Fri, 15 May 2026 01:11:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48143305</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48143305</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48143305</guid></item><item><title><![CDATA[New comment by dharmatech in "The Emacsification of Software"]]></title><description><![CDATA[
<p>> Nice! This sounds just like what I'd been thinking the system should be like.<p>Cool! Thanks for checking it out!</p>
]]></description><pubDate>Fri, 15 May 2026 01:10:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=48143297</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48143297</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48143297</guid></item><item><title><![CDATA[New comment by dharmatech in "The Emacsification of Software"]]></title><description><![CDATA[
<p>I agree that owning the data is ideal:<p><a href="https://news.ycombinator.com/item?id=48129841">https://news.ycombinator.com/item?id=48129841</a></p>
]]></description><pubDate>Thu, 14 May 2026 03:31:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48130793</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48130793</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48130793</guid></item><item><title><![CDATA[New comment by dharmatech in "The Emacsification of Software"]]></title><description><![CDATA[
<p>I absolutely LOVE secure scuttlebutt (SSB).<p>Their local-first approach inspired that aspect of the 9social design.<p>However, a big difference is that SSB is a sophisticated protocol.<p>With 9social, the heavy lifting is done by git and a set of conventions.</p>
]]></description><pubDate>Thu, 14 May 2026 03:09:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48130644</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48130644</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48130644</guid></item><item><title><![CDATA[New comment by dharmatech in "The Emacsification of Software"]]></title><description><![CDATA[
<p>> You connect to your contacts via P2P, and download/upload updates to your social media network.<p>Yup, local-first is central to the design.<p>And, you only see who you explicitly follow.</p>
]]></description><pubDate>Thu, 14 May 2026 02:48:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=48130534</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48130534</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48130534</guid></item><item><title><![CDATA[New comment by dharmatech in "The Emacsification of Software"]]></title><description><![CDATA[
<p>> I love this idea. Thank you for the examples!<p>Thanks for checking it out!</p>
]]></description><pubDate>Thu, 14 May 2026 02:46:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48130531</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48130531</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48130531</guid></item><item><title><![CDATA[New comment by dharmatech in "The Emacsification of Software"]]></title><description><![CDATA[
<p>I love your username!<p>I hope there's a sympy-thagoras out there.<p>( • ‿ • )</p>
]]></description><pubDate>Thu, 14 May 2026 02:45:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48130520</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48130520</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48130520</guid></item><item><title><![CDATA[New comment by dharmatech in "The Emacsification of Software"]]></title><description><![CDATA[
<p>It's plan9 so:<p>"There's a filesystem for that."<p>¯ \ _ ( ツ ) _ / ¯</p>
]]></description><pubDate>Thu, 14 May 2026 02:43:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=48130509</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48130509</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48130509</guid></item><item><title><![CDATA[New comment by dharmatech in "The Emacsification of Software"]]></title><description><![CDATA[
<p>Our social media should be decentralized and local first, allowing for bespoke clients on any OS.<p>This is an experiment towards that:<p><a href="https://github.com/dharmatech/9social" rel="nofollow">https://github.com/dharmatech/9social</a><p>The first client is written for plan9.
This keeps the design honest.
(If it can run on plan9/rc/acme...)<p>Video demo:<p><a href="https://youtu.be/q6qVnlCjcAI" rel="nofollow">https://youtu.be/q6qVnlCjcAI</a><p>The current implementation is less than 3000 lines of code.<p>And speaking of Emacs...
9social was heavily inspired by an Emacs project called Org Social:<p><a href="https://github.com/tanrax/org-social" rel="nofollow">https://github.com/tanrax/org-social</a></p>
]]></description><pubDate>Thu, 14 May 2026 01:01:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=48129841</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48129841</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48129841</guid></item><item><title><![CDATA[Principia Softwarica: Plan 9 Code Explained]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.youtube.com/watch?v=blVTDhr4QN8">https://www.youtube.com/watch?v=blVTDhr4QN8</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48107802">https://news.ycombinator.com/item?id=48107802</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 12 May 2026 13:13:51 +0000</pubDate><link>https://www.youtube.com/watch?v=blVTDhr4QN8</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48107802</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48107802</guid></item><item><title><![CDATA[New comment by dharmatech in "Show HN: I made a Clojure-like language in Go, boots in 7ms"]]></title><description><![CDATA[
<p>Ah, awesome!<p>I'll head over to the releases.</p>
]]></description><pubDate>Sun, 10 May 2026 22:18:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=48088719</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48088719</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48088719</guid></item><item><title><![CDATA[New comment by dharmatech in "Show HN: I made a Clojure-like language in Go, boots in 7ms"]]></title><description><![CDATA[
<p>Thanks for checking it out!</p>
]]></description><pubDate>Sun, 10 May 2026 22:18:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=48088717</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48088717</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48088717</guid></item><item><title><![CDATA[New comment by dharmatech in "Show HN: I made a Clojure-like language in Go, boots in 7ms"]]></title><description><![CDATA[
<p>Amazing that it can run in plan9!<p>It would be awesome if go was a first class language on 9front. I.e. ships with it.<p>I've been messing around with a social network for plan9:<p><a href="https://youtube.com/watch?v=q6qVnlCjcAI&si=MBCeM0QdA0WsKAe7" rel="nofollow">https://youtube.com/watch?v=q6qVnlCjcAI&si=MBCeM0QdA0WsKAe7</a><p>It's all in rc and awk.
There are places where go (or clojure!) would have been nice.</p>
]]></description><pubDate>Sun, 10 May 2026 20:10:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48087421</link><dc:creator>dharmatech</dc:creator><comments>https://news.ycombinator.com/item?id=48087421</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48087421</guid></item></channel></rss>