Dec 19, 2023
4 example scripts of ~30 lines each that should be easy to mix and match on a phone or tablet.

Screenshot of a tiny script running within Lua Carousel. The yellow rectangle is a button that modifies the red circle. Screenshot of a blue slider that modifies a red circle as you adjust it left or right. Screenshot of a simple text editor containing some text and a blinking cursor. Screenshot of a tiny script for recording and playing audio.

Read more on the Lua Carousel devlog.

permalink

* *
Dec 18, 2023
A voice recorder you can tweak the source code for, right on your Android phone

Screenshot of Lua Carousel running a voice recorder. Below the standard Lua Carousel menu there's a single button to create a new recording. Below that are recordings  with buttons to record/stop and play.

One little detail here involves Android permissions. I almost ended up asking for microphone permissions in Lua Carousel. Luckily I managed to stop and ask myself what the user experience is. "Hi, I'm Lua Carousel, could I please have access to your mic?" Ick! It seems like a bad idea to ask for a permission for the whole app just in case some single script uses it. Probably affects the conversions from this particular blog post, but I don't want to feel like I'm contributing to the general fatigue over apps asking for permissions. :shrug:

Read more on the Lua Carousel devlog.

permalink

* *
Dec 17, 2023
One nice reusable abstraction my LÖVE apps have all converged on is an immediate-mode button primitive. I draw all my buttons each frame along with all the callbacks they need, and a couple of framework-y lines of code in the mouse-press callback is all it takes to get them working. Last night I realized (while poking around in the LÖVE forums) that my hacky sliders in Lua Carousel's settings admit a similar abstraction (even better than the one there). The only additional complexity is it needs a couple more lines in the update callback that continually refresh the backing value as you drag the slider.

permalink

* *
Dec 16, 2023
Conway's game of life with colors


I think I'm going to call this variant "ChromaCline"

Read more on the Lua Carousel devlog.

permalink

* *
Dec 15, 2023
The Game of Life is one of my favorite programs, but I've never tried to go deep in learning about it, and as a result I still learn fairly obvious (with hindsight) things about it. This time I realized two things:

  1. I don't need to keep checking if a cell is in bounds. Just don't update a border of cells!
  2. I don't need to clean up the new array at each time step! :facepalm:

permalink

* *
Dec 14, 2023
Yesterday I turned a couple of my unused kids apps into just scripts you could run on Lua Carousel.

sum-grid.love

spell-cards.love (exercising my phone's microphone for the first time)

Both qualified successes. I didn't uncover any bugs, but the programs were 250 and 350 lines long, which starts to feel too long for my implementation of scrollbars.

permalink

* *
Dec 12, 2023
Huh, I just realized I've been doing #DecemberAdventure all along and just hadn't thought about it like that.

Day 2

Day 4

Day 7

Day 9

Day 10

Day 11

permalink

* *
Dec 6, 2023
So Mu was on the advent of Qemu calendar yesterday, and I totally missed it.

Qemu Advent Calendar, day 4

permalink

* *
Dec 3, 2023
This bug I foisted on myself today was a real "things are not as they appear" puzzle.

bugfix: only check for settings menu when open

permalink

* *
Dec 2, 2023
I fixed several embarrassing bugs in Lua Carousel in the past week, including:

  • Buttons now flash to give you feedback that, e.g. the file was actually saved like you asked and you didn't fat-finger the wrong button.
  • Tapping didn't always move the cursor.
  • If you selected some text and hit 'clear', the app would crash.
  • Dragging on empty space above the settings menu selected text beneath.
  • Lots of jitteriness.

Please give it a try.

By way of apology please accept this screenshot of the tree L-system fractal (https://en.wikipedia.org/wiki/L-system#Example_2:_fractal_(binary)_tree) running within Lua Carousel

permalink

* *
archive
projects
writings
videos
subscribe
Mastodon
RSS (?)
twtxt (?)
Station (?)