RSSAmplifier

Blog

random:seed

Recent content on random:seed

randomseed.ioRSS feed ↗16 posts

Latest posts

We, the Clients. How public health care turned citizens into petitioners and responsibility into paperwork

The problem with public health care is not only underfunding, poor oversight, or the absence of yet another audit. The problem is a model in which society pays, doctors and facilities increasingly operate as market actors, and the patient is left in the role of a petitioner who can, at most, file a complaint. Before we point to the guilty, however, it is worth seeing something less theatrical:…

AI in Culture and Consciousness. Harbingers of the Post-Information Era

Does AI have consciousness? The question opens a path to something more consequential – to the nature of consciousness itself, the cultural consequences of cheap intelligence, and to what actually becomes expensive when thinking becomes a service.

Bankster: money as data. Currencies, amounts, contracts, and financial operations in Clojure

Money is one of those areas where small omissions can generate technical debt faster than almost any other slice of an application domain. Not because “finance is hard,” but because average code likes to pretend it’s simple. Bankster is an attempt to do this thing properly.

Podcast: Inventory. Librarians to the Rescue

Starting today, podcasts distributed under the random:stream section have a new home. This short tale — with some technical details and a surprise ending — explains why and how.

(def random) #001: Abstractions

What is abstraction in computer programming? Explanations and code examples in Clojure and Python.

References Are Good

Last night I received an e-mail in which one of my visitors asked me a few questions after reading the post about parsing phone numbers in Clojure. The question was seemingly simple and concerned a technical detail of software construction, but in reality the reader touched on a very important subject that I had been pondering years ago, and I decided to summarise it here.

EEG is chasing foamy waves. Meditation experiment with the Muse 2 headband

Every couple of years, there’s an increase in devices that enable individuals to measure the bioelectrical activity of their brains at home. These devices exploit the occurrence of fluctuating brain wave frequencies, which vary according to the user’s psychophysical state. Driven by a pandemic-induced fondness for my residence, I decided to purchase one of these gadgets. After several weeks, I…

Read Me Clojure, Pt. 6 – Bindings and namespaces

Bindings allow us to identify in-memory objects used in our programs (to give them stable identities), while namespaces make it possible to manage visibility and encapsulate fragments of source code. In this installment, we will learn how to understand these mechanisms in Clojure and how to use them.

Read Me Clojure, Pt. 5 – Type Systems

Data types allow us to classify values according to various characteristics and to establish relations between the resulting classes. This helps the programmer define operations performed on data of different kinds, and it helps language mechanisms manage memory and detect certain kinds of errors. In Clojure, we deal with several interrelated type systems that we can extend, and by leveraging…

Read Me Clojure, Pt. 4 – Data Structures

Data structures, alongside algorithms expressed as operations, are a fundamental component of every computer program. When building applications, we choose structures that will be best suited for processing data within our adopted model.

Read Me Clojure, Pt. 3 – Basic Constructs

The specific syntax of Lisp dialects allows one to precisely define and distinguish basic constructs, add new syntactic elements, and even transform program code while it is running. This stems from the use of simple yet well-thought-out ways of organizing and representing source code.

Read Me Clojure, Pt. 2 – First Steps

Clojure, like every Lisp dialect, comes equipped with an interactive console that lets us experiment and test our knowledge in real time. Before we move on to the theoretical foundations of the language, let us get some hands-on contact with its mechanisms.

Read Me Clojure, Pt. 1 – Lisp

Clojure is a general-purpose functional programming language based on the Lisp-1 model. Its reference implementation runs on the JVM, but there are also editions that work in other environments – for example, the popular ClojureScript, which compiles to JavaScript. Clojure is a Lisp created with concurrent processing and the Java ecosystem in mind.

Shellshock and the Story of the Environment

At the turn of September and October 2014 the world learned of a security vulnerability that had been lurking for years in the GNU Bourne Again Shell (a.k.a. Bash). Most IT-security outlets had already covered the topic and published appropriate remediation methods, yet what caught my attention was the educational aspect of the flaw – in that regard it is a “good bug”, that is, one that can be…

Bitsquatting. Cosmic radiation and breaking security

When typing a website name into the browser’s address bar, mistakes sometimes happen. Instead of visiting the right site, we end up on a so-called domain parking page, or in a completely different service. There are also less safe situations—sites deceptively similar to the originals, used to siphon data or infect a computer with malware. Let’s imagine that a similar situation could occur even…

Evil Packages. Attacks Targeting Package Repositories

Attacks that rely on setting up fake update servers are not as difficult to carry out as one might think. The main reasons are administrators’ carelessness and the absence of robust version-publishing processes, although occasionally we see astonishing attack vectors that are hard to anticipate.