<?xml version="1.0" encoding="UTF-8" ?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" version="2.0"> <channel> <title><![CDATA[MC Project]]></title> <description><![CDATA[Global digital products and freelance services. Focuses on development, production and distribution of programming scripts, application source code, plugins, themes and templates.]]></description> <image> <title><![CDATA[MC Project]]></title> <url>https://en.mycoding.id/favicon.ico</url> <link>https://en.mycoding.id/</link> </image> <category><![CDATA[Software Engineering, Website Development, Mobile Android App, Application Source Code, Programming Scripts]]></category> <link>https://en.mycoding.id/</link> <atom:link href="https://en.mycoding.id/rss.xml" rel="self" type="application/rss+xml"/> <atom:link href="https://en.mycoding.id/rss-videos.xml" rel="alternate" type="application/rss+xml"/> <atom:link href="https://en.mycoding.id/" rel="alternate" type="text/html"/> <pubDate>Sun, 11 Oct 2026 16:14:01 +0700</pubDate> <lastBuildDate>Sun, 11 Oct 2026 16:14:01 +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[My parents made me take music lessons as a kid. I refused to do the same to my own children.]]></title> <description><![CDATA[My parents made me take music lessons as a kid. I refused to do the same to my own children.. My hubby and I were forced to perform instruments as kids. We took a distinct method alongside our three children and they all happily perform one.]]></description> <media:thumbnail url="https://i.insider.com/6ac90e5c42403ad8039a50dd?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/my-parents-made-me-take-music-lessons-as-a-kid-i-refused-to-do-the-same-to-my-own-children-72071</link> <content:encoded><![CDATA[<div data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/6ac90e31301bb0551f49440d?width=2000&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6ac90e31301bb0551f49440d?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6ac90e31301bb0551f49440d?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6ac90e31301bb0551f49440d?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6ac90e31301bb0551f49440d?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/6ac90e31301bb0551f49440d?width=1300&amp;format=jpeg&amp;auto=webp 1300w, https://i.insider.com/6ac90e31301bb0551f49440d?width=2000&amp;format=jpeg&amp;auto=webp 2000w" sizes=" 1280px) 900px" alt="Person at an upright keyboard points to panel music during one hand rests on the keyboard." decoding="sync"> </p></div> <span> <span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <figcaption e-name="image-caption"> <span>The author (not shown) stated she started keyboard lessons in fourth grade, but didn't continually bask them.</span> <span> <span e-name="image-source" itemprop="creditText">Hakase_/Getty Images</span> </span> </figcaption> </span> </span></figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>Some of my favorite elevated academy memories affect music. I played flute in the <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">marching band</a>, and I motionless recall traveling alongside my allies to p<a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">erform at Disneyland</a> in our elder year. Those trips were fun, and the allies I made in collection category are the lone elevated academy allies I motionless keep in contact with.</p><p>But getting there engaged years of music lessons that I didn't exactly choose.</p><p>I started <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">piano lessons</a> in fourth grade, which meant giving up after-school hours whenever I'd much fairly have been doing nearly item else. Eventually, I switched to flute and continued playing through elevated school. By then, I was fine adequate to bask being in the marching band, but years of being told to custom remaining me alongside blended feelings concerning music.</p><p>My hubby had a akin cognition alongside the viola. He spent countless hours practicing an device since his parents wanted him to. Today, decades later, he doesn't perform it.</p><p>Neither of us wanted to reiterate that cognition alongside our own kids.</p> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ac90da4301bb0551f494407&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:3024,&quot;aspectRatioH&quot;:2268}}' alt="Two musicians stance alongside an electric guitar and drum kit in a mirrored rehearsal room."> </p></div> <span> <figcaption e-name="image-caption"> The author stated she and her hubby were forced to perform instruments whenever they were expanding up. As parents, they chose a distinct way for their kids.&nbsp; <span e-name="image-source" itemprop="creditText"> Courtesy of Kate Loweth. </span> </figcaption> </span> </figure> <h2 id="a9377b37-c168-43b8-b1ac-3c00f6270477" data-toc-id="a9377b37-c168-43b8-b1ac-3c00f6270477"><strong>We decided not to sign them up</strong></h2><p>When our kids reached the age whenever many of their allies were starting piano, violin, or another music lessons, we took a distinct approach.</p><p>We didn't say no to music. We merely didn't unpaid them for it.</p> <p>If they wanted to <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">learn an instrument</a>, we told them we would assistance them. But we weren't going to expend hundreds of dollars on lessons and afterward expend the next multiple years nagging them to custom item they never asked to do.</p><p>It wasn't continually uncomplicated to rod to that philosophy. As a parent, it's tempting to appearance at all the activities another kids are doing and amazement whether you're expected to be signing your kids up, too.</p> <p>Music seemed particularly important. I knew firsthand how much kids could get out of being part of a collection or orchestra. I additionally knew that learning an device can instruct site and provision kids an outlet for creativity. I didn't think those benefits required us to power it on them.</p><h2 id="fae9c5ce-f611-4e14-b3de-72259f484c52" data-toc-id="fae9c5ce-f611-4e14-b3de-72259f484c52"><strong>Eventually, they came to us</strong></h2><p>Then item engaging happened: They asked concerning music lessons.</p> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ac90eab301bb0551f494413&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:3024,&quot;aspectRatioH&quot;:2268}}' alt="Three smiling group remain together in an indoor area alongside folding chairs and fluorescent ceiling lights."> </p></div> <span> <figcaption e-name="image-caption"> The author stated all of her children now bask playing musical instruments.&nbsp; <span e-name="image-source" itemprop="creditText"> Courtesy of Kate Loweth. </span> </figcaption> </span> </figure> <p>My female eventually decided she wanted to obtain acoustic guitar lessons. Later, my sons got curious in music, too, signing up for electric guitar and drumming.</p><p>Because they chose these activities themselves, the energetic was entirely distinct from what I remembered from childhood.</p><p>I'm not hovering complete a keyboard place telling person to custom scales. I'm not threatening to obtain distant <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">screen time</a> since person hasn't picked up a guitar.</p><p>They cognize they have to custom to get better, and they're additional invested since the decision to perform was theirs.</p><h2 id="0da839f7-5921-4428-957a-d0cff34737a5" data-toc-id="0da839f7-5921-4428-957a-d0cff34737a5"><strong>I get to bask the show</strong></h2><p>The biggest astonishment has been how much additional fun music is for me as a parent.</p><p>Instead of being the kid who is being told to practice, I'm the mom <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">sitting in the audience</a> alongside my phone out, waiting for the achievement to commencement so I can document them.</p><p>I get to cheer whenever they nail a opus and advance them whenever they don't. I get to hear to them custom "Johnny B. Goode" in their bedrooms and observe their confidence grow.</p> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ac90eea7bf24b4467e69bb5&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:959,&quot;aspectRatioH&quot;:960}}' alt="A kid plays a blue patterned First Act finding drum set in a garage."> </p></div> <span> <figcaption e-name="image-caption"> The author stated she's glad she waited until her kids were older and had their own appreciation and involvement in music before signing them up for ceremonial lessons.&nbsp; <span e-name="image-source" itemprop="creditText"> Courtesy of Kate Loweth. </span> </figcaption> </span> </figure> <p>And since they chose this for themselves, their accomplishments awareness akin theirs.</p><p>Maybe that's what I was really trying to provision my kids by taking music lessons off the parental to-do list: not necessarily a younker without instruments, but one anywhere they get to decide what they desire to rotate into fine at.</p><p>After spending my younker being told to practice, I've established that one of my favorite parts of parenting is <em>not </em>having to be the custom police.</p> </div> <p> <h2> Read next </h2> </p>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/my-parents-made-me-take-music-lessons-as-a-kid-i-refused-to-do-the-same-to-my-own-children-72071</guid> <pubDate>Sun, 11 Oct 2026 16:14:01 +0700</pubDate> <author><![CDATA[support@mycoding.id (Kate Loweth)]]></author> </item> <item> <title><![CDATA[Only 33 albums in history have yielded 3 or more No. 1 songs — here they all are]]></title> <description><![CDATA[Only 33 albums in history have yielded 3 or more No. 1 songs — here they all are. Taylor Swift's &quot;The Life of a Showgirl&quot; has yielded three No. 1 hits on the Billboard Hot 100, joining an choose catalog of blockbuster albums.]]></description> <media:thumbnail url="https://i.insider.com/6ac7d7fe7bf24b4467e696c9?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/only-33-albums-in-history-have-yielded-3-or-more-no-1-songs-here-they-all-are-72064</link> <content:encoded><![CDATA[<div data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/65398c3296f7540cd0660b68?width=2000&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/65398c3296f7540cd0660b68?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/65398c3296f7540cd0660b68?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/65398c3296f7540cd0660b68?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/65398c3296f7540cd0660b68?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/65398c3296f7540cd0660b68?width=1300&amp;format=jpeg&amp;auto=webp 1300w, https://i.insider.com/65398c3296f7540cd0660b68?width=2000&amp;format=jpeg&amp;auto=webp 2000w" sizes=" 1280px) 900px" alt="taylor swift eras tour" decoding="sync"> </p></div> <span> <span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <figcaption e-name="image-caption"> <span>Taylor Swift performs the "1989" set during the Eras Tour.</span> <span> <span e-name="image-source" itemprop="creditText">Kevin Mazur/Getty Images for TAS Rights Management</span> </span> </figcaption> </span> </span></figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>Thanks to "The Life of a Showgirl: The Encore," <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Taylor Swift</a> has added another rare accomplishment to her resum&eacute;.</p><p>The deluxe type of <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Swift's 12th album</a> added four new songs to the tracklist, <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">including "Patient Zero,"</a> which debuted at No. 1 on the Billboard Hot 100 &mdash; becoming the album's third opus to attain the chart's summit, following "<a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">The Fate of Ophelia</a>" and "Opalite."</p><p>Since Billboard launched the Hot 100 in 1958 as the conclusive all-genre singles diagram in the US, lone 33 albums have spawned three or additional <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">No. 1 hits</a> (not counting greatest-hits compilations).</p><p>Counting songs that were released afterward on deluxe editions and reissues, <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Katy Perry's "Teenage Dream"</a> holds the all-time document alongside six No. 1 songs, followed by Michael Jackson's "Bad" alongside five.</p><p>This choose collection of musical blockbusters seems to be getting additional exclusive complete time: Only 12 of the qualifying albums were released in the 21st century. "<a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">The Life of a Showgirl</a>" is the archetypal female gathering to accomplish the feat in complete a decade, since <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Swift's own "1989"</a> in 2014.</p><p>All 33 albums are listed below in chronological order.</p> <div data-component-type="post-slides" data-load-strategy="lazy"> <div> <h2>1. "Where Did Our Love Go" by The Supremes</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac7d58c42403ad8039a4b98&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1200,&quot;aspectRatioH&quot;:1200}}' alt="The Supremes Where Did Our Love Go gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Where Did Our Love Go" was released in 1964.</span> <span> <span e-name="image-source" itemprop="creditText">Motown</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Where Did Our Love Go," "Baby Love," "Come See About Me"</p> </div> <div> <h2>2. "Help!" by The Beatles</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ac7d537301bb0551f493efe&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1000,&quot;aspectRatioH&quot;:894}}' alt="Help! The Beatles gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Help!" was released in 1965.</span> <span> <span e-name="image-source" itemprop="creditText">Parlophone</span> </span> </figcaption> </span></figure> <div> <p><strong>No. 1 songs:</strong> "Help!," "Ticket to Ride," "Yesterday"*</p><p>*Included on the first UK publish of "Help!" and afterward included on the US-exclusive publish of "Yesterday and Today"</p> </div> </div> <div> <h2>3. "Magical Mystery Tour" by The Beatles</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ac7e44642403ad8039a4c0e&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1400,&quot;aspectRatioH&quot;:1400}}' alt="Magical Mystery Tour The Beatles gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Magical Mystery Tour" was released in 1967.</span> <span> <span e-name="image-source" itemprop="creditText">Parlophone/Capitol</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Penny Lane," "All You Need Is Love," "Hello Goodbye"</p> </div> <div> <h2>3. "Let It Be" by The Beatles</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ac7d4e6301bb0551f493efb&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1000,&quot;aspectRatioH&quot;:1000}}' alt="The Beatles Let It Be gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Let It Be" was released in 1970.</span> <span> <span e-name="image-source" itemprop="creditText">Apple</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Let It Be," "The Long and Winding Road," "Get Back"</p> </div> <div> <h2>4. The "Saturday Night Fever" soundtrack</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/62e163d2b0aee500191b77c2&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1500,&quot;aspectRatioH&quot;:1500}}' alt="saturday night fever soundtrack bee gees"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Saturday Night Fever" was released in 1977.</span> <span> <span e-name="image-source" itemprop="creditText">RSO</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "How Deep Is Your Love," "Stayin' Alive," "Night Fever," "If I Can't Have You"</p> </div> <div> <h2>5. "Spirits Having Flown" by the Bee Gees</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac7d44f42403ad8039a4b92&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1000,&quot;aspectRatioH&quot;:994}}' alt="Spirits Having Flown Bee Gees gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Spirits Having Flown" was released in1979.</span> <span> <span e-name="image-source" itemprop="creditText">RSO Records</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Tragedy," "Too Much Heaven," "Love You Inside Out"</p> </div> <div> <h2>6. "Make It Big" by Wham!</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac7d40f7bf24b4467e69693&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1200,&quot;aspectRatioH&quot;:1200}}' alt="Wham! Make It Big gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Make It Big" was released in 1984.</span> <span> <span e-name="image-source" itemprop="creditText">Epic/Columbia</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Wake Me Up Before You Go-Go," "Everything She Wants," "Careless Whisper"</p> </div> <div> <h2>7. "Whitney Houston" by Whitney Houston</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/57e42c50077dcc1c008b7a29&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1000,&quot;aspectRatioH&quot;:1000}}' alt="whitney houston gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Whitney Houston" was released in 1985.</span> <span> <span e-name="image-source" itemprop="creditText">Arista</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Saving All My Love For You," "How Will I Know," "Greatest Love Of All"</p> </div> <div> <h2>8. "True Blue" by Madonna</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac7d3bc7bf24b4467e69692&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1400,&quot;aspectRatioH&quot;:1400}}' alt="True Blue Madonna gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"True Blue" was released in 1986.</span> <span> <span e-name="image-source" itemprop="creditText">Sire Records</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Papa Don't Preach," "Live to Tell," "Open Your Heart"</p> </div> <div> <h2>9. "Whitney" by Whitney Houston</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/62e82323b6ad030018362637&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1800,&quot;aspectRatioH&quot;:1800}}' alt="whitney by whitney houston gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Whitney" was released in 1987.</span> <span> <span e-name="image-source" itemprop="creditText">Arista</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "I Wanna Dance alongside Somebody (Who Loves Me)," "Didn't We Almost Have It All," "So Emotional," "Where Do Broken Hearts Go"</p> </div> <div> <h2>10. "Bad" by Michael Jackson</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6453be2edcb78700180cda75&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1000,&quot;aspectRatioH&quot;:1000}}' alt="Michael Jackson Bad artwork."> </p></div> <span> <figcaption e-name="image-caption"> <span>"Bad" was released in 1987.</span> <span> <span e-name="image-source" itemprop="creditText">Epic/Legacy</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Bad," "The Way You Make Me Feel," "Man in the Mirror," "I Just Can't Stop Loving You," "Dirty Diana"</p> </div> <div> <h2>11. "Faith" by George Michael</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/62449a35764fa90018bb1a78&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1500,&quot;aspectRatioH&quot;:1500}}' alt="faith george michael"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Faith" was released in 1987.</span> <span> <span e-name="image-source" itemprop="creditText">Columbia</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Faith," "Father Figure," "One More Try," "Monkey"</p> </div> <div> <h2>12. "Forever Your Girl" by Paula Abdul</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac7d29a42403ad8039a4b7b&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1000,&quot;aspectRatioH&quot;:977}}' alt="Forever Your Girl Paula Abdul gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Forever Your Girl" was released in 1988.</span> <span> <span e-name="image-source" itemprop="creditText">Virgin Records</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Opposites Attract," "Forever Your Girl," "Straight Up," "Cold Hearted"</p> </div> <div> <h2>13. "Girl You Know It's True" by Milli Vanilli</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac7d23b42403ad8039a4b76&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1000,&quot;aspectRatioH&quot;:971}}' alt="Girl You Know It&#039;s True Milli Vanilli gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Girl You Know It's True" was released in 1989.</span> <span> <span e-name="image-source" itemprop="creditText">Arista</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Baby Don't Forget My Number," "Blame It On The Rain," "Girl I'm Gonna Miss You"</p> </div> <div> <h2>14. "Janet Jackson's Rhythm Nation 1814" by Janet Jackson</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ac7ced742403ad8039a4b5e&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:984,&quot;aspectRatioH&quot;:1000}}' alt="Janet Jackson&#039;s Rhythm Nation 1814 gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Janet Jackson's Rhythm Nation 1814" was released in 1989.</span> <span> <span e-name="image-source" itemprop="creditText">A&amp;M</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Miss You Much," "Love Will Never Do (Without You)," "Escapade," "Black Cat"</p> </div> <div> <h2>15. "Wilson Phillips" by Wilson Phillips</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac7ce8f301bb0551f493ecb&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1300,&quot;aspectRatioH&quot;:1289}}' alt="Wilson Phillips oneself titled gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Wilson Phillips" was released in 1990.</span> <span> <span e-name="image-source" itemprop="creditText">SBK</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Hold On," "Release Me," "You're in Love"</p> </div> <div> <h2>16. "Mariah Carey" by Mariah Carey</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac7cc23301bb0551f493ebe&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1600,&quot;aspectRatioH&quot;:1600}}' alt="Mariah Carey oneself titled gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Mariah Carey" was released in 1990.</span> <span> <span e-name="image-source" itemprop="creditText">Columbia</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Vision of Love," "I Don't Wanna Cry," "Someday," "Love Takes Time"</p> </div> <div> <h2>17. "Daydream" by Mariah Carey</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/62e8246cc1c56b0018b4ab09&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1500,&quot;aspectRatioH&quot;:1500}}' alt="daydream mariah carey"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Daydream" was released in 1995.</span> <span> <span e-name="image-source" itemprop="creditText">Columbia</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Fantasy," "One Sweet Day," "Always Be My Baby"</p> </div> <div> <h2>18. "The Boy Is Mine" by Monica</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac7cb9b42403ad8039a4b38&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1200,&quot;aspectRatioH&quot;:1208}}' alt="The Boy Is Mine Monica gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"The Boy Is Mine" was released in 1998.</span> <span> <span e-name="image-source" itemprop="creditText">Arista</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "The Boy Is Mine," "The First Night," "Angel of Mine"</p> </div> <div> <h2>19. "Christina Aguilera" by Christina Aguilera</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac7cb2d301bb0551f493ea3&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1500,&quot;aspectRatioH&quot;:1500}}' alt="Christina Aguilera debut gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Christina Aguilera" was released in 1999.</span> <span> <span e-name="image-source" itemprop="creditText">RCA</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Genie in a Bottle," "What a Girl Wants," "Come on Over Baby (All I Want is You)"</p> </div> <div> <h2>20. "Confessions" by Usher</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/616786f638c19600182fcbb4&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:980,&quot;aspectRatioH&quot;:983}}' alt="confessions usher"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Confessions" was released in 2004.</span> <span> <span e-name="image-source" itemprop="creditText">LaFace Records</span> </span> </figcaption> </span></figure> <div> <p><strong>No. 1 songs:</strong> "Yeah!," "Confessions Part II," "Burn," "My Boo"*</p><p>*Included on the special-edition reissue of "Confessions"</p> </div> </div> <div> <h2>21. "FutureSex/LoveSounds" by Justin Timberlake</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/5e20a7e7633b5755f45fc50a&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1000,&quot;aspectRatioH&quot;:1000}}' alt="FutureSex LoveSounds justin timberlake"> </p></div> <span> <figcaption e-name="image-caption"> <span>"FutureSex/LoveSounds" was released in 2006.</span> <span> <span e-name="image-source" itemprop="creditText">Zomba Recording LLC</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "SexyBack," "My Love," "What Goes Around...Comes Around"</p> </div> <div> <h2>22. "The Dutchess" by Fergie</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac7ca92301bb0551f493e8d&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1500,&quot;aspectRatioH&quot;:1500}}' alt="Fergie The Dutchess gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"The Dutchess" was released in 2006.</span> <span> <span e-name="image-source" itemprop="creditText">A&amp;M Records/will.i.am Music Group</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "London Bridge," "Glamorous," "Big Girls Don't Cry"</p> </div> <div> <h2>23. "Good Girl Gone Bad" by Rihanna</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac7ca3a7bf24b4467e6960f&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1500,&quot;aspectRatioH&quot;:1500}}' alt="Rihanna Good Girl Gone Bad gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Good Girl Gone Bad" was released in 2007.</span> <span> <span e-name="image-source" itemprop="creditText">Def Jam</span> </span> </figcaption> </span></figure> <div> <p><strong>No. 1 songs:</strong> "Umbrella," "Disturbia,"* "Take a Bow"*</p><p>*Included on the reissue "Good Girl Gone Bad: Reloaded"</p> </div> </div> <div> <h2>24. "The E.N.D." by The Black Eyed Peas</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac7c9c3301bb0551f493e76&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1000,&quot;aspectRatioH&quot;:1000}}' alt="The End Black Eyed Peas gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"The E.N.D." was released in 2009.</span> <span> <span e-name="image-source" itemprop="creditText">Interscope</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Boom Boom Pow," "Imma Be," "I Gotta Feeling"</p> </div> <div> <h2>25. "Teenage Dream" by Katy Perry</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/66da02e8a0ff598b2664f5cb&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1023,&quot;aspectRatioH&quot;:1023}}' alt="katy perry teenage aspiration gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Teenage Dream" was released in 2010.</span> <span> <span e-name="image-source" itemprop="creditText">Capitol Records</span> </span> </figcaption> </span></figure> <div> <p><strong>No. 1 songs:</strong> "Teenage Dream," "Last Friday Night (T.G.I.F.)," "California Gurls," "Firework," "E.T.," "Part of Me"*</p><p>*Included on the reissue "Teenage Dream: The Complete Confection"</p> </div> </div> <div> <h2>26. "Loud" by Rihanna</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/5c6dac99eb3ce81af13fef43&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1400,&quot;aspectRatioH&quot;:1400}}' alt="loud rihanna"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Loud" was released in 2010.</span> <span> <span e-name="image-source" itemprop="creditText">Def Jam</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "S&amp;M," "What's My Name?," "Only Girl (In The World)"</p> </div> <div> <h2>27. "21" by Adele</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/62e82113c1c56b0018b4aa21&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1500,&quot;aspectRatioH&quot;:1492}}' alt="adele 21 gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"21" was released in 2011.</span> <span> <span e-name="image-source" itemprop="creditText">Columbia</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Rolling in the Deep," "Set Fire to the Rain," "Someone Like You"</p> </div> <div> <h2>28. "1989" by Taylor Swift</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6167896a41af0d00193e93cc&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1400,&quot;aspectRatioH&quot;:1400}}' alt="taylor swift 1989 gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"1989" was released in 2014.</span> <span> <span e-name="image-source" itemprop="creditText">Taylor Swift</span> </span> </figcaption> </span></figure> <div> <p><strong>No. 1 songs:</strong> "Blank Space," "Shake It Off," "Bad Blood," "Is It Over Now? (Taylor's Version) [From the Vault]"*</p><p>*Included on the rerecorded gathering "1989 (Taylor's Version)"</p> </div> </div> <div> <h2>29. "Purpose" by Justin Bieber</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac7c8f67bf24b4467e695e9&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1500,&quot;aspectRatioH&quot;:1505}}' alt="Justin Bieber Purpose gathering title"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Purpose" was released in 2015.</span> <span> <span e-name="image-source" itemprop="creditText">Def Jam Recordings</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "What Do You Mean?," "Sorry," "Love Yourself"</p> </div> <div> <h2>30. "Scorpion" by Drake</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/5daf6dca045a3119b1068043&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1000,&quot;aspectRatioH&quot;:1000}}' alt="scorpion drake"> </p></div> <span> <figcaption e-name="image-caption"> <span>"Scorpion" was released in 2018.</span> <span> <span e-name="image-source" itemprop="creditText">Cash Money Records</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "God's Plan," "Nice for What," "In My Feelings"</p> </div> <div> <h2>31. "After Hours" by The Weeknd</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/png" data-srcs='//i.insider.com/5e863fce1378e30e195df856&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1000,&quot;aspectRatioH&quot;:1000}}' alt="after hours the weeknd"> </p></div> <span> <figcaption e-name="image-caption"> <span>"After Hours" was released in 2020.</span> <span> <span e-name="image-source" itemprop="creditText">XO Records/Republic Records</span> </span> </figcaption> </span></figure> <p><strong>No. 1 songs:</strong> "Heartless," "Blinding Lights," "Save Your Tears"</p> </div> <div> <h2>32. "The Life of a Showgirl" by Taylor Swift</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view"> <div> <p><img src="image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20viewBox=&#039;0%200%201%201&#039;%3E%3C/svg%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/68da9f24cc993f9955cf1a23&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:3778,&quot;aspectRatioH&quot;:3778}}' alt="Taylor Swift The Life of a Showgirl norm type gathering cover"> </p></div> <span> <figcaption e-name="image-caption"> <span>"The Life of a Showgirl" was released in 2025.</span> <span> <span e-name="image-source" itemprop="creditText">TAS Rights Management</span> </span> </figcaption> </span></figure> <div> <p><strong>No. 1 songs:</strong> "The Fate of Ophelia," "Opalite," "Patient Zero"*</p><p>*Included on the deluxe type "The Life of a Showgirl: The Encore"</p> </div> </div> </div> </div> <p> <h2> Read next </h2> </p> <div data-component-type="post-bottom-authors" data-load-strategy="exclude" data-track-view='&quot;module_in_view&quot;}' data-track-click-shared='&quot;navigation&quot;}'> <div data-track-view='&quot;module_in_view&quot;}'> <div> <p><span>Callie Ahlgrim is a elder newsman at Business Insider who writes concerning pop culture, alongside a particular concentration on the music industry.</span><span>As a cofounding associate of BI's music vertical, Callie has covered a range of hot topics at the intersection of art, community fig culture, and display business: the governmental implications of <a href="https://en.mycoding.id/category/business" target="_blank">Bad Bunny's success</a>; the fan feedback iteration in&nbsp;<a href="https://en.mycoding.id/category/business" target="_blank">Taylor Swift's imaginative process</a>; the symbolism of <a href="https://en.mycoding.id/category/business" target="_blank">Kendrick Lamar's Super Bowl halftime show</a>; the business effect of <a href="https://en.mycoding.id/category/business" target="_blank">Beyonc&eacute;'s country&nbsp;album</a>; the brand identities of stars akin <a href="https://en.mycoding.id/category/business" target="_blank">Harry Styles</a>,&nbsp;<a href="https://en.mycoding.id/category/business" target="_blank">Morgan Wallen</a>,&nbsp;<a href="https://en.mycoding.id/category/business" target="_blank">Addison Rae</a>,&nbsp;<a href="https://en.mycoding.id/category/business" target="_blank">Katy Perry</a>, and <a href="https://en.mycoding.id/category/business" target="_blank">Frank Ocean</a>;&nbsp;the contemporary challenges of <a href="https://en.mycoding.id/category/business" target="_blank">making prosperity as a musician</a>;&nbsp;and more.</span><span>She additionally covers community fig PR strategies, blockbuster movies, prestige TV shows, and net trends.</span><span>Callie graduated from Boston University alongside a Bachelor of Science in Journalism, a Bachelor of Arts in English, and a insignificant in Spanish. She earlier wrote columns for Man Repeller and ELLE.</span> </p> </div> </div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/only-33-albums-in-history-have-yielded-3-or-more-no-1-songs-here-they-all-are-72064</guid> <pubDate>Sun, 11 Oct 2026 15:32:01 +0700</pubDate> <author><![CDATA[support@mycoding.id (Callie Ahlgrim)]]></author> </item> <item> <title><![CDATA[Membedah Keamanan macOS dari Dalam]]></title> <description><![CDATA[Membedah Keamanan macOS dari Dalam. Channel ini menyajikan materi seputar Data Science &amp; Artificial Intelligence, Networking &amp; Cyber Security, serta Database &amp; Programming. Seluruh mat...]]></description> <media:thumbnail url="https://i1.ytimg.com/vi/7yNzi3GBBEE/maxresdefault.jpg"/> <category><![CDATA[Indonesian]]></category> <link>https://en.mycoding.id/membedah-keamanan-macos-dari-dalam-72070</link> <content:encoded><![CDATA[<p class="embed-responsive embed-responsive-16by9 post-embed"><iframe width="560" height="315" aria-label="Preview" class="embed-responsive-item" src="https://www.youtube.com/embed/7yNzi3GBBEE?autoplay=1&amp;mute=1&amp;playsinline=1&amp;rel=0" title="YouTube video player" frameborder="0" allow="autoplay; accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p><h2>Membedah Keamanan macOS dari Dalam</h2><p>Channel ini menyajikan materi seputar Data Science &amp; Artificial Intelligence, Networking &amp; Cyber Security, serta Database &amp; Programming. Seluruh materi disusun secara sistematis untuk membantu Anda memahami konsep, teknologi, dan praktik yang digunakan di bumi teknologi informasi, mulai dari tingkat alas hingga lanjutan. Setiap bahasan berfokus pada pengembangan keahlian melalui materi yang gampang dipahami, relevan dengan kebutuhan industri, dan disampaikan untuk tujuan edukasi. Seluruh konten mengedepankan implementasi teknologi secara legal, etis, dan bertanggung jawab, sehingga dapat menjadi rujukan belajar bagi pelajar, mahasiswa, maupun profesional. Jika Anda mau mengembangkan kapasitas di sektor pemrograman, pengelolaan data, kecerdasan buatan, jaringan komputer, maupun keamanan siber, channel ini menyediakan materi yang dapat membantu membangun fondasi ilmu sekaligus menaikkan keahlian secara bertahap. Playlist video terkait: ▪ https://www.youtube.com/playlist?list=PLZGgeqmsm32s ▪ https://www.youtube.com/playlist?list=PLZomBNpDl3vc ▪ https://www.youtube.com/playlist?list=PLE5VyXMZkzb8 PEMBAHASAN MATERI Playlist Materi Ilmu Komputer berisi kumpulan video pembelajaran, tutorial, klarifikasi konsep, studi kasus, demo, dan bahasan komplit seputar beragam sektor dalam ilmu komputer. Materi yang disajikan mencakup alas hingga tingkat lanjut, mulai dari pemrograman, pengelolaan database, jaringan komputer, keamanan siber, mekanisme operasi, pengembangan alat lunak, arsitektur komputer, hingga beragam teknologi yang digunakan dalam bumi komputasi modern. Temukan bahasan mengenai komputer dan pemrograman, algoritma, struktur data, PHP, JavaScript, Python, Laravel, MySQL, PostgreSQL, API, rekayasa alat lunak, database, jaringan komputer, pengelolaan server, cloud computing, virtualisasi, Linux, Windows Server, keamanan jaringan, cyber security, ethical hacking, kriptografi, keamanan aplikasi, DevOps, Internet of Things (IoT), kecerdasan buatan (AI), machine learning, serta beragam konsep, teknologi, dan praktik terbaik di sektor ilmu komputer. Playlist ini cocok bagi pelajar, mahasiswa, programmer, web developer, software engineer, pengelola sistem, ahli IT, maupun siapa saja yang mau mempelajari dan memperdalam wawasan di bumi ilmu komputer secara menyeluruh. CONTACT US ▪ Email support@mycoding.id ▪ WhatsApp https://wa.me/6281274309663 ▪ Telegram https://t.me/mycodingxd OFFICIAL LINKS ▪ Web https://mycoding.id ▪ Blog https://blog.mycoding.id ▪ News https://en.mycoding.id ▪ Apps https://play.google.com/store/apps/dev?id=5237501547073493079 SOCIAL MEDIA ▪ https://linkedin.com/company/mycodingxd ▪ https://facebook.com/mycodingxd ▪ https://instagram.com/mycodingxd ▪ https://tiktok.com/@mycodingxd ▪ https://twitter.com/mycoding_xd ▪ https://pinterest.com/mycoding_xd CHANNEL LINKS ▪ YouTube https://safelink.asia/youtube ▪ DailyMotion https://safelink.asia/dailymotion ▪ WhatsApp https://safelink.asia/whatsapp ▪ Telegram https://safelink.asia/telegram Powered by https://linkedin.com/company/401XDGroup #CyberSecurity #ArtificialIntelligence #Networking #DataScience #Programming #Database</p>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/membedah-keamanan-macos-dari-dalam-72070</guid> <pubDate>Sun, 11 Oct 2026 15:30:35 +0700</pubDate> <author><![CDATA[support@mycoding.id (Mc Project)]]></author> </item> <item> <title><![CDATA[Internal files add to evidence of an ExxonMobil climate deception campaign]]></title> <description><![CDATA[Internal files add to evidence of an ExxonMobil climate deception campaign. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/internal-files-add-to-evidence-of-an-exxonmobil-climate-deception-campaign-72067</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/internal-files-add-to-evidence-of-an-exxonmobil-climate-deception-campaign-72067</guid> <pubDate>Sun, 11 Oct 2026 15:28:39 +0700</pubDate> <author><![CDATA[support@mycoding.id (Putri Silvia)]]></author> </item> <item> <title><![CDATA[My parents spent 25 years celebrating me. For their 30th anniversary, I finally got to celebrate them.]]></title> <description><![CDATA[My parents spent 25 years celebrating me. For their 30th anniversary, I finally got to celebrate them.. I threw my parents a astonishment gathering for their 30th anniversary. It reminded me they had a entire existence before becoming Mom and Dad.]]></description> <media:thumbnail url="https://i.insider.com/6abe726aeb7225411267d088?width=1169&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/my-parents-spent-25-years-celebrating-me-for-their-30th-anniversary-i-finally-got-to-celebrate-them-72065</link> <content:encoded><![CDATA[<div data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/6abe74dfd15f8a572974d0e5?width=1000&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6abe74dfd15f8a572974d0e5?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6abe74dfd15f8a572974d0e5?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6abe74dfd15f8a572974d0e5?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6abe74dfd15f8a572974d0e5?width=1000&amp;format=jpeg&amp;auto=webp 1000w" sizes=" 1280px) 900px" alt="Old wedding photo" decoding="sync"> </p></div> <span> <span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <figcaption e-name="image-caption"> <span>The author's parents have been wed for 30 years.</span> <span> <span e-name="image-source" itemprop="creditText">Courtesy of the author</span> </span> </figcaption> </span> </span></figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>My parents met in May 1986, whenever they were fair 14 and 15 years old, and started courtship in September that identical year. Just a duration later, my mom turned 15.</p><p>She can't recall exactly what their <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">first date</a> was. Maybe a movie, she says, or item simple, akin hanging out alongside friends. But whenever she archetypal saw my dad &mdash; a quiescent yet comic guy &mdash; playing capture alongside his finest companion during she babysat throughout the street, neither of them could have known what benevolent of journey they were concerning to obtain together.</p><p>They were wed in June 1996, at Alex &amp; Henry's, a then-popular catering hall that closed a few years later.</p><p>This year, the day before their authoritative <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">30th anniversary</a>, my twin brother and I pulled off what I'd contend was among the finest surprises of our grownup lives: a gathering alongside additional than 40 of their closest allies and family members.</p><h2 id="fb8fea3e-0f7c-4536-b293-1cfcc8a44d49" data-toc-id="fb8fea3e-0f7c-4536-b293-1cfcc8a44d49">They deserved to be celebrated</h2><p>My grandma <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">traveled from Delaware</a> to our hometown in Westchester County to assistance bring the astonishment together. For months, she fielded my frantic calls concerning array arrangements, centerpieces, and pie flavors, during I dodged my parents at home. Trying to astonishment the group you live alongside is no small feat.</p> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6abe6db9265e3f8e338f97b5&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:2304,&quot;aspectRatioH&quot;:1536}}' alt="Family photo"> </p></div> <span> <figcaption e-name="image-caption"> The author and her twin brother threw their parents a gathering for their 30th anniversary.&nbsp; <span e-name="image-source" itemprop="creditText"> Courtesy of the author </span> </figcaption> </span> </figure> <p>I quietly texted out invitations, made decorations, including "Back in 1996" cards for all location setting, and coordinated alongside vendors and the eatery to create certain all item was fair right.</p><p>I was inundated alongside butterflies. I wanted so seriously for them to be entirely stunned &mdash; they deserved it. And since I had dropped off the decorations beforehand, the final setup was in the hands of my grandma and my finest companion since kindergarten, who I tasked alongside bringing my imagination to life.</p><p>My brother and his partner needed a believable logic to arrive residence from Austin for the weekend. He told my parents they'd sojourn to commemorate their <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">pearl anniversary</a>, which made awareness before a important activity trip.</p><p>He fibbed. There was no <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">work trip</a>.</p> <h2 id="77ae8ec4-f045-4795-bb31-2c101dc106bf" data-toc-id="77ae8ec4-f045-4795-bb31-2c101dc106bf">We amazed them</h2><p>Several weeks before they arrived, my brother "made a reservation" at one of our favorite restaurants &mdash; anywhere he had worked in elevated school&mdash; for six group on June 7. We'd have a delayed lunch to commemorate our parents' commemoration alongside our partners and us. Since we'd be together, I convinced them we should obtain family pictures. My scheme was solid.</p><p>That afternoon, my partner and I remaining the home archetypal &mdash; racing to the eatery fair a few minutes away, leaving my brother alongside the coveted project of escorting my parents inner without them noticing the acquainted cars belonging to allies and family in the parking lot.</p><p>They turned the border expecting to sit downward at a array for six, but alternatively were met alongside a bellow of "Surprise!" in a area complete of their favorite people.</p><p>They were shocked.</p> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6abe7481eb7225411267d0a3&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:2304,&quot;aspectRatioH&quot;:1536}}' alt="Wedding commemoration cake"> </p></div> <span> <figcaption e-name="image-caption"> The author welcomed allies and family to commemorate her parents.&nbsp; <span e-name="image-source" itemprop="creditText"> Courtesy of the author </span> </figcaption> </span> </figure> <p>As they bounced between tables, they embraced, laughed, caught up, and reminisced during admiring the multiple photo boards my grandma had made, which captured decades of their affection narrative in motionless moments.</p><p>To me, the process, the surprise, and the consequence &mdash; how it has remained a dinner-table conversation months later, and how the joy and affection they felt that day motionless emitted from them whenever they talked concerning it &mdash; were a joy in themselves. It filled me alongside so much happiness.</p><p>This joy has lingered in conversations, in the photo boards my mom kept displayed about the house, and the cake-table decorations draped complete the piano. The pieces of that day scattered throughout our residence became reminders that our parents are additional than the group who raised us &mdash; they are group alongside their own stories, memories, and milestones value celebrating.</p><p>As we marked a milestone in their marriage &mdash; a extend of period longer than my 25 years on this earth &mdash;I established myself thinking concerning the lives my parents had lived before they became my parents.</p><p>They had already spent years together before my brother and I were delivered in 2000. They had been teenagers, friends, partner and girlfriend, and eventually hubby and wife. They had memories and inner jokes, losses and milestones, dreams and disappointments that belonged entirely to them.</p><p>Their lives did not halt whenever they became parents.</p><p>They are motionless living, experiencing, learning, loving, and losing things for the archetypal time, fair akin my brother and I are as young adults.</p> </div> <p> <h2> Read next </h2> </p>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/my-parents-spent-25-years-celebrating-me-for-their-30th-anniversary-i-finally-got-to-celebrate-them-72065</guid> <pubDate>Sun, 11 Oct 2026 15:24:01 +0700</pubDate> <author><![CDATA[support@mycoding.id (Miranda Ferrante)]]></author> </item> <item> <title><![CDATA[I'm an American who's pregnant in France. It's been great in some ways, but there are times I wish I were back home.]]></title> <description><![CDATA[I'm an American who's pregnant in France. It's been great in some ways, but there are times I wish I were back home.. I'm expecting and living in France. My cognition and attention current has been awesome so far, but there are times I desire I were rear residence in the US.]]></description> <media:thumbnail url="https://i.insider.com/6ac3d281225e4c4a50a38009?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/i-m-an-american-who-s-pregnant-in-france-it-s-been-great-in-some-ways-but-there-are-times-i-wish-i-were-back-home-72066</link> <content:encoded><![CDATA[<div data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/6ac3cdddf66e1154bdfa3282?width=2000&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6ac3cdddf66e1154bdfa3282?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6ac3cdddf66e1154bdfa3282?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6ac3cdddf66e1154bdfa3282?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6ac3cdddf66e1154bdfa3282?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/6ac3cdddf66e1154bdfa3282?width=1300&amp;format=jpeg&amp;auto=webp 1300w, https://i.insider.com/6ac3cdddf66e1154bdfa3282?width=2000&amp;format=jpeg&amp;auto=webp 2000w" sizes=" 1280px) 900px" alt="The author stands on a hillside terrace overlooking Lyon rooftops." decoding="sync"> </p></div> <span> <span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <figcaption e-name="image-caption"> <span>There's a lot that I've loved concerning the French method to pregnancy.</span> <span> <span e-name="image-source" itemprop="creditText">Audrey Bruno</span> </span> </figcaption> </span> </span></figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>When I cut in affection alongside a Frenchman who wanted kids as much as I did, I knew there was a distinct possible that I'd be going through gestation on abroad soil. And whenever we <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">moved to France</a> in 2021, alongside no aim of leaving anytime soon, my destiny seemed all but sealed.</p><p>Earlier in 2026, I established out that we were expecting for the archetypal time. For a twelvemonth foremost up to this moment, I'd set the phase for everything to go as smoothly as possible, ensuring that I was correctly registered in <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">France's national health-insurance program</a> and completing all the preliminary checkups.</p><p>Yet, notwithstanding my finest efforts, nothing could have prepared me for the traditional differences surrounding gestation in France. Although I've established there's a lot to affection concerning the French approach, there have additionally been a fistful of times I've desired I were rear in the US alongside my family in Southern California, anywhere I'm initially from.</p><h2 id="a1c8de87-5202-4d21-b9f8-8ad8593b01e1" data-toc-id="a1c8de87-5202-4d21-b9f8-8ad8593b01e1">I was expecting to have an OB-GYN, but using midwives is the norm complete here</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ac3cffff66e1154bdfa329c&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:6191,&quot;aspectRatioH&quot;:4127}}' alt="Close-up of an inspection array in a doctor&#039;s office."> </p></div> <span> <figcaption e-name="image-caption"> I continually idea I would have an OB-GYN, but that's small average in France.&nbsp; <span e-name="image-source" itemprop="creditText"> Grace Cary/Getty Images </span> </figcaption> </span> </figure> <p>Though midwifery isn't regulated nationally in the US, it is in France. Here, midwives are required to act six years of schooling and get a master's degree.</p><p>They're allowed to prescribe medication and guide childbirth, and I've established that most French group alongside low-risk pregnancies are recommended to them complete OB-GYNs for all the steps of gestation and delivery.</p><p>I'm being treated by three midwives, and I affection the way they're specialized to my distinct needs. There's one who performs the sonograms and monthly checkups, one who volition get me through the delivery, and one who provides classes to assistance me prepare.</p><p>Plus, they'll sojourn you at residence to create certain your improvement is on track following the big event. That's not as average alongside physicians in the US.</p><h2 id="61ef42c0-785e-4c7d-88a0-167dd103bb5a" data-toc-id="61ef42c0-785e-4c7d-88a0-167dd103bb5a">Most of my gestation expenses are covered by the national health coverage program</h2><p>Although I haven't been expecting during living in the United States, I've heard plentifulness of fear stories concerning <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">hefty hospital bills</a> &mdash; equal for Americans who <em>are</em> covered by insurance.</p><p>By contrast, France requires all residents to enroll alongside the national healthcare system, which can subsidize up to 70% of connected charges until the fifth duration of pregnancy, and all connected expenses from six months onward.</p> <p>For what's not covered during the archetypal half, most group have a second coverage called a mutuelle &mdash; mostly provided by your director &mdash; that fills in the gaps.</p><p>Although I don't have a mutuelle, the appointments I have that aren't entirely covered mostly disbursal me 40 euros or less. What's more, the French authorities offers a commencement reward of complete 1,000 euros to parents earning below a certain earnings threshold.</p><p>This volition additional than create up the difference if my hubby and I meet requirements for it.</p><h2 id="12cddca7-dc47-47eb-8d1f-25a2beadcf67" data-toc-id="12cddca7-dc47-47eb-8d1f-25a2beadcf67">Despite all these advantages, there are times I desire I were in the US</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac3d06c225e4c4a50a37ff3&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:820,&quot;aspectRatioH&quot;:604}}' alt="The writer, wearing sunglasses, stands by a sunlit rock partition alongside hands resting on her abdomen."> </p></div> <span> <figcaption e-name="image-caption"> Being distant from my family during this period has been difficult.&nbsp; <span e-name="image-source" itemprop="creditText"> Audrey Bruno </span> </figcaption> </span> </figure> <p>France has gone complete and beyond my expectations in a figure of categories, but there's no denying that I'd commerce a lot for a sensation of residence &mdash; literally. No <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">French cornichon</a> can always live up to the real-deal American pickles I've been dreaming of.</p><p>I've additionally had to obtain that I'm likely not going to get a <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">baby shower</a> during I'm complete here, as celebrations akin that aren't part of the local customs. Although French folks have started to clasp things akin registering for baby gifts, equal that's not continually a given.</p><p>And although I certainly don't awareness the need for festivities at all stage of the way &mdash; I'm not the category to throw a <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">gender-reveal party</a>, for example &mdash; I'd value at smallest several of the pomp and circumstance that feels additional customary rear home.</p><p>More than that, it's the allies and family I young female the most. No figure of video chats volition always measure up to sharing laughs, hugs, and affection in the identical bodily space. I'd provision up all the pickles and baby showers in the earth fair to have that.</p> </div> <p> <h2> Read next </h2> </p>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/i-m-an-american-who-s-pregnant-in-france-it-s-been-great-in-some-ways-but-there-are-times-i-wish-i-were-back-home-72066</guid> <pubDate>Sun, 11 Oct 2026 15:21:01 +0700</pubDate> <author><![CDATA[support@mycoding.id (Audrey Bruno)]]></author> </item> <item> <title><![CDATA[Inside America's only internet sea cable maker, supplying Google and Microsoft]]></title> <description><![CDATA[Inside America's only internet sea cable maker, supplying Google and Microsoft. Ninety-nine percent of global net traffic flows through cables stretched throughout the sea floor. Demand is at an all-time elevated as the earth becomes ...]]></description> <media:thumbnail url="https://i.insider.com/6ac94d147bf24b4467e69e7c?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/inside-america-s-only-internet-sea-cable-maker-supplying-google-and-microsoft-72061</link> <content:encoded><![CDATA[<div> <div> <div id="player-container-mxPVKKUe" data-component-type="video" data-type="video" data-video-player data-load-strategy="disable-lazy" data-event-category="video_page" data-media-id="7JtLUwaI" data-title="Inside America&#039;s lone net sea cable maker, supplying Google and Microsoft" data-advertising="enabled" data-region="in-content" data-id="player-container-mxPVKKUe" data-enabled="true" data-events="enabled" data-preroll="4442842/businessinsider.desktop/video-post/pre-roll-in-content/tech" data-midroll="4442842/businessinsider.desktop/video-post/mid-roll-in-content/tech" data-sponsored="false" data-placement-id="mxPVKKUe" data-track-element="featured_video" data-thumbnail="https://i.insider.com/6ac95094301bb0551f49470a?width=850&amp;format=jpeg&amp;auto=webp" data-render-thumbnail="true"> <div> <p><img src="https://i.insider.com/6ac95094301bb0551f49470a?width=2000&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6ac95094301bb0551f49470a?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6ac95094301bb0551f49470a?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6ac95094301bb0551f49470a?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6ac95094301bb0551f49470a?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/6ac95094301bb0551f49470a?width=1300&amp;format=jpeg&amp;auto=webp 1300w, https://i.insider.com/6ac95094301bb0551f49470a?width=2000&amp;format=jpeg&amp;auto=webp 2000w" sizes=" 1280px) 900px" alt="cable" decoding="sync"> </p> </div> </div> <div> <div> <div><p>Description </p><svg xmlns="http://www.w3.org/2000/svg" width="12" height="8" viewbox="0 0 12 8"> Angle downward icon An icon in the form of an viewpoint pointing down. <path d="M11.3281 0.792709C11.1874 0.796035 11.0537 0.854817 10.9562 0.95625L5.99996 5.9125L1.04371 0.95625C0.994011 0.90516 0.934574 0.864549 0.868913 0.836818C0.803251 0.809086 0.732698 0.794796 0.661421 0.794792C0.555323 0.79482 0.451644 0.826488 0.363639 0.885749C0.275634 0.94501 0.207301 1.02917 0.167378 1.12747C0.127454 1.22577 0.117753 1.33374 0.139515 1.43758C0.161277 1.54143 0.213513 1.63642 0.289546 1.71042L5.62288 7.04375C5.7229 7.14374 5.85854 7.1999 5.99996 7.1999C6.14139 7.1999 6.27702 7.14374 6.37705 7.04375L11.7104 1.71042C11.7878 1.63594 11.841 1.5398 11.8629 1.43459C11.8848 1.32939 11.8744 1.22003 11.833 1.12084C11.7917 1.02164 11.7214 0.937245 11.6313 0.878694C11.5412 0.820144 11.4355 0.790174 11.3281 0.792709V0.792709Z" fill="currentColor"></path> </svg> </div> </div> </div> <div> <div> <p>Ninety-nine percent of global net traffic flows through cables stretched throughout the sea floor. Demand is at an all-time elevated as the earth becomes additional reliant on haze computing and AI. But lone one US business can the two create and lay them. We visited its 73-year-old factory and went aboard a multimillion-dollar cable-laying container to see how it is keeping up &mdash; and why our data motionless needs to journey thousands of feet below the sea.</p> </div> </div> </div> </div> <p>Ninety-nine percent of global net traffic flows through cables stretched throughout the sea floor. Demand is at an all-time elevated as the earth becomes additional reliant on haze computing and AI. But lone one US business can the two create and lay them. We visited its 73-year-old factory and went aboard a multimillion-dollar cable-laying container to see how it is keeping up &mdash; and why our data motionless needs to journey thousands of feet below the sea.</p> <span>Show more</span>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/inside-america-s-only-internet-sea-cable-maker-supplying-google-and-microsoft-72061</guid> <pubDate>Sun, 11 Oct 2026 14:33:01 +0700</pubDate> <author><![CDATA[support@mycoding.id (Bethany Johnson)]]></author> </item> <item> <title><![CDATA[Open-Source Microsoft Office Excel, PowerPoint, and Word Replications]]></title> <description><![CDATA[Open-Source Microsoft Office Excel, PowerPoint, and Word Replications. Comments]]></description> <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-1200-80.jpg"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/open-source-microsoft-office-excel-powerpoint-and-word-replications-72068</link> <content:encoded><![CDATA[<div data-widget-type="contentparsed" id="content"> <div> <div> <figure> <source type="image/webp" srcset="https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-1920-80.jpg.webp 1920w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-1600-80.jpg.webp 1600w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-1200-80.jpg.webp 1200w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-1024-80.jpg.webp 1024w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-970-80.jpg.webp 970w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-750-80.jpg.webp 750w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-650-80.jpg.webp 650w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-480-80.jpg.webp 480w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-320-80.jpg.webp 320w" sizes=" 1000px) 600px, 100vw"></source> <img src="https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-320-80.jpg" alt="Microsoft logo" srcset="https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-1920-80.jpg 1920w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-1600-80.jpg 1600w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-1200-80.jpg 1200w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-1024-80.jpg 1024w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-970-80.jpg 970w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-750-80.jpg 750w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-650-80.jpg 650w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-480-80.jpg 480w, https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb-320-80.jpg 320w" sizes=" 1000px) 600px, 100vw" -image="true" data-original-mos="https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb.jpg" data-pin-media="https://cdn.mos.cms.futurecdn.net/iPvfpzYoJfo4RCLhXPfRAb.jpg" data-pin-nopin="true" fetchpriority="high" data-component-name="Image"> <figcaption> <span>(Image credit: Getty)</span> </figcaption> </figure></div> <div id="article-body"> <p id="elk-a29fc0c2-c4c3-11f1-b66a-2d94b4dadf89">Brandon Thomas, developer of ArtCraft, a suite of open-source imaginative tools meant to replicate Adobe applications for free, has now announced apps to substitute <a href="https://en.mycoding.id/category/technology" target="_blank" data-auto-tag-linker="true" data-url="https://www.tomshardware.com/tag/microsoft" data-hl-processed="none" data-article-category="software" data-mrf-recirculation="inline-link" data-before-rewrite-localise="https://www.tomshardware.com/tag/microsoft">Microsoft</a> Office tools specified as Excel, PowerPoint, and Word, respectively, named GridCraft, DeckCraft, and WordCraft, that are created alongside Claude. Thomas has shared his new clones to ArtCraft GitHub, making them liberated for all to download.</p><p>After our <a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" data-url="https://www.tomshardware.com/software/video-editing-graphic-design/solo-developer-rebuilds-adobe-creative-suite-in-rust-using-claude-releases-it-free-to-all-targets-100-percent-parity-in-one-month-despite-piracy-claims-and-safety-warnings" data-hl-processed="none" data-article-category="software" data-mrf-recirculation="inline-link" data-before-rewrite-localise="https://www.tomshardware.com/software/video-editing-graphic-design/solo-developer-rebuilds-adobe-creative-suite-in-rust-using-claude-releases-it-free-to-all-targets-100-percent-parity-in-one-month-despite-piracy-claims-and-safety-warnings">previous narrative covering ArtCraft</a>, we have since discovered that u/ai_art_is_art is Brandon Thomas, a extremely gifted application engineer alongside 15 years of cognition under his belt. After his ArtCraft project became popular, many criticisms followed concerning vibecoded application and AI slop, to which Brandon responded on his X account, saying that he does cognize how to code.</p><p id="elk-a29fc0c2-c4c3-11f1-b66a-2d94b4dadf89-2" aria-hidden="true">One of the biggest ache points for these application programs is OS compatibility, during Adobe runs on MacOS and Windows, Linux requires additional compatibility layers and Windows emulation to work. One of ArtCraft&rsquo;s biggest marketing points is being capable to run all the application throughout all three platforms during motionless giving an identical person cognition despite of OS &mdash; this is additionally part of the parity that ArtCraft wants to achieve. While <a href="https://en.mycoding.id/category/technology" target="_blank" data-auto-tag-linker="true" data-url="https://www.tomshardware.com/tag/google" data-hl-processed="none" data-article-category="software" data-mrf-recirculation="inline-link" data-before-rewrite-localise="https://www.tomshardware.com/tag/google">Google</a> provides these tools for liberated alongside Google Sheets, Docs, and Slides accessible on all platforms through a browser, the online-only example takes distant the ownership aspect of the software, fearing that one day the tools would abruptly necessitate a subscription and users would not have any say in it.</p><div id="elk-2108561265421357502" aria-hidden="true"><figure><blockquote data-lang="en" cite="https://twitter.com/cantworkitout/status/2108561265421357502"><p lang="en" dir="ltr">My guy, I can code In university I was construction laser games on skyscrapers and cloning the luciferase-luciferin scheme into flora via agrobacterium-mediated transfection AI models allow me to activity as an complete company. I'm doing 4x improved than Google's income per employee https://t.co/sGCkdy92QM<a href="https://en.mycoding.id/category/technology" target="_blank" data-url="https://twitter.com/cantworkitout/status/2108561265421357502" target="_blank" referrerpolicy="no-referrer-when-downgrade" data-hl-processed="none" data-article-category="software">October 9, 2026</a></p></blockquote></figure></div><p id="elk-a29fc2b6-c4c3-11f1-b4ca-2d74ccdc80bd" aria-hidden="true">Microsoft sits among the most criticized companies for its endeavor practices, akin to Adobe. What was formerly a one-time acquisition now comes as a subscription bundle alongside assorted tools that many don&rsquo;t need; many equal have overlapping features and uses, basically wasting several of the subscription value. It seems that Brandon Thomas is not lone creating open-source alternatives, but is additionally creating a targeted objection against these practices.</p><p aria-hidden="true">ArtCraft&rsquo;s Discord community is additionally expanding extremely quickly, alongside changeless recommendations of another application they would akin to see, alongside CADcraft being commonly discussed among 3D printing and engineering enthusiasts who don&rsquo;t akin Autodesk, akin to Microsoft and Adobe. As many liberated alternatives as there were before the rampant vibecoding, it seems that this expanding gathering of tools is not lone functional, but a communication to the ample companies as well. Most of these apps are motionless far from what they average to replace, however, so we'll have to see how profound this communication cuts.</p><a href="https://en.mycoding.id/category/technology" target="_blank" id="elk-44a3182e-c4c4-11f1-858f-e3930ae9e46d" aria-hidden="true" data-url="https://news.google.com/publications/CAAqLAgKIiZDQklTRmdnTWFoSUtFSFJ2YlhOb1lYSmtkMkZ5WlM1amIyMG9BQVAB" target="_blank" referrerpolicy="no-referrer-when-downgrade" data-hl-processed="none" data-article-category="software"><figure data-bordeaux-image-check=""><div><p> <source type="image/webp" srcset="https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56-676-80.png.webp 1200w, https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56-676-80.png.webp 1024w, https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56-676-80.png.webp 970w, https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56-650-80.png.webp 650w, https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56-480-80.png.webp 480w, https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56-320-80.png.webp 320w" sizes=" 1000px) 970px, calc(100vw - 40px)"></source> <img src="https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56-320-80.png" alt="Google Preferred Source" srcset="https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56-676-80.png 1200w, https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56-676-80.png 1024w, https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56-676-80.png 970w, https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56-650-80.png 650w, https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56-480-80.png 480w, https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56-320-80.png 320w" sizes=" 1000px) 970px, calc(100vw - 40px)" loading="lazy" -image="true" data-original-mos="https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56.png" data-pin-media="https://cdn.mos.cms.futurecdn.net/7cUTDmN2PHNRiNBVqbKf56.png"> </p></div></figure></a><p id="elk-44a318a6-c4c4-11f1-af6d-f3ccd30294de" aria-hidden="true"><em>Follow</em><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" data-url="https://news.google.com/publications/CAAqLAgKIiZDQklTRmdnTWFoSUtFSFJ2YlhOb1lYSmtkMkZ5WlM1amIyMG9BQVAB" referrerpolicy="no-referrer-when-downgrade" data-hl-processed="none" data-article-category="software" data-mrf-recirculation="inline-link"><em> Tom's Hardware on Google News</em></a><em>, or</em><a href="https://en.mycoding.id/category/technology" target="_blank" target="_blank" data-url="https://google.com/preferences/source?q=" referrerpolicy="no-referrer-when-downgrade" data-hl-processed="none" data-article-category="software" data-mrf-recirculation="inline-link"><em> add us as a preferred source</em></a><em>, to get our latest news, analysis, &amp; reviews in your feeds.</em></p><div id="slice-container-newsletterForm-articleInbodyContent-LPG4h9d4BHDprS8r2C7NwW"><div data-hydrate="true"><div><p>Get Tom's Hardware's finest news and in-depth reviews, direct to your inbox.</p></div></div></div> </div> <div id="slice-container-authorBio-LPG4h9d4BHDprS8r2C7NwW"> <div id="slice-container-authorBio" data-component-name="AuthorBio"> <div data-author-bio-max-height="250" data-author-bio-read-more="Read more" data-author-bio-read-less="Read less"> <div> <p>Jhet Borja is a serial hobbyist who was taking distinct toys from younker and sketching inventions. He now loves doing DIY projects ranging from designing tradition 3D-printed parts, construction PCs and keyboards, all the way to woodworking. If he's not getting his hands dirty, he's likely brainstorming his next project.</p> </div> </div> </div> </div> </div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/open-source-microsoft-office-excel-powerpoint-and-word-replications-72068</guid> <pubDate>Sun, 11 Oct 2026 14:28:03 +0700</pubDate> <author><![CDATA[support@mycoding.id (Putri Silvia)]]></author> </item> <item> <title><![CDATA[Terence Tao: Math 2.0 [pdf]]]></title> <description><![CDATA[Terence Tao: Math 2.0 [pdf]. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/terence-tao-math-2-0-pdf-72069</link> <content:encoded><![CDATA[<div><p>%PDF-1.7 % 10 0 obj &lt;&lt; /Type /XObject /Subtype /Form /BBox [0 0 725.669 7.97] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 11 0 R /Length 15 /Filter /FlateDecode &gt;&gt; stream xP( endstream endobj 17 0 obj &lt;&lt; /Type /XObject /Subtype /Form /Group &lt;&lt; /S /Transparency /CS /DeviceGray &gt;&gt; /BBox [0 0 725.669 7.97] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 18 0 R /Length 29 /Filter /FlateDecode &gt;&gt; stream x+2T0 B&#741;k J3 endstream endobj 13 0 obj &lt;&lt; /Type /XObject /Subtype /Form /BBox [0 0 725.669 7.97] /FormType 1 /Matrix [1 0 0 1 0 0] /Resources 19 0 R /Length 57 /Filter /FlateDecode &gt;&gt; stream x+T2THW0Tp*B&amp;r*s%&#781;L,!&#1153; \@@</p></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/terence-tao-math-2-0-pdf-72069</guid> <pubDate>Sun, 11 Oct 2026 14:16:45 +0700</pubDate> <author><![CDATA[support@mycoding.id (Putri Silvia)]]></author> </item> <item> <title><![CDATA[How HN: Go-dev-auth zero-dependency authentication library for Go]]></title> <description><![CDATA[How HN: Go-dev-auth zero-dependency authentication library for Go. Comments]]></description> <media:thumbnail url="https://repository-images.githubusercontent.com/1322297741/a319cf38-1d56-458b-85d2-4a0b313808ac"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/how-hn-go-dev-auth-zero-dependency-authentication-library-for-go-72062</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/go-dev-auth/go-dev-auth/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI"></a> <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow"><img src="https://camo.githubusercontent.com/2bc742275ef5839b02911368efed43d5cd9b8a772d308cf797bda920f61a8f1b/68747470733a2f2f706b672e676f2e6465762f62616467652f6769746875622e636f6d2f676f2d6465762d617574682f676f2d6465762d617574682e737667" alt="Go Reference" data-canonical-src="https://pkg.go.dev/badge/github.com/go-dev-auth/go-dev-auth.svg"></a> <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow"><img src="https://camo.githubusercontent.com/f29e8a2a1bc4d2f577e6ee8addcb892d22bc7d2fd2005de3680c831dcd593b43/68747470733a2f2f676f7265706f7274636172642e636f6d2f62616467652f6769746875622e636f6d2f676f2d6465762d617574682f676f2d6465762d61757468" alt="Go Report Card" data-canonical-src="https://goreportcard.com/badge/github.com/go-dev-auth/go-dev-auth"></a> <a href="https://en.mycoding.id/category/technology" target="_blank"><img src="https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667" alt=" MIT" data-canonical-src="https://img.shields.io/badge/License-MIT-blue.svg"></a></p> <p dir="auto">The CI sign covers the entire matrix on all push: build and tests on the oldest supported and current Go, the competition detector, lint, a fuzz pass complete the attacker-facing parsers, and the retention conformance suite against <strong>real SQLite, PostgreSQL and MySQL servers</strong>.</p> <p dir="auto">A comprehensive, framework-agnostic authentication archive for Go, modeled following <a href="https://en.mycoding.id/category/technology" target="_blank">better-auth</a>. Email &amp; password, social sign-on, sessions, document linking, two-factor auth, passkeys, magic links, organizations, SSO, admin tooling, API keys and JWT &mdash; alongside <strong>zero external dependencies</strong> (pure norm library).</p> <div data-snippet-clipboard-copy-content="go get github.com/go-dev-auth/go-dev-auth"><pre>go get github.com/go-dev-auth/go-dev-auth </pre></div> <blockquote> <p dir="auto"><strong>Status: pre-1.0, in manufacturing use, heading to v1.0.</strong> The archive runs in manufacturing in a genuine automation project on PostgreSQL, using the complete characteristic set. Releases prosecute <a href="https://en.mycoding.id/category/technology" target="_blank" rel="nofollow">SemVer</a>: during pre-1.0 the community API may motionless alter between insignificant versions (pin an exact version); v1.0 freezes it, and from afterward on breaking changes necessitate a important version. The remaining v1.0 gates are runnable examples, site mileage on the newly automated MySQL leg, and a third-party safety review. See <a href="https://en.mycoding.id/category/technology" target="_blank">storage adapters</a> for exactly which backends are verified where, and <a href="https://en.mycoding.id/category/technology" target="_blank">docs/security-model.md</a> for the danger model.</p> </blockquote> <p dir="auto"><strong>Core</strong></p> <ul dir="auto"> <li>Email &amp; password authentication (scrypt hashing, compatible alongside better-auth's hash format)</li> <li>Social sign-on via OAuth 2.0 / OIDC alongside PKCE &mdash; Google, GitHub, Discord, Facebook, Microsoft, Apple, GitLab, LinkedIn, Spotify, Twitch, X built in, affirmative a declarative oauth2.Spec for any tradition provider</li> <li>Database-backed sessions alongside sliding expiration, signed cookies, optional biscuit caching, list/revoke endpoints</li> <li>Email verification, password reset, alter email/password, delete person flows</li> <li>Account linking &amp; unlinking (trusted providers, token refresh, document info)</li> <li>CSRF base checking, trusted origins alongside wildcard subdomains, IP-based charge limiting</li> <li>Storage adapter interface alongside built-in database/sql (Postgres, MySQL, SQLite) and in-memory adapters, affirmative schema/migration SQL generation</li> <li>Request hooks, repository hooks, tradition user/session fields</li> </ul> <p dir="auto"><strong>Plugins</strong> (mirroring better-auth's plugin system)</p> <ul dir="auto"> <li>twofactor &mdash; TOTP, email OTP and backup codes</li> <li>passkey &mdash; WebAuthn passkeys, CBOR/COSE parsing included (no external dependency)</li> <li>magiclink &mdash; passwordless email links</li> <li>organization &mdash; orgs, members, roles, invitations, teams</li> <li>sso &mdash; bring-your-own OIDC character provider, matched by email domain</li> <li>admin &mdash; person management, bans, roles, impersonation</li> <li>apikey &mdash; hashed API keys alongside scopes that authenticate akin sessions</li> <li>jwt &mdash; EdDSA-signed JWTs + JWKS endpoint</li> <li>bearer &mdash; Authorization header auth for non-browser clients</li> </ul> <div dir="auto" data-snippet-clipboard-copy-content='package main import ( &quot;context&quot; &quot;net/http&quot; &quot;os&quot; &quot;time&quot; godevauth &quot;github.com/go-dev-auth/go-dev-auth&quot; &quot;github.com/go-dev-auth/go-dev-auth/storage/memory&quot; ) func main() { auth, err := godevauth.New(godevauth.Config{ BaseURL: &quot;http://localhost:8080&quot;, // required Secret: os.Getenv(&quot;AUTH_SECRET&quot;), // required, 32+ random chars Database: memory.New(), // required EmailAndPassword: godevauth.EmailPasswordConfig{Enabled: true}, // Required in manufacturing if item sits in forefront of this // procedure (load balancer, ingress, CDN). See below. Advanced: godevauth.AdvancedConfig{ TrustProxyHeaders: true, TrustedProxies: []string{&quot;10.0.0.0/8&quot;}, }, }) if err != nil { panic(err) } // clear expired one-time tokens and sessions defer auth.StartCleanup(context.Background(), time.Hour)() mux := http.NewServeMux() mux.Handle(&quot;/api/auth/&quot;, auth.Handler()) http.ListenAndServe(&quot;:8080&quot;, mux) }'><pre><span>package</span> main <span>import</span> ( <span>"context"</span> <span>"net/http"</span> <span>"os"</span> <span>"time"</span> godevauth <span>"github.com/go-dev-auth/go-dev-auth"</span> <span>"github.com/go-dev-auth/go-dev-auth/storage/memory"</span> ) <span>func</span> <span>main</span>() { <span>auth</span>, <span>err</span> <span>:=</span> <span>godevauth</span>.<span>New</span>(godevauth.<span>Config</span>{ <span>BaseURL</span>: <span>"http://localhost:8080"</span>, <span>// required</span> <span>Secret</span>: <span>os</span>.<span>Getenv</span>(<span>"AUTH_SECRET"</span>), <span>// required, 32+ random chars</span> <span>Database</span>: <span>memory</span>.<span>New</span>(), <span>// required</span> <span>EmailAndPassword</span>: godevauth.<span>EmailPasswordConfig</span>{<span>Enabled</span>: <span>true</span>}, <span>// Required in manufacturing if item sits in forefront of this</span> <span>// procedure (load balancer, ingress, CDN). See below.</span> <span>Advanced</span>: godevauth.<span>AdvancedConfig</span>{ <span>TrustProxyHeaders</span>: <span>true</span>, <span>TrustedProxies</span>: []<span>string</span>{<span>"10.0.0.0/8"</span>}, }, }) <span>if</span> <span>err</span> <span>!=</span> <span>nil</span> { <span>panic</span>(<span>err</span>) } <span>// clear expired one-time tokens and sessions</span> <span>defer</span> <span>auth</span>.<span>StartCleanup</span>(<span>context</span>.<span>Background</span>(), <span>time</span>.<span>Hour</span>)() <span>mux</span> <span>:=</span> <span>http</span>.<span>NewServeMux</span>() <span>mux</span>.<span>Handle</span>(<span>"/api/auth/"</span>, <span>auth</span>.<span>Handler</span>()) <span>http</span>.<span>ListenAndServe</span>(<span>":8080"</span>, <span>mux</span>) }</pre></div> <p dir="auto">The handler is a plain http.Handler, so it mounts on chi, echo, gorilla, or gin (via gin.WrapH) the identical way. If your frontend runs on a distinct origin, cover it: auth.CORS(auth.Handler()) and catalog that base in TrustedOrigins.</p> <p dir="auto">New validates the configuration and returns an error fairly than starting up in an unsafe state: a missing/short Secret, a missing or related BaseURL (it decides biscuit security, trusted origins and redirect targets), SameSite=none without safe cookies, or TrustProxyHeaders without TrustedProxies are all rejected.</p> <div dir="auto"><h3 tabindex="-1" dir="auto">Deployment requirement: inform it concerning your proxy</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">Rate limiting and all recorded meeting IP depend on resolving the <em>client's</em> address. If item terminates the association in forefront of this procedure &mdash; an AWS ALB, nginx, Cloudflare, a Kubernetes ingress &mdash; you must say so, since <strong>both defaults are incorrect in a distinct direction</strong>:</p> <table readabilitydatatable="1"> <thead> <tr> <th>Configuration</th> <th>What happens</th> </tr> </thead> <tbody> <tr> <td>Nothing set, but operating rearward a proxy</td> <td>Every petition resolves to the proxy's address, so all clients portion one bucket. The documented strict regulation of 3 sign-ins per 10 seconds becomes 3 per 10 seconds <strong>for your entire fleet</strong>, and the limiter fails closed. This is a self-inflicted outage.</td> </tr> <tr> <td>TrustProxyHeaders alongside no TrustedProxies</td> <td>X-Forwarded-For is client-supplied. Any visitant picks its own bucket and the bounds stops limiting anything.</td> </tr> <tr> <td>TrustProxyHeaders + TrustedProxies</td> <td>Correct. Forwarded headers are peruse lone from a listed peer, and the header sequence is walked right-to-left former trusted hops, so addresses a client prepended are ignored.</td> </tr> </tbody> </table> <p dir="auto">So:</p> <div dir="auto" data-snippet-clipboard-copy-content=' true, // IPs or CIDRs of your burden balancers / ingress pods. TrustedProxies: []string{&quot;10.0.0.0/8&quot;, &quot;192.168.0.0/16&quot;}, // Or, for a provider-specific header: // IPAddressHeaders: []string{&quot;CF-Connecting-IP&quot;}, },'><pre><span>Advanced</span>: godevauth.<span>AdvancedConfig</span>{ <span>TrustProxyHeaders</span>: <span>true</span>, <span>// IPs or CIDRs of your burden balancers / ingress pods.</span> <span>TrustedProxies</span>: []<span>string</span>{<span>"10.0.0.0/8"</span>, <span>"192.168.0.0/16"</span>}, <span>// Or, for a provider-specific header:</span> <span>// IPAddressHeaders: []string{"CF-Connecting-IP"},</span> },</pre></div> <p dir="auto">New <strong>refuses to start</strong> if TrustProxyHeaders (or IPAddressHeaders) is set without TrustedProxies. Use TrustedProxies: []string{"*"} to rely any equal &mdash; that is the old, spoofable behaviour, and it is lone harmless whenever the network guarantees the assistance is unreachable apart from through a proxy that overwrites the header.</p> <p dir="auto">The contrary error cannot be caught at startup, since it depends on the traffic. The archetypal petition that arrives alongside a forwarded header during proxy headers are untrusted logs an error naming the header and the peer. If you see it in production, you are in row one of that table.</p> <p dir="auto">Direct-to-internet deployments need none of this: depart all three unset.</p> <table readabilitydatatable="1"> <thead> <tr> <th>Adapter</th> <th>Import</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>In-memory</td> <td>storage/memory</td> <td>Tests, examples, single-process. Enforces distinctive constraints and indexes distinctive fields.</td> </tr> <tr> <td>SQL</td> <td>storage/sqlstore</td> <td>PostgreSQL, MySQL, SQLite via database/sql. Bring your own driver.</td> </tr> <tr> <td>MongoDB</td> <td>storage/mongostore</td> <td>Official mongo-go-driver. Separate Go module.</td> </tr> </tbody> </table> <p dir="auto">All adapters are written against the identical conformance suite (storage/storagetest), which pins the semantics the auth center depends on: unique-violation reporting, NULL vs zero, chronological sorting, clause folding, literal case-insensitive substring matching and compare-and-set update counts.</p> <p dir="auto"><strong>What has really been executed, as of this revision:</strong></p> <ul dir="auto"> <li><strong>SQLite</strong> &mdash; the complete conformance suite and a complete HTTP auth stream run against a genuine SQLite repository in CI on all push. Verified.</li> <li><strong>PostgreSQL</strong> &mdash; <strong>running in production</strong> (a genuine automation project uses the entire archive on live PostgreSQL), <em>and</em> the conformance suite, immigration idempotence and the complete HTTP auth stream now run against a genuine PostgreSQL server in CI on all push. Field-proven and regression-guarded.</li> <li><strong>MySQL</strong> &mdash; the identical CI job runs the conformance suite, migrations and the complete auth stream against a genuine MySQL 8 server on all push. CI-verified; no site mileage yet, so study item you hit.</li> <li><strong>MongoDB</strong> &mdash; exercised against an in-house wire-protocol test double, not a live mongod. Beta.</li> </ul> <p dir="auto">The CI legs cannot continue vacuously: the surroundings sets REQUIRE_DSN=1, which turns a missing repository into a test nonaccomplishment fairly than a skip.</p> <p dir="auto">If you compose your own adapter, run that suite against it:</p> <div dir="auto" data-snippet-clipboard-copy-content="func TestConformance(t *testing.T) { storagetest.Run(t, func(t *testing.T) (storage.Adapter, func()) { return myAdapter(storagetest.Schema()), func() {} }) }"><pre><span>func</span> <span>TestConformance</span>(<span>t</span> <span>*</span>testing.<span>T</span>) { <span>storagetest</span>.<span>Run</span>(<span>t</span>, <span>func</span>(<span>t</span> <span>*</span>testing.<span>T</span>) (storage.<span>Adapter</span>, <span>func</span>()) { <span>return</span> <span>myAdapter</span>(<span>storagetest</span>.<span>Schema</span>()), <span>func</span>() {} }) }</pre></div> <div dir="auto" data-snippet-clipboard-copy-content='import ( &quot;go.mongodb.org/mongo-driver/mongo&quot; &quot;go.mongodb.org/mongo-driver/mongo/options&quot; &quot;github.com/go-dev-auth/go-dev-auth/storage/mongostore&quot; ) client, err := mongo.Connect(options.Client().ApplyURI(os.Getenv(&quot;MONGODB_URI&quot;))) store := mongostore.New(client.Database(&quot;myapp&quot;)) auth, err := godevauth.New(godevauth.Config{Database: store, /* ... */})'><pre><span>import</span> ( <span>"go.mongodb.org/mongo-driver/mongo"</span> <span>"go.mongodb.org/mongo-driver/mongo/options"</span> <span>"github.com/go-dev-auth/go-dev-auth/storage/mongostore"</span> ) <span>client</span>, <span>err</span> <span>:=</span> <span>mongo</span>.<span>Connect</span>(<span>options</span>.<span>Client</span>().<span>ApplyURI</span>(<span>os</span>.<span>Getenv</span>(<span>"MONGODB_URI"</span>))) <span>store</span> <span>:=</span> <span>mongostore</span>.<span>New</span>(<span>client</span>.<span>Database</span>(<span>"myapp"</span>)) <span>auth</span>, <span>err</span> <span>:=</span> <span>godevauth</span>.<span>New</span>(godevauth.<span>Config</span>{<span>Database</span>: <span>store</span>, <span>/* ... */</span>})</pre></div> <p dir="auto">New creates the indexes the schema implies, including the distinctive ones. That stage is not cosmetic on MongoDB: collections are created lazily, so an case without them looks fit during all "does this email already exist?" inspect degrades into a race. Use Advanced.DisableAutoMigrate lone if you create them in a distinct deploy step.</p> <p dir="auto">The adapter maps the id site onto Mongo's _id, rejects composite values anywhere MongoDB would peruse them as operators (the NoSQL-injection shape), escapes regex metacharacters in substring searches, and reports copy keys as storage.ErrUniqueViolation. Transaction needs a replica set or mongos, as MongoDB itself does.</p> <div dir="auto" data-snippet-clipboard-copy-content='import ( &quot;database/sql&quot; &quot;github.com/go-dev-auth/go-dev-auth/storage/sqlstore&quot; _ &quot;github.com/jackc/pgx/v5/stdlib&quot; // bring your own driver ) db, _ := sql.Open(&quot;pgx&quot;, os.Getenv(&quot;DATABASE_URL&quot;)) store := sqlstore.New(db, sqlstore.Postgres, nil) auth, _ := godevauth.New(godevauth.Config{ Secret: os.Getenv(&quot;AUTH_SECRET&quot;), Database: store, // ... }) // choice up the plugin tables *and columns*, afterward use them store.SetSchema(auth.Schema()) if err := store.Migrate(context.Background()); err != nil { ... } // or hand the DDL to your own immigration tool: fmt.Println(store.MigrationSQL()) // the entire schema, from nothing pending, _ := store.PendingMigrationSQL(ctx) // lone what this repository lacks'><pre><span>import</span> ( <span>"database/sql"</span> <span>"github.com/go-dev-auth/go-dev-auth/storage/sqlstore"</span> _ <span>"github.com/jackc/pgx/v5/stdlib"</span> <span>// bring your own driver</span> ) <span>db</span>, <span>_</span> <span>:=</span> <span>sql</span>.<span>Open</span>(<span>"pgx"</span>, <span>os</span>.<span>Getenv</span>(<span>"DATABASE_URL"</span>)) <span>store</span> <span>:=</span> <span>sqlstore</span>.<span>New</span>(<span>db</span>, <span>sqlstore</span>.<span>Postgres</span>, <span>nil</span>) <span>auth</span>, <span>_</span> <span>:=</span> <span>godevauth</span>.<span>New</span>(godevauth.<span>Config</span>{ <span>Secret</span>: <span>os</span>.<span>Getenv</span>(<span>"AUTH_SECRET"</span>), <span>Database</span>: <span>store</span>, <span>// ...</span> }) <span>// choice up the plugin tables *and columns*, afterward use them</span> <span>store</span>.<span>SetSchema</span>(<span>auth</span>.<span>Schema</span>()) <span>if</span> <span>err</span> <span>:=</span> <span>store</span>.<span>Migrate</span>(<span>context</span>.<span>Background</span>()); <span>err</span> <span>!=</span> <span>nil</span> { <span>...</span> } <span>// or hand the DDL to your own immigration tool:</span> <span>fmt</span>.<span>Println</span>(<span>store</span>.<span>MigrationSQL</span>()) <span>// the entire schema, from nothing</span> <span>pending</span>, <span>_</span> <span>:=</span> <span>store</span>.<span>PendingMigrationSQL</span>(<span>ctx</span>) <span>// lone what this repository lacks</span></pre></div> <p dir="auto">Migrate is idempotent and does two things: it creates missing tables and indexes, and it adds missing <strong>columns</strong> to tables that already exist. The second matters as shortly as the repository has data in it &mdash; see <a href="https://en.mycoding.id/category/technology" target="_blank">Migrations</a>.</p> <div dir="auto" data-snippet-clipboard-copy-content='import ( &quot;github.com/go-dev-auth/go-dev-auth/oauth2&quot; &quot;github.com/go-dev-auth/go-dev-auth/providers&quot; ) godevauth.Config{ SocialProviders: []oauth2.Provider{ providers.Google(providers.Credentials{ ClientID: os.Getenv(&quot;GOOGLE_CLIENT_ID&quot;), ClientSecret: os.Getenv(&quot;GOOGLE_CLIENT_SECRET&quot;), }), providers.GitHub(providers.Credentials{ ClientID: os.Getenv(&quot;GITHUB_CLIENT_ID&quot;), ClientSecret: os.Getenv(&quot;GITHUB_CLIENT_SECRET&quot;), }), }, }'><pre><span>import</span> ( <span>"github.com/go-dev-auth/go-dev-auth/oauth2"</span> <span>"github.com/go-dev-auth/go-dev-auth/providers"</span> ) godevauth.<span>Config</span>{ <span>SocialProviders</span>: []oauth2.<span>Provider</span>{ <span>providers</span>.<span>Google</span>(providers.<span>Credentials</span>{ <span>ClientID</span>: <span>os</span>.<span>Getenv</span>(<span>"GOOGLE_CLIENT_ID"</span>), <span>ClientSecret</span>: <span>os</span>.<span>Getenv</span>(<span>"GOOGLE_CLIENT_SECRET"</span>), }), <span>providers</span>.<span>GitHub</span>(providers.<span>Credentials</span>{ <span>ClientID</span>: <span>os</span>.<span>Getenv</span>(<span>"GITHUB_CLIENT_ID"</span>), <span>ClientSecret</span>: <span>os</span>.<span>Getenv</span>(<span>"GITHUB_CLIENT_SECRET"</span>), }), }, }</pre></div> <p dir="auto">Set the provider redirect URI to {BaseURL}/api/auth/callback/{provider}. Custom providers are a sole oauth2.New(oauth2.Spec{...}) call.</p> <div dir="auto" data-snippet-clipboard-copy-content='import ( &quot;github.com/go-dev-auth/go-dev-auth/plugins/admin&quot; &quot;github.com/go-dev-auth/go-dev-auth/plugins/jwt&quot; &quot;github.com/go-dev-auth/go-dev-auth/plugins/magiclink&quot; &quot;github.com/go-dev-auth/go-dev-auth/plugins/organization&quot; &quot;github.com/go-dev-auth/go-dev-auth/plugins/passkey&quot; &quot;github.com/go-dev-auth/go-dev-auth/plugins/sso&quot; &quot;github.com/go-dev-auth/go-dev-auth/plugins/twofactor&quot; ) godevauth.Config{ Plugins: []godevauth.Plugin{ twofactor.New(), organization.New(organization.Options{Teams: true}), admin.New(), jwt.New(), magiclink.New(magiclink.Options{ SendMagicLink: func(ctx context.Context, email, url, token string) error { return mailer.Send(email, &quot;Sign in&quot;, url) }, }), passkey.New(), sso.New(sso.Options{ // entrance who may enroll character providers Authorize: func(c *godevauth.Ctx, sd *godevauth.SessionData) error { return myApp.RequireAdmin(sd) }, }), }, }'><pre><span>import</span> ( <span>"github.com/go-dev-auth/go-dev-auth/plugins/admin"</span> <span>"github.com/go-dev-auth/go-dev-auth/plugins/jwt"</span> <span>"github.com/go-dev-auth/go-dev-auth/plugins/magiclink"</span> <span>"github.com/go-dev-auth/go-dev-auth/plugins/organization"</span> <span>"github.com/go-dev-auth/go-dev-auth/plugins/passkey"</span> <span>"github.com/go-dev-auth/go-dev-auth/plugins/sso"</span> <span>"github.com/go-dev-auth/go-dev-auth/plugins/twofactor"</span> ) godevauth.<span>Config</span>{ <span>Plugins</span>: []godevauth.<span>Plugin</span>{ <span>twofactor</span>.<span>New</span>(), <span>organization</span>.<span>New</span>(organization.<span>Options</span>{<span>Teams</span>: <span>true</span>}), <span>admin</span>.<span>New</span>(), <span>jwt</span>.<span>New</span>(), <span>magiclink</span>.<span>New</span>(magiclink.<span>Options</span>{ <span>SendMagicLink</span>: <span>func</span>(<span>ctx</span> context.<span>Context</span>, <span>email</span>, <span>url</span>, <span>token</span> <span>string</span>) <span>error</span> { <span>return</span> <span>mailer</span>.<span>Send</span>(<span>email</span>, <span>"Sign in"</span>, <span>url</span>) }, }), <span>passkey</span>.<span>New</span>(), <span>sso</span>.<span>New</span>(sso.<span>Options</span>{ <span>// entrance who may enroll character providers</span> <span>Authorize</span>: <span>func</span>(<span>c</span> <span>*</span>godevauth.<span>Ctx</span>, <span>sd</span> <span>*</span>godevauth.<span>SessionData</span>) <span>error</span> { <span>return</span> <span>myApp</span>.<span>RequireAdmin</span>(<span>sd</span>) }, }), }, }</pre></div> <p dir="auto"><strong>Passkeys</strong> (plugins/passkey) add WebAuthn registration and sign-in alongside no external dependency: the CBOR/COSE parsing and ES256/RS256/Ed25519 signature verification live in the package. Registration needs a caller session; sign-in uses discoverable credentials and runs through SignInUser, so bans and two-factor guideline motionless apply. The signature oppose is checked for the cloned-authenticator case.</p> <p dir="auto"><strong>SSO</strong> (plugins/sso) lets all institution bring its own OpenID Connect character provider (Okta, Microsoft Entra, Google Workspace, Keycloak). Providers are registered at runtime, matched to users by email domain, and the sign-in runs through the identical OAuth stream as social login &mdash; browser-bound single-use state, PKCE, ID-token verification against the issuer's JWKS. Client secrets are encrypted at rest; administration endpoints neglect closed until Options.Authorize is set.</p> <p dir="auto">Writing your own plugin method implementing three methods (ID, Init, Routes) and optionally Schema, Middleware, BeforeRequest/AfterRequest, SignInGuard (veto or difficulty a sign-in on all path) or SessionGuard (re-check all request).</p> <div dir="auto"><h2 tabindex="-1" dir="auto">Server-side meeting access</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> <div dir="auto" data-snippet-clipboard-copy-content="= auth.GetSession(r) if err != nil { // errors.Is(err, godevauth.ErrNoSession) → unauthenticated } _ = sd.User // *storage.User _ = sd.Session // *storage.Session }"><pre><span>func</span> <span>handler</span>(<span>w</span> http.<span>ResponseWriter</span>, <span>r</span> <span>*</span>http.<span>Request</span>) { <span>sd</span>, <span>err</span> <span>:=</span> <span>auth</span>.<span>GetSession</span>(<span>r</span>) <span>if</span> <span>err</span> <span>!=</span> <span>nil</span> { <span>// errors.Is(err, godevauth.ErrNoSession) &rarr; unauthenticated</span> } <span>_</span> <span>=</span> <span>sd</span>.<span>User</span> <span>// *storage.User</span> <span>_</span> <span>=</span> <span>sd</span>.<span>Session</span> <span>// *storage.Session</span> }</pre></div> <p dir="auto">All endpoints live under Config.BasePath (default /api/auth) and equivalent better-auth's path names:</p> <table readabilitydatatable="1"> <thead> <tr> <th>Area</th> <th>Endpoints</th> </tr> </thead> <tbody> <tr> <td>Email &amp; password</td> <td>POST /sign-up/email, POST /sign-in/email, POST /forget-password, POST /reset-password, GET /reset-password/:token, POST /change-password, POST /set-password</td> </tr> <tr> <td>Email verification</td> <td>POST /send-verification-email, GET /verify-email (renders a confirmation leaf alternatively of consuming the token whenever EmailVerification.ConfirmationPage is set), POST /verify-email (consumes it)</td> </tr> <tr> <td>Session</td> <td>GET /get-session, POST /sign-out, GET /list-sessions, POST /revoke-session (by token, or by the sessionId from /list-sessions), POST /revoke-sessions, POST /revoke-other-sessions</td> </tr> <tr> <td>Social</td> <td>POST /sign-in/social, `GET</td> </tr> <tr> <td>User</td> <td>POST /update-user, POST /change-email, POST /delete-user, `GET</td> </tr> <tr> <td>Two-factor</td> <td>POST /two-factor/{enable,disable,get-totp-uri,verify-totp,send-otp,verify-otp,generate-backup-codes,verify-backup-code}</td> </tr> <tr> <td>Magic link</td> <td>POST /sign-in/magic-link, GET /magic-link/verify</td> </tr> <tr> <td>Passkey</td> <td>GET /passkey/generate-register-options, POST /passkey/verify-registration, POST /passkey/generate-authenticate-options, POST /passkey/verify-authentication, GET /passkey/list-user-passkeys, POST /passkey/{delete-passkey,update-passkey}</td> </tr> <tr> <td>SSO</td> <td>POST /sign-in/sso, POST /sso/register, GET /sso/list, POST /sso/delete, `GET</td> </tr> <tr> <td>Organization</td> <td>POST /organization/{create,update,delete,set-active,invite-member,accept-invitation,reject-invitation,cancel-invitation,remove-member,update-member-role,leave,check-slug,create-team,remove-team}, GET /organization/{list,get-full-organization,get-invitation,list-invitations,get-active-member,list-teams}</td> </tr> <tr> <td>Admin</td> <td>POST /admin/{create-user,set-role,set-user-password,update-user,ban-user,unban-user,impersonate-user,stop-impersonating,list-user-sessions,revoke-user-session,revoke-user-sessions,remove-user}, GET /admin/list-users</td> </tr> <tr> <td>API keys</td> <td>POST /api-key/{create,update,delete,verify}, GET /api-key/{get,list}</td> </tr> <tr> <td>JWT</td> <td>GET /token, GET /jwks, GET /.well-known/jwks.json</td> </tr> </tbody> </table> <p dir="auto">Errors are returned as {"code": "USER_ALREADY_EXISTS", "message": "..."} alongside matching HTTP position codes. A known way alongside the incorrect method returns 405 alongside an Allow header.</p> <p dir="auto">godevauth.Config mirrors better-auth's options: EmailAndPassword (min/max length, verification requirements, reset delivery, tradition PasswordHasher), EmailVerification (delivery, required-before-sign-in, optional interstitial ConfirmationPage so email scanners cannot consume the link), Session (ExpiresIn, UpdateAge, FreshAge, biscuit cache), User (additional fields, change-email &mdash; endorsement goes to the <em>current</em> verified address, afterward the new location is verified before the toggle &mdash; delete-user), Account (linking rules, token encryption at rest), Advanced (cookie prefix, cross-subdomain cookies, SameSite, proxy trust, tradition ID generation, CSRF exemptions), TrustedOrigins, RateLimit (windows, per-path rules, pluggable store), Events (the audit hook), PreviousSecrets (secret rotation), Hooks and DatabaseHooks.</p> <p dir="auto">Rate-limit rules in RateLimit.CustomRules may be keyed by the path form ("/reset-password/:token") as fine as by a literal path. Buckets are keyed by the pattern, so a parameterised path is constricted as one endpoint fairly than one bucket per indicator value.</p> <p dir="auto">A runnable demo alongside most plugins enabled lives in <a href="https://en.mycoding.id/category/technology" target="_blank">examples/basic</a>:</p> <p dir="auto">Extra columns are declared on the config and are <strong>not</strong> client-writable unless you say so. This is the difference between a overview site and a privilege:</p> <div dir="auto" data-snippet-clipboard-copy-content=' true}, // person may set it {Name: &quot;plan&quot;, Type: storage.FieldString}, // server-controlled }, },'><pre><span>User</span>: godevauth.<span>UserConfig</span>{ <span>AdditionalFields</span>: []storage.<span>Field</span>{ {<span>Name</span>: <span>"displayName"</span>, <span>Type</span>: <span>storage</span>.<span>FieldString</span>, <span>Input</span>: <span>true</span>}, <span>// person may set it</span> {<span>Name</span>: <span>"plan"</span>, <span>Type</span>: <span>storage</span>.<span>FieldString</span>}, <span>// server-controlled</span> }, },</pre></div> <p dir="auto">Fields contributed by plugins (role, banned, twoFactorEnabled, &hellip;) are never writable from a petition body, any Input says.</p> <p dir="auto"><strong>Passwords.</strong> scrypt (N=16384, r=16, p=1), better-auth's salt:key hex format. Each hash expenses ~50 ms of CPU and ~32 MiB of scratch recollection by design; the hasher limits concurrency (default GOMAXPROCS) and pools its buffers so a burst of sign-ins cannot exhaust memory. Tune via crypto.NewScryptHasher. Hash format is byte-for-byte compatible alongside better-auth for ASCII passwords; non-ASCII passwords not already in Unicode NFKC form can differ, since better-auth normalizes to NFKC archetypal and the norm archive has no NFKC implementation to equivalent without adding a dependency (see ScryptHasher.Hash).</p> <p dir="auto"><strong>Rate limiting is on by default</strong> (fail-closed) since the sign-in endpoint is costly by construction. Set RateLimit.Disabled lone whenever a gateway already throttles these paths, and provision RateLimit.Storage whenever operating additional than one instance.</p> <p dir="auto"><strong>Sessions.</strong> 32-byte random tokens, HMAC-signed cookies alongside domain separation and __Secure- prefixes on HTTPS. Raw tokens are never included in meeting listings. The optional biscuit cache carries an complete revalidation deadline that is never extended from cached data, so revocation continually takes consequence inside CookieCache.MaxAge.</p> <p dir="auto"><strong>One-time tokens</strong> (password reset, email verification, magic links, deletion, OAuth state) are stored as SHA-256 digests and consumed atomically, so repository peruse admission yields no usable links.</p> <p dir="auto"><strong>OAuth.</strong> PKCE (S256), province pinned to the browser alongside a biscuit <em>and</em> to the issuing provider, single-use and expiring. Automatic document linking requires the two a provider-asserted verified email <strong>and</strong> that the provider is listed in Account.AccountLinking.TrustedProviders &mdash; an unverified or self-set location at the IdP cannot obtain complete an existing local account.</p> <p dir="auto"><strong>CSRF.</strong> State-changing requests are origin-checked against BaseURL + TrustedOrigins (wildcard subdomains supported), falling rear to Sec-Fetch-Site whenever no Origin/Referer is present.</p> <p dir="auto"><strong>Sign-in guards.</strong> Every sign-in way &mdash; password, magic link, social, verification auto-login &mdash; funnels through SignInUser, so a plugin implementing SignInGuard (two-factor, bans) cannot be bypassed by choosing another method. SessionGuard additionally re-checks all request, so a ban takes consequence immediately fairly than at next login.</p> <p dir="auto"><strong>ID tokens.</strong> The native "sign in alongside X" way verifies the token's signature against the issuer's published JWKS and checks iss, aud (plus azp for multi-audience tokens), exp and the nonce &mdash; the client mints a single-use nonce at POST /id-token/nonce, passes it to the provider SDK, and the signed token must echo it, so a token captured elsewhere cannot be replayed current (Advanced.DisableIDTokenNonceCheck restores the old behavior for SDKs that cannot set one). Keys are cached alongside a bounded stale-serve window, and a unsuccessful fetch cannot be induced by a client to obstacle key rotation.</p> <p dir="auto"><strong>Secrets at rest.</strong> TOTP secrets, backup codes and JWT personal keys are AES-256-GCM encrypted alongside a key derived from your Secret; OAuth tokens too whenever Account.EncryptOAuthTokens is set. Encryption nonaccomplishment is an error, never a silent plaintext write, and <strong>decryption nonaccomplishment is an error too</strong> &mdash; never a fallback that returns the ciphertext. Every ciphertext is <strong>bound to anywhere it is stored</strong> &mdash; its model, document id and site name are authenticated alongside the value &mdash; so a value copied from one encrypted pillar into another does not decrypt, and repository compose admission cannot be turned into a peruse oracle for person else's secrets. Ciphertexts additionally transport a key identifier, so Secret can be rotated: see <a href="https://en.mycoding.id/category/technology" target="_blank">Rotating the secret</a>.</p> <p dir="auto"><strong>Audit trail.</strong> Every security-relevant event &mdash; sign-in achievement and nonaccomplishment alongside the reason, sign-out, meeting innovation and revocation, password and email changes, document link/unlink and deletion, 2FA enable/disable, bans, and director impersonation start/stop &mdash; is emitted as a typed godevauth.Event. Events never merge passwords, meeting tokens or one-time tokens; there is no free-form field, and a test asserts the asset by reflection. See <a href="https://en.mycoding.id/category/technology" target="_blank">Audit events</a>.</p> <p dir="auto">Config.Secret derives the key that encrypts values at rest. Changing it used to be unrecoverable &mdash; all enrolled 2FA person locked out permanently, JWT signing keys unreadable &mdash; since the ciphertext stated nothing concerning which key wrote it. Stored values are versioned and tagged alongside a key identifier:</p> <div data-snippet-clipboard-copy-content="v2.&lt;kid&gt;.&lt;base64url(nonce || AES-256-GCM(plaintext))&gt;"><pre>v2.&lt;kid&gt;.&lt;base64url(nonce || AES-256-GCM(plaintext))&gt; </pre></div> <p dir="auto">The GCM additional data covers the version, the key id, <strong>and the value's location</strong> &mdash; model, document id, site name &mdash; so a ciphertext lone opens in the pillar of the row it was written to.</p> <p dir="auto">Two before formats be in deployed databases and are motionless read, so upgrading needs no migration:</p> <table readabilitydatatable="1"> <thead> <tr> <th>Format</th> <th>Shape</th> <th>Key derivation</th> <th>Location-bound</th> </tr> </thead> <tbody> <tr> <td>v0</td> <td>bare base64url(nonce&#8214;ct), no .</td> <td>sha256("go-dev-auth-enc:"+secret)</td> <td>no</td> </tr> <tr> <td>v1</td> <td>v1.&lt;kid&gt;.&lt;body&gt;</td> <td>scrypt</td> <td>no</td> </tr> <tr> <td>v2</td> <td>v2.&lt;kid&gt;.&lt;body&gt;</td> <td>scrypt</td> <td><strong>yes</strong></td> </tr> </tbody> </table> <p dir="auto">Rotation &mdash; and the v0/v1 &rarr; v2 migration, which uses the identical continue &mdash; is a three-step deploy:</p> <div dir="auto" data-snippet-clipboard-copy-content='// 1. Deploy: new concealed current, old one motionless readable. Secret: os.Getenv(&quot;AUTH_SECRET&quot;), // the new value PreviousSecrets: []string{os.Getenv(&quot;AUTH_SECRET_OLD&quot;)},'><pre><span>// 1. Deploy: new concealed current, old one motionless readable.</span> <span>Secret</span>: <span>os</span>.<span>Getenv</span>(<span>"AUTH_SECRET"</span>), <span>// the new value</span> <span>PreviousSecrets</span>: []<span>string</span>{<span>os</span>.<span>Getenv</span>(<span>"AUTH_SECRET_OLD"</span>)},</pre></div> <div dir="auto" data-snippet-clipboard-copy-content="// 2. Migrate. Safe to run against a live instance; re-run until Done. result, err := auth.ReencryptSecrets(ctx) // result.Rewritten — values moved to the current key and format // result.Unreadable — values no key can read; examine before stage 3 // result.Skipped — rows a concurrent compose changed mid-pass; re-run // result.Failed — compose errors; re-run formerly the logic is fixed // result.Done() — nothing remaining to do"><pre><span>// 2. Migrate. Safe to run against a live instance; re-run until Done.</span> <span>result</span>, <span>err</span> <span>:=</span> <span>auth</span>.<span>ReencryptSecrets</span>(<span>ctx</span>) <span>// result.Rewritten &mdash; values moved to the current key and format</span> <span>// result.Unreadable &mdash; values no key can read; examine before stage 3</span> <span>// result.Skipped &mdash; rows a concurrent compose changed mid-pass; re-run</span> <span>// result.Failed &mdash; compose errors; re-run formerly the logic is fixed</span> <span>// result.Done() &mdash; nothing remaining to do</span></pre></div> <div dir="auto" data-snippet-clipboard-copy-content="// 3. Deploy again alongside PreviousSecrets empty. // Once stage 2 reports Done, additionally set: RequireBoundCiphertexts: true,"><pre><span>// 3. Deploy again alongside PreviousSecrets empty.</span> <span>// Once stage 2 reports Done, additionally set:</span> <span>RequireBoundCiphertexts</span>: <span>true</span>,</pre></div> <p dir="auto">ReencryptSecrets covers OAuth tokens on the document array and calls all plugin implementing godevauth.SecretRotator (two-factor, jwt) for their own tables. It walks all array in batches of 200 in id command fairly than loading it whole, and all compose is a compare-and-set on the ciphertext it peruse &mdash; so a token refreshed or a backup-code set regenerated mid-pass is never reverted, lone skipped. One plugin's rotator failing does not halt the others. It is idempotent: a continue that reports Done() method nothing is remaining under an old key or in an unbound format.</p> <p dir="auto"><strong>RequireBoundCiphertexts is the second fractional of the fix.</strong> Until it is set, the unbound v0 and v1 formats are motionless accepted on read, which method a ciphertext captured from an old backup can motionless be relocated between columns. Turning it on before the immigration finishes does not endure data &mdash; clearing it makes those values readable again &mdash; but users whose values have not been migrated cannot authenticate during it is set. So: upgrade, migrate to Done(), afterward rotate it on.</p> <p dir="auto">Skip stage 1 and the archive volition not guess. A stored TOTP concealed it cannot peruse is a 500 TWO_FACTOR_SECRET_UNREADABLE, not a "wrong code"; an unreadable OAuth token is a 500 TOKEN_DECRYPTION_FAILED, not an enc:&hellip; blob forwarded to the provider; and /jwks keeps publishing all community key regardless, so tokens already in circulation remain verifiable during you fix the configuration.</p> <p dir="auto">Note that biscuit and token <em>signatures</em> are not versioned. Rotating Secret invalidates existing signed cookies &mdash; users are signed out &mdash; any PreviousSecrets says.</p> <p dir="auto">There is one hook and one type:</p> <div dir="auto" data-snippet-clipboard-copy-content=" func(ctx context.Context, e *godevauth.Event) { // e.Type, e.Outcome, e.Reason, e.ActorID, e.TargetID, // e.Email, e.SessionID, e.Method, e.Action, // e.ClientIP, e.UserAgent, e.RequestMethod, e.RequestPath siem.Send(e) }, },"><pre><span>Events</span>: godevauth.<span>EventsConfig</span>{ <span>Handler</span>: <span>func</span>(<span>ctx</span> context.<span>Context</span>, <span>e</span> <span>*</span>godevauth.<span>Event</span>) { <span>// e.Type, e.Outcome, e.Reason, e.ActorID, e.TargetID,</span> <span>// e.Email, e.SessionID, e.Method, e.Action,</span> <span>// e.ClientIP, e.UserAgent, e.RequestMethod, e.RequestPath</span> <span>siem</span>.<span>Send</span>(<span>e</span>) }, },</pre></div> <p dir="auto">Notable properties:</p> <ul dir="auto"> <li><strong>On by default.</strong> With no Handler, events go to Config.Logger &mdash; successes at Info, failures at Warn. An audit trail that have to be switched on is missing from exactly the deployments that need it. Set Events.DisableDefaultLogging to opt out (events contain the subject's email address, which may not pertain in average use logs).</li> <li><strong>Failure reasons are additional particular than the HTTP response.</strong> Sign-in answers INVALID_EMAIL_OR_PASSWORD to the client so it cannot be used to enumerate accounts; the event distinguishes unknown_user from invalid_password from banned from two_factor_required, which is what tells credential stuffing distinct from password guessing.</li> <li><strong>429s are recorded.</strong> Ctx.Error lone logs 5xx, so a throttled brute-force attempt alternatively leaves no server-side trace at all.</li> <li><strong>RequestPath is the path pattern</strong>, e.g. /reset-password/:token &mdash; never the resolved path, which contains the token.</li> <li><strong>Impersonation is bracketed.</strong> While it is energetic all act is recorded against the impersonated user, so admin.impersonation_started / admin.impersonation_stopped are the lone thread tying those actions rear to the administrator.</li> </ul> <p dir="auto">Plugins emit their own alongside auth.EmitEvent(c, godevauth.Event{...}).</p> <ul dir="auto"> <li><strong>Cleanup:</strong> auth.CleanupExpired(ctx) or auth.StartCleanup(ctx, time.Hour). Expired verification rows and sessions are alternatively never collected.</li> <li><strong>Behind a proxy:</strong> set Advanced.TrustProxyHeaders <strong>and</strong> Advanced.TrustedProxies. See <a href="https://en.mycoding.id/category/technology" target="_blank">the quick start</a> &mdash; the default is an outage waiting to happen rearward a burden balancer.</li> <li><strong>Rotating Secret:</strong> three-step deploy alongside Config.PreviousSecrets and auth.ReencryptSecrets. See <a href="https://en.mycoding.id/category/technology" target="_blank">Rotating the secret</a>.</li> <li><strong>Upgrading to border ciphertexts:</strong> run auth.ReencryptSecrets until it reports Done(), afterward deploy alongside Config.RequireBoundCiphertexts: true. Same section.</li> <li><strong>Audit trail:</strong> on by default to Config.Logger; path it alongside Events.Handler. See <a href="https://en.mycoding.id/category/technology" target="_blank">Audit events</a>.</li> <li><strong>Multi-instance:</strong> provision a shared RateLimit.Storage; everything alternatively is stateless.</li> <li><strong>Session biscuit cache:</strong> it is bypassed automatically whenever a plugin registers a SessionGuard (the admin plugin's ban inspect does). Serving authority decisions from a cached copy of the person would let a ban sit unnoticed for the cache window.</li> <li><strong>Migrations:</strong> see <a href="https://en.mycoding.id/category/technology" target="_blank">Migrations</a> below.</li> <li><strong>Introspection:</strong> auth.Routes() lists all registered endpoint; auth.Schema() the complete schema.</li> </ul> <p dir="auto">Plugins do not lone add tables (passkey and sso all bring one). They additionally add <strong>columns to the tables you already have</strong>: admin adds role, banned, banReason and banExpires to person and impersonatedBy to session, twofactor adds twoFactorEnabled to user, institution adds activeOrganizationId to session, and Config.User.AdditionalFields does the same. A archive upgrade can add a center pillar the identical way.</p> <p dir="auto">CREATE TABLE IF NOT EXISTS does nothing for a array that is already there, so a column-level stage is not optional on a repository that has data in it. store.Migrate(ctx) does both:</p> <table readabilitydatatable="1"> <thead> <tr> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td>store.Migrate(ctx)</td> <td>Creates missing tables and indexes, <strong>and</strong> adds missing columns to existing tables. Idempotent &mdash; call it on all boot. Auto-migration in godevauth.New runs exactly this.</td> </tr> <tr> <td>store.MigrationSQL()</td> <td>The complete create-from-nothing DDL, for provisioning a new repository by hand. Never contains an ALTER; it has no idea what your repository already has.</td> </tr> <tr> <td>store.PendingMigrationSQL(ctx)</td> <td>Introspects the live repository and returns <strong>only</strong> the statements it is missing &mdash; CREATE TABLE for absent tables, ALTER TABLE ... ADD COLUMN for absent columns. Empty method up to date.</td> </tr> <tr> <td>store.CheckSchema(ctx)</td> <td>Reports drift as an error naming the tables and columns, without changing anything.</td> </tr> </tbody> </table> <p dir="auto">Two things to cognize concerning added columns:</p> <ul dir="auto"> <li><strong>They are continually nullable</strong>, any Field.Required says. The rows already in the array have no value for a pillar that did not exist, and no motor volition obtain NOT NULL without a default on a populated table. A required pillar added by a immigration is hence enforced by the application, not the database, until you backfill the rows and tighten it yourself.</li> <li><strong>Migrate needs DDL rights.</strong> If your application's repository function does not have them, run migrations from a deploy step, set Advanced.DisableAutoMigrate, and set Advanced.VerifySchema so a missed immigration fails at startup alongside a communication naming the missing columns &mdash; alternatively of at the archetypal sign-in, alongside a controller error.</li> </ul> <div dir="auto" data-snippet-clipboard-copy-content=' true, // migrations are a deploy step VerifySchema: true, // ...so refuse to commencement if one was missed }, // ... }) // go-dev-auth: verifying the repository schema: sqlstore: the repository schema is // out of date: array &quot;twoFactor&quot; is missing; array &quot;user&quot; is missing column(s) // &quot;role&quot;, &quot;banned&quot;, &quot;banReason&quot;, &quot;banExpires&quot;'><pre><span>auth</span>, <span>err</span> <span>:=</span> <span>godevauth</span>.<span>New</span>(godevauth.<span>Config</span>{ <span>Database</span>: <span>store</span>, <span>Advanced</span>: godevauth.<span>AdvancedConfig</span>{ <span>DisableAutoMigrate</span>: <span>true</span>, <span>// migrations are a deploy step</span> <span>VerifySchema</span>: <span>true</span>, <span>// ...so refuse to commencement if one was missed</span> }, <span>// ...</span> }) <span>// go-dev-auth: verifying the repository schema: sqlstore: the repository schema is</span> <span>// out of date: array "twoFactor" is missing; array "user" is missing column(s)</span> <span>// "role", "banned", "banReason", "banExpires"</span></pre></div> <p dir="auto">Measured on a 4-core arm64 receptacle (go test -bench .) <strong>against the in-memory adapter</strong>. That is an honest measure of the library's own petition way and a mediocre proxy for your manufacturing latency, anywhere a repository round-trip volition dominate all row below apart from password hashing. Read these as "what the archive adds", not "what a sign-in costs".</p> <table readabilitydatatable="1"> <thead> <tr> <th>Operation</th> <th>Cost</th> </tr> </thead> <tbody> <tr> <td>Session validation (cookie -&gt; user)</td> <td>~0.6 &micro;s parallel, 21 allocs</td> </tr> <tr> <td>Full HTTP petition through the router</td> <td>~4 &micro;s, 47 allocs</td> </tr> <tr> <td>Session lookup, 10k rows (memory adapter)</td> <td>~0.5 &micro;s (indexed)</td> </tr> <tr> <td>Password hash / verify</td> <td>~51 ms, 21 KB</td> </tr> </tbody> </table> <p dir="auto">Everything apart from password hashing is microseconds. Where the prosperity really goes, in order:</p> <p dir="auto"><strong>1. Password hashing dominates CPU.</strong> ~51 ms per sign-in method approximately sign-ins/sec &divide; 20 CPU cores. At 100 sign-ins/sec that is ~5 cores doing nothing but scrypt. This is deliberate &mdash; it is what makes taken hashes costly to expert &mdash; so the lever is not to create it cheaper but to <em>do it small often</em>: sessions final 7 days by default, so a signed-in person never touches it again.</p> <p dir="auto"><strong>2. Database circular trips dominate everything else.</strong> An authenticated petition expenses two queries (session, afterward user), which on a managed repository is ~1 ms all &mdash; a thousand times the CPU disbursal of the petition itself. Turn on the meeting biscuit cache to create that zero:</p> <div dir="auto" data-snippet-clipboard-copy-content=" 5 * time.Minute}, },"><pre><span>Session</span>: godevauth.<span>SessionConfig</span>{ <span>CookieCache</span>: godevauth.<span>CookieCacheConfig</span>{<span>Enabled</span>: <span>true</span>, <span>MaxAge</span>: <span>5</span> <span>*</span> <span>time</span>.<span>Minute</span>}, },</pre></div> <p dir="auto">The commerce is staleness: a revoked meeting keeps operating until the cached copy expires. With a SessionGuard plugin registered (the admin plugin's ban inspect is one) the cache is bypassed by default fairly than serving authority decisions from a old user; set CookieCache.AcceptStaleAuthorization to obtain the preservation anyhow and obtain that bans use inside MaxAge.</p> <p dir="auto"><strong>3. Memory under a sign-in burst is bounded, not proportional to traffic.</strong> Each in-flight hash needs 128&middot;N&middot;r = 32 MiB of scratch, so concurrency is capped at GOMAXPROCS and buffers are pooled: highest transient recollection is GOMAXPROCS &times; 32 MiB no matter how many requests arrive. Requests that cannot get a slot inside MaxWait (3s) are shed alongside 503 SERVICE_BUSY alternatively of queueing into a multi-second backlog that clients cognition as a hang.</p> <p dir="auto">Tuning the hash disbursal is imaginable but changes the security/cost commerce and makes existing hashes unverifiable:</p> <div dir="auto" data-snippet-clipboard-copy-content="// Fewer cores per sign-in, small opposition to offline cracking. // Fresh deployments only. crypto.NewScryptHasher(crypto.ScryptParams{N: 16384, R: 8, P: 1, MaxConcurrent: 8})"><pre><span>// Fewer cores per sign-in, small opposition to offline cracking.</span> <span>// Fresh deployments only.</span> <span>crypto</span>.<span>NewScryptHasher</span>(crypto.<span>ScryptParams</span>{<span>N</span>: <span>16384</span>, <span>R</span>: <span>8</span>, <span>P</span>: <span>1</span>, <span>MaxConcurrent</span>: <span>8</span>})</pre></div> <div data-snippet-clipboard-copy-content=" config, routing, handlers .github/ CI, templates, CONTRIBUTING, SECURITY storage/ persistence contract, models, schema storage/memory in-memory adapter storage/sqlstore PostgreSQL / MySQL / SQLite storage/mongostore MongoDB (separate module) storage/storagetest adapter conformance suite crypto/ password hashing, tokens, TOTP, JWT oauth2/ OAuth 2.0 / OIDC client providers/ ready-made provider configurations plugins/&lt;name&gt;/ optional features, one bundle each plugins/plugintest harness for evaluation a plugin ratelimit/ charge limiter and shop interface examples/basic a runnable server docs/ architecture map, plugin guide, reviews"><pre>. the godevauth package: config, routing, handlers .github/ CI, templates, CONTRIBUTING, SECURITY storage/ persistence contract, models, schema storage/memory in-memory adapter storage/sqlstore PostgreSQL / MySQL / SQLite storage/mongostore MongoDB (separate module) storage/storagetest adapter conformance suite crypto/ password hashing, tokens, TOTP, JWT oauth2/ OAuth 2.0 / OIDC client providers/ ready-made provider configurations plugins/&lt;name&gt;/ optional features, one bundle each plugins/plugintest harness for evaluation a plugin ratelimit/ charge limiter and shop interface examples/basic a runnable server docs/ architecture map, plugin guide, reviews </pre></div> <p dir="auto">The base directory is flat since Go requires all document of a package to portion one directory: these records <em>are</em> the godevauth package, and nesting them would average either changing the import way or splitting the package. Everything that can be its own bundle already is. Files are named for what they clasp &mdash; session.go, router.go, handler_email.go &mdash; so the listing says as a array of contents.</p> <p dir="auto"><a href="https://en.mycoding.id/category/technology" target="_blank">docs/architecture.md</a> is the complete map: what each file owns, and anywhere a new alter belongs.</p> <div data-snippet-clipboard-copy-content="go activity init . ./storage/mongostore ./storage/sqlstore/integration make inspect # fmt, vet, lint, tests, race"><pre>go activity init . ./storage/mongostore ./storage/sqlstore/integration make inspect # fmt, vet, lint, tests, race </pre></div> <p dir="auto">make assistance lists all target. go.work is developer-local and not committed. The SQLite integration tests need CGO_ENABLED=1; the Postgres, MySQL and MongoDB suites skip unless the matching DSN environment variables are set.</p> <p dir="auto">See <a href="https://en.mycoding.id/category/technology" target="_blank">CONTRIBUTING.md</a> for expectations on changes, <a href="https://en.mycoding.id/category/technology" target="_blank">SECURITY.md</a> for the safety example and reporting process, and <a href="https://en.mycoding.id/category/technology" target="_blank">docs/</a> for the architecture map and audit records.</p> <p dir="auto">Working alongside an AI coding assistant? <a href="https://en.mycoding.id/category/technology" target="_blank">llms.txt</a> is a single-file briefing on the API and the rules that keep generated code correct; <a href="https://en.mycoding.id/category/technology" target="_blank">AGENTS.md</a> covers agents contributing to this repository.</p> <p dir="auto">MIT</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/how-hn-go-dev-auth-zero-dependency-authentication-library-for-go-72062</guid> <pubDate>Sun, 11 Oct 2026 14:06:36 +0700</pubDate> <author><![CDATA[support@mycoding.id (Putri Silvia)]]></author> </item> <item> <title><![CDATA[Bot traffic plunged to near 0 following the strike on its Vladimir data center]]></title> <description><![CDATA[Bot traffic plunged to near 0 following the strike on its Vladimir data center. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/bot-traffic-plunged-to-near-0-following-the-strike-on-its-vladimir-data-center-72063</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/bot-traffic-plunged-to-near-0-following-the-strike-on-its-vladimir-data-center-72063</guid> <pubDate>Sun, 11 Oct 2026 14:00:27 +0700</pubDate> <author><![CDATA[support@mycoding.id (Putri Silvia)]]></author> </item> <item> <title><![CDATA[What to expect from Apple’s ‘Welcome Home’ event]]></title> <description><![CDATA[What to expect from Apple’s ‘Welcome Home’ event. We are quickly coming up on Apple's "Welcome Home" initiate event, anywhere we anticipate a presenter of astute home-related announcements. We are expecting refreshes to Apple...]]></description> <media:thumbnail url="https://platform.theverge.com/wp-content/uploads/sites/2/2026/10/appleevent.jpg?quality=90&amp;strip=all&amp;crop=0%2C10.732984293194%2C100%2C78.534031413613&amp;w=1200"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/what-to-expect-from-apple-s-welcome-home-event-72060</link> <content:encoded><![CDATA[<div id="zephr-anchor"><p>We are quickly coming up on Apple&rsquo;s &ldquo;<a href="https://en.mycoding.id/category/technology" target="_blank">Welcome Home</a>&rdquo; initiate event, anywhere we anticipate a presenter of astute home-related announcements. We are expecting refreshes to Apple TV and HomePod Mini, as fine as a brand <a href="https://en.mycoding.id/category/technology" target="_blank">new astute residence hub</a>. We could additionally see the debut of a new phase called homeOS, and several partner devices from LG.</p><p>What we likely won&rsquo;t be seeing is the long-rumored touchscreen MacBook, which Cupertino whisperer Mark Gurman says <a href="https://en.mycoding.id/category/technology" target="_blank">will debut afterward this month</a>.</p><p>&ldquo;Welcome Home&rdquo; volition officially boot off in New York on October 13th at 9AM ET. Here&rsquo;s additional concerning what to expect.</p><p>Until now, Apple has chiefly relied on the Home app to authority all the assorted bits and bobs that create up your astute home. But it&rsquo;s a market niche that the business has been <a href="https://en.mycoding.id/category/technology" target="_blank">eager to tackle additional fully</a>. The <a href="https://en.mycoding.id/category/technology" target="_blank">new device</a>, which could be called <a href="https://en.mycoding.id/category/technology" target="_blank">HomePad</a> or <a href="https://en.mycoding.id/category/technology" target="_blank">HomeView</a> or, additional simply, Apple Home Hub, volition reportedly characteristic a 6-inch quadrate touchscreen that can either be mounted on a partition or placed on a array or countertop. According to Mark Gurman, the countertop example volition slightly resemble the iMac G4, alongside the display attached to an arm set into a fractional sphere.</p><p>It volition additionally supposedly use sound or facial acknowledgment to acknowledge who is interacting alongside it, pulling up the applicable contacts, calendar appointments, and more. Apple volition recommendation the choice for secondary acknowledgment through an iPhone to keep individual data additional secure. The entire item volition reportedly run a new application phase called&hellip;</p><p>The business may have registered a trademark for the name <a href="https://en.mycoding.id/category/technology" target="_blank">through a casing company</a> called Home Operations Suite LLC, a move that Apple has pulled before to quietly safe the entitlements to names. The phase volition supposedly characteristic a streamlined interface that &ldquo;looks akin a mashup of iOS, tvOS and watchOS,&rdquo; <a href="https://en.mycoding.id/category/technology" target="_blank">according to Gurman</a>. The focus, obviously, volition be on astute residence applications, akin controlling thermostats and astute locks, and it volition additionally be capable of making FaceTime calls.</p><p>The OS volition additionally contain your customary assortment of Apple apps and widgets, including Apple Music, Podcasts, and News, as fine as Reminders, Notes, and Siri AI.</p><div><p id="homepod-mini-and-apple-tv-get-a-minor-refresh"><h2>HomePod Mini and Apple TV get a insignificant refresh</h2></p></div><p>Word is that not much is changing alongside the HomePod Mini or Apple TV. The designs volition remain the same, but they&rsquo;ll get a new processor to assistance grip the added petition of Siri AI. This volition be the archetypal update to the HomePod Mini since it was announced on October 13th of 2020 &mdash; exactly six years before Apple&rsquo;s Welcome Home event. While the business isn&rsquo;t making any theatrical changes for the Mini&rsquo;s birthday, it volition be offering it in new colors, including green and pink.</p><p>This volition be the archetypal hardware refresh for the Apple TV since 2022. In supplement to supporting Siri AI, the new processor volition additionally speed up navigation, which can get a bit laggy. Both are expected to characteristic Apple&rsquo;s N1 chip, which includes assistance for Wi-Fi and Bluetooth 6.0.</p><div><p id="lg-and-other-partner-devices"><h2>LG and another partner devices</h2></p></div><p>It&rsquo;s apt that we&rsquo;ll get a citation of products that merge alongside HomeKit and recommendation new features built on top of homeOS and any Apple&rsquo;s hardware hub ends up being called. But don&rsquo;t anticipate Apple to portion too much of the spotlight alongside its <a href="https://en.mycoding.id/category/technology" target="_blank">partners</a>. We&rsquo;ve already seen a leak of LG astute home, including <a href="https://en.mycoding.id/category/technology" target="_blank">deadbolts, thermostats, and more</a>. They&rsquo;ll additionally reportedly contain an NFC-based &ldquo;<a href="https://en.mycoding.id/category/technology" target="_blank">Proximity Control</a>&rdquo; that pops up a clue in the iPhone&rsquo;s Dynamic Island whenever held near the device, as fine as a &ldquo;<a href="https://en.mycoding.id/category/technology" target="_blank">tap to set up without power</a>&rdquo; pairing feature.</p><div><p><span><strong>Follow topics and authors</strong> from this narrative to see additional akin this in your personalized homepage nourish and to obtain email updates.</span></p><ul><li id="follow-author-article_footer-dmcyOmF1dGhvclByb2ZpbGU6NjA5MzU0"><span aria-expanded="false" aria-haspopup="true" role="button" tabindex="0"><span><span><svg width="9" height="9" viewbox="0 0 9 9" fill="none" xmlns="http://www.w3.org/2000/svg" aria-label="Follow"><path d="M5 0H4V4H0V5H4V9H5V5H9V4H5V0Z"></path></svg></span><span>Terrence O'Brien</span></span></span></li><li><li><li><li><li><li><li></ul></div></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/what-to-expect-from-apple-s-welcome-home-event-72060</guid> <pubDate>Sun, 11 Oct 2026 14:00:00 +0700</pubDate> <author><![CDATA[support@mycoding.id (Terrence O’brien)]]></author> </item> <item> <title><![CDATA[My mom was raising me and caring for her mom with Alzheimer's. Our neighbors became our village.]]></title> <description><![CDATA[My mom was raising me and caring for her mom with Alzheimer's. Our neighbors became our village.. I grew up in a Michigan co-housing community during my family cared for my grandma alongside Alzheimer's. Our neighbors became family.]]></description> <media:thumbnail url="https://i.insider.com/6abd50f2d15f8a572974cb3d?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/my-mom-was-raising-me-and-caring-for-her-mom-with-alzheimer-s-our-neighbors-became-our-village-72050</link> <content:encoded><![CDATA[<div data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/6abd4fe0d15f8a572974cb31?width=1000&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6abd4fe0d15f8a572974cb31?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6abd4fe0d15f8a572974cb31?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6abd4fe0d15f8a572974cb31?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6abd4fe0d15f8a572974cb31?width=1000&amp;format=jpeg&amp;auto=webp 1000w" sizes=" 1280px) 900px" alt="Three generations in a photo" decoding="sync"> </p></div> <span> <span e-name="image-source" itemprop="creditText">Courtesy of the author</span> </span> </figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>I spent the archetypal years of my existence on the brownstone-lined streets of Brooklyn, waking up to the appears of birds chirping blended alongside car horns reverberating throughout the city. Little did I cognize that my younker would obtain an unexpected turn.</p><p>In the center of archetypal grade, my mom <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">pulled me out of school</a>, packed our suitcases, and moved us throughout the nation to Michigan as my grandma, Lillian, was diagnosed alongside Alzheimer's and needed additional support. My contiguous family is small, fair my mom and me, and Michigan felt entirely abroad at the time.</p><h2 id="8c528b91-a2db-40a5-a678-a5979a78765a" data-toc-id="8c528b91-a2db-40a5-a678-a5979a78765a">We moved into a co-housing community</h2><p>My mom continually emphasized the importance of construction family through community. With that in mind, she moved us to Great Oak Cohousing, a community designed about the <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">concept of autonomous living</a> alongside shared amenities: a average house, an extended garden, and a assortment of gathering spaces, all collaboratively managed by residents.</p><p>I cut in affection alongside Great Oak nearly immediately. It unlocked a manner that had been <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">missing in New York</a>: raw nature all about us, the capability to run about independently, and an unmatched awareness of community.</p> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/png" data-srcs='//i.insider.com/6abd518f265e3f8e338f9255&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:750,&quot;aspectRatioH&quot;:563}}' alt="Woman alongside kid posing for photo"> </p></div> <span> <figcaption e-name="image-caption"> The author moved from New York to Michigan to assistance attention for her grandmother.&nbsp; <span e-name="image-source" itemprop="creditText"> Courtesy of the author </span> </figcaption> </span> </figure> <p>We welcomed my grandma into our new residence alongside open arms, picking her up from my aunt Heidi's house, anywhere she lived during the week, and bringing her to ours for lengthy weekends.</p><p>My grandma had visited us in New York whenever I was a baby, but beyond that, we hadn't spent much period together. Almost immediately following the move, we became rascals together, finding many ways to perform and enter trouble.</p><h2 id="056d5fa8-ac94-4043-9f5f-de192c39006f" data-toc-id="056d5fa8-ac94-4043-9f5f-de192c39006f">We had a community</h2><p>My mom frequently tells the narrative of a period we were at our <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">local market store</a>. I was tasked alongside pushing my grandma in her wheelchair. Soon following we arrived, we disappeared from my mom's view. When she spotted us, I was whisking my grandma up and downward the aisles during she stuck her arm out, knocking boxes of cookies off the shelves as we went, the two of us bursting into laughter. We were two peas in a pod.</p><p>At cohousing, we could sit exterior and toss tennis balls about during neighbors strolled by and busy us in affable small talk. We could bask our meal at <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">picnic tables</a> on a heated day. Everyone knew my grandma, welcomed her, and met her alongside patience and kindness.</p><p>When she had a medicinal emergency, I called 911 during my mother got the notice of neighbors. Within minutes, three group rushed into our condo to help, during another stood in the street waiting to straightforward the ambulance. In among the scariest moments of my childhood, we weren't alone.</p> <p>A narrative I frequently think rear to is from a period whenever we were at a community event, observing a female perform the piano. Midway through the song, my grandma began chanting alongside in a shrill voice. Instead of shushing her, the entire community joined in. What could have been an uncomfortable instant turned into one of joy. It really captured what Great Oak meant to us. My grandma was never treated as a burden or an outsider. She was merely part of the community.</p><h2 id="41836b96-07ed-4a92-83a7-6b12d3f7120a" data-toc-id="41836b96-07ed-4a92-83a7-6b12d3f7120a">It was achy to see my grandma alongside Alzheimer's</h2><p>Still, <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">witnessing her Alzheimer's</a> brought challenges that, as a young child, I didn't immediately understand. I helped her get dressed, enduring a combat or two alongside the way, and equal discovered that I had beautiful fine reflexes whenever it came to dodging the occasional flying dish of food. Despite those challenging moments, I understood that she couldn't assistance it. It was achy to observe her endure her awareness of self, and I can lone ideate how much harder it was for my mother, who had to observe her own mother battle in this way.</p><p>I frequently appearance rear at that period through a distinct lens now that I'm older, specifically from my mother's perspective. <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Caring for a parent</a> alongside Alzheimer's during raising a young kid as a sole mother was no uncomplicated task. I have huge admiration for her and for the power she displayed through it all.</p><p>Experiences akin these instruct you lessons that are difficult to study anyplace else: patience, unconditional love, sacrifice, and, perchance most importantly, the power of family. Caring for my grandma not lone brought the two of us nearer together, I additionally grew nearer to my aunt, person I appearance up to tremendously. I witnessed the sacrifices she made, beginning a area in her Detroit-area residence so my grandma could remain during the week.</p><p>What could have been a lonely cognition became one that was defined by community. Great Oak became an extended family of our small one, showing me that family isn't lone who you're delivered to, but who welcomes you in, stands beside you, and shows up whenever you need them most.</p> </div> <p> <h2> Read next </h2> </p>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/my-mom-was-raising-me-and-caring-for-her-mom-with-alzheimer-s-our-neighbors-became-our-village-72050</guid> <pubDate>Sun, 11 Oct 2026 13:48:01 +0700</pubDate> <author><![CDATA[support@mycoding.id (Liliana Hetherman)]]></author> </item> <item> <title><![CDATA[Hexus – SaaS Landing HTML Template]]></title> <description><![CDATA[Hexus – SaaS Landing HTML Template. Hexus – SaaS Landing HTML Template Free Download. Hexus is a Modern, and High-converting SaaS Landing Page Website Template designed for Software Startups, SaaS...]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Digital Products]]></category> <link>https://en.mycoding.id/hexus-saas-landing-html-template-72059</link> <content:encoded><![CDATA[<div class="entry-content admission clearfix"><div class="stream-item stream-item-above-post-content"><div class="stream-item-size"> </div></div><p class="wp-block-paragraph">Hexus – SaaS Landing HTML Template Free Download. Hexus is a Modern, and High-converting SaaS Landing Page Website Template designed for Software Startups, SaaS Businesses, AI Tools, Mobile Apps, Tech Companies, Digital Products, and Cloud-based Services. With a Sleek User Experience and Conversion-focused Layouts, Hexus helps you Showcase your Product, Increase Engagement, and Generate additional Leads Effectively.</p><div id="ezoic-pub-ad-placeholder-117" data-inserter-version="2" data-placement-location="under_page_title"></div><h3 class="wp-block-heading">Main Features</h3><ul class="wp-block-list"><li>Built alongside Bootstrap 5</li><li>Modern SaaS UI Design</li><li>Sticky Header</li><li>Conversion-Oriented Structure</li><li>SEO Optimized</li><li>Working AJAX Contact Form</li><li>Smooth Scroll</li><li>Responsive Design</li><li>W3C Validated Markup</li><li>Fast Loading</li><li>Animations and Hover Effects</li><li>Blog Pages</li><li>and more</li></ul><h2 class="wp-block-heading">Download Hexus – SaaS Landing HTML Template</h2><b>Live Demo:</b> <a href="https://en.mycoding.id/category/digital-products" target="_blank" target="_blank"><b>View Demo</b></a><br><br><div class="download-link-section"><div class="copybox"></div> <br><div class="copybox"></div> <br><div class="copybox"></div> <br><div class="copybox"></div> <br><div class="copybox"></div> <br><div class="copybox"></div> <br><div class="copybox"></div> <br><div class="copybox"></div> <br><div class="copybox"></div></div><br><p class="wp-block-paragraph">Free download Hexus – SaaS Landing HTML Template by validthemes on <strong><a href="https://en.mycoding.id/category/digital-products" target="_blank" target="_blank" rel="noreferrer noopener">Themeforest</a></strong> 63475250 premium SaaS endeavor and AI innovation HTML theme download.</p><div id="ezoic-pub-ad-placeholder-125" data-inserter-version="2" data-placement-location="under_first_paragraph"></div><div class="stream-item stream-item-in-post stream-item-inline-post aligncenter"><div class="stream-item-size"> <div id="container-0730062b1c60873c0fcc80d9fa01093b"></div></div></div><div class="stream-item stream-item-below-post-content"><div class="stream-item-size"> </div></div></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/hexus-saas-landing-html-template-72059</guid> <pubDate>Sun, 11 Oct 2026 13:35:00 +0700</pubDate> <author><![CDATA[support@mycoding.id (Null Php Script)]]></author> </item> <item> <title><![CDATA[My favorite hidden gem in California has incredible food and wine — and it's more affordable than Napa Valley]]></title> <description><![CDATA[My favorite hidden gem in California has incredible food and wine — and it's more affordable than Napa Valley. Paso Robles, on California's chief coast, has delicious food, amazing wine, and the sweetest locals. It's additionally much additional affordable than Napa.]]></description> <media:thumbnail url="https://i.insider.com/6ac7c9e77bf24b4467e69608?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/my-favorite-hidden-gem-in-california-has-incredible-food-and-wine-and-it-s-more-affordable-than-napa-valley-72051</link> <content:encoded><![CDATA[<div data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/671aa3c5a0a0cc14f223be4c?width=2000&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/671aa3c5a0a0cc14f223be4c?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/671aa3c5a0a0cc14f223be4c?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/671aa3c5a0a0cc14f223be4c?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/671aa3c5a0a0cc14f223be4c?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/671aa3c5a0a0cc14f223be4c?width=1300&amp;format=jpeg&amp;auto=webp 1300w, https://i.insider.com/671aa3c5a0a0cc14f223be4c?width=2000&amp;format=jpeg&amp;auto=webp 2000w" sizes=" 1280px) 900px" alt="JUSTIN Vineyard in Paso Robles" decoding="sync"> </p></div> <span> <span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <figcaption e-name="image-caption"> <span>Paso Robles is my favorite hidden gem in California.</span> <span> <span e-name="image-source" itemprop="creditText">Courtesy of JUSTIN Winery</span> </span> </figcaption> </span> </span></figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>Where should you go in <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">California</a> for delicious food, sprawling vineyards, and the satisfying audio of a freshly uncorked vino bottle?</p><p>Let me guess, you're thinking of <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Napa</a>.</p><p>But what if I told you there's a hidden gem on the chief shoreline anywhere you can get all of the complete alongside small crowds, lesser prices, and cooler tasting experiences?</p><p>Welcome to <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Paso Robles</a>.</p><h2 id="36165750-92c9-41bd-a940-33e84e79d4b5" data-toc-id="36165750-92c9-41bd-a940-33e84e79d4b5">A vino for everyone</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/671aa40f01ea6d83dee3e9e1&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:2000,&quot;aspectRatioH&quot;:1333}}' alt="JUSTIN Winery in Paso Robles"> </p></div> <span> <figcaption e-name="image-caption"> You'll discover the stunning Justin vineyards and winery in Paso Robles.&nbsp; <span e-name="image-source" itemprop="creditText"> Courtesy of JUSTIN Winery </span> </figcaption> </span> </figure> <p>Growing up in the <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Bay Area</a>, Napa Valley quickly became a particular location for my family. With no relatives living in the US, <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">my Greek parents</a> took us there all Christmas to create the holidays awareness special.</p><p>I've visited Napa complete 20 times, but complete the former few years, Paso Robles has taken my heart.</p><p>Paso Robles is nearly exactly in the center of Los Angeles and San Francisco, concerning 200 miles all way. Parallel to the mountains and the sea, the area has a distinctive terroir because of big heat swings. The topography's distinctive microclimates are ideal for expanding a assortment of grapes, assisting Paso differentiate itself in a crowded <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">California vino market</a>.</p><p>"The assortment of this area really separates itself from the monoculture that Napa has become," Andrew Jones, the owner of Field Recordings Winery, told me.</p><p>Adding to that assortment is the low obstacle to admission in the Paso Robles vino industry. Most of the wineries are small and family-owned, and the winemakers are frequently on-site to guide you. This refreshingly laid-back method makes tastings awareness close and approachable, and they're at a far additional accessible cost item than Napa, anywhere the elevated disbursal of winemaking has trickled downward to tourists. Silicon Valley Bank's <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;outbound_click&quot;}' rel=" nofollow">2026 direct-to-consumer vino report</a> established that the average tasting fee in Napa is $79, during it's $27 in Paso Robles.</p> <p>"Napa has a taller order; they have to live up to a brand that's worldwide," stated Neeta Mittal, among the archetypal Indian women to open a winery in the US. "Where we thrive in Paso is we're capable to etch our own identity, and that's a awesome nimbleness that we're allowed."</p><h2 id="0ce7c576-57f2-4f53-8a01-a808c811fb12" data-toc-id="0ce7c576-57f2-4f53-8a01-a808c811fb12">Tasting experiences alongside a twist</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6181e72923745d001824c5f6&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:2000,&quot;aspectRatioH&quot;:1500}}' alt="Paso Robles LXV Wines"> </p></div> <span> <figcaption e-name="image-caption"> My wine-and-spice pairing at LXV Wine.&nbsp; <span e-name="image-source" itemprop="creditText"> Anneta Konstantinides/Insider </span> </figcaption> </span> </figure> <p>Mittal and her husband, Kunal, own <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;outbound_click&quot;}' rel=" nofollow">LXV Wine</a>, which offers the lone wine-and-spice pairing in the US. I visited LXV on my archetypal trip to Paso Robles and was delighted that my tasting included cheeses covered in assorted spices. I learned how ginger and dreary truffle sodium chloride can bring out the flavors of Cabernet and why Szechuan peppers and Nebbiolo brace so well.</p><p>I additionally affection the tastings at <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;outbound_click&quot;}' rel=" nofollow">Field Recordings</a>, which prides itself on making wines that "are all concerning the sensation &mdash; alongside none of the pretension," as its website reads. Jones specializes in small-batch, single-vineyard wines. They're fun and funky, adorned alongside colorful labels and names akin "Kitties" or "Super Gnario."</p> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6718859b9b3250dbbce954bf&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1912,&quot;aspectRatioH&quot;:1200}}' alt="Paso Robles Tin City"> </p></div> <span> <figcaption e-name="image-caption"> Tin City is one of my favorite parts of Paso Robles.&nbsp; <span e-name="image-source" itemprop="creditText"> Anneta Konstantinides/Business Insider </span> </figcaption> </span> </figure> <p>Field Recordings is in <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;outbound_click&quot;}' rel=" nofollow">Tin City</a>, my favorite part of Paso Robles. The converted manufacturing hub features complete 20 wineries, all inside strolling extend of all other, anywhere tastings typically disbursal between $20 and $30. It's ideal for a vino crawl, but there's additionally a brewery and the extremely fun Tin City Distillery if you're craving cocktails instead.</p><h2 id="27aad291-2c1f-48ce-ac7f-34f1a289cc47" data-toc-id="27aad291-2c1f-48ce-ac7f-34f1a289cc47">Where you can vino <em>and </em>dine</h2><p>Another logic I keep going rear to Paso Robles is the awesome eatery scene. I never skip a meal at <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;outbound_click&quot;}' rel=" nofollow">The Alchemists' Garden</a>, which has a fun cocktail catalog and several of the finest fries.</p><p>My parents motionless rave concerning the meal we had at <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;outbound_click&quot;}' rel=" nofollow">Il Cortile Ristorante</a>. Its pappardelle is handmade and paired alongside a rich, luscious <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Bolognese</a>, and the branzino is light, bright, and cooked to perfection. But the celebrity is the risotto covered in pale truffles, a holiday splurge I've never forgotten.</p> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6181e712326b260018348c29&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:960,&quot;aspectRatioH&quot;:1280}}' alt="Paso Robles Alchemist Kitchen food"> </p></div> <span> <figcaption e-name="image-caption"> My archetypal meal at The Alchemist's Garden, featuring the amazing french fries.&nbsp; <span e-name="image-source" itemprop="creditText"> Anneta Konstantinides/Insider </span> </figcaption> </span> </figure> <p>The <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;outbound_click&quot;}' rel=" nofollow">Restaurant at Justin</a>, which earned its archetypal Michelin celebrity in 2022, bested any fine-dining cognition I've had in Napa. I motionless have pictures saved from that dinner, anywhere my fianc&eacute; and I feasted on maple-leaf duck breast, premier filet, and assorted veggies picked from their 26-acre farmstead.</p><p>And no sojourn to Paso is complete without a halt at&nbsp;<a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;outbound_click&quot;}' rel=" nofollow">Brown Butter Cookie Company</a>, which has mastered the salty-sweet combo in a small treat. The hand-rolled cookies are made locally and accessible in a assortment of flavors.</p><p>On my final visit, I grabbed a dozen bags for my family, friends, and myself, of course.</p><h2 id="c6c10d0b-d96e-46ee-8a93-989a7a44ae74" data-toc-id="c6c10d0b-d96e-46ee-8a93-989a7a44ae74">A destination for any season</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ac7c89f7bf24b4467e695e3&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:2000,&quot;aspectRatioH&quot;:1500}}' alt='The &quot;Field of Lights&quot; in Paso Robles'> </p></div> <span> <figcaption e-name="image-caption"> The "Field of Light" is a famous tourist place in Paso Robles.&nbsp; <span e-name="image-source" itemprop="creditText"> Jeff Amlotte/Los Angeles Times via Getty Images </span> </figcaption> </span> </figure> <p>Blessed alongside California sunshine, Paso Robles is a awesome holiday year-round. I've gone in the fall, summer, and winter &mdash;&nbsp;where it's festively <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">decorated for the holidays</a> &mdash;&nbsp;and have continually been charmed by the small-town vibes and affable locals. (Don't young female karaoke nights at the Pine Street Saloon.)</p><p>The winemaking earth is gradually starting to study concerning Paso Robles, but the town itself remains a <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">hidden gem</a>.</p><p>For now, at least, this is California's best-kept secret.</p> </div> <p> <h2> Read next </h2> </p> <div data-component-type="post-bottom-authors" data-load-strategy="exclude" data-track-view='&quot;module_in_view&quot;}' data-track-click-shared='&quot;navigation&quot;}'> <div data-track-view='&quot;module_in_view&quot;}'> <div> <p><span>Anneta Konstantinides is a manner equal at Business Insider and has spent nearly 10 years reporting in the manner space. Her concentration is on food and travel, anywhere she's known to obtain readers inner Michelin-starred kitchens or to the hottest new Las Vegas hotel. Sometimes it's Anneta doing the cooking, foremost readers through the finest recipes by Gordon Ramsay or Ina Garten. </span><span>Anneta has also&nbsp; been deeply reporting on the pageant industry since 2019, interviewing dozens of Miss USA and Miss Universe winners. She was a two-time finalist at the LA Press Club Awards for her inquiry into the 2022 and 2024 Miss USA scandals and was featured in The New York Times Presents event "How to Fix a Pageant" on Hulu in September 2023.&nbsp;</span><span>After graduating from UCLA alongside a B.A in English Literature and a insignificant in movie &amp; television, Anneta worked as a newsman in London, Sydney, New York City, Los Angeles, and Washington, DC. She currently lives in Los Angeles.&nbsp;</span> </p> </div> </div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/my-favorite-hidden-gem-in-california-has-incredible-food-and-wine-and-it-s-more-affordable-than-napa-valley-72051</guid> <pubDate>Sun, 11 Oct 2026 13:28:02 +0700</pubDate> <author><![CDATA[support@mycoding.id (Anneta Konstantinides)]]></author> </item> <item> <title><![CDATA[We live on a 'family compound' with my parents and siblings. It's made raising our daughter much easier.]]></title> <description><![CDATA[We live on a 'family compound' with my parents and siblings. It's made raising our daughter much easier.. My husband, daughter, and I live in a distinct home on my parents' property. In total, nine family members and three dogs live on our &quot;family compound.&qu...]]></description> <media:thumbnail url="https://i.insider.com/6ac666da1ba1ce8fa8f28470?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/we-live-on-a-family-compound-with-my-parents-and-siblings-it-s-made-raising-our-daughter-much-easier-72052</link> <content:encoded><![CDATA[<div data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/6ac66781ab711cb5ad4b4e7a?width=1300&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6ac66781ab711cb5ad4b4e7a?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6ac66781ab711cb5ad4b4e7a?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6ac66781ab711cb5ad4b4e7a?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6ac66781ab711cb5ad4b4e7a?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/6ac66781ab711cb5ad4b4e7a?width=1300&amp;format=jpeg&amp;auto=webp 1300w" sizes=" 1280px) 900px" alt="Taylor and her hubby clasp their young female in forefront of their house." decoding="sync"> </p></div> <span> <span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <figcaption e-name="image-caption"> <span>We have our own house, but my hubby and I live on the identical asset as my parents and siblings.</span> <span> <span e-name="image-source" itemprop="creditText">Taylor Bunting</span> </span> </figcaption> </span> </span></figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>There's a famous saying that <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">it takes a village</a> to lift a child.</p><p>I'd continually understood the saying as a metaphor. But whenever my hubby and I decided to build a home on the identical asset anywhere my parents, younger siblings, and my brother's fianc&eacute; live, that adage became a lot additional literal.</p><p>Now, we're raising our female on our "family compound," alongside our settlement correct next door.</p><h2 id="c02104bb-1d9d-4eea-8413-64d7dca7f049" data-toc-id="c02104bb-1d9d-4eea-8413-64d7dca7f049">A compound wasn't the first plan, but living current has been an amazing experience</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ac5379f215acfce661bd9f1&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1260,&quot;aspectRatioH&quot;:945}}' alt="The exterior of Taylor&#039;s parents&#039; house."> </p></div> <span> <figcaption e-name="image-caption"> My parents built their home first.&nbsp; <span e-name="image-source" itemprop="creditText"> Taylor Bunting </span> </figcaption> </span> </figure> <p>Although my family had jokingly talked concerning construction houses next entrance to all another since I was a child, we never idea we could create that a reality.</p><p>However, the institution started to materialize in 2024. At the time, my hubby and I were living concerning 15 minutes from my younker home, which was bursting at the seams alongside my three siblings, my brother's fianc&eacute;, the two my parents, and their two adorable aureate retrievers.</p><p>My parents had been <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">searching for a larger home</a> for years, but eventually decided to acquisition a part of district in our Massachusetts hometown.</p><p>Here, they built a home big adequate for all six of them to live together comfortably, and realized there was adequate area remaining on the asset for my hubby and me to build our own home if we wanted to.</p><p>They began building on their residence that identical year, and not lengthy after, my hubby and I decided to market our existing residence and interrupt dirt on a new location on the property.</p><p>In total, nine family members and three dogs live in the two houses, which are fair a abbreviated stroll distant from all other.</p> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/png" data-srcs='//i.insider.com/6ac667b614325b78342d344c&quot;:{&quot;contentType&quot;:&quot;image/png&quot;,&quot;aspectRatioW&quot;:1086,&quot;aspectRatioH&quot;:815}}' alt="The exterior of Taylor&#039;s home."> </p></div> <span> <figcaption e-name="image-caption"> I affection that our home is fair a quick stroll distant from my parents' home.&nbsp; <span e-name="image-source" itemprop="creditText"> Taylor Bunting </span> </figcaption> </span> </figure> <p>We've now been living current for six months and couldn't ask for a improved <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">living arrangement</a>. I affection being capable to see my siblings off for their archetypal day of academy or prom night, having equivalent nights alongside my family, and enjoying slow, cozy days observing football together.</p><p>Not lone are my hubby and I fortunate adequate to have our built-in finest allies lone a abbreviated stroll away, but we additionally get to observe our female develop up alongside straightforward admission to her grandparents, aunts, and uncles.</p><p>It's nice that we never have to concern concerning <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">finding a sitter</a> we trust, as my family members affection to keep an eye on her for any reason, from a date night to me squeezing in a exercise during my hubby is out.</p><p>Even having one of my younger siblings pop complete and perform alongside our female during we get chores done about the home makes a huge difference.</p> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ac67362ab711cb5ad4b4eee&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1316,&quot;aspectRatioH&quot;:987}}' alt="Taylor&#039;s younger brother and sister sit on the flat alongside her daughter."> </p></div> <span> <figcaption e-name="image-caption"> My siblings affection spending period alongside their niece.&nbsp; <span e-name="image-source" itemprop="creditText"> Taylor Bunting </span> </figcaption> </span> </figure> <p><a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Childcare is expensive</a>, particularly in Massachusetts, and we are everlastingly grateful that we don't have to obtain on that financial burden.</p><p>And although my family spends a lot of period together, and have several shared spaces (like a pond and a detached garage), we never awareness akin we're on top of all other.</p> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ac7ab2a42403ad8039a4957&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1320,&quot;aspectRatioH&quot;:935}}' alt="A gated pond exterior of a ample house."> </p></div> <span> <figcaption e-name="image-caption"> We have a shared pond and detached garage.&nbsp; <span e-name="image-source" itemprop="creditText"> Taylor Bunting </span> </figcaption> </span> </figure> <p>In fact, there are plentifulness of days I don't equal see my family members since of occupied academy and activity schedules.</p><p>Plus, we're all extremely respectful of boundaries. If we get all other's clothes, we cleanse and come back them. If we desire to obtain a snack from person else's pantry, we ask first.</p><h2 id="79d803f3-3b2d-4b55-b989-7b917cdd3257" data-toc-id="79d803f3-3b2d-4b55-b989-7b917cdd3257">The living institution feels akin a continuation of our close-knit relationship</h2> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ac94c887bf24b4467e69e75&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:1204,&quot;aspectRatioH&quot;:903}}' alt="A photo of Taylor and her complete family on vacation."> </p></div> <span> <figcaption e-name="image-caption"> My family loves spending period together.&nbsp; <span e-name="image-source" itemprop="creditText"> Taylor Bunting </span> </figcaption> </span> </figure> <p>I'm frequently asked why my siblings and I would desire to live in specified near proximity to all another and to my parents.</p><p>To me, though, it fair felt akin a continuation of item that my parents had already created. They were incredibly intentional concerning keeping our family near during we were expanding up, so as adults, we naturally desire to expend period together.</p><p>Plus, my parents never weighed the achievement of their parenting on whether we got into fancy colleges, established huge careers, or moved distant to be "independent." </p><p>They accept their parenting volition have been prosperous if their kids desire to expend their period alongside them and all other. Their goal was to lift us to desire to be all other's finest friends.</p><p>The next inquiry I'm typically asked is how my hubby feels concerning the arrangement. Honestly, he was fair as enthusiastic as I was to build a home next to my parents. Now, he loves <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">playing basketball</a> exterior alongside my brother, and luckily, his flank of the family lives fair 10 minutes distant &mdash; so, we expend many of period alongside them, too.</p><p>Unfortunately, our current asset isn't ample adequate to modify additional houses, so as our family continues to alter and expand, we've already begun looking for a bigger part of district downward south that can modify all sibling, should they someday desire houses of their own.</p><p>Our current setup is ideal for this phase in our lives, but we desire to create certain there is continually area for all of us if we desire to continue living together on the identical property. </p> </div> <p> <h2> Read next </h2> </p> <div data-component-type="post-bottom-authors" data-load-strategy="exclude" data-track-view='&quot;module_in_view&quot;}' data-track-click-shared='&quot;navigation&quot;}'> <div> <div> <p><span>Taylor Bunting is a New England-based stay-at-home mom and satisfied creator. Through her content, she shares glimpses into family, motherhood, and family-compound living.&nbsp;</span><span>Tiktok: @taybunting_</span><span>Instagram: @taybunting_</span> </p> </div> </div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/we-live-on-a-family-compound-with-my-parents-and-siblings-it-s-made-raising-our-daughter-much-easier-72052</guid> <pubDate>Sun, 11 Oct 2026 13:24:01 +0700</pubDate> <author><![CDATA[support@mycoding.id (Taylor Bunting)]]></author> </item> <item> <title><![CDATA[I thought we'd be at an extended-stay hotel for 2 weeks. We stayed for 3 months while house-hunting.]]></title> <description><![CDATA[I thought we'd be at an extended-stay hotel for 2 weeks. We stayed for 3 months while house-hunting.. My family and I moved into an extended-stay inn for three months during looking for a rental. I got additional relaxed concerning display period and junk food.]]></description> <media:thumbnail url="https://i.insider.com/6ac692267bf24b4467e68d91?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/i-thought-we-d-be-at-an-extended-stay-hotel-for-2-weeks-we-stayed-for-3-months-while-house-hunting-72053</link> <content:encoded><![CDATA[<div data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/6ac6921542403ad8039a423d?width=2000&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6ac6921542403ad8039a423d?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6ac6921542403ad8039a423d?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6ac6921542403ad8039a423d?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6ac6921542403ad8039a423d?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/6ac6921542403ad8039a423d?width=1300&amp;format=jpeg&amp;auto=webp 1300w, https://i.insider.com/6ac6921542403ad8039a423d?width=2000&amp;format=jpeg&amp;auto=webp 2000w" sizes=" 1280px) 900px" alt="Adult holds a small kid in a cafe beside a second environment alongside a child, cat, dog, and tablet on a bed." decoding="sync"> </p></div> <span> <span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <figcaption e-name="image-caption"> <span>The author and her family stayed in an extended-stay inn for nearly three months during looking for a rental.</span> <span> <span e-name="image-source" itemprop="creditText">Courtesy of Tonya Russell</span> </span> </figcaption> </span> </span></figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>After eight years in the identical home, my family needed a change. We planned to rent during we <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">built a new house</a>, imagining a concise passage between the two. Instead, the rental market had another plans.</p><p>Apparently, it was a extremely famous period to be looking for a new location to live. With multiple families vying for all house, landlords could be choosy. Being self-employed alongside dogs put us near the base of the list. In the meantime, we were living in an <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">extended-stay hotel</a>. Still, I wasn't discouraged because&hellip;well, how lengthy could it obtain to discover a match?</p><p>What I idea would be a two-week inn remain stretched into nearly three months. During that time, my husband, our 1-year-old daughter, Talia, two dogs, and our cat learned what it meant to <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">live alongside small space</a>. More surprisingly, inn living changed how I raised &mdash; and eventually, my views on home.</p><h2 id="907d5680-30ac-433b-92a0-b6452fed5ecd" data-toc-id="907d5680-30ac-433b-92a0-b6452fed5ecd">We took what we needed, and the remainder went in storage</h2><p>We moved everything we owned into two retention units, and I packed for a abbreviated stay. We took what fit in our SUV: a ample suitcase, a bag for my daughter, stuffed alongside pajamas and outfits, a few toys and books, a box of diapers, a litter box, the journey stroller we kept in our car, and a journey wagon that would rotate into a lifeline.</p><p>By the second week, I was making weekly trips to retention to rotate my daughter's toys. <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Living in a hotel</a> can create toddlers uninterested fast.</p><p>I additionally started emotion boxed in. I missed my home, hated strolling the dogs at all hours, and dreaded the dilatory elevators that occasionally got stuck. Some days, I'd ascend four flights of stairs or obtain my high-energy dog for runs. Talia and I frequented the supermarket fair to keep from going crazy.</p> <figure data-type="img" e-name="image-figure-image" data-media-container="image" role="button" tabindex="0" aria-label="Click to open depiction in exhibition view" itemscope="" itemtype="https://schema.org/ImageObject"> <div> <p><img src="image/svg+xml,%3C%3Fxml%20version=&#039;1.0&#039;%20encoding=&#039;UTF-8&#039;%3F%3E%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1&#039;%20height=&#039;1&#039;/%3E" data-content-type="image/jpeg" data-srcs='//i.insider.com/6ac692537bf24b4467e68d93&quot;:{&quot;contentType&quot;:&quot;image/jpeg&quot;,&quot;aspectRatioW&quot;:4284,&quot;aspectRatioH&quot;:5712}}' alt="toddler operating through seating area in hotel"> </p></div> <span> <figcaption e-name="image-caption"> The author's female enjoyed playing in the hotel.&nbsp; <span e-name="image-source" itemprop="creditText"> Courtesy of Tonya Russell </span> </figcaption> </span> </figure> <h2 id="c3100fb1-b175-489f-9613-e52a5ff55cbe" data-toc-id="c3100fb1-b175-489f-9613-e52a5ff55cbe">I rethought how I parent</h2><p>I additionally had to rethink several <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">parenting rules</a>. At home, I was against the two junk food and display time. But the inn dawn meal buffet had constricted vegetarian options. When Talia pointed at the plain donuts, I let her have one. She normally took one bite. She additionally asked for my husband's vegan sausages, so she had one alongside him most mornings.</p><p><a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Screen time</a> became another compromise. I motionless needed to work, and concentrating during sharing a inn area alongside a toddler was nearly impossible. Fifteen minutes of Miss Rachel or Gracie's Corner gave me adequate period to put on my noise-canceling headphones and dump a idea onto the leaf before I forgot it.</p><p>When a storm ruined our coast plans, a companion suggested we use the hotel's gathering area for a alter of pace. It became part of our routine, alongside Talia playing peekaboo about the tables alongside the revenue manager.</p> <h2 id="81821ce4-0ec0-47d8-8e19-be661a430421" data-toc-id="81821ce4-0ec0-47d8-8e19-be661a430421">I enjoyed getting to cognize our 'neighbors'</h2><p>Not everyone in an extended-stay inn is a long-term guest. There were vacationers, <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">business travelers</a>, armed forces members waiting for traditional housing, truck drivers, and group whose employers maintained company accounts.</p><p>Then there were families who merely had nowhere to go.</p><p>I met veterans and families navigating the accommodation system. Agencies sometimes location families in hotels until they discover housing. Extended-stay hotels can modify complete families &mdash; including the dogs and cats that can create rental searching equal harder.</p><p>I additionally bonded alongside the staff. One female said lone Spanish, yet somehow, I started picking up on what she was saying, which allowed me to assistance translate for another guests. I chatted alongside second-shift front-desk workers, who shared their aspirations alongside me and looked the another way whenever I snuck into the galley for cornflakes. Talia earned the nickname "spicy h2o baby" since she and I shared seltzer from the bar.</p><h2 id="bc638b86-fa0f-4a65-8bae-29fbce3891c0" data-toc-id="bc638b86-fa0f-4a65-8bae-29fbce3891c0">We've established a rental, and I was amazed to young female the hotel</h2><p>I spent weeks worrying concerning what she was missing by not being residence and what bad habits would stick. Now that we've moved, she motionless asks for "Pad," but lone needs a few minutes before wandering off to color or read. And all day feels akin 15 minutes of Christmas as she rediscovers <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">another toy</a> from storage.</p><p>When we eventually remaining the hotel, I expected relief. Instead, I felt a different tug of homesickness.</p><p>In those nearly three months, my female had gone from saying a random term or two to speaking full-on toddler gibberish. She stopped face-planting in the hallways and learned to run.</p><p>Talia was living her life, enjoying playing in the gathering room, spraying in the pool, and making allies alongside the group who knew her name. Maybe that was what I hadn't understood whenever we checked in alongside one carload of belongings and a two-week plan: Home is anywhere your family is.</p> </div> <p> <h2> Read next </h2> </p> <div data-component-type="post-bottom-authors" data-load-strategy="exclude" data-track-view='&quot;module_in_view&quot;}' data-track-click-shared='&quot;navigation&quot;}'> <div> <div> <p><span><span>Tonya Russell is a freelance newsman covering mental health, culture, and wellness. She resides in the Philadelphia area alongside her fianc&eacute; and four fur babies.</span><span> Her words have been featured in Vice, Health.com, The New York Times, and the Washington Post. Follow her on <a href="https://en.mycoding.id/category/business" target="_blank">Instagram</a> and <a href="https://en.mycoding.id/category/business" target="_blank">Twitter.</a></span></span> </p> </div> </div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/i-thought-we-d-be-at-an-extended-stay-hotel-for-2-weeks-we-stayed-for-3-months-while-house-hunting-72053</guid> <pubDate>Sun, 11 Oct 2026 13:22:01 +0700</pubDate> <author><![CDATA[support@mycoding.id (Tonya Russell)]]></author> </item> <item> <title><![CDATA[Don't Put Tilde In Your Path]]></title> <description><![CDATA[Don't Put Tilde In Your Path. Comments]]></description> <media:thumbnail url="https://disconnect3d.pl//assets/posts/tilde-in-path.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/don-t-put-tilde-in-your-path-72055</link> <content:encoded><![CDATA[<div> <div> <div> <p>I was playing alongside the <a href="https://en.mycoding.id/category/technology" target="_blank">nono</a> delegate sandboxing tool and it greeted me alongside a warning: PATH entries the sandbox can compose to: ~/.local/bin/ which looked suspicious.</p> <p><img src="https://disconnect3d.pl/assets/posts/tilde-in-path-nono-warning.png" alt="nono alert concerning PATH entries the sandbox can compose to"></p> <p>In another words, doing this in your ~/.bashrc or ~/.zshrc:</p> <div><div><pre><span>export </span><span>PATH</span><span>=</span><span>"</span><span>$PATH</span><span>:~/.local/bin/"</span> </pre></div></div> <p>will not develop the ~ (tilde) into the residence way (or $HOME) as the tilde to residence enlargement happens lone in unquoted inputs, as additionally the <a href="https://en.mycoding.id/category/technology" target="_blank">bash records says</a>:</p> <blockquote> <p>If a term starts alongside an unquoted tilde character (&lsquo;~&rsquo;), all of the characters up to the archetypal unquoted slash (&hellip;) are considered a tilde-prefix. (&hellip;)</p> <p>Bash checks all changeable project for unquoted tilde-prefixes immediately following a &lsquo;:&rsquo; or the archetypal &lsquo;=&rsquo;, and performs tilde enlargement in these cases. (&hellip;)</p> </blockquote> <p>So alternatively of having /home/&lt;user&gt;/.local/bin/ added to PATH we end up alongside ./~/.local/bin/ added to PATH.</p> <p>And to fix this, we can do this:</p> <div><div><pre><span>export </span><span>PATH</span><span>=</span><span>"</span><span>$PATH</span><span>:</span><span>$HOME</span><span>/.local/bin/"</span> </pre></div></div> <p>Note that the unquoted type export PATH=$PATH:~/.local/bin really plant in Bash and Zsh, since tilde enlargement is additionally performed in changeable assignments following = and following all :. But relying on that is susceptible as for example, a whitespace volition interrupt the changeable assignment.</p> <p>The issue can additionally be seen here:</p> <div><div><pre><span>$ </span><span>ls</span> <span>-la</span> total 0 drwxr-xr-x@ 2 dc personnel 64 Oct 2 13:37 <span>.</span> drwxr-x---+ 105 dc personnel 3360 Oct 2 13:37 .. <span>$ </span><span>mkdir</span> <span>-p</span> ./~/.local/bin/ <span>$ </span><span>printf</span> <span>'#include &lt;stdio.h&gt;\nint main() { puts("hello"); }'</span><span>&gt;</span>a.c<span>;</span> gcc a.c <span>-o</span> ./~/.local/bin/kek <span>$ PATH</span><span>=</span><span>"~/.local/bin/"</span> kek hello <span>$ </span>tree <span>-f</span> <span>.</span> &#9500;&#9472;&#9472; ./~ &#9474; &#9492;&#9472;&#9472; ./~/.local &#9474; &#9492;&#9472;&#9472; ./~/.local/bin &#9474; &#9492;&#9472;&#9472; ./~/.local/bin/kek &#9492;&#9472;&#9472; ./a.c 4 directories, 2 files </pre></div></div> <p><img src="https://disconnect3d.pl/assets/posts/tilde-in-path.png" alt="Demo showing that a literal tilde in PATH resolves to a ./~/ directory in the current operating directory"></p> <p>As we can see, the kek binary was established and executed from ./~/.local/bin/ &mdash; the residence directory was never involved.</p> <h2 id="check-your-path">Check your PATH</h2> <p>You can quickly inspect whether you have this issue with:</p> <div><div><pre><span>$ </span><span>echo</span> <span>"</span><span>$PATH</span><span>"</span> | <span>grep</span> <span>--</span> <span>'~'</span> </pre></div></div> <p>or, to see all admission on its own line:</p> <div><div><pre><span>$ </span><span>echo</span> <span>"</span><span>$PATH</span><span>"</span> | <span>tr</span> <span>':'</span> <span>'\n'</span> | <span>grep</span> <span>'~'</span> ~/.local/bin/ </pre></div></div> <p>If it prints anything, go fix your .bashrc/.zshrc/.profile and substitute the ~ alongside $HOME :).</p> <p>Btw, kudos to the nono tool for alert concerning this - equal although the alert could be additional verbose (PR incoming).</p> </div> </div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/don-t-put-tilde-in-your-path-72055</guid> <pubDate>Sun, 11 Oct 2026 13:13:13 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[Scandinavia's first farmers slaughtered hunter-gatherer population, DNA suggests]]></title> <description><![CDATA[Scandinavia's first farmers slaughtered hunter-gatherer population, DNA suggests. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/scandinavia-s-first-farmers-slaughtered-hunter-gatherer-population-dna-suggests-72056</link> <content:encoded><![CDATA[<div> <p>&#128737;&#65039;</p> <p>We&rsquo;re checking your association to forestall automated abuse</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/scandinavia-s-first-farmers-slaughtered-hunter-gatherer-population-dna-suggests-72056</guid> <pubDate>Sun, 11 Oct 2026 13:07:22 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[Valen's Memory Safety: A New Kind of Borrow Checking]]></title> <description><![CDATA[Valen's Memory Safety: A New Kind of Borrow Checking. Comments]]></description> <media:thumbnail url="https://en.mycoding.id/site/assets/img/og-image.png"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/valen-s-memory-safety-a-new-kind-of-borrow-checking-72057</link> <content:encoded><![CDATA[<div> <div> <div> <div> <div> <p><span>Oct 11, 2026</span> <span>&nbsp;&mdash;&nbsp;</span> <span>Evan Ovadia</span> </p> </div> <p> This article is concerning <a href="https://en.mycoding.id/category/technology" target="_blank">Valen</a>'s new <b>flexible get checker.</b> Welcome! </p> <p> You all cognize me, I <i>love</i> exploring new recollection safety approaches and blending them together in weird ways. </p> <p> It's part of my eternal quest to discover the <b>memory safety holy grail:</b> item as mighty as Rust's get checking, yet item as uncomplicated and elastic as citation counting or refuse collection. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="0">0</a> <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="1">1</a> </p> <p> I've lengthy suspected that to discover the holy grail, we'd have to resolve <b>three memory-safety challenges:</b> </p> <ul> <li> Can we create a <i>more relaxed</i> get checker? <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="2">2</a> </li> <li> Can we create a get checker peruse <i>more complex data?</i> <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="3">3</a> <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="4">4</a> </li> <li> Can we create those two systems activity together at the identical time? </li> </ul> <p> Vague and arcane, I know! Further below I'll explain what that all means, and how <a href="https://en.mycoding.id/category/technology" target="_blank">Valen</a> power have established a resolution for them. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="5">5</a> </p> <p> This article chiefly focuses on the archetypal piece: Valen's <b>more relaxed get checker.</b> </p> <p> So in this post, I'll conversation concerning <b>what it is, what it can do, and how it works.</b> </p> <p> In this article, I obtain several liberties alongside syntactic sugar for clarity: auto-deref, immediately indexing a struct (<span>my_vec[0]</span>), and inferring types from groups (<span>entity in world.entities[]</span>) are coming in November. Aside from those syntactic adjustments, the get checker plant for everything we conversation about. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="6">6</a> </p> <p> And, alongside the way, I'll explain several of the <b>weirder tidbits,</b> like: </p> <ul> <li> How a compiler can recall <i>where</i> a citation is pointing. </li> <li> How Valen has <i>one</i> benevolent of get reference, as opposed to the two that another get checkers have. </li> <li> How Valen's get checker is shaped to assistance it call into Rust code. </li> </ul> <p> Also, this part is <i>gloriously long</i> and has a lot of context, so I'll let you cognize whenever to skip ahead. </p> <p> Let's dive in! </p> <h3 id="group-borrowing-a-near-miss-and-huge-potential"> Group borrowing: a near miss, and huge potential</h3> <p> (This is fair backstory that I affection telling, awareness liberated to <a href="https://en.mycoding.id/category/technology" target="_blank">skip this section</a>!) </p> <p> Valen's method is built on the "Group Borrowing" recommendation which was designed by my companion <a href="https://en.mycoding.id/category/technology" target="_blank">Nick Smith</a>. </p> <p> It's built about the center idea that <b>the compiler remembers anywhere a citation points to,</b> (I'll explain this later) and it uses that data to inspect that programs are memory-safe. </p> <p> The design's existence had a coarse start; it was nearly buried in the flows of time. It was <a href="https://en.mycoding.id/category/technology" target="_blank">originally designed alongside Mojo in mind</a>, but alas, notwithstanding my finest efforts I couldn't convince the higher-ups that we should use it. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="7">7</a> Group borrowing was deceased before it had the chance to succeed. </p> <p> But I knew it had <i>massive</i> potential, if it could fair <i>make it into the earth somehow.</i> </p> <p> So we spent months sharpening the clarification and figuring out its benefits, and wrote a article <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="8">8</a> on it final year, expecting another languages would choice it up. </p> <p> And they did! <b>It dispersed far and wide.</b> <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="9">9</a> </p> <ul> <li> Google's <a href="https://en.mycoding.id/category/technology" target="_blank">Carbon</a> tongue pivoted entirely to collection borrowing (and equal <a href="https://en.mycoding.id/category/technology" target="_blank">credited</a> our article, which was nice of them!) </li> <li> <a href="https://en.mycoding.id/category/technology" target="_blank">Ante</a> started operating it into their language, see <a href="https://en.mycoding.id/category/technology" target="_blank">Shared Mutability and Stability</a>. </li> <li> Plecra's <a href="https://en.mycoding.id/category/technology" target="_blank">exclusion typing</a> is redesigning the Rust get checker alongside concepts from collection borrowing and GhostCell. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="10">10</a> </li> <li> <a href="https://en.mycoding.id/category/technology" target="_blank">Zeta</a> blended collection borrowing alongside <a href="https://en.mycoding.id/category/technology" target="_blank">disjointness</a> <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="11">11</a> to aspect run-time facts into compile-time recollection safety. </li> <li> <a href="https://en.mycoding.id/category/technology" target="_blank">Fang</a> is operating it into their designs, see <a href="https://en.mycoding.id/category/technology" target="_blank">Cyclic References in Fang</a>. </li> <li> And now, my <a href="https://en.mycoding.id/category/technology" target="_blank">Valen</a> combines collection borrowing alongside <a href="https://en.mycoding.id/category/technology" target="_blank">Vale</a>'s <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="12">12</a> approach, and makes it <a href="https://en.mycoding.id/category/technology" target="_blank">interop alongside Rust code</a> too. </li> </ul> <p> Most of these languages are circling the identical kind of challenge: how to create a additional elastic get checker. </p> <p> For example, Valen wants to create a get checker that's elastic adequate to activity alongside citation counting and generational references, and Carbon wants to create a get checker elastic adequate to activity alongside C++ code. </p> <p> This is difficult, since there's been a <b>fundamental conflict</b> between get checking and another approaches. It can be summed up akin this: <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="13">13</a> </p> <ol> <li> Borrow checking has the "shared-xor-mutable" restriction: if you clasp a citation to an object, nobody alternatively can alter the object. </li> <li> Other approaches desire to authorize holding a citation to an entity during letting others alter it. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="14">14</a> <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="15">15</a> </li> </ol> <p> You're likely thinking, "There's certainly no way to determine this." </p> <p> It does appear that way! </p> <p> But collection borrowing really <b>resolves the conflict,</b> by relaxing "shared-xor-mutable" to "no use-after-free". </p> <p> That was cryptic and won't create any sense, but it volition afterward whenever I explain how collection borrowing works. </p> <p> So let's see <b>what collection borrowing can do,</b> and afterward I'll explain how it works. </p> <h2 id="what-group-borrowing-can-do"> What collection borrowing can do</h2> <p> Group borrowing gives a program recollection safety without run-time cost. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="16">16</a> </p> <p> It catches use-after-free problems at compile time, and it does it in a way that has small restrictions than former approaches. </p> <p> Here's an example anywhere a <b>use-after-free error</b> is caught at compile time: </p> <div> <pre><span>struct</span> <span>Entity</span> <span>{</span> <span>hp</span> <span>int</span><span>;</span> <span>}</span> <span>struct</span> <span>World</span> <span>{</span> <span>entities</span> <span>Vec</span>&lt;<span>Entity</span><span>&gt;</span><span>;</span> <span>}</span> <span>func</span> <span>main</span><span>(</span><span>)</span> <span>int</span> <span>{</span> <span>let</span> earth <span>=</span> <span>World</span><span>(</span>Vec&lt;<span>Entity</span><span>&gt;</span><span>.</span><span>new</span><span>(</span><span>)</span><span>)</span><span>;</span> world<span>.</span>entities<span>.</span><span>push</span><span>(</span><span>Entity</span><span>(</span>42<span>)</span><span>)</span><span>;</span> <span>let</span> first_ref <span>=</span> &amp;world<span>.</span>entities<span>[</span>0<span>]</span><span>;</span> world<span>.</span>entities <span>=</span> Vec&lt;<span>Entity</span><span>&gt;</span><span>.</span><span>new</span><span>(</span><span>)</span><span>;</span> <span>return</span> first_ref<span>.</span>hp<span>;</span> <span>}</span></pre> </div> <p> It's an unusually elastic approach. Usually, compilers have difficulty alongside the below program, but this method <b>understands that it's safe:</b> <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="17">17</a> </p> <div> <pre><span>func</span> <span>main</span><span>(</span><span>)</span> <span>int</span> <span>{</span> <span>let</span> catalog <span>=</span> Vec&lt;<span>int</span><span>&gt;</span><span>.</span><span>new</span><span>(</span><span>)</span><span>;</span> <span>let</span> ref_a <span>=</span> &amp;list<span>;</span> <span>let</span> ref_b <span>=</span> &amp;list<span>;</span> ref_a<span>.</span><span>push</span><span>(</span>42<span>)</span><span>;</span> ref_b<span>.</span><span>push</span><span>(</span>73<span>)</span><span>;</span> <span>return</span> 42<span>;</span> <span>}</span></pre> </div> <p> Group borrowing accepts a lot of patterns that are normally difficult for get checkers, specified as: </p> <ul> <li> Having multiple local variables that item to the identical object, and compose through any of them (like above). </li> <li> Take a indicator pointing at an object, and another indicator pointing location <i>inside</i> that object, and compose through lone the second (we'll see this in the next section). </li> <li> Having multiple function parameters that item to the identical object, and compose through any of them. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="18">18</a> </li> <li> Make a "rollback" struct, that volition alter an entity whenever it goes out of scope, akin the <a href="https://en.mycoding.id/category/technology" target="_blank">ScopeGuard</a> pattern. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="19">19</a> <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="20">20</a> </li> <li> Having multiple structs that have mutable references to a average subsystem. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="21">21</a> </li> <li> Plus a lot additional that I'll explain additional below. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="22">22</a> </li> </ul> <p> These are patterns we affection from C++, but no tongue has figured out how to do all of these in a memory-safe way at compile time. </p> </div> <div> <p>Valen's Memory Safety: A New Kind of Borrow Checking</p> <div> <div> <div id="note0" data-noteid="0"> <p> This quest led to a lot of engaging experiments alongside <a href="https://en.mycoding.id/category/technology" target="_blank">constraint references</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">linear types</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">reference counting</a>, and a <a href="https://en.mycoding.id/category/technology" target="_blank">lot more</a>. </p> </div> <div id="note1" data-noteid="1"> <p><span>1</span></p> <p> 0% of this part was written by AI. <a href="https://en.mycoding.id/category/technology" target="_blank">More thoughts here</a>. </p> <p> My stance: if you desire person to obtain the period to peruse something, obtain the period to compose it by hand. </p> <p> Thanks for study =) </p> </div> <div id="note2" data-noteid="2"> <p><span>2</span></p> <p> Or additional specifically, "can we create a get checker that supports multiple <i>read-write</i> get references to a sole object?" </p> <p> This article explains that in full, so keep reading! </p> </div> <div id="note3" data-noteid="3"> <p><span>3</span></p> <p> I'll explain this additional below, but by "more complex data" I average complete graphs of data, anywhere objects can openly have references to another objects without restriction, akin you see in C++, Java, etc. as opposed to item akin Rust or Fortran anywhere things mostly can't have references to all other. </p> <p> So whenever I say "read additional complex data", I mean: how can we have immutable get references pointing at that benevolent of arbitrary chart of data? </p> <p> (Note, Rust structs can have references to another Rust structs, but lone temporarily. This is why ECS is specified a famous choice in Rust games. That's why I motionless figure Rust as additional on the Fortran flank of things.) </p> </div> <div id="note4" data-noteid="4"> <p><span>4</span></p> <p> In short, this one is answered by <a href="https://en.mycoding.id/category/technology" target="_blank">Vale</a>'s blend of <a href="https://en.mycoding.id/category/technology" target="_blank">generational references and area borrowing</a>; its <a href="https://en.mycoding.id/category/technology" target="_blank">immutable area borrowing</a> lets the compiler track all pre-existing data as a temporarily icy "region" of data, that we can have get references into. </p> </div> <div id="note5" data-noteid="5"> <p><span>5</span></p> <p> For now, I'll fair clue that Valen power have solved these by blending <a href="https://en.mycoding.id/category/technology" target="_blank">Vale</a>'s approach, a <a href="https://en.mycoding.id/category/technology" target="_blank">certain idea experiment</a> from 2023, Nick Smith's Group Borrowing approach, and a few twists to create things activity together harmoniously. </p> </div> <div id="note6" data-noteid="6"> <p><span>6</span></p> <p> Specifically, in today's compiler, one needs to manually dereference, indicator into arrays immediately akin <span>my_vec.data[0]</span> alternatively of the struct, and put types on all parameters akin <span>entity &amp;Entity in world.entities[]</span>. </p> </div> <div id="note7" data-noteid="7"> <p><span>7</span></p> <p> Such is existence whenever operating on person else's language! </p> </div> <div id="note8" data-noteid="8"> <p><span>8</span></p> <p> This article you're study correct now is a much improved clarification of collection borrowing, but you can see the old article at <a href="https://en.mycoding.id/category/technology" target="_blank">Group Borrowing: Zero-Cost Memory Safety alongside Fewer Restrictions</a>. </p> </div> <div id="note9" data-noteid="9"> <p><span>9</span></p> <p> Soon I'll be penning an part on how all of these languages' approaches activity and difference alongside all other, remain tuned! </p> </div> <div id="note10" data-noteid="10"> <p><span>10</span></p> <p> It rejects small code by using archetypal category permissions to merge lifetimes alongside the category checker. Definitely inspect it out! </p> </div> <div id="note11" data-noteid="11"> <p><span>11</span></p> <p> Zeta's get checker can demonstrate whenever two references item to <i>different parts</i> of the identical data (they're "disjoint"). For example, it can demonstrate <span>list.get_mut(i)</span> and <span>list.get_mut(j)</span> are disjoint whenever it knows that <span>i</span> != <span>j</span>, equal if the two indices are runtime values. Read <a href="https://en.mycoding.id/category/technology" target="_blank">more here</a>! </p> </div> <div id="note12" data-noteid="12"> <p><span>12</span></p> <p> The chief differences between Valen and Vale: </p> <ul> <li> Valen volition have <a href="https://en.mycoding.id/category/technology" target="_blank">group borrowing</a>, Vale had <a href="https://en.mycoding.id/category/technology" target="_blank">region borrowing</a>. </li> <li> Valen volition have normal generational references, Vale had probabilistic generational references. </li> <li> Valen volition have (and Vale didn't have) Rust interop, Rc, comptime. </li> <li> Valen won't have (and Vale did have) ideal replayability, fearless FFI. </li> </ul> <p> Both have linear types. </p> <p> Their syntax is motionless mostly the same, but Valen power alter to be additional of a "simpler Rust" syntactically. </p> </div> <div id="note13" data-noteid="13"> <p><span>13</span></p> <p> I frequently called this battle "the tongue killer" since it destroyed many versions of many experimental languages, including one of Vale's before approaches. </p> <p> Between <a href="https://en.mycoding.id/category/technology" target="_blank">constraint references</a> and Vale's <a href="https://en.mycoding.id/category/technology" target="_blank">current blend</a>, there was an method I called "hybrid-generational memory", anywhere you could keep a citation living by "tethering" a generational citation for the duration of a scope. I went through <i>thirty two</i> versions of it before giving up. </p> </div> <div id="note14" data-noteid="14"> <p><span>14</span></p> <p> C++ wants this since that's frequently how we use it; we desire a sole <span>unique_ptr</span> owning an object, and a bunch of non-temporary raw pointers referring to it. Reference counting and refuse gathering desire the identical kind of thing. In the two cases, difficulties appear whenever person alternatively can modify an entity during you have a get citation to it. </p> </div> <div id="note15" data-noteid="15"> <p><span>15</span></p> <p> This can be a arguable goal; several of us accept that a reference's referent should never alter out from under you, but an ID's/index's referent have to be capable to (like in Rust). Others accept that that's too restrictive. I think the person have to be capable to choose. </p> </div> <div id="note16" data-noteid="16"> <p><span>16</span></p> <p> Though it's debatable if any tongue can get recollection safety alongside <i>zero</i> run-time cost. See <a href="https://en.mycoding.id/category/technology" target="_blank">Chasing the Myth of Zero-Overhead Memory Safety</a>, it applies to collection borrowing as well. </p> </div> <div id="note17" data-noteid="17"> <p><span>17</span></p> <p> Normally, get checkers don't comprehend how to have two references that can the two modify an object, so they provision <a href="https://en.mycoding.id/category/technology" target="_blank">compile errors</a>. Group borrowing is elastic adequate to not forbid these multiple read-write references, since it knows how to additional exactly defender against use-after-free problems specifically. </p> </div> <div id="note18" data-noteid="18"> <p><span>18</span></p> <p> For an example of this, see the "fn attack" examples in <a href="https://en.mycoding.id/category/technology" target="_blank">this page</a>. This is normally difficult for get checkers. Though, <a href="https://en.mycoding.id/category/technology" target="_blank">GhostCell</a> sometimes helps! </p> </div> <div id="note19" data-noteid="19"> <p><span>19</span></p> <p> Normal get checkers normally have difficulty alongside this since the person wants two read-write references (which violates shared-xor-mutable): one to use directly, and one that lives inner the ScopeGuard object. </p> </div> <div id="note20" data-noteid="20"> <p><span>20</span></p> <p> This could additionally be the basis for a user-defined <span>defer</span> statement! </p> </div> <div id="note21" data-noteid="21"> <p><span>21</span></p> <p> I don't have an example of this handy, but ideate that you wanted a bunch of <span>File</span> objects to all have a citation to a average <span>FileSystem</span> object. Borrow checking normally has problems alongside that (too many read-write references to the identical object), but it should activity fine in collection borrowing. </p> </div> <div id="note22" data-noteid="22"> <p><span>22</span></p> <p> I'll shield it additional below, but using collection borrowing as a starting point, we can: </p> <ul> <li> Make programs that are faster at run-time, since we can provision additional data to the optimizer. </li> <li> Use citation counting without <span>Cell</span> or <span>RefCell</span> or <span>Mutex</span>. </li> <li> Use generational references, for the identical reason. </li> </ul> </div> </div> </div> </div> </div> <div> <div> <h3 id="a-more-interesting-example"> A additional engaging example</h3> <p> (Or, jump to <a href="https://en.mycoding.id/category/technology" target="_blank">how it works</a>) </p> <p> For example, here's a <span>step</span> function that takes in a <span>World</span> reference, and a citation to among the entities inner it. </p> <p> The crucial part is the <span>entity in world.entities[] mut</span>, which I'll explain below. </p> <div> <pre><span>struct</span> <span>World</span> <span>{</span> <span>entities</span> <span>Vec</span>&lt;<span>Entity</span><span>&gt;</span><span>;</span> <span>}</span> <span>func</span> <span>step</span><span>(</span><span>world</span> &amp;<span>World</span><span>,</span> <span>entity</span> <span>in</span> world<span>.</span>entities<span></span><span>[</span><span>]</span> <span>mut</span><span>)</span> <span>{</span> entity<span>.</span><span>advance</span><span>(</span><span>)</span><span>;</span> <span>let</span> collision <span>=</span> world<span>.</span><span>get_collision_for_entity</span><span>(</span>entity<span>)</span><span>;</span> entity<span>.</span><span>resolve</span><span>(</span>collision<span>)</span><span>;</span> <span>}</span></pre> </div> <p> Note these parts: </p> <ul> <li> <span>in</span> method "a citation to one of". </li> <li> <span>world.entities[]</span> method "world's <span>entities</span>'s elements" </li> <li> <span>mut</span> there method "we can modify it." <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="23">23</a> <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="24">24</a> </li> </ul> <p> Put together: <span>entity</span> is a citation to one of <span>world</span>'s <span>entities</span>'s elements, and we can modify it. </p> <p> This is the center idea of the approach: <b>the compiler knows anywhere a citation points to,</b> <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="25">25</a> since the person specifies (via <span>in</span>) anywhere it points to. </p> <p> Now let's see how this looks in another languages, to see why this is so nice. (Or jump to <a href="https://en.mycoding.id/category/technology" target="_blank">how it works</a>!) </p> <p> First, the equal in C++: </p> <div> <pre><span>struct</span> <span>World</span> <span>{</span> <span>vector</span><span>&lt;</span><span>Entity</span><span>&gt;</span> <span>entities</span><span>;</span> <span>}</span><span>;</span> <span>void</span> <span>step</span><span>(</span><span>const</span> <span>World</span><span>&amp;</span> <span>world</span><span>,</span> <span>Entity</span><span>&amp;</span> <span>entity</span><span>)</span> <span>{</span> <span>entity</span><span>.</span><span>advance</span><span>(</span><span>)</span><span>;</span> <span>auto</span> <span>collision</span> <span>=</span> <span>world</span><span>.</span><span>getCollisionForEntity</span><span>(</span><span>entity</span><span>)</span><span>;</span> <span>entity</span><span>.</span><span>resolve</span><span>(</span><span>collision</span><span>)</span><span>;</span> <span>}</span></pre> </div> <p> Of course, the complete requires attention to uphold recollection safety, since C++ doesn't inspect for recollection safety at compile time. </p> <p> Let's see an equal in Rust, anywhere we <i>do</i> get automatic recollection safety: <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="26">26</a> </p> <div> <pre><span>struct</span> <span>World</span> <span>{</span> entities<span>:</span> <span>Vec</span><span>&lt;</span><span>Entity</span><span>&gt;</span><span>,</span> <span>}</span> <span>fn</span> <span>step</span><span>(</span><span>world</span><span>:</span> <span>&amp;</span><span>mut</span> <span>World</span><span>,</span> <span>entity_id</span><span>:</span> <span>usize</span><span>)</span> <span>{</span> <span>let</span> entity_mut = <span>&amp;</span><span>mut</span> world<span>.</span>entities<span>[</span>entity_id<span>]</span><span>;</span> entity_mut<span>.</span><span>advance</span><span>(</span><span>)</span><span>;</span> <span>let</span> entity_read = <span>&amp;</span>world<span>.</span>entities<span>[</span>entity_id<span>]</span><span>;</span> <span>let</span> collision = world<span>.</span><span>get_collision_for_entity</span><span>(</span>entity_read<span>)</span><span>;</span> <span>let</span> entity_mut = <span>&amp;</span><span>mut</span> world<span>.</span>entities<span>[</span>entity_id<span>]</span><span>;</span> entity_mut<span>.</span><span>resolve</span><span>(</span>collision<span>)</span><span>;</span> <span>}</span></pre> </div> <p> Rust is mostly nice to activity with, but in several cases (like this one), it isn't fairly as accelerated or uncomplicated as the C++ case, since we need to re-fetch the citation all period person needed a <span>&amp;mut</span> to item alternatively in the identical hierarchy. </p> <p> Another choice is to refactor our program to be "flatter" (so to speak) which has its own tradeoffs. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="27">27</a> </p> <p> If you desire to get really fancy, you can use <a href="https://en.mycoding.id/category/technology" target="_blank">GhostCell</a>s and add brands to your data and admission them alongside a <span>GhostToken</span>: </p> <div> <pre><span>struct</span> <span>World</span><span>&lt;</span><span>'</span><span>brand</span><span>&gt;</span> <span>{</span> entities<span>:</span> <span>Vec</span><span>&lt;</span><span>GhostCell</span><span>&lt;</span><span>'</span><span>brand</span><span>,</span> <span>Entity</span><span>&gt;</span><span>&gt;</span><span>,</span> <span>}</span> <span>fn</span> <span>step</span><span>&lt;</span><span>'</span><span>brand</span><span>&gt;</span><span>(</span> <span>world</span><span>:</span> <span>&amp;</span><span>World</span><span>&lt;</span><span>'</span><span>brand</span><span>&gt;</span><span>,</span> <span>entity</span><span>:</span> <span>&amp;</span><span>GhostCell</span><span>&lt;</span><span>'</span><span>brand</span><span>,</span> <span>Entity</span><span>&gt;</span><span>,</span> <span>token</span><span>:</span> <span>&amp;</span><span>mut</span> <span>GhostToken</span><span>&lt;</span><span>'</span><span>brand</span><span>&gt;</span><span>,</span> <span>)</span> <span>{</span> entity<span>.</span><span>borrow_mut</span><span>(</span>token<span>)</span><span>.</span><span>advance</span><span>(</span><span>)</span><span>;</span> <span>let</span> collision = world<span>.</span><span>get_collision_for_entity</span><span>(</span>entity<span>,</span> token<span>)</span><span>;</span> entity<span>.</span><span>borrow_mut</span><span>(</span>token<span>)</span><span>.</span><span>resolve</span><span>(</span>collision<span>)</span><span>;</span> <span>}</span></pre> </div> <p> You can see the conundrum. </p> <ul> <li> The C++ example was simple, <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="28">28</a> but not memory-safe. </li> <li> Vanilla Rust was memory-safe, but a small slower, and a small additional complex. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="29">29</a> </li> <li> Adding <span>GhostCell</span> gave us the identical speed as C++, but it's motionless a bit complex. </li> </ul> <p> With Valen's approach, we get item fast, safe, and simple: </p> <div> <pre><span>struct</span> <span>World</span> <span>{</span> <span>entities</span> <span>Vec</span>&lt;<span>Entity</span><span>&gt;</span><span>;</span> <span>}</span> <span>func</span> <span>step</span><span>(</span><span>world</span> &amp;<span>World</span><span>,</span> <span>entity</span> <span>in</span> world<span>.</span>entities<span></span><span>[</span><span>]</span> <span>mut</span><span>)</span> <span>{</span> entity<span>.</span><span>advance</span><span>(</span><span>)</span><span>;</span> <span>let</span> collision <span>=</span> world<span>.</span><span>get_collision_for_entity</span><span>(</span>entity<span>)</span><span>;</span> entity<span>.</span><span>resolve</span><span>(</span>collision<span>)</span><span>;</span> <span>}</span></pre> </div> <p> A beautiful nice simplification! </p> <p> Now, let's eventually get to the clarification of <i>how it works.</i> </p> </div> <div> <div> <div> <div id="note23" data-noteid="23"> <p><span>23</span></p> <p> This is not akin Rust's distinctive references (<span>&amp;mut</span>). There can be another references to that identical entity. </p> </div> <div id="note24" data-noteid="24"> <p><span>24</span></p> <p> This function cannot modify the entire world, fair the entities inner it (this is really a huge superpower, and method the optimizer can improved optimize this function <i>and</i> its callers, but I'll explain that additional later). </p> </div> <div id="note25" data-noteid="25"> <p><span>25</span></p> <p> Or additional specifically, it knows <i>roughly</i> anywhere it's pointing to; <span>entity in world.entities[]</span> points at <i>somewhere in the group</i> of objects that live in the <span>entities</span> array. </p> </div> <div id="note26" data-noteid="26"> <p><span>26</span></p> <p> In Rust, we need a <span>&amp;mut Entity</span> for <span>entity_mut.advance()</span>, and afterward have to throw it distant to get the containing <span>&amp;World</span> rear to provision to the <span>get_collision_for_entity</span> call. Then later, we need to re-fetch the <span>&amp;mut Entity</span> for the determine call. </p> </div> <div id="note27" data-noteid="27"> <p><span>27</span></p> <p> Specifically, it becomes easier to activity alongside the get checker (and faster if your equivalent happens to do ECS-style iteration), but you endure several of the RAII benefits of sole ownership. </p> <p> For example, if you flatten a heterogeneous tree into multiple arrays, nodes aren't automatically deleted whenever their parents are. </p> <p> Also, if you divided into parallel collections too much, you power hazard "ID chasing" cache-miss slowdowns. </p> <p> In the end, I'm wary of any recollection safety method that influences us into one architecture complete another, since it <a href="https://en.mycoding.id/category/technology" target="_blank">might not be the best</a>. </p> <p> Even collection borrowing does this to several extent, which is why I'm enthusiastic to blend in citation counting or generational references. </p> </div> <div id="note28" data-noteid="28"> <p><span>28</span></p> <p> Yes, I cognize how ironic it is to use "C++" and "simple" in the identical sentence! </p> </div> <div id="note29" data-noteid="29"> <p><span>29</span></p> <p> There's several nuance here. You can mostly rearrange your Rust code to equivalent collection borrowing's speed, equal without <span>GhostCell</span>. </p> </div> </div> </div> </div> </div> <div> <div> <h2 id="how-valens-borrow-checker-works"> How Valen's get checker works</h2> <p> <b>TL;DR:</b> The method is made of five mechanisms: </p> <ul> <li> Every entity is described by a <b>path,</b> according to <b>single ownership.</b> </li> <li> Every citation <b>remembers the path</b> of the entity it's pointing to. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="30">30</a> </li> <li> When we demolish an object, everything pointing at its way is <b>no longer usable.</b> </li> <li> A function signature describes <b>the paths it modifies.</b> </li> <li> When we call a function, everything pointing inner its modified paths are <b>no longer usable.</b> </li> </ul> <p> That was beautiful abstract, so I'll explain all of these more. </p> <h3 id="single-ownership"> Single Ownership</h3> <p> <b>TL;DR:</b> Valen's get checker is according to sole ownership, akin C++ and Rust. Every value is "owned" by a containing object, array, stack frame, or global. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="31">31</a> </p> <p> If you cognize how C++ or Rust plant already, <a href="https://en.mycoding.id/category/technology" target="_blank">skip ahead</a>! </p> <p> If you don't cognize (or fair akin reading!), I'll explain what sole ownership is. </p> <p> In sole ownership, all part of data has one "owner". For example... </p> <div> <div> <p> If we have this C++ program: </p> <div> <pre><span>#include</span> <span>&lt;vector&gt;</span> <span>struct</span> <span>Engine</span> <span>{</span> <span>int</span> <span>fuel</span><span>;</span> <span>}</span><span>;</span> <span>struct</span> <span>Ship</span> <span>{</span> <span>unique_ptr</span><span>&lt;</span><span>Engine</span><span>&gt;</span> <span>engine</span><span>;</span> <span>}</span><span>;</span> <span>void</span> <span>foo</span><span>(</span><span>vector</span><span>&lt;</span><span>Ship</span><span>&gt;</span><span>*</span> <span>ships</span><span>)</span> <span>{</span> <span>.</span><span>.</span><span>.</span> <span>}</span> <span>void</span> <span>main</span><span>(</span><span>)</span> <span>{</span> <span>vector</span><span>&lt;</span><span>Ship</span><span>&gt;</span> <span>ships</span><span>;</span><span></span> <span>...</span><span></span> <span>foo</span><span>(</span><span>&amp;</span><span>ships</span><span>)</span><span>;</span> <span>}</span></pre> </div> </div> <div> <p> ...or this Valen program: </p> <div> <pre><span>struct</span> <span>Engine</span> <span>{</span> <span>fuel</span> <span>int</span><span>;</span> <span>}</span><span>;</span> <span>struct</span> <span>Ship</span> <span>{</span> <span>engine</span> <span>Box</span>&lt;<span>Engine</span><span>&gt;</span><span>;</span> <span>}</span> <span>func</span> <span>foo</span><span>(</span><span>ships</span> &amp;<span>Vec</span>&lt;<span>Ship</span><span>&gt;</span><span>)</span> <span>{</span> <span>}</span> <span>func</span> <span>main</span><span>(</span><span>)</span> <span>{</span> ships <span>=</span> Vec&lt;<span>Ship</span><span>&gt;</span><span>.</span><span>new</span><span>(</span><span>)</span><span>;</span> <span>foo</span><span>(</span>&amp;ships<span>)</span><span>;</span> <span>}</span></pre> </div> </div> </div> <p> ...we can say this: <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="32">32</a> </p> <ul> <li> <span>main</span>'s stack example "owns" <span>vector&lt;Ship&gt; ships;</span> </li> <li> The <span>vector&lt;Ship&gt; ships;</span> owns all <span>Ship</span>. </li> <li> Each <span>Ship</span> owns its <span>Engine</span> (via the unique_ptr). </li> <li> Each <span>Engine</span> owns its <span>int fuel;</span> </li> <li> <span>foo</span> does <b>not</b> own the vector, it fair has a raw pointer. </li> <li> <span>main</span> is the lone item without an owner. </li> </ul> <p> If you've coded in C++ or Rust, you're likely acquainted alongside this mindset. </p> <p> If you've coded in C, you power think akin this too, equal although C doesn't explicitly track sole ownership. If you trace an object's journey all the way from its <span>malloc()</span> call to its <span>free()</span> call, all of the variables/fields that the pointer passes through are dealing alongside the "owning pointer", so to speak. It's nearly akin how detectives track the "chain of custody" for evidence. In another words, who is "responsible" for it at any stated moment. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="33">33</a> </p> <p> Heck, equal Java and C# programmers sometimes think in conditions of sole ownership. If you're expected to call an object's "dispose"/"cleanup"/"destroy"/"unregister"/etc. method at several point, you can trace that object's journey all the way from <span>new</span> to that (conceptually destructive) method call, and those are the variables/fields that are handling its "owning reference", so to speak. </p> <p> Single ownership, as explained so far, is the basis for a lot of languages: </p> <ul> <li> If you add regular (unrestricted) pointers and references, you get <a href="https://en.mycoding.id/category/technology" target="_blank">C++</a>. </li> <li> If you add generational references and area borrowing, you get <a href="https://en.mycoding.id/category/technology" target="_blank">Vale</a>. </li> <li> If you add exclusivity-checked references, you get <a href="https://en.mycoding.id/category/technology" target="_blank">Rust</a>. </li> <li> If you add collection borrowing and a few another mechanisms, you get Valen. </li> </ul> <p> With sole ownership, all entity can be described by a "path", which I'll explain next. </p> </div> <div> <div> <div> <div id="note30" data-noteid="30"> <p><span>30</span></p> <p> I'm sensing different resonance between "Every citation remembers the way of the entity it's pointing to." and generational references anywhere "every citation remembers the ID ("generation") of the entity it's pointing at." It <i>could</i> be stated that collection borrowing is a kind of compile-time generational reference. But additional on that in the next article! </p> </div> <div id="note31" data-noteid="31"> <p><span>31</span></p> <p> We unwind this afterward alongside citation counting. </p> </div> <div id="note32" data-noteid="32"> <p><span>32</span></p> <p> You could additionally say that <span>main</span>'s stack example owns <span>foo</span>'s stack frame. Or you could say the reverse (that's how <span>async</span> works). </p> </div> <div id="note33" data-noteid="33"> <p><span>33</span></p> <p> Or additional specifically, liable for freeing it, or liable for giving it to person who volition create certain it's eventually freed. </p> </div> </div> </div> </div> </div> <div> <div> <h3 id="paths"> Paths</h3> <p> Every entity can be described by a path. </p> <p> For this example: </p> <div> <pre><span>struct</span> <span>Entity</span> <span>{</span> <span>hp</span> <span>int</span><span>;</span> <span>}</span> <span>struct</span> <span>World</span> <span>{</span> <span>diameter</span> <span>int</span><span>;</span> <span>entities</span> <span>Vec</span>&lt;<span>Entity</span><span>&gt;</span><span>;</span> <span>}</span> <span>func</span> <span>main</span><span>(</span><span>)</span> <span>int</span> <span>{</span> <span>let</span> x <span>=</span> 42<span>;</span> <span>let</span> earth <span>=</span> <span>World</span><span>(</span>73<span>,</span> Vec&lt;<span>Entity</span><span>&gt;</span><span>.</span><span>new</span><span>(</span><span>)</span><span>)</span><span>;</span> <span>}</span></pre> </div> <p> Here are all the paths in this program: </p> <ul> <li> <span>x</span> </li> <li> <span>world</span> </li> <li> <span>world.diameter</span> </li> <li> <span>world.entities</span> </li> <li> <span>world.entities[]</span> </li> <li> <span>world.entities[].hp</span> </li> </ul> <p> A way continually starts alongside one of these: </p> <ul> <li> Local changeable (like <span>world</span>). </li> <li> A function parameter. </li> <li> A function's "group parameter" (we'll see this later). </li> </ul> <p> After that start, it volition have things like: </p> <ul> <li> <span>.diameter</span> to name a associate (like above). </li> <li> <span>[]</span> to name the <i>elements</i> of a gathering (like above). </li> <li> <span>.SomeType</span> to name a union's variant. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="34">34</a> </li> <li> plus a few another options that I'll enter later. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="35">35</a> </li> </ul> <p> Every part of data has lone one owner (because sole ownership), so all entity has one path. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="36">36</a> </p> <p> So what are paths used for? </p> <p> References! </p> <p> The compiler knows what way all citation points to, and that helps uphold recollection safety. </p> </div> <div> <div> <div> <div id="note34" data-noteid="34"> <p><span>34</span></p> <p> So for example, if we have a union/enum <span>Engine</span> containing either a <span>WarpEngine</span> or a <span>ImpulseEngine</span>, the way power be <span>my_engine.WarpEngine</span>. </p> </div> <div id="note35" data-noteid="35"> <p><span>35</span></p> <p> Such as an connected group, or sub-types of a multi-typed group. More on these later! </p> </div> <div id="note36" data-noteid="36"> <p><span>36</span></p> <p> This isn't <i>strictly</i> true; objects can really be reached through multiple paths, if we use things akin connected groups. That's a entire topic for another period though. </p> </div> </div> </div> </div> </div> <div> <div> <h3 id="every-reference-knows-what-path-it-points-to"> Every citation knows what way it points to</h3> <p> For example, in this program: </p> <div> <pre><span>struct</span> <span>Entity</span> <span>{</span> <span>hp</span> <span>int</span><span>;</span> <span>}</span> <span>struct</span> <span>World</span> <span>{</span> <span>entities</span> <span>Vec</span>&lt;<span>Entity</span><span>&gt;</span><span>;</span> <span>}</span> <span>func</span> <span>main</span><span>(</span><span>)</span> <span>int</span> <span>{</span> <span>let</span> earth <span>=</span> <span>World</span><span>(</span>Vec&lt;<span>Entity</span><span>&gt;</span><span>.</span><span>new</span><span>(</span><span>)</span><span>)</span><span>;</span> world<span>.</span>entities<span>.</span><span>push</span><span>(</span><span>Entity</span><span>(</span>42<span>)</span><span>)</span><span>;</span> <span>let</span> entity_ref <span>=</span> &amp;world<span>.</span>entities<span>[</span>0<span>]</span><span>;</span> <span>}</span></pre> </div> <p> <span>entity_ref</span>'s category is <span>&amp;Entity in world.entities[]</span>. </p> <p> That method it's a citation to one of <span>world</span>'s <span>entities</span>'s elements. </p> <p> And in the example we saw before: </p> <div> <pre><span>struct</span> <span>World</span> <span>{</span> <span>entities</span> <span>Vec</span>&lt;<span>Entity</span><span>&gt;</span><span>;</span> <span>}</span> <span>func</span> <span>step</span><span>(</span><span>world</span> &amp;<span>World</span><span>,</span> <span>entity</span> <span>in</span> world<span>.</span>entities<span></span><span>[</span><span>]</span> <span>mut</span><span>)</span> <span>{</span> entity<span>.</span><span>advance</span><span>(</span><span>)</span><span>;</span> <span>let</span> collision <span>=</span> world<span>.</span><span>get_collision_for_entity</span><span>(</span>entity<span>)</span><span>;</span> entity<span>.</span><span>resolve</span><span>(</span>collision<span>)</span><span>;</span> <span>}</span></pre> </div> <p> You can see the <span>entity in world.entities[]</span>, specifying an <span>entity</span> indicator that points at one of <span>world</span>'s <span>entities</span>'s elements. </p> <p> If you cognize Rust: a way isn't really akin a lifetime. It's easier to grok whenever you think concerning them as distinct things. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="37">37</a> </p> <p> Now let's discover out why we're doing all of this. Let's see how we use paths for recollection safety! </p> </div> <div> <div> <div> <div id="note37" data-noteid="37"> <p><span>37</span></p> <p> In custom a life can be used as a extremely coarse-grained location, but a life is additional akin a extend of instructions. </p> </div> </div> </div> </div> </div> <div> <div> <h3 id="using-paths-for-memory-safety"> Using paths for recollection safety</h3> <p> The compiler uses paths to <b>detect use-after-free;</b> it detects whenever we're dereferencing a citation that is pointing at data that has already been destroyed. </p> <p> It does this alongside these two rules: </p> <ul> <li> When we modify an object, we grade any citation pointing <i>inside</i> that entity as "invalidated". </li> <li> When we try to use an "invalidated" reference, the compiler shows an error. </li> </ul> <div> <div> <p> Take a appearance at this <span>main</span> function. </p> </div> <div> <div> <pre><span>struct</span> <span>Entity</span> <span>{</span> <span>hp</span> <span>int</span><span>;</span> <span>}</span> <span>struct</span> <span>World</span> <span>{</span> <span>entities</span> <span>Vec</span>&lt;<span>Entity</span><span>&gt;</span><span>;</span> <span>}</span> <span>func</span> <span>main</span><span>(</span><span>)</span> <span>int</span> <span>{</span> <span>let</span> earth <span>=</span> <span>World</span><span>(</span>Vec&lt;<span>Entity</span><span>&gt;</span><span>.</span><span>new</span><span>(</span><span>)</span><span>)</span><span>;</span> world<span>.</span>entities<span>.</span><span>push</span><span>(</span><span>Entity</span><span>(</span>42<span>)</span><span>)</span><span>;</span> <span>let</span> first_ref <span>=</span> &amp;world<span>.</span>entities<span>[</span>0<span>]</span><span>;</span> world<span>.</span>entities <span>=</span> Vec&lt;<span>Entity</span><span>&gt;</span><span>.</span><span>new</span><span>(</span><span>)</span><span>;</span> <span>return</span> first_ref<span>.</span>hp<span>;</span> <span>}</span></pre> </div> </div> <div> <p> In it, these two things happened: </p> <ul> <li> At <span>world.entities = ...</span>, the compiler invalidated all references pointing inner it (<span>world.entities[]</span>); it invalidated <span>first_ref</span>. </li> <li> At <span>return first_ref.hp</span>, the compiler sees we're using <span>first_ref</span>, so shows an error. </li> </ul> </div> </div> <p> Note how I said: </p> <p> When we modify an object, we grade any citation pointing <i>inside</i> that entity as "invalidated". </p> <p> We don't invalidate references pointing <i>to</i> an object. We invalidate references pointing <i>inside</i> the object. </p> <div> <div> <p> Take a appearance at this <span>main</span> function. </p> </div> <div> <div> <pre><span>struct</span> <span>Ship</span> <span>{</span> <span>fuel</span> <span>int</span><span>;</span> <span>}</span> <span>func</span> <span>main</span><span>(</span><span>)</span> <span>int</span> <span>{</span> <span>let</span> vec <span>=</span> Vec&lt;<span>Ship</span><span>&gt;</span><span>.</span><span>new</span><span>(</span><span>)</span><span>;</span> vec<span>.</span><span>push</span><span>(</span><span>Ship</span><span>(</span>42<span>)</span><span>)</span><span>;</span> <span>let</span> vec_ref <span>=</span> &amp;vec<span>;</span> <span>let</span> elem_ref <span>=</span> &amp;vec<span>[</span>0<span>]</span><span>;</span> vec<span>.</span><span>push</span><span>(</span><span>Ship</span><span>(</span>73<span>)</span><span>)</span><span>;</span> vec_ref<span>.</span><span>push</span><span>(</span><span>Ship</span><span>(</span>81<span>)</span><span>)</span><span>;</span> <span>return</span> elem_ref<span>.</span>fuel<span>;</span> <span>}</span></pre> </div> </div> <div> <p> When we call <span>push</span>, that modifies the <span>vec</span>. </p> <p> That invalidates all references pointing <i>inside</i> <span>vec</span>. </p> <p> That method that <span>elem_ref</span> is invalidated (though <span>vec_ref</span> is motionless valid). </p> <p> So we can motionless use <span>vec_ref</span>, but we can't use <span>elem_ref</span>. </p> </div> </div> <p> Notice how this is all happening without describing whether a citation is mutable or not. </p> <p> Valen, however, has lone <b>one benevolent of get reference</b>. </p> <p> This can be confusing if you're coming from C++ and Rust, which the two have multiple kinds of references (C++ has <span>const</span> and non-<span>const</span>, Rust has <span>&amp;</span> and <span>&amp;mut</span>). </p> <p> In Valen, the mutability of item <b>isn't part of its type,</b> the surrounding function determines it. </p> <p> Valen does put <span>mut</span> on function parameters, but that's syntactic sugar. <span>mut</span> is not part of the parameter's type. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="38">38</a> </p> </div> <div> <div> <div> <div id="note38" data-noteid="38"> <p><span>38</span></p> <p> <span>mut</span> is part of the function signature. It's akin to how languages put <span>async</span> on the function, alternatively of on parameters. </p> </div> </div> </div> </div> </div> <div> <div> <h3 id="function-signatures-communicate-invalidations"> Function signatures communicate invalidations</h3> <p> So how did the compiler cognize that <span>push</span> modified the <span>vec</span>? </p> <p> <span>push</span> has to say so, in its signature, alongside the <span>mut</span> keyword. </p> <p> Here's <span>push</span>'s signature: </p> <div> <pre><span>func</span> <span>push</span>&lt;<span>T</span><span>&gt;</span><span>(</span><span>self</span> &amp;<span>Vec</span>&lt;<span>T</span><span>&gt;</span> <span>mut</span><span>)</span> <span>{</span> <span>}</span></pre> </div> <p> ...which is syntactic sugar for this: </p> <div> <pre><span>func</span> <span>push</span>&lt;<span>T</span><span>&gt;</span><span>(</span><span>self</span> &amp;<span>Vec</span>&lt;<span>T</span><span>&gt;</span><span>)</span> <span>mut</span><span>(</span><span>self</span><span>)</span> <span>{</span> <span>}</span></pre> </div> <p> Notice how <span>mut(self)</span> isn't part of <span>self</span>'s type. It's additional part of the <i>function.</i> </p> <p> So whenever <span>main</span> called <span>vec.push(...)</span>, <span>main</span> was passing <span>vec</span> in for <span>self</span>. </p> <p> The compiler afterward sees the <span>mut(self)</span>, knows <span>self</span> is really <span>vec</span>, so knows <span>vec</span> was <span>mut</span>ated. </p> <p> That's how it knew to invalidate item pointing <i>inside</i> <span>vec</span>. </p> <p> Here's another example: </p> <div> <pre><span>func</span> <span>step</span><span>(</span><span>world</span> &amp;<span>World</span><span>,</span> <span>entity</span> <span>in</span> world<span>.</span>entities<span></span><span>[</span><span>]</span> <span>mut</span><span>)</span> <span>{</span> entity<span>.</span><span>advance</span><span>(</span><span>)</span><span>;</span> <span>let</span> collision <span>=</span> world<span>.</span><span>get_collision_for_entity</span><span>(</span>entity<span>)</span><span>;</span> entity<span>.</span><span>resolve</span><span>(</span>collision<span>)</span><span>;</span> <span>}</span></pre> </div> <p> We're not <span>mut</span>ating the entire <span>world</span>; we're lone <span>mut</span>ating item in <span>world.entities[]</span>. </p> <p> This is fine since this won't invalidate callers' references to entities. </p> <p> For example, this <span>step_and_read</span> is calling the complete <span>step</span> function which <i>doesn't</i> invalidate the <span>entity</span>. </p> <div> <pre><span>func</span> <span>step_and_read</span><span>(</span><span>world</span> &amp;<span>World</span><span>,</span> <span>entity</span> <span>in</span> world<span>.</span>entities<span></span><span>[</span><span>]</span> <span>mut</span><span>)</span> <span>{</span> <span>step</span><span>(</span>world<span>,</span> entity<span>)</span><span>;</span> entity<span>.</span><span>read_book</span><span>(</span><span>)</span><span>;</span> <span>}</span></pre> </div> <p> And if we accomplishment the Valen compiler correct (and place LLVM), this <i>might</i> let us harness the optimizer in a way that no tongue always has before. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="39">39</a> </p> </div> <div> <div> <div> <div id="note39" data-noteid="39"> <p><span>39</span></p> <p> I conversation additional concerning this additional below, but TL;DR, if the optimizer knows that two functions lone overlap in says and not writes, afterward it can reorder them, perchance equal hoisting calculations out of a loop. </p> </div> </div> </div> </div> </div> <div> <div> <h2 id="a-twist-on-group-borrowing"> A twist on collection borrowing</h2> <p> The first collection borrowing designs included a lot of the complete (and more!). Here's the things that Valen volition be adding on top of it, to create it <i>sing.</i> </p> </div> </div> <div> <div> <h3 id="mutable-in-immutable"> Mutable-in-Immutable</h3> <p> Recall this program, anywhere we took in a <span>world</span> that was immutable <i>except</i> for its <span>entities</span> elements: </p> <div> <pre><span>struct</span> <span>World</span> <span>{</span> <span>entities</span> <span>Vec</span>&lt;<span>Entity</span><span>&gt;</span><span>;</span> <span>}</span> <span>func</span> <span>step</span><span>(</span><span>world</span> &amp;<span>World</span><span>,</span> <span>entity</span> <span>in</span> world<span>.</span>entities<span></span><span>[</span><span>]</span> <span>mut</span><span>)</span> <span>{</span> entity<span>.</span><span>advance</span><span>(</span><span>)</span><span>;</span> <span>let</span> collision <span>=</span> world<span>.</span><span>get_collision_for_entity</span><span>(</span>entity<span>)</span><span>;</span> entity<span>.</span><span>resolve</span><span>(</span>collision<span>)</span><span>;</span> <span>}</span></pre> </div> <p> We're receiving two indicator references, anywhere we can mutate through the additional particular one, and we can't mutate item exterior of it. </p> <p> Valen adds this so that we don't have to do the traditional borrow-checking form of taking in the complete earth mutably. </p> <p> This volition have a brace benefits. </p> <p> First, it could assistance alongside a program's architecture, since it helps us create <b>stronger APIs.</b> </p> <p> We can enforce that nothing in this complete function can alter any part of the <span>world</span> that we don't expect. </p> <p> I ideate that volition be particularly helpful whenever operating in a squad alongside enterprising newhires (or alongside merchandise managers who affection to throw vibe code at you). </p> <p> Second, I doubtful this characteristic could create Valen code <b>optimize better.</b> </p> <p> I won't go too deeply into it here, <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="40">40</a> but basically, whenever you provision the optimizer additional fine-grained data concerning what power alter and what won't change, it can improved acknowledge places anywhere it can rearrange code to be faster. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="41">41</a> <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="42">42</a> </p> <h3 id="temporary-uniqueness"> Temporary Uniqueness</h3> <p> One of Valen's goals is to be capable to <b>seamlessly call into Rust code</b>, as effortlessly as Kotlin calls into Java, or C++ into C. </p> <p> Of course, this volition be tricky, since collection borrowing and Rust have distinct kinds of references: </p> <ul> <li> Group borrowing allows others to alter the data that your citation is pointing at. </li> <li> In Rust, all citation is either shared (<span>&amp;</span>) or distinctive (<span>&amp;mut</span>). When you clasp a reference, nobody alternatively can alter what your citation is pointing at. </li> </ul> <p> So the inquiry that arose was: Can we rotate a collection borrowing citation into a Rust reference, temporarily? </p> <p> It turns out, yes! </p> <p> The scheme is beautiful simple. When Valen is calling Rust: </p> <ul> <li> We can hand a Valen citation into a Rust <span>&amp;mut</span> if it's the <i>only</i> citation that can attain that data during that call. </li> <li> If we have multiple Valen references that can item to the identical object, they can lone be handed into Rust <span>&amp;</span> references. </li> </ul> <p> I conversation a small bit concerning this in <a href="https://en.mycoding.id/category/technology" target="_blank">Memory Safety Across the Valen/Rust Boundary</a>, inspect it out! </p> <p> This impermanent conversion <i>could</i> develop into a broader characteristic one day. We desire Valen to assistance item akin Rust's <span>Vec&lt;&amp;mut Ship&gt;</span>, anywhere all component is a distinctive reference, and collection borrowing doesn't have that. </p> <p> I doubtful Valen can have item akin a "unique group", e.g. a <span>unique(world.ships[])</span> note on a function, which would forestall making new references pointing at that part of the hierarchy. </p> <p> This aspect needs additional idea though. One of Valen's top strengths is that it lone has one benevolent of get reference... so introducing a second "unique" citation requires several careful consideration. </p> </div> <div> <div> <div> <div id="note40" data-noteid="40"> <p><span>40</span></p> <p> Ask me on Mastodon or Bluesky and I'm blessed to explain! </p> </div> <div id="note41" data-noteid="41"> <p><span>41</span></p> <p> This power necessitate patches to LLVM to create it improved capable to harness the information. It tends to think in conditions of <span>noalias</span>, not in conditions of "read-only". Tricky, but possible! </p> </div> <div id="note42" data-noteid="42"> <p><span>42</span></p> <p> This won't necessarily average Valen volition be faster than C++, Rust, etc. I <i>think</i> you can do additional refactoring or use <span>unsafe</span> in those languages to get equal speedups. Valen's chief advantage current would be in ergonomics and flexibility, not necessarily speed. </p> </div> </div> </div> </div> </div> <div> <div> <h3 id="wildcard-descendant-paths"> Wildcard Descendant Paths</h3> <p> This is another characteristic that helps Valen call into Rust code. </p> <p> While trying to get the <a href="https://en.mycoding.id/category/technology" target="_blank">Golden Spike</a> to work, I ran into a conundrum. </p> <p> When Valen calls a Rust function that returns a citation (like <span>-&gt; &amp;Gem</span> below), how does it cognize <i>where</i> that citation points? </p> <p> For example: </p> <div> <pre><span>impl</span> <span>Chest</span> <span>{</span> <span>pub</span> <span>fn</span> <span>gem</span><span>(</span><span>&amp;</span><span>self</span><span>)</span> -&gt; <span>&amp;</span><span>Gem</span> <span>{</span> <span>&amp;</span><span>self</span><span>.</span>gem <span>}</span> <span>}</span></pre> </div> <p> Valen was confused by this, since Valen likes to cognize the way for all reference. </p> <p> In Valen's ideal world, it would see the complete akin this: </p> <div> <pre><span>func</span> <span>gem</span><span>(</span><span>self</span> &amp;<span>Chest</span><span>)</span> -&gt; &amp;<span>Gem</span> <span>in</span> <span>self</span><span>.</span><span>gem</span> <span>{</span> &amp;<span>self</span><span>.</span>gem <span>}</span></pre> </div> <p> But alas! Valen can't infer the <span>in self.gem</span> from the Rust code. </p> <p> But if you zoom out a bit, the Rust code is trying to province that it's returning item to <b>"somewhere inside"</b> <span>self</span>. </p> <p> So, let's add that idea to Valen! </p> <p> Valen now interprets the complete Rust function as if it were this: </p> <div> <pre><span>func</span> <span>gem</span><span>(</span><span>self</span> &amp;<span>Chest</span><span>)</span> -&gt; &amp;<span>Gem</span> <span>in</span> <span>self</span><span>.</span><span>gem</span>... <span>{</span> &amp;<span>self</span><span>.</span>gem <span>}</span></pre> </div> <p> The <span>in self.gem...</span> method "points <i>somewhere inside</i> <span>self.gem</span>". </p> <p> This is called a <b>wildcard descendant path</b>, and it certainly needs a improved name. </p> <p> I depict this a small additional in <a href="https://en.mycoding.id/category/technology" target="_blank">Memory Safety Across the Valen/Rust Boundary</a>. </p> <p> I doubtful this volition be helpful for additional than fair Rust interop. It could erase inner particulars from signatures, and create archive APIs a small additional elastic and forward-compatible. However, we should observe out current too, since that identical intent can be served by another features in theory. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="43">43</a> </p> </div> <div> <div> <div> <div id="note43" data-noteid="43"> <p><span>43</span></p> <p> For example, we could have a category publically re-export a personal collection under a community name. Something akin an "associated group", so to speak. </p> </div> </div> </div> </div> </div> <div> <div> <h2 id="how-this-all-fits-in"> How this all fits in</h2> <p> Above, I mentioned the "memory safety holy grail", and the <b>three challenges</b> that we need to resolve to discover it: </p> <ul> <li> Can we create a <i>more relaxed</i> get checker? </li> <li> Can we create a get checker peruse <i>more complex data?</i> </li> <li> Can we create those two systems activity together at the identical time? </li> </ul> <p> Valen's get checker is the key to #1: it lets us have multiple references to any object, and lets us peruse and compose through any of them. </p> <p> #2 and #3 volition be in another article (since this article is getting massive!) but I can't oppose giving a <b>quick preview of what it's all about.</b> </p> <p> These are my hasty scribbles to try and explain it in fractional a page. Nobody should try to comprehend it. Quick, <a href="https://en.mycoding.id/category/technology" target="_blank">jump ahead</a>! </p> <p> Recall this example from above: </p> <div> <pre><span>struct</span> <span>World</span> <span>{</span> <span>entities</span> <span>Vec</span>&lt;<span>Entity</span><span>&gt;</span><span>;</span> <span>}</span> <span>func</span> <span>step</span><span>(</span><span>world</span> &amp;<span>World</span><span>,</span> <span>entity</span> <span>in</span> world<span>.</span>entities<span></span><span>[</span><span>]</span> <span>mut</span><span>)</span> <span>{</span> <span>}</span></pre> </div> <p> I desire users to have the choice of using citation counted <span>class</span>es whenever they don't desire to define the paths. Like this: </p> <div> <pre><span>class</span> <span>World</span> <span>{</span> <span>entities</span> <span>Vec</span>&lt;<span>Entity</span><span>&gt;</span><span>;</span> <span>}</span> <span>func</span> <span>step</span><span>(</span><span>world</span> <span>World</span><span>,</span> <span>entity</span> <span>Entity</span><span>)</span> <span>mut</span> <span>{</span> <span>}</span></pre> </div> <p> It would be amazing to provision the users the liberty to simplify akin that. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="44">44</a> </p> <p> Of course, blending citation counting and borrowing is <b>infamously difficult.</b> <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="45">45</a> </p> <p> The answer lies in a idea test from 2023 I called <a href="https://en.mycoding.id/category/technology" target="_blank">Arrrlang</a>. Its name was a joke, but it had an engaging premise: portray the heap as N earth arrays, anywhere N is the figure of types in your program. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="46">46</a> </p> <p> It occurred to me: collection borrowing <i>understands</i> arrays. And citation counting can be idea of as N arrays, all having references to all other. </p> <p> If we put those two facts together, afterward the key understanding emerges: if we <b>describe reference-counted classes to a get checker as if it's a bunch of arrays,</b> afterward we power be capable to have get references into them in a memory-safe way. </p> <p> A compiler doesn't need to <i>actually compile</i> citation counted objects to an array, of course. <b>But it <i>can</i> depict it that way to the get checker,</b> using group-borrowing terms. </p> <p> If you do it that way, abruptly a lot of problems disappear, and it clarifies exactly what construction blocks we need to add to collection borrowing: </p> <ul> <li> A "multi-typed group", akin to a Vale region, as opposed to vanilla collection borrowing anywhere all collection needs a type. <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="47">47</a> <a href="https://en.mycoding.id/category/technology" target="_blank" data-noteid="48">48</a> </li> <li> A "run-time" group. References into the run-time collection don't get invalidated. </li> </ul> <p> Like I said, none of this volition create sense. Keep an eye out for the next article that talks concerning all this! </p> </div> <div> <div> <div> <div id="note44" data-noteid="44"> <p><span>44</span></p> <p> Reference counting has a lot small restrictions (e.g. references don't need to be temporary, akin in get checking), which method you unlock a lot additional patterns (observers, intrusive connected lists, etc). It additionally method nobody can liberated an entity during you're accessing it, which is most frequently a fine thing. </p> <p> But it depends on your perspective. Reference counting occasionally has problems alongside cycles, and it's not extremely compatible alongside linear types. For most things, I akin citation counting. For the additional complex parts, or parts that need speed, I akin borrowing. </p> <p> I think it's fine for a tongue to assistance both. </p> </div> <div id="note45" data-noteid="45"> <p><span>45</span></p> <p> It's difficult for all the identical reasons as why <span>Rc&lt;RefCell&lt;T&gt;&gt;</span> has that <span>RefCell</span> in there. </p> </div> <div id="note46" data-noteid="46"> <p><span>46</span></p> <p> It was an example of a "zero-cost" tongue that really had several cost, in the form of ID-chasing and limits checking. </p> </div> <div id="note47" data-noteid="47"> <p><span>47</span></p> <p> This volition additionally be helpful for enums! </p> </div> <div id="note48" data-noteid="48"> <p><span>48</span></p> <p> Fun fact, this is how they portray heaps under the hood in <a href="https://en.mycoding.id/category/technology" target="_blank">Iris</a>, which was used to formally verify that parts of Rust are safe. </p> </div> </div> </div> </div> </div> <div> <div> <h2 id="thats-all-for-now"> That's all for now</h2> <p> Thanks for reading! </p> <p> In the next few articles, I'll explain additional concerning how we'll blend in citation counting and generational references, and how Valen's collection get checker is implemented. </p> <p> This is fair the tip of the iceberg, so remain tuned by subscribing to my <a href="https://en.mycoding.id/category/technology" target="_blank">RSS feed</a>, <a href="https://en.mycoding.id/category/technology" target="_blank">r/valen</a>, or joining the <a href="https://en.mycoding.id/category/technology" target="_blank">Valen discord</a>. And prosecute me on <a href="https://en.mycoding.id/category/technology" target="_blank">Bluesky</a> and <a href="https://en.mycoding.id/category/technology" target="_blank">Mastodon</a>! </p> <p> Cheers, </p> <p> - Evan Ovadia </p> </div> </div> <div> <div> <h2 id="appendix-the-type-stability-exception"> Appendix: The type-stability exception</h2> <p> This part isn't implemented in Valen yet. Stay tuned! </p> <p> Group borrowing can additionally be astute adequate to cognize that if you say <span>my_vec.push(42)</span>, afterward equal although <span>push</span> says <span>mut(self)</span>, it won't invalidate pointers to <span>my_vec.size</span>. </p> <p> This makes awareness since no matter how anyone modifies a <span>my_vec</span> (which is a <span>Vec</span>), the item at <span>my_vec.size</span> volition motionless be there. Nobody can modify a <span>Vec</span>'s <span>size</span> to be item another than an integer. In another words, it's "type-stable". </p> <p> Generalizing a bit, collection borrowing volition never invalidate any type-stable data. </p> <p> It won't invalidate pointers to any contained type-stable things (primitives, structs, or fixed-size arrays), or any type-stable things inner them. It lone invalidates pointers pointing inner any type-unstable things (enums' contents, pointer's pointee). </p> <p> For example, in this program, nobody modifying the contents of <span>Level</span> can invalidate your citation to its <span>Terrain</span>. </p> <div> <pre><span>struct</span> <span>Level</span> <span>{</span> <span>terrain</span> <span>Terrain</span><span>;</span> <span>entities</span> <span>HashMap</span>&lt;<span>EntityId</span><span>,</span> <span>Entity</span><span>&gt;</span><span>;</span> <span>location_to_entity</span> <span>HashMap</span>&lt;<span>Location</span><span>,</span> <span>EntityId</span><span>&gt;</span><span>;</span> <span>}</span> <span>func</span> <span>add_entity</span><span>(</span><span>level</span> &amp;<span>Level</span> <span>mut</span><span>,</span> <span>entity</span> <span>Entity</span><span>)</span> <span>{</span> level<span>.</span>location_to_entity<span>.</span><span>insert</span><span>(</span>entity<span>.</span>loc<span>,</span> entity<span>.</span>id<span>)</span><span>;</span> level<span>.</span>entities<span>.</span><span>insert</span><span>(</span>entity<span>.</span>id<span>,</span> entity<span>)</span><span>;</span> <span>}</span> <span>func</span> <span>main</span><span>(</span><span>)</span> <span>{</span> <span>let</span> flat <span>=</span> <span>;</span> <span>let</span> terrain_ref <span>=</span> &amp;level<span>.</span>terrain<span>;</span> level<span>.</span><span>add_entity</span><span>(</span><span>Entity</span><span>(</span>1<span>,</span> <span>Loc</span><span>(</span>4<span>,</span> 5<span>)</span><span>,</span> 42<span>)</span><span>)</span><span>;</span> <span>print</span><span>(</span>terrain_ref<span>.</span>tiles<span>.</span><span>len</span><span>(</span><span>)</span><span>)</span><span>;</span> <span>}</span></pre> </div> </div> </div> </div> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/valen-s-memory-safety-a-new-kind-of-borrow-checking-72057</guid> <pubDate>Sun, 11 Oct 2026 13:06:22 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[I'm having my third child at 39. It's a different experience from when I was pregnant with my other 2 boys.]]></title> <description><![CDATA[I'm having my third child at 39. It's a different experience from when I was pregnant with my other 2 boys.. I was expecting alongside my archetypal two kids at 29 and 31. Now, I'm having a third kid at 39, and this gestation is different.]]></description> <media:thumbnail url="https://i.insider.com/6ac7d39842403ad8039a4b8a?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/i-m-having-my-third-child-at-39-it-s-a-different-experience-from-when-i-was-pregnant-with-my-other-2-boys-72054</link> <content:encoded><![CDATA[<div data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/6ac7d384301bb0551f493ef0?width=2000&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6ac7d384301bb0551f493ef0?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6ac7d384301bb0551f493ef0?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6ac7d384301bb0551f493ef0?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6ac7d384301bb0551f493ef0?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/6ac7d384301bb0551f493ef0?width=1300&amp;format=jpeg&amp;auto=webp 1300w, https://i.insider.com/6ac7d384301bb0551f493ef0?width=2000&amp;format=jpeg&amp;auto=webp 2000w" sizes=" 1280px) 900px" alt="composite image, on the remaining is the author alongside her two boys whenever they were young, and on the correct she is taking a mirror selfie during expecting at 39" decoding="sync"> </p></div> <span> <span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <figcaption e-name="image-caption"> <span>The author is expecting for the third period at 39.</span> <span> <span e-name="image-source" itemprop="creditText">Courtesy of Bethaney Phillips</span> </span> </figcaption> </span> </span></figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>I'm having my third kid at 39. It's a distinct cognition from whenever I was expecting alongside my another 2 boys.</p><p>My 40th anniversary is in April, and my third son is due fair two months before my <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">milestone age</a>. It's a fact that came as a bigger astonishment to me than anyone else.</p><p>A few days following a missed duration and continual cramping, I asked my hubby to go buy a test. It lit up alongside twice lines so quickly that, in my shock, I wondered if there were multiple babies. Later, I learned I was hosting fair one new babe.</p><h2 id="22b29076-fb54-4d75-b835-bb9a87a74338" data-toc-id="22b29076-fb54-4d75-b835-bb9a87a74338">Things are distinct this time</h2><p>The <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">pregnancy was unexpected</a>, but not unwelcome. After multiple miscarriages, apt because of my bicornuate (or heart-shaped) uterus, I idea our days of having babies were over. However, this one established a viable place to clasp onto, and he's now complete half-grown, having fair completed his anatomy scan alongside nonstop movement.</p><p>Unlike my <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">earlier pregnancies</a>, this one is taking a greater toll. At five months pregnant, I'm additional tired and nauseous, and my belly has gotten bigger faster. That meant before acidic reflux, additional washroom breaks, additional months of waddling, and all the difficulties that arrive alongside pregnancy: it's a procedure to remain up, difficult to curve over, and I'm fair plain slow. Every day, the words, "And that's Uncle Joe, he's a moving kinda slow" from Petticoat Junction perform in my head. Not dissimilar Uncle Joe, I'm moving extremely gradually at all times.</p><p>And that's alongside <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">extra sleep</a> &mdash; following getting my sons (7 and 9) to sleep all night, I'm in bed correct rearward them, normally wrecked out by 8:30 or 9. This build is doing a lot of growing, and it's exhausted.</p><p>Much to my husband's chagrin, there was no "fun period" of this pregnancy. I went direct from changeless nausea to emotion uncomfortable. This is apt because of it being a third advanced pregnancy. Despite lone gaining 15 pounds thus far, I'm abbreviated alongside a abbreviated torso, so whenever the baby grows, I develop alongside alongside him.</p><p>One item that has made existence <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">easier this go-around</a> is that my children are older now. Now, I have two helpers who can choice things up, fetch drinks, or obtain out the trash. At home, they do most of my bending and gathering and are blessed to help; it's a far cry from the first days of having two under 2.</p><h2 id="69b127aa-2e2f-4b4a-9862-a0533d96b375" data-toc-id="69b127aa-2e2f-4b4a-9862-a0533d96b375">I have a spotless invoice of health, although we'll be doing additional common monitoring</h2><p>My doctor noted that 35-39 is a "gray area" for the <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">advanced maternal age</a> protocol. Though chromosomal and cistron type lifeblood tests are recommended following 35, my coverage disagreed, opting not to shield the recommended prenatal lifeblood tests because of my heritage. Thankfully, we weren't on the hook for the complete $12,154 invoice because of the company's earnings necessity guidelines &mdash; families up to 400% of the national poorness flat are eligible for dense discounts &mdash; but my coverage rant is beside the point.</p> <p>The tests were done, and all came rear alongside fine news. Considering the annual addition in hazard to pregnancies in one's 30s, it came as a huge relief. There volition be a item anywhere my doctor visits addition &mdash; to date, I've been seen formerly a month, but following 32 weeks, that jumps to formerly a week for fetal monitoring and lifeblood force checks. Medically, this is the lone alter from my former pregnancies I've seen so far, gratitude to an alternatively spotless invoice of health. Hopefully that continues to be the case, but there's no denying this gestation is taking a toll on my body.</p><p>Pregnancy is a young person's game, but thankfully, I'm complete midway through. In the meantime, I'll continue to sleep and rest, assisting us the two through a fit pregnancy.</p> </div> <p> <h2> Read next </h2> </p>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/i-m-having-my-third-child-at-39-it-s-a-different-experience-from-when-i-was-pregnant-with-my-other-2-boys-72054</guid> <pubDate>Sun, 11 Oct 2026 13:04:01 +0700</pubDate> <author><![CDATA[support@mycoding.id (Bethaney Phillips)]]></author> </item> <item> <title><![CDATA[Kenapa Serverless Jadi Masa Depan Cloud Computing]]></title> <description><![CDATA[Kenapa Serverless Jadi Masa Depan Cloud Computing. Serverless mengubah metode aplikasi modern dibangun dan dijalankan. Dalam video ini, Anda akan memahami sepertiapa arsitektur Serverless dan jasa seperti Google...]]></description> <media:thumbnail url="https://i1.ytimg.com/vi/o-5uJ9aLpJk/maxresdefault.jpg"/> <category><![CDATA[Indonesian]]></category> <link>https://en.mycoding.id/kenapa-serverless-jadi-masa-depan-cloud-computing-72048</link> <content:encoded><![CDATA[<p class="embed-responsive embed-responsive-16by9 post-embed"><iframe width="560" height="315" aria-label="Preview" class="embed-responsive-item" src="https://www.youtube.com/embed/o-5uJ9aLpJk?autoplay=1&amp;mute=1&amp;playsinline=1&amp;rel=0" title="YouTube video player" frameborder="0" allow="autoplay; accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p><h2>Kenapa Serverless Jadi Masa Depan Cloud Computing</h2><p>Serverless mengubah metode aplikasi modern dibangun dan dijalankan. Dalam video ini, Anda akan memahami sepertiapa arsitektur Serverless dan jasa seperti Google Cloud Run memungkinkan aplikasi berjalan tanpa mesti mengelola server secara langsung, dengan skalabilitas otomatis dan model biaya yang lebih efisien. Pembahasan mencakup konsep alas serverless, deployment berbasis container, integrasi dengan jasa cloud, serta karena kenapa pendekatan ini banyak digunakan untuk microservices, API, dan aplikasi modern. Setelah memahami konsep ini, Anda akan memiliki deskripsi yang lebih jelas tentang sepertiapa membangun aplikasi yang lebih fleksibel, efisien, dan siap berkembang di era cloud computing. Playlist video terkait: ▪ https://www.youtube.com/playlist?list=PLZGgeqmsm32s ▪ https://www.youtube.com/playlist?list=PLZomBNpDl3vc ▪ https://www.youtube.com/playlist?list=PLE5VyXMZkzb8 PEMBAHASAN MATERI Playlist Materi Ilmu Komputer berisi kumpulan video pembelajaran, tutorial, klarifikasi konsep, studi kasus, demo, dan bahasan komplit seputar beragam sektor dalam ilmu komputer. Materi yang disajikan mencakup alas hingga tingkat lanjut, mulai dari pemrograman, pengelolaan database, jaringan komputer, keamanan siber, mekanisme operasi, pengembangan alat lunak, arsitektur komputer, hingga beragam teknologi yang digunakan dalam bumi komputasi modern. Temukan bahasan mengenai komputer dan pemrograman, algoritma, struktur data, PHP, JavaScript, Python, Laravel, MySQL, PostgreSQL, API, rekayasa alat lunak, database, jaringan komputer, pengelolaan server, cloud computing, virtualisasi, Linux, Windows Server, keamanan jaringan, cyber security, ethical hacking, kriptografi, keamanan aplikasi, DevOps, Internet of Things (IoT), kecerdasan buatan (AI), machine learning, serta beragam konsep, teknologi, dan praktik terbaik di sektor ilmu komputer. Playlist ini cocok bagi pelajar, mahasiswa, programmer, web developer, software engineer, pengelola sistem, ahli IT, maupun siapa saja yang mau mempelajari dan memperdalam wawasan di bumi ilmu komputer secara menyeluruh. CONTACT US ▪ Email support@mycoding.id ▪ WhatsApp https://wa.me/6281274309663 ▪ Telegram https://t.me/mycodingxd OFFICIAL LINKS ▪ Web https://mycoding.id ▪ Blog https://blog.mycoding.id ▪ News https://en.mycoding.id ▪ Apps https://play.google.com/store/apps/dev?id=5237501547073493079 SOCIAL MEDIA ▪ https://linkedin.com/company/mycodingxd ▪ https://facebook.com/mycodingxd ▪ https://instagram.com/mycodingxd ▪ https://tiktok.com/@mycodingxd ▪ https://twitter.com/mycoding_xd ▪ https://pinterest.com/mycoding_xd CHANNEL LINKS ▪ YouTube https://safelink.asia/youtube ▪ DailyMotion https://safelink.asia/dailymotion ▪ WhatsApp https://safelink.asia/whatsapp ▪ Telegram https://safelink.asia/telegram Powered by https://linkedin.com/company/401XDGroup #DataScience #ArtificialIntelligence #CyberSecurity #Networking #Programming #Database</p>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/kenapa-serverless-jadi-masa-depan-cloud-computing-72048</guid> <pubDate>Sun, 11 Oct 2026 13:00:03 +0700</pubDate> <author><![CDATA[support@mycoding.id (Mc Project)]]></author> </item> <item> <title><![CDATA[I paid people to try and follow my README]]></title> <description><![CDATA[I paid people to try and follow my README. Comments]]></description> <media:thumbnail url="https://shkspr.mobi/blog/wp-content/uploads/2020/01/Storm-Trooper-Chocolate-Money.jpg"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/i-paid-people-to-try-and-follow-my-readme-72058</link> <content:encoded><![CDATA[<div itemprop="articleBody"> <p>Developers suck at penning documentation. We akin to say RTFM but frequently there ain't no FM to R. At finest we have a half-arsed gathering of notes, several obsolete tips, and a nexus to a desolate forum complete of group asking the identical questions again and again. That's no way to treat our users.</p> <p>I na&iuml;vely accept there's a improved way. As I've written before, you should sit downward and <a href="https://en.mycoding.id/category/technology" target="_blank"><em>actually</em> test your readme</a>. Spin up a caller Virtual Machine, go through what you've written, and see if it makes sense.</p> <p>But it is <em>really</em> difficult to disregard your own biases. Of way you cognize that certain commands necessitate sudo and evidently whenever you wrote -foo you meant --foo and everyone knows that you have to reboot afterwards.</p> <p>How do you get rid of those biases? I paid people!</p> <p>As part of my <a href="https://en.mycoding.id/category/technology" target="_blank">NLnet aid use for ActivityBot</a>, I stated I wanted to test the instal cognition alongside genuine users and I was prepared to pay them &euro;25 for an hr of their time. I stuck out the call on Mastodon, gathered a few people, and had a video call alongside them.</p> <p>The format was simple. I explained that I was looking for feedback on the first-run experience. I knew that it wasn't ideal and actively wanted constructive criticism. I asked the unpaid to portion their display and, crucially, to conversation aloud. Tell me what they were doing. What they didn't understand, what confused them, what delighted them, what disappointed them, etc.</p> <p>I took notes by hand (fuck feeding the machine) and spent multiple hours being told what incorrect assumptions I'd made.</p> <p>Amongst the highlights I discovered were:</p> <ul> <li>The nexus to the demo tool was wrong.</li> <li>Some group peruse a README in the terminal.</li> <li>What does it really average to rename a file?</li> <li>How do you rename a hidden file?</li> <li>Should a demo tool be accessible on the web or fair the user's local machine?</li> <li>Why does several content explicitly need to be quoted and several not?</li> <li>My jokes aren't comic and are actively confusing.</li> <li>Some of the specialized terminology needed explaining.</li> <li>The ordering of the distinct sections was confusing.</li> <li>I hadn't really explained what the application would do.</li> <li>A entire division which was technically engaging to me was utterly confusing to everyone else.</li> <li>Not all web servers use permissions in the identical way.</li> </ul> <p>And on it went!</p> <p>After all meeting I updated the README according to what group established difficult, afterward I re-tested it alongside the next person.</p> <p>In total, I paid out about &euro;150 to have a bunch of group criticise me to my face. Hey, cheaper than therapy, right?</p> <p>I cognize person is going to say "why not fair ask an LLM to simulate a range of users?" The answer is extremely uncomplicated - I desire to conversation to genuine people. People are brilliant! They can create you laugh, you can see their cat whenever it wanders on to the call, they bring a distinctive viewpoint to the problem, and they're really blessed whenever you provision them a &euro;25 voucher. Some volition gladly do it for liberated and create <em>you</em> happy!</p> <p>When I was doing specialized penning for GOV.UK, all my beautiful prose was stated a second-eye by another human. They eviscerated all my flowery phrases and turned the document into item additional readable. They were the ones who caught the mistakes that no enchantment chequer could. They were capable to have a appropriate conversation alongside me. More importantly, I could <em>hear</em> the frustration in their sound - that's the item which lets you cognize a error needs to be corrected.</p> <p>I don't assertion that <a href="https://en.mycoding.id/category/technology" target="_blank">ActivityBot's README</a> is now ideal - far from it - but it is now demonstrably easier to follow. Developers need to conversation to <em>real</em> people. You don't have to pay them if you can't oversee it - but discover a few group who volition conversation aloud during they try to prosecute your instructions. I justify you that your README volition rotate into much improved for it.</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/i-paid-people-to-try-and-follow-my-readme-72058</guid> <pubDate>Sun, 11 Oct 2026 12:47:29 +0700</pubDate> <author><![CDATA[support@mycoding.id (Adi Gunawan)]]></author> </item> <item> <title><![CDATA[My friends use AI regularly, but I refuse to. I'm learning to keep my beliefs and opinions about it to myself.]]></title> <description><![CDATA[My friends use AI regularly, but I refuse to. I'm learning to keep my beliefs and opinions about it to myself.. I refuse to use AI, but my allies are continually pushing me to try it. It has created several uncomfortable situations, but I try not to portion my opinions.]]></description> <media:thumbnail url="https://i.insider.com/6ac7f524301bb0551f49400f?width=1200&amp;format=jpeg"/> <category><![CDATA[Business]]></category> <link>https://en.mycoding.id/my-friends-use-ai-regularly-but-i-refuse-to-i-m-learning-to-keep-my-beliefs-and-opinions-about-it-to-myself-72042</link> <content:encoded><![CDATA[<div data-component-type="post-hero" data-load-strategy="exclude"> <figure data-type="img" e-name="image-figure-image" data-media-container="image" itemscope itemtype="https://schema.org/ImageObject"> <div> <p><img src="https://i.insider.com/6ac7f50c42403ad8039a4cc8?width=2000&amp;format=jpeg&amp;auto=webp" srcset="https://i.insider.com/6ac7f50c42403ad8039a4cc8?width=400&amp;format=jpeg&amp;auto=webp 400w, https://i.insider.com/6ac7f50c42403ad8039a4cc8?width=500&amp;format=jpeg&amp;auto=webp 500w, https://i.insider.com/6ac7f50c42403ad8039a4cc8?width=700&amp;format=jpeg&amp;auto=webp 700w, https://i.insider.com/6ac7f50c42403ad8039a4cc8?width=1000&amp;format=jpeg&amp;auto=webp 1000w, https://i.insider.com/6ac7f50c42403ad8039a4cc8?width=1300&amp;format=jpeg&amp;auto=webp 1300w, https://i.insider.com/6ac7f50c42403ad8039a4cc8?width=2000&amp;format=jpeg&amp;auto=webp 2000w" sizes=" 1280px) 900px" alt="Person wearing glasses plant on a laptop at a wooden array beside ample sunlit windows." decoding="sync"> </p></div> <span> <span> <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewbox="0 0 24 24"> <path fill="currentColor" fill-rule="evenodd" d="m4.56 18.5 7.486-7.72 7.394 7.626 2.56-2.64L12.046 5.5 2 15.86l2.56 2.64Z"></path> </svg> <figcaption e-name="image-caption"> <span>The author refuses to use AI.</span> <span> <span e-name="image-source" itemprop="creditText">Courtesy of Ashley Archambault</span> </span> </figcaption> </span> </span></figure> </div> <div data-component-type="image-modal" data-load-strategy="lazy"> <p>My archetypal true encounter alongside AI was at a <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">teacher training</a> concerning two years ago, anywhere the goal was to display the distinct ways AI could preserve teachers' time.</p><p>My reply to using AI to scheme my next instruction scheme was not positive. I admittedly saw the comfort in stating your lesson's goal and yielding a complete instruction scheme in seconds. It was tempting to provision it a try, but all I could think concerning was how I wouldn't equal cognize how to instruct without designing my own instruction plans.</p><p>I afterward decided to ask AI for an age-appropriate <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">chore chart</a> for my 10-year-old son at the time. It was the one item in my existence that I could think of that I really needed assistance with. The catalog AI gave me was adequate, but I knew I would never citation it. It felt chilly and generic.</p><p>I decided afterward not to use AI anymore; I desire I could say the identical for my friends.</p><h2 id="5ffba054-9bb4-44f8-baf1-e44e588204c2" data-toc-id="5ffba054-9bb4-44f8-baf1-e44e588204c2"><strong>I awareness equal force to commencement using AI</strong></h2><p>All my near allies use AI regularly to do everything from designing their <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">weekly meal plans</a> to scheduling out their complete weeks. They rave concerning how brilliant and helpful it is.</p><p><a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">Getting on commission alongside AI</a> is nearly starting to awareness akin equal pressure.<strong> </strong>I do acknowledge that I cannot entirely oppose scientific change, but choosing to do my own item alternatively of using AI is my choice correct now.</p><p>What makes me most uncomfortable is emotion akin I'm being interrogated concerning why I'm choosing not to use it.</p><p>I'd affection to remain on the rooftops and cry concerning why I don't desire to use AI, but since I affection my friends, I don't desire to condemn them and their choices.</p><h2 id="df2d0ea0-bfd7-4abf-b253-7750456dec69" data-toc-id="df2d0ea0-bfd7-4abf-b253-7750456dec69"><strong>Because of a fine friend, AI did me a big favor once</strong></h2><p>One of my allies talked me out of a mediocre haircut decision by <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">asking ChatGPT</a> to alter a photo she had of me alongside the haircut.</p> <p>It was not a fine look, and in this instance, a companion used AI to preserve me from regretting a rash haircut decision and many years of awkwardly expanding my tress out. Still, this one test wasn't adequate to lure me to AI use in my mundane life.</p><p>While I do my finest to assistance and hype up my friends, I create a item of telling my girlfriends that I favor their untouched, first photos. And it's the truth. I explain that I affection seeing all the imperfections, and that the unfiltered type of them is the one I discover additional beautiful.</p><p>In this way, I awareness akin I can motionless province my opinions concerning AI during showing my affection and regard for them simultaneously.</p><h2 id="135b1bb6-ea2c-4484-8ff0-28537b10e1ec" data-toc-id="135b1bb6-ea2c-4484-8ff0-28537b10e1ec"><strong>I now desire to be additional thoughtful whenever sharing my opinions</strong></h2><p>I think it's been a blessing in disguise to be so near to group using AI since it's forced me to study how to communicate my feelings concerning it in a nonconfrontational way.</p><p>I power have <a href="https://en.mycoding.id/category/business" target="_blank" data-track-click='&quot;bi_value_unassigned&quot;}' rel="">strong opinions</a> concerning the technology, but that doesn't average one of my finest allies needs a address from me for asking ChatGPT to display her how to add additional macromolecule to her diet. I'd fairly hear to her inform me excitedly concerning the week of dinners she's looking onward to since I fair affection listening to her.</p><p>Whether or not I'm using AI in my day-to-day existence is irrelevant to our companionship unless she asks for my straightforward opinion on it.</p><p>What's more, not wanting to disrespect my friends' decisions to use AI has helped me communicate my own feelings additional thoughtfully, taking everyone's feelings into account. It doesn't average I concur alongside it or that I'm going to commencement using it.</p><p>I'm motionless beautiful resistant to the technology, but I'm equal additional resistant to making anyone who uses it awareness bad concerning it.</p> </div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/my-friends-use-ai-regularly-but-i-refuse-to-i-m-learning-to-keep-my-beliefs-and-opinions-about-it-to-myself-72042</guid> <pubDate>Sun, 11 Oct 2026 12:47:01 +0700</pubDate> <author><![CDATA[support@mycoding.id (Ashley Archambault)]]></author> </item> <item> <title><![CDATA[AI is creating a 'human premium' for art created by people]]></title> <description><![CDATA[AI is creating a 'human premium' for art created by people. Comments]]></description> <media:thumbnail url="https://ichef.bbci.co.uk/news/1024/branded_news/6fb8/live/8086eea0-c3cb-11f1-a64c-550be9e3c66b.jpg"/> <category><![CDATA[Technology]]></category> <link>https://en.mycoding.id/ai-is-creating-a-human-premium-for-art-created-by-people-72047</link> <content:encoded><![CDATA[<div id="__next"><div><div><div data-component="byline-block"><div><div><div data-testid="byline"><p>13 hours ago</p><p><span data-testid="byline-contributors"><div data-testid="byline-contributors-contributor-0"><p><span><img src="https://static.files.bbci.co.uk/bbcdotcom/web/20261005-153342-40cbc1e8b4-web-3.23.0-2/grey-placeholder.png" aria-label="image unavailable"><img sizes="8vw" srcset="https://ichef.bbci.co.uk/news/240/cpsprodpb/dd76/live/b9d8db10-c3c0-11f1-bc2e-018d645d8d21.png.webp 240w,https://ichef.bbci.co.uk/news/320/cpsprodpb/dd76/live/b9d8db10-c3c0-11f1-bc2e-018d645d8d21.png.webp 320w,https://ichef.bbci.co.uk/news/480/cpsprodpb/dd76/live/b9d8db10-c3c0-11f1-bc2e-018d645d8d21.png.webp 480w,https://ichef.bbci.co.uk/news/640/cpsprodpb/dd76/live/b9d8db10-c3c0-11f1-bc2e-018d645d8d21.png.webp 640w,https://ichef.bbci.co.uk/news/800/cpsprodpb/dd76/live/b9d8db10-c3c0-11f1-bc2e-018d645d8d21.png.webp 800w,https://ichef.bbci.co.uk/news/1024/cpsprodpb/dd76/live/b9d8db10-c3c0-11f1-bc2e-018d645d8d21.png.webp 1024w,https://ichef.bbci.co.uk/news/1536/cpsprodpb/dd76/live/b9d8db10-c3c0-11f1-bc2e-018d645d8d21.png.webp 1536w" src="https://ichef.bbci.co.uk/news/1536/cpsprodpb/dd76/live/b9d8db10-c3c0-11f1-bc2e-018d645d8d21.png.webp" loading="lazy" alt="Ros Atkins overview image"></span></p><p><span>Ros Atkins</span><span data-testid="byline-contributors-contributor-0-role-location">Presenter of 'The Value Crisis'</span></p></div></span></p></div></div></div></div></div><div><div data-component="image-block"><figure><div><p><img src="https://static.files.bbci.co.uk/bbcdotcom/web/20261005-153342-40cbc1e8b4-web-3.23.0-2/grey-placeholder.png" aria-label="image unavailable"><img sizes=" 1008px) 66vw, 96vw" srcset="https://ichef.bbci.co.uk/news/240/cpsprodpb/2a51/live/5a354ce0-c3dc-11f1-bc2e-018d645d8d21.jpg.webp 240w,https://ichef.bbci.co.uk/news/320/cpsprodpb/2a51/live/5a354ce0-c3dc-11f1-bc2e-018d645d8d21.jpg.webp 320w,https://ichef.bbci.co.uk/news/480/cpsprodpb/2a51/live/5a354ce0-c3dc-11f1-bc2e-018d645d8d21.jpg.webp 480w,https://ichef.bbci.co.uk/news/640/cpsprodpb/2a51/live/5a354ce0-c3dc-11f1-bc2e-018d645d8d21.jpg.webp 640w,https://ichef.bbci.co.uk/news/800/cpsprodpb/2a51/live/5a354ce0-c3dc-11f1-bc2e-018d645d8d21.jpg.webp 800w,https://ichef.bbci.co.uk/news/1024/cpsprodpb/2a51/live/5a354ce0-c3dc-11f1-bc2e-018d645d8d21.jpg.webp 1024w,https://ichef.bbci.co.uk/news/1536/cpsprodpb/2a51/live/5a354ce0-c3dc-11f1-bc2e-018d645d8d21.jpg.webp 1536w" src="https://ichef.bbci.co.uk/news/1536/cpsprodpb/2a51/live/5a354ce0-c3dc-11f1-bc2e-018d645d8d21.jpg.webp" loading="eager" alt="BBC A treated depiction of Garry Casparov losing chess to a computer"><span>BBC</span></p></div></figure></div></div><div><div data-component="text-block"><div><p>A few weeks back, in a erstwhile financial institution construction that's now a music venue in Falmouth, Cornwall, I was DJ-ing at a night I run called Rave Machine. It was a noisy, high-energy, sweaty affair, fair as a night's dancing should be.</p></div></div></div><div><div data-component="text-block"><div><p>All of the elements - the crowd, performers, staff, music, the journey residence - connected to create item special, a one-off. It was additionally entirely human.</p></div></div></div><div><div data-component="text-block"><div><p>Something, in theory, fine out of attain of what innovation could perchance offer.</p></div></div></div><div><div data-component="text-block"><div><p>In the DJ world, though, innovation has already changed the equation. In the 1990s, a DJ had to not lone choice the tracks, but additionally thread them together armed lone alongside vinyl records, a brace of turntables and a mixer. Now, much additional aid is on offer, including application that volition sync strikes on distinct tracks should you ask it to (I don't). Apple Music and Spotify have an AI tune-mixing choice too.</p></div></div></div><div><div data-component="image-block"><figure><div><p><img src="https://static.files.bbci.co.uk/bbcdotcom/web/20261005-153342-40cbc1e8b4-web-3.23.0-2/grey-placeholder.png" aria-label="image unavailable"><img sizes=" 1008px) 66vw, 96vw" srcset="https://ichef.bbci.co.uk/news/240/cpsprodpb/fb02/live/271ddbd0-c3f8-11f1-9a39-31b474234113.jpg.webp 240w,https://ichef.bbci.co.uk/news/320/cpsprodpb/fb02/live/271ddbd0-c3f8-11f1-9a39-31b474234113.jpg.webp 320w,https://ichef.bbci.co.uk/news/480/cpsprodpb/fb02/live/271ddbd0-c3f8-11f1-9a39-31b474234113.jpg.webp 480w,https://ichef.bbci.co.uk/news/640/cpsprodpb/fb02/live/271ddbd0-c3f8-11f1-9a39-31b474234113.jpg.webp 640w,https://ichef.bbci.co.uk/news/800/cpsprodpb/fb02/live/271ddbd0-c3f8-11f1-9a39-31b474234113.jpg.webp 800w,https://ichef.bbci.co.uk/news/1024/cpsprodpb/fb02/live/271ddbd0-c3f8-11f1-9a39-31b474234113.jpg.webp 1024w,https://ichef.bbci.co.uk/news/1536/cpsprodpb/fb02/live/271ddbd0-c3f8-11f1-9a39-31b474234113.jpg.webp 1536w" src="https://ichef.bbci.co.uk/news/1536/cpsprodpb/fb02/live/271ddbd0-c3f8-11f1-9a39-31b474234113.jpg.webp" loading="lazy" alt=" a crowd"></p></div><p><figcaption>Ros Atkins at his DJ night in Cornwall - a basically individual experience, he writes</figcaption></p></figure></div></div><div><div data-component="text-block"><div><p>If you were out dancing, would it matter to you if a DJ was, well, not really DJing? If you loved the music being played, would you attention if innovation was doing the work?</p></div></div></div><div><div data-component="text-block"><div><p>It's a inquiry that generative AI - the category of AI that creates satisfied - is asking of us all. One of the thrills of that night in Falmouth was seeing our particular guest, Andy Cato from Groove Armada, artfully weaving an gathering of tracks. How would I awareness if a DJ was fair pressing play? (And that does happen).</p></div></div></div><div><div data-component="text-block"><div><p>I citation all of this since that cognition in Falmouth connects to a far broader question: whether we really attention if a part of art has been created by a human, be that a painting, song, book, poem, or any another category of art.</p></div></div></div><div><div data-component="subheadline-block"><div><p><h2>Renaissance frescoes and chess champions</h2></p></div></div></div><div><div data-component="text-block"><div><p>The music phase Deezer says 44% of tracks uploaded to it are AI-generated. Its investigation additionally established that 97% of listeners couldn't inform what was AI-generated and what wasn't. But here's a third statistic: additional than fractional of those surveyed stated they did attention if it was made by AI. They desire humans to be involved.</p></div></div></div><div><div data-component="text-block"><div><p>Daniel Susskind, an economics prof at King's College London, says many of us location huge value on the individual function in making art. It's what makes the imaginative procedure distinct from additional functional, applicable tasks, he thinks.</p></div></div></div><div><div data-component="text-block"><div><p>"I was formerly in a area of accountants, and one of them stood up and said, 'My clients arrive to me for the individual touch, the individual process'," he remembers. "And I said, 'That isn't why they arrive to you, they arrive since they desire their taxes done properly'."</p></div></div></div><div><div data-component="text-block"><div><p>But it's distinct alongside art, he says. "If I stroll into the Sistine Chapel and appearance at the ceiling, I think not lone is that extraordinarily beautiful, but isn't it amazing that a individual hand, tissue and lifeblood akin my own, came up alongside that. A intellect akin quarry dreamt that up," he says.</p></div></div></div><div><div data-component="text-block"><div><p>As Susskind describes it, what we value isn't fair the destination, it's the cognition that a individual - one of us - got us there. We can amazement at that achievement.</p></div></div></div><div><div data-component="image-block"><figure><div><p><img src="https://static.files.bbci.co.uk/bbcdotcom/web/20261005-153342-40cbc1e8b4-web-3.23.0-2/grey-placeholder.png" aria-label="image unavailable"><img sizes=" 1008px) 66vw, 96vw" srcset="https://ichef.bbci.co.uk/news/240/cpsprodpb/6260/live/464840f0-c3c5-11f1-bc2e-018d645d8d21.jpg.webp 240w,https://ichef.bbci.co.uk/news/320/cpsprodpb/6260/live/464840f0-c3c5-11f1-bc2e-018d645d8d21.jpg.webp 320w,https://ichef.bbci.co.uk/news/480/cpsprodpb/6260/live/464840f0-c3c5-11f1-bc2e-018d645d8d21.jpg.webp 480w,https://ichef.bbci.co.uk/news/640/cpsprodpb/6260/live/464840f0-c3c5-11f1-bc2e-018d645d8d21.jpg.webp 640w,https://ichef.bbci.co.uk/news/800/cpsprodpb/6260/live/464840f0-c3c5-11f1-bc2e-018d645d8d21.jpg.webp 800w,https://ichef.bbci.co.uk/news/1024/cpsprodpb/6260/live/464840f0-c3c5-11f1-bc2e-018d645d8d21.jpg.webp 1024w,https://ichef.bbci.co.uk/news/1536/cpsprodpb/6260/live/464840f0-c3c5-11f1-bc2e-018d645d8d21.jpg.webp 1536w" src="https://ichef.bbci.co.uk/news/1536/cpsprodpb/6260/live/464840f0-c3c5-11f1-bc2e-018d645d8d21.jpg.webp" loading="lazy" alt="Getty Images Visitors perspective the Sistine Chapel frescoes at the Vatican Museums on June 01, 2020 in Vatican City, Vatican. "><span>Getty Images</span></p></div><p><figcaption>Many group awareness awe whenever they appearance inner the Vatican's Sistine Chapel, says Daniel Susskind </figcaption></p></figure></div></div><div><div data-component="text-block"><div><p>Of course, it could be asserted that computers and AI application were themselves created by humans. If Susskind feels awe strolling into the Sistine Chapel, others power cognition awe of a distinct category using a chatbot akin ChatGPT.</p></div></div></div><div><div data-component="text-block"><div><p>Susskind points to another example, this period a chess equivalent in 1997, whenever a earth champion, Garry Kasparov, misplaced for the archetypal period to a computer, Deep Blue. At the time, there were fears the computer's achievement would average our involvement in chess would wane. In fact, chess is additional famous than ever, played by millions.</p></div></div></div><div><div data-component="text-block"><div><p>"It wasn't merely the moves on the commission that &#8202;people attention about. It's the fact that it's a individual being sitting rearward them, moving those pieces alongside that matters," Susskind argues.</p></div></div></div><div><div data-component="text-block"><div><p>And several think that the advent of AI has really placed additional value on things created by people. You power call that a individual premium.</p></div></div></div><div><div data-component="text-block"><div><p>Kyle Chayka, a newsman at The New Yorker focused on technology, says AI penning is now extensively considered to be "generic, obsequious and banal". As a result, he says, "I think readers are coming to value extremely evidently individual writing, and perchance equal penning that's messier, small structurally audio or composed or perfected, than they perchance formerly would've desired."</p></div></div></div><div><div data-component="text-block"><div><p>Chayka goes on: "I think example and explanatory scheme is going in the identical direction, anywhere the average is too effortlessly accessible, and so designers are leaning into being weirder and additional eye-catching and additional unusual, trying to discover things that AI can't create so easily."</p></div></div></div><div><div data-component="text-block"><div><p>In reply to the surge in AI-created content, academics are racing to create a universally recognised sign to signify item that is "human made" (similar to the "Fairtrade" tag that emerged in the 1980s). Labels akin "AI-free" are already appearing on covers of several books, films, and albums.</p></div></div></div><div><div data-component="text-block"><div><p>For C Thi Nguyen, a doctrine prof at the University of Utah, it's a inquiry of our underlying values.</p></div></div></div><div><div data-component="image-block"><figure><div><p><img src="https://static.files.bbci.co.uk/bbcdotcom/web/20261005-153342-40cbc1e8b4-web-3.23.0-2/grey-placeholder.png" aria-label="image unavailable"><img sizes=" 1008px) 66vw, 96vw" srcset="https://ichef.bbci.co.uk/news/240/cpsprodpb/ef40/live/8a09ef30-c3e5-11f1-a64c-550be9e3c66b.jpg.webp 240w,https://ichef.bbci.co.uk/news/320/cpsprodpb/ef40/live/8a09ef30-c3e5-11f1-a64c-550be9e3c66b.jpg.webp 320w,https://ichef.bbci.co.uk/news/480/cpsprodpb/ef40/live/8a09ef30-c3e5-11f1-a64c-550be9e3c66b.jpg.webp 480w,https://ichef.bbci.co.uk/news/640/cpsprodpb/ef40/live/8a09ef30-c3e5-11f1-a64c-550be9e3c66b.jpg.webp 640w,https://ichef.bbci.co.uk/news/800/cpsprodpb/ef40/live/8a09ef30-c3e5-11f1-a64c-550be9e3c66b.jpg.webp 800w,https://ichef.bbci.co.uk/news/1024/cpsprodpb/ef40/live/8a09ef30-c3e5-11f1-a64c-550be9e3c66b.jpg.webp 1024w,https://ichef.bbci.co.uk/news/1536/cpsprodpb/ef40/live/8a09ef30-c3e5-11f1-a64c-550be9e3c66b.jpg.webp 1536w" src="https://ichef.bbci.co.uk/news/1536/cpsprodpb/ef40/live/8a09ef30-c3e5-11f1-a64c-550be9e3c66b.jpg.webp" loading="lazy" alt="Getty Images World Chess Champion Garry Kasparov (L) makes a move 07 May in New York during his fourth equivalent against the IBM Deep Blue chess computer"><span>Getty Images</span></p></div><p><figcaption>Russian chess grandmaster Garry Kasparov was beaten by IBM's Deep Blue device in 1997 - the archetypal period a earth victor misplaced to a device in tournament conditions</figcaption></p></figure></div></div><div><div data-component="text-block"><div><p>He says you can frequently activity out your values by following what he calls a "why chain". If you akin item or desire to do something, ask "why?". If the answer is to create prosperity or be successful, keep asking 'why?' When the procedure ends, that volition be what you really value, he explains.</p></div></div></div><div><div data-component="text-block"><div><p>The question, he says, is whether individual involvement and shared individual cognition volition keep its location at the end of the "why chain".</p></div></div></div><div><div data-component="text-block"><div><p>Author John Lanchester is optimistic. He thinks the value of what lone humans can do volition prevail. In fact, he sympathises alongside the idea of a 'human premium'.</p></div></div></div><div><div data-component="text-block"><div><p>"If you commodify one benevolent of thing, the things you can't commodify commencement to appear additional important," he tells me.</p></div></div></div><div><div data-component="text-block"><div><p>All of that power audio heartening for group expecting that humans volition remain chief to the innovation of culture.</p></div></div></div><div><div data-component="text-block"><div><p>But I'm not so sure. The amount of AI-generated satisfied is expanding so quickly that we may shortly battle to differentiate what has or hasn't engaged AI.</p></div></div></div><div><div data-component="text-block"><div><p>You may fine have seen safety of the AI 'actor' Tilly Norwood, made final twelvemonth by a business that bills itself as the world's "first AI endowment studio". The Screen Actors Guild in the US was not impressed. "It has no existence cognition to diagram from, no emotion, and, from what we've seen, audiences aren't curious in observing computer-generated satisfied untethered from the individual experience," they wrote.</p></div></div></div><div><div data-component="text-block"><div><p>I'm not saying AI volition substitute actors - of way not. But what feels untethered and different now, may not, in several situations, awareness so different in time.</p></div></div></div><div><div data-component="text-block"><div><p>It's additionally value remembering that lengthy before Large Language Models went mainstream, we'd already allowed innovation to form our traditional tastes.</p></div></div></div><div><div data-component="text-block"><div><p>As lately as the 2000s, we motionless sought out many of the civilization we consumed. We'd buy a book, a cinema ticket, an album. Sometimes we motionless do.</p></div></div></div><div><div data-component="text-block"><div><p>But increasingly, civilization fair arrives - in an endless stream, sorted and served by an algorithm that is continually predicting our tastes.</p></div></div></div><div><div data-component="text-block"><div><p>At archetypal glance, this appears convenient. The work's being done for us. But as the function of the algorithm goes up, so the function of humans goes down.</p></div></div></div><div><div data-component="text-block"><div><p>"There's the mythical fig of your big brother's companion or something, who passes on fine music sensation to you," says Chayka, whose publish Filterworld explores the impacts of algorithms on culture. "And now we depend on algorithmic recommendations to do that identical item for us. To current us to new things."</p></div></div></div><div><div data-component="image-block"><figure><div><p><img src="https://static.files.bbci.co.uk/bbcdotcom/web/20261005-153342-40cbc1e8b4-web-3.23.0-2/grey-placeholder.png" aria-label="image unavailable"><img sizes=" 1008px) 66vw, 96vw" srcset="https://ichef.bbci.co.uk/news/240/cpsprodpb/0163/live/fbac88e0-c3c8-11f1-bc2e-018d645d8d21.jpg.webp 240w,https://ichef.bbci.co.uk/news/320/cpsprodpb/0163/live/fbac88e0-c3c8-11f1-bc2e-018d645d8d21.jpg.webp 320w,https://ichef.bbci.co.uk/news/480/cpsprodpb/0163/live/fbac88e0-c3c8-11f1-bc2e-018d645d8d21.jpg.webp 480w,https://ichef.bbci.co.uk/news/640/cpsprodpb/0163/live/fbac88e0-c3c8-11f1-bc2e-018d645d8d21.jpg.webp 640w,https://ichef.bbci.co.uk/news/800/cpsprodpb/0163/live/fbac88e0-c3c8-11f1-bc2e-018d645d8d21.jpg.webp 800w,https://ichef.bbci.co.uk/news/1024/cpsprodpb/0163/live/fbac88e0-c3c8-11f1-bc2e-018d645d8d21.jpg.webp 1024w,https://ichef.bbci.co.uk/news/1536/cpsprodpb/0163/live/fbac88e0-c3c8-11f1-bc2e-018d645d8d21.jpg.webp 1536w" src="https://ichef.bbci.co.uk/news/1536/cpsprodpb/0163/live/fbac88e0-c3c8-11f1-bc2e-018d645d8d21.jpg.webp" loading="lazy" alt="Getty AI-generated depiction of Tilly Norwood on a red carpet"><span>Getty</span></p></div><p><figcaption>The AI-generated 'actor' Tilly Norwood has created controversy</figcaption></p></figure></div></div><div><div data-component="text-block"><div><p>I recognise this from my own habits. Back in the 1990s, whenever I started collecting dancing music, I'd discover new music through document shops and recommendations from group I trusted. I can motionless do that, and do. But these days the algorithm's doing a lot of that activity for me - and it can be really helpful. I'll discover tunes I wouldn't have discovered otherwise.</p></div></div></div><div><div data-component="text-block"><div><p>To an extent, I am letting innovation guide me.</p></div></div></div><div><div data-component="text-block"><div><p>Chayka thinks algorithms have made us lazy, and "prevent us from going deeper" in our traditional taste. Sometimes we power discover a part of art that requires activity - a long, difficult book, perhaps, or a weird-seeming movie. "It power alienate us initially, but eventually it inspires us," Chayka says.</p></div></div></div><div><div data-component="text-block"><div><p>"I think that benevolent of civilization has fallen by the wayside in favor of civilization as satisfied to consume that's not going to alter your life, it's fair going to rotate your brain off for a few hours."</p></div></div></div><div><div data-component="image-block"><figure><div><p><img src="https://static.files.bbci.co.uk/bbcdotcom/web/20261005-153342-40cbc1e8b4-web-3.23.0-2/grey-placeholder.png" aria-label="image unavailable"><img sizes=" 1008px) 66vw, 96vw" srcset="https://ichef.bbci.co.uk/news/240/cpsprodpb/fbb4/live/ace3a940-c3c9-11f1-bc2e-018d645d8d21.jpg.webp 240w,https://ichef.bbci.co.uk/news/320/cpsprodpb/fbb4/live/ace3a940-c3c9-11f1-bc2e-018d645d8d21.jpg.webp 320w,https://ichef.bbci.co.uk/news/480/cpsprodpb/fbb4/live/ace3a940-c3c9-11f1-bc2e-018d645d8d21.jpg.webp 480w,https://ichef.bbci.co.uk/news/640/cpsprodpb/fbb4/live/ace3a940-c3c9-11f1-bc2e-018d645d8d21.jpg.webp 640w,https://ichef.bbci.co.uk/news/800/cpsprodpb/fbb4/live/ace3a940-c3c9-11f1-bc2e-018d645d8d21.jpg.webp 800w,https://ichef.bbci.co.uk/news/1024/cpsprodpb/fbb4/live/ace3a940-c3c9-11f1-bc2e-018d645d8d21.jpg.webp 1024w,https://ichef.bbci.co.uk/news/1536/cpsprodpb/fbb4/live/ace3a940-c3c9-11f1-bc2e-018d645d8d21.jpg.webp 1536w" src="https://ichef.bbci.co.uk/news/1536/cpsprodpb/fbb4/live/ace3a940-c3c9-11f1-bc2e-018d645d8d21.jpg.webp" loading="lazy" alt="Joseph Okpako/WireImage General perspective of the assemblage as Lorde performs during day three of Glastonbury celebration 2025 at Worthy Farm, Pilton on June 27, 2025 in Glastonbury, England"><span>Joseph Okpako/WireImage</span></p></div><p><figcaption>Live, in-person events are becoming additional popular. Above, a assemblage at Glastonbury Festival final twelvemonth at an 11.30am achievement for the musician Lorde</figcaption></p></figure></div></div><div><div data-component="text-block"><div><p>And it's a self-reinforcing loop; creators modify their activity as they search out the notice the algorithm can provide.</p></div></div></div><div><div data-component="text-block"><div><p>And here's the key point: this change - to discovering civilization via algorithms - is one we've already mostly accepted. So whenever AI starts making books, films, and music in ample numbers - power we fair gesture and obtain that too?</p></div></div></div><div><div data-component="text-block"><div><p>Back in 1986, in Washington DC, protesting teachers lined the streets exterior a gathering centre. They weren't furious concerning their wages or prosperity cuts. In this case, the entity of their ire was the calculator. Maths instructor John Saxon had taken up the cause. "The kids are not learning their math facts since they're becoming calculator hooked," he proclaimed. "&#8202;If they had stated me a dreary box, I wouldn't cognize that&hellip; six times eight's 48 'cause it rhymes, and seven times nine is 63 'cause it does not."</p></div></div></div><div><div data-component="text-block"><div><p>We all have our ways of remembering times tables.</p></div></div></div><div><div data-component="text-block"><div><p>Needless to say, this is an disagreement that Saxon lost. But several of those arguments awareness familiar.</p></div></div></div><div><div data-component="text-block"><div><p>Of course, several things are certainly out of range of technology, at smallest for now. Think of my sweaty DJ night in Falmouth a few weeks ago, alongside 250 another ravers.</p></div></div></div><div><div data-component="text-block"><div><p>Alex Mahon says she's noticed an uptick in appreciation for in-person experiences akin these - perchance as a backlash to the amount of our lives now spent on a smartphone screen.</p></div></div></div><div><div data-component="text-block"><div><p>She's chief administrator of Superstruct Entertainment, among the world's foremost celebration and live amusement groups.</p></div></div></div><div><div data-component="text-block"><div><p>"People desire to go to additional live things," she says. "They desire to have things that are unforeseeable&hellip; unpredictable. The particular instant is live. The excitement, the finding is hearing it in individual alongside others."</p></div></div></div><div><div data-component="text-block"><div><p>In the case of culture, whenever is it OK to outsource to technology, and whenever is it not? The additional I appearance at this, the small I'm certain we can assume what choices we'll make.</p></div></div></div><div><div data-component="text-block"><div><p>Each of us volition have to decide whenever it matters if item is made by a human.</p></div></div></div><div><div data-component="image-block"><figure><div><p><img src="https://static.files.bbci.co.uk/bbcdotcom/web/20261005-153342-40cbc1e8b4-web-3.23.0-2/grey-placeholder.png" aria-label="image unavailable"><img sizes=" 1008px) 66vw, 96vw" srcset="https://ichef.bbci.co.uk/news/240/cpsprodpb/c006/live/24774480-ef9f-11f0-a422-4ba8a094a8fa.png.webp 240w,https://ichef.bbci.co.uk/news/320/cpsprodpb/c006/live/24774480-ef9f-11f0-a422-4ba8a094a8fa.png.webp 320w,https://ichef.bbci.co.uk/news/480/cpsprodpb/c006/live/24774480-ef9f-11f0-a422-4ba8a094a8fa.png.webp 480w,https://ichef.bbci.co.uk/news/640/cpsprodpb/c006/live/24774480-ef9f-11f0-a422-4ba8a094a8fa.png.webp 640w,https://ichef.bbci.co.uk/news/800/cpsprodpb/c006/live/24774480-ef9f-11f0-a422-4ba8a094a8fa.png.webp 800w,https://ichef.bbci.co.uk/news/1024/cpsprodpb/c006/live/24774480-ef9f-11f0-a422-4ba8a094a8fa.png.webp 1024w,https://ichef.bbci.co.uk/news/1536/cpsprodpb/c006/live/24774480-ef9f-11f0-a422-4ba8a094a8fa.png.webp 1536w" src="https://ichef.bbci.co.uk/news/1536/cpsprodpb/c006/live/24774480-ef9f-11f0-a422-4ba8a094a8fa.png.webp" loading="lazy" alt="Thin, lobster red banner alongside pale content saying ‘InDepth newsletter’. To the correct are dreary and pale picture images of Emma Barnett and John Simpson. Emma has dark-rimmed glasses, lengthy fair tress and a striped shirt. John has abbreviated pale tress alongside a pale garment and dreary blazer. They are set on an oatmeal, curved backdrop alongside a green overlapping circle. "></p></div></figure></div></div><div><div data-component="text-block"><div><p><a href="https://en.mycoding.id/category/technology" target="_blank"><i id="bbc-indepth">BBC InDepth </i></a><i id="is-the-home-on-the-website-and-app-for-the-best-analysis,-with-fresh-perspectives-that-challenge-assumptions-and-deep-reporting-on-the-biggest-issues-of-the-day.-emma-barnett-and-john-simpson-bring-their-pick-of-the-most-thought-provoking-deep-reads-and-analysis,-every-saturday.">is the residence on the website and app for the finest analysis, alongside caller perspectives that difficulty assumptions and profound reporting on the biggest issues of the day. Emma Barnett and John Simpson bring their choice of the most thought-provoking profound says and analysis, all Saturday.</i><a href="https://en.mycoding.id/category/technology" target="_blank"> <i id="sign-up-for-the-newsletter-here">Sign up for the newsletter here</i></a></p></div></div></div></div></div>]]></content:encoded> <guid isPermaLink="true">https://en.mycoding.id/ai-is-creating-a-human-premium-for-art-created-by-people-72047</guid> <pubDate>Sun, 11 Oct 2026 12:34:28 +0700</pubDate> <author><![CDATA[support@mycoding.id (Mira Azkia)]]></author> </item> </channel> </rss>