Searching We Love Privacy Club

Twts matching #writing
Sort by: Newest, Oldest, Most Relevant

Privacy Backlash Explodes Against Meta’s Smart Glasses
With nearly 70% of the market, “Meta wants its smart glasses to be a big hit,” writes the Los Angeles Times. But after some users found ways to disable the light that warns people they’re being filmed, “the high-tech specs have also turned into a liability, as some are calling the gadget ‘pervert glasses…’”

Some people are using the glasses — which look like a pair … ⌘ Read more

⤋ Read More

AI Reviews Bring ‘New Normal’ to Linux Release Candidates: Lots of Bug Fixes
Linux Torvalds expects Linux 7.2 should be released next weekend “unless something really bad
pops up,” Torvalds said while announcing today’s release candidate.

But there’s something interesting about Linux 7.2-rc7, writes Phoronix. “By the time the Linux kernel typically hits a -rc7 release things have usually settled qui … ⌘ Read more

⤋ Read More

@david@daiwei.me Also if you wouldn’t mind writing up an Issue for the image/upload problem too, that would be great 👍 I still haven’t solved it properly, but I’ll try to do so today. There’s also an issue uploading images via the yarnd API path from the Twtxt App too, which I can replicate with basically any photo from my iPhone’s Photo gallery hmm 🤔

⤋ Read More

Framework Notifies ‘All Customers’ of a Data Breach Via Compromised Metabase BI Service
“Framework has been sending out email notifications to customers alerting of a limited data breach in which customer information was accessed through a Metabase BI service zero-day exploit,” writes Slashdot reader DuoDreamer. Data includes customer names, email addresses, phone numbers, and physical addr … ⌘ Read more

⤋ Read More

Times Magazine Now Serves Ads That Only AI Chatbots Can See
Longtime Slashdot reader mccalli writes: Times Magazine has started serving adverts with “brand messages” to AI crawlers, which are not part of its main page. The aim seems to be to influence chatbots to talk about the brand offerings in a positive light that can’t be traced back to the actual page. Notably, they’ve excluded Google chatbots from this, likely be … ⌘ Read more

⤋ Read More

Linux Accidentally Left Legacy I/O & Memory Handlers Open In Kernel Lockdown Mode
For nearly the past decade has been the kernel lockdown mode for tightening up kernel access from user-space such as when UEFI Secure Boot is enabled. The kernel lockdown mode restricts PCI BAR access, no writing to /dev/mem, and other restrictions so user-space can’t can’t modify the running kernel or access sensitive kernel memory. An oversight has allowed legacy I/O and memory interfaces via sysfs to remain open in lockdown m … ⌘ Read more

⤋ Read More

Sandisk and SK Hynix Publish First Open High Bandwidth Flash Standard
BrianFagioli writes: Sandisk and SK hynix have published the first open technical specification for High Bandwidth Flash (HBF) through the Open Compute Project. HBF is designed to create a new memory tier between High Bandwidth Memory and traditional SSD storage, giving AI inference systems more near compute capacity without relying … ⌘ Read more

⤋ Read More

Microsoft CEO Touts His Own DIY AI Project To Wall Street and His 20 Million Followers
theodp writes: During Microsoft’s 2026Q4 earnings call, CEO Microsoft Satya Nadella took time to tout a dashboard he personally created using AI from a Morgan Stanley analyst’s PDF research report, which suggested a rosy payback for the so-called MAG7’s (‘Magnificent 7’ companies) massive capital expenditure … ⌘ Read more

⤋ Read More

Recovery Seeds Reportedly Breached for Coldcard Hardware Bitcoin Wallets, $75M Taken
“A hardware wallet is supposed to be the safest place to keep Bitcoin,” writes The Street, since it never connects to the internet, its keys never leave the device, and “the whole point is that an attacker would need to physically hold it to steal anything.”

The problem is that anyone who can reproduce the rec … ⌘ Read more

⤋ Read More

150-Game Discount Bundle Raises $57,000 for Videogame Workers ‘Hardship Fund’
“An itch.io game bundle put together by Necrosoft Games and The United Videogame Workers-CWA union is a new way gamers can show their support for developers who have been let go amidst the ongoing video game industry labor crisis,” writes Kotaku.

Launched Thursday, it’s already raised $57,859 from 3,984 contributors. (Aver … ⌘ Read more

⤋ Read More

Hamburg Is Replacing a Bridge In One Huge Piece
Long-time Slashdot reader Qbertino writes: The northern German City of Hamburg is currently in the process of replacing one of its bridges in one single gigantic piece. The new replacement weighs 3700 metric tons and was carefully moved into place over a stretch of 500 meters, requiring extreme patience and precision maneuvering. Some places leave only 40 cm of room to neighbouri … ⌘ Read more

⤋ Read More

Drifting SpaceX Rocket Heading For Accidental Collision With the Moon
“Space.com and The Guardian are reporting that the Falcon 9 upper stage leftover from the launch of the Firefly Blue Ghost-1 lander on Jan. 15, 2025 is due to impact the Moon on Aug. 5, 2026,” writes longtime Slashdot reader fahrbot-bot. From a report: Onboard the same flight was the Hakuto-R Mission 2, called Resilience, a robotic l … ⌘ Read more

⤋ Read More

Flock Cameras Are Being Destroyed Across the US
An anonymous Slashdot reader writes: Surveillance cameras owned by Flock Safety have been cut down with electric saws in New York State, vandalized with paint in Oakland, California, and rammed with a truck in Idaho. Flock claims its services fight crime, but law enforcement agencies also use their services to track vehicles based on license plate numbers and reconstruct the thei … ⌘ Read more

⤋ Read More
In-reply-to » The original twt is unavailable. It may have been edited or deleted, or is from an unknown or muted feed.

Also a “Publish who I follow” toggle: writes # follow = + # following = N into your feed like yarnd does. Off by default (it is your social graph 🤔), and only on the GitHub/Gitea backends for now where the app owns the feed file. twtd next 🤞

⤋ Read More
In-reply-to » The original twt is unavailable. It may have been edited or deleted, or is from an unknown or muted feed.

Okay I’m fixing this in lextwt, yarnd and twtxt.app (takes a different path). Soon you’ll be able to write shit™ like (<this>) and it’ll get escaped and rendered correctly on the page. Basically you are really writing HTML here, but not intending to do so, Twtxt never supported HTML, and I don’t think it ever should. We extended the format to support basic Markdown, and I think that’s where it should end.

Probably time we wrote a Spec for this really.

⤋ Read More

Dunno if anyone will find this interesting… But some ~6 months or so ago I experimented briefly with creating a whole bootloader + kernel + userland – Basically an entire OS in the Mu programming language (which as you know I also designed and created) – 6 months later I’ve worked on it some more after spending the last week working on improvements to Mu itself, which is now able to compile itself with its own Mu implemented compiler and now have an os/arch backend called muos/amd64 that boots into a running shell, with a tiny little vfs, UNIX-like semantics, syscalls, read/write, etc. It works pretty nicely, and aside from a small Assembly “nucleus”, most of the Kernel and Userspace is written in Mu.

https://git.mills.io/prologic/muos

⤋ Read More

John C. Dvorak, an Early and Influential Technology Journalist, Dies At 80
Longtime Slashdot reader sandbagger shares the passing of John C. Dvorak, an early and influential technology journalist for PC Magazine. He was 80. Talking Biz News reports: Aric Mackey writes, “Widely recognized for his profound impact on the technology industry, John’s career spanned decades of rapid digital evolution. He was … ⌘ Read more

⤋ Read More

World’s First Wave Power Generator Receives Certification For Regular Use
“The Norwegian certification agency DNV has certified the commercial wave-driven power generator Corpower C4 for regular use,” writes Longtime Slashdot reader Qbertino. “German news site heise.de has a detailed write-up. See a CGI video of the power station and its internals, as well as the company’s website [at their respec … ⌘ Read more

⤋ Read More
In-reply-to » After many months of hard™ work, I've finally been able to get Mu (µ) lang to a point where the duplication of machine code / assembly between the ARM64/AMD64 and Mach-O and ELF formats are not all eliminated. This now means that writing a new backend target os/arch for Mu is now relatively simple to do, or far less duplicated work/effort.

@david@daiwei.me Bah you 🤣 Do you know how hard™ it is to write a compier, a self-hosted compiler that has two runtime engines? 😅

⤋ Read More
In-reply-to » After many months of hard™ work, I've finally been able to get Mu (µ) lang to a point where the duplication of machine code / assembly between the ARM64/AMD64 and Mach-O and ELF formats are not all eliminated. This now means that writing a new backend target os/arch for Mu is now relatively simple to do, or far less duplicated work/effort.

On that note, I just finished writing the linux/risc64 backend and it only took ~2k lines of code 🎉

⤋ Read More

After many months of hard™ work, I’ve finally been able to get Mu (µ) lang to a point where the duplication of machine code / assembly between the ARM64/AMD64 and Mach-O and ELF formats are not all eliminated. This now means that writing a new backend target os/arch for Mu is now relatively simple to do, or far less duplicated work/effort.

⤋ Read More
In-reply-to » I trip over this in our code at work all the time.

@movq@www.uninformativ.de The nice thing about properties is that you can compute and cache things on the fly at first attempt and also ensure validation for writing. But like you said, since it’s not obvious that reading or writing might do some more things, it’s strongly advised to avoid doing expensive stuff disguised as properties.

I reckon the vast majority of property use cases is to provide read-only access. At least that was my impression when I was doing a lot more in Python.

Personally, I think that this just reads a lot nicer:

oink.my_property
oink.my_property = 42

Than:

oink.get_my_property()
oink.set_my_property(42)

Btw, any field access is implemented using method calls. I might be wrong, but I believe there’s always __getattr__ and __setattr__ involved. 8-)

⤋ Read More

I really think I should go back to Java.

Writing programs in Python is so exhausting. I want a compiler and I want static typing. No, linters and type checkers and IDEs are not good enough. Compilers catch way more errors in advance.

Rust is also exhausting. They’re constantly adding language features and, at the same time, the runtime library remains tiny and you need 3rd party libraries for everything. Many of those are still at version 0.x (SemVer!) and you can’t rely on anything. Often times, you need the latest Rust nightly compiler.

Go is … I don’t like it. And huge binaries.

I like C as a language, but it’s too fragile. I want to have a proper HashMap every now and then.

None of the above have good GUI libraries, at least not on Linux.

And then there’s Java. This is my fractal renderer that I wrote over 17 years ago:

https://movq.de/v/fcd3c4e557/vid-1784121825.mp4

It’s fast. It has a GUI with custom widgets and those weren’t even hard to make. It still works without changing a single line of code. The source code files have timestamps from 2009 and I just noticed that the JAR file I’m using in the video was compiled in 2010.

Java as a language is relatively easy to learn and to master. There are few surprises. The source code organization with packages is good. Java API docs are clear and well written.

The JVM ramp-up times have improved considerably:

https://movq.de/v/e7314e521e/vid-1784121998.mp4

This isn’t like the Dark Ages anymore. Might even be usable for some CLI tools.

The only thing where Java really sucks is anything close-ish to the kernel. Try issuing an ioctl() … I couldn’t have made my TUI framework in Java, but then again, I wouldn’t have needed to because Swing already exists and it just works.

⤋ Read More

Hurray, I can now press gg instead of g to go to the top in tt. Much better! :-) Other multi-key combinations are also easily possible now.

I should probably write a real article about this at some point, but here we go. The only downside with my new key binding system is that it breaks tview’s established pattern. You’ve got an InputHandler(), that is implemented using WrapInputHandler(…). It typically then directly implements the switching logic depending on the key press. Something like this:

func (w *Widget) InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
    // WrapInputHandler allows for intercepting key events with SetInputCapture(…)
    // from the outside for customization. This handles the default key bindings.
    return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
        switch event.Key() {
        case tcell.KeyRune:
            if event.Modifiers() == tcell.ModNone {
                switch event.Rune() {
                case 'k':
                    w.scrollUp()
                    return // we already handled the event, stop processing

                case 'j':
                    w.scrollDown()
                    return
                }
            }
        }

        // We didn't handle the key event. Maybe the parent
        // widget knows what to do with it.
        if handler := w.parent.InputHandler(); handler != nil {
            handler(event, setFocus)
        }
    })
}

From the outside, you can intercept and either stop or continue the widget’s original key handling with a potentially rewritten key event using SetInputCapture(…):

w := NewWidget()
// customized or additional key bindings
w.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
    switch event.Key() {
    case tcell.KeyUp:
        // Rewrite the event, so the "cursor up" key is an alias
        // for the vim key binding "k", that is handled by the
        // wrapped input handler above. (I know, I know, this is a
        // completely unrealistic example, why would anyone use
        // cursor keys when there are vim key bindings available?!)
        return tcell.NewEventKey(tcell.KeyRune, 'k', tcell.ModNone)

    case tcell.KeyRune:
        if event.Modifiers() == tcell.ModNone {
            switch event.Rune() {
                case 'q':
                    app.Stop()
                    // we already handled the event, do not pass it
                    // to the wrapped input handler above
                    return nil

                case 'r':
                    toggleMessageReadStatus()
                    return nil
            }
        }
    }

    // we didn't handle the event, pass it to the wrapped
    // input handler above
    return event
}

Since they all expect a single key, I’ve noticed that using multiple dedicated KeyBindings of mine on these different levels kinda breaks multi-key handling with common prefixes. The outer-most KeyBinding captures the prefix, but it can’t transfer it to the inner one if not handled by the outer one. At least not without some more (potentially ugly) changes. So, I now have to work with just a single KeyBindings object for the entire widget chain (if it consists of multiple other widgets or the regular input handler and input capture are in the game). The outside needs to register all its key bind customizations or extensions at the same level that the original widget handles its default ones. Doable by exposing the widget’s KeyBindings instance, but not pretty. You always have to keep this in mind.

With the KeyBindings, it will look like that:

type Widget struct {
    parent tview.Primitive

    // make it available to children or the outside either by
    // direct field access or by providing a getter method
    KeyBindings *bind.KeyBindings
}

func NewWidget() *Widget {
    w := &Widget{KeyBindings: &bind.KeyBindings{}}
    w.KeyBindings. // default key bindings
        Bind0(bind.KeySequence('k', w.scrollUp).
        Bind0(bind.KeySequence('j', w.scrollDown)
    return w
}

func (w *Widget) InputHandler() InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
    return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
        // also note the missing support for focus transfer at the moment
        event = w.KeyBindings.Capture(event)
        if event == nil {
            return
        }

        if handler := w.parent.InputHandler(); handler != nil {
            handler(event, setFocus)
        }
    }
}

And then from the outside, or in a child widget:

w := NewWidget()
w.KeyBindings. // additional or customized key bindings
    Bind1(bind.KeySequence(tcell.KeyUp), func(*tcell.EventKey) *tcell.EventKey {
        return tcell.NewEventKey(tcell.KeyRune, 'k', tcell.ModNone)
    }).
    Bind0(bind.KeySequence('q'), app.Stop).
    Bind0(bind.KeySequence('r'), toggleMessageReadStatus)

When directly working with tview primitives that are not part of custom widget implementations, the following works well so far:

textView := tview.NewTextView().
    SetWordWrap(true).
    SetText("…")
    SetScrollable(true)
textView.SetInputCapture((&bind.KeyBindings{}).
    Bind0(bind.KeySequence('q'), app.Stop).
    Bind1(bind.KeySequence('g', 'g'), func(*tcell.EventKey) *tcell.EventKey {
        return tcell.NewEventKey(tcell.KeyHome, 0, tcell.ModNone)
    }).
    Capture)

I need to sleep on this some more.

Also, writing very long messages like this one is really not all that fun in tt’s editor. I should absolutely provide a way to shell out to vim.

(Took me about one and a half hours to compose, holy crap. But not only because of not using vim. Although, that might have saved me a quarter hour or so for sure. Proof-reading this message also uncovered quite a few bugs in my real documentation. So, that’s a big win!) Good night!

⤋ Read More
In-reply-to » Shipped a bunch of Twtxt App fixes & polish today 🥳 One-tap Refresh that actually refreshes, duplicate follows fixed, Reply/Fork buttons (with proper @-mentions), unread dots, Back keeps your spot, and it'll now guide you to install it as a proper app 📱 Reload https://twtxt.app and have a play! Thanks @quark and @balloon-fu-sen for all the reports 🙏

Self-hosting twtd? Pull prologic/twtd:latest too — the Avatar URL field in the app now actually writes # avatar = into your feed (needed changes on both sides)

⤋ Read More
In-reply-to » The original twt is unavailable. It may have been edited or deleted, or is from an unknown or muted feed.

@balloonfu-sen@yarn.girlonthemoon.xyz I could in toehry publish a specification for what twtd implements, which forms the basis of the API between twtxt.app <-> twtd, if you wanted to write your own twtd / twtxt.app compatible publishing backend (assuming you didn’t want to use Github/Gitea, etc).

⤋ Read More

Fixed the broken hashes in the Twtxt App (https://twtxt.app) 🥳 It was hashing your twts with a client-side timestamp the server never used 🤦‍♂️ Now it keeps the canonical created/hash the pod (or twtd) returns, and the GitHub/Gitea backends write a # url = preamble so every client hashes your feed the same way. Thanks @fastidious@tilde.town for the report 🙏

⤋ Read More
In-reply-to » The mentioned go.{mod,sum} change is already part of tview 0.42.0. After implementing Set/GetDisabled(…) and PasteHandler(), tt starts up fine and seems to work without issues.

After updating to tview 0.42.0, I also sadly noticed, that the tview.Modal now clears the background and doesn’t simply draw over the already present widget. So, I decided to write my own Dialog widget. This endeavor lead me down the path to actually bring back a custom Button implementation, too. When the button is focused, it surrounds the button text with [ and ]. When not in focus, the brackets are removed. Much better than before (https://twtxt.net/conv/qx3vz4a):

I also use the same buttons in the compose view, too.

⤋ Read More

Decades-Old Bash Tricks Expose AI Coding Agents To Supply Chain Attacks
Slashdot reader wiredmikey writes: AI security researchers have uncovered a structural security flaw dubbed GuardFall that allows decades-old Bash shell tricks to bypass safeguards in most open source AI coding agents. By exploiting shell behaviors such as quote removal and variable expansion, attackers can hide malicious commands … ⌘ Read more

⤋ Read More

Apple iPhone 18 Details Leaked In Tata Data Breach
“Another breach at Tata has leaked details about Apple’s iPhone 18, along with documents belonging to several other Tata clients,” writes Longtime Slashdot reader Ritz_Just_Ritz. “It’s becoming a recurring theme for the company.” Reuters reports: Reuters has previously reported the Tata Electronics leak of more than 200,000 files on the dark web by World Leaks had files wit … ⌘ Read more

⤋ Read More

Developer AI Token Costs Could Exceed Their Salaries in Two Years
“Enterprises may soon be paying as much for their developers’ AI token usage as they do for their salaries,” writes InfoWorld:

According to Gartner, these costs will meet, or even exceed, the typical software engineer’s monthly salary within the next two years. This is not only because developers are increasingly adopting generative AI and agent … ⌘ Read more

⤋ Read More

How a Seemingly Harmless Image Can Jailbreak Vision-Language AI Models
Slashdot reader BrianFagioli writes: Florida International University researchers have developed a technique called JaiLIP (Jailbreaking with Loss-guided Image Perturbation) that uses subtle image modifications to bypass AI safety guardrails. Unlike traditional jailbreaks that rely on carefully crafted prompts, the attack works through ima … ⌘ Read more

⤋ Read More

Forget Prompt Engineering: ‘Loop Engineering’ Is All the Rage Now
An anonymous reader quotes a report from Business Insider: For the most powerful voices in AI, it’s all about being in the loop. Claude Code creator Boris Cherny recently said he doesn’t write his own AI prompts much anymore. Thanks to loops, he doesn’t have to. “It’s an agent that prompts Claude,” Cherny recently told CNBC, adding, “I don’t … ⌘ Read more

⤋ Read More
In-reply-to » So I decided to change tact a bit with GoNIX and instead of trying to build apure Go browser from scratch (which I kinda of half succeeded, in at least it was able to render most static ssr sites), I've instead decided to write a new browsered using the Chromium Embedded Framework, otherwise known as CEF. So now I have a fully working browser in GoNIX 🎉 -- However since my goal is to keep GoNIX pretty lcean and mostly written in Go, I delegated the cef part(s) to an OCI container image and run that with GoNIX's box (command-line container runtime). It works great 👍

@movq@www.uninformativ.de CEF turns out to be pretty easy. I had to write a bit of C and Go to bridge, but once that got going I was able to write it into my pure Go go-wayland wlui library for final rendering. The delegating the entire CEF part was a good idea though because it keeps all the complexity in a container Image, leaving me with just the Go + C stubs/interface and SHM/IPC parts.

⤋ Read More

So I decided to change tact a bit with GoNIX and instead of trying to build apure Go browser from scratch (which I kinda of half succeeded, in at least it was able to render most static ssr sites), I’ve instead decided to write a new browsered using the Chromium Embedded Framework, otherwise known as CEF. So now I have a fully working browser in GoNIX 🎉 – However since my goal is to keep GoNIX pretty lcean and mostly written in Go, I delegated the cef part(s) to an OCI container image and run that with GoNIX’s box (command-line container runtime). It works great 👍

⤋ Read More

Linux Foundation Launches Akrites To Coordinate AI-Driven Open Source Security
BrianFagioli writes: The Linux Foundation has announced Akrites, a new initiative to coordinate vulnerability disclosure and remediation for critical open source software as AI dramatically speeds up vulnerability discovery. Founding members include AWS, Google, Microsoft, OpenAI, Red Hat, NVIDIA, IBM, Cisco, JPMorgan … ⌘ Read more

⤋ Read More

A 25-Year-Old Blog Looks Back At 40 Years of Computing
Ancient Slashdot reader Mark Round writes: Longtime reader here (since mid-1999 – Hot Grits! Oog the Caveman! Beowulf clusters!), and I can still remember posting back on Slashdot’s own 5th anniversary. Time’s rolled on: my own blog just turned 25, and it’s now roughly 40 years since I first sat down at a computer. So I went digging through archive.org, old bac … ⌘ Read more

⤋ Read More

BASIC09 Programming Language Front-End Developed For LLVM
The 46-year-old BASIC09 programming language has new compiler support with a front-end having been developed for the LLVM compiler stack. BASIC09 was developed in 1980 for the Motorola 6809 CPU running with the OS-9 operating system. With this LLVM compiler front-end, you can write BASIC09 code for modern software and hardware… ⌘ Read more

⤋ Read More

Benchmarking Bcachefs 1.38.6: The First Release No Longer “Experimental”
Released last week was Bcachefs 1.38.6 with a host of performance improvements to this out-of-tree, copy-on-write file-system. Given all the performance improvements and this being the first release since Kent Overstreet dropped the “experimental” flag on the file-system, I decided to fire up some benchmarks looking at how the Bcachefs file-system performance has changed with this new version. ⌘ Read more

⤋ Read More

TikTok Shows 3x More AI Slop Than YouTube, Report Finds
“About 59% of TikTok videos served to a new account’s For You feed are AI slop,” writes Search Engine Journal, “according to a report from Kapwing, the video creation tool company. That’s roughly three times the rate Kapwing found on YouTube.”

The company manually reviewed over 10,000 TikTok videos across 20 categories and ran a separate fresh-account test, countin … ⌘ Read more

⤋ Read More

Remembering When Alan Turing Developed a Portable Voice Encryption Device
Long-time Slashdot reader smooth wombat writes: Alan Turing, one of the more famous people who worked at Bletchley Park to decipher the German Enigma coding machine, was also working on a separate project. His private papers, known as the Bayley papers for his assistant Donald Bayley who held onto the papers until his death in 2020 … ⌘ Read more

⤋ Read More
In-reply-to » @lyse Oh wow, we’re talking about such a detailed level. 🤔

@movq@www.uninformativ.de Yeah, that would also be fine with me. I certainly do like the “arbitrary” in your comment.

While writing the article, I also thought about something like that:

date := time.Date(2026, 6, 19,
    17, 0, 0, 0, time.UTC)

Or possibly:

date := time.Date(
    2026, 6, 19,
    17, 0, 0, 0, time.UTC,
)

But it’s four lines for a damn timestamp. I also contemplated whether a comment acting as a separator is all that’s needed:

date := time.Date(2026, 6, 19, /**/ 17, 0, 0, 0, time.UTC)

I might like that the most. Not entirely sure yet. It kinda feels like a hack, but still a little elegant. Add your comment on top and we’re golden. Maybe?

I deliberately excluded them as this only distracted from the points I wanted to make. And I also realized that this example was just not ideal at all. Perhaps I should add them nevertheless?

If I ever invented a programming language, a much more human readable timestamp representation of some sort, RFC 3339 or very close to that would be part of that language. Something along the lines of /pattern/ for regexes in certain languages.

⤋ Read More

Norway Imposes Near Ban On AI In Elementary School
Norway will largely prohibit generative AI use for elementary kids ages 6 to 13 beginning with the new school year, while allowing limited, teacher-supervised use for older students. The government says the restrictions are intended to prevent children from skipping foundational reading, writing, and mathematics skills amid declining test scores. Reuters reports: Facing a br … ⌘ Read more

⤋ Read More