RSSAmplifier

Blog

Haltp

Notes about life, programming and the universe.

haltp.orgRSS feed ↗13 posts

Latest posts

Downloads

Owl Lisp, a programming language ( documentation ) 28.10.2023: v0.2.2: C ( sig ), source ( sig ), git 31.12.2022: v0.2.1: C ( sig ), source ( sig ), git Led, a text editor ( documentation ) 1.1.2023: v0.2.1: C , git Radamsa, a fuzzer ( documentation ) 2.11.2023: v0.7: C , sig , release 7.5.2019: v0.6: C , source Blab, a grammar tool ( documentation ) v0.2: C Ei, an implementation of the standard…

Solar Fuzzing

One of my occasional hobbies is looking for interesting bugs from programs, such as browsers. I don't have spare time for it myself, though, so this has to be a mostly automated process. In practice it involves running my mostly open source fuzzing tools on one or more computers. When some result is flagged as interesting and new, I have a quick look if it looks at all dangerous. This process, and…

Mountains of Bugs

It is interesting to apply a biologically inspired point of view to programming, as in biological computers , from many distances. A program is, broadly speaking, a piece of data to specify how a given classical universal computer should behave. How that data is represented and what plays the role of the universal machine are implementation details. What matters is how the end result behaves. The…

Owl Lisp 0.2

Owl Lisp is a simple programming language. The main motivation for writing it was to get a portable system for writing standalone programs in a subjectively pleasant dialect of LISP, which in this case means a minimal core language and runtime, purely functional operation and support for asynchronous evaluation. Contents: Getting Started Requirements Building Installation Testing Operation…

Indie Recursion

Recursion is at the heart of programming. Recursion allows a function to call itself, making it possible to define small functions that work on data of unbounded sizes. Loops are also a form of recursion, just in disguise. A simple example of a recursive function is the factorial. We can define it recursively for example in Scheme and JavaScript as: function fakt(x) {if (x == 0) return 1; return x…

Hash Based Signatures I

Modern hash functions are essentially magic. They map arbitrary amounts of data to effectively unique identifiers astonishingly well. Let's take SHA-256 as an example. Anyone can implement a simple version of it. It's around 100 lines of code. Piece of cake. Now hash some random data with it. To the best of our understanding, even adversaries equipped with quantum computers cannot effectively…

Don't Microwave Water

A few days ago I was cleaning the microwave by boiling some water in it. Steam makes scrubbing dirt off the walls easier. This time, instead of boiling after a few minutes, the water seemed calm. I thought the power setting must be off and continued doing the dishes. Then the water exploded. All of the water flew out of the cup in a burst of steam and boiling water, accompanied by a surprisingly…

Natural Computers

Biology and computer science are rarely mentioned in the same sentence. Biology works with a massive array of complex molecules and their interactions. As our technology and computer science progress, though, we're starting to see some similarities between our ideas and solutions nature has found for its information processing needs. Let's start with the maths of computing. We model computation…

Do We Need If?

Introduction to the Scheme programming language specification starts with a wonderful advice: " Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. " Scheme is a good example of language based on this approach. There is a fairly small set of primitive language constructs…

Look Ma, No Data Structures!

Theory and Hand-waving Data structures are an integral part of programming. As Niklaus Wirth put it, algorithms + data structures = computer programs. They are to computers like time and space are to us. We need both. Well, both of them, or one that contains both. Turns out that our physical universe is actually better understood as a four dimensional space-time, in which events in time can…

Web Development Development

Theorem : The amount of code and infrastructure required to present text on a web page doubles every 17 months. Corollary : Future web apps will require quantum computers. #post #programming #web

Modern Scribes

Scribes were valued professionals in the ancient Egypt. Being a scribe came with benefits such as not having to worry about mundane tasks like manual labor, taxes or serving in the army. The profession required a long training. Frequently the knowledge and title were passed on from fathers to sons. Scribes were valued, because they had mastered the art of storing information on inanimate objects…

Solar Powered A/C

An experiment was carried out to see if our house could be cooled using solar power. Background In the not too distant future, everything must be powered by renewable energy. Our current renewable energy production isn't sufficient, so we will have to reduce the value of everything, consume less, and find ways to collect more renewable energy. Air conditioning uses a lot of energy. Is it something…