- Sometimes
- Sometimes
- Both
“My source is that I MADE IT THE FUCK UP”
What’s so bad about the Rust compiler? I know it’s slow, but given all the analysis it’s doing, it makes sense. And, from my own experience, setting correct optimization levels for dependencies along with a good linker makes incremental builds plenty fast.
I have for a bit, decided to stick to MD because of its accessibility to my non-tech collaborators, it is easier for them to install Obsidian, and MD is very well-known.
Aside from that, I am planning to use Pandoc to process my sources into other deliverables: web pages, PDFs etc. I am myself still learning this ecosystem, and markdown (in my experience) just enjoys more visibility.
Truth be told, I did not have any exposure to Org Mode prior to looking it up for knowledge management, so all of the above might be my “little duck” brain speaking.
Bevy, specifically because it is an ecosystem of libraries. I tried UE3/4, Unity and Godot, and I’ve always found the complexity of tooling and amounts of options available completely overwhelming. Not to mention, that most of these tools and options funnel the developer into very specific and opinionated ways of doing things.
By contrast, Bevy is just a Rust crate, and it is modular - I can connect only those plugins and functions I really need. If I am ever confused by some function, or a type, I just press “gd” and my nvim will show the definition of this function or type - it feels refreshingly simple and seamless in comparison with the enormity and complexity of Unreal or Unity. At any point in time I am staring at my code, I only see things that are relevant to the problem, and nothing else.
I can bring my own tooling (editors, analysis tools, asset pipelines etc.), projects are easy to build and automate, - it is pure bliss.
The absence of an editor allows me to hook up whatever I want: LDTK, Trenchbroom, even Unity could be used as a scene editor. There is virtually no vendor lock-in with dependencies either. Don’t like Rapier as your physics engine - easy-peasy, you can use Avian, or something else, or something custom, or nothing at all. Don’t like Bevy UI - no worries, there is Egui, multiple integrations with other UI frameworks, you can even use Typst layouts for your menus if you so desire.
Right now I am working on a literate game with a friend: our sources are markdown files with bits of code in them. Our automation compiles markdown to Rust sources and then builds the game, potentially along with the devlogs and some other auxiliary artifacts.
My non-technical partner contributes to the repo freely, treating it as an Obsidian vault, - in our team there is no distinction between technical writing and development, our game design document and source code are literally the same thing. This approach has removed loads of roadblocks and allows us to safely and controllably accumulate knowledge, before distilling it into a working game.
It wasn’t trivial to set up, but it wasn’t overly complicated either - good luck replicating this set up with Unity or Unreal though.
I have been toying with the idea of forking Servo to make a scriptable keyboard-driven browser, like Nyxt but with something else instead of Lisp.
Probably too huge of a project for one hooman though.
Thanks, but it wasn’t so bad. I have learned exactly two things from that conversation: 1 - one can brake a dick 2 - some injuries have fascinating stories attached to them
Overall, I wouldl rate this experience 8.5/10 - very enlightening and only mildly inappropriate.
Sausage was fine.
I grew up in a family of medical doctors, it came with its own set of similar challenges. Every problem discussion always revolved exclusively around solutions or practical harm reduction. I suspect God forbade the doctors from talking just for emotional support.
Every problem I ever had (completely normal ones included) was medicalized and pathologized, neatly classified and wrapped in a set of actionable instructions: “this is how you get better, this is how you allow it to get worse”.
I still remember coming home from school and sitting down at the dining table, eating my sausages with buckweed, while my dad, mom and older sister discuss methods and techniques to install a urethral catheter in a person with a broken phallus.
It wasn’t good or bad, it was just weird I guess. Hey, at least I am not scared of blood/trauma/desease, and in a some cases I believe it allowed me to stomach helping people in need, when other people would turn away out of disgust or disturbance.
Outer Wilds, if you haven’t played already. Obligatory warning to avoid spoilers like your life depends on it, go in completely blind if possible.
Get a habit of tracking your habits. When you know everything you do while “on autopilot” and why, - you can outsource a lot of chores and work to your “autopilot” self by setting up your routines and habits correctly.
This skill is best learned as soon as possible, and it’s a shame it’s not taught in schools. 20s is a good time - all the momentum you gain within next 20 years can carry you the rest of the way.
Also, don’t be hard on yourself for failing. You’ll see tons of good advice - a lot of it will seem essential (like being financially responsible), for good reasons. Just know that failing at all these things does not necessarily make you a failure or a bad person. Who knows what struggles you might/will face - as long as you survive and take care of your loved ones, you should be ok. Ultimately that is all we can do.
Also, try to engage with physical things more: people IRL next to you, touch grass, craft something with your hands. Of it’s not physical, it exists in your head, - and your head might not always be the best place to spend most your time.
Please elaborate, I’ve been interested in this for awhile - what do you use/recommend for someone who’s new?
Back in 2011 I already felt that there should be some sort of easy-to-follow hygiene to maintain around mass media, especially internet. You know, like we hide our coughs and sneezes, maintain healthy distance around people, wash our hands, use slippers in communal pools. I should probably look up if someone smarter has already done the work.
As someone who has built a career in building and maintaining digital services, a lot of what Carmen talks about rings very true to me, especially this part:
“The platforms make money based on the time we spend on them, and they don’t hesitate to use unethical, addictive resources, so how are you going to ask a 10-year-old or a 13-year-old to stop, if it’s even hard for us adults?”
I’ve struggled with social media and technology addiction myself, so in my mind, allowing a child a smartphone is akin to teaching them how to smoke - that is how toxic and generally “bad-for-your-health” modern internet is, I think.
At the same time, I am not (yet) a parent, so I really don’t know how am I going to be making such a decision when the time comes.
A genuinely cool and somewhat lean alternative to Electron!
It’s not that native UIs are lagging behind, there is a whole set of reasons.
TL;DR: browsers, as opposed to desktop apps, are stardartized - because they were originally designed to display and deliver text documents. We were never supposed to build complex application UIs on a web stack.
First, there is no standard way of making native UI on a desktop. Every OS uses it’s own solution, while Linux offers several different ones. Browsers rely on a set of open standards developed specifically for the web, and even there not everything works exactly the same.
Second, browsers are designed to draw a very specific kind of UI through a very specific rendering mode - they run an immutable hierarchy of elements through layouting and painting engines. It works great for documents, but it becomes extremely unweildy for most other things, which is why we have an entire zoo of different UI implementations (crutches, most of them) for browsers.
On the desktop we often make a choice of what UI technology would fit best our purpose. For a game engine I would use an immediate-mode UI solution like ImGUI, for the ease of prototyping, integration and fast iterations.
For consumer software I might choose between something like QT or GTK for robust functionality, reliable performance, acessibility and community support. Mobile platforms come with their own native UI solutions.
For data-intensive UIs and heavy editors (e.g. CAD, video and music production, games) I might need to designan entirely new rendering pipeline to comply with users requirements for ergonomics, speed, latency etc.
It is also easy to notice that as a team or employer, it is often much easier to hire someone for web stack, than for native development. Simply put, more people can effectively code in JS, so we get more JS and tech like Electron enables that.
If you are interested in a single solution that will get you nice results in general, no matter the platform - you might see some success with projects like Flutter or OrbTK.
UI rendering in general is a deep and very rewarding rabbit hole. If you are in the mood, this article by Raph Levien gives a good overview of existing architectures: https://raphlinus.github.io/rust/gui/2022/05/07/ui-architecture.html
I am in the process of learning about/choosing shells for my new setup. Can you please elaborate on gpl-vs-mit style - what do you mean? Is it just about licences?
I am not a professional educator, but in general I think it is worth to start with basic computer literacy: identifying parts of a PC, being able to explain their overall functions, difference between hardware and software, and what kinds of software a computer can run (firmwares, operating systems, user utilities etc.). This would also be a perfect time to develop practical skills, e.g. (assuming you are a normatively-abled person) learning to touch-type and perform basic electronics maintenance, like opening your machine up to clean it and replace old thermal compounds.
After that taking something like “Operating systems fundamentals” on Coursera would be a great way to go on.
It really depends on your goals, resources and personal traits, as well as how much time and energy you can spare, and how do you like to learn. You can sacrifice and old machine, boot Ubuntu and break it a bunch of times. You can learn how to use virtualization and try a new thing every evening. You can get into ricing and redesign your entire OS GUI to your liking. You can get a single-board computer like RaspberryPi and try out home automation.
We learn and teach inferior personal computing practice, and most people don’t realize how much they are missing.
The vast majority of people outside of enthusiast circles have absolutely no idea what a personal computer is, how it works, what is an operating system, what it does, and how it is supposed to be used. Instead of teaching about shells, sessions, environments, file systems, protocols, standards and Unix philosophy (things that actually make our digital world spin) we teach narrow systems of proprietary walled gardens.
This makes powerful personal computing seem mysterious and intimidating to regular people, so they keep opting out of open infrastructures, preferring everything to come pre-made and pre-configured for them by an exploitative corporation. This lack of education is precisely what makes us so vulnerable to tech hype cycles, software and hardware obsolescence, or just plain shitty products that would have no right to exist in a better world.
This blindness and apathy makes our computing more inaccessible and less sustainable, and it makes us crave things that don’t actually deserve our collective attention.
And the most frustrating thing is: proper personal computing is actually not that hard, and it has never been more easy to get into, but no one cares, because getting milked for data is just too convenient for most adults.
Long time i3 user, recently switched to Hyprland+Wayland. I just don’t like mice, don’t enjoy using them, and I find the snappiness and responsiveness of keyboard-centric workflows very fun and enjoyable.
I am a software developer, and I am very impatient when it comes to my tools: I like my feedback cycles and interactions to be as tight as possible. This limited study from 2015 showed that developers, on average, spend ~26% of their productive time on stuff that is not related to either code editing or comprehension, including 14% spent on UI interactions. Tiling window manager allows me to streamline most of these interactions through hotkey bindings and shell automation, >!so I prefer spending literal months polishing my dotfiles instead!<