Latest Tech News

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

Filtered by: func Clear Filter

Death to type classes

Death ( XIII ) Symbolizes significant change, transformation, and endings, rather than literal physical death. Have you ever seen a Number grazing in the fields? Or a Functor chirping in the trees? No? That’s because they’re LIES. LIES told by the bourgeoisie to keep common folk down. But I say NO, no longer shall we be kept down by deceit! Come brothers and sisters, come and let us create a system of values. Where values are no longer constrained by their type class, but instead merged as a si

Death to Type Classes

Death ( XIII ) Symbolizes significant change, transformation, and endings, rather than literal physical death. Have you ever seen a Number grazing in the fields? Or a Functor chirping in the trees? No? That’s because they’re LIES. LIES told by the bourgeoisie to keep common folk down. But I say NO, no longer shall we be kept down by deceit! Come brothers and sisters, come and let us create a system of values. Where values are no longer constrained by their type class, but instead merged as a si

Repetitive negative thinking associated with cognitive decline in older adults

The present study suggested that the risk of cognitive impairment increased with higher RNT scores among older adults, and the robustness of the finding was confirmed through adjustment for various potential confounding variables. Additionally, individuals aged 60 ~ 79 years, junior high school and above were more prone to suffer from cognitive impairment with a high RNT score. However, the correlation between RNT and cognitive function was not significant in older adults aged 80 to 90 years, or

Visual programming is stuck on the form

Underlying great creations that you love—be it music, art, or technology—its form (what it looks like) is driven by an underpinning internal logic (how it works). I noticed this pattern while watching a talk on cellular automaton and realized it's "form follows function" paraphrased from a slightly different angle. Inventing a form is a hard task, so you must approach it obliquely—by first illuminating the underlying function. This made me realize something crucial about visual programming: it’

A beginner's guide to extending Emacs

With that prelude out of the way, let's begin. Inside of emacs you can call up a list of potential completions by using the keyboard shortcut M-. (that’s "hit the meta key along with period", where "meta" is the Alt key for me). This applies in a wide variety of scenarios, like when completing class names or variables. If we want to ask emacs to hand us a list of potential references, then the system we want to hook into is this completions system. (This is the only time I'll assume we know wh

A Beginner's Guide to Extending Emacs

With that prelude out of the way, let's begin. Inside of emacs you can call up a list of potential completions by using the keyboard shortcut M-. (that’s "hit the meta key along with period", where "meta" is the Alt key for me). This applies in a wide variety of scenarios, like when completing class names or variables. If we want to ask emacs to hand us a list of potential references, then the system we want to hook into is this completions system. (This is the only time I'll assume we know wh

Introduction to Nyquist and Lisp Programming

From Audacity Development Manual There is also a standalone version of Nyquist available from the Carnegie Mellon University Computer Music Project. Nyquist was written by Roger B. Dannenberg and was intended to be used as a complete programming language for audio synthesis and analysis, with support for MIDI, audio recording and playback, file I/O, object-oriented programming, profiling, debugging and more. Audacity uses a subset of Nyquist's functionality, allowing you to use Nyquist functi

NT OS Kernel Information Disclosure Vulnerability

Reading Time: 4 minutes Introduction Microsoft mitigated many traditional kernel information leaks starting with Windows 11/Windows Server 2022 24H2, including calls such as NtQuerySystemInformation() (when used with the SystemModuleInformation class), by suppressing kernel base addresses unless the caller had the SeDebugPrivilege , typically reserved for administrative processes. That change effectively neutered one of the most accessible KASLR bypass techniques, and, without knowledge of the

Go for Bash Programmers – Part II: CLI Tools

This is the second part of a series introducing Bash programmers to Go. This part is about basics of writing CLI tools in Go. See the first part for the language building blocks. Our first CLI tool Bash is often used to write small CLI tools and automation. Let's start with an example CLI tool that prints "hello" to terminal. The Bash version is pretty simple: #! /bin/bash echo hello Now, let's implement a Go version. We start by creating a directory where the first version of our program wi

Contracts for C

C++ seems to finally converge with their contracts proposal, https://wg21.link/p2900. I decided to give it a try and come up with ideas how such a thing would look for C. This is in early stages, not a full proposal yet, and still would need implementation by some of the major compilers. In particular, the C++ feature is full of sidetracks that I don’t like at all, such as user-defined global handlers and ignorability. But there is a core of ideas, syntax and semantics that I found interesting

NPM debug and chalk packages compromised

Starting at September 8th, 13:16 UTC, our Aikido intel feed alerted us to a series packages being pushed to npm, which appeared to contain malicious code. These were 18 very popular packages, backslash (0.26m downloads per week) chalk-template (3.9m downloads per week) supports-hyperlinks (19.2m downloads per week) has-ansi (12.1m downloads per week) simple-swizzle (26.26m downloads per week) color-string (27.48m downloads per week) error-ex (47.17m downloads per week) color-name (191.71

Anonymous recursive functions in Racket

Anonymous recursive functions in Racket Context Some languages, like PowerShell, have “anonymous recursive functions”. That is, normally, a function needs to use a name to refer to itself to recur. But “anonymous recursion” means the language has some special mechanism by which the function can refer to itself without having to explicitly introduce a name. In some contexts, this is called an anaphoric reference. Code Here we show how we can easily implement this feature in Racket. The file a

Developing a Space Flight Simulator in Clojure

Developing a Space Flight Simulator in Clojure In 2017 I discovered the free of charge Orbiter 2016 space flight simulator which was proprietary at the time and it inspired me to develop a space flight simulator myself. I prototyped some rigid body physics in C and later in GNU Guile and also prototyped loading and rendering of Wavefront OBJ files. I used GNU Guile (a Scheme implementation) because it has a good native interface and of course it has hygienic macros. Eventually I got interested

Heap-based buffer overflow in Kernel Streaming

Reading Time: 4 minutes From time to time, while digging through internals during our research, we stumble upon quirks or vulnerabilities that, although not immediately useful for operations or exploitation, are still noteworthy. Rather than letting these findings fade away, we decided to responsibly disclose them to the vendor. One such case is CVE-2025-53149, a heap-based buffer overflow in the Kernel Streaming WOW Thunk Service Driver, which Microsoft patched on August 12, 2025. The vulnera

What Is the Fourier Transform?

As we listen to a piece of music, our ears perform a calculation. The high-pitched flutter of the flute, the middle tones of the violin, and the low hum of the double bass fill the air with pressure waves of many different frequencies. When the combined sound wave descends through the ear canal and into the spiral-shaped cochlea, hairs of different lengths resonate to the different pitches, separating the messy signal into buckets of elemental sounds. It took mathematicians until the 19th centu

Physically based rendering from first principles

Physically based rendering from first principles In this interactive article, we will explore the physical phenomena that create light and the fundamental laws governing its interaction with matter. We will learn how our human eyes capture light and how our brains interpret it as visual information. We will then model approximations of these physical interactions and learn how to create physically realistic renderings of various materials. Chapter 1: What is light? We are all familiar with li

Isolated(any)

Ahh, @isolated(any) . It’s an attribute of contradictions. You might see it a lot, but it’s ok to ignore it. You don’t need to use it, but I think it should be used more. It must always take an argument, but that argument cannot vary. Confusing? Definitely. But we’ll get to it all. To understand why @isolated(any) was introduced, we need to take a look at async functions. let respond To Emergency : () async -> Void This is about as simple a function type as we can get. But, things start to g

Preserving Order in Concurrent Go Apps: Three Approaches Compared

Concurrency is one of Go’s greatest strengths, but it comes with a fundamental trade-off: when multiple goroutines process data simultaneously, the natural ordering gets scrambled. Most of the time, this is fine – unordered processing is enough, it’s faster and simpler. But sometimes, order matters. When Order Matters Here are three real-world scenarios where preserving order becomes critical: Real-time Log Enrichment: You’re processing a high-volume log stream, enriching each entry with use

Spectrum – catching clojure.spec conform errors at compile time

spectrum A library for doing static analysis of Clojure code, catching clojure.spec conform errors at compile time. Wait what? It's like core.typed, but it relies on clojure.spec annotations. So it's an optional static type system? Kind-of. It finds errors at compile time, and predicates kind of look like types. So sure. Current Status Developer Preview, not yet ready for any kind of use. Current development is working towards making spectrum self-check. Goals usable pragmatic readab

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

SDS: Simple Dynamic Strings library for C

Simple Dynamic Strings Notes about version 2: this is an updated version of SDS in an attempt to finally unify Redis, Disque, Hiredis, and the stand alone SDS versions. This version is NOT binary compatible* with SDS verison 1, but the API is 99% compatible so switching to the new lib should be trivial. Note that this version of SDS may be a slower with certain workloads, but uses less memory compared to V1 since header size is dynamic and depends to the string to alloc. Moreover it includes

Antirez/sds: Simple Dynamic Strings library for C

Simple Dynamic Strings Notes about version 2: this is an updated version of SDS in an attempt to finally unify Redis, Disque, Hiredis, and the stand alone SDS versions. This version is NOT binary compatible* with SDS verison 1, but the API is 99% compatible so switching to the new lib should be trivial. Note that this version of SDS may be a slower with certain workloads, but uses less memory compared to V1 since header size is dynamic and depends to the string to alloc. Moreover it includes

Capture Checking in Scala

Hands on Capture Checking Introduction I gave a live coding session on capture checking at Scala Days 2025. Let’s be honest: it was essentially a failure, mostly because I have very little live coding experience and woefully underestimated how long it’d take to go through the material. I was stopped maybe 10% in, much to my annoyance and that of Martin Odersky, who’d kindly agreed to be there and help with the questions I was likely to get. This article is a form of apology for my failure: at

A visual introduction to big O notation

Big O notation is a way of describing the performance of a function without using time. Rather than timing a function from start to finish, big O describes how the time grows as the input size increases. It is used to help understand how programs will perform across a range of inputs. In this post I'm going to cover 4 frequently-used categories of big O notation: constant, logarithmic, linear, and quadratic. Don't worry if these words mean nothing to you right now. I'm going to talk about them

Dynamically patch a Python function's source code at runtime

written by Eric J. Ma on | tags: In this blog post, I share how I discovered a powerful Python trick: dynamically changing a function's source code at runtime using the compile and exec functions. This technique enabled me to build more flexible AI bots, like ToolBot, that can generate and execute code with access to the current environment. While this opens up exciting possibilities for LLM-powered agents and generative UIs, it also raises serious security concerns. Curious how this hack can s

Waitgroups: What they are, how to use them and what changed with Go 1.25

Imagine the following problem: you need to process hundreds of records and generate a single output. One way to solve this is to process each record sequentially and unify the output only at the end. However, this can be extremely slow, depending on the time spent processing each record. Another way is to process them concurrently, speeding up the overall time. In my post about introduction to concurrency, I talked a bit about goroutines and channels . Now, I’ve decided to talk about waitgroups

Visualizing distributions with pepperoni pizza and JavaScript

Monday, August 18, 2025 There's a pizza shop near me that serves a normal pizza. I mean, they distribute the toppings in a normal way. They're not uniform at all. The toppings are random, but not the way I want. The colloquial understanding of "random" is kind of the Platonic ideal of a pizza: slightly chaotic but things are more or less spread out over the whole piece in a regular way. If you take a slice you'll get more of less the same amount of pepperoni as any other slice. And every bite

Show HN: I was curious about spherical helix, ended up making this visualization

Trying to understand how to move objects in 3D space MOVING OBJECTS IN 3D SPACE tap/click the right side of the screen to go forward → Have you ever wondered how to move objects along a spherical helix path? Okay… probably not, right? But one morning, this question popped into my head. It stuck with me long enough that I ended up diving into a few articles about it. From there, it spiraled into lots of explorations, trying to figure out how to move objects in 3D space. From a simple circ

Excel's new Copilot function turns your prompts into formulas - how to try it

Microsoft / Elyse Betters Picaro / ZDNET ZDNET's key takeaways A new COPILOT function in Excel lets you use AI in a formula. The new skill is now available to Microsoft 365 insiders. Reduces some of the complexity involved in creating formulas. Get more in-depth ZDNET tech coverage: Add us as a preferred Google source on Chrome and Chromium browsers. Using functions in Excel can sometimes be challenging, especially if you're trying to devise complex formulas to work with your data. Now Mic