## What is this John's personal wiki for tech things he's trying to understand or store in a place that isn't likely to go away. Stuff here may make it into future videos, or be related to existing videos. The structure of this wiki will change a lot, so search is your best option to find something. You can use wildcards for search as well. ## Systems ### Commodore Amiga It's why you're probably here. * [[:amiga|Commodore Amiga]] ### Commodore 64/128/other 8 bits * [[:commodore_8bit|Commodore 8 bit computers]] ### Atari * [[:atari:atari_st|Atari ST]] ### Nintendo Entertainment System ### Sega Genesis * https://oldvcr.blogspot.com/2023/02/dusting-off-dreamcast-linux.html ### IBM PC * [[:ibm_pc|IBM PC]] * [[ibm_pc:msdos|MS-DOS]] ### Raspberry Pi * [[:raspberry_pi:badger_2040|Badger 2040]] * [[:raspberry_pi:inky_frame|Inky Frame]] ### FPGAs * [[:fpga:open_source_toolchain|Open Source FPGA Toolchain]] ### Quantel * [[:quantel:paintbox|Paintbox]] ### Linux * [[:linux|Linux]] ### Haiku * [[:haiku|Haiku]] ## CPUs * [[:m68k|Motorola 68000 Series]] ### MOS Technology 6502 * [[6502:development:6502_assembly_language|Assembly Language]] ## Networking * [Beej's Guide to Network Programming](https://beej.us/guide/bgnet/html/) * [Non-blocking socket connect in C](http://mff.devnull.cz/pvu/src/tcp/non-blocking-connect.c) * [Non-blocking socket bind in C](https://www.ibm.com/docs/en/i/7.3?topic=designs-example-nonblocking-io-select) * [Non-blocking socket recv](https://stackoverflow.com/questions/6326064/c-c-sockets-and-a-non-blocking-recv) ### Parsing IPv4 addresses `inet_addr` returns -1 (`INADDR_NONE`) on failure, which is `255.255.255.255`. Use `inet_aton` if you want something more robust. ### DNS * [hostent structure for getaddrbyname](https://learn.microsoft.com/en-us/windows/win32/api/winsock/ns-winsock-hostent) ### FTP * [Active vs. Passive FTP](http://slacksite.com/other/ftp.html#pasvexample) * https://www.ibm.com/support/pages/ftp-deeper-look-passive-file-transfer ## Technologies * [[:technologies|Technologies]] * [[:technologies:liquidsoap|Liquidsoap]] streaming language/system * [[:technologies:mysql|MySQL/MariaDB]] database server * [[:technologies:mister|MiSTer]] FPGA emulation system * [[:technologies:git|git]] revision control system * [[:technologies:rsync|rsync]] file transfer utility * [[:technologies:dokuwiki|DokuWiki]] file-based wiki software * [[:technologies:anki|Anki]] flashcard learning system * [[:technologies:Krita|Krita]] illustration software * [[:technologies:mixxx|Mixxx]] DJ software * [[:technologies:obs|OBS]] streaming studio * [[:technologies:neovim|NeoVim]] editing software * [[:technologies:audacity|Audacity]] audio editing software * [[:technologies:hugo|Hugo]] blogging software * [[:technologies:gitea|Gitea]] git hosting webapp ## Hardware * [[:mechanical_keyboard:sweet16_v2|Sweet16 v2]] mechanical keyboard kit * [[:3d_printer:prusa_mk4|Prusa Mk4]] 3d printer * [[:displays:vga|VGA]] Video Graphics Array ## How tos My own checklists/approaches for dealing with these scenarios. Do with them as you will. * [[:how_tos:detect_and_swap_failing_linux_hard_drive|Detect and swap out a failing Linux hard drive]] ## Electronics I'm trying to understand electronics. * [[:electronics|Electronics]] ## Programming * [[:programming:c|C]] programming language ## Random * [[:random_things|Random Things]] --- [[:old_blog_posts|Old blog posts]] --- This wiki will be updated and reorganized often as sections get too big. The goal is to have many smaller pages that are easy to search for and link to, rather than large pages that are hard to scan. **Remember to use wiki-style links to allow for page renames!**