@ Pohon BBS

Last 25 posts

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
.
1. Still using DQN? - Quality Tutorial
Published: 2025-07-29 [Tue] 18:53, by totally 0037
Get out of that low quality board and go to world2ch: more quality than DQN and
saovq(now especially) combined

Only the freshest threads straight from the shore, shucked and ready to eat.
A don't forget to stop by http://world2ch.net/oekaki/ , the oekaki vendor only
serves true quality drawings.
Perhaps the administrator will create a news4vip board so we can call it VIP
quality.
.
4.
Published: 2025-07-18 [Fri] 20:38, by Archduke◆cRwJk8JEBs
More brilliant games with phatty tonight! 2 rounds of Gipf and 1 of
Zertz.

Wiki article underway... https://wiki.gikopoi.com/w/GipfProject
.
3.
Published: 2025-07-18 [Fri] 13:01, by Archduke◆cRwJk8JEBs
Successful round of GIPF last night with PhatCat.
Played ZERTZ today with waifu. Crazy fun.

I'm planning on DIYing some of the Gipf project games because the
games are very simple but would end up being at least $50 a pop if I
wanted to import them to Indonesia. Based on this charming story, I
think the game dev would approve:
http://krisburm.be/en/extracts#checkers

My "bright idea" is to use plastic bottle caps as pieces. I already
have 18 black bottle caps and 18 of various colors to serve as a base
set for Gipf. Turn all the bottle caps upside down and add another,
now there's a Zertz set. (just add marbles or other tokens)

Manufacturing a Yinsh set would take a bit more work but I got ideas.
too bad I don't know anyone locally with a 3D printer because that could
produce some really solid pieces but DIY with random odds and ends can add
a lot of character to games. Googling (gipf project game) + diy shows a lot
of crafty ingenuity.

.
36. silly face
Published: 2025-07-18 [Fri] 05:54, by Anonymous
oooo$$$$$$$$$$$$oooo
oo$$$$$$$$$$$$$$$$$$$$$$$$o
oo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o o$ $$ o$
o $ oo o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o $$ $$ $$o$
oo $ $ "$ o$$$$$$$$$ $$$$$$$$$$$$$ $$$$$$$$$o $$$o$$o$
"$$$$$$o$ o$$$$$$$$$ $$$$$$$$$$$ $$$$$$$$$$o $$$$$$$$
$$$$$$$ $$$$$$$$$$$ $$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$ $$$$$$$$$$$$$$ """$$$
"$$$""""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ "$$$
$$$ o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ "$$$o
o$$" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$o
$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" "$$$$$$ooooo$$$$o
o$$$oooo$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ o$$$$$$$$$$$$$$$$$
$$$$$$$$"$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$""""""""
"""" $$$$ "$$$$$$$$$$$$$$$$$$$$$$$$$$$$" o$$$
"$$$o """$$$$$$$$$$$$$$$$$$"$$" $$$
$$$o "$$""$$$$$$"""" o$$$
$$$$o o$$$"
"$$$$o o$$$$$$o"$$$$o o$$$$
"$$$$$oo ""$$$$o$$$$$o o$$$$""
""$$$$$oooo "$$$o$$$$$$$$$"""
""$$$$$$$oo $$$$$$$$$$
""""$$$$$$$$$$$ PThhHHhhBT!!!
$$$$$$$$$$$$
$$$$$$$$$$"
"$$$""""
.
Pohon BBS