Latest Tech News

Stay updated with the latest in technology, AI, cybersecurity, and more

Filtered by: typ Clear Filter

Algebraic Types are not Scary

Algebraic Types are not Scary, Actually Posted on 2025-08-30 You may have heard the term algebraic types before, which initially sounds like an advanced concept, that only someone with a PhD in programming languages can understand. Quite the contrary, algebraic types is a very simple and helpful concept about programming in general. Anyone who knows basic algebra could understand what algebraic types are. In this article I aim to provide an explanation of algebraic types for the working progra

Denmark close to wiping out cancer-causing HPV strains after vaccine roll-out

Denmark has effectively eliminated infections with the two biggest cancer-causing strains of human papillomavirus (HPV) since the vaccine was introduced in 2008, data suggests. The research, published in Eurosurveillance, could have implications for how vaccinated populations are screened in the coming years – particularly as people increasingly receive vaccines that protect against multiple high-risk types of HPV virus. Before vaccination, the prevalence of HPV16/18 was between 15 and 17%, wh

Claude’s memory architecture is the opposite of ChatGPT’s

Claude Memory: A Different Philosophy How Claude memory works, how it differs from ChatGPT, and what these approaches reveal. Earlier this week, I dissected ChatGPT's memory system. Since then, I've been doing the same for Claude and realized something remarkable: these two leading AI assistants have built completely opposite memory systems. In this post, I'll start by breaking down exactly how Claude's memory works—what it stores and how it retrieves information. Then we'll get to the intere

7 Linux terminal basics every beginner should learn first - and why

Jack Wallen / Elyse Betters Picaro / ZDNET Follow ZDNET: Add us as a preferred source on Google. ZDNET's key takeaways The Linux terminal isn't nearly as hard as you think. Understanding the fundamentals will help get you started. These concepts apply to all Linux distributions. When many think about Linux, they think of awkward and complicated commands that are far beyond the reach of new users. What those people may not know is that modern Linux distributions don't require that they work

X Design Notes: Unifying OCaml Modules and Values

In 2020, I released Cubiml, showing how to combine full type inference with structural subtyping in an ML-like language, and earlier this year, I followed it up with PolySubML, extending it with higher rank types and existential types among other features. For my next language (which I’ll call X here, since I haven’t chosen a name yet), I set the ambitious goal of supporting all of OCaml’s most notable functionality on top of everything PolySubML already supports. In this post, I will talk about

Topics: foo let module ocaml type

Byte Type: Supporting Raw Data Copies in the LLVM IR

GSoC 2025 - Byte Type: Supporting Raw Data Copies in the LLVM IR By Pedro Lobo #GSoC , #clang , #optimizations , #IR 22 minute read This summer I participated in GSoC under the LLVM Compiler Infrastructure. The goal of the project was to add a new byte type to the LLVM IR, capable of representing raw memory values. This new addition enables the native implementation of memory-related intrinsics in the IR, including memcpy , memmove and memcmp , fixes existing unsound transformations and en

Topics: byte i8 load ptr type

The Expression Problem and its solutions

The craft of programming is almost universally concerned with different types of data and operations/algorithms that act on this data . Therefore, it's hardly surprising that designing abstractions for data types and operations has been on the mind of software engineers and programming-language designers since... forever. Yet I've only recently encountered a name for a software design problem which I ran into multiple times in my career. It's a problem so fundamental that I was quite surprised

The Expression Problem and its solution

The craft of programming is almost universally concerned with different types of data and operations/algorithms that act on this data . Therefore, it's hardly surprising that designing abstractions for data types and operations has been on the mind of software engineers and programming-language designers since... forever. Yet I've only recently encountered a name for a software design problem which I ran into multiple times in my career. It's a problem so fundamental that I was quite surprised

Baby's first type checker

Austin Z. Henley Associate Teaching Professor Carnegie Mellon University [email protected] @austinzhenley github/AZHenley Baby's first type checker 8/31/2025 Have you ever wondered how type checking works? Me too—let's make one! Python allows optional type annotations like this: def foobar(name: str | None) -> str: return "Fizz!" buzz: int = 42 A type checker goes through the code to make sure that the kinds of values you use match what your functions and variables expect. In the examp

Topics: ast int return self type

The Universe Within 12.5 Light Years

The Universe within 12.5 Light Years The Nearest Stars Number of stars within 12.5 light years = 33 About the Map This map shows all the star systems that lie within 12.5 light years of our Sun. Most of the stars are red dwarfs - stars with a tenth of the Sun's mass and less than one hundredth the luminosity. Roughly eighty percent of all the stars in the universe are red dwarfs, and the nearest star - Proxima - is a typical example. Information on the Nearest Stars Sun - Type= G2 , Magnitu

Type checking is a symptom, not a solution

What if the programming industry’s decades-long obsession with type checking is solving the wrong problem entirely? What if our increasingly sophisticated type systems—from Haskell’s category theory to Rust’s borrow checker—are elaborate workarounds for fundamental architectural mistakes we’ve been making since the beginning? The software industry has convinced itself that type checking is not just useful, but essential. We’ve built entire programming languages around the premise that catching

Protobuffers Are Wrong (2018)

I’ve spent a good deal of my professional life arguing against using protobuffers. They’re clearly written by amateurs, unbelievably ad-hoc, mired in gotchas, tricky to compile, and solve a problem that nobody but Google really has. If these problems of protobuffers remained quarantined in serialization abstractions, my complaints would end there. But unfortunately, the bad design of protobuffers is so persuasive that these problems manage to leak their way into your code as well. Ad-Hoc and Bu

Type-safe and user-friendly error handling in Swift 6

Learn how to implement user-friendly, type-safe error handling in Swift 6 with structured diagnostics and a hierarchical error model. Swift 6 brings an exciting new feature to the language: typed throws. This change makes error handling in Swift much more type-safe, allowing us to define exactly what kinds of errors a function can throw. It’s a small change on the surface, but it opens the door to writing cleaner, more reliable code. Now, you might be wondering — how do we actually use this in

How we built an interpreter for Swift

Bitrig dynamically generates and runs Swift apps on your phone. Normally this would require compiling and signing with Xcode, and you can’t do that on an iPhone. To make it possible to instantly run your app, we built a Swift interpreter. But it’s an unusual interpreter, since it interprets from Swift… to Swift. One of the top questions we’ve gotten is how it’s implemented, so we wanted to share how it works. To make this more accessible and interesting, we simplified some of the more esoteric

We built an interpreter for Swift (a compiled language)

Bitrig dynamically generates and runs Swift apps on your phone. Normally this would require compiling and signing with Xcode, and you can’t do that on an iPhone. To make it possible to instantly run your app, we built a Swift interpreter. But it’s an unusual interpreter, since it interprets from Swift… to Swift. One of the top questions we’ve gotten is how it’s implemented, so we wanted to share how it works. To make this more accessible and interesting, we simplified some of the more esoteric

Writing a C compiler in 500 lines of Python (2023)

Writing a C compiler in 500 lines of Python Posted August 30, 2023 A few months ago, I set myself the challenge of writing a C compiler in 500 lines of Python , after writing my SDF donut post. How hard could it be? The answer was, pretty hard, even when dropping quite a few features. But it was also pretty interesting, and the result is surprisingly functional and not too hard to understand! There's too much code for me to comprehensively cover in a single blog post , so I'll just give an ove

Topics: code emit i32 lexer type

Writing a C compiler in 500 lines of Python

Writing a C compiler in 500 lines of Python Posted August 30, 2023 A few months ago, I set myself the challenge of writing a C compiler in 500 lines of Python , after writing my SDF donut post. How hard could it be? The answer was, pretty hard, even when dropping quite a few features. But it was also pretty interesting, and the result is surprisingly functional and not too hard to understand! There's too much code for me to comprehensively cover in a single blog post , so I'll just give an ove

Topics: code emit i32 lexer type

Comic Sans typeball designed to work with the IBM Selectric typewriters

YOU PROBABLY SHOULDN'T PRINT THIS! Update, July 7 2023: Dave Hayden took the resin-printed typeball concept and improved on it greatly. I'm extremely grateful that he took on all the hard work of iteratively going through and dialing in the perfect values to make a functional ball, and I'm pleased to think I contributed in some way to his achievements. ----------------------------------------- This is a Comic Sans typeball designed to work with the IBM Selectric typewriters that take 88-c

Quirks of Common Lisp Types

By Colin on 2025-08-30 "But I need types," he told me. Humans have a tendency toward binary thinking (pardon the pun). If it's not A, it's B. Perhaps because Lisps have REPLs, they are often thought of from the outside as being dynamic, interpreted languages. Our years of Python have taught us that such languages don't really have strong typing - it's all a wild guess until the interpreter calls foo on a and b and we find out who everyone really is. Yet Common Lisp is fully typed, and AOT com

Primitive tortureboard: Untangling the myths and mysteries of Dvorak and QWERTY

Marcin Wichary December 2023 / 8,000 words / 33 photos The primitive tortureboard Untangling the myths and mysteries of Dvorak and QWERTY This essay was originally published in December 2023 as sixth chapter of the book Shift Happens. 1 There weren’t many who hated QWERTY more. To his credit, there was a lot to hate. The layout seemed random, with letters strewn around without rhyme or reason. Watching someone type on it felt painful: fingers flailed wildly all over the place, common letter

FBI cyber cop: Salt Typhoon pwned 'nearly every American'

China's Salt Typhoon cyberspies hoovered up information belonging to millions of people in the United States over the course of the years-long intrusion into telecommunications networks, according to a top FBI cyber official. "There's a good chance this espionage campaign has stolen information from nearly every American," Michael Machtinger, deputy assistant director for the FBI's cyber division, told The Register. "There's a thought among the public that if you don't work in a sensitive area

Nullable vs. Nullable in C#

Nullable vs nullable in C# One of the most unfortunate parts of the nullability narrative in C# is the reuse of the T? syntax to denote two completely separate concepts for value types and reference types. This leads to some odd and confusing behaviour. As you may know, nullable value types is a much older concept than nullable reference types. Nullable value types were introduced in C# 2.0, whereas nullable reference types came in C# 8.0. And they’re not the same. Nullable isn’t nullable. Fo

Probability of typing a wrong Bitcoin address

I heard someone say that Bitcoin is dangerous because you could easily make a typo when entering an address, sending money to the wrong person, and have no recourse. There are dangers associated with Bitcoin, such as losing a private key, but address typos are not a major concern. Checksums There are several kinds of Bitcoin addresses. Each is at least 20 bytes (160 bits) long, with at least 4 bytes (32 bits) of checksum. The chances of a typo resulting in a valid checksum are about 1 in 232.

The Lobster Programming Language

The Lobster Programming Language Lobster is a programming language that tries to combine the advantages of static typing and compile-time memory management with a very lightweight, friendly and terse syntax, by doing most of the heavy lifting for you. While it is a general purpose language, its current implementation is biased towards games and other graphical things, with plenty of “batteries included” functionality. Lobster is Open Source (Apache v2 license) and can be found on github. Onli

Blogging service TypePad is shutting down and taking all blog content with it

In the olden days, publishing a site on the Internet required that you figure out hosting and have at least some experience with HTML, CSS, and the other languages that make the Internet work. But the emergence of blogging and "Web 2.0" sites in the late '90s and early 2000s gave rise to a constellation of services that would offer to host all of your thoughts without requiring you to build the website part of your website. Many of those services are still around in some form—someone who really

One-time WordPress competitor TypePad ends its slide into obscurity by shutting down

In the olden days, publishing a site on the Internet required that you figure out hosting and have at least some experience with HTML, CSS, and the other languages that make the Internet work. But the emergence of blogging and "Web 2.0" sites in the late '90s and early 2000s gave rise to a constellation of services that would offer to host all of your thoughts without requiring you to build the website part of your website. Many of those services are still around in some form—someone who really

Early blogging service Typepad is shutting down for good

Typepad, a blogging service that launched in the same year as WordPress, has announced that it's shutting down on September 30. "We have made the difficult decision to discontinue Typepad," its team said in a post. Several major publications used it as a backend for their websites in its early years, and it even released an app in 2008, but it soon fell behind WordPress in popularity. The service stopped accepting new signups sometime in 2020 but continued supporting its old customers. One user

Global Salt Typhoon hacking campaigns linked to Chinese tech firms

The U.S. National Security Agency (NSA), the UK's National Cyber Security Centre (NCSC), and partners from over a dozen countries have linked the Salt Typhoon global hacking campaigns to three China-based technology firms. According to the joint advisories [NSA, NCSC], Sichuan Juxinhe Network Technology Co. Ltd., Beijing Huanyu Tianqiong Information Technology Co., and Sichuan Zhixin Ruijie Network Technology Co. Ltd. have provided cyber products and services to China's Ministry of State Securi

Anonymous structavaganza in Zig

Mon Aug 25 2025 When statements disappear, what remains of good semantics? Let’s see what side effects have been introduced! To start, observe this truly primordial ‘C code; struct A {}; struct B {}; void example ( struct A e ); int main (){ example (( struct B){}); } clang output: error: passing 'struct B' to parameter of incompatible type 'struct A' example((struct B ){}); ^~~~~~~~~~~~ THE TYPES ARE UNIQUE. THEY HAVE DIFFERENT NAMES! THE ARE NOMINALLY DIFFERENT. And such it is for all

Do I not like Ruby anymore? (2024)

Do I not like Ruby anymore? 2024/05/28 I recently started working at a Python shop. The reasons behind this choice of employment are very much unrelated to the technology stack. Python is not my favorite programming language. In fact, allow me to drop the euphemism and express my pure, unadulterated thoughts about it: I never liked Python, I see it as a huge red flag and I think the world would be a better place if we all decided to finally move on from it. With that out of the way, let’s talk