Pohon BBS Anonymous https://bbs.gikopoi.com/thread/1717870466 2025-03-10T01:04:41+00:00 Getting organized with tech https://bbs.gikopoi.com/thread/1740850642 2025-03-01T17:37:22+00:00 2025-03-10T01:04:41+00:00 3 interesting ideas I've stumbled across lately -- <br><br>- https://terokarvinen.com/2021/calendar-txt/<br>- https://github.com/todotxt/todo.txt<br>- https://johnnydecimal.com/<br><br>How do you stay organized? PGP thread https://bbs.gikopoi.com/thread/1741194493 2025-03-05T17:08:13+00:00 2025-03-05T17:09:12+00:00 because why not? <br><br>> Web PGP tool:<br>https://browserpgp.github.io/<br><br>> My new public key<br><br>-----BEGIN PGP PUBLIC KEY BLOCK-----<br><br>mQINBGfIgvgBEADbnim3+j/hj8f7fI8kko74Tg0kSDh2LHMETo13b56wQ3q0AyrV<br>sSjLMTJ3u8uZ128/RVlzwvah658phFsMvWKETt83jmatI0i/Bs0B1kKLqmQdQLLi<br>uwU8pwuA5gaJ5RNhnH3KDdsSL3ZNVlswb3W4xQ3seNXqahoJJch0r3i6KYIS7S+S<br>1fitElV/RXhYA/d1PPf1c/JzmngpowiajU2n4WZf1//em33kIZZUmJbrgTPsF0YC<br>IeRyqEpV1IeHwD8mKcTNQntpm4jkWy8p1V3+YEnnD7qQY2xHdxcGb5TW7RoA7DT3<br>CsthdQC8D35d7y4xuLAKNMhLAvGJCRlbk2f3ESSsG46c4Py8TV74PauJOWY5EUSt<br>SBb2ueJXluZ/OwVHakUBUG7lTN+K1gfRbulRJQtlGVSPweZEzkWGVcYKk2IRtKxi<br>jdvnPdZ8i+jNDrOeyVkXHX4rlfdr2m7cZmoQT9lGWN8i0TKid3GKxSGeCG6Nu7QV<br>kANbIaiV3t/Bin6NfzPmJvmC0yXNF8Qwkp8MvmanSFJGRKeKncKnqaRyorzC9kdh<br>wQ5LoVenBDwYlVmsKxIFdYA3Kp7GGWg3StGtNEHJBZE3loFdLB1ouehfmPWhxhO9<br>7LwWkZladYT1GlQPuKlNusbzuVhdpirgrVppKYEjlP0A+1pxDosR8pGupwARAQAB<br>tCVBcmNoZHVrZSAvIEJvYiA8QXJjaGR1a2VAZ2lrb3BvaS5jb20+iQJOBBMBCAA4<br>FiEEnIZqYOB4Rp13a34bZY/xwBZu/v4FAmfIgvgCGyMFCwkIBwIGFQoJCAsCBBYC<br>AwECHgECF4AACgkQZY/xwBZu/v6qkxAAgyeMftqc9q0Y9dCOVSyvd1ERzpU3inD7<br>X+3rHHI7IHcZshHrDaIjWjRYo4akbvf1VYTUpHjsA3LVmlwQjtq84rHo3cC+vaSx<br>z7PoikbZ9by1RIS+D9r5uPrIKCfL8f4zDzexSNSMUAoYJF0s+A73ivD3s0hNeJNI<br>jQewexLl27vD4oWn6yUZ4P+O7Svfdg+HZOaT1AkOPMcJR+XoWe5ap++17NP7sOM6<br>PURrsR7IYJiANg9XcYCaGPMCOpt4aPqH/YwtQX6kthP+DaqrgKPBh+UvYLEh8jax<br>duEO6tsoT4AWZfTDZMnl2/ha7SdDlomRLd37xF5UebkDQ0++W7FswQ8WkO4QAyUk<br>y6Hkc8f6LlmfKMAFeL3eUirggJotI0VB3ZrV1EkSx1dCj5NTG+wABnEQnz7kdOUN<br>baRPrR1wy6K4qoyZvIshZopC4o0jzt6VJ/Ak/Rl1F/ogzfcQS1HaR1SehKuwC+Jv<br>pLrwa7md8Hp/ljkbzk2q6hzHPpfmoxkexROyqwyIrcSqG1EaaPI0FOwieCk32aL8<br>Mu5BSKdOzrYADygElYE+7qH9N/1NuM5nAcNjpmDOImY1MczYQi9rirDyoEMaYwM5<br>HZC5PRWX0RgKxSBLte7jEwLfgDxE4QQZ4q/Iu/PNpgA1zqcqVLnE9jzMNL0y6Cav<br>HImC68ajgFy5Ag0EZ8iC+AEQAKRFM7gAq2YrzOLgK3T+1KtK7e8JPjL66mbEqpBZ<br>CYffcSVVi43kfrp0vgWJg5LK0Sr7FeRflm8P7LiyvXLVOXQXRNd+u1gtgrlguftB<br>0/yVXnc488jydkQZfbBra8lq9NhOQy1/47Gq1vkqA9u4C7EDIslxi9nXdZeV5THm<br>OtJmiFcMBNk4gH+qaMpTGk+m6Fnhy/IvrRD+W/kfDnTIY/87zmH+EUpxRx+XgksU<br>CJgtLrQQieUAt0MLLgXeYZY9g3kPJyND58rYeOLs7aCBOkUdOF7/sGmX67smf17W<br>0VcrnTuqhE8EmvssRy414KXzGDn251At2dMTEM8yk3uv3HvBZbfyD+k+S9ahEs94<br>siyvATO65O7YhwpFi+JIuRGqs8ycMQxozcSVLI/DpDX+/HBHMfxMrzntB9sBclbI<br>GUqyWQkz9rsVp42DkDZ9jLcIKwnSflCFDg9Fd9XQHdBRunQRfPIqUu0KJrWbEKYd<br>vlQxKxl6vfemuDV7V2BlWECoj4zMDrdrvaDcdiKybn6pWpQpyZscG0CN21nmXBE2<br>JroxDYuf9CCFD1O67MUU7fN4RMzINm2p9TXelpnxrcAga8uBvLM/lFFAOP8Cd2HC<br>07s67cDjBi07lq5DygrpLP7myGCrqJlrSY6PTeA2i4b2u6rus77QDBL5/MU8lwhE<br>+vWJABEBAAGJAjYEGAEIACAWIQSchmpg4HhGnXdrfhtlj/HAFm7+/gUCZ8iC+AIb<br>DAAKCRBlj/HAFm7+/hF5EACIJUd2KbxDYrap7XyltF6k8LANf1ZQAm2u9cyxZj6k<br>DGfumro8Tvo3NWKs9X39fci+mjZUuRXLpwMe1W2SvdPN9HS/ve12qje1oovzx/5n<br>q628bQbzawuvfDs23o00T8fRv8e+mceGgxKNmBpC3g3r9YaNVt07GMX1io+EyfRv<br>KXNDI+58/bLAymFo/ZtPwfIw89W09NN4zS4DZ/yk4U1sxgYCH5IYBR3IV1AVERsf<br>Wn+6mbukGj5ptU8uQTl+FtHcZItmwu4L5YBN1xm0/gpvF7fZeq9LX23j98b/VUIi<br>L0hIjMzxdlbUAnVu8GQfaUhYlB0odo27ZSFnY3Ay8aWOf61y7H4p2v6ATykephre<br>rUNTRuz/CucqtF8qmQTOowtwZHYSjc8q9YXZkiUL2uDSlA01LobzFa57GF25O+UA<br>CQNJXMgqcH0Ahgtu5Kasz6D1aCNx86n/fwCmqKlT8YHdLxqcHAyuXRpQrukBZ0ZE<br>KVPPJfNV6k6abErtD7xAyplzXi3woGMt0d4iA7rs6Da4RuUJ7plm0D0xPvOORGFI<br>bXjHy6P7taswquTjvkXzC4ben47nn/IO8csrePJZEA9RBIdrRICnQyb5m5JJnXqc<br>P0ElTC87WZJLouW4hOaQwXpIG/Ej0Mnod+VGdEhlBUaQ3uVNfAvg6g4SlK93+u2V<br>RQ==<br>=w9lc<br>-----END PGP PUBLIC KEY BLOCK-----<br> What to do with "burnt" gikocoins? https://bbs.gikopoi.com/thread/1739042580 2025-02-08T19:23:00+00:00 2025-02-08T19:35:23+00:00 Akai, our chair of economic music, is working on a way to address the<br>inflation issue of gikopoi -- finding a way to consume coins <br>permanently for a use in a different sort of game that takes into mind<br>principles learned from systems of "progressive taxation" <br><br>From a different angle, it cannot be denied that if coins lost by <br>gambling ended up in a special wallet, giko.py would probably have more<br>coins than all other users combined. <br><br>If coins lost gambling ended up in a special account, what would be<br>interesting ways to make use of these coins? <br><br>Maybe each week people with a balance of at least X gikocoins could vote<br>for a user to receive a percent of the "pot", eg 5% <br><br>Maybe each week, people could buy lottery tickets for a chance to win<br>some random percentage of the pot, eg between 3% and 50% -- akin to the<br>US "powerball" system or something like "keno" <br><br>The most creative and fun answer will be the one implemented. tripex tripcode finding software https://bbs.gikopoi.com/thread/1736035463 2025-01-05T00:04:23+00:00 2025-02-06T17:34:51+00:00 releasing version 1.0 of my tripcode finding program, 'tripex'<br><br>compile the program as follows:<br>gcc tripex.c -o tripex -O3 -lcrypt<br><br>example #1; find tripcodes containing 'nice' (case insensitive):<br>./tripex -n $(nproc) -i nice<br><br>example #2; find tripcodes starting with either 'giko' or 'mona':<br>./tripex -n $(nproc) ^giko ^mona<br><br>example #3; find fully lowercase tripcodes with quads:<br>./tripex -s -n $(nproc) "^[a-z]*$" "\(.\)\1\{3,\}"<br><br>untested on anything but GNU/Linux with glibc, but it would probably work on FreeBSD too.<br>don't trust any update posts unless they have my tripcode or you can audit them yourself!<br><br>-----BEGIN FILE tripex.c-----<br>/* CC0-1.0 */<br><br>#include <err.h><br>#include <crypt.h><br>#include <regex.h><br>#include <stdio.h><br>#include <stdlib.h><br>#include <string.h><br>#include <unistd.h><br><br>#include <sys/random.h><br><br>#define ARRAY_SIZE(x) (sizeof((x)) / sizeof((x)[0]))<br><br>static unsigned char saltFilter[256];<br>static unsigned char rngFilter[256];<br>char *tripcode(const char *key);<br><br>void usage(void)<br>{<br> fprintf(stderr, "usage: tripex [-Ehilnmsv] expressions\n"<br> " -E\tuse extended regular expressions\n"<br> " -h\tshow usage\n"<br> " -i\tignore case\n"<br> " -l\tkey length\n"<br> " -n\tnumber of threads\n"<br> " -m\tmax number of tries (per thread!)\n"<br> " -s\tstack expressions (logical AND)\n");<br>}<br><br>int main(int argc, char *argv[])<br>{<br> int re_flags = 0;<br> int sflag = 0;<br> size_t n_procs = 1;<br> size_t key_len = 8;<br> size_t max_tries = 0;<br><br> int opt;<br> while ((opt = getopt(argc, argv, "E:hil:m:n:sv")) != -1) {<br> switch(opt) {<br> case 'E':<br> re_flags |= REG_EXTENDED;<br> break;<br> case 'i':<br> re_flags |= REG_ICASE;<br> break;<br> case 'l':<br> key_len = atol(optarg);<br> if (key_len < 1)<br> errx(EXIT_FAILURE, "key length must be at least 1");<br> break;<br> case 'n':<br> n_procs = atol(optarg);<br> if (n_procs < 1)<br> errx(EXIT_FAILURE, "need at least one process");<br> break;<br> case 'm': /* ! PER THREAD ! */<br> max_tries = atol(optarg);<br> if (max_tries < 1)<br> errx(EXIT_FAILURE, "need at least one try");<br> break;<br> case 's':<br> sflag = 1;<br> break;<br> case 'v':<br> printf("tripex 1.0 by taocana\n");<br> return EXIT_SUCCESS;<br> case 'h':<br> /* FALLTHROUGH */<br> default:<br> usage();<br> <br> return EXIT_FAILURE;<br> }<br> }<br><br> argc -= optind;<br> argv += optind;<br><br> if (argc < 1) {<br> usage();<br> errx(EXIT_FAILURE, "need at least one expression");<br> }<br><br> size_t n_exps = argc;<br> regex_t *exps = malloc(sizeof(regex_t) * n_exps);<br> for (size_t i = 0; i < n_exps; i++)<br> if (regcomp(&exps[i], argv[i], re_flags))<br> errx(EXIT_FAILURE, "failed to compile regex");<br><br> for (int i = 1; i < n_procs; i++)<br> if (!fork())<br> break;<br><br> regmatch_t pmatch[1];<br> unsigned char key[key_len + 1]; /* dynamic array, bad form but i'm lazy */<br> key[key_len] = 0;<br><br> for (size_t n = 0; !max_tries || n < max_tries ; n++) {<br> if (getrandom(key, key_len, 0) < 0)<br> err(EXIT_FAILURE, "failed to get random key");<br><br> for (int i = 0; i < key_len; i++)<br> key[i] = rngFilter[key[i]];<br><br> char *trip = tripcode(key);<br> if (!trip)<br> err(EXIT_FAILURE, "failed to generate tripcode");<br><br> for (size_t i = 0; i < n_exps; i++)<br> if (regexec(&exps[i], trip, ARRAY_SIZE(pmatch), pmatch, 0))<br> if (sflag)<br> break;<br> else<br> continue;<br> else if (!sflag || i >= n_exps - 1)<br> printf("%s %s\n", trip, key);<br><br> free(trip);<br> }<br><br> for (size_t i = 0; i < n_exps; i++)<br> regfree(&exps[i]);<br> free(exps);<br> return EXIT_SUCCESS;<br>}<br><br>char *tripcode(const char *key)<br>{<br> /* we don't do any sjis conversion, but who cares anyway? */<br> if (strlen(key) == 0)<br> return NULL;<br><br> unsigned char *tempKey = malloc(strlen(key) + 2);<br> if (!tempKey)<br> return NULL;<br> strcpy(tempKey, key);<br> strcat(tempKey, "H.");<br><br> unsigned char salt[3];<br> for (int i = 0; i < 3; i++)<br> salt[i] = saltFilter[tempKey[i+1]];<br> salt[2] = 0;<br> free(tempKey);<br><br> struct crypt_data data;<br> bzero(&data, sizeof(struct crypt_data));<br><br> char *tempCode = crypt_r(key, salt, &data);<br> unsigned char *code = malloc(strlen(tempCode) - 3);<br> if (!code)<br> return NULL;<br> strcpy(code, tempCode + 3);<br> return code;<br>}<br><br>static unsigned char saltFilter[256] =<br> "................................"<br> ".............../0123456789......"<br> ".ABCDEFGHIJKLMNOPQRSTUVWXYZ....."<br> ".abcdefghijklmnopqrstuvwxyz....."<br> "................................"<br> "................................"<br> "................................"<br> "................................";<br><br>static unsigned char rngFilter[256] =<br> "{dDOFByx8Jdo=C.{hFw:'p%m+]E-*}~4"<br> "O)YiM99y?%A)tldRIN4!fat`J|(iI+}h"<br> "]59P#T_Qx#h0q8w+F,$}Vo5Gq;<rw]Y~"<br> "k6>O~Ge,.DW9`hqhaSf#A.vrnhy`[2Ct"<br> "Bb6|7Mr+iJZG5.&7>?K@{D~6*Vs'H_*>"<br> "$Mh3R-F$Sp^.E5R-W1DnQzXC@Tf']xxt"<br> "o`GLO'Ui`S/v,aegU2HkE3Y6y!WZm%?k"<br> "aD/H=yH4vQg7dC*(Gx$vV[<vV?jw8s^d";<br> Matrix server launched https://bbs.gikopoi.com/thread/1731858662 2024-11-17T15:51:02+00:00 2024-12-01T14:55:44+00:00 In the past I have hosted matrix-synapse servers on multiple <br>occasions; resource consumption was always the limiting factor that<br>led me to pull the plug on them. Maybe someday I'll launch an XMPP<br>server. Until then, please enjoy using our matrix-conduit server.<br>Say hi in #lounge:gikopoi.com or swing by the #relay:gikopoi.com room<br>to chat with our discord and irc friends. multichan/0chan.vip down https://bbs.gikopoi.com/thread/1729791464 2024-10-24T17:37:44+00:00 2024-11-02T08:40:08+00:00 0chan.vip (multichan) is down. <br>unavailable.<br><br>the last bastion of truth & freedom. a truly decentralized federated multichan <br>bbs without js bloat.<br><br>bring it back. <br>pohon is not a replacement because it's not a decentralized multichan. Does Anonymity really improve discourse? https://bbs.gikopoi.com/thread/1716535805 2024-05-24T07:30:05+00:00 2024-10-30T22:38:09+00:00 By anonymity, I really mean anonymity -- not pseudonymous communities<br><br>Anonymity lowers the barrier to entry... for people who prefer <br>anonymous communities. But a lot of people who want to invest a lot of<br>real energy into a community, people who want to put work into serious<br>projects, are not going to prioritize an imageboard over something <br>like Discord or Twitter. <br><br>The main purpose of imageboards is to give a toilet to the internet.<br>Need to blow off steam? Vent? Post a dick pic? Get involved in petty<br>debates? Or are you such a brain damaged person that you get banned<br>from "mainstream" internet constantly -- you're the target audience<br>for 4chan. <br><br>Textboards and Gikopoi seem to have less tendency to go to complete<br>ass than imageboards, so anonymity does not automatically imply shit.<br>But this may just be due to the fact that these communities are very<br>small -- and they have less bias against pseudonymity than imageboards<br>As a counter-example, look at Sageru IRC for something that's generally<br>lower quality than /b/, /soc/, /pol/ etc <br><br>On places like IRC, Gikopoi, Mastodon, and other low-barrier pseudonymous<br>communities, mentally ill people and naughty children are easily blocked,<br>which creates a negative feedback loop that incentivizes the posters to<br>either shape up or get out. On the other hand, with an imageboard, when <br>trolling, someone can flame himself in the comments to keep himself in the<br>spotlight -- an anti-feature. <br><br>So my basic opinion is that anonymous and pseudonymous communities are<br>essentially equally good when small, and that as communities scale,<br>anonymous communities fare worse. This makes me think that gatekeeping<br>is actually not a bad thing. I can't imagine that Something Awful would<br>have done well without the $10 account registration fee, and something<br>like Reddit wouldn't work without karma. Anonymous communities have no<br>means by which to gatekeep, which is ultimately to their detriment <br><br>What do you think? computer programme fun https://bbs.gikopoi.com/thread/1725182612 2024-09-01T09:23:32+00:00 2024-10-10T19:42:57+00:00 the 'tree' command for my little tcl utilities collection now pretty<br>prints, but is still valid data. format is { path { subdirectories }}<br><br>example output:<br><br>mush {{<br> mush/people.tcl {}} {<br> mush/player.tcl {}} {<br> mush/input.tcl {}} {<br> mush/notions.tcl {}} {<br> mush/mush.tcl {}} {<br> mush/c {{<br> mush/c/raymath.h {}} {<br> mush/c/raylib.h {}} {<br> mush/c/raygui.h {}} {<br> mush/c/libraylib.a {}} {<br> mush/c/rl.c {}} {<br> mush/c/make.tcl {}} {<br> mush/c/rlgl.h {}} {<br> mush/c/rl.so {}}}} {<br> mush/graphics.tcl {}} {<br> mush/tool.tcl {}} {<br> mush/tools.txt {}} {<br> mush/proto.tcl {}} {<br> mush/event.tcl {}} {<br> mush/object.tcl {}}}<br> gikopoi.py https://bbs.gikopoi.com/thread/1705335928 2024-01-15T16:25:28+00:00 2024-10-10T15:17:19+00:00 There is now a terrible Gikopoi bot I've written based on code from <br>kafli: you can invoke it with the !help command in the bar.<br><br>It has a blackjack and bank plugin. <br>You can win REAL gikocoins and send them to your friends!<br><br>I'm planning to add a !memo function (send a message to someone <br>offline or AFK and the bot sends them your message when they return)<br>and also !random / !addquote functions (get or add gikopoi quotes).<br><br>What else do you think would be useful? I was thinking the bot could<br>share youtube metadata when a youtube link is shared, e.g. the title<br>of the video and its duration. The possibilities are endless... <br><br>source: https://github.com/153/giko.py FOSS Games https://bbs.gikopoi.com/thread/1705095924 2024-01-12T21:45:24+00:00 2024-07-19T23:12:06+00:00 what is your favorite foss game? cataclysm:dda is pretty good. stylesheet thread https://bbs.gikopoi.com/thread/1720824245 2024-07-12T22:44:05+00:00 2024-07-13T17:33:47+00:00 talk about pohon stylesheets here<br>here are various site features to test<br>>gtxt<br>%%spoiler%% bbs cert expired https://bbs.gikopoi.com/thread/1720002867 2024-07-03T10:34:27+00:00 2024-07-03T16:46:07+00:00 certificate for pohonbbs is expired 29th of june It's good to send emails to friends. https://bbs.gikopoi.com/thread/1705087964 2024-01-12T19:32:44+00:00 2024-06-30T16:03:13+00:00 As life goes on, and we separate from people we cared about before,<br>it remains a great practice to send emails to old friends every now <br>and then.<br><br>It's not essential AT ALL to make a Facebook / Instagram / Tiktok <br>/ LinkedIn / whatever to stay in touch with old friends. If anything,<br>people are more likely to keep their old mail address as trendy <br>spyware apps come and go. <br><br>Equally, it's easier to keep a friend's mail address for long spans<br>of time than phone numbers -- and the kinds of communications we make<br>over email tend to be more meaningful than the kinds we may make on<br>text-adjacent platforms like Whatsapp or Signal, Telegram, etc. <br><br>Do you ever send mails to your old pals?<br>When was the last time you sent a personal email?<br><br>If you know any old friends' emails, maybe this thread can serve as<br>a timely reminder to fire them off a message. Or, maybe it can serve<br>as inspiration to exchange email addresses with your friends today. <br><br>I hope this thread can encourage you to write someone an email, <br>or save someone's email address if you don't have many. Email is a<br>great way to maintain friendships over time and distance -- even if<br>it's "not trendy" it's also not bad! You would be surprised about<br>how many people would be pleased to get an email that's not spam <br>from GoogBookBankShopApp and take the time to write a caring, <br>thoughtful response back to you. New project: WikiWikiWiki https://bbs.gikopoi.com/thread/1717870466 2024-06-08T18:14:26+00:00 2024-06-25T07:19:11+00:00 Greetings,<br><br>https://wiki.gikopoi.com has been launched. <br><br>Source code @ https://github.com/153/wikiwikiwiki