Posts by jns@mastodon.linkerror.com
 (DIR) Post #AYI5fnaCnk7aR0w5yK by jns@mastodon.linkerror.com
       0 likes, 0 repeats
       
       The toot monolith.https://toobnix.org/w/7Dai4JKJYFw3H14ydrD1KuJust making sure VR rendering still works in my engine. Tested with a ton of lights, and the gui node in my engine. FPS is hurting a bit hah - I may have some optimizing ahead of me.(No Faceb^H^H^H^H^HMeta involved in any of this. They can go pound sand.)#gamedev #vr #toot
       
 (DIR) Post #AYI5frkHKEYVLPgCEC by jns@mastodon.linkerror.com
       0 likes, 0 repeats
       
       Introducing PERMACOMPUTER - human-focused computing - a #degrowth and #permacomputing open letter and hopefully soon community, with your help:* gemini://perma.computer/* gopher://perma.computer/Please read the open letter and sign it if you agree! It would mean a lot! @arcanesciences ' #gemini  gemlog here: gemini://arcanesciences.com/gemlog/23-05-04/I also wrote a #gopher  phlog post about it here: gopher://gopher.linkerror.com/0/phlog/2023/20230503Please help spread the word!
       
 (DIR) Post #AYI5fswirS6V4IVeGO by jns@mastodon.linkerror.com
       0 likes, 0 repeats
       
       Re-posting my New Cyberia music video here because the one on the htown account vanished when htown tv went under. Also, because I like it, and it's maybe kinda relevant, as in that moving to a new cyberia with perma-computy comfy-goodness sounds nice about right now.https://toobnix.org/w/bLwNqELdsu95o6xGEmVqSq
       
 (DIR) Post #B4SApzVsSDK17X8kL2 by jns@mastodon.linkerror.com
       0 likes, 0 repeats
       
       @rl_dane  Linux is primarily a tool for fortune-500 companies first, and end-users like thee and me, last.Given the fact that most Linux contributors are on a corporate payroll, no surprise.Computing as we knew it, is dead. The future has been robbed from us.
       
 (DIR) Post #B4SApzuKzGt6LOaHSq by jns@mastodon.linkerror.com
       0 likes, 0 repeats
       
       @rl_dane Hah :) Haiku gives me some hope. They do actively resist the ai nonsense, so far,... The c64 might be the better way to go :D Anything that needs to be general purpose enough to work with modern hardware is always going to be disadvantaged by having to reverse engineer proprietary drivers and hardware. There used to be enough people to somewhat keep up with that, and some shift in mentality at the manufacturer side to be a bit more reasonable with providing open drivers and/or documentation, but in the past few years or so, none of that is true anymore.I am seeing projects long considered stable fall apart due to losing maintainers left and right, and projects that are still alive get flooded with new developers pushing bad practices as if it were a personal crusade. The software landscape in general seems to be slowly unraveling into complete dysfunction.Sticking with an as-simple-as-possible stack where all parts can be maintained by one person seems like the most reasonable way out of the mess. (there's more capable options other than a c64 these days though ;) - reviving something like Wirth's project oberon on a somewhat more modern fpga would be a fun start.. )
       
 (DIR) Post #B5dAAFtBMW5sHoDLP6 by jns@mastodon.linkerror.com
       0 likes, 0 repeats
       
       So, with ai having infected linux, vim, even syncterm now... is there anything untainted left? What the fuck.... Everyone's just OK with this? Should I just roll over and die? What the hell.
       
 (DIR) Post #B5dAAGLtdl3vireHA0 by jns@mastodon.linkerror.com
       0 likes, 0 repeats
       
       @rl_dane I think LLM usage is worse than electron/npm insanity etc... by a long shot. By definition only huge corps with lots of resources(money) can spider(steal) enough content to ingest data and train the models. And those corps happen to all be tech-feudalists, some borderline neo-nazi. Nothing good is going to come of this, and it ought to be fought tooth and nail.
       
 (DIR) Post #B5dAAGq1pjAJEJkL7w by jns@mastodon.linkerror.com
       0 likes, 1 repeats
       
       @kabel42 @rl_dane yuck.. yeah :( never used it personally....not that i'd ever be tempted to use electron for anything :p I already hate web development enough, thank you - there's actually nice toolkits for desktop - i don't know why you'd want to bring webdev-hell to the desktop, but people are weird these days :p
       
 (DIR) Post #B5dTvD5XUVMAL766Fc by jns@mastodon.linkerror.com
       0 likes, 0 repeats
       
       @rl_dane aaaaaaaaaaaaarrrrrrrhjjjjjjjkkkkkkklllllllllllllllllllllll :(Is this hel? Hearing same old bad-faith arguments over and over again in perpetuity?It's not "just a tool" if the models can inherently only be created by entities with large capital wealth.Conveniently, the people arguing it doesn't use that much power, always drop the energy cost of the model training itself. And let's not even talk about the huge, gigantic, slow, shitty python stacks that need to drive and power all of the hard-coded edge cases (Yes, that's most definitively a thing, LANGUAGE models are not intelligent. They classify tokens and trigger different tools (some other models, some literally just shitty hard-coded scripts) - A single query to chatgpt can easily fork off a dozen queries. They loop output back as input, and have babysitter models on top to monitor output, etc... So comparing that with a simple query to a local model is very much a false comparison. And even that model is still unethical when it's using a corporate trained model, which, all of them do. Let's not pretend that there isn't a huge boom in datacenter buildout, and that it's not ai related.. what the heck... exactly right at the time when we're in a climate EMERGENCY....How much mental gymnastics do these people have to do to sus their conscience?
       
 (DIR) Post #B5lcWJxvEqOVHUQ9Xk by jns@mastodon.linkerror.com
       0 likes, 1 repeats
       
       Well, fuck @blendernation to be the latest company to take techno-feudalist ai nazi-dollars i guess. I suppose now is as good a time as any to throw all modern computers away and fire up the octane; revert back to 2.49 on #irix Gotto put that v12 card to use somehow.
       
 (DIR) Post #B5u3yHoZ54qqkHHaqG by jns@mastodon.linkerror.com
       0 likes, 0 repeats
       
       @linear Q2DM1 deathmatch when? :]
       
 (DIR) Post #B6D2XYGLPY5tzMCeRs by jns@mastodon.linkerror.com
       0 likes, 0 repeats
       
       Got the keyboard vfd to do custom character glyphs :)Following little bit of userland cpp code does the thing when my dekokbd kernel driver is loaded:happy_sad.cpp```#include <filesystem>#include <fstream>#include <iostream>#include <stdexcept>static const std::filesystem::path devicePath{"/dev/dekovfd"};unsigned char glyph_smile[8] = {    0b11011,       0b11011,    0b00000,      0b00000,      0b11111,     0b01110,     0b00000,    0b00000};unsigned char glyph_frown[8] = {    0b11011,       0b11011,      0b00000,      0b00000,      0b01110,     0b11011,     0b00000,    0b00000};enum class VfdBrightness : char {  Dim = 0x03,  Medium = 0x02,  Bright = 0x01,  VeryBright = 0x00};/// Clears the screen of the VFD display.void clear_screen(std::ofstream& deviceStream){  deviceStream << "\xe4\x01";}/// Sends cursor to row 1, line 1.void cursor_home(std::ofstream& deviceStream){  deviceStream << "\xe4\x02";}/// Moves cursor left 1 space.void cursor_left(std::ofstream& deviceStream){  deviceStream << "\xe4\x10";}/// Moves cursor right 1 space.void cursor_right(std::ofstream& deviceStream){  deviceStream << "\xe4\x14";}/** * Sends the cursor to a specific position. * * @param deviceStream the device to write to. * @param y Should be either 0 or 1. * @param x Visible characters range between 0 and 19,  *          but there's a hidden buffer behind it up to 39  *          (useful for scroll effects or instant paging). */void gotoxy(std::ofstream& deviceStream, int x, int y){    unsigned char address{};    if (x < 0) x = 0;    if (x > 39) x = 39;    address = y <= 0 ? 0x80 + x : 0xc0 + x;    deviceStream << "\xe4" << static_cast<char>(address);}/**  * Shifts the entire contents of the vfd display to the left. *  * It will also shift the hidden off-screen buffer onto the  * screen this way. */void shift_display_left(std::ofstream& deviceStream){  deviceStream << "\xe4\x18";}/**  * Shifts the entire contents of the vfd display to the left. *  * It will also shift screen contents into the hidden off-screen * buffer this way. */void shift_display_right(std::ofstream& deviceStream){  deviceStream << "\xe4\x1c";}/// Turns the vfd display on.void display_on(std::ofstream& deviceStream){  deviceStream << "\xe4\x0c";}/// Makes the cursor visible on the vfd display.void cursor_on(std::ofstream& deviceStream){  deviceStream << "\xe4\x0e";}/// Makes the cursor visible and makes it blink.void cursor_on_blinking(std::ofstream& deviceStream){  deviceStream << "\xe4\x0f";}/// Turns the vfd display off.void display_off(std::ofstream& deviceStream){  deviceStream << "\xe4\x08";}/** * Enable 8-bits per character mode. * * The display can also operate in a 4-bits per character * mode, and when it's in that mode, you'll get garbage on the * screen when trying to write normal text. This forces the * vfd into normal 8-bit mode. */void display_8bit(std::ofstream& deviceStream){  deviceStream << "\xe4\x38";  deviceStream << "\xe4\x38";  deviceStream << "\xe4\x38";}/** * Set vfd display brightness. * * @param deviceStream the device to write to. * @param brightness The desired screen brightness. */void display_brightness(std::ofstream& deviceStream, VfdBrightness brightness){  deviceStream << "\xe4\x38\xe6" << static_cast<const char>(brightness);}/** * Stores a custom glyph in one of the 8 UDF slots. * * @param deviceStream The device to write to. * @param slot The custom character slot (0 through 7, the vfd can store up to 8 custom glyphs) * @param data A pointer to 8 bytes of pixel data (5 bits used per byte) */void define_custom_char(std::ofstream& deviceStream, int slot, const unsigned char* data){    std::string buff{};    if (slot < 0 || slot > 7)    {        throw std::runtime_error("Invalid slot passed to define_custom_char().");    }    buff.reserve(18);    buff.push_back('\xe4');    buff.push_back(static_cast<char>(0x40 + (slot * 8)));    for (int i = 0; i < 8; ++i)     {        buff.push_back('\xe6');        buff.push_back(static_cast<char>(data[i]));    }    deviceStream.write(buff.data(), buff.size());}/// Entry pointint main(int argc, char* argv[]){  if (!std::filesystem::exists(devicePath))  {    std::cerr << devicePath.string() << " does not exist." << std::endl;    return 1;  }  std::ofstream deviceStream(devicePath);  if (!deviceStream.is_open())  {    std::cerr << "Could not open " << devicePath.string() << "\n";    return 1;  }  /* This is a bit of an initialization dance, to make sure everything works     no matter what state the vfd is in.      First we mke sure the display is in 8-bit character mode instead of the     weird 4-bit character mode, then we make sure the display is on, and has     the right brightness set etc... */  display_8bit(deviceStream);  display_on(deviceStream);  display_brightness(deviceStream, VfdBrightness::VeryBright);  deviceStream.flush();  define_custom_char(deviceStream, 1, glyph_smile);  define_custom_char(deviceStream, 2, glyph_frown);  deviceStream.flush();  clear_screen(deviceStream);  cursor_home(deviceStream);  deviceStream.flush();  deviceStream << "Happy: (\1)";  gotoxy(deviceStream, 0, 1);  deviceStream << "Sad: (\2)";  return 0;}```
       
 (DIR) Post #B6D2XYrZB9rtqncNSy by jns@mastodon.linkerror.com
       0 likes, 0 repeats
       
       @kabel42 It was originally a video editing keyboard made by Pinnacle (they are still around making video editing thingies) -- it has a ton of extra individually controllable leds and keys, and the built-in vfd - all controllable with custom ps2 commands - which kinda needs a custom kernel driver to get working properly - I wrote one for FreeBSD initially, and recently one for Linux - A couple of years ago I released a peertube video showing how it works with FreeBSD - https://toobnix.org/w/dXMkWYitfejhPsxoydpCts(skip to the end around 22:50 or so for a proper demo)You can still find them on ebay from time to time.
       
 (DIR) Post #B6D2XZGjfa096rOThI by jns@mastodon.linkerror.com
       0 likes, 1 repeats
       
       @kabel42 All of my keyboards have been big historically my main keyboard before this one was a unicomp PC122I also built a Hyper7 kit (one of these https://imgur.com/a/hyper7-Z8pIW  - picture not mine) - (With the bulk of the keycaps re-used for the pinnacle deko) - but i never ended up using the hyper7 because it's design is AWFUL haha - It's actually SMALLER than the unicomp PC122, with the keys more cramped, and the modern keycaps the kids make these days don't have proper j/f key nibs to position your hands without looking - and due to the cramped layout and no spacing to 'feel' your way to the main keyboard, 70% of the time you end up mis-aligning your hands. - The pinnacle deko is much more practical, and technically has more individual keycodes it sends by default :p I ended up 'solving' the j/f key problem by using a punch to punch a bubble into the plastic - sigh - there's plenty of other problems with the 'fancy' keycap set though - like no led light-channels for caps-lock/numlock/scroll-lock/etc...