#🪅-progaming

1 messages · Page 77 of 1

winged mantle
#

double quotes are for column names

fleet cedar
#

Uh

valid jetty
#

can i do ```rs
let x = if x {
if !x.y() { break false; }

perform_thing();
true

}

winged mantle
#

i've used this litererally everywhere lol

fleet cedar
#

I'll file that that under "yes, weird sql dialect"

winged mantle
#

postgres

#

😭

valid jetty
fleet cedar
valid jetty
#

and also if let Some(x) with a follow up condition in the if

#

that is another way i need to nest

winged mantle
#

why does rust love unterminated strings

#

it should be 'a':

valid jetty
#

that’s a label

#

lol

fleet cedar
#

if let Some(x) = y && x.is_something() { } will be stabilized in next release

valid jetty
#

is it stable in nightly????

#

or do you mean like release 2027

fleet cedar
valid jetty
#

oh ok then i guess i’m gonna fix everything that doesn’t use it

#

i have soooooo many such cases

fleet cedar
#

Things being stable in nightly but not in stable is kinda weird though

valid jetty
#

it’s literally ```rs
if let Some(x) = y {
if x.z() {
}
}

fleet cedar
#

I just #![feature(let_chains, never_type)] in most of my projects

winged mantle
#

is there a token system which is just simple

#

instead of using signing it just remembers all token hashes

#

then you can invalidate them

fleet cedar
#

Greping all of my projects, it seems I have ```
1 abi_thiscall
1 assert_matches
1 box_patterns
1 core_intrinsics
1 float_next_up_down
1 fmt_helpers_for_derive
1 generic_const_exprs
1 is_sorted
1 iter_order_by
1 proc_macro_quote
1 ptr_metadata
1 slice_from_ptr_range
2 array_methods
2 backtrace_frames
2 if_let_guard
2 pointer_byte_offsets
2 proc_macro_span
2 test
3 array_chunks
4 slice_flatten
5 provide_any
5 try_trait_v2_residual
6 pattern
6 proc_macro_diagnostic
7 try_trait_v2
8 lazy_cell
8 never_type
10 array_try_from_fn
11 error_generic_member_access
12 array_try_map
18 try_blocks
30 let_chains
39 decl_macro

#

Though some of them are several copies of the same project because fuck organization

spark tiger
#

why the fuck did git diff > patch.patch save it as Macintosh (CR) isob

#

i'm trying to replace a patch with my own and uh does it matter that the header of the patch differs

#

like when i use goland to make a patch it adds some additional headers

#

when i use git diff > something.patch it just has none

#

the original patch:

From 54e045b9e8ecfca24aac7ece00f0fc7d3969b32e Mon Sep 17 00:00:00 2001
From: Jonathon Hall <jonathon.hall@privateinternetaccess.com>
Date: Thu, 27 May 2021 11:55:33 -0400
Subject: [PATCH 1/3] Add main, /dumplog, /findinterface, /cleaninterface to WG
 service

---
 embeddable-dll-service/build.bat |   3 +-
 embeddable-dll-service/main.go   | 136 +++++++++++++++++++++++++++----
 2 files changed, 120 insertions(+), 19 deletions(-)

diff --git a/embeddable-dll-service/build.bat b/embeddable-dll-service/build.bat
index 0d2cbdbb..be294310 100644
--- a/embeddable-dll-service/build.bat
+++ b/embeddable-dll-service/build.bat
@@ -34,8 +34,7 @@ if exist ..\.deps\prepared goto :build

patch made with git cli:

diff --git a/build.cmd b/build.cmd
index dcd53e0..60f7f46 100644
--- a/build.cmd
+++ b/build.cmd
@@ -52,11 +52,9 @@ if exist .deps\prepared goto :build

patch made with goland:

Index: build.cmd
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/build.cmd b/build.cmd
--- a/build.cmd    (revision 4b1b67e3b6657ee90176233b0d57070bd0e32ccb)
+++ b/build.cmd    (date 1745971111919)
@@ -52,11 +52,9 @@
#

why are they all different isob

fleet cedar
#

No, the header does not matter

spark tiger
#

i see thanks!

#

i guess i'll just use the shortest one

valid jetty
#

should transmute be allowed

#

ofc it needs to be explicit tho

#

with a #cast

lavish frigate
#

peak enterprise level code

fleet cedar
#

Nice sql injection you have there

lavish frigate
lavish frigate
#

this is enterprise code we are talking about all the values here have been sanitized 5 controller levels up

spark tiger
#

guh i have a feeling what i'm doing might violate the repo's license isob

#

why are they even doing it like they literally made zero changes to it lol

spark tiger
#

i need to redo my patch

valid jetty
#

@lucid trail

#

that place which threw an error before

#

maybe it shouldnt say semicolon it should say delimiter token

lucid trail
#

Nice

#

was wondering how that was valid

valid jetty
#

it wasnt

#

it skipped the key.__fmt__(0) part completely

lucid trail
#

oh that makes sense

valid jetty
#

basically now i just restrict what tokens can come after specific exprs if the token stream is not fully consumed by the end of the parsing of it

#

because for example you can parse A::B as an enum literal, but then theres still a . token right at the end in that token stream which hasnt been consumed so you can put the enum literal's ast node into a different parser and continue parsing

#

the issue is that before i wasnt raising an error when the token stream wasnt consumed but the token wasnt one of the known ones

#

it was just an empty case

#

ie _ => {}

hoary sluice
valid jetty
#

yeah

#

i got warnings before for too many bools in my structs

#

and for having Option<Option<T>>

lucid trail
#

static code analysis is so cool

valid jetty
#

trueee

spark tiger
hoary sluice
#

ig fn parse_precedence(&mut self, precedence: Precedence) -> Result<Expression> {

lucid trail
#

nix logo on wallpaper

hoary sluice
#

you dont complain about windows logo on wallpaper

spark tiger
#

wher

#

there is no windows logo on wallpaper

hoary sluice
hoary sluice
fleet cedar
# hoary sluice

Wow, your scheme makes absolutely no difference between dark and bright colors

valid jetty
#

read the help:

lucid trail
valid jetty
#

the function body is too complex it does too many things

hoary sluice
fleet cedar
#

Colors

hoary sluice
#

u mean the palette?

#

theyre difference shades of catppuccin mocha

#

i only use dark mode

lucid trail
#

catppuccin is adding tints/shades and redoing ansi

hoary sluice
#

if i understand correctly one row is for light mode and one is for dark mode

#

i dont need light mode

lucid trail
#

i dont think you understand correctly

#

top is normal and bottom is brighter color

fleet cedar
#

It's unrelated to dark/light mode

#

Terminals have 16 customizable colors

#

You only have 10

hoary sluice
#

i use the default kitty catppuccin mocha theme

lucid trail
#

i intentionally keep it that way, but yeah

hoary sluice
#

i didnt even know what it was and i like how my colors look

fleet cedar
#

Here's my colors

hoary sluice
#

what do i do here

warning: module has the same name as its containing module
 --> src/parser/mod.rs:2:1
  |
2 | pub mod parser;
  | ^^^^^^^^^^^^^^^
  |
  = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception

the logic is in parser.rs and i dont see how i can find a better name for it

frosty obsidian
hoary sluice
#

add it to #![allow]?

hoary sluice
frosty obsidian
valid jetty
# hoary sluice add it to #![allow]?

take my config with a grain of salt but this is what i use

#![warn(clippy::all, clippy::pedantic, clippy::nursery, clippy::cargo)]
#![allow(
    clippy::format_in_format_args,
    clippy::too_many_lines,
    clippy::wildcard_imports,
    clippy::option_option,
    clippy::module_inception,
    clippy::single_match,
    clippy::struct_excessive_bools,
    clippy::fn_params_excessive_bools,
    clippy::too_many_arguments
)]
hoary sluice
# valid jetty take my config with a grain of salt but this is what i use ```rs #![warn(clippy:...

in austria we call this Schere

warning: this function has too many lines (341/100)
   --> src/interpreter/interpreter.rs:24:5
    |
24  | /     pub fn evaluate(&mut self, expression: Expression) -> Result<Value> {
25  | |         match expression.kind {
26  | |             ExpressionKind::Assignment {
27  | |                 name,
...   |
368 | |     }
    | |_____^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_lines
    = note: `#[warn(clippy::too_many_lines)]` implied by `#[warn(clippy::pedantic)]`
#

ig id have to split up each expression kind into its own function

valid jetty
#

what was i doing 😭

hoary sluice
valid jetty
#

tell me about it

#

i have 285 suggestions

#

and thats after spending hours fixing most of them

hoary sluice
valid jetty
valid jetty
lucid trail
#

oooo that's a very pretty warning color

#

also very cool

hoary sluice
#

omg im gonna run this on my thesis

valid jetty
valid jetty
hoary sluice
#

just how are there less than in icypeas

valid jetty
#

horror

hoary sluice
#

a lot of them are removing usued async, early await and format args

valid jetty
#

@hoary sluice can icypeas do this ```rs
use std/prelude;

fn direction(i32 *other) -> bool {
return !other ? direction(&0) : &0 > other;
}

fn main() {
io::printf(
"The stack is growing {}wards for your architecture.",
direction(nil) ? "up" : "down"
);
}

hoary sluice
valid jetty
#

lol

hoary sluice
#

in my thesis i probably have sections that ive never read before

#

yea but it has less warnings

valid jetty
#

wtf

valid jetty
#

send

hoary sluice
#

i alr sent

#

scroll up

#

icy had like ~180 iirc

#

cant check now

valid jetty
#

i have sections that i have never read before

hoary sluice
#

cause i fixed them

#

and i cba to chec kout

#

oh

valid jetty
#

no i meant like

#

send the direction thingie

#

lol

hoary sluice
#

the what thingie

hoary sluice
#

oh

#

that was a joke

valid jetty
#

oh

#

😭

hoary sluice
#

i cant even print

#

hello world

valid jetty
#

horror

hoary sluice
#

altho i have implicit prints enabled

valid jetty
#

..what does that mean

#

did you make the print hello world thing real

#

omg this throws an error now YAY

hoary sluice
hoary sluice
#

i meant

#

when the interpreter evaluates something it prints the value

#

i dont have a print funcion

valid jetty
#

all languages are cool to look at

hoary sluice
valid jetty
#

(except j*va)

valid jetty
#

well technically its still hello world

hoary sluice
#

need to make ascii decimal to string so i can write hello world in church numerals

valid jetty
#

stack direction is literally just calculating a difference between the pointers from 2 stack frames its not that difficult

#

although i guess you dont have pointers

#

which is a slight issue

#

lmao

hoary sluice
#
  • i dont have pointers
  • i dont have memory alloc
  • neither me nor icypeas know what the stack actually is
valid jetty
#

the stack is a statically sized memory region for local variables, as a way for persistent storage when things cant fit in registers without heap allocation

hoary sluice
#

something like that

valid jetty
#

its fast to allocate as you just subtract/add from a pointer to get a new one

hoary sluice
#

ik what the stack is but not the details

#

like direction

#

ig if the memory address decreases it grows down?

valid jetty
#

on modern cpus it grows downwards

#

creating a new stack frame (a frame when you enter a new function) will give you a 100% certainty of whether the stack is growing downwards or upwards

#

if you just allocate 2 stack variables and compare their pointers that wont work correctly because there is no rule that the variables must be allocated in a specific order by the compiler (unless volatile)

#

so you need to generate a new stack frame to ensure that theyre actually allocated in the order you want

hoary sluice
#

then allocate 16MB of variables

valid jetty
#

why

hoary sluice
#

and take the average direction

valid jetty
hoary sluice
#

gn

valid jetty
#

ok now write that in icypeas

#

lmao gnn

hoary sluice
valid jetty
#

in a year you can

hoary sluice
#

s

true gust
#

has anyone ever tried to build a client from the ground up for discord?

#

like an open sourced discord client built from ground up

lavish frigate
#

yes

#

there is one in flutter iirc i forgot the name though

balmy lintel
#

most failed though

valid jetty
#

theres one for macos called swiftcord

shrewd canopy
shrewd canopy
lavish frigate
spark tiger
#

what's the best way i can use something like GetProcAddress in rust

#

like so i can load a func from a dll

signal oakBOT
royal nymph
#

is that real

spark tiger
#

uhhh maybe

#

but i thought there was a builtin way of doing so

#

like there is in zig

royal nymph
#

rust has nothing inbuilt everything is a crate

winged mantle
#

looking at this code still traumatises me...

#

i guess at least my custom auth has got a little better than when i started

#

i.e. linear search over all keys

valid jetty
#

thank you rust..

formal belfry
#

another useless discord feature gawdamn

lavish frigate
#

what is your latest hobby

formal belfry
#

it keeps changing

formal belfry
#

got into it uh

#

today.

quartz herald
#

anyone know if its possible to make a plugin that auto sends a meesage when a channel cooldown is down?

fleet cedar
#

Spam plugin doesn't sound like a good idea

quartz herald
#

no, not spam Im a seller on a black market

#

but I keep forgetting to send my sell message

#

and im losing buyers this way

#

an auto post would be perfect for that

nimble bone
elder scaffold
valid jetty
winged mantle
#

yes

shrewd leaf
#

making a bot for a server im in using python (only coding lang i know to use 😭 ), anyone know a good free host i could use for it? i know i could just run it on my own laptop but i'd rather not have it be eatin resources

fleet cedar
#

All the good free hosts have already been exploited by cryptominers and the like

#

There are none left

shrewd leaf
#

🫡

#

i do have an old tablet i dont rlly use anymore, any way i could possibly run the bot using that lmao
considering its a pretty old tablet tho it may run slow right

valid jetty
#

if you have like an old desktop computer which you dont use anymore

#

you could use that

shrewd canopy
valid jetty
#

thats cool

#

its cooler because i get the unsigned ones for free

fn u64::max() -> u64 {
    return 18_446_744_073_709_551_615;
}

fn u64::min() -> u64 {
    return ~u64::max();
}

fn u32::max() -> u32 {
    return 4_294_967_295;
}

fn u32::min() -> u32 {
    return ~u32::max();
}

fn u16::max() -> u16 {
    return 65_535;
}

fn u16::min() -> u16 {
    return ~u16::max();
}

fn u8::max() -> u8 {
    return 255;
}

fn u8::min() -> u8 {
    return ~u8::max();
}
fleet cedar
#

Personally I'd do u64::min = 0, u64::max = ~u64::min

vocal bobcat
winged mantle
#

cool

#

nothing cursed whatsoever about using something react like for games

#

why use unreal engine when you can use react ported to discord approvestare

valid jetty
#

this is fun

#

that you can do this instead of making actual functions

formal belfry
#

banana is now xcb : O no more xlib

#

man this config language is beautiful 😍

valid jetty
#

wait omg

#

the syntax highlighting is having a stroke

#

but it works lmfao

formal belfry
#

banana

placid cape
valid jetty
#

yeah !!

#

@hoary sluice i found this while cleaning my laptop

balmy lintel
#

clean your laptop by tossing it into water

fleet cedar
#

Defile your laptop by tossing it into hot dog water

shrewd leaf
#

baptise your laptop by tossing it into holy water

formal belfry
#

steve jobs your laptop by making it stand up in a toilet

valid jetty
#

@hoary sluice @fleet cedar is this sane

valid jetty
#

no its okay i just didnt know lol

#

i thought they did like, attributes or proc macros somewhere to define them

lucid trail
#

I thought the lengths of things like ^^^^----------^^^^ or | were calculated

valid jetty
#

ok they dont hardcode it

#

i was wrong

#

that file is just what the compiler emits when compiling an erroneous file

#

that way it can be used for testing

lucid trail
#

you're looking at tests too

valid jetty
#

yes

#

i was gonna say lol

valid jetty
#

idk of a better way to do it

#

seems to work tho

#
[limits.le:6:5] f64 f64::MAX = 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000
[limits.le:6:5] f64 f64::MIN = -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000
[limits.le:6:5] f32 f32::MAX = 340282346638528859811704183484516925440.000000
[limits.le:6:5] f32 f32::MIN = -340282346638528859811704183484516925440.000000
spark tiger
#

guh i was expecting the debugger access

placid cape
#

got the same message

fleet cedar
#

Wow, fastest and most performant?

dense sand
#

me when ai slop

spark tiger
hoary sluice
#

@valid jetty @fleet cedar @placid cape any of yall got the link to the site that show aoc leaderboard beyond 100 ppl?

hoary sluice
hoary sluice
#

ty

hoary sluice
#

and i think u could link to a specific person

#

i need a link to #115 2023 on my resume 🙂

valid jetty
#

if the person wrote this website correctly (using ids) you can still link to it

#

no they didnt

#

horror

hoary sluice
valid jetty
#

WHY IS NOONE USING IDS

hoary sluice
#

lol i drop 102 places on the median lb

#

cause i have 4 top 10 finishes out of 7 lb spots

valid jetty
#

having an id is great for this kind of thing 😭

hoary sluice
#

how am i gonna explain to an interviewer that im too incompetent to solve hard ploblems 😭

valid jetty
hoary sluice
#

yea ik

#

well it doesnt here

#

but i can link to my profile

valid jetty
#

yeah because this page doesnt use ids

#

only classes

#

WAIT @hoary sluice YOU BEAT ME GLOBALLY IN 2024 NOOO

placid cape
valid jetty
#

wow you guys both beat me globally...

#

@placid cape you even beat eagely lmao

placid cape
#

i beat both of you only because of the last day

#

yeah

valid jetty
#

i got points on the last day but not enough to beat either of you two lmao

placid cape
valid jetty
#

it was exactly as i predicted lol

#

no points on p1 but just barely points on p2 because of its lack of existence and my knowledge of that lack of existence

hoary sluice
#

i did d25 properly

#

yall just compared the strings directly i think

valid jetty
#

p2 for what

#

d25?

hoary sluice
#

no just d25

valid jetty
#

oh you said d25

hoary sluice
#

are you blind it says edited

valid jetty
#
import sys

def can_fit(ls, ks):
    return not any(l == '#' and k == '#'
        for lr, kr in zip(ls, ks)
        for l, k in zip(lr, kr))

def solve(c):
    check = lambda i: [b.split('\n') for b in c.split('\n\n') if all(c == '#' for c in b.split('\n')[i])]
    ls = check(0)
    ks = check(-1)
    return sum(1 for l in ls for k in ks if can_fit(l, k))

with open(sys.argv[1]) as f:
    print(solve(f.read()))
``` ![blobcatcozystars](https://cdn.discordapp.com/emojis/1026533090627174460.webp?size=128 "blobcatcozystars")
valid jetty
pearl stagBOT
# placid cape <https://github.com/xhyrom/aoc/blob/3c56af20c6dd8602b70c7c1a5e25b5408f4abc68/202...

solution.py: Lines 5-27

def schematic(grid: list[str]) -> list[int]:
    return [
        sum(1 for row in range(len(grid)) if grid[row][col] == "#")
        for col in range(len(grid[0]))
    ]


def locks_keys(filename: str) -> tuple[list[list[int]], list[list[int]]]:
    data = [x.splitlines() for x in open(filename).read().split("\n\n")]

    locks = list(map(schematic, [d for d in data if d[0].count(".") == 0]))
    keys = list(map(schematic, [d for d in data if d[-1].count(".") == 0]))

    return locks, keys


def can_fit(lock: list[int], key: list[int]) -> bool:
    return all(l + k <= 7 for l, k in zip(lock, key))


def part_1() -> int:
    locks, keys = locks_keys("input.txt")
    return sum(1 for lock in locks for key in keys if can_fit(lock, key))
valid jetty
#

yeah really similar to mine

pearl stagBOT
# hoary sluice https://github.com/eagely/adventofcode/blob/main/src/main/kotlin/solutions/y2024...

Day25.kt:

package solutions.y2024

import Solution
import utils.sdnl
import java.io.File

class Day25 : Solution(2024) {

    override fun solvePart1(input: File) = input.sdnl().partition { it[0] == '#' }.let { (keys, locks) -> keys.sumOf { k -> locks.count { l -> l.indices.all { l[it] != k[it] || k[it] != '#' } } } }

    override fun solvePart2(input: File): Any {
        return "me when the chronicle gets delivered"
    }
}
hoary sluice
#

i fixed it afterwards

valid jetty
#

sdnl 😍😍

dense sand
#

guys i cannot believe they named a child after a pubsub platform 😭

hoary sluice
#

its not written for pure readability

valid jetty
#

ok fair

tawny umbra
#

We stan ECDSA-P256

hoary sluice
#

@valid jetty typst couldve been so good but they made whitespace significant

hoary sluice
formal belfry
#

Is there a reference/doc that I can read that explains how to build vesktop with a custom build of vencord?

valid jetty
#

it’s kinda cool

hoary sluice
#

@valid jetty i can remove the wip on icypeas in my resume now cause its kinda usable

valid jetty
#

context

hoary sluice
#

repeating it doesnt help

valid jetty
#

it makes a function lose its return value (it becomes dynamic) which means you can’t use it anywhere in another function, but if you call it at the rendering site it gives you info about the place you’re rendering like the current font, position, etc

#

you CAN however only apply context to the root function and everything else doesn’t need it because it’s inherited from the root function

#

you should research it it’s interesting

hoary sluice
#

i have no idea what you just said but it sounds cool

winged mantle
#

is it advisable to put "familyguy" for this string the documentation claims is unushed

valid jetty
hoary sluice
hoary sluice
#

what does it actually do

#

ive never even defined a function in typst idk whats different about it

valid jetty
#

it’s sort of like ellemeta if you know how that works

hoary sluice
#

nop

valid jetty
#

the function is called with extra stuff and the return value can be swayed as a result so it becomes dynamic

#

it gives the function “context” about stuff where it’s called

#

like the font applied when it’s called

#

otherwise you have no way to do that because functions are idempotent

hoary sluice
#

and then you cant use it in another function?

valid jetty
#

nop because the return value is lost

#

but you can use it if you only put the context keyword on the root function which is called to render on the page

valid jetty
#

hold on gimme like 10 mins

hoary sluice
valid jetty
#

why did you upload your dotfiles 😭

#

do you really have that little projects

valid jetty
#

it picks the literal text foo if the lang is jp, else bar

hoary sluice
valid jetty
#

but if you try to call it

#

it wont let you

#

because you can have a different lang at different points in the file

#

so you add the context keyword ```rs
#let foo() = context if text.lang == "jp" [foo] else [bar]

hoary sluice
#

oh and it checks if the lang is jp at the call site?

valid jetty
#

however now, you never know at the function definition what the return type will be

#

so the return type is lost

hoary sluice
#

why dont you know the return type

valid jetty
#

hence you can no longer call foo in other functions

hoary sluice
#

if foo and bar are the same type

valid jetty
hoary sluice
#

i hope you have a translater

valid jetty
#

you get this thing called "content" which is just anything that can be rendered

#

you no longer have real types

hoary sluice
#

oh lol

#

why tho

valid jetty
hoary sluice
#

id like to see you try

valid jetty
#

when you do context you just do type erasure

#

at the expense of extra call-site info about the file in the function call

hoary sluice
dense sand
#

ok tbf jetbrains ai autocomplete is complete ass

hoary sluice
#

i only use zoxide 🙂

valid jetty
#

i feel like you dont have to even really be a programmer to know what cd is tho

#

or a sysadmin

#

or know anything about computers much at all

valid jetty
hoary sluice
#

44k a year is like grocery store

visual shellBOT
# valid jetty lc.octr

-# <:i:1363558878872080414> ​ 🇩🇪  German   ​ ​ ​​<:i:1363556471303831552> ​ ​ ​ ​🇺🇸  English  

We offer meaningful work in a dynamic environment with flexible working hours and attractive training opportunities. This position has a minimum collective agreement salary of EUR 44,450 gross per year. A market-conform collective agreement overpayment is offered depending on qualifications and experience.```
valid jetty
#

fun

#

ok but what i meant is basically

hoary sluice
valid jetty
#

in if text.lang == "jp" [foo] else [bar] text.lang depends on the call being in a context block

#

but what you can do, is this

#
#let foo() = text.lang == "jp" // doesnt need context block
#let bar() = context if foo() [a] else [b]
#

as long as the root function call has a context

#

everything that depends on a context will be callable without type erasure if its called within that function

#

its similar to ellemeta in the way that the function gets extra info about the call site when its called

#

you get all of this if you need it

hoary sluice
#

i was thinking of ellemeta

valid jetty
#

lmfaooo

valid jetty
#

but yes conceptually its like ellemeta but you dont lose the return value when you use ellemeta

fleet cedar
#

I don't know what you mean by "loses its return value", doesn't the context expression just produce an opaque content

valid jetty
#

yes, which is essentially losing its return value

fleet cedar
#

No?

valid jetty
#

you can no longer use it in stuff like conditions of if statements in non-contextual functions

#

because even if it returns a boolean it will return content

fleet cedar
#

It's a value, you just can't inspect it

#

Some sort of lazy evaluation like thing

valid jetty
#

hence "loses the return value" though i guess i meant more like void* than void

#

if you know what i mean

#

obviously the return value still exists you just dont know what it is anymore

#

it is essentially like returning an any in typescript or whatever

#

or i guess more like returning unknown because it wont let you use the value

hoary sluice
#

this is oriented towards high school graduates with windows experience

#

and they pay 34

valid jetty
#

fuck windows

hoary sluice
shrewd canopy
hoary sluice
#

yes

shrewd canopy
#

try gaming on linux then

hoary sluice
#

works perfectly

#

yall keep bringing the same argument like we havent heard it a million times already

#

valorant doesnt work, go cry about it

shrewd canopy
hoary sluice
#

im not paying 20 euro to prove a point

#

steam literally made their handheld console use linux and theyre the biggest gaming platform like there is nothing to argue here

#

"gaming doesnt work on linux" was an argument in 2017

#

it only doesnt work if theres a required windows kernel anti cheat; the actual game works perfectly fine but the devs block you from playing because youre not using their anticheat - this affects like 3 games

#

roblox explicitly tries to make it NOT work on linux and yet it still does, perfectly

shrewd canopy
#

they made their anticheat once lenient enough to run on linux, and it was a mistake

hoary sluice
lavish frigate
#

90% of the time there is an active reason against linux support instead of "laziness" and it seems like 90% of linux users cant seem to grasp this

hoary sluice
#

the official android client of roblox

hoary sluice
lavish frigate
#

😭

shrewd canopy
#

Linux kernel used in Android is massively different from normal kernel

formal belfry
shrewd canopy
#

because i felt like it

hoary sluice
formal belfry
#

How do i learn code

hoary sluice
#

the only way it doesnt work on linux is if they make a windows-only anticheat and block anyone whos using linux

#

like val

lavish frigate
#

laziness is very much an argument people are trying to make what the hell are you talking about 😭

hoary sluice
#

yea maybe in 2020 or smth

#

why would you argue laziness when the game works

#

and today almost every game will run flawlessly

shrewd canopy
#

afaik container is just a fancy VM

hoary sluice
hoary sluice
lavish frigate
#

im not even talking about a specific game what are you trying to say in that message

hoary sluice
#

some, very rarely, with adjustments required

lavish frigate
#

you are arguing with proton in mind, proton is half a step away from just booting up a vm/emulator, im specifically talking about people who want native ports of their games
they do not realise game developers often have their reasons for specifically not supporting linux

hoary sluice
# lavish frigate you are arguing with proton in mind, proton is half a step away from just bootin...

well yea i know making native linux ports of games, especially those not written in cross platform engines is hard and not worth doing for most game devs, especially indie devs, since linux is a very small portion of the community and theyd likely have way more success just working on more features instead of a native port, but this is why proton was made, its based on wine whose acronym literally means "wine is not an emulator", its translates windows api calls and doesnt emulate a full windows system, hence it has minimal performance impact, and games often result in having better performance than on windows just because theyre running on a linux system

lavish frigate
#

ok

hoary sluice
#

im sure theres people whove opened issues about native ports but its genuinely not neccessary and the devs can keep making windows only games, its perfectly fine as long as they dont implement a windows kernel anti cheat

formal belfry
#

ok

shrewd canopy
#

doesn't wine uses Z: instead of C: for whatever reason

hoary sluice
#

but why would this matter

#

mounting Z allows apps to access your linux file system, eg. when im working in microcap i want to be able to store my project files on my linux file system, not a fake c drive created by wine nested deep in a random directory

lavish frigate
#

gonna add a check to all my apps that checks if there is a drive mounted on Z that contains a linux system then immediately crash, i will also check every single microsecond so the check will use up at least 50% of all system resources at any given time

hoary sluice
#

so you will intentionally slow down all users no matter their os

#

awesome

lavish frigate
#

yes

#

that was the whole point of the second half of the message

hoary sluice
#

i dont think that will actually slow it down by much

valid jetty
valid jetty
#

this maybe/

hoary sluice
#

why are you even comparing to c

valid jetty
#

im not gonna talk about all the features because thats right below that message

formal belfry
#

When building vesktop, I see it is using downloadVencordFiles() function to download the latest release of Vencord from github. I want to use my local checkout instead. Is there a way to do that without modifying the vencordLoader?

valid jetty
#

its C ABI compliant, all C code is directly callable from within elle with no wrappers

#

hence, comparison to C

hoary sluice
#

ok

#

wait does rust 2024 allow async fn in traits???

#

that wouldve been useful in my diploma thesis

fleet cedar
#

That's unrelated to editions

#

That's since 1.75

lavish frigate
formal belfry
hoary sluice
#

why did noone tell me that 😭

#

i thought async_trait was just a thing you had to use

fleet cedar
#

2021 edition was added in 1.56 and is supported in every version since

lavish frigate
valid jetty
hoary sluice
fleet cedar
#

They do

hoary sluice
#

why make year editions instead of big versions

#

i thought editions were for major syntax changes?

fleet cedar
#

Editions are for non-backward-compatible changes

#

This allows evolving the language in a backward-compatible way, since code written in previous editions still works

hoary sluice
#

which is just a major version bump in semver?

fleet cedar
#

Major version implies breaking changes

hoary sluice
#

we should be on rust 4.10 or something not 2024

fleet cedar
#

Rust 1.86 supports 2015 edition, 2018 edition, 2021 edition, and 2024 edition

hoary sluice
fleet cedar
#

A 2.x would mean that there exists old code that it can't compile anymore

hoary sluice
#

ah ok

valid jetty
#

im still on rust 2021 tbh

#

rust is literally squatting all the good names

#

should i say anything else about this

#

rather this

hoary sluice
#

woohoo im with the cool kids

hoary sluice
valid jetty
winged mantle
#

lol that's funny i have to do polyfill for chrome because only firefox/safari supports toHex

#

suffering

valid jetty
#

wha

#

.toString(16)..?

winged mantle
#

i guess that can be my polyfill

#

imagine monkey patching Uint8Array just for that

valid jetty
#

idk

winged mantle
valid jetty
#

in what way

winged mantle
#

it just returns comma separated values

#

and not hex encoded

valid jetty
#

array.map(x => x.toString(16))

winged mantle
#

mind blown...

valid jetty
#

unless you wanna convert the whole UInt8Array into a single hex string

pearl stagBOT
# supple whale https://github.com/ThaUnknown/uint8-util/blob/master/util.js#L21-L41

util.js: Lines 21-41

export const arr2hex = data => {
  const length = data.length
  let string = ''
  let i = 0
  while (i < length) {
    string += encodeLookup[data[i++]]
  }
  return string
}

export const hex2arr = str => {
  const sizeof = str.length >> 1
  const length = sizeof << 1
  const array = new Uint8Array(sizeof)
  let n = 0
  let i = 0
  while (i < length) {
    array[n++] = decodeLookup[str.charCodeAt(i++)] << 4 | decodeLookup[str.charCodeAt(i++)]
  }
  return array
}
supple whale
#

here u go

winged mantle
#

horror

supple whale
#

fastest possible hex->number and number-> hex conversions for JS possible

#

faster than most native code out there

winged mantle
#

hm nice thanks but i think i want to torture myself

supple whale
#

i also have 7 alternatives which are used as a benchmark baseline

#

:^)

valid jetty
#

can you just do like

winged mantle
#

is there not a more ... simple way

#

thati s why i was slightly horrified

supple whale
#

yes, but they are all a lot slower

winged mantle
#

it's like programming java

#

eh this is not perf critical i should use google

valid jetty
#
Array.from(array).map(x => x.toString(16).padStart(2, '0')).join('');
``` this? or something
supple whale
#

i wrote that code targetting 100Gbit/s data streams

#

so it needed to be faster

#

because nodejs's native hex utils for this were too slow

winged mantle
#

i just found it hilarious the idea of needing a polyfill for chrome in 2025

#

because i am gonna use toHex if it's supported

#

that seems sensible

supple whale
#

nah toString(16) is the expected way

#

its just mad slow

#

toHex is non-standard afaik

winged mantle
#

oh i assumed it was just super new

#

i mean... looks like that

supple whale
supple whale
#

which was never standardised

#

but ff being ff, implements all the wrong shit

winged mantle
#

there's an example with a polyfill

supple whale
pearl stagBOT
winged mantle
#

so basically your code but less efficient

supple whale
#

yep, but as you might imagine, its insanely slow

winged mantle
#

sure but this is for oauth

#

i was trying to implement code verifier and challenge and just filling a 64 byte buffer with values and converting it to hex seemed like a clean way to create a 128 char random string

#

other lazy solutions]

supple whale
#

oh lord no please

winged mantle
#

generate multiple uuids and glue them to each other

supple whale
#

just use crypto.randomUUID()

winged mantle
#

too short

supple whale
#

or randombytes

winged mantle
#

yeah, you need to encode them somehow as a string? 😭

#

and hex is kind of the most obvious way?

#

seems like the ideal would be base 66

#

as it allows A-Z a-z 0-9 -._~

#

but this fries my brain

supple whale
#

do bin

winged mantle
#

just urlencode binary data?

#

but there's a set of allowed characters

#

😭

jade stone
#

zsh is insane

all this to clear the scrollback buffer (reading the docs took an hour)

zle -A clear-screen _orig_clear_screen
_CLEAR() {
    printf '\033[3J'
    zle _orig_clear_screen
}
zle -N _CLEAR _CLEAR

bindkey  _CLEAR
valid jetty
#
const numberFunctions = {
    toHex() {
        return (this as number).toString(16).padStart(2, '0'); 
    }
}

type NumberFunctions = typeof numberFunctions;
interface Number extends NumberFunctions {};
Object.assign(Number.prototype, numberFunctions);

const arrayFunctions = {
    toHex() {
        return (this as unknown as any[]).map(x => x.toHex()).join('');
    }
}

type ArrayFunctions = typeof numberFunctions;
interface Array<T> extends ArrayFunctions {};
Object.assign(Array.prototype, arrayFunctions);

console.log([133, 241, 3].toHex());
#

blobcatcozystars for no reason at all

winged mantle
#

seems like the official oauth site is using this

#

i wonder what license it's under

#

it's also using snake case

supple whale
#

fucking perish

winged mantle
#

oh wait

valid jetty
winged mantle
#

what is this site...

valid jetty
#

how else are you gonna polyfill toHex in all contexts if not monkey patching the global proto

supple whale
#

why would u polyfill a non-standard api in all contexts

winged mantle
#

numbers to hex doesn't even exist

valid jetty
valid jetty
supple whale
#

@winged mantle is simply coping about having to do number.toString(16)

jade stone
supple whale
winged mantle
#

i might have been mildly trolling

winged mantle
valid jetty
#

ok well

const arrayFunctions = {
    toHex() {
        return (this as unknown as any[]).map(x => x.toString(16).padStart(2, '0')).join('');
    }
}

type ArrayFunctions = typeof arrayFunctions;
interface Array<T> extends ArrayFunctions {};
Array.prototype.toHex ?? Object.assign(Array.prototype, arrayFunctions);

console.log([133, 241, 3].toHex());
``` its silly
jade stone
#

i wonder if you could create base64 by just calling toString(64) a bunch

winged mantle
#

😭

supple whale
supple whale
#

thank you for coming to my ted talk

winged mantle
#

i wasn't trying to convert numbers to hex

#

that's easy

valid jetty
winged mantle
#

when i said polyfill i was considering doing something like

if ("toHex" in array)
value = array.toHex()
else
value = // messier impl

valid jetty
#

husk

winged mantle
#

something tells me this doesn't work properly

valid jetty
#

value = array.toHex?.() ?? array.map(x => x.toString(16).padStart(2, '0').join('')

winged mantle
#

anyway it's not your duty to spoonfeed me

winged mantle
#

you'd need to do .toHex.?()

valid jetty
#

yeah

winged mantle
#

it doesn't map to a string array but rather another bytearray

#

so it doesn't convert to hex at all

#

why does safari also implement it and the mdn page mention nothing about it not being standard

#

the proposal does seem to be... recommended for implementation?

#

i am just gonna treat this like eventually chrome will add it

winged mantle
#

hmm i made a realistation

#

i think the function i want is toBase64

#

(which is also safari and firefox only)

#

it looks like oauth expects base 66 idgi lol

#

but base64 with characters replaced is close enough

jade stone
#

tf is base66

winged mantle
#

they have two extra chars

#

looks like in firefox and safari you can do it all in one step guh array.toBase64({ alphabet: "base64url" })

jade stone
winged mantle
#

but in chrome you need to do btoa(String.fromCharCode(...new Uint8Array(array))).replace("+", "-").replace("/", "_").replace(/=$/, "")

#

❤️

#

perfection

pearl stagBOT
# winged mantle https://github.com/zloirock/core-js/blob/7027fc68e6165eae24be268ad945825c5ff3bf7...

esnext.uint8-array.to-base64.js: Lines 18-49

if (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true }, {
  toBase64: function toBase64(/* options */) {
    var array = anUint8Array(this);
    var options = arguments.length ? anObjectOrUndefined(arguments[0]) : undefined;
    var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;
    var omitPadding = !!options && !!options.omitPadding;
    notDetached(this.buffer);

    var result = '';
    var i = 0;
    var length = array.length;
    var triplet;

    var at = function (shift) {
      return charAt(alphabet, (triplet >> (6 * shift)) & 63);
    };

    for (; i + 2 < length; i += 3) {
      triplet = (array[i] << 16) + (array[i + 1] << 8) + array[i + 2];
      result += at(3) + at(2) + at(1) + at(0);
    }
    if (i + 2 === length) {
      triplet = (array[i] << 16) + (array[i + 1] << 8);
      result += at(3) + at(2) + at(1) + (omitPadding ? '' : '=');
    } else if (i + 1 === length) {
      triplet = array[i] << 16;
      result += at(3) + at(2) + (omitPadding ? '' : '==');
    }

    return result;
  }
});
winged mantle
#

which do i use

#

oh wait can base64 end with double equals

#

replace(/=?=$/, "")

#

so good

#

cursed

#

but at least if chrome adds support i can just strip this out

#

🙏

humble kestrel
#

code

formal belfry
formal belfry
royal nymph
#

hop on

Array.from(arrayLike, x => x.toString(16).padStart(2, "0"));
jade stone
lavish cloud
#

Working on a new thing

jade stone
#

couldn't find openssl
found version 3.4.1

spark tiger
formal belfry
#

bananas

formal belfry
fleet cedar
#

But it's slightly better than the others

formal belfry
hoary sluice
#

and configuration via nix

formal belfry
#

who knowz

#

idk anything about nixos

hoary sluice
valid jetty
#

@hoary sluice i asked ai to write tic tac toe in elle and surprisngly it did really well

#

after i gave it a basic example it wrote the whole tic tac toe with only 2 errors

#

that was kinda insane??

#

i mean it didnt use enums but still

#

i wrote it myself afterwards

#

entire tic tac toe in 190 lines, including draw state and game resetting and everything

hoary sluice
valid jetty
#

and that includes button position calculations and stuff

hoary sluice
#

im guessing the errors were cause it thought its c?

#

or rust

valid jetty
#

yeah but considering it has absolutely no input about elle code to train on other than a single basic file it did well

hoary sluice
#

when i ask llms for typst help they give me md

valid jetty
#

no the error is that it tried to make a static length array like in rust

hoary sluice
#

i dont think thats how you make arrays in rust

valid jetty
#

that is basically the only thing, after i fixed that it just compiled and worked

valid jetty
#

like with a length known at compile time

hoary sluice
#

you can do [type; len]???

valid jetty
#

yeah???

hoary sluice
#

since when???

valid jetty
#

since like forever??

#

😭

#

but keep in mind these are static arrays

#

they have to be evaluatable at compile time

hoary sluice
#

yea ik

valid jetty
#

its just the rust way to make int[5] in C i guess

formal belfry
#

llms are going to take all the programming jobs 🤫

valid jetty
#

i mean no they arent

#

but im just surprised that the llm did such a good job at generating valid elle code

#

if i asked it like 3 months ago it would be 100 syntax errors away from being compilable

winged mantle
#

idk it wouldn't surprise me if it confuses some browsers

#

invalid://invalid.invalid

#

it';s just to keep the url constructor happy as all i grab from it is url.pathname + url.query + url.hash

#

trying to test on internet explorer ig i need mark of the web

#

oh nvm what's the comment you used to need to add

#

it doesn't work on internet explorer 😦

#

you can't do new URL

valid jetty
#

object doesn’t support this action

winged mantle
#

ie kinda good

#

it even has a debugger

valid jetty
#

so does chrome 😭

winged mantle
#

by the time i actually developed stuff i stopped using ie

#

so i never knew the devtools actually had useful features at all

#

internet explorer is one of the worst browsers by today's standards

#

i was surprised the devtools were actually useable

#

it feels funny seeing actually kind of nice devtools which are reporting that Object.setPrototypeOf does not exist

#

hasn't that existed for at least a decade

#

it even does one thing i can think of better than chrome

#

oh nvm chrome is not as insane as i remembered

#

i swear when testing enter was running the line instead of filling in auto complete in the console

#

i must have presed ctrl+enter somehow?

#

chrome and firefox devtools do different things more annoyingly we need to bring back internet explorer

nimble bone
#

@winged mantle the kode tode

#

make Sink Premium

winged mantle
#

true

dense sand
#

@valid jetty since i know u actively use notion, is there anything you miss in the app?

shrewd leaf
winged mantle
#

only you to blame

hoary sluice
#

i did the naive solution and it worked but apparently theres a faster solution (still n^2) where you just ||for each domino, scan to the left end and to the right end and compute the net force applied on the domino||

#

react reference???

formal belfry
#

99 words per min

#

my scores

valid jetty
#

@hoary sluice arrays in ictpos when

hoary sluice
#

i alr have arrays

hoary sluice
#

x:xs lists in lambda calculus 🙂

#

im working on reorganizing the project

#

cause i copied elle project structure and made lexer/enums.rs, parser/enums.rs and interpreter/enums.rs but i want an mvc structur

#

e

formal belfry
#

window swallowing

hoary sluice
formal belfry
#

too hard

#

me writing a wayland compositor would be 99% of the time code not worky and that 1% would be after hours of struggle

nimble bone
valid jetty
hoary sluice
fleet cedar
#

Citation?

valid jetty
#

trademark?

hoary sluice
#

citation would be a decent name for a lang but its not searchable

valid jetty
valid jetty
#

it’s like citation ish

hoary sluice
#

citrus already exists and i like icypeas

valid jetty
#

fair

hoary sluice
#

raylib is that a tsoding reference

#

dynamic arrays in elle when

valid jetty
#

tsoding would totally do it

hoary sluice
#

@valid jetty do u have ci cd

valid jetty
#

nop

#

i probably will do that in the future

hoary sluice
#

only thing i left is errors and precedence in parser

#

precedence is used only by the parser and will for the foreseeable future stay that way

valid jetty
#

mvc for a compiler husk

hoary sluice
#

Value from interpreter might be used at an analysis stage or smth

hoary sluice
valid jetty
#

i share values from all parts together

hoary sluice
#

yea that was getting ugly

dense sand
#

i hate spring boot
i hate spring boot
i hate spring boot
why is my kafka not registering my consumers 😭

hoary sluice
#

importing parser::enums::Expression in the interpreter

valid jetty
#

there are tokens in the compiler and types in the parser, not ideal but it somewhat makes it better because i can pass things around

hoary sluice
#

you hate spring boot
you hate spring boot
you hate spring boot
why is your what not what your what

valid jetty
#

although not extensible for other targets

hoary sluice
valid jetty
#

like, instead of constructing a seperate compiler-specific operator for binops i just use a token and pass that through the parser when contructing the ast node which is used for codegen

#

or, instead of making a seperate type parser and constructing a compilation-target agnostic type i just construct the type directly

hoary sluice
#

what

dense sand
hoary sluice
#

you mean youre using token inside the parser and compiler instead of making new types?

valid jetty
#

sorry i realized what you meant

#

Type as in, elle's types

#

like i32[], u64 *, etc

#

types are not constructed in a compiler-agnostic way

hoary sluice
#

wdym compiler specific binop

#

you only target qbe

valid jetty
#

i know thats exactly why i did it like this lol

#

but its not ideal if i wanna add say, js or wasm in the future

hoary sluice
#

and what does that have to do with moving your data types to model

valid jetty
#

i mean it doesnt really im trying to explain my thought process for why i structured it how i did

hoary sluice
#

i dont understand how this relates to elle types

#

expression shouldnt be defined in the parser if its also used in the compiler

valid jetty
#

it is not, im saying types are directly constructed in the parser

#

to create (i32, (string, f64 *)[]) you need to be able to parse such a type

#

and this ties the qbe types almost directly with the parser which is parsing these types

#

the types are directly constructed at the parsing time

valid jetty
#

its not if i wanna add more targets, but it is because i dont need to create a seperate generic structure that can be then narrowed down by the compilation target

#

like instead of returning Type as Array<Type> | Pointer<Type> | etc which is then properly constructed in each backend i can specifically generate the right type at parsing time

hoary sluice
#

what how does the 2nd part of this sentence make any sense

valid jetty
#

if that makes sense

#

uhhhhhhhhh

#

ok start over

hoary sluice
#

you can still do all of this, the only change is

use crate::parser::enums::Expression;

to

use crate::model::Expression;
#

most of these arent even enums

#

token is a struct, location is a struct

valid jetty
#

uhhhhh sure i guess but isnt that essentially what the enums file is doing

#

yeah idk

#

i just called it enums when i first wrote it and it stayed that way

hoary sluice
#

less organized

valid jetty
#

the compiler part doesnt follow that anymore

#

everything is properly split apart

hoary sluice
#

i copied it from you

valid jetty
#

codegen

#

then stuff used within codegen

#

primitive/top level

#

""""model""""

#

then the thing that ties it all together

valid jetty
#

it was called enums when i first started the project back in april 2024

#

it would be a good idea to rename it to model or something today

#

but the parser is due a rewrite anyway so

#

im waiting for that

hoary sluice
valid jetty
#

shrug

#

parser using items from the lexer seems reasonable to me

#

because its operating on the output from the lexer

hoary sluice
#

it shouldnt

#

the parser shouldnt be aware the lexer exists

#

if the lexer is deleted and the parser receives a hardcoded token stream it should still work

valid jetty
#

the lexer parser and compiler all know each other exist because of the fact there is only a single compilation target

hoary sluice
#

you mean you use one token enum for all tokens?

valid jetty
#

yes 😭

hoary sluice
#

so do i and ive been planning on changing that

valid jetty
#

i mean im doing it in order of code size

hoary sluice
#

cause its annoying to parse the name of an identifier out of a token

valid jetty
#

compiler first because it used to be 2 files making up 8k lines of code

#

next parser then lexer

valid jetty
#

hm

#

i have parser.get_identifier for this

hoary sluice
#

function name will never not be an idenfitier cause thats enforced by the parser

#

if its not an identifier then it wont be parsed as a function assignment

valid jetty
#
pub fn get(&self, expected: &[TokenKind]) -> String {
    let mut found = false;

    for kind in expected {
        if &self.current_token().kind == kind {
            found = true;
            break;
        }
    }

    let token = self.current_token();

    if !found {
        elle_error!(token.location.borrow().error(format!(
            "Expected one of {:?} but got {:?}",
            expected, token.kind
        )))
    }

    let Token {
        value: ValueKind::String(identifier),
        ..
    } = self.current_token()
    else {
        elle_error!(token.location.borrow().error(format!(
            "Expected one of {:?} for function name, got {:?}",
            expected,
            self.current_token()
        )));
    };

    identifier
}

pub fn get_identifier(&self) -> String {
    self.get(&[TokenKind::Identifier, TokenKind::ExactLiteral])
}
``` keep in mind this code is at least 5 months old and has never been refactored
solid gazelle
hoary sluice
#

the parser only parser a function assignment if it starts with an identifier

#

but the interpreter cant be sure of that

#

i could unwrap it but then i have an unwrap and thats ugly

valid jetty
#

why did you copy the elle structure i made it while drunk or half asleep or both

hoary sluice
valid jetty
#

oh ok

#

good

#

dont copy more unless its the compiler 🙏

formal belfry
#

ice on peas

hoary sluice
#

oh you dont even have tokenvalue

lavish frigate
#

😭 imagine if your github profile had 100% issues id end it all

valid jetty
#

i do

#

lol

#

its lower down but its there

hoary sluice
valid jetty
#

where do i see that

formal belfry
#

u gotta enable it

lavish frigate
formal belfry
#

in here

#

activity overview

hoary sluice
#

that makes no sense

valid jetty
lavish frigate
valid jetty
formal belfry
valid jetty
#

Token is made up of both of them

hoary sluice
valid jetty
#

idk 😭

lavish frigate
#

i try to avoid making issues because every time i make one i feel like ive just overlooked something 🔥

#

so when i see an issue i just fix it myself 😭

valid jetty
#

lol literally so me

#

eagely will hate me because of 1 of the 2 problems in computer science: naming things, cache invalidation, and off by one errors

hoary sluice
#

naming things, cache invalidation, and windows

valid jetty
#

lmfao

hoary sluice
#

most problems in computer science are caused by windows

valid jetty
#

and lua

hoary sluice
#

meh

#

lua is chill

#

at least its not windows

valid jetty
#

and nowadays ai too

hoary sluice
#

like sure i dont like it but me and lua are chill

valid jetty
#

i helped interview potential CS teachers today and all 3 were honing in on how they love ai (one was considerably better than the others)

hoary sluice
#

a pupil interviewing teachers?????

valid jetty
#

it wasnt just me lol

hoary sluice
#

my cs teacher is so based

valid jetty
#

ok listen to this:

#

this guy:

hoary sluice
#

expressly hates ai

valid jetty
#

oh my god my keyboard is killing me

hoary sluice
#

makes fun of it

#

says he doesnt care if his students use ai and he knows most of them do and its fine as long as they can explain the code

#

which they cant

#

so they fail

valid jetty
#
  • has simulated cpus and wrote his own instruction sets before
  • has used python, c, c#, c++, java, javascript before, so hes just a language agnostic programmer
  • has experience in opengl with c++
  • has written a whole project in C
  • has written a game in c# with unity and unreal but also doesnt like the language (understandable)
  • favourite data structure is an array of pointers
  • did not spend half of the interview talking about how computer science is evolving and we need to adapt by giving microsoft money to train llms
valid jetty
#

and HE ASKED MY WHAT MY FAVOURITE DATA STRUCTURE IS (thats a question i asked all candidates because it really threw them off and made them think)

hoary sluice
solid gazelle
#

oh this is progaming channel

valid jetty
valid jetty
#

he was the only one to do that

hoary sluice
valid jetty