a problem that I often run into when learning a new Tech Thing is figuring out how to apply the knowledge that I’m learning about, without asking myself to do something that’s too hard with my current knowledge. but this Haskell MOOC does all the work for me and that’s amazing
specifically it comes with a git repo that I can clone. for each chapter there’s a premade file full of stub code and comments that describe what the code should do. and I just edit the stub code in order to make it work. then there’s another file that I can run to unit-test those challenges. that way I instantly know if I did each challenge right
this is genuinely a lot of fun to do and it helps reassure me that I am actually absorbing the information that I’m reading
I really wish that there were more courses(?) like this for learning tech stuff. even just something at the end of each chapter like “here are some optional challenges that you might want to try at this point” would go a long way
aaa now the Arch laptop fucked up my cloud storage too and I don’t even know why. I literally haven’t touched this stupid laptop in like 6 months and suddenly everything is broken
instead of “I use Arch btw” it should be “ugh hang on. I use Arch :/“
as in: “hey can you plug your laptop into the TV so we can use it to watch the movie?” “ugh hang on. let me check the Arch wiki. okay actually this is pretty confusing. wait a sec pacman just borked something. okay uhh… let me work on this for a few hours”
I think the reason why I like programming and software tinkering but not OS tinkering is because with the former two I get to decide when I do the tinkering
but if I start tinkering with my OS then it decides when I do the tinkering. it can just suddenly be like “hahaha I broke myself! time to learn about partition resizing!”
which is not great when I leave in a few days and need a functioning laptop and do not have the energy or patience for Linuxing
if you want to try Linux don’t use Arch it’s a trap. I’ve heard Linux Mint is good instead
also make one big partition don’t have a separate /home partition
ugghhh I’m going to have to learn how to resize a partition on Linux. this is definitely going to suck and there’s a nonzero chance I’m going to bork my laptop
the autistic urge to somehow learn Haskell and ANSI C and Scheme simultaneously
(every time I start learning one it makes me want to switch to learning the other two)
holy shit I installed Haskell and my WSL drive went from 5 GB to 22 GB
that’s kind of a problem because I do weekly backups lol so every time my WSL drive changes I have to transfer all 22 GB of it over. maybe I should figure out a better backup system than FreeFileSync
Automatically updating content can be extremely distracting, especially for users with vestibular disorders or attention difficulties. This could force users to scroll through page content to not see the animation, or to just look away. Allow animations to be paused or stopped.
PSA to anyone who uses Gmail!
"Reportedly, Google has recently started automatically opting users in to allow Gmail to access all private messages and attachments for training its AI models. This means your emails could be analyzed to improve Google’s AI assistants, like Smart Compose or AI-generated replies. Unless you decide to take action."
Call of Duty’s new Omni-Movement™ system is an amazing example of AAA games innovating by changing things for no particular reason, and then innovating again by un-changing things and going back to how Quake 1 worked
my philosophy as a developer is to figure out which technologies are the most popular and deliberately avoid them out of disgust
this philosophy has resulted in 58,927,345,598,307 unfinished toy projects, maybe like 12 finished toy projects, and one bare-functionality webapp
but at least I’m not using Node *shakes fist at cloud*
Beating Minecraft, But I Can’t Break the Laws of Judaism
this is unironically a really cool and interesting video wtf
CW: there’s a gross part at the end but just skip the last few seconds (from 18:44 onward)
in the past I’ve posted about how my ideal language would be made out of the bare minimum of simple parts, and then built out from there as a tree structure of abstractions
the root node would unfortunately have to be defined in natural languages which are messy and imprecise, but all of the root’s child nodes would be defined in terms of the language features in the root node - as well as having natural language descriptions to help people understand what they’re reading and why it’s designed that way
and for every node in the graph, its features would be defined only in terms of the features contained in its child nodes (with natural language to help explain things more of course). also, each child node would reuse as many concepts as possible from its parent nodes, to minimize the number of special cases that a user of the language would have to learn
there are a few reasons why I want a language like this:
I feel like a lot of languages over-rely on people “just knowing” what different behaviors are and do, and they also take for granted that users of those languages are willing to memorize arbitrarily many special cases that could have been simplified by reusing existing concepts. just compare Lua’s import system with any other scripting language’s import system for a great example. Lua’s import system only has two special-case rules (how it finds the file, and the fact that that file gets executed like a function) and otherwise works entirely using pre-existing language features. can any other language say the same? if so I want to know about it
meanwhile Python is a mess of “okay so… this directory is treated like a module, right? is that in the search path? wait this is from . import foo so it looks in the current directory… but what’s ‘the current directory’ in this case? wait no it’s not the current directory it’s the current module, isn’t it? but how does Python define a ‘module’ again?” I’ve used Python since I was 14 and I still couldn’t tell you the behavior of a lot of imports without running it just to make sure. and my experience is that every programming language besides Lua is like this. so I’m forced to experiment with each import system by trial-and-error instead of just understanding it right away in terms of stuff I already know
and I think that’s a microcosm of a bigger problem, which is that languages take for granted that their users are willing to learn arbitrarily many special cases, extra syntax rules, new keywords, etc. a lot of languages are really fucking big and every new feature is a self-contained “thing” that has to be learned in complete isolation from anything else in the language - without any familiar reference point to understand it from (looking at you, Rust)
but imagine, instead, if I had a clear progression of nodes to traverse, and traversing those nodes required me to learn as few discrete concepts as possible - but rather let me recycle my old knowledge to learn each new system. wouldn’t that be so much better - not just for learning, but for understanding and applying that knowledge?
anyway, I’ve been hopeful that there’s some Lisp language out there that could do this for me. since they can be built up from literally like 9 discrete concepts, and from there it’s possible to build an arbitrarily complex language, with special syntax and built-in DSLs and everyting - which I find incredibly beautiful
unfortunately the Lisps that I’ve found so far (other than Fennel) have felt… not good. and they definitely don’t follow this philosophy. so I’m still looking for my ideal language, or at least something a bit closer to it than Lua is, in case it’s out there somewhere (currently I’m hopeful about Scheme and warily curious about Haskell)
in the meantime, though, I’m happy to have Lua and Fennel because they get pretty damn close. especially Fennel
reason #578 to get an android body: I wake up in pain, too early in the morning, more often than not now :/
this time I somehow hurt my neck in my sleep and now it hurts every time I look to the left. fuck this shit I wanna be a cyber-succubus
query: do {rewrite it in rust} evangelists still exist? when was the last time the reader noticed a commenter telling someone to rewrite something in rust, without the commenter offering to shoulder the work?
this unit is disappointed that a useful programming language acquired such a negative reputation from a loud minority of its users. it would be quite disappointed if that reputation outlived the loud minority, and programmers continued to dislike the language based solely on [stereotypes, ghosts]
how do you pronounce FFXIV?
esolang that starts as the minimum viable lisp
except anyone can create a new function or macro and it becomes a read-only builtin after that point, which anyone else can use
for example I could use (cond) to make an (if) macro and now everyone else has access to (if). except if I make a mistake with (if), that mistake is there forever. now someone has to call their working version of if (if-fixed) or (if-working) or something
I don’t think marketers appreciate how much damage they’re doing to my perception of their brand when they send me emails like
Well hey there, [deadname]! It’s so nice to meet you!
Hey again [deadname]! We’ve got a fucking coupon for you [deadname]!
[Deadname], have you considered buying [thing]? You should really consider it [deadname] it’s a great idea [deadname].