Let’s play a game of “Fortunately, Unfortunately“. Respond the previous post (the first comment below this post) by replying this post (not the previous post!)
I’ll start with: “I found this website.“
I missed the train to go home and I have to wait for 2½ hours for the next one to arrive
I’m staying in the station, for punishment…
(actually, my mom can’t enter the boarding house anyway so I’m going back)
NOBODY SHOULD DO THIS (VERY REASONABLE THING) AND EVERYONE THAT DOES SO DESERVE TO LIVE IN MY SPECIAL HELL.
The writer of the academic guide uses LaTeX for it and I am happy because of that
how did I get from "how should you implement posting" to 1984
I am sad to announce that Corkboard and ChanSpec are ceasing operation.
Jeff, the budget ASUS laptop I've been using since ~2018 who is hosting Corkboard and ChanSpec, is currently in poor condition. There are cases where it shuts down all by itself, which is annoying since I had to restart it back every time, which is infeasible since I am currently living in my boarding house, around 100 kilometers driving from home (and I had to use the train to get there).
Recovery of all the data from Jeff to my new laptop John is still far from done, but it is already adequate for my purposes. Projects that I am "actively" working on like tbgclient-rewritten
, Flipbit, etc. have been backed up to John and development of them will continue as usual (well, under Windows at least, which is less nice). Regarding the data collected by ChanSpec, I will publish the log data to File Garden and Google Drive, along with the source code (again), if the time is possible.
Currently I have no plans to bring back both Corkboard and ChanSpec to John or other computers. I have no resources to run these bots, especially ones that would satisfy my parents. Besides, if Jeff’s condition gets worse, I can't remotely turn on Jeff from my boarding house (there's the brother option, but I'm sure he'll get bored of it fast). The Mineral Fish community is well inactive enough anyway.
Back when I just bought John, I envisioned Jeff to be my little server, especially since I had a Cloudflare Tunnels set up on it. But seeing its condition now, I can't trust it to handle that job. I might as well retire Jeff instead. Now, that's not to say that Jeff is dead. Currently Jeff still works, and it still boots Ubuntu/Arch. However, it can't be left unattended, which makes it unsuitable for my use case. That's why I said backup is still possible, even with Jeff's potentially thinning lifespan.
Maybe someday we will get Jeff fixed. At the day we get it fixed though, my parents would probably insist me to pass it over to someone else, since I don't really need a second laptop. Can’t guarantee it though. And while I think having two laptops is nice, I'd rather delegate that task to something else. Something more...fruity, perhaps? Ah, that's merely my wishful thinking.
You've served your job well, Jeff.
TBGs that I’ve ported into SNSes
Fortunately, Unfortunately on wasteof (present on my pinned post)
(someone) owns the moon on wasteof (that went horribly because I don’t know how it started)
Etchbox on Darflen (still going for some reason despite the database reset, even got its own community)
Walmart War on wasteof and Darflen (almost no one cared)
What the intended interpretation is supposed to be:
You can do all of this in just a single, flat device.
What others interpreted it as:
Instead of whatever you are doing, why not use our thing instead?
use rand::Rng; // import rand
use std::cmp::Ordering; // import ordering
use std::io; // import io
// nothing here
fn main() { // start `main` function
println! // print the text
("Guess the number!"); // about what this program does
// nothing here
let secret_number = // get secret number
rand // on module rand
::thread_rng() // get this thread's RNG
.gen_range(1..=100); // generate number between 1 and 100
// nothing here
loop { // i feel loopy
println! // print the text
("Please input your guess."); // to ask for guess
// nothing here
let mut guess = // define mutable variable `guess`
String // of type String
::new(); // a blank value
// why are there so many blank lines
io::stdin() // get standard input
.read_line // read a line there
(&mut guess) // borrow guess to write it there
.expect // when it failed
("Failed to read line"); // panic with this text
// i'm lonely
let guess: u32 = // define a variable `guess`
match // we will be matching
guess // the guess
.trim() // without the spaces
.parse() // parsed into a u32
{ // MATCHING START!
Ok(num) // if ok
=> // then
num, // return that num
Err(_) // if error
=> // then
continue, // ignore
}; // MATCHING STOP?
// i'm all alone
match // we will be matching
guess // the guess
.cmp // compared with
(&secret_number) // the secret number
{ // MATCHING START!
Ordering // if
::Less // it's less
=> // then
println! // print the text
("Too small!"), // about it being less
Ordering // if
::Greater // it's greater
=> // then
println! // print the text
("Too big!"), // about it being greater
Ordering // if
::Equal // it's equal
=> // then
{ // do this
println! // print the text
("Too small!"); // about winning
break; // end program
} // doing done
}; // MATCHING STOP?
} // my loopy wore off
} // end `main` function
someone made a code that’s commented in every line so I made it worse
What I wanted to do:
ASUS@JOHN /m/d/Music> ffplay -f lavfi "amovie='02.\ Overworld.mp3'[in];[in]showcqt[out:v];[in]aresample=44100[out:a]"
ffplay version 2024-07-15-git-350146a1ea-full_build-www.gyan.dev Copyright (c) 2003-2024 the FFmpeg developers
built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
configuration: (pruned)
libavutil 59. 28.100 / 59. 28.100
libavcodec 61. 10.100 / 61. 10.100
libavformat 61. 5.101 / 61. 5.101
libavdevice 61. 2.100 / 61. 2.100
libavfilter 10. 2.102 / 10. 2.102
libswscale 8. 2.100 / 8. 2.100
libswresample 5. 2.100 / 5. 2.100
libpostproc 58. 2.100 / 58. 2.100
[mp3 @ 00000154d71761c0] Estimating duration from bitrate, this may be inaccurate
[lavfi @ 00000154d7153340] Open inputs in the filtergraph are not acceptable
amovie='02.\ Overworld.mp3'[in];[in]showcqt[out:v];[in]aresample=44100[out:a]: Invalid argument
What I actually had to do:
ASUS@JOHN /m/d/Music> ffmpeg -v -8 -i 02.\ Overworld.mp3 -filter_complex "[0:a]showcqt[out]" -map "[out]" -map 0:a -c:v rawvideo -c:a pcm_f64le -f nut pipe: | ffplay -i pipe:
ffplay version 2024-07-15-git-350146a1ea-full_build-www.gyan.dev Copyright (c) 2003-2024 the FFmpeg developers
built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
configuration: (pruned)
libavutil 59. 28.100 / 59. 28.100
libavcodec 61. 10.100 / 61. 10.100
libavformat 61. 5.101 / 61. 5.101
libavdevice 61. 2.100 / 61. 2.100
libavfilter 10. 2.102 / 10. 2.102
libswscale 8. 2.100 / 8. 2.100
libswresample 5. 2.100 / 5. 2.100
libpostproc 58. 2.100 / 58. 2.100
Input #0, nut, from 'pipe:':aq= 0KB vq= 0KB sq= 0B
Metadata:
TBPM : 105
encoded_by : LAME in FL Studio 20
date : 2023
encoder : Lavf61.5.101
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1920x1080, SAR 1:1 DAR 16:9, 25 tbr, 51200 tbn
Metadata:
encoder : Lavc61.10.100 rawvideo
Stream #0:1: Audio: pcm_f64le (PFD[64] / 0x40444650), 44100 Hz, 2 channels, dbl, 5644 kb/s
Metadata:
encoder : Lavc61.10.100 pcm_f64le
23.08 A-V: -0.016 fd= 6 aq= 18KB vq=18225KB sq= 0B
thanks ffmpeg
I’ve just realized that the Bounce Tales music is in the Roland GS soundfont (the default one for Windows for playing MIDI files)
Makes me wonder if somebody had remade it into a MIDI file exactly
I have so many projects that I “left” as in “okay I think this is done, let’s move on to another project”. As such, there’s usually a big gap between me working on the same project to the last time I worked on it before.
In the priority queue I had:
an esolang called Iternary which is about iterators
tbgclient-rewritten
, an automation framework for the TBGs
Bit, a GRU chatbot for Scratch
urea geller but in the Famicom + FDS (turns out the MOD has reverb/overlapping sustain and mordents on it which I can’t implement correctly on FamiTracker due to skill issue)
Here’s my other projects that has a particularly high “revisiting” feeling:
Gravy, an esolang about currying in the wrong way
SquareOne, a Scratch reimplementation
New Clash, a second attempt to make an OS in Scratch
Flipbit, a simple ADPCM codec that got more complex over time (I think I’d say this is done)
ElementalOnThings
, a general engine of the Elemental game from Cary
Elcedees, a font inspired by the 16×2 LCD screen usually used by μC hobbyists
Babalang+, an extension of Babalang
@imgru
(Remember them? Currently I can’t find a place to host them, and till this day Oracle Cloud still rejected my debit card, and I don’t feel like hosting it on the poor Jeff)
A JSaB engine on Scratch
Here’s some projects ideas I had:
Systema Vectorum (needs correct Latin), a font inspired from the System font/the charset of the VGA graphics card with the style of Elcedees
ScratchStyle2 and Ocular style for SMF
A Mastodon streaming server on Jeff with the web frontend hosted somewhere else (probably CS)
and probably others…
[2024-08-11 01:08:08,550] <IcelandicWater> (PRIVMSG) VLC and OBS are so easy to mix up
[2024-08-11 01:09:39,649] <IcelandicWater> (PRIVMSG) playdate
[2024-08-11 01:09:54,683] <IcelandicWater> (PRIVMSG) IWL for the playdate
[2024-08-11 01:09:58,594] <IcelandicWater> (PRIVMSG) that would be awesome
[2024-08-11 01:10:27,258] <IcelandicWater> (PRIVMSG) mind-numbing lockwork whenever you need it
[2024-08-11 01:11:16,576] <IcelandicWater> (PRIVMSG) hmm
[2024-08-11 01:11:33,213] <IcelandicWater> (PRIVMSG) *opens FMN censoring index*
[2024-08-11 01:11:59,770] <IcelandicWater> (PRIVMSG) arcade.makecode.com
[2024-08-11 01:12:01,675] <IcelandicWater> (PRIVMSG) nout it
[2024-08-11 01:12:24,027] <IcelandicWater> (PRIVMSG) it's still up
[2024-08-11 01:12:43,972] <IcelandicWater> (PRIVMSG) and they're actively updating it...
[2024-08-11 01:14:08,463] <IcelandicWater> (PRIVMSG) kbai
Yeah, good luck differentiating keys and doors with a 1-bit screen