#programming

1 messages · Page 25 of 1

hoary lion
#

searching it up, seems like all languages are some kind of mix

tender river
#

anyway the important thing is thinking about how your data flows

amber fractal
#

Not hard to make anyways, that one is just IPC sockets which have a lot of libs in any language.

tender river
#

any program fundamentally just moves a bunch of data around small-ish functions

knotty current
tender river
#

and if the data dependencies are simple the program is also simple, and if they are some cyclic self referential hellhole they become hard to think about

opaque sigil
#

chat, is there a way to invert ONLY the pdf page in chromium's viewer as opposed to the entire viewer like you can with pdf.js (without running pdf.js inside chromium)

hoary lion
#

very interesting NeurOhISee

dense cosmos
#

morning

#

i wonder how to make language bindings

tender river
# hoary lion very interesting <:NeurOhISee:1136209034966483084>

anyway instead of listening to me go learn stuff (like a good programming textbook i always recommend is SICP since it teaches a bit of everything) and build stuff (the more different kinds of projects you do the more you will learn, for example i work on languages, networking, low level stuff, each area has different methods of thinking about stuff)

dense cosmos
#

or use them

hoary lion
#

i was like super mad today because rocm and cuda's stablediffusion results are different
and eventually i ended up looking PRNGs, but most of them are like in C++ or Rust neuroDeadge
too harsh for smooth brain ML only person

tender river
#

i know ML
you know ML
we are not the same

opaque sigil
#

which is why it's often automated

dense cosmos
#

also wondered why not make a build system that uses c++

hoary lion
#

52 year old language???

#

damn

#

all the good names are taken fr

opaque sigil
dense cosmos
dense cosmos
opaque sigil
#

one extern c block probably

dense cosmos
#

I should try that later

#

anything but cmake

#

for now, minecraft with friends

opaque sigil
#

have fun neuroHypers

#

but yeah, iirc nob targets c89 so it should work pretty much everywhere which is nice

#

i haven't used it for massive projects but the few smol ones i've used it with it's been really nice

dense cosmos
#

is there any reason you couldn't use it on big projects?

opaque sigil
#

i just haven't had any new ones

#

it should work just fine realistically, unless you throw something gigantic at it maybe

dense cosmos
#

I mean, why use cmake over nob

#

if it works

#

interop?

opaque sigil
#

cmake lets you fetch dependencies automatically if you're into that

dense cosmos
#

oh, hmm

opaque sigil
#

and is generally just more extensive

#

tbf there's nothing stopping you from just using curl and doing that with nob too

#

you are just writing c/c++ after all

dense cosmos
#

true

hoary lion
#

speaking of cuda stuffs, i should reinstall torch

#

cuda was not working, but with now the blessing of uv, there is automatic setup

opaque sigil
#

how would uv help with cuda shenanigans Hmm

hoary lion
#

i saw this from other server related to lms, let me forward it

opaque sigil
#

oh damn

#

that's pretty dope

#

i sure love how installing torch results in a 6.3GB venv

#

thanks nvidia

amber fractal
olive sable
#

Goodnight neuroWaveA

amber fractal
opaque sigil
hoary lion
#

cuda install is taking forever

knotty current
#

did i just fall victim to sudo pacman -Syu catdespair

opaque sigil
#

One thing you could use this for, as far as I can tell it just allows you to define some blas operations in shaders

#

Wdym

knotty current
#

ok maybe i just need to reboot

amber fractal
knotty current
hoary lion
#

i think my regular deletion of temp and random msis made me cooked

#

wish me luck chat

knotty current
hoary lion
#

VISUAL STUDIO ARGHH

knotty current
hoary lion
#

oh you pure soul

#

you do not have experience with windows

#

and its cuda

#

and c++

knotty current
#

never touched windows in my life

#

briefly tried to use python on windows

#

gave up

hoary lion
#

yk just fuck it we ballin straight to cuda 12.8

opaque sigil
#

Do yourself a favour and just use wsl

hoary lion
#

speaking of that, i should really remove wsl and start clean too

#

its like beyond tangled

opaque sigil
maiden geyser
maiden geyser
hoary lion
#

its just classic windows cuda

knotty current
#

besides i dont understand windows at all

#

i have been with unix my entire life (macos and linux)

#

-# teerible experience with macos btw

olive sable
#

Goodmorning NeuroWave

hoary lion
#

did you just eeeped 50 minutes

maiden geyser
#

morbing

olive sable
#

More like 30 tho

real sierra
#

every goddamn time I see this thing it's in the last place I expect

olive sable
#

The answer is yes

#

I can

real sierra
#

who remembers the complexity

#

gotta be at least one algorithm enjoyer here

amber fractal
#

My brain is failing to solve it without something to write down on

#

Don't actually know the algorithm

real sierra
#

The Tower of Hanoi (also called The problem of Benares Temple, Tower of Brahma or Lucas' Tower, and sometimes pluralized as Towers, or simply pyramid puzzle) is a mathematical game or puzzle consisting of three rods and a number of disks of various diameters, which can slide onto any rod. The puzzle begins with the disks stacked on one rod in or...

ruby timber
#

Good morning

amber fractal
maiden geyser
#

all disks can be moved to tower 3

tender river
olive sable
#

Something like that ye

#

Each layer seems to be more moves

stark needle
tender river
stark needle
#

no

hoary lion
#

hmm

#

i hate tower of hanoi

tender river
hoary lion
#

i forgo the complexity of recursive solution

#

its probably somewhere in my notes

tender river
hoary lion
#

discord is not healthy

#

i though it was my internet

tender river
#

that'll teach me not to quote reply]

tender river
#

to quote reply

#

that's the one

hoary lion
tender river
#

my brain is cooked all i can think of when looking at negation is logic and continuations

hoary lion
#

only able to speak in not operations

stark needle
#

There's a way to algorithmically solve this problem?

#

Btuh

#

Bruh

hoary lion
#

recursive

stark needle
#

I wouldve just implemented bruteforce approach

hoary lion
#

isn't recursive quite brute force anyway

#

its hella inefficent

tender river
hoary lion
#

is there a non recursive way tho

#

very interesting question

ruby timber
maiden geyser
hoary lion
#

call the previous n-1 with the same principle

noble zodiac
#

When something can be solved recursively it can always also be solved without recursion

hoary lion
#

but like it is so counter-intuitive

#

cant think of other way

#

eep

#

already exists

noble zodiac
#

but also a lil bit of recursion never hurt anyone

#

at least if you use tail recursion

hoary lion
#

it has been 50 minutes

#

any day now

#

this is not okay uv

tender river
noble zodiac
#

what example wouldnt work?

#

I dont read wingdings

amber fractal
#

looks like real osu code to me

tender river
#

(yes you can technically do it with a stack)

noble zodiac
hoary lion
#

why steam game is installing its internal data to my c drive even when I explicitly mention it to download it on D

#

what the fuck is unity even about

hoary lion
#

brother

#

🤦

maiden geyser
#

this guy stinks

hoary lion
#

very interesting behavior of unity found

#

love to shove everything in locallow

#

i dont know what is happening anymore

tender river
#

jump with continuation, but the continuation is linear neuroPogHD

#

unless you have stack unwinding in which case it is affine neuroPogHD

#

speaking of linear i should translate towers of hanoi to linear logic for fun

#

hashbrown just abstracts probing

#

is @inline broken?

hoary lion
#

Since when did torch or pip required admin terminal

#

well, anyway finally managed to install

opaque sigil
#

That doesn't seem right

#

I guess if you install it globally it would

maiden geyser
hoary lion
knotty current
hoary lion
#

the red squiggly lines and check mark should not belong together

#

wtf

opaque sigil
#

classic env mismatch

rare bramble
#

restarting the python LSP usually helps with that

amber fractal
#

Another common solution is starting the editor in the venv (for some reason)

opaque sigil
#

Yeah this sounds like the lsp hasn't realised the environment it's in

amber fractal
#

I love starting zed within my devenv

#

Best use of my time

tender river
#

btw, would a gc realistically live in lily? i feel like it shouldnt (nobody uses gc in systems programming even though it can save so much memory smh) but at the same time it will probably have some code for interoperability with lily so you can reuse lily's code for hashmaps etc

#

i wanted to chuck it into a "lily.experimental.gc" module or something but i guess no need since everything is subject to change for now anyway

#

like maybe 500loc rn

tender river
#

i read rust-analyzer-adjacent docs and i from what i read just a parser is not enough to fully utilize incremental compilation, the more complex the LSP code the more it benefits from good structure

sage crag
#

seems reasonable

tender river
#

but the cool thing is that if you implement your LSP code as pure functions it doesn't really matter how you pass data around since caching etc is separate from simple "A -> B" functions that you can plug wherever

sage crag
#

do you think it's worth trying to implement robin hood probing or should i just try and implement chunking

tender river
sage crag
#

the 0x8080808080808080 pattern though

#

could be something

tender river
# sage crag could be something

i remember writing something like occupied * 0x0101010101010101 in one of my attempts but idk how to do it without counting trailing zeroes

sage crag
#

In combinatorial mathematics, a de Bruijn sequence of order n on a size-k alphabet A is a cyclic sequence in which every possible length-n string on A occurs exactly once as a substring (i.e., as a contiguous subsequence). Such a sequence is denoted by B(k, n) and has length kn, which is also the number of distinct strings of length n on A. Each...

tender river
#

you lost me

sage crag
tender river
#

oh

#

wait i like this hash table approach

#

there are only 256 possible combinations of 1 and 0 bits

#

so you could easily write a functions that checks the hash table for invalid collisions

#

but my concern is that this would require a pointer addition and read and a bunch of other stuff and just doing it the normal way would be faster

sage crag
#

people online are suggesting that the branch predictor enables better performance on just using conditionals if the input numbers are uniformly random

sage crag
tender river
#

what for?

sage crag
#

just an extension of the swisstables principle, if you store the hash you need to do less computations on the input data

#

though i guess it doesnt really help locality at all

tender river
#

the main point is doing less reads not less computations

sage crag
#

this is true

#

perhaps if i really dont care about memory efficiency i can store keys and values separately for cache optimisation

tender river
#

metadata is already separate might as well neurOMEGALUL

#

wont matter with arenas anyway

sage crag
#

ah quadratic hashing, i just realised, would want a prime-number length

tender river
#

also remove align(1) i dont think it helps at all (though didnt seem like it hurt either)

sage crag
#

very slightly

tender river
#

i never run benchmarks enough times to notice slight improvements so i didnt notice newliv

tender river
# sage crag very slightly

your hashmap will be used for interning strings and sharing common ast subtrees in the lsp no pressure

sage crag
sage crag
tender river
#

did we get within an order of magnitude of rust?

sage crag
#

we are at 1.3s on x86 right now

#

for 5 mil elements

tender river
#

and rust is?

sage crag
#

0.2

tender river
#

so we did neuroPogHD

sage crag
#

yes

tender river
#

i feel like there should have been more commas in that message

sage crag
#

its readable

#

anyway these are what ive settled on

#

while im using linear probing at least

#

not good for memory efficiency

#

sorry that 1 should be a 2

tender river
#

isnt the former just self.entries.len >> 1

sage crag
#

so for x86 the load threshold is 0.75, and for hbvm, its 0.625

#

can probably write these nicer

tender river
#

so 3/4 on ableos and 5/8 on x86

sage crag
#

similar constants

#

but going far in either direction from those seem to pessimise the performance quite a lot

#

probably hasher dependant but i dont really care

tender river
#

also might depend on insert/remove patterns

sage crag
#

it will

#

im not considering average usage at the moment which is a mistake

#

but hey ho

tender river
#

just look at the other hashmap impls
the other hashmap impls: multiple 10ks of loc abstracting everything away (because they have real users with different needs unlike us)

sage crag
#

i also think they have unnecessarily large hashmaps though

#

they could get 90% of the performance within 300 cloc surely

rigid snow
#

neuroWave good morning #hblang

sage crag
#

i feel like a big thing with this hashmap is going to be inlining

#

without inlining, you are jumping all over the place

tender river
#

probably, also inline hashing

#

though thats just one call per insert/remove so who cares

tender river
#

also all the different methods, entry api, etc, theres a lot that goes into "production-ready" hashmaps

#

even if hashmaps are super simple at their core

tender river
#

its nice when you can just ignore all that and write barely-documented code with the interface stability guarantees being "if you didnt want me to change it maybe you shouldn't have used it"

sage crag
#

i found a better threshold on both x86 and ableos

#

which is 77%

#

marginal gains

#

@ 200ms with 1m elements

#

near exact

stray dragon
#

fish

tender river
# sage crag near exact

apparently swisstable impls often probe linearly within a bucket but use non-linear probing between buckets

#

well, groups, these arent exactly typical buckets

tender river
sage crag
#

bwa

tender river
#

from here on out its doubling the code for 20% performance

#

just nt worth it

#

you can use this as a template for the implementation of batching if you do want to go down that route

sage crag
tender river
#

based on a8995f76fb134e2a61b97d58efc18264ab9b8751

sage crag
#

will read

tender river
#

but i tried to make it as fast as i could (and failed, but i didnt make it noticeably slower at least)

midnight sigil
#

I fixed my for loop

#

now it's the expected result

tender river
#

this reminds me of xkcd int randomValue = 3; // chosen by a fair dice roll

midnight sigil
#

unless you have perfect conditions everytime

olive sable
#

The github pagewasalmost fixed, but it compiled wrong on my laptop

#

Works on my machine ahh code bwaadow

gritty dust
tender river
#

@sage crag also a little thing you could do if you want to work on hashmaps a bit more is implement hashset (a thin wrapper over hashmap(K, void))

stark needle
tender river
#

or a working just about anything that goes to prod, really, theres so much corner cutting

sage crag
#

im done with hashmaps for a while

tender river
#

good because they're beginning to scare me

sage crag
#

im getting tired of minor performance gains

#

i managed to get it to 1.29 seconds under optimal conditions

#

good enough imo

tender river
#

mhm especially considering no inlining, unoptimized asm, no autovectorization, etc

sage crag
#

40% performance improvement from when it started

#

when inlining comes out i'll test again

#

also when the foldhash bug gets fixed on x86

tender river
sage crag
#

only being 6x slower than rust on 5 million elements is pretty good

#

unfortunately the same cant be said of say, 6 million elements

#

hashmaps scale very badly

tender river
#

llvm + simd is a powerful combo

sage crag
#

mhm

#

and to be fair

#

the compilation time is sub 70ms

#

so, 6 times slower than rust but compiles 60 times faster lol

#

rust is a very fast language to begin with

tender river
#

the performance is close enough to leave a decent margin for unoptimal code (which i won't write of course NeuroClueless) so i think the interning part is covered now

sage crag
#

right

#

btrees are typically faster than hashmaps for insertion right?

tender river
#

erm

sage crag
#

maybe not

#

i dont remember

tender river
#

btrees are basically always O(log N)

#

for whatever you do

sage crag
#

and 400ms removing

#

so approx 50% of the runtime inserting is rehashing

tender river
#

no hashdos and stuff

sage crag
#

i might write a special insert function for rehashing

tender river
#

but tombstones make it tricky since lower hash values may trickle up to the higher hash half and vice versa

sage crag
#

there were a few numbers optimisations

#

im also not doing optimal tombstone removal right now

#

so real world performance will suffer

sage crag
#

is my hope

#

still though, even if you remove the cost of rehashing entirely you sit at 800ms runtime for 5 mil elements

#

still 4x slower than rust

#

pretty good though

tender river
#

just realized the interner will have to unintern stuff when GC removes it... i actually have no idea how to implement that cleanly but i'll figure it out i guess

scarlet arch
#

What the fuck :D

#

Also morning chat nyaaWave2

#

It might be 1 in the afternoon, but ya know. Sleep cycle is fucked neurOMEGALUL

tender river
#

i did get an idea - weak references that use the relocation mechanism for setting their own address to null, permanently invalidating themselves, then iterating over the hashmap to remove all the nulls can be done at the end of a regular GC cycle (provided the hashmap doesnt move stuff around when removing which it wont with the current impl)

#

then this part is covered, and the rest is just operations on a graph (which is half of what language development is about anyway)

midnight sigil
#

NeuroRage I'M SO MAD RN CUZ MY BLENDER IS SO DUMB IT CAN'T DO 1 * 2 * pi * 1 * 1 / 64 PROPERLY(in a more complex way)

sage crag
#

though they are using siphash3

tender river
#

hashbrown?

#

or just same hashmap with different hash?

sage crag
#

same hashmap with a different hash

#

here's running the same with the "equivalent" hasher to the one we use

tender river
#

hi shiro

sage crag
#

my implementation is poor though

sage crag
#

though it doesnt get faster if i swap the hash algorithm

#

so it seems its mainly an algorithm difference

#

in fact, its likely rust's hashmap is just hashbrown using siphash3

tender river
sage crag
#

if your hash x -> x

#

then your hashmap becomes O(n) insertion lol

tender river
sage crag
#

i took an unrelated benchmark and slapped hblang in there neuroPogHD

real sierra
#
#include catch_segfault.h

strlen_2(const char *s) {
 int a = 0;
 int b = 1;
 *(s+b);
 while (!segfaulted()) {
  a = b;
  b *= 2;
  *(s + b);
 }
 ptr = s + (a + b) / 2;
 while (segfaulted () || *ptr != 0) {
  if (segfaulted()) {
   b -= (b - a) / 2;
  } else {
   a += (b - a) / 2;
  }
  ptr = s + (a + b) / 2;
 }
 return (a + b) / 2;
}
#

thoughts

sage crag
#

if strlen is zero then it errors because you dont catch the initial segfault

real sierra
#

was assuming the header just did something to make segfaults set an error flag instead of crashing

#

I don't actually know any method to catch segfaults

tender river
sage crag
wild wadi
#

you can mask the segfault signal and define the error flag setting in a sigaction

sage crag
#

but a flag here does work

tender river
sage crag
#

lol

real sierra
#

it's not platform specific I think

#

there must be a way to detect segfaults

#

and prevent your program from crashing from them

sage crag
tender river
sage crag
#

and the handler for that interrupt is generally the OS

real sierra
rough bloom
sage crag
real sierra
#

if you put too much on the heap it becomes less likely

tender river
real sierra
#

I'm just using whether or not they were read without a segfault

tender river
#

they're allowed not to segfault if they want to

#

or, again, do anything else

real sierra
#

then why do they always segfault for me Smadge

#

I want O(log n) string length Smadge

tender river
#

for example, there is a possible optimization in which this program actually goes back to main and runs your program all over again

stone cedar
sage crag
#

it should survive

midnight sigil
trim valve
#

it will do exactly what it always does until you want it to do something specific

tender river
real sierra
sage crag
tender river
#

error.png

trim valve
sage crag
#

if you assign it to a variable it doesnt get optimised out

#

until you pass -o1

midnight sigil
stone cedar
sage crag
#

then the compiler just converts your program to mov eax, ret

rough bloom
#

volatile variable should work, surely

midnight sigil
sage crag
#

rotate rotate

tender river
sage crag
#

we need to get a SAT solver on the arg images

real sierra
#

then free it at the end of the program

sage crag
#

or just black_box

real sierra
#

I'd like to see the compiler optimize that

sage crag
#

compiler can actually optimise mallocs

#

sorry

tender river
#

shiros these days dont know the wonders of stack all they know is eat hot chip and malloc

real sierra
#

C compiler as usual is my number one enemy

sage crag
#

if you malloc a buffer and then only use it for an int it compiles to a stack assignment

real sierra
#

that's best case scenario in fact

sage crag
#

no, because then it compiles it to nothing

real sierra
#

what

sage crag
#

dead code elimination

#

the compiler isnt oneshot, the static analysis keeps going

#

compilers are evil magic

rough bloom
real sierra
#

ok uhhh

#

how about

sage crag
#

volatile is common for memmapped io on embedded systems

real sierra
#

malloc one byte, read as int, AND with 1, OR with 1, and then realloc to that length

sage crag
#

compiler will fix it

real sierra
#

bet the compiler can't fix that

sage crag
#

compiler knows the value throughout the entire time

#

it will just turn it to dust

tender river
sage crag
#

realloc and malloc are c library functions that have special cases in the compiler

#

if you call mmap directly it might not

stone cedar
sage crag
#

actually i know this case

#

c always ensures strings are 1 character longer than needed

#

reading 1 beyond the buffer is not UB but reading past that is UB

#

here it would depend if you strings are stack or heap

#

if they are stack it will probably work

rough bloom
sage crag
tender river
stone cedar
#

memprotect only works on full pages, i think, so that should be ok

sage crag
#

like you said though, architecture and system specific

#

@tender river segfault hashmap

#

malloc a ptr, which becomes the base offset

#

then, for each inserted item, malloc a whole page

warped narwhal
sage crag
#

then when probing, if the index is a segfault, then its vacant

tender river
sage crag
#

yes

#

why am i hungry

rough bloom
#

C99 standard says this NeuroChatting

An object that has volatile-qualified type may be modified in ways unknown to the
implementation or have other unknown side effects. Therefore any expression referring
to such an object shall be evaluated strictly according to the rules of the abstract machine,
as described in 5.1.2.3. Furthermore, at every sequence point the value last stored in the
object shall agree with that prescribed by the abstract machine, except as modified by the
unknown factors mentioned previously. What constitutes an access to an object that
has volatile-qualified type is implementation-defined.
tl;dr there are some guarantees but it's mostly implementation-defined

tender river
#

yay i dont have to load it

tender river
stone cedar
rough bloom
tender river
#

could still be a fun project... just not an easy one

rough bloom
#

UNFOCUS why would it be impossible?

tender river
rough bloom
#

oh kek

#

yeah that could be cursed

tender river
#

probably not

#

so much for "portable assembly" smh

stone cedar
#

The only thing I can see in the way of that would be the question of how a trinary XOR would work.

#

Theres probably more but this seems like an important one

sage crag
# stone cedar The only thing I can see in the way of that would be the question of how a trina...

In logic, a three-valued logic (also trinary logic, trivalent, ternary, or trilean, sometimes abbreviated 3VL) is any of several many-valued logic systems in which there are three truth values indicating true, false, and some third value. This is contrasted with the more commonly known bivalent logics (such as classical sentential or Boolean log...

tender river
#

will take a while to translate please wait

warped narwhal
#

(there are also hugepages at 1GiB but the OS needs to be configured to allow those specifically)

tender river
#

i like that it has breakpoints (break instruction that stops execution and continues when you press a physical button)

#

debugging in 1959 neuroPogHD

tender river
midnight sigil
#

neuroHypers one more step ahead

#

time to think of a way to add every pixel on each column together

stray dragon
gritty dust
midnight sigil
#

it's 1D DFT before the summation

trim valve
#

huh neat

#

I should really look into how the dft works instead of treating it like a black box

midnight sigil
#

where ori being the original image's first column

opaque wharf
#

Huh, does discord not support LaTeX?

e^(\frac{-2i\times{\pi}\times{x}\times{y}}{64})
#

Interesting

midnight sigil
#

cuz LaTeX can be exploited if Discord does not handle it correctly

opaque wharf
#

Yeah, but like, the basic notation are generally safe. Also, GitHub supports it

amber fractal
#

GitHub did have an exploit when it came off of LaTeX if I recall that cause correctly

opaque wharf
#

This vulnerability in GitHub's MathJax rendering allows for arbitrary CSS injection in README files, potentially leading to style manipulation on GitHub pages. The issue stems from improper handling of the \unicode macro, enabling attackers to inject CSS into the element. Mitigation involves direct manipulation of the DOM element style object t...

#

Then again, the mitigation already exists. Oh well

stray dragon
#

adding features that users actually want? discord would never

tender river
#

does it still count as boilerplate if its a bunch of stupid connectors but getting them right is super tricky and will blow you up evilDeadge

trim valve
#

@stark needle how is that arc a770 holding up

#

because I'm still stuck on my gtx 1660 and it really is showing its age

#

if anyone else has any affordable gpu suggestions that fit my annoyingly exact requirements feel free to tell me

#

basically looking for something that is:

  • no wider than 2 slots (like the image)
  • no more than 2 pcie power slots (barely considering 12vhwpr, I'd like to avoid it)
  • not going to milk me for all the money in my bank account
amber fractal
#

I've heard decent stuff from the Intel B580 if you can find one, haven't daily driven intel dedicated graphics so take it with a grain of salt.

trim valve
#

current options seem to be:

  • 4060 ti
  • 9070xt reaper (unreleased, not sured if it properly works)
  • either a b580 or a a770
trim valve
stray dragon
trim valve
#

oh I should also throw in that the card should be a reasonable upgrade from my current one, I don't want to have to replace it any time soon

#

and that seems like a vram downgrade at the very least

stray dragon
#

A770 seems to be a very small performance upgrade from the gtx 1660

#

hmm

amber fractal
#

Already had numbers on standby

#

6600xt seems to be 82% from this

stray dragon
#

6600 xt and B580 seem about equal, although B580 has more vram

amber fractal
stray dragon
#

as far as i know that site directly compares theoretical max performance to get those numbers

#

which seems limited

trim valve
#

the biggest issue with my current gpu is the way it runs modern games

#

it does manage ~60-70fps it just sits at 100% usage and gives me insane input latency

amber fractal
trim valve
#

other than that I just need something that can:

  • work nicely enough with blender
  • encode / decode video
#

like 90% of my gaming is in tf2 I could run that on my igpu if I really wanted to

stray dragon
#

used 2080 supers seem to go for around $250 to $300 on ebay

trim valve
#

it looks like sunshine supports intel's hardware encoding so I'm in with a chance

stray dragon
#

from what i remember like a week or two ago the 6600 xt was going for around $250 on ebay

#

if you're wondering how those gpus compare:

#

vram is still limited though

#

hmm

loud thicket
#

Gonna be swapping an NVMe today

trim valve
#

honestly I might just go for a b580

loud thicket
#

Moving to dual boot linux

trim valve
#

it supports a decent amount of funny video encoding stuff, is very cheap and has 2x my current vram

stray dragon
trim valve
#

probably not a perfect fit for the "never needs replacing" but unfortunately gpus just keep getting fatter and more power hungry

loud thicket
#

Shove a 980 in there

#

Those bastards live forever

stray dragon
#

6700 xt has 12gb vram and seems to be around $300 used

trim valve
#

I used to have a 970

loud thicket
#

Na must be the 980

trim valve
loud thicket
#

I still have one in my server used for minor transcoding

#

Still chugging from 2015

#

(Though its heavily modified from Nvidia)

trim valve
#

my only issue with 6xxx series (or older) amd is iirc they have pretty trash hardware encoding

loud thicket
#

Av1

stone cedar
#

One warning about the intel Arc cards, the legacy OpenGL performance is pretty bad under certain conditions, though that should not be relevant unless you use some truly ancient and demanding software.

trim valve
#

glueless does solidworks count as ancient and demanding

stone cedar
#

And I mean like < 3.0 so every project started this millenia should be good, hopefully

trim valve
#

(I may not even end up using soldworks so its w/e in reality)

stone cedar
stray dragon
#

this is NOT a bad deal at all

#

wow

lost phoenix
#

Very noice

opaque wharf
#

But if you only need simple CAD, Fusion360 is free for personal use. BricsCAD has one-time purchase, and onshape also has free for personal use

trim valve
#

yeah I'm probably gonna toy around with f360 for the time being, given I can snag an educational license from them

#

but also I could nab a solidworks license from my uni and learn it for the shits and giggles

opaque wharf
#

The important thing is to learn the fundamental. If you've mastered that, even using FreeCAD would not be that impossible

trim valve
#

yeye fair

opaque wharf
#

But if you need to get a job, then get a certification. The industry (at least in my country) is still using old SolidWorks and AutoCAD

trim valve
#

a certification would be neat but I haven't super looked into it

trim valve
#

I have no real background in engineering I just happen to be less useless with it than the average person

opaque wharf
#

Ahh, then yeah. Fusion360 is super easy for beginner. Onshape also compete in that regards for more simpler design, and less resource hog since it runs on the browser

trim valve
#

I don't really mind a resource hog, plus the way onshape's free tier works sketches me out

#

I'll stick with fusion for now 🙏

stray dragon
trim valve
#

I probably just need to find some kind of course / guide / cert / etc. to properly learn the software instead of just going off vibes though

stray dragon
#

from my experience with getting a solidworks certification all you really need to know is how to use a few important features and how to make simple parts in a limited timeframe

#

the courses for this stuff are usually "here's a sheet diagram of a part, go make it in CAD" and maybe a guide on how to use a feature that will be useful for that part

sage crag
#

t

stray dragon
#

hi konii

sage crag
#

hi t

trim valve
#

understandable tbh

#

from what I've heard CAD isn't super hard

stray dragon
#

it really isn't but you have no idea how much i've seen others struggle with it

trim valve
#

I am well aware from participating in a group project where someone vibed their way through fusion

#

its never a good sign when you manage to make a step file so bad onshape can't open it

stray dragon
#

genuinely how

trim valve
#

I am trying to find a screenshot of the model

#

but from what I remember they had some very messed up surfaces

#

best part was the triangle pattern they tried to cut into the surface which created ~1000 constraints and froze fusion every time you did anything

stray dragon
#

bruh

hexed grove
#

What's up yall

trim valve
#

but there has to be a better way to make that pattern in cad than copy-pasting a single triangle everywhere lol

stray dragon
#

that seems pretty normal?

trim valve
brisk laurel
#

Can someone please check this isnt an IP grabber? i need it ASAP thank you

stray dragon
#

forgot what the feature is called but it can repeat a selection of lines at regular intervals

trim valve
trim valve
stray dragon
#

there's also a rotational version of it that rotates the shape around a point

trim valve
#

yeah I kinda assumed that would exist somewhere

stray dragon
#

ah it's the "linear pattern"

trim valve
stray dragon
amber fractal
#

It's a jpg that isn't embedding

#

that's a red flag

trim valve
#

i mean it happens

stray dragon
#

you can open the link in browser

trim valve
#

discord is great at randomly not embedding stuff

amber fractal
#

I do agree it does

rough bloom
amber fractal
#

Or it could not even be a jpg file, seen that before

tight tinsel
#

tf they gonna do with your ip even

trim valve
#

it probably just didn't embed because of the insane resolution

amber fractal
#

Yep rez

trim valve
#

who tf decided a phone should take 200MP images

opaque wharf
#

Yet someone manage to send gif of full minecraft movie

stray dragon
#

thought it was a full video

#

in tiny resolution, to be fair

opaque wharf
#

Yeah, but its still around 65MB

stray dragon
#

it's probably laggier to embed a 50MB image with crazy resolution than to embed a 100MB video file in 200p or whatever

#

it's not like the entirety of the video is displaying at once

trim valve
#

discord gif handling got a lot better after they moved to react native iirc

opaque wharf
#

But to be fair, its due to how shitty gif is for actually moving stuff

trim valve
#

I remember when any gif over like 1MB would bring the kotlin app to its knees

stray dragon
trim valve
#

thank you for reminding me I have saved gifs

#

but yeah its a pain

stray dragon
#

would be absolutely insane if they had thumbnails stored locally or something (they'll never do this because it would only benefit users and would take a bit of work from a developer)

trim valve
#

would be insane if they used an imageset that loaded a static webp first

stray dragon
#

that too

trim valve
#

I think the issue is probably due to the mildly scuffed way discord handles the saved gifs menu

sage crag
#

@tender river thought you would like this one

trim valve
amber fractal
trim valve
#

my phone allegedly does 64MP but its just a waste of storage

#

I have zero faith in phone sensors anyways, pixel count barely decides their quality

amber fractal
#

I shoot 4k and RAW, because I do photography sometimes

stray dragon
#

clearly if you can't zoom in close enough on an image to see the textile pattern of a carpet it's too low-res to consider buying

#

yet it still can't show readable text properly LOL

trim valve
#

tbh samsung still handles text better than iphones in my experience

amber fractal
#

One of my previous phones had very good text quality, shame I can't use it.

brisk laurel
stray dragon
stray dragon
amber fractal
#

makes text readablw

trim valve
prime ridge
#

64 mp is absurd

stray dragon
#

all i know is that my samsung A51 can take pictures of my homework that have clear and readable subscripts and superscripts

#

good enough

trim valve
#

my a52 is unsuprisingly very similar

stray dragon
#

no way

trim valve
#

though I'm pretty sure my OIS broke

amber fractal
trim valve
#

it probably is in the lower resolution modes

amber fractal
#

In hardware instead of software, less to process in theory.

#

I'd need to look into it if I want to make more points for or against it.

trim valve
#

tbh if I'm doing anything where I care about image quailty I'm not using a phone anyways

#

they lack behind so much in other ways

amber fractal
#

I don't have issues on the software side, just smol sensor

trim valve
#

yeah

#

and annoying focal lengths

amber fractal
#

Not much precision you can get at all

trim valve
#

still, they can take nice photos

#

but imo a proper camera would look better here too

gritty dust
#

Lads I got my stupid camera mount thing to work pog

#

Now I only need x and y not the z axis

trim valve
#

also these fuckass lens flares

#

like yes I know a real camera also gets lens flares but not to this degree

gritty dust
# trim valve <:neuroPogHD:1057778797056901130>

yay, its a stool with a wood slab clamped onto it with the camera at the edge of the stool, I got my yolo model to actually run well so now it's finishing the coordinate translation code yippee

stray dragon
trim valve
#

solar flares if they were epic

sage crag
#

@tender river if you can submit some issues of things you have been experiencing that would be great

#

its hard to categorise them in just one channel

#

this in hblang repo

loud thicket
#

tf is that for

scarlet arch
noble zodiac
#

îts 2025 and I'm implementing a insertion sort neuroAware

faint sandal
#

tldr your Android browser tells Meta-owned apps what websites are being visited

opaque sigil
#

Sick

ruby timber
dry charm
#

UPDATE: As of June 3rd 7:45 CEST, Meta/Facebook Pixel script is no longer sending any packets or requests to localhost. The code responsible for sending the _fbp cookie has been almost completely removed.
LMAO

#

disclosed and instantly pulled the plug

gritty dust
#

Does anyone have an image that I can use as the banner for my programming portfolio

sick owl
stark needle
trim valve
#

(you're gonna have to be more specific about what you want if you want anything meaningful)

sage crag
trim valve
#

oh

sage crag
#

i cant tell what the most insulting part of this is

#

ive never even touched a computer

dry charm
tender river
# sage crag <@455756327755710464> thought you would like this one

stateless glueless
anyway seems like a question by a person who just learned what fp is and hasnt actually used any fp language, their question would be half answered if they learned a fp language (or even concepts like tail recursion and fold) and full answered if they actually did some programming that required lots of data processing (which is just about any program from UI to databases) and ended up having to write fp in whatever language they were using at the time, whether it be JS or C++
tl;dr the primary use for functional programming is writing neuro sdk mods in F# newero
(sorry if you wanted an actual answer and this was a bit handwavy)

tender river
sick owl
sage crag
#

if anything else comes up, a test case or some way of reproducing bug is required

#

though you dont need to be told that neuroDeadge

stark needle
#

codex

sage crag
#

what is codex

#

software engineering agent

#

that's me, im software engineering agent

stark needle
sage crag
#

yes

ruby timber
#

so um

#

structs are just classes

#

in c++

#

that's

#

okay

sage crag
#

not classes, sorry

ruby timber
#

Ah

sage crag
ruby timber
#

Actually, that's better for me-

sage crag
#

structs are infinitely better than classes anyway

ruby timber
#

I'm coming from C like STARE

rough bloom
ruby timber
#

I don't know why structs with member functions feel so icky (I know why, C brainrot)

rough bloom
# sage crag no inheritence

do they actually not have inheritance?
I'm quite sure I used C++ classes with inheritance at some point but maybe I'm just going insane

sage crag
#

structs do not have inheritence

#

classes have inheritence

ruby timber
#

@grok is this true?

sage crag
#

all struct functions must take a struct ptr

ruby timber
#

yes

#

I discovered the concept of a static getter and felt like a caveman coming out of the lights cave

#

I'm still such a beginner it's scary sometimes

ruby timber
#

the stackoverflow overlords have spoken

sage crag
#

c++ is clearly doing it wrong enub

#

not the first time

ruby timber
#

Time to switch to c--

rough bloom
vestal prism
#

WHAT IS THAT THING

rough bloom
vestal prism
#

kill it with fire

sage crag
ruby timber
ruby timber
#

Oh oh

sage crag
#

also H

ruby timber
#

One project of the advanced part at my school has us building a B compiler

sage crag
#

most of them exist

ruby timber
ruby timber
#

The B spec provided is glorious

rough bloom
ruby timber
tender river
ruby timber
#

function pointers neuroHypers

#

...

#

pointers neuroHypers

tender river
#

i remember some incredibly cursed things to get some particular kind of method pointers

sage crag
tender river
#

or was it because method pointers can't be trivially casted to function pointers in C++

tender river
sage crag
#

i do not know what

tender river
sage crag
#

i found it

#
v52_0: u32 = 4
v52_1: u32 = 1
v52_0 >>= v52_1
if v52_0 != 2 return 52
tender river
sage crag
#

youre not supposed to be here

tender river
#

this was uuh in 2018

#

this is real chayleaf lore

sage crag
#

why does it crash the compiler

#

it literally works

tender river
#

some specific register allocation may trigger it

sage crag
tender river
sage crag
#

oops

#

is that a hard limit do you think

#

or is this just a compiler skill issue enub

tender river
#

you can replace appendAssumeCapacity with append

#

probably

#

or maybe you cant

stark needle
#

as an ai language model

sage crag
#

lets find out

sage crag
tender river
sage crag
#

im just going to make an arena and not deinit it

tender river
#

add it to struct initialization

#

but i guess you might have to have it recursively which would suck

sage crag
#

i dont want to fiddle with this

tender river
sage crag
#

got it working neuroPogHD

#

i dont know

#

this is very annoying. all other types properly upcast with both lhs and rhs, but not i64 and uint

v361_0: u64 = 5
v361_1: uint = 3
v361_r := v361_0 + v361_1
#

there's no reason this cant upcast into u64

tender river
#

oh i didnt even know theres explicit u64

sage crag
#

yeah

#

uint and int are meant to be ptr width

#

u64 and i64 were added because we complained

#

i still prefer sN to iN though

#

s32 yes please

#

sint is less nice though

tender river
#

shorten it to sin deliv

sage crag
tender river
#

if functions can be fun why cant signed integers be sin

sage crag
#

we have a function called sin

tender river
#

clearly this means we need contextual scopes this is not at all a bad idea glueless

#

rust kinda has them btw, proc macro and trait can have the same name

sage crag
tender river
#

ml has them with module an type potentially having the same name

sage crag
#

what if i just alias ints as signed ints in lily

#

s32 := i32

tender river
#

but yeah not a good idea unless you design a language from scratch with that in mind

tender river
sage crag
#

yes im aware

#

it was not a serious suggestion enub

tender river
#

no you should do it

sage crag
#

no.

sage crag
tender river
#

nope no idea how to fix that one, other than "just fix allocBytesWithAlignment surely that's the wrong one"

sage crag
#

what if i just remove the assert

#

surely its a good idea

#

segfault

#

im just going to upload this evilsmol

#

and mlokis can figure it out tomorrow

tender river
#

yup its like a billion minimal repros neuroHypers

sage crag
#

maybe it will inspire him to actually test this in the compiler's fuzzer lol

tender river
#

a maximal repro

sage crag
tender river
# sage crag <:neuroPogHD:1057778797056901130>

now that i think of it creating a testing framework sounds like a good idea... it doesnt sound that hard (autogenerate code for every .hb file that has a tests := {) but would you want tests to live with the code or in a separate file

sage crag
#

i generally dislike unit tests being in source files

#

perhaps it seems silly, but i prefer the tests to be centralised

tender river
#

i dont mind either way

tender river
#

for example, i could add an lsp feature to run tests for a specific module on save or on demand

rigid snow
#

can someone explain to me why this works if it even does, i skipped math lectures

let digits = (value.abs() as f64).log10().floor() as usize + 1;
sage crag
#

take the floor, which puts that to the nearest whole number

#

and you get the number of 10s to get to the nearest power of 10 to that number

#

which will be the number of digits in base 10

rigid snow
#

i know what a logarithm is

#

but

olive sable
#

my brother's laptop has a metal frame, and metal hinges. but lenovo in their infinite wisdom decided to make the piece connecting the 2 from plastic GETHIMGETHIMGETHIMGETHIMGETHIMGETHIMGETHIMGETHIMGETHIMGETHIM
it broke bwaadow

sage crag
rigid snow
#

yeah it makes sense actually i'm just slow

#

thx

sage crag
tender river
tender river
#

this reminds me of the whole debate on whether 0 should be a natural number

sage crag
#

its true if you take log_0(x) as infinity

tender river
sage crag
#

because it distinguishes them from positive integers

sage crag
#

111 (base 1) == 3 (base 10)
but log_1(3) is undefined

tender river
#

0 is the only base 1 number

sage crag
#

you are in fact correct

tender river
#

when did they teach you nondecimal bases btw

#

in our case it was primary school but i dont remember if it was 2nd, 3rd or 4th grade

sage crag
#

hm

worldly plank
#

"Nondecimal bases"?

sage crag
sage crag
#

non-decimal bases are not really a concern for UK maths students until A-levels

stark needle
#

@sage crag 50M parameter llm schizo

sage crag
rigid snow
sage crag
#

meh

#

kids are able to learn it as soon as they know what exponentiation is

worldly plank
#

We had Roman numerals in 3rd grade, binary in 8th

rigid snow
# sage crag meh

don't worry nobody bothered actually learning it anyways and cheated on all tests

sage crag
#

roman numerals surely dont count lol

tender river
rigid snow
#

oh yeah makes sense then

stark needle
rigid snow
sage crag
#

im just gonna let mlokis deal with that

#

if there's something wrong with it he will yell at me about it

tender river
sage crag
#

its useful to some people

#

i dont think i would ever use it

#

though it would get used in ableos if it existed

#

since ableos is very gui-centric

tender river
#

well, adding it later shouldnt be a problem

sage crag
#

i was thinking about something

#

but now its gone

tender river
#

head empty neuroPogHD

tender river
#

i can offer editor actions that run those at least

#

though, i dont use them myself when developing for other languages

#

theres a lot of lsp features but i kinda only use renames and error highlighting

#

hard to think about editor tooling when you barely use it vedalBwaa

#

i'll just forget about fancy features for now and focus on building the dependencies of a proper lsp impl

sage crag
#

unit testing shall be done or shant be done whether or not the lsp has support for it

#

thanks for the consideration but the extra work is just not meaningful to anyone's usecases right now neuroCry

#

it would probably be important if hblang was more popular

tender river
#

yeah i just thought i probably need quite a lot of tests for the libraries i write because of the language's current state

#

and that just writing the code and checking it works by writing something in main and moving on is not a good iea

sage crag
#

at the moment im taking the approach that documentation and testing for my code is less important than volume of code

#

the compiler is so unsound its impossible to use the results of your tests for actually testing things

tender river
#

i guess thats the way to weed out the most critical bugs

sage crag
#

mhm

#

it will likely require a rewrite at some point

trim valve
#

do I stay up late waiting 3 bajillion years for bitcoin to transfer or sleep

sage crag
#

you should download more bitcoin

trim valve
tender river
#

do you actually need to wait for it or are you just anxious for no reason

trim valve
#

I need to transfer it out as soon as it finishes

#

or well some of it

tender river
#

surely the recipient can wait NeuroClueless

trim valve
#

join moving coinbase -> proton -> elsewhere because I'm getting sick of coinbase being up my ass on every button I click

#

(I'm sure there's better options)

tender river
trim valve
#

proton offer a bitcoin wallet via proton wallet

#

I'm sure I could use a local wallet instead

#

but this is nowhere near enough money for me to care about proton having the keys to my wallet

tender river
#

if you get access to my laptop while its unlocked you can steal 1 eth neuroPogHD

trim valve
sage crag
#

can i steal your laptop while it's unlocked

#

pleaes

rigid snow
#

lol just remember all the words ez

trim valve
tender river
# sage crag pleaes

probably not too hard since i rely on swayidle for locking but you'd have to climb up to the third floor without anyone calling the police

trim valve
#

it went through

#

but somehow only on the mobile app and not the website yet lol

sage crag
#

just let me steal it

#

you know

tender river
#

sure, go on

sage crag
#

thanks

tender river
#

be warned, the accursed information stored in my laptop is a heavy burden the bearer of which shall pay a heavy price

trim valve
#

glueless who would've guessed proton -> elsewhere happened in seconds compared to the literal 10 minutes coinbase -> proton took

stray dragon
tender river
#

one time but multiple times

stray dragon
#

just say subscription fee

tender river
#

no its multiple times but its bounded

stray dragon
#

😔

tender river
#

its not a subscriptio