@ Pohon BBS

Last 25 posts

2.
Published: 2025-10-31 [Fri] 00:24, by Anonymous
Idk if you meant to link the paper you were talking about. I've learned that if
you were to increase the number of neurons the brain as a network would become l
ess connected, because otherwise the number of connections would have to increas
e exponentially. Perhaps a brain with a certain amount of additional neurons wou
ld have to be a brain with less "specialized" areas, as they have to be "self-su
fficient".

Michel A. Hofman, Evolution of the Human Brain: From Matter to Mind
.
3. AoE II : Conquerors
Published: 2025-10-21 [Tue] 07:09, by Anonymous
Looking at getting AoE 2 classic to work via archive.org resources.

First download Age of Empires II: Age of Kings
https://archive.org/download/Nova_AOECE_USA/Age%20of%20Empires%20II%20-%20The%20Age%20of%20Kings%20%28USA%29%20%28Rerelease%29%20%28Alt%202%29.7z

Then download AoE II: Conquerors Expansion
https://archive.org/download/AgeOfEmpiresIITheConquerorsExpansionUSA/Age%20of%20Empires%20II%20-%20The%20Conquerors%20Expansion%20%28USA%29.zip

first Age of Empires II: Age of Kings , then Conquerors Expansion second,
Open the disc file with PowerISO and extract disc 1 BIN file to a directory, then install,
https://www.poweriso.com/download.php

Download patch 1.0c :
https://aok.heavengames.com/blacksmith/showfile.php?fileid=11438

No CD crack for 1.0c:
https://www.mediafire.com/file/pvdprrr81pcdoad/AOE+2.7z
goes into
C:\Program Files (x86)\Microsoft Games\Age of Empires II\age2_x1

Navigate to
C:\Program Files (x86)\Microsoft Games\Age of Empires II\age2_x1
and double click age2_x1.exe to boot your game

or open Voobly and play online with friends!

.
2.
Published: 2025-10-20 [Mon] 16:56, by Anonymous
Looks like Voobly is how people play AoM/X (classic, not EE/retold):
https://www.voobly.com/games/view/Age-of-Mythology-The-Titans
.
1. Age of Mythology classic
Published: 2025-10-20 [Mon] 13:42, by Anonymous
via https://archive.org/details/aom-pc-redump

Grab ISO via https://archive.org/download/aom-pc-redump/AOM-PC-REDUMP/Age%20of%20Mythology%20-%20Gold%20Edition%20%28Canada%29%20%28En%2CFr%29.zip

unzip ISO, install AoM first then Titans second

Keys:
- AoM - HYQRH-FV79R-RHHPW-23G37-BDM76
- Titans - T2HB2-G4PK6-MQPDR-CTYPQ-64JK6

Next grab patch from Ubisoft
http://patches.ubi.com/age_of_mythology_the_titan/age_of_mythology_the_titan_dvd_fix.exe

Make sure to update the directory if you're running a 64 bit OS (you probably are), eg
C:\Program Files (x86)\Microsoft Games\Age of Mythology

Finally, in the AoM directory run msxmlenu.msi and you can now boot Age of Mythology 2 by executing aomx.exe
.
2.
Published: 2025-10-06 [Mon] 10:27, by Anonymous
You really go for a lot of variety!

Just got 100g of virginia flake in the mail last week and I'm extremely
thrilled with it. Wanting to get my hands on some Indonesian tambolaka
but it's not easy to find on google. May have to resort to Instagram
searches.

Interested to hear your thoughts on perique. I haven't had it for a long
while. The English and virginia-burley blends should be a hit. You'll
have to share reviews of the more esoteric ones!
.
1. crazyeddiestobaccobuy
Published: 2025-10-04 [Sat] 18:02, by Anonymous
Brookfield No.1 200g Dose
Dan Tobacco Ascanian No. 1 Riverside Blend (ehemals Soft & Unique) 50g Dose
Dan Tobacco DTM Bulldog Medium Cut 50g Dose
Dan Tobacco DTM Dark Moon 250g Pouch
Dan Tobacco DTM Hamborger Veermaster 50g Dose
Dan Tobacco DTM Mischtabak Torben Dansk Kentucky U.S.A. 50g
Dan Tobacco DTM Torben Dansk Louisiana Perique USA 50g Dose
Dan Tobacco DTM Tumblin Dice 50g Dose
Käptn Barsdorfs Bester Pipe Blend (ehemals Aromatic Mixture) 160g Dose
Mac Baren Farmer US-Virginia und Burley 50g Dose
Meistermischung Nr. 33 (100g Dose)
Pipemaster Blue English (28521) 50g Pouch
Pipe Republic Blends Pink Villa 100g Dose
Rattray's Flake Collectioln Stirling 50g Dose
Robert McConnell Pure Brasil 50g Dose
Robert McConnell Pure Cuba 50g Dose
Robert McConnell Pure Kentucky 50g Dose
Sir Henry's Earl 125g (3592) Dose
Wehde Hamburger Grüsse 250g Dose
.
1. Brain Scaling Laws
Published: 2025-10-03 [Fri] 06:12, by Anonymous
Fascinatingly, according to this paper, there are actually multiple biological scaling laws relating brain size to neuron count. Most mammals are on a relatively bad scaling law where, as the neuron count increases, the number of supporting glial cells must increase by a greater proportion, and the size of neurons must also increase. This means that increasing proportions of the brain must be devoted to glial cells and neuronal density falls so they run into sharply diminishing returns on scaling. Primates, in contrast, appear to have found a significantly better scaling law which allows us to scale neurons and glial cells 1:1 and to keep neural density constant across scales. This allows us to support vastly more neurons for a given large scale brain and explains why we are significantly more intelligent than larger animals like whales or elephants which have substianlly larger brains than us.
.
2. explanation console stdin, stdout, redirection
Published: 2025-09-27 [Sat] 03:37, by pungent lunatic aryan bro
#!/bin/bash
# ┏━┓╻ ┏━┓╻ ╻┏┓╻╻ ╻┏┳┓┏━┓╻ ╻ USAGE: playnumpv <days>
# ┣━┛┃ ┣━┫┗┳┛┃┗┫┃ ┃┃┃┃┣━┛┃┏┛ (where days = number of days to
# ╹ ┗━╸╹ ╹ ╹ ╹ ╹┗━┛╹ ╹╹ ┗┛ search back for newer media files)

# Check if argument is provided
if [ -z "$1" ] || [[ ! "$1" =~ ^[0-9]+$ ]]; then
echo "Usage: $0 <days>"
exit 1
fi

# Create a temporary playlist file in a safe location
playlist=$(mktemp) || { echo "Failed to create temporary file"; exit 1; }

# Set trap to clean up temporary file on exit
trap 'rm -f "$playlist"' EXIT

# Get absolute path of the playlist to exclude it from search
abs_playlist=$(realpath "$playlist")

# Find all media files modified in the last $1 days and add them to the playlist
# Using absolute paths to avoid issues with relative paths
find "$PWD" -type f -regextype posix-extended -regex '.*\.(mp3|flac|opus|ogg|m4a|wav|nsf|mod|xm)' \
-mtime -"${1}" ! -path "$abs_playlist" -print0 | \
sort -z | \
tr '\0' '\n' > "$playlist"

# Check if any files were found
if [ ! -s "$playlist" ]; then
echo "No files found newer than ${1} days."
exit 0
fi

# Count the number of files in the playlist
file_count=$(wc -l < "$playlist")
echo "Found $file_count files to play."

# Play the playlist with mpv, using unbuffer to maintain terminal connection
# and process substitution to capture output without breaking stdin
unbuffer -p mpv --shuffle --term-osd=auto --osd-level=2 --no-audio-display \
--playlist="$playlist" 2>&1 > >(grep -E "Playing") < /dev/tty

# Multi-line comment explaining the redirection technique:
: <<'EOF'
EXPLANATION OF THE REDIRECTION TECHNIQUE:

The command uses several advanced shell features to maintain keyboard control while filtering output:

1. `unbuffer -p`:
- Creates a pseudo-terminal for mpv
- Ensures mpv maintains interactive behavior including keyboard input handling

2. `2>&1`:
- Redirects stderr to stdout
- Combines both output streams

3. `> >(grep -E "Playing")`:
- Uses process substitution (the `>(...)` syntax)
- Creates a temporary file descriptor connected to grep
- Sends mpv's output to grep without breaking terminal connection
- Unlike a regular pipe, this doesn't disrupt keyboard input

4. `< /dev/tty`:
- Explicitly redirects stdin to the terminal device
- Ensures mpv gets keyboard input directly from the terminal
- This is critical for maintaining keyboard control

WHY THIS WORKS WHEN REGULAR PIPES FAIL:

Regular pipes (mpv | grep) break keyboard input because:
- The shell puts commands in separate process groups
- mpv detects its output is going to a pipe and may change behavior
- Terminal control gets disrupted

Our solution works because:
- unbuffer maintains the terminal connection
- Process substitution doesn't break the terminal connection like a pipe
- Explicit terminal input redirection ensures keyboard control
- The combination preserves mpv's interactive capabilities

DATA FLOW:
Keyboard Input → /dev/tty → mpv (via unbuffer) → Process Substitution → grep → Terminal
EOF
.
1. PLAY NU MPV
Published: 2025-09-27 [Sat] 02:22, by prescient learnin all boy
https://x0.at/30jh.png
#!/bin/bash
# ┏━┓╻ ┏━┓╻ ╻┏┓╻╻ ╻┏┳┓┏━┓╻ ╻ USAGE: playnumpv <days>
# ┣━┛┃ ┣━┫┗┳┛┃┗┫┃ ┃┃┃┃┣━┛┃┏┛ (where days = number of days to
# ╹ ┗━╸╹ ╹ ╹ ╹ ╹┗━┛╹ ╹╹ ┗┛ search back for newer media files)

# Check if argument is provided
if [ -z "$1" ] || [[ ! "$1" =~ ^[0-9]+$ ]]; then
echo "Usage: $0 <days>"
exit 1
fi

# Create a temporary playlist file in a safe location
playlist=$(mktemp) || { echo "Failed to create temporary file"; exit 1; }

# Set trap to clean up temporary file on exit
trap 'rm -f "$playlist"' EXIT

# Get absolute path of the playlist to exclude it from search
abs_playlist=$(realpath "$playlist")

# Find all media files modified in the last $1 days and add them to the playlist
# Using absolute paths to avoid issues with relative paths
find "$PWD" -type f -regextype posix-extended -regex '.*\.(mp3|flac|opus|ogg|m4a|wav|nsf|mod|xm)' \
-mtime -"${1}" ! -path "$abs_playlist" -print0 | \
sort -z | \
tr '\0' '\n' > "$playlist"

# Check if any files were found
if [ ! -s "$playlist" ]; then
echo "No files found newer than ${1} days."; exit 0
fi

# Count the number of files in the playlist
file_count=$(wc -l < "$playlist")
echo "Found $file_count files to play."

# Play playlist with mpv using unbuffer to maintain terminal connection
# and process substitution to capture output without breaking stdin
unbuffer -p mpv --shuffle --term-osd=auto --osd-level=2 --no-audio-display \
--playlist="$playlist" 2>&1 > >(grep -E "Playing") < /dev/tty
.
1. Finally the universe listened to plab
Published: 2025-09-24 [Wed] 20:53, by Anonymous
https://www.arctic.de/en/highlights/senza-passive-cooled-pc/
The UNDER DESK PC WITH HEATPIPES GOING TO BIG PASSIVE RADIATORS.
SILENCE!
SILENCE!
SILENCE!
SILENCE!
.
15.
Published: 2025-09-24 [Wed] 12:43, by Anonymous
nobody cares about heyuripedo news
4chan lost
heyuri lost
sharty lost

4-ch won
ylilauta won
.
4. President Candidate
Published: 2025-09-15 [Mon] 19:41, by Evil Kata
I am evil Kata i say

Kill all gikos!!!
and wage war against .net giko!
we will conquer the internet and own all gikoland!!!
.
3.
Published: 2025-09-06 [Sat] 17:37, by Anonymous
I, crane ShovelFort, decided to become president of gikopoi.com
Rest assured I will do my utmost to do nothing all day and never
take anything into my hands, any quarrels will be yours to solve,
any problem will be yours to solve and, yes, any rewards will be
OURS to share :)
I vow to become the laziest president ever!
.
2.
Published: 2025-09-04 [Thu] 20:25, by Anonymous
Let's just elect Butterscotch again so he is forced to stay with us
.
1. Giko Presidential Run 2026
Published: 2025-09-04 [Thu] 20:21, by Archduke◆cRwJk8JEBs
We are looking for candidates for the presidential run of 2026.
Butterscotch , our great candidate from 2024-2025 has announced
that he is growing weary of his duties and is opening the floor to
elections.

Please enter your policy in this thread. Debates between candidates
can occur within this thread or on site on the given days -- please
create events on https://events.gikopoi.com/ if you will --

Debate #1 September 27
Debate #2 October 11
Debate #3 October 25

Election Day November 4
.
8.
Published: 2025-08-31 [Sun] 16:56, by taocana◆PhREAk.tEk
fully patched up2date src for convenience :^)

----BEGIN FILE tripex.c----
/* CC0-1.0 */

#include <err.h>
#include <crypt.h>
#include <regex.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#include <sys/random.h>

#define ARRAY_SIZE(x) (sizeof((x)) / sizeof((x)[0]))
#define MAX_EXPRS 262144

static unsigned char saltFilter[256];
static unsigned char rngFilter[256];
char *tripcode(const char *key);

/* if i put this garbage on the stack instead of bss, it will segfault. */
size_t n_exprs = 0;
regex_t exprs[MAX_EXPRS];

void usage(void)
{
fprintf(stderr, "usage: tripex [-Ef:hil:n:m:s:v] expressions\n"
" -E\tuse extended regular expressions\n"
" -f\tread expressions from file (use '-' for stdin)\n"
" -h\tshow usage\n"
" -i\tignore case\n"
" -l\tkey length\n"
" -n\tnumber of threads\n"
" -m\tmax number of tries (per thread!)\n"
" -s\tstack (logical AND) expressions before/after expr #n (negative for before)\n");
}

void appendExpr(regex_t exprs[], size_t *i, char *str, int re_flags)
{
/* avoiding malloc like the plague, simple and fast shitware!
* if you somehow need more than MAX_EXPRS, change it & recompile.
*/
if (*i >= MAX_EXPRS)
errx(EXIT_FAILURE, "no %s-kun! it's too many exprs, it wont fit!", getlogin());
if (regcomp(&exprs[*i], str, re_flags))
errx(EXIT_FAILURE, "failed to compile regex '%s'", str);
(*i)++;
}

int main(int argc, char *argv[])
{
int re_flags = 0;
int sflag = 0;
long stack_after = 0;
size_t n_procs = 1;
size_t key_len = 10;
size_t max_tries = 0;

int opt;
while ((opt = getopt(argc, argv, "E:f:hil:m:M:n:s:v")) != -1) {
switch(opt) {
case 'E':
re_flags |= REG_EXTENDED;
break;
case 'f':
FILE *fp = stdin;
if (strcmp(optarg, "-") != 0)
fp = fopen(optarg, "r");
if (!fp)
err(EXIT_FAILURE, "couldn't open regex file '%s'", optarg);

char *line = NULL;
size_t len = 0;
ssize_t nread;
while ((nread = getline(&line, &len, fp)) != -1) {
*strchr(line, '\n') = '\0';
appendExpr(exprs, &n_exprs, line, re_flags);
}

free(line);
fclose(fp);
break;
case 'i':
re_flags |= REG_ICASE;
break;
case 'l':
key_len = atol(optarg);
if (key_len < 1)
errx(EXIT_FAILURE, "key length must be at least 1");
break;
case 'n':
n_procs = atol(optarg);
if (n_procs < 1)
errx(EXIT_FAILURE, "need at least one process");
break;
case 'm': /* ! PER THREAD ! */
max_tries = atol(optarg);
if (max_tries < 1)
errx(EXIT_FAILURE, "need at least one try");
break;
case 's':
sflag = 1;
stack_after = atol(optarg);
break;
case 'v':
printf("tripex 1.2 by taocana\n");
return EXIT_SUCCESS;
case 'h':
/* FALLTHROUGH */
default:
usage();
return EXIT_FAILURE;
}
}

argc -= optind;
argv += optind;

for (size_t i = 0; i < argc; i++)
appendExpr(exprs, &n_exprs, argv[i], re_flags);

if (n_exprs < 1) {
usage();
errx(EXIT_FAILURE, "need at least one expression");
}

for (int i = 1; i < n_procs; i++)
if (!fork())
break;

regmatch_t pmatch[1];
unsigned char key[key_len + 1];
key[key_len] = 0;

for (size_t n = 0; !max_tries || n < max_tries; n++) {
if (getrandom(key, key_len, 0) < 0)
err(EXIT_FAILURE, "failed to get random key");

for (int i = 0; i < key_len; i++)
key[i] = rngFilter[key[i]];

char *trip = tripcode(key);
if (!trip)
err(EXIT_FAILURE, "failed to generate tripcode");

for (size_t i = 0; i < n_exprs; i++) {
int stacking = (sflag
&& ((stack_after >= 0 && i >= stack_after)
|| (stack_after < 0 && i < -stack_after)));

if (regexec(&exprs[i], trip, ARRAY_SIZE(pmatch), pmatch, 0))
if (stacking)
break;
else
continue;
else if (!stacking || i >= n_exprs - 1) {
printf("%s %s\n", trip, key);
break;
}
}

free(trip);
}

for (size_t i = 0; i < n_exprs; i++)
regfree(&exprs[i]);
return EXIT_SUCCESS;
}

char *tripcode(const char *key)
{
/* we don't do any sjis conversion, but who cares anyway? */
if (strlen(key) == 0)
return NULL;

/* unsigned for array lookups by character */
unsigned char *tempKey = malloc(strlen(key) + 2);
if (!tempKey)
return NULL;
strcpy(tempKey, key);
strcat(tempKey, "H.");

unsigned char salt[3];
for (int i = 0; i < 3; i++)
salt[i] = saltFilter[tempKey[i+1]];
salt[2] = 0;
free(tempKey);

struct crypt_data data;
bzero(&data, sizeof(struct crypt_data));

char *tempCode = crypt_r(key, salt, &data);
unsigned char *code = malloc(strlen(tempCode) - 3);
if (!code) /* doesn't fully handle crypt_r(3) errors yet */
return NULL;
strcpy(code, tempCode + 3);
return code;
}

static unsigned char saltFilter[256] =
"................................"
".............../0123456789......"
".ABCDEFGHIJKLMNOPQRSTUVWXYZ....."
".abcdefghijklmnopqrstuvwxyz....."
"................................"
"................................"
"................................"
"................................";

/* we must get printable ascii from a random byte,
* but 256 % 94 = 68 which leaves too much skew.
* quantizing into 64 chars won't skew at all, but
* it only has 6 shannons of entropy per character.
* an 85 character quantization only skews by a
* remainder of one, which is miniscule enough and
* we average 6.41 shannons per character.
*/
static unsigned char rngFilter[256] =
"!#$%&'()*+,-./012"
"3456789:;<=>?@ABC"
"DEFGHIJKLMNOPQRST"
"UVWXYZ^abcdefghij"
"klmnopqrstuvwxyz~"
"!#$%&'()*+,-./012"
"3456789:;<=>?@ABC"
"DEFGHIJKLMNOPQRST"
"UVWXYZ^abcdefghij"
"klmnopqrstuvwxyz~"
"!#$%&'()*+,-./012"
"3456789:;<=>?@ABC"
"DEFGHIJKLMNOPQRST"
"UVWXYZ^abcdefghij"
"klmnopqrstuvwxyz~"
"~";

.
26.
Published: 2025-08-30 [Sat] 18:40, by Anonymous
Something like !room to change the active room would be cool. Not sure how many gikocoins it should take.
.
25.
Published: 2025-08-07 [Thu] 20:47, by Anonymous
>>24
I love the capcha-redirect scheme,
works without icky javascript.

But i thought it would give me a unique post url...
that would allow a one-time post.

I don't see it doing that.

I seem to be on page: ht_tps://bbs.gikopoi.com/post/1705335928/24

As to yuour questeeionne...

I don't know what '!trip' is supposed to do.
But if those are affecting state of anything...
I'd wonder about maintaining relative sequence order.
.
24.
Published: 2025-08-07 [Thu] 15:26, by Archduke◆cRwJk8JEBs
Thinking of adding a !trip function that lets you search like...

!trip gyudon_addict -- show a list of trips associated with the name
"gyudon_addict", or

!trip !OWilfaktBI -- show a list of names associated with the trip
◆OWilfaktBI

Any ideas on how to sort this? It could go by the "!seen" index (maybe
last 5 logins associated with name/trip) or it could go by the !balance
index (the richer the name+trip, the higher up in the ranking). Feedback
welcome before I implement it . I am tending towards the former option
but I appreciate input
.
37.
Published: 2025-08-04 [Mon] 07:10, by Anonymous

.

^
This speck you see? its archduke's archdick,
aka toki ko's tokock.
(Enhanced size to be visible to the human eye)
.
5.
Published: 2025-08-02 [Sat] 18:38, by Anonymous
Lots of games between Phatty, Archy, and hjiu tonight.
Phatty and Arch both tasted defeat to the new player.
The addiction to GIPF is spreading like a disease.
.
4.
Published: 2025-08-01 [Fri] 01:41, by Anonymous
>>3
Archie, you're whole post is founded on assumptions and fabrications
.
3.
Published: 2025-07-31 [Thu] 17:05, by Anonymous
So is world2ch just heyuri minus the pedophiles? Or am I missing
something?

Broken links all around the site and constant censorship from the admin.
He really needs to research more about what world2ch was:
https://14get.helioho.st/

Two of the biggest posters on world2ch version 2 are pretty regular
giko people!
.
2.
Published: 2025-07-29 [Tue] 19:03, by Anonymous
http://world2ch.net/oekaki/src/1753814500046.png is without a doubt my favorite
.
Pohon BBS