@KindaABigDyl@programming.dev
@KindaABigDyl@programming.dev avatar

KindaABigDyl

@KindaABigDyl@programming.dev

I make things: electronics and software and music and stories and all sorts of other things.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

In Rust and Haskell you have to at least annotate the parameter types and return type of functions.

In OCaml type inference is a lot more powerful: you don’t have to annotate function signatures

Actually, Haskell and OCaml have this in common. Only Rust requires parameter types of the three.

I could do


<span style="color:#323232;">add2 a b = a + b
</span><span style="color:#323232;">main = do
</span><span style="color:#323232;">    putStrLn $ "5 + 3 = " ++ (show $ add2 5 3)
</span>

And that would work

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

Seems really difficult to learn/switch to

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

Here’s how I think it works

In formal language, what it means to accept a verification means does the result fall into the list of acceptable values.

Consider adding two 2-bit numbers:

  • Alphabet: { 0, 1}
  • Language: { x | x consists of four binary digits representing two 2-bit binary numbers where the result of adding these two numbers is a valid 2-bit binary number (i.e. falls between 00 and 11) }
  • Then you have an automata that will:
    • Start from the rightmost bit
    • Add the corresponding bits (+ carry from any previous iterations)
    • Carry over to the left if needed
    • Repeat for both bits
    • Check for acceptance
  • Machine as a whole simply checks did the inputs produce a valid 2-bit number, so it just accepts or rejects

The machine itself simply holds this automata and language, so all it does is take input and reject/accept end state. I think you’re just getting caught up in definitions

A sum of a list of numbers I think would be something like

  • Alphabet: digits 0-9 and ','
  • Language: a single string of digits or a single string of digits followed by a comma and another valid string
  • Automata:
    • Are we a single string of digits? If yes, accept
    • Sum the last number into the first and remove the comma
    • Repeat
  • Machine: Does the some operation result in a valid string?

Machines accept a valid state or hit an error state (accept/reject). The computation happens between the input and accept/reject.

But maybe I don’t understand it either. It’s been a while since I poked around at this stuff.

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

I wonder if you could get a any benefit by introducing two more MCUs.

Dedicate one MCU to simply reading and refreshing the RAM as fast as possible which can act as an abstraction layer for another MCU that it can talk to over I2C or SPI.

Then use a second MCU to act as the MMU and talk to the RAM MCU.

Finally, run Linux on the third MCU which talks to the MMU MCU.

Are there any CPUs that work well with Linux that aren't made by Intel or another company on the BDS list/that supports Israel?

I have a Ryzen 3 1300X at the moment and it’s always had this soft lock freezing bug on Linux. I used to dual-boot Windows on this machine and Windows never had the same problem, so I think it is an issue with the Linux kernel (I’ve also replaced nearly every bit of hardware that I originally built the PC with, except for...

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

I have been for the past month now. All of my games are now working.

Previously no and the reason was bc of Nvidia issues, but they all seem resolved now for the most part

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

I can’t even wrap my mind around people who use 60% keyboards and use a bunch of extra function keys let alone anything more drastic

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

Move to VR and infinite screen space. We’re so close. No doubt once Apple joins the fray it’ll be time

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

Bc they’re about to release a VR headset PC that allows just that. It will likely inspire other companies to do so as well

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

In VR, you are able to place windows anywhere. You have infinite amounts of screen. Look at something like Simula

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

I need to get caught up on C#. I stopped using it just before C# 8

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

NixOS is great

My workflow hasn’t changed much except I now find myself writing shell.nix files in my projects instead of having various compilers and build tools installed in my config itself since adding a random one-off dependency for a project is tedious if it doesn’t get added to the correct environment variable or something. Ultimately, this is really a benefit tho as it means I have a reproducible dev environment that can be shared with anyone else.

It also simplifies a lot of configuration stuff with sane defaults making it way easier to spin up things that might take a little bit of messing around, e.g. different desktop sessions (currently, I mostly use i3 and GNOME Wayland + Pop Shell, but I’ve experimented with others).

It’s more about how clear it is for me to get to my workflow. The Nix system (language, package manager, and OS) is really just beautiful once you get your head around everything.

I’ve been on Nix now for a few months coming from Fedora (1 year) and before that Arch (3 years), and I’ve loved every second so far. I use it for both work (embedded software engineer) and personal. It feels like the last thing I’ll ever config

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

it’s impossible to keep up with all of the changes

Literally not true. It’s all handled for you. You could use a stable system like Debian or Gentoo for years without updating or only getting security patches or use a rolling system and get all the updates easily. No one says you’ve gotta reinstall your system all the time. Every distro has some way to keep up with updates. It’s not like you’ve gotta compile every program yourself and pull the git repo every few days or reinstall your OS every year.

Way Too Many Choices

Linux’s biggest obstacle is the paradox of choice

If you are scared of the options available for Linux, you are ignorant. It’s understandable some people get anxiety when presented with too many equal options, but the thing is they have to be equal options. This is not the case in the Linux world. The options are all different. You as a user will want different things than other users. You may not have thought about what you want, but you do have wants. You have an idea of how you want to use your computer. It’s a matter of doing a Google search to find what option provides your choice. It’s not like choosing between 5 ice cream flavors you all like; it’s like choosing what to eat between ice cream, vomit, feces, a rock, and a block of wood. There’s a clear right choice. If you really believe that there are an overwhelming amount of choices of Linux, you are simply ignorant of the most basic UX differences. Like, you haven’t even tried to compare. You just heard “there are 2 things” and panicked.

I’m really tired of this stupid myth of too much fragmentation in Linux that gets passed around. There’s a reason for the fragmentation; it’s not arbitrary, so it doesn’t hurt to have it. We’re talking bare minimum looking stuff up or asking a question.

Why? Because Linux is high maintenance.

Only true if you mess with stuff. If you’re a newcomer and just want stuff to work. Pick some common, stable OS like Ubuntu, use flatpaks or snaps, and it will just work.

I did nothing out of the ordinary – yet somehow it ended up breaking my desktop. The result? Neither Unity nor Gnome worked properly, so I went back to Windows to cool off… and haven’t been back to Linux since.

Ah okay, this article was written nearly a decade ago. That checks out. There were several significant improvements to Linux around 5 years ago or so.

But also, “nothing out of the ordinary?” Installing a totally new desktop environment is “nothing out of the ordinary?” It’s something you can’t even do on Mac and Windows!

Software Quality Is Mostly Sub-Par

Just untrue. There are tons of fantastic FOSS apps out there with better UX than I get even from proprietary apps. Another myth that has 0 Google searching behind it. I mean look at the GNOME apps. They’re all really really good for the most part.

This probably also comes from the age of the article too. A lot of that came like 5 or so years ago. There were some big pushes.

There are some important proprietary apps that are unavailable with no great alternatives like Photoshop, that’s fair, but for FOSS apps that are just trying to do what they want to do, there’s some with great UI.

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

difficult for you to distinguish at a quick glance

That’s what I’m saying though. You’re just mincing words. If you look at GNOME and then look at KDE, you’re not going to see very many similarities. The choices are clear.

They’re going for drastically different things. So yeah, it’s obvious; they’re not trying. They haven’t done a single search.

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

No, the choices are absolutely not clear in any way

That’s a ridiculous thing to say. You’re being disingenuous.

I had a dream about windows and have decided to setup Linux on my laptop. What distro should I use?

I used Ubuntu once a few years ago but had compatability issues so I went back to windows. Not a great programmer but I’d like to learn. I’m not looking to do much gaming beyond DOOM2 and factorio. Mostly looking for privacy and a way to get back into programming (I have this pipe dream of learning Assembly). I’m not to...

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

Mint is currently my recommendation for Windows refugees and has been for a while.

  • Cinnamon desktop environment works like Windows’ UX
  • Ubuntu-based, so you’ll find help online for basically anything
  • Not just Ubuntu; follows more popular, community decisions rather than Canonical’s (e.g. things like Flatpak instead of Snap) which will help you in the long run since you’ll be using what everyone else is using
  • Ubuntu-based, so Debian-based, so pretty stable with lots of available software (even outside of Flatpak)
  • Significant amount of work put into UX with less you have to do

If you’re not worried about high-performance gaming, you’ll be fine with whatever. For developers, any Linux distro is gonna be leagues better than what you’re used to on Windows. For Assembly, NASM + VS Code will be great.

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

Personally, Ardour > Bitwig. Couldn’t ever figure out how to do anything in Bitwig. Very complicated an unintuitive.

Ardour is also unintuitive but 1) I did eventually figure it out and 2) it’s at least free

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

Return to the office. Forced to use Windows again

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

Thankfully, we migrated to git entirely right before I joined the company

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • GTA5RPClips
  • thenastyranch
  • ethstaker
  • everett
  • Durango
  • rosin
  • InstantRegret
  • DreamBathrooms
  • magazineikmin
  • Youngstown
  • mdbf
  • slotface
  • tacticalgear
  • anitta
  • kavyap
  • tester
  • cubers
  • cisconetworking
  • ngwrru68w68
  • khanakhh
  • normalnudes
  • provamag3
  • Leos
  • modclub
  • osvaldo12
  • megavids
  • lostlight
  • All magazines