#programmers-off-topic

1 messages · Page 90 of 1

safe dragon
#

it's supported by everything

#

as of last year

supple ether
#

I saw it as a proposal but I didn't think it would be adopted so quickly

safe dragon
#

I've used it quite a lot lately

#

the need for it was high tbh

supple ether
#

Yeah it was a very common page element

safe dragon
#

it comes with the niceties of responding to clicking outside of it or pressing escape

#

if you want it to

supple ether
#

And also easier to disable if pages are abusing it

safe dragon
#

yeah

#

don't even have to center it cause it does that by default

#

the future

lethal walrus
#

that is a horrifying thing to see in my github explore page

safe dragon
#

I'd be more interested in it compiling brainfuck to llvm ir

#

I want optimized brainfuck

cinder karma
#

What's backlogged

safe dragon
#

website for tracking the games you're playing/played

#

like letterboxd is for movies

cinder karma
#

Can we get that for books

fleet wren
#

there's probably at least 5 sites for that already

#

goodreads is the most popular

#

speaking of books I'm now 20% of the way through House of Leaves and ran into ||The Minotaur|| for the first time. this should be exciting

supple ether
#

apache is terrible, I am very tempted to just wipe the whole server and use caddy instead

supple ether
pliant snow
#

caddy is very nice

lethal walrus
#

i've been meaning to not use apache but it does work good enough

supple ether
#

I was trying to install copyparty and add it as a subdomain and suddenly I remembered how awful it was to fuck around with apache config files

#

I spent hours setting up https last time

#

It would've been even worse if I hadn't been able to quick-edit over ssh

dusty pollen
#

the ultimate downfall of all of these review websites is that it turns out they're largely populated by human users

#

and being (allegedly) a human user myself, I can confirm that we are terrible at group consensus

lethal walrus
supple ether
#

In theory yes

dusty pollen
#

npx simple-http-server. done /j

#

(but also I have absolutely used that in the past)

lethal walrus
#

i personally prefer npx serve or python3 -m http.server

pliant snow
#

Oh yeah, caddy is literally three lines to set up the reverse proxy and get https workin

supple ether
#

In practice, the ssl module had other dependencies and kept running into configuration errors, and it was not super clear what all needed doing. The official manual didn't mention the problems I was having at all, and various online sources disagreed with each other

red crest
#

caddy my beloved

safe dragon
#

I'll be real I don't actually understand ssl certificates

lethal walrus
#

which part

#

the signing by higher authorities, the concept of asymmetric encryption?

safe dragon
#

what is it actually protecting against? it's extremely easy to get an ssl certificate regardless of whether the website is trustworthy or not

lethal walrus
#

the point is that only the website owner can get the cert

safe dragon
#

so it's to prevent someone else from trying to impersonate your domain or something?

lethal walrus
#

or decrypt the traffic

#

so unless:

  • a certificate authority (e.g. let's encrypt, cloudflare, google, etc)'s private key to prove they made the certificate is breached OR they have intentionally installed a malicious certificate authority's public key (e.g. job/school does filtering on https traffic and they force you to install some software)
    AND
  • somehow the domain is pointing to a different server (ip routing messed up, country doing it, dns provider breach, someone manually changing their dns settings, etc)
    the data will be only decryptable by your server, and if the user ignores their browsers warnings only then it's bad
safe dragon
#

hmm ok that makes sense

lethal walrus
#

and the responses are encrypted too, since aside from the initial handshake it's not actually asymmetric, that's just to decide on a shared secret and then use a symmetric algorithm (aes, etc)

safe dragon
#

I had never really connected the fact that the encryption part of https had anything to do with the certificates

lethal walrus
#

ah

safe dragon
#

I'll have to figure out ssl certificates again some time in the near future when I set up this website

lethal walrus
#

if you're going via cloudflare they provide one for cloudflare -> user, and you can generate ones to encrypt the traffic from your server -> cloudflare

safe dragon
#

oh no I would be murdered in the streets if it touched a cloud service

lethal walrus
#

oh this is your work thing again

safe dragon
#

yeah

lethal walrus
#

is this going on the public internet

safe dragon
#

the company has its own certificate store or whatever it's called

#

no

lethal walrus
#

ah

#

tbh you probably don't need ssl then, if it's not being exposed

safe dragon
#

I mean you do cause stuff like entra authentication is literally just not allowed from an http connection

lethal walrus
#

ohh true

safe dragon
#

I mean it allows localhost

#

that's it tho as far as http connections go

#

I'll figure it out I'm sure

#

it's just an annoying thing I don't want to have to think about but have to

#

I want to just hand over my code to someone else who does the server stuff

lethal walrus
#

fwiw if you do have your own CA that's installed on all the clients afaik it's just one openssl command to generate the certificates

#

and then you can just use those in any normal https server

safe dragon
#

they're windows servers so I don't think it's openssl

#

I guess openssl does exist on windows

#

pretty sure it mostly has its own certificate system tho

lethal walrus
#

still the same cert format

safe dragon
#

it's just another step above other stuff necessary to set up a release pipeline

#

all stuff I've just never really had to do before

#

I can figure it out for hobby stuff but that's all very simple... and linux

lethal walrus
#

don't forget you'll have to redo the ssl cert in anywhere from a few months to a few decades

safe dragon
#

yeah they just got new ones so I'm safe for a while

#

I'll have to look into nodejs hosting on windows servers

#

all I know is IIS

#

and saying I "know" iis isn't even really true

#

it's just extremely easy with .NET projects

lethal walrus
#

you can always just do node server.js

#

whether that's best pratice.. ehh

safe dragon
#

yeah I mean but there's more to it since node is single threaded so you usually run multiple instances with a load balancer

lethal walrus
#

true

safe dragon
#

I know I'll figure it out I just don't look forward to it

#

it's funky. Like there's a thing called iis node to run a node server in IIS and it's owned by microsoft but it doesn't seem to get any updates whatsoever and the readme says it doesn't work on anything beyond windows server 2012

#

but on the other hand they claim it's used by microsoft azure

safe dragon
#

lmao

#

If you are in the (somewhat rare) situation of needing to host a Node.js app on a Windows server, the most common scenario seems to be using a reverse proxy. There are two ways to do this: 1) using iisnode or directly. We do not maintain these resources and recommend using Linux servers to host your Node.js apps.

#

this is straight from microsoft's own docs

#

I think I'll just try to get them to put this on a linux server instead

#

it's recommended by everyone and it's an environment I understand a lot better

fleet wren
#

common windows L /lh

devout vault
#

Was very confused why chu no longer had blacksmith. Really should update my mobile app at some point

safe dragon
#

perhaps

pliant snow
#

holy shit

#

my login greeter has been broken for months

#

and it looks like with this latest update it finally works again

#

Actually, I think they changed it to actually print out an error message instead of failing silently

#

I had a ~/.profile file with a single, invalid line in it that was causing shit to crash

#

this is great news

cinder karma
#

Login greeter?

pliant snow
#

ly in my case

#

but sddm was also broken

#

probably for the same reason

dusty pollen
#

uh I use some generic lightdm one iirc

pliant snow
#

I had to log in via just the TTY prompt, then immediately run a script in my home directory that would start the wayland shell

#

which like, was two extra button presses

#

but now im free

crystal wren
pliant snow
#

I may use the new swirly color one

lethal walrus
#

im starting to see the appeal of [neo]vi[m]

crystal wren
#

I want to love it.

safe dragon
#

I only need the vim control scheme

pliant snow
#

Ah yes neovi

pliant snow
#

Supports lua scripting but not visual mode

supple ether
#

Vi is kinda nice actually I just keep forgetting less-used keyboard shortcuts

cinder karma
#

I use vim at work

supple ether
#

I pretty much only use it for ssh and git

cinder karma
#

We don't have proper ides

#

I usually give people nano for their svn/git editors

devout vault
#

I use vim for git only

#

I used to use it for a job I was too lazy to set up remote vscode for though

#

And during college, there was a Linux server we got accounts for to test our programs in the environment they would be graded on

lethal walrus
#

the vscode ssh server has always tanked the server's performance for me

pliant snow
#

I use vscode at work, but only for its debugger. I use neovim foe everything else

devout vault
narrow pond
#

@supple ether yea, I am partly fueled by the fact that we've been navigating menu buttons with controllers since the beginning of gaming so it shouldn't be this hard, but I have also read GMS just makes it even harder.

I've been trying to wrap my head around the problem and what I've landed on is creating a cursor object to move around and "collide" with the buttons, but it's been a struggle every step of the way.

supple ether
#

The main issue IME with ui in gm is that you have to do everything yourself and there's no object hierarchy

devout vault
#

It’s not as hard if you don’t support mouse to begin with! /s

dusty pollen
supple ether
#

Honestly I like it

lethal walrus
dusty pollen
steel kraken
#

tbh anything that hides the insanity of escape codes and all the jank hacks required to make that style of UI is a win

pliant snow
#
How Dare you say that
supple ether
#

since when does discord support colored text

rain apex
#

thats syntax highlighting

fleet wren
#

the ```ansi
house

#

doesn't work on mobile, but syntax colors don't work on mobile to start with

devout vault
#

(I copied the text of your message and looked at it)

pliant snow
#

I think it's using some third party library that supports syntax highlighting on fucking everything

#

except, as people have noted, they refuse to add it to mobile

steel kraken
#

Getting IRC flashbacks (in a good way)

#

though those are more ANSI terminal colour codes rather than IRC

steel kraken
rain apex
#

lame

safe dragon
#

stop using mappers, use facet

*looks at facet... * mapper

devout vault
#

I don’t know what either of them are

cinder karma
#

This is definitely 99x less interesting than i thought ngl

devout vault
#

Yeah I didn’t realize there was a special term for this

#

It’s like when I heard about “dynamic programming” in college. Like… it’s just caching, why do we need fancy lingo

#

And why are we calling it memoization. Like, what?????

pliant snow
#

wow are you saying you dont memoize daily

cinder karma
#

Lol

#

@lru_cache my beloved

devout vault
#

Being self taught, there’s so many things I have “just coded” and then at college they might say “oh so you just florganbrineltooted the data”

devout vault
cinder karma
#

Button - the melons in question

dusty pollen
# devout vault I don’t know what either of them are

oh thank god it’s not just me SDVpuffersquee

also unrelated question casey. is there a particular reason to calculate frame durations for animations in terms of game ticks instead of ms? for uh, games in general, of course. not any particular game that would be on topic

devout vault
#

No, I think actual frame time is better. But for a fixed framerate game, ticks can be fine (especially if you're a lazy mod author cough )

safe dragon
#

it's clear y'all don't make web APIs smh

devout vault
#

Now if someone made a "higher FPS" mode for said game, then there might be problems 😛

dusty pollen
#

me: casey must have had a reason for doing it this way instead of the equally short ms way, but I think ms is more intuitive so I will tentatively use that until she inevitably tells me the very obvious thing I’m missing
casey: SDVpuffersmile

devout vault
#

90% of casey's code design is "laziness" 😄

dusty pollen
devout vault
#

Sometimes it's optimized for future laziness

cinder karma
#

Although it would need to be <T, U> to be a mapper

#

Also crumble I'm in python

devout vault
#

Oh boy, linq expression nonsense

#

I've never bothered to learn those

cinder karma
#

It's fucking dictionaries all the way down

#

Aren't you glad I'm retired from modding

devout vault
#

No

cinder karma
#

Smh one day

#

Be happy for me. I'm freeeeeeeee.

safe dragon
#

damn it's kinda mapper

devout vault
#

Just means you need to go back and turn it into a facet or whatever

safe dragon
#

ok so a mapper is simply a method that takes the properties of 1 object of type A and then creates an object of type B where the values of object type A are mapped onto type B (based on property name usually)

devout vault
#

smh why are we making special names for simple things like that

safe dragon
#

they're used in APIs a lot to avoid exposing the entire internal/database model in your public facing api

devout vault
#

"Here, take a look at my combining matrix functor!"
looks inside
It adds numbers

safe dragon
#

those are haskell words

#

we don't do those

devout vault
#

What's a haskell

cinder karma
#

While you learned from the likes of leftpad

devout vault
#

(/s)

safe dragon
cinder karma
#

I built myself my own utilities. Badly

#

Wasting large amounts of my precious time that I could have spent making more money

safe dragon
#

for a long time the entire industry used the same mapping library (AutoMapper) which worked through reflection which came with a bunch of issues both in performance and compile time error checking

#

a lot of people started saying we should be writing the mappers manually

devout vault
#

Are we using sourcegen now

safe dragon
#

facet and mapperly are source generated mapping libraries yeah

#

I'd guess most of the industry is still using AutoMapper

#

cause enterprise moves slow

cinder karma
#

Huh, okay

devout vault
cinder karma
#

Which requires it to be known at compile time

safe dragon
#

and it's really easy to replace

cinder karma
#

Clearly

safe dragon
#

there's tons of other (better) mapping libraries that have almost identical APIs

cinder karma
#

My dumb ass did it with linq expressions in an afternoon

safe dragon
#

yeah though it obviously doesn't offer quite as much as the libraries do..

cinder karma
#

Lol

devout vault
#

Sounds like atra needs to go back and improve it

safe dragon
#

definitely the right choice over just contributing to one of the existing offerings

devout vault
#

I meant as an excuse to get atra into modding adjacent stuff COUGH

cinder karma
#

Smh. I don't like atra's mods and don't think they were fun anyways smh

lethal walrus
#

why won't firefox let people use the local translation stuff :(
chrome is the only browser supporting it and that only seems to be via the AI integration

cinder karma
#

Also to peel the curtain back a little bit, I'm at the stage of my personal finance journey where I'm insanely worried about money for no good reason and keep on trying to go above a 75% savings rate and am starting to realize that I'll need to bring in more money for that. And I'm willing to do it.

#

I want to buy a house and keep my 1yr emergency fund and build up a house repair fund and keep a good portion of my net worth in stocks anddddd

pliant snow
#

Is the firefox translation not local?

safe dragon
#

75% savings rate...

#

mozilla seems to claim the opposite

#

that it stays local with theirs and not others'

safe dragon
#

50% savings rate is already really impresive

dusty pollen
safe dragon
#

finance people online are my worst enemy

lethal walrus
safe dragon
#

ah in that way

#

I would've actually had a use for this at one point at my old job

lethal walrus
#

so i can't do slightly cursed things like this without the google translate api

safe dragon
#

truly rough

lethal walrus
#

nothing like having to escape format strings in js because you're writing js with js

#

i do really enjoy writing tiny scripts to generate html and just avoiding css

#

i use neovim btw

safe dragon
#

always through javascript was too usable

#

should've written javascript with javascript

lethal walrus
#

i am

safe dragon
#

if only there were 750 million html templating libraries

lethal walrus
#

but i don't need one!

#

all i need to do is make a button to translate stolen mod names

safe dragon
#

can even use HTML web components now

lethal walrus
#

why would i need that

dusty pollen
#

ah I see what you’re doing

lethal walrus
#

i have a for loop

dusty pollen
#

unfortunately, english->zh translations don’t tend to be direct, and a literal translation back will often be nonsensical

lethal walrus
#

you aren't wrong

#

however

#

this works sometimes™ in my experience

safe dragon
#

as you're face with the translation "horse lagoon" and try to figure out what that might've been

#

oh wait opposite direction

sand frost
#

You could learn to speak mandarin 😛 I’m sure that would be an easy shortcut

safe dragon
#

uh 馬uh

sand frost
#

Easy hack

lethal walrus
sand frost
#

It’s the shortcut They don’t want you to know about

lethal walrus
#

this is|| cjb item spawner||

sand frost
#

I guessed as much 😛

lethal walrus
#

horribly on topic now

sand frost
#

Honestly i think it’s impossible unless you already know what mods are out there

lethal walrus
#

what's impossible

sand frost
#

There might be NLP libraries to help find closest match given a dict of all title/description pairs for mods

safe dragon
#

I'll translate it from very scuffed japanese instead. Thing creation thing ??? soul need like thing, very !!! convenient

lethal walrus
#

ohh that

sand frost
#

Like i think us humans who already know most mods are decent at this but idk how to automate

lethal walrus
#

mhm

safe dragon
#

just use ai

#

smh

lethal walrus
#

tbh ai mightn't be horrible at that

safe dragon
#

llms are good at translation yeah

#

almost like being a language model helps with language

lethal walrus
#

translation and the "is this double translation probably talking about this untranslated mod name"

sand frost
#

I was thinking like word2vec and closest vecs but I’ve never actually played with that

safe dragon
#

they're still bad compared to a native speaker but a lot more competent than the old-school machine translation

sand frost
#

I’m very old and behind the times

#

Don’t know any of this newfangled “LLM” stuff 😛

#

(Ok that’s a lie)
(But I am more knowledgeable about other ML stuff so it feels true)

safe dragon
#

it's actually LML and stands for Large Machine Learning

lethal walrus
#

github wdym

safe dragon
#

oh wait some people have arachnophobia

lethal walrus
#

oh it probably rounds it

safe dragon
#

Earth lore dropped (arachnophobia warning)

sand frost
#

It true, not too bad for me but understandable to hide

sand frost
sand frost
lethal walrus
#

python, shell and ts = html

#

ofc

sand frost
#

“They’re the same picture” meme

safe dragon
#

why can't my browser run python

lethal walrus
#

it can

#
  1. pyscript
  2. wasm
  3. (chrome only) window.ai("give an approximate result to this python code: ")
safe dragon
lethal walrus
#

yes

#

it's a tiny gemini model

safe dragon
#

funky

#

presumably this will never be a global standard then

#

wait

lethal walrus
#

probably not

#

although firefox did recently add some chatbot

safe dragon
#

it's not even in the link you sent

lethal walrus
#

wdym

#

oh

#

what

safe dragon
#

it just shows 3 things I'd kinda expect for a window api

devout vault
safe dragon
lethal walrus
#

why did chrome publish nothing on this

steel kraken
# safe dragon presumably this will never be a global standard then

It is making some progress elsewhere though Firefox and Safari have technical questions as to how it should work further, but the model isn't part of the spec

It running Gemini is a chrome specific thing, Edge for example uses a Microsoft small language model instead.

devout vault
#

I'd rather the standard say "no LLMs allowed" 😔

pliant snow
#

only LLMs allowed

devout vault
steel kraken
#

I'm open to it being a thing as long as it stays on-device only

#

I was tempted to experiment with it for my monopoly game to make ai opponents, and I definitely don't want to actually pay for hosted models so using the local compute the browser has access to is ideal

rain apex
#

Small language models

#

Bring back jojai

safe dragon
#

medium language models

#

mlms

lethal walrus
#

massive language models

lethal walrus
#

i have discovered splitting in neovim this is so cool (censored the disgusting on-topic parts)

safe dragon
#

must've been very disgusting hc_pensive

#

ok it loaded

cinder karma
steel kraken
#

is there a reason to do it inside neovim as opposed to tmux/screen/whatever else doing it, or the terminal itself natively doing it

dusty pollen
#

you can pass buffers etc between them

#

there's a really fun vimdiff mode that uses it

safe dragon
#

it's generally better to split within neovim so the lsp is only running once instead of for each split in tmux

#

I believe there's some way to set it up so each open instance of neovim uses the same lsp server but that's more effort than just splitting within neovim

pliant snow
#

Yeah, the main reason is so that both buffers would have access to the same set of registers, macros, etc

#

Otherwise you have to always use the system clipboard register

grave meteor
#

remember when generative models did good.. that was cool

safe dragon
#

there are generative models that do good I suppose

cinder karma
#

Ugh, windows 10 phaseout

#

I don't wanna deal with it

#

My current laptop doesn't support windows 11

#

I do not want to buy a new machine

#

I broke my linux partition and forgot to fix jt

#

I'll have to pull data off it onto a spare drive and reformat the entire computer as arch linux, become even more insufferable

#

And blame Bill gates

grave meteor
#

Great news if you paid them money tho you get to have windows 10 longer!!

#

But then you have to pay the subscription ☠️

pliant snow
#

sounds like a great chance to refix the linux partition

cinder karma
#

I really should tbh

rain apex
#

Year of the linux desktop etc

#

How would they stop you from just keep using win10

cinder karma
#

They can't

#

But it'll get more insecure

#

And nothing ties me to windows

#

I can run everything i need on Linux because all I do with mg personal laptop is web based anyways

#

Sheepherds! is a friendly and playful co-op game for up to four players.

You and your sheepdog buddies guide fluffy flocks through colorful flower fields to dye their wool…and make cool clothes for you and your friends.

Take your time and have fun barking, running and discovering magical places together— or take on challenges to win treat…

Release Date

Q4 2025

▶ Play video
heavy daggerBOT
#

Title result: Sheepherds! on Steam

cinder karma
#

I'm amused

safe dragon
#

how are you of all people sharing an unreleased steam game

#

looks nice tho

#

reminds me a fair bit of Summerhill though that's a very different game ultimately https://store.steampowered.com/app/2324410/Summerhill/

Summerhill is a story-driven puzzle adventure game in which you play as a young shepherd and their dog. Rescue your sheep, bond with your faithful dog, and delve into the mysterious, long-forgotten world that lies beyond the borders of home.

From the BAFTA-nominated development team behind the critically acclaimed Alto’s Adventure series

Release Date

To be announced

▶ Play video
heavy daggerBOT
#

Title result: Summerhill on Steam

safe dragon
#

the booming genre of sheep herding games

cinder karma
devout vault
safe dragon
#

shepherd cats

devout vault
cinder karma
#

(We can take bets on when I'll have the free time for anything(

devout vault
#

(If you really wanted to play it I'd play it with you without any mods, I just had to make it clear that cats are superior)

cinder karma
#

I'm not sure i actually want to play it as much as I thought its existence was amusing tbh

dusty pollen
safe dragon
#

no

#

unless atra saying they're not a gamer is as much of a lie as them saying they're not a programmer

cinder karma
#

(I say I'm not a professional programmer which is true.)

crystal wren
#

As much as I hate to give it to you, that is technically correct. SDVpufferwaaah

dusty pollen
#

is it?

safe dragon
#

smh suddenly adding extra qualifiers to escape by a technicality

dusty pollen
#

don't you program in your day job suslysella

crystal wren
#

Atra: But the day job is primarily other things, so technically no!

safe dragon
#

verilog is technically a hardware description language not a programming language

dusty pollen
safe dragon
#

god looking at verilog definitely feels like I'm transported back 40 years in language design

dusty pollen
#

inst inst

safe dragon
#

shoutout to transparent backgrounds

dusty pollen
#

why would a code screenshot have a transparent background SDVpufferwaaah

safe dragon
#

for the dark mode users

safe dragon
#

wait a screenshot has a transparent background?

#

actually

dusty pollen
#

well I assume that was originally a screenshot

safe dragon
#

how did someone take a screenshot of code with a transparent background

dusty pollen
#

but it's not MY screenshot

heavy daggerBOT
safe dragon
#

it's ok that's also in elixir and that came out in 2012

dusty pollen
#

this is why my lecturer once told me my pseudocode was too pythonic and therefore incorrect ig, it didn't use begin end

cinder karma
#

It's really subtle but my ide doesnt auto highlights on begin/emd

#

But does it for parens

safe dragon
#

sounds like it's probably an old regex based code highlighter

#

instead of the newer semantics based highlighting system

#

shoutout to treesitter

#

you're in luck

cinder karma
#

I mean yes I'm in vim

#

Not neovim

#

Vim

safe dragon
#

neovim does support treesitter

#

vim presumably does through some plugins

#

emacs got treesitter support back in 2023

#

tf

#

literally yesterday

#

(helix editor)

#

verilog support already existed

cinder karma
#

I'm in systemverilog or verilogams

safe dragon
#

I'm not putting in the mental energy to tell them apart

#

It extends the event-based simulator loops of Verilog/SystemVerilog/VHDL, by a continuous-time simulator, which solves the differential equations in analog-domain. Both domains are coupled: analog events can trigger digital actions and vice versa

#

math hc_pensive

cinder karma
#

Yes

weak junco
#

Poll time: Valid use of ternary or borderline shitpost material?

var targetPos = FA_PrioTreasure
    ? (Math.Abs(bar.treasurePosition - bar.bobberPosition) < bar.bobberBarHeight * Config.FA_DualTargetingBarPercentage
        ? (bar.treasurePosition + bar.bobberPosition) / 2 // Target both if they fit within a 10% margin of the fishing bar
        : bar.treasurePosition)                           // Otherwise, just go for the treasure
    : Math.Clamp( // When targeting the fish, try to predict its future position without overshooting its own target...
        bar.bobberPosition + bar.bobberSpeed * Config.FA_PredictLinearFrames,
        Math.Min(bar.bobberTargetPosition, bar.bobberPosition),
        Math.Max(bar.bobberTargetPosition, bar.bobberPosition) // ... and add an offset relative to the bars position and size to bias the bar towards the center and improve reactions to the most common moves
    ) + bar.bobberBarHeight * Config.FA_RelativeOffsetBarPercentage / 2 - ((bar.bobberPosition / BobberBar.bobberTrackHeight) * bar.bobberBarHeight * Config.FA_RelativeOffsetBarPercentage);
dusty pollen
#

imo once you start nesting them you should be using an if statement

#

but that's personal taste

rain apex
#

ngl i thought this was decompile nonsense at a glance

weak junco
#

I wish C# had Haskells where SDVpetbearsad

#

Maybe its because im used to properly-indented nested ternaries that this makes more sense to me than if, but id definitely consider factoring some things out

safe dragon
#

Personally I'm an inline comment hater

weak junco
#
var targetPos = FA_PrioTreasure
    ? FA_CanDualTarget(bar) 
        ? (bar.treasurePosition + bar.bobberPosition) / 2 
        : bar.treasurePosition)
    : FA_PredictedBobberPos(bar) + FA_CenterBias(bar);

Moving all the lengthy math to well-named expression-bodied functions illustrates pretty well that the ternary is really not the issue imo

weak junco
dusty pollen
#

I still think the nested ternary is the issue ngl

safe dragon
#

I'm not a nested ternary fan but at least in this formatting it's fairly readable

#

I hate typescript prettier's formatting of ternary expression where it puts the ? and : at the ends of the previous line when you do multiline instead of at the front like here... which to me makes it pretty much unreadable so I just make it an if statement

weak junco
#

Newlining the ?: makes all the difference, I know people who format it as

x = a ?
  b ?
    c :
  d :
e;
safe dragon
#

exactly what I was talking about as the default formatting of prettier for javascript

#

I hate it

weak junco
#

Yeah, thats horrible

safe dragon
#

it's not readable at all

weak junco
#

Here's hoping the oxc formatter is ready within the next year or so, so I can toss prettier in the trash for JS/TS

#

Btw, I never nest more than two levels of ternary unless it's a chain like:

v = a ? x
  : b ? y
  : c ? z
  : idk;

Tough that isnt technically deeper nesting

rain apex
#

why cant i make a const string[]

weak junco
#

Just use readonly

#

Const doesn't work with new

safe dragon
#

C# is a hater

#

it can be static readonly

weak junco
#

Yes

rain apex
#

:(

weak junco
#

I think the reason const doesnt work with new has to do with how its impossible to predict how much memory will be needed, or that it needs to be heap allocated

rain apex
#

i dont like how it's a different color

weak junco
#

😅

rain apex
#

but i also have actual runtime static readonly stuff so i cant just change the highlighting

safe dragon
#

clealry we need zig's comptime

#

practically arbitrary code executed at compile time instead of runtime

cinder karma
#

To be fair string[] if it's all known strings is a known amount of memory

#

Just embed that shit into your dll lol

rain apex
#

how does this solve my syntax highlighting problem

safe dragon
#

fork C#

weak junco
#

Would comptime even make sense without NativeAOT

cinder karma
#

Sure

weak junco
#

But yes, zig is based

cinder karma
#

Depends on what you can put into the il

#

Embedding strings into the dll is a thing in later c# iirc

rain apex
#

yea i dunno

weak junco
rain apex
#

you can do const char[] in C right

#

or ig it'd be a char*[] here

weak junco
cinder karma
#

"If it's all known strings"

weak junco
safe dragon
#

aren't arrays in C just a pointer to some memory address...

weak junco
#

Yes

rain apex
#

yea

weak junco
#

arr[1] in C is literally the same as writing *(arr+1)

rain apex
#

i write arr + i a lot

weak junco
#

You can even write 1[arr].....

rain apex
#

isnt that segfault like, nearly all the time kyuuchan_run

cinder karma
#

No, it's equivalents

#

But also like why

#

Anyways

rain apex
#

oh i see and yes terrible

cinder karma
#

C# sometimes doesnt let you do what I think should be easy

#

Like switching over const user defined structs

safe dragon
cinder karma
#

For example

#

(User defined structs with no non value type members)

#

It's all under thr desire for a user defined const capable tupe6

weak junco
#

I have a long history of saying "i love c#, but i hate .net", honestly its not as bad anymore tho

weak junco
safe dragon
#

this is one of the few things I know about C

#

this quirk

weak junco
#

I think its one of the reason why starting with C or C++ can be so valuable, you see weird things like this and go "i wonder why", so instead of always thinking about arrays in the abstract, you go in and find out that actually it's all pointer arithmetic, and that knowledge stays with you and offers a really solid foundation

#

meanwhile people keep recommending to start with python, smfh

safe dragon
#

I tend to just recommend people to start with whatever language makes sense for what they want to do with the skill

weak junco
#

Valid

safe dragon
#

I'm a python hater tho so I will never say it directly

weak junco
#

I'm a python hater

#

Yeah I also really dont like it. People do cool things with it sure, but but none of that comes from any quality of the language

safe dragon
#

personally I think people should at the very least start with some statically typed language

#

the funky ass stuff especially javascript just kinda shrugs off is not great for learning how to do things well

#

implicit type coercion between types that are nothing like each other is evil

weak junco
#

('b' + 'a' + + 'a' + 'a') // 'baNaNa'

safe dragon
#

I love bananas

weak junco
#

Compiler errors are such a good learning tool

#

unless it's c++ linker errors but yk

safe dragon
#

when you first need understand everything about a langauge to understand its error messages

#

haskell...

weak junco
#

It's rough 😅

devout vault
weak junco
safe dragon
#

I remember haskell compiler errors being completely arcane nonsense to me when I first had to learn it in uni

devout vault
#

(Maybe they're still bad, I dunno)

safe dragon
#

as far as I know they're still bad

#

people still hate on them

weak junco
#

Yeah, some improvements with common errors but templates are kind of fundamentally unstable

#

There is one haskell feature I want in every language, and that's where

safe dragon
#

where is nice sometimes

devout vault
#

FL is nice sometimes, just not during the summer. /s

#

talking about strictly the weather

weak junco
#

And yes, I always define my functions lower than where I use them, thank you very much

devout vault
#

I've never heard of where in haskell

#

...or anything about stuff in haskell specifically, really

weak junco
#

ngl even among haskell users where is a criminally underutilized feature

#

The easiest way to describe it is that you define a temporary variable after you use it in the code, within the same expression

cinder karma
#

You what

safe dragon
#

the biggest thing I dislike about haskell is pointfree programming taken to an extreme where people try to rewrite functions purely to be able to omit input parameter names

cinder karma
#

Ugh that looks backward to me lol

safe dragon
#

basically

z = x + y
where
  x = 3
  y = 7
devout vault
#

Hmm

weak junco
#

It's just a more declarative style of code reuse (and ofc deferring details)

devout vault
#

Could be worse but I still don't like it

cinder karma
#

Like the unless statement in ruby

safe dragon
#

it's nice sometimes

cinder karma
#

Have you guys seen how verilog structs are defined

#

Reminding me of that lol

devout vault
#

At the very least I'd want the declarations first

#

Definition is fine, we already do that for C/C++ functions

cinder karma
devout vault
#

But like a deferred x, y; or something would improve it a lot in my opinion

weak junco
cinder karma
#

You also have the walrus operator in python

#

Which isn't actually related to the conversation

devout vault
#

I can sorta see the value in some situations, but I still would rather have seen the variable declared already

weak junco
#

It makes it clearer that the placeholders like FA_CanDualTarget won't be used again outside of the expression, unlike a local function.

cinder karma
#

I just love that it exists

safe dragon
#

I'll take anything over pointfree programming where you omit parameter names entirely

devout vault
# cinder karma

I feel like I'm missing something, what's weird about this

cinder karma
#

The struct name being at the bottom

safe dragon
#

the name of the struct is at the end

cinder karma
#

Not the top

#

The bottom

devout vault
cinder karma
#

I hate it

weak junco
devout vault
#

That's kinda terrible but was my first thought

weak junco
safe dragon
#

especially in haskell where functional purity is valued a lot

devout vault
#

Or

using (int x, int y)
z = x + y
{
  x = 3
  y = 7
}
#

I'm fine with the definition being later, I just want the actual declarations beforehand

#

But hey, not my language 😛

weak junco
#

Sir, you have just invented the instant-eval inline function 😅

cinder karma
#

Or

{
let x =3;
let y=7;
x+y}

devout vault
#

it's ma'am I assume that's another haskell thing?

weak junco
devout vault
#

Oh, so lambdas

weak junco
devout vault
#

But calling them immediately

weak junco
#

Yeah, usually you don't do it for this purpose though

devout vault
#

I'm just a hater, don't mind me

cinder karma
#

Dont worry

weak junco
devout vault
#

It'd be an improvement but wouldn't make me not a hater, just less strongly of one

cinder karma
#

At least you're not writing

assign x_twos_complement[3:0] = x[3:0];
assign x_twos_complement[4] = x[4];

#

Repeatedly

#

Oh

#

x_twos_complement_reversed

#

At least I didnt need to gray code anything here lol that would be funny

weak junco
#
z = evaluate (x + y)
    with x = 3
         y = 7
cinder karma
#

x_twos_complement_reversed_gray

weak junco
#

Even just requiring the expression be in parens before the where would prime you to understand

devout vault
#

Like if I add x = 2, y = 4 before that, what would happen

weak junco
cinder karma
#

Shadowing would be useful tbh

#

Tbh I still prefer rust's just {} yourself an expression lol

devout vault
#

If it doesn't allow shadowing it'd also be fine, I just think about... what if I'm reading code and someone reused variable names, and I see the first line without the rest (like scrolling down in vim or something)

weak junco
#

I prefer compiler errors and proper namespacing over shadowing

#

If it was my language, id disallow it

devout vault
#

I think there are some cases where I like shadowing, but it's rare

#

Super rare, I can't remember the last time I used it

#

Maybe because C# is less than happy about that stuff

cinder karma
#

I tend to like shadowing especially for small throwaway variables

#

Which this is

#

C# has stricter shadowing rules

#

I don't like it in python (too loose)

weak junco
#

Shadowing is very common in Golang, because of all the ret, err := someFunc() stuff

cinder karma
#

Python scope is just awesome. And by awesome I mean awful

devout vault
#

These days I just make separate scopes instead (though that's kinda a different use case). Like

{
  int x = 3;
  int y = 5;
  doMath( x, y );
}
{
  int x = 7;
  int y = 9;
  doMath( x, y );
}
weak junco
#

Explicit scopes are nice

#

But, again, rare

weak junco
cinder karma
#

I also wish c# was better about redecorating variable names

devout vault
#

Re whatting, now?

cinder karma
#

Ie

str smth; ReadonlySpan<char> smth = smth.AsSpan()

#

I do this alll the time

#

Except the span has to be named differently in c#

devout vault
#

Ah

cinder karma
#

So it becomes smth and smthSpan

devout vault
#

I've never even thought about that. Yeah, that would be nice

weak junco
#

"Awesome: Extremely impressive or daunting, inspiring great admiration, apprehension, or fear."

devout vault
#

So many times I have variables like theData or actualData or rawData or ...

cinder karma
#

SmthInt

#

SmthParsed

#

I hate it

weak junco
cinder karma
#

Why not? If I don't need the previous variable anymore

weak junco
#

"redecorating" is supposed to be "redeclaring" right? Or is it about "type decorating", whatever the semantic implications of that are

cinder karma
#

I'm basically saying "okay I'm done with this being that type. Now I want this type."

#

Redeclaring yeah sorry

safe dragon
#

I think that's called shadowing

weak junco
cinder karma
#

Shadowing is when you use the same name in a smaller scope

safe dragon
#

I suppose shadowing is for different scopes yeah

weak junco
#

I think you're just hiding the fact that you're working with two different values, of two different types no less, instead of acknowledging and documenting that fact through the variable name

cinder karma
#

Redeclaring is when you drop the previous and assign the same name to something else

devout vault
#

Like, I can overwrite functions in C# with pointers, but that doesn't mean it's good

cinder karma
#

It's best use is when you want the same thing, represented differently

#

Or in Rust when you can give up your let mut

weak junco
#

I think it still only makes sense if the two values conform to the same Interface, in which case, you can already do that without redeclaration

#

I do see one use case though, one that purely benefits terseness: Compound Call Assignment

#

Its a very rare language feature, iirc its because it makes the grammar harder to parse, but basically:
!!! THIS IS NOT PHP, PHP IS DUMB BECAUSE IT CONCATENATES WITH . !!!

string a = "ASD";
a .= ToLower(); // "asd"
devout vault
#

That does look interesting, but what does it have to do with redeclaration

weak junco
#

Well

#
var a = "asd";
var a .= Length(); // 3
devout vault
#

Wouldn't a become an int

weak junco
#

In this case yes. It's kind of a bad example, yes.

devout vault
#

I thought that was what you disliked about it, did I misunderstand?

weak junco
#
var a = "asd";
var a .= AsSpan(); // span
weak junco
#

As far as im aware, raku is the only "major" language that does this, but it's not statically typed.

weak junco
safe dragon
#

only 2 I think?

#

I guess 3 if you considering &str and String different types

#

I suppose they are

#

my brain tends to just view &str as a slice into String

pliant snow
#

maybe because they used the same syntax as a slice into a string

weak junco
#

Might be a bad faith meme

cinder karma
#

Please, the joke is about number types

safe dragon
#

oh right OsString

#

I forgot that one

weak junco
#

Cant be worse than c++ surely

safe dragon
#

I have used &[u8] a fair few times

cinder karma
#

Also to be fair Vec<u8>, while it can hold string data. Is not a string

safe dragon
#

honorable mention to Chars for a character iterator

weak junco
#

I think the point has been made either way

safe dragon
#

true

#

though in practice it really ain't too bad

weak junco
#

The number types look fine imo

weak junco
#

I just know rust is based because of its insanely flexible type system. (It even has existential types, the lack of which gave me an existential crisis in Typescript)

safe dragon
#

the thing that messed with me the most are the 300 different types of structs that hold a memory location. Box, Rc, Cell, RefCell, UnsafeCell, Arc....

#

honorable mention to Cow

#

which is just a clone-on-write smart pointer

weak junco
#

Weak is pretty important for some data structures

safe dragon
#

there's also a library that's somewhat popular called ArcCow

weak junco
#

A lot of languages could benefit from more explicit copy/clone semantics

safe dragon
#

definitely

#

rust makes me feel bad when I use a clone

#

wish we had clone in C#

weak junco
#

I will not get into C++ move semantics SDVpufferdead

safe dragon
#

there's MemberwiseClone but that's a protected method

weak junco
#

Good ol' Newtonsoft.Json

safe dragon
#

we've moved on to System.Text.Json now hc_pensive

weak junco
#

Yes

#

Same dev is in charge of that now iirc

#

Which is a cool move

safe dragon
#

I say that but Newtonsoft is still everywhere

cinder karma
safe dragon
#

don't think that's in regular C#

weak junco
#

It is not

#

Is traits the best rust feature 🤔

safe dragon
#

nah

#

they're a nightmare once you get into async

#

it's getting better but it's a mess

#

async traits kind of exist now but very limited

weak junco
#

Ah yes, async rust 😅

safe dragon
#

it's not pretty

weak junco
#

Still entirely propped up by third party crates right?

#

tokio 👀

safe dragon
#

yeah you have to rely on one of the async runtime crates

weak junco
#

Either way though, being able to implement traits on someone elses types is cool

safe dragon
#

the intention was to allow people to pick an async runtime that fits their usecase but in practice is really hard to use them together so you're basically married to a specific runtime and any library written for another async runtime doesn't work

#

some crates provide implementations for more than 1 runtime but that's a big maintenance burden

#

so in the end it's just tokio 95% of the time

#

even if you're not writing a networking application which is what tokio is intended for

safe dragon
#

which is a major limitation at times

weak junco
#

Its fine if you just wrap the foreign type

safe dragon
#

newtyping sometimes works as a workaround yeah

weak junco
#

But again, im a bit of a rust noob, so idk how often that causes other issues

safe dragon
#

newtyping is much more of a pain if you're a library author

#

if what you're writing is the final product it's not that bad

weak junco
#

Makes sense

safe dragon
#

I pretend I know things about rust

#

I haven't touched the language in any serious way in years

#

wait no

#

in 9 months

weak junco
#

My main contact has been with my buddy who is writing firewall software with it, but im more the frontend guy in that project

safe dragon
#

I'd brag about knowing a lot about C# but I'm surrounded by modding wizards here who can recite the entire reflection api like it's their anthem smh

weak junco
safe dragon
#

smh trying to be fancy

#

a familiar trap

weak junco
#

Its not really about being fancy, its just about having a rock solid implementation, validated by rusts type system and compiler

#

Which is pretty important for a firewall ig

safe dragon
#

if you do get to the end product eventually it can be good

rain apex
#

dont u just use publicizer

weak junco
#

We originally chose rust because of sum types

safe dragon
#

I've spent my fair time making some super fancy overengineered solution only to eventually scrap it for something extremely simple

weak junco
#

Or "real enums"

weak junco
safe dragon
#

C# will probably get "real enums" in the next few years

#

🙏

safe dragon
#

I have no idea what publicizer is

rain apex
#

good u r no crimes Dokkan

weak junco
safe dragon
#

oh god what is this

#

you fuckin modders are criminals

heavy daggerBOT
heavy daggerBOT
weak junco
#

Huh

fleet wren
#

private fields is a scam perpetuated by Big Reflection to get us to use their APIs

weak junco
#

I had a different workaround when i needed access to a private field

#

Encapsulation is a scam

#

OO is a scam

rain apex
#

encapsulation means i can patch the property getter!

#

it's a good thing :)

devout vault
#

And to be fair I'm fairly proficient with Harmony transpilers, which is probably an even worse crime

#

I'd be doing cecil crimes too if not for Pathos never adding it to SMAPI

weak junco
#

I wish the standard had become "LSP completion hides private fields unless you type the _ prefix that private fields must all have"

rain apex
#

my past year o work has been "wow this sure would be a lot easier if I can harmony things in C"

safe dragon
#

I actually use reflection once to set a boolean in my unit tests that's private readonly with a 6 line comment explanation of why it exists

devout vault
rain apex
#

thats illegay according to the security guys

#

😔

devout vault
#

illegay

#

So like

#

Illegal in the same way as "be gay do crimes"

rain apex
#

yes exactly

devout vault
#

I know for a fact it's done in skyrim modding

cinder karma
#

Pointers.

devout vault
#

Since I briefly looked into that before deciding I didn't want to deal with it

heavy daggerBOT
rain apex
#

the performance guys would also not like it i think

devout vault
cinder karma
devout vault
cinder karma
weak junco
#

Stardew Valley is proof that as much as Minecraft is one of the two most successful modding communities of all time, it could be even better with c#

#

Imo

devout vault
#

(Can you tell I don't tend to care abnout performance much)

#

I mean MC has harmony equivalent

cinder karma
#

Also smh my atc simulator needs to be able to run on a raspberry pi

devout vault
#

They've had it since before SDV was released

rain apex
#

mixins or something

safe dragon
#

y'all are always interesting for me cause you know things about parts of C# I have never touched and then some extremely widely used library in half of all enterprise C# applications that exist is unknown to y'all

weak junco
#

Yeah but they have java kekw

rain apex
#

it seems more powerful in some ways

devout vault
#

Although it was closer to cecil, since you could add fields and stuff

#

I even wrote something similar using the same library for another game I considered modding

cinder karma
#

Can't you add fields with conditional weak table

devout vault
#

I don't know what I did wrong but java was being a pain in ways it normally wasn't with MC modding

weak junco
#

I remember that there was a huuuge shift in mc modding when mixins became available

devout vault
cinder karma
#

I legitimately think that an atc game would be fun

devout vault
#

You keep saying this but I don't see you making a design document or prototype

cinder karma
#

Of course. Why would I 😛

#

That sounds like effort

devout vault
#

I'm not interested enough to learn about it and design it myself 😛

cinder karma
#

And I certainly didnt expect you to do it

devout vault
cinder karma
#

Makes sense!

weak junco
#

I wonder how moddable godot games are by default

devout vault
#

It was kinda a pain because back then your stuff was running deobfuscated, but it had to work obfuscated too for the final release

cinder karma
#

Tbh I'm glad I'm no longer dealing with mods

devout vault
#

I wrote a whole thing for mapping a type name to deobf or not based on the current environment

cinder karma
#

Verilog hierarchical and also $cgav are enough for me

devout vault
#

So I could do my "transpiler" and reflection crimes peacefully

#

The last thing I worked on on that front was dynamically generating a config screen based on a config class

#

Don't think I finished it

devout vault
#

One of my past godot projects had a thing for loading pck files into the current game though

#

The main annoyance I had was the way that godot works, you basically had to extract all the base game files into your module to reference them, then not export those files when packaging it

#

And the editor didn't have a way to add like an additional filesystem for reference only while in the editor (even with tool scripts)

#

I should program something SDVPufferThink

#

Unsure if I want to try to finish my angelscript C# binding, or poke around with the homebrew stuff, or continue trying to figure out why updating flecs.net is crashing, or ...

#

or just watch anime/youtube since I'm a bit behind on that

cinder karma
#

Ask the botto

safe dragon
#

I had a whole message typed out but then one of my dad's cats that I'm taking care of for a few weeks finally got out from under the couch after almost 2 entire days so priorities changed

weak junco
#

Valid

cinder karma
#

Cat tax

devout vault
#

CAT

#

What atra said

weak junco
#

I hope zed + omnisharp improves soon

devout vault
#

I have to send a picture every time I mention to them that my parent's cat gets on my desk

#

And now I'm subject to cat tax

weak junco
devout vault
#

He knocked that pillow off something in the hallway

weak junco
#

Pillow stair surfing yes

cinder karma
cinder karma
#

No jury would convict

devout vault
# cinder karma Fully innocent

Technically he moved a rolling chair, which the pillow was partially on top of. So when the chair moved the pillow fell

safe dragon
# cinder karma Cat tax

I can't really send a good pic of that one yet because I'm very scared he'll flee back under the couch if I try to come close but

cinder karma
#

Awww

#

Poor kitty

safe dragon
#

here's the scared one

#

and here's the one that settled in quickly

devout vault
#

CATS

weak junco
#

Magnificient.

safe dragon
#

the scared one once escaped my dad's apartment and ended up hiding in a bush terrified for several days before we finally found him. That clearly caused some kind of trauma so it's already huge that he has left the couch

cinder karma
#

Floofy

#

Melm

safe dragon
#

they're norwegian forest cat/maine coon mixes. They're genuinely absurdly fluffy

devout vault
#

Fluffy cats are the best

tranquil grove
#

SDVpufferheart one of my neighbor's cats just went through similar
(though they're the "let cats roam the neighborhood" types, that specific cat is terrified of being out)

devout vault
#

My parents cat ain’t fluffy 😔

#

(He’s a bengal)

#

I grew up with all fluffy cats. I miss the floof

tranquil grove
#

she got out and disappeared for...4 days? but managed to get back and hide under a car for a while

safe dragon
#

we looked over through every place for miles around my dad's apartment and then when he was ultimately found he was literally right outside the apartment complex

#

lots of very thick bushes we had no chance of seeing anything in though

weak junco
#

My brother and his fiancees cats: Little witch cookie and fat louie

safe dragon
#

majestic

tranquil grove
#

favorite cat fur type, though I've never had one of 'em

devout vault
#

Once we thought my cat had gotten out and couldn’t find him after several hours of looking.

That afternoon while I’m crying in the living room he walked up out of nowhere like “oh hi, what’s going on?”

#

He probably never left the house, we just couldn’t find him

#

No idea where he was

#

Somewhere dark most likely since he’s a black cat and we wouldn’t see him then. But we had thought we checked all those spots

#

(Checked with hands, so would feel fur)

safe dragon
#

my mom's cats are outdoor cats though they are now 15 and barely leave the driveway if at all. They used to "rule" the entire neighborhood when they were young

devout vault
#

Kirby was about to turn 19 when he had to be put to sleep

tranquil grove
#

my last was 22 or so, hard to recall because he was born around the same year as me

#

as seen in this very dated photo

#

I should probably digitize some of them next time I'm around my parents, I have 2 total SDVpufferthink

devout vault
#

I’ve got some really old pictures of Kirby where he was a kitten

cinder karma
#

I am without cats of my own

devout vault
#

Or used to, maybe that was on an old harddrive and I never backed it up

cinder karma
#

This one hangs out behind work though

cinder karma
devout vault
cinder karma
#

I enjoy how much of today's debugging is literally me being dumb

#

Anyways

#

Dinner time

devout vault
#

(Did you know, 197% of statistics are made up on the spot!)

tranquil grove
#

reminds me he was shockingly careful with his claws, compared to any other cat I've met SDVkrobusgiggle
grew up harassed by babies but never scratched anybody (so not trimmed often* or removed, unlike my parents' previous one)

safe dragon
#

my first childhood cat lived till 18 and now my next childhood cats are the aforementioned 15 year olds

#

my dad's cats are only like 5/6 I think

devout vault
#

My childhood cats were all born during the era that declawing was popular and people usually didn’t question it

tranquil grove
#

yeah, my parents considered it but never had an excuse

devout vault
#

My twin and I were like 7 when we got them

weak junco
#

Cookie always tries to come up with me when I go to sleep in the attic when visiting my parents, but for some reason she's not allowed there, it's a bit of a logistics challenge because it's a door with very steep stairs right behind

tranquil grove
#

also he was pretty good about using scratch posts etc, never overgrew much

devout vault
#

Which was probably a factor

tranquil grove
#

he did also tear up a couch, but mostly stuck to posts

weak junco
#

Meanwhile Louie doesn't give any f's, ever. That belly is the most wonderful feeling floof in the world though.

#

Ok, thats enough cat pics from me

safe dragon
#

none of the cats in my family were ever declawed that I know of

sand frost
#

Not my cat

safe dragon
#

beautiful

cinder karma
#

Kitty!!!

#

Where did you get this one

sand frost
#

I just like to take photos of him

sand frost
#

My mom’s friend’s cat

#

He’s a Maine coon

#

Very friendly, very big

devout vault
sand frost
#

That’s his window watching table

safe dragon
#

reminds me of this picture of one my mom's cats

#

cats sitting in a human way is always great

weak junco
#

I wish it was easier to adopt cats in germany

#

Idk how difficult it might be with my apartment

cinder karma
#

Big cat

safe dragon
#

none of the shelters near me even have any cats

weak junco
#

Unless they really wanna be left alone, youre not allowed to adopt just one cat either

cinder karma
#

What do you have to do to adopt a cat?

#

Pet fee?

#

Mandatory monitoring ?

devout vault
#

I miss floof 😔

safe dragon
#

idk about germany but in the netherlands you have to go through an assessment to determine if you're capable of caring for them and that your motivations are good

cinder karma
#

The big reason why I don't have a cat is I'm out of the house for 14+hrs/day six days a week

#

Which is basically

#

Untenable

weak junco
#

Yeah, its similar here i think

#

I havent gone though the process myself, though

#

I can barely take good enough care of myself 😅

safe dragon
#

a lot of shelter cats come with a requirement that they can go outside so that's impossible for me

devout vault
weak junco
#

2nd story apt

devout vault
#

Would a catio work

#

Or outside outside is required

safe dragon
#

cause they were outdoor cats before ending up in the shelter is usually the logic

devout vault
#

Ah. Hmm

safe dragon
#

though like i said none of the shelters near me even have any cats rn

#

strays practically don't exist

cinder karma
#

I would love a small farm

#

Barn cats

#

Chicken coop

#

Plants everywhere

#

Grey water system

#

My own solar panels

#

Almost off the grid

devout vault
#

I didn’t know atras low tech remote commune included cats in the blueprint

cinder karma
#

Gotta have cats

devout vault
#

True

cinder karma
#

If you don't the mice win

safe dragon
#

love cats

cinder karma
#

Also i need to find a like minded person. Somehow

#

Preferably more than a single like minded person

safe dragon
#

a 2 person commune

dusty pollen
#

I'm not joining any communes that don't have wifi

rain apex
#

are there gonna be wind turbines

cinder karma
#

Maybe a small wind turbine

devout vault
#

I couldn't do a low tech commune since all my hobbies use my PC

cinder karma
#

But batteries and solar is easier

devout vault
#

Well, a few use my phone I guess

rain apex
#

what about a windmill

#

i just want a big spinny thing

cinder karma
#

The Commune may not have wifi

#

Haha

rain apex
#

a spenny even

devout vault
#

Okay, so:

  • Updating Flecs.NET - fixing the native code crash is painful, but I had another idea to look into (maybe I broke the code that calculates the size of C# types and converts things to/from it?)
  • AngelScript C# bindings - gotta learn more about SWIG to remove the rest of the pointer wrappers (especially the function callbacks, kinda important for this)
  • The homebrew game stuff - Basically just explore what I can get running on stuff (still sad I can't get .net to be small enough for GC/Wii RAM)
#

Decisions, decisions

#

A and B are for my "main" game project which is too large for me to ever finish realistically

cinder karma
#

It's funny because a lot of my hobbies no longer require a computer

devout vault
#

With C, I have no concrete ideas for what I want to make

cinder karma
#

What would you like? Cat platformer?

devout vault
#

I dunno

cinder karma
#

Do you start with the gameplay loop and move out?

devout vault
#

I did re-remember a game idea but there's stuff to figure out before I code much on it

devout vault
#

But I gotta have at least a general setting and gameplay I want

#

Like the way I'd start doing a top down roguelike is very different from a KAR-like

#

(Even ignoring the 2d/3d part)

cinder karma
#

(I'm very dumb and have no idea how gameplay loops actually work.)

#

Like what's a roguelike

devout vault
#

Well, not so much the loop in a code sense so much as from the player sense

#

Roguelikes essentially you die a bunch, and make progress towards beating it by getting better at the game

#

Roguelites (k -> t) are similar, but you can get some sort of upgrade between runs based on your previous run performance

dusty pollen
#

it's a kind of overloaded term afaik? meaning both the game event loop and the player's gameplay loop

tranquil grove
#

yeah, roguelike is when you die and start over, basically SDVkrobusgiggle
(there is so much forum discussion about the terms, do not read about it)

cinder karma
devout vault
#

I enjoy roguelikes sometimes, but usually need some sort of persistent progression (which is why I prefer roguelites)

tranquil grove
#

I have a physical mini-notebook for a roguelike where the proc-gen world regenerates whenever you're not looking at it, which seemed fun

frosty echo
tranquil grove
#

probably like a decade old since I decided not to do gamedev

devout vault
#

Spelunky is a bit of a weird exception for me liking it, but I play that kinda mindlessly hence why I'm so bad at spelunky 2 COUGH

dusty pollen
cinder karma
#

What's spelunky

#

Hmmm

devout vault
cinder karma
#

What hobby should I pick up next

tranquil grove
#

(re spelunky) indiana jones styled cave platformer, go down in a cave w/o taking fall damage*

devout vault
#

Since my dreams largely lack object permanence

dusty pollen
#

needle felting

cinder karma
#

Fwiw. My heart is saying yarn dyeing rn

dusty pollen
#

oooo, yarn dying seems fun

#

personally I'm not into chemistry type hobbies SDVpuffersquee

cinder karma
#

I love chemistry type hobbies!

devout vault
cinder karma
#

Like cooking or baking