^Zine
September 2023

Created by All
For the Curious and Confused

Table of Contents

Server Info

Intro – Eternal September

WebJam 2023
Gome

Terminal Challenge 2023
Singletona082

Community Showcase

A Fun Trick in Lua
Basilmori

Outro

Ctrl-C Server Info

Gemini Server:

Molly Brown*

*CGI Scripts disabled for Security Reasons

https://pkg.go.dev/tildegit.org/solderpunk/molly-brown

HTML/Web Server:

nginx

https://www.nginx.com/

=====

Reminder:

What members are not allowed to do

(Because at some point someone ruined it for everyone else.)

* No Eggdrop bots.

* No services that duplicate Ctrl-C.club services (email, IRC, web, Gemini, etc.)

* No virtualized/subsystem OSes (docker, junest, vagrant, etc.)

* No Bitcoin/crypto mining

* No hosting/storage of illegal (in the US) or pirated material.

* No spamming of any kind

* No hacking or attempting to get into other people's accounts/servers.

* One gigabyte storage limit

Feel free to reach out with any questions or concerns you have.

* Email: admin@ctrl-c.club

* Email: eric@pencricket.com

* IRC: #ctrl-c on Tildechat

* IRC: DM "calamitous" on Tildechat

10,957 Days of September and Counting

By Singletona082

This was largely written before I had learned of Loghead's stepping back from editing the zine, and have since decided that this would make a great intro to the zine at large.

=====

I have to get used to the idea that for once I'm not The Old Guy in a given community. Fine, I might have been around during the twilight of the BBS in the early/Mid-90s, but I'm 90% sure there are folk on server that were around during FidoNet, or during the Usenet discussions of Yore from the prior decade.

My mind is drawn to 'Eternal September' mostly because my niece has started school and I happen to catch something on TikTok that I... Just can't let go.

'We were a Peaceful Community til The Locals started showing up!'

I have heard and read that refrain for the past thirty years across all manner of communities from BBS, to IRC, php Forums, Mailing Lists, MUDs, MMOs, Discord, Reddit, and on... and On. The internet may be vastly different from what it was in 1993, but the refrain remains the same.

Eternal Sepember?

As a concept this has its roots in the days when 'The Internet' was far less public and far more rooted in universities as points where normal, as opposed to Milliary or Big Business, people might have a chance at experiencing the Wired World. Every September universities would get new students, transfer students from other schools that might not have had UseNet access, and so every September the established communities that had formed would basically have to educate The Newbies on The Way Things Are.

Then, in 1993, AOL gave its subscribers UseNet access.

I'm sure the folks that ran and or maintained Usenet in theory understood what the problem was, but I can guarantee you that they were not prepared for the sheer scale caused by AOL sending CDs out in such volumes that they tied up a majority of the world's CD pressing plants at the time.

Suddenly September never ended. It wasn't a single month of a few hundred or so newbies in an incredibly niche culture. It was suddenly anyone with a computer and a modem. It was never-ending and all-encompassing. From the standpoint of any Oldbies the old arguments and passions suddenly gained rose tint to them and everything before the tsunami of users didn't seem so bad. The old shouting matches, threats, deeds, and all were now remembered as 'the peak of civility' or 'harmless fun to keep things interesting.'

That is where the term originates. However it has since expanded to basically be 'any community that gets Big andgets a flood of new users, or a bunch of old users leave or the community Changes.'

Basically, it was nerds suffering from the same tribal nostalgia that hits everyone when things change.

Why It Shouldn't, and won't, End

This is all subjective. My Opinion. If you feel otherwise that is well within your right. The moment a community stops evolving, it starts dying. This is different from 'infinite growth at all costs.' This is just an observation I've had based on every community that has tried to prevent Eternal September essentially devolving into a tight knit in-group consisting of staff, their friends and sycophants, and everyone else with a clear and oft immutable line dividing the two groups.

The moment that happens? To me a community is dead, or at least may as well be dead. New Users at that stage are seen as something to exploit and step on rather than actual members of the community.

We very much want to prevent that, and the best way to do so is to have new voices cycle in, old voices step down, and essentially keep the waters of culture and community from stagnating. Change is a part of life, on a communal as well as individual basis, and trying to act like it isn't will only lead to ruin.

=====

Don't ask me on specifics. I'm just the guy that joined Last June and only sorta hover around and about at the edges. I stepped up because I thought the zine was something worth continuing, as have several others. If it wasn't me it would've been Basil, and if not him then someone else. So, here we are trying to keep the ball rolling.

It has been September for Thirty Years.

Everything will be alright.

Webpage Jam 2023

From Gome's original post:

Ctrl-C Webpage Jam 2023!

Hi everyone, here is the official thread for the webpage jam!

 The homepage for the jam can be found here:

--- https://ctrl-c.club/~gome/library/webjam/ ---

Dates: Friday, 25 August – Friday, 1 September (one week)

### To Sign Up for the Jam: ###

Create a file called `.webjam-23` in your Ctrl-C home directory

containing a short description of what you would like to accomplish during the jam.

Let me know if you have any questions!

I'm looking forward to your signups!

Info for participants

If you haven’t finalized your plans for the jam yet, please do so in your ~/.webjam-23 file!

Having a clear idea of what you want to do is the key to a successful jam.

-----

Participants

From: Gome’s official tracker page

https://ctrl-c.club/~gome/library/webjam/

~pgadey is working on a hypertext home tour

~chiptune is working on homepage updates and more ASCII art

~basilmori is mirroring their gemini capsule

~singletona082 is working on several pages: ctrl-zine, ham radio, garden, ifiction

~jara25 is experimenting with 3D graphics

~luchiz is making a MIDI synthesizer

~toochill is writing about their taste in anime

~sshdaemon is working on their whole site

~gome is writing about songs

There are several entries who did not have any stated goals.

~lettuce

~wholesomedonut

~gtlsgamr

~giggles

~alextheuxguy

~wvf

~yinznme

Terminal Challenge 2023

From Iris Thread 347

Concept is simple:

* You are allowed to use a window manager.

This is fun, not masochism, and between steam and possible work on

what may be someone's only computer outside of thier phone, not

everyone can just drop everything.

* Anything that you can, within reason, replace with an

application that runs in a terminal window.

* This is sorta linux/BSD focused, though with Microsoft giving a

linux subsystem for windows, Even Windows users can join in on the

fun! Though I suspect there is more hoop jumping involved.

When: September 1st - 15th

Why: To get more people to see how much you can actually do in a

terminal window.

Even if you have a preferred workflow, give the terminal a solid

go. This is simply me inviting the community to come together to

assist those of use who aren't as terminal aware of what can be

done.

-----------------------------------------------------------------

Known Participants

~Chiptune

~pgadey

~pragmatic

~singletona082

~scotchsour

~toochill

~luchiz

~lettuce

Programs Users have Suggested

General

* pyradio internet radio program. Incredible application. I use it every day, and have for 6 or 7 years.

* ffmpeg for trimming/converting videos

* imagemagick for converting between formats or manipulating them

* tldr for reading quick recipes for command line programs

* IRSSI for IRC

* neovim, vimtex (vim/neovim plugin), micro, emacs, and texlive suite for word processing and coding enviroments.

* 'stock terminal commands (mv, cp, ls, etc,) ranger, rsynch, midnight command

* w3m, lynx for web browsing and lynx also serving as a gopher client

 Noteable mention for one user stating they just use 'curl' to grab web pages.

* amfora for gemini

* Youtube: youtube-dl (https://github.com/ytdl-org/youtube-dl).

Window Managers

Note: This is less directly to do with the terminal, and more 'the enviroment the terminals live in.'

* i3 seems to be the most commonly suggested window manager, with DWM being not far behind.

* Tiling seems to be preferred over floating window managers.

* There have, as of this time, been no voices in favor of floating window managers.

Community Showcase

Projects I'd noticed had been announced on Iris during the month of August that weren't community wide attempts to drum up activity. As someone who is both community oriented, and encourages recognition for self-started projects it feels fairly productive to shine a light on what's going on out there.

Keep it up and if it explodes, dust yourself off and go again.

=====

Felix/NTTP:

Glittering Light - A Casual Roguelike

https://ctrl-c.club/~nttp/games/glitter.html

Blerb - Glittering Light is a casual turn-based rogue-lite with an abstract, dream-like theme. The goal is to get as far as possible, collecting glitter for score along the way, and avoiding the nightmares. A typical playthrough lasts 5 to 15 minutes, but the game doesn't have a last level — and the levels never repeat.

Always up for another roguelike to give a spin.

-----

Helenah:

Software and Sound Demos

https://files.catbox.moe/i6d6rd.png

Blerb - TLeft is an audio visualiser which is in a code mess at the moment, right is a pyramid, funnily enough it flagged up bugs in wlroots/wayland/sway (Not sure which yet), Bottom is a clock, it uses box characters out of a dictionary to draw the numbers.

Their Soundcloud:

https://soundcloud.com/helenab-6

Keep it coming Helenah!

-----

Giggles:

Emulator - GBA

https://ctrl-c.club/~giggles/hacking/gba_on_term/index.html

Blerb - This is my new blog post, how its possible to play GameBoy on terminal? If you got curious just check this:

-----

scotchsour

Utility - Hotprogs

/home/scotchsour/public_bin/hotprogs

Blerb - I made a thing. It displays the most popular programs in use on ^C.

It's simple, but interesting. For example, I noticed that someone was using 'ed'. That's hardcore.

A fun trick you can do in Lua

Basil Mori

Lua is a programming language I love working in. It's a wonderful

minimally designed scripting language that makes up for a lack of

low-level control with ease of expression and a lightweight syntax

that gets out of the way when it needs to. It's small, extensible,

easily embedded into other systems, and far more performant than other interpreted languages. The LuaJIT interpreter in particular is used over versions which fit newer specifications in many places because when used correctly it can run almost neck and neck with C. Overall it's a very easy language to use.

But it does have one problem. One thing in particular stands out:

string concatenation isn't confusing enough.

While many other languages simply use the addition operator for

concatenation, Lua elects to instead use `..` as the dedicated

concatenation operator. To concatenate two strings together, you just

do the following:

```

"foo" .. "bar"

>> 'foobar'

```

Addition and concatenation are still close friends, of course. Numbers will always be coerced into strings when concatenated, and strings that are only filled with numbers will be coerced into numbers when performing arithmetic operations.

```

1 .. 1

>> '11'

"1" + "1"

>> 2

```

It's clean. Too clean. Too sensible. Luckily, Lua gives us the freedom to change this behavior through metaprogramming.

Every value in Lua can be given a metatable, which is to say an

ordinary table filled with specially named values that change how that object behaves under given conditions. It's easy to query and replace metatables using the `getmetatable` and `setmetatable` functions provided in the standard library, although ordinarily you can only set metatables on simple table objects. Strings, numbers, booleans, and userdata are all protected and their metatables can only be set using Lua's debug library. This is a matter of safety: primitive types (which is to say all types besides tables and userdata) share a single metatable per-type, which means that if you set a metatable on these types it will change the behavior of that type across the entire codebase.

Luckily, one type already has a metatable set up for us ahead of time:

strings.

The string type is the only value in Lua to have a metatable

pre-set by the interpreter context, and it's used to allow coercion

into numbers and to provide easy access to string library functions as member methods. However, there are no protections against the user

simply reaching in and changing this metatable after the interpreter

sets it up for us, which means we can do this:

```

local string_metatable = getmetatable("")

string_metatable.__add = function(lhs, rhs)

 lhs = tostring(lhs)

 rhs = tostring(rhs)

 return lhs .. rhs

end

```

Now, like magic, the addition operator behaves how it should have the

entire time: as a concatenation operator. Now rather than strings

being coerced into numbers, all numbers will be coerced to strings---and so will anything else which can be converted that way.

Behold:

```

"1" + 1

>> '11'

```

Isn't that so much better?

Outro

Well folks, there you have it. First zine issue with me at the healm.

Contacts:

=====

Singletona082:

singletona082@ctrl-c.club, singletona082@gmail.com

https://ctrl-c.club/~singletona082 gemini://gemini.ctrl-c.club/~singletona082

Gome:

gome@ctrl-c.club

https://ctrl-c.club/~gome/

Basil:

basilmori@ctrl-c.club

Felix:

nttp@ctrl-c.club

Helenah

helenah@ctrl-c.club

Ctrl-C:

https://ctrl-c.club

gemini://gemini.ctrl-c.club

=====

END OF LINE