UNIX
   I think I've learned more here
   than I did at MIT.
        ∨
       ∧_∧
      ( ´_ゝ`)
  ̄\  /   / ̄ ̄ ̄ ̄ ̄/
  ̄ ̄| /   ./   UNIX  ./
  ̄| |(__ニつ/_____/_
 田| | \___))\
 ノ||| |       ⌒ ̄
 
Discussion of UNIX and technology. If you have not already, read the Rules.
if you can read this, you don't need glasses
Rules | World2ch Guide | Top

【1:1】 Scripting for Fun

1 Name: Nameless : 2026/01/21 10:03

Using Elisp, calculate how many days it's been since world2ch.net went offline.

(defvar world2ch-offline-date "2026-01-18"
"Date that world2ch.net went offline.")

(defun today ()
"Return today's date as an ISO-8601 date string."
(format-time-string "%Y-%m-%d"))

(defun days-offline ()
"Print and return the number of days since world2ch.net went offline."
(interactive)
(let* ((math (format "<%s> - <%s> + 1"
(today)
world2ch-offline-date))
(answer (calc-eval math)))
(message answer)
answer))

(days-offline)
Name: E-Mail:
Leave these fields empty (spam trap):

【2:1】 Text Editors

1 Name: Nameless : 2026/01/21 09:08

What text editor do you use and why?
Name: E-Mail:
Leave these fields empty (spam trap):

【3:10】 Useful Unix Utilities

1 Name: Nameless : 2026/01/14 21:27

What are some useful Unix utilities you've been using lately?

Something that's entered my toolbox in the last few months is `just`.
https://github.com/casey/just

They're kind of like Makefiles but simpler, because it's not trying to be a build utility. It just runs commands. After a few months of use, I have justfiles sprinkled all through my system to run various project-specific shell commands. It hits a sweet spot between one liners and dedicated scripts, and it has really enhanced various workflows for me. Things that I wouldn't have automated before (because it feels too small), I *do* automate now, because these justfiles feel like an appropriate place for those little tasks.

2 Name: Nameless : 2026/01/14 21:56

nano, ever heard of it?

3 Name: Nameless : 2026/01/14 22:05

I skimmed the info manual for nano recently, and it had a lot more features than I realized. I was pleasantly surprised that it even had very basic syntax highlighting for org-mode files.

4 Name: Nameless : 2026/01/14 23:05

Dick Stallman is very sneaky

5 Name: Nameless : 2026/01/16 19:21

fzf. Life was truly terrible before fzf.

>>3
tbh I didn't know nano had syntax highlighting. Then again I rarely need nano or syntax highlighting.

6 Name: Nameless : 2026/01/17 06:34

Hmm...
My .bash_history is 90% yt-dlp calls and various ffmpeg invocations. gifski has been super useful for making .gif files that don't suck, too.

One thing I found that was useful was (is this a bashism? oh well):
comm <(sort file1) <(sort file2)
This was me checking a script full of video URLs to download against another one to see if I had any duplicates between them. With some more fiddling, I was easily able to generate one big script that didn't have any dupes thanks to comm.

I've used qrencode so I don't have to retype a long/ugly URL from my desktop onto my phone, I can just scan it:
qrencode -t ansi "https://www.youtube.com/watch?v=iNkfGHrXixo"

detox unfucks filenames to make them shell friendly. Love it.
Don't blindly run "detox *" in a directory, lol.

I also do have an actual usecase for cmatrix (which just shows a cool matrix screensaver in the terminal), since it's very useful as a live indicator for your connection quality over SSH.
Several of my machines on the wifi will just suffer and die horribly with 1000ms+ pings, although really, I should just go fucking set them up on a hard-wired network.
It also just looks cool.

Post too long. Click to view the whole post or the thread page.

7 Name: Nameless : 2026/01/17 10:11

>>6
I didn't know about comm. I've used diff for similar tasks, but I like comm's 3 column output that makes it clear how 2 lists differ.
https://www.gnu.org/software/coreutils/manual/html_node/comm-invocation.html

I also didn't know about detox. That's something I could use a lot. I dislike having filenames with spaces, but renaming them manually is a pain.
https://github.com/dharple/detox

8 Name: Nameless : 2026/01/18 01:00

I don't get to use this often, but something I really like is inotifywait. You can use it to observe a directory for file system events, and run a script when those events happen. The most common use is for doing automatic rebuilds when a source file changes, but I've also used it for other kinds of file processing pipelines.
https://github.com/inotify-tools/inotify-tools

9 Name: Nameless : 2026/01/18 04:21

I feel like I should have a use for inotifywait, I just end up thinking of another solution before I get to it, and I don't do the task enough that it's worthwhile anyway to instantly operate on the contents of a directory...

10 Name: Nameless : 2026/01/19 05:20

I use ghq almost exclusively for cloning git repos.
https://github.com/x-motemen/ghq

I also use it to quickly change to the directory of a git repo with this zsh function.
https://miyagawa.co/blog/ghq-peco-percol

# peco for git repo navigation via CTRL+]
function peco-src () {
local selected_dir=$(ghq list --full-path | peco --query "$LBUFFER")
if [ -n "$selected_dir" ]; then
BUFFER="cd ${selected_dir}"
zle accept-line
fi
zle clear-screen
}
zle -N peco-src
bindkey '^]' peco-src
Name: E-Mail:
Leave these fields empty (spam trap):

【4:6】 nfo - a user-friendly info reader

1 Name: Nameless : 2026/01/09 22:16

https://codeberg.org/ggxx/nfo

* The Problem(s)

- The stand-alone info program repulses people.
- The navigation is unintuitive and the keybindings are unfamiliar (if you're not an Emacs user).
- A lot of good documentation goes unread as a result.

* A Solution

- Emacs is the best info reader.
- By using https://codeberg.org/ggxx/info-nav navigation can be completely mouse-driven, and you don't even have to know any keybindings.
- Setting up Emacs for a non-Emacs user can be a daunting task, so do it for them automagically. (The config is isolated in `~/.config/nfo/` and doesn't affect your main Emacs config if you have one.)
- Make it easy to use for non-Emacs people by providing a CLI utility, `nfo`.

This is a follow-up to the discussion in https://piza.world2ch.net/unix/kareha.pl/1767601822/ .

2 Name: Nameless : 2026/01/09 23:25

- I've only tested this in Linux.
- I think it should be fine on other Unixes.
- It probably won't work on Windows as it is right now, because I rely on ~ to mean your home directory.
- This is an exploration of using Emacs as an application platform.
- In this case, the built-in info reader + some modifications is the application that I'm trying to make accessible to the non-Emacs-using crowd.
- The code is a good example of how to communicate with an Emacs daemon.

3 Name: Nameless : 2026/01/10 01:34

Some distros package emacs without client/server support, alpine for instance. I would suggest you start a lightweight emacs -Q -nw in that case.

4 Name: Nameless : 2026/01/10 08:16

As a daemonization extremist, that upsets me. I didn't even know you could remove client/server support from emacs.

5 Name: Nameless : 2026/01/19 01:53

I made it on to MELPA for the first time.
https://melpa.org/#/info-nav
https://codeberg.org/ggxx/info-nav

This is the Elisp library that nfo uses to make info manuals easier to read.
https://piza.world2ch.net/unix/kareha.pl/1767996961/
https://codeberg.org/ggxx/nfo

If you're already an Emacs user, you should use info-nav directly. nfo was made for Unix Philosophers who aren't particularly fond of Emacs but might still want to read info manuals without going crazy. (I should make that more clear in the various READMEs.)

6 Name: Nameless : 2026/01/19 02:06

For the curious, getting in to MELPA is done by forking melpa/melpa on github and adding a small elisp recipe file that tells MELPA how to fetch the package.

;; recipes/info-nav
(info-nav :fetcher codeberg :repo "ggxx/info-nav")

Then you send a pull request.
https://github.com/melpa/melpa/pull/9778

After review and fixing, the pull request gets merged and your package is published. You also get your repo mirrored (in case the original disappears?).
https://github.com/emacsmirror/info-nav
Name: E-Mail:
Leave these fields empty (spam trap):

【5:5】 Good Ideas Worth Implementing

2 Name: Nameless : 2026/01/14 02:02

Seems like a neat idea

3 Name: Nameless : 2026/01/14 22:23

I should have copied some of the text here. The site I linked to is down now.

4 Name: Nameless : 2026/01/14 23:02

There are already sites that allow you to draw on maps I think, would it just be a BBS version of that?

5 Name: Nameless : 2026/01/14 23:43

It could have BBS-like elements.
It could also have wiki-like elements.
Name: E-Mail:
Leave these fields empty (spam trap):

【6:33】 Creating the World2ch dedicated browser

1 Name: Nameless : 2025/08/06 04:37

I think the easiest way to create a dedicated browser is to modify an existing 2ch browser.
I believe a good candidate for modification is JaneXeno: https://janexeno.client.jp/

What will have to be done is the UI translated to English, and the program rewritten to accept
the kareha software. I know it's specific on what kind of textboard softwares it can take.

24 Name: Nameless : 2025/10/05 08:37

Can you release the prototype for the browser already?

25 Name: Nameless : 2025/10/05 19:35

Speaking of PSPs, this is the only site i know of that still properly runs on the console and the low res screen gives a very satisfying, sharp look to the site (i’m specifically using a PSP Go). It also supports flash natively so you can watch SWFs in the uploader too.

26 Name: Nameless : 2025/10/06 20:34

>>23
it should be written in any 90s-2000s GUI language.

27 Name: Nameless : 2025/10/06 23:06

>>26
Do you want that for any reason other than the year?

28 Name: Nameless : 2025/10/07 13:04

>>25
That's pretty neat. Does posting work as well?

29 Name: Nameless : 2025/11/04 13:11

Still waiting on the browser release

30 Name: Nameless : 2025/11/27 18:04

>>23 I volunteer, I've been meaning to learn perl

31 Name: Nameless : 2026/01/14 08:34

Going on a tangent here, but one of the best alternative imageboard clients I've come across is 4g.el for Emacs. It lets you browse Emacs using org-mode.
https://github.com/eNotchy/4g
The author of 4g.el is really good, and his Elisp style is Clojure flavored.

Here's a screenshot of what it looks like.
https://tilde.club/~gg/4g/2025-12-28_05-21-45.png
Here's an archive of the thread it's reading.
https://desuarchive.org/g/thread/107691743/

32 Name: Nameless : 2026/01/14 13:57

>>31
How easy would plugging in w2ch be for that

33 Name: Nameless : 2026/01/14 21:06

I think the author does want to support non-4chan boards, but world2ch as it is now would be hard to support. Any site that wants to work with it (or other 4chan clients) should probably try to support the 4chan API.
https://github.com/4chan/4chan-API
Name: E-Mail:
Leave these fields empty (spam trap):

【7:14】 how much programming do you do

1 Name: Nameless : 2025/07/27 14:05

I don't do nearly enough these days. 90% of programming I've done in the last 3 months is writing shell scripts to convert video or pictures or audio or whatever, and those are all just some variation on getting arguments and then calling ffmpeg, imagemagick, or something from the netpbm suite.

I was also writing some website software for a board in Python, but I am really lazy and haven't touched it in weeks. It's in a usable state, but you would get fucked pretty quickly if you tried to host on the open internet against an actual attacker.

5 Name: Nameless : 2025/07/29 01:21

What's your favorite text editor?

6 Name: Nameless : 2025/07/29 02:11

Crimson Editor

7 Name: Nameless : 2025/07/31 17:40

I'd say about thrice a week, minimum. Lua, FreeBASIC, C, CSS, HTML, PHP...
I like Notepad and Notepad++ for simplicity. IDEs are nice but none have struck my fancy.

8 Name: Nameless : 2025/08/01 01:17

If you're ever writing anything Japanese, sakura is good. It is feature rich in unicode conversions and things like that.

9 Name: Nameless : 2025/08/01 02:38

>>5
the objectively correct answer is emacs

10 Name: Nameless : 2025/08/02 00:29

The subjectively correct answer is vim

11 Name: Nameless : 2025/08/06 23:24

the lad using nano 8=D

12 Name: Nameless : 2025/08/07 09:17

^^^^^ lol penis

13 Name: Nameless : 2026/01/07 09:22

a nano penis

14 Name: Nameless : 2026/01/12 09:27

I've been meaning to learn for a decade but I have never needed anything more than a shell script and basic elisp/js. I picked up supercollider lately though so I should learn for real this time.
Name: E-Mail:
Leave these fields empty (spam trap):

【8:12】 Massechussets Institute of Technology [INSULTING]

1 Name: Nameless : 2025/07/31 09:33

My brother drove by MIT with his windows down and he accidentally received several degrees.

3 Name: Nameless : 2025/08/01 10:23

A "student": "So we were at MIT, studying... hey you got something wrong with your chest."

Person 2: "Those are my breasts, I'm a girl."

A "student": "guu..iiir..ll???"

4 Name: Nameless : 2025/08/02 17:52

I still think about how the Three Stooges in The Three Stooges were likely MIT graduates

5 Name: Nameless : 2025/08/03 12:42

Kareha was probably written by an MIT graduate. I mean, for fucks sake, only someone with a PHD in Comp. Sci from MIT can imagine using the very same HTML page you serve to people AS THE DATABASE.

6 Name: Nameless : 2025/08/04 01:32

>>5
how the hell does that work?
christ, that sounds nuts

7 Name: Nameless : 2025/08/04 06:15

Through a fucking ungodly set of subroutines, which do things that I have to learn an entire language to comprehend. Wish me luck.

8 Name: Nameless : 2025/08/04 12:24

Okay I mostly figured it out, but for some reason hashmaps don't want to cooperate with me.
It's about as unholy as I expected. The HTML document has a comment(that browsers drop) which provides some general information, and then the predictable nature of the HTML document(there's line breaks in specific spots to denote each database entry.) There's specialized subroutines to break it down even FURTHER because the returned database actually retains its HTML tags and thus needs further processing rather than sensibly getting rid of all of that BEFORE get_thread finishes.
This is some serious MIT PHD coding, /JesusTakeTheWheel/.

9 Name: Nameless : 2025/08/04 13:54

Maybe it would be beneficial to ring up MIT and ask them what they were thinking, if they can understand human speech.

10 Name: Nameless : 2025/11/04 13:10

MIT is short for MITTENS ( ゚ ヮ゚)

11 Name: Nameless : 2026/01/09 23:07

>>1
OP can't even spell Massachusetts.

12 Name: Nameless : 2026/01/10 18:12

>>11
It is worth it to misspell their name so that their low intellect doesn't infect the speaker.
Name: E-Mail:
Leave these fields empty (spam trap):

【9:13】 What 'cha workin' on?

1 Name: Nameless : 2026/01/05 08:30

This is a tech board, why don't we discuss what we're all working on?

Personally, I'm currently working on a file locker(think Mediafire or Megaupload.) I don't know what to call it yet, but I'm working on it.

4 Name: Nameless : 2026/01/05 16:35

>>1
Something else I've been working on more recently is a way to make GNU info docs more readable by putting the table of contents in a side window and using it to drive navigation.
https://codeberg.org/ggxx/info-layout

It pretty much works. I'm just not happy with the name. However, once I find an appropriate name for it, I hope to let it be the first thing I publish on MELPA.
https://melpa.org/#/

5 Name: Nameless : 2026/01/05 18:43

>>4
That sounds nice. I just ended up using a shell script to just unfold info docs into one long document and pipe it into less so I could pretend I was just using a man page since I despise info's interface.

6 Name: Nameless : 2026/01/05 20:58

People criticize redo for not having significant advantages over existing build system and thus not driving mass adoption. When you look at the source notes and the way it's implemented though, you should realize it embodies one of djb's most advanced programming concepts yet, something i call declarative-imperative style. Basically the natural conclusion of partitioning your program into small, loosely coupled processes and passing state through pipes, argv chaining, or the filesystem, is that declarations can themselves be part of a regular script invoked from a special runtime environment.

At the moment i'm using this paradigm to write a package management and ports integration system for my own personal use.

7 Name: Nameless : 2026/01/05 22:16

>>5
This got me thinking. The audience that this might appeal to the most is non-Emacs users, because I remember how much I hated the CLI info reader interface too, and this would alleviate much of that pain. However, only an advanced Emacs user would even find a package like this...

UNLESS, I came up with a shell wrapper around a tiny Emacs config that gave people access to this from the command-line. If it could be installed easily, I think I could shill it to non-Emacs users as a user-friendly info document reader.

There's a lot of good documentation in the info ecosystem that never gets read, because the info reader experience is so repulsive to a lot of people. Even as an Emacs user, it took me a while to warm up to it.

8 Name: Nameless : 2026/01/05 22:24

It sure feels good to be a non-Emacs user ( ´ー`)

9 Name: Nameless : 2026/01/05 22:33

I've riced out my Emacs configs so much. (Yes, plural configs! I have more than one.) When I got to a certain level of Elisp proficiency, I experienced a joy that is difficult to replicate in any other editor. There's a reason this editor has stuck around for decades. (It's because it's more than an editor. It's an Elisp Application Platform.)

10 Name: Nameless : 2026/01/06 01:33

I made a userscript so that external links would open in a new tab.
http://tilde.club/~gg/world2ch/world2ch.external-links.user.js

There's probably a security-related reason a lot of sites don't like to be contained inside frames anymore. The outer frame can probably dig into the contained page and steal all kinds of juicy info.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options

11 Name: Nameless : 2026/01/06 03:28

>>10
Sankyuu Nameless (´ー`)

12 Name: Nameless : 2026/01/06 04:20

>>7
honestly, writing software for the emacs environment, even if you intend to target non emacs users, seems like a good decision
most reasons I hear to use emacs are heavily tied to its usefulness as a programming environment

providing a config for the unwashed masses (like me) to quickly use your utility just seems like a good idea

13 Name: Nameless : 2026/01/06 16:54

>>4 that's pretty cool. I never use the info system in part because navigation is so cumbersome.
Name: E-Mail:
Leave these fields empty (spam trap):

【10:13】 GTK must die

1 Name: Nameless : 2025/10/09 12:28

seriously, I am so done with the shit from the GTK organization. They are a bunch of lazy self absorbed nazis who think that a paycheck from Red Hat lets them shit all over the Linux desktop with their broken shitty software. And also be antagonistic to anyone trying to fix it! enough is enough, I switched to full Qt and you should too. It is literally just like windows and you can theme it easily unlike GTK which wants to be like an iPad for some reason.

4 Name: Nameless : 2025/10/10 03:35

On Windows you could just stick with an older version of the offending software, but (in my very limited experience) in UNIX everything seems to have 9000 dependencies and the whole system depends on everything being kept up to date for them to be compatible with one another

5 Name: Nameless : 2025/10/10 12:17

Usually software made specifically for BSD and Solaris are a lot less bloated. I can only think of one or two programs I have ever tried from GTK.

6 Name: Nameless : 2025/10/10 14:39

I'm still fucking mad about how bad GTK3 and GNOME 3 have been for the Linux desktop experience. Everyone involved should be bound and whipped, and not in a hot way. I'm still mad Xfce moved to GTK3, too.

I'm now on KDE, which is nice. I hated KDE before, but it's pretty nice now.

7 Name: Nameless : 2025/10/11 03:15

>>6
KDE is cool if you like that kinda thing. If you like old Windows try LXQT. You can make the UI look like the Windows Classic theme really easily. Get QMMP and you've got yourself WinAmp too.

8 Name: Raion : 2025/10/21 16:54

All I can tell you is from building GTK2 for IRIX, the code for it is not terrible. But the problem is the amount of dependencies it pulls in. Cairo, glib2, pixman, pango etc. three and four are even worse.

And very applicable to sgis in particular that don't have direct hardware access to anti-aliasing and no CPU SIMD, text rendering through GTK is slow. Very slow. Performance wise it's not great.

In terms of actually building gtk2, the code was relatively simple to patch:

https://codeberg.org/IRIXNet-Development/Nekoware-Package-Collections/raw/branch/main/patches/neko_gtk2.20.patch

Virtually everything applied is for gdk-pixbuf there.

9 Name: Nameless : 2025/10/29 10:57

GNOME has got to be some sort of sabotage operation.

10 Name: Nameless : 2025/12/07 13:19

Qt seems to have succumbed to the CMake plague. GTK is evil but the rot is just present in general in all modern software nowadays (shoutouts to the fuckwad that took over stalonetray, and decided that it needed fucking meson and C23 of all things. For an ostensibly simple standalone X11 tray program)

For non-garbage programs and GUI operation, you're probably better served with anything that's "pure" X11 or uses a not-yet-totally-enshittified toolkit like Motif as opposed to GTK or Qt (there where there's such programs available, of course)

11 Name: Nameless : 2025/12/08 23:47

I don't feel strongly about this. I do prefer QT but 99% of my computing time is spent in emacs or a web browser.

12 Name: Nameless : 2025/12/21 20:15

>>4
This is why i keep around some older sources on my desktop, notably the last audacious release with gtk2 support and an xpdf version before the switch from motif to qt. On my laptop i use the alternate approach of running an old system, namely asciilifeforms dulap gentoo, and cherry-picking more recent sources.
>>10
>Switches away from GNU Autotools to Meson, a simpler and modern build system,
more than capable for a simple project like stalonetray.
>t. fuckwad
Bitch, if it's that simple why, don't you write a makefile instead of depending on a python3 project for crying out loud! Fortunately fvwm fulfills all of my desktop needs.

13 Name: Nameless : 2026/01/04 21:48

This is why I do everything in Emacs (and I compile my Emacs to not use GTK).
Name: E-Mail:
Leave these fields empty (spam trap):

New thread

Thread Title:
Name: E-Mail:
Leave these fields empty (spam trap):
Verification: