update all and add new log files

This commit is contained in:
exquisitecorp 2021-02-12 03:22:49 -05:00
parent e67f68c354
commit bd3d4f4c25
12 changed files with 173 additions and 34 deletions

View File

@ -0,0 +1,14 @@
## Algorithmic Walk II ⚙️
=> . ..
...transcribed from a voice memo recording I took at the end of my walk when I finished following my instructions
> Ok, so this is the end of my second algorithmic walk. I'm about a mile from home, about 12 or 13 minutes. I've also spun in a crude circle but in a different route than my previous walk. This time my instructions were to go forward two blocks, right one, choose a random direction, then go forward 3 blocks, left forward one, and choose a random direction. Then repeat that whole instruction a second time."
> And my randomness function was...-this is going to sound so stupid- pick an interesting-looking direction to turn. In other words, an interesting street to go down essentially, which is actually pretty different from what i was going to do after my first walk. My first randomness function was to pick a block that seemed to have the least number of people on it and walk that way. And I was like...that's too arbitrary so next time you should roll a four sided die. Also, because it's snowing now, a blizzard, I was thinking maybe it would make sense to use the snow somehow to decide the direction to go but i can't figure out what that would be. So instead I picked interestingness to figure out what direction to go, probably because I'm bored a little bit, and I thought a good way to distinguish between people and algorithms or *automatons* is to think about that. What is actually interesting? An automaton or software doesn't care what's interesting. It has no ability to think. It just executes. But as humans, obviously that's a big distinction. We bring all the other things to bear that make us human. I won't get into all of that now. One thinks or feels out the answer to the questions: am i bored? do i find this interesting? what am i getting out of this? And yes, I created this assignment and have been prepared to treat this like I'm an automaton but evidently i've introduced interestingness to my software for my algorithmic walk. Which of course a computer would not be able to do, or you'd have to introduce a definition of what interestingness means. But I'm a person, and I never defined it for this walk. I just did it. I picked, and it made my walk more interesting because of it. I think I basically chose directions by feel when I didn't know what was on that street or what was down a block. Or buildings or spaces I wanted to see. Maybe it's similar to how I take a 'regular walk' in the city and I'm looking for graffiti or strange buildings or spaces to check out and examine. It's a similar thing and i introduced that process in a somewhat more formal way to my walk algorithm.
> I still think it could be useful to do a purely random function similar to how a computer would, like not based off of human subjective matters. But subjectivity breaks into this anyway. For example, one part of my instructions say to go 3 blocks forward. But some streets are really long, And some streets are really short. And some might have a street that branches out on one side, like a 3 way intersection. Is that the end of a block, o is a block complete until it's a 4 way intersection? I didn't come to a conclusion on that but I didn't have to deal with that this time because I didn't come to any 3-way intersections. The other thing to consider is human fallibility. At some point I forget if I had gone 2 or 3 blocks and I just made a judgement call. So there's always subjectivity when it comes to humans.
> I'm walking home now trudging through the snow. I did have a good time. I saw streets and places i didn't know. And this was a more fun walk than the first one because the interesting-ness helped. Not all walks need to be "interesting" but I was definitely drawn that direction.

38
2021-02-12-LOGO.gmi Normal file
View File

@ -0,0 +1,38 @@
## LOGO language tests 🐢
2021-02-12
=> . ..
```
/^\
| |
/\ |_| /\
| \___/' `\___/ |
\_/ \___/ \_/
|\__/ \__/|
|/ \___/ \|
./\__/ \__/\,
| / \___/ \ |
\/ V \/
```
This week in class we are exploring LOGO, the 1960s (!) programming language. This language has such a long and interesting history. Originally a lisp-like language, LOGO was intended to be a children's constructionist language, a language to engage the mind and self-education. It takes the metaphor of a robotic turtle that moves only based on instructions from the programmer. Based on simple input directions like forward or back and a number input, you can use this simple system to move the robot around a coordinate system.
The way we use LOGO to describe motion and turning are intended to mimic how we use our own body, and so it is a tool of algorithmic thinking. I asked students what can be gained with thinking computationally? (It's okay if students push back and say that they don't think anything can be gained!). From my own perspective, I think there is an aspect of puzzle-solving, of attempting to mimic how our technology functions, even if on an overly basic level. I'm also thinking there's a process that's useful to try to get a feel for problem-solving with our programs we write for pleasure, for art-making or to solve larger problems or computational goals.
We used in an emulator on the Internet Archive, and I gave some basic LOGO commands and students found others through scanned old LOGO programming manuals. The students made a variety of great short programs and posted screenshots. Theirs were better than mine, but here is one of my own tests. You can see my code at the bottom of the screen. Aside from the great 80s crude rasterization aesthetic I love the constraints of color, and of having the code simultaneously on the same screen. This is a premonition perhaps of how we'll try Livecoding in a few weeks.
=> https://archive.org/details/Apple_Logo_II Apple LOGO on Internet Archive
Despite the language being "old" I thought the students made some exciting work, and there's something wonderful about how with just a few lines you can make aesthetically beautiful forms. You can also make images that appear broken. And making use of randomness allows permutations and emergence.
Although seeing code and image on screen simultaneously is great, it's a bit limiting to not see one's whole program. In a sense this leads to a constraint that one tends to code iteratively, one line at a time, adding onto the screen and over-drawing. That's a bit different than how Processing or p5.js work where it explicitly "erases the canvas" and begins anew each time it runs. Leaving the old drawn images up is a nice contrast and seems to inspire (in me) further exploration and play. It reminds me of Pico-8 a bit as well.
I think I'd like to try out livecoding visuals and music with LOGO. In other words, can I make music using an old LOGO like Apple LOGO and make evolving visuals in a way that is compelling?
I've made my own LOGO language to work with p5 that I may document here in the future. There may be some ways to combine these further.
Overall, I'm excited and inspired by trying out this bit of retro computing and seeing what can be mined from here to inspire new modes of programming art.
=> https://tildegit.org/exquisitecorp/PLOGO PLOGO: My own implementation of a LOGO language in Javascript, via p5.js library

View File

@ -0,0 +1,40 @@
## A more playful algorithmic walk 🚶
=> . ..
For the first week of class we tried out the LOGO programming language and created short scripts for the turtle to draw by following simple directions (turn right 30 degrees, go forward 90 spaces, turn left 45 degrees, back up 3 spaces, etc). Afterwards we composed our own instructions for taking an algorithmic walk. Like human manifestations of the LOGO turtles, we wrote out instructions for motion. My own walks, detailed in an earlier post, were okay I thought. I took a walk, saw some new places, took some photos, and experienced some of the limitations of humans (we're subjective! we're error-prone!), the limitations of algorithms (too literal! too brittle!). But I also asked folks to try out other people's directions. And I'm glad I did. I can now see my own instructions were too boring! I was approaching my directions all wrong: trying to craft something closer to machine pseudocode. When other students started posting their walks, I noticed some that intrigued me for taking advantage of the fact that we're human.
So for my 3rd algorithmic walk, I tried out brckmnt0's instructions. There were a few things that drew me to it. I liked the use of a die roll. My own "choose an empty path" and second "choose an interesting-looking direction" both failed to inspire. The pure die roll seemed worth a try. The next thing I noticed was the elaborate set of directions. There was a small loop of a few directions in the beginning. There was the use of music as a motivator and as a form of randomness. There were also a number of *random events* that could happen that would alter the walk if dogs barked, certain car colors passed, etc.
### brckmnt0's walk
```
Start by going right
At the first intersection you reach, roll a dice: 1,2=left 3,4=right 5,6=straight (or low #s=left: high#s=right if straight is not an option)
Shuffle your music and walk until the first song stops
If you reach the end of the road before the song ends, heads=right tails=left
Walk to the you reach the next intersection. Repeat step 2
Shuffle music 3 times, use that song for the next walking period
At the next intersection, decide whatever way you want to go
Walk the amount of blocks of the grey cars in your eyesight
At the next intersection, go the direction that will take you home the fastest
At the next intersection, call a friend and ask which direction you should go
Play the next two songs on shuffle, if they end before you make it home, start at step 2 again
If you see a red car, turn around and go home
If you see any kids playing in the street, run past them
Skip music anytime you hear a dog bark
Do a jumping jack for every blue car that passes by you (not parked cars)
Turn around if a song begging with Z, Q, or X plays
Jog if a song from the 70s comes on
If you check the time and it has :57 for the minutes, you can stop
Sing any song from the Skate 3 soundtrack that comes on
Have fun 🙂
```
I put on Rap Caviar and immediately tried to skip a few times. I was bored of the tracks, so I switched to some ambient jams. I put on my mask and boots, went down the steps, walked out the door and down the alley path to the sidewalk in front of my house. I turned right and about 70 feet later came to an intersection. Time to roll the die. I waited for someone to pass so I wouldn't look insane, then took the die out of my back left pocked and rolled it in hand. 6 red pips. At a 4-way intersection, according to brcmnt0's instructions, that meant continue straight.
I was walking another 2 blocks when the track ended. I hadn't reached the end of the road so didn't need to flip a coin. I walked to the intersection, then repeated step 2 and was already confused on the order, but no matter, I went with it it. I decided a direction, as per instructions, and then after counting grey cars, walked that number of blocks. At some point I had shuffled my music 4 or 5 times and was crossing from one end of the Ditmas Park neighborhood to the other. I was given a choice and made a right. Meanwhile, At the bottom of the instructions I noticed all of these side things I was to pay attention to. I didn't see red cars, kids playing (though I walked past a playground. too cold probably). Nor did I hear a dog bark. However, right at the end of one intersection a blue car pulled up. Time for a jumping jack. It wouldn't alter my course, but it would alter my feeling. I was embarassed, but I did it! At this point I was to call a friend ask the direction to go next. I cheated and texted. I didn't get any immediate response and waited a minute. Nope. So I made my own choice to continue straight. I had already turned to head toward home in the fastest way, and since I had a meeting soon on Zoom, I should probably continue. At this point, I was pretty engaged with the music, checking to see if any track began with the letters cited, and was also on the lookout in a kind of eye-spy for dogs, kids, red cars, blue cars.
I made it home, in pretty good spirits, and with a total walk time of a bit over 30 minutes. I didn't go on any roads that were new for me, but I had a fun playful experience trying out these different forms of randomness. 4 1/2 out of 5. Would algorithmically walk this again!

View File

@ -17,6 +17,12 @@ This gemlog is best visited between 1am and 6am local time.
# Posts
=> 2021-02-12-playful-walk.gmi 2021-02-12 - A Playful Algorithmic Walk
=> 2021-02-12-LOGO.gmi 2021-02-12 - LOGO language experiments
=> 2021-02-07-algorithmic-walk.gmi 2021-02-07 - Algorithmic Walk
=> obscure-motd.gmi 2021-01-20 - Obscure Message Of The Day
=> programming-forth.gmi 2021-01-20 - Programming FORTH
@ -27,9 +33,9 @@ This gemlog is best visited between 1am and 6am local time.
=> programming-patching.gmi 2020-12-12 - Beginner's Mind: Programming and Patching and Synthesizing
=> primitiveturing.gmi - 2020-12-02 - Building a primitive turing machine module on Monome Teletype
=> primitiveturing.gmi 2020-12-02 - Building a primitive turing machine module on Monome Teletype
=> microscores.gmi - 2020-11-27 - Very short musical scores for improvisational music, solo or with others
=> microscores.gmi 2020-11-27 - Very short musical scores for improvisational music, solo or with others
=> musiclog.gmi 2020-11-23 - A post about putting together albums of my recent music on modular synth

View File

@ -1,5 +1,7 @@
# Likes on Gemini? NO!
=> . ..
2020-01-08
This is a pretty short post/rant about the new phenomenon I've noticed of *likes* on our nascent Gemini network/protocol.

View File

@ -1,5 +1,7 @@
# Micro Music Scores
=> . ..
Very short scores (written instructions for performance) of 280 characters or less.
These scores are inspired by:

View File

@ -1,8 +1,10 @@
# Music Log
=> . ..
23-11-2020
=> https://exquisitecorp.bandcamp.com/album/catalog-of-attributes The album I recorded and am referencing below (http)
=> https://exquisitecorp.bandcamp.com/album/catalog-of-attributes The album I recorded and am referencing below
Tonight I mastered Catalog of Attributes and put it up on my Exquisite Corp Bandcamp. As in the past 5 or 6 albums I've done, all music on this album was recorded and mastered within a few days. I really like these tracks. Yesterday I went to Prospect Park and sat out in the woods, near the meandering loping lake-stream in the middle. I listened to Huerco S.'s album Those Of You Who Have Never (And Also Those Who Have). It's 4 years old now, from 2016. A great album title! To find the name I looked on Discogs and accidentally looked at the reviews. Someone described it as ambient music you can dance to and that's a great description. I wanna make that!

View File

@ -1,5 +1,7 @@
# Obscure Message of the day
=> . ..
2021-12-20
Yesterday I coded up a quick little project around 3am, my usual coding time, argh.

View File

@ -1,5 +1,6 @@
# Primitive Turing Machines
=> . ..
### My Buchla background

View File

@ -1,5 +1,7 @@
# Programming Forth
=> . ..
2021-01-20
I have been learning Forth this year!
@ -7,8 +9,9 @@ I have been learning Forth this year!
As a child, I came across Forth in some books, but never had the chance to actually try programming in it. The language lodged itself in the back of my head, and 25 years later I came across it again. The first article that caught my attention was
=> https://hackaday.com/2017/01/27/forth-the-hackers-language/ Forth: The Hacker's Language
by Elliot Williams on Hackaday. The article spurred a lot of conversation: 232 comments on his original post, not to mention plenty of reposts of the article. With that, my interest was whetted. The second article that that stood out to me was
=> https://www.whoishostingthis.com/resources/forth-programming/ Forth: A Weird Programming Language. Here's Why You Might Love It Anyway
by Frank Moraes which extolls its features and links to different implementations and books. And with that, I wanted to really check out and learn the language.
"Forth: A Weird Programming Language: Here's Why You Might Love It Anyway" by Frank Moraes which extolls its features and links to different implementations and books. And with that, I wanted to really check out and learn the language.
=> https://www.whoishostingthis.com/resources/forth-programming/
I read some of the books linked, but found entry to the language difficult. I saw occasional mentions of Forth pop up on the Merveilles.town mastodon instance. All of this, plus the idea that Forth has changed very little, that it's a unique minimalist language, that it's a poetic terse haiku-like language, and that it encourages one to shape the language into your own little personal language - all that excited me.
@ -26,11 +29,11 @@ Below are my notes as I'm learning some basics in Forth. I am using my own descr
## Code
#### Stack system
### Stack system
Items, like numbers, go onto the stack, you operate on them, and they come off in reverse order. Even basic mathematics!
Example: `2 + 2` in Forth is written `2 2 +`.
Example: 2 + 2 in Forth is written 2 2 +
This is known as Postfix as well as Reverse Polish Notation. Incidentally, I looked into whether the *polish* in the title was a pejorative term making fun of Polish people. It's not! It's named in tribute to Polish logician Jan Łukasiewicz who invented polish notation in 1924.
@ -40,7 +43,11 @@ You can add items to the stack.
2 10 14 3
```
To print the top item as output and pop it off the stack, you type `.`.
To print the top item as output and pop it off the stack, you type
```
.
```
Example:
@ -53,9 +60,9 @@ Produces the following numbers and removes them from the stack: 3 14 10 ok
Now the only number left on the stack would be 2.
When you hit enter, you'll notice `ok` at the end of a line that runs properly. If your line has an error, you'll get a `?` instead and can arrow over to fix your mistake.
When you hit enter, you'll notice ok at the end of a line that runs properly. If your line has an error, you'll get a ? instead and can arrow over to fix your mistake.
#### Creating a new word
### Creating a new word
Words are the function or code-blocks of Forth. When you define a new word, it becomes a global function you can reuse. Forth programs are built up of many words.
@ -67,25 +74,38 @@ Note the space between your last word and the semicolon
#### Working with the Stack
`dup` - make a duplicate of the item on top of the stack
dup - make a duplicate of the item on top of the stack
`drop` - remove current top item of stack
drop - remove current top item of stack
`swap` - swap top two items of the stack
swap - swap top two items of the stack
`over` - take item that's second from top, duplicate it so a copy is now on top of stack
over - take item that's second from top, duplicate it so a copy is now on top of stack
`rot` - take element that is third from top and move it to the top (no duplicate this time)
rot - take element that is third from top and move it to the top (no duplicate this time)
### Output
`.` - remove item from stack and display out on standard output.
```.```
`emit` - specify a number and it prints out the associated ascii letter.
* remove item from stack and display out on standard output.
`cr` - carriage return (aka newline)
```
emit
`." [a string]"` - used to specify a string. make sure to include closing doublequote.
* specify a number and it prints out the associated ascii letter.
```
cr
```
* carriage return (aka newline)
```
." [a string]"
```
* used to specify a string. make sure to include closing doublequote.
### Variables
@ -101,9 +121,19 @@ Line 2 stores the value 100 at that variablename location.
Line 3 retrievs the value at variablename and prints it to output and places it on the stack.
`variablename ?` is a word defined as `@ .`. It prints out the variable.
variablename ? is a word defined as
`<number> variablename +!` adds <number> to the current value of variable name. like `x+=<number>` in other langs.
```
@ .
```
. It prints out the variable.
```
<number> variablename +!
```
adds <number> to the current value of variable name. like `x+=<number>` in other langs.
Constants never change.
@ -155,7 +185,7 @@ And to use it:
produces yes ok
#### Loops
### Loops
Forth's do-loop is equivalent to a standard for-loop in C-based languages. Is exclusive of top value.
@ -166,11 +196,11 @@ loop-test
produces: 0 1 2 3 4 5 6 7 8 9 ok
#### Arrays
### Arrays
No arrays. Instead, you can reserve a number of spaces in memory.
#### Input
### Input
```
key
@ -180,18 +210,16 @@ It's common to use this with a do-until loop.
## Resources
The Jupiter Ace manual can be downloaded or purchased on many sites. Here is the current
The Jupiter Ace manual can be downloaded or purchased on many sites. Here is the current site to download pdf manuals on Forth.
=> https://jupiter-ace.co.uk/usermanual.html Jupiter Ace official site
to download pdf manuals on Forth.
If you're looking for a fast getting started and you have previous coding experience, this 30 page Introduction to pbForth, available on
=> https://web.archive.org/web/20070226214033/http://www.vorlesungen.uni-osnabrueck.de/informatik/robot00/doc/lego/pbForthTut.pdf Archive.org Wayback machine
is a quick intro to Forth, with explanations of how the stack works, variables, words, and more, in a reference-style form. It was written for an intro to using Forth on the Lego Mindstorms power block, in a previous version.
If you're looking for a fast getting started and you have previous coding experience, this 30 page Introduction to pbForth, available on Internet Archive's Wayback Machine is a quick intro to Forth, with explanations of how the stack works, variables, words, and more, in a reference-style form. It was written for an intro to using Forth on the Lego Mindstorms power block, in a previous version.
Forth.org maintains an extensive simple to navigate list of
=> http://forth.org/tutorials.html Forth tutorials
=> https://web.archive.org/web/20070226214033/http://www.vorlesungen.uni-osnabrueck.de/informatik/robot00/doc/lego/pbForthTut.pdf pbForth manual on Internet Archive's Wayback machine
=> http://forth.org/tutorials.html Forth.org maintains an extensive simple to navigate list of Forth Tutorials
(love the 1990s web style).
The
=> https://skilldrick.github.io/easyforth/ EasyForth
by Nick Morgan is an online manual with online mini coding windows so you can try out the commands as you read and learn them.
=> https://skilldrick.github.io/easyforth/ EasyForth by Nick Morgan is an online manual with online mini coding windows so you can try out the commands as you read and learn them.

View File

@ -1,5 +1,7 @@
# Beginner's mind: Programming and Patching and Synthesizing
=> . ..
topics: generative music, beginning programming, code sketching
I've been playing modular synth now for almost 2 years, though it's really only in the past 3 or 4 months that it's become a daily studio practice for me. Meanwhile, for the past several years I've mainted a daily code sketching practice, where I often (sometimes daily, sometimes.....not) make short little projects: games, generative visual art, strange visualizations, collage via code, and the like.

View File

@ -1,5 +1,7 @@
# Short Reviews of Gemini Clients
=> . ..
2021-01-19
These reviews are possibly not going to say much because honestly Gemini is mostly JUST TEXT and a stylesheet, at least in my mind. So if they don't crash and look okay and are easy to navigate/use, that's 99% what I'm looking for.