• Activity
  • Votes
  • Comments
  • New
  • All activity
  • Showing only topics in ~comp with the tag "ask.discussion". Back to normal view / Search all groups
    1. What I learned building my first custom water loop

      This weekend, I've fulfilled a long dream of mine and upgraded my computer to a fully custom waterloop. This is, for a number of a reasons, a complicated process, and outside of general advice,...

      This weekend, I've fulfilled a long dream of mine and upgraded my computer to a fully custom waterloop. This is, for a number of a reasons, a complicated process, and outside of general advice, it's difficult to provide an exact guide on how to do this. Custom waterloops are, well, custom. They depend mostly on what computer case you use, and what sort of reservoir and such you've bought. As such, my advice can also only be general.

      Plan ahead

      Check online for custom watercooling builds in your case. Use those as a guide for radiator and reservoir placement. Sketch ideas out on paper. Measure out the places inside of your case where you intend to place components. Check the your pc case manual, those very often contain info on where you can place radiators and reservoirs.

      Some cases are ill-suited for custom waterloops. Consider buying a new case rather than building in an old, ill-suited one. It will save you a lot of pain.

      Some cases require modifications. I had to cut into mine with a metal saw to make space for a radiator. Minimal material was removed from the frame, invisible after the case is put back together. I also had to drill into it to place the reservoir. The holes case manufacturers place for reservoirs are best-effort guesses. Unlike for fans, and thus radiators, there are no standards for reservoirs.

      Do not rush

      Expect a marathon, not a sprint. There will be setbacks. My process, setbacks and all, took me 3 days. And I still fucked up assembling my GPU. The die has bad contact and I'll have to drain the loop, pull it out, disassemble it and put it back together again. A lot of this was also spent waiting for next-day deliveries to show up because I'm dumb and was missing things.

      Prefer soft tubing, and do not go for PVC

      There are no performance benefits to hardline tubes, and they are a bitch to measure, bend and cut precisely. That 95° angle that was meant to be a 90° is going to be evident immediately, and forever. Soft tubes are forgiving, easy to put into the system and much more time efficient. They also do not require extra equipment dedicated solely to bending hardline tubes. Think about where your build is going to sit. On the floor? Who gives a shit how it looks?

      Edit: if you opt for soft tubes, don't get them made from PVC. They very often leak plasticizers into the loop that gunk up your components and reduce performance. You'll need to swap them after some time and they also tend to harden. To minimize maintenance, go for EPDM tubing. It's black instead of transparent, but it's better in the long term.

      Custom waterloops are all about you, and if you insist, then you do you. Hardline tubes are the endboss of all pc builds. Be ready for a challenge. Conversely, some folks really want transparent soft tubes. Just know what you're getting into.

      Tube sizes

      The standard soft tube is 13 mm outer diameter and 10 mm inner diameter, or 13/10. There's a ton of other sizes as well but remember even if the inner diameter is larger, liquid flow improvemets are going to be marginal. Different sizes also need different fittings.

      Respect the crink

      Soft tubing is a breeze to put into your system, but don't make those corners too tight or it'll crink and cut off flow. Check this especially when you close up the panels of your pc case. Tubing is cheap, comparatively. Don't be afraid to use more than you need.

      Money

      Custom water loops are pricey. Full copper radiators start at 100€, water blocks are usually hundreds as well, with the tubing, fittings and all it's normal for cooling equipment alone to account for a grand. You're bolting an aftermarket cooling system onto your PC that will turn it into a racecar. A lot of that is finely machined copper. It costs.

      Remember the extras

      Ya know how I said that I needed to order some extra things last-minute? Thank fuck for Amazon and their fast deliveries. If you live in a larger city, there's also a good chance a specialist computer store somewhere might have what you need.

      Leak tester

      Those are small air pumps with a pressure gauge. You close of all ports and then pump air into the system, 0.5 bar maximum (!!!), and wait 60 minutes. If the pressure is maintained, congratulations, your system is air- and thus watertight.

      Test your individual components before you put them into your case! This way, you know that the components themselves are tight, and you avoid having to pull out a radiator after screwing it in place because you forgot to tighten that one end cap you can now no longer reach. Ask me how I know.

      Also test our loop when it's fully assembled. Should you have a leak, divide your loop into two halves and leak test those. Repeat (divide into halves and test) until you have located the leak. If you have tested your comps individually before, it's going to be a radiator fitting you forgot to tighten or your reservoir top 99% of the time. Have a book or a podcast ready because this is a long process with lots of downtime.

      Motherboard 24-pin jumper plug

      These nifty little things are incredibly cheap and useful. After you wire everything up, you want to fill your reservoir and turn on the pump, but obviously you do not want to immediately electrify your entire system. So you pull the 24-pin motherboard cable of your motherboard and put the plug into it. It bridges specific pins, tricking your power supply into thinking a motherboard is connected. This way your pump turns on without the rest of your system. Once the water is circulating and not catastrophes have occured, you can turn off your power supply and plug the mobo back in.

      Common advice

      This is advice that's often repeated in watercooling circles for beginners. If you're seriously considering doing this, you will likely already have stumbled upon these. I'm adding these just for posterity.

      Do not mix aluminium and copper/brass

      Cheaper watercooling components are often out of aluminium while pricier ones are out of copper. You do not want both in your system as they eat each other through galvanic corrosion. If your cooling blocks for the GPU and CPU use copper (they very often do), the rest needs to be out of copper or brass as well, fittings included!

      Buy more fittings than you think you need

      Remember, per tube you'll need at least two! Check that they have O-rings, as those provide the seal.

      Put a drain port into your loop

      You should generally drain and flush the loop at least once a year. This will be a lot easier if on low points you have faucet you can attach a tube to and open to drain it. Pulling the loop back apart is generally the last thing people think off when building a custom loop for the first time, so it's useful to know.

      Consider quick disconnects

      Quick disconnects are special fittings you can put into a tube or attach directly to a port. You can then pull them apart with minimal or no leakage of your cooling fluid without having to drain your loop. Really useful for example the GPU, which tends to be the component that's swapped out most often.

      Use cooling fluids over distilled water

      Obviously no fucking tap water, ever! But lots of folks also gravitate to distilled water. Cooling fluids like what Alphacool or Aquacomputer make have extra stuff in them, like corrosion inhibitors and biocides that prevent algae build up. You can also mix these yourself if you can get the inhibitors and biocides concentrated but if you're on that level I don't think you need this guide anymore.

      Also, colored liquid fucking sucks. Unless you want to pull apart your water blocks and clean them with a toothbrush, use clear liquids. If you want fun colors, put RGB into your case.

      120 mm of radiator length per 100 W of heat generation

      The two components generating the most heat in your PC are likely the CPU and GPU. Check the specs of those to see how much heat they generate. This number is generally known as the Thermal Design Point (TDP). Radiators come in many sizes fitted to fan sizes, mostly in multiples of 120 or 140 mm, but running this calculation gives you a baseline for how much radiators you need. More is always better! Fit in as many radiators as you can into your case, but if your case can't fit the number of this calculation then you need to look for a bigger case.

      Knowing the TDP is rarer for GPUs, you can also use board power or power draw as a substitute. We're doing napkin math here, no need to be precise.

      Example:

      CPU: 170 W

      GPU: 300 W

      -> round up to 500 W, which means 5 * 120 = 600. A 360 mm radiator fits 3 120 mm fans. You'd need 2 radiators with 3 fans each to cool your system adequately.

      Alternatively, a 280 mm radiator fits 2 140 mm fans. You'd need 3 of those to cool the system.

      Radiator thiccckness

      Radiators come in different thicknesses. Since what dictates a radiator's ability to dissipate heat is the total surface of it's fins, increasing the thickness improves cooling ability. However, most PC cases, even full towers, are practically limited to 45 cm rad height at most.

      Noise

      A big motivation for doing this was noise. Cooling everything with a custom loop means that I've lost the 2 fans on my CPU air cooler and the 3 fans on my GPU. What remains are the case fans only, 2x180 mm ones and 3x140 mm. Those can now run at dramatically lower speeds (10% fan speed at idle, ramping up much more slowly) for a nearly silent build even under full load. The pump and reservoir combo I've chosen are isolated from the pc case through rubber standoffs which means that the pump, even when at 100%, runs dead-silent.

      Chasing diminishing returns

      Switching to a custom loop alone is a massive bonus to the computer's ability to be cooled, because water is a much more efficient way to move heat than air. Case radiators also have much more volume than the heat sinks on your GPU and CPU right now, improving the cooling further.

      Once you step into this world, the choices open to you are staggering. Delidding the CPU. Using liquid metal instead of thermal paste, etc. etc. Unless you're planning on overclocking your system, there's no point to doing any of those things that are actively dangerous.

      Liquid metal buys you a couple of degrees °C at best, at the cost of being dangerous and difficult to apply and even a tiny escaped drop having the ability to short and fry your GPU for good.

      Delidding your CPU is only useful if you plan to overclock. I did it, but only because the company Thermal Grizzly sells delidded CPUs and a fitting water cooling block. If you're doing it at home, the investment is way too large to make sense. Delidding also requires liquid metal afterwards. See paragraph above for that.

      If you're in this just because you want a high performing system at less noise, then using a PTM material instead of thermal paste is going to be good enough.

      All of these improvements lower temperatures of your components. Delidding the CPU and cooling it directly buys you something like 20°C under load. But the thing is, a good water cooling loop can absolutely cope with a high performance CPU running at 100 per cent. With the IHS on it'll just push 80°C instead of 60°C.

      Functionally, there's no difference if the CPU runs at 60°C or 80°C. The only time it matters if if you're over clocking and through that causing the CPU to approach its thermal limit. Then dropping it by a few degrees makes sense.

      If not? Skip them.


      I hope these help people. Feel free to ask any questions!


      Edits in no particular order:

      Loop order does not matter

      PC custom water cooling loops are not car engines, and as such the thermal differences between coolant and components is much smaller. This means that having a radiator follow a component to immediately cool the water down is much less effective than just adding more rad volume. It also tends to make your tube runs messier and is overall not worth it.

      31 votes
    2. My week with a BC-250, or how I made a gaming HTPC with a chopped PS5

      I caught wind of the BC-250 after the Linux on PS5 post where @moocow1452 posted about them and shared a link. The BC-250 is an APU cut down from PS5s that didn't pass Sony QC, they were...

      I caught wind of the BC-250 after the Linux on PS5 post where @moocow1452 posted about them and shared a link. The BC-250 is an APU cut down from PS5s that didn't pass Sony QC, they were originally slated for waste but largely got picked up by crypto miners. I hadn't got myself anything for my birthday or promotion, so when I found a deal, I grabbed it for the HTPC I'd wanted but couldn't justify. (Long post, tl;dr at end)

      Specs:
      6-core AMD Zen 2, stock clock 3.5GHz
      AMD custom GPU, stock clock 1.5GHz*
      16GB unified GDDR6 RAM+VRAM
      M.2 2280 slot
      *Stock lock is weird and limited, will discuss

      I'm not sure exactly when they got proper Linux support or folks started using them for gaming but I'm definitely behind the curve. You used to be able to get them <$100 but now they seem to be going for $180. I found a "pre build" for $275 shipped that had it ready to go, including a case, cooling, PSU, 256GB SSD, and unlocked BIOS... this isn't too far from what I would've totalled had I gotten the board for ~$80, and saved me some headaches. While the seller pre installed Bazzite, no way was I trusting the OS installed by a random eBay seller.

      So what's it take to make one of these usable, what trouble did the seller save me? Let's start with the BIOS -- this needs to be unlocked by flashing though I'm not totally sure if it's required to use it at all but at the very least it unlocks the dynamic 512mb VRAM. 16GB total is kinda limiting today and the default split is 8/8 RAM/VRAM -- a static split isn't exactly ideal -- depending on your game, you could easily be maxing out one with unused of the other. The dynamic 512 reserves only 512mb for the GPU alone and allows the rest to be properly split as needed (mostly, there's still technically a VRAM cap that can be raised with kernel parameters).

      OK next saved headache was the cooling. See, these were built as server units with fans set to blow air through them. The heat sink fins are closed off on the top. One can print a sleeve to have a standard fan push air through, but opening the fins up and letting the fan push air through from the middle is more effective, more like your typical consumer GPU. Seller did a messy job, but it is opened in the middle. Some folks use 2 fans and fully open the fins for a cooler/quieter build.

      The final headache was minor but they saved me from sorting out the PSU and power button. Since the board is powered just by 8 pin PCIE, for this PSU, two pins on another header need to be shorted to stay powered on, seller already had this in place. Seller also soldered power and reset buttons to the board.

      So with the hardware sorted, what does the software end look like? While it can technically run Windows, but it does not and will not have GPU drivers -- though folks have added external GPUs. The main 2 OS options folks recommend are Bazzite and CachyOS. Folks say Cachy is better but benchmarks I saw weren't that compelling, I already use Bazzite and it seemed to have less extra steps so I went with that, standard installation process went smooth and it was basically ready to go from there... So why am I futzing around so much?

      Well, the dynamic VRAM can collide with the default ZRAM swap, causing crashes and other errors. So I went through disabling that, enabling ZSWAP, then tweaking config and kernel parameters according to community info. So part of my futzing was comparing speed and stability with the various RAM settings and swaps.

      So the next futzing was the GPU clock. The stock is locked at 1.5GHz over 920mV always no matter if load is high or low, but PS5 runs em around 2.3GHz and higher volts. There's a community governor that can decrease volts/clocks under light load and unlock the stock. Folks easily get 2.0GHz at 1000mV but some push 2200+ at 1150. So testing with that was more futzing around, playing in Expedition 33 for half an hour to see if settings were stable. I found the defaults to be fairly aggressive, causing artifacts and crashing. I disabled all their default points over 920mV, set one at 2.0/1000, and called it a day. Didn't feel like trying to squeeze out another 100MHz. Also boosted the bottom 700mV point up by 20 since I saw some graphical artifacts at low loads and that cleaned those up. (<700 locks it right back to stock parameters so that's the effective minimum)

      Next up is the CPU, stock has it at 3.5GHz at 1180mV. Folks have been able to get the same clock down to 1000mV, some mad lads pushing 4.1GHz and like 1.3V. There's another community tool for helping with this where you punch in a target clock, voltage, and temp, then it tests it out. I haven't settled this one out, I may go for a bit of an under volt to help keep it quieter/cooler since it's an HTPC, or may just leave it at stock. Folks also recommend disabling mitigations for Spectre/Meltdown as it significantly slows the CPU and you're fairly unlikely to need it for a DIY Steam Machine.

      So I was stumbling through this following the community wiki, it had some good and useful info, but it didn't seem entirely consistent and sometimes was just wrong. Turns out, it's an AI compilation of community info. I'd have saved myself a ton of trouble if I'd found this repo and followed their instructions as that's what I eventually found worked best.

      Expedition 33 was my main real world benchmark tool. With FSR+LSFG on medium, I was hitting 1440p@90fps, 1080p@45fps without. The site compares it to a 3060, I thought that was mine until I double checked and have a 3070. It does E33 with DLSS+LSFG at 1440p@120fps cap on medium, or 1080p@60-70fps without either. So while the .info site seems to accurately describe the GPU as similar to a 3060, their benchmarks seem to include scaling and/or frame gen based on my limited testing. However, E33 still looked bad and off compared to my Nvidia at the same settings. After a day of fiddling, I looked it up and turns out, E33 specifically looks worse on AMD.

      As for HTPC apps, Jellyfin flatpak works great. Official Plex apps are deprecated, both flatpak and snap, they run terribly. Girens (unofficial Plex client flatpak) seems to work well, but requires a mouse and sub menus don't work in big picture. I plan on using a PS4 controller (touchpad works as trackpad) for the time being so this isn't too big a deal, but it's definitely less polished than the Plex smart TV app. VLC with the network drive mapped so we can play direct from file as back-up. And finally VacuumTube for YT smart TV interface with ad blocking. Hardware encoding/decoding does not work and will not so it's all done by the CPU, but it was enough for my high bitrate 4k HEVC decoding test.

      It doesn't have proper sleep states. Can't wake from USB/LAN, power button only, and doesn't actually sleep CPU/GPU so it doesn't really save power in sleep. Shutdown/cold boot is inconvenient for a daily use HTPC. Estimated 60W at idle, about $6 a month left on 24/7 for us, perhaps an extra $50/yr compared to a box with proper sleep. However, most it can pull under load is 235W, less than a typical gaming PC. Not enough to realistically break even versus a gaming PC with proper sleep though, so it's probably an expense worth considering in comparison shopping for a similar usage.

      Final Verdict: do I recommend it? Honestly, if you're getting bare board for $180, maybe not, but also depends on who I'm recommending to. I seen someone on the discord selling them for $150, others may be selling too, perhaps prebuilts even. Between case, fan, PSU, and SSD you're ending up closer to $400 for a running build -- and that's before wifi/Bluetooth/controller if you don't have extras of those already. At that rate, you may be better off getting a mini PC + eGPU dock + older graphics card, but I'd need to shop around to see how their price:performance ratio compares. On top of that, you'll likely need to do the trouble the seller saved me. Getting the software going is fairly simple nowadays though, so long as you have the foreknowledge to just use NexGen's repo. If you're curious, do some comparison shopping between what you find for these versus a mini PC + eGPU setup. Don't forget to consider the cost of the BC250's idle draw if you don't want to cold boot each day/use. I wanted a machine that could be a media client, do some modest gaming, and to experiment with AMD and unified V/RAM. I ended up with one that can do that and some AA/A, so I'm satisfied, despite the quirks.

      13 votes
    3. Vibe coding is just the return of Excel/Access, with more danger

      I probably triggered some PTSD right there. Was just in a meeting at work, where we listed off everything that makes software development hard and slow. An excersize for the thread would be to...

      I probably triggered some PTSD right there.

      Was just in a meeting at work, where we listed off everything that makes software development hard and slow. An excersize for the thread would be to replicate that list. It turned out that Claude helps with like 1/5th or less of it....especially in a collaborative environment.

      So, the situation we're now encountering is that random business areas can vibe code out something, tell nobody, throw it in AWS, have it become a critical part of a business process that fails when they quit, and nobody even has access to look at what was made.

      It gives me comfort that in about 5 years there will be a new surge in demand for programmers to reign in all the rogue applications that need shutdown because of the immense risk to continual operation of a company, from data leaks to broken payroll.

      It'll be Y2K all over again.

      45 votes
    4. Static analysis, dynamic analysis, and stochastic analysis

      For a long time programmers have had two types of program verification tools, static analysis (like a compiler's checks) and dynamic analysis (running a test suite). I find myself using LLMs to...

      For a long time programmers have had two types of program verification tools, static analysis (like a compiler's checks) and dynamic analysis (running a test suite). I find myself using LLMs to analyze newly written code more and more. Even when they spit out a lot of false positives, I still find them to be a massive help. My workflow is something like this:

      1. Commit my changes
      2. Ask Claude Opus "Find problems with my latest commit"
      3. Look though its list and skip over false positives.
      4. Fix the true positives.
      5. git add -A && git commit --amend --no-edit
      6. Clear Claude's context
      7. Back to step 2.

      I repeat this loop until all of the issues Claude raises are dismissable. I know there are a lot of startups building a SaaS for things like this (CodeRabbit is one I've seen before, I didn't like it too much) but I feel just doing the above procedure is plenty good enough and catches a lot of issues that could take more time to uncover if raised by manual testing.

      It's also been productive to ask for any problems in an entire repo. It will of course never be able to perform a completely thorough review of even a modestly sized application, but highlighting any problem at all is still useful.

      Someone recently mentioned to me that they use vision-capable LLMs to perform "aesthetic tests" in their CI. The model takes screenshots of each page before and after a code change and throws an error if it thinks something is wrong.

      10 votes
    5. AI Coding agents are the opposite of what I want

      I've been thinking a lot about LLM assisted development, and in particular why I keep dropping the available tools after a few attempts at using them. I realized recently that it's taking away the...

      I've been thinking a lot about LLM assisted development, and in particular why I keep dropping the available tools after a few attempts at using them.

      I realized recently that it's taking away the part of software development I enjoy: the creative problem solving that comes with writing code. What's left is code review tasks, testing, security checks, etc. Important tasks, but they all primarily involve heavy concentration, and much less creativity.

      Why aren't agents focused on handling the mundane tasks instead? Tell me if I've just introduced a security vulnerability or a runtime bug. Generate realistic test data and give me info on what the likely output would be. Tell me that the algorithm I just wrote is O(n^2).

      Those tasks are so much more applicable to matching against existing data, something LLMs should be extremely good at, rather than trying to get them to write something novel, which so far they've been mostly bad at, at least in my experience.

      46 votes
    6. Updating Eagleson's Law in the age of agentic AI

      Eagleson's Law states "Any code of your own that you haven't looked at for six or more months might as well have been written by someone else." I keep reading how fewer and fewer of the brightest...

      Eagleson's Law states

      "Any code of your own that you haven't looked at for six or more months might as well have been written by someone else."

      I keep reading how fewer and fewer of the brightest developers are writing code and letting their AI agent to do it all. How do they know what's really happening? Does it matter anymore?

      Curious to hear this communities thoughts

      11 votes
    7. Musings on "Developer Mode"

      Peruse this relevant meme. It depicts the magical transformation that occurs at the moment one taps the Android build number for the seventh and final time, as the arcane ritual transforms one...

      Peruse this relevant meme. It depicts the magical transformation that occurs at the moment one taps the Android build number for the seventh and final time, as the arcane ritual transforms one from a chill dude in a business suit into that powerful, shadowy figure known only as "a developer".

      It's a joke, obviously, but only half a joke. The "You are now a developer!" message that the developers at Google programmed your phone to display, when it grants you this set of powers that Google permitted them to program it to grant you, is doing something in the model of the world that its authors live in.

      "Developer mode" isn't just for Android. The browser you are reading this in has a little panel you can open to inspect or adjust the content of the page. It's useful for things like composing humorous screenshots, deleting annoying ads, and downloading images and videos, but it's called the "Developer Tools", a set of tools defined not by what they do but by who they are intended or imagined to be doing it for. Discord has not only a "developer mode" that lets you get the permanent identifiers for messages, but also additional developer-exclusive functions that are activated by enabling the Electron developer tools and injecting code to set the isDeveloper flag. Windows has a Developer Mode. ChatGPT ~got one for some reason~ has a popular jailbreak based around convincing it that it has one. This notion that a special class of people called "developers" exist, and that they must or should be afforded extra power in our society's digital spaces, is woven into the structure of the digital environment.

      Why is it like this? Big Tech doesn't give any power for free. Is it something their labor force of developers demands to be able to grant to their counterparts outside the company? Is it a Ballmer-Doctorow gambit of courting programmers as potential business customers by temporarily empowering them, before they start putting up the prices on the code signing certificates? Is it to distract and mollify hackers, to keep them from seizing similar powers in a more destabilizing way?

      Is there any truth to the notion that "developers", independent of whether or not they are currently testing or programming something, are a class with different needs and rights from normal humans?

      17 votes
    8. How is Linux these days?

      How is Linux these days for everyday desktop use? I'm looking to reformat soon and I'm kind of sick of all the junk the comes alone with Windows. I've used Linux briefly, back in the early 2000's...

      How is Linux these days for everyday desktop use? I'm looking to reformat soon and I'm kind of sick of all the junk the comes alone with Windows.

      I've used Linux briefly, back in the early 2000's but..not at all since really. I'm also learning web dev so I thought it could be fun to use to get used to it.

      Do you use it for everyday use?

      If your unfamiliar with Linux, how difficult is it to get things "done" on it?

      Do most modern apps work these days?

      As someone that's been using Windows for most of their life, do you think it's difficult to pick up and get running?

      Do games work?

      Edit I'm going to test out mint tonight on a thumb drive, thanks everyone!

      52 votes
    9. Should C be mandatory learning for career developers?

      The year is 2025. The C programming language is something like 50 years old now - a dinosaur within the fast-moving environment of software development. Dozens of new languages have cropped up...

      The year is 2025. The C programming language is something like 50 years old now - a dinosaur within the fast-moving environment of software development. Dozens of new languages have cropped up through the years, with languages like Rust and Go as prime contenders for systems-level programming. Bootstrapping a project in C these days will often raise eyebrows or encourage people to dismiss you out of hand. Personally, I've barely touched the language since I graduated.

      Now, with all that said: I still consider learning and understanding C to be key for having an integrated, in-depth understanding of how computers and programming really works. When I am getting a project up and running, I frequently end up running commands like "sudo apt install libopenssl-dev" without really giving it much thought about what's going on there. I know that it pulls some libraries onto my computer so that another program can use them, but without the requisite experience of building and compiliing a library then it's kind of difficult to understand what it's all about. I know that other languages will introduce this concept, but realistically everything is built to bind to C libraries.

      System libraries are only one instance of my argument though. To take a more general view, I would say that learning C helps you better understand computers and programming. It might be a pain to consider stuff like memory allocation and pointers on a regular basis, but I also think that not understanding these subjects can open up avenues for a poorly formed understanding about how computers work. Adding new layers of abstraction does not make the foundation less relevant, and I think that learning C is the best avenue toward an in-depth understanding of how computers actually work. This sort of baseline understanding, even if the language isn't used on a regular basis, goes a long way to improving one's skills as a developer. It also gives people the skills to apply their skills in a wide variety of contexts.

      I'm no expert, though: most of the programming I do is very high-level and abstracted from the machine (Python, Haskell, BASH). I'm sure there are plenty of folks here who are better qualified to chime in, so what do you think?

      39 votes
    10. User-friendly and privacy-friendly LLM experience?

      I've been thinking perhaps I'll need to get one of the desktop LLM UI. I've been out of touch with the state of the art of end user LLM as I've been exclusively using it via API, but tech-y people...

      I've been thinking perhaps I'll need to get one of the desktop LLM UI. I've been out of touch with the state of the art of end user LLM as I've been exclusively using it via API, but tech-y people (who are not developers) mostly talk about the end-user products that I lack the knowledge of.

      Ethical problems aside, the problem with non-API usage is, even if you pay, I can't find one that have better privacy policy than API. And the problem with API version is that it is not as good as the completed apps unless you want to reinvent the wheel. The apps also may include ads in the future, while API technically cannot as it would affect some downstream usecases.

      Provider Data Retention (API) Data Retention (Consumer) UI-only features
      ChatGPT Plus 30 days, no training Training opt-out, 30 days for temp. chat, unknown retention otherwise Voice, Canvas, Image generation in chat, screensharing, Mobile app
      Google AI Pro 0 72 hours if you disable history, or up to 3 years and trained upon otherwise Android assistant, Canvas, AI in Google Drive/Docs, RAG (NotebookLM), Podcast generation, Browser use (Mariner), Coding (Gemini CLI), Screensharing
      Gemini in Google Workspace See above 0-18 months, but no human review/training See above
      Claude Pro 30 days Up to 2 years (no training without opt-in) Coding, Artifact, Desktop app, RAG, MCP

      As a dual use technology, the table doesn't include the extra retention period if they detect an abuse. Additionally, if you click on thumbs up/down it may also be recorded for the provider's employee to review.

      I don't think OpenWebUI, self hosted models, etc. would suffice if they are not built to the same quality as the first party products. I know I'm probably asking for something that doesn't exists here, but at least I hope it will bring to people's attention that even if you're paying for the product you might not get the same privacy protection as API users.

      15 votes
    11. Non-engineers AI coding and corporate compliance?

      Part of my role at work is in security policy & implementation. I can't figure this out so maybe someone will have some advice. With the advent of AI coding, people who don't know how to code now...

      Part of my role at work is in security policy & implementation. I can't figure this out so maybe someone will have some advice.

      With the advent of AI coding, people who don't know how to code now start to use the AI to automate their work. This isn't new - previously they might use already other low code tools like Excel, UIPath, n8n, etc. but it still require learning the tools to use it. Now, anyone can "vibe coding" and get an output, which is fine for engineers who understand how the output should work and can design how it should be tested (edge cases, etc.)

      I had a team come up with me that they managed to automate their work, which is good, but they did it with ChatGPT and the code works as they expected, but they doesn't fully understand how the code works and of course they're deploying this "to production" which means they're setting up an environment that supposed to be for internal tools, but use real customer data fed in from the production systems.

      If you're an engineer, usually this violates a lot of policies - you should get the code peer reviewed by people who know what it does (incl. business context), the QA should test the code and think about edge cases and the best ways to test it and sign it off, the code should be developed & tested in non-production environment with fake data.

      I can't think of a way non-engineers can do this - they cannot read code (and it get worse if you need two people in the same team to review each other) and if you're outsourcing it to AI, the AI company doesn't accept liability, nor you can retrain the AI from postmortems. The only way is to include lessons learned into the prompt, and I guess at some point it will become one long holy bible everyone has to paste into the limited context window. They are not trained to work on non-production data (if you ever try, usually they'll claim that the data doesn't match production - which I think because they aren't trained to design and test for edge cases). The only way to solve this directly is asking engineers to review them, but engineers aren't cheap and they're best doing something more important.

      So far I think the best way to approach this problem is to think of it like Excel - the formulas are always safe to use - they don't send data to the internet, they don't create malware, etc. The worst think they can do is probably destroy that file or hangs your PC. And people don't know how to write VBA so they never do it. Now you have people copy pasting VBA code that they don't understand. The new AI workspace has to be done by building technical guardrails that the AI are limited to. I think it has to be done in some low-code tools that people using AI has to use (like say n8n). For example, blocks that do computation can be used, blocks that send data to the intranet/internet or run arbitrary code requires approval before use. And engineers can build safe blocks that can be used, such as sending messages to Slack that can only be used to send to corporate workspace only.

      Does your work has adjusted policies for this AI epidemic? or other ideas that you wanted to share?

      23 votes
    12. Why you should consider a smaller keyboard

      Intro Whenever smaller keyboards come up online, I often see a lot of the same reactions/dismissals. I've found many of these to be foolish, but also that the community around such devices has its...

      Intro

      Whenever smaller keyboards come up online, I often see a lot of the same reactions/dismissals. I've found many of these to be foolish, but also that the community around such devices has its own barriers. It sometimes is represented from its most extreme aspects rather than someone with a more normal approach and use case.

      So here is yet another pitch on why you might want to consider trying out some of the smaller keyboards out there, and the various advantages it can bring. This will probably be quite long, but I hope it at least is interesting.

      Daily Drivers

      My current main use keyboard's are-
      • Corne LP split 40 - I carry this with me and use it for work and as a better keyboard for my GPD Pocket 3.

      • Mercutio 40 - for my lighter media/older/lower spec game machine.

      • Discipline 65 - for my gaming machine as at the time having the number row still seemed needed (and it just looks so nice)

      • Velcifire wireless 60 - As my other media keyboard since it's wireless and can be used from anywhere and causes my normal friends and family to have less of a stroke if they have to use it. A lot of what i'll say below won't apply to this as it doesn't have some keys and can't be custom mapped. (It's also what i'm typing all this on, much to my chagrin.)

      I've gone through and have owned/own several others but i wanted to be clear about what i'm using in case anyone doesn't have a clue what i'm talking about.

      Skills Required

      I think the only real "skill" you must have to consider downsizing your keyboard is the ability to decently touch type without looking. If you're the sort of person who still hunts and pecks, no judgement, but this is not for you.

      If you're someone who has to code, do data/numerical entry, or type a lot for work, then I encourage you to read on. Those are common barriers I hear thrown out, but in my experience are actually easier with a smaller keyboard.

      Why?

      The normal keyboard for most machines has a lot of dead/wasted space that could just be used better, and has some keys that are important or have grown more important in really poor positions.

      Some main offenders

      1. Capslock - How often do you use capslock? How often do you NEED capslock? If I can convince you of one thing to try out right now it's this, remap capslock (check out powertoys on windows) to left control. As it stands capslock is one of the easiest buttons to hit, and yet it if you moved it over next to Scroll lock you'd probably never mind. A large portion of my job is coding SQL and I never use it because that's what modern formatters are for. Please try remapping it(throw capslock on left control or some combo if you want).
      2. Spacebar- Hear me out, as this might vary depending on how you type. Do you use one or both thumbs to hit your spacebar? If you're anything like me, you use one, and in my case it's the left thumb. This means that I've got a massive portion of my keyboard dedicated to one button, even though I'll never touch more than half of it (you'd be surprised how small you can make the space key and still hit it reliably). Now you might think that you don't need that space, but I'll dive into that more later.
      3. The number row- More on this later, but my brief take on this is that humans are actually pretty bad at knowing exactly where the numbers are when they get away from the home row, and as anyone who's ever had to do lots of number entries know, the 10key/numpad is the way to go.
      4. PgUp/PgDwn/Home/End/Delete- These 5 keys (and control and shift) are great for navigating/editing text/code/spreadsheets/webpages quickly, and could not be farther away from where you really need them to actually do that easily.
      5. Arrow keys- A lot of people think it's fine that they're waaaaaay out there away from everything. I will be proposing an alternative given these are also critical to quick navigation.

      How is smaller better then?

      The core idea is simple. You can find the home row easily with the homing keys (j/f generally have a bump or some defining feature). You're probably excellent at hitting the keys in relation to that if they're 1 step away from the home row. The farther you are from that, the more likely you'll need to look, and the longer it'll take you to press the key even if you don't. So where possible, it's ideal to try and use space more efficiently to keep the keys you actually need to use near this position.

      But how are you going to fit all those keys anywhere near the home row?

      My Keymap

      As an example, to help explain moving forward, here is the keymap for my mercutio 40.

      You'll want to save that json, and then upload it at qmk configurator, which will make it much easier to explore. If you've never looked at this before it can seem insane, but I promise you it's pretty tame ignoring some edge case stuff.

      If you don't feel like going through the hassle here's screenshots from the site with descriptions of each layer.

      Mostly the same as below but i did fix some missing info below so sorry about that. I'm also leaving the descriptions of my "gaming" layers 4/5/6 in the imgur only because I think that's out of scope for this).

      The magic of programable layers and context.

      Space is an interesting key. It's a key only ever really tap, never hold (outside of games, more on that later). So, why not double it up, and make it do something different when you hold it?

      Well in this case, tapping any of my 3 space buttons gives you a space like anyone would expect, but if you hold either of the left 2, it "shifts" you to layer 1 (base layer is 0), and holding the right one, shifts you to layer 2.

      I put shifts in quotes because it's just like the shift key. If you hit 7 on your keyboard, you get a 7. If you hold shift and hit 7, you get &. This is the same concept, and just keep the layers organized in a way that makes sense, keeps it very easy to know what layer what key you want is on.

      The Detailed Layers

      Detailed Layer breakdowns(assuming you're looking at the json loaded into the website or the imgur album)-

      Layer 0 (Base Layer)

      Ignore the N/A's on this and the rest (where they'll be another symbol), as they are optional keys i don't have. Mute is also the encoder knob so don't worry about it.

      It's pretty basic qwerty in the the middle, and tab/left shift/right shift/backspace/windows/the alts/right control are where they normally are, and left ctrl replacing capslock is something I recommend EVERYONE do.

      Space, is still space. In fact all 3 of those spacebars are space...on tap. On hold, the left two "shift" the keyboard to layer 1, while the right one "shifts" the keyboard to layer 2. So just like holding shift + a key gets you a capital version of that key (or a symbol from the number row), holding space + a key gets you something else.

      The left control/right windows key are also layer keys. Holding them takes you to layer 3 and they do nothing when tapped.

      Finally right shift is where it always was, and is somewhat similar to space. If you tap it, you get /?, and if you hold it, you get right shift instead.

      All this to say, that outside of enter, escape, the numbers, and moving control, most people who can already touch type could mostly type on this without any explanation.

      Layer 1(Navigation/No Output)

      Accessed by holding left space.

      All keys that don't actually put a character on the screen (ignoring the left side where i've got some coding stuff but it doesn't really matter).

      Up, down, left, right, home, end, page up, and page down are all in instantly intuitive positions and make navigating anything quickly a breeze (home on the left side since it jumps you to the left/start of the line, and end on the right since it jumps you to the right/end) . Enter, Delete, and Escape are the other 3 major keys on this layer, as they are of course useful, but don't actually put text on the screen.

      The point is that if you're thinking to yourself, "where is that key on this keyboard" and you know that key doesn't actually put a character on screen, you know it's on this layer.

      Layer 2 (Number layer + the rest of the character outputs.)

      Accessed by holding right space.

      I've turned the right side of my keyboard into a numpad that is always under my fingertips(my middle finger is always on 5, just like a 10 key), and since i'm using the number row numbers, I also have access to all their symbols instantly as well by just holding right space + shift. I also have dedicated *,/,+ keys, and the -/_ underscore laid out to be intuitive as well (higher key increases the value, lower key decreases, so multiplying above division, and addition above subtraction)

      Finally we've got the rest of the keys that can output characters but didn't make it to the home row and don't fall into the numpad. `, ;, and . Again they are all basically where they normally would be, but instead you just hold right space and hit the key.

      The other 5 keys that output text are on the left hand side near the home row because they're super useful for coding (I also use | and -/_ a lot, but their positions in this layout are intuitive to me). Having the paren's/brackets under/near my middle and index finger is so nice for all sorts of coding.

      Layer 3 (Function keys, mouse inputs, music controls, and other misc.)

      Accessed by holding "left control" or "right windows".

      The function keys are the exact same layout as the numbers. F1 is where 1 on my layer 2 is. So F5 is where 5 is which means it's right under my middle finger. I put 10/11/12 going down on the left because that made the most sense to me, and so far has never caused me any issues.

      The mouse/music stuff I don't use that often, but it's something I'd like to mess with a bit more.

      I threw capslock on here in the rare cases where I actually need the key because some program or game wants it. I also have Insert on this layer in my live map, but I use it so rarely I tend to forget it until something needs it.

      Finally you'll notice that on layer 3, where the G key is, is a toggle to put you into Layer 4. Meaning that once you hit it, you'll jump to layer 4 and NOT return to layer 0 when you let go. This is explained more on that layer and is totally bonus points. The main point of this keymap is done, and I think this is an excellent layout for productivity (or at least a starting point), without having to dive into lots of complicated or unintuitive concepts.

      The shorter version

      If you don't want to read all of that, the basic idea is that your average person can type on the keyboard with minimal explanation. If they forget where a key is, the other 3 layers all follow rules to help guide them. One layer for navigation and keys that don't actually output characters (home/end/delete/esc/et) and one layer for the rest of the keys that output characters, namely the numbers, which are then also your numpad and ALWAYS under your right hand, centered and ready to go. The final layer is, mainly, for the function keys, still following the numpad from the previous so you can again easily figure out where the button you want is.

      What does this gain you?

      In the end the main benefits i've found are easier navigation, as I essentially now have a navigation layer with every key i could want on it, and much faster access to numbers. I still do data entry and lots of numbers, and having the numpad always one keyhold away is awesome.

      On top of that it's just nice to not have to move my hands so much to type, and to get so much of my desk space back.

      I type just as fast as I do on a normal keyboard for basic text, as there's almost no difference, and I type faster doing code/editing text because my numbers, brackets, and navigation keys are all closer at hand and in such a way I don't need to look or even move my hand from the home row to hit them.

      So is it just all upsides?

      On the typing side, honestly yeah. I've seen a lot of excuses like "well i prefer a numpad" or "how do you type numbers" which I've tried to address in this post.

      The only issue i've run into is gaming, where I already really solved most of my problems as shown in the extra layers in the imgur gallery, and think it might even be better for gaming vs the normal layouts.

      The only remaining hassle is roguelike games such as stone soup or caves of qud, which LOVE to assign every fucking key a use so there's no easy way to remap things and I have to actually add another layer JUST so i can hit the numpad numbers because I need them to navigate....

      BUT unfortunately, you might actually want to acquire one of these keyboards, and that's where stuff gets a little tricky.

      Programmability

      All the upsides I just mentioned assume you can actually program the keyboard. Thankfully this has gotten much much easier with both Via and ZMK making the process very simple. QMK is doable, but difficulty wise it shared a lot of similarities with trying to get the perfect modded run of Fallout New Vegas going with about 20-40 mods. If you are not more comfortable in the tech world, I recommend ONLY boards that support via software. I believe these days anything that supports QMK supports VIA, but it's worth checking on the via website to make sure the board you're about to get works.

      Some assembly required

      The mercutio and the discipline I built myself after ordering the parts. They're through hole soldering and were some of the first soldering I'd ever done on my own outside of a quick kit I bought off amazon to practice. It is actually not that hard BUT you need the equipment. It's not horribly expensive to get but it's not cheap either. I do really enjoy just throwing on music and putting these together, but I totally understand that you might just want to, you know, buy the fucking thing already built.

      Thankfully many sites offer build services (or you can find them on etsey) which charge a fee to assemble it for you. This is what i've done with every corne i've ordered because it is NOT through hole soldering and I don't have the guts for it, and even still they've all had some eventual issues (although again, i carry mine with me in a very unprotected state because i'm insane so some of that is on me).

      Made of money

      Especially if you're paying for the aforementioned build services, these things can get into the 200-400 range FAST, which is a lot for a keyboard. There are some cheaper options out there, and the Mercutio was only $70ish before switches(not bad) and keycaps (range from dirt cheap to ungodly expensive).

      Still I would not recommend ANY of these for a first time buyer. My first smaller board was a 60% mechanical and those range from $70-100 these days from what i'm seeing.

      Take my money....please?

      Sometimes you just won't be able to find or buy the board you want in the way you want. There are lots of interesting boards i've seen over the years, but they're either very expensive or only open for a limited time. I had a working cornish zen that died on me. I'd love to replace it. I cannot as they currently don't sell them. Will they make more? Dunno. I hope they do.

      Recommendations

      I DO NOT recommend diving in head first and suggest starting with something simple like a 60 or 65, probably keychron, as they're a decent budget brand. You might want to go even cheaper with just a 60% off of amazon that isn't even programmable just to see if you outright hate it, but I do think that getting something you can start to tweak as you begin to understand what you want helps adoption.

      Final Thoughts

      I hope this gave some of you the push to look into all this. I'm glad I dipped my toe in it, less glad about the absurd amount of money i've spent on it (dear god keycaps), and really glad about the moment where I thought "huh i really just don't need all these keys" and pulled some out. I hope I can convince a few others give it a shot and hopefully see the same results. No dvorak or home row modifiers and weird triple tap macros. Just some layers and common sense.

      I do still, if nothing else, highly recommend switching left control to caps lock.

      58 votes
    13. The morality of using AI-generated art in my web app

      Hey, good people of Tildes! I'm building a self-help web app, a small part of which I'd like to involve some pixel pets. I like pixel art and it'd be great if I could create some. Though, the...

      Hey, good people of Tildes!

      I'm building a self-help web app, a small part of which I'd like to involve some pixel pets. I like pixel art and it'd be great if I could create some. Though, the truth is, I can't draw for shit, I have little to no imagination, and I'm afraid even if I put the time and effort into it, I still may not produce something I'd call good enough to put on the website. I also lack the motivation to spend a lot of time learning how to create good pixel art, as I only need it for this project.

      I thought about paying some professional(s) to do it but that would probably break the bank for me, as I want to offer the users a lot of pixel pet options, which brings us to what I guess is the only remaining option.

      I found some services that offer AI-generated pixel art. This one in particular looks like what I'm looking for and also offers animations. While watching a demo of it on YouTube, I noticed a few comments voicing concern about the ethics of selling art that's generated using models trained off of unpaid artists' work. While this is not a new topic, I admittedly hadn't given it much thought before, as I've never used, or planned to use AI-generated art in a meaningful capacity.

      While I'm not sure whether it changes much, for what it's worth, I should note that my web app is going to be free, open-source, and ad-free forever.

      What are your thoughts? Also, I'd love to know if there are options that I missed!

      26 votes
    14. Any BBS sysops here from back in the day?

      As a not quite "old man" I was wondering how many former BBS sysops are here? In the early-mid 90s, I used to run a single line PCBoard powered hobby BBS and dabble in making PPEs (PCBoards...

      As a not quite "old man" I was wondering how many former BBS sysops are here?

      In the early-mid 90s, I used to run a single line PCBoard powered hobby BBS and dabble in making PPEs (PCBoards programming language for plug ins/mods). I also help friends set up SpitFire, Searchlight, Synchronet, WWIV and Aftershock (total PITAs from what I remember)--basically anything free, crackable or unlimited trial.

      Since I was the only sysop that ran PCBoard I was invited to become an officer in our local User Group to run their whopping 3 line BBS and give classes (that was quite the technological achievement back then). That is something I truly do miss. I was, by far, the youngest member of the User Group (your average member probably had grandkids my age) but it was a meritocracy.

      People seemed eager to learn and share information as they found it. Before computers, 3d cards and the internet was ubiquitous, you were automatically accepted into a knowing crowd if you put in the effort/time to join a BBS, forum or (early) MMO. Exclusion brought inclusion, if that makes sense. If you torched your reputation by acting like a jackass it was difficult to move on like a locust to another area.

      So many stories. So many high jinks that would be deemed illegal today, lol.

      Everything that is old, is new again.

      I'm getting a lot of BBS vibes in the aftermath of Rexxit. The slower pace of Tildes reminds me so much of the BBS forums (while I know Tildes isn't new, it is growing in popularity in the aftermath.) Even the Fediverse harkens back to the days of early BBS synch nets.

      Now if only I could find a modern remake of Tradwars 2002.

      51 votes
    15. Why are so many websites (and CDNs) IPv4 only?

      One of the people in an IRC channel I frequent pointed out a site I've been building uses CDNs that are IPv4 only. I never realized this, I just assumed every major provider had deployed IPv6. Oh,...

      One of the people in an IRC channel I frequent pointed out a site I've been building uses CDNs that are IPv4 only. I never realized this, I just assumed every major provider had deployed IPv6. Oh, how very wrong I was. A quick check of some major (to me) sites shows a shocking lack of IPv6, including:

      • Bootstrap (stackpath.bootstrapcdn.com)
      • Discord
      • FontAwesome (use.fontawesome.com)
      • GitHub/GitHub pages
      • GitLab/GitLab pages (self-hosted supports IPv6, but officially hosted GitLab only supports IPv4 due to Azure limitations)
      • jQuery, IF you use code.jquery.com (some tutorials use ajax.googleapis.com, which does have IPv6, but an unfortunate amount use code.jquery.com, including the getting started page for Bootstrap)
      • Parts of Amazon/AWS (Amazon is IPv4 only, some of AWS is IPv4 only, including S3)
      • Reddit
      • Stack Overflow/Exchange/etc
      • Twitter

      An honorable mention goes to Angular's websites because the websites themselves are IPv4 only but the libraries are hosted on ajax.googleapis.com, which is IPv6 accessible. I checked npm, PyPI, RubyGems, and Tildes, and they all support IPv6.

      I can understand why companies like Amazon have partial support (upgrading can be a PITA if you're a cloud service provider with uptime requirements), but then you have services like Discord (launched in 2015 with no obligation to maintain service) that only support IPv4. At the very least, I'd expect CDNs referenced by thousands (if not millions) of webpages to be on IPv6 by now.

      Am I missing something? CDNs are pretty static, it's just a matter of choosing one that supports IPv6, you don't even need to update your application if you just change the DNS entries.

      13 votes
    16. Public access Unix systems, another alternative social environment

      I have been writing a paper on the history of a type of online social space called public access Unix systems, and I'm posting a Tildes-tailored summary here in case anyone is interested. If you...

      I have been writing a paper on the history of a type of online social space called public access Unix systems, and I'm posting a Tildes-tailored summary here in case anyone is interested. If you enjoy this and want to read more (like 10+ pages more) look at the bottom of this post for a link to the main paper-- it has citations, quotes, and everything, just like a real pseudo-academic paper!

      I wrote this because a summary didn't exist and writing it was a way for me to learn about the history. It was not written with the intent of commercial publication, but I'd still love to share it around and get more feedback, especially if that would help me further develop the description of this history and these ideas. If you have any thoughts about this, please let me know.

      What are Public Access Unix Systems?

      When the general public thinks of the Unix operating system (if it does at all), it probably isn't thinking about a social club. But at its core, Unix has a social architecture, and there is a surprisingly large subculture of people who have been using Unix and Unix-like operating systems this way for a long time.

      Public access Unix systems are multi-user systems that provide shell accounts to the general public for free or low cost. The shell account typically provides users with an email account, text-based web browsers, file storage space, a directory for hosting website files, software compilers and interpreters, and a number of tools for socializing with others on the system. The social tools include the well-known IRC (Internet Relay Chat), various flavors of bulletin-board systems, often a number of homegrown communication tools, and a set of classic Unix commands for finding information about or communicating with other system users.

      But more than just mere shell providers, public access Unix systems have always had a focus on the social community of users that develops within them. Some current systems have been online for several decades and many users have developed long-standing friendships and even business partnerships through them. i.e. they're a lot of fun and useful too.

      Of interest to Tildes members is that public access Unix systems have for the most part been non-commercial. Some take donations or charge membership fees for certain tiers of access (some in the U.S. are registered 501(c)(3) or 501(c)(7) non profits). They almost invariably do not take advertising revenue, do not sell user profile data, and the user bases within them maintain a fairly strong culture of concern about the state of the modern commercial Internet.

      This concept of a non-commercial, socially aware, creative space is what really got me interested in the history of these systems. Further, the fact that you have this socially aware, technically competent group of people using and maintaining a medium of electronic communication seems particularly important in the midst of the current corporate takeover of Internet media.

      History

      Public access Unix systems have been around since the early 1980's, back when most of the general public did not have home computers, before there was a commercial Internet, and long before the World Wide Web. Users of the early systems dialed in directly to a Unix server using a modem, and simultaneous user connections were limited by the number of modems a system had. If a system had just one modem, you might have to dial in repeatedly until the previous user logged off and the line opened up.

      These early systems were mostly used for bulletin-board functionality, in which users interacted with each other by leaving and reading text messages on the system. During this same time in the early 80's, other dial-in systems existed that were more definitively labeled "BBSes". Their history has been thoroughly documented in film (The BBS Documentary by Jason Scott) and in a great Wikipedia article. These other systems (pure BBSes) did not run the Unix OS and many advanced computer hobbyists turned up their noses at what they saw as toyish alternatives to the Unix OS.

      Access to early dial-in public access Unix systems was mostly constrained by prohibitively expensive long-distance phone charges, so the user bases drew from local calling areas. The consequence was that people might meet each other online, but there was a chance they could end up meeting in person too because they might literally be living just down the street from each other.

      The first two public access Unix systems were M-Net (in Ann Arbor, MI) and Chinet (in Chicago, IL), both started in 1982. By the late 1980's, there were more than 70 such systems online. And at their peak in the early 1990's, a list of public access Unix systems shared on Usenet contained well over 100 entries.

      Throughout the 1980's, modem speeds and computer power increased rapidly, and so did the functionality and number of users on these systems. But the 1990's were a time of major change for public access Unix systems. In 1991, the Linux operating system was first released, ushering in a new era of hobbyist system admins and programmers. And new commercial services like AOL, Prodigy and CompuServe brought hordes of new people online.

      The massive influx of new people online had two big impacts on public access Unix systems. For one, as access became easier, online time became less precious and people were less careful and thoughtful about their behavior online. Many still describe their disappointment with this period and their memory of the time when thoughtful and interesting interactions on public access Unix systems degraded to LOLCAT memes. In Usenet (newsgroups) history, the analogous impact is what is referred to as "The Eternal September".

      The second impact of this period was from the massive increase of computer hobbyists online. Within this group were a small but high-impact number of "script kiddies" and blackhat hackers that abused the openness of public access Unix systems for their own purposes (e.g. sending spam, hacking other systems, sharing illegal files). Because of this type of behavior, many public access Unix systems had to lock down previously open services, including outbound network connections and even email in some cases.

      For the next decade or so, public access Unix systems continued to evolve with the times, but usership leveled off or even decreased. The few systems that remained seemed to gain a particular sense of self-awareness in response to the growing cacophony and questionable ethics of the commercial World Wide Web. This awareness and sense of identity continues to this day, and I'll describe it more below because I think it is really important, and I expect Tildes members agree.

      2014 and Beyond

      In 2014, Paul Ford casually initiated a new phase in the history of public access Unix systems. He registered a URL for tilde.club (http://tilde.club) and pointed it at a relatively unmodified Linux server. (Note: if there is any relation between tilde.club and Tildes.net, I don't know about it.) After announcing via Twitter that anyone could sign up for a free shell account, Ford rapidly saw hundreds of new users sign up. Somehow this idea had caught the interest of a new generation. The system became really active and the model of offering a relatively unmodified *NIX server for public use (a public access Unix system under a different name) became a "thing".

      Tilde.club inspired many others to open similar systems, including tilde.town, tilde.team* and others which are still active and growing today. The ecosystem of these systems is sometimes called the tilde.verse. These systems maintain the same weariness of the commercial WWW that other public access Unix systems do, but they also have a much more active focus on building a "radically inclusive" and highly interactive community revolving around learning and teaching Unix and programming. These communities are much, much smaller than even small commercial social networks, but that is probably part of their charm. (* full disclosure, I wield sudo on tilde.team.)

      These tilde.boxes aren't the only public access Unix systems online today though. Many others have started up in the past several years, and others have carried on from older roots. One of the most well known systems alive today is the Super Dimension Fortress (SDF.org) that has been going strong for over three decades. Grex.org and Nyx.net have been online for nearly as long too. And Devio.us is another great system, with a community focused around the Unix OS, particularly OpenBSD. Not all these systems label themselves as "public access Unix systems", but they all share the same fundamental spirit.

      One system that I find particularly interesting is Hashbang (aka #!, https://hashbang.sh). Hashbang is a Debian server run and used by a number of IT professionals who are dedicated to the concept of an online hackerspace and training ground for sysadmins. The system itself is undergoing continual development, managed in a git repository, and users can interact to learn everything from basic shell scripting to devops automation tooling.

      Why is Hashbang so cool? Because it is community oriented system in which users can learn proficiency in the infrastructural skills that can keep electronic communications in the hands of the people. When you use Facebook, you don't learn how to run a Facebook. But when you use Hashbang (and by "use", I mean pour blood, sweat and tears into learning through doing), you can learn the skills to run your own system.

      Societal role

      If you've read other things I've written, or if you've interacted with me online, then you know that I feel corporate control of media is a huge, huge concern (like Herman and Chomsky type concern). It's one of the reasons I think Tildes.net is so special. Public access Unix systems are valuable here too because they are focused on person-to-person connections that are not mediated by a corporate-owned infrastructure, and they are typically non-profit organizations that do not track and sell user data.

      You're no doubt aware of the recent repeal of Net Neutrality laws in the U.S., and you're probably aware of what The Economist magazine calls "BAADD" tech companies (big, anti-competitive, addictive and destructive to democracy). One of the most important concerns underlying all of this is that corporations are increasingly in control of our news media and other means of communication. They have little incentive to provide us with important and unbiased information. Instead, they have incentive to dazzle us with vapid clickbait so that we can be corralled past advertisements.

      Public access Unix systems are not the solution to this problem, but they can be part of a broader solution. These systems are populated by independently minded users who are skeptical of the corporate mainstream media, and importantly, they teach about and control the medium of communication and social interaction itself.

      Unix as a social medium

      So what is it that makes public access Unix systems different? This seems like a particularly interesting question relative to Tildes (so interesting that I even wrote another Tildes post about it). My argument is partly that Unix itself is a social and communication medium and that the structure of this medium filters out low-effort participation. In addition to this, public access Unix systems tend to have user bases with a common sense of purpose (Unix and programming), so users can expect to find others with shared interests.

      In contrast to modern social media sites like Facebook or Twitter, you have to put in some effort to use Unix. You have to learn to connect, typically over ssh; you have to learn to navigate a command line shell; and you have to learn the commands and options to run various utilities. And to really use Unix, you have to learn a bit of programming. It's not incredibly hard in the end, but it takes significantly more effort than registering for a Facebook or Twitter account and permitting them to scan your email address book. Once you get over the learning curve, it is powerful and fun.

      This effortful medium does two things. For one, it weeds out people who aren't willing to put in effort. And for two, it provides learned users with a diverse palette of tools and utilities for building and sharing creative output.

      Public access Unix systems are all about active creation of content to be enjoyed and shared with others, and not about passive media consumption. They are about the community that develops around this purpose and not around the profit that can be squeezed out of users' attention.

      Future of public access Unix systems

      Public access Unix systems have been around for nearly four decades now. They have seen ups and downs in popularity, and they have been humming along in the background as computing has gone from the ARPANET to the spectacle of the commercial World Wide Web. Early public access Unix systems were largely about the novelty of socializing with other hobbyists through a computer, and that interest has evolved into the learning, doing and teaching model of an online hackerspace today.

      These systems are not huge, they are not coasting on advertising revenue, and they get by purely on the contributions, volunteer effort, and enthusiastic participation of their users. But as a contrast to commercial social network sites, they are an example of what online socializing can be when individuals put effort, thought, and compassion into their interactions with others. And just as importantly, they pass on the very skills that can independently maintain this social and communication medium for future generations of users.

      --

      As promised in the intro, if you're interested in reading a much more in-depth version of this article, here's the longer copy:
      https://cmccabe.sdf.org/files/pubax_unix_v01.pdf

      73 votes