#dev-general
1 messages · Page 349 of 1
o7
did anybody here ever run some IDE's on the raspberry pi 4?
no
I mean, I reckon you could technically run IntelliJ on a raspberry pi
Might need to be the more than 1GB ram models
😮
jesus
lol
😂
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:
- 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?
- is a service like AWS lambda or azure functions appropriate for this?
- if not, is kubernetes appropriate?
- if not, what is?
cheers
have you ever thought about mutability
no
I wouldn't write my own code execution stuff if I were you
why not?
There's just so many things that can and will go wrong
yeah that seems reasonable
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 .-.
if you use elara you wouldn't have to ask 🌚
whats the mattr
elara infrastructure 🥲
Yes
our service will of course support elara execution
!!!
I wonder if it's because of adventure version 
classic adventure
okay jmh monkaW
seems legit
;-;
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
Use elara/proxy
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
Is there a way to log a message to console without it becoming colored? Hard to debug because console will parse the colors
log to file and open file 
Surprisingly println parses color on paper as well
oops
Just PlainComponentSerializer
Ez
I don't understand
@neat pawntract("null -> null") 🥲
oh
Sorry for the tag con
lol
Even if i delete its going to be a ghost tag so just gonna leave it there
How much time do you guys think is reasonable to measure the performance of stuff like ArrayList#add
@Yugi
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
Whats the default starting size for an array list?
alot
the default initial capacity is like 32
I think it's 2x, no?
although you can technically adjust it
I'm just using the defaults right now
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
vector::reserve, imagine
initial capacity is 10
yeah but for how long is the question
Yea one moment, just making sure of the growth factor
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
int newCapacity = oldCapacity + (oldCapacity >> 1);
Seems to be 1.5 times in java 8
Not sure about newer
ohhh nice
Ah, they scale it too
Is the repo updated?
not yet
I wanan try again to figure out what went wrong in my run on it
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
for anyone who wants to waste some of their computer resources: Clone https://github.com/JohnnyJayJay/persistent-data-structures-benchmark
and run ./gradlew jmh
lol
ah alright, ill set it to run when im free then
build.gradle.kts > build.gradle?
For my use-cases no, I've found no difference. But from what other people here say, its supposed to be better
hm
I prefer it, yes
Because I know more kotlin than groovy and because I like it being statically typed
ty
Does the compiler not optimize / n or * n ops (where n = 2^k) to bit shifts already?
If it doesn't then Java is fucking stupid
I think those would be done by the JIT compiler, so maybe they used that there to make sure it acts consistently
javac barely optimises anything
I see
The things it does optimise you can count on one hand
Does it include multiplications and divisions by powers of two? Lmao
- putting eligible values in the constant pool for inlining (
static final) - evaluating compile time constant expressions
I'm not aware of anything else it does
Whack
@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
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
oh yeah could you look at build/results/jmh/results.txt?
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
judging from those numbers I can already tell your cpu is about 3 times faster than mine
lol bad pc
xd
yeah
5800x
👀
i just went for shower and shit then came back
thanks, those are great results
that'll be $400 for power consumption and hardware expense pls
they seem a bit more realistic than mine, I probably did run into a bottleneck with map and set
:^)
hi fp gods, been trying to make a functional lexer and i have been having a bit of trouble
^
@prisma wave can u help this dood
sure
send the code
1 sec, just trying to get it
https://paste.helpch.at/ukewemegod.cs ok so this is everything i have so far
it stackoverflows when it encounters a number
i know im doing something wrong here, just not sure what the better approach would be
what language is that
GitHub added this "Dark dimmed" dark mode (feature preview or w/e)
f#
It looks so
washed
so little contrast
HOLY
the explore page doesn't have dark mode
🥲
this looks so washed out
but you do know what the problem here is?
might be str |> lex
yeah ive realised why it was stackoverflowing
yeah
wasnt discarding the first char
ah
yes
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
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)
Yeah that would be useful, I couldn't find many code examples that didn't use a parser generator
Fefo I love orange right, but what the fuck is that
that orange tho
It was a trap all along!
??? I'm talking about GitHub's new "dark dimmed" theme
ok this looks way more advanced than the stuff I'm currently at in the book
Maybe you can try something similar to the groupConsecutive that we tried yesterday with rambda
hmm yeah perhaps
yeah that looks pretty complicated
the evaluator looked way more similar to the style you use
I have no idea what the hell rule main = parse ... is
My room is orange.
yeah i barely understand any ocaml
wut
Made Easy
Originally, GOTO statements were widespread. Then structured and procedural programming appeared, and now that's the normal way of doing conditionals, and the previously widespread GOTO statements are widely considered an antipattern. When garbage collection first appeared, it was largely ignored outside academia. Then hardware got faster, and s...
oh, negative.... we may have to pay 🥲
Lmao
[Budget] $ sqrt(10000)
lmao
[Budget] $ math.floor(.1000)
[Budget] (x^2 - 1000 = 0), Solve for $ x
hit me with some surprise algebra there lol
😌
[Budget] f(x) = 32x^3 + 12x^2 + 2x + 4, find df/dx
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
jesus
i need help!
Yes you do!
how do i make my menus auto update
on deluxemneu
jesus h christ
∮ tf is this
yeah no I saw that and googled it and it scared me
yeah those |'s are kinda nice. What language is that?
you mean a regular riemann integral?
although those |'s are present in quite a few functional languages
Such as java
🥲
smart casting in java
@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
I mean a closed integral
ok, guess idk what that is
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 ()```
Theres more to that fucntion definition actually
yeah you're missing the last line
execute Nothing = return ()
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
Something like Future is probably usable in place
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
Watch this when you have time @gusty glen
what is a monoid?
no idea
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 >>
what are those, what do they do
>> == bitshift to the right
they basically just remove the need for parentheses
not in this context
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)
infix wont work here
why?
a and b only take 1 parameter
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
let me try and make a more concrete example
although the issue is kotlin is mostly OO style whereas F# is prefix
so
the only thing what I found useful in monoids as far as I saw was combining a bunch of booleans together
but I already kinda do this with extensions functions (i know it's not the same, I'm talking only about usability)
How about addition?
Or Multiplication
Consider them under integers
They are monoids
Even in Real numbers they satisfy rules for monoids actually
why would I want to chain a lot of additions?
yea
That was an example of course
In usage in programming, Have you worked with Futures or Optionals?
yeah ik, that's why I said booleans, bc it was the only real usage I thought myself using
Future == async/await and Optional is like returning null but it doesn't suck, right?
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
There you go, those 2 are monoids
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
this is cleaner, but in the first example I still prefer the first two lines oppose to the last two
probably because you're not used to it
i like OO receiver style in stuff like streams
but F#'s is very clean too
what is reduce btw?
it basically joins all of the elements into thing with a function
you are probably right here, but I really don't like |> (+) 1 |>
java / kotlin has it too
appart from that, the rest is really cleaner
we can do ```kt
listOf(1, 2, 3).reduce(Int::plus)
listOf(1, 2, 3).sum()
which bit about that is bad?
the (+)?
idk, probably everything, my brain just emitted that signal of "not pleasuring" for some reason
lmao
speaking of printf, I just remembered how much I love Kotlin's string interpolation thingy where you do like println("Potato count: $pcount")
yeah string interpolation is very nice
i don't know why more languages don't have it
concatenation takes up sooo much space
a lot of modern ones seem to be adding it
like it
sexy
imagine
there's a lot of symbols going on there that I don't understand
fair enough. the reason that works is because operators like + and / are just functions, so we can do (+) 1 2 and it's the same as 1 + 2
but its good because it cuts down on verbosity
instead of lastIndexOf url '/' |> (+) 1 |> substring url it could be lastIndexOf url '/' + 1 |> substring url
With the correct parentheses sure
or rather it gets easier to read arguably
(lastIndexOf url '/') + 1 |> substring url``` would work i think
this remember me of java method reference
it's very similar yeah
except in functional languages you would just use the name of the function
that's why I thought lastIndexOf url '/' + 1 |> substring url looks cleaner, probably
map functionName list
``` instead of ```kt
list.map(::functionName)
in my head list map functionName would be the best, the order of operations are right
I will try to explain
Yeah sometimes OO style reads better, which is another thing |> is for
Like "grab list, call map and pass functionName as parameter"
$ ftw
list |> map functionName
map functionName list
yeah that's what I'm talking about
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
Having a "special" parameter makes it more complex
Haskell has $, clojure has ->>
what is that
Rough equivalents of |> afaik
$? Not really
🥲
Yeah $ is slightly different, not sure what the closest thing in haskell is
Yugi probably knows
Isn't it << or something?
bruh, and it's on CSS too? yikes man, I hate web dev
ok I'm not so mad anymore with Haskell
$ just changes associativity at that point, basically tells it to evalutate the RHS as the next expression
Although haskell is a pretty tricky language
Right
But feels really nice when you actually get something to work
🥲
Docs from 1998
from 1 to 10, in lvl of bloatness
19481
Cant even open it
I was trying to understand this code, but I eventually gave up
oh god
Oh.... god....
Literal war crime
Ok i did not need to see that
Has that man ever heard of empty lines between statements to logically group things? or comments? jesus christ that's code is more condensed than the milk in tarkov
Anyway, procrastinating again, be back in like 30 mins 🥲
Au revoir
Same same
or maybe even creating functions with descriptive name to break down the logic
this code is madness
Functions 🙂
nah nah nah bro, you've heard of branchless programming but have you heard of branch-exclusive programming?
I use functions and methods interchangeably
Methods 😫
here in branch-exclusive land, we only use branches that's it. The code goes in one line down the screen
yeah I don't like to use the word method, but that's my little secret
dear god
what is branch exclusive programming?
Gonna go to bed thinking about the fact that a command parser is functionally pure (apart from actually doing the stuff)
Mmm
Sweet dreams
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
like KOTLIN fun yes (a: Int, b: Int) = a + b?
oh, ok
Pure functions are cool but sadly rare in the real world ☹️
well yeah having side effects and relying on external state is what like 80% of functions do
do you want to get impure?
dude imagine
yes make me not virgin
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
In Haskell, we pretend everything is pure even though it isn't 🙂
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
four words is better than no words
not when it's
/**
* sets the array of nullable strings
* @param nss array of nullable strings
*/
public void setArrayOfNullableStrings(String[] nss) {
blah
}
:(
Bukkit be like
/**
* Return the X coordinate.
* @return the X coordinate.
*/
public double getX() {
return x;
}
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
HmmM what getX dOeS?
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
let me upload to hastebin
ROFLMAO
why is that so true
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
I had two functions that recursively called each other
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
I think I had two migraines while writting this code
this is part of the code I did as part of my final paper
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
yeah it not being Kotlin does make me a bit sad
I really wish I was allowed to submit Kotlin for my class assignments
I WAS at the time, I just thought I wouldn't grasp its concepts fast, so I just went with the default java
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
is this number special in some way? sorry I'm not familiar with those
liftIO 🥲
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
But what did you do to get banned in the first place 🤔
Inactivity, they thought my account was a bot
lmao I haven't used twitter in years and mine's still going strong.
it actually got hacked once
The difference is, I'hadnt used twitter at all
I just had an account coz I had to link it in some applications
2fa is your friend 
Lol
I love OAuth2
@cinder flare I think that's just america
don't think the universities where I live do that
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
how did you contact them? Everything I try does not reach them
There was a button on that "Account suspended" pop-up below, In which I had to fill out a form and about the issue. They then mailed me to verify that I had access to my email, after replying they unsuspended in like 3-4 days
yeah I have the same email
Opinion on using Ktor or spring for a very simple rest api?
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
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
Go maybe?
lol I haven't used twitter in like a year and it's still alive 🥳
Ktor is really nice wdym
lol
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
where do you live? Antarctica?
nah. Just sometimes it does that for some reason.
lol
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
you probably want to ask in #minecraft
Alright
also, good luck getting support with old, outdated and deprecated versions like 1.8 and 1.7
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?
nice
krypton has a discord?
😮
Look on the GitHub page, it's the third badge on the top
Will be fun to have you around lol
There's documentation everywhere for that I swear
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.
Without the key, you're out of luck
holly shit https://www.youtube.com/watch?v=-WWfMmoGAKc
As of 21w10a, Minecraft now uses a shader-based rendering system (OpenGL 3.2). This means you can alter the way Minecraft renders its blocks/items/entities using resource packs!
TWITCH: http://www.twitch.tv/phoenixsclive
1.17 shaders:
https://twitter.com/phnixhamsta/status/1370008719551913990
More info (slicedlime): https://youtu.be/UTZfKR4Kq8...
Actually I wanna find out where the "decryption" actually happening.
I've seen that
I've actually used that pack before as well
Maybe it's something else then
Hyperbolic space 😌
:'C
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, 
Lol
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.
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
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
Red Dead 2, Modded American Nightmare
Patreon: https://www.patreon.com/user?u=3360824
Twitter: https://twitter.com/bedbanana
Patreon Wall: https://imgur.com/a/Cls5150
Thank you all for the support!
Huge thank you to those down below who played the characters in the vid & helped make the sequences throughout possible!
Check them out here:
Papa...
Didn't know Red dead was looking that good.
@prisma wave very accurate OOP to Functional comparison
Lol
I feel like oo is more complicated but more flexibility and fp is less complicated to understand but harder to plan out
oo
What are the last three patterns?
Flexibility comes with simplicity
yea
all those patterns show that oop is less flexible and so you need more workarounds and meta-concepts to model your software
ig yeah thats true
But it's true that it's not easy to understand an entire program in terms of functions and values
Too much flexibility can be overwhelming if you don't know how to take it though
But I wouldn't say one is harder than the other in that regard, just depends on what you know
restarting fixed it. turns out it had to do a small language update or something since I switched my keyboard to US instead of UK.
hmm
yes my laptop has a UK Querty keyboard but I switched tu US-International Querty
why lmao
and yes Efe there is UK keyboard and US keyboard
well yeah layout
but still
its keyboard
xD
what
never heard of azerty?
nope I'm in the UK
nope
idk I'm not really used to anything other than QUERTY
i've only heard of qwerty and qwertz from efe
azerty is more central European standard iirc
🤮
I've always used qwerty
wheres the wasd
zqsd
there's
and I will always use querty
ZQSD
zqsd is wasd
xD
yes
instead of wasd
probably
LMAO
ohhhhhhhhhhhhhhhhh
yes
yes 😂
blitz u mean qwerty?
k
uh
I use U instead of W for some reason (when I type not on my keyboard)
``1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?` <- better
here is my keyboard
nice keyboard u have
``1234567890-=qwertyuiop[]\ASDFGHJKL;'ZXCVBNM,./`
thats same as mine i think
, lawhat al-mafatih al-`Arabiyyahuiasjkduhasukdhuasid
😌
is using haxe for paperspigot a bad idea?
Haxe?
yes, haxe
what is that
a language
idk what that is but I'll go with no
ah yeah ive seen that video
very nice
The right column 😂
haxe thonks pls
Got approved again :pog:
lol
poggers
wait what did you get approved for?
license
a good load of heroin
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
Hey,
I wanted to know your opinion about what is better.
So I was thinking of buying a Udemy plugin development course (https://www.udemy.com/course/develop-minecraft-plugins-java-programming/) but then I saw a youtube channel named "Koby Simpson" and I wanted to know about your opinion about where should I learn minecraft coding from?
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
Ye but what about the Spigot API?
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
I learn Java in school so I'm not sure if java udemy course is necessary
you're better reading official documentation to learn the Bukkit API
but be ready for non stop BS
wdym
the Bukkit API is one big mess that's just been built on top of non stop for the past like 10 years
This link is not loading for me
https://www.udemy.com/course/java-the-complete-java-developer-course/ this is the link on Udemy
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
Thats what I use
it's a really good course isn't it
I guess
It has 140k ratings and 4.6 stars, wow
550k people have used it
kody isnt awful
one of the better spigot tutorials ive seen
oh is it one of the rare Spigot courses that's actually good?
i cant say good
but i watched a few episodes and didnt have any complaints
he at least tries to teach java basics first
#development message
Might want to read these messages
kk, i'll check that in a bit
No point in paying for a Spigot course
If you know java you could look at these https://www.spigotmc.org/wiki/spigot-plugin-development/
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
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
Ok, thx
Can you recommend me any good youtube courses about java or do I need to buy the udemy one?
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
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...
there are also courses such as jetbrains acadamy and sololearn
🤷
I will have to reply to this at a later time
This also has some things
https://www.w3schools.com/java/default.asp
ok thanks for letting me know
no rush, this is still in the ideas phase atm
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
@heady birch how can I get kiteboard spigot doesnt let me buy
wdym? I can buy it
the link doesn't seem to work
discord embeds are slow
oh weird. we'll I guess you have to wait a while for Niall to come online.
maybe his paypal is blocked or something
mhm
Not quite, soon I promise
oh
forgot that shipping doesn't take less than a day 🤦
haha
does the pi website give an eta?
OH BOY
ooooooooooo
👀
o shit
🙂
LMAOO
point-free code is so cool
What do you mean by point free?
No dots
So basically you like php 🙂 $var->method()
isset($_POST['emoji'])
a function that doesnt define its arguments and instead just composes other funtions
Explain
i like php's syntax
like this beauty for example
but i prefer lisp
What How
composition
i couldve done ```fs
let loadConfig path = File.ReadAllText path |> Json.Deserialize<Config>
Is File an instance?
or even ```fs
let loadConfig path =
let content = File.ReadAllText path
Json.Deserialize<Config> content
crazy right!!
I imagine that reads all the available text in a file and then pipes it into json deserialisation to deserialise it
i ❤️ functions
pretty much
static method i think
f# i think bardy
But you didnt provide any arguments? how does it know what file
and really nice to use
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
Yes
😉
always circlejerk with a 😉
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
What language is this
f#
F#
f#
lol
lol
Ha cool
so loadConfig is a function of type string -> Config
because that's the correct way to do it -_-
just to make sure, what language is it?
F#
f#
ocaml I think
common lisp
🤣
afaik
Haskell
jaskell
Jython
Quercus
yes!
f# is definitely inspired by ml style syntax here an there
quercus
Brainfuck
fuck yes quercus
yeah from what I gather it's basically MS Ocaml
what C# is to java
i bet bm likes quercus
does it have the same fucked up conventions?
no
yes
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)
?>
except for interop
wait
rot
:))))
but the functions you showed were in upper camel case
please never ever mention that again
no PHP
no
i will make plugins in quercus
ReadAllText is a c# function
bet
with interop
https://www.caucho.com/resin-3.1/doc/quercus.xtp
You havent seen o:xml and SuperX++ yet 😄
what IDE is that?
Rider
better not be vi
oh btw, I'm working on blocks rn 🥲
uwu rider
code::blocks, does it have dark theme?
archives += this
copy pasta lol
object oriented xml?
also let's not
thte hek
XML
What is impedance mismatch
i cant get over how terrible beautiful it is
mutability 🥶
PHP is the most loved language according to the PHP community
no
fuck you as well mother fucker
PHP community loves Ruby the most
hehe
lol
ruby
we'll see who's laughing when your codebase becomes a spaghetti mess
i will be far up the ivory tower sipping on monads
PHP is always klean
who do you think I am
where is lisp on the ivory tower?
pretty high
its in the stratosphere
mmm
horrific
i believe many declarative languages can do the same thing in simply 2 lines
just admire the comment at the top lol
I just gave up and converted BungeeCord's event bus to Kotlin
i should actually use the spigot forums for once and make a post about how to use quercus
and I've left it there ever since
try something different rather than bogstandard event bus:
while (true) {
if (PlayerJoinEvent.yes) {
PlayerJoinEvent.latest.cancel()
}
}
PlayerJoinEvent.yes
lmfao
what

