#dev-general
1 messages · Page 510 of 1
idk man, do you have nipples on your balls?
that's pretty cool
my favorite normie distro
that's elementaryOS
System 76 (the company that makes Pop!_OS) also sells a sick af laptop that comes with Pop!_OS preinstalled
imagine having money to buy a sick laptop tho
$1649
not even that expensive
I have like $2
rn
so almost there
ah
photoshop exists
hmm. guess I Should start looking into kde neon themes
gimp exists
ew
Blitz, instead of chatting in this shithole all day, get a job 🤡
yeah I'll admit, gimp kinda uggo
now Krita, that's some good stuff
even comes from the KDE gang
i think i've heard about it once or twice
so blitz surely must approve
hmm anyone here has a very nice kde neon theme? OR should I Just go thru all of them and see which one are nice
just go to r/unixporn and fall in love with tiling wm's
isn't Krita paid?
no?
oh nvm. was thinking of something else xD
well idk. I use GIMP.
well don't really use
literally their tagline
yeah was thinking about the other one Matt was talking about a while ago
looks interesting but I don't really use GIMP anyways. just wanted it as a replacement for Paint
lmao
what do u use now?
but if i had to choose i would get a completely legitimate fully paid copy of photoshop
lmao
lmao
lmao
lmao
well now I do. it looks way nicer than Gimp
I mean it is free after all
waaaaaaaaaaaaaaaaaaay too overrated
so don't think that it really is that overrated
so is Krita and it looks and functions quite a bit better
yeah but competition is always welcomed
how does internal in kotlin work? when i decompile it it just shows ```java
public final class Test {
}
👍
evil compiler tricks
it cant actually stop you using them from java, but it can scramble the names so it's obvious that you shouldnt use them
lombok!
yeah yeah internal is nothing but a façade
o
obfuscate 🥰
tbh
@Metadata(
mv = {1, 5, 1},
k = 1,
d1 = {"\u0000\f\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\b\u0000\u0018\u00002\u00020\u0001B\u0005¢\u0006\u0002\u0010\u0002¨\u0006\u0003"},
d2 = {"Lme/dkim19375/dkim19375jdautils/data/Test;", "", "()V", "dkim19375JDAUtils.main"}
)
```also
what is dat
stuff
looks like metadata and unicode codepoints
y'know
no i don't know ._.
do u know what metadata means?
yes
just google it. first thing is the definition/description
data about a meta, duh
ah
wtf is this cursor tho?
this might be the worst thing ive ever made
the theme looks alright. besides that
thats a you problem
it's measuring how big your pee pee is
damn. that's pretty big then
i think I'd need to see some example code to fully decide
bcz its ...command.RELOAD or something like that
packages should be plural and singular
wait what? Matt and some others said they should be singular ...
well fuck
when applicable
e.g. command implementations would definitely go into a package called commands
but if I’m making a player api (like in papi), package would be player
for
yeah that's why i said i need some examples
idk i just use default kde theme
java type system bad ☹️
i feel like very few people care about how pretty their computers look besides me
found THE ONE
lmao
i would actually like that no joke
explain
java type system gud
i say if it has types
not compared to kotlin type system
it is gud
sql column naming conventions?
kotlin type system is the exact same
i cant do haskell stuff
Having types is not good enough 😔
lower snake case aj
aight ty
Java Type System << Haskells Type System
no it has null types and Any and built-in functional types
hate to break it to u
it definitely extends the java type system, but yeah it isn't the haskell type system that's for sure
Any bad
but haskell isn’t comparable to java
casting bad
because u see
Yes, haskell too good.
haskell is bad
https://x0.at/Sxl.png this should be possible
Java very bad
i rest my case
Overruled
THIS LOOKS SO GOOD
i don’t even know what that code does
it monads around
kotlin syntax confuseballs
I'm actually getting lmao
just seems to take a while
bcz I'm a madman
because I like the look of windows and the everything else of linux
public interface Monad<M extends Monad<M, T>, T> {
<B> <M, B> bind(Function<T, B> f);
}
that’s like buying a bus and then cutting it in half so it’s the size of a car
just buy a car
I could trasnform it into mac os if u want
still doesn't work
as I say, I would love a Windows Desktop Environment for Linux
no... it's not
java bad
the only thing that changes is the appearance
im kind of in love with that ngl
A half cut bus?
man maybe I shouldn't have reinstalled Arch because I was angry at KDE for looking bad
kde looks fine tho
i didn't think it looked that great with what I ahd
need to define a generic function <M, T>#bind that takes Function<T, B> and returns M<M, T> (i.e a monad of the same type but with a different T)
yeah I like kde. idk what u talking about Star
yeah i don't either man, i'm weird
i just really like how my windows looks right now
i need me a wallpaper engine for linux
bm so T needs to change?
can’t you just introduce another variable for T?
so if class IO<T> extends Monad<IO, T>, IO#bind should return IO<B>
at the same time class Maybe<T> extends Monad<Maybe, T> should return Maybe<B> when bind is called
going to stay with default kde neon theme tho. not that bad
gimme a minoot
im reasonably confident this isnt possible
where’s a huell reasonably gif when I need it
interface Monad<M: Monad<M, T>, T> {
fun <B, R: Monad<M,B>> bind(f : (T) -> R): R
}
What about this bm?
or wait no
hmm
Type mismatch.
Required:
Monad<IO<String>, TypeVariable(B)>
Found:
IO<Unit>
breaks this
why the +?
proof haskell is bad
because do blocks are supposed to be a sugar for composing the monads
also why not make the functions infix 🙂
`do` {
putStrLn("hello")
getLine().bind(::putStrLn)
}
``` wouldn't actually do anything, it would just evaluate the IO<blah>s
good point
bm how about something like a do context object which defines those functions, and adds up the expression as the functions are called?
hmm
then the functions wouldn't be accessible outside of a do block
unless you define them twice
Hmm
might have to just have IO<x> be the only monad for now
i dont think the monad interface is possible
50% sure on the definite
wait piggy are you trying to fix the haskell problem?
ye
"The Haskell Problem" sounds like a Wikipedia article describing a multi million dollar bounty lmao
lmao
i did it
Send
2 sec i test
test fails
btw, binding with Maybe for eg, should return a Maybe, not just any monad
huh
cough functional interface cough
@prisma wave so is that right?
Can you send it in a paste piggy
public interface Mondaddy<M extends Mondaddy<M, T>, T> {
<B extends M> B bind(Function<T, B> func);
}```
public final class IO<T> implements Mondaddy<IO<T>, T> {
@Override
public <B extends IO<T>> B bind(final Function<T, B> func) {
return null;
}
}```
huh
im not sure that works with an actual implementation of bind
It needs to return a M which extends Monad<M, B>
And that M needs to be the same M
the captured one
getLine().bind(::putStrLn), where getLine returns IO<String> and putStrLn is String -> IO<Unit>
ok then it works fine
ah i see the issue
😌
😌
Maybe<Java will *B*eat your ass>
Nothing
Oracle cant bully better than the circlejerk gang
ok what u could do
is just add so many type parameters and have the parent type as the very last one
hopefully causing a stack overflow so java forgets about the parent and only knows the child
Java bad
it's technically a solution
i think the logical conclusion here is that java bad
The technical solution is switching to Haskell
^^
could it be done in Rust
probably
Have you seriously found a use case where using Java just doesn't work?
Only you could do that
no not really kotsumag
Id assume so since their type systems are supposed to have some commonalities
this isnt exactly a "real" project
No real monads~!
but as an experiment we can definitely conclude java bad
kot whatever is achievable via this monad/io/maybe api is achievable via plain old java
perhaps just less nicely
👀
jabel
it is, you obviously wouldnt write normal java code like this
idk that sounds a bit bland tho
b4j
I was wondering if he'd actually managed to use his 7head to come up with something so dumb it couldn't be done, ah well
bj4u
xD
wink wink nudge nudge
Since you're offering...
😳
😉
excuse me madam
xD
I am a quaint gentleman and I will not engage in such tomfoolery boy

This is a christian pig
for now..
Also its considered animal abuse!
this is a christian server my good fellow
you cant chain infixes right
This is a muslim server
Nobody was supposed to know! Shhhhh
oh you can but with parens
we do not chain things unless they worship the devil bm
hmmm
🥲
sad
Not properly
Yea but its only in the infix form
I tried making the sql syntax in kotlin once, didnt work out
yeah
lol
nice
wouldnt work with like fmap String::reversed getLine ☹️
but i gotta say i am pretty happy with this
Cursed
Can't you use this https://arrow-kt.io/docs/patterns/monads/ BM?
(getLine % String::reversed bind putStrLn)
i think their implementation is done in a really hacky and overcomplicated way
Ah
sounds like what you're doing is pretty hacky and overcomplicated 👀
poko
shit. unity is so slow 
kotlin version: getLine % String::reversed * putStrLn
haskell version: reverse <$> getLine >>= putStrLn
not bad
i guess
Fucking Andrey 😩
i'll pass
is that even possible
Maybe
Might need a few definitions
But yes
infix fun `$`(lhs: (A, B, C) -> D, rhs: A): (B, C) -> D {
return {b, c -> lhs(rhs, b, c}
}```
dear god
/bin or /usr/bin
/usr/bin
why
idk
Why are you guys reinventing arrow
we're doing arrow but better
😌
make me a haskell shell right this instant
call it hash
"we're inventing the wheel but rounder"
brownies
just trying to not violate the equals/hashCode contract, and was just wondering, is kotlin override fun equals(other: Any?) = other is WorldVersion && id == other.id && isSnapshot == other.isSnapshot override fun hashCode() = id * 31 + (if (isSnapshot) 1231 else 1237) fine? (boolean hash code comes from java.lang.Boolean#hashCode)
those are very different
magic numbers mmmm
okay
that could be fun actually
brownies
terminal emulator in haskell
oh no
Whats the browns one?
terminal emulator is not the same as shell, but sure
yeah ik
Ik hash brownies
but shells are boring
Not hash browns tho
you have to parse shit
egg and... prawns?
Install via cabal install termonad.
[rating:2.5/3(n=3)]
wtf is on the right side of that plate?
hash browns
that is not a hash brown
what yes it is
actually it kinda is
Google shows this
i am
well no it's hash browns
except the mcdonalds shape is the one you find everywhere here
even outside of mcdonalds
you can just get them in that compacted shape
oh I see, the ones I usually see come in like big bags you make yourself and they're just in loose hash form
did you see termonad
i did
looks like you've been beaten to the punch
Haskell discord???
😮
DisMonad
Mocord
currently cutting out all data classes from the Krypton API because I don't want binary compatibility issues in the future lol
what's wrong with data classes?
https://x0.at/ezL.png @old wyvern 😌
I thought + had higher precedence
Shouldnt it be (print 3) + 4
apparently not
weird
whats the code for $?
infix fun <A, B> ((A) -> B).`$`(rhs: A): B {
val lhs = this
return lhs(rhs)
}
so not pretty
i've got no clue what that does
why does binary compatibility matter exactly
Yeah curious too
how would this function looks like, without $?
main = print (3 + 4)
+(reverse % getLine * putStrLn)
okay this is the closest we can get to the haskell equivalent i think
not bad
That the modulo and multiply for?
% = <$>, * = >>=
ah
lmao
binary compatibility is the ability to take already compiled code and use it with an existing system
so e.g. when the API reaches 1.0, you'll be able to use 1.0 compiled code on say 1.35 and it'll still work normally
why would you not recompile
¯_(ツ)_/¯
that is not a good reason to stop using amazing language features
maintaining binary compatibility is a very important thing for public APIs though anyway
i doubt paper or spigot maintain binary compatability
why other than not having to recompile something
to give you time to change it before it gets removed?
whenever they feel like it? and it gets removed?
you increment the major version, because you made backwards incompatible changes
im not sure what you're getting at here
okay?
how is that related to binary incompatability
binary incompatibility is that backwards incompatible change
i mean it doesn't have to be
what if i have backwards incompatible changes every update 🤭
Then you delete system32
someone please try to do a better job at explaining to Star what the importance of binary compatibility is
I dont think theres really a major issue with how kotlin handles it
Joshua Engel explains how Java classes can change and still work together without recompiling other classes. This can save you a lot of time in development, save megabytes of distribution, and understand how to evolve code without breaking dependencies.
the componentN and copy functions are where everything breaks
In fact, despite Java's binary compatibility features, I recommend frequent recompilations anyway, since other features of Java do a great job of letting the compiler spot bugs for you.
point deleted
i will continue using kotlin data classes thank you very much
I'm not saying that you shouldn't recompile when something is updated
what I am saying is that it is important for API authors to make sure that old code can still run on new versions
I don't think that's what binary compatibility is
yes it is
that's not what this article is saying
that sounds a whole lot like Bukkit...
like a whole lot
surely as long as you have the same methods and such you can still use it on a newer build?
I mean, there is ofc a limit
i don't see why changing the copy function would break anything
because you're changing the signature of the function Star
the copy function takes nothing and returns a new copy of the object
it's the same no matter which parts of the object there are
not true
Just update your stuff, if people choose not to, it's their problem
I think you're confusing copy with clone Star
^
copy function can return a mutated copy star
oh huh
It takes all properties of the data class as optional params
well still, if they're updating your api they better be ready to fix some bugs
people can stay on legacy versions if they don't want to update
yeah I'm not saying we won't update, I'm just saying I don't want to end up on major 173 just because I made another tiny binary incompatible change
you're sacrificing a ton of code terseness for making it a little bit easier to upgrade minor versions
you can use different versioning schemes, ya know
the whole idea of minor versions is that you make backwards compatible changes
in your specific versioning scheme, maybe
in semantic versioning
in semver, which is pretty common
^
okay, and?
you can do whatever you want
I really don't see how many benefits you'll get from dismantling your nice kotlin code
imagine if all plugins depending on WorldEdit would need to be recompiled each day or another
they... wouldn't update versions
and if they do, they would recompile
not really an option
like they already do
not really an option?
are we talking about the same thing here
server owners update their plugins
doesn't matter what version they depend on, it's what version the server is running
Another victory for haskell 😏
it would be extremely frustrating as a developer to have to re-compile your code every single day and release a new version every single day just because the author of the API you use doesn't know how to maintain a public API properly
well how come kotlin doesn't mitigate this
it would seem kotlin's weak-ass type system has caused yet another issue
if its so important
because it can't really
couldn't be java
Hi@
there's not much the compiler can really do to prevent the componentN and copy functions breaking binary compat
Kotlin bad!
Hasklin best!
annotation to tell it to keep the old ones?
perhaps
you should submit a feature request bardy
but then you're kinda breaking the contract of those functions
are generic variables possible
seems like a major flaw in kotlin
Sir, this is dev general
there seem to be many of those!
Sir, this is dev general
oh umm then where should i ask
Sir, dev general is this
if you add a new field in the middle of the data class, the componentN function should return the value for the position of that argument
e.g. kotlin data class Person(val name: String, val age: String) component1 returns name and component2 returns age
#mc-server-general is definitely the right channel
xD
now, say if I add a new field in the middle of that, component2 should return that new field
data Person = Person { name :: String, age :: String} 😌
having that new field at position 2 be returned by component3 would kinda break the contract of the component functions
struct Person {
name: String,
age: i32,
}```
😌
I'm not saying you shouldn't use data classes, I'm saying you should exercise caution when using them in public APIs
Or use them and don't care
well yeah, if you wanna break binary compatibility every time you add a new property and piss of developers, sure
this is why you have major releases
okay kotlin has introduced a major technical limitation
i dont think there is a fix for this
yeah but you shouldn't be incrementing your major every time you add a new field to a class
i need generic properties
yeah so pool your field adding
branches exist
I need generic varargs
🙄
¯_(ツ)_/¯
how often are you adding fields to classes mate
idk
every single day apparently
and right now, Krypton is in alpha and rapid development, every update probably contains breaking changes
yeah ik, I'm just preparing lol
so use data classes, and then only update sparsely after a lot of development is done
I'm making my life easier in the future
seems like you're writing stupider code
also, half of the time I don't even need data classes in the API anyway
also, you know who wrote that article don't you
nope
No, you're making people that doesn't update lives easier in the future while making yours shittier
Bukkit flashbacks
Jake Wharton, one of the lead developers in various Square projects like OkHttp and Retrofit
Joshua Engel
Simon Peyton-Jones, one of the lead developers of various good projects like GHC and F*
Joshua Engel explains how Java classes can change and still work together without recompiling other classes. This can save you a lot of time in development, save megabytes of distribution, and understand how to evolve code without breaking dependencies.
also never heard of him
https://jakewharton.com/public-api-challenges-in-kotlin/ I mean this article
okay, I don't care about his opinion in the slightest
also, if binary compatibility isn't important, why do some of the most popular and famous libraries in the ecosystem all preserve it?
because they're dumb, stuck in their old ways, and dislike updating and changing
similar to bukkit
oh yes, because Sponge, Adventure, OkHttp, Guava, Gson, Android, etc. are all stuck in their old ways
I could see it
ABI compatibility is more important than API compatibility
ask anyone who's maintained an at least semi-popular public API before, they'll tell you how important binary compatibility is
LOLL
Lmao
how do i handle storing complicated permissions for like access to a certain page or something in a database? Do I just store it as like a string then check that in the app?
dunno if that made sense lol
I'd probably create a permissions table then when you need to add a permission to a user add the id instead of the permission directly
what are you storing complicated permissions in a database for is my question
wdym
what permissions are you storing that need to be in a database
wont that just complicate things? Then if i wanna add a new perm i have to add it in the database instead of just adding a stirng to someones profile
like what can be accessed and whatnot, but its for multiple different applications, so
Well what Matt said is just general relational database design
sounds like you could solve this with booleans
That'd be the opposite, adding just a string to someone's profile will turn into a spaghetti in no time
hm i see
but once the apps built the perms table wont change at all
since no new perms will need to be added
true ig
so the user would have a list of ints or longs or whatever thats all the IDs of the perms they have?
yeah why use a relational database if you're not gonna design for a relational database
yeah
@lunar cypress I remember the other day, we were discussing comparing vectors (which requires comparing floating point values too), and I'm using a fuzzy equals (absoluting the difference and checking against an epsilon value), but I was just wondering: what kind of hashCode should I write for this? because I don't think I can really fulfil the equals contract here using a fuzzy equals
current equals: ```kotlin
override fun equals(other: Any?) = other is Location &&
world == other.world &&
abs(x - other.x) < EPSILON &&
abs(y - other.y) < EPSILON &&
abs(z - other.z) < EPSILON &&
abs(yaw - other.yaw) < EPSILON &&
abs(pitch - other.pitch) < EPSILON
We discussed that too, remember?
I think there is no solution
As soon as you introduce floating point numbers you break the contract
yeah
If you want your thing to be practical
so what should I settle for then? something like kotlin override fun hashCode(): Int { var hash = 3 hash = 19 * hash + world.hashCode() hash = 19 * hash + (x.toRawBits() xor (x.toRawBits() shr 32)).toInt() hash = 19 * hash + (y.toRawBits() xor (y.toRawBits() shr 32)).toInt() hash = 19 * hash + (z.toRawBits() xor (z.toRawBits() shr 32)).toInt() hash = 19 * hash + yaw.toRawBits() hash = 19 * hash + pitch.toRawBits() return hash } ? (which is what Bukkit uses for Location)
I have no idea
(x.toRawBits() is basically the same as Double.doubleToLongBits(x) btw)
I think that calculation is what's used by java.lang.Double#hashCode
what is hashCode used for?
generating hashed representations of objects
Dkim rly
and that hash is used in things like maps and lists to store values iirc
see if object is the same as other object
that's equals
no
but what about #equals?
lol
hashCode generates a hashed representation of the object
which you can use to test for equality
yesn't
you can, but you generally don't
well that's what like file hashing is for
i mean you wouldn't use that like, in your program probably, that's why #equals exists lol
The reason you hash files is because it's a lot more efficient
Tom Scott once described a hash as "a summary of data"
and that's basically what it is
equality wont really hold since collisions can happen
But every hash function has some form of collision so when you have equals, you don't use hashCode for comparison
^
okay
but what about validating you downloaded the right file with an md5 hash
other hash algorithms are available
yeah but it's hashing right
yes
Yea
see, i knew I was talking about something
and if the algorithm is strong enough then it's pretty good for comparisons
but a hash isn't just for checking equality
it's for checking integrity because universal hashing algorithms have the property that if you flip a single bit, the resulting hash is vastly different
for example, your passwords that you enter into most websites are hashed, but that's not for checking equality
hashed and salted 😉
salted and hashed
It should be noted that although md5 is shit and shouldn't really be used for anything, you get values that are much longer from it
than hashCode()
well no definitely not in that order
hashCode() is just int
Isnt it salted before being hashed?
yeah hashCode is limited to like 4 billion values
yes
Thats what I have read about it star
the salt is just text that's used to get more randomising out of the hashing function
Havent really implemented it anywhere so 🤷
bet most websites do not hash and salt properly
oh most definitely
Are there no general libraries for this?
there are
So people just ignore them?
php exists kekw
oh no
I think that has a top level md5 function that people have been rolling with for several years
even though now it has password_hash or something too
php has about 50 insecure and outdated functions
mysql_real_escape_string 🥲
i want help
don't we all
i hant to updait my server
👌
maybe
monad?
for a price!
can i call you
Absolutely not
$20 per minute
😌
BM returns EmptyNothing for you
Nothing
Is there an API which allows me to help send some request to all users that are on an html page using Java code?
Basically some sort of communication framework
that allows me to communicate from java to front end (html page)
Why use Java for that
because plugins 🤡
Maybe use a socket
wdym
Idk if JavaScript provides a socket class or smtng but Java does, pretty sure you could use that to communicate.
yea ig
A socket is like an endpoint (you probably alr know that lol) but yeah
Might have some extra work needed
socket.io perhaps?
Like to check if the same user is active across clients
Oh yeah true
What happens if a project have two libs as implementation dependency, one require (e.g.) Guava 18.0.0, and the other require Guava 27.0.0, what version will be picken up by gradle? And what happens if I specify Guava as explicit dependency (e.g. version 30.0.0), will Gradle yeet the versions required by both libs?
Weird shit happens, Idk but I think at runtime it can cause NoSuchFieldError, NoSuchMethodError and possibly LinkageError
- undefined afaik
- yes, I believe
d;sub_classes LinkageError
java.lang.ClassCircularityError
java.lang.IncompatibleClassChangeError
java.lang.BootstrapMethodError
java.lang.ClassFormatError
java.lang.UnsatisfiedLinkError
java.lang.NoClassDefFoundError
java.lang.ExceptionInInitializerError
java.lang.VerifyError```
d;sub_classes IncompatibleClassChangeError
java.lang.NoSuchFieldError
java.lang.InstantiationError
java.lang.IllegalAccessError
java.lang.NoSuchMethodError
java.lang.AbstractMethodError```
public abstract interface class lol
the Kotlin binary compatibility validator's output is kinda funny sometimes
detekt
haha i literally made that same joke last time he posted that
literally every kotlin library: replace Cs with Ks or must start with a K!
i like it
why is kotlin like this
what name is better, setStringList, setStringCollection, setList, or setCollection for this method (yes I know it's not technically a List)?
i like setStringList
since it only allows Collections of strings right? so unless you make a generic setCollection, that name would be wrong
yes, the idea is that you can pass either a set or a list to the method, since it doesn't matter since they're going to be written on the file as many entries anyway
setStringCollection ?
secret-cfg now features automatic reload on file modification 👀
cause you could alternatively do like a set of integers or suttin
wait is there an MF-CFG
I'll expose a method for users to hook up their listeners on any type of modification they want to listen for
dang that IJ formatting looks really good
not bad, though Fira Code Medium is actually 👌
Yeah, kinda
MF-OS
Yass
How do you get that comment / javadocs design?
I've seen it a few times now
Thats how IIJ render javadocs
It doesn't do that for me 
Go to the left side of a comment
Javadoc* there should be an icon to toggle that view
Np
does this mean the sponge api server is down?
I love when server releases go smoothly 😌
I only messed up one thing that was fixed in like 30 seconds
I had so many custom plugins that didn't fail, its a miracle
me when someone tries to convince me into using kt https://www.youtube.com/watch?v=DzDztyS09CU
Lmao
https://github.com/Netflix/governator I just found another really cool project
it brings a shit ton of extra stuff to Guice, including classpath scanning
Opinions?```KT
val config = ConfigProvider.create(plugin, "file", logger)
config.listener(FileModificationType.CREATE_AND_MODIFICATION) {
// Do things here whenever your config is automatically reloaded due to file modifications (or creation)
}```
lgtm
kotlin bad
why is google format like pretty but also mad scuffed at the same time
its not that
like the streams
new EnhancedDependencyLoader(
files.stream()
.map(
x -> {
try {
return x.toUri().toURL();
} catch (final MalformedURLException e) {
e.printStackTrace();
}
throw new InvalidPathException(x.toString(), "Path is not a valid file!");
})
.collect(Collectors.toList()))
.loadJars();
that formatting
lol
kek
Yikes
I mean that doesn't really have to do with google style?
catching exceptions in lambdas is ugly
in and of itself
fair enough
endure the pain of google format suffering and one day you might get a job there
Lmao
anyone have free time to tell me what I did poorly with a server? :p
it seems to be working
but I don't know what its like to someone new
sure
ty
😌
btw @old wyvern
I added you onto there
I even embed Slimjar for you 🥸
did it for Matt too
lol
Lol
Something is wrong
What's wrong
lol
Oh lmao
https://github.com/dkim19375/dkim19375JDAUtils/runs/2714358497
anyone know why this takes ages and then eventually cancels? it works fine for me locally
My guess is you have an infinite loop in a test?
lmao
how are your build times so long
That is like 6 times longer than mine which literally downloads BuildTools and compiles all NMS versions between 1.8 and 1.16
lol
it works locally tho
lol
it compiles all of spigot?
use a cache
theres a script for that
._.
I've acidentally kicked my PC and may or may not have lost hours of work because Windows frozen, I and had to shut it down forcefully
oof
small commits 
intellij autosave 
in KDocs, when referring to a method do people use Class#method or Class.method or Class.method()?
lol
Reason #1 why I have DMs off in my own support server: DMs
The only servers I have DMs on are the ones I moderate in and that's it
I'm thinking about disabling them
But then I just get friend requests
Lots of them
disable friend requests 
be offline 24/7 
I don't get how people think they can DM a 1500 member serve r's owner and say "Can we be friends"
Like if its a serious question, yeah totally I'll reply
But I cant be friends with everyone
Not how that works
Huh? I hate evry fred?
im tired
Hi tired
NoOOnoonononoo
I am infact fred
Linux from scratch?
Hand writing graphics drivers be like
[23:21] Star: ... linux from scratch
[23:22] Fredthedoggy: Linux from scratch?
[23:22] Star: yeah it's where you build linux from scratch
👏
not ones that you need graphics drivers for 😉
what, it means I get the beauty of Windows Terminal
lol
fuck the default 640x480 pixel no anti-aliasing default terminal ubuntu comes with
Lmao
am i committing a crime
oh god damn
Oh Hi
at least it's async I guess?
Lol
yooo pulse is using our lord and saviour, ffmpeg
tbh I was actually genuienly concerned cause String#format is slow
very cool
I like ffmpeg and vlc
why use String.format when you could just + concatenate
idk i like how its cleaner
Lmao
or Rust



