To whoever did this, I just want you to know that I am very annoyed by your decision.

Low-effort content for certain microblogging platforms.
To whoever did this, I just want you to know that I am very annoyed by your decision.
Is passing a buffer directly to MessagingService/DataStore actually better? Mandatory compression means that a size check is required, which means double encoding. Also does base64, which has worse size overhead than base85 via Luau.
For specialized data, the developer will be able achieve higher info density way better than general compression ever could. I’d argue that the compression step should be skipped entirely.
Notoriously unstable debugger: That assignment didn’t change this variable.
Me: Must be a compiler bug.
I hereby give you permission to not unconditionally hate light mode. Go ahead. Be indifferent.
17 years on the platform is not enough for #Roblox
Boring Facts: DataStore keys are binary-safe. They have a size limit of 50 bytes, not characters. That’s 400 full bits to work with.
Why are humans like this?
Entropy is the entire universe telling you to rewrite your front end.
This is fine. I’m okay with the events that are unfolding currently.
“Fixed” it. There’s some rewind logic that stops new builds from being displayed until Roblox says they’re live. It seems to malfunction when a build hash appears more than once in the deploy history. Fixed by disabling rewind, so diffs can now be enjoyed before they go live.
Magic in software is just a lack of documentation. A design is fine if we know why we’re using it and the reasons are justified.
Glass is being fun lately.
LiveBind: A quick and dirty plugin to make tag bindings to aid with development. As an example, a binding that fills in terrain based on parts is included.
https://github.com/Anaminus/roblox-library/tree/master/plugins/LiveBind
In Roblox Studio, Ctrl+R “rotates” around the normal of the focused surface. Ctrl+T uses the axis that is nearest aligned to the camera’s local X axis, so that it “tilts” towards the camera.
If you need to simulate something, such as an assembly, you can call RunService:Run() and :Stop() from the command bar. It even respects undo/redo. Keep in mind that the whole place is simulated.
Roblox Studio’s interface should be more like Blender’s.
Comparisons of performance between libraries are completely meaningless. The most optimal choice between two libraries is neither.
Consider the following question: is it being used on the hot path?
Preemptive FAQs are not FAQs.
Latest obsession: building houses realistically. Most of it will be abstracted away in an actual build, but doing it this way informs the layout of the house. For example, the stairway in this image isn’t ideal, because its headroom conflicts with the roof (1.5-story house).
Remotes effectively break the Signal pattern, so the only thing you should be doing with them is :Connect()ing exactly one listener.
If a language benchmark requires sacrificing readability to achieve performance, then it isn’t an accurate measurement of the language.
Wrote a script to display luau --coverage
in a readable format.
Polyfill for Roblox’s task library. Useful for standalone Luau.
https://github.com/Anaminus/roblox-library/tree/master/modules/TaskPolyfill
Fun idea: A protocol that programs can implement to allow their plugins to be managed by the system’s package manager.
What tests the testing framework?
Luau:
> Barges into output
> 'Type { @metatable Foo, { } }' could not be converted into 'Foo'
> Refuses to elaborate further
> Leaves
What is the name of the thing I am doing here?
Best answer: Cartesian product
thinkin bout tests n benchmarks
Experimental library for lifetime management and value scoping.
https://github.com/Anaminus/roblox-library/tree/master/modules/Scope
.git/info/exclude
lets you gitignore things locally without modifying a
.gitignore that exists remotely.
Function to connect a listener to a signal serially. task.cancel continues to be MVP.
If downtime is inevitable, then it might as well be on schedule.