#dev-general

1 messages · Page 349 of 1

prisma wave
#

🧐

lunar cypress
#

o7

pliant badger
#

did anybody here ever run some IDE's on the raspberry pi 4?

stuck harbor
#

no

heady birch
#

I mean, I reckon you could technically run IntelliJ on a raspberry pi

#

Might need to be the more than 1GB ram models

stuck harbor
#

u could run vim

#

easy

old wyvern
#

😮

old wyvern
#

This is just pain

#

pure pain

prisma wave
#

jesus

jovial warren
#

fuck that

#

fucking 2 space indents

forest pecan
#

any formatting does that

#

lmao

jovial warren
steel heart
#

so good formatted

forest pecan
#

lol

prisma wave
#

hello my docker expert @lemmo#

#

fuck

#

i messed that up

half harness
#

😂

prisma wave
#

hello mr docker expert @frigid badge
yugi and i are looking into remaking clash of code and we wanna run our infrastructure plan by you to make sure it's ok

so we need to make some sort of service for safe code execution and the obvious option for that is docker. since containers are kinda slow to startup we're planning to "pool" them so the service has relatively low latency. then we'd have some web api that automatically finds a free container and runs the code.

this seems fine but i have a few questions:

  1. should our images be able to run code in any language, or should we cluster containers based on language to keep the image size down?
  2. is a service like AWS lambda or azure functions appropriate for this?
  3. if not, is kubernetes appropriate?
  4. if not, what is?

cheers

steel heart
#

have you ever thought about mutability

prisma wave
#

no

lunar cypress
#

I wouldn't write my own code execution stuff if I were you

prisma wave
#

why not?

lunar cypress
#

There's just so many things that can and will go wrong

prisma wave
#

true

#

it seems like a pretty fun exercise though

lunar cypress
#

sure

#

just get a security expert on board before you make that stuff public

prisma wave
#

yeah that seems reasonable

ocean quartz
#

I am very confused right now, wtf, on a slightly older version of paper for 1.16.5 rainbow nick names work fine, but on the latest version it somehow adds an r to the end of the nickname .-.

forest pecan
prisma wave
#

elara infrastructure 🥲

forest pecan
#

Yes

prisma wave
#

our service will of course support elara execution

forest pecan
#

!!!

ocean quartz
#

I wonder if it's because of adventure version thonking

prisma wave
#

classic adventure

lunar cypress
#

okay jmh monkaW

forest pecan
#

@half harness

#

i still have this saved

#

🙂

half harness
#

:/

#

im used to gradle lol

jovial warren
#

dkim how many brain cells do you actually have

#

just out of curiosity

half harness
#

maybe 3

#

not sure

jovial warren
#

seems legit

half harness
#

;-;

jovial warren
#

oh btw, not a priority for Krypton of course, but just wondering, thinking about proxies, should I:
a) support BungeeCord
b) support Velocity
c) support LilyPad
d) support all of them

#

or e) make my own proxy from scratch

#

I suppose I could dkim

half harness
#

👀

#

how hard would making a proxy be?

old wyvern
#

Use elara/proxy

jovial warren
#

eh, it's basically just Krypton without the BS lol

#

all I have to do is forward packets

#

actually, thinking about proxies, I might work with Geyser at some point to introduce Bedrock support to Krypton

ocean quartz
#

Is there a way to log a message to console without it becoming colored? Hard to debug because console will parse the colors

obtuse gale
#

System.out.println fingerguns

#

what...

winter iron
#

log to file and open file fingerguns

ocean quartz
#

Surprisingly println parses color on paper as well

half harness
obtuse gale
#

Ez

ocean quartz
#

Sometimes I just can't understand Bukkit

#

Like, why.. why would this be nullable

winter iron
#

¯_(ツ)_/¯

#

defeats the whole purpose of the function lol

ocean quartz
#

I don't understand

winter iron
#

not for you to understand

#

obfuscation

#

in a subtle form

#

cause indirect confusion

old wyvern
#

oh

#

Sorry for the tag con

half harness
#

lol

old wyvern
#

Even if i delete its going to be a ghost tag so just gonna leave it there

obtuse gale
#

Annotations are the worst enemy of some people in here

#

Pings left and right

old wyvern
#

Yea rip lol

#

Should've used a code block or something ig

lunar cypress
#

How much time do you guys think is reasonable to measure the performance of stuff like ArrayList#add

half harness
#

@​Yugi

lunar cypress
#

I'm currently adding elements for 10 seconds straight and I arrive at a bit more than 10 million elements

#

not sure what's most representative

old wyvern
#

Whats the default starting size for an array list?

obtuse gale
#

alot

lunar cypress
#

the default initial capacity is like 32

old wyvern
#

Growth is approx 1.5x right?

#

Or was it 2?

lunar cypress
#

I think it's 2x, no?

#

although you can technically adjust it

#

I'm just using the defaults right now

old wyvern
#

Lemme confirm, for some reason i remember someone telling me about 1.5 being the default

#

Yea best to benchmark on* default probably

#

since those would really impact the result

obtuse gale
#

vector::reserve, imagine

lunar cypress
#

initial capacity is 10

lunar cypress
old wyvern
#

Yea one moment, just making sure of the growth factor

lunar cypress
#

I've adjusted the benchmark I sent you the day before yesterday a bit because the the collections weren't reset after each iteration for example

#

now, with 10 seconds per iteration clojure and java arrive at almost the exact same benchmark results

#

(I don't run into a bottleneck anymore I think)

#

I think like 10 million elements is a reasonable size to work with

old wyvern
#

int newCapacity = oldCapacity + (oldCapacity >> 1);
Seems to be 1.5 times in java 8

#

Not sure about newer

lunar cypress
#

Ah, they scale it too

old wyvern
#

Is the repo updated?

lunar cypress
#

not yet

old wyvern
#

I wanan try again to figure out what went wrong in my run on it

lunar cypress
#

would probably make sense to do that to confirm

#

although be warned, I also test sets and maps now and thus the time it takes will probably be > 15 min

#

it's up now

#

for a quicker test set the forks to 0 in the jmh configuration in build.gradle

#

clojure's map and set actually performed better than HashMap and HashSet

#

in my tests

#

Although I'm willing to bet that there will be different results again lol

old wyvern
#

lol

old wyvern
half harness
#

build.gradle.kts > build.gradle?

winter iron
#

@lunar cypress ill try run it now

#

🙂

old wyvern
half harness
#

hm

lunar cypress
#

I prefer it, yes

#

Because I know more kotlin than groovy and because I like it being statically typed

lunar cypress
obtuse gale
#

If it doesn't then Java is fucking stupid

old wyvern
#

I think those would be done by the JIT compiler, so maybe they used that there to make sure it acts consistently

lunar cypress
#

javac barely optimises anything

old wyvern
#

I see

lunar cypress
#

The things it does optimise you can count on one hand

obtuse gale
#

Does it include multiplications and divisions by powers of two? Lmao

lunar cypress
#
  1. putting eligible values in the constant pool for inlining (static final)
  2. evaluating compile time constant expressions
#

I'm not aware of anything else it does

obtuse gale
#

Whack

lunar cypress
#

JIT does the heavy lifting

#

and it's very good at it

winter iron
#

@lunar cypress i ran ur benchmark and just got back to it

#

tf am i supposed to be looking at

#

i got lots of numbers

#

?paste

compact perchBOT
#
FAQ Answer:

Paste Services
When asking for help with a config/menu/code issue please use one of these:
(However we do prefer if you used our paste :))
HelpChat Paste - Usage
Hastebin

winter iron
lunar cypress
#

oh yeah could you look at build/results/jmh/results.txt?

winter iron
#
Benchmark                        Mode  Cnt    Score    Error  Units
ClojureAddition.benchmarkMap     avgt   15  830.320 ± 30.948  ns/op
ClojureAddition.benchmarkSet     avgt   15  842.206 ± 10.689  ns/op
ClojureAddition.benchmarkVector  avgt   15  362.187 ± 18.946  ns/op
JavaAddition.benchmarkArrayList  avgt   15  347.367 ±  6.603  ns/op
JavaAddition.benchmarkHashMap    avgt   15  772.965 ± 13.422  ns/op
JavaAddition.benchmarkHashSet    avgt   15  772.150 ± 11.346  ns/op
lunar cypress
#

judging from those numbers I can already tell your cpu is about 3 times faster than mine

onyx loom
#

lol bad pc

winter iron
#

xd

lunar cypress
#

yeah

winter iron
#

5800x

onyx loom
#

👀

winter iron
#

took 30 mins to run

#

:/

lunar cypress
#

yeah that's expected

#

the time is fixed

winter iron
#

i just went for shower and shit then came back

lunar cypress
#

thanks, those are great results

winter iron
#

that'll be $400 for power consumption and hardware expense pls

lunar cypress
#

they seem a bit more realistic than mine, I probably did run into a bottleneck with map and set

#

:^)

prisma wave
#

hi fp gods, been trying to make a functional lexer and i have been having a bit of trouble

winter iron
#

try asking BM

#

he normally knows

onyx loom
#

^

prisma wave
#

ah ok

#

thanks!

winter iron
#

@prisma wave can u help this dood

prisma wave
#

sure

#

send the code

#

1 sec, just trying to get it

#

it stackoverflows when it encounters a number

#

i know im doing something wrong here, just not sure what the better approach would be

errant geyser
#

what language is that

obtuse gale
#

GitHub added this "Dark dimmed" dark mode (feature preview or w/e)

old wyvern
#

f#

obtuse gale
#

It looks so

#

washed

#

so little contrast

#

HOLY

#

the explore page doesn't have dark mode

#

🥲

#

this looks so washed out

lunar cypress
old wyvern
#

might be str |> lex

prisma wave
#

yeah ive realised why it was stackoverflowing

#

yeah

#

wasnt discarding the first char

old wyvern
#

ah

lunar cypress
#

yes

prisma wave
#
            str
            |> Seq.tail
            |> lex
            |> Seq.ofList
            |> Seq.takeWhile (fun token -> token.tokenType = Number)
            |> Seq.map (fun token -> token.value.Value)
            |> String.concat ""
            |> (+) (Seq.head str |> string)
            |> fun num -> [token Number (Some num)]
``` i now have this, but i cant figure out how to get the "leftover" from takeWhile so i can lex the rest
#

in all of the single char symbols id just do [ nullToken Division ] @ lex (Seq.tail str) but cant really do that here (@ is list concatentation in case you didnt realise)

#

which is why i think takeWhile isnt the best approach

#

i just cant think of anything else

lunar cypress
#

The book I'm currently reading implements a very simple arithmetic language in OCaml, maybe you can find inspiration there

#

just need to find the source code

#

(they don't discuss the lexer in the book)

prisma wave
#

Yeah that would be useful, I couldn't find many code examples that didn't use a parser generator

lunar cypress
#

wow very nice

#

empty lol

#

try arith.tar.gz

#

ah yeah there it is

errant geyser
obtuse gale
#

It's you not loving orange

#

You liar

half harness
obtuse gale
#

It was a trap all along!

obtuse gale
lunar cypress
#

ok this looks way more advanced than the stuff I'm currently at in the book

old wyvern
prisma wave
#

hmm yeah perhaps

prisma wave
lunar cypress
#

the evaluator looked way more similar to the style you use

#

I have no idea what the hell rule main = parse ... is

errant geyser
prisma wave
#

yeah i barely understand any ocaml

old wyvern
cinder flare
#

Made Easy

old wyvern
#

oh, negative.... we may have to pay 🥲

ocean quartz
#

Lmao

lunar cypress
#

[Budget] $ sqrt(10000)

old wyvern
#

lmao

cinder flare
#

[Budget] $ math.floor(.1000)

old wyvern
#

[Budget] (x^2 - 1000 = 0), Solve for $ x

cinder flare
old wyvern
#

😌

cinder flare
#

[Budget] f(x) = 32x^3 + 12x^2 + 2x + 4, find df/dx

old wyvern
#

lmao

#

[Budget] f(x,y) = x^2 * cos(2y^2 + xy ) dydx ∮((y[0,1])e^y * xy + 2 * x^3 * sin(Q+Pi)), find ∬f(x,y)dydx

steel heart
#

jesus

grand pumice
#

i need help!

old wyvern
#

Yes you do!

grand pumice
#

how do i make my menus auto update

old wyvern
grand pumice
#

on deluxemneu

old wyvern
#

oh

lunar cypress
#

∮ tf is this

old wyvern
#

Closed integral

#

lol

#

The range was specified after coz, well... limitations 🥲

prisma wave
#

dunno why it doesnt highlight

cinder flare
#

yeah no I saw that and googled it and it scared me

cinder flare
prisma wave
#

F#

#

very elegant

lunar cypress
prisma wave
#

although those |'s are present in quite a few functional languages

lunar cypress
#

Such as java

prisma wave
#

🥲

lunar cypress
#

as we all know java has union types

#

but only for exceptions lol

prisma wave
#

smart casting in java

old wyvern
#

@gusty glen https://github.com/Vshnv/hasklash
You can have a look at this if you want, only haskell program I have wrote, probably not a good example but somewhat of an example

old wyvern
lunar cypress
#

ok, guess idk what that is

gusty glen
#

can you translate this code to kotlin/java or whatever just so I understand what's going on?

#
execute :: Maybe LoginResult -> IO ()    
execute (Just result) = do
        game <- createPrivateGame [] [] result
        case game >>= Just . handleToLink of 
          {(Just a) -> putStrLn a
          ;Nothing -> return ()
          }
execute Nothing = return ()```
prisma wave
#

oh god

#

let me try

#

wait where's that from?

prisma wave
#

ah app

#

right

old wyvern
prisma wave
#

yeah you're missing the last line

old wyvern
#

execute Nothing = return ()

prisma wave
#

man you cant even do is with Optionals

#

thats a shame

#
fun execute(result: LoginResult?) = when(result) {
  null -> return
  else -> {
    val game = createPrivateGame(emptyList(), emptyList(), result)
    when (val a = handleToLink(game)) {
      null -> return
      else -> println(a)
    }
  }
}

i think this is roughly equivalent

#

there is no direct equivalent to the IO monad in kotlin tho ofc

old wyvern
#

Something like Future is probably usable in place

prisma wave
#

probably yeah

#

I think the reason we/I like FP isn't just about syntax alone, it's how you can break things down into incredibly simple functions really easily, and then compose those functions together to make really nice code

#

there's also some super cool features that most functional languages have that most OO ones don't

old wyvern
gusty glen
#

what is a monoid?

prisma wave
#
type Token =
    | Number of int
    | Addition
    | Subtraction
    | Multiplication
    | Division

something like this is really nice for example

#

the closest kotlin equivalent would be a sealed class and some objects

#
sealed class Token() 
object Addition : Token()
...
data class Number(val x: Int) : Token()
#

and while im somewhat biased, f# has some really nice syntax sugars that make common things much nicer, namely |> and >>

gusty glen
#

>> == bitshift to the right

prisma wave
#

they basically just remove the need for parentheses

prisma wave
#

so let's say you want to apply multiple functions to an object. in kotlin you might do a(b(blah))

#

in f# it would be a (b blah)

gusty glen
#

actually, in kotlin it's even better

#

infix

prisma wave
#

infix wont work here

gusty glen
#

why?

prisma wave
#

a and b only take 1 parameter

old wyvern
# gusty glen what is a monoid?

Ill try to explain, not sure if this would be the correct way to define them. Its like a group of "things" that can be combined in some way and that way is associative* and has an identity

prisma wave
#

let me try and make a more concrete example

#

although the issue is kotlin is mostly OO style whereas F# is prefix

#

so

gusty glen
#

but I already kinda do this with extensions functions (i know it's not the same, I'm talking only about usability)

old wyvern
#

Or Multiplication

#

Consider them under integers

#

They are monoids

#

Even in Real numbers they satisfy rules for monoids actually

gusty glen
#

why would I want to chain a lot of additions?

old wyvern
#

yea

old wyvern
#

In usage in programming, Have you worked with Futures or Optionals?

gusty glen
gusty glen
prisma wave
#

let's say for example we want to parse an url and get the last part of it. so url.com/hello/world would give us world
This is fairly simple, we just get the last index of / and substring
in kotlin it could be done with something like ```kt
url.substring(url.lastIndexOf('/') + 1)


FP usually uses a prefix notation that you might know from procedural languages, so to make it more equivalent we'll do ```kt
substring(url, lastIndexOf(url, '/') + 1)

In F# the direct equivalent would be ```fs
substring (url (lastIndexOf url '/' + 1))

however we dont really like parentheses in FP, so we'll use the `|>` operator to make it a bit more readable
```fs
lastIndexOf url '/' |> (+) 1 |> substring url

Here we have no parentheses and the logic looks more like the OO version in that it reads left to right

#

sorry for wall of text

old wyvern
prisma wave
#

basically, a (b x) in F# can be replaced with b x |> a or x |> b |> a

#

so a more realistic example, we can do ```fs
numbers
|> List.filter isEven
|> List.reduce (+)

instead of ```fs
List.reduce (+) (List.filter isEven numbers)
#

it might look minor but it's surprisingly versatile

old wyvern
#

Holy shit

#

I forgot my assignment

#

FUCK

prisma wave
#

uh oh

#

printfn "%d" (1 + 2) becomes 1 + 2 |> printfn "%d"

gusty glen
prisma wave
#

probably because you're not used to it

#

i like OO receiver style in stuff like streams

#

but F#'s is very clean too

gusty glen
#

what is reduce btw?

prisma wave
#

it basically joins all of the elements into thing with a function

gusty glen
prisma wave
#

java / kotlin has it too

gusty glen
prisma wave
#

we can do ```kt
listOf(1, 2, 3).reduce(Int::plus)
listOf(1, 2, 3).sum()

prisma wave
#

the (+)?

gusty glen
prisma wave
#

lmao

cinder flare
prisma wave
#

yeah string interpolation is very nice

cinder flare
#

i don't know why more languages don't have it

#

concatenation takes up sooo much space

steel heart
#

lastIndexOf url '/' |> (+) 1 |> substring url

#

hm

prisma wave
#

a lot of modern ones seem to be adding it

steel heart
#

like it

prisma wave
#

sexy

gusty glen
#

imagine

cinder flare
prisma wave
steel heart
#

but its good because it cuts down on verbosity

gusty glen
#

instead of lastIndexOf url '/' |> (+) 1 |> substring url it could be lastIndexOf url '/' + 1 |> substring url

prisma wave
#

no

#

that doesnt work because of precedence

lunar cypress
#

With the correct parentheses sure

steel heart
#

or rather it gets easier to read arguably

prisma wave
#
(lastIndexOf url '/') + 1 |> substring url``` would work i think
gusty glen
#

this remember me of java method reference

prisma wave
#

it's very similar yeah

#

except in functional languages you would just use the name of the function

gusty glen
#

that's why I thought lastIndexOf url '/' + 1 |> substring url looks cleaner, probably

prisma wave
#
map functionName list
``` instead of ```kt
list.map(::functionName)
gusty glen
#

in my head list map functionName would be the best, the order of operations are right

#

I will try to explain

prisma wave
#

Yeah sometimes OO style reads better, which is another thing |> is for

gusty glen
#

Like "grab list, call map and pass functionName as parameter"

old wyvern
#

$ ftw

prisma wave
#
list |> map functionName
old wyvern
#

map functionName list

gusty glen
prisma wave
#

Mhm

#

I agree it looks nicer

#

Anyway this isn't really a benefit of FP, just me jerking to F#

#

most functional languages usually have something similar though

lunar cypress
#

Having a "special" parameter makes it more complex

prisma wave
#

Haskell has $, clojure has ->>

gusty glen
prisma wave
#

Rough equivalents of |> afaik

lunar cypress
#

$? Not really

old wyvern
prisma wave
#

Yeah $ is slightly different, not sure what the closest thing in haskell is

#

Yugi probably knows

#

Isn't it << or something?

cinder flare
gusty glen
#

ok I'm not so mad anymore with Haskell

prisma wave
#

lol

#

It's definitely worth learning, even the basics

old wyvern
#

$ just changes associativity at that point, basically tells it to evalutate the RHS as the next expression

prisma wave
#

Although haskell is a pretty tricky language

old wyvern
#

🥲

prisma wave
#

Lmao

#

Missing imports 🥲

old wyvern
#

Aeson

#

The beast

lunar cypress
#

Docs from 1998

old wyvern
#

FromJSON ToJSON FromToFromJSON

#

🥲

gusty glen
prisma wave
#

19481

lunar cypress
#

Cant even open it

gusty glen
#

I was trying to understand this code, but I eventually gave up

prisma wave
#

Literal war crime

old wyvern
lunar cypress
#

Ok i did not need to see that

cinder flare
old wyvern
#

Anyway, procrastinating again, be back in like 30 mins 🥲

prisma wave
#

Au revoir

lunar cypress
#

Same same

gusty glen
#

this code is madness

prisma wave
#

Functions 🙂

cinder flare
#

nah nah nah bro, you've heard of branchless programming but have you heard of branch-exclusive programming?

gusty glen
#

I use functions and methods interchangeably

prisma wave
#

Methods 😫

cinder flare
#

here in branch-exclusive land, we only use branches that's it. The code goes in one line down the screen

gusty glen
gusty glen
prisma wave
#

Gonna go to bed thinking about the fact that a command parser is functionally pure (apart from actually doing the stuff)

#

Mmm

#

Sweet dreams

gusty glen
#

what is a pure function

#

hmmmm

#

good night brister

prisma wave
#

gn

#

A pure function is a function that
A) always gives the same output for the same input
B) has no side effects or relies on external state

cinder flare
#

wow very pure

#

much wow

gusty glen
#

like KOTLIN fun yes (a: Int, b: Int) = a + b?

prisma wave
#

addition is pure, printing is not

#

Yup

gusty glen
#

oh, ok

prisma wave
#

Pure functions are cool but sadly rare in the real world ☹️

forest pecan
#

im a pure function

#

i can be your bb

cinder flare
#

well yeah having side effects and relying on external state is what like 80% of functions do

prisma wave
#

Because dumb clients want their programs to actually do something

#

stupid

gusty glen
cinder flare
#

dude imagine

forest pecan
cinder flare
#

i, for one, care about how my code looks to me than the product does or works to the end user

#

ever seen that donut-shaped C code that makes a spinning donut?

#

that's what I strive for, every day

prisma wave
#

Yeah that's cool

#

Not very readable though lol

forest pecan
#

its readable if you think it is

#

🙂

prisma wave
forest pecan
#

i think donuts are readable

#

therefore

#

readable

cinder flare
#

if i have a vague interpretation of what a function does and i read the four words in the javadoc, that's enough for me boss

#

black box and all that

#

even if it's my job to edit the code inside that black box lol

forest pecan
#

four words is better than no words

cinder flare
#

:(

forest pecan
#

lmao

#

true

#

xD

obtuse gale
#

Bukkit be like

/**
* Return the X coordinate.
* @return the X coordinate.
*/
public double getX() {
  return x;
}
cinder flare
#

dude my favorite part of Kotlin is automatic getters and setters

#

it seriously hurts my comprehension of lots of code to have all those scattered arouhnhd

cinder flare
#

when I was working on a large codebase to add a small feature, I just used IntelliJ to collapse all irrelevant methods and I gotta say 10/10 it really helped me focus

gusty glen
#

this is the madladdest I ever madlad a code

#

please don't judge me

cinder flare
#

why oh why is it a .txt

#

my syntax highlighting just went out the window

gusty glen
#

let me upload to hastebin

gusty glen
#

I had two functions that recursively called each other

cinder flare
#

bro your code would be like 80% better if you a. put some blank lines between logical chunks of code and b. slapped some squiggly brackets in for every if statement, that way it is clear what is calling what. One-line if statements are hard to parse

gusty glen
#

I think I had two migraines while writting this code

gusty glen
#

I was in a hurry and just needed it to work asap, so I didn't really my best to format everything, and also it's not kotlin

cinder flare
#

yeah it not being Kotlin does make me a bit sad

#

I really wish I was allowed to submit Kotlin for my class assignments

gusty glen
cinder flare
#

bruh

#

CS 1410 is slow af

#

he just taught us enums

#

meanwhile CS 2420 I'm learning maze solving and shit, it's awesome

#

none of which is in Kotlin still though

gusty glen
#

what is that CS stuff

#

c sharp?

cinder flare
#

university class names lol

#

Computer Science class 1410

gusty glen
cinder flare
#

courses are just assigned arbitrary numbers vaguely in order of difficulty

#

so like you start in CS 1400, then CS 1410, then CS 2420, then like CS 3200 or CS 3600

old wyvern
#

Finally

cinder flare
#

But what did you do to get banned in the first place 🤔

old wyvern
cinder flare
#

lmao I haven't used twitter in years and mine's still going strong.

#

it actually got hacked once

old wyvern
#

I just had an account coz I had to link it in some applications

regal gale
#

2fa is your friend reversed_fingerguns

jovial warren
#

Lol

stuck harbor
#

I love OAuth2

quiet depot
#

@cinder flare I think that's just america

#

don't think the universities where I live do that

old wyvern
#

I have something similar too at my uni pig

#

This semester:

#

The last digit seems to show the order of the course

#

Like with MAT3003, we finished MAT3002 and 3001 in previous semesters

#

Altho that doesnt seem to follow in all subjects tho

#

But the main ones do seem to follow that

stuck harbor
#

aye

#

it is indeed

frigid badge
# old wyvern

how did you contact them? Everything I try does not reach them

old wyvern
frigid badge
#

yeah I had to mail them to verify as well but never got a response after that

#

damn

old wyvern
frigid badge
#

yeah I have the same email

old wyvern
#

Opinion on using Ktor or spring for a very simple rest api?

winter iron
#

ktor

#

i used it

#

very easy to use

#

when i say i used it, i was literally just tryna learn it

#

and found it very easy and good

prisma wave
#

Probably easier than spring

#

But kinda ew

old wyvern
#

I mean I barely have much to do, like just push some data to firebase and some to a local db

#

Only thinking of doing this coz I cant be arsed to do it in erlang

prisma wave
#

Go maybe?

old wyvern
#

Hmm, any recommended libs?

#

Actually net/http seems good enough

half harness
jovial warren
#

Ktor is really nice wdym

static zealot
jovial warren
#

lol

static zealot
#

Incredible download speeds

#

waited few minutes for a 2MB file to download...

jovial warren
#

Ktor is really idiomatic for Kotlin 🙂

#

I can only recommend Spring though, as that’s the only one I’ve used

#

Spring for small projects though is overkill

#

so is Ktor

jovial warren
static zealot
#

nah. Just sometimes it does that for some reason.

jovial warren
#

lol

static zealot
#

it just goes to 100-400B and never goes up until the download is finished or cancelled

#

if I cancel and restart it just goes back to normal speeds

jovial warren
#

not configuration help, as it says in the topic

static zealot
tropic mountain
#

Alright

jovial warren
#

also, good luck getting support with old, outdated and deprecated versions like 1.8 and 1.7

jovial warren
#

Oh btw, just thought I’d say for those not in the Krypton Discord, when 1.17 releases, I will not just drop all the progress we’ve made with 1.16.5 just to support the latest version. If Krypton 1.16.5 isn’t at least stable enough that it functions by the time that 1.17 comes out, it will remain on 1.16.5 until it is. Sounds like a good idea, right?

old wyvern
#

Im going with Go

#

Seems very simple and lightweight

jovial warren
#

nice

static zealot
#

ye its on ghub

jovial warren
#

Will be fun to have you around lol

half harness
unkempt tangle
#

Anyone expierienced with Ghidra?

#

Or reverse engineering in particular?

jovial warren
unkempt tangle
#

got some encrypted binary lua files, and I wanna decrypt them.

#

But as far I can see there are no particular (decryption) happening whenever the files get loaded.

jovial warren
#

Without the key, you're out of luck

unkempt tangle
static zealot
jovial warren
#

You can't reverse engineer encryption lol

#

Or at least, not without difficulty

unkempt tangle
#

Actually I wanna find out where the "decryption" actually happening.

jovial warren
#

I've actually used that pack before as well

unkempt tangle
#

I can't find XXTEA, XOR or AES

#

Evidences

#

For them.

jovial warren
#

Maybe it's something else then

old wyvern
unkempt tangle
#

:'C

jovial warren
#

I mean, technically, you're not actually making the world round. Rendering shapes reality, it doesn't change it. A.k.a the blocks and the world are still flat, but your perception of them is they're round.

#

May or may not have just referenced Doctor Strange lol

#

Anyone who actually got that reference, PlusOne

#

Lol

old wyvern
#

2 words at most

#
The language of the mystic arts is as old as civilization. The sorcerers of antiquity called the use of this language "spells". But if that word offends your modern sensibilities, you can call it "program". The source code that shapes reality. We harness energy drawn from other dimensions of the multiverse, to cast spells, conjure shields and weapons to make magic.
static zealot
#

Yo random question. So I had this before and seems to have returned. When I try to type a " or a ' it doesn't actually show until I put another character after or just press a key like space enter etc. this is more of a windows related question tho because it happens in IJ and Discord and Browser so I assume that's the problem

half harness
#

works fine for me 🤔

#

might be a language issue

static zealot
#

yeah I know. Just this last windows update messed a few things and I also did play with the language but idk why it would do this

stuck harbor
#

dewit

unkempt tangle
#

Didn't know Red dead was looking that good.

stuck harbor
#

@prisma wave very accurate OOP to Functional comparison

hot hull
#

Lol

forest pecan
#

I feel like oo is more complicated but more flexibility and fp is less complicated to understand but harder to plan out

half harness
#

oo

hot hull
#

What are the last three patterns?

forest pecan
#

i heard of decorator?

#

hm

lunar cypress
forest pecan
#

yea

lunar cypress
#

all those patterns show that oop is less flexible and so you need more workarounds and meta-concepts to model your software

forest pecan
#

ig yeah thats true

lunar cypress
#

But it's true that it's not easy to understand an entire program in terms of functions and values

obtuse gale
lunar cypress
#

But I wouldn't say one is harder than the other in that regard, just depends on what you know

static zealot
half harness
#

hmm

forest pecan
#

UK keyboard?

#

lmao

half harness
#

us > uk

#

🙄

#

qwertyuiop

#

asdfghjkl

#

zxcvbnm

static zealot
forest pecan
#

why lmao

static zealot
#

and yes Efe there is UK keyboard and US keyboard

#

well yeah layout

#

but still

#

its keyboard

#

xD

obtuse gale
#

azerty tho

#

epic

#

🙂

half harness
stuck harbor
#

I have a UK keyboard yeet

#

no idea why

#

...

#

wait

obtuse gale
stuck harbor
#

nope I'm in the UK

half harness
#

nope

static zealot
#

idk I'm not really used to anything other than QUERTY

half harness
#

i've only heard of qwerty and qwertz from efe

onyx loom
#

azerty is more central European standard iirc

obtuse gale
half harness
#

🤮

stuck harbor
#

I've always used qwerty

obtuse gale
#

ik

#

lmao

half harness
#

wheres the wasd

obtuse gale
#

zqsd

static zealot
#

there's

stuck harbor
#

and I will always use querty

static zealot
#

ZQSD

onyx loom
#

zqsd is wasd

static zealot
#

xD

half harness
#

OH

#

so is that why some yts

#

keystrokes

#

had zqsd

static zealot
#

yes

half harness
#

instead of wasd

onyx loom
#

probably

obtuse gale
#

LMAO

half harness
#

ohhhhhhhhhhhhhhhhh

static zealot
#

did you think they had a QUERTY

#

keyboard

half harness
#

yes

static zealot
#

and just used zqsd ?

#

lmaoo

half harness
#

yes 😂

stuck harbor
#

blitz u mean qwerty?

static zealot
#

that would hurt so much

#

yes

#

w

old wyvern
#

لوحة المفاتيح العربية‎, lawḥat al-mafātīḥ al-`Arabīyyah

#

Better

stuck harbor
#

k

half harness
#

uh

static zealot
#

I use U instead of W for some reason (when I type not on my keyboard)

half harness
#

``1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?` <- better

forest pecan
#

here is my keyboard

half harness
#

nice keyboard u have

forest pecan
#

``1234567890-=qwertyuiop[]\ASDFGHJKL;'ZXCVBNM,./`

half harness
#

thats same as mine i think

half harness
old wyvern
#

😌

stuck harbor
#

is using haxe for paperspigot a bad idea?

old wyvern
#

Haxe?

stuck harbor
#

yes, haxe

forest pecan
#

what is that

stuck harbor
#

a language

obtuse gale
#

idk what that is but I'll go with no

forest pecan
#

if it sounds bad its bad

#

haxe sounds like hax

#

so its bad

#

:)

prisma wave
#

very nice

stuck harbor
#

👌

#

but yeah

old wyvern
#

The right column 😂

stuck harbor
#

haxe thonks pls

heady birch
#

How can I have cars in minecraft

#

And real life mod "shaders" or something?

forest pecan
#

minecart

#

:kekw:

ocean quartz
#

Got approved again :pog:

half harness
#

lol

stuck harbor
jovial warren
half harness
#

license

obtuse gale
#

a good load of heroin

half harness
#

jetbrains

#

i think

jovial warren
#

oh right

#

nice

#

trying to think whether getting a profiler for testing Krypton is a good idea or not

#

if I did get one, I would probably have to obtain it from some... questionable sources

#

might give both JProfiler and YourKit a try, since those are the only ones I know of

ruby dirge
jovial warren
#

the only Udemy course I can recommend is the one I learnt from

#

used to be £9.99, around £14.99 now

#

it's a Java course, but it's got just about everything you could ever need to know about Java itself in it

#

and the instructor has over 30 years of experience working with the language

ruby dirge
#

Ye but what about the Spigot API?

jovial warren
#

you can learn that later

#

the only thing I've ever learnt from Spigot-specific courses is that they generally suck

#

because they don't teach you what you need to learn to be able to program on your own

#

oh also, the course you linked teaches with Eclipse

ruby dirge
#

I learn Java in school so I'm not sure if java udemy course is necessary

jovial warren
#

you're better reading official documentation to learn the Bukkit API

#

but be ready for non stop BS

ruby dirge
#

wdym

jovial warren
#

the Bukkit API is one big mess that's just been built on top of non stop for the past like 10 years

ruby dirge
jovial warren
forest pecan
#

does anyone know the cleaner method for Integer.parseInt

#

Oh Ints.tryParse

jovial warren
#

but I think the learn programming academy site provides you with a link to get it cheaper than that

#

that has over 80 hours worth of content

sweet cipher
#

Thats what I use

jovial warren
#

it's a really good course isn't it

sweet cipher
#

It also goes on sale a lot

#

It is

ruby dirge
#

It has 140k ratings and 4.6 stars, wow

sweet cipher
#

550k people have used it

prisma wave
#

one of the better spigot tutorials ive seen

jovial warren
#

oh is it one of the rare Spigot courses that's actually good?

prisma wave
#

i cant say good

#

but i watched a few episodes and didnt have any complaints

#

he at least tries to teach java basics first

ruby dirge
#

kk, i'll check that in a bit

ocean quartz
#

No point in paying for a Spigot course

sweet cipher
ocean quartz
#

First learn Java, once you get a good grasp of it, searching around on google for spigot related stuff, or asking in #development, and you'll learn spigot's api quite well
But first, Java

ruby dirge
#

Ok, thx

#

Can you recommend me any good youtube courses about java or do I need to buy the udemy one?

old wyvern
#

Id recommend going off of course websites rather than youtube courses, maybe you could just audit coursera courses tho

#

Havent used udemy yet

#

but pluralsight and coursera are great

ocean quartz
#

Tbh just found this video and it doesn't look terrible
https://www.youtube.com/watch?v=eIrMbAQSU34

Java tutorial for beginners - Learn Java, the language behind millions of apps and websites.
🔥 Want to master Java? Get my complete Java mastery bundle: http://bit.ly/2tKoy8C
👍 Subscribe for more Java tutorials like this: https://goo.gl/6PYaGF

📕 Get my FREE #Java cheat sheet: http://bit.ly/2JNlQnw

⭐️ Want to learn more from me? Check out thes...

▶ Play video
half harness
#

🤷

frigid badge
sweet cipher
prisma wave
#

no rush, this is still in the ideas phase atm

jovial warren
#

gonna ask here too

#

so, for Krypton, I was thinking, instead of having all the materials in one enum, I thought it might be better if I split up the blocks and items into two different enums

grave parcel
#

@heady birch how can I get kiteboard spigot doesnt let me buy

static zealot
#

wdym? I can buy it

grave parcel
#

can buy anything else

#

its just this

static zealot
#

the link doesn't seem to work

grave parcel
#

click it

static zealot
grave parcel
#

discord embeds are slow

static zealot
#

oh weird. we'll I guess you have to wait a while for Niall to come online.

#

maybe his paypal is blocked or something

grave parcel
#

mhm

half harness
#

btw @oak raft did u get the pi yet 👀

#

🥧

#

just curious

#

😛

oak raft
half harness
#

oh

oak raft
#

I'll update you when it's ordered

#

I've been rlly busy with school

half harness
#

forgot that shipping doesn't take less than a day 🤦

oak raft
#

haha

half harness
#

does the pi website give an eta?

oak raft
#

oh no, it's not ordered yet

#

I'd say it

#

it will be ordered by the end of the week

obtuse gale
#

OH BOY

prisma wave
#

ooooooooooo

hot hull
#

👀

stuck harbor
#

o shit

frail glade
#

🙂

stuck harbor
#

why have i

#

i bookmarked the 1.8.8 block list

#

tf

#

when did i

obtuse gale
#

LMAOO

prisma wave
#

point-free code is so cool

heady birch
#

What do you mean by point free?

#

No dots

#

So basically you like php 🙂 $var->method()

prisma wave
#

yes

#

no

heady birch
#

isset($_POST['emoji'])

jovial warren
prisma wave
#

a function that doesnt define its arguments and instead just composes other funtions

jovial warren
#

PHP

#

🤮

heady birch
#

Explain

stuck harbor
#

i like php's syntax

prisma wave
#

like this beauty for example

stuck harbor
#

but i prefer lisp

stuck harbor
#

sadge

heady birch
#

What How

jovial warren
stuck harbor
#

ah

#

thanks

prisma wave
#

i couldve done ```fs
let loadConfig path = File.ReadAllText path |> Json.Deserialize<Config>

heady birch
#

Is File an instance?

lunar cypress
#

but you didnt

#

what a madlad

prisma wave
#

or even ```fs
let loadConfig path =
let content = File.ReadAllText path
Json.Deserialize<Config> content

prisma wave
jovial warren
#

I imagine that reads all the available text in a file and then pipes it into json deserialisation to deserialise it

stuck harbor
#

i ❤️ functions

prisma wave
#

pretty much

prisma wave
stuck harbor
#

that be much more simple than java gson

#

gson be ages

jovial warren
#

language = ?

#

Gson be trash

#

good for Java

stuck harbor
#

f# i think bardy

jovial warren
#

bad for Kotlin

#

kotlinx.serialization is really idiomatic

heady birch
jovial warren
#

and really nice to use

prisma wave
#

let me try and explain

#

so File.ReadAllText is a function of type string -> string, right?

#

i.e, it takes a string, an then returns a string

heady birch
#

Yes

stuck harbor
#

😉

prisma wave
#

and Json.deserialize is a function string -> T

#

where T is whatever

stuck harbor
#

always circlejerk with a 😉

prisma wave
#

so because File.ReadAllText returns something that can be passed into Json.deserialize we can compose them together with the >> operator

#

which makes a string -> Config function

#

or string -> T

heady birch
#

What language is this

prisma wave
#

f#

jovial warren
#

F#

stuck harbor
#

f#

prisma wave
#

lol

jovial warren
#

lol

heady birch
#

Ha cool

stuck harbor
#

bardy y u capitalise

#

😦

prisma wave
#

so loadConfig is a function of type string -> Config

jovial warren
lunar cypress
#

just to make sure, what language is it?

jovial warren
#

F#

stuck harbor
#

f#

prisma wave
#

ocaml I think

stuck harbor
#

common lisp

jovial warren
stuck harbor
#

afaik

jovial warren
#

Haskell

stuck harbor
#

jaskell

jovial warren
#

Jython

heady birch
#

Quercus

stuck harbor
#

yes!

lunar cypress
#

f# is definitely inspired by ml style syntax here an there

stuck harbor
#

quercus

jovial warren
#

Brainfuck

stuck harbor
#

fuck yes quercus

prisma wave
#

what C# is to java

stuck harbor
#

i bet bm likes quercus

jovial warren
#

does it have the same fucked up conventions?

lunar cypress
#

yes

heady birch
#

QUERCUS:

<?php

  import java.util.Date;

  $a = new Date(123);

  echo $a->getTime();    # calls getTime()
  echo $a->setTime(456); # calls setTime(456)

  echo $a->time;      # calls getTime()
  $a->time = 456;     # calls setTime(456)
?>
prisma wave
#

except for interop

lunar cypress
#

wait

prisma wave
lunar cypress
#

but the functions you showed were in upper camel case

jovial warren
#

no PHP

#

no

stuck harbor
#

i will make plugins in quercus

prisma wave
#

ReadAllText is a c# function

stuck harbor
#

bet

jovial warren
prisma wave
#

with interop

heady birch
stuck harbor
#

it'll run better than most premium plugins

#

😉

prisma wave
#

fixed it

stuck harbor
#

what IDE is that?

prisma wave
#

Rider

stuck harbor
#

better not be vi

jovial warren
#

oh btw, I'm working on blocks rn 🥲

stuck harbor
#

uwu rider

prisma wave
#

sexy rider

#

wait

#

poor choice of words

stuck harbor
jovial warren
stuck harbor
#

wait

#

what

jovial warren
#

copy pasta lol

stuck harbor
#

object oriented xml?

jovial warren
#

also let's not

stuck harbor
#

thte hek

jovial warren
#

XML

heady birch
#

What is impedance mismatch

jovial warren
#

Niall grow a brain

#

XML

prisma wave
#

i cant get over how terrible beautiful it is

heady birch
prisma wave
stuck harbor
#

PHP is the most loved language according to the PHP community

prisma wave
#

no

jovial warren
prisma wave
#

PHP community loves Ruby the most

stuck harbor
#

hehe

jovial warren
#

lol

stuck harbor
#

ruby

prisma wave
prisma wave
#

i will be far up the ivory tower sipping on monads

stuck harbor
#

PHP is always klean

jovial warren
#

who do you think I am

stuck harbor
#

where is lisp on the ivory tower?

prisma wave
#

pretty high

stuck harbor
#

its in the stratosphere

stuck harbor
#

mmm

prisma wave
#

horrific

stuck harbor
#

event bus

#

EventFactoryBuilder

prisma wave
#

i believe many declarative languages can do the same thing in simply 2 lines

jovial warren
#

just admire the comment at the top lol

#

I just gave up and converted BungeeCord's event bus to Kotlin

stuck harbor
#

i should actually use the spigot forums for once and make a post about how to use quercus

jovial warren
#

and I've left it there ever since

heady birch
#

try something different rather than bogstandard event bus:

while (true) {
if (PlayerJoinEvent.yes) {
PlayerJoinEvent.latest.cancel()
}
}

stuck harbor
#

quercus uses php 5

#

sadge

jovial warren
#

PlayerJoinEvent.yes

prisma wave
#

lmfao

jovial warren
#

what