The Neon Kiosk

Just an ordinary looking virtual kiosk. There are journals and blogs in it!

Submit your site | About

Just a funny looking Kiosk! Just a funny looking Kiosk! Just a funny looking Kiosk! Just a funny looking Kiosk! Just a funny looking Kiosk!

Journals | Blogs

2024-09-15 - Freewheeling Apps

I've implemented the Mandelbrot set several times before, but zooming manually into the Mandelbrot set on a touch screen is surprisingly delightful.

Get it from the Lua Carousel Devlog.

It takes only 20 lines of code to implement the core of the Mandelbrot set. But then it takes 20 lines to specify the palette. And 100 lines to adjust the viewport in response to touch events. And another 10 lines to render at lower precision while touches are in progress.

This does run into the limits of floating-point precision at some high level of zoom.

2024-09-10 - Freewheeling Apps

My Sokoban client now includes the Microban puzzle sets.

"Sokoban puzzles crafted with the express aim of being tiny, tight and foundational for Sokoban idiom.. Effortlessly teaching you an entire language of mechanics through focused and methodical exploration of a ruleset." — a nice 2-minute video review

Download: sokoban.love

How to switch to the Microban levels:

(Or play them in a non-mobile web browser at Sokoban Online.)

(Microban is by David W. Skinner.)

2024-09-09 Fractranfooding - Devine Lu Linvega's journal

We are again in familiar waters, with their familiar weather radio voices, tugboats, madronas, lean little swallows, cormorants, banana slugs and extremely bitter IPAs. We wake up and it's still dark out, summer must be slipping away; the sun looks all burnt up, red and angry against the morning haze. The music aboard is changing to an appropriate shoegaze, as if to match the rustling of leaves and wailing of the wind passing through the shrouds.

Six or seven months has been enough to fall so far behind software updates, to miss just enough versions, that even the part of the program that looks for updates doesn't recognize the new server endpoints. As expected, most updated things got worse, a few of them became quite awful, as it typically goes with software. A friend uses necrotic as opposed to bitrot, because bitrot implies things have been left to decay but software necrosis is rotting while being alive and maintained.

2024-09-08 Travels, trials and tribulations - Apropos of nothing

August was a month with ups and downs. Its highlight was the three-day trip to visit our relatives. There was more of the family there, always a good thing. We traveled okay on the way back, except for the bus running into a traffic jam between towns and doubling the time to the train station. Heading out however? That was a nightmare. We've had worse along that route, but ugh. Securing any kind of transportation out of this city is an adventure. No wonder the population keeps growing (despite the notorious crowding).

And so it happens that we completely failed to go on the day-trip to the mountains that we've been dreaming of since winter. Oh well, maybe next summer.

Oh yeah, one other thing that happened in August was going from Debian 10 (which went out of warranty) to Debian 12 "Bookworm", via this little distribution called BunsenLabs Linux. Try it out, it does a lot of things right. The upgrade went without a hitch, and now I can enjoy up-to-date apps again. Guess they'll be old again in four years, but by then it will take a different OS to keep this old computer going, at the rate bloat is increasing even in the lighter Linux distributions. Maybe Haiku.

2024-09-08 - Freewheeling Apps

While I recently made text2.love easy to embed in other LÖVE projects and documented its API, the true interface of this thing doesn't lie in how you wire it up its bog-standard handlers. No, it's what you do in a workhorse internal method called I.get_rect which gets called on every frame and for every input event.

Here's a very silly example of the sort of app that is now easier to create: 
Screenshot of the following text in an editor window -- except the fractions and nested fractions are shown vertically, with numberator and denominator separated by a horizontal line:

# Simplifying fractions

Suppose we have a fraction:

2/6

The GCD of 2 and 6 is 2.

Dividing both numerator and denominator by 2, we get:

(2/2) / (6/2) = 1/3

Repo
Compare with text2.love

2024-09-07 - Freewheeling Apps

Max Bernstein and I have been playing with and putting together a rudimentary 0-dependency cross-platform platform for GUIs. Standing on the shoulders of Fenster and microUI, 2KLoC to support Linux, Windows and Mac without any SDL. (No shade on SDL, though.)

Here's a longer blog post by Max.

Repo

2024-09-02 - Freewheeling Apps

Now that I have a nice design for a text editor widget, I've been putting it through its paces, particularly for ideas like syntax highlighting and something I call "syntax geometry". Here's a kinda whimsical toy where '+' flips the direction of writing from horizontal to vertical and vice versa.

I only had to put this rule in in one place, and all my support for editing, moving and clicking on the screen to position the cursor continues to work.

(I did need to generalize a couple of things to get to this point.)

2024-09-02 — August - Caffeine's Monthly Digest

After struggling for the last few months, I decided to confront what was hurting me and started organizing my life. A key step was beginning psychoanalysis, which led to deep reflection on many aspects and how to handle different situations. After spending too much time reacting to self-created problems, I began my recovery process in August.

The month was even more special as we welcomed a new puppy into our family. After years with cats who have since passed, little Lorem brings a new spark to our lives, especially benefiting my child.

Lorem, the puppy

Cutting back on alcohol has cleared my mind, allowing me to think more clearly and make better decisions. As a result, my focus has improved tremendously, and my anxiety has decreased significantly.

This month was less productive than previous ones, likely due to the productivity from a prolonged hypomanic episode. However, I feel more at peace with myself, even without achieving as much.

Looking forward to what September will bring.

2024-08-30 - Freewheeling Apps

The patterns of Barricelli

I've been obsessed recently with the work of Nils Aall Barricelli who pioneered cellular automata 15 years before John Conway, artificial life 20 years before Christopher Langton and chaos theory 15 years before Benoit Mandelbrot. Barricelli called his creation "symbioorganisms", but it's interesting to try to demystify them without any analogies with living organisms.

The playing field is a finite, circular 1D space of discrete squares. Squares can be occupied by one of many different kinds of elements. Each kind of element has a propensity to move through the space with a constant step. To this space of elements striding around, Barricelli adds 3 rules. (Well, he experimented with many different tweaks in his papers, but this is one concrete, elegant formulation.)

Just adding the first 2 rules gives rise to some very interesting behavior. Here's a pretty picture:

In this picture, each row of pixels represents the state of the space at one point in time. Time moves from the bottom of the picture to the top. The space is seeded randomly with a few different kinds of elements. Elements that stride rightward are colored shades of green. Elements that stride leftward are colored shades of blue. Red pixels are empty squares.

This picture shows that at the start we have a lot more differences in color, but in a few generations the "populations" (coherent bands of color) quickly become more stable.

Zooming in, we see that what looks like flat shades of color are really extremely regular patterns of the different kinds of elements. These are Barricelli's "symbioorganisms".

How could this be? The different colors of elements stride in different directions at different rates. How do stable patterns emerge? Here's one example that shows what's going on:

Here I've annotated the zoomed-in view with each element's stride, and lines showing each element's motion. The blues (B) move 3 squares left per time step, while the greens (G) move 2 steps right. However, a configuration of BBGGG is stable with just these rules. Each pair of blues "switches partners" with a different triple of greens going the other way. The effect is of a stable periodic pattern with a period of 5 squares.

I've tried many different random initial conditions, and such periodic patterns always occur. Barricelli calls this phenomenon "spontaneous generation", and it is remarkably robust. The BBGGG pattern above is nowhere near the only possible organism. Another simple one is BBBGG:

Very similar phenomenon of groups of like elements "switching partners."

One example that suggests why these patterns robustly occur is to introduce a single empty (red) square into a field of BBBGG. What we see is the empty square "move" leftwards at a rate of 3 squares per time step — and it leaves to its right a growing field of BBGGG. Similar effect to a catalyst or enzyme.

The consistency with which periodic patterns occur is largely due to the balance between creation and destruction rules. Here's a different and much more complex periodic pattern elsewhere in the same space:

This is a complex pattern with a period of 25 squares, and for its stability it requires both destruction (places where the white lines of movement intersect, annihilating colliding elements) and creation (red lines that cause a square to create a second copy of itself).

Open questions

Philosophical aside #1

One interesting claim Barricelli makes (pg 2): a pattern that reproduces itself tends to also propagate the environment that it arose in. If something about the environment caused an organism to spontaneously arise, almost by definition the organism is required to preserve that property to reproduce itself. So he claims that the insides of cells likely are very similar in some ways to life on earth back when RNA spontaneously emerged. No way to be sure, of course, but the argument kinda hangs together for me. And the empirical evidence for this is that the Earth is 4.3 billion years old, and life on the earth is around 4 billion years old. Once conditions were right, life basically emerged in a cosmic eyeblink. One way to view all of later life is as ways to protect that initial environment in the face of more and more hostile environment changes, to create little bubbles of the primordial soup inside us all.

And it's fractal. As new structures arise to protect old bubbles, they are themselves self-propagating and they need their own environments preserved.

A specific property of the environment isn't necessarily helpful to all life. One organism may need some environmental property that another organism finds utterly hostile. Just by being first, an organism will tend to propagate the environment it needs. And by doing so it's competing with even the possibility of other organisms that don't exist yet.

This line of thought leads me to wonder if it may be easier than I thought to find new conditions suitable for the emergence of life. I know physicists run large simulations of the early universe on supercomputers, which generate plausible compositions of elements over time as supernovas occur. I also vaguely remember from TV programs long ago that we've tried to run simulations of earth's primordial soup using best guesses of its early composition. What if we put these two ideas together? Given a simulation of the early cosmos, generate candidate stars, candidate planets around those stars, plausible initial distributions of elements on those planets, conditions of temperature and pressure. Then simulate brief slices of time. If (my interpretation of) Barricelli is correct, life either emerges instantly or not at all, and we may be able to try out a variety of conditions relatively cheaply. And maybe identify candidate chemistries that help molecules reproduce.

There's probably some professor somewhere who is aware of past research in this vein and can point me at papers :)

Philosophical aside #2

One way to view the story of our evolution is as a leveling-up of goals:

Credits

Some example code from Simone Conradi and some pointers to literature from Karsten Schmidt got me going. This paper was my primary source.

2024-08-28 - Rex's journal

Just finished Delicious in Dungeon last night. Best anime I've seen in years! Senshi is an amazing character. Honestly all the characters are really good. Beautiful animation...I am just glad to have watched it. I can't wait for season 2 and I know I'll be doing a rewatch of Season 1.

2024-08-26 - Suspension of disbelief - Cutting Tofu

I must be soft and hard at the same time, but these bones of mine have atrophied and deteriorated; I’ll turn into dust soon, so please, just let me have this one. My hippocampus is damaged and I can’t remember what I had for lunch yesterday. I’m still a recovering amnesiac, but I remember everything, a visceral vision of things that came and went; I start swearing at the memory of you— thank God I’m not who I used to be. Or maybe, I was never the person you thought I was, and what a relief. Let me shed what’s left of my adolescent skin. This is me saying goodbye, to the me from five seconds ago, to the me from last week’s brush with danger, to the me from that year I said I had nothing to lose. I can’t go back now, I’ve seen too much.

2024-08-25 - Rex's journal

Plex Server part 2 - 18 tb have already been filled. I think I watch too much tv. New project is creating my own custom channels using ErsatzTV.

2024-08-25 Room for thought - a

Pino and crew arrived back in familiar waters on August 11th, a bit earlier than we had planned, but after many grey months, we were both looking forward to experiencing some form of summer-like weather. We anchored in Von Donop inlet on Cortes Island, a good place to chill out and to get things done.

My mind has been occupied with weather and currents of late, now that we are still, I have room in my head to tackle some difficult problems.

I finished a new comic sequence for Hakum named Smile.

2024-08-24 Fractalfooding - Devine Lu Linvega's journal

I always fall within visible range of a technical solution needed to solve some generic software issue tormenting me but ever so far as to not be capable of navigating the tool-chain involved in applying said change to its source, and so it goes, each time this occurs a new software is born to replace it.

Years melt away, no tool-chain moat is ever bridged, programs of every shape and form have been transcended, the dogfood thoroughly consumed. "Blessed!", for the transformation of the damned into doghood is complete.

2024-08-23 - Rex's journal

The server is now on my Linux laptop. Ultimately I went the ez option. Didn't do Docker or anything yet since my set-up is not that complex. It was too much. The main benefit was that so resources wouldn't be taken from my gaming PC, and that my Ubuntu laptop has a CPU much better for hardware encoding on the Plex server.I hadn't accumulated much metadata or watch history so losing that was whatever. Simple is good for now, I'm sure the complexity will grow over time.

2024-08-21 - Rex's journal

It was actually chilly this morning! Fall is finally near. This summer flew by. Also, my 18tb drive was not DOA. It simply was not compatible with my Mediasonic Probox enclosure. I bought another enclosure and it works fine. I think it's because of this new "Power Disable" feature which seems to be pretty universally hated. Putting software in a power pin..crazy. I am only pretending to understand it. Anyway I finished copying all my data over to the bigger drive. This weekend I'll be lookinusing usiggfgxcffdfffdfdfg to finally transition the Plex server over to my Ubuntu laptop. I'll be learning how to configure a Docker container. It should be a fun learning weekend.

While I do like Neocities, I must admit that diving into this server set-up has me curious about self-hosting.

2024-08-19 - Rex's journal

Not too many site updates lately. Been keeping very busy. Took on a new role at work (same job, just a new role on the team) which keeps me having a "seat at the table" so to speak. I tend to do well with this at work where I fill in the team's gaps and do the fun type of work while usually managing to avoid all the corporate BS around metrics and reporting and crap.

As for the home life, we've fallen into a nice routine of having a big family dinner every 2 weeks with my wife's family. Last night we had bbq and I made a banana pudding that received rave reviews. There were so many layers of goodness in that thing.

I am still having fun building out my home server. My 14TB drive is about full. I had an 18tb drive I ordered but it was DOA. I like the simplicity of having a regular laptop with an external HDD plugged in. It's not the high end option but it's the equipment I have. Eventually, I'll go for the full NAS and RAID option.