<?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[Technology]]></title> <description><![CDATA[Postingan, berita, dan pembaruan terbaru dari kategori Technology. Temukan lebih banyak konten Technology di sini.]]></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?category=1" rel="self" type="application/rss+xml"/> <atom:link href="https://en.mycoding.id/rss.xml" rel="alternate" type="application/rss+xml"/> <atom:link href="https://en.mycoding.id/" rel="alternate" type="text/html"/> <pubDate>Fri, 18 Sep 2026 13:30:00 +0700</pubDate> <lastBuildDate>Fri, 18 Sep 2026 13:30:00 +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[This Highly Rated TCL Mini-LED TV Is $1,000 Off Right Now]]></title> <description><![CDATA[This Highly Rated TCL Mini-LED TV Is $1,000 Off Right Now. The 65-inch TCL QM8L is now $1,497.99, downward from its $2,499.99 initiate price.]]></description> <media:thumbnail url="https://lifehacker.com/imagery/articles/01M2T13PFDC5SS7KMDFGAAW6YM/hero-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/this-highly-rated-tcl-mini-led-tv-is-1-000-off-right-now-68703</link> <content:encoded><![CDATA[<div class="leading-normal prose-sm m-0 line-clamp-5 font-normal"><p>Pradershika Sharma is a tech deals author for Lifehacker. <br><br>She has a Master’s flat in English Literature, a B.Ed., and a TESOL certification. She has been penning professionally since 2018, creating merchandise reviews, affiliate articles, and hunt ads for earth clients during operating alongside Rubix Agency and Cognizant. Previously, she spent a twelvemonth instruction English at the younger elevated level.<br><br>An avid audience since childhood, Pradershika's idea of extreme sports is staying up to peruse “just one additional chapter.” She lives in India.</p></div> <hr class="custom-gradient-background my-6 h-[6px] max-w-[75px] border-0"> <p>TCL introduced its QM8L lineup before this year, and the <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow sponsored" target="_blank" title="open in a new window">65-inch model</a> has already dropped to $1,497.99 from its $2,499.99 initiate price, preservation you $1,000. This 2026 TV brings several of the company’s higher-end display innovation to a example that sits fair below its flagship range. The larger <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow sponsored" target="_blank" title="open in a new window">85-</a> and <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow sponsored" target="_blank" title="open in a new window">98-inch</a> models are additionally heavily discounted, but a <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank">65-inch TV</a> have to be an ideal fit for most living rooms.</p><div class="shadow-b-2 mb-12 mt-10 rounded-md border-2 border-[#F0F0F0] px-6 py-2 shadow-lg md:px-12" role="region" aria-label="Products List" x-data=" false }"> <a href="https://en.mycoding.id/category/technology" target="_blank" data-commerce="1" target="_blank" rel="nofollow sponsored" data-parent-group="affiliate-link" title="(opens in a new window)" class="flex flex-col py-8 gap-5 border-dotted border-[#CFCFCE] cursor-default no-underline md:flex-row md:gap-y-2 md:py-7 border-b-2" data-ga-click="data-ga-click" data-ga-module="product-list" data-ga-element="offer" data-ga-item="offer-btn" data-ga-label="65-inch TCL QM8L TV" data-ga-position="1" aria-label="65-inch TCL QM8L TV Product Card" x-cloak="x-cloak" x-show="showMore || 0 &lt; 3"> <div class="flex w-full gap-x-5"> <div class="gap-y-6"> <div class="gap-y-1"> <div class="leading-6"> 65-inch TCL QM8L TV </div> </div> <div class="gap-x-4"> <div class="justify-center font-sans leading-4 text-black"> <div class="justify-start"> <span class="font-bold"> $1,497.99 <span class="font-medium">at Amazon</span> </span> </div> <div class="justify-start"> <span class="text-sm line-through">$2,499.99</span> <span class="text-sm text-brand-green">Save $1,002.00</span> </div> </div> Get Deal </div> </div> <div class="order-1"> <img class="m-0 max-h-full max-w-full rounded-md" src="https://lifehacker.com/imagery/product/07K7499Plpiwy5eCLNQ8iy7/hero-image.fill.size_autoxauto.v1788323082.jpg" alt="TCL 65 Inch Class QM8L Series | SQD-Mini-LED QLED Smart TV | 65QM8L, 2026 Model | 144Hz | Ultimate Color Brightness &amp; Contrast | Google AI Bang &amp; Olufsen | Voice Control Gaming Streaming Television" width="auto" height="auto" loading="lazy"> </div> </div> Get Deal <div class="hidden font-sans leading-4 text-black"> <div class="justify-start"> <span class="font-bold"> $1,497.99 <span class="font-medium">at Amazon</span> </span> </div> <div class="justify-start"> <span class="text-sm line-through">$2,499.99</span> <span class="text-sm text-brand-green">Save $1,002.00</span> </div> </div> </a> <a href="https://en.mycoding.id/category/technology" target="_blank" data-commerce="1" target="_blank" rel="nofollow sponsored" data-parent-group="affiliate-link" title="(opens in a new window)" class="flex flex-col py-8 gap-5 border-dotted border-[#CFCFCE] cursor-default no-underline md:flex-row md:gap-y-2 md:py-7 border-b-2" data-ga-click="data-ga-click" data-ga-module="product-list" data-ga-element="offer" data-ga-item="offer-btn" data-ga-label="85-inch TCL QM8L TV" data-ga-position="2" aria-label="85-inch TCL QM8L TV Product Card" x-cloak="x-cloak" x-show="showMore || 1 &lt; 3"> <div class="flex w-full gap-x-5"> <div class="gap-y-6"> <div class="gap-y-1"> <div class="leading-6"> 85-inch TCL QM8L TV </div> </div> <div class="gap-x-4"> <div class="justify-center font-sans leading-4 text-black"> <div class="justify-start"> <span class="font-bold"> $2,497.99 <span class="font-medium">at Amazon</span> </span> </div> <div class="justify-start"> <span class="text-sm line-through">$3,999.99</span> <span class="text-sm text-brand-green">Save $1,502.00</span> </div> </div> Get Deal </div> </div> <div class="order-1"> <img class="m-0 max-h-full max-w-full rounded-md" src="https://lifehacker.com/imagery/articles/01M2T13PFDC5SS7KMDFGAAW6YM/images-1.fill.size_autoxauto.v1789727463.jpg" alt="98-inch TCL QM8L TV" width="auto" height="auto" loading="lazy"> </div> </div> Get Deal <div class="hidden font-sans leading-4 text-black"> <div class="justify-start"> <span class="font-bold"> $2,497.99 <span class="font-medium">at Amazon</span> </span> </div> <div class="justify-start"> <span class="text-sm line-through">$3,999.99</span> <span class="text-sm text-brand-green">Save $1,502.00</span> </div> </div> </a> <a href="https://en.mycoding.id/category/technology" target="_blank" data-commerce="1" target="_blank" rel="nofollow sponsored" data-parent-group="affiliate-link" title="(opens in a new window)" class="flex flex-col py-8 gap-5 border-dotted border-[#CFCFCE] cursor-default no-underline md:flex-row md:gap-y-2 md:py-7" data-ga-click="data-ga-click" data-ga-module="product-list" data-ga-element="offer" data-ga-item="offer-btn" data-ga-label="98-inch TCL QM8L TV" data-ga-position="3" aria-label="98-inch TCL QM8L TV Product Card" x-cloak="x-cloak" x-show="showMore || 2 &lt; 3"> <div class="flex w-full gap-x-5"> <div class="gap-y-6"> <div class="gap-y-1"> <div class="leading-6"> 98-inch TCL QM8L TV </div> </div> <div class="gap-x-4"> <div class="justify-center font-sans leading-4 text-black"> <div class="justify-start"> <span class="font-bold"> $3,997.99 <span class="font-medium">at Amazon</span> </span> </div> <div class="justify-start"> <span class="text-sm line-through">$5,999.99</span> <span class="text-sm text-brand-green">Save $2,002.00</span> </div> </div> Get Deal </div> </div> <div class="order-1"> <img class="m-0 max-h-full max-w-full rounded-md" src="https://lifehacker.com/imagery/articles/01M2T13PFDC5SS7KMDFGAAW6YM/images-1.fill.size_autoxauto.v1789727463.jpg" alt="98-inch TCL QM8L TV" width="auto" height="auto" loading="lazy"> </div> </div> Get Deal <div class="hidden font-sans leading-4 text-black"> <div class="justify-start"> <span class="font-bold"> $3,997.99 <span class="font-medium">at Amazon</span> </span> </div> <div class="justify-start"> <span class="text-sm line-through">$5,999.99</span> <span class="text-sm text-brand-green">Save $2,002.00</span> </div> </div> </a> SEE 0 MORE <svg class="-mt-[2px] inline-block size-3 fill-current text-brand-green"> </svg> </div> <p>The display itself has TCL’s slim “Zero Border” bezel, giving it a clean, minimalist look, but brightness is its additional defining strength—<a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" title="open in a new window" rel="noopener">PCMag measured the 65QM8L</a> at 3,504 nits, below TCL’s advertised highest of 6,000 nits, but motionless brilliant adequate to acquire the tv the publication’s archetypal <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" title="open in a new window" rel="noopener">Lab Award for the brightest television</a> it had tested. That flat of brightness should assistance high-dynamic-range highlights remain out and keep the image apparent in a sunlit room, an area anywhere Mini-LED televisions mostly have an advantage complete <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" title="open in a new window" rel="noopener">OLED models</a>. (You can study additional in our guide to the<a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank"> differences between OLED and QLED displays</a>.) TCL pairs that brightness alongside up to 4,000 local dimming zones and Halo Control, which limits the glow about brilliant objects and bring the difference nearer to OLED. CNET was likewise impressed, giving the QM8L an 8.8 out of 10 and naming it the <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" title="open in a new window" rel="noopener">best tv its reviewer had tested in 2026</a>.</p><div class="py-0" data-ga-click data-ga-template="Deals" data-ga-module="openweb_widget" data-ga-element="openweb_scroll" data-ga-item="openweb_scroll_midpage" x-data="&#039;, e); } } }" x-init="fetchCommentsCount()" x-cloak> <div class="absolute top-1/2 hidden w-full -translate-y-1/2 border-t-[1.5px] border-dashed border-black sm:block"></div> <div class="relative flex justify-center"> <div class="flex max-w-fit items-center gap-x-3 bg-white px-5"> <div class="relative"> <span class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 font-akshar text-sm font-medium text-black" aria-live="polite" x-show="hasComments" x-text="commentsCount"></span> <svg class="h-8 w-8 text-black" role="img" aria-hidden="true"> </svg> </div> <span class="text-sm font-medium text-black"> What do you think so far? </span> </div> </div> </div> <p>Gaming assistance is likewise comprehensive, alongside a native 144Hz refresh rate, changeable refresh rate, and four HDMI 2.1 ports capable of accepting 4K video at 144Hz. Beyond gaming, Dolby Vision and HDR10+ shield movies and streaming, during Google TV brings together your apps and adds Gemini sound controls. As for audio, its Bang &amp; Olufsen audio scheme plant alongside Dolby Atmos and produces improved audio than many built-in TV speakers. While it cannot provision you the profound bass or directional effects of a dedicated surround-sound system, it may motionless be adequate for person who wants to evade adding a soundbar immediately.</p><hr><div class="left-1/2 md:w-[780px] md:max-w-max md:-translate-x-1/2" x-data=" false }"> <div class="text-left"> <div class="rounded-tl-none"> <div class="rounded-tl-none"> <span class="text-2xl">Our Best Editor-Vetted Tech Deals Right Now</span> <div class="text-base"> <div x-show="1 || showAll"> <a href="https://en.mycoding.id/category/technology" target="_blank" data-commerce="1" target="_blank" rel="nofollow sponsored" data-parent-group="affiliate-link" title="(opens in a new window)" class="text-brand-green-700" data-ga-click="data-ga-click" data-ga-item="offer-group-item" data-ga-label="Apple AirPods Pro 3 Noise Cancelling Heart Rate Wireless Earbuds" data-ga-element="offer" data-ga-module="offer-group" data-ga-position="1"> Apple AirPods Pro 3 Noise Cancelling Heart Rate Wireless Earbuds </a> <span class="text-black"> — <span class="font-bold">$199.00</span> <span class="!text-sm"> (List Price $249.00) </span> </span> </div> <div x-show="1 || showAll"> <a href="https://en.mycoding.id/category/technology" target="_blank" data-commerce="1" target="_blank" rel="nofollow sponsored" data-parent-group="affiliate-link" title="(opens in a new window)" class="text-brand-green-700" data-ga-click="data-ga-click" data-ga-item="offer-group-item" data-ga-label='Apple iPad 11&quot; 128GB Wi-Fi Retina Tablet (Silver, 2025 Release)' data-ga-element="offer" data-ga-module="offer-group" data-ga-position="2"> Apple iPad 11" A16 128GB Wi-Fi Tablet (Silver, 2025) </a> <span class="text-black"> — <span class="font-bold">$399.99</span> <span class="!text-sm"> (List Price $449.00) </span> </span> </div> <div x-show="1 || showAll"> <a href="https://en.mycoding.id/category/technology" target="_blank" data-commerce="1" target="_blank" rel="nofollow sponsored" data-parent-group="affiliate-link" title="(opens in a new window)" class="text-brand-green-700" data-ga-click="data-ga-click" data-ga-item="offer-group-item" data-ga-label="Sony WH-1000XM5 Wireless Noise Canceling Headphones" data-ga-element="offer" data-ga-module="offer-group" data-ga-position="3"> Sony WH-1000XM5 </a> <span class="text-black"> — <span class="font-bold">$298.00</span> <span class="!text-sm"> (List Price $399.99) </span> </span> </div> <div x-show="1 || showAll"> <a href="https://en.mycoding.id/category/technology" target="_blank" data-commerce="1" target="_blank" rel="nofollow sponsored" data-parent-group="affiliate-link" title="(opens in a new window)" class="text-brand-green-700" data-ga-click="data-ga-click" data-ga-item="offer-group-item" data-ga-label="Apple Watch Ultra 4 (GPS + Cellular, 49mm, Black Titanium)" data-ga-element="offer" data-ga-module="offer-group" data-ga-position="4"> Apple Watch Ultra 4 (GPS + Cellular, 49mm, Black Titanium) </a> <span class="text-black"> — <span class="font-bold"></span> <span class="!text-sm"> (List Price $799.00) </span> </span> </div> <div x-show="1 || showAll"> <a href="https://en.mycoding.id/category/technology" target="_blank" data-commerce="1" target="_blank" rel="nofollow sponsored" data-parent-group="affiliate-link" title="(opens in a new window)" class="text-brand-green-700" data-ga-click="data-ga-click" data-ga-item="offer-group-item" data-ga-label="Apple Watch Series 12 (GPS, 42mm, S/M Black Sport Band)" data-ga-element="offer" data-ga-module="offer-group" data-ga-position="5"> Apple Watch Series 12 </a> <span class="text-black"> — <span class="font-bold"></span> <span class="!text-sm"> (List Price $389.99) </span> </span> </div> </div> </div> </div> <div class="px-6"> <span class="text-sm">Deals are selected by our commerce team</span> </div> </div> </div> <div class="leading-normal prose-sm mt-4 line-clamp-2"> <p></p><p>Pradershika Sharma is a tech deals author for Lifehacker. </p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/this-highly-rated-tcl-mini-led-tv-is-1-000-off-right-now-68703</guid> <pubDate>Fri, 18 Sep 2026 13:30:00 +0700</pubDate> <author><![CDATA[support@mycoding.id (Pradershika Sharma)]]></author> </item> <item> <title><![CDATA[I don't akin passkeys]]></title> <description><![CDATA[I don't akin passkeys. Comments]]></description> <media:thumbnail url="https://hawksley.dev/og/blog/i-dont-like-passkeys.jpg?v=7"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/i-don-t-akin-passkeys-68700</link> <content:encoded><![CDATA[<div data-astro-cid-ymihodss><p>For the former few years, the tech industry has kept pushing passkeys as the supreme resolution to logging in. Many Big Tech companies &ldquo;helpfully&rdquo; communicate you all period you sign in how much easier and effortless passkeys are. The lone way to create them halt is either to concede and set up a passkey or dig into the settings to discover the off-switch.</p><p><source srcset="/_astro/google-skip-password.D2Fs9F0z_ZnVzks.avif 360w, /_astro/google-skip-password.D2Fs9F0z_ZGatV1.avif 720w, /_astro/google-skip-password.D2Fs9F0z_jzwse.avif 870w" type="image/avif" sizes=" 768px) 720px, calc(100vw - 3rem)"><img alt="Google’s Skip password whenever imaginable setting" decoding="sync" fetchpriority="high" height="425" src="https://hawksley.dev/blog/i-dont-like-passkeys/google-skip-password.png" width="870"></source></p><p>Google goes as far as to name the environment <a href="https://en.mycoding.id/category/technology" target="_blank" otnxjlj rel="noopener noreferrer" target="_blank"><span otnxjlj>&ldquo;Skip password whenever possible&rdquo;<span otnxjlj> (opens in a new tab)</span></span><svg aria-hidden="true" height="14" width="14" otnxjlj></svg></a>, and Microsoft advertises that you should <a href="https://en.mycoding.id/category/technology" target="_blank" otnxjlj rel="noopener noreferrer" target="_blank"><span otnxjlj>make your document passwordless<span otnxjlj> (opens in a new tab)</span></span><svg aria-hidden="true" height="14" width="14" otnxjlj></svg></a>.</p><p>Passkeys are a awesome technology. Since they are border to the location they are created for, they cannot be phished by a hacker&rsquo;s counterfeit login screen. If a location suffers a data breach, passkeys are asymmetric and cannot be restored from the server-side details.</p><p>This leads to passkeys being the ideal fit for a company environment, but a mediocre fit for individual security. To an individual, the top risks are alternatively imperishable document lockout, automated document bans, and equipment loss. By using passkeys, you acquire improved safety against man-in-the-middle attacks but visage the higher probability circumstance of losing admission to your accounts.</p><p>Phishing through the norm login stream is eliminated by passkeys, but it creates a false awareness of security. An account&rsquo;s safety is motionless dictated by the weakest improvement method: SMS, email links, safety questions, and so on. If these improvement methods aren&rsquo;t enabled, afterward the hazard of imperishable lockout remains for the user.</p><h2 id="hardware-keys">Hardware keys</h2><p>By design, you cannot create a backup of passkeys on a hardware key: passkeys can lone be added or deleted but never moved. Instead, you need to acquisition 2-3 hardware keys and enroll all key for all site. This can quickly get costly and doesn&rsquo;t measure fine as the figure of accounts starts to grow.</p><p>Hardware keys assistance discoverable credentials, anywhere websites can query for your username alternatively of you typing it in. These are becoming increasingly famous amongst website developers, yet have limits of <a href="https://en.mycoding.id/category/technology" target="_blank" otnxjlj rel="noopener noreferrer" target="_blank"><span otnxjlj>25-100 accounts<span otnxjlj> (opens in a new tab)</span></span><svg aria-hidden="true" height="14" width="14" otnxjlj></svg></a>per hardware key, and top of the row keys can have up to 300. Once you exceed the limit, you must either delete several accounts or you have to buy another set of hardware keys.</p><h2 id="synced-passkeys">Synced passkeys</h2><p>Both Apple and Google desire your character anchored to their functioning systems. The &ldquo;happy path&rdquo; on their devices is to use their synced passkey administration tied to your Apple or Google account. If their automated systems decide one day to <a href="https://en.mycoding.id/category/technology" target="_blank" otnxjlj rel="noopener noreferrer" target="_blank"><span otnxjlj>ban your account<span otnxjlj> (opens in a new tab)</span></span><svg aria-hidden="true" height="14" width="14" otnxjlj></svg></a>, you irreversibly endure admission to all your passkeys used throughout all third-party accounts too.</p><p>The FIDO alliance has been operating to enhance interoperability and create it easier to export passkeys, but the cognition is motionless fragmented and inconsistent throughout providers. This is set to enhance complete the coming years, but currently it is too immature to depend on. Compare alongside a password, which is fair a cord you can effortlessly export by hand if necessary.</p><h2 id="third-party-synced-passkeys">Third-party synced passkeys</h2><p>When storing passkeys in a password director akin <a href="https://en.mycoding.id/category/technology" target="_blank" otnxjlj rel="noopener noreferrer" target="_blank"><span otnxjlj>Bitwarden<span otnxjlj> (opens in a new tab)</span></span><svg aria-hidden="true" height="14" width="14" otnxjlj></svg></a>or <a href="https://en.mycoding.id/category/technology" target="_blank" otnxjlj rel="noopener noreferrer" target="_blank"><span otnxjlj>KeePassXC<span otnxjlj> (opens in a new tab)</span></span><svg aria-hidden="true" height="14" width="14" otnxjlj></svg></a>, you end up fighting the platform. Although functioning systems have lately introduced APIs (like Android&rsquo;s <a href="https://en.mycoding.id/category/technology" target="_blank" otnxjlj rel="noopener noreferrer" target="_blank"><span otnxjlj>Credential Manager<span otnxjlj> (opens in a new tab)</span></span><svg aria-hidden="true" height="14" width="14" otnxjlj></svg></a>) for third-party tools to hook into, the cognition remains fragmented and lacks the decades of UX polish towards password autofill. Autofill exterior the browser and inner native applications remains particularly inconsistent. In the future, I accept third-party passkeys volition be the way forward, but we are not there yet.</p><h2 id="when-passkeys-dont-work">When passkeys don&rsquo;t work</h2><p>Logging into accounts on devices you own is the ideal circumstance for passkeys. When you have to grip a colleague&rsquo;s computer, it gets much additional inconvenient. You could plug in a hardware key, but you don&rsquo;t continually have admission to the ports. You could sign in and use a synced passkey, but that involves trusting the device to not leak all of your another passkeys. The final choice is to use <a href="https://en.mycoding.id/category/technology" target="_blank" otnxjlj rel="noopener noreferrer" target="_blank"><span otnxjlj>&ldquo;Hybrid Transport&rdquo;<span otnxjlj> (opens in a new tab)</span></span><svg aria-hidden="true" height="14" width="14" otnxjlj></svg></a>, anywhere you scan a QR code and nexus via Bluetooth simultaneously to the computer. Whilst this choice is safe and plant in theory, actuality is plagued alongside edge-cases anywhere connections neglect or Bluetooth is straight-up unsupported.</p><h2 id="passkeys-arent-ready-yet">Passkeys aren&rsquo;t prepared yet</h2><p>I accept endeavor users have fine logic to use passkeys, but the ecosystem isn&rsquo;t mature adequate yet for individuals.</p><p>Whilst TOTP codes have known phishing vulnerabilities, the improvement and lockout risks of passkeys stance a greater day-to-day hazard to most group than an <a href="https://en.mycoding.id/category/technology" target="_blank" otnxjlj rel="noopener noreferrer" target="_blank"><span otnxjlj>AiTM proxy<span otnxjlj> (opens in a new tab)</span></span><svg aria-hidden="true" height="14" width="14" otnxjlj></svg></a>. A blend of randomly generated passwords stored inner a third-party password manager, paired alongside an autonomous TOTP app, gives authority to the person without giving up the elasticity of plain text. For users who earlier reused passwords throughout all their sites, passkeys are a huge step-up. For everybody else, it is currently a stage back.</p></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/i-don-t-akin-passkeys-68700</guid> <pubDate>Fri, 18 Sep 2026 13:06:50 +0700</pubDate> <author><![CDATA[support@mycoding.id (Putri Silvia)]]></author> </item> <item> <title><![CDATA[Bend 2 and the Vibe-Coding Trap]]></title> <description><![CDATA[Bend 2 and the Vibe-Coding Trap. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/bend-2-and-the-vibe-coding-trap-68701</link> <content:encoded><![CDATA[<div> <p>September 18, 2026 </p> <p><em>[Bend fair serves as a helpful example of my broad item concerning vibe-coding as it is recent, high-profile, and has aspects that create it uncomplicated to use as an example. I don&rsquo;t cognize item concerning the author&rsquo;s former alongside designing languages or if they really did regard the tradeoffs below and made what I think is a mediocre choice. Feel liberated to substitute &ldquo;the author&rdquo; below alongside &ldquo;a hypothetical author who could have created the identical thing&rdquo;.]</em></p> <p><a href="https://en.mycoding.id/category/technology" target="_blank">Bend 2</a> is being thrown as a tongue for the AI coding era: humans compose &ldquo;laws&rdquo;, AI writes implementations and proofs, and the compiler checks that the proofs are sound. That all appears fairly notable and I can see why person would desire a tongue that does that. There are really a few important problems alongside this idea; however, that&rsquo;s not what this part about. Instead I desire to conversation concerning how the Bend itself seems to have fallen in to a average trap alongside vibe-coding that I don&rsquo;t see mentioned much.</p> <p>Let&rsquo;s commencement alongside a baseline of what Bend requires the developer to compose for its demo on the residence page:</p> <p><a href="https://en.mycoding.id/category/technology" target="_blank">https://github.com/bendlang/bend/blob/main/demos/app_win_is_bug_2d/LAWS.bend</a></p> <p>I won&rsquo;t reproduce it current since the code isn&rsquo;t too important. What is crucial for this part is that it&rsquo;s fairly a bit of code. It&rsquo;s 58 lines of code fair to province that the participant can never contact the emblem or win the game. There&rsquo;s additionally another problems in that the LLM can redefine the Game subprograms to do anything; however, that&rsquo;s formerly again not the item of the article.</p> <p>Next up lets appearance at what the LLM penning the code for this program needs to compose in command to demonstrate the &ldquo;laws&rdquo;:</p> <p><a href="https://en.mycoding.id/category/technology" target="_blank">https://github.com/bendlang/bend/blob/main/demos/app_win_is_bug_2d/PROOF.bend</a></p> <p>That&rsquo;s a lot. 442 lines of code to demonstrate those uncomplicated properties.</p> <p>So what&rsquo;s the issue I have alongside this? Why am I calling it a vibe-coding trap?</p> <p>The issue is that vibe coding makes it imaginable to build a significant resolution before learning adequate concerning the issue to recognise that a much improved resolution exists. A developer can create an complete tongue and compiler during missing an method that an introductory study of the site would have put immediately in forefront of them.</p> <p>The site in inquiry is ceremonial verification. It&rsquo;s notable that those two words appear nowhere on Bend&rsquo;s webpage or in its codebase. The developer has built an complete tongue about a site apparently without realising that stated site exists.</p> <p>To plainly display why this is a problem, let&rsquo;s recreate the identical program that Bend uses as a demo in SPARK, an open origin tongue and compiler for ceremonial verification. To be fair to Bend, I entirely vibe-coded this, I fair told a LLM to recreate the demo in SPARK alongside no additional guidance:</p> <div><pre tabindex="0"><span><span><span>package</span> <span>Game</span> <span>with</span> <span>SPARK_Mode</span> <span>is</span> </span></span><span><span> <span>subtype</span> <span>Column</span> <span>is</span> <span>Integer</span> <span>range</span> <span>0</span> <span>..</span> <span>11</span><span>;</span> </span></span><span><span> <span>subtype</span> <span>Row</span> <span>is</span> <span>Integer</span> <span>range</span> <span>0</span> <span>..</span> <span>7</span><span>;</span> </span></span><span><span> <span>type</span> <span>State</span> <span>is</span> <span>record</span> </span></span><span><span> <span>X</span> <span>:</span> <span>Column</span><span>;</span> </span></span><span><span> <span>Y</span> <span>:</span> <span>Row</span><span>;</span> </span></span><span><span> <span>Won</span> <span>:</span> <span>Boolean</span><span>;</span> </span></span><span><span> <span>end record</span><span>;</span> </span></span><span><span> <span>Start</span> <span>:</span> <span>constant</span> <span>State</span> <span>:=</span> <span>(</span><span>8</span><span>,</span> <span>5</span><span>,</span> <span>False</span><span>);</span> </span></span><span><span> </span></span><span><span> <span>function</span> <span>Wall</span> <span>(</span><span>X</span> <span>: </span><span>Column</span><span>;</span> <span>Y</span> <span>: </span><span>Row</span><span>)</span> <span>return</span> <span>Boolean</span> <span>is</span> </span></span><span><span> <span>(((</span><span>X</span> <span>=</span> <span>3</span> <span>or</span> <span>X</span> <span>=</span> <span>11</span><span>)</span> <span>and</span> <span>Y</span> <span>&lt;=</span> <span>3</span><span>)</span> </span></span><span><span> <span>or</span> <span>((</span><span>Y</span> <span>=</span> <span>3</span> <span>or</span> <span>Y</span> <span>=</span> <span>7</span><span>)</span> <span>and</span> <span>X</span> <span>&lt;=</span> <span>3</span><span>));</span> </span></span><span><span> <span>function</span> <span>Cell</span> <span>(</span><span>X</span> <span>: </span><span>Column</span><span>;</span> <span>Y</span> <span>: </span><span>Row</span><span>)</span> <span>return</span> <span>Character</span> <span>is</span> </span></span><span><span> <span>(</span><span>if</span> <span>Wall</span> <span>(</span><span>X</span><span>,</span> <span>Y</span><span>)</span> <span>then</span> <span>'#'</span> <span>elsif</span> <span>X</span> <span>=</span> <span>1</span> <span>and</span> <span>Y</span> <span>=</span> <span>1</span> <span>then</span> <span>'</span><span>F</span><span>'</span> <span>else</span> <span>'.'</span><span>);</span> </span></span><span><span> </span></span><span><span> <span>-- Inductive invariant: exterior the sealed room, off walls, not won. </span></span></span><span><span><span></span> <span>function</span> <span>Safe</span> <span>(</span><span>G</span> <span>: </span><span>State</span><span>)</span> <span>return</span> <span>Boolean</span> <span>is</span> </span></span><span><span> <span>((</span><span>G</span><span>.</span><span>X</span> <span>&gt;</span> <span>2</span> <span>or</span> <span>G</span><span>.</span><span>Y</span> <span>&gt;</span> <span>2</span><span>)</span> <span>and</span> <span>not</span> <span>Wall</span> <span>(</span><span>G</span><span>.</span><span>X</span><span>,</span> <span>G</span><span>.</span><span>Y</span><span>)</span> <span>and</span> <span>not</span> <span>G</span><span>.</span><span>Won</span><span>)</span> </span></span><span><span> <span>with</span> <span>Ghost</span><span>;</span> </span></span><span><span> <span>procedure</span> <span>Step</span> <span>(</span><span>G</span> <span>: </span><span>in</span> <span>out</span> <span>State</span><span>;</span> <span>Key</span> <span>: </span><span>Character</span><span>)</span> </span></span><span><span> <span>with</span> <span>Post</span> <span>=&gt;</span> <span>(</span><span>if</span> <span>Safe</span> <span>(</span><span>G</span><span>'</span><span>Old</span><span>)</span> <span>then</span> <span>Safe</span> <span>(</span><span>G</span><span>));</span> </span></span><span><span> </span></span><span><span> <span>-- Both Bend laws, including the genuine division drawn by the terminal. </span></span></span><span><span><span></span> <span>function</span> <span>Replay</span> <span>(</span><span>Keys</span> <span>: </span><span>String</span><span>)</span> <span>return</span> <span>State</span> </span></span><span><span> <span>with</span> <span>Post</span> <span>=&gt;</span> <span>not</span> <span>Replay</span><span>'</span><span>Result</span><span>.</span><span>Won</span> </span></span><span><span> <span>and</span> <span>Cell</span> <span>(</span><span>Replay</span><span>'</span><span>Result</span><span>.</span><span>X</span><span>,</span> <span>Replay</span><span>'</span><span>Result</span><span>.</span><span>Y</span><span>)</span> <span>/=</span> <span>'</span><span>F</span><span>';</span> </span></span><span><span><span>end</span> <span>Game</span><span>;</span> </span></span><span><span> </span></span><span><span><span>------------------------------ </span></span></span><span><span><span></span> </span></span><span><span><span>package</span> <span>body</span> <span>Game</span> <span>with</span> <span>SPARK_Mode</span> <span>is</span> </span></span><span><span> <span>procedure</span> <span>Step</span> <span>(</span><span>G</span> <span>: </span><span>in</span> <span>out</span> <span>State</span><span>;</span> <span>Key</span> <span>: </span><span>Character</span><span>)</span> <span>is</span> </span></span><span><span> <span>X</span> <span>:</span> <span>Column</span> <span>:=</span> <span>G</span><span>.</span><span>X</span><span>;</span> </span></span><span><span> <span>Y</span> <span>:</span> <span>Row</span> <span>:=</span> <span>G</span><span>.</span><span>Y</span><span>;</span> </span></span><span><span> <span>begin</span> </span></span><span><span> <span>case</span> <span>Key</span> <span>is</span> </span></span><span><span> <span>when</span> <span>'</span><span>w</span><span>'</span> <span>=&gt;</span> <span>Y</span> <span>:=</span> <span>(</span><span>Y</span> <span>-</span> <span>1</span><span>)</span> <span>mod</span> <span>8</span><span>;</span> </span></span><span><span> <span>when</span> <span>'</span><span>s</span><span>'</span> <span>=&gt;</span> <span>Y</span> <span>:=</span> <span>(</span><span>Y</span> <span>+</span> <span>1</span><span>)</span> <span>mod</span> <span>8</span><span>;</span> </span></span><span><span> <span>when</span> <span>'</span><span>a</span><span>'</span> <span>=&gt;</span> <span>X</span> <span>:=</span> <span>(</span><span>X</span> <span>-</span> <span>1</span><span>)</span> <span>mod</span> <span>12</span><span>;</span> </span></span><span><span> <span>when</span> <span>'</span><span>d</span><span>'</span> <span>=&gt;</span> <span>X</span> <span>:=</span> <span>(</span><span>X</span> <span>+</span> <span>1</span><span>)</span> <span>mod</span> <span>12</span><span>;</span> </span></span><span><span> <span>when</span> <span>others</span> <span>=&gt;</span> <span>return</span><span>;</span> </span></span><span><span> <span>end</span> <span>case</span><span>;</span> </span></span><span><span> <span>if</span> <span>not</span> <span>Wall</span> <span>(</span><span>X</span><span>,</span> <span>Y</span><span>)</span> <span>then</span> </span></span><span><span> <span>G</span> <span>:=</span> <span>(</span><span>X</span><span>,</span> <span>Y</span><span>,</span> <span>G</span><span>.</span><span>Won</span> <span>or</span> <span>Cell</span> <span>(</span><span>X</span><span>,</span> <span>Y</span><span>)</span> <span>=</span> <span>'</span><span>F</span><span>');</span> </span></span><span><span> <span>end</span> <span>if</span><span>;</span> </span></span><span><span> <span>end</span> <span>Step</span><span>;</span> </span></span><span><span> </span></span><span><span> <span>function</span> <span>Replay</span> <span>(</span><span>Keys</span> <span>: </span><span>String</span><span>)</span> <span>return</span> <span>State</span> <span>is</span> </span></span><span><span> <span>G</span> <span>:</span> <span>State</span> <span>:=</span> <span>Start</span><span>;</span> </span></span><span><span> <span>begin</span> </span></span><span><span> <span>for</span> <span>Key</span> <span>of</span> <span>Keys</span> <span>loop</span> </span></span><span><span> <span>pragma</span> <span>Loop_Invariant</span> <span>(</span><span>Safe</span> <span>(</span><span>G</span><span>));</span> </span></span><span><span> <span>Step</span> <span>(</span><span>G</span><span>,</span> <span>Key</span><span>);</span> </span></span><span><span> <span>end</span> <span>loop</span><span>;</span> </span></span><span><span> <span>return</span> <span>G</span><span>;</span> </span></span><span><span> <span>end</span> <span>Replay</span><span>;</span> </span></span><span><span><span>end</span> <span>Game</span><span>;</span> </span></span><span><span> </span></span><span><span><span>------------------------------ </span></span></span><span><span><span></span> </span></span><span><span><span>with</span> <span>Ada.Text_IO</span><span>;</span> <span>use</span> <span>Ada.Text_IO</span><span>;</span> </span></span><span><span><span>with</span> <span>Game</span><span>;</span> <span>use</span> <span>Game</span><span>;</span> </span></span><span><span> </span></span><span><span><span>procedure</span> <span>Main</span> <span>is</span> </span></span><span><span> <span>G</span> <span>:</span> <span>State</span> <span>:=</span> <span>Start</span><span>;</span> </span></span><span><span><span>begin</span> </span></span><span><span> <span>Put_Line</span> <span>(</span><span>"Winning is impossible. WASD + Enter to move; q + Enter to quit."</span><span>);</span> </span></span><span><span> <span>loop</span> </span></span><span><span> <span>for</span> <span>Y</span> <span>in</span> <span>Row</span> <span>loop</span> </span></span><span><span> <span>for</span> <span>X</span> <span>in</span> <span>Column</span> <span>loop</span> </span></span><span><span> <span>Put</span> <span>(</span><span>if</span> <span>X</span> <span>=</span> <span>G</span><span>.</span><span>X</span> <span>and</span> <span>Y</span> <span>=</span> <span>G</span><span>.</span><span>Y</span> <span>then</span> <span>'</span><span>P</span><span>'</span> <span>else</span> <span>Cell</span> <span>(</span><span>X</span><span>,</span> <span>Y</span><span>));</span> </span></span><span><span> <span>end</span> <span>loop</span><span>;</span> </span></span><span><span> <span>New_Line</span><span>;</span> </span></span><span><span> <span>end</span> <span>loop</span><span>;</span> </span></span><span><span> <span>Put_Line</span> <span>(</span><span>if</span> <span>G</span><span>.</span><span>Won</span> <span>then</span> <span>"WON (this have to be unreachable)"</span> <span>else</span> <span>"still not won"</span><span>);</span> </span></span><span><span> <span>exit</span> <span>when</span> <span>End_Of_File</span><span>;</span> </span></span><span><span> <span>declare</span> </span></span><span><span> <span>Keys</span> <span>:</span> <span>constant</span> <span>String</span> <span>:=</span> <span>Get_Line</span><span>;</span> </span></span><span><span> <span>begin</span> </span></span><span><span> <span>exit</span> <span>when</span> <span>Keys</span> <span>=</span> <span>"q"</span><span>;</span> </span></span><span><span> <span>for</span> <span>Key</span> <span>of</span> <span>Keys</span> <span>loop</span> </span></span><span><span> <span>Step</span> <span>(</span><span>G</span><span>,</span> <span>Key</span><span>);</span> </span></span><span><span> <span>end</span> <span>loop</span><span>;</span> </span></span><span><span> <span>end</span><span>;</span> </span></span><span><span> <span>end</span> <span>loop</span><span>;</span> </span></span><span><span><span>end</span> <span>Main</span><span>;</span> </span></span></pre></div><p>So now we have the identical laws defined as Bend, what&rsquo;s the item I&rsquo;m trying to create here?</p> <p>Where this differs from Bend is that what we have supplied current is everything required to demonstrate the correctness of the program, without having a LLM discarded period and tokens on construction up a 442 row evidence from archetypal principles. We can run GNATprove and get:</p> <pre tabindex="0">Success: all checks proved (12 checks). </pre><p>The author of Bend has entirely missed that this is the current norm in the site of ceremonial verification, if they equal cognize that this site exists at all. They have alternatively arrive up alongside this entire scheme requiring verbose details and equal additional verbose proofs. A small investigation before vibe-coding an complete tongue and compiler could have substantially improved the outcome since the author would have known what to ask for.</p> <p>This example matters beyond Bend, vibe-coding makes it makes it far too uncomplicated to execute a scheme that&rsquo;s horribly damaged or decades rearward the current province of the art since you can immediately get a outcome without always having to do any research. If you ask a LLM for a tongue anywhere it&rsquo;s imaginable to demonstrate that a function is formally accurate by construction up a evidence from essential principles afterward it volition happily do so, it volition never halt to propose to you that computers can already build complex proofs without the need for a LLM and eliminate 99% of the work. It volition never inform you that what you&rsquo;re construction already mostly exists as activity that you can build on.</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/bend-2-and-the-vibe-coding-trap-68701</guid> <pubDate>Fri, 18 Sep 2026 13:03:55 +0700</pubDate> <author><![CDATA[support@mycoding.id (Putri Silvia)]]></author> </item> <item> <title><![CDATA[Cekura (YC F24) Is Hiring]]></title> <description><![CDATA[Cekura (YC F24) Is Hiring. Comments]]></description> <media:thumbnail url="https://bookface-images.s3.amazonaws.com/logos/7aa5a73bb812b9f6551836dc55f9ea786a2c5179.png?1741758964"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/cekura-yc-f24-is-hiring-68702</link> <content:encoded><![CDATA[<div><div><h2>About Cekura</h2> <p>Cekura is construction the infrastructure for <strong>self-improving conversational agents</strong>.</p> <p>Teams use Cekura to test, monitor, debug, and enhance AI agents throughout voice, chat, SMS, phone, and web. We assistance them capture failures in latency, barge-in, tool calls, hallucinations, instruction-following, regressions, and manufacturing workflows.</p> <p>We&rsquo;re YC F24, expanding fast, backed by top investors, and operating alongside teams deploying AI agents in the genuine world.</p> <h2>About the Role</h2> <p>We&rsquo;re hiring a <strong>Forward Deployed Engineer</strong> to activity immediately alongside specialized customers and assistance them get value from Cekura.</p> <p>You&rsquo;ll sit at the intersection of customers, product, engineering, and GTM. Your job is to deeply comprehend how customers build agents, assistance them create self-improving loops alongside Cekura, and rotate those learnings into improved merchandise and improved process.</p> <h2>What You&rsquo;ll Do</h2> <p><strong>Embed deeply alongside customers</strong><br> Work alongside customers to comprehend their delegate workflows, onboard them well, and assistance them build uninterrupted loops throughout testing, monitoring, debugging, and improvement.</p> <p><strong>Automate merchandise insights</strong><br> Build systems and workflows that display how customers use Cekura, anywhere they get value, anywhere they get stuck, and anywhere we should assistance next.</p> <p><strong>Drive merchandise direction</strong><br> Turn client learnings into apparent merchandise feedback, RFCs, and roadmap input. Help us decide what to build next.</p> <p><strong>Build the FDE org</strong><br> Create the playbooks, processes, and standards for how FDE plant at Cekura.</p> <h2>About You</h2> <ul> <li>You attention deeply concerning customers and measurable outcomes.</li> <li>You are specialized adequate to peruse API docs, inspect payloads, debug logs, and logic concerning systems.</li> <li>You&rsquo;re comfortable alongside APIs, webhooks, essential SQL, and Python or JavaScript.</li> <li>You communicate plainly alongside the two engineers and executives.</li> <li>You akin ambiguity, move fast, and create construction from scratch.</li> <li>You use data to comprehend adoption, risk, value, and impact.</li> <li>Bonus points - if you are an ex-founder or aspire to be a originator in the future.</li> </ul> <h2>Minimum Qualifications</h2> <ul> <li>2+ years in a specialized function at a dev-tool, infra, SaaS, or AI company.</li> <li>Experience operating alongside APIs, logs, dashboards, and client debugging.</li> <li>Comfort alongside essential SQL and one of Python or JavaScript.</li> <li>Strong written and verbal communication.</li> </ul> <h2>Nice to Have</h2> <ul> <li>Early or founding FDE experience</li> <li>Experience alongside LLMs, AI agents, sound AI, observability, testing, or evals.</li> <li>Familiarity alongside tools akin Twilio, SIP, WebRTC, Vapi, Retell, LiveKit, or Pipecat.</li> <li>Experience operating immediately alongside specialized founders or engineering teams.</li> </ul> <h2>This Might Not Be for You If</h2> <ul> <li>You need rigid processes or dense structure.</li> <li>You favor clean association administration without specialized depth.</li> <li>You don&rsquo;t bask messy client debugging.</li> <li>You desire a narrow, plainly defined role.</li> <li>You don&rsquo;t desire to activity in-person in SF</li> </ul> <h2>Why Cekura</h2> <ul> <li>Build the basis of the FDE org.</li> <li>Work immediately alongside founders and a extremely specialized team.</li> <li>Help define infrastructure for self-improving AI agents.</li> <li>Meaningful equity, rivalrous compensation, and accelerated growth.</li> <li>Medical, dental, vision, squad lunches, and dinners.</li> </ul> </div></div><div><p>Cekura is a Y Combinator&ndash;backed startup redefining AI sound delegate reliability. Founded by IIT Bombay alumni alongside investigation credentials from ETH Zurich and proven achievement in high-stakes trading, our squad built Cekura to resolve the cumbersome, error-prone nature of manual sound delegate testing.</p> <p>We automate the evaluation and observability of AI sound agents by simulating thousands of realistic, real-world conversational scenarios&mdash;from ordering food and booking appointments to conducting interviews. Our phase leverages tradition and AI-generated datasets, detailed workflows, and energetic persona simulations to reveal border cases and provision actionable insights. Real-time monitoring, thorough logs, and instant alerting justify that all call is optimized and production-ready.</p> <p>In a market quickly expanding alongside thousands of sound agents, Cekura stands out by guaranteeing dependable performance, reducing time-to-market, and minimizing costly manufacturing errors. We empower teams to display reliability before deployment, making it easier to build rely alongside clients and users.</p> <p>Join us in shaping the forthcoming of sound technology. Learn additional at <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank">cekura.ai</a>.</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/cekura-yc-f24-is-hiring-68702</guid> <pubDate>Fri, 18 Sep 2026 13:00:10 +0700</pubDate> <author><![CDATA[support@mycoding.id (Putri Silvia)]]></author> </item> <item> <title><![CDATA[Warren Buffett Steps Down as Berkshire Chairman, Names Son to Replace Him]]></title> <description><![CDATA[Warren Buffett Steps Down as Berkshire Chairman, Names Son to Replace Him. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/warren-buffett-steps-down-as-berkshire-chairman-names-son-to-replace-him-68692</link> <content:encoded><![CDATA[<div><p id="cmsg">Please allow JS and disable any ad blocker</p></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/warren-buffett-steps-down-as-berkshire-chairman-names-son-to-replace-him-68692</guid> <pubDate>Fri, 18 Sep 2026 12:01:44 +0700</pubDate> <author><![CDATA[support@mycoding.id (Riki Setiawan)]]></author> </item> <item> <title><![CDATA[ZCode, the GLM coding agent, silently uploads your Git history]]></title> <description><![CDATA[ZCode, the GLM coding agent, silently uploads your Git history. Comments]]></description> <media:thumbnail url="https://tokenstead.ai/og/guides/zcode-silent-git-history-upload.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/zcode-the-glm-coding-agent-silently-uploads-your-git-history-68693</link> <content:encoded><![CDATA[<p>On September 18, 2026, a developer going by ferstar published a reverse-engineering walkthrough of ZCode, the AI coding desktop app from Z.ai, the Beijing-headquartered business rearward the GLM family of open-weight models - the identical models operating on local rigs all complete the local-AI community, including GLM-5.3-Flash, tracked on this site. The finding says worse than most privacy scandals: whenever the app is logged in, it silently packages the user&rsquo;s complete workspace - complete .git history, LFS asset cache, reflogs, and earth app configs - encrypts it, and uploads the archive to Aliyun OSS, Alibaba Cloud&rsquo;s entity storage. The researcher&rsquo;s own capture: a 313MB encrypted archive built from a 345MB business workspace, 42,411 files, alongside 564 unsuccessful upload attempts logged during the investigator investigated.</p> <p>If you run GLM locally, the business that publishes the weights is not the identical item as the runtime a developer power use on top of them - and the thread reply showed the disturbance is live: multiple commenters assumed ZCode was open origin since GLM is. It is not. The weights are open; the harness is closed, and it is Z.ai&rsquo;s harness for its own models, thrown as first-party integration no third-party publishing company can match.</p> <p>The narrative dispersed in the two languages inside hours: ferstar&rsquo;s article passed 276,000 views, and FeiZ&rsquo;s Chinese-language vigilant thread (&ldquo;disable ZCode for now&hellip; it&rsquo;s motionless finest to use open-source agents as much as possible&rdquo;) drew another 63,800. The most quoted reply came from Petri Kuittinen, whose own AI delegate is open originated alongside safety documentation: &ldquo;My direction has been and continues to be: do NOT rely closed origin AI harnesses.&rdquo;</p> <p>The item that turned a doubtful directory into a story: the encryption key. ZCode uses letter cover encryption - the payload is encrypted alongside a symmetric key, and that key is wrapped alongside an RSA-OAEP community key. The community key is delivered by the server during upload-credential negotiation. The corresponding personal key lives lone in Z.ai&rsquo;s cloud. ferstar attempted to unwrap the archive alongside all personal key on the local scheme and failed. The 313MB ciphertext sitting on the user&rsquo;s own disk cannot be decrypted by the person or by the ZCode client itself.</p> <p>ferstar&rsquo;s conclusion, from the post: &ldquo;A key that lone the server can use serves exactly one purpose: making certain the server can peruse your code whenever it wants.&rdquo;</p> <h2 id="what-gets-packed">What gets packed</h2> <p>The packaging manifest is stored locally in plaintext, and it is specific. For a 42,411-file snapshot:</p> <table readabilitydatatable="1"> <thead> <tr> <th>Content</th> <th>Size</th> <th>Share</th> </tr> </thead> <tbody> <tr> <td>.git/lfs/</td> <td>196.1 MB</td> <td>56.8%</td> </tr> <tr> <td>.git/objects/</td> <td>102.2 MB</td> <td>29.6%</td> </tr> <tr> <td>.git/logs/</td> <td>0.6 MB</td> <td>0.2%</td> </tr> <tr> <td>Source code and docs</td> <td>46.2 MB</td> <td>13.4%</td> </tr> </tbody> </table> <p>The .git directory solitary is 86.6 percent of the payload.</p> <figure><img src="https://tokenstead.ai/images/articles/zcode-git-upload/snapshot-manifest.svg" alt=":: That matters since a git entity shop is not a snapshot of your operating tree - it is the complete lineage of the repository since day one. Deleted-in-a-later-commit API keys are in there. Unpushed branch names that disclose unreleased merchandise plans are in there. Internal hostnames and repo paths from .git/config are in there. A captured archive is years of engineering history, not the records you had open. The upload pipeline, reconstructed from the client’s app.asar : the client requests credentials from zcode.z.ai , which returns OSS form signatures, an entity key, a size cap, and a per-round RSA community key; the client packs the workspace to tar.gz, encrypts alongside AES-256-CTR, wraps the symmetric key, and POSTs the archive immediately to Aliyun OSS, which callbacks to Z.ai’s backend to enroll the snapshot. The operating client maintained persistent connections to zcode.z.ai and two Aliyun OSS nodes during the test. :::figure /images/articles/zcode-git-upload/upload-flow.svg The reconstructed ZCode snapshot upload flow: credentials from the coordinator, local packing and encryption, straightforward form POST to Aliyun OSS, recall registration. Reconstructed from the client app.asar by ferstar." loading="lazy" decoding="async"><figcaption><p><em>Payload breakdown of one 42,411-file snapshot: the .git directory is 86.6 percent of the encrypted archive.</em> ::: That matters since a git entity shop is not a snapshot of your operating tree - it is the complete lineage of the repository since day one. Deleted-in-a-later-commit API keys are in there. Unpushed branch names that disclose unreleased merchandise plans are in there. Internal hostnames and repo paths from .git/config are in there. A captured archive is years of engineering history, not the records you had open. The upload pipeline, reconstructed from the client&rsquo;s app.asar: the client requests credentials from zcode.z.ai, which returns OSS form signatures, an entity key, a size cap, and a per-round RSA community key; the client packs the workspace to tar.gz, encrypts alongside AES-256-CTR, wraps the symmetric key, and POSTs the archive immediately to Aliyun OSS, which callbacks to Z.ai&rsquo;s backend to enroll the snapshot. The operating client maintained persistent connections to zcode.z.ai and two Aliyun OSS nodes during the test. :::figure /images/articles/zcode-git-upload/upload-flow.svg <em>The reconstructed ZCode snapshot upload flow: credentials from the coordinator, local packing and encryption, straightforward form POST to Aliyun OSS, recall registration. Reconstructed from the client app.asar by ferstar.</em></p> </figcaption></figure> <h2 id="the-toggles-do-not-stop-it">The toggles do not halt it</h2> <p>The natural move is beginning settings. ferstar cross-referenced the UI switches against the code:</p> <ul> <li>&ldquo;Optimize Experience&rdquo; (optimizeAgentExperienceEnabled) lone controls whether data is authorized for example training. Snapshot grasp and upload continue.</li> <li>&ldquo;Repo Snapshot Indexing&rdquo; (repoSnapshotIndexingEnabled) lone controls whether the server indexes uploaded snapshots. Local packaging and upload continue.</li> </ul> <p>The presenter gathering instantiates the grasp sidecar unconditionally at startup, alongside no gating on person preferences - the lone necessity is that the token provider can create a valid JWT. Session logs showed 62 grasp events from a sole energetic session, triggered before all immediate and on project completion.</p> <p>A second origin corroborates the mechanism. OrcaPromptVault, a community gathering of captured AI harness prompts, holds a 131KB scheme immediate and a 31-tool exterior from ZCode. The checkpoint/rewind characteristic is wired into the scheme immediate - the template &ldquo;Workspace rewind applied. rewindId, checkpointId, strategy, restoredFiles&rdquo; appears five times. This is the user-facing tip of the snapshot pipeline, the characteristic the filesystem fastener disables.</p> <p>The agent&rsquo;s complete tool exterior contains zero snapshot, upload, or telemetry tools. The exfiltration pipeline is not an delegate tool; it is a host-level sidecar instantiated exterior the tool loop. That is why no approval environment stops it, and why the delegate itself never sees it. Across 131KB of captured instructions there is no citation of Aliyun, OSS, uploads, or privacy.</p> <p>The grasp adds a item ferstar did not mention: ZCode ships a ReadSessionContext tool that says another persisted ZCode sessions on petition by meeting ID. Combined alongside the host-level snapshot sidecar, meeting satisfied is the two locally persisted and cloud-captured.</p> <figure><img src="https://tokenstead.ai/images/articles/zcode-git-upload/prompt-evidence.svg" alt="The leaked scheme prompt’s checkpoint template (appears five times) and the agent’s 31-tool surface, which contains no snapshot, upload, or telemetry tools." loading="lazy" decoding="async"><figcaption><p><em>The leaked scheme prompt&rsquo;s checkpoint template (appears five times) and the agent&rsquo;s 31-tool surface, which contains no snapshot, upload, or telemetry tools.</em></p> </figcaption></figure> <h2 id="the-privacy-policy-does-not-mention-it">The privacy guideline does not citation it</h2> <p>ZCode&rsquo;s privacy guideline states the tool collects &ldquo;text, files, and code submitted during conversations&rdquo; - the norm inference-context disclosure all AI coding tool makes. Across the policy, FAQ, and changelog, ferstar established no citation of packaging and uploading complete workspaces and git histories. The closest row is a template declaration concerning the optimization program being off by default.</p> <h2 id="the-context-that-makes-it-worse">The environment that makes it worse</h2> <p>ZCode launched in July 2026, and its initiate throw ran immediately on trust. Z.ai positioned the harness against Anthropic&rsquo;s Claude Code weeks following the Claude Code hidden-telemetry controversy, alongside open weights positioned as the escape from the kill-switch problem. A Z.ai executive, asked on X whether ZCode would contain &ldquo;any kind of spyware,&rdquo; answered that the business would not execute &ldquo;anything beyond what&rsquo;s listed&rdquo; on the ZCode website.</p> <p>Workspace snapshotting is not listed on the ZCode website.</p> <p>Z.ai went community on the Hong Kong Stock Exchange in January 2026. The company&rsquo;s authoritative X document had not responded to ferstar&rsquo;s article as of publication. The most apparent answer came from an document affiliated alongside the ZCode squad - &ldquo;hey I am apologetic to let you discover it&rdquo; - which says as confirmation of the mechanism, not a rebuttal of it. ferstar&rsquo;s tweet passed 276,000 views inside 13 hours, and conversation threads on V2EX and HN-adjacent channels divided mostly alongside one line: agents upload code fragments during tool calls all the time, alongside consent. This is a complete repository affirmative its complete history, without consent, encrypted so lone the vendor can peruse it.</p> <h2 id="the-defense-that-works">The defence that works</h2> <p>Deleting the pending archive does not work: the client re-packaged a caller 313MB archive inside fractional an hour, retry oppose incrementing. The fix that holds is filesystem-level. Make the checkpoints directory unwritable at the kernel level:</p> <p>Linux:</p> <div> <pre>rm -rf ~/.zcode/v2/checkpoints mkdir -p ~/.zcode/v2/checkpoints sudo chattr +i ~/.zcode/v2/checkpoints </pre> </div> <p>macOS:</p> <div> <pre>rm -rf ~/.zcode/v2/checkpoints mkdir -p ~/.zcode/v2/checkpoints chflags uchg ~/.zcode/v2/checkpoints </pre> </div> <p>The trade: the checkpoint rollback UI stops operating - a characteristic that required uploading your code in the archetypal place. Chat, autocomplete, and tool calls activity normally. Restore alongside chattr -i or chflags nouchg.</p> <h2 id="what-it-means-for-local">What it method for local</h2> <p>Running open weights locally is the pitch: your model, your hardware, no per-token bill, no vendor switch-off. The ZCode narrative sharpens the item former the example layer. The runtime about the example - the harness, the desktop app, the update pipeline - is part of the rely surface, and a locally-running example wrapped in a cloud-phoning harness is not local.</p> <p>Two checks prosecute from this, and they use to all harness in this space, not lone ZCode: what does the runtime transmit whenever you are logged in, and who can decrypt what it stores. Tokenstead tracks delegate harnesses and their telemetry behavior for exactly this reason; this part volition be updated if Z.ai responds alongside a fix, a disclosure change, or a statement.</p> <p>Sources:</p> <ul> <li> <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow noopener" target="_blank">Inside ZCode: Silently Uploading Your Entire Git History to the Cloud</a> - ferstar, September 18, 2026 (full forensics: asar reconstruction, encryption flow, manifest breakdown)</li> <li> <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow noopener" target="_blank">ferstar on X</a> - the summary thread, 276K views</li> <li> <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow noopener" target="_blank">FeiZ on X</a> - Chinese-language vigilant thread, 63.8K views</li> <li> <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow noopener" target="_blank">ZCode releases and changelog</a> - Z.ai official</li> <li> <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow noopener" target="_blank">V2EX conversation thread</a> - community response, Chinese</li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow noopener" target="_blank">lookonchain coverage</a></li> </ul>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/zcode-the-glm-coding-agent-silently-uploads-your-git-history-68693</guid> <pubDate>Fri, 18 Sep 2026 11:35:28 +0700</pubDate> <author><![CDATA[support@mycoding.id (Riki Setiawan)]]></author> </item> <item> <title><![CDATA[Microsoft exec called AI abrasion 'the largest theft of labor in individual history']]></title> <description><![CDATA[Microsoft exec called AI abrasion 'the largest theft of labor in individual history'. Comments]]></description> <media:thumbnail url="https://techcrunch.com/wp-content/uploads/2023/11/GettyImages-1778706504.jpg?resize=1200,783"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/microsoft-exec-called-ai-abrasion-the-largest-theft-of-labor-in-individual-history-68679</link> <content:encoded><![CDATA[<div> <p id="speakable-summary">New unredacted data in <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noreferrer noopener">the copyright lawsuit The New York Times</a> brought against OpenAI and Microsoft three years ago reveals an admission that AI abrasion was tantamount to theft, and that AI products stance a important danger to publications.</p> <p>Per the lawsuit, a top Microsoft administrator privately described the companies&rsquo; AI training practices as &ldquo;theft,&rdquo; and OpenAI&rsquo;s own guidance stated its AI models posed an &ldquo;existential threat&rdquo; to the publishers and journalists whose activity trained them.&nbsp;</p> <p>The unsealed matter additionally particulars how the companies allegedly obtained and used that satisfied by bypassing paywalls undetected, construction training datasets via bulk scraping, and deliberately stripping copyright notices from training data.&nbsp;</p> <p>It&rsquo;s value noting that much of the new data comes from The Times&rsquo; own brief, not the underlying exhibits, which remain sealed. The quotes below are presented without their first context. </p> <p>The unredacted filing is the latest escalation in the three-year-old lawsuit, in which The New York Times initially alleged the firms violated copyright law by training generative AI models on its content.&nbsp;</p> <p>The inquiry of whether AI firms can legally use copyrighted matter to train AI has no apparent answer, but judges have been mostly favorable to AI companies&rsquo; arguments that training constitutes &ldquo;fair use.&rdquo; This lawful regulation lets group use copyrighted activity without approval in certain cases, akin parody, news reporting, or criticism. Earlier this month, the <a href="https://en.mycoding.id/category/technology" target="_blank">Trump administration contributed a brief</a> in defence of OpenAI&rsquo;s unlicensed use of copyrighted matter to train its LLMs.&nbsp;</p> <p>Several of the new admissions, however, run oppose to OpenAI&rsquo;s fair use defense, particularly the rule&rsquo;s necessity that use doesn&rsquo;t substitute or damage the market for the first work.</p> <p>For example, Microsoft&rsquo;s own data shows its Copilot &ldquo;answer engine&rdquo; caused click-through rates for The New York Times&rsquo; domain to autumn as much as 93% compared to traditional Bing search. An inner Microsoft display written by Microsoft&rsquo;s director of Applied Science, Brent Hecht, in January 2024 describes the decrease as a &ldquo;doom loop&rdquo; that would &ldquo;hurt the achievement of our models and the complete web at the identical time.&rdquo;</p> <p>&ldquo;It is extremely different that an end-product threatens the financial foundations of its essential suppliers, but that is the circumstance we have created for our LLM endeavor alongside regard to its &lsquo;content provision chain,&rsquo;&rdquo; says the Microsoft document, as quoted in the filing.&nbsp;</p> <p>Microsoft CEO Satya Nadella additionally testified in a deposition before this twelvemonth that &ldquo;anything that is paywalled have to be licensed by anyone who wants to use it&hellip;for grounding or training,&rdquo; and made apparent that, if he &ldquo;had been made conscious that OpenAI had scraped and trained on data that was rearward a paywall,&rdquo; he would have &ldquo;invoked [Microsoft&rsquo;s correct to] necessitate OpenAI to retrain its models.&rdquo;&nbsp; </p> <p>Other admissions cut against distinct pillars of the fair-use test: OpenAI&rsquo;s caput of ChatGPT, Nick Turley, wrote in inner communication that publishers visage an &ldquo;existential threat&rdquo; from products akin the chatbot, which are &ldquo;largely substitutive&rdquo; and &ldquo;will get additional and additional substitutive as they get better.&rdquo;</p> <p>OpenAI President Greg Brockman described the models as &ldquo;excellent at news.&rdquo; Nadella accepted under oath before this twelvemonth that conversing alongside chatbots &ldquo;has substituted &hellip; giving you the data correct there on the website on the AI phase versus needing to go to the underlying source.&rdquo;</p> <p>That benevolent of tongue speaks to how the innovation could immediately vie with, fairly than transform, the first work.&nbsp;</p> <p>A Microsoft document states that there is a &ldquo;real risk&rdquo; that generative AI could &ldquo;significantly disrupt the occupation of the extremely group who generated the data on which the basis example was trained.&rdquo;&nbsp;</p> <p>The sheer measure of the copying is striking. The documents disclose for the archetypal period that OpenAI&rsquo;s mid-training datasets solitary merge additional than 91,692 copies of plant published by the NYT, Daily News, and Center for Investigative Reporting. A Common Crawl-derived dataset included additional than 2 myriad documents from <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noreferrer noopener nofollow">nytimes.com</a> alone.&nbsp;</p> <p>In a January 2023 inner memo, Hecht called it &ldquo;an amazing theft of unprecedented proportions&rdquo; and &ldquo;the largest theft of labor in individual history.&rdquo;</p> <p>The filing lays out in new item how OpenAI and Microsoft went concerning acquiring the plaintiffs&rsquo; content, including abrasion it from the Bing Index.&nbsp;</p> <p>&ldquo;OpenAI delivered the complete GPT-3 training dataset to Microsoft, which Microsoft used to measure how to execute OpenAI&rsquo;s models inside its own business products,&rdquo; the filing reads. &ldquo;Microsoft likewise provided training data to OpenAI through initiatives called Project Taxi and Project Mango.&rdquo;</p> <p>The companies allegedly assembled the Project Mango data into a training dataset that contains copies of at smallest 160,903 distinctive plant from the news publishers.&nbsp;</p> <p>In command to get the most out of their scraping, OpenAI workforce allegedly came up alongside a scheme to circumvent paywalls without detection. The filings display that whenever OpenAI investigator Nick Ryder told Brockman concerning a &ldquo;hack to get about nytimes paywall,&rdquo; Brockman replied: &ldquo;ah nice.&rdquo;&nbsp;</p> <p>OpenAI workforce additionally allegedly built training datasets akin WebText and WebText2 that disproportionately relied on scraped news content. They additionally allegedly pulled millions of articles from Common Crawl, a free, open repository of web crawl data. The findings additionally depict deliberate efforts to band copyright notices from training data before it reached the model, since researchers &ldquo;wouldn&rsquo;t desire example outputting&rdquo; &ldquo;copyright notices&rdquo; to users.</p> <p>&ldquo;The evidence revealed current for the archetypal period shows that OpenAI and Microsoft knew that what they were doing was wrong,&rdquo; Steven Lieberman, advise for the New York Daily News, stated in a declaration shared alongside TechCrunch. </p> <p>OpenAI and Microsoft did not come back requests for comment.</p> </div><p><em>When you acquisition through links in our articles, <a href="https://en.mycoding.id/category/technology" target="_blank">we may acquire a small commission</a>. This doesn&rsquo;t power our editorial independence.</em></p>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/microsoft-exec-called-ai-abrasion-the-largest-theft-of-labor-in-individual-history-68679</guid> <pubDate>Fri, 18 Sep 2026 10:45:07 +0700</pubDate> <author><![CDATA[support@mycoding.id (Doris Putra)]]></author> </item> <item> <title><![CDATA[OpenJev]]></title> <description><![CDATA[OpenJev. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/openjev-68680</link> <content:encoded><![CDATA[<div> <a href="https://en.mycoding.id/category/technology" target="_blank">openjev</a> <p><span>Can we run item akin Jev in your browser?</span> <a href="https://en.mycoding.id/category/technology" target="_blank">GitHub repo &#8599;</a> </p> <p>A live, local experiment</p> <p>A local example can either peruse probabilities for your allowed options without decoding them, or compose the identical benevolent of allocation token by token. Pick a size, run the two on your own GPU, and measure the difference.</p> <p><span>browser only</span><span>no backend</span><span>your timings</span><span id="model-size">1.56 GB model</span> </p> <p role="status"><span aria-hidden="true">celebration</span><strong>There is no waitlist!</strong> Just try it out &darr;</p> <p id="device-note">MiniCPM5 2B is selected by default. On a phone or smaller device, toggle to Qwen3 0.6B in the example box if needed.</p> <div> <div><p>00 / setup</p><h2 id="setup-title">Load the example once</h2></div> <p>Model </p> </div> <p id="model-notice" role="note">Larger model. Loading may be slower or may not fit on several low-end devices.</p> <div aria-labelledby="quality-title"> <p><strong id="quality-title">Model performance</strong><span>higher is better</span></p> <p>Native BF16 &middot; TypeSafe: identical 102-row subset &middot; Jev: published outcome &middot; browser builds are quantized</p> </div> <p class="[&#039;support&#039;, kind]" role="status"><span aria-hidden="true">{{ icon }}</span>{{ content }}</p> <div aria-label="Model setup phases"> <div><p><small>download / cache</small><strong id="download-value">&mdash;</strong></p><p><span id="download-detail">starts lone whenever you click load</span></p></div> <p><small>model load</small><strong id="load-value">&mdash;</strong><span>download and prepare</span></p> <p><small>warmup</small><strong id="warmup-value">&mdash;</strong><span>compile passes for the two methods</span></p> </div> <p>Weights arrive from Hugging Face and remain in your browser cache. Inputs never depart this page. First burden can obtain multiple minutes depending on the selected model, network and GPU.</p> <div> <div><p>01 / decision</p><h2 id="workbench-title">Give it a genuine choice</h2></div> </div> <p><span>Try an example</span> </p> <p>Both paths obtain the identical decision. One says choice probabilities directly; the another asks the example to compose its choice probabilities as JSON text.</p> <p><small>your decision</small><strong>state + inquiry + options</strong></p> <p>&rarr;</p> <p><small>same local model</small><strong id="selected-model">MiniCPM5 &middot; 2B</strong></p> <p>&#8599;<br>&#8600;</p> <div> <p><small>read logits</small><strong>A&hellip;T probabilities</strong></p> <p><small>write tokens</small><strong><i>{</i><i>options</i><i> + </i><i>probabilities</i><i>}</i></strong></p> </div> <div><div><p>02A / straightforward readout</p><h2>Choice probabilities</h2></div><p><span>no decoding</span></p></div> <p>Read the model&rsquo;s choice logits and normalize lone throughout the options you supplied.</p> <p>waiting for a run</p> <p>total&mdash;</p> <p>input&mdash;</p> <p>output1 readout</p> <div><div><p>02B / generation</p><h2>JSON probabilities</h2></div><p><span>token by token</span></p></div> <p>Ask the example to evaluation the identical displayed-option allocation and compose it as JSON. Watch all token arrive.</p> <pre id="generated-output">waiting for a run</pre> <p>first token&mdash;</p> <p>total&mdash;</p> <p>input&mdash;</p> <p>output&mdash;</p> <span>measured wall-time ratio</span><strong id="ratio">run it on your GPU</strong> <p id="run-note">The methods run sequentially on the identical loaded example so they do not contend for one GPU. Direct runs first, afterward generation.</p> What these numbers do&mdash;and do not&mdash;mean <div> <p><b>Conditional probabilities.</b> Direct scores are a softmax complete lone the displayed choice tokens. They are not calibrated confidence and do not contain all answer the example power prefer.</p> <p><b>Local example tiers.</b> The phone example trades accuracy for size. MiniCPM is the desktop default. The 4B choice needs substantially additional memory. None is claimed to equivalent Jev.</p> <p><b>Real local timing.</b> Setup, warmup, immediate preparation, straightforward execution, archetypal generated token and generation completion are timed alongside performance.now(). No canned results appear.</p> <p><b>Quantized weights.</b> The demo uses pinned GGUF builds through wllama. Quantization can alter the two norm and speed.</p> </div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/openjev-68680</guid> <pubDate>Fri, 18 Sep 2026 10:42:22 +0700</pubDate> <author><![CDATA[support@mycoding.id (Doris Putra)]]></author> </item> <item> <title><![CDATA[What are AI delegate prompts and how to compose them]]></title> <description><![CDATA[What are AI delegate prompts and how to compose them. AI delegate prompts are instructions that inform an AI delegate what to achieve, what data and tools to use, what [...] Read More... The article What are AI delegate p...]]></description> <media:thumbnail url="https://imagedelivery.net/LqiWLm-3MGbYHtFuUbcBtA/wp-content/uploads/sites/2/2026/09/Tutorial-Cover-VPS-AI-agent-1-1.jpg-1.jpg/public"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/what-are-ai-delegate-prompts-and-how-to-compose-them-68681</link> <content:encoded><![CDATA[<div> <div> <p> Sep 18, 2026 </p> <p>/</p> <p> By Alma F. </p> <p>/</p> </div> <p>11 min Read </p> </div> <p><img width="807" height="454" src="https://www.hostinger.com/tutorials/fit=scale-down" alt="What are AI delegate prompts and how to compose them" decoding="async" fetchpriority="high" srcset="https://imagedelivery.net/LqiWLm-3MGbYHtFuUbcBtA/wp-content/uploads/sites/2/2026/09/Tutorial-Cover-VPS-AI-agent-1-1.jpg-1.jpg/w=1920,fit=scale-down 1920w, https://imagedelivery.net/LqiWLm-3MGbYHtFuUbcBtA/wp-content/uploads/sites/2/2026/09/Tutorial-Cover-VPS-AI-agent-1-1.jpg-1.jpg/w=300,fit=scale-down 300w, https://imagedelivery.net/LqiWLm-3MGbYHtFuUbcBtA/wp-content/uploads/sites/2/2026/09/Tutorial-Cover-VPS-AI-agent-1-1.jpg-1.jpg/w=1024,fit=scale-down 1024w, https://imagedelivery.net/LqiWLm-3MGbYHtFuUbcBtA/wp-content/uploads/sites/2/2026/09/Tutorial-Cover-VPS-AI-agent-1-1.jpg-1.jpg/w=150,fit=scale-down 150w, https://imagedelivery.net/LqiWLm-3MGbYHtFuUbcBtA/wp-content/uploads/sites/2/2026/09/Tutorial-Cover-VPS-AI-agent-1-1.jpg-1.jpg/w=768,fit=scale-down 768w, https://imagedelivery.net/LqiWLm-3MGbYHtFuUbcBtA/wp-content/uploads/sites/2/2026/09/Tutorial-Cover-VPS-AI-agent-1-1.jpg-1.jpg/w=1536,fit=scale-down 1536w" sizes=" 807px) 100vw, 807px"> </p> <p>AI delegate prompts are instructions that inform an AI delegate what to achieve, what data and tools to use, what limits to follow, and what counts as a prosperous result.</p><p>Unlike a regular immediate that asks for a sole response, an delegate immediate guides the delegate through a project anywhere it needs to create decisions, use tools, and react to what happens next.</p><p>That difference matters whenever an delegate has to do additional than create an answer. A assistance delegate power need to decide whether to matter a refund or escalate a request, during a investigation delegate power need to choose which sources to use and measure whether there is adequate evidence to complete the task.</p><p>To compose an productive delegate prompt, define what the delegate needs to do, what it can use, what limits it must follow, and how it should cognize whenever the project is complete. Test the immediate alongside genuine scenarios, afterward refine it whenever the delegate makes a error or fails to complete the task.</p><h2 id="h-what-are-ai-agent-prompts">What are AI delegate prompts?</h2><p>AI delegate prompts are instructions that guide<a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow"> </a><a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow">an AI agent</a> through complete tasks. They define the goal, provision applicable context, set rules and limits, acknowledge the tools and resources the delegate can use, and explain what a prosperous outcome looks akin and whenever the delegate should stop.</p><h2 id="h-ai-agent-prompts-vs-regular-ai-prompts">AI delegate prompts vs regular AI prompts</h2><p>A regular AI immediate asks a example to create a response, during an AI delegate immediate guides an delegate through a project that can affect multiple decisions, tool use, and actions.</p><p>For example, a regular immediate power ask, &ldquo;Review this week&rsquo;s client feedback and summarize the three most average complaints.&rdquo; The example analyzes the feedback and returns the summary.</p><p>An delegate immediate for the identical project power ask the delegate to assessment the week&rsquo;s feedback, collection complaints, inspect applicable assistance records, prepared a summary, and emblem complaints that encounter particular escalation criteria.</p><figure tabindex="0"><table readabilitydatatable="1"><tbody><tr><td colspan="1" rowspan="1"></td><td colspan="1" rowspan="1"><p><strong>Regular AI prompt</strong></p></td><td colspan="1" rowspan="1"><p><strong>AI delegate prompt</strong></p></td></tr><tr><td colspan="1" rowspan="1"><p><span>Purpose</span></p></td><td colspan="1" rowspan="1"><p><span>Shapes a generated answer</span></p></td><td colspan="1" rowspan="1"><p><span>Guides behavior toward an outcome</span></p></td></tr><tr><td colspan="1" rowspan="1"><p><span>Scope</span></p></td><td colspan="1" rowspan="1"><p><span>One reply or turn</span></p></td><td colspan="1" rowspan="1"><p><span>A complete delegate run</span></p></td></tr><tr><td colspan="1" rowspan="1"><p><span>Operation</span></p></td><td colspan="1" rowspan="1"><p><span>Generate and stop</span></p></td><td colspan="1" rowspan="1"><p><span>Decide, act, observe, evaluate, continue</span></p></td></tr><tr><td colspan="1" rowspan="1"><p><span>Capabilities</span></p></td><td colspan="1" rowspan="1"><p><span>Uses the model&rsquo;s accessible context</span></p></td><td colspan="1" rowspan="1"><p><span>May use connected tools, data, apps, or another agents</span></p></td></tr><tr><td colspan="1" rowspan="1"><p><span>Completion</span></p></td><td colspan="1" rowspan="1"><p><span>Ends following producing the response</span></p></td><td colspan="1" rowspan="1"><p><span>Ends whenever done, blocked, or handed off</span></p></td></tr><tr><td colspan="1" rowspan="1"><p><span>Example tasks</span></p></td><td colspan="1" rowspan="1"><p><span>Drafting, summarization</span></p></td><td colspan="1" rowspan="1"><p><span>Research, assistance resolution, run prep, connected workflows</span></p></td></tr></tbody></table></figure><p>Both prompts can contain context, examples, tone, and output format. An delegate immediate additionally needs instructions for what happens during the task, specified as whenever to use a tool, whenever to ask for approval, how to grip a failure, and what proves the project is complete.</p><h2 id="h-how-ai-agent-prompts-work">How AI delegate prompts work</h2><p>An AI delegate immediate plant by directing the delegate through a repeating process: comprehend the task, choose an action, assessment the result, and decide what to do next.</p><p>Multi-step tasks that merge planning, tool use, and evaluation are called<a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow"> </a><a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow">agentic workflows</a>. The immediate tells the delegate what it needs to accomplish, what limits to follow, and whenever to halt or ask for help.</p><p>A competitor-research agent, for instance, power hunt for current data, difference the results alongside what it needs, place gaps, run another search, and prepared the final brief. Here&rsquo;s what happens as the delegate plant through that task:</p><div> <figure data-wp-context='&quot;6aad0a9841cb2&quot;}' data-wp-interactive="core/image" data-wp-key="6aad0a9841cb2"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://www.hostinger.com/tutorials/wp-content/uploads/sites/2/2026/09/1789722463008-0.jpeg" alt="How AI delegate prompts work"></figure> </div><ol> <li><strong>Understand the goal and context.</strong> The delegate says the goal, constraints, and accessible data. Information from<a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow"> </a><a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow">AI delegate memory</a> may additionally nourish into the context, but the recollection stays distinct from the immediate itself.</li> <li><strong>Choose the next action.</strong> The delegate decides whether to answer, ask a question, use a tool, or stop. The decision depends on how plainly the immediate defines the goal, constraints, and tool rules. When item goes wrong, inspect the agent&rsquo;s actions, tool calls, and responses to see anywhere the project went off track. Understanding <a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow">AI delegate reasoning</a> can assistance you enhance the instructions that guide those choices.</li> <li><strong>Use an accessible tool.</strong> A connected tool retrieves data, runs an operation, or changes an external system. The way<a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow"> </a><a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow">agents use tools</a> affects immediate scheme since admission to tools changes which instructions you need to write.</li> <li><strong>Review the outcome and continue, finish, or escalate.</strong> The delegate checks whether the outcome moves it nearer to the goal. It keeps working, asks for missing data, requests approval, reports a failure, or returns the completed result.</li> </ol><p>One item the immediate can&rsquo;t do is enforce permissions. It can say &ldquo;request endorsement before issuing a refund,&rdquo; but the app motionless needs to obstacle an unapproved refund if the delegate skips that step. Access controls, endorsement gates, and safety checks must live in the delegate system, not the prompt.</p><h2 id="h-what-should-an-ai-agent-prompt-include">What should an AI delegate immediate include?</h2><p>An AI delegate immediate should contain a apparent goal, applicable context, the agent&rsquo;s function and scope, instructions and constraints, accessible tools and resources, and a definition of prosperous completion.</p><div> <figure data-wp-context='&quot;6aad0a984232f&quot;}' data-wp-interactive="core/image" data-wp-key="6aad0a984232f"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://www.hostinger.com/tutorials/wp-content/uploads/sites/2/2026/09/1789722467451-0.jpeg" alt="What should an AI delegate immediate include? "></figure> </div><h3>Goal</h3><p>The goal is the particular outcome the delegate needs to achieve, described plainly adequate that person can inspect whether it was done.</p><p>&ldquo;Research competitors&rdquo; leaves the range and outcome open to interpretation. &ldquo;Create a source-backed competitor concise covering pricing, mark audience, key features, and positioning for five named competitors&rdquo; tells the delegate what to create and what the outcome should include.</p><p>Add particular requirements whenever the outcome needs certain information, evidence, or fields.</p><h3>Context</h3><p>Context is the endeavor data, users, files, definitions, project inputs, and current province that the delegate needs to do its work. Without it, agents guess, and guesses guide to incorrect actions.</p><p>A promotion agent, for example, power need the mark audience, the merchandise and offer, brand guidelines, former run results, the channels being used, and the current run dates.</p><p>Only contain data that helps the delegate complete the task. An unfiltered former dump can inter the current goal or current conflicting instructions.</p><h3>Role and scope</h3><p>Define a function and range to assistance the delegate comprehend its responsibilities, expertise, or limits. &ldquo;Act as a client assistance delegate liable for resolving billing questions&rdquo; sets all three in one line.</p><p>Scope matters additional than persona. The delegate needs to cognize what activity it owns, what it must not do, and whenever to hand off the task. &ldquo;You can explain billing policies and assessment document data. Escalate refund requests that exceed the approved limit.&rdquo; draws that line.</p><h3>Instructions and constraints</h3><p>Instructions inform the delegate what to do and how. Constraints inform it what not to do. Together, they&rsquo;re anywhere most prompts win or fail.</p><p>Clear instructions use straightforward verbs and tangible limits. &ldquo;Draft the run assets, but do not publish or agenda them without approval&rdquo; is uncomplicated to follow. &ldquo;Handle the petition appropriately&rdquo; is not.</p><p>Use ordered steps whenever the project has a genuine sequence. Use &ldquo;if/then&rdquo; rules for choices: &ldquo;If the customer&rsquo;s document data is missing, ask for it before continuing. Do not conjecture document details.&rdquo;</p><h3>Available tools and resources</h3><p>Tools and resources are the data sources, integrations, apps, or another agents the project can use. For all tool, province what it does, whenever the delegate should call it, and what to do whenever it fails.</p><p>For example: &ldquo;Use the client repository to verify the command figure before discussing the order. If the command cannot be found, ask the client to verify the figure or escalate the request.&rdquo;</p><p>Naming a tool in a immediate doesn&rsquo;t nexus or authorize it. The app needs a separate<a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow"> </a><a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow">agent integration</a> to provision the AI delegate admission to all tool and approval to use it.</p><h3>Expected output and completion conditions</h3><p>The expected output defines what the delegate should create and how it knows the project is finished: the format, audience, needed fields, achievement criteria, and stopping condition.</p><p>A polished final communication doesn&rsquo;t demonstrate the project really worked, though. An delegate that says &ldquo;CRM updated&rdquo; (CRM stands for Customer Relationship Management, which is the client repository many revenue teams use) may have unsuccessful to preserve the document without noticing. A saved file, repository update, sent message, or test outcome needs confirmation from the tool that performed it.</p><p>Also, inform the delegate what to do whenever it can&rsquo;t complete the task: ask for missing details, study a blocker, retry inside an approved limit, or escalate alongside the evidence collected so far.</p><h2 id="h-how-to-write-ai-agent-prompts">How to compose AI delegate prompts</h2><p>Write AI delegate prompts by defining the task, giving the delegate the data and tools it needs, environment apparent boundaries, and explaining what a prosperous outcome looks like.</p><p>Use this process:</p><ol> <li>Define one clear, checkable goal.</li> <li>Add lone the environment the delegate needs.</li> <li>Set the agent&rsquo;s function and project scope.</li> <li>List accessible tools and whenever to use them.</li> <li>Define constraints, approvals, retries, and escalation.</li> <li>Specify the output, proof, and stopping condition.</li> <li>Test normal, ambiguous, failed, and high-risk cases.</li> <li>Revise the immediate from recorded results.</li> </ol><p>For example, here&rsquo;s the difference between a vague immediate and one that gives the delegate adequate direction:</p><p><strong>Vague prompt:</strong></p><blockquote> <p>Create a promotion campaign.</p> </blockquote><p><strong>Specific prompt:</strong></p><blockquote> <p>Create a 30-day run scheme for our small-business spectators using the supplied offer, brand guidelines, and former run data. Draft the email and social resources for all run stage.</p> <p>Do not publish, schedule, or expend prosperity without approval.</p> <p>For all asset, contain its audience, goal, channel, and intended call to action. Stop and ask for clarification if required run data is missing.</p> </blockquote><h2 id="h-ai-agent-prompt-examples">AI delegate immediate examples</h2><p>The correct AI delegate immediate construction depends on what the delegate needs to do and what it is allowed to do.</p><p>For instance, a investigation delegate needs apparent origin and verification rules. A promotion delegate needs boundaries about publishing and spending. A client assistance delegate needs rules for document admission and escalation, during a endeavor workflow delegate needs limits on which records it can change.</p><div> <figure data-wp-context='&quot;6aad0a984352f&quot;}' data-wp-interactive="core/image" data-wp-key="6aad0a984352f"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://www.hostinger.com/tutorials/wp-content/uploads/sites/2/2026/09/1789722471799-0.jpeg" alt="Examples of AI delegate prompts"></figure> </div><h3>Research delegate prompt</h3><p>For investigation tasks, define anywhere the delegate should get data and how it should verify the result. This example shows an delegate preparing a competitor brief.</p><blockquote> <p><strong>Role:</strong> Act as a market investigation analyst.</p> <p><strong>Goal:</strong> Produce a verified competitor concise for the promotion or scheme team.</p> <p><strong>Tools and resources:</strong> Use web hunt and the supplied documents.</p> <p><strong>Instructions and constraints:</strong></p> <ul> <li>Use current chief sources.</li> <li>Do not communication companies.</li> <li>Do not assertion to verify personal competitor data.</li> </ul> <p><strong>Expected output and achievement criteria:</strong></p> <ul> <li>Cover all required competitor and difference field.</li> <li>Support all difference alongside a source.</li> </ul> <p><strong>Approval point:</strong> No endorsement is needed for read-only research.</p> </blockquote><p>This immediate tells the delegate anywhere to look, what not to do, and what evidence the final concise needs. Web admission or a connected hunt tool remains a dependency.</p><h3>Marketing delegate prompt</h3><p>For promotion tasks, distinct preparing the activity from actions that power the exterior world. This example lets the delegate create a run during keeping publishing and spending rearward individual approval.</p><blockquote> <p><strong>Role:</strong> Act as a promotion planner.</p> <p><strong>Goal:</strong> Create a 30-day run scheme and outline run assets.</p> <p><strong>Context:</strong> Use the supplied audience, offer, brand voice, channels, and budget.</p> <p><strong>Tools and resources:</strong> Use website content, analytics, calendar, and document tools.</p> <p><strong>Instructions and constraints:</strong></p> <ul> <li>Map all asset to an spectators section and run goal.</li> <li>Do not publish, schedule, or expend prosperity without approval.</li> </ul> <p><strong>Expected output and achievement criteria:</strong></p> <ul> <li>Provide the complete run scheme and outline assets.</li> <li>Show the spectators and run goal for all asset.</li> </ul> <p><strong>Approval points:</strong> Pause for endorsement before publishing, scheduling, or spending money.</p> </blockquote><p>The endorsement regulation makes it apparent that preparing the run is allowed, but publishing or spending motionless requires approval.</p><h3>Customer assistance delegate prompt</h3><p>For client support, define what the delegate can determine and whenever it must hand the petition to a person. This example keeps document changes and another delicate actions inside apparent limits.</p><blockquote> <p><strong>Role:</strong> Act as a merchandise assistance agent.</p> <p><strong>Goal:</strong> Resolve eligible client requests or create a complete individual handoff.</p> <p><strong>Context:</strong> Use the supplied merchandise policy, document information, and ticket history.</p> <p><strong>Tools and resources:</strong> Use the cognition base, client record, command lookup, and ticketing system.</p> <p><strong>Instructions and constraints:</strong></p> <ul> <li>Verify document data before making changes.</li> <li>Never invent merchandise policy.</li> <li>Escalate requests that autumn exterior the supplied policy.</li> </ul> <p><strong>Expected output and achievement criteria:</strong></p> <ul> <li>Confirm the resolution, or create an escalation alongside the needed proof.</li> </ul> <p><strong>Approval points:</strong> Require endorsement for refunds, cancellations, and document changes complete defined limits.</p> </blockquote><p>The immediate gives the delegate adequate data to determine regular requests during environment apparent boundaries for actions that need individual review.</p><h3>Business workflow delegate prompt</h3><p>For endeavor workflows, define what records the delegate can assessment or prepared and which changes necessitate approval. This example helps a revenue or operations squad meet requirements leads and prepared CRM updates.</p><blockquote> <p><strong>Role:</strong> Act as a lead-qualification agent.</p> <p><strong>Goal:</strong> Prioritize qualified leads and prepared CRM updates.</p> <p><strong>Context:</strong> Use the supplied qualification criteria and incoming form data.</p> <p><strong>Tools and resources:</strong> Use CRM lookup and draft-update tools.</p> <p><strong>Instructions and constraints:</strong></p> <ul> <li>Do not invent missing business data.</li> <li>Ask for individual clarification whenever scoring rules are ambiguous.</li> </ul> <p><strong>Expected output and achievement criteria:</strong></p> <ul> <li>Record the score, rationale, next action, and unresolved sectors for all lead.</li> </ul> <p><strong>Approval points:</strong> Pause before sending outreach or changing guide ownership.</p> </blockquote><p>The delegate can assessment records and prepared updates without automatically sending outreach or changing ownership.</p><p>If you don&rsquo;t desire to build an AI delegate from scratch, you can use a ready-made delegate instead. For example, <a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow">Hostinger Agent</a> provides specialized AI agents for tasks specified as SEO, marketing, content, sales, and client communication. You set the goal and instructions, during the phase provides the capabilities the delegate needs to transport out the task.</p><div> <figure data-wp-context='&quot;6aad0a9844a5c&quot;}' data-wp-interactive="core/image" data-wp-key="6aad0a9844a5c"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://www.hostinger.com/tutorials/wp-content/uploads/sites/2/2026/09/1789722476793-0.png" alt="Hostinger Agent landing page"></figure> </div><p>For a promotion campaign, you can provision the delegate your mark audience, offer, brand guidelines, and run goal, afterward let it prepared the activity during keeping actions specified as publishing or spending rearward your approval.</p><h2 id="h-best-practices-for-writing-ai-agent-prompts">Best practices for penning AI delegate prompts</h2><p>Write prompts that provision the delegate a apparent goal, helpful context, particular boundaries, and a way to inform whenever the project is complete. These practices create prompts easier to follow, test, and refine.</p><ul> <li><strong>Define one apparent outcome.</strong> State exactly what the delegate needs to accomplish. For complex tasks, interrupt the activity into apparent actions and use &ldquo;if/then&rdquo; rules whenever the next stage depends on the result.</li> <li><strong>Set limits and endorsement points.</strong> Tell the delegate what it can and cannot do, and necessitate endorsement before actions specified as publishing, sending, purchasing, deleting, or changing records. If an act needs approval, inform the delegate what it should prepared during it waits.</li> <li><strong>Give examples whenever the expected outcome is difficult to describe.</strong> A example completed document can display which sectors you need, during an example escalation can display what data a individual reviewer expects.</li> <li><strong>Keep instructions concise and consistent.</strong> Remove repeated rules, unrelated background, and conflicting instructions. More immediate content does not create up for missing tools or permissions.</li> <li><strong>Define how the delegate should grip failure.</strong> Tell it what to do whenever data is missing, a tool fails, or the project cannot be completed. It should ask for clarification, retry inside a limit, study the problem, or escalate fairly than guess.</li> <li><strong>Require evidence for completed actions.</strong> When the project involves a saved file, repository update, sent message, or another external action, necessitate confirmation from the tool or scheme that performed it.</li> <li><strong>Treat external satisfied as data, not instructions.</strong> Websites, emails, files, and tool results can merge instructions that try to redirect the agent. Tell the delegate not to let that satisfied override its trusted instructions or endorsement rules.</li> <li><strong>Test and refine the prompt.</strong> Run realistic scenarios, appearance for particular nonaccomplishment patterns, and revise the education that caused the problem. Don&rsquo;t try to fix all nonaccomplishment by making the immediate longer.</li> </ul><h2 id="h-how-to-test-and-refine-ai-agent-prompts">How to test and refine AI delegate prompts</h2><p>Test an AI delegate immediate by operating the identical project under normal, incomplete, failed, and high-risk conditions, afterward difference what the delegate did alongside what you expected it to do. One prosperous run doesn&rsquo;t demonstrate the immediate plant in another situations.</p><p>Start alongside one normal petition and compose downward what the delegate should do and what outcome you expect. Then alter one circumstance at a time:</p><ul> <li><strong>Remove required information.</strong> Leave out a item the delegate needs, specified as a client ID or run date. Check whether it asks for the missing data alternatively of guessing.</li> <li><strong>Give ambiguous instructions.</strong> Create a petition anywhere two actions could be reasonable. Check whether the delegate asks for clarification or follows the border you defined.</li> <li><strong>Make a tool fail.</strong> Use a test surroundings anywhere a hunt returns no results or an update fails. Check whether the delegate reports the failure, retries inside the allowed limit, or escalates alternatively of claiming success.</li> <li><strong>Trigger an endorsement point.</strong> Ask the delegate to execute an act that requires approval, specified as publishing satisfied or issuing a refund. Check that it pauses and requests endorsement fairly than completing the action.</li> <li><strong>Test untrusted content.</strong> Give the delegate a webpage, email, or document containing instructions unrelated to its task. Check that it treats those instructions as satisfied fairly than following them.</li> <li><strong>Test repeated actions.</strong> Give the delegate a circumstance anywhere the identical stage could be attempted repeatedly, specified as an bare hunt result. Check that it stops or escalates formerly it reaches the bounds you set.</li> </ul><p><strong>After all test, difference the agent&rsquo;s behavior alongside your expected result.</strong> Review which tools it used, what data it received, what actions it took, and what really changed. Record the test input, expected result, genuine result, and nonaccomplishment so you can acknowledge exactly what needs fixing.</p><p>If a test fails, alter the education that caused the nonaccomplishment and run the identical test again. For example, if the delegate guesses whenever a client ID is missing, add an definitive regulation telling it to ask for the ID instead. If it claims a repository update succeeded without confirmation, necessitate confirmation from the repository before reporting success.</p><p>Once the immediate passes your test cases, <strong>move from simulated or read-only tasks to live actions gradually.</strong> Start alongside low-risk actions specified as creating drafts or test records, afterward reiterate your tests alongside the genuine tools and permissions the delegate volition use.</p><div> <figure data-wp-context='&quot;6aad0a984521e&quot;}' data-wp-interactive="core/image" data-wp-key="6aad0a984521e"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://www.hostinger.com/tutorials/wp-content/uploads/sites/2/2026/09/1789722484089-0.jpeg" alt="How to test and refine AI delegate prompts"></figure> </div><h2 id="h-extend-ai-agents-with-reusable-skills">Extend AI agents alongside reusable skills</h2><p>Consider a reusable accomplishment whenever an delegate needs to prosecute the identical instructions, use the identical resources, or reiterate the identical procedure throughout multiple tasks. A accomplishment packages that repeatable activity so the delegate can reuse it alternatively of relying on a new immediate all time.</p><p>For example, you power use a immediate to inform an delegate how to investigation competitors for one campaign. If you use the identical investigation procedure for all campaign, rotate that procedure into an<a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow"> </a><a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow">AI delegate skill</a>. Keep changing information, specified as the current campaign, audience, or endorsement decision, in the prompt, during the accomplishment holds the stable investigation procedure and supporting resources.</p><p>When the procedure is stable, distinct the particulars that alter from the instructions and resources that remain the same. Keep changing particulars specified as the current campaign, audience, or endorsement decision in the prompt, and bundle the repeatable instructions and resources in the skill.</p> <p> All of the tutorial satisfied on this website is topic to <a href="https://en.mycoding.id/category/technology" target="_blank" data-wpel-link="internal" rel="follow"> Hostinger's rigorous editorial standards and values. </a> </p> <div id="the-author-section"> <div> <p><img src="https://imagedelivery.net/LqiWLm-3MGbYHtFuUbcBtA/wp-content/uploads/sites/2/2026/01/1000016965.jpg/w=96,h=96,fit=scale-down" alt="Author"> </p> </div> <p> Alma is an AI Content Editor alongside 9+ years of cognition assisting ideas obtain form throughout SEO, marketing, and content. She loves operating alongside words, structure, and scheme to create satisfied the two helpful and fun to read. Off the clock, she can be established gaming, drawing, or diving into her latest D&amp;D adventure. </p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/what-are-ai-delegate-prompts-and-how-to-compose-them-68681</guid> <pubDate>Fri, 18 Sep 2026 10:24:20 +0700</pubDate> <author><![CDATA[support@mycoding.id (Alma Fernando)]]></author> </item> <item> <title><![CDATA[Jemalloc 5.4.0]]></title> <description><![CDATA[Jemalloc 5.4.0. Comments]]></description> <media:thumbnail url="https://opengraph.githubassets.com/757edfa22c8cec63243b6db8691aa148bbcede35b72fb0f10a038fa3aa43da14/jemalloc/jemalloc/releases/tag/5.4.0"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/jemalloc-5-4-0-68666</link> <content:encoded><![CDATA[<div data-pjax="true" data-test-selector="body-content" data-view-component="true"><p>This publish contains complete 160 commits, focusing on the specialized debts<br> cleaning including refactorings, bug fixes, test safety improvement, and<br> option cleanups. The publish additionally includes portability improvements per<br> upstream issues report.</p> <p>New features:</p> <ul> <li>Add EXTENT_ALLOC_FLAG_PINNED so tradition extent-allocation hooks can<br> mark non-reclaimable mappings, specified as HugeTLB pages, for preferential<br> reuse exterior the decay and purge pipeline. Add the mallctl interfaces<br> stats.pinned, stats.arenas.&lt;i&gt;.pinned,<br> stats.arenas.&lt;i&gt;.extents.&lt;j&gt;.npinned,<br> stats.arenas.&lt;i&gt;.extents.&lt;j&gt;.pinned_bytes, and<br> stats.arenas.&lt;i&gt;.mutexes.extents_pinned.{counter} to report<br> pinned-memory use and mutex statistics. (<a href="https://en.mycoding.id/category/technology" target="_blank">@binliu19</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">be2de8c</a>)</li> <li>Allow resuming per-CPU arena choice via thread.arena.<br> (<a href="https://en.mycoding.id/category/technology" target="_blank">@Algunenano</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">68c35f6</a>)</li> <li>Better align the contents of human-readable and JSON malloc statistics.<br> (<a href="https://en.mycoding.id/category/technology" target="_blank">@spredolac</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">68fe1be</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">30b1a41</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">04aad97</a>)</li> <li>Replace the runtime experimental_infallible_new choice alongside the<br> compile-time --enable-cxx-infallible-new option, enabling<br> compiler-level optimizations and optimization in move constructors,<br> and fix the new(std::nothrow) agreement (<a href="https://en.mycoding.id/category/technology" target="_blank">@spredolac</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">160ab9d</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">fe33667</a>)</li> </ul> <p>Incompatible changes:</p> <ul> <li>Adapt tcache inhabit and preservation targets per bin to petition observed<br> between GC events, replacing the fixed refill/flush policy. Remove<br> seven bequest non-experimental controls: lg_tcache_nslots_mul,<br> tcache_nslots_small_min, tcache_nslots_small_max,<br> tcache_nslots_large, tcache_gc_delay_bytes,<br> lg_tcache_flush_small_div, and lg_tcache_flush_large_div.<br> Corresponding malloc_conf settings are silently ignored, matching<br> opt.* mallctls come back ENOENT, and tcache_ncached_max remains<br> supported. (<a href="https://en.mycoding.id/category/technology" target="_blank">@spredolac</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">d13fe91</a>)</li> </ul> <p>Bug fixes:</p> <ul> <li>Preserve errno throughout free, free_sized, and free_aligned_sized,<br> and throughout process_madvise-based leaf purging. (<a href="https://en.mycoding.id/category/technology" target="_blank">@spredolac</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">3a77966</a>,<br> <a href="https://en.mycoding.id/category/technology" target="_blank">86f0582</a>)</li> <li>Fix numeric overflow checks in size classes. (<a href="https://en.mycoding.id/category/technology" target="_blank">@spredolac</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">6b24522</a>)</li> <li>Accept NULL in free_sized() and free_aligned_sized() (C23<br> correctness). (<a href="https://en.mycoding.id/category/technology" target="_blank">@bigbruno</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">7ce8b91</a>)</li> <li>Fix TSD lifecycle border cases by 1) initializing thread-cache bins before<br> marking the cache enabled, preventing reentrant bootstrap allocations<br> from using uninitialized state, and 2) avoiding TSD recreation for late<br> deallocations following thread teardown on generic-TSD platforms.<br> (<a href="https://en.mycoding.id/category/technology" target="_blank">@fzakaria</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">54f22c8</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">@spredolac</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">fb5499a</a>)</li> <li>Use O_CLOEXEC whenever beginning the THP sysfs document in init_thp_state.<br> (<a href="https://en.mycoding.id/category/technology" target="_blank">@ibookstein</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">d070554</a>)</li> <li>Fix copy opt.stats_print and opt.stats_print_opts sectors in<br> malloc_stats_print output. (<a href="https://en.mycoding.id/category/technology" target="_blank">@spredolac</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">dfe3a2e</a>)</li> <li>Fix a possible deadlock during arena_reset. (<a href="https://en.mycoding.id/category/technology" target="_blank">@guangli-dai</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">6957341</a>)</li> <li>Fix a prof-sampling / guard-page communication bug in the SAN. (<a href="https://en.mycoding.id/category/technology" target="_blank">@gctony</a>:<br> <a href="https://en.mycoding.id/category/technology" target="_blank">e36a0fa</a>)</li> </ul> <p>Optimizations and refactors:</p> <ul> <li>Modularize jemalloc's forefront end by extracting arena management,<br> initialization, fork orchestration, and allocation dispatch from<br> jemalloc.c; untangle tcache/arena ownership; and consolidate the<br> internal header chart to eliminate circular dependencies. (<a href="https://en.mycoding.id/category/technology" target="_blank">@spredolac</a>:<br> <a href="https://en.mycoding.id/category/technology" target="_blank">ba1e2fe</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">8874597</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">9d75722</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">de9ad14</a>, ...)</li> <li>Simplify ctl dispatch by refactoring arena helpers, internalizing an<br> implementation-only control, replacing control-flow macros alongside typed<br> helpers, and organizing ctl.c by subsystem. (<a href="https://en.mycoding.id/category/technology" target="_blank">@spredolac</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">9e14346</a>,<br> <a href="https://en.mycoding.id/category/technology" target="_blank">901365d</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">4e903a0</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">5bc8d6e</a>)</li> <li>Cap the base-block growth heuristic to evade virtual-memory exhaustion<br> under rare racy conditions. (<a href="https://en.mycoding.id/category/technology" target="_blank">@guangli-dai</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">2f4db8c</a>)</li> <li>Move background-thread lifecycle and province operations into the<br> background-thread module, clarifying ownership independently of PAC/HPA<br> callers. (<a href="https://en.mycoding.id/category/technology" target="_blank">@guangli-dai</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">f1f0792</a>)</li> <li>Simplify the page-allocation border by replacing PAI vtable dispatch<br> with straightforward PAC/HPA calls, removing the obsolete pai_t/pai.h<br> abstraction, and moving deferred-work and decay orchestration out of the<br> arena. (<a href="https://en.mycoding.id/category/technology" target="_blank">@guangli-dai</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">1dfa6f7</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">8edd101</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">d410f43</a>)</li> <li>Refactor data gathering and rendering into separate<br> gather/emission stages and descriptor-driven tables. (<a href="https://en.mycoding.id/category/technology" target="_blank">@spredolac</a>:<br> <a href="https://en.mycoding.id/category/technology" target="_blank">184f304</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">80c8fcb</a>)</li> <li>Introduce an OS idea tier and move platform-dependent<br> file/process I/O, time, synchronization, CPU, virtual-memory, atfork,<br> error-handling, profiling, thread-yield, and configuration-access<br> operations out of allocator center code. (<a href="https://en.mycoding.id/category/technology" target="_blank">@guangli-dai</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">c4158ac</a>,<br> <a href="https://en.mycoding.id/category/technology" target="_blank">c8e2e01</a>, ...)</li> </ul> <p>Portability improvements:</p> <ul> <li>Replace the std::__throw_bad_alloc call alongside norm C++ (<a href="https://en.mycoding.id/category/technology" target="_blank">#2900</a>).<br> (<a href="https://en.mycoding.id/category/technology" target="_blank">@lexprfuncall</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">1a15fe3</a>)</li> <li>Make arena_s use a elastic gathering associate (bin_t all_bins[]) for C99<br> or newer. (<a href="https://en.mycoding.id/category/technology" target="_blank">@grueninger</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">300b58b</a>)</li> <li>Fix rdtscp finding alongside --with-lg-vaddr. (<a href="https://en.mycoding.id/category/technology" target="_blank">@xinydev</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">e8a0d2b</a>)</li> <li>Fix malloc_getcpu on macOS to peruse the current CPU figure correctly.<br> (<a href="https://en.mycoding.id/category/technology" target="_blank">@Algunenano</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">5aabbc8</a>)</li> <li>Use CLOCK_MONOTONIC for background-thread sleep to prevent<br> clock-rollback stalls, and detect monotonic-condvar assistance at configure<br> time. (<a href="https://en.mycoding.id/category/technology" target="_blank">@antonio2368</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">ebacec3</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">8361239</a>)</li> <li>Fix compilation warnings on macOS. (<a href="https://en.mycoding.id/category/technology" target="_blank">@gctony</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">abb0a8a</a>)</li> <li>Fix thread-exit TSD cleanup on MinGW builds. (<a href="https://en.mycoding.id/category/technology" target="_blank">@gctony</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">1e92317</a>)</li> <li>Fix GCC 16 build warnings by removing -Wpedantic violations in macro<br> and function syntax and explicitly NUL-terminating profiling thread-name<br> copies to determine -Wstringop-truncation. (<a href="https://en.mycoding.id/category/technology" target="_blank">@grueninger</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">5acdcee</a>,<br> <a href="https://en.mycoding.id/category/technology" target="_blank">c22d929</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">@jasonangelov</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">6a245e0</a>)</li> <li>Parse PID-namespace symlinks without glibc-dependent strtok/atol,<br> and come back identifiers as uint64_t. (<a href="https://en.mycoding.id/category/technology" target="_blank">@guangli-dai</a>: <a href="https://en.mycoding.id/category/technology" target="_blank">278d90a</a>)</li> </ul></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/jemalloc-5-4-0-68666</guid> <pubDate>Fri, 18 Sep 2026 05:20:24 +0700</pubDate> <author><![CDATA[support@mycoding.id (Mira Azkia)]]></author> </item> <item> <title><![CDATA[The Scourge of x86 Emulation]]></title> <description><![CDATA[The Scourge of x86 Emulation. Comments]]></description> <media:thumbnail url="https://fex-emu.com/images/posts/scourge/before_patch.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/the-scourge-of-x86-emulation-68667</link> <content:encoded><![CDATA[<div> <p>Welcome to the archetypal characteristic part on our site. We&rsquo;re going to shield an ongoing issue alongside x86 emulation that affects all use that we emulate. This comes downward to a sole over-arching term that has wide-reaching ramifications; Emulating the <a href="https://en.mycoding.id/category/technology" target="_blank">x86 Total Store Ordering recollection model (x86-TSO)</a>.</p> <p>The problems alongside emulating this recollection example on the <a href="https://en.mycoding.id/category/technology" target="_blank">weak ordering recollection model</a> that ARM defines is multi-faceted and covers multiple issues. We&rsquo;re going to go complete all the problems that we can encounter and the ways we solve (or in several cases can&rsquo;t solve) in this article. Get yourself a snack and a heated beverage to enjoy, this is going to be a lengthy one.</p> <ul id="markdown-toc"> <li><a href="https://en.mycoding.id/category/technology" target="_blank" id="markdown-toc-what-exactly-is-x86-tso">What exactly is x86-TSO?</a></li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" id="markdown-toc-the-humble-beginnings-of-armv80-a">The humble beginnings of ARMv8.0-a</a></li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" id="markdown-toc-i-thought-accessing-memory-was-the-easy-bit">I idea accessing recollection was the uncomplicated bit?</a></li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" id="markdown-toc-oh-no-what-are-these-atomic-instructions">Oh no, what are these nuclear instructions?</a></li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" id="markdown-toc-what-do-you-mean-split-lock-is-mandatory">What do you average split-lock is mandatory?</a></li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" id="markdown-toc-wait-uncached-memory-needs-to-work">Wait, uncached recollection needs to work?</a></li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" id="markdown-toc-looking-towards-a-brighter-future">Looking towards a brighter future</a></li> </ul> <p>Before diving in to how we activity about the x86 recollection example problem, we need to archetypal conversation exactly what it is. A recollection example is a set of rules for how recollection accesses in a scheme behave in connection to all other. The rules volition dictate how loads and stores engage in a single-threaded or a multi-threaded environment. There&rsquo;s a fistful of famous recollection memory models implemented in assorted forms of hardware, but the two we attention about today is ARM&rsquo;s relaxed (or weak) consistency model, and the x86 type of Total-Store-Ordering consistency model. These two models are basically the two extremes of the spectrum; anywhere ARM is the most relaxed, allowing important hardware optimizations; and x86 is the most strict, enforcing a very strong coherency example that doesn&rsquo;t authorize a lot of area for optimization. One item to observe out concerning whenever discussing recollection models is the difference between consistency and atomicity. While these are related, they are not the identical nor guaranteed in <span data-toggle="tooltip" title="We volition arrive rear to this"><span>all cases</span></span>.</p> <p>The finest way to explain how the differences in recollection models activity is to commencement alongside how x86 handles this. With TSO being extremely strict in how it operates, the programmer can assume that whenever a recollection shop occurs, that this volition be coherently apparent to all another processors in the system. This additionally method that whenever a recollection burden occurs, all stores before it &ldquo;logically&rdquo; volition have been completed, or at smallest visible. This matches programmer expectations, you compose to memory, it becomes apparent as at the item of writing, as this is intuitive to think concerning whenever programming. The stores are efficiently ordering the visibility of the loads, thus the name of the model. There&rsquo;s a bit of nuance alongside how this operates but isn&rsquo;t strictly necessary to understand.</p> <p>The feeble recollection example that ARM has is a bit small intuitive concerning how it operates. By default the regular recollection loads and stores that ARM uses aren&rsquo;t strictly coherent throughout processors in your system, allowing the CPU to run additional efficiently most of the time. When a shop instruction executes, that part of recollection (the cacheline) isn&rsquo;t immediately apparent to another processors in the system. Saving on precious power and efficiency because it&rsquo;s costly in hardware to invalidate another core&rsquo;s cachelines, or authorize them to <span data-toggle="tooltip" title="The act of study another processors cachelines"><span>snoop</span></span> another processor&rsquo;s caches. Relatedly if a processor is loading data from recollection that another processor has written to, it&rsquo;s not guaranteed that this load volition equal see this updated memory. This appears akin it would logic several important problems in a multi-threaded use right? Older versions of ARM (ARMv7 and older) used a recollection obstacle education to justify ordering, which had important achievement implications.</p> <p>To get about this limitation of consistency, ARM additionally introduced load-acquire, and store-release recollection instructions. In C++ parlance this maps to <strong>std::atomic&rsquo;s</strong> <em>memory_order_acquire</em> and <em>memory_order_release</em> definitions respectively. In ARM&rsquo;s terminology, these instructions additionally aren&rsquo;t <strong><em>technically</em></strong> considered to be nuclear operations, but programmers conflate the two. FEX has used the conditions atomic-load and atomic-store to mean the identical thing! The difference <em>usually</em> doesn&rsquo;t matter, but whenever discussing these topics it may be improved to be pedantic concerning it.</p> <p>The chief use case for these instructions is to power recollection ordering between these category of instructions. ARM calls this the &ldquo;Release Consistency sequentially accordant (RCsc)&rdquo; model. Without getting too far in to the weeds concerning how this example operates, the essential gist is that the load-acquire instructions must be observed sequentially without reordering, and the store-release instructions must as fine during fulfilling &ldquo;barrier-ordered-before&rdquo; semantics. Removing the costly recollection obstacle education required in older ARM architecture versions.</p> <p>This is the premise of anywhere we commencement in ARMv8.0-a whenever we&rsquo;re emulating the x86-TSO recollection model. We create all x86 recollection loads rotate in to ARM&rsquo;s <strong>load-acquire</strong> instructions, and x86 recollection stores rotate in to <strong>store-release</strong> instructions. This gives FEX efficiently the identical recollection semantics as x86, although we are really being <em>more</em> strict than what is necessary. This is since we had no middle-ground which exactly matches behaviour. As one power think, it is <em>exceedingly</em> costly to emulate TSO wth this instructions and we have microbenchmarks that can display this. As ARM CPUs weren&rsquo;t designed to have these comparatively rare acquire/release instructions abruptly rotate into the huge bulk of instructions executed.</p> <p>First let&rsquo;s commencement alongside item uncomplicated and use a microbenchmark that is fairly nice to the hardware. No tricky edge-cases, fair accessing recollection in in the average case. This gives us several baseline numbers for what the best-case circumstance should be.</p> <p>Let&rsquo;s interrupt downward this chart as it tells us a few engaging stories. The Load and Store columns of all device is representing our baseline performance figure that our hardware have to be attempting to achieve. These aren&rsquo;t trying to max out the recollection bandwidth of all system, but do the same amount of activity for all category of operation. If we rotate our notice to the acquire-load results, we can see that out of the five CPUs tests, three of them have their achievement hindered fairly a bit by using acquire-loads! Additionally we can see that the AmpereOne CPU has release-store instructions that are strikingly low compared to the another results, and the M1 Acquire/LRCPC burden instructions are fairly a bit lesser than the baseline as well.</p> <p>The AmpereOne results in particular showcase how bad this bequest way can get. These instructions were never designed to be used this way. Using acquire-release semantics for all burden for x86 emulation really imposes several really strict restrictions on ARM CPUs in that the burden instructions can no longer be ordered about all another at all. So whenever you have millions of them in escape per second, the achievement isn&rsquo;t really expected to be good. But since these are the lone instructions we had alongside ARMv8.0-a, it&rsquo;s what we had to use. While Cortex-X4 and Cortex-X925 have amazing achievement for these, you can see how the Oryon-3 has deprioritized their importance.</p> <h2>Where do we go from here?</h2> <p>Let&rsquo;s obtain a nearer appearance at the LRCPC-load instructions, which is mandatory since ARMv8.3. This expansion adds a bunch of new burden instructions to the ARM ISA and adds a new recollection example on top of ARM&rsquo;s <em>RCsc</em> example from before. This new &ldquo;Release Consistency processor accordant (RCpc)&rdquo; recollection example is what we&rsquo;ve been wanting! This expansion is designed about the requirements that x86 emulation requires, and is expected to get used heavily on hardware that implements it. As you can see from the graph, nearly all of the platforms have their LRCPC-loads matching their regular loads in <span data-toggle="tooltip" title="Except for Apple. we&#039;ll arrive rear to that"><span>performance.</span></span></p> <p>With this new expansion that is mandated by newer ARM versions, we basically get <span data-toggle="tooltip" title="Not quite. We&#039;ll arrive rear to that"><span><strong>solved</strong></span></span> memory performance. At smallest according to this microbenchmark that seems to be the case. Once FEX detects this expansion we halt using Acquire-Load instructions entirely and toggle complete to LRCPC-Load instead. But what&rsquo;s going on alongside that Apple M1 result..?</p> <p>This is anywhere we need to commend Apple&rsquo;s way towards solving this problem. With their Apple Silicon processors they immediately added assistance for the x86-TSO recollection model. When the CPU characteristic is toggled, their <strong><em>regular</em></strong> load/store ARM instructions alter behavior to equivalent what x86 requires. They went this path knowing that they volition need a elevated achievement resolution for their hardware whenever switching to the ARM ecosystem exclusively. This is why on their hardware the LRCPC-load instructions are really pseudonyms of their acquire-load instructions, since their x86 emulator doesn&rsquo;t equal use these instructions! Because they execute the x86-memory model, they fair use regular load/store instructions, which can be seen in our microbench results as indiscernable achievement overhead. To be fair to the another platforms, this thread-wide TSO manner toggle does have some performance impact, we fair don&rsquo;t see it here. When FEX detects this CPU characteristic from <a href="https://en.mycoding.id/category/technology" target="_blank">Asahi Linux</a> we volition additionally allow this and get the &ldquo;free&rdquo; achievement improvement. A possible involvement is that whenever jumping between x86 emulation and ARM code, that the ARM code will pay unnecessary overhead because of all its accesses being TSO now. While this is a sensible concern, the amount of ARM native code executing under emulation approaches 0%. As a developer, you don&rsquo;t attention concerning 1% of recollection accesses becoming 10% slower, you attention concerning 99% of accesses becoming 15% of the &ldquo;ideal&rdquo; (As shown in AmpereOne results).</p> <p>As a note, we think a TSO manner is the finest way onward for ensuring elevated achievement x86 emulation on the platform. Because this ensures that all memory access education behaves how we desire or expect. This is shown alongside the authoritative <strong>FEAT_LRCPC</strong> expansion really having three versions that apply bandages to the implementation all time.</p> <ul> <li><strong>FEAT_LRCPC</strong> - Adds essential GPR TSO burden instructions</li> <li><strong>FEAT_LRCPC2</strong> - Adds small offset contiguous to TSO burden instructions</li> <li><strong>FEAT_LRCPC3</strong> - Adds essential vector and stack-based TSO burden &amp; shop instructions</li> </ul> <p>Even alongside these three extensions, there is edge-case behavior that can&rsquo;t be emulated as nicely as if we had a TSO hardware toggle. We are expecting there to be additional extensions versions as period goes on, trying to fix several of the additional problems we&rsquo;ll discuss later in the article.</p> <p>In the former section, we were being nice to the ARM hardware and playing alongside alongside the underlying hardware&rsquo;s alignment requirements to get a baseline for what the achievement should appearance like. When emulating x86 although, we run visage archetypal in to a glaring issue correct from the start. Your favourite x86 applications don&rsquo;t attention concerning alignment! They&rsquo;ll admission recollection nevertheless they please, crossing cacheline granularities, doing atomics that aren&rsquo;t aligned. You think of the alignment problems, these games are doing it. This issue is so bad that we have a term connected alongside it, called <span data-toggle="tooltip" title="We&#039;ll arrive rear to that"><span><strong>split-locks.</strong></span></span> These are specified a big agreement that equal the Linux kernel volition grasp whenever these happen and dilatory downward games whenever they do it! Causing many gamers to tinker with kernel options to evade the slowdown!</p> <p>But we aren&rsquo;t going to conversation concerning complete on split-locks yet, let&rsquo;s get started alongside fair load-store instructions in an surroundings that doesn&rsquo;t care about alignment. x86 makes certain guarantees to the programmer; if you do a load-store and it is inner of a <span data-toggle="tooltip" title="Effectively 64-bytes mandated"><span>cacheline</span></span> afterward that load-store volition be the two <span data-toggle="tooltip" title="The data won&#039;t tear"><span>atomic</span></span> and motionless equivalent the coherency example as described before. However, to be a little bit nice to the hardware developers, if the load-store <em>does</em> cross a cacheline, the data isn&rsquo;t nuclear and another threads can and volition see it tear. So the programmer needs to observe out as a essential load-store is not a split-lock.</p> <p>The issue alongside emulating these essential accesses alongside load-acquire/store-release is that ARMv8.0 requires what is known as <strong>natural alignment</strong>. This method that for any size of data being accessed, the offset in recollection must equivalent the size. So for an 8-byte access, it must be at offsets; 0, 8, 16, 24, etc. This plant fine for native ARM applications, but what happens whenever we don&rsquo;t obey natural alignment requirements? For ARM, this means the education alongside lift an <span data-toggle="tooltip" title="Or a SIGBUS for Linux people"><span><strong>alignment fault.</strong></span></span> The hardware validates that the alignment requirements are fulfilled and if they are not afterward the CPU volition fault. This normally results in a collision but FEX does particular handling.</p> <p>Inside of FEX&rsquo;s JIT scheme we keep track of recollection load-store instructions that are emulating the x86 load-stores. When we cognize that a load-store can logic an alignment error we have what is known as a <strong>patchpoint</strong> in the code. For load-store instructions, this shows up as a <strong>NOP</strong> education either before or following the load-store. When a alignment error occurs as one of these patchpoints, FEX will grasp the fault, place the code from a load-acquire/store-release education to a <strong>basic</strong> equal load-store, and wraps the instruction in a data recollection barrier. Then it continues executing!</p> <p> <img src="https://fex-emu.com/images/posts/scourge/before_patch.png"> <img src="https://fex-emu.com/images/posts/scourge/after_patch.png"> </p><p>Before afterward following patching</p> <p>That complete conversation from before concerning how ARMv8.0-a added these new fancy load-acquire, store-release instructions? We immediately fall back to the traditional recollection obstacle education alternatively whenever alignment behavior doesn&rsquo;t match. Our former diagram didn&rsquo;t display this bad case, so let&rsquo;s bring in several caller data.</p> <p>Oh, that&rsquo;s a lot of data to sift through. While again fine to see how far distant the hardware is from the &ldquo;optimal&rdquo; way during emulating TSO, it&rsquo;s not what we attention concerning here. It is engaging to note that this microbench doesn&rsquo;t showcase much of a difference between aligned and unaligned for regular load/stores so we just calculated an average between the two. We&rsquo;ll be removing the x86 CPU and the regular load-store data from the ARM columns, as these aren&rsquo;t the average FEX paths. This way we&rsquo;ll have a more targeted perspective concerning how seriously unaligned recollection accesses hurt under emulation.</p> <p>Now that we have a much additional sensible chart of data, let&rsquo;s stroll from remaining to correct on this and conversation what is going on.</p> <h2>AmpereOne</h2> <p>This one is beautiful interesting, the two the aligned and unaligned burden instructions are approximately equal and autumn inside noise. This method that even though the unaligned loads are getting hit alongside a <span data-toggle="tooltip" title="DMB"><span>data recollection barrier</span></span> penalty, the CPU fair handles it. This power be the case that the benchmark is bottlenecked by another things, considering how much lesser the achievement is compared to another platforms.</p> <p>Meanwhile the shop flank is not looking to be in a fine form equal without unaligned. It nearly isn&rsquo;t apparent on the chart! When hitting unaligned stores we&rsquo;re looking at ~8.5% of a achievement hit, but since we are already starting so low it is difficult to notice. This is additionally in stark contrast to regular shop instructions getting ~28GB/s in this bench.</p> <p>The lone decision we can arrive to current is that Ampere is optimizing for several server category workload and doesn&rsquo;t really equivalent person hardware behaviour. It&rsquo;s an engaging datapoint, but our users aren&rsquo;t typically operating games on this category of hardware.</p> <h2>Cortex-X4</h2> <p>This is a extremely famous CPU center that is living inner the <a href="https://en.mycoding.id/category/technology" target="_blank">Qualcomm Snapdragon 8 Gen 3</a>. We lone tested this one center from the SoC to not overwhelm the diagram alongside data. Quite a ample figure of handhelds container alongside this so it&rsquo;s an interesting target. This CPU really does <strong>surprisingly</strong> fine considering it&rsquo;s the lone cellphone SoC on this list. Overall this center benevolent of falls in line with what we would anticipate from it and the chart trends prosecute alongside the next-generation Cortex in that chart.</p> <p>The chief topics for this CPU are that its aligned loads and stores are fairly powerful, getting about 11.5GB/s and 6.7GB/s respectively. What&rsquo;s engaging is the achievement falloff whenever it needs to agreement alongside unaligned loadstores, hitting the <strong>DMB</strong> instructions penalizes the center approximately evenly between loads and stores at about 50% in this benchmark.</p> <p>This seems to connote that the CPU can keep a decent figure of LRCPC-release loadstores in escape so the <strong>DMB</strong> instructions hurt additional whenever they are encountered, but it isn&rsquo;t causing world-ending performance. Just that a 50% achievement hit because of alignment isn&rsquo;t an amazing result.</p> <h2>Cortex-X925</h2> <p>Following up the X4, let&rsquo;s halt by the <a href="https://en.mycoding.id/category/technology" target="_blank">DGX Spark</a> and its X925 cores. Not lone is this a newer CPU center from ARM, it&rsquo;s operating on a scheme alongside dramatically additional recollection bandwidth. 273GB/s in the phase versus the former 76.8GB/s. This means that we get fairly akin results to the X4 even, fair the chart scales a small higher. Interestingly enough, the achievement penalty for unaligned accesses approximately equivalent the X4 even. Although it looks akin the stores can regain a small faster, apt because of the faster recollection helping out. No surprises here, fair consistently matching achievement throughout the generations.</p> <h2>Oryon-3</h2> <p>This CPU center scheme is hot off the presses from Qualcomm. Linux assistance is motionless in the procedure of coming up but it already has a powerful showing. The most engaging outcome from this really comes from the fact that aligned LRCPC-load instructions are matching the performance of regular loads! That method in the case of a well-behaved use we can typically anticipate complete performance. This continues onward to the release-store instructions being fairly capable, although it doesn&rsquo;t fairly equivalent regular stores alongside lone 68% of the bandwidth. Not a bad showing in the slightest.</p> <p>This CPU additionally can&rsquo;t escape from the penalty of unaligned LRCPC-release loadstores. The burden flank is approximately matching the ~70% achievement penalty of the Cortex-X925, apt since the Snapdragon X2 Elite additionally has lots of bandwidth. But the shop flank really gets off a small worse at ~43% of the performance. Even alongside these achievement hits of unaligned accesses, this phase is really faster than the aligned accesses from the Cortex offerings.</p> <p>One of the weird things concerning this phase is that it was advertised to have &ldquo;Fully coherent 96KB 6-way L1 cache alongside 64B coherency granules.&rdquo; Which to our study implied that unaligned accesses should have dramatically small of a achievement impact. Interesting&hellip; keep that in mind.</p> <h2>Apple M1</h2> <p>This is the big one we need to conversation about. This is the one that was a equivalent changer, it was the &ldquo;Apple moment.&rdquo; It showed everyone that ARM was not lone feasible, it could be faster. These numbers on this diagram are amazing and it&rsquo;s the outcome of Apple sticking the TSO memory model immediately in to their hardware. Instead of using LRCPC-release accesses for this one, we fair enabled their TSO characteristic and the aligned versions basically equivalent the unaligned version. Maybe a 5% achievement hit on the stores? Compared to all another equipment on that chart, it&rsquo;s effectively nothing. This chiefly comes downward to unaligned accesses no longer requiring <strong>DMB</strong> instructions to be backpatched in to the code, as the hardware fair handles it directly.</p> <p>For us, this is what it method to obtain x86 emulation earnestly on ARM and it really shows that Apple cared that their customers would have a good experience operating application the two natively and emulated. They saw the issue and fair solved it, making it go away. That said, whenever the TSO manner <em>is</em> enabled, you do get a achievement hit. Comparing to the former chart it&rsquo;s lone getting 76% of the regular store performance, and the burden achievement basically matches; that&rsquo;s much additional tolerable to withstand whenever everything is so much faster.</p> <h2>Wrapping up unaligned LRCPC/release accesses</h2> <p>Wrapping up this section, we need to conversation concerning among the achievement improvements that all of these vendors really support. This is an extension that ARM whipped up called <strong>FEAT_LSE2</strong> which all of these tested platforms implement. We earlier talked concerning how acquire/LRCPC/release memory accesses necessitate natural alignment in command to not incur the wrath of the CPU raising alignment faults. ARM really idea about this issue and implemented this expansion which helps x86 emulation (and likely another workloads). This expansion loosens the alignment requirements of not lone acquire/LRCPC/release burden shop instructions, it <em>also</em> loosens the necessity for read-modify-write atomics!</p> <p>That appears all fine and good, but here&rsquo;s the boot to the teeth: that method it lone provides marginal achievement gains for x86 emulation. This extension lone loosens the alignment requirements to authorize unaligned recollection accesses inner of a 16-byte granule. Any admission that crosses that 16-byte granule motionless receives an alignment fault. x86 applications don&rsquo;t really attention concerning the alignment of their recollection accesses, so we get unaligned accesses throughout the complete cacheline. It&rsquo;s lone read-modify-write atomics that <strong>try</strong> to evade crossing a cacheline on x86!</p> <p>So gratitude for the attempt, it&rsquo;s nice to see, but it doesn&rsquo;t really move the needle. Since we&rsquo;re already talking concerning it, let&rsquo;s dive in to those RMW atomics shall we?</p> <p>Like most contemporary education sets, x86 supports nuclear recollection operations. These are instructions that execute an ALU procedure on data in memory atomically, allowing no intermediate province to be visible. In x86 conditions this operates on recollection that is the two nuclear and coherent, during ARM lets you choose to be lone nuclear <em>or</em> the two nuclear and coherent. We touched on this briefly before but there is really a difference between functioning on data atomically, and coherency of that data. What difference does it make?</p> <p>For all of the former x86 recollection example conversation we have been talking concerning the coherency implications of loads and stores being apparent to other processors in the system. What we entirely glossed complete is the atomicity requirements of these recollection accesses. In the earth of x86 a burden or store <em>usually</em> completes atomically equal whenever unaligned. This method that if you&rsquo;re storing 8-bytes of data, and another thread is loading those 8-bytes in a competition circumstance it volition never abruptly see a mix of the data from before the shop and following the store. In ARM these atomicity guarantees are <strong>significantly</strong> weaker, definition if you do an unaligned shop education the specification of the ISA has zero guarantees concerning study a <strong>tear</strong> in the data. Thankfully for <strong>naturally</strong> aligned load-store instructions, ARM has a specification called <strong>&ldquo;single-copy atomicity&rdquo;</strong> which guarantees you don&rsquo;t get a tear for these accesses. Also fine news; that <strong>FEAT_LSE2</strong> expansion from before? It really extends the single-copy atomicity guarantees to <em>any</em> unaligned admission inner of a 16-byte granule! The downside is that x86 has single-copy atomicity guarantees throughout a complete cacheline, so formerly again the expansion motionless didn&rsquo;t resolve item completely, fair reduced the figure of occurences.</p> <p>Enough concerning the differences in atomicity and coherency. Where&rsquo;s the genuine nuclear instructions? What do they do? Starting in ARMv8.1-a, our ISA has gained instructions that mostly matches x86 nuclear instructions in behaviour. Let&rsquo;s fair provision the complete catalog to display how they map immediately in our JIT.</p> <table readabilitydatatable="1"> <thead> <tr> <th><strong>x86</strong></th> <th><strong>ARMv8.1-a</strong></th> </tr> </thead> <tbody> <tr> <td>LOCK DEC</td> <td>ldaddal</td> </tr> <tr> <td>LOCK INC</td> <td>ldaddal</td> </tr> <tr> <td>LOCK NEG</td> <td><a href="https://en.mycoding.id/category/technology" target="_blank">???</a></td> </tr> <tr> <td>LOCK NOT</td> <td>ldeoral</td> </tr> <tr> <td>LOCK ADC</td> <td>ldaddal</td> </tr> <tr> <td>LOCK ADD</td> <td>ldaddal</td> </tr> <tr> <td>LOCK AND</td> <td>ldclral</td> </tr> <tr> <td>LOCK OR</td> <td>ldsetal</td> </tr> <tr> <td>LOCK SBB</td> <td>ldaddal</td> </tr> <tr> <td>LOCK SUB</td> <td>ldaddal</td> </tr> <tr> <td>LOCK XADD</td> <td>ldaddal</td> </tr> <tr> <td>LOCK XOR</td> <td>ldeoral</td> </tr> <tr> <td>LOCK BTC</td> <td>ldclralb</td> </tr> <tr> <td>LOCK BTR</td> <td>ldeoralb</td> </tr> <tr> <td>LOCK BTS</td> <td>ldsetalb</td> </tr> <tr> <td>LOCK CMPXCHG</td> <td>casal</td> </tr> <tr> <td>CMPXCHG8B</td> <td>caspal</td> </tr> <tr> <td>CMPXCHG16B</td> <td>caspal</td> </tr> </tbody> </table> <p>Well would you appearance at that, we have a complete catalog of the 18 nuclear RMW operations and they basically map immediately to several ARM instructions. Ignore the questionable one as it&rsquo;s not used in genuine workloads and we would get far too in to the weeds talking concerning it. We have a beautiful apparent 1:1 mapping between the architectures, job&rsquo;s done right? That&rsquo;s the comic item concerning x86 emulation, fair since we have these instructions doesn&rsquo;t average we get to cable them up without problems. We spent all this period talking concerning how unaligned accesses can really hurt achievement of regular loads and stores, this same problem additionally applies to RMW atomics!</p> <p>With this graph, we are looking at a sole nuclear education alongside its recollection location landing location inside a cacheline. If we included all of the data for all 18 nuclear operations afterward this data would be equal additional overwhelming than it already is. All these nuclear operations behave <em>roughly</em> equivalent so it would be redundant and wouldn&rsquo;t matter for what we&rsquo;re discussing current anyway. This is additionally the archetypal chart in this article that is actually using logarithmic scaling, so whenever study it create certain to comprehend that the achievement difference from the fastest to slowest outcome is on the measure of about 1000x.</p> <p>Starting alongside the x86 Zen processor on this graph; these are the results that our emulation have to be striving to achieve. As we can see, if the admission is fully contained inside a cacheline afterward the latency of the education is the identical at 1.44ns. This can be explained by x86 having &ldquo;atomic cachelines&rdquo; or &ldquo;coherent cachelines&rdquo;, anywhere as lengthy as an unaligned nuclear procedure stays inside a cacheline afterward it approximately expenses the same. This is a really powerful characteristic of x86 that has been supported for decades at this item so games end up relying on this heavily without equal realizing it. The stand-out outcome for x86 is the final outcome that is crossing a 64-byte granule and taking ~660ns! That&rsquo;s an amazingly dilatory outcome at ~458x slower compared to the another results since this is eventually the hardware using <strong>split-locks</strong>.</p> <p>We need to obtain a instant current to cry out an part that <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank">Chips and Cheese</a> wrote while we were preparing to compose our article. They do a awesome profound dive in to why these <strong>split-locks</strong> are so dramatically slower and is value the read if you&rsquo;re unaware of how they work. Specifically we need to citation that x86 split-locks keep the atomicity and coherency requirements of x86-TSO and volition <strong><em>never</em></strong> tear the data equal whenever crossing a cacheline. This is benevolent of nuts and we&rsquo;ll explain this additional later.</p> <p>Now for our ARM processors, let&rsquo;s commencement alongside the natural alignment latency numbers. As we can see, all of our platforms execute fairly fine but even the latest cores don&rsquo;t get anyplace near x86. Even our fastest ARM phase is ~3x the latency compared to x86; This immediately impacts achievement of games but normally isn&rsquo;t the straightforward bottleneck so it&rsquo;s difficult to measure exactly how much. Continuing onward to the next data point, we can actually combine the results for 16-byte granule and 64-byte granule crossing alongside most of our ARM platforms. Due to how the ARM specification defines how unaligned atomics work, the two of these results are approximately equal and FEX treats them the identical as the x86 <strong>split-lock</strong> problem.</p> <p>We keep bringing up this split-lock issue but how exactly does FEX emulate them and what makes it so slow? &ldquo;I idea Apple M1 added x86-TSO support in the hardware, why is it motionless slow?&rdquo; If you recall how we brought up before that <strong>FEAT_LSE2</strong> introduced assistance for unaligned recollection accesses within a 16-byte granule; these split-lock operations end up hitting the identical alignment problems as before but are dramatically slower. FEX can&rsquo;t backpatch any of these instructions to fair do a <strong>DMB</strong> operation, so we logic an <strong>alignment-fault</strong> all period one gets executed. This method that we do a kernel -&gt; userspace indication handler -&gt; kernel -&gt; first code dance. <em>every&mdash;single&mdash;time</em> one of this split-lock operations execute. Jumping between kernel-space and userspace is dilatory on all phase and whenever you&rsquo;re executing thousands of these per second it adds up extremely quickly. This is why the emulation of these characteristic is so terribly dilatory on ARM.</p> <p>One ARM phase today really partially resolved this issue although. The Oryon-3 CPU cores introduced what they advertised as &ldquo;coherent cachelines&rdquo; and we can see this in our microbenchmark results here. Just akin alongside x86, if the nuclear recollection admission in anyplace inner of the 64-byte cacheline, the achievement matches the natural alignment version! This is a enormous betterment that method the CPU is on par alongside x86 in feature assistance until the item it tries to cross a cacheline. We need to applaud Qualcomm on implementing this feature, as it resolves a major performance and correctness issue about split-locks for x86 emulation. The hardware motionless doesn&rsquo;t assistance 64-byte <strong>split-locks</strong> so we motionless fall down the FEX emulated way in that case although.</p> <p>Continuing on to the Apple result; equal although they added x86-TSO recollection accesses to their hardware for several logic they neglected to execute full cacheline unaligned atomics akin Oryon did. It seems akin they should have expected this border case to exterior and execute it but that&rsquo;s fair speculation. This is why you can see the cross 16-byte granule behaving the identical as another platforms equal alongside the TSO hardware toggle enabled.</p> <p>You power have additionally noticed another small data quirk in the graph. We have an asterisk on the Cortex-X4 outcome in this benchmark and the performance of the unaligned atomics are dramatically faster than considerably newer CPUs. It is somehow managing to have only ~209ns latency, during the X925 is latency is 1060ns; that&rsquo;s a 5x perf improvement! How can this perchance be the case? This is really several fun &ldquo;special sauce&rdquo; that is shipping on the phase we&rsquo;re evaluation on, which is of way the <strong><a href="https://en.mycoding.id/category/technology" target="_blank">Valve Steam Frame</a></strong>. Because Valve cares concerning the achievement of their existing gaming catalogue, they are shipping a <a href="https://en.mycoding.id/category/technology" target="_blank">kernel patch</a> that among the FEX developers whipped up. This allows the Linux kernel itself to grip the unaligned nuclear without that dilatory dancing alongside FEX and userspace, allowing it to be dramatically faster. If other platforms desire to container this place in the kernel afterward we propose picking it up as and FEX volition automatically commencement using it.</p> <p>Speaking of kernel intervention, we need to conversation concerning how split-lock emulation is not really fairly accurate under FEX because of restrictions in the hardware. In command to execute this mandatory characteristic of x86 correctly, any period we do a 16-byte or 64-byte split-lock, the lone way to handle it is to have the kernel execute the feature. Right now FEX implements this as a &ldquo;best-effort&rdquo; attempt that can really tear the data in some cases. You&rsquo;ll recall that before we stated split-locks on x86 volition never tear right? Not equal the Oryon-3 alongside its &ldquo;coherent cachelines&rdquo; have resolved this issue yet.</p> <p>Implementing split-lock emulation alongside today&rsquo;s ARM hardware in a performant matter is really really difficult to do. A naive implementation is to use a earth mutex and whenever a split-lock occurs we volition justify to get the mutex before doing the operation. This method that any <em>participating</em> split-lock procedure volition chimney through this mutex. This is accurate apart from for the matter that any aligned nuclear operation isn&rsquo;t a split-lock and won&rsquo;t participate. Due to the split-lock emulation code needed to be implemented as two 64-bit compare-exchange operations alongside all fractional straddling the granularity boundary, we can get a tear alongside a non-participating nuclear still. A trivial example is one thread continually modifying an nuclear in the center of the cacheline, and afterward another thread modifying <em>only</em> the entire figure on one half. This power sound like a contrived example initially, but there are lock-less <a href="https://en.mycoding.id/category/technology" target="_blank">linked-list</a> implementations that behave exactly akin this! Depending on which fractional the aligned thread is modifying, either the archetypal or second CAS in the split-lock code volition fail. If the archetypal CAS fails, then that&rsquo;s harmless and the code can retry, if the <em>second</em> CAS fails that method the data has torn and we can do nothing but anticipation it doesn&rsquo;t corrupt data and crash. This volition entirely depend on the algorithm that the visitant use is using so we don&rsquo;t authority it.</p> <p>An substitute method that is entirely untenable is to have the kernel track all processes and threads that are sharing recollection alongside all other, then whenever a thread needs to emulate a split-lock the kernel can halt <strong><em>every</em></strong> procedure that is sharing recollection alongside that process, do the split-lock in isolation, and afterward restart the world. The achievement implications of this method aren&rsquo;t viable. Applications and games can end up doing thousands or more split-locks per second and halting the earth volition have an intractable achievement hit that is dramatically worse than equal x86 native.</p> <p>If we desire to justify correctness in the emulation of split-locks FEX needs to have hardware assistance in several form to assistance these. Although we&rsquo;re not saying that all nuclear operations should now assistance split-locks akin x86, that would additionally not be viable. The fine news is that ARM really has an extension for this that does exactly what we want. ARM has an expansion call <strong><a href="https://en.mycoding.id/category/technology" target="_blank">Transactional Memory Extension</a></strong> that could resolve our problem. This expansion allows our code to do several figure of operations inner of a transactional region, afterward commit that activity atomically; if the commit procedure fails, afterward we can merely retry. The downside of this extension? ARM has officially deprecated the expansion and no one always shipped it. This is apt for the finest as the x86 type of the extension has had an abundance of problems that caused it to be impaired on many platforms.</p> <p>So we need item alternatively to emulate split-locks correctly. For a resolution that we accept plant for the two FEX needs and ARM vendor needs, we have come up alongside the idea that a 128-bit <strong>CASP</strong> education can be stated the capability to have all fractional of the CASP absolutely straddle the nuclear granule boundary, 64-bits on the lesser half, and 64-bits on the high half. Then <em>only</em> in that case does the education not lift an alignment-fault and tries to do the CAS operation. This plant since x86 lone has up to 64-bit unaligned nuclear operations, so the two halves of the operation can continually be completely enclosed by our sole operation.</p> <p>But you may be asking yourself, &ldquo;how is this any improved than the hardware fair supporting split-locks?&rdquo; That&rsquo;s a fine idea and we need to be careful alongside the how exactly we depict this operation. For x86 their nuclear operations must <em>always</em> win without tear. For our emulated approach, we can have this ARM <strong>CASP</strong> education neglect safely and afterward we can try again. This is among the benefits of CAS is that the procedure can neglect for <em>any</em> logic and it must be tried again. The education afterward additionally returns the data that it loaded from recollection in that time so the program has the latest up to date memory. This is an crucial difference since that method FEX can retry the <strong>CAS</strong> operations infinite times until it inevitably succeeds! This is a advantage of ARM LL/SC architecture that basically allows this to work. A tricky item is that the hardware does need to justify onward advancement at <em>some</em> item but it already has assistance for that for another reasons so it&rsquo;s entirely viable! The lone newly added nonaccomplishment manner to the <em>CAS</em> education is purely if among the two cachelines got acquired by another center before it could do the complete operation. Even if the hardware motionless requires up to a brace thousand cycles to justify onward progress, that basically matches x86 behaviour.</p> <p>We think this would be the finest way onward for x86 emulation of split-locks on ARM platforms, but we&rsquo;re not hardware architects so all we can do is complain and anticipation person solves it for us. We&rsquo;ll depart the split-lock conversation there for now so we can move on to another engaging problem.</p> <p>Before we get in to this topic we need to conversation concerning the term &ldquo;uncached&rdquo; since it can average a brace of things depending on your perspective of the world. For the purposes of this article, we are using Vulkan terminology since we attention concerning games primarily. In Vulkan conditions we have <em>VK_MEMORY_HOST_CACHED_BIT</em> which method that the presenter CPU caches this memory. The deficiency of this bit is what we attention concerning here, and what we mention to as &ldquo;uncached.&rdquo; As for what this method to the recollection subsystem, it gets a small additional complex than you would think. In particular whenever the recollection is living on a GPU, possibly complete PCIe, whenever the recollection is &ldquo;uncached&rdquo; it volition additionally typically (but not always!) additionally acquire the flag <em>VK_MEMORY_HOST_COHERENT</em>. This method that since of the uncacheable asset of the memory, the CPU and GPU continually have a coherent earth recollection view with all other.</p> <p>For the CPU this typically method the recollection can be mapped up to three ways. When asking for &ldquo;cached&rdquo; memory, this typically has a recollection category of <a href="https://en.mycoding.id/category/technology" target="_blank">Write-back</a> which is additionally what regular recollection mapping types are. &ldquo;uncached&rdquo; mapping can be either <a href="https://en.mycoding.id/category/technology" target="_blank">Write-Combine</a> or &ldquo;Strong Uncacheable&rdquo;. The &ldquo;Strong Uncacheable&rdquo; implementation is basically non-existant for userspace applications so we can disregard that for today&rsquo;s discussion. This limits us to efficiently <strong>WB</strong> (cached) and <strong>WC</strong> (uncached) recollection types. Cached is what games typically use for staging buffers, and afterward uncached is what we use whenever passing data directly to the GPU.</p> <p>This is code-ified in many equivalent engines that if you don&rsquo;t disclose assistance for uncached buffer types afterward several don&rsquo;t work. This comes downward to a behaviour item about the differences of <a href="https://en.mycoding.id/category/technology" target="_blank">UMA</a> systems akin APUs and PCIe GPUs. UMA systems volition typically disclose the capability to allocate recollection that is cached, coherent, and GPU visible. Where PCIe GPUs can&rsquo;t justify that behaviour so equivalent developers need to either use a staging buffer and an async copy of the data complete to the GPU, or use &ldquo;uncached&rdquo; recollection to extremely carefully shuffle the data complete to the GPU through PCIe. Because of how ubiquitous PCIe is alongside PC gaming, several engines won&rsquo;t equal do UMA particular code paths and volition do the uncached method regardless!</p> <p>With that small introduction out of the way for what uncached method for us. Let&rsquo;s bring up a benchmark for how accelerated cached recollection is on several UMA Snapdragon systems. This volition let us get a baseline for how the achievement have to be regularly.</p> <p>For the two the <strong>Steam Frame</strong> and <strong>Snapdragon X2 Elite</strong> these are several really fine results. As we would expect, the Oryon-3 phase has additional memory bandwidth so it is capable to measure higher in the chart, but the two are hitting dozens of gigabytes per second in their results. This chart sets a good baseline for what &ldquo;normal&rdquo; <strong>write-back</strong> recollection can achieve. Let&rsquo;s now display uncached results to see the achievement differences.</p> <p>There&rsquo;s several different things happening current so we had to use logarithmic again on this graph. Let&rsquo;s conversation concerning the fine archetypal that has shown up. Due to uncached recollection buffers being write-combine, we can see that the regular stores for our ARM platforms equivalent the cached benchmark results. This comes downward to write-combine recollection using what is coined as <a href="https://en.mycoding.id/category/technology" target="_blank">write merge buffers</a> that really <em>very</em> temporarily keep about a cacheline of data so that write-combine can burst a cacheline of recollection at a time. Interestingly enough it looks akin the Zen 4&rsquo;s WCB can&rsquo;t fairly keep up alongside cached, but considering this is expected to be going complete a PCIe bus it&rsquo;s likely fine.</p> <p>Now let&rsquo;s get in to the really ugly results that we have here. Starting off alongside the easier to explain is the burden bandwidth from write-combined memory is dreadful on all platforms tested. If we&rsquo;re using Zen as our baseline for performance, afterward our regular burden instructions are ARM are winning, but the LRCPC loads are worse. What&rsquo;s going on here? This is a quirk of how write-combined recollection operates, since it is uncached our load instructions are required to go out to scheme recollection for all sole admission to keep semantics. Then whenever we add LRCPC-loads on top of that, it just compounds the issue equal further. But the worst case out of all of this is fair how seriously the shop achievement is, compared to the achievement that Zen gets on the stores, this is basically a showstopper. Up to <strong>816x worse</strong> bandwidth! We had games akin <a href="https://en.mycoding.id/category/technology" target="_blank">Hollow Knight: Silksong</a> and <a href="https://en.mycoding.id/category/technology" target="_blank">Subnautica 2</a> run at small than 1FPS since of this achievement cliff.</p> <p>As we were saying above, whenever there are PCIe GPUs in the mix afterward games volition need to use uncached recollection to continue data to the GPU. When emulating x86 games on platforms alongside a dedicated PCIe GPU afterward we are in an unwinnable circumstance and we are guaranteed to run dramatically slower. Remember how ARM has added the family of <strong>FEAT_LRCPC1/2/3</strong> extensions from before to enhance x86 recollection example emulation? This is what happens whenever we hit an edge-case that isn&rsquo;t supported. All of these extensions add new instructions to grip loading recollection using x86-TSO recollection example semantics but none of them resolve storing to write-combine recollection alongside x86-TSO semantics. All the way from ARMv8.0-a our shop instructions use the regular store-release instructions despite of the assistance recollection type. The lone way for FEX to activity about this issue is to selectively disable TSO-emulation whenever it becomes an issue, so x86 emulation platforms alongside PCIe GPUs volition continually be a worse cognition than UMA. At smallest until we get another <strong>FEAT_LRCPC4</strong> or akin to determine the issue.</p> <p>For users on UMA systems afterward rejoice, there&rsquo;s a workaround for gaming that we use to enhance performance. Because we cognize whenever a phase supports cache-coherent CPU and GPU combinations, we can have the video controller <strong><em>always</em></strong> use cached buffers and never encounter this problem. NVIDIA already does this on their Tegra platforms, Snapdragon has been supporting this since at smallest Adreno 600 category GPUs, and there are many Mali platforms anywhere this is additionally the case. We have a <a href="https://en.mycoding.id/category/technology" target="_blank">Adreno Turnip</a> place that ensures whenever FEX is running, we never hit uncached recollection for platforms that assistance it. A comic item is that since Asahi users have a hardware TSO bit, they fair naturally don&rsquo;t encounter this issue in the wild, but getting a PCIe GPU on to that phase is a distinct narrative altogether. There&rsquo;s also a fun quirk anywhere Radeon GPUs on ARM platforms conceal all write-combine recollection to alternatively be write-back but we&rsquo;ll conversation concerning that another time.</p> <p>After that marathon of an part we anticipation you have a improved understanding of several of the challenges that emulating the x86-TSO recollection example brings. Where we started alongside ARMv8.0 as a minimum spec and anywhere the hardware has provided theatrical improvements complete the years in nothing abbreviated of astounding. While not all of the edge-cases are yet resolved at the architecture level, it looks akin there is a genuine dedication throughout the ecosystem for trying to enhance the worst cases. We have assorted vendors solving several parts of the issue and moving the needle onward for better compatibility. Maybe in another decade as we appearance rear at this period we&rsquo;ll chuckle concerning the problems we were encountering now, during enjoying several quality x86 games that volition never see a harbor to ARM hardware. Keeping the bequest of the PC gaming ecosystem alive, despite of anywhere we power end up playing it.</p> <hr> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/the-scourge-of-x86-emulation-68667</guid> <pubDate>Fri, 18 Sep 2026 05:09:48 +0700</pubDate> <author><![CDATA[support@mycoding.id (Mira Azkia)]]></author> </item> <item> <title><![CDATA[Waymo in Singapore]]></title> <description><![CDATA[Waymo in Singapore. Comments]]></description> <media:thumbnail url="https://lh3.googleusercontent.com/2wnrIyeTPHdEPuuGNRkayMYx4bgzqvwcfWB62B7olSXEhCG5s0VmQeLcJqlDljcIFgb7C3v8AwsxreaFw6rux910IfZYi215Gq0"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/waymo-in-singapore-68664</link> <content:encoded><![CDATA[<div id="root"><div><video muted playsinline data-maybe-autoplay="true" preload="auto" fetchpriority="high" poster="//lh3.googleusercontent.com/tNEftjYjvRcJ4vcMt20qs1FYAC3olfC5E_rbQiNB2F4ZBYrvmDdWI9RN01SZkDKY_c8zbZf691kyZsNpTQny-Zt6HukQnO9QZxo"><source src="//storage.googleapis.com/gweb-mobius-waymo-cdn/waymo/uploads/7e434b0c13701d8ce47d31421ec9102cad5167b0.webm#t=0.001" type="video/webm"></source><source src="//storage.googleapis.com/gweb-mobius-waymo-cdn/waymo/uploads/92b973b176e96387c60ea25e93e38805d67c70cc.mp4#t=0.001" type="video/mp4"></source><p>Your web browser does not assistance this video.</p></video><video muted playsinline data-maybe-autoplay="true" preload="auto" fetchpriority="high" poster="//lh3.googleusercontent.com/tNEftjYjvRcJ4vcMt20qs1FYAC3olfC5E_rbQiNB2F4ZBYrvmDdWI9RN01SZkDKY_c8zbZf691kyZsNpTQny-Zt6HukQnO9QZxo"><source src="//storage.googleapis.com/gweb-mobius-waymo-cdn/waymo/uploads/3f8b7a565d0c9d8f22ba5b48c1713c4a536daceb.webm#t=0.001" type="video/webm"></source><source src="//storage.googleapis.com/gweb-mobius-waymo-cdn/waymo/uploads/b17f0a15c81c03d30900c46fd65f0a5efb8cadfb.mp4#t=0.001" type="video/mp4"></source><p>Your web browser does not assistance this video.</p></video></div><div><p>Waymo</p><p><span lang="zh">&#26469;&#21040;&#26032;&#21152;&#22369;</span><span lang="ms">Kini di Singapura</span><span lang="ta">&#2970;&#3007;&#2969;&#3021;&#2965;&#2986;&#3021;&#2986;&#3010;&#2992;&#3009;&#2965;&#3021;&#2965;&#3009; &#2997;&#2984;&#3021;&#2980;&#3009;&#2975;&#3021;&#2975;&#3009;</span><span lang="en">in Singapore</span></p><div><div><source srcset="//lh3.googleusercontent.com/ijQrgxR5RxddjP3e9EoR82EPUQ-I4cZQi5nm3vnCoJNal8nt_CW5VFJM-gDywsTTANOk6fTOjoLJErRh11XYokLMYo8IA4_G1mI=e365-s2880-rw-v1 2x, //lh3.googleusercontent.com/ijQrgxR5RxddjP3e9EoR82EPUQ-I4cZQi5nm3vnCoJNal8nt_CW5VFJM-gDywsTTANOk6fTOjoLJErRh11XYokLMYo8IA4_G1mI=e365-s1440-rw-v1 1x" media=" 600px)" type="image/webp" width="1246" height="646"></source><source srcset="//lh3.googleusercontent.com/ijQrgxR5RxddjP3e9EoR82EPUQ-I4cZQi5nm3vnCoJNal8nt_CW5VFJM-gDywsTTANOk6fTOjoLJErRh11XYokLMYo8IA4_G1mI=e365-s2880-v1 2x, //lh3.googleusercontent.com/ijQrgxR5RxddjP3e9EoR82EPUQ-I4cZQi5nm3vnCoJNal8nt_CW5VFJM-gDywsTTANOk6fTOjoLJErRh11XYokLMYo8IA4_G1mI=e365-s1440 1x" media=" 600px)" type="image/jpeg" width="1246" height="646"></source><source srcset="//lh3.googleusercontent.com/ijQrgxR5RxddjP3e9EoR82EPUQ-I4cZQi5nm3vnCoJNal8nt_CW5VFJM-gDywsTTANOk6fTOjoLJErRh11XYokLMYo8IA4_G1mI=e365-s840-rw-v1 2x, //lh3.googleusercontent.com/ijQrgxR5RxddjP3e9EoR82EPUQ-I4cZQi5nm3vnCoJNal8nt_CW5VFJM-gDywsTTANOk6fTOjoLJErRh11XYokLMYo8IA4_G1mI=e365-s420-rw-v1 1x" media=" 599px)" type="image/webp" width="1246" height="646"></source><img alt="Side overview of a pale Waymo autonomous car alongside roof-mounted lidar and flank sensors." loading="eager" fetchpriority="high" srcset="//lh3.googleusercontent.com/ijQrgxR5RxddjP3e9EoR82EPUQ-I4cZQi5nm3vnCoJNal8nt_CW5VFJM-gDywsTTANOk6fTOjoLJErRh11XYokLMYo8IA4_G1mI=e365-s840-v1 2x, //lh3.googleusercontent.com/ijQrgxR5RxddjP3e9EoR82EPUQ-I4cZQi5nm3vnCoJNal8nt_CW5VFJM-gDywsTTANOk6fTOjoLJErRh11XYokLMYo8IA4_G1mI=e365-s420 1x" src="https://lh3.googleusercontent.com/ijQrgxR5RxddjP3e9EoR82EPUQ-I4cZQi5nm3vnCoJNal8nt_CW5VFJM-gDywsTTANOk6fTOjoLJErRh11XYokLMYo8IA4_G1mI=e365-s420" width="1246" height="646"></div></div><p data-inview="true">Lion City, encounter autonomous rides</p><p>Across a landscape shaped by world-class infrastructure and connectivity, we appearance onward to introducing Singaporeans to our forthcoming all-electric autonomous ride-hail fleet. We aim to provision a harmless and accessible new movement choice in alliance alongside authorities officials to assistance Singapore in its green journey and imagination to becoming a chief in astute mobility.</p></div><div><div><source srcset="//lh3.googleusercontent.com/qrC0636wFXmwTZLcmuwIYtw6pUKrZMLSgjColY6IfFSJhu7emmdLuzZZQFYXg5Q2aGajQv2G1pfQ3macREpwm-MWsrt-vpBnLnEB=e365-s5472-rw-v1 2x, //lh3.googleusercontent.com/qrC0636wFXmwTZLcmuwIYtw6pUKrZMLSgjColY6IfFSJhu7emmdLuzZZQFYXg5Q2aGajQv2G1pfQ3macREpwm-MWsrt-vpBnLnEB=e365-s2736-rw-v1 1x" media=" 1440px)" type="image/webp" width="2354" height="648"></source><source srcset="//lh3.googleusercontent.com/qrC0636wFXmwTZLcmuwIYtw6pUKrZMLSgjColY6IfFSJhu7emmdLuzZZQFYXg5Q2aGajQv2G1pfQ3macREpwm-MWsrt-vpBnLnEB=e365-s5472-v1 2x, //lh3.googleusercontent.com/qrC0636wFXmwTZLcmuwIYtw6pUKrZMLSgjColY6IfFSJhu7emmdLuzZZQFYXg5Q2aGajQv2G1pfQ3macREpwm-MWsrt-vpBnLnEB=e365-s2736 1x" media=" 1440px)" type="image/jpeg" width="2354" height="648"></source><source srcset="//lh3.googleusercontent.com/uLwJCujs4rs3DtcOGLA4Wd3vScdsj3DFJ0Qnv1KvXCvtWrKXFmGFnr5gKhj2fhfxIegnJPxabOS9nr3Q1IImm3KG1_3cyuudIgM=e365-s5472-rw-v1 2x, //lh3.googleusercontent.com/uLwJCujs4rs3DtcOGLA4Wd3vScdsj3DFJ0Qnv1KvXCvtWrKXFmGFnr5gKhj2fhfxIegnJPxabOS9nr3Q1IImm3KG1_3cyuudIgM=e365-s2736-rw-v1 1x" media=" 600px)" type="image/webp" width="2354" height="648"></source><source srcset="//lh3.googleusercontent.com/uLwJCujs4rs3DtcOGLA4Wd3vScdsj3DFJ0Qnv1KvXCvtWrKXFmGFnr5gKhj2fhfxIegnJPxabOS9nr3Q1IImm3KG1_3cyuudIgM=e365-s5472-v1 2x, //lh3.googleusercontent.com/uLwJCujs4rs3DtcOGLA4Wd3vScdsj3DFJ0Qnv1KvXCvtWrKXFmGFnr5gKhj2fhfxIegnJPxabOS9nr3Q1IImm3KG1_3cyuudIgM=e365-s2736 1x" media=" 600px)" type="image/jpeg" width="2354" height="648"></source><source srcset="//lh3.googleusercontent.com/uLwJCujs4rs3DtcOGLA4Wd3vScdsj3DFJ0Qnv1KvXCvtWrKXFmGFnr5gKhj2fhfxIegnJPxabOS9nr3Q1IImm3KG1_3cyuudIgM=e365-s4000-rw-v1 2x, //lh3.googleusercontent.com/uLwJCujs4rs3DtcOGLA4Wd3vScdsj3DFJ0Qnv1KvXCvtWrKXFmGFnr5gKhj2fhfxIegnJPxabOS9nr3Q1IImm3KG1_3cyuudIgM=e365-s2000-rw-v1 1x" media=" 599px)" type="image/webp" width="2354" height="648"></source><img alt="Singapore horizon perspective alongside blue connectivity indication waves arching complete the city at sunrise." loading="eager" fetchpriority="high" srcset="//lh3.googleusercontent.com/uLwJCujs4rs3DtcOGLA4Wd3vScdsj3DFJ0Qnv1KvXCvtWrKXFmGFnr5gKhj2fhfxIegnJPxabOS9nr3Q1IImm3KG1_3cyuudIgM=e365-s4000-v1 2x, //lh3.googleusercontent.com/uLwJCujs4rs3DtcOGLA4Wd3vScdsj3DFJ0Qnv1KvXCvtWrKXFmGFnr5gKhj2fhfxIegnJPxabOS9nr3Q1IImm3KG1_3cyuudIgM=e365-s2000 1x" src="https://lh3.googleusercontent.com/uLwJCujs4rs3DtcOGLA4Wd3vScdsj3DFJ0Qnv1KvXCvtWrKXFmGFnr5gKhj2fhfxIegnJPxabOS9nr3Q1IImm3KG1_3cyuudIgM=e365-s2000" width="2354" height="648"></div></div><div><p>Waymo aims to complement the city&rsquo;s imagination for sustainable betterment and assistance the Singapore Green Plan 2030 by delivering safe, efficient, zero-emission rides.</p></div><h2 aria-hidden="false">A cleaner way to move</h2><div><div><source srcset="//lh3.googleusercontent.com/UqkpAHVF1RyJFRTGtl0SwmhAH94fl-xEdswlCYMABb33wJi28agDmysF1jT2OYzZS5qjbSloEs8kyc7AFUe173TKUikJC7iPD9U=e365-s2880-rw-v1 2x, //lh3.googleusercontent.com/UqkpAHVF1RyJFRTGtl0SwmhAH94fl-xEdswlCYMABb33wJi28agDmysF1jT2OYzZS5qjbSloEs8kyc7AFUe173TKUikJC7iPD9U=e365-s1440-rw-v1 1x" media=" 600px)" type="image/webp" width="966" height="403"></source><source srcset="//lh3.googleusercontent.com/UqkpAHVF1RyJFRTGtl0SwmhAH94fl-xEdswlCYMABb33wJi28agDmysF1jT2OYzZS5qjbSloEs8kyc7AFUe173TKUikJC7iPD9U=e365-s2880-v1 2x, //lh3.googleusercontent.com/UqkpAHVF1RyJFRTGtl0SwmhAH94fl-xEdswlCYMABb33wJi28agDmysF1jT2OYzZS5qjbSloEs8kyc7AFUe173TKUikJC7iPD9U=e365-s1440 1x" media=" 600px)" type="image/jpeg" width="966" height="403"></source><source srcset="//lh3.googleusercontent.com/UqkpAHVF1RyJFRTGtl0SwmhAH94fl-xEdswlCYMABb33wJi28agDmysF1jT2OYzZS5qjbSloEs8kyc7AFUe173TKUikJC7iPD9U=e365-s840-rw-v1 2x, //lh3.googleusercontent.com/UqkpAHVF1RyJFRTGtl0SwmhAH94fl-xEdswlCYMABb33wJi28agDmysF1jT2OYzZS5qjbSloEs8kyc7AFUe173TKUikJC7iPD9U=e365-s420-rw-v1 1x" media=" 599px)" type="image/webp" width="966" height="403"></source><img alt="White Waymo self-driving conveyance armed alongside LiDAR sensors and cameras on a Singapore street." loading="eager" fetchpriority="high" srcset="//lh3.googleusercontent.com/UqkpAHVF1RyJFRTGtl0SwmhAH94fl-xEdswlCYMABb33wJi28agDmysF1jT2OYzZS5qjbSloEs8kyc7AFUe173TKUikJC7iPD9U=e365-s840-v1 2x, //lh3.googleusercontent.com/UqkpAHVF1RyJFRTGtl0SwmhAH94fl-xEdswlCYMABb33wJi28agDmysF1jT2OYzZS5qjbSloEs8kyc7AFUe173TKUikJC7iPD9U=e365-s420 1x" src="https://lh3.googleusercontent.com/UqkpAHVF1RyJFRTGtl0SwmhAH94fl-xEdswlCYMABb33wJi28agDmysF1jT2OYzZS5qjbSloEs8kyc7AFUe173TKUikJC7iPD9U=e365-s420" width="966" height="403"></div></div><h2 data-equalize-height-to="section1" data-inview="true" aria-hidden="false"><p>Features</p></h2><ul data-slot="slides-container" data-inview="true"><li data-equalize-height-id="false" aria-labelledby="w-6prwk42y-title-0" id="w-6prwk42y-slide-0" data-index="0"><div data-equalize-heights="false"><div><source srcset="//lh3.googleusercontent.com/xOscWnhnyjWSpupx-2dUvBqYn3myVj7ZGb2s6BV6HiA3hT4T8pfsTYs7MUMjR9SoLUhu4rmUw3f81vHPSUfheZr4_dUnuJHkqIQ=e365-s2880-rw-v1 2x, //lh3.googleusercontent.com/xOscWnhnyjWSpupx-2dUvBqYn3myVj7ZGb2s6BV6HiA3hT4T8pfsTYs7MUMjR9SoLUhu4rmUw3f81vHPSUfheZr4_dUnuJHkqIQ=e365-s1440-rw-v1 1x" media=" 600px)" type="image/webp" width="426" height="216"></source><source srcset="//lh3.googleusercontent.com/xOscWnhnyjWSpupx-2dUvBqYn3myVj7ZGb2s6BV6HiA3hT4T8pfsTYs7MUMjR9SoLUhu4rmUw3f81vHPSUfheZr4_dUnuJHkqIQ=e365-s2880-v1 2x, //lh3.googleusercontent.com/xOscWnhnyjWSpupx-2dUvBqYn3myVj7ZGb2s6BV6HiA3hT4T8pfsTYs7MUMjR9SoLUhu4rmUw3f81vHPSUfheZr4_dUnuJHkqIQ=e365-s1440 1x" media=" 600px)" type="image/jpeg" width="426" height="216"></source><source srcset="//lh3.googleusercontent.com/xOscWnhnyjWSpupx-2dUvBqYn3myVj7ZGb2s6BV6HiA3hT4T8pfsTYs7MUMjR9SoLUhu4rmUw3f81vHPSUfheZr4_dUnuJHkqIQ=e365-s840-rw-v1 2x, //lh3.googleusercontent.com/xOscWnhnyjWSpupx-2dUvBqYn3myVj7ZGb2s6BV6HiA3hT4T8pfsTYs7MUMjR9SoLUhu4rmUw3f81vHPSUfheZr4_dUnuJHkqIQ=e365-s420-rw-v1 1x" media=" 599px)" type="image/webp" width="426" height="216"></source><img alt="A pale Waymo self-driving electric car plugged into a charging position on a pale background." loading="lazy" fetchpriority="auto" srcset="//lh3.googleusercontent.com/xOscWnhnyjWSpupx-2dUvBqYn3myVj7ZGb2s6BV6HiA3hT4T8pfsTYs7MUMjR9SoLUhu4rmUw3f81vHPSUfheZr4_dUnuJHkqIQ=e365-s840-v1 2x, //lh3.googleusercontent.com/xOscWnhnyjWSpupx-2dUvBqYn3myVj7ZGb2s6BV6HiA3hT4T8pfsTYs7MUMjR9SoLUhu4rmUw3f81vHPSUfheZr4_dUnuJHkqIQ=e365-s420 1x" src="https://lh3.googleusercontent.com/xOscWnhnyjWSpupx-2dUvBqYn3myVj7ZGb2s6BV6HiA3hT4T8pfsTYs7MUMjR9SoLUhu4rmUw3f81vHPSUfheZr4_dUnuJHkqIQ=e365-s420" width="426" height="216"></div></div><div><p>All-electric fleet</p><p>We&rsquo;re arrogant to develop admission to electric vehicles through our shared, autonomous fleet, and origin renewable energy to power our vehicles whenever possible.</p></div></li><li data-equalize-height-id="false" aria-labelledby="w-6prwk42y-title-1" id="w-6prwk42y-slide-1" data-index="1"><div data-equalize-heights="false"><div><source srcset="//lh3.googleusercontent.com/5-BNFeTWb_3_j9wxKg9R6pT7a7ZMk982h8WYrVlYUbycgLsxGUV7aw9EwarQov3oIO8ZnFXm6xl7fS--lMO43NDti5fv1ZD3UPY=e365-s2880-rw-v1 2x, //lh3.googleusercontent.com/5-BNFeTWb_3_j9wxKg9R6pT7a7ZMk982h8WYrVlYUbycgLsxGUV7aw9EwarQov3oIO8ZnFXm6xl7fS--lMO43NDti5fv1ZD3UPY=e365-s1440-rw-v1 1x" media=" 600px)" type="image/webp" width="426" height="360"></source><source srcset="//lh3.googleusercontent.com/5-BNFeTWb_3_j9wxKg9R6pT7a7ZMk982h8WYrVlYUbycgLsxGUV7aw9EwarQov3oIO8ZnFXm6xl7fS--lMO43NDti5fv1ZD3UPY=e365-s2880-v1 2x, //lh3.googleusercontent.com/5-BNFeTWb_3_j9wxKg9R6pT7a7ZMk982h8WYrVlYUbycgLsxGUV7aw9EwarQov3oIO8ZnFXm6xl7fS--lMO43NDti5fv1ZD3UPY=e365-s1440 1x" media=" 600px)" type="image/jpeg" width="426" height="360"></source><source srcset="//lh3.googleusercontent.com/5-BNFeTWb_3_j9wxKg9R6pT7a7ZMk982h8WYrVlYUbycgLsxGUV7aw9EwarQov3oIO8ZnFXm6xl7fS--lMO43NDti5fv1ZD3UPY=e365-s840-rw-v1 2x, //lh3.googleusercontent.com/5-BNFeTWb_3_j9wxKg9R6pT7a7ZMk982h8WYrVlYUbycgLsxGUV7aw9EwarQov3oIO8ZnFXm6xl7fS--lMO43NDti5fv1ZD3UPY=e365-s420-rw-v1 1x" media=" 599px)" type="image/webp" width="426" height="360"></source><img alt="White Waymo self-driving car alongside a pedestrian strolling on the remaining and a cyclist riding on the right." loading="lazy" fetchpriority="auto" srcset="//lh3.googleusercontent.com/5-BNFeTWb_3_j9wxKg9R6pT7a7ZMk982h8WYrVlYUbycgLsxGUV7aw9EwarQov3oIO8ZnFXm6xl7fS--lMO43NDti5fv1ZD3UPY=e365-s840-v1 2x, //lh3.googleusercontent.com/5-BNFeTWb_3_j9wxKg9R6pT7a7ZMk982h8WYrVlYUbycgLsxGUV7aw9EwarQov3oIO8ZnFXm6xl7fS--lMO43NDti5fv1ZD3UPY=e365-s420 1x" src="https://lh3.googleusercontent.com/5-BNFeTWb_3_j9wxKg9R6pT7a7ZMk982h8WYrVlYUbycgLsxGUV7aw9EwarQov3oIO8ZnFXm6xl7fS--lMO43NDti5fv1ZD3UPY=e365-s420" width="426" height="360"></div></div><div><p>Increased highway safety</p><p>Waymo is committed to enhancing community well-being in Singapore, aligning alongside local efforts to create streets safer. The Waymo Driver has the possible to decrease traffic injuries and fatalities, during improving mobility, particularly for pedestrians and cyclists, and recommendation additional accordant and dependable rides.</p></div></li><li data-equalize-height-id="false" aria-labelledby="w-6prwk42y-title-2" id="w-6prwk42y-slide-2" data-index="2"><div data-equalize-heights="false"><div><source srcset="//lh3.googleusercontent.com/56OlHQEMVrsEtgNCBHa0xqXlGlcCUjRCfB5cW3hcZ3ZHbEXC30kbZ-NDTvIUGcuRhUbMOkIMo5pz3hh8R5Okjz9lY4U-MbsDt-U=e365-s2880-rw-v1 2x, //lh3.googleusercontent.com/56OlHQEMVrsEtgNCBHa0xqXlGlcCUjRCfB5cW3hcZ3ZHbEXC30kbZ-NDTvIUGcuRhUbMOkIMo5pz3hh8R5Okjz9lY4U-MbsDt-U=e365-s1440-rw-v1 1x" media=" 600px)" type="image/webp" width="426" height="360"></source><source srcset="//lh3.googleusercontent.com/56OlHQEMVrsEtgNCBHa0xqXlGlcCUjRCfB5cW3hcZ3ZHbEXC30kbZ-NDTvIUGcuRhUbMOkIMo5pz3hh8R5Okjz9lY4U-MbsDt-U=e365-s2880-v1 2x, //lh3.googleusercontent.com/56OlHQEMVrsEtgNCBHa0xqXlGlcCUjRCfB5cW3hcZ3ZHbEXC30kbZ-NDTvIUGcuRhUbMOkIMo5pz3hh8R5Okjz9lY4U-MbsDt-U=e365-s1440 1x" media=" 600px)" type="image/jpeg" width="426" height="360"></source><source srcset="//lh3.googleusercontent.com/56OlHQEMVrsEtgNCBHa0xqXlGlcCUjRCfB5cW3hcZ3ZHbEXC30kbZ-NDTvIUGcuRhUbMOkIMo5pz3hh8R5Okjz9lY4U-MbsDt-U=e365-s840-rw-v1 2x, //lh3.googleusercontent.com/56OlHQEMVrsEtgNCBHa0xqXlGlcCUjRCfB5cW3hcZ3ZHbEXC30kbZ-NDTvIUGcuRhUbMOkIMo5pz3hh8R5Okjz9lY4U-MbsDt-U=e365-s420-rw-v1 1x" media=" 599px)" type="image/webp" width="426" height="360"></source><img alt="White Waymo autonomous car parked next to a community transit sign on a plain pale background." loading="lazy" fetchpriority="auto" srcset="//lh3.googleusercontent.com/56OlHQEMVrsEtgNCBHa0xqXlGlcCUjRCfB5cW3hcZ3ZHbEXC30kbZ-NDTvIUGcuRhUbMOkIMo5pz3hh8R5Okjz9lY4U-MbsDt-U=e365-s840-v1 2x, //lh3.googleusercontent.com/56OlHQEMVrsEtgNCBHa0xqXlGlcCUjRCfB5cW3hcZ3ZHbEXC30kbZ-NDTvIUGcuRhUbMOkIMo5pz3hh8R5Okjz9lY4U-MbsDt-U=e365-s420 1x" src="https://lh3.googleusercontent.com/56OlHQEMVrsEtgNCBHa0xqXlGlcCUjRCfB5cW3hcZ3ZHbEXC30kbZ-NDTvIUGcuRhUbMOkIMo5pz3hh8R5Okjz9lY4U-MbsDt-U=e365-s420" width="426" height="360"></div></div><div><p>Strengthening community transport</p><p>We aim to complement Singapore&rsquo;s existing transport network. Working alongside authorities agencies, transport authorities, and local communities, we&rsquo;re collaborating on solutions that advance multi-modal movement alongside existing community transport options.</p></div></li><li data-equalize-height-id="false" aria-labelledby="w-6prwk42y-title-3" id="w-6prwk42y-slide-3" data-index="3"><div data-equalize-heights="false"><div><source srcset="//lh3.googleusercontent.com/n_p6YmIF2-DkJyAMYYX2XcGwOMkK7qASdKvRdCMA-q70JA1qZaZjooc4q2i4s78jnBCJJCYZeQ3eGgbAl4eiR4Su0gptDon3GX33=e365-s2880-rw-v1 2x, //lh3.googleusercontent.com/n_p6YmIF2-DkJyAMYYX2XcGwOMkK7qASdKvRdCMA-q70JA1qZaZjooc4q2i4s78jnBCJJCYZeQ3eGgbAl4eiR4Su0gptDon3GX33=e365-s1440-rw-v1 1x" media=" 600px)" type="image/webp" width="426" height="360"></source><source srcset="//lh3.googleusercontent.com/n_p6YmIF2-DkJyAMYYX2XcGwOMkK7qASdKvRdCMA-q70JA1qZaZjooc4q2i4s78jnBCJJCYZeQ3eGgbAl4eiR4Su0gptDon3GX33=e365-s2880-v1 2x, //lh3.googleusercontent.com/n_p6YmIF2-DkJyAMYYX2XcGwOMkK7qASdKvRdCMA-q70JA1qZaZjooc4q2i4s78jnBCJJCYZeQ3eGgbAl4eiR4Su0gptDon3GX33=e365-s1440 1x" media=" 600px)" type="image/jpeg" width="426" height="360"></source><source srcset="//lh3.googleusercontent.com/n_p6YmIF2-DkJyAMYYX2XcGwOMkK7qASdKvRdCMA-q70JA1qZaZjooc4q2i4s78jnBCJJCYZeQ3eGgbAl4eiR4Su0gptDon3GX33=e365-s840-rw-v1 2x, //lh3.googleusercontent.com/n_p6YmIF2-DkJyAMYYX2XcGwOMkK7qASdKvRdCMA-q70JA1qZaZjooc4q2i4s78jnBCJJCYZeQ3eGgbAl4eiR4Su0gptDon3GX33=e365-s420-rw-v1 1x" media=" 599px)" type="image/webp" width="426" height="360"></source><img alt="Visually impaired man alongside a pale cane walks former a pale Waymo self-driving conveyance on a pale background." loading="lazy" fetchpriority="auto" srcset="//lh3.googleusercontent.com/n_p6YmIF2-DkJyAMYYX2XcGwOMkK7qASdKvRdCMA-q70JA1qZaZjooc4q2i4s78jnBCJJCYZeQ3eGgbAl4eiR4Su0gptDon3GX33=e365-s840-v1 2x, //lh3.googleusercontent.com/n_p6YmIF2-DkJyAMYYX2XcGwOMkK7qASdKvRdCMA-q70JA1qZaZjooc4q2i4s78jnBCJJCYZeQ3eGgbAl4eiR4Su0gptDon3GX33=e365-s420 1x" src="https://lh3.googleusercontent.com/n_p6YmIF2-DkJyAMYYX2XcGwOMkK7qASdKvRdCMA-q70JA1qZaZjooc4q2i4s78jnBCJJCYZeQ3eGgbAl4eiR4Su0gptDon3GX33=e365-s420" width="426" height="360"></div></div><div><p>Enhanced accessibility</p><p>We can addition independence and develop movement options for the aging community and those who cannot or do not drive.</p></div></li><li data-equalize-height-id="false" aria-labelledby="w-6prwk42y-title-4" id="w-6prwk42y-slide-4" data-index="4"><div data-equalize-heights="false"><div><source srcset="//lh3.googleusercontent.com/evU8wBTJp3q1Zt9yDYmKiQBBntmXbikaMxg8Ss9py63bb99ANaWXeTYJZwLyOmilCIGnp4htxQCrWRM8NF9KNXtaj1g57tU7hw-9=e365-s2880-rw-v1 2x, //lh3.googleusercontent.com/evU8wBTJp3q1Zt9yDYmKiQBBntmXbikaMxg8Ss9py63bb99ANaWXeTYJZwLyOmilCIGnp4htxQCrWRM8NF9KNXtaj1g57tU7hw-9=e365-s1440-rw-v1 1x" media=" 600px)" type="image/webp" width="426" height="360"></source><source srcset="//lh3.googleusercontent.com/evU8wBTJp3q1Zt9yDYmKiQBBntmXbikaMxg8Ss9py63bb99ANaWXeTYJZwLyOmilCIGnp4htxQCrWRM8NF9KNXtaj1g57tU7hw-9=e365-s2880-v1 2x, //lh3.googleusercontent.com/evU8wBTJp3q1Zt9yDYmKiQBBntmXbikaMxg8Ss9py63bb99ANaWXeTYJZwLyOmilCIGnp4htxQCrWRM8NF9KNXtaj1g57tU7hw-9=e365-s1440 1x" media=" 600px)" type="image/jpeg" width="426" height="360"></source><source srcset="//lh3.googleusercontent.com/evU8wBTJp3q1Zt9yDYmKiQBBntmXbikaMxg8Ss9py63bb99ANaWXeTYJZwLyOmilCIGnp4htxQCrWRM8NF9KNXtaj1g57tU7hw-9=e365-s840-rw-v1 2x, //lh3.googleusercontent.com/evU8wBTJp3q1Zt9yDYmKiQBBntmXbikaMxg8Ss9py63bb99ANaWXeTYJZwLyOmilCIGnp4htxQCrWRM8NF9KNXtaj1g57tU7hw-9=e365-s420-rw-v1 1x" media=" 599px)" type="image/webp" width="426" height="360"></source><img alt="Top-down explanatory of a pale self-driving car navigating a blue pathway between staggered pale obstacles." loading="lazy" fetchpriority="auto" srcset="//lh3.googleusercontent.com/evU8wBTJp3q1Zt9yDYmKiQBBntmXbikaMxg8Ss9py63bb99ANaWXeTYJZwLyOmilCIGnp4htxQCrWRM8NF9KNXtaj1g57tU7hw-9=e365-s840-v1 2x, //lh3.googleusercontent.com/evU8wBTJp3q1Zt9yDYmKiQBBntmXbikaMxg8Ss9py63bb99ANaWXeTYJZwLyOmilCIGnp4htxQCrWRM8NF9KNXtaj1g57tU7hw-9=e365-s420 1x" src="https://lh3.googleusercontent.com/evU8wBTJp3q1Zt9yDYmKiQBBntmXbikaMxg8Ss9py63bb99ANaWXeTYJZwLyOmilCIGnp4htxQCrWRM8NF9KNXtaj1g57tU7hw-9=e365-s420" width="426" height="360"></div></div><div><p>Navigating alongside confidence</p><p>The Waymo Driver uses cameras, radar, and lidar, and compute power to keep a 360-degree perspective about the vehicle, up to 300 meters away, during looking to detect and navigate safely about another highway users.</p></div></li></ul><p>Thank you! You&rsquo;re all set.</p><p>Thank you for following us on our journey. We&rsquo;re enthusiastic to portion additional concerning our business and our advancement as we activity to build the World&rsquo;s Most Experienced Driver&trade;.</p><h2 data-equalize-height-to="section1" data-inview="true" aria-hidden="false"><p>Our experience</p></h2><ul data-slot="slides-container" data-inview="true"><li data-equalize-height-id="false" aria-labelledby="w-w3zkkceu-title-0" id="w-w3zkkceu-slide-0" data-index="0"><div data-equalize-heights="false"><div><source srcset="//lh3.googleusercontent.com/OoUZooKzA8W1gKqw23Bi7lf6IVNsKLfZUOYkP-kHMWwEeCkufaQRFA7pBo_z0p_kIdS4bS7dWD8B8OL2-W_54z0QUbztUL6KzA=e365-s2880-rw-v1 2x, //lh3.googleusercontent.com/OoUZooKzA8W1gKqw23Bi7lf6IVNsKLfZUOYkP-kHMWwEeCkufaQRFA7pBo_z0p_kIdS4bS7dWD8B8OL2-W_54z0QUbztUL6KzA=e365-s1440-rw-v1 1x" media=" 600px)" type="image/webp" width="619" height="1120"></source><source srcset="//lh3.googleusercontent.com/OoUZooKzA8W1gKqw23Bi7lf6IVNsKLfZUOYkP-kHMWwEeCkufaQRFA7pBo_z0p_kIdS4bS7dWD8B8OL2-W_54z0QUbztUL6KzA=e365-s2880-v1 2x, //lh3.googleusercontent.com/OoUZooKzA8W1gKqw23Bi7lf6IVNsKLfZUOYkP-kHMWwEeCkufaQRFA7pBo_z0p_kIdS4bS7dWD8B8OL2-W_54z0QUbztUL6KzA=e365-s1440 1x" media=" 600px)" type="image/jpeg" width="619" height="1120"></source><source srcset="//lh3.googleusercontent.com/Q7tpSFrjcL5IMKuFhHYHvkvhpzL-BDyZrxu8XvbdgmMHYx9SE67Aou2jrMlCSjye0wOoqb5l7Q52KGST5MLzyPSo1RYlcoJioqDk=e365-s840-rw-v1 2x, //lh3.googleusercontent.com/Q7tpSFrjcL5IMKuFhHYHvkvhpzL-BDyZrxu8XvbdgmMHYx9SE67Aou2jrMlCSjye0wOoqb5l7Q52KGST5MLzyPSo1RYlcoJioqDk=e365-s420-rw-v1 1x" media=" 599px)" type="image/webp" width="600" height="660"></source><img alt="Grid collage of assorted group smiling, posing, and taking selfies inner distinct cars." loading="lazy" fetchpriority="auto" srcset="//lh3.googleusercontent.com/Q7tpSFrjcL5IMKuFhHYHvkvhpzL-BDyZrxu8XvbdgmMHYx9SE67Aou2jrMlCSjye0wOoqb5l7Q52KGST5MLzyPSo1RYlcoJioqDk=e365-s840-v1 2x, //lh3.googleusercontent.com/Q7tpSFrjcL5IMKuFhHYHvkvhpzL-BDyZrxu8XvbdgmMHYx9SE67Aou2jrMlCSjye0wOoqb5l7Q52KGST5MLzyPSo1RYlcoJioqDk=e365-s420 1x" src="https://lh3.googleusercontent.com/Q7tpSFrjcL5IMKuFhHYHvkvhpzL-BDyZrxu8XvbdgmMHYx9SE67Aou2jrMlCSjye0wOoqb5l7Q52KGST5MLzyPSo1RYlcoJioqDk=e365-s420" width="600" height="660"></div></div></li><li data-equalize-height-id="false" aria-labelledby="w-w3zkkceu-title-1" id="w-w3zkkceu-slide-1" data-index="1"><div data-equalize-heights="false"><div><source srcset="//lh3.googleusercontent.com/d_96WAX-FxT1fSiuXXbyflA4zVXc-aJBYVxETcwLfGlSFq2il4ubs2-MSNLL66s80okV2v4INiZKd3qWj8oHB8QDlCulUM8F3A=e365-s2880-rw-v1 2x, //lh3.googleusercontent.com/d_96WAX-FxT1fSiuXXbyflA4zVXc-aJBYVxETcwLfGlSFq2il4ubs2-MSNLL66s80okV2v4INiZKd3qWj8oHB8QDlCulUM8F3A=e365-s1440-rw-v1 1x" media=" 600px)" type="image/webp" width="1281" height="477"></source><source srcset="//lh3.googleusercontent.com/d_96WAX-FxT1fSiuXXbyflA4zVXc-aJBYVxETcwLfGlSFq2il4ubs2-MSNLL66s80okV2v4INiZKd3qWj8oHB8QDlCulUM8F3A=e365-s2880-v1 2x, //lh3.googleusercontent.com/d_96WAX-FxT1fSiuXXbyflA4zVXc-aJBYVxETcwLfGlSFq2il4ubs2-MSNLL66s80okV2v4INiZKd3qWj8oHB8QDlCulUM8F3A=e365-s1440 1x" media=" 600px)" type="image/jpeg" width="1281" height="477"></source><source srcset="//lh3.googleusercontent.com/4qV1tRMpu6euTrvgzLQFUG_Im3laOEJR0QHFP68zu268WTQvuwrt2T0bk7KrSfErgIydL9S5jnteBX4CgnzcvzGNF8H8DILbhQ=e365-s840-rw-v1 2x, //lh3.googleusercontent.com/4qV1tRMpu6euTrvgzLQFUG_Im3laOEJR0QHFP68zu268WTQvuwrt2T0bk7KrSfErgIydL9S5jnteBX4CgnzcvzGNF8H8DILbhQ=e365-s420-rw-v1 1x" media=" 599px)" type="image/webp" width="604" height="452"></source><img alt="Interior of a Jaguar car at night, showing the steering wheel, digital dashboard, and navigation screen." loading="lazy" fetchpriority="auto" srcset="//lh3.googleusercontent.com/4qV1tRMpu6euTrvgzLQFUG_Im3laOEJR0QHFP68zu268WTQvuwrt2T0bk7KrSfErgIydL9S5jnteBX4CgnzcvzGNF8H8DILbhQ=e365-s840-v1 2x, //lh3.googleusercontent.com/4qV1tRMpu6euTrvgzLQFUG_Im3laOEJR0QHFP68zu268WTQvuwrt2T0bk7KrSfErgIydL9S5jnteBX4CgnzcvzGNF8H8DILbhQ=e365-s420 1x" src="https://lh3.googleusercontent.com/4qV1tRMpu6euTrvgzLQFUG_Im3laOEJR0QHFP68zu268WTQvuwrt2T0bk7KrSfErgIydL9S5jnteBX4CgnzcvzGNF8H8DILbhQ=e365-s420" width="604" height="452"></div></div><div><p><b>94% </b>fewer hurt causing crashes</p><p>compared to a individual driving the identical extend in the cities anywhere we run in the U.S.</p></div></li><li data-equalize-height-id="false" aria-labelledby="w-w3zkkceu-title-2" id="w-w3zkkceu-slide-2" data-index="2"><div data-equalize-heights="false"><div><source srcset="//lh3.googleusercontent.com/DZK1jUH-CoaUWbbJecM1yJtYeljQcCJYNTLsUCKF1h_26-P9N8U1PFJjqimGLGOzuG-_emYWZbxyTGrIHXMdspUZA5t1aaku0w=e365-s2880-rw-v1 2x, //lh3.googleusercontent.com/DZK1jUH-CoaUWbbJecM1yJtYeljQcCJYNTLsUCKF1h_26-P9N8U1PFJjqimGLGOzuG-_emYWZbxyTGrIHXMdspUZA5t1aaku0w=e365-s1440-rw-v1 1x" media=" 600px)" type="image/webp" width="622" height="624"></source><source srcset="//lh3.googleusercontent.com/DZK1jUH-CoaUWbbJecM1yJtYeljQcCJYNTLsUCKF1h_26-P9N8U1PFJjqimGLGOzuG-_emYWZbxyTGrIHXMdspUZA5t1aaku0w=e365-s2880-v1 2x, //lh3.googleusercontent.com/DZK1jUH-CoaUWbbJecM1yJtYeljQcCJYNTLsUCKF1h_26-P9N8U1PFJjqimGLGOzuG-_emYWZbxyTGrIHXMdspUZA5t1aaku0w=e365-s1440 1x" media=" 600px)" type="image/jpeg" width="622" height="624"></source><source srcset="//lh3.googleusercontent.com/DZK1jUH-CoaUWbbJecM1yJtYeljQcCJYNTLsUCKF1h_26-P9N8U1PFJjqimGLGOzuG-_emYWZbxyTGrIHXMdspUZA5t1aaku0w=e365-s840-rw-v1 2x, //lh3.googleusercontent.com/DZK1jUH-CoaUWbbJecM1yJtYeljQcCJYNTLsUCKF1h_26-P9N8U1PFJjqimGLGOzuG-_emYWZbxyTGrIHXMdspUZA5t1aaku0w=e365-s420-rw-v1 1x" media=" 599px)" type="image/webp" width="622" height="624"></source><img alt="Dotted United States map on a dreary blue backdrop alongside white, blue, and green dots marking assorted locations." loading="lazy" fetchpriority="auto" srcset="//lh3.googleusercontent.com/DZK1jUH-CoaUWbbJecM1yJtYeljQcCJYNTLsUCKF1h_26-P9N8U1PFJjqimGLGOzuG-_emYWZbxyTGrIHXMdspUZA5t1aaku0w=e365-s840-v1 2x, //lh3.googleusercontent.com/DZK1jUH-CoaUWbbJecM1yJtYeljQcCJYNTLsUCKF1h_26-P9N8U1PFJjqimGLGOzuG-_emYWZbxyTGrIHXMdspUZA5t1aaku0w=e365-s420 1x" src="https://lh3.googleusercontent.com/DZK1jUH-CoaUWbbJecM1yJtYeljQcCJYNTLsUCKF1h_26-P9N8U1PFJjqimGLGOzuG-_emYWZbxyTGrIHXMdspUZA5t1aaku0w=e365-s420" width="622" height="624"></div></div><div><p><b>15+</b> important US cities</p><p>where we operate, including publically accessible services in San Francisco, Los Angeles, Phoenix, and more.</p></div></li><li data-equalize-height-id="false" aria-labelledby="w-w3zkkceu-title-3" id="w-w3zkkceu-slide-3" data-index="3"><div data-equalize-heights="false"><div><source srcset="//lh3.googleusercontent.com/7kqfynqCjMvXE89HW3_iG6nfNkwi1tMq6PBiCto3ugCtSCmmGYIFqB7FNnIMjg1yhlhfl6VGi0ovdF9QeR6Xs3lf8XJkgbxaMPw=e365-s2880-rw-v1 2x, //lh3.googleusercontent.com/7kqfynqCjMvXE89HW3_iG6nfNkwi1tMq6PBiCto3ugCtSCmmGYIFqB7FNnIMjg1yhlhfl6VGi0ovdF9QeR6Xs3lf8XJkgbxaMPw=e365-s1440-rw-v1 1x" media=" 600px)" type="image/webp" width="640" height="624"></source><source srcset="//lh3.googleusercontent.com/7kqfynqCjMvXE89HW3_iG6nfNkwi1tMq6PBiCto3ugCtSCmmGYIFqB7FNnIMjg1yhlhfl6VGi0ovdF9QeR6Xs3lf8XJkgbxaMPw=e365-s2880-v1 2x, //lh3.googleusercontent.com/7kqfynqCjMvXE89HW3_iG6nfNkwi1tMq6PBiCto3ugCtSCmmGYIFqB7FNnIMjg1yhlhfl6VGi0ovdF9QeR6Xs3lf8XJkgbxaMPw=e365-s1440 1x" media=" 600px)" type="image/jpeg" width="640" height="624"></source><source srcset="//lh3.googleusercontent.com/BSsHgm1Vedx95DsdG68OuCuh2sR0tES7HoOrR4vLvPAZTv1iWo5Dcefc0aC1eGB64iXXCiNu04rR7b_tLiiajRpHCK8G1BmNdb4v=e365-s840-rw-v1 2x, //lh3.googleusercontent.com/BSsHgm1Vedx95DsdG68OuCuh2sR0tES7HoOrR4vLvPAZTv1iWo5Dcefc0aC1eGB64iXXCiNu04rR7b_tLiiajRpHCK8G1BmNdb4v=e365-s420-rw-v1 1x" media=" 599px)" type="image/webp" width="604" height="452"></source><img alt="White Waymo autonomous conveyance armed alongside sensors driving on a city street alongside skyscrapers in the background." loading="lazy" fetchpriority="auto" srcset="//lh3.googleusercontent.com/BSsHgm1Vedx95DsdG68OuCuh2sR0tES7HoOrR4vLvPAZTv1iWo5Dcefc0aC1eGB64iXXCiNu04rR7b_tLiiajRpHCK8G1BmNdb4v=e365-s840-v1 2x, //lh3.googleusercontent.com/BSsHgm1Vedx95DsdG68OuCuh2sR0tES7HoOrR4vLvPAZTv1iWo5Dcefc0aC1eGB64iXXCiNu04rR7b_tLiiajRpHCK8G1BmNdb4v=e365-s420 1x" src="https://lh3.googleusercontent.com/BSsHgm1Vedx95DsdG68OuCuh2sR0tES7HoOrR4vLvPAZTv1iWo5Dcefc0aC1eGB64iXXCiNu04rR7b_tLiiajRpHCK8G1BmNdb4v=e365-s420" width="604" height="452"></div></div><div><p><b>300+ </b>million km on community roads</p></div></li></ul><p>Hundreds of thousands of weekly riders in the U.S. affection the spotless and accordant cognition we provide, during data demonstrates we&rsquo;re improving highway safety in the cities anywhere we operate.</p><p>No articles found</p><div data-slot="export-pdf-content"><h2 aria-hidden="false">faqs</h2><ul><li><ul><li><p><h4 id="faq-when-will-operations-w-2ti1u2ua" aria-hidden="false">When volition operations in Singapore start?</h4><svg aria-hidden="true"></svg><svg aria-hidden="true"></svg></p><div><div><p>We average to commencement first driving operations next year.</p><p>We volition commencement by functioning the vehicles manually, commencement alongside mapping and validation driving. As we&rsquo;ve done in another cities, we&rsquo;ll obtain a phased method as we scale. After a duration of manual driving, we&rsquo;ll commencement autonomous driving alongside trained, local autonomous specialists rearward the wheel, before moving to completely autonomous operations.</p><p>We volition activity closely alongside the Ministry of Transport, the Land Transport Authority, and another local authorities to safe necessary approvals, and keep the community up to date as our operations progress.</p></div></div></li><li><p><h4 id="faq-when-and-where-will-w-2ti1u2ua" aria-hidden="false">When and anywhere volition you be driving?</h4><svg aria-hidden="true"></svg><svg aria-hidden="true"></svg></p><div><div><p>We volition be driving day and night and average to initially manually run and map all regions of Singapore, to collect the necessary data for Waymo to search Land Transport Authority endorsement for our autonomous driving scheme in 2027</p><p>When we commencement operations, we volition motionless be in preparedness manner alongside autonomous specialists rearward the rotor who volition be manually driving. We volition let the community cognize whenever we commencement autonomous operations alongside autonomous conveyance specialists, and afterward completely autonomous operations.</p><p>Our operations typically run 24 hours per day, 7 days a week, to justify our innovation can safely grip all highway conditions. Data from evaluation volition be processed pursuant to the requirements of Singapore&rsquo;s Personal Data Protection Act and in row alongside the <a href="https://en.mycoding.id/category/technology" target="_blank">Waymo Services Privacy Policy</a>. You can peruse additional concerning our earth dedication to privacy in autonomous mobility<a href="https://en.mycoding.id/category/technology" target="_blank"> here</a>.</p></div></div></li><li><p><h4 id="faq-when-will-i-be-able-w-2ti1u2ua" aria-hidden="false">When volition I be capable to ride?</h4><svg aria-hidden="true"></svg><svg aria-hidden="true"></svg></p><div><div><p>We average to open our assistance in 2028. The finest way to remain informed concerning our Singapore enlargement and assistance initiate is to <a href="https://en.mycoding.id/category/technology" target="_blank">sign up</a> to prosecute our milestones and sign up for updates on whenever our assistance opens.</p><p>We volition notify you as shortly as our business assistance becomes accessible in your area.</p></div></div></li><li><p><h4 id="faq-why-choose-singapore-w-2ti1u2ua" aria-hidden="false">Why choose Singapore?</h4><svg aria-hidden="true"></svg><svg aria-hidden="true"></svg></p><div><p>Singapore has lengthy stood at the forefront of earth innovation and we accept the city and Waymo&rsquo;s concentration on innovation and safety are extremely complimentary. Singapore has built among the world&rsquo;s most advanced multimodal transit systems as fine as a dedication to sustainability. The benefits that autonomous shared movement can provision in Singapore are described in the Land Transport Master Plan 2040 and on the Land Transport Authority's website.</p></div></li><li><p><h4 id="faq-what-local-stakehold-w-2ti1u2ua" aria-hidden="false">What local stakeholders are you operating with?</h4><svg aria-hidden="true"></svg><svg aria-hidden="true"></svg></p><div><p>We are operating closely alongside all the applicable authorities agencies to justify complete alignment alongside Singapore&rsquo;s district transport goals and safety regulation.</p></div></li><li><p><h4 id="faq-how-do-you-know-the-w-2ti1u2ua" aria-hidden="false">How do you cognize the innovation is prepared for Singapore?</h4><svg aria-hidden="true"></svg><svg aria-hidden="true"></svg></p><div><div><p>We volition obtain the identical methodical method to evaluation and deploying the Waymo Driver in Singapore that we&rsquo;ve taken in the another cities anywhere we operate.</p><p>We are assured that we volition be capable to encounter Singapore&rsquo;s elevated AV regulatory standards according to the important real-world cognition we have to-date and appearance onward to seeking the corresponding authorities approvals for forthcoming phases.</p><p>The data shows Waymo is making roads safer in the communities in which we run completely autonomously, reducing the figure of injury-causing collisions on the roads compared to individual benchmarks.</p><p>The Waymo Driver has completely autonomously driven hundreds of millions of kilometres throughout important cities in the U.S., and is already gathering autonomous driving cognition in ample earth cities akin London and Tokyo. We anticipate this cognition to translate fine to Singapore, and volition obtain a rigorous method to safely validating that cognition all stage of the way.</p></div></div></li><li><p><h4 id="faq-which-vehicles-will-w-2ti1u2ua" aria-hidden="false">Which vehicles volition you use?</h4><svg aria-hidden="true"></svg><svg aria-hidden="true"></svg></p><div><p>We volition commencement alongside our all-electric Jaguar I-PACE vehicles armed alongside our fifth generation Waymo Driver, and scheme to contain forthcoming conveyance platforms as the fleet expands.</p></div></li><li><p><h4 id="faq-how-does-waymo-ensur-w-2ti1u2ua" aria-hidden="false">How does Waymo justify harmless interactions alongside cyclists and pedestrians in municipal environments?</h4><svg aria-hidden="true"></svg><svg aria-hidden="true"></svg></p><div><p>Waymo vehicles are armed alongside a advanced suite of sensors&mdash;including cameras, lidar, and radar&mdash;that build a detailed, 360-degree understanding of their surroundings and are capable to see and differentiate between susceptible highway users akin cyclists and pedestrians. Our application predicts the behavior of these highway users and maneuvers our vehicles to engage safely and respectfully, giving them roomy space. We additionally utilise ocular and audio cues to plainly communicate the Waymo Driver&rsquo;s intentions to group exterior the vehicle, fostering predictable and harmless interactions in occupied municipal settings alongside elevated numbers of cyclists and pedestrians. Additionally, we&rsquo;ve created <a href="https://en.mycoding.id/category/technology" target="_blank">Safe Exit features</a> to justify our riders remain respectful of approaching cyclists upon their arrival at their destination.</p></div></li></ul></li></ul></div></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/waymo-in-singapore-68664</guid> <pubDate>Fri, 18 Sep 2026 04:49:24 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[Pre-Greek: The misplaced tongue hidden inside Ancient Greek]]></title> <description><![CDATA[Pre-Greek: The misplaced tongue hidden inside Ancient Greek. Comments]]></description> <media:thumbnail url="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w1200/2026/09/map--3840x2160---1-.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/pre-greek-the-misplaced-tongue-hidden-inside-ancient-greek-68656</link> <content:encoded><![CDATA[<div> <a href="https://en.mycoding.id/category/technology" target="_blank">Newsletter</a> <p>Around 1,000 Greek words can&rsquo;t be traced to any Indo-European language. Where do they arrive from?</p> <figure> <img srcset="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w320/2026/09/map--3840x2160---1-.png 320w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w600/2026/09/map--3840x2160---1-.png 600w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w960/2026/09/map--3840x2160---1-.png 960w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w1200/2026/09/map--3840x2160---1-.png 1200w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w2000/2026/09/map--3840x2160---1-.png 2000w" sizes=" 1200px) 100vw, 1120px" src="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w2000/2026/09/map--3840x2160---1-.png" alt=" The misplaced tongue hidden inside Ancient Greek"> </figure> <blockquote>&#7982;&sigma;&alpha;&nu; &omicron;&#7985; &Pi;&epsilon;&lambda;&alpha;&sigma;&gamma;&omicron;&#8054; &beta;&#940;&rho;&beta;&alpha;&rho;&omicron;&nu; &gamma;&lambda;&#8182;&sigma;&sigma;&alpha;&nu; &#7985;&#941;&nu;&tau;&epsilon;&sigmaf;.<br><em>&Ecirc;san hoi Pelasgo&igrave; b&aacute;rbaron gl&ocirc;ssan h&iacute;entes.</em><br>&lsquo;The Pelasgians said a tongue which was not Greek.&rsquo;<p>~ Herodotus (<em>Histories</em> 1.57)</p></blockquote><p>There are concerning 1,000 words in Ancient Greek that can&rsquo;t be traced rear to any Indo-European tongue or any another known tongue in the region. These lexical enigmas equal contain several words and names you power think of as quintessentially Greek:</p><ul><li>&lambda;&alpha;&beta;&#973;&rho;&iota;&nu;&theta;&omicron;&sigmaf; (<em>lab&yacute;rinthos</em>) &lsquo;labyrinth&rsquo;</li><li>&epsilon;&#787;&lambda;&alpha;&iota;&#769;&alpha; (<em>ela&iacute;a</em>) &lsquo;olive (tree)&rsquo;</li><li>&#7944;&chi;&iota;&lambda;&lambda;&epsilon;&#973;&sigmaf; (<em>Akhille&uacute;s</em>) &lsquo;Achilles&rsquo;</li><li>&#8008;&delta;&upsilon;&sigma;&sigma;&epsilon;&#973;&sigmaf; (<em>Odysse&uacute;s</em>) &lsquo;Odysseus&rsquo;</li><li>&Kappa;&#972;&rho;&iota;&nu;&theta;&omicron;&sigmaf; (<em>K&oacute;rinthos</em>) &lsquo;Corinth&rsquo;</li><li>&#7944;&theta;&#8134;&nu;&alpha;&iota; (<em>Ath&ecirc;nai</em>) &lsquo;Athens&rsquo; / &#7944;&theta;&#942;&nu;&eta; (<em>Ath&#7703;n&#275;</em>) &lsquo;Athena&rsquo; (goddess of wisdom)</li><li>&#7948;&rho;&eta;&sigmaf; (<em>&Aacute;r&#275;s</em>) &lsquo;Ares&rsquo; (god of war)</li></ul><p>Despite centuries of effort, linguists have not been capable to trace these words rear to <strong>Proto-Indo-European</strong> (PIE), the genitor tongue from which all the another Indo-European (IE) languages descend. Nor have they identified words in neighboring languages that Greek power have borrowed them from.</p><p>Where, then, do these words arrive from? In this matter of the Linguistic Discovery newsletter, we&rsquo;ll dig through layers of linguistic former to disclose the mystery tongue that influenced Ancient Greek.</p><figure><img src="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image.png" alt="" loading="lazy" width="960" height="960" srcset="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w600/2026/09/image.png 600w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image.png 960w" sizes=" 720px) 720px"><figcaption><span>The approximate present-day allocation of native speakers of the eight branches of the Indo-European tongue family inside Europe and Asia. (</span><a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener noreferrer"><span>Wikipedia: Indo-European languages</span></a><span>) </span><b><strong>Legend:</strong></b><span> dreary blue = Indo-Iranian (Hindi, Urdu, etc.) brown = Italic (Spanish, French, Italian, etc.) red = Germanic (German, English, etc.) green = Balto-Slavic (Russian, Polish, etc.) yellow = Hellenic (Greek) ray blue = Albanoid (Albanian) purple = Armenian orange = Celtic (Irish, Welsh, etc.) gray = non&ndash;Indo-European / exterior Eurasia</span></figcaption></figure><h2 id="paleo-european-old-european-languages">Paleo-European / Old European Languages</h2><blockquote>All languages merge a fossil document of their history.</blockquote><p>While Indo-European languages have been about for a lengthy time, and Greek has likewise been spoken in Greece for multiple millennia, Indo-European languages haven&rsquo;t <em>always</em> blanketed the bulk of Europe akin they do today. At one item the Indo-Europeans were pastoralist newcomers to a different land, one that had been occupied by Neolithic agriculture societies for millennia.</p><figure><img src="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-1.png" alt="" loading="lazy" width="1920" height="792" srcset="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w600/2026/09/image-1.png 600w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w1000/2026/09/image-1.png 1000w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w1600/2026/09/image-1.png 1600w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-1.png 1920w" sizes=" 1200px) 1200px"><figcaption><span>Early Indo-European migrations according to the prevailing Kurgan Hypothesis, which places the Indo-European homeland north of the Caucasus in the Pontic&ndash;Caspian Steppe. (</span><a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener noreferrer"><span>Wikipedia: Proto-Indo-European language</span></a><span>)</span></figcaption></figure><p>The peoples who preceded the Indo-Europeans&mdash;called Early European Farmers&mdash;spoke any figure of <strong>Paleo-European</strong> (a.k.a. <strong>Old European</strong>) languages. Very few of these remaining any written evidence (just Aquitanian, Etruscan, Iberian, and a fistful of others), and lone one survives today (Basque). Even so, these Old European languages remaining an indelible grade on the Indo-European languages that succeeded them.</p><figure><img src="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-2.png" alt="" loading="lazy" width="1920" height="1883" srcset="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w600/2026/09/image-2.png 600w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w1000/2026/09/image-2.png 1000w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w1600/2026/09/image-2.png 1600w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-2.png 1920w" sizes=" 720px) 720px"><figcaption><span>Map of known Paleo-European (Old European) languages, including ones that are immediately attested alongside written evidence and those that are lone indirectly attested. (</span><a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener noreferrer"><span>Wikipedia: Paleo-European languages</span></a><span>)</span></figcaption></figure><p>Imagine you&rsquo;re a collection of first Hellenic (Greek) speakers whose ancestors had migrated complete generations from the Pontic&ndash;Caspian Steppe into the east Mediterranean. Along the way, those ancestors encountered all sorts of novel foods, plants, animals, and terrain&mdash;things akin olives, hyacinth, figs, and cypresses. Even the sea was unfamiliar at one point, migrating as your ancestors did from a landlocked steppe. What do you call all these things?</p><p>One choice is to enlist existing vocabulary for new purposes. For example, whenever the Greeks archetypal described hippopotamuses in the mid-5th hundred years BCE, they cleverly called them &lsquo;river horses&rsquo; (&#7989;&pi;&pi;&omicron;&sigmaf; &#8001; &pi;&omicron;&tau;&#940;&mu;&iota;&omicron;&sigmaf; [<em>h&iacute;ppos ho pot&aacute;mios</em>] &lsquo;the equine of the river&rsquo; [lit. &lsquo;the riverine horse&rsquo;]; Herodotus, <em>Histories</em> 2.71, c. 440s BCE). This afterward gave increase to the compound &#7985;&pi;&pi;&omicron;&pi;&#972;&tau;&alpha;&mu;&omicron;&sigmaf; (<em>hippop&oacute;tamos</em>) &lsquo;hippopotamus&rsquo; (Dioscorides, <em>De materia medica</em> 2.25, c. 50&ndash;70 CE). The Greeks equal applied this scheme to the sea! One of the words the Ancient Greeks used for &lsquo;sea&rsquo; was &pi;&#972;&nu;&tau;&omicron;&sigmaf; (<em>p&oacute;ntos</em>), which comes from PIE *<em>p&oacute;ntoh&#8321;s</em> &lsquo;path; road&rsquo;. Every another branch of Indo-European kept the first &lsquo;path/way&rsquo; definition (e.g. Latin <em>p&#333;ns ~ pontis</em> &lsquo;bridge&rsquo;, from which English gets <em>pontiff</em> and <em>pontificate</em>), but Greek extended it to average &lsquo;sea&rsquo;, apparently in the awareness of &lsquo;the water-way; the sea-crossing&rsquo;. Another Ancient Greek term used poetically to mention to the &lsquo;sea&rsquo; was &#7941;&lambda;&sigmaf; (<em>h&aacute;ls</em>), whose chief definition was really &lsquo;salt&rsquo;. The sea, then, was &lsquo;the salt&rsquo;.</p><p>This scheme of coining new conditions for novel experiences was, however, the smaller group one. Why invent new words for things the local Paleo-Europeans already had names for? Why not merely clasp the local name? That&rsquo;s exactly what Indo-Europeans did as they settled throughout the continent, casually borrowing hundreds of words for plants, animals, types of terrain, places, and another natural phenomena. Thus it&rsquo;s no astonishment that the <em>primary</em> Greek term for &lsquo;sea&rsquo; is really &theta;&#940;&lambda;&alpha;&sigma;&sigma;&alpha; (<em>th&aacute;lassa</em> &rarr; English <em>thalassocracy</em> &lsquo;rule of the sea&rsquo;, used for maritime empires), which, dissimilar <em>p&oacute;ntos</em> and <em>h&aacute;ls</em>, has no resolute Indo-European etymology. Linguists have lengthy tried to nexus this term to Indo-European, but no recommendation has won broad acceptance. This is exactly what we&rsquo;d expect: since the Proto-Indo-European tongue arose in the landlocked steppes, it had no need for&mdash;and has no securely reconstructable term for&mdash;&lsquo;sea&rsquo;. (Linguists have, however, reconstructed conditions for snow, cold, wolves, bears, and honey&mdash;all accordant alongside the temperate, continental interior.) Its female branches lone acquired sea vocabulary later. As they reached the coasts, all tongue innovated or borrowed its own term for &lsquo;sea&rsquo;: English <em>sea</em>, Latin <em>mare</em>, Greek <em>th&aacute;lassa</em>, etc.</p><p>The identical procedure happened for all the another items I mentioned earlier:</p><ul><li><strong>olive:</strong> &epsilon;&#787;&lambda;&alpha;&iota;&#769;&alpha; (<em>ela&iacute;a</em>) &lsquo;olive (tree)&rsquo;: A extremely first borrowing which existed in Proto-Hellenic as *<em>ela&iacute;w&#257;</em> and Mycenaean Greek (in Linear B) as &#65537;&#65576;&#65591; (<em>e&#8209;ra&#8209;wa</em>), but has no apparent Indo-European etymology. This identical Pre-Greek term was additionally the origin of the Etruscan term *&#66308;&#66315;&#66308;&#66313;&#66309;&#66304; (*<em>eleiva</em>) &lsquo;olive&rsquo;, anywhere it was borrowed by the Romans as <em>ol&#299;va</em> (the origin of the English words <em>olive</em> and <em>oil</em>).</li><li><strong>hyacinth:</strong> &#8017;&#940;&kappa;&iota;&nu;&theta;&omicron;&sigmaf; (<em>hy&aacute;kinthos</em>) &lsquo;hyacinth&rsquo;: Again, no apparent Indo-European etymology exists. English borrowed the term <em>hyacinth</em> from Greek. Hyacinthus was likely a Pre-Greek god who was superseded by Apollo, and was portrayed as his beloved in Greek mythology.</li><li><strong>fig:</strong> Greek borrowed multiple words for &lsquo;fig&rsquo;, including &epsilon;&#787;&rho;&iota;&#772;&nu;&epsilon;&omicron;&#769;&sigmaf; (<em>er&#299;ne&oacute;s</em>) &lsquo;wild fig-tree&rsquo;, &omicron;&#787;&#769;&lambda;&upsilon;&nu;&theta;&omicron;&sigmaf; (<em>&oacute;lynthos</em>) &lsquo;wild fig&rsquo;, and &sigma;&upsilon;&#834;&kappa;&omicron;&nu; (<em>s&#375;kon</em>) &lsquo;fig&rsquo;. These too have no Indo-European precedent.</li><li><strong>cypress:</strong> Appears in Mycenaean Greek (in Linear B) as &#65554;&#65568;&#65579; (<em>ku&#8209;pa&#8209;ro</em>) and Ancient Greek as &kappa;&upsilon;&pi;&#940;&rho;&iota;&sigma;&sigma;&omicron;&sigmaf; (<em>kyp&aacute;rissos</em>). Lacks an Indo-European etymology. English borrowed the term <em>cypress</em> from Greek.</li></ul><p>Because the Proto-Indo-Europeans lived exterior the native range of these plants, their tongue lacked words for them. They lone borrowed the words upon arriving in the east Mediterranean. Speakers coin or get new words as they need them, and immigration events frequently trigger specified a need, leaving a trace of that immigration in the language&rsquo;s lexicon (and grammar, but that&rsquo;s a item for another article). In this way, <strong>all languages merge a fossil document of their history.</strong> They are a catalog of what the community lacked whenever they arrived in an area or came into communication alongside new peoples. In this article, we&rsquo;ll use that linguistic fossil document to detect what the tongue that existed in the Aegean previous to the Greeks&mdash;which we&rsquo;ll call <strong>Pre-Greek</strong>&mdash;was like.</p><h2 id="substrates-superstrates-adstrates">Substrates, Superstrates, &amp; Adstrates</h2><p>Migration is fair one part of the puzzle, however. When one tongue disappears and leaves lone traces of beingness in another languages in the region, this is typically the outcome of <strong>social stratification</strong>: one additional socially foremost community (militarily, economically, technologically, politically, etc.) imposes its tongue on another small foremost one. Linguists mention to this circumstance as <strong>linguistic stratification:</strong> the socially foremost tongue is called the <strong>superstrate</strong> language, during the small foremost assortment is called the <strong>substrate</strong> language. This metaphor likens languages and community movements to geological strata, anywhere all new community to act an area adds another tier to the linguistic former of the region.</p><figure><img src="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-3.png" alt="" loading="lazy" width="2000" height="1142" srcset="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w600/2026/09/image-3.png 600w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w1000/2026/09/image-3.png 1000w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w1600/2026/09/image-3.png 1600w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-3.png 2074w" sizes=" 720px) 720px"><figcaption><span>Languages as geological strata</span></figcaption></figure><p>In the way of linguistic stratification, the two languages naturally power one another, but the substrate tongue is frequently misplaced entirely, leaving lone traces inside the superstrate language. So whenever we have indirect evidence of a historically unidentified tongue that influenced a historically known language&mdash;like the way the Pre-Greeks influenced Ancient Greek&mdash;we are normally looking at a case of linguistic stratification. Indeed, the first Greeks, and particularly the Mycenaeans (c. 1750&ndash;1050 BCE), are connected alongside important advances in innovation (including writing), economy, and social institution in the Aegean. Another example of linguistic strata can be seen in the diversification of Latin into its descendant Romance languages (Spanish, Portuguese, French, Italian, Romanian, and multiple dozen others). While the control of Roman civilization gradually erased many of the local languages of Europe and the Mediterranean, all of those local languages nonetheless influenced the Latin spoken in their corresponding regions. Over time, those assorted flavors of Latin became distinct languages.</p><p>One another category of linguistic &ldquo;stratum&rdquo; (which breaks the geological layering metaphor somewhat) is an <strong>adstrate</strong> language&mdash;a tongue which influences a neighboring population. Like substrates, this frequently happens in cases of social stratification, anywhere the adstrate community is considered socially better or foremost to the surrounding communities (but it can additionally happen because of uncomplicated geographic proximity). Due to the traditional control of the Roman Empire throughout Europe and the Mediterranean, for instance, Latin functioned as an adstrate tongue for many of the languages that sat throughout the <em>l&#299;mes</em> (the Roman frontier). Even although the Germanic-speaking territories east of the Rhine and north of the Danube never cut under Roman administration, centuries of trade, armed forces contact, and traditional prestige motionless remaining a tier of adstrate borrowings in Proto-Germanic:</p> <table readabilitydatatable="1"> <thead> <tr> <th><strong>Latin</strong></th> <th><strong>Meaning</strong></th> <th><strong>Proto&#8209;Germanic</strong></th> <th><strong>English</strong></th> <th><strong>German</strong></th> </tr> </thead> <tbody> <tr> <td>c&#257;seus</td> <td>&lsquo;cheese&rsquo;</td> <td>*k&#257;sjus</td> <td>cheese</td> <td>K&auml;se</td> </tr> <tr> <td>cattus</td> <td>&lsquo;cat&rsquo;</td> <td>*kattuz</td> <td>cat</td> <td>Katze</td> </tr> <tr> <td>coqu&#299;na</td> <td>&lsquo;kitchen&rsquo;</td> <td>*kok&#299;n&#257;</td> <td>kitchen</td> <td>K&uuml;che</td> </tr> <tr> <td>piper</td> <td>&lsquo;pepper&rsquo;</td> <td>*pipar</td> <td>pepper</td> <td>Pfeffer</td> </tr> <tr> <td>pond&#333;</td> <td>&lsquo;a lb (by weight)&rsquo;</td> <td>*pund&#333;</td> <td>pound</td> <td>Pfund</td> </tr> <tr> <td>saccus</td> <td>&lsquo;sack, bag&rsquo;</td> <td>*sakkiz</td> <td>sack</td> <td>Sack</td> </tr> <tr> <td>via str&#257;ta</td> <td>&lsquo;paved road&rsquo;</td> <td>*str&#257;t&#257;</td> <td>street</td> <td>Stra&szlig;e</td> </tr> <tr> <td>v&#299;num</td> <td>&lsquo;wine&rsquo;</td> <td>*w&#299;nam</td> <td>wine</td> <td>Wein</td> </tr> </tbody> </table> <p>In this article, we&rsquo;ll be hunting for the two a substrate and an adstrate that influenced Ancient Greek.</p><h2 id="how-to-identify-borrowed-words">How to acknowledge borrowed words</h2><blockquote>Any stated part of linguistic evidence can appearance fairly susceptible on its own; it is lone in the environment of broader patterns that specified evidence becomes convincing.</blockquote><p>At this item you power fairly be asking, &ldquo;How do we <em>know</em> that several substrate tongue influenced Ancient Greek? How do we <em>know</em> that the mystery words were borrowed? Can&rsquo;t they fair be random exceptions?&rdquo; This exact issue has vexed historic linguists operating on the Pre-Greek issue for complete a century. Nonetheless, we not lone have fine reasons for thinking a term power be borrowed, but we can equal be extremely certain whenever a term <em>can&rsquo;t</em> arrive from Indo-European. Sometimes, the answer is apparent since there&rsquo;s a akin term alongside a apparent etymology sitting correct in a nearby language. The Ancient Greek term &#7956;&beta;&epsilon;&nu;&omicron;&sigmaf; (<em>&eacute;benos</em>) &lsquo;ebony&rsquo;, for example, has no Indo-European etymology, but fair throughout the Mediterranean Sea was the Egyptian term &#78657; &#78358; &#78829; &#78257; hb&#8209;n&#8209;j&#8209;WOOD (<em>hebni</em>) &lsquo;ebony&rsquo;, and we cognize that the Ancient Greeks traded extensively alongside the Egyptians. But the evidence for a loanword is frequently additional subtle. Below are several of the distinct types of evidence (or non-evidence) linguists use to decide which words are borrowed (in Ancient Greek in particular). As a fun bonus, at the end of this part I&rsquo;ve additionally provided a big catalog of words in English that are idea to ultimately get from a Pre-Greek language.</p><h3 id="words-which-lack-an-indo-european-etymology">Words which deficiency an Indo-European etymology</h3><p>The site of linguistics continues to refine Indo-European etymologies, either via newly-discovered tablets and inscriptions, or improved preparedness of existing data in the form of <a href="https://en.mycoding.id/category/technology" target="_blank">etymological dictionaries</a> and <a href="https://en.mycoding.id/category/technology" target="_blank">online databases</a>, allowing them to bring additional (and additional accurate) data to withstand on Indo-European history. Despite these advances, the mystery words of Ancient Greek have resolutely resisted etymologization. If the figure of possible non&ndash;Indo-European mystery words were gradually decreasing alongside all new finding or advance, the deficiency of an Indo-European etymology power not average anything. It&rsquo;d be reasonable, in that case, to perspective them as a impermanent issue that we&rsquo;d anticipate to resolve eventually. But there is no sign that forthcoming discoveries volition always reveal Indo-European origins for these words. If a term existed in Proto-Indo-European, we should anticipate to discover cognates of it in <em>several</em> of its kid languages, and that&rsquo;s fair not the case for these words.</p><p>Some another words without a resolute Indo-European etymology include:</p><ul><li>&theta;&eta;&sigma;&alpha;&upsilon;&rho;&#972;&sigmaf; (<em>th&#275;saur&oacute;s</em>) &lsquo;treasury, treasure&rsquo; &rarr; English: <em>thesaurus</em></li><li>&#7988;&delta;&eta; (<em>&iacute;d&#275;</em>) &lsquo;wood, wooded hill&rsquo; &rarr; location name: <em>Mount Ida</em></li><li>&beta;&alpha;&sigma;&iota;&lambda;&epsilon;&#973;&sigmaf; (<em>basile&uacute;s</em>) &lsquo;king&rsquo; &rarr; English <em>basilica</em>, <em>basil</em> (because it was connected alongside royalty)</li></ul><p>The final example is particularly convincing since Indo-European already has a term for &lsquo;king; ruler&rsquo; (PIE *<em>h&#8323;r&#7703;&#501;s</em> &rarr; Latin <em>r&#275;x</em> &lsquo;king&rsquo;), and <em>basile&uacute;s</em> doesn&rsquo;t resemble it. It is thus apt that Greek borrowed <em>basile&uacute;s</em> as a term for the local rulers whenever they arrived in the Aegean.</p><p>Also convincing are words which exterior in Latin or other, non&ndash;Indo-European languages whenever the words in those languages <em>also</em> deficiency etymologies. For example, Greek &omicron;&#7990;&nu;&omicron;&sigmaf; (<em>o&icirc;nos</em>) &lsquo;wine&rsquo; has <strong>confamiliars</strong>&sup1; in:</p><ul><li><strong>Latin:</strong> <em>vinum</em></li><li><strong>Hittite:</strong> <em>winija&#8209;</em></li><li><strong>Armenian:</strong> <em>gini</em></li><li><strong>Ethiopian (Ge&rsquo;ez):</strong> <em>wain</em></li><li><strong>Hebrew:</strong> <em>jajin</em></li></ul><p>None of these words can be reconstructed rear to a term in their protolanguages (Proto-Indo-European or Proto-Semitic), so the sensible decision is that the first term for &lsquo;wine&rsquo; must have arrive from several Paleo-European substrate language. The term afterward dispersed about the Mediterranean as part of the diffusion of vino civilization under the power of the Phoenicians (from c. 1000 BCE) and subsequently the Greeks (from c. 600 BCE).</p><p>Here are the words that appear to have been borrowed from a Pre&ndash;Indo-European tongue into the two Greek and another languages about the Mediterranean:</p><figure></figure><h3 id="words-which-are-phonologically-impossible-for-indo-european">Words which are phonologically unattainable for Indo-European</h3><p>Sometimes there is no Proto-Indo-European word&mdash;reconstructed or imagined&mdash;that could perchance create a term in Ancient Greek if it followed the normal audio changes that happened during the development from PIE to Greek. For example, the /dn/ at the commencement of &delta;&nu;&#972;&phi;&omicron;&sigmaf; (<em>dn&oacute;phos</em>) &lsquo;darkness&rsquo; cannot be explained by any Indo-European audio law. Ancient Greek additionally had the suspiciously akin term &kappa;&nu;&#941;&phi;&alpha;&sigmaf; (<em>kn&eacute;phas</em>), which additionally method &lsquo;darkness&rsquo; (and &lsquo;twilight; dusk&rsquo;) and which additionally starts alongside an unattainable audio sequence for inherited Indo-European words in Greek, /kn/. Add to this the words &zeta;&#972;&phi;&omicron;&sigmaf; (<em>z&oacute;phos</em>) and &psi;&#941;&phi;&alpha;&sigmaf; (<em>ps&eacute;phas</em>) which <em>also</em> average &lsquo;darkness&rsquo; and deficiency apparent Indo-European origins, and it&rsquo;s apparent that we&rsquo;re looking at a set of connected words that must have all arrive from a Pre-Greek term definition &lsquo;darkness&rsquo;, and that term must have started alongside a audio or sequence of appears that was difficult for the first Greeks to pronounce: <em>dn&oacute;phos</em> ~ <em>kn&eacute;phas</em> ~ <em>z&oacute;phos</em> ~ <em>ps&eacute;phas</em>. In fact, most of the Ancient Greek words that commencement alongside &#10216;&psi;&#10217; /ps/ (a audio sequence that was unattainable in Proto-Indo-European) are mystery words without Indo-European etymologies. Linguists have projected all sorts of connections for all of these words, so that there are as many hypothesized etymologies for them as there are researchers. This deficiency of agreement is itself indicative that the words are likely Pre-Greek, but the chief item current is that these words do not fit the audio patterns of Indo-European.</p><p>Another sign that a term is Pre-Greek is the audio &beta; /b/, which was rare or perchance absent in Proto-Indo-European, but average in Pre-Greek loanwords:</p><ul><li>&alpha;&#787;&#769;&beta;&lambda;&alpha;&rho;&omicron;&iota; (<em>&aacute;blaroi</em>) &lsquo;wood&rsquo;</li><li>&alpha;&#787;&beta;&upsilon;&#769;&rho;&beta;&eta;&lambda;&omicron;&sigmaf; (<em>ab&yacute;rb&#275;los</em>) &lsquo;much; burdensome; big; heavy&rsquo;</li><li>&alpha;&#787;&rho;&beta;&upsilon;&#769;&lambda;&eta; (<em>arb&yacute;l&#275;</em>) &lsquo;a benevolent of durable footwear or half-boot&rsquo;</li><li>&alpha;&#787;&tau;&alpha;&#769;&rho;&beta;&alpha;&kappa;&tau;&omicron;&sigmaf; (<em>at&aacute;rbaktos</em>) &lsquo;unafraid&rsquo;</li><li>&beta;&alpha;&#769;&rho;&beta;&iota;&lambda;&omicron;&sigmaf; (<em>b&aacute;rbilos</em>) &lsquo;seedling peach tree&rsquo;</li><li>&theta;&omicron;&#769;&rho;&upsilon;&beta;&omicron;&sigmaf; (<em>th&oacute;rybos</em>) &lsquo;noise; uproar, clamor (esp. of a crowd); tumult, confusion&rsquo;</li><li>&kappa;&iota;&#769;&beta;&alpha;&lambda;&omicron;&sigmaf; (<em>k&iacute;balos</em>) &lsquo;messenger, courier&rsquo;</li></ul><p>There are additionally many words which <em>seem</em> akin they could get from Indo-European, but don&rsquo;t obey the expected audio patterns. For example, Ancient Greek had two akin words &tau;&#940;&phi;&omicron;&sigmaf; (<em>t&aacute;phos</em>) &lsquo;funeral; grave&rsquo; (&rarr; English <em>epitaph</em>, <em>cenotaph</em>, <em>taphonomy</em>) and &tau;&#973;&mu;&beta;&omicron;&sigmaf; (<em>t&yacute;mbos</em>) &lsquo;grave; tombstone&rsquo; (&rarr; English <em>tomb</em>, via Latin). The archetypal of these comes from PIE *<em>d&#688;m&#805;b&#688;os</em> &lsquo;tomb&rsquo; and follows all the normal audio changes you&rsquo;d anticipate from PIE to Ancient Greek. But <em>t&yacute;mbos</em> is a dupe: it <em>looks</em> related, but it doesn&rsquo;t prosecute the expected audio changes. So either the similarity between the two words is purely coincidental, in which case <em>t&yacute;mbos</em> was likely borrowed from a Pre-Greek, non&ndash;Indo-European language, or <em>t&yacute;mbos</em> does in fact get from PIE, but through several unknown, intermediate Indo-European language, which Greek afterward borrowed it from.</p><p>Here is a catalog of Greek words alongside plausible Indo-European roots and imaginable cognates in Greek or another languages, but that don&rsquo;t obey the expected audio changes for Ancient Greek:</p><figure></figure><h3 id="words-with-lots-of-phonetic-variation">Words alongside many of phonetic variation</h3><p>When words are borrowed from one tongue into another, they frequently initially attain alongside a slew of distinct pronunciations. Sometimes this is since the contributor tongue has appears that the recipient tongue does not, so speakers of the receiving tongue have to approximate them as finest they can. This was apt the case alongside the &lsquo;darkness&rsquo; words we saw above: assortment akin <em>dn&oacute;phos</em> ~ <em>kn&eacute;phas</em> ~ <em>z&oacute;phos</em> ~ <em>ps&eacute;phas</em> suggests that there was an first consonant or consonant collection in that term which the Greeks had difficulty pronouncing.</p><p>Often, however, assortment in borrowed words occurs merely since speakers of the recipient tongue are unfamiliar alongside the word. The Powhatan term <em>makasin</em>, for example, contains lone appears acquainted to English speakers, but whenever English colonists borrowed the word, the range of spellings included <em>maccaseene</em>, <em>makissin</em>, <em>mogason</em>, <em>moccasin</em>, and <em>mogozeen</em>. It took a hundred years or so for the orthography and articulation to standardize. Random variations in orthography and articulation akin this are frequently a apparent indicator of borrowed words.</p><p>The term &ldquo;random&rdquo; is crucial there. We additionally see assortment in orthography whenever languages undergo broader audio changes, but this assortment is regular and predictable, not random. For example, Proto-Greek had a set of palatal appears */ty, t&#688;y, ky, k&#688;y/ which all became *t&#865;s or perchance *t&#865;&#643;. In the Attic, Boeotian, and Euboean dialects of Greek, that *t&#865;s / *t&#865;&#643; audio became /tt/, but in the Ionic, Doric, and another dialects of Greek it became /ss/. At the beginnings of words, it became /t/ ~ /s/. This audio alter yielded pairs akin the following:&sup2;</p> <table id="alternation-table" readabilitydatatable="1"> <thead> <tr> <th>Ionic</th> <th></th> <th>Attic</th> <th></th> <th>Meaning</th> </tr> </thead> <tbody> <tr> <td>&theta;&#940;&lambda;&alpha;<strong>&sigma;&sigma;</strong>&alpha;</td> <td>th&aacute;la<strong>ss</strong>a</td> <td>&theta;&#940;&lambda;&alpha;<strong>&tau;&tau;</strong>&alpha;</td> <td>th&aacute;la<strong>tt</strong>a</td> <td>&lsquo;sea&rsquo;</td> </tr> <tr> <td>&mu;&#941;&lambda;&iota;<strong>&sigma;&sigma;</strong>&alpha;</td> <td>m&eacute;li<strong>ss</strong>a</td> <td>&mu;&#941;&lambda;&iota;<strong>&tau;&tau;</strong>&alpha;</td> <td>m&eacute;li<strong>tt</strong>a</td> <td>&lsquo;bee&rsquo;</td> </tr> <tr> <td><strong>&sigma;</strong>&#942;&mu;&epsilon;&rho;&omicron;&nu;</td> <td><strong>s</strong>&#7703;meron</td> <td><strong>&tau;</strong>&#942;&mu;&epsilon;&rho;&omicron;&nu;</td> <td><strong>t</strong>&#7703;meron</td> <td>&lsquo;today&rsquo;</td> </tr> <tr> <td>&tau;&#941;<strong>&sigma;&sigma;</strong>&alpha;&rho;&epsilon;&sigmaf;</td> <td>t&eacute;<strong>ss</strong>ares</td> <td>&tau;&#941;<strong>&tau;&tau;</strong>&alpha;&rho;&epsilon;&sigmaf;</td> <td>t&eacute;<strong>tt</strong>ares</td> <td>&lsquo;four&rsquo;</td> </tr> </tbody> </table> <p>The assortment in these words is <em>not</em> evidence that they were borrowed, since this is regular, patterned dialectal variation. Notice that our Pre-Greek term <em>th&aacute;lassa</em> / <em>th&aacute;latta</em> &lsquo;sea&rsquo; is in this catalog too. This is a borrowing, but it&rsquo;s <em>not</em> the /ss/ ~ /tt/ alternation that tells us that. Evidence of its loanword position comes from elsewhere. But its involvement in the /ss/ ~ /tt/ alternation <em>does</em> inform us that it was borrowed extremely first in the former of Greek, before this audio alter took location (the duration of Proto-Greek, c. 2200&ndash;1700 BCE). It additionally tells us that it contained among the palatal appears that afterward became /ss/ ~ /tt/.</p><p>That&rsquo;s all to say: uncomplicated assortment is not adequate evidence of borrowing. The assortment must not be attributable to regular audio changes in the language; it must be mostly random instead. In fact, part of the evidence that <em>th&aacute;lassa</em> &lsquo;sea&rsquo; is borrowed is that it <em>also</em> shows random assortment <em>in supplement to</em> the regular dialectal variation. It appears formerly in Hesychius&rsquo; glosses as &delta;&alpha;&lambda;&#940;&gamma;&chi;&alpha;&nu; (<em>dal&aacute;nkhan</em>), exhibiting /d/ alternatively of /t&#688;/ for the archetypal consonant, and alongside a consonant collection /nk&#688;/ alternatively of /ss/ ~ /tt/. But recall that the /ss/ ~ /tt/ appears initially derived from several category of palatal consonant. This powerfully suggests that what Hesychius wrote as &#10216;&gamma;&chi;&#10217; /nk&#688;/ was an attempt to portray a palatal /ky/. (Hesychius was compiling the glossaries of before writers.)</p><p>Here are several another Ancient Greek words that we cognize are borrowings in part since of their type pronunciations:</p><ul><li><strong>&#8008;&delta;&upsilon;&sigma;&sigma;&epsilon;&#973;&sigmaf; (<em>Odysse&uacute;s</em>) / &#8008;&lambda;&upsilon;&sigma;&sigma;&epsilon;&#973;&sigmaf; (<em>Olysse&uacute;s</em>) &lsquo;Odysseus / Ulysses&rsquo;</strong><ul><li>The type alongside /l/ is the one that reached Latin (<em>Ulixes</em>), and this is why the epic champion is called <em>Ulysses</em> in the Roman tradition and <em>Odysseus</em> in the Greek tradition.</li></ul></li><li><strong>&lambda;&alpha;&beta;&#973;&rho;&iota;&nu;&theta;&omicron;&sigmaf; (<em>lab&yacute;rinthos</em>) / Mycenaean &#65541;&#65606;&#65578;&#65589;&#65549; da&#8209;pu&#8322;&#8209;ri&#8209;to&#8209;jo (<em>daphurinthoio</em>) &lsquo;labyrinth&rsquo;</strong><ul><li>This term has the identical /l/ ~ /d/ alternation as Ulysses ~ Odysseus, as fine as a /b/ ~ /p&#688;/ alternation.</li></ul></li><li><strong>&sigma;&#8166;&kappa;&omicron;&nu; (<em>s&#375;kon</em>) / Boeotian &tau;&#8166;&kappa;&omicron;&nu; (<em>t&#375;kon</em>) &lsquo;fig&rsquo;</strong><ul><li>Exhibits an /s/ ~ /t/ alternation. Latin and Old Armenian may have additionally borrowed this term from the Pre-Greek substrate as <em>f&#299;cus</em> &lsquo;fig tree&rsquo; (&rarr; English <em>ficus</em>) and &#1385;&#1400;&#1410;&#1382; (<em>t&#699;uz</em>) &lsquo;fig&rsquo;, respectively.</li></ul></li><li><strong>&#7936;&sigma;&phi;&#940;&rho;&alpha;&gamma;&omicron;&sigmaf; (<em>asph&aacute;ragos</em>) / &#7936;&sigma;&pi;&#940;&rho;&alpha;&gamma;&omicron;&sigmaf; (<em>asp&aacute;ragos</em>) &lsquo;asparagus&rsquo;</strong><ul><li>Latin got the /p/ type and gave it to English.</li></ul></li></ul><p>In another cases we see assortment in the existence of an first /w/ sound, which is particularly neat since Greek initially had a /w/ audio but afterward misplaced it! In Mycenaean Greek (c. 1400&ndash;1200 BCE), the /w/ was motionless present, as shown in words akin &#65591;&#65561;&#65551; (<em>wa&#8209;na&#8209;ka</em>) &lsquo;king; lord&rsquo;. Many dialects (Aeolic, Doric [including Cretan], Elean, Boeotian, etc.) retained that /w/ and wrote it alongside the letter digamma &#10216;&#989;&#10217; as &#989;&#940;&nu;&alpha;&xi; (<em>w&aacute;nax</em>) fine into the Classical duration (5th&ndash;4th C BCE). But the Attic and Ionic dialects misplaced /w/ before the increase of alphabetic penning (8th C BCE), so they wrote the term as &#8112;&#787;&#769;&nu;&#8112;&xi; (<em>&aacute;nax</em>). But equal although Homer never writes a digamma, the meter of his poems frequently <em>behaves</em> as although the /w/ were motionless there, since they were initially composed whenever it was!</p><p>In any case, notice how the /w/ was merely deleted from <em>w&aacute;nax</em> to output <em>&aacute;nax</em>. But for many Pre-Greek loanwords, we see attempts to render a /w/ audio equal in the dialects that misplaced it! The city of Axos on Crete, for example, is written as &#989;&alpha;&xi;&#972;&sigmaf; (<em>Wax&oacute;s</em>) in the Cretan dialect but &#8008;&alpha;&xi;&#972;&sigmaf; (<em>Oax&oacute;s</em>) exterior Crete. If this term had already existed in Greek, the /w/ would have merely disappeared in the non&#8209;/w/ dialects, akin it did for <em>&aacute;nax</em>. Instead, those dialects attempted to compose the /w/ audio they heard whenever they adopted the name of the location from the Pre&#8209;Greeks. Since the /w/ audio and &#10216;&#989;&#10217; letter were already misplaced to them by that point, they approximated it alongside &#10216;&#8008;&#10217; /o/ instead. This shows that the Greeks adopted the Pre-Greek location name <em>after</em> /w/ had disappeared in most dialects.</p><p>We see the identical attempt to portray /w/ in variations of the term for &lsquo;hyacinth&rsquo;:</p><ul><li><strong>standard written form:</strong> <strong>&#8017;</strong>&#940;&kappa;&iota;&nu;&theta;&omicron;&sigmaf; (<em><strong>hy</strong>&aacute;kinthos</em>)</li><li><strong>Cretan:</strong> <strong>&#989;</strong>&#940;&kappa;&iota;&nu;&theta;&omicron;&sigmaf; (<em><strong>w</strong>&aacute;kinthos</em>)</li><li><strong>Cretan variant:</strong> <strong>&beta;</strong>&#940;&kappa;&iota;&nu;&theta;&omicron;&sigmaf; (<em><strong>b</strong>&aacute;kinthos</em>)</li></ul><p>Here, the /w/ surfaces as &#8017;&alpha;&#8209; /hya/, &#989;&alpha;&#8209; /wa/, and &beta;&alpha;&#8209; /ba/.</p><p>In sum, random assortment is frequently a key part of evidence that a term is borrowed.</p><h3 id="words-in-certain-semantic-categories">Words in certain semantic categories</h3><p>As mentioned above, certain categories of words are apt to be borrowed by a group migrating into an area, namely conditions for plants, animals, terrain, and several uncomplicated tools. Thus, if a term has no powerful etymology and it refers to either a natural event or local matter civilization or social practices, it&rsquo;s a fine applicant for a loanword. In <a href="https://en.mycoding.id/category/technology" target="_blank">Beekes 2010</a> etymological dictionary of Greek, he lists 1,106 words as coming from Pre-Greek. Of those, the largest categories of words are for flora and fauna. (Beekes does not contain most location names in the dictionary.) The array below shows the total category counts. You can see that, alongside the elimination of individual physiology, these are exactly the types of words we&rsquo;d anticipate to be borrowed from Pre-Greek.</p><ul><li><strong>Flora:</strong> 178</li><li><strong>Fauna:</strong> 180</li><li><strong>Landscape &amp; Natural Phenomena:</strong> 37</li><li><strong>Minerals:</strong> 27</li><li><strong>Agriculture:</strong> 38<ul><li><strong>Viniculture:</strong> 20</li></ul></li><li><strong>Human Physiology:</strong> 81</li><li><strong>Attire &amp; Jewelry:</strong> 21</li><li><strong>Equipment &amp; Utensils:</strong> 154</li><li><strong>Construction:</strong> 34</li><li><strong>Culture:</strong> 51<ul><li><strong>Musical Instruments / Arts:</strong> 18</li><li><strong>Religious Festivals / Feasting:</strong> 8</li><li><strong>Divine/Numinous Beings, Priests, &amp; Temples:</strong> 12</li><li><strong>Theonyms / Mythical Characters:</strong> 26</li></ul></li></ul><p>What I discover particularly engaging is that the Greeks adopted nearly their complete pantheon from Pre-Greek civilization! Except for Zeus, Eos, Pan, Hades, and perchance Poseidon, all the names of Greek gods cannot be reconstructed to Proto-Indo-European, and are apt loanwords from Pre-Greek substrate tongue (<a href="https://en.mycoding.id/category/technology" target="_blank">Verhasselt 2009</a>: 211).</p><h3 id="pairs-of-words-that-mean-the-same-thing">Pairs of words that average the identical thing</h3><p>When a tongue has many pairs of words that the two mention to approximately the identical concept, this is frequently a sign of extended borrowing. This is particularly true whenever those words are concentrated in one or a few semantic fields. For example, English famously has pairs of words for animals and the foods that arrive from those animals, anywhere the name of the animal derives from English but the name of the food derives from French:</p> <table readabilitydatatable="1"> <thead> <tr> <th><strong>Animal<br>(from English)</strong></th> <th><strong>Meat<br>(from Norman French)</strong></th> </tr> </thead> <tbody> <tr> <td>calf</td> <td>veal</td> </tr> <tr> <td>chicken / fowl</td> <td>poultry</td> </tr> <tr> <td>deer</td> <td>venison</td> </tr> <tr> <td>cow</td> <td>beef</td> </tr> <tr> <td>pig / swine</td> <td>pork</td> </tr> <tr> <td>sheep</td> <td>mutton</td> </tr> </tbody> </table> <p>Originally, the two the English and French words referred to the animal&mdash;<em>boef</em> was merely the Norman French term for &lsquo;cow&rsquo;; <em>porc</em> was the term for &lsquo;pig&rsquo;, and so on. But because of the social stratification between French speakers and English speakers following the Norman Conquest, the French words eventually came to mention to the food fairly than the animal.</p><p>In cases of community immigration or invasion, specified as the arrival of the first Greeks in the Aegean or the Norman intrusion of England, the outcome is frequently that words from all tongue are connected alongside distinct social contexts or registers, reflecting the uneven blend of the two cultures. This method that two or additional words for the identical idea can be side-by-side in a language, all being used in distinct contexts. (Notice that this is additionally a case of linguistic stratification, anywhere French was the superstrate and English was the substrate.)</p><p>Ancient Greek exhibited this form alongside words relating to weaving. Alongside Indo-European words for weaving and textiles are a set of substitute words for the identical things, which deficiency any apparent Indo-European etymology. Pairs of words akin the ones in the array below are a powerful sign of substrate borrowing.</p><figure></figure><h3 id="converging-evidence">Converging Evidence</h3><p>Obviously, none of these methods of identifying borrowed words is airtight. Any stated term power be a random elimination whose clarification is misplaced to history. And no sole characteristic listed complete is diagnostic by itself. Instead, we decide borrowings through the confluence of evidence, and the way certain words form together in groups. We appearance for words that act in <em>recurrent or systematic patterns.</em></p><p>Consider the following Ancient Greek words:</p><ul><li>&#7940;&sigma;&beta;&omicron;&lambda;&omicron;&sigmaf; (<em>&aacute;sbolos</em>) &lsquo;soot&rsquo;</li><li>&sigma;&pi;&omicron;&delta;&#972;&sigmaf; (<em>spod&oacute;s</em>) &lsquo;ashes; ember&rsquo;</li><li>&psi;&#972;&lambda;&omicron;&sigmaf; (<em>ps&oacute;los</em>) &lsquo;soot; smoke&rsquo;</li></ul><p>All these words deficiency apparent etymologies, and display the identical /d/ ~ /l/ assortment we saw earlier. The first /a/ of <em>&aacute;sbolos</em> cannot be explained by normal audio changes, and the consonant collection /sb/ is anomalous for Proto-Indo-European. <em>ps&oacute;los</em> reverses the command of the consonants to /ps/, which aligns it alongside the many another Pre-Greek loanwords that commencement alongside an first /ps/. (Remember from before that nearly all Greek words commencement alongside /ps/ have turned out to be loanwords.) Add to this the fact that PIE has a term for &lsquo;ash&rsquo;, *<em>h&#8322;eh&#8321;s&#8209;</em>, which looks nothing akin any of these forms, and is the origin of the Greek reflex &#7940;&zeta;&omega; (<em>&aacute;z&#333;</em>) &lsquo;to dry up; to parch&rsquo;. This is thus another case of copy words for the identical thing&mdash;one borrowed, one native. Taken together, the evidence shows that these three words are undoubtedly distinct variants of several non-Greek borrowing.</p><p>Or regard the words &#7940;&nu;&theta;&rho;&alpha;&xi; (<em>&aacute;nthrax</em>) and &kappa;&#940;&nu;&delta;&alpha;&rho;&omicron;&sigmaf; (<em>k&aacute;ndaros</em>, attested in Hesychius&rsquo; glosses), which the two average &lsquo;charcoal&rsquo;. While there is a possible but shaky PIE etymology for <em>k&aacute;ndaros</em> (*<em>(s)kand&#8209;</em> &lsquo;to shine; to glow&rsquo;), there are no fine ones for <em>&aacute;nthrax</em>. There is additionally no known procedure by which an first /k/ gets added to or deleted from a term in the journey from PIE to Ancient Greek, and no clarification for the assortment between /t&#688;/ and /d/. In fact, the two the changeable first /k/ and the <em>&#8209;ak</em> suffix in <em>&aacute;nthrax</em> (pronounced /&aacute;n.t&#688;raks/) are features established in many Pre-Greek loanwords. Given this converging evidence, the most apt clarification for these words is that they the two arrive from a sole Pre-Greek word.</p><div><p>&#128173;</p><p><b><strong>Aside:</strong></b> The multifaceted nature of the evidence for any stated word&rsquo;s etymology makes it difficult for linguists to explain, succinctly, how we cognize anywhere a term comes from, or how we rebuild words in languages that were never written down. We depend on an interconnected web of principles and patterns that we&rsquo;ve deduced from the written historic document complete three centuries of investigation in historic linguistics. Any stated part of evidence can appearance fairly susceptible on its own; it is lone the environment of broader patterns that specified evidence becomes convincing. This province of affairs is why, I believe, so many group are doubtful of historic reconstructions in linguistics.</p></div><p>To sum up, linguists really have a amazing figure of tools at our disposal for resolving fair which words in a tongue are borrowed.</p><div><p>&#127873;</p><p><b><strong>Bonus:</strong></b> At the end of this article, I&rsquo;ve included a big catalog of words in English that are idea to ultimately get from Pre-Greek.</p></div><h2 id="where-was-the-pre-greek-language-spoken">Where was the Pre-Greek tongue spoken?</h2><p>We can do equal improved than merely identifying particular words that were likely borrowed: <strong>in several cases we can display that the words must have arrive from the <em>same, particular substrate language</em> (or closely-related languages).</strong> We can catalog particular features the tongue power have had, and equal approximately anywhere it was spoken, although we have small or no straightforward written evidence of it.</p><p>The most conclusive part of evidence that we&rsquo;re looking at borrowings from a <em>specific</em> substrate tongue is whenever we see similar-looking pieces of words throughout many of the borrowings. This may portray a prefix, suffix, or complete term in the substrate tongue that got borrowed wholesale alongside alongside the remainder of the word/phrase. For example, location names in England are rife alongside fossilized affixes that were initially words in substrate or adstrate languages:</p><ul><li><strong>Brittonic <em>penn</em> &lsquo;head, hill, headland&rsquo; &rarr; English <em>Pen&#8209;</em></strong><ul><li>Penrith</li><li>Penzance</li><li>Pendle Hill</li><li>Penge (London)</li></ul></li><li><strong>Latin <em>castra</em> &lsquo;camp&rsquo; &rarr; English <em>&#8209;chester</em> / <em>&#8209;cester</em> / <em>&#8209;caster</em></strong><ul><li>Chester</li><li>Manchester</li><li>Winchester</li><li>Leicester</li><li>Worcester</li><li>Gloucester</li><li>Lancaster</li></ul></li><li><strong>Old Norse <em>b&yacute;</em> &lsquo;farmstead&rsquo; &rarr; English <em>&#8209;by</em></strong><ul><li>Derby</li><li>Rugby</li><li>Whitby</li><li>Grimsby</li><li>Selby</li></ul></li></ul><p>Each of these suffixes acts as a document of a particular stratum in English&rsquo;s history: the pre&ndash;Anglo-Saxon Celtic layer, the Roman occupation layer, and the Old Norse (Viking) layer. <strong>Toponyms</strong> (place names) are an particularly affluent origin of data concerning extinct substrate languages since migrating populations lean to clasp existing location names, particularly for names of settlements. (At smallest fractional of U.S. states have names derived from an indigenous language, for example.) Toponyms lean to be comparatively stable complete time, at smallest compared to another words in the lexicon.</p><p>Places akin Corinth, Knossos, Athens, and Lemnos had already been settled for thousands of years whenever the archetypal Greeks arrived in the Aegean. So it shouldn&rsquo;t be a astonishment that all four of those names are indisputably Pre-Greek borrowings, and that they all merge suffixes that recur period and again in placenames throughout the Aegean! The most celebrated of these is the &#8209;&nu;&theta; (<em>&#8209;nth</em>) suffix, which appears in, <em>inter alia</em>:</p><ul><li>&#7960;&rho;&#973;&mu;&alpha;<strong>&nu;&theta;</strong>&omicron;&sigmaf; (<em>Er&yacute;ma<strong>nth</strong>os</em>): Erymanthos, a mountain range in the Peloponnese peninsula</li><li>&#8025;&#940;&kappa;&iota;<strong>&nu;&theta;</strong>&omicron;&sigmaf; (<em>Hy&aacute;ki<strong>nth</strong>os</em>): Hyakinthos/Hyacinth, a mountain in Attica</li><li>&Kappa;&eta;&#769;&rho;&iota;<strong>&nu;&theta;</strong>&omicron;&sigmaf; (<em>K&#7703;ri<strong>nth</strong>os</em>): Kerinthos, an ancient town in Euboea</li><li>&Kappa;&#972;&rho;&iota;<strong>&nu;&theta;</strong>&omicron;&sigmaf; (<em>K&oacute;ri<strong>nth</strong>os</em>): Corinth, a city on the isthmus joining the Peloponnese peninsula to mainland Greece</li><li>&Omicron;&#787;&#769;&lambda;&upsilon;<strong>&nu;&theta;</strong>&omicron;&sigmaf; (<em>&Oacute;ly<strong>nth</strong>os</em>): Olynthus, an ancient city in present-day Chalcidice</li><li>&Tau;&iota;&#769;&rho;&upsilon;&nu;&sigmaf;, &Tau;&#943;&rho;&upsilon;<strong>&nu;&theta;</strong>&omicron;&sigmaf; (<em>T&iacute;ryns, T&iacute;ry<strong>nth</strong>os</em>): Tiryns, an ancient Mycenaean city in the Peloponnese peninsula</li></ul><p>Also extensively attested are the &#8209;&sigma;&sigma; (<em>&#8209;ss</em>) suffix in Knossos, the &#8209;&nu; (<em>&#8209;n</em>) suffix in Athens, and the &#8209;&mu;&nu; (<em>&#8209;mn</em>) suffix in Lemnos. Below is a sampling of location names that these suffixes appear in.</p><ul><li><strong>&#8209;&sigma;&sigma; (<em>&#8209;ss</em>)</strong><ul><li>&#7945;&lambda;&iota;&kappa;&alpha;&rho;&nu;&alpha;<strong>&sigma;&sigma;</strong>&#972;&sigmaf; (<em>Halikarna<strong>ss</strong>&oacute;s</em>): Halicarnassus, an ancient city on the shoreline of Anatolia (modern Turkey)</li><li>&Kappa;&nu;&omega;<strong>&sigma;&sigma;</strong>&#972;&sigmaf; (<em>Kn&#333;<strong>ss</strong>&oacute;s</em>): Knossos, a Minoan palace on the isle of Crete</li><li>&Lambda;&#940;&rho;&iota;<strong>&sigma;&sigma;</strong>&alpha; (<em>L&aacute;ri<strong>ss</strong>a</em>): Larissa, a city in Thessaly</li><li>&Pi;&alpha;&rho;&nu;&alpha;<strong>&sigma;&sigma;</strong>&#972;&sigmaf; (<em>Parna<strong>ss</strong>&oacute;s</em>): Parnassus, a mountain in chief Greece and residence to Delphi</li></ul></li><li><strong>&#8209;&nu; (<em>&#8209;n</em>)</strong><ul><li>&#7944;&theta;&#8134;<strong>&nu;</strong>&alpha;&iota; (<em>Ath&ecirc;<strong>n</strong>ai</em>): Athens, chief city of Greece</li><li>&Lambda;&#941;&rho;<strong>&nu;</strong>&eta; (<em>L&eacute;r<strong>n</strong>&#275;</em>): Lerna, a area of springs and a erstwhile lake in traditional Greece, south of Argos</li><li>&Mu;&upsilon;&kappa;&#8134;<strong>&nu;</strong>&alpha;&iota; (<em>Myk&ecirc;<strong>n</strong>ai</em>): Mycenae, an ancient Mycenaean city in the Peloponnese peninsula</li><li>&Mu;&#973;&kappa;&omicron;<strong>&nu;</strong>&omicron;&sigmaf; (<em>M&yacute;ko<strong>n</strong>os</em>): Mykonos, an isle in the southernmost Aegean Sea</li></ul></li><li><strong>&#8209;&mu;&nu; (<em>&#8209;mn</em>)</strong><ul><li>&Lambda;&#940;&rho;&upsilon;<strong>&mu;&nu;</strong>&alpha; (<em>L&aacute;ry<strong>mn</strong>a</em>): Larymna, a harbor town in Phthiotis</li><li>&Lambda;&#8134;<strong>&mu;&nu;</strong>&omicron;&sigmaf; (<em>L&ecirc;<strong>mn</strong>os</em>): Lemnos, an isle in the northern Aegean Sea</li><li>&Lambda;&epsilon;&pi;&#941;&tau;&upsilon;<strong>&mu;&nu;</strong>&omicron;&sigmaf; (<em>Lep&eacute;ty<strong>mn</strong>os</em>): Lepetymnos, a mountain on the isle of Lesbos</li><li>&Mu;&#942;&theta;&upsilon;<strong>&mu;&nu;</strong>&alpha; (<em>M&#7703;thy<strong>mn</strong>a</em>): Methymna, a town on the isle of Lesbos</li><li>&#8172;&#943;&theta;&upsilon;<strong>&mu;&nu;</strong>&alpha; (<em>Rh&iacute;thy<strong>mn</strong>a</em>): Rethymno, a city on the isle of Crete</li></ul></li></ul><p>(The logic these suffixes are in the center of these words is since Greek speakers added the normal Greek case suffixes on the end whenever they borrowed them.)</p><p>Because these are toponyms tied to particular places, we can equal map the area anywhere this Pre-Greek substrate was initially spoken! Below is a map of Pre-Greek toponyms showing the approximate area anywhere the Pre-Greek substrate was spoken.</p><figure><img src="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w2400/2026/09/map--3240x3240-.png" alt="" loading="lazy" width="2000" height="2000" srcset="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w600/2026/09/map--3240x3240-.png 600w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w1000/2026/09/map--3240x3240-.png 1000w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w1600/2026/09/map--3240x3240-.png 1600w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w2400/2026/09/map--3240x3240-.png 2400w" sizes=" 1200px) 1200px"><figcaption><span>Greek toponyms (placenames) borrowed from a Pre-Greek substrate. This map lone shows toponyms that are extensively acknowledged to be Pre-Greek alongside a comparatively elevated flat of certainty, and lone toponyms alongside the well-attested Pre-Greek suffixes &#8209;&mu;&nu;&#8209;, &#8209;&nu;&#8209;, &#8209;&nu;&theta;&#8209;, and &#8209;&sigma;&sigma;&#8209;/&#8209;&tau;&tau;&#8209; (</span><i><em>&#8209;mn&#8209;</em></i><span>, </span><i><em>&#8209;n&#8209;</em></i><span>, </span><i><em>&#8209;nth&#8209;</em></i><span>, and </span><i><em>&#8209;ss&#8209;</em></i><span>/</span><i><em>&#8209;tt&#8209;</em></i><span>). Other possible Pre-Greek suffixes are excluded. Other toponyms extensively acknowledged to be borrowings but which are not firmly connected to the Pre-Greek substrate, specified as &Kappa;&rho;&#942;&tau;&eta; (</span><i><em>Kr&#7703;t&#275;</em></i><span>) &lsquo;Crete&rsquo;, are additionally excluded. Finally, several location names were omitted for reasons of space, particularly those in and about Athens.</span></figcaption></figure><p>You can perspective the complete dataset of Pre-Greek toponyms, including small certain ones and ones that were excluded from this map, <a href="https://en.mycoding.id/category/technology" target="_blank">here</a>.</p><div><p>&#128157;</p><p>I&rsquo;d additionally akin to item out that I made this map! (Please clap &#128079;) In fact, I spent many, many hours learning how to create maps, as fine as compiling a repository of all known Pre-Greek toponyms, and ranking them according to their certainty, fair for this project. And now that I cognize the technique, I&rsquo;ll be capable to create additional maps (and much additional quickly) for articles in the future! Nonetheless, these kinds of maps and infographics obtain many hours of investigation and activity to produce, so your assistance is priceless in giving me the period to create them. If you&rsquo;d akin to assistance my activity so that I can create additional of these types of outputs in the future, you can do so by clicking the clasp below. Thank you ongoing for your support!</p></div><h2 id="how-to-identify-a-pre-greek-suffix">How to acknowledge a Pre-Greek suffix</h2><p>The intellectually careful among you are now likely rightly asking, &ldquo;How do we <em>know</em> these are suffixes and not fair average appears in these words?&rdquo; The strongest part of evidence for these suffixes is that in several cases, versions of the term can be established the two alongside and without the suffix. The sole finest example of this benevolent of alternation is the toponym &Kappa;&eta;&#769;&rho;&iota;&nu;&theta;&omicron;&sigmaf; (<em>K&#7703;rinthos</em>). When used as a normal term fairly than a location name, <em>k&#7703;rinthos</em> meant &lsquo;bee bread (perga)&rsquo;, during &kappa;&eta;&rho;&omicron;&#769;&sigmaf; (<em>k&#275;r&oacute;s</em>), without the <em>&#8209;nth</em> suffix, meant &lsquo;beeswax&rsquo;. Kerinthos, then, was extremely apt named specified since it was known for its beekeeping! We can be equal additional certain that this term for &lsquo;beeswax&rsquo; was borrowed from several another tongue since it&rsquo;s confamiliar alongside akin words about the Mediterranean:</p><ul><li><strong>Latin:</strong> <em>c&#275;ra</em> &lsquo;wax; beeswax&rsquo;</li><li><strong>Albanian:</strong> <em>qiri</em> &lsquo;candle&rsquo;</li><li><strong>Lithuanian / Latvian:</strong> <em>kor&#7929;s</em> / <em>k&#257;re</em> &lsquo;honeycomb&rsquo;</li></ul><p>Other Pre-Greek words that appear alongside and without their suffixes include:</p><ul><li><strong>&empty; ~ &#8209;nth</strong><ul><li>&#7944;&mu;&alpha;&rho;&upsilon;&sigma;&#943;&alpha; (<em>Amarys&iacute;a</em>), among the names for Artemis</li><li>&#7944;&mu;&#940;&rho;&upsilon;&nu;&theta;&omicron;&sigmaf; (<em>Am&aacute;rynthos</em>), a township on Euboea, and another name for Artemis</li></ul></li><li><strong>&empty; ~ &#8209;mn ~ &#8209;n</strong><ul><li>&Delta;&#943;&kappa;&tau;&eta; (<em>D&iacute;kt&#275;</em>)</li><li>&delta;&#943;&kappa;&tau;&alpha;&mu;&nu;&omicron;&nu; (<em>d&iacute;ktamnon</em>) &lsquo;dittany (of Crete)&rsquo;</li><li>&Delta;&#943;&kappa;&tau;&upsilon;&nu;&nu;&alpha; (<em>D&iacute;ktynna</em>) &lsquo;Cretan goddess&rsquo;</li></ul></li><li><strong>&empty; ~ &#8209;ss ~ &#8209;n</strong> (and a imaginable <em>&#8209;l</em> suffix)<ul><li>&Mu;&upsilon;&kappa;&#940;&lambda;&eta; (<em>Myk&aacute;l&#275;</em>)</li><li>&Mu;&upsilon;&kappa;&alpha;&lambda;&eta;&sigma;&sigma;&#972;&sigmaf; (<em>Mykal&#275;ss&oacute;s</em>)</li><li>&Mu;&upsilon;&kappa;&#8134;&nu;&alpha;&iota; (<em>Myk&ecirc;nai</em>)</li></ul></li><li><strong>&empty; ~ &#8209;m</strong> (another Pre-Greek suffix)<ul><li>&pi;&#973;&rho;&gamma;&omicron;&sigmaf; (<em>p&yacute;rgos</em>) &lsquo;tower&rsquo;</li><li>&Pi;&#941;&rho;&gamma;&alpha;&mu;&omicron;&nu; (<em>P&eacute;rgamon</em>)</li><li>&pi;&#941;&rho;&gamma;&alpha;&mu;&omicron;&sigmaf; (<em>p&eacute;rgamos</em>) &lsquo;citadel&rsquo; (esp. of Troy)</li></ul></li><li><strong>&#8209;nth ~ &#8209;ng</strong> (another Pre-Greek suffix)<ul><li>&mu;&#942;&rho;&iota;&nu;&theta;&omicron;&sigmaf; (<em>m&#7703;rinthos</em>) &lsquo;thread&rsquo;</li><li>&sigma;&mu;&#8134;&rho;&iota;&gamma;&xi; (<em>sm&ecirc;rinx</em>) &lsquo;hair&rsquo;</li></ul></li><li><strong>&#8209;nth ~ &#8209;ng</strong><ul><li>&#7957;&lambda;&mu;&iota;&nu;&theta;&omicron;&sigmaf; (<em>h&eacute;lminthos</em>)</li><li>&#7956;&lambda;&mu;&iota;&gamma;&gamma;&omicron;&sigmaf; (<em>&eacute;lmingos</em>) &lsquo;worm&rsquo;</li></ul></li><li><strong>&empty; ~ &#8209;nth</strong><ul><li>&omicron;&#787;&#769;&rho;&omicron;&beta;&omicron;&sigmaf; (<em>&oacute;robos</em>) &lsquo;bitter vetch&rsquo; (an ancient kernel legume)</li><li>&#7952;&rho;&#941;&beta;&iota;&nu;&theta;&omicron;&sigmaf; (<em>er&eacute;binthos</em>) &lsquo;chickpea&rsquo;</li></ul></li></ul><p>This final one is an particularly crucial part of evidence since the term for &lsquo;chickpea&rsquo; (or extremely akin types of legumes) was additionally borrowed into another languages of Europe, sometimes with, sometimes without the <em>&#8209;nth</em> suffix:</p><ul><li><strong>Latin:</strong> <em>ervum</em> &lsquo;bitter vetch&rsquo; (without <em>&#8209;nth</em>)</li><li><strong>Proto-Germanic:</strong> *<em>arw&#299;t&#8209;</em> &lsquo;pea&rsquo; (with <em>&#8209;nth</em>, as <em>&#8209;t</em>)</li><li><strong>Armenian:</strong> <em>ar&#775;owoyt</em> &lsquo;alfalfa&rsquo; (with <em>&#8209;nth</em>, as <em>&#8209;t</em>)</li></ul><p>In general, whenever a location name has a non-toponymic definition in supplement to its toponymic meaning, and the etymology of that term is unknown, the term is undoubtedly Pre-Greek in origin. This is particularly true if it additionally appears to merge among the known Pre-Greek suffixes. Here are a few final examples akin this:</p> <table readabilitydatatable="1"> <thead> <tr> <th>Toponym</th> <th>Basic Meaning</th> <th>Suffix</th> </tr> </thead> <tbody> <tr> <td>&#7948;&psi;&iota;&nu;&theta;&omicron;&sigmaf; (<em>&Aacute;psinthos</em>)</td> <td>&#7940;&psi;&iota;&nu;&theta;&omicron;&sigmaf; (<em>&aacute;psinthos</em>) &lsquo;wormwood&rsquo;</td> <td>&#8209;nth</td> </tr> <tr> <td>&#8025;&#940;&kappa;&iota;&nu;&theta;&omicron;&sigmaf; (<em>Hy&aacute;kinthos</em>)</td> <td>&#8017;&#940;&kappa;&iota;&nu;&theta;&omicron;&sigmaf; (<em>hy&aacute;kinthos</em>) &lsquo;hyacinth&rsquo;</td> <td>&#8209;nth</td> </tr> <tr> <td>&Kappa;&alpha;&rho;&delta;&alpha;&mu;&#973;&lambda;&eta; (<em>Kardam&yacute;l&#275;</em>)</td> <td>&kappa;&#940;&rho;&delta;&alpha;&mu;&omicron;&nu; (<em>k&aacute;rdamon</em>) &lsquo;cress&rsquo;</td> <td>&#8209;m</td> </tr> <tr> <td>&Kappa;&#973;&alpha;&mu;&omicron;&nu; (<em>K&yacute;amon</em>)</td> <td>&kappa;&#973;&alpha;&mu;&omicron;&sigmaf; (<em>k&yacute;amos</em>) &lsquo;bean&rsquo;</td> <td>&#8209;m</td> </tr> <tr> <td>&#8012;&lambda;&upsilon;&nu;&theta;&omicron;&sigmaf; (<em>&Oacute;lynthos</em>)</td> <td>&#8004;&lambda;&upsilon;&nu;&theta;&omicron;&sigmaf; (<em>&oacute;lynthos</em>) &lsquo;wild or sterile fig&rsquo;</td> <td>&#8209;nth</td> </tr> <tr> <td>&#8012;&theta;&rho;&upsilon;&sigmaf;, &#8012;&theta;&rho;&upsilon;&omicron;&sigmaf; (<em>&Oacute;thrys, &Oacute;thryos</em>)</td> <td>&#8004;&theta;&rho;&upsilon;&sigmaf; (<em>&oacute;thrys</em>) &lsquo;mountain&rsquo;</td> <td>&mdash;</td> </tr> <tr> <td>&Sigma;&mu;&#943;&nu;&theta;&eta; (<em>Sm&iacute;nth&#275;</em>)</td> <td>&sigma;&mu;&#943;&nu;&theta;&omicron;&sigmaf; (<em>sm&iacute;nthos</em>) &lsquo;mouse&rsquo;</td> <td>&#8209;nth</td> </tr> </tbody> </table> <p>A corroborating part of evidence for these suffixes is the uncomplicated fact that they happen not fair in toponyms, but in many of the mystery words for plants, animals, foods, etc.&mdash;the identical semantic categories of words that are most apt to be borrowed:</p> <table readabilitydatatable="1"> <thead> <tr> <th>Greek</th> <th>Romanization</th> <th>Meaning</th> <th>Suffix</th> </tr> </thead> <tbody> <tr> <td>&alpha;&#7988;&gamma;&iota;&nu;&theta;&omicron;&sigmaf;</td> <td>a&iacute;ginthos</td> <td>&lsquo;name of a bird&rsquo;</td> <td>&#8209;nth</td> </tr> <tr> <td>&#7936;&sigma;&#940;&mu;&iota;&nu;&theta;&omicron;&sigmaf;</td> <td>as&aacute;minthos</td> <td>&lsquo;stone bathing tub&rsquo;</td> <td>&#8209;nth</td> </tr> <tr> <td>&beta;&#972;&lambda;&iota;&nu;&theta;&omicron;&sigmaf;</td> <td>b&oacute;linthos</td> <td>&lsquo;European bison&rsquo;</td> <td>&#8209;nth</td> </tr> <tr> <td>&theta;&#940;&lambda;&alpha;&sigma;&sigma;&alpha;</td> <td>th&aacute;lassa</td> <td>&lsquo;sea&rsquo;</td> <td>&#8209;ss</td> </tr> <tr> <td>&kappa;&#972;&rho;&upsilon;&nu;&theta;&omicron;&sigmaf;</td> <td>k&oacute;rynthos</td> <td>&lsquo;barley bread&rsquo;</td> <td>&#8209;nth</td> </tr> <tr> <td>&kappa;&upsilon;&pi;&#940;&rho;&iota;&sigma;&sigma;&omicron;&sigmaf;</td> <td>kyp&aacute;rissos</td> <td>&lsquo;cypress&rsquo;</td> <td>&#8209;ss</td> </tr> <tr> <td>&lambda;&#941;&beta;&iota;&nu;&theta;&omicron;&sigmaf;</td> <td>l&eacute;binthos</td> <td>&lsquo;a benevolent of beans&rsquo;</td> <td>&#8209;nth</td> </tr> <tr> <td>&mu;&#943;&nu;&theta;&eta;</td> <td>m&iacute;nth&#275;</td> <td>&lsquo;mint&rsquo;</td> <td>&#8209;nth</td> </tr> <tr> <td>&nu;&#940;&rho;&kappa;&iota;&sigma;&sigma;&omicron;&sigmaf;</td> <td>n&aacute;rkissos</td> <td>&lsquo;narcissus&rsquo;</td> <td>&#8209;ss</td> </tr> <tr> <td>&tau;&epsilon;&rho;&#941;&beta;&iota;&nu;&theta;&omicron;&sigmaf;</td> <td>ter&eacute;binthos</td> <td>&lsquo;terpentine&rsquo;</td> <td>&#8209;nth</td> </tr> </tbody> </table> <p>Finally, toponyms ending in <em>&#8209;nth</em> and <em>&#8209;mn</em> display a distinctive base pattern, alongside a powerful penchant for open syllables (ones not ending in a consonant) and an nearly total deficiency of consonant clusters in the center of the term that commencement alongside a halt consonant. This is extremely different for Proto-Indo-European. As a rule, PIE roots had a CVC construction (C = consonant, V = vowel) and many consonant clusters&mdash;the expanded base template is (s)(C)CVC(C), yielding many consonant clusters. So the fact that words which display these Pre-Greek suffixes are <em>also</em> phonologically different for PIE is another part of evidence that these words likely came from a non&ndash;Indo-European language.</p><p>Congratulations, now you cognize how to acknowledge a Pre-Greek suffix! So now whenever you see an <em>&#8209;nth</em> in a Greek loanword in English akin <em>hyacinth</em>, you&rsquo;ll naturally think to yourself, &ldquo;Oh neat! That term is from a Pre-Greek substrate language!&rdquo; (Right?)</p><h2 id="what-was-the-pre-greek-language-like">What was the Pre-Greek tongue like?</h2><p>In supplement to the Pre-Greek suffixes, there are several patterns that recur in possible loanwords alongside too awesome a frequence to be uncomplicated coincidence, and propose that the Pre-Greek tongue may have had several prefixes as well: &alpha;&#787;&#8209; (<em>a&#8209;</em>), &kappa;(&alpha;)&#8209; (<em>k[a]&#8209;</em>), and &sigma;&#8209; (<em>s&#8209;</em>). The chief evidence for these prefixes is that there are written records of these words appearing the two alongside and without the first sounds:</p><h3 id="%CE%B1%CC%93%E2%80%91-a%E2%80%91">&alpha;&#787;&#8209; (<em>a&#8209;</em>)</h3><p>There are about 65 words that display evidence of an <em>a&#8209;</em> prefix, many of which autumn in the trait semantic domains of flora and crops (19 words), animals (10), as fine as landscapes, foods, and the individual build (smaller numbers). Interestingly, the <em>a&#8209;</em> prefix is <em>not</em> established on traditional conditions akin jewelry, armor, social hierarchy, professions, instruments, and words relating to the arts, etc.</p><ul><li>&gamma;&eta;&theta;&upsilon;&lambda;&lambda;&iota;&#769;&sigmaf; (<em>g&#275;thyll&iacute;s</em>) &lsquo;chives&rsquo; ~ <strong>&alpha;&#787;</strong>&gamma;&alpha;&sigma;&upsilon;&lambda;&lambda;&iota;&#769;&sigmaf; (<em><strong>a</strong>gasyll&iacute;s</em>) &lsquo;plant that produces ammoniacum (gum resin)&rsquo;</li><li>&gamma;&#941;&lambda;&gamma;&iota;&sigmaf; (<em>g&eacute;lgis</em>) ~ <strong>&#7940;</strong>&gamma;&lambda;&iota;&sigmaf; (<em><strong>&aacute;</strong>glis</em>) &lsquo;garlic&rsquo;</li><li>&kappa;&#940;&sigma;&tau;&omicron;&nu; (<em>k&aacute;ston</em>) ~ <strong>&#7940;</strong>&kappa;&alpha;&sigma;&tau;&omicron;&sigmaf; (<em><strong>&aacute;</strong>kastos</em>) &lsquo;maple&rsquo;</li><li>&kappa;&iota;&#769;&rho;&rho;&iota;&sigmaf; (<em>k&iacute;rris</em>) ~ <strong>&alpha;&#787;</strong>&kappa;&iota;&rho;&iota;&#769;&sigmaf; (<em><strong>a</strong>kir&iacute;s</em>) &lsquo;lamp&rsquo;</li><li>&kappa;&omicron;&#769;&rho;&nu;&omicron;&psi; (<em>k&oacute;rnops</em>) ~ <strong>&alpha;&#787;</strong>&kappa;&omicron;&rho;&nu;&omicron;&iota;&#769; (<em><strong>a</strong>korno&iacute;</em>) &lsquo;a benevolent of locust&rsquo;</li><li>&chi;&rho;&alpha;&mu;&alpha;&delta;&omicron;&iota;&#834;&lambda;&alpha;&iota; (<em>khramado&icirc;lai</em>) &lsquo;tortoise&rsquo; ~ <strong>&alpha;&#787;</strong>&chi;&rho;&alpha;&delta;&alpha;&mu;&upsilon;&#769;&lambda;&alpha; (<em><strong>a</strong>khradam&yacute;la</em>) &lsquo;snail&rsquo;</li><li>&nu;&eta;&rho;&iota;&#769;&tau;&eta;&sigmaf; (<em>n&#275;r&#299;&#769;t&#275;s</em>) ~ <strong>&alpha;&#787;</strong>&nu;&alpha;&rho;&iota;&#769;&tau;&eta;&sigmaf; (<em><strong>a</strong>nar&iacute;t&#275;s</em>) &lsquo;sea snail&rsquo;</li><li>&#8165;&omega;&delta;&iota;&#974;&sigmaf; (<em>rh&#333;di&#7763;s</em>) ~ <strong>&#7936;</strong>&rho;&omega;&delta;&iota;&#972;&sigmaf; (<em><strong>a</strong>r&#333;di&oacute;s</em>) &lsquo;heron&rsquo;</li><li>(&sigma;)&kappa;&alpha;&lambda;&alpha;&beta;&omega;&#769;&tau;&eta;&sigmaf; (<em>[s]kalab&#7763;t&#275;s</em>) ~ <strong>&alpha;&#787;</strong>&sigma;&kappa;&alpha;&#769;&lambda;&alpha;&beta;&omicron;&sigmaf; (<em><strong>a</strong>sk&aacute;labos</em>) &lsquo;spotted lizard; gecko&rsquo;</li><li>&sigma;&tau;&#940;&chi;&upsilon;&sigmaf; (<em>st&aacute;khys</em>) ~ <strong>&#7940;</strong>&sigma;&tau;&alpha;&chi;&upsilon;&sigmaf; (<em><strong>&aacute;</strong>stakhys</em>) &lsquo;ear of corn&rsquo;</li><li>&sigma;&tau;&epsilon;&rho;&omicron;&pi;&#942; (<em>sterop&#7703;</em>) ~ <strong>&#7936;</strong>&sigma;&tau;&rho;&alpha;&pi;&#942; (<em><strong>a</strong>strap&#7703;</em>) &lsquo;lightning&rsquo;</li><li>&kappa;&upsilon;&#769;&nu;&omega;&psi; (<em>k&yacute;n&#333;ps</em>) ~ <strong>&alpha;&#787;</strong>&chi;&upsilon;&#769;&nu;&omega;&psi; (<em><strong>a</strong>kh&yacute;n&#333;ps</em>) &lsquo;ribwort&rsquo;</li></ul><h3 id="%CE%BA%CE%B1%E2%80%91-ka%E2%80%91">&kappa;(&alpha;)&#8209; (<em>k[a]&#8209;</em>)</h3><p>The <em>k(a)&#8209;</em> prefix, akin <em>a&#8209;</em>, lone appears on words for plants, animals, and uncomplicated technologies. There are 13 apparent cases, including:</p><ul><li>&iota;&#787;&#769;&chi;&lambda;&alpha; (<em>&iacute;khla</em>) ~ <strong>&kappa;</strong>&iota;&#769;&chi;&lambda;&eta; (<em>k&iacute;khl&#275;</em>) &lsquo;thrush&rsquo;</li><li>&alpha;&#787;&#769;&rho;&upsilon;&alpha; (<em>&aacute;rya</em>) &lsquo;walnuts&rsquo; ~ <strong>&kappa;</strong>&alpha;&#769;&rho;&upsilon;&omicron;&nu; (<em>k&aacute;ryon</em>) &lsquo;nut&rsquo;</li><li>&omicron;&#787;&#769;&gamma;&chi;&nu;&eta; (<em>&oacute;nkhn&#275;</em>) ~ <strong>&kappa;</strong>&omicron;&#769;&gamma;&chi;&nu;&alpha;&iota; (<em>k&oacute;nkhnai</em>) &lsquo;pear&rsquo;</li><li>&sigma;&kappa;&alpha;&#769;&nu;&delta;&iota;&xi; (<em>sk&aacute;nd&#299;x</em>) &lsquo;chervil&rsquo; ~ <strong>&kappa;</strong>&alpha;&sigma;&kappa;&alpha;&#769;&nu;&delta;&iota;&xi; (<em>kask&aacute;ndix</em>) &lsquo;onion&rsquo;</li><li>&alpha;&#787;&pi;&eta;&#769;&nu;&eta; (<em>ap&#7703;n&#275;</em>) ~ &pi;&eta;&#769;&nu;&alpha; (<em>p&#7703;n&#257;</em>) ~ <strong>&kappa;</strong>&alpha;&pi;&alpha;&#769;&nu;&alpha; (<em>kap&#257;&#769;na</em>) &lsquo;wagon&rsquo;<ul><li>Note the imaginable a&#8209;prefix here.</li></ul></li><li>&alpha;&#787;&#769;&chi;&lambda;&alpha;&xi; (<em>&aacute;khlax</em>) &lsquo;small stones&rsquo; ~ <strong>&chi;</strong>&alpha;&#769;&lambda;&alpha;&zeta;&alpha; (<em>kh&aacute;laza</em>) &lsquo;hail&rsquo; ~ <strong>&kappa;</strong>&alpha;&#769;&chi;&lambda;&eta;&xi; (<em>k&aacute;khl&#275;x</em>) &lsquo;small stones&rsquo;</li><li>&alpha;&#787;&lambda;&iota;&nu;&delta;&epsilon;&#769;&omicron;&mu;&alpha;&iota; (<em>alind&eacute;omai</em>) ~ <strong>&kappa;</strong>&alpha;&lambda;&iota;&nu;&delta;&epsilon;&#769;&omicron;&mu;&alpha;&iota; (<em>kalind&eacute;omai</em>) &lsquo;to rotate about, wallow&rsquo;</li></ul><h3 id="%CF%83%E2%80%91-s%E2%80%91">&sigma;&#8209; (<em>s&#8209;</em>)</h3><p>Again, the bulk of conditions alongside <em>s&#8209;</em> are words for plants, animals, and build parts. Sometimes the <em>s&#8209;</em> occurs alongside an additional <em>a&#8209;</em> as well, indicative of the existence of the <em>a&#8209;</em> prefix.</p><h4 id="without-a%E2%80%91">without <em>a&#8209;</em></h4><ul><li>&gamma;&#941;&lambda;&epsilon;&nu;&omicron;&sigmaf; (<em>g&eacute;lenos</em>) &lsquo;asphodelus, narcissus&rsquo; ~ <strong>&sigma;</strong>&chi;&#941;&lambda;&iota;&nu;&omicron;&sigmaf; (<em><strong>s</strong>kh&eacute;linos</em>) &lsquo;wild cypress&rsquo;</li><li>&kappa;&iota;&delta;&#940;&phi;&eta; (<em>kid&aacute;ph&#275;</em>) ~ <strong>&sigma;</strong>&kappa;&iota;&delta;&#940;&phi;&eta; (<em><strong>s</strong>kid&aacute;ph&#275;</em>) &lsquo;fox&rsquo;</li><li>&kappa;&#943;&kappa;&epsilon;&rho;&omicron;&sigmaf; (<em>k&iacute;keros</em>) ~ <strong>&sigma;</strong>&kappa;&#943;&gamma;&kappa;&omicron;&sigmaf; (<em><strong>s</strong>k&iacute;nkos</em>) &lsquo;a category of reptile established in Asia Minor that is used as medicine&rsquo;</li><li>&kappa;&omicron;&rho;&delta;&#973;&#772;&lambda;&eta; (<em>kord&#563;&#769;l&#275;</em>) ~ <strong>&sigma;</strong>&kappa;&omicron;&rho;&delta;&#973;&#772;&lambda;&eta; (<em><strong>s</strong>kord&#563;&#769;l&#275;</em>) &lsquo;tumor; swelling&rsquo;</li><li>&beta;&#940;&tau;&alpha;&lambda;&omicron;&sigmaf; (<em>b&aacute;talos</em>) &lsquo;a lewd man&rsquo; ~ <strong>&sigma;</strong>&pi;&#940;&tau;&alpha;&lambda;&omicron;&sigmaf; (<em><strong>s</strong>p&aacute;talos</em>) &lsquo;wanton; lascivious&rsquo;</li><li>&pi;&#941;&lambda;&epsilon;&theta;&omicron;&sigmaf; (<em>p&eacute;lethos</em>) ~ <strong>&sigma;</strong>&pi;&#941;&lambda;&epsilon;&theta;&omicron;&sigmaf; (<em><strong>s</strong>p&eacute;lethos</em>) &lsquo;dung&rsquo;</li><li>&phi;&alpha;&tau;&tau;&#940;&gamma;&eta;&sigmaf; (<em>phatt&aacute;g&#275;s</em>) ~ <strong>&sigma;</strong>&pi;&alpha;&tau;&#940;&gamma;&gamma;&eta;&sigmaf; (<em><strong>s</strong>pat&aacute;ng&#275;s</em>) &lsquo;scaly ant-eater&rsquo;</li><li>&theta;&rho;&iota;&gamma;&kappa;&#972;&sigmaf; (<em>thrink&oacute;s</em>) &lsquo;topmost way of stones in a wall, cornice, frieze&rsquo; ~ <strong>&sigma;</strong>&tau;&rho;&iota;&gamma;&chi;&omicron;&#769;&sigmaf; (<em><strong>s</strong>trinkh&oacute;s</em>) &lsquo;little wall; crown of a building&rsquo;</li><li>&tau;&omicron;&pi;&epsilon;&#8150;&omicron;&nu; (<em>tope&icirc;on</em>) &lsquo;rope, cord&rsquo; ~ <strong>&sigma;</strong>&tau;&upsilon;&pi;&pi;&epsilon;&#8150;&omicron;&nu; (<em><strong>s</strong>typpe&icirc;on</em>) &lsquo;the coarse fiber of flax or hemp&rsquo;</li><li>&mu;&#942;&rho;&iota;&nu;&theta;&omicron;&sigmaf; (<em>m&#7703;rinthos</em>) ~ <strong>&sigma;</strong>&mu;&#942;&rho;&iota;&nu;&theta;&omicron;&sigmaf; (<em><strong>s</strong>m&#7703;rinthos</em>) &lsquo;cord, thread&rsquo;</li><li>&mu;&#973;&rho;&alpha;&iota;&nu;&alpha; (<em>m&#563;&#769;raina</em>) ~ <strong>&sigma;</strong>&mu;&#973;&rho;&alpha;&iota;&nu;&alpha; (<em><strong>s</strong>m&#563;&#769;raina</em>) &lsquo;moray eel&rsquo;</li><li>&mu;&#8150;&lambda;&alpha;&xi; (<em>m&icirc;lax</em>) ~ <strong>&sigma;</strong>&mu;&#8150;&lambda;&alpha;&xi; (<em><strong>s</strong>m&icirc;lax</em>) &lsquo;taxus&rsquo;</li><li>&phi;&#940;&gamma;&nu;&omicron;&sigmaf; (<em>ph&aacute;gnos</em>) ~ <strong>&sigma;</strong>&phi;&#940;&gamma;&nu;&omicron;&sigmaf; (<em><strong>s</strong>ph&aacute;gnos</em>) &lsquo;salvia&rsquo;</li><li>&tau;&rho;&#973;&chi;&nu;&omicron;&nu; (<em>tr&yacute;khnon</em>) ~ <strong>&sigma;</strong>&tau;&rho;&#973;&chi;&nu;&omicron;&nu; (<em><strong>s</strong>tr&yacute;khnon</em>) &lsquo;nightshade&rsquo;</li></ul><h4 id="with-a%E2%80%91">with <em>a&#8209;</em></h4><ul><li>&phi;&#940;&rho;&upsilon;&gamma;&xi; (<em>ph&aacute;rynx</em>) &lsquo;throat, gorge, larynx, windpipe&rsquo; ~ <strong>&sigma;</strong>&phi;&#940;&rho;&alpha;&gamma;&omicron;&sigmaf; (<em><strong>s</strong>ph&aacute;ragos</em>) &lsquo;throat, gullet&rsquo; ~ <strong>&#7936;&sigma;</strong>&phi;&#940;&rho;&alpha;&gamma;&omicron;&sigmaf; (<em><strong>as</strong>ph&aacute;ragos</em>) &lsquo;gully, chasm, profound trench, abyss&rsquo;</li><li>&kappa;&#940;&lambda;&alpha;&phi;&omicron;&sigmaf; (<em>k&aacute;laphos</em>) ~ <strong>&#7936;&sigma;</strong>&kappa;&#940;&lambda;&alpha;&phi;&omicron;&sigmaf; (<em><strong>as</strong>k&aacute;laphos</em>) &lsquo;an unidentified bird, perchance an owl&rsquo;</li><li>&kappa;&alpha;&lambda;&alpha;&beta;&#974;&tau;&eta;&sigmaf; (<em>kalab&#7763;t&#275;s</em>) ~ <strong>&sigma;</strong>&kappa;&alpha;&lambda;&alpha;&beta;&#974;&tau;&eta;&sigmaf; (<em><strong>s</strong>kalab&#7763;t&#275;s</em>) ~ <strong>&#7936;&sigma;</strong>&kappa;&#940;&lambda;&alpha;&beta;&omicron;&sigmaf; (<em><strong>as</strong>k&aacute;labos</em>) &lsquo;lizard, gecko&rsquo;</li><li>&kappa;&#940;&mu;&omega;&nu; (<em>k&aacute;m&#333;n</em>) ~ <strong>&sigma;</strong>&kappa;&alpha;&mu;(&mu;)&omega;&nu;&#943;&alpha; (<em><strong>s</strong>kam(m)&#333;n&iacute;a</em>) ~ <strong>&#7936;&sigma;</strong>&kappa;&alpha;&mu;&omega;&nu;&#943;&alpha; (<em><strong>as</strong>kam&#333;n&iacute;a</em>) &lsquo;scammony&rsquo;</li></ul><h2 id="was-pre-greek-one-language-or-several">Was Pre-Greek one tongue or several?</h2><p>Throughout this article, I&rsquo;ve mostly talked concerning &ldquo;the&rdquo; Pre-Greek language. Indeed, the suffixes in the final two sections provision us powerful logic to accept that Ancient Greek borrowed the words containing those suffixes from a sole Pre-Greek tongue or collection of closely-related languages. Throughout the former of contemporary linguistics, there have been multitudinous names and theories as to the character of this mystery substrate, including:</p><ul><li><strong>Pelasgian</strong>, an undocumented Indo-European language</li><li><strong>Parnassian</strong>, a tongue in the Anatolian branch of Indo-European, connected to Luwian</li><li><strong>Aegean / Mediterranean</strong>, a non&ndash;Indo-European tongue which extended complete a ample part of the Mediterranean</li><li>the <strong>Kartvelian Theory</strong>, that Pre-Greek was connected to Kartvelian languages (e.g. Georgian)</li><li><strong>Pre-Greek</strong>, a non&ndash;Indo-European tongue spoken chiefly in the area of Greece, following toponymic evidence</li></ul><p>Even although all of these theories has been mostly discredited apart from the last, all has advanced our cognition of Pre-Greek in distinct ways. For example, researchers on this topic concur that the Pre-Greek substrate extended at smallest partially into Anatolia (Asia Minor), as you can see from the map of location names above. It was investigation into the now-abandoned Parnassian theory that brought this to light. But there merely isn&rsquo;t adequate evidence to assistance the idea that the Pre-Greek substrate is connected to Anatolian languages.</p><p>Even the Pre-Greek theory has been battered by fierce criticism, since its chief proponent, Robert S.P. Beekes, considers nearly <em>every</em> imaginable loanword to be Pre-Greek as a matter of principle:</p><blockquote>&ldquo;I think that it is methodologically additional audio to commencement from the assumption that non-Greek words are Pre-Greek. Only whenever there is logic to do so should we assume that they have a distinct origin.&rdquo; (<a href="https://en.mycoding.id/category/technology" target="_blank">Beekes 2014</a>: 45)</blockquote><p>The linguistic reality, however, is much small tidy. Like everyplace alternatively previous to the increase of urbanization and city-states, the Aegean comprised a affluent tapestry of small local languages, spoken by at most thousands of speakers. The Ancient Greeks themselves mentioned a figure of peoples in the region, several of whom were stated to conversation &lsquo;a tongue which was not Greek&rsquo; (Herodotus&rsquo; clarification of the Pelasgian language, which launched a thousand linguistic theories concerning the Pre-Greeks):</p><ul><li>Aonians</li><li>Cauconians</li><li>Dryopes</li><li>Hyantes</li><li>Lelegians</li><li>Pelasgians</li><li>Temmikes</li></ul><p>We additionally have written evidence (albeit frequently exiguous) of many another languages in the region:</p><ul><li>Carian (IE, Anatolian branch)</li><li>Eteocretan (probably non-IE, perchance connected to Minoan)</li><li>Eteocypriot (probably non-IE)</li><li>Illyrian (IE)</li><li>Lemnian (non-IE, perchance Tyrsenian)</li><li>Macedonian (not to be confused alongside the contemporary Slavic language; this one was Greek or closely connected to Greek)</li><li>Minoan (undeciphered and unclassified but likely non-IE)</li><li>Paeonian (IE)</li><li>Thracian (IE)</li></ul><p>So it&rsquo;s unsurprising that many scholars have attacked Beekes&rsquo; assumption of a unified Pre-Greek language, and additionally challenged his inspection of dozens and dozens of words. Nonetheless, that motionless leaves hundreds of words which <em>do</em> extremely apt pertain to a sole language, which&mdash;for deficiency of a term that hasn&rsquo;t already been discredited&mdash;Beekes calls &ldquo;Pre-Greek&rdquo;.&sup3;</p><p>But what concerning the remainder of the mystery words? Why not assume they arrive from Pre-Greek as well, equal if they don&rsquo;t have the signature Pre-Greek affixes? Once again, the meanings of the words are an crucial clue: nearly all the words which display particular Pre-Greek features (the <em>&#8209;nth</em> suffix, the <em>s&#8209;</em> prefix, etc.) are words for <em>natural phenomena</em> akin flora and animals. The ones without these particular features are mostly <em>cultural</em> conditions referring to things akin jewelry, clothing, social hierarchy, the arts, buildings and structures, etc. (There are two notable exceptions&mdash;&lambda;&alpha;&beta;&#973;&rho;&iota;&nu;&theta;&omicron;&sigmaf; (<em>lab&yacute;rinthos</em>) &lsquo;labyrinth&rsquo; and &#7936;&sigma;&#940;&mu;&iota;&nu;&theta;&omicron;&sigmaf; (<em>as&aacute;minthos</em>) &lsquo;bathtub&rsquo;&mdash;which we&rsquo;ll arrive rear to in a minute.) Moreover, lone the words for natural phenomena appear in languages elsewhere in Europe; the traditional conditions are restricted to the Aegean. Here are a few possible pan-European connections to Pre-Greek words:</p><ul><li><strong>radish</strong> (<em>a&#8209;</em> prefix)<ul><li><strong>Ancient Greek:</strong> &rho;&#788;&alpha;&#769;&phi;&alpha;&nu;&omicron;&sigmaf; (<em>rh&aacute;phanos</em>)</li><li><strong>Latin:</strong> <em>ra&#772;pum</em></li><li><strong>Old High Germanic:</strong> <em>ruoba</em></li><li><strong>Welsh:</strong> <em>erfin</em> &lsquo;turnip&rsquo; &larr; Proto-Celtic *<em>arb&#8209;i&#772;n-</em></li><li><strong>Old Church Slavonic:</strong> <em>re&#780;pa</em> &lsquo;turnip&rsquo; &larr; Proto-Balto-Slavic *<em>r&#257;p&#257;&#769;&#704;</em></li></ul></li><li><strong>heron</strong> (<em>a&#8209;</em> prefix)<ul><li><strong>Ancient Greek:</strong> &epsilon;&#787;&rho;&omega;&#837;&delta;&iota;&omicron;&#769;&sigmaf; (<em>er&#333;idi&oacute;s</em>) ~ &alpha;&#787;&rho;&omega;&delta;&iota;&omicron;&#769;&sigmaf; (<em>ar&#333;di&oacute;s</em>) ~ &rho;&#788;&omega;&delta;&iota;&omega;&#769;&sigmaf; (<em>rh&#333;di&#7763;s</em>)</li><li><strong>Latin:</strong> <em>ardea</em></li><li><strong>Serbo-Croatian:</strong> <em>r&oacute;da</em> &lsquo;stork&rsquo;</li></ul></li><li><strong>bull</strong> (<em>s&#8209;</em> prefix)<ul><li><strong>Ancient Greek:</strong> &tau;&alpha;&upsilon;&#834;&rho;&omicron;&sigmaf; (<em>ta&ucirc;ros</em>)</li><li><strong>Latin:</strong> <em>taurus</em></li><li><strong>Proto-Germanic:</strong> *<em>&thorn;eura&#8209;</em> ~ *<em>steura&#8209;</em></li></ul></li><li><strong>small stones</strong> (<em>k&#8209;</em> prefix)<ul><li><strong>Ancient Greek:</strong> &alpha;&#787;&#769;&chi;&lambda;&alpha;&xi; (<em>&aacute;khlax</em>) &lsquo;small stones&rsquo; ~ &kappa;&alpha;&#769;&chi;&lambda;&eta;&xi; (<em>k&aacute;khl&#275;x</em>) &lsquo;small stones&rsquo; ~ &chi;&alpha;&#769;&lambda;&alpha;&zeta;&alpha; (<em>kh&aacute;laza</em>) &lsquo;hail&rsquo;</li><li><strong>Proto-Germanic:</strong> *<em>hagla&#8209;</em> &lsquo;hail&rsquo;</li></ul></li><li><strong>chickpea</strong> (<em>&#8209;nth</em> suffix)<ul><li><strong>Ancient Greek:</strong> &omicron;&#787;&#769;&rho;&omicron;&beta;&omicron;&sigmaf; (<em>&oacute;robos</em>) ~ &epsilon;&#787;&rho;&epsilon;&#769;&beta;&iota;&nu;&theta;&omicron;&sigmaf; (<em>er&eacute;binthos</em>)</li><li><strong>Proto-Germanic:</strong> *<em>arwi&#772;t</em> &lsquo;pea&rsquo;</li><li><strong>Old Georgian:</strong> &#4308;&#4320;&#4308;&#4309;&#4312;&#4316;&#4307;&#4312; (<em>erevindi</em>) ~ &#4308;&#4320;&#4305;&#4312;&#4316;&#4307;&#4312; (<em>erbindi</em>)</li><li><strong>Latin:</strong> <em>ervum</em> &lsquo;bitter vetch&rsquo; &larr; Proto-Italic *<em>erw&#8209;</em></li><li><strong>Armenian:</strong> &#1377;&#1404;&#1377;&#1410;&#1400;&#1397;&#1407; (<em>a&#7769;owoyt</em>) &lsquo;alfalfa&rsquo; &larr; *<em>HrVb&#688;oud&#8209;</em></li></ul></li></ul><p>So what explains this allocation of natural phenomena versus traditional concepts? Simply put, we are likely looking at two (or more) substrate languages which the two contributed vocabulary to Ancient Greek. One had the <em>&#8209;nth</em> suffix and <em>a&#8209;</em>, <em>k&#8209;</em>, and <em>s&#8209;</em> prefixes, and provided conditions for flora, fauna, and terrain. The another (or others) provided traditional conditions specified as jewelry, titles, clothing, instruments, etc. The logic that the conditions for natural phenomena are shared exterior the Aegean is likely because of the fact that, previous to the arrival of the Indo-Europeans, the Old Europeans were a amazingly homogeneous community of farmers (<a href="https://en.mycoding.id/category/technology" target="_blank">Skoglund et al. 2012</a>; <a href="https://en.mycoding.id/category/technology" target="_blank">Skourtanioti et al. 2023</a>). While genetics &ne; languages, this nonetheless suggests that many of the languages of Old Europe were apt related. So it&rsquo;s entirely imaginable that Germanic and Italic and Celtic and another Indo-European speakers independently borrowed words for things akin &lsquo;chickpea&rsquo; and &lsquo;radish&rsquo; from Old European languages, and these words fair happened to be cognate alongside the words in Pre-Greek. Alternatively, we can say that these words were average loanwords (&lsquo;wanderwords&rsquo;) throughout Old Europe.</p><p>As for the traditional vocabulary, during these conditions could in theory arrive from anyplace nearby, there is one civilization which was known to have an outsized power on the Mycenaean Greeks: the Minoans on the isle of Crete. Minoan civilization was bonzer for its time, alongside monumental architecture, sprawling palace complexes, and luxury arts and crafts. The Minoans are frequently regarded as the archetypal civilization (in the specialized sense) in Europe, and their power dispersed far throughout the east Mediterranean. Archaeologists mention to the way that Minoan civilization emitted outward from Crete as the <strong>Versailles Effect</strong>, by difference alongside the way the French court under Louis XIV influenced all of Europe. Minoan was, in another words, an adstrate fairly than a substrate, spreading its lexicon to the neighboring languages.</p><p>The Minoans additionally developed their own penning scheme called <strong>Cretan hieroglyphs</strong>, which was not derived from the Egyptian or Mesopotamian systems (Egyptian hieroglyphs, cuneiform, and afterward the Phoenician alphabet). Cretan hieroglyphs afterward evolved into (or perchance alongside) the still-undeciphered <strong>Linear A</strong> script, which was a blend syllabary and logographic script. The Mycenaean Greeks afterward adopted a type of Linear A to compose Greek. This manuscript is called <strong>Linear B</strong>, and was deciphered by English decorator and self-taught linguist Michael Ventris in 1952. Because 70% of the signs of Linear B are immediately inherited from Linear A, we cognize the <em>sounds</em> of many words in Linear A, but we motionless don&rsquo;t cognize what most of those Minoan words <em>mean</em>.</p><figure><img src="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-4.png" alt="" loading="lazy" width="1000" height="763" srcset="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w600/2026/09/image-4.png 600w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-4.png 1000w"><figcaption><span>A array of Cretan hieroglyphs (</span><a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener noreferrer"><span>Wikipedia: Cretan hieroglyphs</span></a><span>)</span></figcaption></figure><figure></figure><figure></figure><p>The intractable nature of Linear A means, unfortunately, that we can&rsquo;t be entirely certain that any Pre-Greek words were borrowed from Minoan, since we don&rsquo;t cognize what the Linear A words meant. There are nonetheless several powerful candidates for borrowings from Minoan:</p><ul><li>In Linear A, there&rsquo;s a logogram &#67298;, which is among the smaller group of signs we happen to cognize the definition of&mdash;&lsquo;wool&rsquo;. We cognize this since in Linear B the identical sign method &lsquo;wool&rsquo;. In Linear A, the sign appears in bookkeeping contexts next to numerals, and frequently near the ideogram for sheep &#10216;&#67087;&#10217; (also the sign for /qi/)&mdash;exactly what you&rsquo;d anticipate for a sign definition &lsquo;wool&rsquo;. But additional importantly, if you appearance closely, you can see that the logogram is really a composite of two syllabic signs&mdash;&#67137; (<em>ma</em>) and &#67096; (<em>ru</em> or <em>lu</em>)&mdash;indicating that the term for &lsquo;wool&rsquo; was <em>maru</em> or <em>malu</em>. It not-so-coincidentally happens that the Greek term for &lsquo;wool&rsquo; was &mu;&alpha;&lambda;&lambda;&#972;&sigmaf; (<em>mall&oacute;s</em>)&mdash;a term alongside no Indo-European etymology. Thus <em>mall&oacute;s</em> is nearly undoubtedly a borrowing from Minoan.</li><li>Labyrinths are powerfully connected alongside Minoan culture, having been built in Greek mythology for King Minos of Crete to clasp the Minotaur. The term &lambda;&alpha;&beta;&#973;&rho;&iota;&nu;&theta;&omicron;&sigmaf; (<em>lab&yacute;rinthos</em>) &lsquo;labyrinth&rsquo;, it again not-so-coincidentally happens, is one of those rare traditional conditions alongside a Pre-Greek <em>&#8209;nth</em> suffix. It equal appears in Linear B (not Linear A) as &#65541;&#65606;&#65578;&#65589;&#65549; (<em>da&#8209;pu&#8322;&#8209;ri&#8209;to&#8209;jo</em>) &lsquo;of the labyrinth&rsquo;, definition that the term was borrowed extremely first into Mycenaean Greek. Minoan civilization would have exerted its power on the Pre-Greeks fair as it did the afterward Mycenaean Greeks. So in all likelihood, the Pre-Greeks borrowed the term for &lsquo;labyrinth&rsquo; and tacked their <em>&#8209;nth</em> suffix on the end of it, afterward afterward gave the term to the Greeks.</li><li>The Minoans additionally boasted the oldest known individual bathtubs in the ancient world, a innovation which afterward dispersed elsewhere in the Aegean. The Greek term for &lsquo;bathtub&rsquo;, &#7936;&sigma;&#940;&mu;&iota;&nu;&theta;&omicron;&sigmaf; (<em>as&aacute;minthos</em>), shows the traditional <em>&#8209;nth</em> suffix equal in first Mycenaean&mdash;&#65536;&#65581;&#65558;&#65589; (<em>a&#8209;sa&#8209;mi&#8209;to</em>)&mdash;meaning that this term too was apt borrowed by the Pre-Greeks from the Minoans, and in rotate borrowed by the Greeks.</li><li>There are additionally multiple toponyms which appear in Linear A, Linear B, and Classical Greek, definition that the names of these places were borrowed from the Minoans. Predictably, these toponyms are all on the isle of Crete.</li></ul><figure></figure><p>We can say alongside several confidence, then, that the mystery loanwords of Ancient Greek arrive from at smallest two languages: the Paleo-European inhabitants of the Greek mainland, and the assorted another cultures in the surrounding region, most particularly the excessive Minoan palatial civilization of Crete.</p><div><p>&#128240;</p><p><i><em>Want to study additional concerning how languages get penning systems from all other? Check out this part on anywhere penning systems arrive from.</em></i></p></div><figure><a href="https://en.mycoding.id/category/technology" target="_blank"><div><p>Where do penning systems arrive from?</p><p>Writing was invented three distinct times in earth history&mdash;in Mesopotamia, China, and Mesoamerica. But not all penning systems get from those three first scripts. How can this be?</p><p><img src="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/icon/languages-bordered-60702f16-d13e-4e45-9551-704ebb500413.png" alt=""><span>Linguistic Discovery</span><span>Daniel W. Hieber, Ph.D.</span></p></div><p><img src="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/thumbnail/alphabet-HD-449a4ec8-3aa0-4fb5-99a3-2f513ec456cd.webp" alt=""></p></a></figure><p>Languages are a fossil document of the former of their speakers. Hidden below the exterior of all tongue are layers upon layers of history&mdash;a consideration of millennia of migrations, trade, and conflict. Historical linguistics allows us to regain several of that history, provided we cognize anywhere and how to appearance for it. We volition likely never completely regain the tongue of the Pre-Greeks, but it has remaining an indelible grade on the languages of the Mediterranean and equal English. Every period you utter words akin <em>labyrinth</em>, <em>mint</em>, <em>narcissism</em>, and <em>guitar</em>, you transport on the civilization of those Paleo-Europeans who inhabited the Aegean previous to the arrival of the archetypal Indo-Europeans complete 4,000 years ago.</p><figure><img src="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-5.png" alt="" loading="lazy" width="526" height="439"><figcaption><span>A reconstruction of the Greek town of Dimini in Thessaly, as it existed ca. 3700 BCE. Source unknown.</span></figcaption></figure> <h2 id="%F0%9F%93%9A-further-reading">&#128218; Further Reading</h2><figure><img src="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-7.png" alt="" loading="lazy" width="987" height="1500" srcset="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w600/2026/09/image-7.png 600w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-7.png 987w" sizes=" 720px) 720px"><figcaption><a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener noreferrer"><span>Amazon</span></a><span> | </span><a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener noreferrer"><span>Bookshop</span></a></figcaption></figure><figure><img src="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-8.png" alt="" loading="lazy" width="787" height="1200" srcset="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w600/2026/09/image-8.png 600w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-8.png 787w" sizes=" 720px) 720px"><figcaption><a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener noreferrer"><span>Amazon</span></a><span> | </span><a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener noreferrer"><span>Bookshop</span></a></figcaption></figure><figure><img src="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-9.png" alt="" loading="lazy" width="907" height="1360" srcset="https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/size/w600/2026/09/image-9.png 600w, https://storage.ghost.io/c/c7/75/c775a216-7ca2-4c5f-96a7-f2defe0fd756/content/images/2026/09/image-9.png 907w" sizes=" 720px) 720px"><figcaption><a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener noreferrer"><span>Amazon</span></a><span> | </span><a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener noreferrer"><span>Bookshop</span></a></figcaption></figure><h2 id="english-words-from-pre-greek">English words from Pre-Greek</h2><p>This is a non-exhaustive catalog of words that are mostly idea to be loanwords from a Pre-Greek substrate tongue into Ancient Greek, and which afterward established their way into English. I&rsquo;ve done my finest to portray the agreement perspective and evade including dubious cases, but there&rsquo;s certainly area to differ alongside my idiosyncratic choices. This part is, following all, a high-level summary of a huge site of investigation alongside many of inner debate.</p><figure></figure><h2 id="%F0%9F%93%91-bibliography">&#128209; Bibliography</h2><p><em>The inquiry of the nature of Pre-Greek and the position of loanwords into Ancient Greek are several of the most well-researched and debated areas in Indo-European linguistics. Below are fair a few of the additional latest sources that provision decent high-level overviews of the topic.</em></p><ul><li>Beekes, Robert S.P. 2014. <em>Pre-Greek: Phonology, morphology, lexicon</em> (<em>Brill Introductions to Indo-European Languages</em> 2). Brill.</li><li>Duhoux, Y. 2007. Pre-Greek languages: Indirect evidence. In A.-F. Christidis (ed.), <em>A former of ancient Greek: From the beginnings to delayed antiquity</em>, pp. 223&ndash;228. Cambridge University Press.</li><li>Meester, Lotte. 2024. Substrate stratification: An disagreement against the unity of Pre-Greek. In Guus Kroonen (ed.), <em>Sub-Indo-European Europe: Problems, methods, results</em>, pp. 283&ndash;300. De Gruyter.</li><li>Verhasselt, Gertjan. 2009. The Pre-Greek linguistic substratum: An overview of current research. <em>Les &Eacute;tudes Classiques</em> 77: 211&ndash;239.</li></ul><hr><h2 id="notes">Notes</h2><p>&sup1; I use the term confamiliar to mention to words that are connected through borrowing fairly than straightforward inheritance. Two words that are connected to all another since they the two get from the identical term in a genitor tongue are called cognates. The term <em>confamiliar</em> is meant to be the equal of <em>cognate</em> for borrowed words. The two conditions nicely parallel the difference in Latin between <em>cogn&#257;tus</em> &lsquo;related by birth&rsquo; vs. <em>famili&#257;ris</em> &lsquo;member of a family (not necessarily connected by blood)&rsquo;. The term <em>confamiliar</em> is additionally used in the existence sciences to mention to taxonomic members of the identical family; so current I am merely extending the metaphor to mention to members of the identical family of words. This is my own distinctive coinage, though. As far as I know, no another linguists use this term in this way (yet &#129310;&#127996;).</p><p>&sup2; */tw/ sometimes underwent this audio alter too, which is the origin of of the /ss/ ~ /tt/ alternation in &tau;&#941;&sigma;&sigma;&alpha;&rho;&epsilon;&sigmaf; (<em>t&eacute;ssares</em>) &lsquo;four&rsquo;. This term comes from PIE *<em>k&#695;e<strong>tw</strong>&oacute;res</em> fairly than a palatalized sound.</p><p>&sup3; I don&rsquo;t really affection the term &ldquo;Pre-Greek&rdquo; since in historic linguistics the prefix <em>Pre&#8209;</em> is mostly reserved for an before phase of a sole language, normally one reconstructed from language-internal evidence alone. This contrasts alongside the final average ancestor of a collection of connected languages, which is reconstructed by comparing those languages, in which case we use the prefix <em>Proto&#8209;</em>. According to this convention, <em>Pre-Greek</em> or <em>Pre-Proto-Greek</em> should really mention to a hypothetical dialect of Indo-European from which Proto-Greek afterward emerged. Regardless, <em>Pre&#8209;</em> is motionless commonly used for substrates as well, specified as <em>Pre-Greek</em> or <em>Pre-Indo-European</em> (i.e. the languages that existed in Eurasia previous to the arrival of the Indo-Europeans&mdash;not to be confused alongside Paleo-European / Old European languages, which refers additional specifically to the Neolithic languages of Europe). (Another logic I dislike the term &ldquo;Pre-Greek&rdquo; is since this part would have echoed much cooler titled &ldquo;Pelasgian: The mystery tongue hidden in Ancient Greek&rdquo;, or &ldquo;Parnassian&rdquo; or the like.)</p><div><p>&#128218;</p><div><p>The Amazon and Bookshop links on this location are affiliate links, which method that I acquire a small commission from those companies for purchases made through them (at no additional disbursal to you).</p><p>If you&rsquo;d akin to assistance Linguistic Discovery, purchasing through these links is a awesome way to do so! I greatly value your support!</p><p><a href="https://en.mycoding.id/category/technology" target="_blank" rel="noreferrer">Check out my Amazon storefront here.</a><br><a href="https://en.mycoding.id/category/technology" target="_blank" rel="noreferrer">Check out my Bookshop storefront here.</a></p></div></div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/pre-greek-the-misplaced-tongue-hidden-inside-ancient-greek-68656</guid> <pubDate>Fri, 18 Sep 2026 04:04:38 +0700</pubDate> <author><![CDATA[support@mycoding.id (Riki Setiawan)]]></author> </item> <item> <title><![CDATA[Code Scans]]></title> <description><![CDATA[Code Scans. Comments]]></description> <media:thumbnail url="https://devin.ai/images/blog/introducing-code-scans/cover.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/code-scans-68657</link> <content:encoded><![CDATA[<div><div><a href="https://en.mycoding.id/category/technology" target="_blank"><svg aria-hidden="true" width="24px" height="24px" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.700 5.077 C 9.590 5.128,8.522 6.172,6.294 8.406 C 3.218 11.489,3.046 11.669,3.020 11.830 C 3.005 11.923,3.005 12.077,3.020 12.170 C 3.046 12.331,3.217 12.509,6.274 15.573 C 8.048 17.351,9.554 18.845,9.620 18.893 C 9.715 18.962,9.796 18.980,10.006 18.980 C 10.243 18.980,10.290 18.966,10.426 18.858 C 10.596 18.723,10.760 18.439,10.760 18.282 C 10.759 17.940,10.805 17.993,8.127 15.310 L 5.581 12.760 12.982 12.760 L 20.383 12.760 20.559 12.670 C 20.656 12.620,20.790 12.511,20.858 12.426 C 20.967 12.289,20.980 12.244,20.980 12.000 C 20.980 11.755,20.968 11.712,20.856 11.574 C 20.787 11.489,20.670 11.384,20.596 11.340 C 20.461 11.261,20.378 11.260,13.021 11.249 L 5.582 11.239 8.128 8.689 C 10.310 6.503,10.679 6.117,10.716 5.980 C 10.777 5.757,10.770 5.645,10.684 5.460 C 10.503 5.067,10.076 4.901,9.700 5.077 " stroke="none" fill-rule="evenodd" fill="currentColor"></path></svg></a><p><span>Cognition</span><span aria-hidden="true">|</span>September 16, 2026<span aria-hidden="true">|</span><span>5 min read</span><span aria-hidden="true">|</span></p><div><div><p>Today we&rsquo;re introducing <strong>Code Scans</strong>: a new way to rotate broad engineering goals into tangible improvements throughout your codebase. Tell Devin what you desire to achieve, and it helps you examine what needs to change, measure the findings, and rotate them into drag requests.</p> <p>Many engineering tasks commencement alongside a particular change. Others commencement alongside an outcome:</p> <ul> <li><strong>Improve SEO</strong></li> <li><strong>Reduce care overhead</strong></li> <li><strong>Make your use compile faster</strong></li> </ul> <p>These goals frequently remain on the backlog since the archetypal stage solitary is a significant project: examining the codebase to fig out anywhere to start. Additionally, identifying the opportunities is lone fractional the activity &mdash; person motionless has to execute the changes, and many of them.</p> <p>Code Scans helps alongside both.</p> <p>Powered by <a href="https://en.mycoding.id/category/technology" target="_blank"><strong>Agentic MapReduce</strong></a>, the architecture we built for Devin Security Swarm, Code Scans breaks ample investigations into focused batches, distributes them throughout parallel agents, and synthesizes their findings into one report. Devin afterward turns its findings into PRs prepared to review.</p> <p>Teams evaluation Code Scans onward of initiate are already seeing results:</p> <figure><div><blockquote><svg width="28" height="22" viewbox="0 0 37 31" aria-hidden="true"><path d="M16.8 4.816C14.299 5.451 12.133 6.459 10.304 7.84 8.512 9.184 7.131 10.864 6.16 12.88 5.189 14.896 4.704 17.174 4.704 19.712H3.472c0-1.568.485-2.818 1.456-3.752.808-.97 2.152-1.456 4.032-1.456 1.419 0 2.725.355 3.92 1.064 1.195.71 2.147 1.661 2.856 2.856.71 1.195 1.064 2.501 1.064 3.92 0 1.419-.354 2.725-1.064 3.92-.709 1.195-1.661 2.147-2.856 2.856-1.195.71-2.501 1.064-3.92 1.064-1.717 0-3.267-.448-4.648-1.344-1.344-.896-2.408-2.147-3.192-3.752C.373 23.483 0 21.691 0 19.712c0-3.36.69-6.403 2.072-9.128C3.491 7.822 5.451 5.544 7.952 3.752 10.491 1.923 13.44.672 16.8 0v4.816ZM36.96 4.816c-2.501.635-4.667 1.643-6.496 3.024-1.792 1.344-3.173 3.024-4.144 5.04-.971 2.016-1.456 4.294-1.456 6.832h-1.232c0-1.568.485-2.818 1.456-3.752.808-.97 2.152-1.456 4.032-1.456 1.419 0 2.725.355 3.92 1.064 1.195.71 2.147 1.661 2.856 2.856.71 1.195 1.064 2.501 1.064 3.92 0 1.419-.354 2.725-1.064 3.92-.709 1.195-1.661 2.147-2.856 2.856-1.195.71-2.501 1.064-3.92 1.064-1.717 0-3.267-.448-4.648-1.344-1.344-.896-2.408-2.147-3.192-3.752-.747-1.605-1.12-3.397-1.12-5.376 0-3.36.69-6.403 2.072-9.128 1.419-2.762 3.379-5.04 5.88-6.832C31.651 1.923 34.6.672 37.96 0l-1 4.816Z" fill="currentColor"></path></svg><p>Code Scans had a important effect on the things we attention most about: application quality, bug fixes, stability, performance, and compliance, including safety and privacy. With an estimated <strong>96% PR merge rate</strong> throughout multiple repos, we evaluation we've <strong>saved complete 700 engineering hours</strong> in our abbreviated evaluation timeframe.</p></blockquote><p>PR merge rate96%</p><p>Engineering hours saved700+</p></div></figure> <p>To get started, category <strong>/scan</strong> in the Devin webapp, or peruse the <a href="https://en.mycoding.id/category/technology" target="_blank">docs</a>.</p> <h2 id="start-with-a-goal">Start alongside a goal</h2> <p>You don&rsquo;t need to cognize which records to appearance at before starting a scan. Instead, you define what you&rsquo;re looking for, and Devin plant alongside you to rotate that goal into a tangible codebase investigation.</p> <p>For example:</p> <blockquote> <p>Find unused code in our web app. Exclude generated records and test fixtures, and inspect for indirect references before recommending a removal.</p> </blockquote> <p>You can additionally bring your own criteria: a team&rsquo;s coding standards, an accessibility checklist, or requirements for an upcoming migration. Devin helps established what to inspect, what to skip, and what should figure as a finding.</p> <p>Once you verify the range and settings, Devin runs the inquiry and brings rear a catalog of findings ordered by priority. From there, you can inspect the evidence, conversation the results alongside Devin, and ask it to open PRs for the issues you desire to address.</p> <h3 id="improve-rust-compilation-time">Improve Rust compilation time</h3> <p>We asked Code Scans to speed up compilation in the Dioxus repository. Devin identified opportunities to streamline requirements and build configuration, including making heavyweight CLI features opt-in fairly than compiling them by default. After applying the changes locally, <strong>clean debug build period dropped from 58.6 seconds to 21.0 seconds&mdash;a 64% reduction</strong> throughout the 22 workspace crates tested.</p> <figure><div><h4>Scan findings</h4><span>dioxus &middot; compile-time scan</span><ol aria-label="Findings ordered by priority"><li><span aria-hidden="true"></span><div><p>Default mounted characteristic forces web-sys/js-sys/wasm-bindgen (and serialize forces serde) onto all non-web renderer</p><p>The default characteristic set enables mounted, which activates the heavyweight optional web-sys dependency (and transitively js-sys + wasm-bindgen) &mdash; yet those bindings are&hellip;</p></div></li><li><span aria-hidden="true"></span><div><p>Oversized foundational crate: stable generated element/attribute tables bundled alongside volatile logic causes complete re-expansion and downstream recompiles</p><p>dioxus-html is a foundational crate that all renderer depends on, and it bundles its enormous, near-static generated element/attribute API (elements.rs, global_attributes.rs)&hellip;</p></div></li><li><span aria-hidden="true"></span><div><p>builder_constructors! component array is the html crate's foremost compile disbursal (~112 elements, ~112 per-element proc-macro invocations, duplicated hot-reload traversal)</p><p>The sole builder_constructors! invocation is the html crate's foremost compile-time cost. It expands 112 HTML/SVG elements, all into a component struct, TAG_NAME/NAME_SPACE&hellip;</p></div></li><li><span aria-hidden="true"></span><div><p>cargo-generate compiled unconditionally in dioxus-cli although used lone by dx create</p><p>cargo-generate is a non-optional dependency used lone by the dx create/dx init scaffolding path, but it drags in git2/libgit2-sys (a native C archive build), liquid templating&hellip;</p></div></li><li><span aria-hidden="true"></span><div><p>dioxus-ssr pulls tokio "full" (default-on) but lone uses fs + io-util</p><p>dioxus-ssr declares tokio = { type = "1.28", features = ["full"], optional = true }, but the crate uses tokio in exactly one component (incremental.rs) and lone touches tokio::fs and&hellip;</p></div></li></ol></div></figure> <h3 id="seo-optimization">SEO Optimization</h3> <p>We ran a scan for SEO issues throughout <a href="https://en.mycoding.id/category/technology" target="_blank">devin.ai</a> and <a href="https://en.mycoding.id/category/technology" target="_blank">cognition.com</a>. It surfaced 44 findings throughout the two repositories, and we shipped fixes complete the following days. Comparing Ahrefs crawls before and after:</p> <ul> <li><strong>Ahrefs health mark risen from 87 to 92</strong> on devin.ai.</li> <li><strong>Slow pages decreased by 73%</strong> on devin.ai.</li> <li><strong>Missing depiction alt content was eliminated</strong> on cognition.com.</li> </ul> <figure><div><h4>Scan findings</h4><span>devin.ai + cognition.com &middot; SEO scan</span><ol aria-label="Findings ordered by priority"><li><span aria-hidden="true"></span><div><p>Customer case-study pages emit related og:image / twitter:image / JSON-LD i&hellip;</p><p>Every client case-study leaf (/customers/&lt;slug&gt;) sets its Open Graph image, Twitter image, and Article JSON-LD depiction to the raw frontmatter.ogimagePath value, which is a root-relative way alongside no domain and no foremost slash. Open Graph / Twitter Card spec and schema.org necessitate complete URLs, so previews and the Article rich-result depiction break.</p><p>devin-website</p></div></li><li><span aria-hidden="true"></span><div><p>Redirect sequence /resources/university &rarr; /university &rarr; external drops a hop on a&hellip;</p><p>vercel.json defines /resources/university -&gt; /university and, separately, /university -&gt; https://learn.devinenterprise.com. Because the archetypal redirect targets another redirect source, requests to /resources/university traverse a two-hop 301 sequence alternatively of going direct to the final destination. Ahrefs confirms /resources/university has 157 live backlinks (22 referring domains).</p><p>devin-website</p></div></li><li><span aria-hidden="true"></span><div><p>Homepage og:url resolves to non-canonical /index (mismatches canonical https:&hellip;</p><p>The base layout sets openGraph.url: './' on all page. This holds for sub-routes but is false for the homepage: Next resolves ./ for the base path against pathname /index, so the served homepage emits og:url = https://cognition.com/index during its canonical nexus tag is https://cognition.com.</p><p>cognition-marketing-website</p></div></li><li><span aria-hidden="true"></span><div><p>Terminal layout omits the JSON-LD organized data all base/desktop leaf emits</p><p>The _terminalLayout caput assembles title/description/canonical/OG/hreflang but emits no JSON-LD, dissimilar _baseLayout and _desktopLayout which the two container a default SoftwareApplication block. Its consumers /cli (the Devin CLI merchandise page) and /auto-triage are the two indexable chief merchandise surfaces.</p><p>devin-website</p></div></li><li><span aria-hidden="true"></span><div><p>Ended event stays indexable alongside meta clarification promotion a live webinar</p><p>The whats-new-in-devin-06-24-26 event leaf announces on-page that the event is complete ('This event has ended', 'Event ended', 'Registration closed'), yet its metadata contains no robots: {index:false} and its meta/OG descriptions motionless advertise the webinar as live and upcoming. So an expired leaf remains indexable during its hunt snippet promotes a former event as although registration were open.</p><p>cognition-marketing-website</p></div></li></ol></div></figure> <h2 id="agentic-mapreduce">Agentic MapReduce</h2> <p>Code Scans is built on top of <a href="https://en.mycoding.id/category/technology" target="_blank"><strong>Agentic MapReduce</strong></a>, the architecture we built for Devin Security Swarm, to create codebase-wide investigations practical. It plant in 4 phases:</p> <ol> <li><strong>Plan.</strong> Devin studies your repository and defines rules for identifying code applicable to your goal.</li> <li><strong>Shard.</strong> Those rules run throughout the codebase, and the matching code is divided into focused batches.</li> <li><strong>Map.</strong> Parallel Devin agents examine all batch, study surrounding code as needed and reporting their findings.</li> <li><strong>Reduce.</strong> A final delegate combines the findings, removes duplicates, and prioritizes the results into one report.</li> </ol> <figure><div><h4>Agentic MapReduce Pipeline</h4><span>dead-code scan example</span><ol><li><span aria-hidden="true"><svg viewbox="0 0 16 16" aria-hidden="true"><path d="M3 8h9M9 4l4 4-4 4" fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></li><li><span aria-hidden="true"><svg viewbox="0 0 16 16" aria-hidden="true"><path d="M3 8h9M9 4l4 4-4 4" fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></li><li><span aria-hidden="true"><svg viewbox="0 0 16 16" aria-hidden="true"><path d="M3 8h9M9 4l4 4-4 4" fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></li><li></ol><div><div><h5>1. Plan</h5><p><span><span aria-hidden="true"></span>Agentic</span></p></div><div><p>Devin studies the repository and defines rules for the code applicable to your goal &mdash; here, symbols, modules, and requirements that may no longer be used.</p><div><p><span>exports alongside no importers</span><span>unreferenced modules</span><span>unused dependencies</span><span>stale characteristic flags</span></p></div></div></div></div></figure> <p>This keeps all agent&rsquo;s environment focused and directs the reasoning prosperity toward applicable code fairly than repeated searching. This architecture additionally ensures completeness: all selected lot must be processed. Code Scans brings that identical method beyond safety to the engineering goals you define.</p> <h2 id="what-would-you-scan-for">What would you scan for?</h2> <p>Code Scans can examine a broad range of engineering questions, using your codebase&rsquo;s conventions and the criteria you provide. Here are several examples:</p> <table readabilitydatatable="1"><thead><tr><th><strong>Scan</strong></th><th><strong>Goal</strong></th></tr></thead><tbody><tr><td><strong>Performance</strong></td><td>Find dilatory paths, redundant computation, and missed caching opportunities that could create your use faster.</td></tr><tr><td><strong>Database queries</strong></td><td>Look for N+1 queries, unnecessary circular trips, unbounded reads, and another inefficient or unreliable data-access patterns.</td></tr><tr><td><strong>Test coverage</strong></td><td>Identify crucial flows, border cases, and nonaccomplishment paths that aren&rsquo;t covered by tests.</td></tr><tr><td><strong>Dead code</strong></td><td>Find unused functions, modules, dependencies, and obsolete characteristic flags, alongside evidence for what can safely be removed.</td></tr><tr><td><strong>Code quality</strong></td><td>Look for duplicated logic, unnecessary complexity, improved idea opportunities, and patterns that breach your team&rsquo;s coding standards.</td></tr><tr><td><strong>Cleanup</strong></td><td>Identify redundant abstractions, excessive boilerplate, and code that can be simplified without changing behavior.</td></tr><tr><td><strong>Telemetry</strong></td><td>Find gaps in logging, metrics, and tracing that create failures difficult to diagnose or crucial behavior difficult to measure.</td></tr><tr><td><strong>Accessibility</strong></td><td>Look for missing labels, damaged keyboard interactions, and another gaps against the WCAG criteria you specify.</td></tr><tr><td><strong>Compliance</strong></td><td>Investigate sensitive-data handling, audit trails, and preservation logic against your organization&rsquo;s regulatory requirements and policies.</td></tr><tr><td><strong>Migration planning</strong></td><td>Trace existing dependencies, end-to-end flows, and endeavor logic to create a scheme for an upcoming migration.</td></tr><tr><td><strong>SEO Optimization</strong></td><td>Find code-level issues affecting hunt visibility, including missing or duplicated metadata, incorrect canonical URLs, indexing directives, and gaps in sitemaps or organized data.</td></tr><tr><td><strong>Your own</strong></td><td>Define a form you desire Devin to appearance for throughout the codebase.</td></tr></tbody></table> <p>The most helpful scan power arrive from a inquiry your squad has been putting off since answering it meant looking everywhere.</p> <p>Type <strong>/scan</strong> in your Devin session, define what you desire to investigate, build the range together, and commencement optimizing your codebase today.</p> <p>Try Code Scans at <a href="https://en.mycoding.id/category/technology" target="_blank">devin.ai</a> and study additional in the <a href="https://en.mycoding.id/category/technology" target="_blank">Code Scans docs</a>.</p></div></div></div></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/code-scans-68657</guid> <pubDate>Fri, 18 Sep 2026 04:00:40 +0700</pubDate> <author><![CDATA[support@mycoding.id (Riki Setiawan)]]></author> </item> <item> <title><![CDATA[Hacking OpenAI]]></title> <description><![CDATA[Hacking OpenAI. Comments]]></description> <media:thumbnail url="https://www.hacktron.ai/_astro/CwjuS_y3.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/hacking-openai-68658</link> <content:encoded><![CDATA[<div><div><div><p>A heap overflow and SSO misconfiguration to colony OpenAI inner repositories</p></div><div><p>September 13, 2026<span aria-hidden="true"></span><span>11 min read</span></p></div><h2 id="intro"><strong>Intro</strong></h2> <p>On July 25, 2026, we chained two crucial vulnerabilities to colony multiple OpenAI employees&rsquo; ChatGPT accounts. With these accounts, we could afterward admission inner OpenAI repositories, and possibly many another connectors.</p> <p>To demonstrate we had in fact gained the admission we believed without allowing ourselves to study any delicate information, we used the employee&rsquo;s Codex to open a PR #1186742 in OpenAI&rsquo;s inner monorepo openai/openai.</p> <figure aria-labelledby="supply-chain-title"><figcaption id="supply-chain-title">Exploit chain</figcaption><ol role="list" aria-label=" libheif is packaged by Debian and used by ImageMagick for depiction decoding. Discourse calls ImageMagick and powers OpenAI’s forum. Forum colony combines alongside a distinct OpenAI SSO flaw to disclose a ChatGPT and Codex document and its connected GitHub repositories."><li><strong>libheif</strong><span>Image decoder</span></li><li><strong>Debian</strong><span>Missing safety backport</span></li><li><strong>ImageMagick</strong><span>Uses libheif</span></li><li><strong>Discourse</strong><span>Image uploads</span></li><li><strong>OpenAI forum</strong><span>community.openai.com</span></li><li><strong>OpenAI SSO</strong><span> Identity flaw</span></li><li><strong>ChatGPT / Codex</strong><span>Account access</span></li><li><strong>GitHub</strong><span>Connected integration</span></li><li><strong>Internal repos</strong><span>OpenAI</span></li></ol></figure> <p>Until two months ago, any person or OpenAI employee logging into OpenAI&rsquo;s own assistance forum (<a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow noreferrer noopener" target="_blank">community.openai.com</a><strong>)</strong> could have had their ChatGPT and Codex accounts taken over. Since group can nexus assorted services to Codex and ChatGPT, the range of what we could theoretically admission was huge, including GitHub, Slack and emails.</p> <p>The complete timeline from first finding to admission to OpenAI repo admission took location in small than 72 hours.</p> <p>We immediately reported the first exposure to OpenAI and Discourse and worked alongside them to coordinate the patch. We value their notice to item and accelerated resolution of this issue. OpenAI additionally paid us a&nbsp;<strong>$6,500</strong>&nbsp;bounty.</p> <p>We provision a complete timeline of the disclosure procedure here. The remainder of the article particulars how we discovered the two vulnerabilities, how we used claude models, as fine as our takeaways from this experience.</p> <h2 id="background"><strong>Background</strong></h2> <p>A few months ago, our squad at Hacktron, led by Harsh Jaiswal alongside Mohan Pedhapati and Rahul Maini, began researching frontier AI companies to discover safety vulnerabilities. This led us to detect an SSO misconfiguration in OpenAI&rsquo;s character infrastructure and a&nbsp;<strong>libheif</strong>&nbsp;RCE in the community forum used by OpenAI.</p> <p>We&rsquo;ve since expanded the investigation into <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow noreferrer noopener" target="_blank">HEIF Heist</a>, a multi-month inquiry tracing&nbsp;<strong>libheif</strong>&nbsp;across Slack, Meta, GitHub Enterprise, Ruby on Rails, and Node.js frameworks specified as Next.js, Astro, and Gatsby. A <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow noreferrer noopener" target="_blank">surprising amount</a> of widely-used application depends on this one image-processing library.</p> <p><img src="https://www.hacktron.ai/_astro/DlrLdX-c_ZAKAfc.webp?dpl=dpl_Fyje7uXSKiimt7j62R3SHRpS4hQ5" alt="xkcd 2347" loading="lazy" decoding="async" width="2144" height="1346"></p> <p>If your use processes user-controlled images and accepts .heic/.heif/.avif images, it is extremely apt it is affected. Please attain out to us at&nbsp;<a href="https://en.mycoding.id/category/technology" target="_blank"><strong>hello@hacktron.ai</strong></a>&nbsp;if you need any benevolent of assistance.</p> <svg width="1em" height="1em" viewbox="0 0 24 24" data-icon="alert-triangle"><symbol id="alert-triangle"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m21.73 18l-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3M12 9v4m0 4h.01"></path></symbol></svg><span>Warning</span><svg width="1em" height="1em" viewbox="0 0 24 24" data-icon="chevron-down"><symbol id="chevron-down"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"></path></symbol></svg><p><strong>Patch notice:</strong> If you self-host Discourse, rebuild your facility now. Older Docker images may merge a susceptible libheif dependency that permits code implementation through an depiction upload. Run git drag followed by ./launcher rebuild app from /var/discourse; a web-interface update solitary may not substitute the underlying image. Discourse-hosted customers have already been patched. See the <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow noreferrer noopener" target="_blank">security advisory</a>.</p> <p>OpenAI uses Discourse for their forum and allows &ldquo;Sign in alongside OpenAI&rdquo; through auth.openai.com. After getting a fine understanding of OpenAI&rsquo;s services and infrastructure, we had logic to accept that compromising the forum could create a way into broader OpenAI services through this character flow. To test that hypothesis, we archetypal needed distant code implementation on an OpenAI assistance akin the Discourse community forum.</p> <p>While the Discourse app itself is really not an uncomplicated mark (we have looked into it in the past), we idea we could go following a dependency.</p> <h3 id="heap-buffer-overflow-in-libheif"><strong>Heap buffer overflow in libheif</strong></h3> <p>On July 23, we started reviewing Discourse&rsquo;s image-upload pipeline, and we established that HEIC and HEIF records followed an different path. Discourse normally used FastImage for depiction checks, but since FastImage did not assistance HEIF, it passed those records to ImageMagick&rsquo;s&nbsp;<strong>magick</strong> command for conversion.<sup><a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Reference 2">2</a></sup>&nbsp;That exposed the underlying <strong>libheif</strong>&nbsp;parser immediately to attacker-controlled files.</p> <p>We started an Opus 4.8 meeting alongside the Discourse Docker depiction and asked it to inspect the installed&nbsp;<strong>libheif</strong>&nbsp;package for safety issues. After a while, it established that several particular safety fixes were not back-ported to the libheif package. This allowed an heap buffer overflow foremost to OOB R/W primitives during HEIC decoding.</p> <p>Interestingly, the susceptible code had been changed upstream the former year, but the commit was not documented as a safety fix and received no CVE.<sup><a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Reference 3">3</a></sup> This power be a logic why Debian 12 and 13 have not received the safety applicable backports in time. Because Discourse&rsquo;s Docker depiction was according to Debian 12, it installed the vulnerable&nbsp;<strong>libheif</strong>&nbsp;version 1.19.7. Even Debian 13 motionless shipped the susceptible type 1.19.8 at the time. Since then, Debian has published its safety update for Debian 13 on August 8, 2026.&nbsp;<sup><a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Reference 4">4</a></sup></p> <p>On July 24, we used Opus 4.8 to create a operating ImageMagick/<strong>libheif</strong>&nbsp;code-execution utilize alongside ASLR disabled. We afterward launched multiple distinct sessions to create it dependable against Discourse&rsquo;s default configuration alongside ASLR enabled, which wasn&rsquo;t fruitful.</p> <h3 id="opus-5-released">Opus 5 Released</h3> <p>That evening, Anthropic released Claude Opus 5.<sup><a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Reference 5">5</a></sup>We started a new session, which archetypal produced a operating ARM64 utilize for a local Mac inside 3 hours. We afterward asked it to harbor the utilize to the x86-64 surroundings and&nbsp;<strong>jemalloc</strong>&nbsp;configuration used by Discourse.</p> <p>By 6:00 a.m. on July 25, we had confirmed local RCE through an depiction upload. We afterward placed Claude in an autonomous&nbsp;<strong>/goal</strong>&nbsp;loop against our own Discourse Cloud instance, proxied through&nbsp;<strong>rce.ee/ctf-forum</strong>&nbsp;to create it appearance akin a CTF mark as Opus refused compose utilize for distant instances.</p> <p>When we checked again at 10:00 a.m., the delegate had achieved RCE on Discourse Cloud and demonstrated admission by reading&nbsp;<strong>/etc/hosts</strong>. Using the generated utilize script, we managed to get RCE on OpenAI&rsquo;s instance.</p> <p>After we had confirmed our assumption of no communication document takeover of ChatGPT/Codex accounts from energetic members of the forum, we immediately sent our study to OpenAI. We afterward took complete an OpenAI employee&rsquo;s account, whose Codex was connected to OpenAI&rsquo;s Github organization. To display effect without really accessing any inner code, we sent a immediate to this employee&rsquo;s Codex document to open a PR for us in OpenAI&rsquo;s inner monorepo. Then we stopped any additional testing.</p> <p><img src="https://www.hacktron.ai/_astro/kQ1s5GLp_Z1EcfJK.webp?dpl=dpl_Fyje7uXSKiimt7j62R3SHRpS4hQ5" alt="Redacted drag petition demonstrating admission to OpenAI’s inner monorepo" loading="lazy" decoding="async" width="2180" height="1504"></p> <p>We updated the BugCrowd submission alongside the effect evidence and alerted OpenAI security. We additionally prepared a study for Discourse and reported it to their HackerOne program. Discourse received the study on a Saturday, replied on Sunday, and had a fix by Monday (kudos for speed). They additionally <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow noreferrer noopener" target="_blank">immediately started sandboxing</a> ImageMagick.</p> <p>We desire to emphasis that the exposure to escalate is not Discourse-specific. It is an OpenAI SSO matter that turned the forum colony into admission to ChatGPT and Codex. If any first-party or third-party OpenAI assistance using the OpenAI SSO was compromised, it would guide to identical admission - Discourse was merely one way of proofing it.</p> <h2 id="costs-of-finding-these-vulnerabilities"><strong>Costs of finding these vulnerabilities</strong></h2> <p>The Discourse and OpenAI hack took a few days for an agent, and fair a few hours of individual time. The entire <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow noreferrer noopener" target="_blank">HEIF Heist</a> investigation project going following Slack, Zoom, Meta, adn additional took two-months, disbursal small than $3,000 in tokens in total, and was conducted by three researchers. Adapting the utilize to all new business normally took lone one or two days.</p> <p>We observed that all new example is getting increasingly capable, as apparent by the Discourse utilize presented in this report. Opus 4.8 struggled throughout multiple sessions to create a operating utilize alongside ASLR enabled. Within hours of Opus 5&rsquo;s release, we gave it the identical issue and it succeeded. Across the broader campaign, we saw another apparent jump from Opus 5 to GPT-5.6 Sol, whenever we had to utilize the exposure without knowing item concerning the mark scheme furthermore that it&rsquo;s vulnerable.</p> <p>For all target, evaluation began alongside an depiction upload. From there, we turned recollection misconduct into a dependable recollection leak or shell, normally without knowing the exact&nbsp;<strong>libheif</strong>&nbsp;version, libc version, or deployment environment. The AI started nearly blind and adapted the utilize for all business inside one or two days. We are not conscious of any business that detected the action apart from Shopify, equal following thousands of images were sent and their depiction processors often crashed.</p> <p>When code implementation landed inner a sandbox or restricted environment, the models additionally helped alongside privilege escalation, lateral movement, and bypassing existing defenses. This was not completly autonomous hacking, and skilled individual direction remained important, but the amount of activity a small squad could execute risen dramatically.</p> <h2 id="epilogue"><strong>Epilogue</strong></h2> <p>Software has lengthy benefited from a benevolent of safety through complexity. The code and equal the exposure could be public, but turning a bug into a dependable utilize motionless required rare expertise, important time, and cognition of the mark environment. Known recollection misconduct vulnerabilities were costly to operationalize, during zero-days were mostly reserved for the highest-value targets.</p> <p>This was never a genuine safety boundary, but it protected average companies in custom from application vulnerabilities. AI is removing that safety by turning additional of this scarce ability into compute. Work that formerly required a well-resourced squad and months of attempt can now be compressed into days.</p> <p>Security assumptions must capture up alongside attacker capabilities. A realistic danger example should obtain into document the economics of exploitation today, alternatively of relying on outdated assumptions&nbsp;<sup><a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Reference 6">6</a></sup>&nbsp;about who can transport out advanced attacks.</p> <p>Hacktron&rsquo;s goal is to assistance safe the net by finding and eliminating vulnerabilities in extensively trusted application before malicious actors do. We are continuing this investigation throughout frontier labs and another internet-critical systems. If you are liable for securing one of them, we would akin to activity alongside you.</p> <h2 id="versions-affected-and-patches">Versions affected and patches</h2> <p><a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow noreferrer noopener" target="_blank">HEIF Heist</a> is not tied to a sole version. It targets an complete ecosystem of vulnerabilities throughout multiple publish families (e.g. 1.19.x, 1.20.x, 1.22.x, 1.23.x). Any deployment lacking the latest upstream safety patches is possibly vulnerable.</p> <ul> <li><strong>Update upstream.</strong>&nbsp;Install the latest security-patched&nbsp;<strong>libheif</strong>&nbsp;and&nbsp;<strong>libde265</strong>&nbsp;packages through your distribution&rsquo;s safety conduit or an upstream release. As of September 14, 2026, the latest upstream&nbsp;<strong>libheif</strong>&nbsp;security publish is v1.23.4; v1.23.2 has been superseded by additional safety fixes. Distribution packages may transport backported fixes under an older upstream type number, so inspect the bundle safety advisory as well.<sup><a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Reference 7">7</a></sup>&nbsp;<sup><a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Reference 4">4</a></sup></li> <li><strong>Defense in depth.</strong>&nbsp;Given the complexity of the ISO basis media document format and the gait of decoder updates, forthcoming memory-safety flaws are likely. Production architectures should disable untrusted HEIF/AVIF decoding anywhere it is not needed, or isolate image-processing pipelines inner hardened, ephemeral sandboxes. ImageMagick&rsquo;s safety guideline supports restricting accepted formats and asset usage.&nbsp;<sup><a href="https://en.mycoding.id/category/technology" target="_blank" aria-label="Reference 8">8</a></sup></li> </ul> <h2 id="acknowledgements">Acknowledgements</h2> <p>We appreciate Sudanshu Rajhbhar for specialized assistance, and Zayne Zhang, Fabian Faessler, Robert Chen, and Jessica Ruan for proofreading, reviewing drafts, and providing feedback that improved this post.</p> <h2 id="references">References</h2> <p>Work alongside the squad rearward this research.</p><p>Hacktron brings together top CTF researchers, informed red teamers, and offensive safety researchers. We use AI to accelerate safety research, finding and eliminating vulnerabilities in extensively trusted application before malicious actors do. We&rsquo;re continuing our investigation throughout frontier labs and other internet-critical systems. If you&rsquo;re liable for securing one of them, we&rsquo;d akin to activity alongside you.</p><div><p>Hacktron finds and fixes genuine safety vulnerabilities before they container to production.</p></div><a href="https://en.mycoding.id/category/technology" target="_blank" target="_self" aria-disabled="false"><svg width="1em" height="1em" viewbox="0 0 24 24" data-icon="arrow-left"><symbol id="arrow-left"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m12 19l-7-7l7-7m7 7H5"></path></symbol></svg><p><span>Previous Post</span><span>Here&rsquo;s How an OpenAI Model Went Rogue and Hacked Hugging Face</span></p></a><a href="https://en.mycoding.id/category/technology" target="_blank" target="_self" aria-disabled="true"><p><span>Next Post</span><span>You're at the newest post!</span></p><svg width="1em" height="1em" viewbox="0 0 24 24" data-icon="arrow-right"><symbol id="arrow-right"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 12h14m-7-7l7 7l-7 7"></path></symbol></svg></a></div></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/hacking-openai-68658</guid> <pubDate>Fri, 18 Sep 2026 03:47:24 +0700</pubDate> <author><![CDATA[support@mycoding.id (Riki Setiawan)]]></author> </item> <item> <title><![CDATA[The open origin type of Claude Project that gives you the environment ownershp]]></title> <description><![CDATA[The open origin type of Claude Project that gives you the environment ownershp. Comments]]></description> <media:thumbnail url="https://opengraph.githubassets.com/b80ebecd66920172abe567f85828539350429998d7129e54c89398ab743f0d2c/zqiren/Orbital"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/the-open-origin-type-of-claude-project-that-gives-you-the-environment-ownershp-68659</link> <content:encoded><![CDATA[<div data-hpc="true" containertiming="hpc"><p dir="auto"> <strong>English</strong> &middot; <a href="https://en.mycoding.id/category/technology" target="_blank">&#31616;&#20307;&#20013;&#25991;</a> </p> <p dir="auto"><strong>Claude Code hit its use bounds mid-task. Codex picked it up in the identical conversation. Nothing was re-explained.</strong></p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/handoff-codex-continue.gif" alt="In the identical conversation Claude Code hits its use limit; the person tells @codex to continue and Codex picks up from the identical project context" width="100%" data-animated-image=""></a></p> <p dir="auto"> <a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/orbital-logo.png" alt="Orbital" width="80"></a> </p> <p dir="auto"><strong>The project agent</strong></p> <div dir="auto"><h3 tabindex="-1" dir="auto">Every delegate owns a session. Orbital owns the project.</h3><a href="https://en.mycoding.id/category/technology" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto"><strong>Is your environment really yours?</strong></p> <p dir="auto">The scheme it took three rounds alongside Claude Code to settle, the document Codex remaining half-edited, the trade-off you decided in Cursor: all one is locked inner its own session.</p> <p dir="auto">Close the session, hit the use limit, toggle tools, and that environment is out of reach. Next task, you explain it all again.</p> <p dir="auto"><strong>You are the agent's intern: copying and pasting, ferrying context, remembering anywhere all the odd records live, during the delegate gets the thinking.</strong></p> <p dir="auto">Orbital takes the environment out of the meeting and puts it rear in your local folder. Any delegate can choice it up at any time, alongside all of it intact. Claude Code, Codex and Cursor all work.</p> <p dir="auto"><strong>The environment is yours. The intellect is interchangeable.</strong></p> <p dir="auto"><strong>Your context, usable by any agent</strong></p> <p dir="auto"> <a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://camo.githubusercontent.com/46c9bf0e77181f30993fdb4074c3dca2dce1d1b614c3e2cf65db8b629e0e3b98/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f57696e646f77732d446f776e6c6f61645f2e6578652d3030373844363f7374796c653d666f722d7468652d6261646765266c6f676f3d646174613a696d6167652f7376672b786d6c3b6261736536342c50484e325a79423462577875637a30696148523063446f764c336433647935334d793576636d63764d6a41774d43397a646d636949485a705a58644362336739496a41674d4341794e4341794e43492b50484268644767675a6d6c736244306949325a6d5a6949675a44306954544d674e433432624463754e6930784c6a4131646a63754d7a56494d3370744f4334314c5445754d6b77794d5341794c6a46324f433434614330354c6a563654544d674d5449754d5767334c6a5a324e79347a4e55777a494445344c6a5236625467754e53417753444978646a67754f4777744f5334314c5445754d336f694c7a34384c334e325a7a343d" alt="Download the Windows installer (.exe)" data-canonical-src="https://img.shields.io/badge/Windows-Download_.exe-0078D6?style=for-the-badge&amp;logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTMgNC42bDcuNi0xLjA1djcuMzVIM3ptOC41LTEuMkwyMSAyLjF2OC44aC05LjV6TTMgMTIuMWg3LjZ2Ny4zNUwzIDE4LjR6bTguNSAwSDIxdjguOGwtOS41LTEuM3oiLz48L3N2Zz4="></a> &nbsp;&nbsp; <a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://camo.githubusercontent.com/54ad4a9b8ca050eb016cf79061d0893a474006fe3bb5b58d13e1898732257b7b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d61634f532d446f776e6c6f61645f2e646d672d3030303030303f7374796c653d666f722d7468652d6261646765266c6f676f3d6170706c65266c6f676f436f6c6f723d7768697465" alt="Download the macOS installer (.dmg)" data-canonical-src="https://img.shields.io/badge/macOS-Download_.dmg-000000?style=for-the-badge&amp;logo=apple&amp;logoColor=white"></a> </p> <p dir="auto">Set up in under 5 minutes. No Python or Node required. Bring your own API key.</p> <p dir="auto"><em>One-minute demo: one task, two agents, nothing re-explained</em></p> <svg aria-hidden="true" data-component="Octicon" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true"> <path d="M16 3.75v8.5a.75.75 0 0 1-1.136.643L11 10.575v.675A1.75 1.75 0 0 1 9.25 13h-7.5A1.75 1.75 0 0 1 0 11.25v-6.5C0 3.784.784 3 1.75 3h7.5c.966 0 1.75.784 1.75 1.75v.675l3.864-2.318A.75.75 0 0 1 16 3.75Zm-6.5 1a.25.25 0 0 0-.25-.25h-7.5a.25.25 0 0 0-.25.25v6.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-6.5ZM11 8.825l3.5 2.1v-5.85l-3.5 2.1Z"></path> </svg> <span>demo-en-web.mp4</span> <span></span> <video src="https://private-user-images.githubusercontent.com/74822626/652670105-5f1373bc-2c3e-440b-af52-77ecbd80c27f.mp4?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODk3MDQzMzAsIm5iZiI6MTc4OTcwNDAzMCwicGF0aCI6Ii83NDgyMjYyNi82NTI2NzAxMDUtNWYxMzczYmMtMmMzZS00NDBiLWFmNTItNzdlY2JkODBjMjdmLm1wND9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA5MTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwOTE4VDA0MDAzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM2MDc3NGViZWMxOGJkODZlN2JiNzRmZjVlMzU0ODgyZGQxMDY4ZDFkYzk4MTc4YWZiZjEwZTYwYzA4YmM3ZWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT12aWRlbyUyRm1wNCJ9.YAp742sjxaWu0kR1f2Ylm4RKd8rsflTuSKHSli-ENmI" data-canonical-src="https://private-user-images.githubusercontent.com/74822626/652670105-5f1373bc-2c3e-440b-af52-77ecbd80c27f.mp4?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODk3MDQzMzAsIm5iZiI6MTc4OTcwNDAzMCwicGF0aCI6Ii83NDgyMjYyNi82NTI2NzAxMDUtNWYxMzczYmMtMmMzZS00NDBiLWFmNTItNzdlY2JkODBjMjdmLm1wND9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA5MTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwOTE4VDA0MDAzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM2MDc3NGViZWMxOGJkODZlN2JiNzRmZjVlMzU0ODgyZGQxMDY4ZDFkYzk4MTc4YWZiZjEwZTYwYzA4YmM3ZWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT12aWRlbyUyRm1wNCJ9.YAp742sjxaWu0kR1f2Ylm4RKd8rsflTuSKHSli-ENmI" controls="controls" muted="muted"> </video> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://camo.githubusercontent.com/c8e817d0fab13b6b935489e0692f5301982fdcc96451d589d7444f2055cf9a7c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d47504c2d2d332e302d626c75652e737667" alt=" GPL-3.0" data-canonical-src="https://img.shields.io/badge/License-GPL--3.0-blue.svg"></a> <a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://camo.githubusercontent.com/f85f3bc5a4a2bb4904025f53c87eb94ec6e0d4010569de6879d2ddecef177fdb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506c6174666f726d2d57696e646f77732d3030373844363f6c6f676f3d77696e646f7773" alt=" Windows" data-canonical-src="https://img.shields.io/badge/Platform-Windows-0078D6?logo=windows"></a> <a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://camo.githubusercontent.com/39d6b997fd6c59aefe1fcb3159e6d24738e4ae77cc95bc21fdc20d641330cbe2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506c6174666f726d2d6d61634f532d3030303030303f6c6f676f3d6170706c65" alt=" macOS" data-canonical-src="https://img.shields.io/badge/Platform-macOS-000000?logo=apple"></a></p> <hr> <p dir="auto">You're three rounds into a scheme conversation alongside Claude Code whenever it stops alongside "You're out of use credits." Your Codex quota is sitting correct there, but Codex knows nothing concerning this project: the goal, the two decisions you fair made, the half-edited files. You'd have to explain all of it again.</p> <p dir="auto">People already use multiple capable agents at activity &mdash; for the newest model, the leftover quota, or since a particular tool is improved at the job.</p> <p dir="auto">But all delegate plant inner its own session, alongside its own environment and history. When you move between sessions or tools, you rotate into liable for carrying the project between them: restating goals, explaining former decisions, locating artifacts, and checking what was remaining unfinished. You end up operating as their intern, ferrying environment between them to keep your own project moving.</p> <p dir="auto">Orbital changes the component of activity from the meeting to the project.</p> <p dir="auto">A project delegate stays liable for the project throughout tasks, sessions, and employee agents. It maintains the shared context, decides what needs to happen next, delegates whenever useful, and records all outcome rear into the project.</p> <p dir="auto">Individual agents complete tasks. Orbital keeps the project moving.</p> <hr> <div dir="auto"><h2 tabindex="-1" dir="auto">What it method to own the project</h2><a href="https://en.mycoding.id/category/technology" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto">Orbital maintains five things that normally disappear or part between delegate sessions &mdash; all of them as plain records in your project folder:</p> <ul dir="auto"> <li><strong>State</strong> &mdash; what is true concerning the project now (PROJECT_STATE.md)</li> <li><strong>Decisions</strong> &mdash; what was decided and why (DECISIONS.md)</li> <li><strong>Lessons</strong> &mdash; what the project has learned (LESSONS.md)</li> <li><strong>Work</strong> &mdash; what is running, completed, or blocked (queue.json). Every queued project ends <strong>Completed</strong> or <strong>Blocked</strong> &mdash; an delegate that stops without a verdict gets re-prompted, afterward force-blocked alongside a reason. Nothing drifts distant silently.</li> <li><strong>Artifacts</strong> &mdash; what the agents researched, wrote, or built (the workspace itself, affirmative orbital/output/)</li> </ul> <p dir="auto">These remain in the local project and rotate into environment for forthcoming work. On a chilly start, Orbital assembles them into its own scheme immediate before it acts.</p> <p dir="auto">When Orbital delegates, the employee is pointed at those identical records and told they are authoritative &mdash; that briefing is rendered caller on all dispatch, not item you paste in. Each employee additionally keeps its own recollection document inner the project, so it accumulates its own cognition throughout dispatches. When the project finishes, Orbital says the outcome and records what matters rear into the project.</p> <p dir="auto">The employee can change. The project continues.</p> <hr> <ol dir="auto"> <li> <p dir="auto"><strong>Launch Orbital</strong> &mdash; the setup wizard guides you through two steps:</p> <p dir="auto"><strong>Step 1 &mdash; LLM Provider:</strong> In mainland China, tap <strong>Sign in alongside TokenDance</strong>, authorize, and commencement on liberated tokens. Otherwise choice a provider from the preset cards, prosecute the key-console nexus to catch an API key, and paste it in. Supports DeepSeek, Anthropic, OpenAI, Moonshot, and a dozen another providers.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/apikey-setup.png" alt=" choice an LLM provider from preset cards and act your API key" width="100%"></a></p> <p dir="auto"><strong>Step 2 &mdash; Connect Your Accounts:</strong> Link API connectors (Google Calendar, Drive) and sign in to sites your agents volition need (Google, GitHub, etc.) so they can browse without getting blocked by CAPTCHAs. Everything current is optional and can be done afterward in Settings.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/connect-accounts.png" alt=" nexus accounts — API connectors and delegate browser sign-in" width="100%"></a></p> </li> <li> <p dir="auto"><strong>Create a project</strong> &mdash; provision it a name, choice a workspace directory, set an autonomy level</p> </li> </ol> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/new-project-setting.png" alt="New project innovation dialog alongside workspace directory and autonomy flat settings" width="100%"></a></p> <ol start="3" dir="auto"> <li><strong>Chat</strong> &mdash; category a project in the conversation bar and the project delegate handles it</li> <li><strong>Walk away</strong> &mdash; queue the next tasks; all completed one becomes environment the next builds on</li> </ol> <hr> <div dir="auto"><h2 tabindex="-1" dir="auto">See the project remain under one manager</h2><a href="https://en.mycoding.id/category/technology" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/memory-context.png" alt="The orbital/ recollection records — CONTEXT.md, DECISIONS.md, LESSONS.md, PROJECT_STATE.md, SESSION_LOG.md — maintained by the delegate and peruse rear all session" width="100%"></a></p> <p dir="auto"><em>The project delegate keeps the project's state, decisions, and lessons current throughout sessions.</em></p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/delegation-claudecode.png" alt="Your delegate dispatches a project to the Claude Code sub-agent, which says the project context, completes the work, and reports the deliverable rear into the workspace" width="100%"></a></p> <p dir="auto"><em>It delegates to Claude Code, Codex, or Gemini CLI against the identical project context, afterward records the result.</em></p> <hr> <p dir="auto">Memory, scheduling, and sub-agents are array stakes now &mdash; all tool below has them. These are the three questions anywhere the answers motionless differ.</p> <table readabilitydatatable="1"> <thead> <tr> <th>July 2026</th> <th>Orbital</th> <th><a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow">Claude Code</a></th> <th><a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow">Codex</a></th> <th><a href="https://en.mycoding.id/category/technology" target="_blank">Hermes</a></th> <th><a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow">OpenClaw</a></th> </tr> </thead> <tbody> <tr> <td>Can a distinct delegate choice up the next task?</td> <td>&#9989; Claude Code, Codex, Gemini CLI, Cursor, any CLI</td> <td>&#10060; Claude workers</td> <td>&#10060; Codex workers</td> <td>&#10060; Hermes workers</td> <td>Partial (external harnesses via ACP)</td> </tr> <tr> <td>What stops a queued project from drifting?</td> <td>&#9989; Enforced Completed/Blocked closure</td> <td>&#10060;</td> <td>&#10060;</td> <td>&#10060;</td> <td>&#10060;</td> </tr> <tr> <td>Who owns the budget, approvals, and audit trail?</td> <td>&#9989; The project</td> <td>Partial (permissions + run history)</td> <td>Partial (approvals + endeavor audit)</td> <td>Partial (command approvals)</td> <td>Partial (approvals + logs)</td> </tr> </tbody> </table> <p dir="auto"><strong>The abbreviated version:</strong> the difference isn't any one capability &mdash; it's that the project, not the session, is the component that owns state, workers, and governance.</p> <hr> <strong>Orbital Is / Is Not</strong> <table readabilitydatatable="1"> <thead> <tr> <th>Orbital <strong>IS</strong></th> <th>Orbital <strong>IS NOT</strong></th> </tr> </thead> <tbody> <tr> <td>A project workspace anywhere you and your agents portion the identical files, history, and context</td> <td>A haze assistance &mdash; everything runs on your machine</td> </tr> <tr> <td>A sub-agent coordinator: Claude Code via SDK, Codex via app-server, and Gemini CLI, Cursor, or another workers via PTY/<a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow">ACP</a></td> <td>An OpenClaw fork &mdash; tradition delegate loop, built from scratch</td> </tr> <tr> <td>Remote supervision: endorse actions, browse workspace files, upload from phone</td> <td>A conversation wrap &mdash; agents run continuously via cron and document watchers</td> </tr> <tr> <td>Budget controls, autonomy presets, credential administration (OS keychain)</td> <td>Fully autonomous God Mode (yet) &mdash; scheduler-driven today, complete autonomy on the roadmap</td> </tr> </tbody> </table> <div dir="auto"><h3 tabindex="-1" dir="auto">How the project stays under one manager</h3><a href="https://en.mycoding.id/category/technology" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <strong>Project &amp; Workspace Model</strong> <p dir="auto">Each project maps to a workspace directory and maintains its own sessions, queue, triggers, and configuration.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/files.png" alt="The workspace document tree alongside the agent&#039;s accumulating output and the orbital/ recollection files" width="100%"></a></p> <p dir="auto"><em>Browse, preview, and upload records in all project's workspace &mdash; and observe the agent's output accumulate</em></p> <div data-snippet-clipboard-copy-content="{workspace}/ +-- AGENTS.md # Onboarding signpost for external agents (seeded at creation, user-owned) +-- orbital/ # Operational metadata +-- sessions/ | +-- {session_id}.jsonl # Append-only meeting log +-- instructions/ | +-- project_goals.md | +-- user_directives.md +-- skills/ # Project skills +-- sub_agents/ # Sub-agent transcripts + per-worker MEMORY.md +-- tool-results/ # Tool output artifacts +-- output/ # Agent activity artifacts | +-- screenshots/ # Browser screenshots | +-- pdfs/ # Saved PDFs | +-- shell-output/ # Shell command output +-- queue.json # Task queue (queued / operating / completed / blocked) +-- PROJECT_STATE.md # Current-state scratchpad (overwrite) +-- DECISIONS.md # Durable decisions + reasoning +-- LESSONS.md # Durable heuristics / playbooks +-- INDEX.md # Navigation map: document tree + one row per file +-- DECISIONS_ARCHIVE.md # Demoted decisions (read-on-demand) +-- LESSONS_ARCHIVE.md # Demoted lessons (read-on-demand) ~/orbital/ # Home earth (daemon infrastructure) +-- daemon.pid # Singleton enforcement +-- device.json # Device identity +-- browser-profile/ # Shared browser profile +-- credential-meta.json # Credential metadata"><pre>{workspace}/ +-- AGENTS.md # Onboarding signpost for external agents (seeded at creation, user-owned) +-- orbital/ # Operational metadata +-- sessions/ | +-- {session_id}.jsonl # Append-only meeting log +-- instructions/ | +-- project_goals.md | +-- user_directives.md +-- skills/ # Project skills +-- sub_agents/ # Sub-agent transcripts + per-worker MEMORY.md +-- tool-results/ # Tool output artifacts +-- output/ # Agent activity artifacts | +-- screenshots/ # Browser screenshots | +-- pdfs/ # Saved PDFs | +-- shell-output/ # Shell command output +-- queue.json # Task queue (queued / operating / completed / blocked) +-- PROJECT_STATE.md # Current-state scratchpad (overwrite) +-- DECISIONS.md # Durable decisions + reasoning +-- LESSONS.md # Durable heuristics / playbooks +-- INDEX.md # Navigation map: document tree + one row per file +-- DECISIONS_ARCHIVE.md # Demoted decisions (read-on-demand) +-- LESSONS_ARCHIVE.md # Demoted lessons (read-on-demand) ~/orbital/ # Home earth (daemon infrastructure) +-- daemon.pid # Singleton enforcement +-- device.json # Device identity +-- browser-profile/ # Shared browser profile +-- credential-meta.json # Credential metadata </pre></div> <p dir="auto"><strong>Session format</strong>: One JSON row per communication (role, source, content, timestamp, tool_calls). Append-only alongside document locks. Never modified apart from during compaction.</p> <strong>Context Management &amp; Compaction</strong> <p dir="auto">This is how the project delegate keeps environment accessible throughout sessions. The agent-maintained Layer-1 records are injected all rotate (bounded per file) and consolidated at meeting boundaries:</p> <table readabilitydatatable="1"> <thead> <tr> <th>File</th> <th>Purpose</th> <th>Bound</th> </tr> </thead> <tbody> <tr> <td>PROJECT_STATE.md</td> <td>Current-state scratchpad &mdash; what's true now (overwrite, not a changelog)</td> <td>token cap &rarr; reduce oldest</td> </tr> <tr> <td>DECISIONS.md</td> <td>Durable decisions + reasoning (merge-and-supersede, never contradict)</td> <td>token cap &rarr; demote oldest-cold to archive</td> </tr> <tr> <td>LESSONS.md</td> <td>Durable heuristics / specialized playbooks (kept intact, never word-trimmed)</td> <td>token cap &rarr; demote oldest-cold to archive</td> </tr> <tr> <td>INDEX.md</td> <td>Navigation map only: document tree + one declaration per file</td> <td>one-sentence format + token cap</td> </tr> <tr> <td>DECISIONS_ARCHIVE.md, LESSONS_ARCHIVE.md</td> <td>Demoted durable entries, read-on-demand (pointed to by INDEX)</td> <td>unbounded</td> </tr> </tbody> </table> <p dir="auto">Each admission carries system-managed metadata (id / created / touched / tag) so dedup runs on recency. Per-turn injection limits all document to a prosperity derived from the energetic model's environment window. Session-end runs a deterministic size backstop (demote/trim, never an LLM call) affirmative a best-effort LLM dedup/merge that fixes contradictions. (SESSION_LOG.md was retired; the Layer-1 records are injected all turn, so a distinct meeting former is redundant.)</p> <p dir="auto"><strong>Cold resume</strong>: On meeting start, these records are assembled into the scheme immediate so the delegate can reorient before it acts.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/memory-decisions.png" alt="DECISIONS.md — the agent&#039;s decision log alongside rationale, maintained throughout sessions" width="100%"></a></p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/memory-lessons.png" alt="LESSONS.md — patterns and pitfalls the delegate learned, peruse rear before all task" width="100%"></a></p> <p dir="auto"><em>DECISIONS.md and LESSONS.md &mdash; written by the delegate as it works, and carried into all forthcoming session</em></p> <p dir="auto"><strong>Compaction</strong> (when environment use exceeds 80%): recollection flush, LLM-driven summarization of older messages, latest messages kept intact, post-compaction reorientation alongside project goals and current state.</p> <p dir="auto"><strong>Prefix caching</strong> (v0.4.2): the scheme immediate is divided into static, semi-stable, and truly-dynamic sections so up to ~95% of input tokens hit the provider's prefix cache on follow-up turns. See the <a href="https://en.mycoding.id/category/technology" target="_blank">v0.4.2 publish notes</a> for benchmark numbers.</p> <strong>Sub-Agent Delegation</strong> <p dir="auto">Orbital is not tied to a sole AI tool. The project delegate plans and delegates, during specialized workers execute &mdash; all study the identical accumulated project context. Any CLI-based delegate can be registered via a manifest file; Claude Code, Codex, Cursor, Gemini CLI, Aider, Cline, Goose, Copilot CLI, and Continue container alongside one.</p> <p dir="auto">Each dispatch renders a caller bequest immediate that points the employee at PROJECT_STATE.md, DECISIONS.md, LESSONS.md, INDEX.md, the project's instructions, and its skills &mdash; declaring them authoritative and off-limits for writes. Workers peruse them on petition fairly than receiving a pasted copy, so the concise never goes stale.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/subagent-memories.png" alt="Sub-Agent Memories panel — all sub-agent keeps its own long-term memory, curated per project, that it says on all dispatch" width="100%"></a></p> <p dir="auto"><em>Each sub-agent keeps its own long-term recollection throughout dispatches &mdash; curate what it remembers...</em></p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/delegation-claudecode.png" alt="The administration delegate dispatches a GitHub scan to the Claude Code sub-agent, which runs 21 tool calls and reports the deliverable rear into the workspace" width="100%"></a></p> <p dir="auto"><em>...then delegates a project to @claudecode, reviews the result, and writes it rear into the project</em></p> <p dir="auto"><strong>Transport types:</strong></p> <table readabilitydatatable="1"> <thead> <tr> <th>Transport</th> <th>Use Case</th> </tr> </thead> <tbody> <tr> <td><strong>Codex app-server</strong></td> <td>Native Codex JSON-RPC complete stdio, alongside organized lifecycle and approvals</td> </tr> <tr> <td><strong>Pipe</strong></td> <td>stdin/stdout subprocess, JSON streaming</td> </tr> <tr> <td><strong>PTY</strong></td> <td>Pseudo-terminal for interactive agents &mdash; Gemini CLI, Aider, Cline, Goose, Copilot CLI, Continue</td> </tr> <tr> <td><strong>SDK</strong></td> <td>Direct Claude SDK integration</td> </tr> <tr> <td><strong>ACP</strong></td> <td><a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow">Agent Communication Protocol</a> &mdash; Cursor, via its authoritative ACP server</td> </tr> </tbody> </table> <blockquote> <p dir="auto"><strong>Note:</strong> Codex uses its native app-server path, not PTY or ACP. Orbital launches codex app-server and speaks JSON-RPC directly. ACP is accessible for any ACP-compliant worker; PTY is the default for another interactive CLI agents.</p> </blockquote> <strong>Task Queue</strong> <p dir="auto">Each project has a queue, stored alongside the project at orbital/queue.json. Add tasks &mdash; pin urgent ones to the forefront &mdash; and your delegate plant through them one at a time, in order, without you watching.</p> <p dir="auto">The delegate must province an outcome on all item; it can't silently drift to the next one:</p> <table readabilitydatatable="1"> <thead> <tr> <th>Outcome</th> <th>What happens</th> </tr> </thead> <tbody> <tr> <td><strong>Completed</strong></td> <td>The delegate reports a abbreviated summary; the item moves to <strong>Completed</strong> and the queue advances.</td> </tr> <tr> <td><strong>Blocked</strong></td> <td>The delegate states the logic (missing credentials, ambiguous requirements, &hellip;); the item moves to <strong>Needs Attention</strong> and the queue moves on. You unblock it whenever ready.</td> </tr> </tbody> </table> <p dir="auto"><strong>Pause to steer.</strong> Pause the queue mid-item to conversation openly &mdash; your clarifications district in the identical session, so the delegate sees them whenever you resume.</p> <p dir="auto"><strong>Continuity by design.</strong> Each completed item's artifacts are already in the project whenever the next item starts, so the delegate can use them whenever supervising afterward tasks. The project's triggers (schedules and document watchers) are listed in the queue's <strong>Automations</strong> division alongside your tasks.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/queue-paused.png" alt=" Now Running empty, one blocked item under Needs Attention alongside the agent&#039;s reason, two queued tasks, and completed items alongside their summaries" width="100%"></a></p> <p dir="auto"><em>Queue tasks and stroll distant &mdash; all completed one becomes environment the next builds on</em></p> <strong>Workbench &mdash; what lone you can decide</strong> (beta) <p dir="auto">Some things an delegate genuinely cannot complete for you: a expend decision, a communication that has to arrive from your account, a judgement call between three options it already researched. As the delegate works, it flags those in the project's province document &mdash; and the <strong>Workbench</strong> collects them from all project into one list.</p> <p dir="auto">Each cardstock carries its provenance, so you are never asked to act on a naked instruction. Expand <strong>Why I accept this</strong> and you see the evidence the delegate recorded and the meeting it came from. Cards kind overdue-first, afterward oldest, and all one exits in a sole tap &mdash; <strong>Done</strong> formerly you've handled it, <strong>Delete</strong> whenever it stopped mattering. Tapping the cardstock itself opens that project's conversation alongside the decision pre-filled, so answering is one communication alternatively of a hunt for context.</p> <p dir="auto">The <strong>Today</strong> band alongside the top lists the day's automation slots, including the ones that already fired &mdash; so a sole glance covers the two what needs you and what ran without you.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/workbench.png" alt=" decisions and actions flagged throughout all project, all alongside its origin project, how lengthy it has been waiting, and Done / Delete exits" width="100%"></a></p> <p dir="auto"><em>Every project's open decisions in one catalog &mdash; alongside the evidence rearward all one a click away</em></p> <strong>Calendar</strong> (beta) <p dir="auto">Automations you set up months ago shouldn't blaze invisibly. Every enabled agenda trigger projects its upcoming runs onto a week grid, so the beat of the project is item you can see fairly than remember. Dated commitments the delegate recorded in the project province district on the identical grid and autumn off formerly they're resolved, and connecting Google Calendar brings those events into the identical view.</p> <p dir="auto">The project delegate can peruse this calendar too, so "what's already on the schedule" is environment it plans about alternatively of item you have to restate.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/calendar.png" alt="Calendar week perspective showing a project&#039;s recurring automations — a regular repo scan throughout the week affirmative a Monday growth ritual" width="100%"></a></p> <p dir="auto"><em>The week ahead, as your automations volition really run it</em></p> <strong>Quick Tasks</strong> <p dir="auto">The sidebar includes a <strong>Quick Task</strong> division for fire-and-forget interactions. Scratch projects skip the complete project innovation stream &mdash; helpful for one-off tasks that don't need a dedicated workspace.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/quick-task.png" alt="A fire-and-forget Quick Task (browsing Hacker News) returning organized results" width="100%"></a></p> <strong>Self-Improving Skills</strong> <p dir="auto">Agents create reusable skills from multi-step workflows and consult matching skills before starting akin tasks. Skills are stored as SKILL.md records in the workspace and managed through the Settings UI &mdash; another way the project gets additional capable the longer it runs.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/skills.png" alt=" reusable operational patterns the delegate follows" width="100%"></a></p> <p dir="auto"><em>Skills akin Efficient Execution, Learning Capture, and Task Planning form how your delegate plant &mdash; and the delegate adds its own</em></p> <strong>Built-in Tool Suite</strong> <p dir="auto">The project delegate has admission to these tool categories:</p> <table readabilitydatatable="1"> <thead> <tr> <th>Category</th> <th>Tools</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><strong>Shell</strong></td> <td>shell</td> <td>Command implementation alongside network-aware detection</td> </tr> <tr> <td><strong>File</strong></td> <td>read, write, edit, glob, grep</td> <td>File operations and hunt inside workspace</td> </tr> <tr> <td><strong>Browser</strong></td> <td>26 actions via Patchright</td> <td>Navigate, click, type, extract, screenshot, multi-tab, PDF, web search, URL fetch</td> </tr> <tr> <td><strong>Triggers</strong></td> <td>create_trigger, list_triggers, update_trigger, delete_trigger</td> <td>Schedule and file-watch triggers via natural language</td> </tr> <tr> <td><strong>Credentials</strong></td> <td>request_credential</td> <td>Agent-initiated credential petition &mdash; opens safe modal</td> </tr> <tr> <td><strong>Delegation</strong></td> <td>agent_message</td> <td>Route tasks to sub-agents</td> </tr> <tr> <td><strong>Access</strong></td> <td>request_access</td> <td>Request sandbox portal to a way exterior the workspace</td> </tr> </tbody> </table> <strong>Browser Automation</strong> <p dir="auto">Built on <strong>Patchright</strong> (a Playwright fork alongside anti-bot-detection):</p> <ul dir="auto"> <li><strong>Stealth mode</strong>: Anti-automation finding scripts injected into all browser context</li> <li><strong>Shared profile</strong>: One browser overview throughout all projects &mdash; log into services once, all agents portion cookies</li> <li><strong>Accessibility-first</strong>: snapshot returns an accessibility tree alongside [ref=eN] component references for dependable interaction</li> <li><strong>26 browser actions</strong>: navigate, click, type, fill, press, hover, select, drag, upload, snapshot, screenshot, extract, hunt (page), evaluate, tab management, go back/forward, reload, wait, PDF export, web search, URL fetch, batch</li> </ul> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/5A-mobile-browsing-activity.png" alt="Mobile perspective of the delegate browsing arxiv.org, scanning investigation document on a regular schedule" width="300"></a></p> <p dir="auto"><em>Your delegate browsing arxiv.org &mdash; scanning for AI reasoning document on a regular schedule</em></p> <strong>Continuous Operation &amp; Triggers</strong> <p dir="auto">Agents run continuously via triggers &mdash; no manual involvement needed. Create triggers through <strong>natural language</strong> in the chat:</p> <blockquote> <p dir="auto"><em>"Watch the uploads/ directory for new .jpg records and analyze them"</em> <em>"Run a investigation scan all dawn at 6 AM"</em></p> </blockquote> <p dir="auto">The project delegate translates this into a create_trigger tool call alongside the suitable category and parameters.</p> <p dir="auto"><strong>Trigger types:</strong></p> <table readabilitydatatable="1"> <thead> <tr> <th>Type</th> <th>Configuration</th> <th>Example</th> </tr> </thead> <tbody> <tr> <td><strong>Schedule</strong></td> <td>Cron expression + timezone</td> <td>0 6 * * * (daily at 6 AM)</td> </tr> <tr> <td><strong>File Watch</strong></td> <td>Path + glob patterns + debounce</td> <td>uploads/*.jpg, 5s debounce</td> </tr> </tbody> </table> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/file-watch-trigger.png" alt=" observing uploads/ for new images and triaging all one on arrival, alongside its watched path, patterns, final fired time, and run count" width="100%"></a></p> <p dir="auto"><em>File observe trigger: watches uploads/ for new photos and analyzes all one on arrival</em></p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/scheduled-trigger.png" alt=" a weekly growth-experiment ritual all Monday at 9 AM, alongside its complete task, cadence, final fired time, and run count" width="100%"></a></p> <p dir="auto"><em>Schedule trigger: a regular competitor observe dispatched all day at 2 PM &mdash; 19 runs so far</em></p> <p dir="auto"><strong>Real-world example &mdash; Health Tracker alongside document watch:</strong></p> <p dir="auto"> <a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/4B-mobile-meal-chat1.jpg" alt=" environment up a meal photo document watcher from the phone" width="280"></a> &nbsp; <a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/4B-mobile-meal-chat2.jpg" alt=" the delegate automatically analyzing a dropped meal photo" width="280"></a> </p> <p dir="auto"><em>Left: "Watch uploads/ for meal photos and track calories." Right: Drop a photo, get instant nutritional analysis.</em></p> <strong>LLM Provider Routing &amp; BYOK</strong> <p dir="auto"><strong>14 providers</strong> supported out of the box:</p> <p dir="auto">Anthropic, OpenAI, DeepSeek, Moonshot (Kimi), Groq, Google Gemini, xAI, Mistral, Together, OpenRouter, Zhipu, Qwen, TokenDance (&#35789;&#20803;&#36339;&#21160; &mdash; China-mainland example router), affirmative a tradition admission for any OpenAI-compatible endpoint (e.g., Ollama, Azure OpenAI, self-hosted models).</p> <ul dir="auto"> <li><strong>SDK routing</strong>: Anthropic SDK for Anthropic, OpenAI SDK for OpenAI-compatible providers</li> <li><strong>Per-model metadata</strong>: Display name, tier, environment window, max output, capabilities (vision, tool use, streaming), pricing</li> <li><strong>Fallback rotation</strong>: When the chief provider fails, the iteration rotates to fallback providers alongside error classification (transient, charge limit, abort)</li> </ul> <strong>Autonomy &amp; Approval System</strong> <p dir="auto">Three autonomy presets authority how much supervision agents receive:</p> <table readabilitydatatable="1"> <thead> <tr> <th>Preset</th> <th>Shell</th> <th>File Write</th> <th>Browser</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><strong>Hands-off</strong></td> <td>Auto</td> <td>Auto</td> <td>Auto</td> <td>Maximum autonomy. Only request_access requires approval.</td> </tr> <tr> <td><strong>Check-in</strong></td> <td>Approval</td> <td>Approval</td> <td>Write only</td> <td>Balanced. Default for external agents.</td> </tr> <tr> <td><strong>Supervised</strong></td> <td>Approval</td> <td>Approval</td> <td>All apart from read</td> <td>Maximum oversight.</td> </tr> </tbody> </table> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/settings-autonomy-budget.png" alt=" autonomy presets (Hands-off / Check-in / Supervised) and per-project prosperity controls" width="100%"></a></p> <p dir="auto"><em>Pick an autonomy flat and set prosperity limits per project</em></p> <p dir="auto"><strong>Approval flow:</strong></p> <ol dir="auto"> <li>Interceptor catches tool call according to autonomy rules</li> <li>Frontend shows an <strong>Approval Card</strong> alongside tool name, arguments, and context</li> <li>User can <strong>Approve</strong>, <strong>Deny</strong>, or <strong>Auto-approve for 10 minutes</strong></li> <li>Per-action bypass: identical tool+args auto-approved for 60 seconds</li> </ol> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/5B2-mobile-approval-card.png" alt=" approving an delegate act from the phone alongside complete context" width="300"></a></p> <p dir="auto"><em>Approve delegate actions from your phone &mdash; alongside complete environment and optional guidance</em></p> <strong>Cost Controls &amp; Budget Limits</strong> <p dir="auto">Per-project prosperity limits forestall runaway spending:</p> <table readabilitydatatable="1"> <thead> <tr> <th>Setting</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td>Budget Limit (USD)</td> <td>Maximum expend for the project</td> </tr> <tr> <td>Budget Action</td> <td>ask (pause and immediate user) or halt (halt the agent)</td> </tr> <tr> <td>Spent</td> <td>Running total alongside reset option</td> </tr> </tbody> </table> <p dir="auto">The delegate iteration tracks cumulative token use and computes disbursal using per-model pricing from the provider registry. When the prosperity threshold is reached, the configured act fires (ask pauses the session; halt halts the agent). Budget events do not currently trigger shove notifications.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/settings-budget.png" alt=" expend limit, reset period, pause-or-stop action, a live per-model disbursal breakdown, and an editable pricing table" width="100%"></a></p> <p dir="auto"><em>Set a bounds and a reset period; observe the live per-model expend and disbursal breakdown</em></p> <strong>Mobile Remote Control</strong> <p dir="auto">Control agents from your phone on the local network or via a haze relay.</p> <p dir="auto"> <a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/4A-mobile-dashboard.png" alt=" all projects at a glance" width="280"></a> &nbsp; <a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/5C-mobile-approved.png" alt="The delegate completing its activity following a mobile approval" width="280"></a> </p> <p dir="auto"><em>Left: Project dashboard on phone. Right: Your delegate completes its investigation following you endorse from anywhere.</em></p> <p dir="auto"><strong>Local network</strong>: Scan the QR code in Settings to open Orbital on your phone via LAN.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/qr-code-lan-pairng.png" alt="QR code in Settings for mobile admission on the local network" width="100%"></a></p> <p dir="auto"><em>Scan to open Orbital on your phone &mdash; identical Wi-Fi network required</em></p> <p dir="auto"><strong>Cloud relay</strong> (optional): Deploy a relay server for admission exterior your residence network. Push notifications for endorsement requests and delegate position changes.</p> <strong>Credential Management</strong> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/credential-store.png" alt=" website passwords stored in the scheme keychain, alongside browser sign-in and connectors" width="100%"></a></p> <p dir="auto"><em>Website credentials stored in your scheme keychain. Your delegate continually asks approval before using them.</em></p> <ul dir="auto"> <li><strong>API keys</strong>: Stored in OS keychain (keyring), masked in API responses, per-project BYOK override</li> <li><strong>Website credentials</strong>: Metadata in credential-meta.json, values in OS keychain. The request_credential tool lets agents petition credentials mid-session via a safe modal &mdash; credentials never appear in conversation history.</li> </ul> <strong>Loop Safety Guards</strong> <p dir="auto">The delegate iteration includes multiple safety mechanisms to forestall runaway execution:</p> <table readabilitydatatable="1"> <thead> <tr> <th>Guard</th> <th>Threshold</th> <th>Behavior</th> </tr> </thead> <tbody> <tr> <td><strong>Token budget</strong></td> <td>100M tokens (configurable)</td> <td>Hard halt on cumulative usage</td> </tr> <tr> <td><strong>Repetition detection</strong></td> <td>5 identical act hashes</td> <td>Forces distinct approach</td> </tr> <tr> <td><strong>Ping-pong detection</strong></td> <td>3 identical successive pairs</td> <td>Breaks alternating cycles</td> </tr> <tr> <td><strong>Circuit breaker</strong></td> <td>2 successive identical errors</td> <td>Blocks tool until new person message</td> </tr> <tr> <td><strong>Context overflow</strong></td> <td>3 successive overflows</td> <td>Hard halt following advancing reduction</td> </tr> </tbody> </table> <strong>Desktop App &amp; System Tray</strong> <p dir="auto">Orbital ships as a desktop use bundled alongside PyInstaller:</p> <ul dir="auto"> <li><strong>System tray</strong>: Agent action status, quick admission menu, operating harbor in tooltip</li> <li><strong>Native window</strong>: Embeds the React frontend via pywebview &mdash; no browser needed</li> <li><strong>Daemon lifecycle</strong>: Desktop app spawns the daemon on launch, manages harbor allocation, cleans up on exit</li> <li><strong>Sleep prevention</strong>: Blocks scheme sleep during agents are energetic (Windows SetThreadExecutionState), re-allows whenever idle</li> </ul> <hr> <p dir="auto">Orbital is one persistent delegate border to a <strong>project</strong> &mdash; not a conversation session. It acts as a local authority aircraft for the project's workspace, instructions, state, queue, budget, and endorsement rules. It plans, delegates, supervises, and records outcomes; employee agents execute against the identical project context. You supervise from anywhere.</p> <div data-json='&quot;flowchart TB\n UI[\&quot;&lt;b&gt;Frontend (React SPA)&lt;/b&gt;&lt;br/&gt;Chat UI · Approval Cards · Settings · Files\&quot;]\n\n subgraph daemon[\&quot;Daemon (FastAPI + uvicorn)\&quot;]\n direction TB\n AM[\&quot;AgentManager&lt;br/&gt;&lt;i&gt;lifecycle&lt;/i&gt;\&quot;]\n SAM[\&quot;SubAgentManager&lt;br/&gt;&lt;i&gt;delegation&lt;/i&gt;\&quot;]\n TM[\&quot;TriggerManager&lt;br/&gt;&lt;i&gt;cron · document watch&lt;/i&gt;\&quot;]\n Loop[\&quot;Agent Loop&lt;br/&gt;&lt;i&gt;streaming · safety guards&lt;/i&gt;\&quot;]\n TR[\&quot;Worker Transports&lt;br/&gt;Codex app-server · SDK · PTY · ACP · Pipe\&quot;]\n LLM[\&quot;LLM Provider&lt;br/&gt;&lt;i&gt;OpenAI + Anthropic SDK&lt;/i&gt;\&quot;]\n Tools[\&quot;Tool Registry&lt;br/&gt;&lt;i&gt;shell · document · browser · triggers&lt;/i&gt;\&quot;]\n Auto[\&quot;Autonomy Interceptor&lt;br/&gt;&lt;i&gt;approve · refuse · bypass&lt;/i&gt;\&quot;]\n\n AM --&gt; Loop\n SAM --&gt; TR\n TM --&gt; AM\n Loop --&gt; LLM\n Loop --&gt; Tools\n Loop --&gt; Auto\n end\n\n Platform[\&quot;&lt;b&gt;Platform Layer&lt;/b&gt;&lt;br/&gt;Windows sandbox person · macOS Seatbelt · Linux bubblewrap (planned)\&quot;]\n Relay[\&quot;&lt;b&gt;Cloud Relay (Node.js, optional)&lt;/b&gt;&lt;br/&gt;REST proxy · Event forwarding · Push notifications · Pairing\&quot;]\n Phone[\&quot;Phone\&quot;]\n\n UI &lt;--&gt;|REST + WS| AM\n UI &lt;--&gt;|REST + WS| SAM\n Tools --&gt; Platform\n AM -.WebSocket tunnel.-&gt; Relay\n Relay -.WebSocket.-&gt; Phone\n&quot;}' data-plain='flowchart TB UI[&quot;&lt;b&gt;Frontend (React SPA)&lt;/b&gt;&lt;br/&gt;Chat UI · Approval Cards · Settings · Files&quot;] subgraph daemon[&quot;Daemon (FastAPI + uvicorn)&quot;] direction TB AM[&quot;AgentManager&lt;br/&gt;&lt;i&gt;lifecycle&lt;/i&gt;&quot;] SAM[&quot;SubAgentManager&lt;br/&gt;&lt;i&gt;delegation&lt;/i&gt;&quot;] TM[&quot;TriggerManager&lt;br/&gt;&lt;i&gt;cron · document watch&lt;/i&gt;&quot;] Loop[&quot;Agent Loop&lt;br/&gt;&lt;i&gt;streaming · safety guards&lt;/i&gt;&quot;] TR[&quot;Worker Transports&lt;br/&gt;Codex app-server · SDK · PTY · ACP · Pipe&quot;] LLM[&quot;LLM Provider&lt;br/&gt;&lt;i&gt;OpenAI + Anthropic SDK&lt;/i&gt;&quot;] Tools[&quot;Tool Registry&lt;br/&gt;&lt;i&gt;shell · document · browser · triggers&lt;/i&gt;&quot;] Auto[&quot;Autonomy Interceptor&lt;br/&gt;&lt;i&gt;approve · refuse · bypass&lt;/i&gt;&quot;] AM --&gt; Loop SAM --&gt; TR TM --&gt; AM Loop --&gt; LLM Loop --&gt; Tools Loop --&gt; Auto end Platform[&quot;&lt;b&gt;Platform Layer&lt;/b&gt;&lt;br/&gt;Windows sandbox person · macOS Seatbelt · Linux bubblewrap (planned)&quot;] Relay[&quot;&lt;b&gt;Cloud Relay (Node.js, optional)&lt;/b&gt;&lt;br/&gt;REST proxy · Event forwarding · Push notifications · Pairing&quot;] Phone[&quot;Phone&quot;] UI &lt;--&gt;|REST + WS| AM UI &lt;--&gt;|REST + WS| SAM Tools --&gt; Platform AM -.WebSocket tunnel.-&gt; Relay Relay -.WebSocket.-&gt; Phone ' dir="auto"> <div dir="auto"> <pre lang="mermaid" aria-label="Raw mermaid code">flowchart TB UI["&lt;b&gt;Frontend (React SPA)&lt;/b&gt;&lt;br/&gt;Chat UI &middot; Approval Cards &middot; Settings &middot; Files"] subgraph daemon["Daemon (FastAPI + uvicorn)"] direction TB AM["AgentManager&lt;br/&gt;&lt;i&gt;lifecycle&lt;/i&gt;"] SAM["SubAgentManager&lt;br/&gt;&lt;i&gt;delegation&lt;/i&gt;"] TM["TriggerManager&lt;br/&gt;&lt;i&gt;cron &middot; document watch&lt;/i&gt;"] Loop["Agent Loop&lt;br/&gt;&lt;i&gt;streaming &middot; safety guards&lt;/i&gt;"] TR["Worker Transports&lt;br/&gt;Codex app-server &middot; SDK &middot; PTY &middot; ACP &middot; Pipe"] LLM["LLM Provider&lt;br/&gt;&lt;i&gt;OpenAI + Anthropic SDK&lt;/i&gt;"] Tools["Tool Registry&lt;br/&gt;&lt;i&gt;shell &middot; document &middot; browser &middot; triggers&lt;/i&gt;"] Auto["Autonomy Interceptor&lt;br/&gt;&lt;i&gt;approve &middot; refuse &middot; bypass&lt;/i&gt;"] AM --&gt; Loop SAM --&gt; TR TM --&gt; AM Loop --&gt; LLM Loop --&gt; Tools Loop --&gt; Auto end Platform["&lt;b&gt;Platform Layer&lt;/b&gt;&lt;br/&gt;Windows sandbox person &middot; macOS Seatbelt &middot; Linux bubblewrap (planned)"] Relay["&lt;b&gt;Cloud Relay (Node.js, optional)&lt;/b&gt;&lt;br/&gt;REST proxy &middot; Event forwarding &middot; Push notifications &middot; Pairing"] Phone["Phone"] UI &lt;--&gt;|REST + WS| AM UI &lt;--&gt;|REST + WS| SAM Tools --&gt; Platform AM -.WebSocket tunnel.-&gt; Relay Relay -.WebSocket.-&gt; Phone </pre> </div> </div> <span role="presentation"> <span data-view-component="true"> <svg width="16" height="16" viewbox="0 0 16 16" fill="none" aria-hidden="true" data-view-component="true"> <path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path> </svg> <span>Loading</span> </span> </span> <p dir="auto"><strong>Key scheme decisions:</strong></p> <ul dir="auto"> <li><strong>The delegate owns the project</strong>: it maintains organized state, decisions, lessons, and meeting former so preparedness and accountability remain in one place</li> <li><strong>Isolation</strong>: OS-level sandboxing (Windows sandbox user, macOS Seatbelt, Linux bubblewrap planned)</li> <li><strong>Fail-closed interceptor</strong>: Any endorsement scheme error results in DENY, never ALLOW</li> <li><strong>Single daemon</strong>: PID document implementation prevents multiple instances</li> <li><strong>Local-first</strong>: Your records and project province live on your disk. The haze relay, whenever enabled, proxies approvals and events &mdash; not your files.</li> </ul> <hr> <ol dir="auto"> <li>Download the Orbital-Setup-*.exe from <a href="https://en.mycoding.id/category/technology" target="_blank">Releases</a> (latest Windows build)</li> <li>Run the installer and prosecute the prompts</li> <li>Launch Orbital from the Start Menu or desktop shortcut</li> </ol> Windows SmartScreen Warning <p dir="auto">Orbital is not yet code-signed, so Windows volition display a safety warning:</p> <blockquote> <p dir="auto"><strong>Windows protected your PC</strong> &mdash; Microsoft Defender SmartScreen prevented an unrecognized app from starting.</p> </blockquote> <p dir="auto">Click <strong>"More info"</strong> afterward <strong>"Run anyway"</strong>. Code signing volition be added in a forthcoming release.</p> <ol dir="auto"> <li>Download the Orbital-*-macOS.dmg from <a href="https://en.mycoding.id/category/technology" target="_blank">Releases</a></li> <li>Open the DMG and drag Orbital to your Applications folder</li> <li>Launch Orbital from Applications or Spotlight</li> </ol> <p dir="auto">Requires macOS 13 (Ventura) or later, <strong>Apple Silicon (M1 or newer)</strong>. Intel Macs are <strong>not</strong> supported by this build (the bundle is arm64-only).</p> <p dir="auto">Release builds are Developer-ID signed and notarized by Apple, so the app opens normally on archetypal initiate &mdash; no Gatekeeper alert or "Open Anyway" workaround needed. (If you built Orbital from origin or grabbed a CI branch artifact, that build is ad-hoc signed and macOS volition motionless ask you to endorse it formerly via right-click &rarr; Open.)</p> <div dir="auto" data-snippet-clipboard-copy-content='# Clone the repository git copy https://github.com/zqiren/Orbital.git &amp;&amp; cd Orbital # Install Python requirements (Python 3.11+) pip instal -e &quot;.[desktop]&quot; # Install frontend requirements (Node.js 18+) cd web &amp;&amp; npm instal &amp;&amp; cd .. # Start the daemon python -m uvicorn agent_os.api.app:create_app --factory --port 8000 # Start the frontend dev server (separate terminal) cd web &amp;&amp; npx vite --host 127.0.0.1 --port 5173'><pre><span><span>#</span> Clone the repository</span> git copy https://github.com/zqiren/Orbital.git <span>&amp;&amp;</span> <span>cd</span> Orbital <span><span>#</span> Install Python requirements (Python 3.11+)</span> pip instal -e <span><span>"</span>.[desktop]<span>"</span></span> <span><span>#</span> Install frontend requirements (Node.js 18+)</span> <span>cd</span> web <span>&amp;&amp;</span> npm instal <span>&amp;&amp;</span> <span>cd</span> .. <span><span>#</span> Start the daemon</span> python -m uvicorn agent_os.api.app:create_app --factory --port 8000 <span><span>#</span> Start the frontend dev server (separate terminal)</span> <span>cd</span> web <span>&amp;&amp;</span> npx vite --host 127.0.0.1 --port 5173</pre></div> <p dir="auto">Open http://localhost:5173 in your browser. The setup wizard runs on archetypal launch.</p> <p dir="auto">Orbital prevents scheme sleep during agents are actively operating (via OS-level sleep inhibition on Windows and macOS). When all agents are idle, sleep is re-allowed. The scheme tray icon shows current delegate action status.</p> <hr> <div dir="auto" data-snippet-clipboard-copy-content="# Start daemon python -m uvicorn agent_os.api.app:create_app --factory --port 8000 # Restart alongside caller code bash scripts/restart-daemon.sh"><pre><span><span>#</span> Start daemon</span> python -m uvicorn agent_os.api.app:create_app --factory --port 8000 <span><span>#</span> Restart alongside caller code</span> bash scripts/restart-daemon.sh</pre></div> <div dir="auto" data-snippet-clipboard-copy-content="cd web npm install npx vite --host 127.0.0.1 --port 5173"><pre><span>cd</span> web npm install npx vite --host 127.0.0.1 --port 5173</pre></div> <table readabilitydatatable="1"> <thead> <tr> <th>Component</th> <th>Path</th> </tr> </thead> <tbody> <tr> <td>FastAPI app factory</td> <td>agent_os/api/app.py</td> </tr> <tr> <td>Agent loop</td> <td>agent_os/agent/loop.py</td> </tr> <tr> <td>Tool implementations</td> <td>agent_os/agent/tools/</td> </tr> <tr> <td>Autonomy interceptor</td> <td>agent_os/daemon_v2/autonomy.py</td> </tr> <tr> <td>LLM providers</td> <td>agent_os/agent/providers/</td> </tr> <tr> <td>Trigger manager</td> <td>agent_os/daemon_v2/trigger_manager.py</td> </tr> <tr> <td>Browser manager</td> <td>agent_os/daemon_v2/browser_manager.py</td> </tr> <tr> <td>Sub-agent manifests</td> <td>agent_os/agents/manifests/</td> </tr> <tr> <td>Desktop admission point</td> <td>agent_os/desktop/main.py</td> </tr> <tr> <td>System tray</td> <td>agent_os/desktop/tray.py</td> </tr> <tr> <td>Frontend components</td> <td>web/src/components/</td> </tr> </tbody> </table> <hr> <div dir="auto" data-snippet-clipboard-copy-content="# Unit + phase tests python -m pytest tests/unit/ tests/platform/ -q # TypeScript inspect (zero errors expected) cd web &amp;&amp; npx tsc -b # Daemon integration test bash scripts/restart-daemon.sh curl http://localhost:8000/api/v2/projects"><pre><span><span>#</span> Unit + phase tests</span> python -m pytest tests/unit/ tests/platform/ -q <span><span>#</span> TypeScript inspect (zero errors expected)</span> <span>cd</span> web <span>&amp;&amp;</span> npx tsc -b <span><span>#</span> Daemon integration test</span> bash scripts/restart-daemon.sh curl http://localhost:8000/api/v2/projects</pre></div> <p dir="auto"><strong>Known pre-existing test notes:</strong></p> <ul dir="auto"> <li>test_e2e.py, test_user_stories.py &mdash; necessitate a genuine LLM API key set via AGENT_OS_TEST_API_KEY</li> </ul> <hr> <ul dir="auto"> <li>Multi-provider LLM routing alongside fallback rotation</li> <li>Three autonomy presets alongside cascade to sub-agents</li> <li>Streaming conversation alongside real-time WebSocket events</li> <li>Browser automation alongside anti-detection (Patchright)</li> <li>Continuous procedure via agenda and file-watch triggers</li> <li>Natural tongue trigger creation</li> <li>Cloud relay alongside shove notifications and equipment pairing</li> <li>Context compaction alongside pre-compaction recollection flush</li> <li>Prefix-cache-optimized immediate gathering (v0.4.2)</li> <li>Per-project prosperity limits and disbursal tracking</li> <li>Credential administration (API keys + website credentials)</li> <li>Desktop app alongside scheme tray and native window</li> <li>Agent iteration safety guards (iteration cap, repetition, ping-pong, circuit breaker)</li> <li>OS-level sleep safety during delegate activity</li> <li>Sub-agent delegation alongside @mention routing</li> </ul> <ul dir="auto"> <li><strong>Webhook triggers</strong> &mdash; HTTP endpoint that fires delegate tasks on incoming webhooks</li> <li><strong>Pipeline triggers</strong> &mdash; Chain project outputs as inputs to another projects</li> <li><strong>Network isolation</strong> &mdash; Per-project domain allowlists enforced at OS level</li> <li><strong>Linux sandboxing</strong> &mdash; bubblewrap enforcement</li> <li><strong>Code signing</strong> &mdash; Eliminate SmartScreen warnings on Windows</li> <li><strong>Auto-resume on daemon restart</strong> &mdash; Restore in-progress sessions</li> </ul> <hr> <p dir="auto">I loved Claude Projects. I hated that I couldn't let an delegate update the project, and that it didn't live on my machine.</p> <p dir="auto">I loved OpenClaw. I hated the deficiency of authority &mdash; no budget, no sandbox, no way to supervise from my phone whenever I stepped away.</p> <p dir="auto">Orbital is the item I wanted. One delegate accountable for the entire project: the plan, the decisions, the queue, the budget, and the approvals. The phone to inspect in whenever I'm not at my desk. Claude Code, Codex, and Gemini CLI as workers it can choose for the job without handing distant the project's context.</p> <p dir="auto">Built nights and weekends during operating full-time. Still extremely early. Feedback and issues welcome.</p> <hr> <p dir="auto"> <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow"><img src="https://github.com/zqiren/Orbital/raw/main/docs/screenshots/watcha-logo.png" alt="Watcha (观猹)" width="96"></a> </p> <p dir="auto">Orbital is proudly sponsored by <strong><a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow">Watcha (&#35266;&#29497;)</a></strong> &mdash; the squad rearward <strong><a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow">TokenDance (&#35789;&#20803;&#36339;&#21160;)</a></strong>, the China-mainland LLM router built into Orbital. Thanks to this sponsorship, new users in mainland China can sign in to TokenDance alongside one tap during onboarding, assertion liberated tokens, and commencement operating immediately &mdash; no manual API-key setup.</p> <hr> <p dir="auto">Orbital sends <strong>one anonymous total per day</strong> &mdash; counters, enums, and booleans only. Never prompts, files, paths, example output, or any project/session identifier. The exact outbound JSON is inspectable verbatim in <strong>Settings &rarr; Data &amp; privacy</strong>, anywhere a sole toggle turns it off. The full published schema is in <a href="https://en.mycoding.id/category/technology" target="_blank">docs/TELEMETRY.md</a>.</p> <hr> <p dir="auto">Orbital is licensed under the <a href="https://en.mycoding.id/category/technology" target="_blank">GNU General Public License v3.0</a>.</p> <div data-snippet-clipboard-copy-content=" you can redistribute it and/or modify it under the conditions of the GNU General Public License as published by the Free Software Foundation, either type 3 of the License, or (at your option) any afterward version."><pre>Orbital &mdash; Every delegate owns a session. Orbital owns the project. Copyright (C) 2026 Orbital Contributors This program is liberated software: you can redistribute it and/or modify it under the conditions of the GNU General Public License as published by the Free Software Foundation, either type 3 of the License, or (at your option) any afterward version. </pre></div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/the-open-origin-type-of-claude-project-that-gives-you-the-environment-ownershp-68659</guid> <pubDate>Fri, 18 Sep 2026 03:14:21 +0700</pubDate> <author><![CDATA[support@mycoding.id (Riki Setiawan)]]></author> </item> <item> <title><![CDATA[Shapelearn Qwen 3.8 27B (13.1 GB VRAM)]]></title> <description><![CDATA[Shapelearn Qwen 3.8 27B (13.1 GB VRAM). Comments]]></description> <media:thumbnail url="https://byteshape.com/blogs/Qwen3.8-27B/images/blog_thumbnail.jpg"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/shapelearn-qwen-3-8-27b-13-1-gb-vram-68660</link> <content:encoded><![CDATA[<div id="main" tabindex="-1"> <div> <p> We were a small impatient. </p> <p> Qwen 3.8 27B was released on August 14, 2026. Four days later, on August 18, we published our archetypal set of GGUFs. We called them ShapeLearn-Lite for a reason: they were produced using a much smaller optimization budget, small checks, and much small waiting. </p> <p> Now the complete ShapeLearn models are done, and we have benchmarked them alongside the first Lite set and competing quants. </p> <p> The fine news: ShapeLearn-Lite held up beautiful well. We volition arrive rear to that afterward in <a href="https://en.mycoding.id/category/technology" target="_blank">&ldquo;ShapeLearn-Lite, in retrospect&rdquo;</a>. </p> <p> The improved news: the complete ShapeLearn models are equal better. </p> <div> <p><i aria-hidden="true"></i> <span>Quick commencement alongside llama.cpp</span> </p> <p> The MTP outline caput is bundled in all GGUF. DFlash2 uses a distinct 1.1 GB outline model. Both commands use <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-5</a>. Swap the tag for any another example in the release. </p> <div> <p><span>MTP</span> Embedded draft. Works alongside depiction inputs.</p> <pre>llama-server \ -hf <span>byteshape/Qwen3.8-27B-GGUF:Qwen3.8-27B-IQ4_XS-3.84bpw</span> \ --mmproj-auto \ --spec-type draft-mtp --spec-draft-n-max 3</pre> </div> <div> <p><span>DFlash2</span> External draft. Fastest option, content only.</p> <pre>llama-server \ -hf <span>byteshape/Qwen3.8-27B-GGUF:Qwen3.8-27B-IQ4_XS-3.84bpw</span> \ -hfd incoai/Qwen3.8-27B-DFlash2-GGUF:Q4_K_M \ --spec-type draft-dflash --spec-draft-n-max 7 \ --no-mmproj</pre> </div> <p> DFlash2 needs llama.cpp b10658 or newer. Ready-to-run commands for all model, alongside the recommended sampling settings, are in the <a href="https://en.mycoding.id/category/technology" target="_blank">run tool</a> and on the <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">model card</a>. </p> </div> <h2>TL;DR</h2> <ul> <li>Full ShapeLearn moves the measured quality-speed frontier beyond Lite. All five models in the new publish sit on the frontier in all of our six GPU comparisons.</li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-5</a> is our default advice anywhere it fits, reaching 99.63% of BF16&rsquo;s total benchmark score. If it does not fit alongside the environment you need, <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-4</a> is motionless extremely competitive: it reaches 98.72% of BF16 at a much smaller size (11.0 GB alternatively of 13.1 GB), and it is faster.</li> <li>ShapeLearn-Lite additionally performed improved than its KLD ranking suggested: three of its six models sit on the frontier in the Lite-versus-Unsloth Dynamic v3 comparison.</li> <li>Speculative Decoding alongside MTP or DFlash2 increases throughput throughout all ShapeLearn example and GPU tested. DFlash2 is normally faster but requires additional recollection and does not assistance depiction inputs alongside llama.cpp. Choose DFlash2 for maximum text-only throughput whenever recollection allows, and MTP whenever VRAM or multimodal assistance matters more.</li> </ul> <h2 id="full-shapelearn">Full ShapeLearn moves the frontier</h2> <p> We are releasing the complete ShapeLearn run for Qwen 3.8 27B. </p> <p> Within this release, larger models output higher total scores, during smaller models provision higher throughput. That ordering holds throughout all six GPUs tested. Because this is a compact example and recollection transfers are the bottleneck, lesser BPW translates additional immediately into higher TPS than it does for MoEs. </p> <p> The per-GPU comparisons additionally contain <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">AtomicChat</a>, <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">Bartowski</a>, <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">ISTA-DASLab</a>, and <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">Unsloth Dynamic v3</a>. Bartowski&rsquo;s latest models were released following our evaluation and are not included. Full ShapeLearn is labelled ByteShape in the figures. </p> <p> All five ShapeLearn models remain on the measured frontier, alongside <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-5</a> achieving the highest total mark among the plotted quants. Other teams additionally contribute rivalrous points. Notably, ISTA-DASLab&rsquo;s outstanding example (the yellow &ldquo;d&rdquo; on the chart below) additionally sits on the frontier. </p> <p> By &ldquo;frontier,&rdquo; we average that no another plotted example is the two faster and additional accurate. </p> <h3>96 GB: RTX Pro 6000</h3> <p> RTX PRO 6000, the GPU alongside the most memory, lets us display the complete range of models tested. </p> <figure> <img src="https://byteshape.com/blogs/images/quality_vs_tps_RTX_Pro_6000.png" alt=" tokens per second vs norm (full ShapeLearn and competing quants)"> <figcaption> RTX Pro 6000: tokens per second vs norm (full ShapeLearn and competing quants) <span>Tap <em>Show Legend</em> below for example details.</span> </figcaption> </figure> <figure> <figcaption> RTX Pro 6000: tokens per second vs norm (full ShapeLearn and competing quants) <span>Hover complete the bubbles, or click <em>Show Legend</em> below, for example details.</span> </figcaption> </figure> Show Legend <div><table readabilitydatatable="1"> <thead><tr><th>#</th><th>Model</th><th>Acc</th><th>TPS</th><th>BPW</th></tr></thead> <tbody> <tr><td colspan="5">ByteShape</td></tr> <tr><td>GPU-1</td><td>IQ2_XXS-2.56bpw</td><td>0.9304</td><td>116.11</td><td>2.56</td></tr> <tr><td>GPU-2</td><td>IQ3_XXS-2.88bpw</td><td>0.9656</td><td>108.01</td><td>2.88</td></tr> <tr><td>GPU-3</td><td>IQ3_XS-3.01bpw</td><td>0.9726</td><td>105.44</td><td>3.01</td></tr> <tr><td>GPU-4</td><td>IQ3_S-3.23bpw</td><td>0.9872</td><td>101.11</td><td>3.23</td></tr> <tr><td>GPU-5</td><td>IQ4_XS-3.84bpw</td><td>0.9963</td><td>90.42</td><td>3.84</td></tr> <tr><td colspan="5">Unsloth</td></tr> <tr><td>A</td><td>UD-IQ2_S</td><td>0.8633</td><td>114.81</td><td>2.49</td></tr> <tr><td>B</td><td>UD-Q2_K_XL</td><td>0.9572</td><td>106.95</td><td>2.82</td></tr> <tr><td>C</td><td>UD-IQ3_XXS</td><td>0.9359</td><td>100.51</td><td>3.14</td></tr> <tr><td>D</td><td>UD-IQ3_S</td><td>0.9555</td><td>95.53</td><td>3.47</td></tr> <tr><td>E</td><td>UD-Q3_K_XL</td><td>0.9760</td><td>90.88</td><td>3.80</td></tr> <tr><td>F</td><td>UD-IQ4_XS</td><td>0.9920</td><td>86.73</td><td>4.13</td></tr> <tr><td>G</td><td>UD-Q4_K_S</td><td>0.9877</td><td>82.21</td><td>4.46</td></tr> <tr><td>H</td><td>UD-Q4_K_M</td><td>0.9703</td><td>78.58</td><td>4.79</td></tr> <tr><td>I</td><td>UD-Q4_K_XL</td><td>0.9871</td><td>74.75</td><td>5.12</td></tr> <tr><td>J</td><td>UD-Q5_K_S</td><td>0.9878</td><td>71.00</td><td>5.44</td></tr> <tr><td>K</td><td>UD-Q5_K_M</td><td>0.9897</td><td>67.71</td><td>5.77</td></tr> <tr><td>L</td><td>UD-Q5_K_XL</td><td>0.9905</td><td>65.52</td><td>6.10</td></tr> <tr><td colspan="5">ISTA-DASLab</td></tr> <tr><td>a</td><td>GSQ-RCO-IQ2_XS</td><td>0.8647</td><td>112.77</td><td>2.50</td></tr> <tr><td>b</td><td>GSQ-RCO-IQ2_S</td><td>0.9364</td><td>108.22</td><td>2.75</td></tr> <tr><td>c</td><td>GSQ-RCO-IQ3_XXS</td><td>0.9438</td><td>103.39</td><td>3.00</td></tr> <tr><td>d</td><td>GSQ-RCO-IQ3_S</td><td>0.9943</td><td>94.77</td><td>3.50</td></tr> <tr><td colspan="5">Bartowski</td></tr> <tr><td>a</td><td>IQ2_XXS</td><td>0.7986</td><td>112.21</td><td>2.72</td></tr> <tr><td>b</td><td>IQ2_S</td><td>0.9296</td><td>106.33</td><td>2.99</td></tr> <tr><td>c</td><td>Q2_K</td><td>0.9616</td><td>96.08</td><td>3.45</td></tr> <tr><td>d</td><td>IQ3_XXS</td><td>0.9594</td><td>92.43</td><td>3.68</td></tr> <tr><td>e</td><td>IQ3_XS</td><td>0.9582</td><td>88.36</td><td>3.89</td></tr> <tr><td>f</td><td>IQ3_M</td><td>0.9667</td><td>86.17</td><td>4.06</td></tr> <tr><td colspan="5">AtomicChat</td></tr> <tr><td>a</td><td>AD-IQ2_XXS</td><td>0.8385</td><td>116.28</td><td>2.58</td></tr> <tr><td>b</td><td>AD-IQ2_XS</td><td>0.9296</td><td>108.67</td><td>2.85</td></tr> <tr><td>c</td><td>AD-IQ2_S</td><td>0.9061</td><td>100.28</td><td>3.22</td></tr> <tr><td>d</td><td>AD-IQ3_XXS</td><td>0.9644</td><td>95.29</td><td>3.50</td></tr> <tr><td>e</td><td>AD-IQ3_S</td><td>0.9730</td><td>88.52</td><td>4.04</td></tr> </tbody> </table></div> <p> <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-5</a> is our default anywhere you can fit it: it reaches 90.4 tok/s at 99.63% of the BF16 baseline. </p> <h3>32 GB: RTX 5090</h3> <p> The RTX 5090 tells a akin story, foremost to the identical recommendations. </p> <figure> <img src="https://byteshape.com/blogs/images/quality_vs_tps_RTX_5090.png" alt=" tokens per second vs norm (full ShapeLearn and competing quants)"> <figcaption> RTX 5090: tokens per second vs norm (full ShapeLearn and competing quants) <span>Tap <em>Show Legend</em> below for example details.</span> </figcaption> </figure> <figure> <figcaption> RTX 5090: tokens per second vs norm (full ShapeLearn and competing quants) <span>Hover complete the bubbles, or click <em>Show Legend</em> below, for example details.</span> </figcaption> </figure> Show Legend <div><table readabilitydatatable="1"> <thead><tr><th>#</th><th>Model</th><th>Acc</th><th>TPS</th><th>BPW</th></tr></thead> <tbody> <tr><td colspan="5">ByteShape</td></tr> <tr><td>GPU-1</td><td>IQ2_XXS-2.56bpw</td><td>0.9304</td><td>119.13</td><td>2.56</td></tr> <tr><td>GPU-2</td><td>IQ3_XXS-2.88bpw</td><td>0.9656</td><td>110.78</td><td>2.88</td></tr> <tr><td>GPU-3</td><td>IQ3_XS-3.01bpw</td><td>0.9726</td><td>108.08</td><td>3.01</td></tr> <tr><td>GPU-4</td><td>IQ3_S-3.23bpw</td><td>0.9872</td><td>103.57</td><td>3.23</td></tr> <tr><td>GPU-5</td><td>IQ4_XS-3.84bpw</td><td>0.9963</td><td>93.66</td><td>3.84</td></tr> <tr><td colspan="5">Unsloth</td></tr> <tr><td>A</td><td>UD-IQ2_S</td><td>0.8633</td><td>115.34</td><td>2.49</td></tr> <tr><td>B</td><td>UD-Q2_K_XL</td><td>0.9572</td><td>108.12</td><td>2.82</td></tr> <tr><td>C</td><td>UD-IQ3_XXS</td><td>0.9359</td><td>102.87</td><td>3.14</td></tr> <tr><td>D</td><td>UD-IQ3_S</td><td>0.9555</td><td>97.87</td><td>3.47</td></tr> <tr><td>E</td><td>UD-Q3_K_XL</td><td>0.9760</td><td>93.46</td><td>3.80</td></tr> <tr><td>F</td><td>UD-IQ4_XS</td><td>0.9920</td><td>89.69</td><td>4.13</td></tr> <tr><td>G</td><td>UD-Q4_K_S</td><td>0.9877</td><td>85.28</td><td>4.46</td></tr> <tr><td>H</td><td>UD-Q4_K_M</td><td>0.9703</td><td>81.63</td><td>4.79</td></tr> <tr><td>I</td><td>UD-Q4_K_XL</td><td>0.9871</td><td>77.51</td><td>5.12</td></tr> <tr><td>J</td><td>UD-Q5_K_S</td><td>0.9878</td><td>73.60</td><td>5.44</td></tr> <tr><td>K</td><td>UD-Q5_K_M</td><td>0.9897</td><td>69.87</td><td>5.77</td></tr> <tr><td>L</td><td>UD-Q5_K_XL</td><td>0.9905</td><td>67.59</td><td>6.10</td></tr> <tr><td colspan="5">ISTA-DASLab</td></tr> <tr><td>a</td><td>GSQ-RCO-IQ2_XS</td><td>0.8647</td><td>114.11</td><td>2.50</td></tr> <tr><td>b</td><td>GSQ-RCO-IQ2_S</td><td>0.9364</td><td>110.19</td><td>2.75</td></tr> <tr><td>c</td><td>GSQ-RCO-IQ3_XXS</td><td>0.9438</td><td>105.67</td><td>3.00</td></tr> <tr><td>d</td><td>GSQ-RCO-IQ3_S</td><td>0.9943</td><td>95.49</td><td>3.50</td></tr> <tr><td colspan="5">Bartowski</td></tr> <tr><td>a</td><td>IQ2_XXS</td><td>0.7986</td><td>115.77</td><td>2.72</td></tr> <tr><td>b</td><td>IQ2_S</td><td>0.9296</td><td>109.39</td><td>2.99</td></tr> <tr><td>c</td><td>Q2_K</td><td>0.9616</td><td>99.29</td><td>3.45</td></tr> <tr><td>d</td><td>IQ3_XXS</td><td>0.9594</td><td>95.83</td><td>3.68</td></tr> <tr><td>e</td><td>IQ3_XS</td><td>0.9582</td><td>91.14</td><td>3.89</td></tr> <tr><td>f</td><td>IQ3_M</td><td>0.9667</td><td>89.08</td><td>4.06</td></tr> <tr><td colspan="5">AtomicChat</td></tr> <tr><td>a</td><td>AD-IQ2_XXS</td><td>0.8385</td><td>119.53</td><td>2.58</td></tr> <tr><td>b</td><td>AD-IQ2_XS</td><td>0.9296</td><td>112.39</td><td>2.85</td></tr> <tr><td>c</td><td>AD-IQ2_S</td><td>0.9061</td><td>103.46</td><td>3.22</td></tr> <tr><td>d</td><td>AD-IQ3_XXS</td><td>0.9644</td><td>98.22</td><td>3.50</td></tr> <tr><td>e</td><td>AD-IQ3_S</td><td>0.9730</td><td>91.72</td><td>4.04</td></tr> </tbody> </table></div> <p> Once again <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-5</a> is our default choice, reaching 93.7 tok/s. Choose <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-4</a> for slightly additional environment dimension or slightly improved TPS. </p> <h3>24 GB: RTX 4090 and RTX 3090</h3> <p> Both 24 GB cards fit all five ShapeLearn models. We storyline them separately since their throughput differs, but the ordering is the identical on both. </p> <h4>RTX 4090</h4> <p> The RTX 4090 keeps the identical pattern: <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-5</a> is the default, reaching 59.2 tok/s. </p> <figure> <img src="https://byteshape.com/blogs/images/quality_vs_tps_RTX_4090.png" alt=" tokens per second vs norm (full ShapeLearn and competing quants)"> <figcaption> RTX 4090: tokens per second vs norm (full ShapeLearn and competing quants) <span>Tap <em>Show Legend</em> below for example details.</span> </figcaption> </figure> <figure> <figcaption> RTX 4090: tokens per second vs norm (full ShapeLearn and competing quants) <span>Hover complete the bubbles, or click <em>Show Legend</em> below, for example details.</span> </figcaption> </figure> Show Legend <div><table readabilitydatatable="1"> <thead><tr><th>#</th><th>Model</th><th>Acc</th><th>TPS</th><th>BPW</th></tr></thead> <tbody> <tr><td colspan="5">ByteShape</td></tr> <tr><td>GPU-1</td><td>IQ2_XXS-2.56bpw</td><td>0.9304</td><td>78.67</td><td>2.56</td></tr> <tr><td>GPU-2</td><td>IQ3_XXS-2.88bpw</td><td>0.9656</td><td>72.89</td><td>2.88</td></tr> <tr><td>GPU-3</td><td>IQ3_XS-3.01bpw</td><td>0.9726</td><td>71.12</td><td>3.01</td></tr> <tr><td>GPU-4</td><td>IQ3_S-3.23bpw</td><td>0.9872</td><td>67.77</td><td>3.23</td></tr> <tr><td>GPU-5</td><td>IQ4_XS-3.84bpw</td><td>0.9963</td><td>59.16</td><td>3.84</td></tr> <tr><td colspan="5">Unsloth</td></tr> <tr><td>A</td><td>UD-IQ2_S</td><td>0.8633</td><td>78.23</td><td>2.49</td></tr> <tr><td>B</td><td>UD-Q2_K_XL</td><td>0.9572</td><td>72.79</td><td>2.82</td></tr> <tr><td>C</td><td>UD-IQ3_XXS</td><td>0.9359</td><td>67.24</td><td>3.14</td></tr> <tr><td>D</td><td>UD-IQ3_S</td><td>0.9555</td><td>63.02</td><td>3.47</td></tr> <tr><td>E</td><td>UD-Q3_K_XL</td><td>0.9760</td><td>59.13</td><td>3.80</td></tr> <tr><td>F</td><td>UD-IQ4_XS</td><td>0.9920</td><td>55.62</td><td>4.13</td></tr> <tr><td>G</td><td>UD-Q4_K_S</td><td>0.9877</td><td>52.44</td><td>4.46</td></tr> <tr><td>H</td><td>UD-Q4_K_M</td><td>0.9703</td><td>49.77</td><td>4.79</td></tr> <tr><td>I</td><td>UD-Q4_K_XL</td><td>0.9871</td><td>47.08</td><td>5.12</td></tr> <tr><td>J</td><td>UD-Q5_K_S</td><td>0.9878</td><td>44.80</td><td>5.44</td></tr> <tr><td>K</td><td>UD-Q5_K_M</td><td>0.9897</td><td>42.45</td><td>5.77</td></tr> <tr><td>L</td><td>UD-Q5_K_XL</td><td>0.9905</td><td>40.84</td><td>6.10</td></tr> <tr><td colspan="5">ISTA-DASLab</td></tr> <tr><td>a</td><td>GSQ-RCO-IQ2_XS</td><td>0.8647</td><td>77.80</td><td>2.50</td></tr> <tr><td>b</td><td>GSQ-RCO-IQ2_S</td><td>0.9364</td><td>73.34</td><td>2.75</td></tr> <tr><td>c</td><td>GSQ-RCO-IQ3_XXS</td><td>0.9438</td><td>69.26</td><td>3.00</td></tr> <tr><td>d</td><td>GSQ-RCO-IQ3_S</td><td>0.9943</td><td>62.41</td><td>3.50</td></tr> <tr><td colspan="5">Bartowski</td></tr> <tr><td>a</td><td>IQ2_XXS</td><td>0.7986</td><td>75.28</td><td>2.72</td></tr> <tr><td>b</td><td>IQ2_S</td><td>0.9296</td><td>71.27</td><td>2.99</td></tr> <tr><td>c</td><td>Q2_K</td><td>0.9616</td><td>63.74</td><td>3.45</td></tr> <tr><td>d</td><td>IQ3_XXS</td><td>0.9594</td><td>61.03</td><td>3.68</td></tr> <tr><td>e</td><td>IQ3_XS</td><td>0.9582</td><td>58.20</td><td>3.89</td></tr> <tr><td>f</td><td>IQ3_M</td><td>0.9667</td><td>56.16</td><td>4.06</td></tr> <tr><td colspan="5">AtomicChat</td></tr> <tr><td>a</td><td>AD-IQ2_XXS</td><td>0.8385</td><td>79.51</td><td>2.58</td></tr> <tr><td>b</td><td>AD-IQ2_XS</td><td>0.9296</td><td>74.19</td><td>2.85</td></tr> <tr><td>c</td><td>AD-IQ2_S</td><td>0.9061</td><td>67.40</td><td>3.22</td></tr> <tr><td>d</td><td>AD-IQ3_XXS</td><td>0.9644</td><td>63.60</td><td>3.50</td></tr> <tr><td>e</td><td>AD-IQ3_S</td><td>0.9730</td><td>57.38</td><td>4.04</td></tr> </tbody> </table></div> <h4>RTX 3090</h4> <p> Older, but motionless accelerated in these measurements. </p> <figure> <img src="https://byteshape.com/blogs/images/quality_vs_tps_RTX_3090.png" alt=" tokens per second vs norm (full ShapeLearn and competing quants)"> <figcaption> RTX 3090: tokens per second vs norm (full ShapeLearn and competing quants) <span>Tap <em>Show Legend</em> below for example details.</span> </figcaption> </figure> <figure> <figcaption> RTX 3090: tokens per second vs norm (full ShapeLearn and competing quants) <span>Hover complete the bubbles, or click <em>Show Legend</em> below, for example details.</span> </figcaption> </figure> Show Legend <div><table readabilitydatatable="1"> <thead><tr><th>#</th><th>Model</th><th>Acc</th><th>TPS</th><th>BPW</th></tr></thead> <tbody> <tr><td colspan="5">ByteShape</td></tr> <tr><td>GPU-1</td><td>IQ2_XXS-2.56bpw</td><td>0.9304</td><td>53.03</td><td>2.56</td></tr> <tr><td>GPU-2</td><td>IQ3_XXS-2.88bpw</td><td>0.9656</td><td>51.20</td><td>2.88</td></tr> <tr><td>GPU-3</td><td>IQ3_XS-3.01bpw</td><td>0.9726</td><td>50.75</td><td>3.01</td></tr> <tr><td>GPU-4</td><td>IQ3_S-3.23bpw</td><td>0.9872</td><td>49.49</td><td>3.23</td></tr> <tr><td>GPU-5</td><td>IQ4_XS-3.84bpw</td><td>0.9963</td><td>45.79</td><td>3.84</td></tr> <tr><td colspan="5">Unsloth</td></tr> <tr><td>A</td><td>UD-IQ2_S</td><td>0.8633</td><td>52.82</td><td>2.49</td></tr> <tr><td>B</td><td>UD-Q2_K_XL</td><td>0.9572</td><td>50.37</td><td>2.82</td></tr> <tr><td>C</td><td>UD-IQ3_XXS</td><td>0.9359</td><td>48.16</td><td>3.14</td></tr> <tr><td>D</td><td>UD-IQ3_S</td><td>0.9555</td><td>46.39</td><td>3.47</td></tr> <tr><td>E</td><td>UD-Q3_K_XL</td><td>0.9760</td><td>46.28</td><td>3.80</td></tr> <tr><td>F</td><td>UD-IQ4_XS</td><td>0.9920</td><td>46.12</td><td>4.13</td></tr> <tr><td>G</td><td>UD-Q4_K_S</td><td>0.9877</td><td>44.49</td><td>4.46</td></tr> <tr><td>H</td><td>UD-Q4_K_M</td><td>0.9703</td><td>43.30</td><td>4.79</td></tr> <tr><td>I</td><td>UD-Q4_K_XL</td><td>0.9871</td><td>41.37</td><td>5.12</td></tr> <tr><td>J</td><td>UD-Q5_K_S</td><td>0.9878</td><td>39.37</td><td>5.44</td></tr> <tr><td>K</td><td>UD-Q5_K_M</td><td>0.9897</td><td>37.38</td><td>5.77</td></tr> <tr><td>L</td><td>UD-Q5_K_XL</td><td>0.9905</td><td>36.16</td><td>6.10</td></tr> <tr><td colspan="5">ISTA-DASLab</td></tr> <tr><td>a</td><td>GSQ-RCO-IQ2_XS</td><td>0.8647</td><td>51.56</td><td>2.50</td></tr> <tr><td>b</td><td>GSQ-RCO-IQ2_S</td><td>0.9364</td><td>50.07</td><td>2.75</td></tr> <tr><td>c</td><td>GSQ-RCO-IQ3_XXS</td><td>0.9438</td><td>48.66</td><td>3.00</td></tr> <tr><td>d</td><td>GSQ-RCO-IQ3_S</td><td>0.9943</td><td>47.19</td><td>3.50</td></tr> <tr><td colspan="5">Bartowski</td></tr> <tr><td>a</td><td>IQ2_XXS</td><td>0.7986</td><td>53.63</td><td>2.72</td></tr> <tr><td>b</td><td>IQ2_S</td><td>0.9296</td><td>51.21</td><td>2.99</td></tr> <tr><td>c</td><td>Q2_K</td><td>0.9616</td><td>45.34</td><td>3.45</td></tr> <tr><td>d</td><td>IQ3_XXS</td><td>0.9594</td><td>47.46</td><td>3.68</td></tr> <tr><td>e</td><td>IQ3_XS</td><td>0.9582</td><td>44.68</td><td>3.89</td></tr> <tr><td>f</td><td>IQ3_M</td><td>0.9667</td><td>43.42</td><td>4.06</td></tr> <tr><td colspan="5">AtomicChat</td></tr> <tr><td>a</td><td>AD-IQ2_XXS</td><td>0.8385</td><td>53.95</td><td>2.58</td></tr> <tr><td>b</td><td>AD-IQ2_XS</td><td>0.9296</td><td>51.91</td><td>2.85</td></tr> <tr><td>c</td><td>AD-IQ2_S</td><td>0.9061</td><td>48.24</td><td>3.22</td></tr> <tr><td>d</td><td>AD-IQ3_XXS</td><td>0.9644</td><td>47.10</td><td>3.50</td></tr> <tr><td>e</td><td>AD-IQ3_S</td><td>0.9730</td><td>47.22</td><td>4.04</td></tr> </tbody> </table></div> <p> <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-4</a> reaches 49.5 tok/s, compared alongside 45.8 tok/s for <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-5</a>. Moving to the larger example expenses concerning 7.5% in throughput, during the total mark rises from 98.72% to 99.63% of BF16. That makes <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-5</a> the default current as well. </p> <h3>16 GB: RTX 4080 and RTX 5060 Ti</h3> <p> With a tighter VRAM budget, the pragmatic choice is to depart area for the environment you need, not fair the example weights. These parcels merge small competing configurations, but all five ShapeLearn models are represented. </p> <h4>RTX 4080</h4> <p> On the RTX 4080, <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-4</a> reaches 52.4 tok/s, during <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-5</a> reaches 45.7 tok/s. </p> <figure> <img src="https://byteshape.com/blogs/images/quality_vs_tps_RTX_4080.png" alt=" tokens per second vs norm (full ShapeLearn and competing quants)"> <figcaption> RTX 4080: tokens per second vs norm (full ShapeLearn and competing quants) <span>Tap <em>Show Legend</em> below for example details.</span> </figcaption> </figure> <figure> <figcaption> RTX 4080: tokens per second vs norm (full ShapeLearn and competing quants) <span>Hover complete the bubbles, or click <em>Show Legend</em> below, for example details.</span> </figcaption> </figure> Show Legend <div><table readabilitydatatable="1"> <thead><tr><th>#</th><th>Model</th><th>Acc</th><th>TPS</th><th>BPW</th></tr></thead> <tbody> <tr><td colspan="5">ByteShape</td></tr> <tr><td>GPU-1</td><td>IQ2_XXS-2.56bpw</td><td>0.9304</td><td>62.01</td><td>2.56</td></tr> <tr><td>GPU-2</td><td>IQ3_XXS-2.88bpw</td><td>0.9656</td><td>56.84</td><td>2.88</td></tr> <tr><td>GPU-3</td><td>IQ3_XS-3.01bpw</td><td>0.9726</td><td>55.14</td><td>3.01</td></tr> <tr><td>GPU-4</td><td>IQ3_S-3.23bpw</td><td>0.9872</td><td>52.43</td><td>3.23</td></tr> <tr><td>GPU-5</td><td>IQ4_XS-3.84bpw</td><td>0.9963</td><td>45.74</td><td>3.84</td></tr> <tr><td colspan="5">Unsloth</td></tr> <tr><td>A</td><td>UD-IQ2_S</td><td>0.8633</td><td>61.70</td><td>2.49</td></tr> <tr><td>B</td><td>UD-Q2_K_XL</td><td>0.9572</td><td>56.70</td><td>2.82</td></tr> <tr><td>C</td><td>UD-IQ3_XXS</td><td>0.9359</td><td>52.32</td><td>3.14</td></tr> <tr><td>D</td><td>UD-IQ3_S</td><td>0.9555</td><td>49.06</td><td>3.47</td></tr> <tr><td colspan="5">ISTA-DASLab</td></tr> <tr><td>a</td><td>GSQ-RCO-IQ2_XS</td><td>0.8647</td><td>60.47</td><td>2.50</td></tr> <tr><td>b</td><td>GSQ-RCO-IQ2_S</td><td>0.9364</td><td>57.37</td><td>2.75</td></tr> <tr><td>c</td><td>GSQ-RCO-IQ3_XXS</td><td>0.9438</td><td>54.19</td><td>3.00</td></tr> <tr><td>d</td><td>GSQ-RCO-IQ3_S</td><td>0.9943</td><td>48.42</td><td>3.50</td></tr> <tr><td colspan="5">Bartowski</td></tr> <tr><td>a</td><td>IQ2_XXS</td><td>0.7986</td><td>58.69</td><td>2.72</td></tr> <tr><td>b</td><td>IQ2_S</td><td>0.9296</td><td>55.39</td><td>2.99</td></tr> <tr><td>c</td><td>Q2_K</td><td>0.9616</td><td>48.91</td><td>3.45</td></tr> <tr><td>d</td><td>IQ3_XXS</td><td>0.9594</td><td>46.99</td><td>3.68</td></tr> <tr><td>e</td><td>IQ3_XS</td><td>0.9582</td><td>44.71</td><td>3.89</td></tr> <tr><td colspan="5">AtomicChat</td></tr> <tr><td>a</td><td>AD-IQ2_XXS</td><td>0.8385</td><td>62.55</td><td>2.58</td></tr> <tr><td>b</td><td>AD-IQ2_XS</td><td>0.9296</td><td>57.82</td><td>2.85</td></tr> <tr><td>c</td><td>AD-IQ2_S</td><td>0.9061</td><td>52.43</td><td>3.22</td></tr> <tr><td>d</td><td>AD-IQ3_XXS</td><td>0.9644</td><td>49.15</td><td>3.50</td></tr> </tbody> </table></div> <h4>RTX 5060 Ti</h4> <p> On the RTX 5060 Ti, the corresponding figures are 33.1 tok/s and 29.1 tok/s. </p> <figure> <img src="https://byteshape.com/blogs/images/quality_vs_tps_RTX_5060_Ti.png" alt=" tokens per second vs norm (full ShapeLearn and competing quants)"> <figcaption> RTX 5060 Ti: tokens per second vs norm (full ShapeLearn and competing quants) <span>Tap <em>Show Legend</em> below for example details.</span> </figcaption> </figure> <figure> <figcaption> RTX 5060 Ti: tokens per second vs norm (full ShapeLearn and competing quants) <span>Hover complete the bubbles, or click <em>Show Legend</em> below, for example details.</span> </figcaption> </figure> Show Legend <div><table readabilitydatatable="1"> <thead><tr><th>#</th><th>Model</th><th>Acc</th><th>TPS</th><th>BPW</th></tr></thead> <tbody> <tr><td colspan="5">ByteShape</td></tr> <tr><td>GPU-1</td><td>IQ2_XXS-2.56bpw</td><td>0.9304</td><td>38.05</td><td>2.56</td></tr> <tr><td>GPU-2</td><td>IQ3_XXS-2.88bpw</td><td>0.9656</td><td>35.41</td><td>2.88</td></tr> <tr><td>GPU-3</td><td>IQ3_XS-3.01bpw</td><td>0.9726</td><td>34.50</td><td>3.01</td></tr> <tr><td>GPU-4</td><td>IQ3_S-3.23bpw</td><td>0.9872</td><td>33.05</td><td>3.23</td></tr> <tr><td>GPU-5</td><td>IQ4_XS-3.84bpw</td><td>0.9963</td><td>29.15</td><td>3.84</td></tr> <tr><td colspan="5">Unsloth</td></tr> <tr><td>A</td><td>UD-IQ2_S</td><td>0.8633</td><td>38.02</td><td>2.49</td></tr> <tr><td>B</td><td>UD-Q2_K_XL</td><td>0.9572</td><td>35.42</td><td>2.82</td></tr> <tr><td>C</td><td>UD-IQ3_XXS</td><td>0.9359</td><td>32.80</td><td>3.14</td></tr> <tr><td>D</td><td>UD-IQ3_S</td><td>0.9555</td><td>30.97</td><td>3.47</td></tr> <tr><td colspan="5">ISTA-DASLab</td></tr> <tr><td>a</td><td>GSQ-RCO-IQ2_XS</td><td>0.8647</td><td>37.62</td><td>2.50</td></tr> <tr><td>b</td><td>GSQ-RCO-IQ2_S</td><td>0.9364</td><td>35.80</td><td>2.75</td></tr> <tr><td>c</td><td>GSQ-RCO-IQ3_XXS</td><td>0.9438</td><td>33.95</td><td>3.00</td></tr> <tr><td>d</td><td>GSQ-RCO-IQ3_S</td><td>0.9943</td><td>30.72</td><td>3.50</td></tr> <tr><td colspan="5">Bartowski</td></tr> <tr><td>a</td><td>IQ2_XXS</td><td>0.7986</td><td>36.33</td><td>2.72</td></tr> <tr><td>b</td><td>IQ2_S</td><td>0.9296</td><td>34.76</td><td>2.99</td></tr> <tr><td>c</td><td>Q2_K</td><td>0.9616</td><td>30.79</td><td>3.45</td></tr> <tr><td>d</td><td>IQ3_XXS</td><td>0.9594</td><td>29.69</td><td>3.68</td></tr> <tr><td>e</td><td>IQ3_XS</td><td>0.9582</td><td>28.24</td><td>3.89</td></tr> <tr><td colspan="5">AtomicChat</td></tr> <tr><td>a</td><td>AD-IQ2_XXS</td><td>0.8385</td><td>38.42</td><td>2.58</td></tr> <tr><td>b</td><td>AD-IQ2_XS</td><td>0.9296</td><td>36.05</td><td>2.85</td></tr> <tr><td>c</td><td>AD-IQ2_S</td><td>0.9061</td><td>32.61</td><td>3.22</td></tr> <tr><td>d</td><td>AD-IQ3_XXS</td><td>0.9644</td><td>31.01</td><td>3.50</td></tr> </tbody> </table></div> <p> <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-5</a> remains the default on the two cards whenever the model, KV cache, and runtime buffers fit inside your recollection budget. When they do not, <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-4</a> is motionless extremely competitive: nearly 99% of BF16 at a much smaller size, and faster. A example appearing in these measurements does not established that all environment dimension or serving configuration volition fit. </p> <h2 id="shapelearn-lite-in-retrospect">ShapeLearn-Lite, in retrospect</h2> <p> ShapeLearn-Lite uses a smaller optimization prosperity than complete ShapeLearn. It let us get Qwen 3.8 27B onto 12 GB to 24 GB GPUs inside a few days. </p> <p> We released following targeted sanity checks and started the complete evaluation afterwards. The complete ShapeLearn models were prepared before the benchmarking was finished. Evaluating the two sets, alongside alongside the competing models, is what took most of the time. </p> <p> Then Unsloth released its Dynamic v3 models. At akin sizes, multiple had lesser KLD than Lite in our measurements. On KLD alone, Lite looked small competitive. </p> <h3>KLD looked decisive</h3> <p> KLD measures divergence between a quantized model&rsquo;s predicted token distributions and the BF16 citation under a particular evaluation setup. It is helpful for diagnosing significant changes, but lesser divergence does not automatically average improved project performance. </p> <p> We measure KLD on a dataset of concerning 5 myriad tokens of immediate and reply pairs, drawn from multiple benchmarks, including long-context and agentic tasks. We additionally changed how KLD is computed, so that it is nearer to what we anticipate KLD to measure: </p> <ul> <li>KLD is measured on reply tokens only, not on immediate tokens. We do not desire to measure how fine a example can create prompts.</li> <li>KLD lone considers the tokens that have a chance of being sampled during generation, the top-20, top-40, or top-60 tokens at all position. The rear tokens never get sampled, so they do not contribute.</li> <li>Requests have apparent boundaries. Each immediate and reply brace is scored as its own request, not as part of one lengthy concatenated stream.</li> </ul> <figure> <img src="https://byteshape.com/blogs/images/kld_vs_size.png" alt="KL divergence versus example size for ShapeLearn-Lite and Unsloth"> <figcaption> KL divergence versus example size for ShapeLearn-Lite and Unsloth <span>Tap <em>Show Legend</em> below for example details.</span> </figcaption> </figure> <figure> <figcaption> KL divergence versus example size for ShapeLearn-Lite and Unsloth <span>Hover complete the bubbles, or click <em>Show Legend</em> below, for example details.</span> </figcaption> </figure> Show Legend <div><table readabilitydatatable="1"> <thead><tr><th>#</th><th>Model</th><th>KLD</th><th>Size (GB)</th><th>BPW</th></tr></thead> <tbody> <tr><td colspan="5">ShapeLearn-Lite</td></tr> <tr><td>Lite-1</td><td>IQ3_S-3.44bpw</td><td>0.035875</td><td>10.79</td><td>3.44</td></tr> <tr><td>Lite-2</td><td>IQ4_XS-3.67bpw</td><td>0.028296</td><td>11.51</td><td>3.68</td></tr> <tr><td>Lite-3</td><td>IQ4_XS-4.00bpw</td><td>0.018249</td><td>12.52</td><td>4.00</td></tr> <tr><td>Lite-4</td><td>IQ4_XS-4.40bpw</td><td>0.009901</td><td>13.78</td><td>4.40</td></tr> <tr><td>Lite-5</td><td>Q5_K_S-4.72bpw</td><td>0.007578</td><td>14.78</td><td>4.72</td></tr> <tr><td>Lite-6</td><td>Q5_K_M-5.60bpw</td><td>0.003297</td><td>17.53</td><td>5.60</td></tr> <tr><td colspan="5">Unsloth</td></tr> <tr><td>i</td><td>UD-IQ1_S</td><td>0.389550</td><td>5.76</td><td>1.84</td></tr> <tr><td>ii</td><td>UD-IQ1_M</td><td>0.261876</td><td>6.26</td><td>2.00</td></tr> <tr><td>iii</td><td>UD-IQ2_XXS</td><td>0.181493</td><td>6.76</td><td>2.16</td></tr> <tr><td>iv</td><td>UD-IQ2_S</td><td>0.108374</td><td>7.79</td><td>2.49</td></tr> <tr><td>v</td><td>UD-Q2_K_XL</td><td>0.065200</td><td>8.81</td><td>2.81</td></tr> <tr><td>vi</td><td>UD-IQ3_XXS</td><td>0.040407</td><td>9.84</td><td>3.14</td></tr> <tr><td>vii</td><td>UD-IQ3_S</td><td>0.028759</td><td>10.87</td><td>3.47</td></tr> <tr><td>viii</td><td>UD-Q3_K_XL</td><td>0.019844</td><td>11.90</td><td>3.80</td></tr> <tr><td>ix</td><td>UD-IQ4_XS</td><td>0.011992</td><td>12.93</td><td>4.13</td></tr> <tr><td>x</td><td>UD-Q4_K_S</td><td>0.008827</td><td>13.96</td><td>4.46</td></tr> <tr><td>xi</td><td>Q4_0</td><td>0.019264</td><td>14.69</td><td>4.69</td></tr> <tr><td>xii</td><td>UD-Q4_K_M</td><td>0.007054</td><td>14.99</td><td>4.79</td></tr> <tr><td>xiii</td><td>UD-Q4_K_XL</td><td>0.005210</td><td>16.01</td><td>5.11</td></tr> <tr><td>xiv</td><td>Q4_1</td><td>0.009603</td><td>16.06</td><td>5.13</td></tr> <tr><td>xv</td><td>UD-Q5_K_S</td><td>0.003619</td><td>17.04</td><td>5.44</td></tr> <tr><td>xvi</td><td>UD-Q5_K_M</td><td>0.002839</td><td>18.07</td><td>5.77</td></tr> <tr><td>xvii</td><td>UD-Q5_K_XL</td><td>0.002432</td><td>19.10</td><td>6.10</td></tr> <tr><td>xviii</td><td>UD-Q6_K</td><td>0.001771</td><td>20.13</td><td>6.43</td></tr> <tr><td>xix</td><td>UD-Q6_K_M</td><td>0.001426</td><td>21.16</td><td>6.76</td></tr> <tr><td>xx</td><td>UD-Q6_K_L</td><td>0.001150</td><td>22.19</td><td>7.09</td></tr> <tr><td>xxi</td><td>UD-Q6_K_XL</td><td>0.000985</td><td>23.22</td><td>7.42</td></tr> <tr><td>xxii</td><td>UD-Q8_K_L</td><td>0.000726</td><td>25.78</td><td>8.23</td></tr> <tr><td>xxiii</td><td>Q8_0</td><td>0.000648</td><td>26.62</td><td>8.50</td></tr> <tr><td>xxiv</td><td>UD-Q8_K_XL</td><td>0.000503</td><td>28.76</td><td>9.19</td></tr> </tbody> </table></div> <p> For example, Unsloth&rsquo;s UD-IQ3_S (vii) has concerning 20% lesser KLD than the likewise sized smallest Lite example (Lite-1): 0.028759 versus 0.035875. Yet its total benchmark mark is lower: 95.55% versus 97.33% of BF16. </p> <p> If lesser KLD were adequate to position these models by project performance, the benchmark ordering should have followed it. </p> <p> <strong>It did not.</strong> </p> <p> The item is not that KLD is useless. It is that a fidelity ranking is not a task-performance ranking. This is the difference explored in our <a href="https://en.mycoding.id/category/technology" target="_blank">KLD evaluation blog</a>. Our <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">related document on KLD and quantization fidelity metrics</a> was additionally lately accepted to the <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">EMNLP</a> Industry Track. </p> <h3>Lite held up</h3> <p> Naturally, we made additional plots. </p> <p> Here, we display the RTX Pro 6000 since it can modify the complete comparison. Each model&rsquo;s benchmark mark is reused throughout the GPU plots; the measured throughput and the set of displayed models change. </p> <figure> <img src="https://byteshape.com/blogs/images/quality_vs_tps_lite_RTX_Pro_6000.png" alt=" ShapeLearn, ShapeLearn-Lite, and Unsloth Dynamic v3"> <figcaption> RTX Pro 6000: ShapeLearn, ShapeLearn-Lite, and Unsloth Dynamic v3 <span>Tap <em>Show Legend</em> below for example details.</span> </figcaption> </figure> <figure> <figcaption> RTX Pro 6000: ShapeLearn, ShapeLearn-Lite, and Unsloth Dynamic v3 <span>Hover complete the bubbles, or click <em>Show Legend</em> below, for example details.</span> </figcaption> </figure> Show Legend <div><table readabilitydatatable="1"> <thead><tr><th>#</th><th>Model</th><th>Acc</th><th>TPS</th><th>BPW</th></tr></thead> <tbody> <tr><td colspan="5">ShapeLearn (this release)</td></tr> <tr><td>GPU-1</td><td>IQ2_XXS-2.56bpw</td><td>0.9304</td><td>116.11</td><td>2.56</td></tr> <tr><td>GPU-2</td><td>IQ3_XXS-2.88bpw</td><td>0.9656</td><td>108.01</td><td>2.88</td></tr> <tr><td>GPU-3</td><td>IQ3_XS-3.01bpw</td><td>0.9726</td><td>105.44</td><td>3.01</td></tr> <tr><td>GPU-4</td><td>IQ3_S-3.23bpw</td><td>0.9872</td><td>101.11</td><td>3.23</td></tr> <tr><td>GPU-5</td><td>IQ4_XS-3.84bpw</td><td>0.9963</td><td>90.42</td><td>3.84</td></tr> <tr><td colspan="5">ShapeLearn-Lite</td></tr> <tr><td>Lite-1</td><td>IQ3_S-3.44bpw</td><td>0.9733</td><td>98.74</td><td>3.45</td></tr> <tr><td>Lite-2</td><td>IQ4_XS-3.67bpw</td><td>0.9802</td><td>94.48</td><td>3.68</td></tr> <tr><td>Lite-3</td><td>IQ4_XS-4.00bpw</td><td>0.9880</td><td>89.85</td><td>4.00</td></tr> <tr><td>Lite-4</td><td>IQ4_XS-4.40bpw</td><td>0.9856</td><td>85.03</td><td>4.40</td></tr> <tr><td>Lite-5</td><td>Q5_K_S-4.72bpw</td><td>0.9909</td><td>79.75</td><td>4.72</td></tr> <tr><td>Lite-6</td><td>Q5_K_M-5.60bpw</td><td>0.9919</td><td>70.28</td><td>5.60</td></tr> <tr><td colspan="5">Unsloth</td></tr> <tr><td>A</td><td>UD-IQ2_S</td><td>0.8633</td><td>114.81</td><td>2.49</td></tr> <tr><td>B</td><td>UD-Q2_K_XL</td><td>0.9572</td><td>106.95</td><td>2.82</td></tr> <tr><td>C</td><td>UD-IQ3_XXS</td><td>0.9359</td><td>100.51</td><td>3.14</td></tr> <tr><td>D</td><td>UD-IQ3_S</td><td>0.9555</td><td>95.53</td><td>3.47</td></tr> <tr><td>E</td><td>UD-Q3_K_XL</td><td>0.9760</td><td>90.88</td><td>3.80</td></tr> <tr><td>F</td><td>UD-IQ4_XS</td><td>0.9920</td><td>86.73</td><td>4.13</td></tr> <tr><td>G</td><td>UD-Q4_K_S</td><td>0.9877</td><td>82.21</td><td>4.46</td></tr> <tr><td>H</td><td>UD-Q4_K_M</td><td>0.9703</td><td>78.58</td><td>4.79</td></tr> <tr><td>I</td><td>UD-Q4_K_XL</td><td>0.9871</td><td>74.75</td><td>5.12</td></tr> <tr><td>J</td><td>UD-Q5_K_S</td><td>0.9878</td><td>71.00</td><td>5.44</td></tr> <tr><td>K</td><td>UD-Q5_K_M</td><td>0.9897</td><td>67.71</td><td>5.77</td></tr> <tr><td>L</td><td>UD-Q5_K_XL</td><td>0.9905</td><td>65.52</td><td>6.10</td></tr> </tbody> </table></div> <p> Leaving the complete ShapeLearn models apart for a moment, three of the six ShapeLearn-Lite models sit on the Lite-versus-Unsloth frontier: the three smallest Lite models, the lighter orange bubbles labelled 1-3. </p> <p> Of the dozen Unsloth v3 models shown, three additionally sit on that frontier: UD-IQ2_S (A), UD-Q2_K_XL (B), and UD-IQ4_XS (F). UD-IQ4_XS (F) is a powerful higher-quality point, during Lite earns its places in the center of the range. </p> <p> Add the five complete ShapeLearn models rear in (the darker orange bubbles), and they obtain complete the complete frontier. </p> <p> Lite was never meant to be the final result. It motionless held its own anywhere it mattered. </p> <h2 id="speculative-decoding">Speculative Decoding</h2> <p> We additionally evaluated MTP and DFlash2 alongside the new models, using 3 outline tokens for MTP and 7 outline tokens for DFlash2. Both methods risen throughput for all five ShapeLearn models on all six GPUs tested. </p> <p> DFlash2 was faster than MTP in nearly all cases. Across the complete lineup, DFlash2 reached 1.34-2.10x the baseline next-token prediction (NTP) throughput, during MTP reached 1.28-1.66x. </p> <p> We measured alongside the sampling parameters Qwen recommends for thinking mode, complete a varied set of agentic coding, mathematics, and general-knowledge requests. The speedups would apt be larger under greedy decoding, but temperature-based sampling improved reflects genuine usage. </p> <p> The fig below shows NTP, MTP, and DFlash2 throughput for all GPU. The norm axis is the target-model benchmark mark reported above. These parcels do not independently established norm equivalence between decoding methods. </p> <figure> <img src="https://byteshape.com/blogs/images/quality_vs_tps_specdec_all.png" alt="Tokens per second vs norm for NTP, MTP and DFlash2 on all six GPUs"> <figcaption> Tokens per second vs norm (NTP vs MTP vs DFlash2), one panel per GPU. MTP uses 3 outline tokens, DFlash2 uses 7. <span>Tap <em>Show Legend</em> below for example details.</span> </figcaption> </figure> <figure> <figcaption> Tokens per second vs norm (NTP vs MTP vs DFlash2), one panel per GPU. MTP uses 3 outline tokens, DFlash2 uses 7. <span>Hover complete the bubbles, or click <em>Show Legend</em> below, for example details.</span> </figcaption> </figure> Show Legend <div><table readabilitydatatable="1"> <thead><tr><th>#</th><th>Model</th><th>Acc</th><th>NTP TPS</th><th>MTP TPS</th><th>DFlash2 TPS</th><th>BPW</th></tr></thead> <tbody> <tr><td colspan="7">RTX Pro 6000 (96 GB)</td></tr> <tr><td>GPU-1</td><td>IQ2_XXS-2.56bpw</td><td>0.9304</td><td>116.11</td><td>165.52 (1.43x)</td><td>172.01 (1.48x)</td><td>2.56</td></tr> <tr><td>GPU-2</td><td>IQ3_XXS-2.88bpw</td><td>0.9656</td><td>108.01</td><td>153.48 (1.42x)</td><td>165.94 (1.54x)</td><td>2.88</td></tr> <tr><td>GPU-3</td><td>IQ3_XS-3.01bpw</td><td>0.9726</td><td>105.44</td><td>152.19 (1.44x)</td><td>166.03 (1.57x)</td><td>3.01</td></tr> <tr><td>GPU-4</td><td>IQ3_S-3.23bpw</td><td>0.9872</td><td>101.11</td><td>146.85 (1.45x)</td><td>164.24 (1.62x)</td><td>3.23</td></tr> <tr><td>GPU-5</td><td>IQ4_XS-3.84bpw</td><td>0.9963</td><td>90.42</td><td>145.69 (1.61x)</td><td>150.83 (1.67x)</td><td>3.84</td></tr> <tr><td colspan="7">RTX 5090 (32 GB)</td></tr> <tr><td>GPU-1</td><td>IQ2_XXS-2.56bpw</td><td>0.9304</td><td>119.13</td><td>164.44 (1.38x)</td><td>175.53 (1.47x)</td><td>2.56</td></tr> <tr><td>GPU-2</td><td>IQ3_XXS-2.88bpw</td><td>0.9656</td><td>110.78</td><td>156.63 (1.41x)</td><td>175.97 (1.59x)</td><td>2.88</td></tr> <tr><td>GPU-3</td><td>IQ3_XS-3.01bpw</td><td>0.9726</td><td>108.08</td><td>155.19 (1.44x)</td><td>171.97 (1.59x)</td><td>3.01</td></tr> <tr><td>GPU-4</td><td>IQ3_S-3.23bpw</td><td>0.9872</td><td>103.57</td><td>148.34 (1.43x)</td><td>169.69 (1.64x)</td><td>3.23</td></tr> <tr><td>GPU-5</td><td>IQ4_XS-3.84bpw</td><td>0.9963</td><td>93.66</td><td>147.00 (1.57x)</td><td>166.57 (1.78x)</td><td>3.84</td></tr> <tr><td colspan="7">RTX 4090 (24 GB)</td></tr> <tr><td>GPU-1</td><td>IQ2_XXS-2.56bpw</td><td>0.9304</td><td>78.67</td><td>111.73 (1.42x)</td><td>135.39 (1.72x)</td><td>2.56</td></tr> <tr><td>GPU-2</td><td>IQ3_XXS-2.88bpw</td><td>0.9656</td><td>72.89</td><td>108.40 (1.49x)</td><td>132.20 (1.81x)</td><td>2.88</td></tr> <tr><td>GPU-3</td><td>IQ3_XS-3.01bpw</td><td>0.9726</td><td>71.12</td><td>107.21 (1.51x)</td><td>133.38 (1.88x)</td><td>3.01</td></tr> <tr><td>GPU-4</td><td>IQ3_S-3.23bpw</td><td>0.9872</td><td>67.77</td><td>101.47 (1.50x)</td><td>131.12 (1.93x)</td><td>3.23</td></tr> <tr><td>GPU-5</td><td>IQ4_XS-3.84bpw</td><td>0.9963</td><td>59.16</td><td>98.25 (1.66x)</td><td>124.15 (2.10x)</td><td>3.84</td></tr> <tr><td colspan="7">RTX 3090 (24 GB)</td></tr> <tr><td>GPU-1</td><td>IQ2_XXS-2.56bpw</td><td>0.9304</td><td>53.03</td><td>68.19 (1.29x)</td><td>70.94 (1.34x)</td><td>2.56</td></tr> <tr><td>GPU-2</td><td>IQ3_XXS-2.88bpw</td><td>0.9656</td><td>51.20</td><td>65.76 (1.28x)</td><td>68.90 (1.35x)</td><td>2.88</td></tr> <tr><td>GPU-3</td><td>IQ3_XS-3.01bpw</td><td>0.9726</td><td>50.75</td><td>65.82 (1.30x)</td><td>68.40 (1.35x)</td><td>3.01</td></tr> <tr><td>GPU-4</td><td>IQ3_S-3.23bpw</td><td>0.9872</td><td>49.49</td><td>64.50 (1.30x)</td><td>66.34 (1.34x)</td><td>3.23</td></tr> <tr><td>GPU-5</td><td>IQ4_XS-3.84bpw</td><td>0.9963</td><td>45.79</td><td>66.55 (1.45x)</td><td>63.93 (1.40x)</td><td>3.84</td></tr> <tr><td colspan="7">RTX 4080 (16 GB)</td></tr> <tr><td>GPU-1</td><td>IQ2_XXS-2.56bpw</td><td>0.9304</td><td>62.01</td><td>87.06 (1.40x)</td><td>101.63 (1.64x)</td><td>2.56</td></tr> <tr><td>GPU-2</td><td>IQ3_XXS-2.88bpw</td><td>0.9656</td><td>56.84</td><td>81.25 (1.43x)</td><td>96.90 (1.70x)</td><td>2.88</td></tr> <tr><td>GPU-3</td><td>IQ3_XS-3.01bpw</td><td>0.9726</td><td>55.14</td><td>79.74 (1.45x)</td><td>96.95 (1.76x)</td><td>3.01</td></tr> <tr><td>GPU-4</td><td>IQ3_S-3.23bpw</td><td>0.9872</td><td>52.43</td><td>76.88 (1.47x)</td><td>94.09 (1.79x)</td><td>3.23</td></tr> <tr><td>GPU-5</td><td>IQ4_XS-3.84bpw</td><td>0.9963</td><td>45.74</td><td>74.01 (1.62x)</td><td>87.49 (1.91x)</td><td>3.84</td></tr> <tr><td colspan="7">RTX 5060 Ti (16 GB)</td></tr> <tr><td>GPU-1</td><td>IQ2_XXS-2.56bpw</td><td>0.9304</td><td>38.05</td><td>50.54 (1.33x)</td><td>56.71 (1.49x)</td><td>2.56</td></tr> <tr><td>GPU-2</td><td>IQ3_XXS-2.88bpw</td><td>0.9656</td><td>35.41</td><td>47.94 (1.35x)</td><td>52.57 (1.48x)</td><td>2.88</td></tr> <tr><td>GPU-3</td><td>IQ3_XS-3.01bpw</td><td>0.9726</td><td>34.50</td><td>47.93 (1.39x)</td><td>52.28 (1.52x)</td><td>3.01</td></tr> <tr><td>GPU-4</td><td>IQ3_S-3.23bpw</td><td>0.9872</td><td>33.05</td><td>46.25 (1.40x)</td><td>50.34 (1.52x)</td><td>3.23</td></tr> <tr><td>GPU-5</td><td>IQ4_XS-3.84bpw</td><td>0.9963</td><td>29.15</td><td>45.82 (1.57x)</td><td>47.01 (1.61x)</td><td>3.84</td></tr> </tbody> </table></div> <p> There is additionally a recollection tradeoff between the two approaches. The embedded quantized MTP weights add lone concerning 250 MB to the model, and if MTP is not used, these weights are not loaded into GPU memory. In comparison, the 4-bit DFlash2 outline example is concerning 1.1 GB, so enabling DFlash2 requires approximately 1.1 GB of additional GPU memory. </p> <p> Packaging MTP as a distinct GGUF document would mostly eliminate this advantage. The standalone example would need its own MTP embedding and output layers, which are by far its largest tensors, bringing its recollection footprint to approximately 1 GB as well. </p> <p> In addition, DFlash2 in llama.cpp currently does not assistance depiction inputs, which is an crucial deliberation for multimodal use cases. </p> <h2>Benchmarking Methodology</h2> <p> We measure all reported models throughout a set of instruct and thinking benchmarks. </p> <p> Instruct benchmarks: </p> <ul> <li><strong>GSM8K</strong> for math</li> <li><strong>IFEval</strong> for education following</li> <li><strong>MMLU</strong> for broad knowledge</li> <li><strong>LiveCodeBench V6*</strong> for coding</li> <li><strong>Multi-IF</strong> for multi-turn and multilingual education following</li> <li><strong>ACEBench</strong> for tool use and agentic tasks</li> </ul> <p> Thinking benchmarks: </p> <ul> <li><strong>ACEBench</strong> for tool use and agentic tasks</li> <li><strong>Multiple HumanEval</strong> for coding</li> <li><strong>BFCL V4*</strong> for tool calling and agentic tasks</li> </ul> <p> For the thinking benchmarks, we used Qwen 3.8&rsquo;s average thinking setting. </p> <p> For all benchmark, the mark of a quantized example is normalized by the mark of the corresponding BF16 model. The general reported mark is the average of these normalized benchmark scores. </p> <p> Our LiveCodeBench V6* evaluation includes problems from January 1, 2024 onward, excluding the 2023 problems. We established the 2023 problems to be comparatively uncomplicated for current models, alongside most models achieving extremely elevated scores on them. As a result, they provision constricted bias between models during adding significant evaluation time. </p> <p> For BFCL V4*, we measure the following eight subsets: </p> <ul> <li>live_simple</li> <li>live_parallel</li> <li>live_parallel_multiple</li> <li>live_relevance</li> <li>multi_turn_base</li> <li>multi_turn_miss_func</li> <li>multi_turn_miss_param</li> <li>multi_turn_long_context</li> </ul> <p> All evaluations were run alongside llama.cpp b10430. For the two instruct and thinking experiments, we use the sampling parameters recommended by Qwen for the corresponding mode. </p> <h2>Conclusion</h2> <p> ShapeLearn-Lite did what it was designed to do. It got helpful Qwen 3.8 27B quants onto 12 to 24 GB GPUs quickly, and it held up improved than its KLD ranking suggested. </p> <p> Full ShapeLearn goes further. It improves the measured quality-speed trade-offs complete Lite and contributes five frontier models throughout all six tested GPUs. </p> <p> <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-5</a> is our default advice anywhere it fits, reaching 99.63% of BF16&rsquo;s total benchmark score. When recollection is tight, <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" rel="noopener noreferrer">GPU-4</a> is motionless extremely competitive: nearly 99% of BF16 at a much smaller size, and faster. </p> <p> KLD remains useful, but it is not a task-performance leaderboard. Fidelity metrics inform us how much the model&rsquo;s distributions changed under a particular measurement. Benchmarks inform us whether those changes matter on the tasks we tested. </p> <p> We were impatient. This time, it worked out beautiful well. </p> </div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/shapelearn-qwen-3-8-27b-13-1-gb-vram-68660</guid> <pubDate>Fri, 18 Sep 2026 03:04:19 +0700</pubDate> <author><![CDATA[support@mycoding.id (Riki Setiawan)]]></author> </item> <item> <title><![CDATA[Ask A Monk – A digital wilderness for thoughts alongside no contiguous answer]]></title> <description><![CDATA[Ask A Monk – A digital wilderness for thoughts alongside no contiguous answer. Comments]]></description> <media:thumbnail url="https://askamonk.online/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/ask-a-monk-a-digital-wilderness-for-thoughts-alongside-no-contiguous-answer-68647</link> <content:encoded><![CDATA[<div><p>Some things are easier to inform a stranger.</p></div><div><p>Some questions remain alongside us for years.</p><p>We transport them through the noise of regular life&mdash;</p><p>until a quiescent instant brings them back.</p><p>Sometimes we halt asking since we think nobody would understand.</p><p>But another individual has lived through the extremely identical night.</p><p>They cannot fix your life. But they may listen, and assistance you transport it for a while.</p><p>That's what strangers do for all other. Here.</p></div><div><p>To the strangers who keep answering.</p><p>You don't depart a name. We don't cognize who you are. But all honest reply, written for person you'll never meet, is what makes this location real.</p><p>Thank you.</p></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/ask-a-monk-a-digital-wilderness-for-thoughts-alongside-no-contiguous-answer-68647</guid> <pubDate>Fri, 18 Sep 2026 02:34:08 +0700</pubDate> <author><![CDATA[support@mycoding.id (Doris Putra)]]></author> </item> <item> <title><![CDATA[Telstra outage: The night a network decided the twelvemonth was 2006]]></title> <description><![CDATA[Telstra outage: The night a network decided the twelvemonth was 2006. Comments]]></description> <media:thumbnail url="https://www.netnod.se/sites/default/files/styles/opengraph/public/styles/banner/public/2023-06/NETNOD_Time_v4.png?itok=o_C83R9A"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/telstra-outage-the-night-a-network-decided-the-twelvemonth-was-2006-68644</link> <content:encoded><![CDATA[<div> <div><p><span><span><span><span><span><span>The contrary is really the case. If we do not have a average understanding of what &ldquo;now&rdquo; is, a lot of things we obtain for granted volition halt working.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>This summer, Australia realized this the difficult way. Let me obtain this chance to provision an example of why period matters to a contemporary society, what happened in this particular case, and what our key takeaways are.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>On 8 July 2026, a ample part of the mobile network run by Australia's largest division phone controller <a href="https://en.mycoding.id/category/technology" target="_blank" title="Telstra web page">Telstra</a> stopped operating alongside sound calls not getting through or content messages that didn't arrive. There were equal calls to Australia's emergency figure that did not get through. But the outage affected systems equal additional apart, specified as trains, fee terminals, ticketing systems and EV chargers being disrupted.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>No networks were attacked. Nobody accidentally cut the fiber. All systems had electric power. The culprit, you may ask? A sole GPS receiver in a sole chassis in Melbourne coming rear from scheduled care believing the twelvemonth was 2006, and the remainder of the network was persuaded to accept it.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Telstra commissioned an <a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener" target="_blank" title="The TAP report">independent assessment from the business Technology Audit Partners (TAP)</a> and the study is a extremely engaging read, since the identical category of nonaccomplishment could appear in many crucial services, including several we depend on to keep group alive.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>In command for many of these systems to function, period being correct, or at smallest the identical everywhere, is crucial. And as everyone in the endeavor knows, &ldquo;correct&rdquo; is a related term. There is no exact time, lone period held inside a certain border of a reference. How broad that border may be depends entirely on what you are doing or in which endeavor you run in.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Running a mobile network, akin Telstra, is concerning as time-dependent as a endeavor gets.&nbsp;</span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>Modern mobile communication explains why period matters</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>Modern division phone protocols volition not activity without precision time. Mobile networks distinct uplink data from downlink by either FDD (Frequency Division Duplex) or TDD (Time Division Duplex).&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>FDD gives all direction its own piece of spectrum, so the two can run continuously without colliding.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>TDD alternatively uses an complete sole obstacle of spectrum for the two directions, alternating between transmitting and receiving in extremely abbreviated intervals.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Since far additional data normally flows downward than up, FDD's fixed ratios depart much of the uplink spectrum idle, during TDD can change the proportion to equivalent the genuine traffic. That is why most contemporary 5G spectrum, including Sweden's chief 5G collection at 3.5 GHz, is TDD.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>It is additionally why TDD depends on exact time: all division on the identical frequence has to toggle direction in stage alongside all other. A division that lets its clock drift volition transmit data into its neighbour's obtain window, alongside the outcome that the network volition commencement jamming itself.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Rather than allocating spectrum on keeping the two directions apart, the industry chose to depend on period accuracy, and accepted a difficult dependency on all division agreeing concerning whenever "now" is. Thus, being reliant on period is a scheme choice.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>However, stated how much we all depend on the systems being capable to concur on &ldquo;now&rdquo;, it is slightly puzzling that period is not stated as much deliberation as it deserves. And that is a instruction that is extremely apparent from the published report.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>So, what really happened?</span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>Architecture of period distribution.</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>To commencement with, it is critical to comprehend the architecture of period distribution.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Time allocation protocols all build hierarchies; Network Time Protocol (NTP), which Telstra has deployed according to the report, expresses its ranking in strata.</span></span></span></span></span></span></p> <ul> <li><span><span><span><span><span><span>Stratum 0 is the citation itself, for case a GPS receiver, or Netnod&rsquo;s nuclear clocks.</span></span></span></span></span></span></li> <li><span><span><span><span><span><span>Stratum 1 is a device synchronised immediately to a stratum 0 reference, for example the NTP servers that Netnod provides.</span></span></span></span></span></span></li> <li><span><span><span><span><span><span>Stratum 2 synchronises from a stratum 1 server, stratum 3 from a stratum 2, and so on.</span></span></span></span></span></span></li> </ul> <p><span><span><span><span><span><span>In Telstra's case, that ranking had a particular shape, at smallest to commencement with. This scheme from 2010 had at the top stratum 1 sources at <a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener" target="_blank">Australia's National </a></span></span></span></span></span></span><a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener" target="_blank">Measurement</a><span><span><span><span><span><span><a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener" target="_blank"> Institute (NMI),</a> which maintains the country's national period scale, much as the <a href="https://en.mycoding.id/category/technology" target="_blank" rel="noopener" target="_blank">Research Institute of Sweden</a> </span></span></span></span></span></span><span><span><span><span><span><span>does in Sweden. Telstra drew period from those external references into two stratum 2 servers of its own, in Sydney and Melbourne, which in rotate fed three stratum 3 servers, in Sydney, Melbourne and Perth.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Below them sat the clients. In this environment that does not average laptops or phones, but the complete mobile network infrastructure, for case nodes handling handovers between division sites. There were thousands of nodes all complete a huge earth discipline and all one of them needed to have the identical idea of what &ldquo;now&rdquo; is, to inside a few millionths of a second.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>The TAP study describes this setup as &ldquo;fit for purpose&rdquo; and that it gave Telstra &ldquo;a extremely dependable and authoritative citation period origin from NMI&rdquo;.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Stratum in itself does not say if the period is accurate, lone the figure of steps from a server to its reference. A stratum 1 server alongside a bad period citation is motionless a stratum 1 server.</span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>Protection against bad period sources</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>NTP volition hence need defence against bad period sources. In fact, it has two distinct ones, and they do distinct things, the two of which assume they are autonomous from all other.</span></span></span></span></span></span></p> <ol> <li><span><span><span><span><span><span>Among alternatively comparable candidates, the lesser stratum carries additional weight. This is the scheme that determines which origin a client settles on.</span></span></span></span></span></span><br> &nbsp;</li> <li><span><span><span><span><span><span>NTP compares multiple sources and discards those that differ alongside the rest. A sole origin claiming an implausible period is outvoted and dropped, despite of how authoritative it claims to be.</span></span></span></span></span></span></li> </ol> <p><span><span><span><span><span><span>Neither defence is particular to any particular disruption; together they defend against a damaged receiver, a misconfigured server, or an external attack. But these protective measures lone activity if the period sources that the clients hear to are genuinely autonomous of all other.</span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>Two ways to deploy NTP</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>NTP can be deployed in two ways. In client/server manner the association is declared and directional: a node takes period from those servers, and nothing else.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>The 2010 Telstra setup was in actuality specified a client/server model. Peering was allowed, but lone at the identical stratum flat and the TAP report, as noted in the beginning, described this setup as "fit for purpose&rdquo;.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>The another way is a symmetric (peering) mode, anywhere nodes toggle period mutually and resolve on whichever origin the algorithms currently favour.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Peering is elastic and survives the defeat of a origin gracefully. But it additionally method the topology in manufacturing is emergent fairly than designed. What you documented is a setup that could quietly rearrange itself into a form no one always approved.</span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>Telstra's 2020 upgrade</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>In 2020 the mobile center timing scheme was upgraded, and new hardware was installed, including a new NTP timing chassis. That facility introduced a few changes.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>The archetypal one was forced. The new chassis could not let a stratum 2 server nourish a stratum 3 server inner the identical box, so the two had to be wired throughout all other: Sydney's stratum 3 took its period from Melbourne's stratum 2, and Melbourne's stratum 3 from Sydney's.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>In reality, alternatively of having two stratum 2 sources, all location was remaining alongside lone one. The TAP study notes that this degradation in redundancy was known and accepted. A second alter was leaving the client/server-model in favor of the peering model. The study is not apparent concerning the motivation, but it is sensible to propose that one wanted compensation for this defeat of redundancy. With all location having fair one origin alternatively of two, letting the servers discover their own replacements could provision the belief of improved resilience.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>The TAP study plainly states that the defeat of resilience was known. However, it fails to discover any evidence that the resulting hazard of so-called &ldquo;timing loops&rdquo; was identified.</span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>What is a timing loop?</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>A timing iteration is the network equal of believing a rumour to be true by asking three group who all heard it from all other. Each one agrees, so it must be true. NTP plant basically the identical way: it compares multiple sources and discards whichever disagrees alongside the rest.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>As you may recall from above, NTP has two defenses against bad period sources. The second one protects against timing loops, but lone if the sources are autonomous of all other. In specified a loop, sources that appear autonomous are in fact taking their period from all other, either immediately or indirectly by tracing rear through a shared reference.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Once a incorrect value is circulating, the sources volition commencement agreeing alongside all another and the ballot volition be in favor of the majority&rsquo;s opinion, equal although the value is wrong.</span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>The protocol worked. The architecture did not.</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>Both of NTP&rsquo;s types of defenses came to be impaired in Melbourne, but five years apart. Not deliberately, but by choices, all of them defensible on their own terms: a hardware limitation had to be worked around, and later, a recurring error had to be stopped. Each decision solved the issue in forefront of it. Nobody was asked to appearance at the sum of all actions.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>The second defence was the archetypal one to be disabled. The introduction of peering in 2020 made timing loops possible, and five years later, specified a iteration showed up. In Melbourne a server started taking period from a node below itself. That should have set off alert bells. However, since exact period was motionless reaching the network by another paths, no genuine damage was done. The underlying problem, the circular dependency, was there, but no one issued a ticket concerning it.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>The genuine grievance was fairly obvious. Melbourne kept losing communication alongside its lone stratum 2 origin in Sydney. With no fallback configuration, the server used peering to discover a replacement, sometimes a node below it in the hierarchy.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>In October 2025, engineers activated the GPS receiver that had been sitting unused in the Melbourne chassis since 2020 and connected it to the stratum 3 server, as a replacement for the unreliable Sydney source.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>By all apparent measure it seemed to have worked. Melbourne now had a dependable origin of its own and the alarms stopped. But the fix lone addressed the symptom, not the base cause. Nobody established why Melbourne kept losing its Sydney origin in the archetypal place. The underlying issue was motionless current in the network by July 2026.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>To create things equal worse, nobody seems to have understood what activating the GPS cardstock did to the architecture. By adding the GPS card, the Melbourne server went from a stratum 3 server to stratum 1. The engineers didn&rsquo;t add a origin next to the another ones. By promoting a server to the identical position as the national&nbsp; reference, a new origin was created at the extremely top. As far as NTP is concerned, they transport the identical weight.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Suddenly this GPS cardstock in a chassis in Melbourne, installed as a workaround and reviewed by no one, became the most authoritative server in the ranking for the largest mobile network in Australia.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Needless to say, practically nothing of the 2010 scheme remained.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>By July 2026 the network had a sole origin that was the two the most authoritative applicant accessible and unopposed, since the sources that could have contradicted it were downstream of it.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>This behavior was extremely difficult to spot. The network served exact period all day for years. Architectures akin this do not normally degrade gradually. They work, and they keep working, correct up until they stop.</span></span></span></span></span></span></p> <h2>GPS week figure rollover</h2> <p><span><span><span><span><span><span>The second component is a well-known asset of GPS.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>GPS broadcasts period as a week figure affirmative seconds-into-week, counted from an era that began in first January 1980. In the chief civic GPS signal, the week figure site is 10 bits, ie a maximum of 1,023 weeks. Every 1,024 weeks, or 19.6 years, the oppose starts over. This has happened twice: in August 1999 and in April 2019.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Working out which figure of era it is and adding the correct multiple of 1,024 weeks, is the job of the receiver. And the data needs to be in its firmware.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>The issue that occurred in Australia was not a delayed consequence of any of the GPS rollovers. The cardstock in Melbourne had passed through the second rollover in 2019 without trouble, since a receiver that keeps operating additionally keeps counting. Each new week is merely added to the one before, and the inquiry of which era it belongs to is never raised.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>However, formerly you rotate it off, that cognition is gone. When it is turned on again, the receiver has to activity out the era from scratch, and all it has to go on is what its firmware assumes. The firmware on the Melbourne cardstock had not been updated. Upon start-up it cut rear on the before era and placed the date 1,024 weeks in the past.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>What happened next is finest understood as the two defences being impaired whenever they were needed the most.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>The archetypal defence, the lesser stratum carrying additional weight, classified the Melbourne server highest, since the attached GPS cardstock promoted it to a stratum 1 server. This was according to NTP protocol and thus steered clients towards the one origin which was 1,024 weeks wrong.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>The second defence, outliers being voted down, was never engaged, since nothing was remaining to acknowledge Melbourne as an outlier. NTP does not ask whether a date is plausible; it asks whether a origin disagrees alongside the others. The 2010 setup had two stratum 2 servers. If one of them had started announcing the twelvemonth 2006, the another one would have stayed alongside 2026 and no agreement would have been reached. That would not have been ideal, but at smallest the incorrect date would not have spread.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>But Melbourne's stratum 2 equal had been switched off by the extremely identical chassis replacement, and the remaining sources were downstream of Melbourne. As the incorrect date spread, they began reporting it back. Agreement grew, and accord is what the algorithm is looking for.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>So the clients did what they were built to do. Once a bulk of a client's sources accepted on November 2006, the client accepted the date, and the additional the date travelled, the additional convincing it became.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Neither defence malfunctioned. Both had merely been deprived of what they depend on: one needed a origin value ranking highest, the another needed sources capable of disagreeing. Two decisions, five years apart, had removed all in turn.</span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>Key takeaways from the incident</span></span></span></span></span></span></h2> <h3><span><span><span><strong><span><span>Prioritise and categorize period and frequence allocation as crucial infrastructure. Manage it accordingly</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>Document all functions that can obtain the entire network alongside them, and put timing on that list. Classification is not paperwork; it is what determines alter hazard category, assessment depth, staffing levels, monitoring safety and prosperity priority. Telstra's study is, at bottom, the narrative of one missing admission on that catalog and everything that followed from it.</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Document the entire infrastructure, and all alter to it</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>There was no chief repository of NTP configuration, no aureate configuration, and no documented document of the servers another than the devices themselves. Without records you cannot execute meaningful pre-checks, you cannot measure impact, and during an event you cannot inform what "correct" looks like.</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Build redundancy in competence</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>Two engineers performed the change, and the two were on mandatory stand-down before the consequences of the GPS cardstock reboot were understood.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Depth of ability is a resilience asset exactly akin a redundant power feed. A sole specialist, or a pair, method no second opinion, and no one to ask in the center of the night whenever care is normally done.</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Run a safety inspection of the period and frequence infrastructure</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>Treat timing as an assault exterior akin any another and analyze it accordingly.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Start alongside anywhere period enters the organisation. A GNSS indication arriving from area is feeble and unauthenticated, and can be jammed or spoofed by cheap equipment. If that indication is your lone reference, person exterior your construction can decide what period you think it is.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Then appearance at how it travels. Time distributed complete a shared network can be intercepted and manipulated on its way to the client.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Then appearance at who is allowed to speak. Which servers may your clients obtain period from, and who decided that? A origin that nobody authorised is a origin nobody is checking.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>And do not halt at deliberate attack. A timing iteration produces much the identical consequence as a prosperous spoofing attack: a origin the network trusts, delivering a value nobody can contradict.&nbsp;</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Use point-to-point connections</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>It is uncomplicated to see the petition of peering. It feels akin resilience alongside sources that rear all another up: a network that heals itself whenever a node disappears. But redundancy that arranges itself is not redundancy you can depend on.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>There are safer ways to accomplish a akin flat of robustness. Netnod runs dedicated point-to-point connections: all association is known and documented. Every origin is known, and the topology stays the way we designed it. Redundancy comes from multiple autonomous sources deliberately configured, not from nodes negotiating amongst themselves.</span></span></span></span></span></span></p> <p><span><span><span><strong><span><span>Build an productive alert organisation</span></span></strong></span></span></span></p> <p><span><span><span><span><span><span>Alarms from the timing phase were not in the norm monitoring tools, and were reviewed lone during endeavor hours by a fistful of people. Client-side alarms carried neither the severity nor the item to run contiguous action. Getting this correct is organisational as much as technical: alarms attain 24x7 monitoring, severities indicate genuine consequence, all alert carries an education for what to do concerning it, and person owns the response. An alert no one is on call for is records at best, not detection.</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Use aureate installations</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>For all category of timing device, keep a known-good citation build and configuration under type control, and inspect regularly and automatically that what is deployed motionless matches it. The item is to rotate a inquiry akin "is this chassis correctly configured and patched?" from item lone an expert can answer, and lone slowly, into a difference anyone can run in seconds.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Telstra had nothing of the sort. The TAP study established no specified configuration and no document of what the servers should appearance akin another than the servers themselves. The missing firmware update on the Melbourne GPS cardstock had been there for six years, in plain sight. There was merely no automated procedure that would have flagged it to anyone.</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Upgrade and measure application continuously</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>The firmware fix for the rollover behavior existed and the vendor had published bulletins concerning it. Vendor notifications need a defined owner and a tracked way to action, and updates need to be applied on a agenda fairly than whenever item forces the issue.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Evaluate before deploying, in a lab, against the behavior you really depend on. Do not ignore to verify afterwards. The Telstra changes were completed without anyone checking that the chassis served the accurate date.</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Redundancy</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>Redundancy in timing means, not lone multiple sources, but autonomous ones that cannot converge on a average error.&nbsp; Two servers fed by the identical GNSS receiver is motionless one source, but counted twice.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Netnod's own assistance is built on the regulation of multiple autonomous nodes, all alongside autonomous nuclear clocks and redundant servers that are traceable to </span></span></span></span></span></span>Swedish National Time realization, UTC(SP)<span><span><span><span><span><span>.&nbsp;&nbsp;</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Replace equipment continuously</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>Timing infrastructure normally ages quietly. It keeps working, it rarely complains, and it is hence a natural applicant whenever the prosperity gets trimmed. There volition continually be another components anywhere the consequences of nonaccomplishment are additional apparent and hence gets prioritised.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Instead, scheme replacement on a rolling sequence and scheme the mark architecture archetypal fairly than accepting what new hardware installations enforce on you. Keeping existing infrastructure fit have to be funded alongside new projects, not be paid for alongside the remaining overs.</span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>Concluding remarks</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>The way Telstra handled the consequence deserves praise. Commissioning and publishing the autonomous assessment is commendable. All providers of crucial services, including Netnod, are improved off since of this.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>The most unsettling part is perchance that the outage occurred equal although NTP worked fair akin it was intended to do.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>The issue was everything about it. Architectural choices, prosperity cuts, low staffing level, deficiency of appropriate monitoring, ownership or documentation; it all occurred since no one really appreciated fair how critical period services can be.&nbsp;</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Let&rsquo;s try to alter that, shall we?</span></span></span></span></span></span></p> </div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/telstra-outage-the-night-a-network-decided-the-twelvemonth-was-2006-68644</guid> <pubDate>Fri, 18 Sep 2026 02:05:03 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[Goose: 1.16x faster than C++ and 1.12x than harmless Rust, during recollection safe]]></title> <description><![CDATA[Goose: 1.16x faster than C++ and 1.12x than harmless Rust, during recollection safe. Comments]]></description> <media:thumbnail url="https://opengraph.githubassets.com/d6b265b0181d34d8c4bb4033a8e6c5bbaac20d32c4b482ada58113b5fbdf3ca1/aardappel/goose"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/goose-1-16x-faster-than-c-and-1-12x-than-harmless-rust-during-recollection-safe-68645</link> <content:encoded><![CDATA[<div data-hpc="true" containertiming="hpc"><p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://github.com/aardappel/goose/raw/master/docs/logo/logo_black_fg_white_bg_mini.png" alt="The Goose programming language"></a></p> <p dir="auto">A memory-safe systems tongue that is faster than C++ and Rust, on less memory, alongside no allocator/GC and no life annotations.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank">Tutorial</a> &middot; <a href="https://en.mycoding.id/category/technology" target="_blank">Specification</a> &middot; <a href="https://en.mycoding.id/category/technology" target="_blank">Samples</a> &middot; <a href="https://en.mycoding.id/category/technology" target="_blank">Benchmarks</a> &middot; <a href="https://en.mycoding.id/category/technology" target="_blank">Standard library</a></p> <p dir="auto">Goose looks acquainted akin C or Rust, and is built on one idea: <strong>there is no heap</strong>. Every energetic value lives inline on a data stack the compiler manages, growth is a pointer bump, and range exit is the lone free. The remainder of the tongue is what it takes to create that activity for real programs, and what it buys is measurable.</p> <ul dir="auto"> <li><strong>Faster than C++ and than harmless Rust, during recollection safe.</strong> Over sixteen benchmarks Goose runs at 3.3x the speed of idiomatic C++, 1.16x hand-optimized C++ and 1.12x the finest harmless Rust, on 1.9x, 1.3x and 1.2x small memory (<a href="https://en.mycoding.id/category/technology" target="_blank">summary</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">full results</a>). The wins are structural: they arrive from things the another languages cannot express.</li> <li><strong>No allocator, no GC, no citation counting, no destructors.</strong> Memory is a handful of data stacks that the compiler assigns statically. Freeing a million-element construction is one store, nevertheless deeply it nests.</li> <li><strong>Nothing always moves.</strong> A citation into a expanding gathering stays valid for as long as the gathering does. You keep typed references anywhere C++ must reserve and harmless Rust retreats to u32 indices.</li> <li><strong>Memory harmless alongside zero annotations.</strong> No life syntax, no aliasing or exclusivity rules, no unsafe. The compiler infers what all citation is rooted in and objects to exactly one thing: outliving the owner.</li> <li><strong>Flat all the way down.</strong> A string, an gathering of strings, a document with variable-size sectors and an gathering of those records are all one contiguous block alongside no pointer in it. A document that is 160 bytes and an allocation in C++ is 29 bytes and none in Goose.</li> <li><strong>Enums that disbursal what they hold.</strong> Variable-mode ADTs provision all value its own variant's size fairly than the largest one's: 4x small recollection and 2x the speed of a Rust enum on the benchmark that exercises it.</li> <li><strong>Links narrower than pointers.</strong> A related citation stores a typed, checked link as a 1, 2 or 4-byte offset. Structures built from them are position independent, so your data construction is already its document format: preservation is a write, loading is a peruse affirmative a verification continue that rejects antagonistic bytes.</li> <li><strong>Everything is built in place, guaranteed.</strong> A value is constructed at its final destination through any degree of calls. items.push(parse(line)) writes the parsed document direct into the array, and returning a growable array by value expenses nothing.</li> <li><strong>Errors without plumbing.</strong> come back err from burden returns from a function any figure of frames up, statically checked, alongside no unwinder, no Result type and no ? on all call.</li> <li><strong>Threads that portion nothing.</strong> A employee is compiled as a distinct program with its own memory, and flat values cross typed queues as a memcpy. Data races, locks, atomics and recollection orderings do not be in the language.</li> <li><strong>Generics and higher-order functions alongside no overhead.</strong> An untyped parameter is generic. Function values are compile-time entities, so xs.filter() { it &gt; 0 } compiles to the iteration it looks akin and builds its result direct into its destination.</li> <li><strong>Plain C in, plain C out.</strong> Goose compiles to one C file, so it runs wherever a C compiler does and calls C immediately through extern fn. The bundled TinyCC backend compiles and runs a program in-process, alongside no build step.</li> </ul> <p dir="auto">The <a href="https://en.mycoding.id/category/technology" target="_blank">tutorial</a> walks through all of this by example, the <a href="https://en.mycoding.id/category/technology" target="_blank">specification</a> has the exact rules, and the <a href="https://en.mycoding.id/category/technology" target="_blank">benchmarks</a> have the numbers, losses included.</p> <p dir="auto">Only what is distinct concerning Goose is shown here. The <a href="https://en.mycoding.id/category/technology" target="_blank">tutorial</a> covers the identical dirt properly, and the <a href="https://en.mycoding.id/category/technology" target="_blank">samples</a> are twenty-six complete programs doing it for real.</p> <div dir="auto"><h3 tabindex="-1" dir="auto">One recollection model: stacks, and range exit is the free</h3><a href="https://en.mycoding.id/category/technology" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto">A program has the native call stack, fixed data and N data stacks, anywhere the compiler plant out N. A data stack is a ample address-space booking alongside a bump pointer, and there is no another memory. At most one resizable value is live per stack and it is continually on top, so growth never moves item and never checks a capacity. All of this is proved at compile time; the runtime keeps nothing but the bump pointers.</p> <div data-snippet-clipboard-copy-content=' u8[&gt;..] = []; // grow-only: growth is a pointer bump for i in 100000 { scratch.push((i % 256) as! u8); } print(&quot;round &quot;, round, &quot;: &quot;, scratch.len, &quot; bytes&quot;); } // the free: one shop to the stack top'><pre lang="goose">for circular in 3 { var scratch: u8[&gt;..] = []; // grow-only: growth is a pointer bump for i in 100000 { scratch.push((i % 256) as! u8); } print("round ", round, ": ", scratch.len, " bytes"); } // the free: one shop to the stack top </pre></div> <div dir="auto"><h3 tabindex="-1" dir="auto">Nothing moves, so references last growth</h3><a href="https://en.mycoding.id/category/technology" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <div data-snippet-clipboard-copy-content=" Item[&gt;..] = []; let archetypal .= items.push(Item { 1, 0.5 }); // a citation to component 0 for i in 2..1000001 { items.push(Item { i as i32, 0.0 }); } first.weight = 99.5; // motionless valid, a myriad pushes later"><pre lang="goose">struct Item { id: i32, weight: f32 } var items: Item[&gt;..] = []; let archetypal .= items.push(Item { 1, 0.5 }); // a citation to component 0 for i in 2..1000001 { items.push(Item { i as i32, 0.0 }); } first.weight = 99.5; // motionless valid, a myriad pushes later </pre></div> <p dir="auto">push returns a citation to the component it fair made, which is how data gets linked up during it is being built. A vector&lt;T&gt; or Vec&lt;T&gt; reallocates, so neither can commitment this, and it is anywhere a fine portion of the benchmark wins come from.</p> <div dir="auto"><h3 tabindex="-1" dir="auto">Safe references, no annotations</h3><a href="https://en.mycoding.id/category/technology" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto">Every citation and piece carries a fixed <em>root</em>, the changeable that limits its target's lifetime, and the entire life scheme is one rule: a citation must not outlive the changeable that owns its target, and must never see it at a wrong type. Roots are inferred and functions are specialized per root, so there is no syntax for any of it, and no aliasing or exclusivity rules either. When the checker objects, it names the two ends:</p> <div data-snippet-clipboard-copy-content=' u8[&gt;..] = []; format(inner, &quot;inner text&quot;); w = longest(outer, inner); // error: storing a citation established at inner, } // which does not outlive the destination (§9.2)'><pre lang="goose">fn longest(a: u8[:], b: u8[:]) -&gt; u8[:] { if a.len &gt;= b.len { a } alternatively { b } } var outer: u8[&gt;..] = []; var w = outer[..]; { var inner: u8[&gt;..] = []; format(inner, "inner text"); w = longest(outer, inner); // error: storing a citation established at inner, } // which does not outlive the destination (&sect;9.2) </pre></div> <p dir="auto">A piece T[:] is the worldwide "process a range" parameter: all gathering kind coerces to it for free, and it never copies, so divided returns slices into its input and a dictionary keyed by u8[:] stores no strings at all.</p> <p dir="auto">There is no sole gathering type. There is a family that differs lone in what happens to the size, and all associate is [metadata][elements...], inline and packed, never a pointer to an component block:</p> <table readabilitydatatable="1"> <thead> <tr> <th>Spelling</th> <th>What it is</th> </tr> </thead> <tbody> <tr> <td>T[k]</td> <td>fixed size, known at compile time</td> </tr> <tr> <td>T[], T[varint]</td> <td>sized at construction, icy after; a fixed or variable-width length</td> </tr> <tr> <td>T[..k], T[..]</td> <td>capacity inline; grows and shrinks inside it</td> </tr> <tr> <td>T[&gt;..]</td> <td><strong>grow-only</strong>: the workhorse; references into it remain valid</td> </tr> <tr> <td>T[&gt;..&lt;]</td> <td><strong>grow-shrink</strong>: stacks, queues, heaps</td> </tr> </tbody> </table> <p dir="auto">Strings are fair u8 arrays: u8[&gt;..] is a builder, u8[] a completed string stored inline in any holds it, u8[..16] a small cord inner a struct, u8[:] a view. A struct may merge variable-size parts, and they sit inline in declaration order, so a document is a run of bytes alongside nothing indirect in it:</p> <div data-snippet-clipboard-copy-content=' 500 }] });'><pre lang="goose">struct Item { sku: u8[varint], qty: varint, cents: varint } struct Order { id: varint, customer: u8[varint], items: Item[varint] } var book: Order[&gt;..] = []; book.push(Order { id: 1001, customer: "alice", items: [Item { sku: "SKU-441", qty: 2, cents: 1999 }, Item { sku: "SKU-7", qty: 1, cents: 500 }] }); </pre></div> <p dir="auto">That command is <strong>29 bytes and 0 allocations</strong>. As C++ std::string + std::vector&lt;Item&gt; it is 160 bytes and 1 allocation, and as Rust String + Vec&lt;Item&gt; 153 bytes and 4. A entire command publish is one gathering that streams through the cache. The cost is that an gathering of variable-size elements is sequential: you can iterate it but not indicator it.</p> <p dir="auto">Algebraic data types are the lone energetic polymorphism: no inheritance, no vtables. Every ADT can be stored two ways, chosen at the item of use. Fixed mode (Shape) is a tag affirmative area for the largest payload, indexable and overwritable. Variable manner (Shape..) gives all value exactly its variant's size; the gathering becomes sequential and a value never changes variant, and in exchange you may obtain references <em>into</em> a payload:</p> <div data-snippet-clipboard-copy-content=" Shape..[&gt;..] = []; // 9, 17 and 1 bytes, not 17 each packed.push(Shape.Circle { r: 1.0 }); packed.push(Shape.Rect { w: 2.0, h: 3.0 }); packed.push(Shape.Dot); for s in packed { equivalent s { Rect &amp;r =&gt; { r.w += 1.0; }, _ =&gt; {} } // edits the payload in place, inner the array }"><pre lang="goose">enum Shape { Circle { r: f64 }, Rect { w: f64, h: f64 }, Dot } var packed: Shape..[&gt;..] = []; // 9, 17 and 1 bytes, not 17 each packed.push(Shape.Circle { r: 1.0 }); packed.push(Shape.Rect { w: 2.0, h: 3.0 }); packed.push(Shape.Dot); for s in packed { equivalent s { Rect &amp;r =&gt; { r.w += 1.0; }, _ =&gt; {} } // edits the payload in place, inner the array } </pre></div> <p dir="auto">match has a second spelling, <em>case functions</em>: one overload per variant, dispatched on the tag through a jump array and checked for exhaustiveness. It is the virtual call without the vtable:</p> <div data-snippet-clipboard-copy-content=' Shape.Dot) -&gt; f64 { 0.0 } for s in packed { print(s, &quot; area &quot;, area(s)); }'><pre lang="goose">fn area(s: Shape.Circle) -&gt; f64 { 3.14159 * s.r * s.r } fn area(s: Shape.Rect) -&gt; f64 { s.w * s.h } fn area(s: Shape.Dot) -&gt; f64 { 0.0 } for s in packed { print(s, " area ", area(s)); } </pre></div> <div dir="auto"><h3 tabindex="-1" dir="auto">Links narrower than pointers</h3><a href="https://en.mycoding.id/category/technology" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto">A T&amp; is a device address: eight bytes, never dangling. A <em>relative reference</em> is the identical nexus stored as a narrow offset: T&amp;&lt;u32&gt; is measured from the field itself to a mark in the identical array, so the construction is stance independent, and T&amp;&lt;u32 in pool&gt; from a named pool's base, so another arrays can nexus into the pool. T&amp;&lt;u32&gt;? uses offset 0 as null. Here is a binary hunt tree in one grow-only array, alongside 12-byte nodes:</p> <div data-snippet-clipboard-copy-content=" Node&amp;&lt;u32&gt;?, right: Node&amp;&lt;u32&gt;? } // 12 bytes, links included fn insert(pool: Node[&gt;..]&amp;, key: i32) { if pool.len == 0 { pool.push(Node { key: key }); return; } var cur .= pool[0]; // .= binds a reference; = would copy the node iteration { if key == cur.key { return; } let next = if key &lt; cur.key { cur.left } alternatively { cur.right }; if next { cur .= next; continue; } // narrowed by `if`: next is a Node&amp; if key &lt; cur.key { cur.left .= pool.push(Node { key: key }); } alternatively { cur.right .= pool.push(Node { key: key }); } return; } }"><pre lang="goose">struct Node { key: i32, left: Node&amp;&lt;u32&gt;?, right: Node&amp;&lt;u32&gt;? } // 12 bytes, links included fn insert(pool: Node[&gt;..]&amp;, key: i32) { if pool.len == 0 { pool.push(Node { key: key }); return; } var cur .= pool[0]; // .= binds a reference; = would copy the node iteration { if key == cur.key { return; } let next = if key &lt; cur.key { cur.left } alternatively { cur.right }; if next { cur .= next; continue; } // narrowed by `if`: next is a Node&amp; if key &lt; cur.key { cur.left .= pool.push(Node { key: key }); } alternatively { cur.right .= pool.push(Node { key: key }); } return; } } </pre></div> <p dir="auto">References are transparent (no *, no -&gt;), .= binds or retargets one, and Node? is a nullable citation that if, defender and province narrow. The insert is one shove and one store, and the shove cannot invalidate cur. When lifetimes are not nested, a reusable pond pairs a grow-only gathering alongside a hidden freelist: alloc_ref reuses a slot or pushes, liberated hands one back, and since nothing is always really freed, a old slot says a <em>different value of the accurate type</em> fairly than corrupting memory.</p> <div dir="auto"><h3 tabindex="-1" dir="auto">Your data is already a document format</h3><a href="https://en.mycoding.id/category/technology" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <div data-snippet-clipboard-copy-content=" u8[&gt;..] = tree.to_bytes(); // a framed byte depiction of the entire array var loaded, ok = from_bytes&lt;Node[&gt;..]&gt;(image); // verified before it becomes a value image[image.len - 3] = 200; // tamper alongside a nexus ... var bad, bok = from_bytes&lt;Node[&gt;..]&gt;(image); // ... and it is false and an bare array"><pre lang="goose">var image: u8[&gt;..] = tree.to_bytes(); // a framed byte depiction of the entire array var loaded, ok = from_bytes&lt;Node[&gt;..]&gt;(image); // verified before it becomes a value image[image.len - 3] = 200; // tamper alongside a nexus ... var bad, bok = from_bytes&lt;Node[&gt;..]&gt;(image); // ... and it is false and an bare array </pre></div> <p dir="auto">The tree's links are self-relative, so it method the identical item anywhere it sits: preservation is penning its bytes and loading is study them back, alongside no serializer, no schema and no pointer fixups. from_bytes checks the framing, every tag, all dimension and all nexus before the bytes rotate into a value, so a corrupt or antagonistic document is a false, never a untamed reference.</p> <p dir="auto">The copy-free building justify (<a href="https://en.mycoding.id/category/technology" target="_blank">spec &sect;4.3</a>) says a constructed value is continually built in its final home, propagated top-down through calls. A function returning a grow-only gathering by value writes its elements direct into the caller's variable, or into a site of the record being built inner another array, so out-parameters mostly do not appear.</p> <div data-snippet-clipboard-copy-content='words.push(str(&quot;word&quot;, i)); // formatted direct into the new element let evens = xs.filter() { it % 2 == 0 }; // built direct into `evens`: no temporary book.push(Order { id: 1001, customer: &quot;alice&quot;, items: parse_items(&quot;SKU-441:2:1999;SKU-7:1:500&quot;) });'><pre lang="goose">words.push(str("word", i)); // formatted direct into the new element let evens = xs.filter() { it % 2 == 0 }; // built direct into `evens`: no temporary book.push(Order { id: 1001, customer: "alice", items: parse_items("SKU-441:2:1999;SKU-7:1:500") }); </pre></div> <div data-snippet-clipboard-copy-content="]) -&gt; User { // returns a User: no Result, no error parameter let comma = find(line, &quot;,&quot;); defender comma &gt;= 0 alternatively { come back [], str(&quot;expected name,age: &quot;, line) from load; } let age, ok = parse_int(line[comma + 1..]); defender ok alternatively { come back [], str(&quot;bad age: &quot;, line) from load; } let name = trim(line[..comma]); come back User { name: name, age: age as i32 }; }"><pre lang="goose">struct User { name: u8[..16], age: i32 } fn load(text: u8[:]) -&gt; User[&gt;..], u8[] { var users: User[&gt;..] = []; each_split(text, '\n') { users.push(parse_user(it)); }; come back users, ""; } fn parse_user(line: u8[:]) -&gt; User { // returns a User: no Result, no error parameter let comma = find(line, ","); defender comma &gt;= 0 alternatively { come back [], str("expected name,age: ", line) from load; } let age, ok = parse_int(line[comma + 1..]); defender ok alternatively { come back [], str("bad age: ", line) from load; } let name = trim(line[..comma]); come back User { name: name, age: age as i32 }; } </pre></div> <p dir="auto">return E from f returns E as the outcome of the innermost energetic call of f, nevertheless many frames up, and all function in between keeps its plain signature. It is checked statically, so all call of parse_user must lie inside a burden call and nothing is uncaught at runtime. It is a hidden discriminant checked per example fairly than an unwinder, and the communication is built immediately anywhere load's visitant wants it. The parsers in the samples use it for all syntax error.</p> <div dir="auto"><h3 tabindex="-1" dir="auto">Generics without ceremony, blocks that disappear</h3><a href="https://en.mycoding.id/category/technology" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <div data-snippet-clipboard-copy-content="fn twice(x) { x + x } // an untyped indicator is a generic one fn each_pair&lt;T, F&gt;(xs: T[:]) { // F is a function value: a compile-time entity for i in 0..xs.len - 1 { F(xs[i], xs[i + 1]); } } fn first_gap(xs: i64[:]) -&gt; i64 { each_pair(xs) { a, b =&gt; if b - a &gt; 1 { come back a; } }; // returns from first_gap, not each_pair come back -1; } let evens = xs.filter() { it % 2 == 0 }; let total = fold(xs, 0) { acc, x =&gt; acc + x }; sort(xs) { a, b =&gt; a &gt; b };"><pre lang="goose">fn twice(x) { x + x } // an untyped indicator is a generic one fn each_pair&lt;T, F&gt;(xs: T[:]) { // F is a function value: a compile-time entity for i in 0..xs.len - 1 { F(xs[i], xs[i + 1]); } } fn first_gap(xs: i64[:]) -&gt; i64 { each_pair(xs) { a, b =&gt; if b - a &gt; 1 { come back a; } }; // returns from first_gap, not each_pair come back -1; } let evens = xs.filter() { it % 2 == 0 }; let total = fold(xs, 0) { acc, x =&gt; acc + x }; sort(xs) { a, b =&gt; a &gt; b }; </pre></div> <p dir="auto">Everything is monomorphized and category arguments are inferred, never written at a call. Function values are passed as generic parameters: all call is direct and inlinable, they cannot escape, and there are no closure objects or function pointers, so a higher-order function compiles to exactly the iteration it looks like. A obstacle may come back from its lexically enclosing function, and nested functions see the enclosing function's locals.</p> <div dir="auto"><h3 tabindex="-1" dir="auto">Threads that portion nothing</h3></div> <div data-snippet-clipboard-copy-content="thread_fn worker() { // a distinct program alongside its own memory iteration { let job = qget&lt;Job&gt;(); // blocks on the typed queue for Job defender job.n &gt;= 0; // -1 method stop qput(Result { n: job.n, digits: count_digits(job.n) }); } } for i in n { ids.push(thread_spawn(worker)); }"><pre lang="goose">thread_fn worker() { // a distinct program alongside its own memory iteration { let job = qget&lt;Job&gt;(); // blocks on the typed queue for Job defender job.n &gt;= 0; // -1 method stop qput(Result { n: job.n, digits: count_digits(job.n) }); } } for i in n { ids.push(thread_spawn(worker)); } </pre></div> <p dir="auto">There is no shared mutable memory. A thread_fn and everything it calls is compiled as its own program alongside its own data stacks and its own copies of the globals. Values cross through typed queues, one per type, and must be <em>flat</em>, with no references at any depth. That is cheap since a flat Goose value is contiguous: a job or a outcome carries genuine data, pixels included, and crossing is a memcpy.</p> <div data-snippet-clipboard-copy-content=" f64) -&gt; f64; // direct from libm extern fn crc32_bytes(s: const u8[:]) -&gt; u32; // a piece crosses as { data, len } extern fn stats_of(xs: i32[:], out: Stats&amp;); // a struct filled through a pointer"><pre lang="goose">extern fn hypot(x: f64, y: f64) -&gt; f64; // direct from libm extern fn crc32_bytes(s: const u8[:]) -&gt; u32; // a piece crosses as { data, len } extern fn stats_of(xs: i32[:], out: Stats&amp;); // a struct filled through a pointer </pre></div> <p dir="auto">An extern fn binds a Goose signature to a C symbol, and that is the entire FFI; the math and os modules are built on it. Exactly what has a plain C shape may cross, and item alternatively is rejected at the declaration. The compiler emits one C document for the entire program, which any C compiler builds, and alongside the bundled TinyCC it compiles and runs the program inner its own procedure instead.</p> <div dir="auto"><h3 tabindex="-1" dir="auto">Where the speed comes from</h3><a href="https://en.mycoding.id/category/technology" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto">Not a clever optimizer. No allocator on any path, no teardown, adjacent data so the cache does small work, narrow links, and enums that do not pay for their largest type everywhere. Every indicator is bounds-checked and the compiler proves most checks away; one province on a piece dimension is normally what a kernel needs to endure all of them and vectorize, and --bce-lines reports what survived. Every measure is whole-process partition clock, teardown included.</p> <table readabilitydatatable="1"> <thead> <tr> <th>Geometric average complete 16 benchmarks</th> <th>vs idiomatic C++</th> <th>vs hand-optimized C++</th> <th>vs finest harmless Rust</th> </tr> </thead> <tbody> <tr> <td>speed, MSVC backend</td> <td>3.30x</td> <td>1.16x</td> <td>1.04x</td> </tr> <tr> <td>speed, collision backend</td> <td>3.35x</td> <td>1.19x</td> <td>1.12x</td> </tr> <tr> <td>peak memory</td> <td>1.93x less</td> <td>1.30x less</td> <td>1.24x less</td> </tr> </tbody> </table> <p dir="auto">The <a href="https://en.mycoding.id/category/technology" target="_blank">summary</a> says anywhere all win comes from and owns up to the losses; <a href="https://en.mycoding.id/category/technology" target="_blank">results.md</a> has all row and <a href="https://en.mycoding.id/category/technology" target="_blank">design.md</a> says what the suite was built to discover out.</p> <ul dir="auto"> <li>You think concerning anywhere data lives: who owns this, and how lengthy does its scope last. Usually the answer is "the function that builds it", and that is free; when it is not, it is a reusable pool.</li> <li>Recursive functions cannot own growable data; they obtain the pond as a parameter.</li> <li>Arrays of variable-size elements iterate but do not index, a fixed-mode enum cannot be pointed into, and a variable-mode one cannot be overwritten. You choose per container.</li> <li>No escaping closures, no function pointers, no energetic dispatch beyond ADT tags, and whole-program compilation only.</li> <li>A slot handed rear to a reusable pond and motionless named says any its next owner put there: a logic bug, never recollection corruption.</li> </ul> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank">Tutorial &sect;18</a> is the complete list.</p> <p dir="auto">You need CMake 3.20 or later, a C++20 compiler (MSVC, collision or gcc) and Python 3 for the test and example runners. The TinyCC submodule is what the in-process backend is built from; without it the compiler builds and behaves the same, minus JIT mode.</p> <div dir="auto" data-snippet-clipboard-copy-content="//github.com/aardappel/goose cd goose cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --build build --config Release"><pre>git copy --recursive https://github.com/aardappel/goose <span>cd</span> goose cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --build build --config Release</pre></div> <p dir="auto">The compiler is build/goose (build/Release/goose.exe alongside the Visual Studio generator), and it finds the norm archive in the origin tree it was built from. Run a program direct from source, in-process:</p> <div dir="auto" data-snippet-clipboard-copy-content="build/goose samples/01_tour.goose"><pre>build/goose samples/01_tour.goose</pre></div> <p dir="auto">Or create C and build it alongside any compiler is around. Programs that use threads need this route, since TinyCC cannot location thread-local storage:</p> <div dir="auto" data-snippet-clipboard-copy-content="build/goose -o tour.c samples/01_tour.goose &amp;&amp; cc tour.c -o tour -lm -pthread &amp;&amp; ./tour"><pre>build/goose -o tour.c samples/01_tour.goose <span>&amp;&amp;</span> cc tour.c -o tour -lm -pthread <span>&amp;&amp;</span> ./tour</pre></div> <p dir="auto">On Windows that is cl tour.c. Useful flags: --check typechecks without emitting C, -O0/-O1/-O2 set the inlining level, --bce-lines reports the bounds checks kept per line, and -DGS_DEBUG=1 turns on the overflow, range and tag checks in the generated C.</p> <p dir="auto">The test suite and the samples run on Windows, macOS and Linux:</p> <div dir="auto" data-snippet-clipboard-copy-content="python test/run_tests.py python samples/run_samples.py"><pre>python test/run_tests.py python samples/run_samples.py</pre></div> <p dir="auto">For editing, the <a href="https://en.mycoding.id/category/technology" target="_blank">VS Code extension</a> gives syntax highlighting, compiler checks on preserve and one-key runs through the JIT:</p> <div dir="auto" data-snippet-clipboard-copy-content="code --install-extension vscode/goose-language.vsix"><pre>code --install-extension vscode/goose-language.vsix</pre></div> <ul dir="auto"> <li><a href="https://en.mycoding.id/category/technology" target="_blank">Tutorial</a>: the affable introduction, by example. Read this first.</li> <li><a href="https://en.mycoding.id/category/technology" target="_blank">Language specification</a>: the exact rules, whenever you want to cognize why item did not compile.</li> <li><a href="https://en.mycoding.id/category/technology" target="_blank">Samples</a>: twenty-six complete programs in study order, from a tour of the tongue to a JSON parser, a threaded Mandelbrot and a file tree built from two pools.</li> <li><a href="https://en.mycoding.id/category/technology" target="_blank">Standard library</a>: five modules, all readable Goose under stdlib/.</li> <li><a href="https://en.mycoding.id/category/technology" target="_blank">Benchmarks</a>: the numbers, alongside the <a href="https://en.mycoding.id/category/technology" target="_blank">full results</a> and the <a href="https://en.mycoding.id/category/technology" target="_blank">design</a> rearward them.</li> <li><a href="https://en.mycoding.id/category/technology" target="_blank">Implementation notes</a>: how the compiler works, pass by pass, and <a href="https://en.mycoding.id/category/technology" target="_blank">how it is tested</a>.</li> </ul> <p dir="auto">Goose is new. What exists today is a whole-program compiler of concerning thirty thousand lines of C++, the specification, the norm library, the samples, and a test suite that CI runs on Windows, macOS and Linux alongside an extra sanitizer job. Deliberately out of range for now: moves for resizable values, more than one resizable per struct, tagged break, namespace privacy, and more OS/library access. Open items are tracked in the <a href="https://en.mycoding.id/category/technology" target="_blank">specification's Appendix B</a>.</p> <p dir="auto">Goose is licensed under the <a href="https://en.mycoding.id/category/technology" target="_blank">Apache License, Version 2.0</a>.</p> <p dir="auto"><strong>Wouter van Oortmerssen</strong>: Language Design, Compiler Design, Coding standards. <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow">home</a> page, <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow">twitter</a>.</p> <p dir="auto"><strong>Claude Fable</strong>: Compiler implementation, Benchmarking, Sample &amp; Doc writing.</p> <p dir="auto">Yes, this repo is nearly entirely AI produced, although from a individual design. I had designed Goose multiple years ago, and had started to execute it, but operating a equivalent startup (which is built on another programming tongue of mine, <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow">Lobster</a>) there was no period to complete it. Which was sad, since I knew Goose could do things another languages can't, and it should exist.</p> <p dir="auto">I had not considered AI being capable to assistance alongside this, until Fable came out and I figured it power have reached a flat to be capable to do fine job of it. I made it basically copy the manner and construction of my another latest compiler (Lobster), which is why if you appearance at the code, it looks fairly akin to that. My first scheme had remaining many of things unspecified, and many of rear and forth with Fable made me decide on all of those, and it is now a improved tongue for it.</p> <p dir="auto">It is additionally an experiment: although certainly not the archetypal always compiler implemented with AI, perchance among the additional novel/extensive from scratch ones. This project is extremely distinct from cloning an existing language.</p> <p dir="auto">You may amazement why I had it activity in C++, if plainly I could have used any language, akin Rust, or my own Lobster, or.. Goose itself (that may motionless happen). With Fable, it was my study that it is nearly likewise capable in any language, and the powerful guardrails of Rust or another languages are not as pressing as they formerly were. Since the compiler emits C, you apt already need to have a C/C++ compiler around, so sticking inner one ecosystem would appear to simplify deployment and adoption. I've additionally unified libtcc and who knows what another C libraries in the future. And, akin I said, to have the compiler code mimic my existing Lobster compiler seemed fun, at smallest I can peruse it akin it is my own.</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/goose-1-16x-faster-than-c-and-1-12x-than-harmless-rust-during-recollection-safe-68645</guid> <pubDate>Fri, 18 Sep 2026 02:04:54 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[Zettascale (YC S24) Is Hiring ASIC/FPGA Engineers to Build Chips for ASI]]></title> <description><![CDATA[Zettascale (YC S24) Is Hiring ASIC/FPGA Engineers to Build Chips for ASI. Comments]]></description> <media:thumbnail url="https://zscc.ai/opengraph-image?a723873306272b59"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/zettascale-yc-s24-is-hiring-asic-fpga-engineers-to-build-chips-for-asi-68596</link> <content:encoded><![CDATA[<div><div><div><div><svg xmlns="http://www.w3.org/2000/svg" viewbox="28.1 48.633 287.8 246.734" fill="none"><path fill="currentColor" d="M152.6 198.888 28.1 295.367s83.56-56.29 143.9-56.29 143.9 56.29 143.9 56.29l-124.5-96.479c-11.42-8.851-27.38-8.851-38.8 0m38.8-53.775 124.5-96.48s-83.56 56.29-143.9 56.29-143.9-56.29-143.9-56.29l124.5 96.48c11.42 8.85 27.38 8.85 38.8 0"></path></svg><p>AI silicon for recursive self-improvement and superintelligence. XPU chips tally conclusion and training for frontier AI models connected a fraction of the energy.</p><p>San Francisco, CA</p></div><div><p>zettascale</p><div><div><h4>Products</h4><ul><li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">XPU Grasshopper</a></li><li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Monolith</a><span>Soon</span></li></ul></div><div><h4>Company</h4><ul><li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">About</a></li><li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Careers</a></li><li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Contact</a></li></ul></div><div><h4>Resources</h4><ul><li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Insights &amp; Research</a></li><li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Our Thesis</a></li></ul></div></div><ul><li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">X</a></li><li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">GitHub</a></li><li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">LinkedIn</a></li></ul></div></div><p><span>&copy; 2026 Exa Laboratories, Inc. (DBA "Zettascale"), All authorities reserved.</span><span>San Francisco, CA, USA</span></p></div></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/zettascale-yc-s24-is-hiring-asic-fpga-engineers-to-build-chips-for-asi-68596</guid> <pubDate>Fri, 18 Sep 2026 00:30:21 +0700</pubDate> <author><![CDATA[support@mycoding.id ()]]></author> </item> <item> <title><![CDATA[Show HN: AutoBot – live voice control for long-running AI work]]></title> <description><![CDATA[Show HN: AutoBot – live voice control for long-running AI work. Comments]]></description> <media:thumbnail url="https://opengraph.githubassets.com/cf5f1cc6d6e7a00dc05217cb3263352439f18aee98cb6e42424e7fee29f9c5a3/demeyer1/Autobot"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/show-hn-autobot-live-voice-control-for-long-running-ai-work-68597</link> <content:encoded><![CDATA[<div data-hpc="true" containertiming="hpc"> <p dir="auto"><strong>AutoBot: a self-improving agentic harness that makes frontier AI amended astatine finishing analyzable knowledge work.</strong></p> <p dir="auto">AutoBot achieved <strong>18.5% higher task completion than the published OpenAI Sol Max baseline</strong>, surpassing <strong>Anthropic&rsquo;s Claude Opus 5 Max</strong> connected OSWorld 2.0, a benchmark of long, multi-application workflows. It besides reached <strong>#1 connected the charismatic AssistantBench hidden-test leaderboard</strong>. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Results and methodology</a></p> <p dir="auto"><strong>Hard workflows go upgrades to the supplier itself.</strong> AutoBot repairs its ain harness, independently validates the changes, and carries them forward. The adjacent workflow inherits the improvement. <strong>Compounding capability, without retraining the model.</strong></p> <p dir="auto"><strong>Your knowledge outgrows the discourse window.</strong> Hierarchical representation lives connected disk; task-specific retrieval builds the moving context. Nightly consolidation integrates caller knowledge and corrections. Your supplier accumulates organization representation crossed projects and conversations.</p> <p dir="auto"><strong>Your task tin outlive the supplier moving connected it.</strong> Persistent task graphs, atomic checkpoints and independent supervision fto a replacement worker resume the assignment. Completion is bound to existent requirements and verified destination evidence.</p> <p dir="auto"><strong>Local compute makes persistent intelligence economical.</strong> Your CPU handles orchestration, authorities and integrity checks. Compiled discourse and reusable proofs trim repeated inference, directing the model&rsquo;s fund toward the difficult judgments that move activity forward.</p> <p dir="auto">Open source. Native ChatGPT connected your Mac. Built by <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Autonomous Production</a>. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Get AutoBot</a>.</p> <p dir="auto"><strong>#1 connected the recorded charismatic hidden-test leaderboard: 50.70% accuracy crossed 181 tasks.</strong></p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><img src="https://github.com/demeyer1/Autobot/raw/main/docs/benchmark-charts/assistantbench-highlighted.png" alt="AssistantBench leaderboard pinch AutoBot’s consequence highlighted successful red"></a></p> <p dir="auto"><sub>AutoAssist was the harness's erstwhile marque name, changed to AutoBot 2 weeks aft this screenshot.</sub></p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Results and verification</a></p> <p dir="auto"><strong>32.41% binary accuracy and 64.28% partial accuracy crossed 108 tasks.</strong> Final best-valid-per-task aggregate, compared pinch the published September 10, 2026 leaderboard snapshot.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><img src="https://github.com/demeyer1/Autobot/raw/main/docs/benchmark-charts/osworld-2.0-highlighted.png" alt="OSWorld 2.0 comparison pinch AutoBot’s consequence highlighted successful red"></a></p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Results and methodology</a></p> <ul dir="auto"> <li><strong>Privacy by narration and purpose.</strong> Personal, family and friends, work, and deliberately shared discourse person abstracted zones. Nothing moves into SHARED automatically.</li> <li><strong>Independent completion.</strong> The section runtime rejects validation nether the shaper label. The operating statement besides requires a abstracted validator to inspect existent evidence, including the existent destination erstwhile the task changes thing extracurricular the workspace.</li> <li><strong>Durable follow-through.</strong> Native ChatGPT Goals support the progressive activity moving. Autobot keeps the objective, stages, evidence, and betterment authorities connected disk truthful an interrupted chat does not silently erase the commitment.</li> <li><strong>Clean outer actions.</strong> Recipient-visible writes usage the signed-in first-party app done Computer Use. The operating statement requires the progressive ChatGPT workflow to verify the account, destination, and visible contented earlier the action, past cheque the rendered consequence for a duplicate, failure, aliases unwanted AI attribution. If the cleanable way cannot beryllium verified, the workflow must stop.</li> <li><strong>Tone that stays successful its lane.</strong> Communication profiles are separated by transmission and audience. A family matter floor plan does not go a activity email profile. Autobot stores compact, user-approved patterns alternatively than earthy connection archives by default.</li> </ul> <p dir="auto">Autobot is the operation of 2 layers:</p> <ol dir="auto"> <li><strong>Native ChatGPT:</strong> the desktop app, section Projects, Voice, Goals, skills and plugins, scheduled work, notifications, and Computer Use.</li> <li><strong>The Autobot workspace:</strong> the operating statement successful AGENTS.md, privateness zones, selective memory, task status, a section nonsubjective authorities machine, a one-minute liveness supervisor, external-action policy, and first-time setup.</li> </ol> <p dir="auto">Autobot is not a abstracted model, chatbot, aliases supplier gateway. It depends connected existent ChatGPT capabilities and their plan, region, usage, sandbox, and support limits. See <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Architecture</a> and <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Permissions</a>.</p> <div dir="auto"><h2 tabindex="-1" dir="auto">Autobot compared pinch OpenClaw and Hermes</h2><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto">This comparison evaluates Autobot positive autochthonal ChatGPT for 1 personification managing individual and activity tasks connected a Mac. "Better" intends a much definitive default for the stated personification need, based connected the published design; it does not mean a measured advantage successful accuracy, speed, aliases reliability. "Doesn't do" intends the circumstantial built-in request was not recovered successful the superior archiving reviewed connected September 10, 2026. Both alternatives tin beryllium extended.</p> <table readabilitydatatable="1"> <thead> <tr> Top 3 shared capabilities: Autobot's attack and personification benefits Top 3 further Autobot capabilities and personification benefits </tr> </thead> <tbody> <tr> <td><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><strong>OpenClaw</strong></a></td> <td><strong>1. Remember discourse pinch definitive boundaries.</strong> OpenClaw persists and searches memory. Autobot adds default personal, family/friends, work, and opt-in shared zones. This makes the rules for reusing backstage discourse successful a activity task much explicit. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Memory</a> / <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Autobot privacy</a>.<p><strong>2. Track the promised outcome.</strong> OpenClaw records inheritance tasks and transportation state. Autobot assigns each promised output an owner, destination, and completion gate. This gives the personification a clearer grounds of what remains owed aft an interruption. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Tasks</a> / <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Autobot contract</a>.</p><p><strong>3. Check the consequence of an app action.</strong> OpenClaw supports devices and outbound audit history. Autobot requires account, destination, and contented checks earlier a write, followed by rendered inspection. This adds an definitive cheque for a incorrect destination, grounded save, aliases copy action. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Audit</a> / <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Autobot writes</a>.</p></td> <td><strong>1. Require a abstracted completion validator.</strong> Autobot's five-stage process requires existent grounds and a validator explanation different from the producer, pinch destination readback for outer work. This gives users grounds beyond the worker's ain occurrence report. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Completion</a>.<p><strong>2. Block writes erstwhile cleanable transportation cannot beryllium verified.</strong> Autobot's default argumentation requires first-party Computer Use and stops a way that forces unwanted attribution. This gives users an definitive publication norm alternatively of relying connected each connector's behavior. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Write policy</a>.</p><p><strong>3. Keep learned reside abstracted by transmission and audience.</strong> Autobot requires authorized examples and compact, abstracted connection profiles. This helps support a family-text style from shaping a customer email. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Profiles</a>.</p></td> </tr> <tr> <td><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><strong>Hermes</strong></a></td> <td><strong>1. Remember discourse pinch purpose-specific retrieval.</strong> Hermes has curated memory, personification profiles, and convention search. Autobot makes narration and intent portion of its default retrieval rules. This gives users clearer power complete which individual facts whitethorn pass master work. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Memory</a> / <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Autobot privacy</a>.<p><strong>2. Follow activity done to its deliverable.</strong> Hermes schedules jobs and delivers their outputs. Autobot besides retains the objective, ordered grounds stages, and unfinished outputs. This makes it easier to separate a occupation that ran from a requested artifact that was saved and checked. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Scheduling</a> / <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Autobot completion</a>.</p><p><strong>3. Verify user-visible changes.</strong> Hermes provides instrumentality approvals and execution controls. Autobot adds a modular before-and-after inspection of the signed-in destination. This gives the personification a circumstantial cheque that an authorized action produced the intended visible result. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Security</a> / <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Autobot writes</a>.</p></td> <td><strong>1. Require independent acceptance of each completion stage.</strong> Autobot separates the shaper and validator labels and requires caller destination grounds for outer outputs. This makes an unsupported "done" study insufficient nether the operating contract. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Completion</a>.<p><strong>2. Require a cleanable first-party constitute way by default.</strong> Autobot checks the nonstop relationship and visible content, past rejects forced-attribution aliases unverifiable transportation routes. This gives users a accordant norm for communications crossed services. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Write policy</a>.</p><p><strong>3. Require audience-specific tone-learning boundaries.</strong> Hermes supports characteristic and user-style preferences; Autobot specifies separately authorized profiles for each transmission and audience. This gives users much definitive power complete which examples style each benignant of message. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Hermes memory</a> / <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Autobot profiles</a>.</p></td> </tr> </tbody> </table> <p dir="auto">These are operating-contract differences, not guarantees of error-free execution. Autobot's privateness zones and validator separation are procedural wrong 1 Mac; they are not OS isolation aliases cryptographic identities. OpenClaw and Hermes connection broader standalone deployment, messaging, and exemplary choices. The absence findings supra interest the nonstop required workflows, not an absence of memory, privateness controls, voice, verification tools, aliases automation successful either project.</p> <p dir="auto">The project-local first-time accomplishment now acts arsenic the setup operator. It checks existent state, applies safe section defaults, runs supported actions, preserves the earliest unresolved personification aliases capacity gate, and returns to the user's original task only aft existent marker and position readback.</p> <p dir="auto">The guidelines files installs without Node aliases sign-in. The precocious runtime needs Node 22 aliases newer. Native app capabilities are discovered separately; nary model, account, notification recipient aliases outer constitute is configured for you. See <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">capabilities and availability</a>.</p> <table readabilitydatatable="1"> <thead> <tr> Zone Intended context Default boundary </tr> </thead> <tbody> <tr> <td>PRIVATE</td> <td>Sensitive individual facts, preferences, health, finances, and backstage plans</td> <td>Never shared automatically</td> </tr> <tr> <td>FAMILY_FRIENDS</td> <td>Relationships, events, logistics, and authorized individual connection patterns</td> <td>Never utilized for activity without a existent definitive need</td> </tr> <tr> <td>WORK</td> <td>Organizations, projects, teammates, customers, vendors, and master connection patterns</td> <td>Never utilized for individual connection unless explicitly relevant</td> </tr> <tr> <td>SHARED</td> <td>The minimum facts you deliberately make reusable crossed zones</td> <td>Opt-in only, pinch provenance</td> </tr> </tbody> </table> <p dir="auto">These are owner-only folders and operating rules wrong 1 macOS account. They are not abstracted encrypted vaults, macOS users, aliases hardware information boundaries. Use abstracted macOS accounts aliases abstracted machines erstwhile the spot domains require stronger isolation. Read <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Privacy</a>.</p> <div dir="auto"><h2 tabindex="-1" dir="auto">Completion that requires evidence</h2><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto">Each durable nonsubjective moves done 5 ordered stages:</p> <ol dir="auto"> <li>research_complete</li> <li>draft_complete</li> <li>destination_updated</li> <li>save_confirmed</li> <li>rendered_readback_verified</li> </ol> <p dir="auto">The section runtime enforces shape order, grounds hashes, and a validator explanation different from the shaper label. The operating statement requires a genuinely abstracted validator to usage caller grounds and inspect the charismatic destination for outer work.</p> <p dir="auto">This is procedural independency connected 1 Mac, not a abstracted information enclave. Autobot cannot bypass a login, MFA, macOS permission, scheme limit, personification decision, aliases the scope of the user's instruction. The supervisor records liveness and flags stalled objectives. It does not power desktop apps successful the inheritance aliases manufacture support to continue.</p> <div dir="auto"><h2 tabindex="-1" dir="auto">No-attribution, fail-closed writes</h2><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto">Autobot treats connectors, apps, MCP tools, browser integrations, and APIs arsenic read-only unless a destination-specific adapter proves the aforesaid clean-write properties. Recipient-visible writes usually usage the signed-in first-party interface done autochthonal ChatGPT Computer Use.</p> <p dir="auto">Before a unrecorded write, the operating statement requires the progressive ChatGPT workflow to cheque the app, account, destination, scope, and last visible content. Afterward, the workflow must inspect the rendered consequence and cheque for the intended mutation, nary duplicate, nary failure, and nary added AI aliases ChatGPT attribution. If a level forces a non-removable explanation aliases the consequence is ambiguous, the workflow must not declare success.</p> <p dir="auto">That argumentation cannot region immutable metadata aliases disclosures controlled by a third-party platform. Details: <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Security</a>.</p> <div dir="auto"><h2 tabindex="-1" dir="auto">Native Voice and long-running work</h2><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">ChatGPT Voice</a> tin commencement abstracted threads for longer tasks, cheque them, nonstop follow-ups, and bring advancement aliases blockers backmost into the sound conversation. <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Goal mode</a> keeps the result and completion criteria attached to the work.</p> <p dir="auto">Important limits:</p> <ul dir="auto"> <li>Voice availability, usage, and rollout dangle connected the ChatGPT scheme and workspace.</li> <li>Only 1 sound chat tin beryllium progressive crossed desktop astatine a time.</li> <li>Tasks started from Voice besides usage the Codex usage budget.</li> <li>Local long-running activity needs the Mac and workspace to stay available. Enable <strong>Prevent slumber while running</strong> erstwhile appropriate.</li> <li>Starting a Goal does not broaden sandbox entree aliases support authority.</li> </ul> <div dir="auto" data-snippet-clipboard-copy-content="./runtime/bin/autoassist doctor ./runtime/bin/autoassist version ./runtime/bin/autoassist halfway status ./runtime/bin/autoassist halfway help">./runtime/bin/autoassist doctor ./runtime/bin/autoassist version ./runtime/bin/autoassist halfway status ./runtime/bin/autoassist halfway <span>help</span></div> <p dir="auto">Run ./runtime/bin/autoassist thief for the complete section bid list.</p> <p dir="auto">privacy-scan is simply a cleanable release-candidate check, not a post-install scan of a populated personification workspace. Run it only earlier personification configuration aliases against a abstracted cleanable merchandise tree.</p> <ul dir="auto"> <li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Install</a></li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Permissions</a></li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Capabilities and availability</a></li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Architecture</a></li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Local runtime reference</a></li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Privacy</a></li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Security</a></li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Autobot and OpenClaw</a></li> <li><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Troubleshooting</a></li> </ul> <p dir="auto">Autobot 0.3.0 is an early nationalist merchandise for a azygous personification connected a Mac. The package is not a multi-tenant service, an OS sandbox, a cryptographic privateness boundary, aliases a guarantee that each third-party action will succeed. Treat a downloadable ZIP arsenic verified only erstwhile its checksum and manifest lucifer the adjacent merchandise artifacts and the packaged campaigner passes the bundled merchandise checks.</p> <p dir="auto">Autobot is disposable nether the <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">MIT License</a>. Copyright (c) 2026 Autobot contributors.</p> <p dir="auto">Set up AutoBot connected your MacBook, past usage it from your phone.</p> <div dir="auto"><h3 tabindex="-1" dir="auto">1 Get the Mac app for Codex</h3><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto">On your MacBook, <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">download OpenAI's desktop app</a>, motion in, and prime <strong>Codex</strong>. The download is called <strong>ChatGPT</strong>, pinch Codex wrong it.</p> <p dir="auto">AutoBot is free, but regular usage will apt request a <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">paid ChatGPT plan</a>; take 1 that fits your needs.</p> <p dir="auto">In <strong>Plugins &gt; Computer Use</strong>, take <strong>Install</strong> aliases <strong>Enable</strong> and move connected its server and accomplishment switches. In your Mac's <strong>System Settings &gt; Privacy &amp; Security</strong>, alteration the named OpenAI app aliases helper for:</p> <ul dir="auto"> <li><strong>Screen Recording</strong> aliases <strong>Screen &amp; System Audio Recording</strong> to spot your screen.</li> <li><strong>Accessibility</strong> to click and type.</li> <li><strong>Microphone</strong> to talk pinch you.</li> <li><strong>Automation</strong>, erstwhile requested, to activity pinch the named app.</li> <li><strong>Files and Folders</strong>, erstwhile requested, to usage the folders you select.</li> </ul> <p dir="auto">Stay astatine your MacBook and scheme for astatine slightest 3 permission-related app restarts during first setup; the number varies. Reopen the app aft each punctual and continue.</p> <div dir="auto"><h3 tabindex="-1" dir="auto">4 Set your mundane preferences</h3><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto">Open <strong>Settings</strong> pinch <strong>Command + comma</strong> and take these <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">preferences</a>:</p> <ul dir="auto"> <li><strong>General &gt; Prevent slumber while running: On.</strong> Keep the MacBook plugged in, online, and unfastened for distant work.</li> <li><strong>Notifications: On</strong> for vanished tasks and questions.</li> <li><strong>General &gt; Permissions:</strong> alteration your choice, past prime it beneath the connection box. <strong>Full access</strong> allows wide record and net actions; <strong>Approve for me</strong> (Auto-review) reviews requests automatically; <strong>Ask for approval</strong> brings requests to you.</li> <li><strong>Computer Use:</strong> take your apps; <strong>Always allow</strong> lets it reuse them.</li> <li><strong>Model menu:</strong> effort <strong>Sol</strong>, <strong>Max</strong> reasoning, and <strong>Fast off</strong>; alteration these anytime.</li> </ul> <p dir="auto">Open the <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">AutoBot release</a> and download <strong>AutoAssist-v0.3.0.zip</strong> positive <strong>AutoAssist-v0.3.0.zip.sha256</strong>. Keep them together and double-click the ZIP to unfastened the download.</p> <p dir="auto">Create a <strong>local project</strong> called <strong>AutoBot</strong> successful Codex, take the downloaded <strong>AutoAssist</strong> folder, and commencement a task there. Paste: &ldquo;Install AutoBot from <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">https://github.com/demeyer1/Autobot</a> utilizing INSTALL_FOR_AI.md, including required support package from charismatic sources, past guideline setup.&rdquo;</p> <div dir="auto"><h3 tabindex="-1" dir="auto">7 Point the task astatine your installed AutoBot</h3><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto">After installation, take <strong>Edit task &gt; Add folder</strong>, prime <strong>AutoAssist</strong> successful your Mac's location folder, and take <strong>Make primary</strong>. Start a caller task there: &ldquo;Run first-time setup for this installed folder.&rdquo;</p> <p dir="auto">Install the <strong>ChatGPT mobile app</strong>, motion successful to the aforesaid relationship and workspace, and connected your Mac unfastened <strong>Settings &gt; Connections &gt; Control this Mac aliases PC &gt; Set up</strong>. Scan the QR code, decorativeness verification, and unfastened <strong>Remote</strong> connected your phone.</p> <p dir="auto">Open <strong>Settings &gt; Computer Use &gt; Chrome &gt; Install</strong> and adhd the <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">ChatGPT extension</a> to your chosen Chrome profile. Return to settings and cheque for <strong>Manage</strong>.</p> <div dir="auto"><h3 tabindex="-1" dir="auto">10 Connect your mundane apps</h3><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto">Tell AutoBot, &ldquo;Connect and trial my email, calendar, Slack, and iMessage,&rdquo; past motion successful to your chosen accounts, including <strong>Messages connected your Mac</strong>. Use disposable plugins for reference and Computer Use successful the signed-in apps for sending.</p> <p dir="auto">On your phone, unfastened <strong>Remote &gt; AutoBot</strong> and ask, &ldquo;Make and prevention tomorrow's to-do list.&rdquo; Open the result, past effort voice.</p> <ol dir="auto"> <li><strong>Give it a useful Chrome profile.</strong> Choose 1 pinch the logins, passwords, and autofill you want it to use, and inquire it to link your accustomed apps.</li> <li><strong>Teach it really you sound.</strong> Share a fewer illustration messages, correct its drafts, and prevention abstracted styles for customers, teammates, and friends.</li> <li><strong>Explain your boundaries.</strong> Explain what belongs to work, individual life, aliases both, which accounts to use, and erstwhile each reside applies.</li> </ol> <ul dir="auto"> <li><strong>Keep delicate activity successful your hands.</strong> Require your support for backstage aliases delicate access, sharing, and changes, positive a standalone third-party authenticator app connected a abstracted instrumentality AutoBot cannot access, mirror, aliases sync; SMS aliases iMessage unsocial doesn't meet that boundary.</li> <li><strong>Make the situation real.</strong> A saved login tin bypass a caller sign-in challenge, and AutoBot doesn't adhd 1 to each action; usage services that require caller verification for delicate actions, aliases support those accounts disconnected and grip them yourself.</li> <li><strong>Choose what stays separate.</strong> Keep highly delicate files and accounts extracurricular AutoBot's connected folders and Chrome profile, and shop betterment codes connected the abstracted instrumentality aliases offline.</li> <li><strong>Choose wherever your information goes.</strong> Review ChatGPT's information controls and connected services earlier adding backstage material, and support a backup of your workspace; a section files doesn't mean each petition stays connected your Mac.</li> </ul> <ul dir="auto"> <li><strong>Setup paused:</strong> reopen the aforesaid task and say, &ldquo;Continue first-time setup from wherever we near off.&rdquo;</li> <li><strong>Something isn't working:</strong> say, &ldquo;Check my AutoBot setup and thief maine hole what's missing.&rdquo;</li> <li><strong>Remote is missing:</strong> update some apps and cheque that your telephone and Mac usage the aforesaid relationship and workspace.</li> <li><strong>Update aliases region it:</strong> say, &ldquo;Help maine update AutoBot,&rdquo; aliases &ldquo;Remove AutoBot and support my files recoverable.&rdquo;</li> </ul> <p dir="auto">Setup references: <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Mac permissions</a>, <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">permission choices</a>, <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">phone pairing</a>, and <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">MFA guidance</a>.</p> For ChatGPT: automated installation <p dir="auto">If the personification asks you to instal this repository, publication <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">INSTALL_FOR_AI.md</a> first. It contains the commands, section task setup, verification and resume instructions.</p> <p dir="auto">The personification tin commencement with: &ldquo;Go to <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">https://github.com/demeyer1/Autobot</a> and instal AutoBot successful a caller section project, pursuing INSTALL_FOR_AI.md.&rdquo;</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/show-hn-autobot-live-voice-control-for-long-running-ai-work-68597</guid> <pubDate>Fri, 18 Sep 2026 00:30:21 +0700</pubDate> <author><![CDATA[support@mycoding.id ()]]></author> </item> <item> <title><![CDATA[Show HN: Aclif – Agent CLI framework: one grammar, canonical names across SaaS]]></title> <description><![CDATA[Show HN: Aclif – Agent CLI framework: one grammar, canonical names across SaaS. Comments]]></description> <media:thumbnail url="https://www.aclif.ai/img/aclif-logo@2x.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/show-hn-aclif-agent-cli-framework-one-grammar-canonical-names-across-saas-68598</link> <content:encoded><![CDATA[<div> <p>aclif builds command-line devices for AI agents. An supplier gets a azygous instrumentality that provides a unified abstraction crossed each SaaS provider: 1 grammar, and canonical names that scope the aforesaid grounds by the aforesaid name on immoderate platform.</p> <h2>Try it now</h2> <p>Install the binary, database the providers, and publication a command's schema, examples, and information metadata.</p> npm instal -g @aclif/core aclif observe --json aclif study salesforce --json aclif study servicenow --json aclif salesforce information query --schema aclif salesforce information query --examples aclif salesforce information query --query "SELECT Id FROM Account LIMIT 3" --dry-run aclif servicenow information query --table incident --query "active=true^priority=1" --dry-run <p> <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Getting started</a> <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">GitHub</a> </p> <h2>Why agents request their ain CLI</h2> <p>An MCP server publishes a fixed database of tools, and every tool connected the database occupies the agent's discourse connected each turn. The server's writer trades sum for costs erstwhile the server is built. Publishing each cognition (a emblematic API has hundreds of definitions) keeps the full API reachable and consumes tokens for each of it connected each turn. Publishing a handful of wide operations keeps the token count small, and any cognition the writer near disconnected the database is retired of the agent's reach. An supplier that spans respective platforms needs a server, a login, a grammar, an correction format, and a group of names for each.</p> <p>aclif loads a command's meaning only erstwhile the agent asks for it, truthful the full API of each supplier is reachable at nary opinionated costs successful context. One grammar, 1 envelope, and 1 correction vocabulary screen each provider, truthful the agent's discourse stays astir the aforesaid size whether it reaches one level aliases five.</p> <p>An supplier that runs a defined workflow tin time off the model out of the telephone altogether. A personification aliases an authoring tool works retired the nonstop bid astatine creation clip and embeds it in the workflow arsenic a string. At tally clip the supplier executes that drawstring arsenic mean code, pinch nary instrumentality meaning loaded and nary inference. The bid is chosen astatine creation time, and the authority to tally it, the credential, the acting identity, and the policy, is supplied astatine tally clip by whatever runs it. Neither broadside ever holds both.</p> <h2>What each bid gives you</h2> <div> <div> <h3>One grammar</h3> <p>One bid structure, 1 JSON envelope, and one correction vocabulary crossed each provider. An supplier learns the instrumentality once, and a caller level adds commands without adding grammar. A JSON manifest adds a bid complete one HTTP endpoint successful the aforesaid grammar, pinch nary code.</p> </div> <div> <h3>Canonical names</h3> <p>Alias sets representation customer to Account successful 1 Salesforce lawsuit and core_company successful ServiceNow. A tenant catalog, captured from each lawsuit astatine deploy time, teaches the CLI each instance's civilization objects and fields pinch nary alteration to the provider.</p> </div> <div> <h3>Errors an supplier tin enactment on</h3> <p>An supplier recovers successful 1 turn. Every correction names the failure, the bid that fixes it, and, wherever the provider's classifier has a rewrite norm for the mistake, the corrected input fresh to resend. The classifier is plain codification pinch nary exemplary down it. A bid validated successful a ammunition astatine creation clip returns the aforesaid correction astatine tally clip nether immoderate host, because the same bid classes tally successful both.</p> </div> <div> <h3>Introspection without execution</h3> <p>--schema, --examples, --shape, and 4 much flags return before the bid runs, request nary credentials, and count against nary API quota. An supplier tin discover, learn, introspect, and preview against a rate-limited lawsuit and spend nothing.</p> </div> <div> <h3>An embeddable runtime</h3> <p>The aforesaid bid classes tally in-process wrong a host that supplies credentials, identity, and argumentation per request, keeps connections warm, and caches expensive logins per instance. A gateway built connected it useful with the enterprise's ain personality supplier and secrets vault.</p> </div> <div> <h3>Declared safety</h3> <p>Mutability, blast radius, reversibility, and idempotency are declared connected each command. A policy check tin garbage it earlier its codification loads. Every mutation accepts --dry-run, demands --confirm wherever its metadata says so, and writes an audit statement aft each run.</p> </div> </div> <h2>The introspection-first workflow</h2> <p>An supplier needs nary archiving beyond the binary, and nothing earlier the past measurement touches the API.</p> aclif observe --json # each provider, its tier, whether credentials are configured aclif study salesforce --json # a briefing: topics, cardinal fields, query syntax, auth paths aclif salesforce information query --schema # flags, args, information metadata, nary execution aclif salesforce information query --examples # runnable examples pinch the responses they produce aclif salesforce information query --query "SELECT Id, Name FROM Account LIMIT 5" --dry-run aclif salesforce information query --query "SELECT Id, Name FROM Account LIMIT 5" --json <p>The envelope's _context artifact holds pagination pinch the nonstop adjacent command, the fields available, and related commands worthy running. Exit codes are 0, 1 (API), 2 (usage), 3 (authentication). The contract and its JSON Schemas are in <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">CONTRACT.md</a>.</p> <h2>Three ways to tally it</h2> <p>A vendor CLI is built for 1 deployment: installed connected a machine, logged successful by the personification astatine the keyboard, one process per command. Behind a gateway that fails. Every call spawns a process and logs successful again, the acting user's identity cannot beryllium forwarded, thing declares what a command will do, and thing is azygous to audit. aclif's command classes tally unchanged successful 3 places, and whoever runs them decides who supplies credentials, enforces policy, and keeps the audit trail.</p> <ul> <li><strong>Run by the agent.</strong> The supplier process spawns the binary, executes the command, and sounds the JSON it returns. Credentials travel from flags, environment variables, aliases a floor plan successful the agent's ain environment. Use this erstwhile 1 agent, 1 operator, and 1 group of credentials stock a spot boundary.</li> <li><strong>Run by a big application, the design-time case.</strong> An exertion sits betwixt the exemplary and aclif and holds the credentials. The exemplary calls a tool the exertion defines, and the exertion executes the command, in-process aliases by passing a bid drawstring to the CLI. A personification aliases an authoring instrumentality uses this to fto a exemplary observe providers, introspect commands, and validate the nonstop bid it will constitute into an agent. Use this erstwhile the exemplary must ne'er clasp credentials and instrumentality definitions must enactment retired of its context.</li> <li><strong>Run by a gateway, the runtime case.</strong> A deployed supplier submits commands, and 1 long-lived process serves galore specified agents. The gateway resolves credentials from the endeavor vault per request, checks argumentation against the acting user, records each call, and keeps connections warm. The agents clasp nary provider credentials and cannot widen their ain scope. Use this erstwhile galore agents stock providers and 1 spot must hold argumentation and audit.</li> </ul> <div> <table readabilitydatatable="1"> <thead><tr>Run by the agentRun by a host applicationRun by a gateway</tr></thead> <tbody> <tr><td>Credentials</td><td>flags, env, config.yaml</td><td>host-supplied resolver</td><td>vault-backed resolver, per request</td></tr> <tr><td>Policy</td><td>config.yaml</td><td>capabilityGate hook</td><td>capabilityGate positive the host's middleware</td></tr> <tr><td>Identity</td><td>--identity-token or env</td><td>the acting personification connected the invocation</td><td>the acting personification and SSO claims from the request</td></tr> <tr><td>Audit</td><td>stderr statement per run</td><td>reporter events</td><td>reporter events, recorded by the host</td></tr> <tr><td>Connections</td><td>file convention cache</td><td>runtime pool</td><td>runtime pool, keyed per lawsuit and identity</td></tr> </tbody> </table> </div> <p>Details connected the <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Embedding</a> page.</p> <h2>Gateway deployments</h2> <p>Long-lived, embeddable deployment enables a gateway topology wherever further information argumentation tin beryllium applied. One process the endeavor operates executes each bid for every agent, and the statement provides:</p> <ul> <li><strong>Credentials successful 1 place.</strong> Resolved wrong the gateway, per request, from the enterprise's vault. Agents clasp none.</li> <li><strong>Enterprise-wide canonical names.</strong> Tenant catalogs and othername sets are held by the gateway, so each supplier uses the aforesaid names for the aforesaid records crossed each supplier and instance.</li> <li><strong>Every telephone attributed to a person.</strong> The acting user's personality travels pinch each telephone into the argumentation cheque and the audit record, moreover done a shared work account.</li> <li><strong>Policy enforced once.</strong> Every command declares what it will do, and the gateway checks that declaration earlier the command's codification loads. Agents cannot widen their ain scope.</li> <li><strong>One audit trail.</strong> The aforesaid arena for each bid from each agent, naming the user, the command, and the outcome.</li> </ul> <h2>Install, aliases build your own</h2> npm instal -g @aclif/core # Your org's My Domain URL, nary trailing slash export SF_INSTANCE_URL=https://example.my.salesforce.com # A convention token from the Salesforce CLI (sf org login web first if needed) export SF_ACCESS_TOKEN=$(sf org auth show-access-token -o me@example.com --json | jq -r .result.accessToken) aclif salesforce information query --query "SELECT Id, Name FROM Account LIMIT 3" --json <p>Without the Salesforce CLI, usage an API user. Salesforce emails the information token erstwhile the password is group aliases reset:</p> export SF_INSTANCE_URL=https://example.my.salesforce.com SF_USERNAME=me@example.com SF_PASSWORD=... SF_SECURITY_TOKEN=... aclif salesforce information query --query "SELECT Id, Name FROM Account LIMIT 3" --json <p>The aclif binary ships pinch each built-in provider and needs Node 22 aliases later. The binary you vessel is yours: 1 scaffold bid produces a CLI pinch its own name, its ain config directory, its ain environment variables, and only the providers it chose. See <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Getting started</a> and <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Build a CLI</a>.</p> <h2>Providers</h2> <p>Salesforce, ServiceNow, DocuSign, and Agentforce are native and are included successful each release. Google Workspace (Gmail, Calendar) is contributed. A backstage tier holds providers a fork keeps to itself, nether a way upstream never commits to. Writing a supplier takes small effort: it is a nonstop translator of the platform's API specification onto the bid surface, a coding supplier does it from a sample punctual successful the repository, and the conformance suite checks the result. See <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Providers</a>.</p> <p>aclif is MIT licensed. Contributions follow <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">CONTRIBUTING.md</a>; the guideline for group and coding agents changing the framework is <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">AGENTS.md</a>.</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/show-hn-aclif-agent-cli-framework-one-grammar-canonical-names-across-saas-68598</guid> <pubDate>Fri, 18 Sep 2026 00:30:21 +0700</pubDate> <author><![CDATA[support@mycoding.id ()]]></author> </item> <item> <title><![CDATA[Alibaba releases Qwen 3.8 Omni Flash]]></title> <description><![CDATA[Alibaba releases Qwen 3.8 Omni Flash. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/alibaba-releases-qwen-3-8-omni-flash-68646</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/alibaba-releases-qwen-3-8-omni-flash-68646</guid> <pubDate>Fri, 18 Sep 2026 00:05:48 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[hister]]></title> <description><![CDATA[hister. Comments]]></description> <media:thumbnail url="https://opengraph.githubassets.com/1ba10db0c900766aad9663c930e1d552432b7923d4a6121559a5d84043dff019/asciimoo/hister"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/hister-68592</link> <content:encoded><![CDATA[<div data-hpc="true" containertiming="hpc"> <p dir="auto"><strong>Your ain hunt engine</strong></p> <p dir="auto">Hister is simply a backstage hunt motor for the pages you sojourn and the files you keep. It indexes their afloat contents truthful you tin find accusation again from the web interface, terminal, aliases an AI adjunct connected done MCP.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Try the demo</a> &middot; <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">Download Hister</a> &middot; <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Read the quickstart</a> &middot; <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Documentation</a></p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><img src="https://github.com/asciimoo/hister/raw/master/webui/website/src/lib/assets/screenshot.png" alt="Hister web interface"></a></p> <ol dir="auto"> <li> <p dir="auto">Download the binary for your level from the <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">latest release</a>, past rename it to hister (hister.exe connected Windows).</p> </li> <li> <p dir="auto">On Linux aliases macOS, make it executable:</p> </li> <li> <p dir="auto">Start Hister connected Linux aliases macOS:</p> <p dir="auto">On Windows, tally .\hister.exe perceive successful PowerShell.</p> <p dir="auto">Keep this terminal unfastened while utilizing Hister. The server must beryllium moving to scale pages and hunt them.</p> </li> <li> <p dir="auto">Open <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">http://127.0.0.1:4433</a> and instal the browser hold for <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Firefox</a> aliases <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Chrome</a>.</p> </li> <li> <p dir="auto">Visit a web page pinch the hold enabled, past return to Hister and hunt for a building from that page to find your first indexed result.</p> </li> </ol> <p dir="auto">No configuration is required for a section individual setup. See the <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">complete quickstart</a> to take what Hister indexes.</p> <p dir="auto">To hunt existing content, <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">import browser history</a>, <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">index section directories</a>, aliases <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">import files</a>.</p> <p dir="auto">Alternative installation methods see Homebrew (brew instal hister), Docker, and Nix. See the <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">installation guide</a> for instructions.</p> <ul dir="auto"> <li><strong>Privacy focused</strong>: No telemetry aliases mandatory unreality service. Run Hister locally aliases connected infrastructure you control.</li> <li><strong>Full matter indexing</strong>: Search the existent contents of visited pages and section files, not only titles and URLs.</li> <li><strong>Automatic browser indexing</strong>: Save recently visited pages pinch the Firefox aliases Chrome extension.</li> <li><strong>Powerful queries</strong>: Use section filters, phrases, wildcards, negation, aliases, and consequence priorities.</li> <li><strong>Optional semantic search</strong>: Find documents by meaning done an embeddings endpoint you configure.</li> <li><strong>Crawler and browser import</strong>: Index websites aliases bring successful existing browser history.</li> <li><strong>Web, terminal, and MCP clients</strong>: Search from the browser, TUI, bid line, aliases an AI assistant.</li> <li><strong>Multi personification support</strong>: Keep each user's documents and hunt results abstracted connected a shared server.</li> </ul> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><img src="https://github.com/asciimoo/hister/raw/master/webui/website/src/lib/assets/demo.gif" alt="Hister terminal interface" data-animated-image=""></a></p> <p dir="auto">By default, Hister has nary telemetry and nary unreality sync. The browser hold sends indexed page contented only to the Hister server you configure, isolated from downloading page favicons. The server stores documents and hunt indexes connected that server.</p> <p dir="auto">Optional semantic hunt sends archive matter to the embeddings endpoint you choose. Review the <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">privacy overview</a> and <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">semantic hunt configuration</a> earlier enabling distant integrations.</p> <p dir="auto">Unlike accepted hunt engines, Hister builds a individual hunt scale from the web pages and files you take to keep. Your contented stays connected your Hister server, making it useful for uncovering accusation you've already encountered without relying connected a third-party hunt provider.</p> <p dir="auto">Requirements are Go 1.26, npm, and a C compiler for CGO dependencies.</p> <div dir="auto" data-snippet-clipboard-copy-content="//github.com/asciimoo/hister.git cd hister ./manage.sh build">git clone https://github.com/asciimoo/hister.git <span>cd</span> hister ./manage.sh build</div> <p dir="auto">To activity connected the web app pinch basking reload and automatic Go rebuilds:</p> <p dir="auto">This starts a Vite improvement server and the Go backend pinch automatic rebuilds done <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">air</a>.</p> <div dir="auto"><h2 tabindex="-1" dir="auto">Community and contributing</h2><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank"><svg data-component="Octicon" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <p dir="auto">Join america connected IRCNet successful #hister aliases connected <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow">Discord</a>.</p> <p dir="auto">Read <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">CONTRIBUTING.md</a> earlier submitting a change. Bugs and suggestions beryllium successful the <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">issue tracker</a>. For information reports, spot <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">SECURITY.md</a>.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank" rel="nofollow"><img src="https://github.com/asciimoo/hister/raw/master/webui/website/static/uruky.svg" alt="Uruky"></a></p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" target="_blank" target="_blank" target="_blank">AGPLv3</a> aliases immoderate later version</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/hister-68592</guid> <pubDate>Fri, 18 Sep 2026 00:00:24 +0700</pubDate> <author><![CDATA[support@mycoding.id ()]]></author> </item> </channel> </rss>