back
▲ 295 points

Ask HN: What weird technical scene are you fond/part of?

by ForgotIdAgain·3y ago·303 comments·view on hn ↗
List of scenes that I am particularly fond of:

- Minecrat computer engineering: Culminated with this playable 3d simplified minecraft clone (CPU+GPU) https://www.youtube.com/watch?v=-BP7DhHTU-I

- Shader computing scene: More of a subculture of an already marvelous subculture, people are finding weird ways to compute with shader

https://blog.pimaker.at/texts/rvc1/ Risc V emulator in a shader https://github.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader Object detection in a shader

- Cellular automata: people finding awesome patterns, some great project:

https://codegolf.stackexchange.com/questions/11880/build-a-working-game-of-tetris-in-conways-game-of-life https://btm.qva.mybluehost.me/building-arbitrary-life-patterns-in-15-gliders/

- TAS/Speedrun:

https://www.youtube.com/watch?v=qBK1sq1BQ2Q Insane game exploit which uses only player input in order to inject an elaborate rom hack with network functionality https://www.youtube.com/watch?v=O9dTmzRAL_4 Another insane one which work by switching game (!!) during the run

- "Can it run Doom" Scene:

https://twitter.com/sylefeb/status/1258808333265514497 Run a doom map renderer on a FPGA. Not on a classic computer "emulated" by the fpga, the renderer is directly implemented in the fpga https://www.youtube.com/watch?v=c6hnQ1RKhbo Yes doom can run doom

So what are your technical gem?

303 comments
- Systems that work offline. Partly for practical reasons due to my background working in Agtech companies, as well as logistics in developing countries. But also it's just technically and socially fascinating. How do you detect conflicts? How do you decide what one is? To what extent - if any - can it be resolved automatically? Revisions, event sourcing, CRDTs... there's no one size fits all industry solution and not enough people to take it seriously. (Friendly request - if it's been a problem for you in your industry, drop me a line. I sometimes think I should niche down in it, but wonder if it's too obscure).

- Frontend JS minimalism. Any stories about people ditching transpilers, build tools etc appeals to me immensely. My spicy take is that React is not an abstraction above the DOM, it's an abstraction parallel to it.

- Concatenative langauges. Less Forth and more Joy[0]. I just feel like there's something here, and the idea will not die until it catches on. The amount of concatenative language interpreters I've abandoned is a bit embarassing.

[0] https://hypercubed.github.io/joy/joy.html

> The amount of concatenative language interpreters I've abandoned is a bit embarassing.

Earlier this week, I watched an excellent talk by Devine Lu Linvega where he was doing a bunch of digging into minimal programming languages. He spent a lot of time looking into Forth and other concatenative languages and he said he found a lot of implementations of the languages, but very little code written in them. It was as if soon as the implementers actually tried to use the thing they created, they gave up.

So your experience isn't unique. I've also written a couple of concatenative languages and quickly abandoned them after trying to write more than toy programs and realizing I wasn't smart enough to reason about the stack in my head.

I love offline systems. IoT is everywhere, garage doors should not need the internet. SyncThing is one of my biggest inspirations in software. They are one of the only projects I consider truly getting P2P right, ever, and there's a nice ecosystem of stuff people have been doing with just that one primitive of a folder that syncs.

A lot of the time it seems like you really don't need advanced conflict resolution, if you change your actual UI model to be inherently parallel, which you often can.

A collaborative document editor is hard. A forum that lets you post offline is easy. At worst a conflict will get a few out of order posts, which is not an issue if people use @references, reddit style trees of comments, or there's low enough volume that it's unlikely to be confusing. Post race conditions already exist in forums anyway.

There's a lot of low hanging fruit in P2P and offline first, and everyone seems to be mostly doing the hard stuff like cryptocurrency instead.

Where do you go to chat with offline / air-gapped systems enthusiasts?

I've been obsessed with machine learning for embedded systems for years! So many practices around ML assume constant network connection and/or that your service runs in a data-center. I'm an ex-SRE and love building reliable offline computer vision things!

I'm a fan of FORTH, but absolutely second your motion that Joy is worth investigating. It has a FORTH "feel" but feels like you can more easily do more advanced things with it.
> My spicy take is that React is not an abstraction above the DOM, it's an abstraction parallel to it.

Why do you think this? Would be interested to hear the reasoning behind the take.

> - Frontend JS minimalism. Any stories about people ditching transpilers, build tools etc appeals to me immensely. My spicy take is that React is not an abstraction above the DOM, it's an abstraction parallel to it.

Been going down this path recently via Svelte & SvelteKit: It's been really fun seeing the network responses of the first load being full HTML for any page (SSR), with JS responses handling transitions in between pages (CSR).

I've even managed to get my SVG image generator to run server-side first before passing over, with any changes handled client-side & with URL changes. Refreshing with the changed parameters renders the newer SVG. :)

I'm interested in these offline systems in the agtech space. What kinds of use cases exist here? I'd love to be involved in agtech if I thought it could have a positive impact on soil health.
Mentioning concatenative programming gets an instant like from me.
I both love React and love frontend minimalism. I'm curious what you mean by "React is parallel to the DOM"
I run a 22yo online competition for a 32yo DOS racing game: Stunts, or 4D Sports Driving in some countries. The competition has spawned a long-lived community which includes reverse engineering, game patches, new cars, alternative engines, a few world meetings, and multiple other competitions.

- https://zak.stunts.hu

- https://wiki.stunts.hu/wiki/Custom_cars

- https://forum.stunts.hu/index.php?board=90.0&label=stunts-re...

- https://www.rockpapershotgun.com/the-remarkable-community-ar...

Browser extensions. Not quite a website, not quite a mobile app, and surprisingly pervasive. Most people don't realize how incredibly powerful they are, even with manifest v3.

I almost fell out of my chair when I found out there were no books on how to build them, so I wrote one: https://www.buildingbrowserextensions.com/ It was incredibly enjoyable to go through the APIs and write about all the different crazy things they can do, and I put the best ones into a demo extension: https://chrome.google.com/webstore/detail/browser-extension-....

Disclaimer: I am in no way encouraging or advocating for software piracy.

The warez scene in 90s and early 00s was fun to follow. I consider the NFO files a legitimate form of art, not to mention the skills for unpacking and keygen-ing or cracking of the protected software.

https://scenelist.org/

I'm in the deep learning music scene, which is due for its stable diffusion moment in the next year or two. The (primarily) timbre transfer system called RAVE is where I'm starting, and my contribution is to optimize the system to improve training time.

[] https://github.com/acids-ircam/RAVE/tree/master/rave

- Pure HTML / CSS / vanilla JS sites. It's a shame that it's turned into a niche scene, but I'm always a fan of inspecting sites that don't bloat themselves with unnecessary frameworks.

- Sites that work without JavaScript. Even better than the first, it's always a pleasure to see when a site is made properly for a change, without the toxicity of JavaScript that pervades the world wide web (WWW) as we know it.

I have been working on PlayStation 1 homebrew SDKs [1] and tools over the last year. Unlike other retro consoles - especially Nintendo consoles - the PS1 gets almost no attention at all; "PS1-style" games made using Unity or Unreal Engine seem to be decently popular, but nobody wants to bother with the real hardware anymore. Which is a shame, as the PS1 is a relatively simple platform which can be found for relatively cheap and offers a bare metal development experience reminiscent of modern 32-bit microcontrollers, with some interesting graphics and audio hardware thrown in. It is a platform unencumbered by the tile/sprite and storage limitations of the 8- and 16-bit eras, yet still limited enough to be a breeding ground for creativity and at the same time easily expandable with custom hardware through its integrated serial port and ISA-like parallel bus.

[1] https://github.com/Lameguy64/PSn00bSDK

I'm a big fan of distributed systems (papers and implementations) and alternate networks. Fun projects that are active right now:

- Usenet (yes, it's still alive!)

- NNCP (friend-to-friend e2e encrypted network, doesn't need IP, can be airgapped)

- Yggdrasil (an IPv6 overlay mesh network)

- Retroshare (friend-to-friend P2P encrypted network with Chat, Messaging, and filesharing, and more)

- Urbit (weird, distributed computation network)

- Secure Scuttlebutt (P2P gossip-oriented network w/ crypto signatures)

- Gemini (simpler version of the Web, document-oriented)

There are definitely more projects out there but these are projects I play around with and enjoy using.

Ok maybe not too weird but I've been a keyboard enthusiast for almost a decade now and earlier this year I started on a quest to collect as many keyboards in one place as possible to make it easier for newcomers to the hobby to easily find a keyboard (very much in progress still but making steady progress as a hobby project). I created a website called BoardSearch (https://boardsearch.io).

So far, I've learned a lot about just how varying keyboarding building/collecting can be, and this makes building the data models for what a keyboard is/can include pretty complex. Some people go deep into the hobby building a keyboard by soldering the switches and others a little higher level like putting together keycaps and switches on a hotswap PCB. It's definitely a hobby that you can waste/spend a lot of money on but keyboards are fun!

I sometimes write COBOL programs for fun. Seriously... one of the things COBOL used to require and still strongly encourages is to declare record types before procedures (the Data Division is before the Procedure Division). There's a Fred Brooks quote that goes:

  "Show me your flowcharts and conceal your tables, and I shall continue
   to be mystified. Show me your tables, and I won't usually need your
   flowcharts; they'll be obvious."
And Peter Naur (of (E)BNF fame) suggests using the term "Dataology" instead of "Computer Science."

But COBOL isn't a great systems programming language. It's made for applications. So I sometimes re-write simple C or C++ routines / structs in COBOL to see if they're more understandable and where the dividing line between app-focused languages and system-focused languages exists.

It's not technology, but it is a super niche technical group of people.

Restoring antique and vintage woodworking equipment. Like pre-1920's if possible. There are no manuals, most of the companies are out of business, and there are very few resources available. There are websites like oldwoodworkingmachines and oldwoodworkersforum but, mostly it's trial and error. It requires a super keen eye for detail, and when you're missing parts you have to be really good at deductive reasoning.

One of my proudest moments was when I completely restored a hand-cranked drill press for a family. They had memories of their grandpa using it to build the family home. It was amazing to watch their faces as I showed them the bright brass and walnut it would've originally been decorated with. When I started it was a box of parts that were mostly just scrap cast-iron. I had to learn how to sand cast to re-make pieces!

I've posted about it elsewhere on here, but right now I'm restoring a 24" J.T. Towsley jointer. I'll be done in the next week or two, and can't wait to run some lumber through it. (that being said, I will have to sell it to pay for some medical bills, if anyone is interested in it). I learned on this site that the editor of popular woodworking is actually doing that right now as well. I reached out to him, and was able to provide some technical drawings for a bearing block that his was missing. So that was neat.

That's probably what i like the most about that community - it's an actual community. I was restoring a 60's PowerMatic drill press for a neighbor, and posted about the original column length, since the one I had was converted to a tabletop. One of the guys on the old machines forum actually PM'd me, and drove to my house to give me one! It was amazing.

I maintain a LLVM backend for the 6502: https://godbolt.org/z/6EWEb6c5E, https://llvm-mos.org

I love compilers, and I work on LLVM full time at my day job. I love bringing modern tooling and techniques to an older environment where they very much don't belong; the juxtaposition of the two is very satisfying to me.

Competitive programming!

20k+ contestants per contest, around 1-2 times per week: https://codeforces.com/contests

In terms of "scene", there are exclusive discord channels that you can only join if you have above a certain rating (usually candidate masters and above). Probably the highest average IQ community that I'm part of and they discuss stuff beyond competitive programming.

- Programming Language dev: I think compilers and VM runtimes are neat, and like talking to people in the space on twitter or reading new papers that come out about it. The /r/ProgrammingLanguage discord server is a great place to hang out, with lots of interesting and competent people working on sideprojects simply because they like the topic.

- Urbit: I got into Urbit years ago, and still think it's really interesting as a Lisp-machine-alt-timeline-esque project. The goal is basically trying to think how the world would look if your entire OS was built on a runtime that uses cons cells and bignums everywhere for values, with a single transparently persistent state a la KeyKOS, and everything has typed RPC and P2P apps were the default.

My scene is hobby operating system development, where you build an operating system usually for x86 / x86-64 PCs from scratch booting either from the BIOS, or UEFI, and then going from there. Common languages to use are C, C++ or (recently and my personal favourite) Rust.

Personally I'm currently working on an AHCI storage driver (i.e, for talking to SATA drives) for my operating system.

There's a lot of information out there, especially at https://wiki.osdev.org/ about how to get code booting, and about lots of the basic hardware works. There's also places like https://www.reddit.com/r/osdev/ for asking people for help.

While not that interested anymore, I used to be really into the iOS jailbreaking scene, more specifically writing and testing tweaks/tools used post-jailbreak. This was back around iOS 5 (2012-ish), when names like Cydia, Saurik, Redsn0w and unc0ver were commonplace. I guess they are not anymore. Back then, Jailbreaking was not commercial in the same way it is now, no money prices, large teams, etc. It was just a few dedicated, talented individuals working in small groups, backed by a community very eager to jailbreak. I remember I showed off dark mode on iOS around 6-7 years before it became an official feature.

The main point of jailbreaking for me was actually to "fix" a lot of broken shit in iOS, and significantly improve usability. After a while, that I kind off became less and less relevant, as important (to me) features like dark mode got native, change the lockscreen, and similar things. Also, performance on iphones and iOS got so good there was no longer any point to disable animations and other things I used to tamper with to give the illusion of increasing performance.

They were good days! I remember hard refreshing /r/jailbreak hundred times a day because "a jailbreak for iOS 1x is 'right around the corner'".

Databending. Which is applying random noise to a file in order to generate something that still decodes well, but has some weird/cool glitch. I went to a workshop about this in some underground club that no longer operates; still thinking about it and toying around from time to time. This was waaaay before Dall-E et al. were cool ways to generate quasi-crappy images.

https://en.wikipedia.org/wiki/Databending

It’s called lisp-machine-punk and it’s similar to solar or steam punk except we imagine a world where the lisp machine became the dominant paradigm for all forms of computing. The difference between lisp-machine-punk and other *-punks is there is a tangible path forward eg revive and build lisp machines!
Web scraping. I love figuring out how to reverse engineer websites and defeat systems designed against web scrapers. It's also super interesting (concerning?) how much data websites leak. 4 out of the 5 bug bounties I've discovered have been while poking around in my scraping efforts.
I love retro gaming on CRT. People tend to misjudge how retro games are supposed to look (visible pixels or mismatch between 2d backgrounds and 3d models). I'm not opposed to people playing on LCD screens, I just think it's important to remember how those games were supposed to look.

Some people are dedicated to show that, which is great: CRTpixels: https://twitter.com/CRTpixels Standard Definition Gaming: https://www.tumblr.com/sdg480 or https://twitter.com/DefStan480

And taking a picture or video of a CRT can be quite tricky, you have to be very careful of your parameters, your angle, etc.

Modern demo scene.

Even more obscurely, the microscopic bracket of size limitations: 140 characters

https://dwitter.net

What's interesting when comparing this to the origin of the demo scene is that now we have ultra super computers everywhere (by comparison), so when you maintain the size limitations: algorithms that would have previously fit, but had impossibly terrible performance - are now possible.

I think this is what makes Dwitter so intriguing: very tiny, simple code, producing seemingly impossible and impressive realtime graphics... made possible because modern CPUs are so fast.

I'm really fond of the scene, the format, the people. And I've learned so much from both doing, and deconstructing from others, and enjoy the art others create using it.

I've been into retro PCs lately, specifically from about 1995-2002. I started with a 200 MHz Pentium MMX gifted to me about a decade ago. Recently picked it back up and discovered there's a lot of fun to be had. For example, it was somewhat recently discovered that AMD K6-2+ CPUs are just one zero-ohm resistor move away from becoming K6-3+ CPUs with the full L2 cache unlocked.

I also am experimenting with Slot 1 boards. They were originally designed for Pentium IIs but with the right combination of VRM, BIOS support, slotket adapter, and CPU and pin change mod, some boards can run the last Pentium IIIs (Tualatin). It's a lot of fun and experimentation.

Gopher, not many of us use it anymore, but a handful of people including myself are keeping it alive and writing new services that can be accessed via it. It’s a nice group of technical, slightly eccentric computer users.

The vintage Mac community is excellent and is full of extremely smart people. Lots of people writing new software, designing new hardware, and doing really complex repair and preservation work.

Not really weird anymore as there's a lot of entry level and cloud-based components for people to get into it with. My scene is the localized automation scene; basically home automation but with no cloud connected products.
Modular synthesizers. Electric vehicle conversions. The intersection of musical instrument construction with just intonation and other alternative tuning systems.
Microsoft flight simulator scene, pre-"flight sim 2020" was super interesting. FSX was well documented and built to be extensible through data, and I wanted to replace the terrible quality terrain of my local area with modern geo-data and ground textures.

There was an entire scene around this, that built, sold and supported third party programs to help you build custom airports, paid tools for importing google earth ground textures, tools to help autogenerate tree cover for a ground texture based on machine learning of "this group of pixels look like a forest so place a forest here", plus all the tooling in the GIS space which is incredible and lovely.

I was a month into stealing google earth images with homebrew code using techniques borrowed from a different open source tool, hand labeling a hundred square miles of ground textures, including thousands of polygons to tell FSX where to place houses, a revamped local airport with new structures and signage, and autogenerating a winter version of the ground textures through writing some java code (because python is stupidly slow) to sample a "snow" texture and place it onto a green ground texture, which worked surprisingly well, writing code to overlay publicly available house polygon data and water polygon data to place rivers and lakes, before I go to hand labeling forests and trying to learn the machine learning tool before I gave up, and then MSFS2020 was announced about a year later.

This field is also related to turning google earth terrain and texture data into Assetto Corsa tracks, which has a similar community including paid tools (that mostly suck though)

I learned a lot of GIS and it was pretty great, and I got to play with a bunch of publicly available large datasets of different formats, and wrote code to generate 3D models from hightmaps, even though it was a terrible implementation.

Laser galvo's. Fast flicking mirrors drawing patterns on the walls and ceiling. Use a UV laser and draw crazy glowing shapes on luminous paint (ever shone a UV laser at something luminous?)
Information security incidence response, blue team mostly... It's been a stressful past decade or so getting phone calls when they know we're going to be dealing with stuff the next day (Such as last night at around 10pm right as I was getting to bed), but on the flipside I've kind of developed a very thick skin for these types of things and it's kind of the most multidisciplinary thing I could imagine doing in anything in information technology as you have to know such a broad range of things (Networking, programming, sysadmin, scripting for windows and *nix, huge gamut of knowledge breadth for mastery in this field). Was just discussing with my partners how you just have to kind of enter a zen mode of realizing someone's trying to mess with you personally and get into the fight on a level where they don't get the upper hand, it's very much as close as you can get to properly fighting people on the internet, and I like being good at that.
Coming from a country where "legally" procuring movies/music/software has always been harder than it should be (though things are better now), the scene I enjoyed was the piracy scene.

Be it the warez scene mentioned elsewhere in the thread, or simply the pirated movies/games scene, it formed such an integral part of my childhood. The whole aXXo/KlaXXoN debacle, the sheer respect for SkidRow for being able to deliver awesome games in a playable crack within days of their release, and purely the sense of community around, of all things, pirating content, was incredible. It sounds weird to say, but in many ways, it felt like a global movement to "stick it to the man" and keep control of the internet.

TBH I'm still a bit upset that mininova closed down because compared to TPB/RarBGe etc, I always felt like mininova was a much tighter knit community (and let's not even get into the whole eMule/Demonoid/Napster community).

I start with FoxPro so eventually get on the board of making a version of it (https://tablam.org), and now I'm regular at

- https://www.reddit.com/r/ProgrammingLanguages/

and because this working on a RDBMs, so:

https://www.reddit.com/r/databasedevelopment/

I loved LiteStep - an alternative shell for Windows. It could make the desktop experience so nice - so custom.

I created a bunch of themes for it: https://www.deviantart.com/yboris/gallery/12368848/litestep

I like to try to run things on Android.

Briefly on HN frontpage: Repurposing an old Android phone as a web server https://news.ycombinator.com/item?id=31841051

The Minecraft computer mods space (ComputerCraft/CC: Tweaked, OpenComputers, etc). If you don't know what these are, they add programmable computers into Minecraft.

People have made package managers, graphics libraries, GUI frameworks, and even a few game console emulators.

- https://www.curseforge.com/minecraft/mc-mods/cc-tweaked: Summary of ComputerCraft/CC: Tweaked.

- https://www.curseforge.com/minecraft/mc-mods/opencomputers: Summary of OpenComputers.

- https://forums.computercraft.cc: Home of a ton of awesome creations.

I love the free software ecosystem, file sharing / electronic communications software, and privacy related stuff, mostly electronic. I like exploring sites like alternativeto.net, european-alternatives.eu, exodus-privacy.eu.org, privacytests.org, degooglisons-internet.org. The whole topic of creating ecosystems that communicate with, or are alternative to, currently established ones, is just fascinating with me, and I have sunk quite some hours into these topics over the years. I have a whole setup of stuff that I manage for myself, a phone that runs /e/ OS, my own cloud to back it up, Linux on various computers, and I also love to tinker with running Windows games on Linux.
Digital Artificial Life -- as in evolving program ecosystems, artificial chemistries or cellular automata that can manifest life-like phenomena, etc.

Haven't done much with it in a while but was very into it in college. It's both a minor scientific field (would probably be grouped under both theoretical biology and AI research) and a hobbyist field with some really interesting projects.

Decreasing network latency by tweaking routers/developing new software:

https://www.bufferbloat.net

Not something I'm part of, but something I respect is the car tuning scene. I'm not talking about engine swapping or adding a bigger turbo, but tuning the original hardware electronically through the ECU.

Where I am in Europe diesels are king, and usually people import 2nd or 3rd hand cars from Germany. I'm from the UK originally, but it's kind of funny that I see a couple of magnitudes more BMWs here, which is much poorer country.

Once your engine has done two or three hundred thousand kilometers the original tuning doesn't really work that great, so you probably want to remap it. This is not only to increase performance, it is also done to decrease fuel consumption and burn cleaner (the technical inspection here is very strict about CO) or makes it start easier when cold.

This is done using software that lets you change how much fuel is injected across different RPMs and throttle levels. If you car has an Eco mode, this is how that works. The thing that there are only really 5 manufacturers of diesel engines for cars in Europe: Volkswagen (VW, Seat, Skoda, Audi, Porsche), PSA (Pegeuot, Citreon, Fiat, Opel, Ford), Mercedes (Mercedes, Nissan, Renault), BMW and Volvo; and the way they work under the hood is all pretty similar.

The fuel injection system and control equipment is not developed in house, but made by someone like Bosch, so if you have two engines made by differnet manufacturers but using an ECU from the same supplier, as you can understand there will be similarities.

To be able to tune engines properly you not only need to know how to edit the map, but also all the perculiarities of that particular engine. A lot of it is trial and error and reading Russian forums (where most the scene is developed).

As you can probably guess it's also used to work around emissions control devices, which are usually no longer functional when you're engine has done a few hundred thousand kilometers, and at this point can actually increase fuel consumption and can damage the engine. For some reason manufacturers do not sell replacement parts, so if you want to keep the engine running your only option is to disable it in software and have it physically removed. Because of all this it's common to see 20 year old cars still driving that have done over half a million kilometers.

I haven't been part of the scene since about 2011, but I've always been extremely proud and fond of my contributions to the iPod and Mac Customization communities. I was a designer back in those days so my coding contributions were minimal, but those communities were the best around.

I was involved in the iPodWizard project and was one of the people soft-bricking their iPods to discover what substrings of the Hex firmware did what so we could modify them and then build custom themes, change strings, and in a few cases even add new functionality. I also contributed my fair share of custom themes, particularly the themes that would turn the grayscale iPod 4G into something more similar to the iPod Video theme (we had 4 colors to make gradients out of; was more fun than it sounds)

I also contributed design and testing to the iPod Linux and iPod Wiki projects, and testing on the Rockbox project.

On the Mac side of things, I was a mod of MacThemes for a long time, contributed my fair share of themes and icons, and was a beta tester for Candybar for a long time. My biggest contribution was probably tearing apart and documenting how to customize iTunes on Mac. I got it to a point where I was able to restore 90% of the old iTunes after a much-loathed redesign. My documentation also resulted in a spike in interest and new themes being created for the first time in a few years. It was really exciting seeing the frankly stupid amount of work I put into that pay off within the community.

I used to have entire Keygen Jukebox on my iPod. And speaking of iPods: iPodLinux and Rockbox. So satisfying when you are 14, just change colors of the blocks in "copter" and it compiles and runs on your nano.

Oh and I also loved to show off with Tiny C Compiler on my jailbroken Kindle 3rd gen