<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2025-09-18T01:35:41Z</updated>
  <generator>https://nostr.now</generator>

  <title>Nostr notes by 05nelsonm</title>
  <author>
    <name>05nelsonm</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.now/npub1j3fs72nlngpdgy2njn0rycd0f45lyv8r0j45sjvqcdmszzc0agmqvh7lq8.rss" />
  <link href="https://nostr.now/npub1j3fs72nlngpdgy2njn0rycd0f45lyv8r0j45sjvqcdmszzc0agmqvh7lq8" />
  <id>https://nostr.now/npub1j3fs72nlngpdgy2njn0rycd0f45lyv8r0j45sjvqcdmszzc0agmqvh7lq8</id>
  <icon>https://image.nostr.build/96ad1ba2d7b329210fe9e33f0df370e0ac25e575d206e523b86c322afccdd3f5.jpg</icon>
  <logo>https://image.nostr.build/96ad1ba2d7b329210fe9e33f0df370e0ac25e575d206e523b86c322afccdd3f5.jpg</logo>




  <entry>
    <id>https://nostr.now/nevent1qqsvt8z6d2gwjmwxzw2cm2jadzzcd3sff0edguzsef62cx5j3vv3rxczyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rv0vua2c</id>
    
      <title type="html">Sorry, the string value to declare in your manifest is actually ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvt8z6d2gwjmwxzw2cm2jadzzcd3sff0edguzsef62cx5j3vv3rxczyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rv0vua2c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyszytfaa3adezp09l6849r37hy707rjk7p3s3vczggx0z6xdmsyspr9mhxue69uhk2umsv4kxsmewva5hy6twduhx7un89uzrywq3&#39;&gt;nevent1q…ywq3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Sorry, the string value to declare in your manifest is actually `PACKAGE_REPLACED` not `ACTION_PACKAGE_REPLACED &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2025-11-03T10:54:41Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqszgk3skq4wq8xe4lq8kmt59p4lfj85rfv65c8mx7a4tdhejzgdm8gzyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rvynyc32</id>
    
      <title type="html">Did you also handle the needed restart on new version being ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqszgk3skq4wq8xe4lq8kmt59p4lfj85rfv65c8mx7a4tdhejzgdm8gzyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rvynyc32" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszepdjsrv836w7jnrwr9lststyukw66wyvdkr78q29t743k5qj8wgpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhger4rhd&#39;&gt;nevent1q…4rhd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Did you also handle the needed restart on new version being installed?&lt;br/&gt;&lt;br/&gt;When user updates the app, Android will kill the process, then dispatch a system Intent to it after installation completion. It will receive a warm start whereby the Saved Instance State is recoverable. &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2025-11-03T01:28:57Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsq3eumt2ljzql0j0jjf3xdueffqpa4xvp0cywrczzasx3lg9pa5uczyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rv66t3lf</id>
    
      <title type="html">Mynymbox, Namecheap, Porkbun</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsq3eumt2ljzql0j0jjf3xdueffqpa4xvp0cywrczzasx3lg9pa5uczyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rv66t3lf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs80459jc0rc4ha3jkxrvv5uvzt5zntl67t6talxv2zf6lpj5a2kusppamhxue69uhkummnw3ezumt0d54zy3y9&#39;&gt;nevent1q…y3y9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Mynymbox, Namecheap, Porkbun &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2025-10-06T21:42:02Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstcf5kt6z8fzhdqhhusm5sth34c3ygdrcfktas3apgjeegz6spnsczyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rvxc4k5z</id>
    
      <title type="html">I would highly advise against such a setup, where every app ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstcf5kt6z8fzhdqhhusm5sth34c3ygdrcfktas3apgjeegz6spnsczyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rvxc4k5z" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvy8h4z6f4f4cydkj7ss2ke7j3jt24nzusrlfv2kjxqq3gxhqcwdspramhxue69uhkummnw3ezuetfde6kuer6wasku7nfvuh8xurpvdjsedhy67&#39;&gt;nevent1q…hy67&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I would highly advise against such a setup, where every app imports the server. Logistically, that is a nightmare due to how aggressive Android is in killing processes.&lt;br/&gt;&lt;br/&gt;Instead, I&amp;#39;d create a dedicated companion application users can install, and a client SDK with a thin API/protocol for developers to hook into and communicate locally via IPC.&lt;br/&gt;&lt;br/&gt;The separation is a huge benefit for everybody (especially users) because the less code in that SDK, the more you can huck into the app and manage from 1 place. Security wise, this is beneficial too. &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2025-09-06T16:55:04Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2qmf038zvm7zt8elclpn6lacs3th4v2eghsgqhmne6zcr2jd9kfszyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rv9u47rr</id>
    
      <title type="html">It can be done in a decentralized manner; that is exactly what ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2qmf038zvm7zt8elclpn6lacs3th4v2eghsgqhmne6zcr2jd9kfszyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rv9u47rr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf2t97jcygwl8gprc5khuhvv7d3h0s28mr5hr2406v837852w9fwqpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgptv4zk&#39;&gt;nevent1q…v4zk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It can be done in a decentralized manner; that is exactly what I&amp;#39;m building now... Device to device. No centralized server. Can ping any app on my phone (as long as it&amp;#39;s registered with my app) from my laptop using terminal, curl and tor.&lt;br/&gt;&lt;br/&gt;Server is embedded in the application that other apps on the device can register with. Http calls hit the server and get routed to the registered app.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s a one click install for users. All overhead is pushed to developers to setup the client library for IPC, and then me to maintain the app &amp;amp; client library. UX is dead simple consumer wise, unlike other products that may require users to run a server at home or something. &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2025-09-05T16:53:34Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvr3z79452fymdpxdw7aq9t87kd7kyr07zmwyhj9y735v45zjs0zczyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rv8te8c8</id>
    
      <title type="html">I&amp;#39;d love too, but am booked for the next couple of months ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvr3z79452fymdpxdw7aq9t87kd7kyr07zmwyhj9y735v45zjs0zczyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rv8te8c8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp9jk08axqjlr0gdh3wqe75p53j7835m5x85dpr3h222ll5wlr6xspzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhggwltxj&#39;&gt;nevent1q…ltxj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;d love too, but am booked for the next couple of months under a sponsorship from &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs8suecw4luyht9ekff89x4uacneapk8r5dyk0gmn6uwwurf6u9ruspzpmhxue69uhkumewwd68ytnrwghszrnhwden5te0dehhxtnvdakz7d8grcu&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;OpenSats&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…grcu&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;to work on kmp-tor. After that, I resume work on that project. &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2025-09-05T15:41:58Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqszjvdjucallh0t7qx4pzmqkcw6ajr75v8c27uwj0kpnq7wlr4fmxqzyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rvalrgg2</id>
    
      <title type="html">Signal uses the socket-io library to maintain an open socket with ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqszjvdjucallh0t7qx4pzmqkcw6ajr75v8c27uwj0kpnq7wlr4fmxqzyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rvalrgg2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsryanwtdaaxrqglnvgmyel4q7fljsmfxyttsfkzyadawv8ajmjduqpzemhxue69uhhv6t5daezumn0wd68yvfwvdhk6fp2znt&#39;&gt;nevent1q…2znt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Signal uses the socket-io library to maintain an open socket with their backend; it&amp;#39;s incredibly resource intensive.&lt;br/&gt;&lt;br/&gt;Tutanota uses the SSE API for their push noticication service and does a pretty good job on their end as it relates to battery consumption.&lt;br/&gt;&lt;br/&gt;That said, if every app were to implement their own push notification service, 5&#43; apps doing on a device that turns a &amp;#34;mobile&amp;#34; phone into something that always needs to be plugged in. It does not scale.&lt;br/&gt;&lt;br/&gt;I ran a test on Android using kmp-tor and a ktor server exposed as a hidden service, pinging it every 5 min via cronjob from my server at home. Over 24h, battery consumption was about 5%-7% depending on the test device.&lt;br/&gt;&lt;br/&gt;Working on a product right now for drop in replacement to google/apple services, but it&amp;#39;s far from ready. &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2025-09-05T13:19:52Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsd9q8c6vq948gv2jnyhcvn3rhx8qzlp4las8v39cdqr8rhwmhyyfqzyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rvpfxjdl</id>
    
      <title type="html">Love it! Definitely update kmp-tor. That old API was atrocious ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsd9q8c6vq948gv2jnyhcvn3rhx8qzlp4las8v39cdqr8rhwmhyyfqzyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rvpfxjdl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyju4p9yrpvheh2mnjvkkkw2wez70gazem5mx7duplfptx48he6sqpz3mhxue69uhkummnw3ezummcw3ezuer9wc44zvmz&#39;&gt;nevent1q…zvmz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Love it!&lt;br/&gt;&lt;br/&gt;Definitely update kmp-tor. That old API was atrocious (sorry 😂). &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2025-07-18T23:29:10Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstcmtteh9td92aqkd6uwwas3e47emaqk0t43h6wcevjd9dz2a0kcszyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rvall4k7</id>
    
      <title type="html">Spent the day working on a complete overhaul of kmp-file&amp;#39;s ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstcmtteh9td92aqkd6uwwas3e47emaqk0t43h6wcevjd9dz2a0kcszyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rvall4k7" />
    <content type="html">
      Spent the day working on a complete overhaul of kmp-file&amp;#39;s API.&lt;br/&gt;&lt;br/&gt;This new API will be highly focused file/directory permissions and atomic filesystem operations.&lt;br/&gt;&lt;br/&gt;Unfortunately, permissions have always taken a back seat when it comes to Kotlin IO libraries, even in Java. The API is cumbersome and you always have to check if you&amp;#39;re on Windows (not POSIX) lest you forget and crash. Additionally, Java&amp;#39;s nio API is not available for Android API 25 and below which makes it difficult to come up with a simple to use API.&lt;br/&gt;&lt;br/&gt;BUT! Android API 21 introduced the Os and OsConstants classes with access to all the native APIs. With some magic (reflection b/c kmp-file is JVM only), one can have the best of both worlds.&lt;br/&gt;&lt;br/&gt;I hope to make permissions a key part of the API, forcing the API consumer to always have to express SOMETHING (null for default dir/file permissions).&lt;br/&gt;&lt;br/&gt;API for all platforms will look something akin to:&lt;br/&gt;&lt;br/&gt;&amp;#34;/some/path/to/file.text&amp;#34;.toFile().writeUtf8(text = &amp;#34;Hello World&amp;#34;, mode = &amp;#34;644&amp;#34;, mustCreate = true)&lt;br/&gt;&lt;br/&gt;&amp;#34;/some/path/to/dir&amp;#34;.toFile().mkdirs2(mode = &amp;#34; 744&amp;#34;).resolve(&amp;#34;new.txt&amp;#34;).writeBytes(data = &amp;#34;Hello World!&amp;#34;.encodeToByteArray(), mode = null) &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2025-06-23T23:29:18Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsghfq00nsx5805t0qgvj7h8wyz52e5v7r7ck7fx938zszryyr6e5szyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rv87xgf3</id>
    
      <title type="html">It&amp;#39;s really awesome how far it has come; stellar work. ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsghfq00nsx5805t0qgvj7h8wyz52e5v7r7ck7fx938zszryyr6e5szyz29xre207dq94q32w2duvnp4axknu3sud72kjzfsrphwqgtpl4rv87xgf3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz2qarmectg4g7egydy5hmf5xnn2yv9s8gg0wgx4pdyhthpequfasppamhxue69uhkummnw3ezumt0d54xu02f&#39;&gt;nevent1q…u02f&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It&amp;#39;s really awesome how far it has come; stellar work.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s weird though, every chat app I look at has this unfortunate structure with &amp;#34;some server&amp;#34; component hosting all the data (or at least facilitating delivery of it), which necessitates the additional layer of e2ee like MLS or Signal Protocol.&lt;br/&gt;&lt;br/&gt;I really want to get rid of that layer and go direct; device to device. No need for those protocols and the complexity they add if there&amp;#39;s no middle man touching your sh!t.
    </content>
    <updated>2025-06-10T19:33:34Z</updated>
  </entry>

</feed>