#dev-general
1 messages · Page 514 of 1
😎
short walk
mhm
day trip maybe
Absolutely
watch out for the sea monsters!
FlashBeat
@forest pecan why did u mail
(they bite)
Watch out for the aliens
lmao
🌞
may
Wtf is wrong with youtube
yes
😷
no
Yes
I also found this recently, very interesting reading
3. What is a help vampire?
Sometimes you may hear people being called out for being “help vampires”, to understand what members are talking about then, please refer to: https://web.archive.org/web/20181124221026/http://www.skidmore.edu/~pdwyer/e/eoc/help_vampire.htm
Oh now that you mention that I saw this video the other day talking about that
Let me find it
||Like Masked is doing right know||
u got me on that one... the face
:^)
same
How about Java 1
@obtuse gale
hey can you use maven for languages other than Java
like can I host my C binaries on reposilite 🥲
don't believe so
oof
but to answer your question more specifically
yes you can use maven for other languages
oh nice
just stick to CMake?
stick to the right tool for the job
that's the C boi if I remember
there's multiple c compilers
oh thought cmake was a compiler
i know make is a build tool
didn't realise cmake = make
exactly!
I see c developers using make on java every now and then
CMake is a generator of buildsystems. It can produce Makefiles, it can produce Ninja build files, it can produce KDEvelop or Xcode projects, it can produce Visual Studio solutions```
They're like "I don't need these fancy build tools like maven and gradle"
yes
so I kinda can't wrap my head around this whole inject/registerables/bindings/whatever thing
in the PlaceholderAPIPluginData i have this List<Binding<?>> and a package private getter
according to what you said earlier I would need to pass the bindings to the InitialModule and (I presume in configure()) do I go over all the bindings and bind them to their respective instances?
does this automagically tell guava "hey, if this type is in a constructor, provide this instance"?
🤮
that looks like eclipse lol
why does everything have to be so white
hm
have they not learned
kde developers make an ide
kde developers make a desktop environment for linux
and they don't even use linux for their ide
wait which picture is that pig
second down
unacceptable
sin aint that ugly
why is that TODO have a dark orange background and orange text
kotlin programmers: let's add k in the name of every project
kde devs:
.
ah
yoooo they support Solaris
tell ya what
time to go back to my Sun worshipping bois
🥲
haha
it'll really help my explanation if I can see your attempt
also generics suck
who am I kidding, I'm not going to
have you heard of Java 1.1
I don't even use that many generics in papi
apart from in the keyable system
but you shouldn't be touchinng that
in the PlaceholderAPIPluginData i have this List<Binding<?>> and a package private getter
this bit you get I presume, right?
I pass that list to the initial module, then is this okay?
NO
why is my shit underlined
that's not a generic fuckery voo doo
i will show you how to do a generic fuckery voo doo
Oh boy
idfk
Please show us the generic fuckery voo doo
Generic<? super FuckeryVooFoo> 🥲
bindings should be a set btw not a list
binding order does not matter and we definitely don't want duplicates
yes
it's internal who cares
okay so second part of the q
does this automagically tell guava "hey, if this type is in a constructor, provide this instance"?
insert Google adding g
what it DOES do though is tell the injector from guice, that this class we're binding (a key, which contains a type and optionally an annotation) will always correspond to this instance
for as long as we're using this injector or a child of it
this instance will never change
and everytime we annotate a field or a method with @Inject
and that field is of the type the key specifies, or the method contains a parameter of the type the key specifies
guice will supply the instance to it
insert Java adding j
tl;dr your job should be done u can go back to the fabric binding now
@obtuse gale does binding have any factory methods?
bind isn't an appropriate factory name
dw
leave it
i'll create proper methods eventually
okay okay I'll name it of or between
yeah idek what that does
might've just been for debugging at one point and forgot to remove
https://github.com/PlaceholderAPI/PlaceholderAPI3/blob/master/common/src/main/java/at/helpch/placeholderapi/bootstrap/framework/Registerable.java anyway ideally binding would have all the factory methods registerable has
also what's the PlayerFunctionProvider all about?
woooooooooooooooooooow
that's its sole purpose
do all "PlayerKeyNames" need to be added?
no
ah okay
player.quack()
because when doing this i found out that the "health scale" is purely a Bukkit construct
it's not a thing in the actual game
then just make it for fabric
but it's not a thing in vanilla
fabric is mostly vanilla except for the mixins
which is where the modding comes in
also do you have a checkstyle file or something I can slap on this?
smh
he's just too stylish
someone ping me if it's correct: https://plugins.jetbrains.com/plugin/8258-intellij-haskell
is this the correct / haskell plugin that y'all use?
can i know if this is my id egg's alt#1612
yes it is
ok mr secret
This is your account id: 709858840023400590
how th do you get this info
right-click on user profile
if you don't see copy id option, go into advanced account settings and enable developer mode
ty mr wxip
no problem
mixins pog
Man it's so satisfying not having to do nasty ass reflection and janky workarounds
That one kinda sucks
It's usable but quite buggy
VSC plugin is a lot better
Can someone please tell me why this doesn't work? Basically every user can see the message even without the permission
for (Player player1 : Bukkit.getOnlinePlayers()) { // Gathering all the onlinePlayers
if (player.hasPermission("sneaky.staff")) { // If player has permission then
player1.sendMessage(Color(message)); // Send message
}
}```
you're checking the wrong player's perms
you're checking player, not player1
np 🙂
Are static factory builders generally preferred over the class builders?
I feel like this is a threat
Or maybe they're trying to be encouraging
you can speak Arabic
static factory builders? 
He's your Duolingo.
Like for example
MyShit.create(some arg) opposed to MyShit.builder().setArg(some arg).build()
I mean those are kinda used for different things
The first is a static factory method, the second is a builder.
I'd say there's no generally preferred pattern, it rather depends on what you're doing. For 1-3 parameters, static factory methods are fine, but if you want more and especially want to have default values, you'll have a lot of overloaded methods vs one method per parameter using the builder pattern
okay, one thing I don't agree with there is using the set prefix for builder methods
MyShit.builder().arg(someArg).build() would be better imo
yeah set seems redundant
Pulse if you have a class which uses many different dependencies then a builder may be beneficial to increase readability and maintainability. The normal factory method is often preferred over a normal instantiation (new Blah() vs Blah.create()) because it limits you from extending it and it the create method basically says here is an instance of Blah, you don’t have to care about what subtype of Blah it is.
this is the one thing where I agree that the get and set prefixes are bad
ic
@obtuse gale If you need help with the fabric papi hit me up 
to run haskell, do I have to install all of those?
You technically only need the first one
Which is like javac
The 2nd is like maven, the 3rd is like gradle
so we don't use cabal and stack at the same time?
As far as I know stack delegates a lot of its work to cabal
I'm pretty sure they're pretty closely linked anyway
You typically have a stack and cabal file in the same project I believe
let's see
Windows ☹️
only windows got the programs I use
shame
what is that?
Ah I ran into that issue a lot
I believe you need to run stack update and cabal update first
If not, make the project with stack and import with IntelliJ later
This is what I meant about the IJ plugin being a bit buggy
how do I do that? I just downloaded them from the haskell website
lol i made my own implementation of MutableMap just for fun and uh, let's just say it wasn't very fast
IDEA doesn't want to let me add stack executable...
stack installed itself here C:\Users\User\AppData\Roaming\local\bin
list of pairs
i have no idea what a hashtable is
;-;
🥴
Did you setup the SDK?
i didn't know linkedhashmaps were that slow though (what mutableMapOf uses)
why tf does gradle like rebuild your whole project for just running one class
for testing a class or smthing
They're not?
bear in mind that's not a particularly reliable benchmark too
ik
Whats popping guys
hello
👀
Matt we should make the dream team
Make an org and then do nothing and let it die
I'm down for it 👀
Also you might like this
https://youtu.be/5aZCJ_Soq4w?t=1083
The first 1000 people to use the link will get a free trial of Skillshare Premium Membership: https://skl.sh/thecherno06211
Patreon ► https://patreon.com/thecherno
Instagram ► https://instagram.com/thecherno
Twitter ► https://twitter.com/thecherno
Discord ► https://thecherno.com/discord
Send an email to chernoreview@gmail.com with your source...
🤣
what's the "limit" of how much info i can send through a websocket? like how much should i avoid?
Don't think there is a limit, all you need to worry is about how big your message is in comparison to how many clients are receiving it
like if i send 15 char strings every time I send info, should I limit it at 100/s?
or 50/s?
or 500/s?
how do I do that? I tried to select the stack.exe inside C:\Users\User\AppData\Roaming\local\bin but intellij doesn't like it
is that the location that where stack points to?
or maybe whereis
intellij doesn't accept it as SDK
just remove it then?
Yea, use vsc
with vsc you mean Visual Studio Code?
Any cloned project now defaults to Haskell SDK for me now 😄
yes
And I mean ANY
nooo I hate vsc
May it be Java, C#, or who knows what
yeah thats a bit annoying
autocomplete/lint in vsc is not that great
it'll be the same for haskell as it is in IJ
I didnt find any difference between the two on trying
they both use hlint
The only difference barely noticable was the vcs plugin actually suggested functions to simplify stuff
ok I'll install vsc 😦
Doesnt seem to work for me
Just the haskell plugin secretx
stack install?
Version issue 🤷 , Should work fine otherwise
You should only have that error in your main app file
this made the error go away, but how do I run the project?
stack build should generate an exe
I won't have to use cmd each time I want to build and run the project, right?
I'll go crazy if I have to keep switching back and forth to run the project
i think there's stack exec too
ok, so vsc sucks, but the haskell plugin for vsc is very good
the docs are very clear
yeah that is very nice
And hlint can do some crazy things
It's like ij's warnings but even better, it can suggest different functions and things
Aww, there goes my nitro
Mine ended too :sadge:
there are two ways to my knowledge to not run out of nitro
a) pay discord endless amounts of money
b) never get it in the first place
:thonksmart:
it can't run out if you don't have it
could someone help me in #general-plugins 🙂
probably not
ye i guessed that tbh
but its worth giving it a try because otherwise i will have to shift plugins
working on fabric be like at.helpch.placeholderapi.fabric.mixin.ServerConfigEntryKeyAccessorMixin 🥲
Writing enterprise software
@steel heart wrapper conclure???!?!

no IJ Ultimate though???
A menu plugin 😮
PredicateStructureSerializer.java 😮
enterprise menu plugin 😌
menu wrapper 😌
When I get a real job programming I will either force my work to pay for it or I will
It's an essential development tool
yeah but then I have to keep paying tuition for longer
most people here either have OS licenses or student pack
but yeah businesses will pay for jetbrains
and tuition costs more than an IJ license 🥲
oh shit yeah I gotta hurry and make something that's cool and open source
xD
Scholarship ;p
or OS yeah lol
What inspired you to become a major open source enthusiast?
Jetbrains.
well yeah I have a full-ride but it only lasts 8 semesters
literally the truth
😂
Southern Utah University
nice
did you see all those threads that are like "nobody wants to work on open source projects anymore cause they don't get paid"
jokes on them, I need my JetBrains license
lmao
Get a jet brains license it’s op
you have one?
Yes
OS or paid
its like $50/m the first year
I mean also depends how many ides you’re really using
i also use student license
Nice I mean to pay for one of the ides monthly is like 7-8 bucks probably
you can also use OS license if you want it too
Might depend on the ide
nice! I've still got a few more years of student though ;p
yeah me too, 3 years at least
atleast 8 years for me 🙃
are you in... 8th grade?
@cinder flare a lot of people here are near enterprise coders but in or close to highschool
lmao
im a freshman
you'd be surprised how much you can change within 1 year
highschool or college?
highschool
ah, nice
mhm
Flexbox has carried me so many times now
lol
Omg kotlin is so nice.... This went from like 10 lines to one:
return (findLoadedClass(name) ?: loadClassBytes(name).let { defineClass(name, it, 0, it!!.size) }).also { if (resolve) resolveClass(it) }
Is it bad practice to put everything that tight or no?
That should be fine yeah
Cool! Such a great language!
What did I tell you!
Is kotlin JVM aswell? Or is it like a java wrapper or smth
it compiles to jvm bytecode, yes
!! 
Oh shit didn't even see that 😨
I never realized that i really like more of a functional programming style, but im digging stuff like let in kotlin
😌
yugi I want to code in haskell using intellij but I he plugin doesn't recognize stack :/
Ill join you in an hour, working on something atm
actually I'm in bed right now, but intellij just says "Haskell Tool Blah [Invalid]" or something like that in red
in my jdk list
Did you set the executable home path properly?
Isn't Haskell bad? I did hear something like that in this discord server 🤔
🤡
the more i learn about vanilla on fabric, the more i understand how... weird bukkit is
it's bizarre
It's so much different right? I decompiled the server with the mappings and looked at the and i could hardly find anything i did on Bukkit, checked fabric and it was much closer to vanilla which actually made it so easy to work with
the thing is that bukkit is like a whole plugin environment with a shit load of things here and there to hold your hand
fabric is like "nah mate, this is the core game, i load the mod you do the rest"
for instance, entities don't actually have NBT
there is no "plugin logger"
worlds don't actually have a UUID
there is no "offline player"
probably the best of all differences is that everything regarding messages is components 😌
Very interesting read 👉 https://github.com/openjdk/valhalla-docs/blob/main/site/design-notes/in-defense-of-erasure.md
stupid binary compatability
Can't believe C# did the right thing
why oh why couldn't they have sane conventions
Right off the bat this is 100% true lol
Ask any developer about Java generics, and you'll likely get an angry (though often uninformed) rant about erasure. Erasure is probably the most broadly and deeply misunderstood concept in Java.
You like functional?!? Have you ever heard of Haskell???
Anyone who said that is objectively wrong and stupid and uninformed and wrong
and wrong!
Would a requirement for a programming to be an actual programming language be that it has to be turing complete?
and wrong 😌
no, it doesnt have to be
although most languages nowadays are turing complete
So what’s the requirement for a language to be a valid programming language
For instance HTML is mostly seen as not being one
that depends what you define as "programming"
html could be considered a programming language in that it's telling a computer to do something
but on the other hand there's no logic
Hmm okay
there's no clear line to differ between programming languages, scripting languages and stuff
Okay so technically html is a programming language then
is there an algorithm that I can use for a graph to find a node between point a and b? I have a problem with two friends in two different cities and I can move one at a time to a neighbor city and find one where they will meet
directed graph?
is there any any event that call every tick?
Will see, any other ideas?
That was a question, not a solution
Are we talking about a directed or undirected graph
Looks undirected
Any constraints on the node you need to find?
Since it's weighted, I assume you have to optimise it
sup
spigot down?
=check spigot
=check <@user>
can't even check spigot
I just went to https://spigot.com
lmao
I took 3 days off the PC and I don't even remember the links anymore
seems like spigot is down
nah its up for me
tis back
ah Ic.
I just need to give it to points and find the shortest way for the friends to meet at one point,
Like friend A starts from Oradea and friend B starts from Eforie (top left and bottom right) and I need to make them meet somewhere in between
Spigot seems to go down every now and then, you would've thought that md_5 would at least know how to be a good system administrator and schedule downtime
Then again though, this is md_5 we're talking about here
I didn't set anything, just installed everything using default configs, which I think had the boxed checked for that. I'm using windows, so the path to stack is "C:\Users\User\AppData\Roaming\local\bin\stack.exe"
so one can easily generate a 100MB JAR file from a few lines of code.
Doubt (X)
if that was the case, then C++ would also generate files over 100MB with just a few lines of code, which is super wrong since I know C++ enough to know that it produces super compact artifacts
Make sure its actually there
What's your C++ code compiled to? :p
it's not mine, c++ compiles to binary
you see, there's the difference to java
specialized types like that doesn't need to be generated as a new class but in the JVM it would be required to
exe.exe
hmm
exe.exe.exe?
What error shows up in ij?
imagine if generics could have one extra parameter that is automatically filled by the compiler called "T class" or something?
too hard to implement
How does that solve any of the mentioned issues? (https://stackoverflow.com/a/3942033 btw)
let's pretend List<T> have a parameter (that is hidden from us devs, but is inserted when creating Lists, a parameter Class<T> tClass or whatever you want to call it), then you could receive a generic list and check against it's type before you try to cast it
Haskell bad?
even on empty lists (which is impossible with current standards)
something like ```JAVA
public void myFun(List<?> generic) {
if(String.class.isAssignableFrom(generic.tClass)) {
// list of strings
}
if(int.class.isAssignableFrom(generic.tClass)) {
// list of ints
}
// and so on...
}```
UNTRUE
man, reification is such a hack, I just read a stack overflow article on it
So what happens here then?
<T> List<T> create() {
return new ArrayList<>();
}```
send help 
your "solution" assumes that every use of generics is a concrete class
which is not the case
do you see this diamond? <>? The compiler automatically inserts your T in between then
and what is T?
wdym?
that's exactly the point, those information aren't necessarily available at compile time
a type parameter that will be provided at compile type
So, if I compile this, what will it compile to?
the only way reification works in Kotlin is because the function is inlined and so copied at the call site lol
also, what type would be encoded in code compiled in older versions?
Which Class object will it pass to the arraylist?
java is a strong typed language, every parameter type is available at compile type unless using generics <?>
what
then just return null, or object class
So, if I compile this, what will it compile to?
just try to answer this
I mean, parameter types are kinda also available at runtime iirc through some hacks with reflection
so breaking with other code?
nah, it wouldn't have to break other code
if they weren't in the runtime bytecode somewhere, things like Gson's TypeToken wouldn't work
yes it's in the class file
I think they're stored in the info, yeah
It has to be for compile time
that's what I linked above
Object.class
yeah, it's so the compiler can see what the type is for checking
your cursor 😍
List<String> list = create();
assert list.tClass == String.class;
```and now it's broken
what's the issue here? actually that would work, either that or list.tClass.equals(String.class)
hello cousin
😏
and even though String extends Object, that doesn't mean that Class<String> also extends Class<Object>
How would that work? You said the list gets passed Object.class in create(). So when I call create I get a List with tClass == Object.class
oooh I see where you're trying to go
nah, this generic function create() will have to be called in a contextualized manner, in a reified context, correct? You have to specify the type at compile time, correct?
so you want type reification in Java then
either that or the compiler will infer it for you
I do not know what you're talking about
I'll try to explain
My point is, the solution is not that simple
yes it is
You can't just have a tClass field in every generic class and it's solved
No it is not. lol
unless using fuckery <?> in which case tClass would return null
yeah I agree with Johnny here
I just showed you a contradiction of what you suggested
But if you have a well-defined proposal, go ahead
just do whatever rust / haskell does, as that is obviously the best solution
if you think you've figured out a solution, submit a new JEP
One thing that's clear is that you're not just gonna come up with the perfect solution without any background in type theory
I think Rust uses type reification
reification is just the opposite of erasure
yeah ik
rust is monomorphisation afaik
it's not a precise procedure
yes
i.e copy paste specialised versions
ah, so it does a C++ then
mhm
public List<String> doStuff() {
// compiler knows you have to return a List of Strings here then, if I try to return the create function here, it'll compile
return create();
// to something like
return create<String>();
// which would pass String as type to create method, and String.class would be passed "hidden" parameter to `ArrayList` constructor
}
public <T> List<T> create() {
return new ArrayList<T>();
}```
i think theres a reason that cant work on the jvm though
I think the bottom line of this is that, just like in pretty much every other problem in existence, there is no real perfect solution

😌
clearly
.getClass? I think you mean UnsupportedOperationException
?learn-java
Online Courses:
Online courses are also great for learning java. Some websites that offer them are:
- Coursera - Free unless you want a certificate
- PluralSight - Great courses from what I've seen. Mostly Paid
- Udemy - Never used them myself but they seem to all or at least most be paid.
My first ever course was one from Coursera. - I can say it was pretty good at introducing me to the programming world as a whole not just java.
Oracle Docs:
Oracle docs can help a lot at learning and understanding java:
- Start with this,
- Breeze through this (skipping stuff that doesn't seem relevant like bitwise operators),
- Hit this.
They're the first three from this larger thing which you should definitely go through overall. But those three should be enough for slightly better understanding of what is happening here without feeling like a huge time sink.
That one is a small part of this larger site wherein "Essential Java Classes" and "Collections" also have good useful stuff
Other services:
Some other cool services that will help you learn java are:
As you can see there are plenty of good ways to learn as long as you're willing to invest the time. Have fun learning!
😌
?learn-java
Online Courses:
Online courses are also great for learning java. Some websites that offer them are:
- Coursera - Free unless you want a certificate
- PluralSight - Great courses from what I've seen. Mostly Paid
- Udemy - Never used them myself but they seem to all or at least most be paid.
My first ever course was one from Coursera. - I can say it was pretty good at introducing me to the programming world as a whole not just java.
Oracle Docs:
Oracle docs can help a lot at learning and understanding java:
- Start with this,
- Breeze through this (skipping stuff that doesn't seem relevant like bitwise operators),
- Hit this.
They're the first three from this larger thing which you should definitely go through overall. But those three should be enough for slightly better understanding of what is happening here without feeling like a huge time sink.
That one is a small part of this larger site wherein "Essential Java Classes" and "Collections" also have good useful stuff
Other services:
Some other cool services that will help you learn java are:
As you can see there are plenty of good ways to learn as long as you're willing to invest the time. Have fun learning!
@old wyvern I just want to say THANK YOU.
Every time I'm sad or just very bored I come in here and watch that pinned message and it just makes my day a lot better.
wall of text
😌
worth reading tho
wall of java 🤢 🥶 😖
at least for those who want to learn
Thank youuu
yw
😌
Simon spreads happiness
you know what else spreads happiness?
or just leave it to bukkit
money
money spreads happieness
Rich Hickey?
I was gonna say haskell but sure i guess...
😌
you all, listen to that amazing song: https://www.youtube.com/watch?v=YnSW8ian29w
ノヽ・/ ノヽ° 👾ナょら ⓚⓞーー💥🤟💙 🌴👽笑笑
Streaming & Downloadはこちら:
https://ado.lnk.to/odoID
↓inst音源↓
https://piapro.jp/t/TDE9
Vo:Ado
https://twitter.com/ado1024imokenp
Music & Arrange & Mix:Giga様
https://twitter.com/GigaMozuku
Music & Arrange:TeddyLoid様
https://twitter.com/TeddyLoidSpace
Lyrics:DECO*27様
https://twitter.com/DECO27
Illust:かゆか様
https:...
😌
so how i use java in minecraft (i know that minecraft is made on java)
no, its definitely money
learn java first
Money >> Haskell
you will not regret it
haskell reference 😌
Aristotle >> Money
Would love to see you live without the great inventions of the greeks!!!!
I never learned java first :p
I went straight into Bukkit, and fell down my staircase code and broke my leg
Monadic discard operator 😌 😌 😌 😌
that reminds me something
oh its just me 😌
Predicate good
ok
Function<? super T, ? extends Optional<Boolean>>
Also began diving into this hellhole 😷
why
They call it hell
😫
😌
in ubuntu, how do I point to a java executable?
there's no EXE file or something like windows (well, ofc no exe)
that wouldn't work at all in the JVM, the compiler would need to pass the type "hidden" to the create method already. Then we're getting back to compatibility issues and stuff...
wdym by pointing to it?
like on windows you could run path/to/jre/bin/java.exe -jar x.jar
exactly the same, but without the .exe
mhm
well you can also use chmod
doesn't that just make it executable?
but that won't matter if I'm running it via command line
yeah
Why must you do that to yourself 😩
😟
Also at first I read that as SlimJarMofo extends AbstractMofo
gg lmao
u corrected 2 letters?
bcz that's what I Did in Krpyton and got contributor role xD
Yeah I changed 2.8.6 to 2.8.7 in 2 places
added 2 missing '
Lmao
lamo
yo congrats man
u can put this on ur resume now
Oh shit that reminds me i still have an open PR on Ktor that i never added the test for yikes
lmaooo
Yeah lol
@autumn tundra your weird
sir this is
is there a way to catch multiple exception in one block in kotlin? I know in java there's something like
catch (Ex1 | Ex2 exception) but can't seem to find anything similar in kt
Ig I could just catch Exception and check if it is the exception I want
There is nothing
alr
maybe runCatching + is checks could be a nice equivalent
using kt } catch (ex: Exception) { when (ex) { } }
bm
yo
lmao
private fun Collection<Group>.bestGroup(player: Option<Player> = None): Group
= when(player) {
is Some -> firstOrNull { it.owner == player.value.uniqueId } ?: first()
is None -> first()
}``` arrow-kt
I'm actually using it in a project
I'll make a plugin to teleport items through chests based on rules
Sounds perfect for FP
Oh god, dont blow my mind even more! \😅
Too late
You're here now
Everyone in #dev-general falls to the purely functional temptation eventually
Some people think they can "resist"
FP is nice, very nice
Is it a JVM language?
no
Well then, that will be easy to never use it
Elara 😌
Oh we'll see about that
lol, what do you use it for then?
anything u want to
umm
yeah
I have made the basics of a minecraft server implementation in haskell
Then got bored
just because u cant make mc plugins with it doesnt mean its totally useless 🌚
right right right, all im hearing is totally useless
lol
pain
Haskell is useless
Even the creator says so
Simon Peyton Jones talking about the future of programming languages
😌 😌 😌 😌 😌 😌 😌 😌
Wow, great pitch! I wanna start using it immediately!
lemme just clip that quickly
Useless programs have no bugs
thats funny
1.5.10
Just 😌
yw
Because useless is good
yes
yes I guess ._.
Watch the video
literally any plugin ive ever wrote
I'm only half joking
I know ;-;
where's your evidence though that Haskell is good?
the creator has said that Haskell is safe and useless, never said that makes it good
nobody likes things that aren't of use to them either
well, bugs can be cool
Well you see that's why the phrase "Haskell is useless" is somewhat tongue in cheek
because it's not really useless
also, bugs can be kinda nice sometimes
Masochism?
for example, creepers were a bug, but they remained and became a cool feature
that was a logic bug, which could still happen in haskell
The point is that not interacting with the outside world means that the only flaw in a program is you messing up somewhere
In the logic
You can't accidentally leave a variable as null, you can't accidentally clear a list, you can't try and read a file that doesn't exist, etc
Is that actually true? Or just a myth?
Whenever I stop being lazy
so never? dangit
it's true, when Notch was trying to render pigs, he accidentally extended the model vertically instead of horizontally
Huh, thats a very strange bug lol
I want HaskellCraft this year.
I gotta be able to connect to it with a proprietary HaskelClient that has a built-in anticheat
proprietary? Absolutely not
no we can have a client maybe
and there better be a plugin system, idc about chunks and lighting, I WANT PLUGINS
We need to recruit a team
nice
nirvana 🤔
Nirvana
I guess I didnt write the Java modularity stuff, but it feels like alot of the reflection stuff was kindof messed up? idk though
lmao
Thats a lie
And you know it
they dont seem to mention anywhere that all of this stuff is caller sensitive...
"Oh why is this image not changing??? ffs!!"
5 hours of debugging later
"Oh.... cached"
😌
Wouldn't get that issue in purely functional programming
Although....
Is a memoised function functionally pure?
Assuming the non-memoised function is, then I guess so
That section I wrote is impure 😔
Stupid
IO
I wish everyone would write useless programs
?
.
This is a summary of today morning
😄
Oh I see
see this customer testimony about the dangers of impure programs!
After Yugi#1829 started using Haskell, he could never go back!
Glide.with(view)
.load(avatar)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.circleCrop()
.into(view)
Would you imagine this caches?
especially with this? diskCacheStrategy(DiskCacheStrategy.NONE)
certainly not
Answer is, yes. It still has another cache
There is another in-memory cache apparently
xD
So what you're saying is, impurity should be explicitly marked for the compiler to warn users about?
if only there was a language that does that!
Ikr
!!!!! 😌 😌 😌
Elara best 😌
😌
what are your thoughts on using let everywhere?
wdym?
Rather than something like Haskell
with no keyword
On the one hand, let good, and I think it looks nice in some places
On the other hand it's nice to be able to have type hints with the same indentation as their values
Wait I have an idea
What is it? 👀
What about something like this: ```rs
def add2 : (Add a) => a -> a -> a
let add2 a b = ...
Then it lines up
and you can separate let and def too if you want
🥲
shush java user
😌 😌 😌
Also
How the heck do you do type classes on the JVM
Because they're not possible in java or kotlin
We're probably gonna just need to generate a bunch of unchecked casts (or the equivalent bytecode)
😣
interfaces?
type classes?
Yes
what are type classes?
In computer science, a type class is a type system construct that supports ad hoc polymorphism. This is achieved by adding constraints to type variables in parametrically polymorphic types. Such a constraint typically involves a type class T and a type variable a, and means that a can only be instantiated to a type whose members support the over...
Similar to traits
I'm just remembering the issue we had with the Monad interface
so I'm returning to this issue after taking a break from it. When I switched to ubuntu, my keyboard drivers do not get automatically installed.
So according to the keyboard manufacturer, the drivers should be automatically installed when I Plug it in. What the drivers should do is just allow me to enable/disable the backlight when I press on the Scroll-Lock button.
Now pressing scroll lock does absolutely nothing but if I switch to windows it works.
Also on my other keyboard the keys are just messed up. So basically my ctrl, win and alt keys (left and right) are just read as Left Shift for some reason.
I have a laptop so if I test the laptop keyboard, ctrl, alt, win keys, all do what they should but the external one does not.
What I Need is someone help me install the drivers or something. They are not existent on the internet and don't show up in Software and Updates. I don't care for which keyboard I just need to get at least one to work as it should.
I'm on KDE Neon btw but this persisted when I Was on Ubuntu latest as well
(think at the time it was 21.04 or something)
Also one more small thing, Discord can't see the apps I have opened. When I go into settings it always sees these
Little update:
My mouse is a bit more advanced and has a driver online I downloaded, and bcz its an .exe I ran it with wine but when I open the app, it doesn't find my mouse at all tho my mouse works with the default settings.
so basically I can't change the settings to it
Also @old wyvern with library support, how can we guarantee that only 1 type class instance per type exists at runtime? If we consider that other classes can be on the classpath even if they're not known at runtime
Upon thinking about it, this could probably be mitigated with relocation
Does anybody have an algorithm for this? I just need to give it two points and find the shortest way for the friends to meet at one point,
Like friend A starts from Oradea and friend B starts from Eforie (top left and bottom right) and I need to make them meet somewhere in between
stackoverflow gaby. smh
Theres also another possible way, we could generate a hash for the signature of the constraint, create a interface with that hash as name, then have a interface with a human readable name extend it
or wait no, that would still have the same issue
nvm
dijikstras?
I thought about it but doesn't that find the path from A to B?
Yea
what about a center point between these
Relocation would probably fix it, as we can have something like class a.b.Maybe implements a.b.Monad
Then we can assume that all the instances in package a.b are valid instances, and none others are
take the total distance of the shortest path and divide it by 2, check what nodes each reach with that distance
or the closest
You should be able to do this with slight additions
I want to die rn.
U think that maybe Ubuntu HIdeout discord would help me if I Use KDE Plasma?
hmm, true, but that wouldnt work out in-terms of interop
you could try with a weight function that takes the maximum of always two edges or something like that
What distro are you on?
kde neon?
well then time to see if someone in there has a bigger brain
well actually
most of them do
xD
lol
also where do u recommend I put my .appimage apps
I installed LUnar Client and its an appimage which I have to run every time. I Can't even pin it to my task bar
should i just make a Games folder in my home directory?
we should probably take the approach of elara <> elara interop requires static linking so the compiler can do stuff
should a library use implementation or compileOnly for when it comes to dependencies?
like, if im making a library in kotlin, should i make kotlin stdlib implementation to avoid any issues with version mismatching? or leave it up to the library user?
java interop ez
kinda situational, I would say kt should be api
alr
true, but there might be cases where we dont want that such as a situation of "extensions" or "plugins"
I feel like it might be worth consulting someone cleverer
We could have a look at how scala does traits maybe
That's probably a similar thing
😮
welp @ocean quartz got u some work for this next week xD
I'm talking about role request
Nice, this one will be faster
