#💽Programming Chat v2

1 messages · Page 31 of 1

spare quartz
#

everything is bounded

timid quartz
#

Ada is an L lang

spare quartz
#

says the rustlet

#

ughhh

#

my manga still hasn't shipped :<<< i dont wanna wait

timid quartz
spare quartz
#

W for Wario

#

the evil mario

timid quartz
#

L for Luigi, the inferior side character

spare quartz
#

nah

#

luigi isnt inferior

timid quartz
#

Always living in the shadow of something better

spare quartz
#

hes just not as popular

#

he can jump higher than mario

timid quartz
#

He’s also green

#

Which is an icky color

spare quartz
#

LIKE ADA

#

🏆

timid quartz
#

You know what else is green

#

🤢

spare quartz
#

your role color

#

lmao

#

ada ass role :Sob:

timid quartz
#

Lame ass language

#

Go back to Kotlin

spare quartz
#

ill stick to both thank you very much

#

but im helping someone with their js rn

timid quartz
#

What if I petition Mr Trump to get rid of Ada

spare quartz
#

ada is multinational so that doesnt matter

#

we got offices in paris

#

and our specification is with russia and the french

timid quartz
#

Ew Russia 🤢

spare quartz
#

shh

timid quartz
#

Psyop language

spare quartz
#

😭

timid quartz
#

KGB language

#

Spy language

spare quartz
timid quartz
#

I bet you’re a KGB agent

spare quartz
#

NOT KGB

#

we hate go 🔥

timid quartz
#

Go is good

spare quartz
#

go for gohome..

timid quartz
#

Stop using your dead boomer fakelang and modernize

spare quartz
#

i do taht with kotlin 💔

timid quartz
#

You still use Ada though

#

Stop it

spare quartz
#

cause its good

#

and still maintained

#

they updated the copyrights on the github to 2025

timid quartz
#

Rust is literally better in every way

#

Source I said so

spare quartz
#

how

#

okay maam

timid quartz
#

Checkmate liberal

spare quartz
#

trump unveiling rust

timid quartz
#

Trump unveiling more ada*

spare quartz
#

he probably doesn't even know we exist 😭😭

timid quartz
spare quartz
#

ゴー・トゥ・大都会 / coverばびお【歌ってみた】

spare quartz
timid quartz
#

Since rust does automatic management it doesn’t

#

Or not as easily

spare quartz
#

omggg

#

literally ada

#

😭

#

all i needed to fix the leaks was a .Free on two lines

timid quartz
#

Nuh uh Ada can’t manage access types automatically

#

But rust can

#

:33

spare quartz
#

you don't even have a parallel to tehm 😭

timid quartz
#

We also have zero cost abstractions 🤑

spare quartz
#

WE DO TOO

timid quartz
#

Nuh uh

timid quartz
spare quartz
#

attributes!!! !!!

spare quartz
#

those are 100% automated by the compiler

timid quartz
spare quartz
#

i mean discrete pointers

spare quartz
#

because a functional attribute is quite literally what you're about to say

timid quartz
#

Basically any way that you could write code doesn’t have an impact on speed

spare quartz
#

ATTRIBUTES

#

YES

timid quartz
#

No!!

#

So like for example

#

In JavaScript, Array.map could perform differently than doing a for loop

#

But in Rust, both .map and a for loop compile to the same stuff

#

So it’s literally 0 cost

spare quartz
#

yes we have that

timid quartz
#

Nuh uh

spare quartz
#

attributes, again (AOP on top)

#

and Ada 2022

#

AOP is stupidly powerful

timid quartz
#

Also ur threading model is weird af

spare quartz
#

kinda true

#

but i like it

timid quartz
#

Anyways let’s tally the points

#

Rust: 1 billion
Ada: -2

#

Rust wins

spare quartz
#

counterpoint

#

rust is for use by gay femboys

#

ada is for use by chad 80 year old devs

timid quartz
#

Counter counterpoint

#

Ada is for use by geriatric old geezers who don’t understand how to navigate Facebook on their magic handheld bricks (their phones)

spare quartz
#

😭

timid quartz
#

Rust is for use by modern gigachads who want low level control and performance with high level abstractions and memory management

spare quartz
#

super counterpoint

#

bayachao reaction

timid quartz
#

Typical ada user ^

spare quartz
#

based

timid quartz
#

Cringe

spare quartz
#

idk

#

tell me how you can set an array anywhere in memory as rust

#

and have indexing/setting work perfectly

#

with full representation definability

timid quartz
#

Idk what the last part means but lemme pull smth up rq

spare quartz
timid quartz
#
use crate::gba::Color;
use crate::VID;

const START_DMA_ADDR: *mut usize = 0x04_000_0B0 as _;

const DMA_DST_INC: usize = 0 << 21;

const DMA_SRC_FXD: usize = 2 << 23;

const DMA_ON: usize = 1 << 31;

pub enum DmaChannel {
    ONE = 1,
    TWO = 2,
    THREE = 3,
}

pub struct DmaController {
    src: *mut usize,
    dst: *mut usize,
    cnt: *mut usize,
}

impl DmaController {
    pub unsafe fn new(channel: DmaChannel) -> Self {
        let base_address = (START_DMA_ADDR).add(channel as usize);

        Self {
            src: base_address,
            dst: base_address.add(1),
            cnt: base_address.add(2),
        }
    }

    pub unsafe fn draw_rect(
        &mut self,
        row: isize,
        col: isize,
        width: usize,
        height: usize,
        color: Color,
    ) {
        let color_as_usize = color as usize;
        let color_addr = core::ptr::addr_of!(color_as_usize) as usize;

        for current_row in 0..height {
            self.src.write_volatile(color_addr);
            self.dst
                .write_volatile(VID.add(240 * (current_row + row as usize) + col as usize) as _);
            self.cnt
                .write_volatile(width | DMA_ON | DMA_DST_INC | DMA_SRC_FXD);
        }
    }

    #[inline]
    pub unsafe fn draw_square_asm(&self, row: usize, col: usize, size: usize, color: Color) {
        for current_row in 0..size {
            core::arch::asm! {
                "str {in_addr}, [{src}]",
                "str {out_addr}, [{dst}]",
                "str {ctl}, [{cnt}]",
                in_addr = in(reg) &color,
                out_addr = in(reg) VID.add(240 * (row + current_row) + col),
                ctl = in(reg) size | DMA_ON | DMA_DST_INC | DMA_SRC_FXD,
                src = in(reg) self.src,
                dst = in(reg) self.dst,
                cnt = in(reg) self.cnt
            };
        }
    }
}
#

this is for the dma controller on a gameboy advance

#

and the dma control registers are an array

spare quartz
#

yeah you see

#

we don't have to do this part

#

we can just define an array to be at some System.Address with AOP

#

and use standard indexing

timid quartz
#

I mean what I've done here is basically that

spare quartz
#

are all of those Addresses

#

or the actual records

timid quartz
#

src dst and cnt are all *mut usize

#

and START_DMA_ADDR is also *mut usize

spare quartz
#
type DMA_Record is record
  Something : Integer;
end DMA_Record with Size => 32;

DMA : array (0 .. 3) of DMA_Record with Address => 16#040000B0#, Size => 128;
#

of course this isnt a perfect parallel to what you're doing

timid quartz
#

it's 0..3

spare quartz
#

but this is how i'd do that

#

ah

timid quartz
#

not 1..10

spare quartz
#

fixed

timid quartz
#

I wonder if ada could compile for a gba

spare quartz
#

(generally you also dont make anonymous array types like that either, but just for simplicity..)

timid quartz
#

so

#

figure it out

#

armv7 iirc

spare quartz
spare quartz
timid quartz
spare quartz
#

okay well

timid quartz
#

I know uh

spare quartz
#

we literally only have one hamster coding the entire GCC backbone for our lang

#

🙏

timid quartz
#

arm-none-eabi-gcc is what you use for C

timid quartz
timid quartz
#

if that could

#

idk

spare quartz
#

it'd probably work but again you'd need to build an RTS that would support more advanced features

timid quartz
#

cringeeee

spare quartz
#

cause i dont imagine just having the bare dma does anything

timid quartz
#

I mean in rust it's done with #[no_std] anyways

spare quartz
#

yeah redefining the RTS is like that

#

but ... you rewrite std

timid quartz
#

dies

#

what about no rts

spare quartz
#

it might work

timid quartz
#

ur lang stupid

spare quartz
#

up until you use something not generic like uh

#

a file operation

#

then itll yell at you about missing a linker thing

timid quartz
#

well gba doesn't need files

#

not rlly

#

can just read straight from mem

spare quartz
#

then something simple would work

#

if you need to print something to screen though youll need to redefine the RTS for put_line though since

#

that uses a file descriptor on all desktops

timid quartz
#

oh u know how u do that on gba?

spare quartz
#

?

timid quartz
#

write directly to the vid buffer wheeze

spare quartz
#

CGA textmode coded 💪

timid quartz
#

like the draw_rect and draw_square_asm functions

spare quartz
timid quartz
#

are literally just using dma to write to the vid buffer

spare quartz
#

heres how i write to the text buffer on x86

timid quartz
#

laame

#

here's how I do it in rust

#
println!("text");
spare quartz
#

okay but

#

someones already written the code for that to work

#

where is it

#

🤨

timid quartz
#

stdlib

spare quartz
#

who wrote the code for stdlib though

#

the person who made the runtime for the gba?

lavish dove
#

bruh

#

I deleted

#

everything

#

started from scratch

#

its still not reading the sectors

#

so fucking frustrating

timid quartz
#

Duhh

spare quartz
#

okay but

#

they dont write their code to work on a gba silly

timid quartz
#

And whoever had to make platform specific code for thumbv4

#

ATP you forget I don’t use any stdlib on the gba

spare quartz
#

your println is like me showing you an Ada.Text_IO.Put_Line in my kernel

#

sure it works but

#

thats not what im looking at!!!!

timid quartz
#

ur lang is just stupid it’s ok

spare quartz
#

im going to kill you with forks

#

written in ada..

timid quartz
#

I’m going to kill you with crustaceans

#

They will swarm out of the ocean and snip you to shreds

spare quartz
#

聴いた瞬間一目惚れソング!
みんなもハマろうね

【日本語版】热爱105°C的你(熱愛105℃の君へ)

■vocal, MV, illustrator : ばやちゃお
■mix:kzmari

▼ばやちゃおTwitter 
https://twitter.com/BAYACHAO

▼お仕事のご連絡
[email protected]

▼魔けモン!Web
https://bayachao.wixsite.com/makemon

#热爱105°C的你 #歌ってみた #かわいい  #winD

▶ Play video
#

cant wait for 99% of them to fail cause your lang is smelly

timid quartz
#

Can’t wait for all your forks to fall apart because they’re so old and rusty

#

Rusty 💪

spare quartz
#

🤢

#

friend sent me their project with nodemodules

#

worst mistake of my life opening it

#

:Sob:

timid quartz
#

Superior lang

#

Serperior approved

spare quartz
#

weeb

timid quartz
#

Does your lang even treat functions as first class citizens

spare quartz
#

sorta

#

they need to be wrapped in an access type

#

applicable attribues can be used on them though

#

like

#

Put_Line'Address

timid quartz
#

Lame

#

Try Fn and FnOnce

spare quartz
#

what're those

timid quartz
#

@lyric mesa and @wheat zinc would agree that rust is superior

spare quartz
#

what is an fn once .. .. .

timid quartz
#

It’s exactly what it sounds like

spare quartz
#

it doesnt

#

i dunno what that is cause you've given no context

timid quartz
#

Instances of FnOnce can be called, but might not be callable multiple times. Because of this, if the only thing known about a type is that it implements FnOnce, it can only be called once.

spare quartz
#

oh

#

i dunno why i would want that personally

timid quartz
#

stupid lang...

#

for stupid people...

spare quartz
#

👎

timid quartz
#

use rust more

#

you'll see why it's better

#

write uhm...........write the ftp server in rust

spare quartz
#

no.

#

never

#

i hate the borrow checkler

timid quartz
#

the borrow checker ❤️

#

my favorite

spare quartz
#

In Ada 2022, you can define string, integer, or real literals for your types. The compiler will convert such literals to your type at run time using a function you provide. To do so, specify one or more new aspects:

#

cool

timid quartz
#

I need to add role binds to shield...

spare quartz
#

reading this part is still cursed to me though

#

thats so coool nvm

timid quartz
#

smh

spare quartz
#

im reading the 2022 RM Annex J

timid quartz
#

imagine having a ""reference"" ""manual""

spare quartz
#

imagine having a rustonomicon

#

oh yeah

timid quartz
#

rust is just so much better....

spare quartz
#

apparently this is what we use to certify compiler specification use

#

pretty cool

timid quartz
#

pretty lame...

#

there is only one rustc prayge

spare quartz
#

terrible

#

vendor lock in 💔💔

timid quartz
#

no u

timid quartz
#

so

spare quartz
#

yes but

#

people can also use GHS or HP solutions

#

GHS is for like, fighter jets and crap

timid quartz
#

:-2:

#

one rustc to rule them all

spare quartz
#

if you had ada that emoji would've existed

#

but alas...

#

IMAGINE needing such a warning statement

timid quartz
#

cause you have NO docs or resources

spare quartz
#

our language is so safe we dont need it 😎

timid quartz
spare quartz
#

well actually

#

there is an entire legal section in the rm

#

but you dont need to worry about htat ...

timid quartz
#

laaame lang

#

use a lang with an actual community

spare quartz
#

:X:

#

come back when your lang is full of feds

timid quartz
#

come back when there's more than 2 geezers on their deathbeds using your lang

#

spare quartz
#

timid quartz
#

I think we're just gonna have to agree to disagree

spare quartz
#

()((which means i win, obviously())

timid quartz
#

mm no

#

means I win

spare quartz
#

yeah ok sure

timid quartz
#

cause my lang is just better

spare quartz
#

go back to your lang being infected with nodejsification

timid quartz
#

go back to your community oh wait you don't have one

spare quartz
#

:<

timid quartz
#

i fail to see what ada can do for me that rust cant

spare quartz
#

i fail to see what rust can do for me that ada cant

timid quartz
#

if anything ada fails to do other things that rust can

#

like

#

be good

spare quartz
#

idk

#

i think you're just lackin

timid quartz
spare quartz
timid quartz
#

idfk

spare quartz
#

😭

timid quartz
#

if you really wanna leak it ig

spare quartz
#

the page is so big

timid quartz
#

raii ❤️

#

bet ada doesnt have raii

spare quartz
#

we

#

literally had it just after C++

#

we had it before you were a lang

#

😭

#

how do you think every type is automatically cleaned up

#

anyways we do have auto management of access types (as defined by the implementor), since you can just shove them in a Controlled type which'll clean up when out of scope

#

sometimes you dont want that though and just defer it to the users discretion

timid quartz
#

or you could use Go

#

and just

#

defer

spare quartz
#

the ENGLISH word

#

omg

#

i think this is good enough parallel to access types

timid quartz
#

the page is an interesting read but the examples are contrived

spare quartz
#

i don't like the way it's written but i can see that yeah

timid quartz
#

mostly idk when you'd ever mem::forget

spare quartz
#

This can be solved by just checking the ref_count and doing something. The standard library's stance is to just abort, because your program has become horribly degenerate. Also oh my gosh it's such a ridiculous corner case.

timid quartz
#

and if you're gonna mem::forget you probably already know what that's doing and have taken appropriate precautions

#

ugh why is ada so stupid...

spare quartz
#

ugh why is rust so stupid...

timid quartz
#

it's not

#

;3

#

it's very smart

spare quartz
#

(for stupid people)

#

i feel like getting more bayachao art today

timid quartz
#

ur lang is literally for boomers

timid quartz
#

do it do it do it

spare quartz
#

yknow what boomers are known for

#

being wise 😎

timid quartz
spare quartz
#

true

spare quartz
#

nnnnnnoooooooo

#

its so annoying to write in...

timid quartz
#

yyyyyyyyyyyes

#

it's really not

spare quartz
#

it really is to me

timid quartz
#

Ada is annoying to write in

spare quartz
#

you need to study the rm more

timid quartz
#

nuh uh

#

imagine having to "study" an "rm"

spare quartz
#

you could've said i needd to study the rust manaul too 🙏 cause thats what you need to do 🙏

timid quartz
#

ok but

#

you do need to study the rust manual

#

well actually

#

what I said was "you need to learn rust first"

#

and you saw where you got by not doing that

#

but I ""learned"" ada and got further

spare quartz
#

okay but

#

you dont need to learn the full semantics of ada unlike rust to write something in it

#

your program wont be the best and will probably be '05 code but

timid quartz
#

go learn go

#

smh

spare quartz
#

better

#

ew

#

child language .

timid quartz
#

golang ❤️

#

golang is not bad

spare quartz
#

looks icky to me

#

i prefer kotlni

timid quartz
#
res, err := fn_call()
if err != nil {
  // do whatever
}
spare quartz
#

rust user try not to become C

#

WHO IS REACTING

timid quartz
#

prob kade

#

smh

spare quartz
#

banned

timid quartz
spare quartz
timid quartz
#
try {
  someStupidFunc()
} catch (Exception e) {
  // do stupid
}
#

I hate this syntax

#

with all my heart

spare quartz
#

yeah well we already had a conv on it ... and my philosophy is better 🏆

#

i am infallible

timid quartz
#

errors as values are so much better

spare quartz
#

hold on

timid quartz
#

even zig does it better

spare quartz
#

gotta help js friend

#

agan

timid quartz
#

cringe

#

js

spare quartz
#

they're a web designer

#

dont be mean

timid quartz
#

I have suffered the horrors of js and ts

#

I can be mean

spare quartz
#

well

#

so have i

#

but be nice.

timid quartz
spare quartz
#

but you gotta admit

#

our declare/is syntax is on top

#

🙏

timid quartz
#
fn doAThing(str: []u8) void {
    const number = parseU64(str, 10) catch 13;
    _ = number; // ...
}
#

like

#

that's decent

#

that's manageable

timid quartz
spare quartz
#

all of our variables are excellently defined

#

and we dont gotta do the crap you guys do with sharing references

timid quartz
#

imagine it not being explicit whether your passing by value or by reference

spare quartz
#

the compiler is ALWAYS smarter than the programmer

#

you know this

timid quartz
spare quartz
#

This_Is_Worse will never be used outside its specified block

timid quartz
spare quartz
#

perfect use

spare quartz
#

heap allocation: pass an access
direct access: pass a System.Address / aliased

#

but generally just out the variable

timid quartz
spare quartz
#

🤢

timid quartz
#

although honestly the most useful thing for that syntax is to scope drops

spare quartz
#

we all know a programmer would just not do that for sake of being clean

timid quartz
#

so like

fn whatever() {
  // ...
  {
    let temp_thing = get_temp_thing();
    temp_thing.do_whatever();
  }  // auto dropped at end of scope
  // ...
}
spare quartz
timid quartz
spare quartz
#

nope

#

you're forced to

timid quartz
#

lameeeee

#

laaaaaame

#

just declare all your variables at the top level

spare quartz
#

then that looks even dirtier

#

worst ada programmer

timid quartz
#

maybe have a better lang next time...

spare quartz
#

use type x; is best syntax though

#

bet you have nothing like that in your dumb lang

timid quartz
#

wtf is that

#

what does it do

spare quartz
#

allows use of the types defined operators

#

without useing the entire package

timid quartz
#

so like

#

example?

spare quartz
#

no use: A * B = invalid
no use: P."*" (A , B) = valid

#

use: A * B = valid

timid quartz
#

yeah we dont even need anything like that

spare quartz
#

poor package mgmt

timid quartz
#

you just overload the operator

spare quartz
#

ewww

timid quartz
#

and because in order to even use A and B

#

you have to import them

#

it just comes with

spare quartz
#

you must qualify A and B without a package wide use which is why use type is useful...

timid quartz
spare quartz
#

EWWWW

#

:<

timid quartz
#

it's better

#

smh

spare quartz
#

what about gotos

timid quartz
#

gotos?

spare quartz
timid quartz
#

gotos considered unsafe -dijkstra

spare quartz
#

worst advice ever

timid quartz
#

we have labels

#

but that's abt it

spare quartz
#

like uh

#

these labels?

timid quartz
#

yeha

#

or like in kotlin

spare quartz
#

kotlins labels are more useful for ext. funcs

#

this@x. ...

timid quartz
#
'label: loop {
  // ...
  break 'label;
}
spare quartz
#

stop rping in code

#

be professional.

full berry
#

that's

#

sky and ben i think

timid quartz
full berry
#

i'm looking at guardsman code 😭

spare quartz
#

tell them to stop rping in code

spare quartz
#

we have two different kinds of literals for labels

#

<<gotolabel>>
blocklabel :

full berry
#

aera die i saw that

timid quartz
#

ew

#

ewww

spare quartz
#

no.

timid quartz
#

<<gotolabel>> that is HORRIBLE syntax

#

your lang shouldnt even use gotos

spare quartz
#

how

#

how

#

how

timid quartz
#

I bet spark doesnt support gotos

full berry
#

what are you guys talking about

spare quartz
#

oh it does

timid quartz
#

how rust is better than ada

full berry
#

did atp uncover another us military programming language

spare quartz
#

just not backwarsd gotos

spare quartz
#

it is the safest language

full berry
#

for now a lot of things are similar to like js and ts

timid quartz
#

see it's good atp

spare quartz
#

no.

full berry
#

atp

#

ada syntax is

timid quartz
#

terrible ^

spare quartz
#

bro you're a js "programmer"

full berry
#

as if a dyslexic person wrote it

spare quartz
#

i do not wanna hear it

full berry
#

is the best way i can put it

timid quartz
spare quartz
#

terrible guy

#

probably didnt even make any good algos

timid quartz
#

die

spare quartz
#

:3

spare quartz
#

okay but how

spare quartz
#

i know the report

full berry
#

oh my god

spare quartz
#

how

#

😭

full berry
#

im sorry rust takes the cake here

#

WDYM HOW

spare quartz
#

dude rust is hideous

full berry
#

it looks worse than python

spare quartz
#

wait

timid quartz
#

rust is beautiful

spare quartz
#

astro

full berry
#

and that says something

#

what

spare quartz
#

you've seen my setup with the hard drive right

#

🥺

full berry
#

no

spare quartz
#

eheheheheheheheh

full berry
#

ive only seen the back of your desk and i wish i ddint

full berry
#

i-

#

you know what

#

you'd make an amazing bbi sysadmin

spare quartz
#

LOL

full berry
#

go talk to ben to get you on the payroll

spare quartz
#

i hate sysadmins

full berry
#

where's that one image

timid quartz
full berry
spare quartz
timid quartz
full berry
spare quartz
#

tf is unwrap().1

#

😭😭😭😭

full berry
#

@timid quartz ok but if rust is so amazing you have to rescript qdf helper from ts to rust

#

or kotlin rot

timid quartz
#

That’s a massive undertaking

full berry
#

why lol

spare quartz
#

i say kotlin

#

!

timid quartz
#

And it’s not getting open sourced cause ik you’d just fork the repo and rebrand it

full berry
#

no atp

full berry
#

i am never going to script a bot in rust or kotlin though

spare quartz
full berry
#

id rather get run over by a bus, as much as i like rust

timid quartz
spare quartz
#

were in... a...

full berry
#

no

full berry
spare quartz
timid quartz
# spare quartz tf is unwrap().1

So split_once() splits a string into two strings, the .unwrap() is necessary because split_once() returns an option, and the .1 gets the right side of the split

spare quartz
#

oh

full berry
#

what where

#

if its that cfa thing i dont maintain that and it's not based on guardsman

timid quartz
# spare quartz oh

I forget exactly how but it’s trying to get the ESMTP options to give to parse_opt_str

spare quartz
#

man i just got a bad headcahe

timid quartz
#

I forget what the format looks like but

#

That’s what it’s doing

timid quartz
spare quartz
full berry
#

actually

#

i have a better idea

spare quartz
#

leaving this here

#

back to ummm

#

tftp i guess

timid quartz
#

do it in rust

spare quartz
timid quartz
spare quartz
#

元気のない時に聞くと落ち着くだいすきな曲。

■本家様 : https://www.youtube.com/watch?v=Scu5zZ0M4Cs

■Music, lyrics : Cocco
■vocal, MV,MIX : ばやちゃお
即興収録なのでMIXは己です!

▼音源お借りしました
https://www.youtube.com/watch?v=_4r2N1TgPhY

#強く儚い者たち #歌ってみた

▼お仕事のご連絡
[email protected]

▼ばやちゃおTwitter 
https://twitter.com/BA...

▶ Play video
#

figure out how to fix video playback for me

timid quartz
#

but it says you should have uh

#

content-type: video/whatever

#

accept-ranges: bytes

spare quartz
#

i do

#

silly

#

i do

#

and i dont trust ai

timid quartz
#

ok now try serving from an https domain

timid quartz
spare quartz
#

will try after helping in a it

timid quartz
spare quartz
#

絵を描く時、キャラクターを作る時、いつもそばで寄り添ってくれたのも

絵が上手くなりたくて苦しみもがいた時、心無い言葉に挫けた時、ずっとそばで励ましてくれたのも

OSTERさんの作る楽曲の数々でした

幼い頃から今日まで創作を続けてこられ、そんなOSTERさんに自創作のテーマソングを書き下ろしていただけて

今では隣で笑いあえて

幸せでいっぱいです

11/24 OSTERさん、お誕生日おめでとうございます!!
ラブラドライト5周年も兼ねて少し早めにお祝いさせていただきました!


▼【OSTER project】ラブラドライ...

▶ Play video
#

tell it to summarize this video

#

hmm

#

i wanna see if this is possible with my server

#

update my computer isnt receiving a cnnect :<

#

oh i see

#

my phone was on the paernt network

#

it works locally!!

#

okay umm

#

im gonna use a binding to openssh

#

cause making tls is hard rn

rustic vine
spare quartz
#

☹️

spare quartz
spare quartz
#

i hate c

spare quartz
#

its sunday today

spare quartz
#

74 tabs

timid quartz
spare quartz
#

its broke as shit!!!

timid quartz
spare quartz
#

日 is also an abbreviation for sunday

timid quartz
#

the (日)-

spare quartz
#

im finishing the game rn

timid quartz
#

yeah

#

日曜日

spare quartz
#

and then thats for year

timid quartz
#

月曜日
火曜日
水曜日
木曜日
金曜日
土曜日
日曜日

#

MWTWRFSS

spare quartz
#

12月31日 is a very special day indeed

lavish dove
#

fuck no way its december

spare quartz
#

nah

#

its bayachaos birthday

#

:3

timid quartz
spare quartz
#

mark your CALANDAR

timid quartz
#

Only if you use rust instead of Ada for another project :3

spare quartz
#

never in a billion years

#

ill COMMISSION bayachao to kill your stupid crab

timid quartz
#

Tough luck then

timid quartz
spare quartz
#

we do

#

but its a logotype

timid quartz
#

I’ll commission bayachao to kill you

spare quartz
#

you dont even know what i look like

#

😎

timid quartz
#

Aw shit

spare quartz
#

you fr

timid quartz
upbeat badgeBOT
#
signin.aws.amazon.com
Server Avatar
spare quartz
#

the modern logo

#

is this

#

BUT

timid quartz
#

Not a mascot

spare quartz
#

we also have this

timid quartz
#

Get rekt

timid quartz
#

Get outta here

spare quartz
#

ada lovelace 💪

timid quartz
#

More like Ada LAMElace

spare quartz
#

we also have this

timid quartz
#

cmonnnn just use rust

spare quartz
#

nope

#

aw hell naw

timid quartz
spare quartz
timid quartz
#

That fuckin bird that I hate

spare quartz
#

oh yeah

#

we have one more logo

#

but it looks like a cigarette logo

spare quartz
#

man

#

ada has a lot of logos

#

💔💔💔💔💔💔

spare quartz
timid quartz
#

rust on top

spare quartz
#

i dunno if this inspired the DISA logo, or was made from inspiration frrom the DISA logo

#

DISA being the only good govt agency

spare quartz
timid quartz
#

LEFT BEHIND

spare quartz
#

FYM CAMBRIAN EXPLOSION

#

WE EXISTED DECADES BEFORE D AND OCAML

#

WE WERE A DOD PROJECT 😭

timid quartz
#

And now the DOD is moving to rust :3

spare quartz
#

no

#

if anything they're sticking to C and C++

timid quartz
#

mhm….but tractor

spare quartz
#

thats a darpa project dummy

timid quartz
#

well the internet used to be a darpa project

spare quartz
#

yeesh

#

you know darpa has like

#

100 projects at a time right

timid quartz
#

Just admit rust better

spare quartz
#

nope

#

it ain't

timid quartz
spare quartz
#

we did what your language could and more before it ever existed

#

;3

timid quartz
#

But now rust does things urs can’t

spare quartz
timid quartz
#

Like…automatic memory management of non stack allocated types

spare quartz
#

ugh i hate firefox

spare quartz
#

whats your second point

timid quartz
spare quartz
#

and reminder

timid quartz
spare quartz
#

you have to knee cap yourself to do that

timid quartz
spare quartz
#

yes you do

#

borrow checker

timid quartz
#

The borrow checker is a tool smh

spare quartz
#

a gun to your knees more like

timid quartz
spare quartz
#

new()???

#

you have to write a constructor for it???????

#

we encode the semantics of a type much better than you do

#

you're great at encoding the logic in though i will admit

#

but again in ada access types are effectively your Rcs

#

99% of what you'll be doing is on the stack/sec. sta. (i.e. in GNAT)

#

an access type is something you can easily track down and free up if its a major concern

timid quartz
spare quartz
#

but... in totality...

#

there's practically nothing you can't do in ada you can in rust

timid quartz
#

Mmm except be better

spare quartz
#

the procedural macros are the only one thing i can think of that you guys have that is pretty cool

#

uuuunforuntately in ada 2022 we got a facility for that too

timid quartz
#

Forgot about macros

spare quartz
#

yup

#

it sticks

#

it's pretty cool honestly

#

defining your own literals

timid quartz
#

Eh

#

What more can they do

spare quartz
#

whatever you code them to be i suppose

timid quartz
#

🧢

#

Show

#

Or fake

spare quartz
#

i did

#

😭

spare quartz
#

yknow what we have in ada though

#

aspect-oriented programming

#

try and beat that

timid quartz
timid quartz
spare quartz
spare quartz
#

AOP isnt OOP

timid quartz
#

Ok what is it then

spare quartz
#

In computing, aspect-oriented programming (AOP) is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. It does so by adding behavior to existing code (an advice) without modifying the code, instead separately specifying which code is modified via a "pointcut" specification, such as "log a...

#

question

#

how would you, in rust,

#

do something like

type A is record
  Padded : Integer;
end record with Size => 1024;
                ^^^^^^^^^^^^^
#

or idk

with CPU => 4;
spare quartz
#

what does repr let you do

timid quartz
#

Like #[repr(u128)]

spare quartz
#

does it also let you set alignment

timid quartz
#

#[align()]

spare quartz
#

what about CPU

#

(also Bit_Order, Atomic?)

timid quartz
#

Not easily doable

#

Rust has atomic data types in stdlib

spare quartz
#

yeah

#

AOP is really nice to have for stuff like this

timid quartz
#

But do you have traits

spare quartz
#

because instead of having yet another compiler intrinsic for a type atomic_unsigned_16

#

you just with it to atomic

spare quartz
timid quartz
#

trait Name

#

impl Name for MyType

spare quartz
#

okay but

#

what exactly does it do thats interesting

timid quartz
#

Say I have some external type

#

Like from a crate or stdlib

#

With normal interfaces you couldn’t apply an interface of your own to an external type

#

But you can with traits

spare quartz
#

in ada we have that by not doing that

#

just define a subprogram with some type x as an argument

timid quartz
#

cring

#

Rust wins high diff

spare quartz
#

yeah ok

#

femboy lang

timid quartz
#

geezer lang

spare quartz
#

we win cause we're cooler

#

and MEN

#

💪

timid quartz
#

We win cause we’re better

spare quartz
#

shut up

#

or i will start posting bayachao art

timid quartz
#

Bad lang try another

spare quartz
#

ada

#

im telling you

#

theres no lang that can beat ada

timid quartz
#

Uhm rust does easily

spare quartz
#

i like how at this point we're essentially just fighting over different brands of the same tool :Sob:

#

except mines older so it has more umm

#

xp

#

fml

#

iphone audio recongition just tagged me speaking as cat

timid quartz
#

Also Rust has compile-time checked pointers

spare quartz
spare quartz
#

yes ik

#

they've said this in the SPARK 2014+ design

timid quartz
#

Also ur access types are not not nullable by default BAD DESIGN!!!!

spare quartz
lavish dove
#

have you seen this @spare quartz

#

apparently its a standard for audio

spare quartz
#

yes and i hate it

lavish dove
#

lol

spare quartz
#

cause its broke as shit on my computer

timid quartz
lavish dove
#

oh damn and I had high hopes 😭

spare quartz
#

i mean

#

what exactly is the compiler checking for

spare quartz
timid quartz
#

Ownership

spare quartz
#

just doesnt work when im present

spare quartz
timid quartz
#

Thread safety as well

spare quartz
#

depends

timid quartz
#

@lavish dove rust or Ada

spare quartz
#

if by thread safety you mean won't write corrupted data if two threads touch it then yeah we have that

#

otherwise; see protected types/objects

#

but our "pointers" have accessibility checks

#

and the reason they're not non-nullable by default is cause theres not many situations where you can use a non-null pointer

timid quartz
#

Uh like

#

Every situation???

spare quartz
#

no

#

not really

#

what if you had a vector of a record x with non-null access type y

#

creating the vector will cause an instant constraint error

lavish dove
timid quartz
#

W

lavish dove
#

cuz I can probably pick ti up faster

spare quartz
#

L

timid quartz
#

W

timid quartz
#

Instead of null

spare quartz
#

sooo an access type

#

👍

timid quartz
#

Me when my code is littered with if whatever is null because I don’t know if anything is null or not

lavish dove
#

all my computers have a pc speaker

spare quartz
#

it isn't 😭

lavish dove
#

but thats shit

spare quartz
#

again

lavish dove
#

and its really loud

spare quartz
#

access types are not a "common thing" in ada

#

the only reason i use them is for streams and i know they won't be null where they're used

timid quartz
#

Raw pointers are also not common in rust

#

Normally you’ll use a reference

spare quartz
#

for us thats just a plain (in)/out mode parameter

#

if you really wanted to, you could use an access type that's binded to an Address with a storage size of 0

#

which would avoid heap allocation n all but

#

that's really niche and i've only used it once for kernel stuff

timid quartz
#

Your out is our &mut

#

I don’t know if you have an analog to just &

#

Which is immutable

spare quartz
#

if you mean a direct analog then no

#

cause that's compiler decided

#

but the next closest matching one is in/out

timid quartz
#

Lame imagine your lang not putting immutability first

spare quartz
#

literally all parameters are immutable by default

#

so idk what you're on about 😭

timid quartz
#

Ackshually

#

Your out parameter allows modifying without additional quantifiers

spare quartz
#

yeah

#

you have to explicitly mark parameters as out

#

dummy

timid quartz
#

With rust you have to be explicit about the &mut

spare quartz
#

EXACTLY

timid quartz
#

💪

spare quartz
#

SO IN ADA TOO

#

in fact we have something you dont

timid quartz
#

Nuh uh

spare quartz
#

you can just mark something as just out

#

which makes it unreadable

timid quartz
#

Ok but why would you ever need that

spare quartz
#

for setting things directly 😭

#

you see it in C all the time with their stupid pointers

timid quartz
#

If you’re gonna out

#

What’s the harm of inout

spare quartz
#

you have no reason to

#

simple

timid quartz
#

Stupid L feature honestly

#

Might as well call it a bug

spare quartz
#

kinda rich from the lang who treats its programmers as if they were baboons

timid quartz
#

Because programmers are baboons

spare quartz
#

okay aera

timid quartz
#

All these memory bugs in C applications are from programmers trying to be “smart”

spare quartz
#

and our lang fixes that by being stringent

timid quartz
#

Compiler knows best

spare quartz
#

not forcing you to do one thing

timid quartz
spare quartz
#

uh oh

#

i think i just fried my pico

timid quartz
#

If only you used rust

spare quartz
#

naw

#

short circuit

timid quartz
#

Then you wouldn’t have

#

Caused by ada code I’m sure

spare quartz
#

no

#

i just touched it with metal on accident

timid quartz
#

Because you were too busy writing Ada code

spare quartz
#

naw

#

i was too busy being mrow

timid quartz
#

I’m telling you if you had used rust this wouldn’t have happened

spare quartz
#

i did use rust actually

#

on the usb stick built out of steel

#

:3

timid quartz
#

One of your mascots is 6 feet under and the other is about to get fried into a delicious meal

spare quartz
#

WHAT

timid quartz
#

Meanwhile my mascot is going to snip your kneecaps off

spare quartz
#

AERA EATS HUMMINGBIRDS

#

🤢

timid quartz
#

Ighhh

#

I need to make a better resume so I can get a job and not be homeless

spare quartz
#

when you have money can you buy this for me ...

#

🥺

timid quartz
#
  1. No
  2. No
spare quartz
#

:<

#

i could buy 50 picos for the price of one of those btw

timid quartz
#

well cancel your order of 50 picos and buy one of those

spare quartz
#

i wish i had the money to get 50 picos in the first place!!...

#

im going to get brain rot

timid quartz
#

good

spare quartz
#

victim of 脳 朽ちる ^^^^

timid quartz
#

u dont use spaces in japanese

#

バカ

spare quartz
#

smh thats cause of my clipboard

timid quartz
#

GET LOST