CMT2300A-EQR HopeRF Micro-electronics $1.291 - 300Kbps ISM 127MHz~1.02GHz 433.92MHz SPI QFN-16-EP(3x3) RF Transceiver ICs ROHS datasheet, price, inventory C192930
#đ˝Programming Chat v2
1 messages ¡ Page 21 of 1
THERE IS???
advertisers will stop at nothing
neat
oh the name is CMT2300A
So hiragana ă˛ăă㪠are native Japanese characters that map directly to the sounds you make when speaking
Katakana ăŤăżăŤă are also native Japanese characters but are used for things like loan words, sometimes for emphasis, and a few other things. Theyâre basically hiragana but written differently as far as sound and meaning
Kanji 柢ĺ are adapted from Chinese because China was a major superpower and influenced all the countries around it. Itâs also quite commonly used for words and stuff and honestly helps break up sentences visually for scanning. Like in Chinese, each character is a pictogram and has its own meaning. The âadaptationâ comes from the fact that they donât use the exact Chinese readings but instead map the readings to sounds in hiragana
wait what'd you read as the name
oh ok kanji is the one that looks like chinese
theres usually a few sprinkled in a sentence
so I can guess at the meaning sometimes
its usually similar!
(I think)
You had it almost correct, romaji is the term used for typing Japanese using Roman (English) characters
the ultra low power sub 1ghz transmitter
I was like wow kinda long and generic
interestingly it should say transceiver
ough
wait so I get that they're for different things but why not just stick with 1?
isn't it more complicated to have all 3
chinese does fine with 1
or well, I guess we have traditional but đ¤ˇââď¸
Yeah because Kanji were adopted from the Han dynasty, the actual stroke order and meanings for the characters have drifted a little between Japanese and Chinese
I couldnât tell you this
I think kanji are older and weaseled their way in because of China
I FORGOT ABOUT KATAKANA 
And then for some reason they wanted a syllabic script as well
god i swear youtube is just getting worse
@spare quartz looks like its just a long spec sheet for the IC
50/50 the playback is just broken
alr thx
Yeah
oh ok
huh
is there stroke order
in japanese
when writing
pretty sure there is
we need someone whos korean here now
it just seems complicated
then we can fill CJK
At least Japanese doesnât have 4 tones that can change the meaning of words
I mean thereâs pitch accent that can really help with understanding when speaking
But I donât think itâs as necessary to meaning as the tones are in Chinese
But hey at least neither are Vietnamese
oh huh
im just glad we got simplified
traditional looks like a whole different hell
I know a guy who knows Cantonese
cool
And yeah
I never picked up anything
He says itâs harder lmaooo
lol yea
whats cantonese again
He says the benefit though is that every character has a unique sound so you donât end up with homophones
i know its chinese adjacent but i got no ideda what it is
I lived in shanghai for a long time but never picked up the uhhh dialect or whatever
Itâs the old Chinese
ah
Mandarin is the simplified Chinese
yea except all the sounds are completely different
yippppppeeeee
also this, that'd be cool if not for the fact I don't think these 3 really like each other
actually idk how korea feels towards jap tbh
but I know china has interesting relations with both korea and jap

ic ic
what phone do u have atpâŚ
iphone se 2nd generation
i cant even listen tot his đ
I got a really cheap pixel off of eBay for Christmas tho
so now I get to play with android
iPhone SE 3rd gen đŞ
iphone se 4th gen
iPhone 17 Air :3
didnt they stop changing iphones since the x
wow
the 3rd gen looks identical to the 2nd gen
only difference is the addition of 5G support
wait it also has glonass
They made the notch into the âDynamic Islandâ on the iPhone 14+
is that it
Other than internals and cameras yeah pretty much
Well
iPhone 16 they added a stupid camera button
at this point they should just make modular phones
iPhone 15+ I think they changed the little ringer mute switch into a programmable button
I think 16 or maybe 15+ are usbc
Man why couldnât the lightning connector have been the popular one
Isnât it more durable than usbc
Because usbc has the prong on the inside
PD?
USB power delivery
Iâm talking about the actual physical design of the connector though
I meanâŚyou can charge your devices with a lightning connector if thatâs what you mean
yeah but PD allows for variable voltage
lemme get the pinouts
lightning on top, c on bottom
(EH pin is just the receptacle housing)
Yeah idk
I just wish the physical design of the lightning connector got popular
All it needed was more pins and for Apple to not have invented it/make it not proprietary
We need the 30-pin connector back
the one on old ipads and stuff?
Yea lol
mm idk
if they made improvements to how it latched then maybe sure
but everytime i used it the connection was flimsy
Obviously Iâm not being serious that charger sucked
better idea
yessss
the old macbook magsafe charger was great too
unironically great
They cooked with that 90deg connector too
it was a little heavy sometimes though
for sockets that didn't secure great sometimes it fell out
Thatâs cause the brick was yuuuuge
oh of course
ďźźăăŁăąăăăăŽăŻăľă¤ăłăź!ďź
ăă弽ăăŤăăăăăăăăćşçšăŽéťćł˘ă˝ăłă°ă§ăăĺ ¨ĺă§ăăăăăăżăăśăŁčžźăă 漽ć˛ăŤăŞăăžăăăçľčŤăżăăŞăľă¤ăłăźăăăâŚďź(âťăăżăžăăăäşşéăăŁăŠăăąă˘ăăăăŁăŠă弽ăă§ă)掴ăăŞăă°ăłăă掴ăŁăŚăă ăăă
âźăăŚăłăăźăç貊売ä¸âďźInstéłćşăăďź
https://kemobayashi.booth.pm/items/6092280
âźĺé
俥ăľăźăăšâ
https://linkco.re/dZNYyHVG
âVocal / Movie/ illustration
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ă°ăăĄăă
@BAYACHAO
âMusic
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
MOSAIC.WAV
@MOSAICW...
this video plays fine but nothing else does
I dislike how the old chargers had the bricks and cables welded as one, so if one broke you had to replace all of it for like $80
Says the Python programmer
whats python
hey whre am i
YOU'RE not supposed to be here
Hey where am I
you weren't submitted on the vip form
LOL
The what
the form you submit
for getting a vip seat
i COULD add you but ask speedy first or something
Oh eh idc
You should add me so I can invade
no. you're already in light inc or whatever
Isnât it bbi as a whole
i dunno
Ur making the event vro
why am i not there đ
This should do
do you wanna be on the list/has a directorate authorized you
(again the form passed to the people who made this list hadn't included either of you so..)
What is this
true security
hey guys
i got my first pico today
im currently abusing an rgb led and i broke a cable
update
rgb leds
gfive you flash blindness
pi pico?
yea
tbh the only reason i'm not using a pico for my projects is that it's programmed in py
and getting it to work with c++ could have issues
im planning to get ada on it after testing out my lcd
thankfully someones done it for me https://pico-doc.synack.me/
as atp does
đ§
you're like a rust user except ada
nuhuh......
totally not...
i2c beating my ass
Good
no.
using chatgpt pains me
but i got working code without a library finally
Just use a library đŁď¸đĽ
ada đ
didn't you say durign the event.. every tp is a line of ada written
đď¸
ăă˘ăă
ăă¤ăăĄ
ăăŚăă˘
ăă¨ăă¤
ăťăŞăăŚ
ă˛ăŤăă¨
ăăăăŠ
ăŁăŻă¨ăŞ
ăĽăąăăŤ
ă§ăłăăŹ
ăŠăľăă
ăŁăˇăăŻ
ăĽăšăăł
more below that I can't read
yeah so that was what
4 tps?
4 lines.
ok but I didn't say those were included
booooringggggg
I'll give you 5 lines for the initial request speedy made to get me tp'd
with Ada.Text_IO;
procedure Die is
begin
Ada.Text_IO.Put_Line ("ăĺăŻăăćťăă§ăăă");
end Die;
there's your 5 lines.
ä˝ďźďź
im spending too much time playing with the rangefinder
not related to what i originally said but
ugh you have to run so many things to publish it to a git remote
holy shitttttt
this doc is actually SUPER useful
the pi nano is the place i least expected ada to be great at but turns out the HAL they have is great
one word
runners
as for this
you can just do
export function bblahbk()
-- x 1 2 44 2 3 55 66 3 1 x
local a = { { { {} }, { {}, {} } } }
local d = {}
function b(t, o, i)
o[i] = (o[i] or 0) + #t
for _, e in pairs(t) do
b(e, o, i + 1)
end
end
b(a, d, 1)
local po = 0
for _, e in pairs(d) do
local agrt = ""
for i = po + 1, po + e do
agrt = agrt .. tostring(i) .. ' '
end
po = po + e
print(agrt)
end
stupid thing i wrote since i saw this tweet
it do work with varied input suprisingly
why are your variable names already obfuscated đ
thats just how i write them temp đ
d = data
a, b = <temp>
t = table
o = output
i = index
e = entry
po = offset
agrt = aggregate
someone needs to investigate these universities.
because we can't do something we will NEVER do in our jobs?
honestly it's a really simple programming problem, but i'm not sure if the issue of people not knowing how to program is understated or overstated
oh i saw that
I don't get his point
That trivial solution works fine for encoding any string that doesn't contain numbers
That problem doesn't exist no matter how many times it repeats
If you were to include numbers then you can just use an escape char like regex or anything else
\c for the literal char, and \\ would be a literal \
NEW TYPESCRIPT PROGRAMMER IIBRIGHT2676 REPORTING FOR DUTY
if we're just going about the naive solution
then just make the repetition count fixed length (i.e. a byte or a short before each char) OR add a \0 OR save the repetition counts in a separate block entirely
as for the problem of delimiting that's not the compression algorithms job to diffrentiate
local source = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBB1111CCCDD"
local drain = ""
function lossless(source)
local lastIndex, lastChar = 0, nil
local out = { count = {}, chars = {} }
for i = 1, #source do
local c = string.sub(source, i, i)
if c ~= lastChar then
lastChar, lastIndex = c, lastIndex + 1
out.count[lastIndex] = 1
out.chars[lastIndex] = c
else
out.count[lastIndex] = out.count[lastIndex] + 1
if out.count[lastIndex] == 255 then
lastChar = nil
end
end
end
local drain = ""
for i, count in pairs(out.count) do
drain = drain .. string.char(count)
end
for i, c in pairs(out.chars) do
drain = drain .. c
end
return drain
end
print("Source :", #source)
print(" - \"" .. source .. '"')
drain = lossless(source)
print("Drain :", #drain)
print(" - \"" .. drain .. '"')
blocked naive compression
or, well, actually
you technically don't need the \0 to separate the block from the chars
since block size = chars size
aahhahah and that guy just used the output frrom gpt
@spare quartz thoughts on ktor
the kotlin web thing?
ye
i used it like once
it's okay i think
very flexible
unsure about performance thouggh
well it seems like an actual proper framework so Iâm sure performance is less than like rawdogging tcp sockets
well i meant like
when i messed around with it some requests took forever
but i was probably setting it up wrong
rn im kinda just rotating a servo with my hands
Iâm poking around with it right now for a potential QDF api rewrite and it seems kinda nice with these plugins for stuff like task management
i would say basic_http_server but like
the plan i have for that is just "port redirection" đ
Iâm writing this with two other people
We did Kotlin over Rust for ease of everything
Ainât no way ima make them use Ada
đ
extensible_http is the library underlying basic_http_server but its essentially what you said: raw tcp
uhh, hope you enjoy kotlin though
I am a rust user yes
I mean at least Kotlin enforces nullable types and whatnot
Still prefer Option but itâs good enough
kinda
ExceptionsâŚâŚeh
well
in kotlins eyes, everything sent to and from java has a ! at the end of its type
like say Int!
oh cringe
if where it came from isnt annotated with @Nullable or @NotNull
kotlin will compile as if it's not null
even though it may very well be null
so... be careful
Will keep in mind if I interface directly with Java
But I think we can get by with pure Kotlin
if you cocerce it into a kotlin type like say uh
val example: Int = javaInt()
kotlin will take care of null checks for you though
neat
oh and i know im kinda spouting a lot though but like
assuming you're using intellij take a good look at your settings for inpection, code style, compiler, etc...
intellij is very descript with what you can do with it/how you write with it
Yeah
oh yeah aera
i might take you up on that language server thing
i kinda wanna use intellij for ada/lua stuff instead of (bleh) rojo
there has been for a while
in vscode atleast
intellij
dewit
OK...............................................................................
but you have to write a jvm in response
-# /s :3
ohboy
okay so
helping another project with their lua and (since they use rojo and a bunch of other stuff)
i took a look at the language use in each github project
notably every single one i saw had rust along with ts in it
and im just thinking like
are ALL roblox dev apps just js users switching to rust??
Based
eugh rojo
yeah rojo is writteni n rust
like every single program is for roblox dev and i have no idea how
Based
Rojo is gross though
Why are you adding some git bullshit on top of Roblox studio when you can just use studio and "version" your changes by either writing down what you did or using "Save to Roblox"
I used rojo once
The world's clunkiest experience
It's just so unnecessary and doesn't integrate smoothly at all
additionally
every single one of them use the same command line library (afaik)
minor differences but
yeah it's probably clap
I mean usually there's some variance but generally if you're looking for something there's like 1-2 good libraries
sometimes more
but normally set of ones that are good and actively maintained is small
i wont argue that this is a bad thing (in ada we really only have Ada.Comand_Line and GNAT.Command_Line which are sufficient)
but its just so surprising to see they're all almost identical from the outside
(ex.)
wonder what adacores formatter looks like
oh yeah darklua devs
PLEASE make a -k arg
i dislike the 500 errors it prints out in every single file it fails to convert
waow
Git is objectively better at version control, so i think there's at least some validity there
My main reason for using it is for vscode support
Not having to launch studio to work on stuff is nice
Especially when you're on a laptop
ok but like
you're gonna want to test your shit
and you have to be in studio to test your shit
Not really
mm yeah really
There's automated testing if you really want, and otherwise the typechecker is usually good enough to guarantee correctness
scripts that don't interact with the workspace or anything else in a roblox place are basically nonexistent
p. .s
Then I'd argue you're writing your code wrong
But scripts that interact with the datamodel are testable too

ig this is true
do i remove the dbug todo
but inevitably you're gonna call a function that tries to workspace.something
Up to u
also verify your comm its
That's a lot of work
nuh
dude in what world do you spin up roblox just to write code that doesnt interact with the workspace at all
unless you mean signing already made commits
unless you're atp and writing a jvm
Right, but keep datamodel interactions explicitly separate from logic. You do all the work in an ecs world and then reconcile it with the datamodel separately
ecs internals
Essentially the goal is that you can very explicitly test behavior of the ecs world separate from the roblox datamodel
You can also test end to end using open cloud if you really wanted
đ
Chill on the
Complication, its not actually that bad
As in, if your project is fully managed by rojo, it can build the rbxl of it in CI and run the place in studio completely in the cloud
Kinda cool stuff, I don't think it's worth it for most projects though
I mean setting up signing in general
Oh
me when I'm logged in with a different email than my gpg key so all my commits show up as unverified
the humble retroactive signing w/ interactive rebase and git push force đ
is there any way to even like
same gpg key different email
cause I really don't want a third gpg key for bbi
Make initial commit and just keep amending it with new changes đ
linux kernel in 1 commit ez
Fr
unsure
Don't think so
They're tied to email on creation iirc
ugh cringe
all programmers should sign or be faced with stalin sort
Whoever impersonating me would probably write better code anyway
Stalin sort??
Also to this point, how was it clunky?
I find its mostly ok nowadays
Only gripe is it not actually killing its subprocess under vsc when I ctrl-c it
Idk it just seemed to never want to sync to studio quite right
I used it years ago
So it's probably gotten better
You can't really compare them too well
Ecs is primarily used for games
I didn't think so
Mvc/mvvm is mostly related to presenting UI
Although they all try to reduce the coupling needed in doing what they want
I have only ever touched MVC/MVVM for one class lmao
kinda weird to understand at least for me
same
probably because I mostly do backend and embedded
im just a smarter search and replace rn though
Arent we all
It's distinctly different from oop but also shares similarities
It's much much more data oriented
It's seems like you'd use OOP as a means to an ECS
oop can facilitate ecs yeah
like entities would be classes, components would be interfaces
Kinda? The data is structured differently
And thus makes behavior more easily composeable
...
huh
i just remembered an old project i made in neco
lemme try to find it, some type of ecs-like system i came up with
The main benefit I've encountered is just how decoupled everything gets
some old code but ill just send the model here
I can share some once I'm on my laptop
AHHH ATTRIBUTES
Evil code that uses attributes 
They fumbled attributes tbh. Could've been great
yeah this code uses attributes for local state a lot
e.g.
Seems like ECS systems use loops a lot
in AnnunciatorElement
Inefficient...
Iâm personally a huge subscriber to âevent-orientedâ programming
no pun intended
Systems can run every frame (most do)
i do the same
Ita not inefficient in any way though
Event-based
> look inside
> while loop long polling
> look inside
> giant array
> for _, v in array do v(...) end
LOL
ok but likeâŚ.if the events are implemented in an engine id imagine its more efficient
Not necessarily. Every operation in the ecs library I use on roblox (ecr) is faster than it's equivalent table operation
For example world:get() is faster than table[key]
you shouldn't be saying this as a rust user
your language is a library
And world:set() is faster than table[key] = value
how does world:get() work
So is yours smh
I donât see you writing directly to stdout
reads an index in a contiguous array
they're present in all environments but idk how that translates since not all of them have stdouts
I think Iâm getting to the point of not using libraries until I decently understand whatâs going on underneath though
I think that's a fine argument to make
Thereâs some exceptions like a Discord lib which in essence is a wrapper around a http client but
oh, its faster than dictionary reads?
A discord library is also giant
But i could also argue i use libraries because I dont want to understand how it works
Thatâs also fair
Yep. No cache misses
i just enjoy writing libraries even if i already know how they work
I definitely shy away from libraries in Nix though because I donât want to be reliant on them in case I have to do some shit myself
A combination of that and normal arrays yeah
neat
Harry have you ever heard of Nix
No i get that, just sometimes I want to write feature code not library code for 2 years first
Itâs a curse but you canât go back once you see the light
(or 1 day!)
Is it that one venv that can do everything or something
1 day is 1 day
iirc its like you turned a TOML config into a linux distro
Huh
Kinda yeah? Itâs a package manager built around solving the dependency hell problem by having each package pull its own specific dependency versions instead of relying on shared libraries
What this enables is programmatically-defined reproducible builds
And NixOS extends that idea to the entire OS
You can also make devshells which is probably the venv idea you were referencing
Virtual environment
little encapsulated envrionments you download libraries and binaries to to use for one project
oh my god i cann ot see
{ pkgs ? import <nixpkgs> {}
, stdenv ? pkgs.stdenv
, autoPatchelfHook ? pkgs.autoPatchelfHook
, fetchzip ? pkgs.fetchzip
}:
stdenv.mkDerivation {
name = "gprbuild-myself";
version = "22.0.1";
src = fetchzip {
url = "https://github.com/alire-project/GNAT-FSF-builds/releases/download/gprbuild-24.0.0-2/gprbuild-x86_64-linux-24.0.0-2.tar.gz";
hash = "sha256-CvUz3UpZw07RoFrA3k8dYc8KUOhN610LlYn0UW43k24=";
};
buildInputs = with pkgs; [ glibc gnat ];
nativeBuildInputs = [ autoPatchelfHook ];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp bin/gprbuild $out/bin
runHook postInstall
'';
}
Like for example
This makes gprbuild
{
description = "Ada agony";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
outputs = { self, nixpkgs }:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
gnat_external = pkgs.gnat14;
in {
devShells.${system}.default = pkgs.mkShell {
packages = with pkgs; [ alire gnat13Packages.gprbuild glibc ]
++ [ gnat_external ];
shellHook = ''
alr toolchain --local --select gnat_external=${gnat_external.version} gprbuild=18.0.0
export PS1="\[\e[1;32m\][\u@\h:\w]\$\[\e[0;0m\] "
'';
}
};
}
This is a development environment for ada
And if you have Nix (and an x86_64-linux system because I was too lazy to add support for more but itâs easily doable) then you can just use either of these
@rustic vine
wait
is this based off of JSON
idk tbh
Itâs its own DSL also called Nix
Idk where Dolstra (the guy who made it all in a graduate thesis) got the inspo from
Which is kinda ehhh, unlike Guix which was inspired from Nix but uses GNU Guile which its its own programming language
So in theory you can use Guile for stuff other than Guix
I went to grab lunch mb
oh hm, interesting. I know I used to use repl.it and they switched to nix/nixos? for everything essentially
probably, that makes sense
huh. I don't quite get whats the advantage of doing this? you still end up pulling a release from somewhere eventually down the line no?
is it just so you get extremely fine grained control over what exactly fetching/installing a dependency does?
contrary to like a more, dare I say, "feature complete" package manager that attempts to do a lot of things for you?
Yeah you do but with the inputs.nixpkgs.url you can specify the exact point at which to pull from Nixpkgs
And yeah replit uses nix under the hood
Oh well that example you replied to isnât a flake so it just uses your systemâs current Nixpkgs version
Thereâs this weird divide between âflakesâ and ânon-flakesâ right now because flakes are technically an experimental feature but were kinda pushed for wider use and a lot of people have adopted them because they let you control what specific versions of things like Nixpkgs to use
Nix is still a package manager and still does a lot for you but the entire draw is reproducibility because you can take a Nix file and get the same output anywhere with Nix, basically no more âit works on my machineâ problem
ok but docker
who needs nix
when I can just ship my machine
oh alr
I would react to this with a đ but I can't react
terrible news
Because nix doesnât virtualize
promote this man rn
admin abuse
Nix gives you native binaries
just like alire!!!!
Docker also isnât a complete âit works on my machineâ solution especially if youâre using like a debian or alpine container and using the package manager in them
You could also be using a :latest container and get problems there
why did replit have to lower their free specs so much smh
They kinda solve different problems
Idk
https://cdn.clipake.me/u/bOtGC5.png like i didnt even use it that much
replit is the platform where you can run things in the cloud right
Yea
how is ai literally everywhere
stakeholderes like them
this is NOT an ad for Stake đ ââď¸ gambling is prohibited!
omg
const Discord = require('discord.js')
const {Client} = Discord
const client = new Client();
//Phrases that set off thog.
const triggers = [
'who',
'what',
'where',
'when',
'why',
'?',
'thog'
]
const express = require('express');
const app = express();
const port = 3000;
//get app
app.get('/', (req, res) => res.send('Bot online!'));
//begin server
app.listen(port, () => console.log(`App is listening at http://localhost:${port}`));
//Have thog do his thing
client.on('message', (msg) => {
//Scan messages for triggers
for (let i=0; i<triggers.length; i++) {
if (msg.content.toLowerCase().includes(triggers[i])) {
if (msg.author.id != '997000278198984745')
if (Math.floor(Math.random() * 30) == 5){
msg.channel.send('thog dont caare')
return
}
}
}
})
//Sign in
client.login(process.env.BotToken)
i love thog
Alire is specifically for Ada though, Nix can be used for anything
i knowww
oh the woes of localized services đ
hm
i should check if theres a gnat-14 windows compiler out yet
gnat_14 is on Nix :3
ughuguuhgh
its so frustrating
i just wish i knew how to build gcc without it like
erroring and making binaries that don't even work
Too bad Nix isnât available on Windows or you could cross compile with that :3
Though cross compiling with Nix is kinda aids
Just like it is without nix
lame
Now compile gprbuild and gnat with that
And use those to compile your project
oracle free tier absolutely cracked
gprconfig isnt reporting ada...
I've been using it forever
hopefully its fine
they give u like 2 vcpus
yeah if youâre able to get a server on it
wdym able to?
You talking about the Arm ones?
yes
Those are like constantly unavailable
Thereâs like a whole thing for monitoring when one gets freed and taking it automatically
damn alright
at work we had everything on aws so I touched that a lot
well.. everything*
everything except for 1 LOL
there was 1 still running on some I don't even know windows server
somewhere someplace
hold this
JUST USE C(++)!!!!!
Just use gprbuild directly stoopid
Not finding it when you know where it is
this is a gprconfig issue
oh uh
stoopid
Use gnat directly then
Or just like make windows vm and build there
i dont get it though
how is cros compiling to a developed os like windows or mac
1000x harder than like
a pi
@timid quartz heres an example of a button system (on the server), theres prob a lot going on but you're welcome to ask
this is completely testable on its own and doesn't rely on the datamodel at all
ay man
you gotta do what you gotta do
Interesting
Yknow you can like click the + and do âsend message as fileâ right
At least on desktop
oh
no, I didn't know
This doesnât feel like it would scale well
đ
why not?
Like if you have hundreds of buttons
Your :iter() is gonna take so long
nope
Hundreds or even thousands
what the shit
lol
if you were to just do that with a for itâd take so long
(i'd know, the game draws entire images with them at game start :3)
(but ricard hasn't id verified so they're useless)
LOL
evil code that does evil things
well duh itâs the stuff it does
But even if you have tasks inside that take like 2ms, over 500 items that adds up to 1 whole second
but yeah idk if you saw this but
world:get() is faster than table[key]
world:set() is faster than table[key] = value
and more
every single ecr (the ecs library) operation is faster than its equivalent table operation, while using less memory
sure, but to that, just write better code
And then there are nested for loops in that
Which is even worse
This is literally O(n^2)
in what
wdym in what
Oh wait I misread
The script
Still itâs not great to have like 5 sequential loops
Thereâs a way you could mush that into one loop
there is, yea
but theres not really a reason to
maybe save you say 5 us
luau is awesome in that the most idiomatic code is typically the fastest
the loops query different components anyway, so its not a big deal
their overlap isn't big I don't think
Still worst case your :exclude could not exclude anything
Like sure you could amortize it but
thats fine
the only stuff in the loop is like
an if statement, a fastcall, and then registry calls
those are insanely fast
I think its easy to be skeptic of code that runs every frame because it feels like wasted compute, but its really not that much different (or in any way always worse performing) than event driven code
Editableimage moment !!
Theyâre really cool tho
hold on im trying to furrify an icon
What.

Uh well in the context of computer science some algorithm's runtime could be said to be amortized
So like in the beginning it may be inefficient but as it keeps running it gradually gets better
Or like kinda
basically "on average" it's something
So like the runtime for appending to an ArrayList is amortized to O(1) because most of the time you can just slap the new value right at the end
but every now and then you'll need to incur an O(n) resize
so it's not entirely O(1) but you can "amortize" it to basically say "yeah most of the time it's O(1)"
oh
so thats how they make those funny big Os for algorithms
a lot of stuff i write i cant figure out the complexity of cause they're usually quite variable
Ehh kinda, you usually can't or don't amortize
Big-O is the worst-case runtime for an algorithm and it's defined in terms of the inputs
O(1) is constant time, meaning the algorithm takes the same number of steps no matter how large the input
O(n) is linear time, meaning that the number of steps increases linearly with the input size; think of a for loop
O(n^k) is polynomial time; think of nested for loops
Thereâs more but thatâs the gist
Obviously lower Big-O is better, so like O(n) is better than O(n^k)
So really the way that you come up with a Big-O for an algorithm is by analyzing what it does
Alternatively you just profile n benchmark it đ
Happy new year btw yall
On the topic of time complexity though, sparse sets are the most goated datastructure known to man
Sparse sets are
O(1) add
O(1) remove
O(1) contains
O(1) clear
O(n) iteration
AND Contiguous in memory
but isnât that the same as a hashmap with a goated hash function
well ig clear would be O(n) but
Yeah clear would be O(n) and also it wouldn't be contiguous in memory so iteration will incur more cache misses
đ
theoretically if you avoided fragmentation you could do it in O(1) by deallocating memory
oops misread
đźđźđź
yeah pip is kinda shit
I remember downloading that tensorflow ai shit
my internet kept giving a single bad packet for each gigabytea nd it restarted the entire downlooad each time
heey soo
im FINALLY putting in the effort to learn LUA
i have some notes written down
@spare quartz do you know lua?
i can show you my notes
see if they're good
- don't use wait, use task.wait
- don't use game.Workspace, use workspace
- don't define variables without
local - don't define functions without
local - ideally save the output of FindFirstChild to a variable and refer to it if it exists
Alright
so how would i go about that last note
local Humanoid = hit.Parent:FindFirstChild("Humanoid")
if not (Humanoid and Humanoid:IsA("Humanoid")) then return end
...
or
local Humanoid = hit.Parent:FindFirstChild("Humanoid")
if Humanoid and Humanoid:IsA("Humanoid") then
...
end
ill be streaming some random dvelopment and just general playing around in vc
if you wanna join
doing ar t
alr
hey why isnt this working
so
in the last if statement
its meant to set it to that position if the variable position = 0
but its not doing anything
is script.Parent anchroed
well then its gonna offset the opsition not set it
oh đ
Soooo
Making a part turned into a little project
I made a stupid squid game obby â ď¸
It's so scummy and stupid
But I had nothing else to do
Soon, you shall find out, atp defined a global function not even a week ago 
Hindsightâs 20/20 bub
Oh you haven't updated? They dropped 2025 already
what's the diff between wait and task.wait
Developer Forum | Roblox
This was taken straight from: Task Library - Now Available! task.wait() yields the current thread until the given duration (in seconds) has elapsed and then resumes the thread on the next Heartbeat step. task.wait(5) ... If no duration is given the duration will default to zero meaning the thread will automatically resume on the next step. t...
video above also helps
in that post
also wait() is officially deprecated
_G â¤ď¸
KillâŚ
_G is only good if you are like checking if something has been already ran somewhere else
if not _G.ThingDidTheThing then
_G.DoTheThing()
end
Or just return
I'd argue that you shouldn't use it at all, in any situation
There's always a better solution than using _G or shared
I use _G for like one script I paste into the dev console lol
_G.ThingRunning = true;
while true do
if not _G.ThingRunning then break end;
-- ...
end
so I can control when to stop it
Oh yeah, dev console and command bar is a different story
I said that in the context of anything else
Yeah
Yeah that too
can we ban this guy
what is your primary programming lang anyways
rn i mostly do luau
; :<
mmmm ok
thereâs so many Cats on my phone I canât send any

fun main(args: Array<String>) {
io.ktor.server.netty.EngineMain.main(args)
}
fun Application.module() {
install(ApiKeyMiddleware)
install(Resources)
install(ContentNegotiation) {
json(Json {
prettyPrint = true
isLenient = true
ignoreUnknownKeys = true
})
}
install(StatusPages) {
exception<Throwable> { call, cause ->
if (cause is BadRequestException) {
call.respond(
HttpStatusCode.BadRequest,
ErrorResponse(message = "Bad request")
)
} else {
println("!! SERVER ERROR - ${call.request.uri}")
cause.printStackTrace()
call.respond(
HttpStatusCode.InternalServerError,
"Internal Server Error"
)
}
}
}
setupDataRoutes()
}
val ApiKeyMiddleware = createApplicationPlugin("ApiKeyMiddleware") {
onCall { call ->
val sentKey = call.request.headers["Authorization"]
val storedKey = when(call.request.httpMethod) {
HttpMethod.Get -> "mygetkey"
HttpMethod.Post -> "mypostkey"
else -> null
}
if (sentKey == null || sentKey != storedKey) {
call.respond(
HttpStatusCode.Forbidden,
ErrorResponse(message = "Invalid Authorization")
)
return@onCall
}
}
}
Are you writing ktor
yeah
SIGHHH
I still wanted to try ktor though
also the sent key == null down there is redundant in that if statement
ur redundant...
Ada will make a comeback some day
I foresee it
yeah cause itâs full of thigh highsâŚ
anyways
Is it bad I kinda dislike C pushers a ton now
like sure im âon their sideâ since they make fun of rust but like
bro your langauge is actually terrible.
zig
on: reordering structs
crying with GNAT rn⌠he can do literally all of that while maintaining programmer controlled representation:<
me when I just #[repr(C)]
Ada users when the Pack, representation clause, Size, Alignment and Export => C come in
#[repr(C)]
struct MyStruct {
field1: i8,
field2: i8,
field3: u16
}
Iâm not writing the Ada equal since making a strict clause is so hard on mobile
for X use record
field1 at 0 use 0 .. 7;
âŚ.
end record;
but something f like that
the ada equivalent is just
with Interfaces; use Interfaces;
record MyRecord is
Field1 : Signed_8;
Field2 : Signed_8;
Field3 : Unsigned_16;
end MyRecord with Pack;
that's what I'd imagine
and Export => C if you really want
I donât know if Pack definitely tells the compiler not to reorder though
Itâs just a flag saying âoptimize this for space over perf**â
Well that just makes it visible to C, Import => C might
Representation clauses are the definitive answer to anything memory related though
well guess what
This is the most important repr. It has fairly simple intent: do what C does. The order, size, and alignment of fields is exactly what you would expect from C or C++.
:3
(for #[repr(C)])
At that point
#[write_qdf_bot(for_me)]
So easy
lel
The compiler will not (and is not allowed by the Standard to) generate an atomic increment instruction to directly increment and update from memory the variable A.
#shorts
Please check out the full video on Armadillo's channel here: https://www.youtube.com/watch?v=ZwdSmSrqObs&t=1423s
(or just look up "Minecraft bitcoin")
Credits:
@soundtomb9650 and @Armadillo28 for their insane work on the miner and all shots of the miner in this video
Make like a simple capture the flag or something game mode
bob the builder the killer
TIL
ada (apparently) handles segfaults by itself
so they're not reported in the windows logs
YOOOOO
IT ACCEPTED MY CLASS
:despair:
WHAT IS BRO DOING 30k print ("hi wrld") LUA IS TRASH!!!!!
Isn't the a create window function that's way easier to use than whatever the fuck that is
Hell yeah
@lyric mesa @wheat zinc @spare quartz fish shell being rewritten in rust đł https://www.phoronix.com/news/Fish-Shell-Rust-Challenges
I use to use fish but idk why I stopped
Oh yeah I couldn't get color in sudo with it
Oh thatâs odd
Fish
The âpointersâ for each parameter needed in a function are given using the 'Address aspect
The bindings I wrote myself though
for the rust programmers here, do you guys have a specific IDE that you recommend i use for rust programming
i was thinking rustrover but i don't feel like moving to enterprise software until i at the very least get a basic grasp of how rust works
VSC?
notepad