#dev-general
1 messages ยท Page 194 of 1
Yeah 
rip
Traditional web ๐
I'm confused why he'd stop
There has to either be drama, or he's gotten bored
but he doesn't mention either of them
Maybe he has other things to do in life
Yeah he just says he wants to do other things, he might come back in the future
who that
The to go guy when it comes to games tutorials for unity
intriguing
Yup
Arrays are op
Curious question, I am running the application configuration on IJ, but the result is on a gradle run instead of the normal IJ terminal
Anyone know why?
maybe because gradle runs it?
Any idea why random variables or even methods turn gray, even if they are used? https://i.imgur.com/4om4qcH.png
I use Material Oceanic and didn't had any issues on Java, only on kotlin
What does it say when you hover over them?
var tokens: Double
here too https://i.imgur.com/0BOfMFv.png
I start to think it might be because of my theme but don't want to change it ๐คฃ
It's your theme Gaby
If a variable isn't reasigned it'll be gray
If it is reasigned it'll be white 
Gandalf the gray
Is there a way to get the debugger to step back? 
I guess no, gonna have to make a stop and rerun ๐ซ
I know that's a thing in Visual Studio Enterprise for C/C++... never heard about it in other places lol
Yeah, I remember that on some C ide
Common IJ you're falling behind
I hate and love the debugging ๐ซ
Someone kill me please
I've been searching for this thing for over an hour now and just found it was right where i was looking at

And it's done after 10 years, commonmark no longer trims spaces at the end and beginning
someone tell me why tf https://wiki.vg/Protocol#Acknowledge_Player_Digging this packet exists lol
to acknowledge player digging
to acknowledge player digging
but it's 1.15+ (from what I've read), meaning it didn't always exist
@ocean quartz I don't think there's a way to step back since it's pretty much impossible, as when you advance, you're advancing the program's execution, and you can't just turn back the clock like that
Ctrl+Z doesn't exist at JVM runtime
no shit sherlock
It's not impossible, just not possible on IJ
afaik not possible with the JVM
my face when the server doesn't acknowledge my digging ๐
also you still haven't reviewed my changes ๐
Me?
oh yeah lol
not you
mitten needs to review my MineKraft changes
Heyo
why sad
What happened?
^
I found something that PDM does not cover
oh dear
in my server?
nah you've mentioned it now, at least share it with the gang
no, in discord private
๐
I will try to explaim here
as well
So, I found dependencies that in <dependency> the Scope is not provided
by that pom
I swear PDM doesn't even support Shitven lol
instead, looks like it is provided by the parent pom
I will send a sample for you folks
But, the way that PDM does is looking into the <dependency>
since when did PDM support Maven
it supports maven repositories
since that's the standard
it doesn't have a maven plugin
yet
it's ?
nah don't bother making a Maven plugin, fuck Maven users xD
wat dis
Which dependencies get skipped?
all
also is the Maven thingy gonna be like <scope>pdm</scope> or some shit?
scope = good idea
maven plugin is effort anyway
Do you know what could be @prisma wave ?
possibly
Currently, I'm doing a stupid thing here, I'm making the Gradle plugin use Maven Aether
But is not working so well with my implementation, sad
"I'm doing I stupid that here"
- DevSrSouza, 2020
thingggg
is that "I" supposed to be an "a"?
"I'm doing a stupid thing here" sounds more appropriate
King Nitpick at work
@astral quiver are you declaring a dependency directly on that artifact?
Holy shit it's actually fixed, no more trimming ๐ฅบ
parent pom
wat dis @ocean quartz
also using legacy codes instead of the new chat component system smh
@jovial warren My parser, commonmark would trim spaces so for example if i parse Hello then there and combine both it'd look like Hellothere
And that is literally the point of the method i am using, legacy lol
ah okay
@prisma wave
dependencies {
compileOnly(kotlin("stdlib-jdk8"))
// script
pdm(kotlin("scripting-jvm").toString(), excluding)
pdm(kotlin("scripting-dependencies").toString(), excluding)
pdm(kotlin("scripting-dependencies-maven").toString(), excluding)
compileOnly(Dep.spigot)
compileOnly("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9")
compileOnly(Dep.kotlinBukkitAPI.core, changing)
compileOnly(Dep.kotlinBukkitAPI.exposed, changing)
compileOnly(Dep.kotlinBukkitAPI.plugins, changing)
compileOnly(Dep.kotlinBukkitAPI.serialization, changing)
}
ayyy my man be using Kotlin DSL
groovy #NotStonks
so where is the dependency on aether coming from?
scripting-dependencies-maven
also what's up with the toString() calls?
I guess does not have a extension for any when using configuration
I could not find one
dsl bad
kotlin() returns Any, but is a String
dsl bad
https://tenor.com/pxjw.gif
I'm don't know if is a issue with the submodules thing but the others dependencies is just fine
ยฏ_(ใ)_/ยฏ
i will do some debugging tomorrow
the dependency process is very convoluted at the moment so it wouldn't surprise me if some things slipped past
But this type of thing that maven does, pdm supports it?
like, going up in the parent to retrieve the scope
KotlinBukkitAPI Tooling 
ok
kotlin mc dev plugin 
no
no
aj rn: โน๏ธ
Don't trust anything made by aj
๐
tokens += api.getEnchantments(item).entries
.filter { it.key.isRefundable }
.sumByDouble { it.key.refundRate * api.calcCost(it.key.name, 0, it.value) }
should i replace filter {}?
hmm?
let main =>
smh bm, halp
With?
should i replace filter {}?
you said smth about not creating new collections
I guess sometimes that cant be avoided?
Oh
nah I think in this case trying to do it all in 1 line would hinder readability
however
if you're dealing with a lot of data, or a lot of operations it can be useful to use sequences instead of collections sometimes
since it's faster + less memory intensive
there can be max 36 items on that inventory and items usually have 3 - 10 enchantments, may 15
yeah probably fine
that are sequences though
?
what*
ah
like java streams
but faster
I wrote a blog post about it but looks like it's been yeeted ๐
but basically, they process each element individually rather than making intermediate collections
like an iterator + loop
uh
sequence<MutableMap.MutableEntry<CEHandler, Int>> { api.getEnchantments(item).entries }
.filter { it.key.isRefundable }
.sumByDouble { 2.0 }```
so like this?
Maybe you could use Maven Aether just in the gradle plugin to do a better dependency resolution @prisma wave
Kotlin Sequence is really awesome
is a map
entries is a collection
A Data Structure similar to Collections and Streams, but different - and sometimes faster! In this article we take a look at Kotlin's Sequences.
cheeky self promo
but this is quite good i think
:))
Great article
ty
why is the closing bracket on the 2nd line ๐ญ
I need to try to write ones
I have the feeling that the article should be really big
@distant sun which one
}.filter {
to so many people
ew no
interesting example tbh
very interesting
oh, storry, this is a article sample
yea
in this sequence, this is really more efficient @prisma wave ?
A good example would be like: first { it.age > 35 }
this could be a really good example
yeah I was trying to think of practical examples I guess
but, I guess, this is still more efficient then doing collections operations
indeed
Just want to think about it one sec
The problem is that Kotlin creates new collections everytime if I recall
correct
that could be needed in case like a linkedlist mutable implementation
because this operations use inline function
that I think is not the case for the Sequence
what are peoples' obsessions with doing thingys like this in Kotlin: kotlin fun myFunction(): Int { return 1 } instead of just ```kotlin
fun myFunction() = 1
expression functions = good
also challenge for you lot: try writing a program that prints the factorial of a given number n without running in to an integer overflow
expression functions = good
@jovial warren only in situations where readability isn't hindered. In that example a property without a backing field is probably better
yeah ik that's better in that case, but I was saying in general, people use single return thingys rather than expression functions
eh
I think situations where using an expression function would be better are quite limited
wat
I've seen very few situations where I've thought "you should use an expression function here"
they're very niche
possibly even a gimmick
but then again elara has them too, so can't be a hypocrite
also challenge for you lot: try writing a program that prints the factorial of a given number
nwithout running in to an integer overflow
also do this
on it rn
what you using?
because I wanna find a tool I can use to just throw a program together
overflow is gonna be caused by the data type you're using
BigInteger effectively makes overflow impossible
yeah I figured that one out after I'd wrote my initial program
what tool you using? just regular IJ?
oh wow I did a stupid and forgot to choose the "Kotlin DSL build script" option when making my new project
well, time to create a new project lol
I hate tcp
ok
building my own
off of UDP
but it makes sure it arrives properly and in the same order
re invent the wheel
racis M
kotlinism
@prisma wave you actually have a better method than me lol
I used tail recursion in my original
im not sure fold is better
actually yeah maybe it isn't
how is recursion faster than tail recursion?
ยฏ_(ใ)_/ยฏ
according to Baeldung, tail recursion is like 36% faster on average
show me
because mine looks like this: ```kotlin
tailrec fun factorial(number: BigInteger, accumulator: BigInteger = BigInteger.ONE): BigInteger = when (number <= BigInteger.ONE) {
true -> number * accumulator
else -> factorial(number - BigInteger.ONE, number * accumulator)
}
also don't even ask
christ
and no that is not allman, it's just Discord wrapping text
Probably one of those things that is faster the bigger it gets but slow if it's just a few iterations?
ยฏ_(ใ)_/ยฏ
ยฏ_(ใ)_/ยฏ
mine is testing 1000 times and taking the average
although the compiler might have optimised some of the calls out
since i'm not using jmh or anything
Go would never have this problem
every operation = 0.005ms
i just realised
a factorial function is O(n) not O(n!)
huh
tailrec fun BigInteger.factorial(accumulator: BigInteger = BigInteger.ONE): BigInteger = when (this <= BigInteger.ONE) {
true -> this * accumulator
else -> (this - BigInteger.ONE).factorial(this * accumulator)
}
```this is better xD
no it's not
yes it is
it's an extension function
I don't mean better in performance, I mean better than my last one
using when in place of a single if/else is gross
https://img.bristermitten.me/idea64_WQYm1dnSMQ.png
when getting 5000! fold seems to be fastest
what are you on btw
?
using when in place of a single if/else is gross
if (thingy) {
} else {
}
```looks worse than ```kotlin
when (thingy) {
true ->
else ->
}
you wouldn't do ```java
switch (condition)
case true: break
case false: break
}
at least have true and false instead of true/else
no because switch is weird and overly verbose, when is nice and clean
how is it weird
how is it not
because it isn't?
it only works on constants and primitives
yes
because unlike when it doesn't compile to if else
it's a standard switch case implementation
anyway
when should only be used for 3 or more branches
if (thingy) {
} else {
}
```looks worse than ```kotlin
when (thingy) {
true ->
else ->
}
@jovial warren
if (thingy)
{
}
else
{
}

I mean, kotlin if (thingys) doThingys() else doOtherThingys() >```kotlin
when (thingys) {
true -> doThingys()
else -> doOtherThingys()
}
but single-line braced if-else statements look disgusting
if expressions should always have braces
again, another opinion that you're stating as fact
well I mean, you do use allman so that just explains it all I guess
find it in the specification and I'll accept it as fact
also if it wasn't an opinion, single-line non-braced if statements wouldn't be a thing
bruh
specification doesn't define everything
find "arrow code bad" in the specification
also if it wasn't an opinion, single-line non-braced if statements wouldn't be a thing
you realise that mistakes can be made in language design
yeah, but Java did it before Kotlin, and Kotlin decided to keep it in
I highly doubt they would've deliberately added it had Java not had it
why wouldn't they've
because it's commonly regarded as a bad idea to use it
without single-liners, val x = if (condition) y else z wouldn't be a thing
which is basically Kotlin's answer to ternary operators
ternary operators look better ๐คท
shut your mouth Gaby
I agree
Noobs
I mean, I agree as well, but I can just see you waiting for an opportunity to chat more shit about how Java's better than Kotlin lol
??
unless you've switched
Both are bad
I agree, ternary is better
Kotlin still sucks but hey, one time I dont say it and Im bullied ๐
shut your mouth
๐คฃ
No
๐ช
What elara doesn't have:
- Ugly 1 line if statements
when๐คฎ- Different syntax for variables and functions (very dumb)
What elara does have:
- Union and intersection types with contract based type system ๐
- Concise syntax that doesn't encourage bad practices
- functional programming masterrace
- Actual pattern matching
wait Elara doesn't have one-liners, when or any other things that make me able to write significantly less code?
show example
pattern matching
seems legit
False

and one "spltkn" function
match sender => {
Player => sender.kill()
CommandSender => sender sendMessage "you suck
}
So I just spent the majority of two days reading through the brigadier lib and I gotta say, while it's hard to get into, once you do it's smooth as butter
Syntax not finalised
tf is that
Match is like ugly when
what is your obsession with =>
Clean
With instances?
-> > =>
ugly
tf is match though
What language uses =>??
pattern matching...
Can someone help me with something quick... When making file defaults, if i add them in the file... i dont need to config.adddefault correct?
match
js
What language uses =>??
JS
Elara is cool and all, but it's pretty ugly, i really don't like what you guys did with the syntax, no parenthesis, too much => etc
^
Bruh
๐คฃ
Parenthesis have their own role tbh
Parentheses are optional
2 spaces for one parenthese?
That's different to "no paranthesies"
parentheses are optional?!?!
And at the end you have "method "
Most of the time
Elara on rails
Elara on fuck all lol
๐ณ
Like
match sender => {
vs
match(sender) {
Although @ocean quartz I do agree that there are too many arrows, will try and remove them in some places
meh
no No NO
Whats next, indendation instead of semi colons or braces ??
Ideally it would be match sender {}
The parenthesis are not required
Like rust :))
e w w
And another thing that bothers me a lot is the use of let
Any other language has it WRONG
Idk what that word means
imagine function[function[function]]]
Not hater, it just doesn't make sense for non english speakers
Let is fine imo
@onyx loom why should functions be treated any differently to variables?
Maybe they should be english ๐
let for variables = alright
let for functions = dog shit
fun
imagine function[function[function]]]
@distant sun thats basically clojure but with [] ๐
๐
fun > let @distant sun though
@jovial warren same question
because let is just no
eh
That's not a very convincing reason
also, why shouldn't functions be different?
Imo because a property shouldn't be treated like a function
have procedure and functions
but if functions are first class, aren't they just variables?
variables store and hold thingys
functions do thingys
"thisIsAFunction function()"
Fr
Have goto's with arguments ๐
vim plugin for intellij ๐
The point of functional programming is first class functions: functions aren't treated any differently to any other type. Therefore, why should they be declared any differently?
The point of functional programming is first class functions: functions aren't treated any differently to any other type. Therefore, why should they be declared any differently?
this is one of the things that turns me off of functional programming
If you can write assembly you can write pure binary
Map, filter, etc are all elements of functional programming
I don't mean first class functions are bad, I mean declaring variables and functions the same is bad
but why?
Cuz it is.
because it gets confusing
If they're both identifiers + values, why should they be declared differently?
because it makes your code more readable
does it though?
because you should be able to easily distinguish between a variable and a function
First class functions
this is one of the things that turns me off of functional programming
@jovial warren
I don't mean first class functions are bad
@jovial warren
Also make your mind up lol
you can easily distinguish
By looking at the value
First class functions
@jovial warren
@jovial warren
Also make your mind up lol
I did make up my mind
I literally said that I meant by that original message that I meant first-class functions aren't bad, but your implementation of them is
What elara does is entirely possible in kotlin
val printHello = {
println("Hello")
}```
having separate syntax for function declaration implies that they're separate things, even though they're not
that's an SAM-converted anonymous function, not a function declaration
also that code is not something that anyone does in Kotlin because you just don't do that
Why not?
Ruby on rails vs spring
because it's bad
Ruby on rails vs spring
Spring better because it supports Kotlin
@prisma wave just look at that original thingy you sent
why isn't that bad
that's what I wanna know
Kotlin + spring = ๐
@heady birch what the damn hell you been smoking this morning
Because it treats functions identically to any other values, and therefore makes passing functions around much more concise
I have yet to experience its power
do you use Kotlin or not yet?
You could do ```
service.execute(printHello)
Instead of ```
service.execute(this::printHello)
I guess
If we're going to the extremes of not distinguishing between functions and variables, a variable could just be considered a function that returns itself
i.e a Supplier
Heh ruby has "Gems"
ruby is a gem
Rustcrate unboxing
Cargo > cmake > pip > gradle
babel > cargo
What's the worst dependency manager (and dont say maven)
apt
People making nodejs websites with 600000 npm modules
centos
RHEL > Debian
ElaraOS fork of windows xp
ElaraOS built from scratch in Elara?
rust
Then compiled to go
also how will collections work in Elara?
does abstraction work in Elara?
(I mean methods without implementations, like in interfaces)
interfaces are more of an OOP concept although I am considering adding them
Probably wouldn't be necessary
abstraction isn't a thing
Not needed
Contract based
if you add more OOP principles in to Elara then I might consider using it
does it have all four key principles?
Kind of
those being:
- Inheritance
- Abstraction
- Encapsulation
- Polymorphism
Not in a traditional sense
But they are possible in a way
Although I'd argue those aren't exclusive to OOP
Probably the main OOP "feature" is the concept of a method
without those four key principles, you don't exactly have "all the OOP you need"
they can be replicated but they aren't specifically in the language
It's about as object oriented as Go is
Which is roughly "not entirely but kind of"
how would you guys process the drops of blocks destroyed on an area - for an enchantment?
some are easy to handle, such as stone or ores + silktouch
No longer using regex for color detection, using the inline parser instead for speed 
Test message �This is *Sparta*
the hex is currently outside because i won't make an html render for it
Why html though
Commonmark always does it to html, i just modify it to work with mc instead
val alive: Int
get() = mobs.filter { it.isAlive }.count()

It shouldn't, it's just filtering and counting the list that already exists
Gosh anyone can help me?
local Player = Players.LocalPlayer or Players.PlayerAdded:Wait()
local Stats = Player:WaitForChild("Stats")
local Exp = Stats:WaitForChild("Exp")
local MaxExp = Stats:WaitForChild("MaxExp")
function lemon()
script.Parent.Text = tostring("Exp :"..Exp.Value.." / "..MaxExp.Value)
end
lemon()
Exp.Changed:Connect(lemon)```
I'm stuck on this
What even is this?
Roblox - Lua programming
Oooh interesting, @vast ore, I'd suggest asking in #development though i am not sure if anyone here is familiar with it
**I fixed it already, Thanks anyway โค๏ธ **
I made it inside script when I had to use local script for local vars
Also if Lua is
Lua / Lua 5.1 ( Roblox Lua ) different langauge
So java is like
Java / Jave X ( Minecraft Java )??
Or if u learn java its for anything
What the hell is Java X?
Nah Java is just Java, it's just the spigot api that you learn which is specific to MC (and all other apis/libs you use)
Can someone help me
We don't read minds so no
Hey Matt, have you had time to work on that MF rewrite so I can do my stuff with it yet
val alive: Int get() = mobs.filter { it.isAlive }.count()
@ocean quartz pretty sure count accepts a predicate to avoid making another collection
^
probably
Not probably
somebody remind me of what a predicate is lol
just a functional interface that denotes a condition
The thing is
it's a thingy that accepts a thingy and returns a boolean
Kotlin has both lazy and eager "streams"
If you dont explicitly specify that you want to use the Sequence api, you dont get the same result as using Java streams
As in intermediate collections are made
most of the time, the benefits of sequences aren't all that worth it though
unless you're computing a lot of data, or doing something where performance is a massive deal
Sequences massively reduce the number of operations and memory count when you have a lot of transformations
mhm
yeah exactly what I said, worth it if you've got loads of data to compute or where performance makes a difference
Why did kotlin add the eager implementations? just to make collection transformation easier?
which ones are eager?
Collection#filter ...ect are eager
You need to use Collection#asSequence to begin using the sequence api
isn't the difference that lazy means the data only gets used when it's needed, and eager means it basically uses as much data as it can
For simple stuff there won't be any noticable overhead
yes bard
like I remember quantifiers in Regular Expressions being eager or lazy, eager meaning it takes as many as it can, giving back if it needs, and lazy means it only takes what it needs
Mhm
The Kotlin Sequence/ Java Streams do nothing unless you specify a terminal function
actually it's not eager in my case, it's greedy
(I mean it's referred to as "greedy" rather than "eager", but the same principles apply anyway)
Im pretty sure its reffered to as the "eager" implementation in this case
egirl
eagerl
elaragirl
Elaragirl
lol
I wanna make something cool but idk what to make :/
o wb
hey btw @ocean quartz , I know it's getting a rewrite, but I was just wondering: does your framework support commands being @Components?
or is it likely to kick off about that
I don't see why it wouldn't
true
@prisma wave how do you explain to someone the reason for using stuff like Gradle instead of just importing jars
Call 911
how do you explain to someone the reason for using stuff like Gradle instead of just importing jars
@remote goblet gradle go brrrrr
Maven go brr?
Maven go ewwwwwwwwwww
๐

Maven go brr?
@remote goblet yes, maven go brr, gradle go brrrrr
maven go ew gradle go br
@remote goblet fast building, extendable, makes dependency management easier
regarding why to use a build tool, I have a reason on my gradle guide
Gradle: Your gun goes pew pew, mine goes brrrrrrrrrrrrrrrrrrrrrrr
Just use a load of terms like "platform agnostic" and "reproducible" to make yourself sound smart


Elara: perfect in every way
Is there a way to force a subclass to implement either one method or another, but not both?
Any reason why you want it to be forced?
Is there a way to force a subclass to implement either one method or another, but not both?
no
messy
use interfaces
Incredibly messy
Just have both as default and use the one you want, ez claps
idk how to do this actually other than having two different abstract classes
so here's the thing
I swear all of your questions are "how do I do this impossible hacky thing"
I swear all of your questions are "how do I do this impossible hacky thing"
@prisma wave Yeah cuz I don't have to ask about the easy stuff ๐
It's survivor bias
Anyhow
Whats the point of having then implement either A or B?
here's what I need to do and idk how to do it cleanly
Interface segregation principle
there's this api with two methods. One takes a functional interface (Foo) -> Int
and one takes a functional interface (Foo) -> Unit
and I want my classes to implement either one but not both
and depending on which one is used, that method gets called
Just have two methods, both be default and just call both?
And then you just implement either or in your class
Yeah that's what I did but it feels messy
it is messy
use a mixin-esque pattern with two interfaces
thatโll yield the cleanest result imo
What's that Piggy?
on phone, donโt want to explain
best to look it up
donโt look for java examples
@hot hull literally took me 2s to google mixin java ๐
I looked it up Blocky yes. Confused by what the deal is here now
use a mixin-esque pattern with two interfaces
@quiet depot That was my second idea that I haven't yet implemented and thought before I go and refactor shit I'd better ask if Kotlin has a better solution
Elara: perfect in every way
What is this lmao
bmโs language
@empty flint idk, does kotlin have language level traits/mixins?
afaik it doesnโt
so doubt itโd be any better here
so mixin is like a function that isnt part of the actual object?
well the word โmixinโ describes it perfectly
mix-in
mixing functionality
No not elara this meme
I mean would extensions be an example of that?
internal abstract class <T> it is
technically yes yugi
hmm
@empty flint idk, does kotlin have language level traits/mixins?
@quiet depot Comparable is a mixin.
So it does. Kinda
At least according to Google it is
I swear all of your questions are "how do I do this impossible hacky thing"
@prisma wave Hm do you mind that I ask dumbass questions where the answer is always something along the lines of "no and also why in the fuck would you ever need that"?
blocky the problem is if youโre asking these questions, youโre doing something wrong
What is this lmao
@lunar cypress good meme
android dev is kotlin right?
Yes
alright ive just had a dumb idea that ive gotta do rn otherwise I wont have motivation tommorow morning
Using java for android apps will summon a horde of angry developers
you know borz, this would have worked out in Elara 
type YourType => { firstThing (Foo) => Unit } || { secondThing (Foo) => Int }
Using java will summon a horde of angry developers
and im guessing android stuidos the way to go?
ig so
Aj, sheesh I just downloaded AS as well
oi
surely everything android studio can do is possible in ij ult
blocky the problem is if youโre asking these questions, youโre doing something wrong
@quiet depot But that's exactly the reason I ask them? If I did everything right, why would I be asking questions?
ik the other ides can be emulated in ij, as is a bit diff tho cuz google
Can it debug install properly straight onto the device?
so not sure
Not really sure
IJ has an android plugin which makes it literally android studio afaik
ah
lol
I swear Jetbrains have updates for their IDEs every week or something
Pretty much lol
Everytime I open toolbox there is always something to update
srp irl is too hard
yo why did android stuido make a src/main/java when I told it im deving in kotlin ๐
why u got com and ult?
I had comm from earlier
damn com is taking up like 1gb of storage u should delete it!
meh
lemme check
probs about 1gb
im immensely disappointed with AS
lol?
yup
like wtf, making main/java when its a kotlin project
u just downloaded it 
I mean if I can use IJ for android dev, Imma use it
ok nvm
Why use another thing if this works 
AS has drag and drop shit doesnt it?
Yes
surely ij doesnt have that
It does with the android plugin I think
im doing something really stupid atm lol
I cant seem to come up with any ideas to work on to try this
@old wyvern does ij offer anything similar to that (like a design view in VS) with JFX / tornado?
pretty sure it does
mhm
you realise as is ij right?
SceneBuilder or something
Also I just realized Android Studio generated the kotlin classes inside the Java root
thats what i was saying before lol
you realise as is ij right?
@quiet depot i mean yea but im too dumb to know where this stuff is
hey anyone here know how to create a set that is the complement of another set in Kotlin? (for enums)
what I mean by complement is a set that has none of the values that the other set has in it
just filter out the ones that is contained in the other set from the values array?
good idea
Anyone know a good place to learn android dev stuff?
An indian guy from yt best 
๐
birthday card app
๐

5 minutes in and ive allready crashed AS ๐
ES would not have this problem
when will the elara circlejerk end
It has only begun
๐
https://discordapp.com/channels/164280494874165248/695431668944732270/756843327503990814 @old wyvern wheres dark theme toolbox ๐ญ
it is immortal
is there an easy way to find the latest ver of a dependency?
@jovial warren I don't see why it wouldn't
Go to it's maven repo? @obtuse gale
What does that annotation do?
Anyways try and see it
Imagine if android wasnt using xml for design ๐ญ
pretty epic when stuff doesnt work and theres no errors ๐
@ocean quartz @Component? it basically makes the class managed by Spring
it's Spring's component annotation
Ah fair
I think im going crazy lol , I cant decide what to do, i started by fucking around with android dev, now imma make a spring website hehe
lol
Spring is a good skill I think
hm yeah, this will actually be a nice way to learn, its basically
Registration/Login,
Admin must verify your account before you can access a page
If you need anyhelp ust ask me
yeah what shit do i need from here lol
Web -> Spring Mvc & Spring session
Template Engine -> Whatever you want (probably thymeleaf)
Security -> Spring Security
SQL -> Spring Data Jpa & MySQL Driver
or SQL -> Exposed for Spring Boot (can be obtained separately)
Oh yeah actually maybe if your using Kotlin
yeah, imo Exposed > JPA for Kotlin
hm?
you familiar with JetBrains Exposed?
alright ill stick with it just cos ive used it
just use what you're most comfortable with
I heard bm mention a kotlin plugin or something so you dont have to give everything default values, where would I find that?
cos in past projects ive just added default params to everything so theres a no-arg constructor, which jpa requires im guessing
is it this? kotlin("plugin.jpa") version "1.3.72" I just noticed thingo added it to my build.gradle.kts
maybe
For login page make a plain html form
Registration forms look into thymeleaf object binding
Create a pojo e.g
class RegistrationForm {
String name, email, password, confirmPassword;
}
@obtuse gale if you've set it to use kotlin it should add the jpa plugin automatically
This is awesome, the way commonmark handles the parser is pretty cool, just made the colors escapable 
�This \&cis &r*Sparta* &cnot escaped
Hot
Very hot, this means i can make it so formats can pass through nodes and possible even through lines, so you'd have like gradient that would follow up through all lines
Music: Noisia - Seven Stitches
I need a keyboard linked to IJ and when an exception happen it will turn red ๐ฎ
or just dont have exceptions, ez
Oh boy, <#hex> format also works, now the fun part, the complex <g:hex:hex> and <r:1.0:1.0> 
@prisma wave @old wyvern Question for you guys about Elara's parser, how do you guys detect double/float?
I have a scanner, which is basically a Stack, it has all the characters, i need to peek into the stack and check the combination of them is a double or not if you know what i mean
iirc that should be done in the lexer
which basically just checks if a . is present at all
probably a naive solution, but it works
numType := Int
for {
ch := s.read()
if ch == eof {
break
}
if ch == '\n' {
s.unread()
break
}
if ch == '.' {
numType = Float
} else if !unicode.IsNumber(ch) {
break
}
buf.WriteRune(ch)
}
the f is :=
variable declaration
but with inference
var [name] [type] is for traditional declaration
name := value is for type inference
Let me give this a shot, and yeah it's basically a lexer but commonmark calls it a parser for some reason
odd
ugly
Berry
never disrespect go like that
I mean not bad?
Well, works well
Daba dee daba die
Oh, found a problem lmao, if no closing character is found it'll loop forever 
May not be the best implementation but it's cool, all sorts of combinations work, like 1, 1., 1.0, 1.25, .2, etc
And this doesn't throw error xD
What a comek Matt
Comek?
"And i am blue"
Daba dee daba die
The fuck is "comek" though?
Oh lol
Smh
No lol, it's from those stonks memes
haha
:stinks:
lol

Lol
Is that Go?
numType := Int
for {
ch := s.read()
if ch == eof {
break
}
if ch == '\n' {
s.unread()
break
}
if ch == '.' {
numType = Float
} else if !unicode.IsNumber(ch) {
break
}
buf.WriteRune(ch)
}
I think is elara
for ? {
Or the parser for elara written in go
Is that for a loop?
Not exactly
while true
I think they function more like while true yeah
Bm
you know how gradle has smth like this for setters of an object?
options {
x = 1
y = 1
}```
Is there an equivalent for kt?
options.apply
instead of
options.x = 1
options.y = 2
options.apply {
x = 1
y = 2
}```
hot
very
So much nicer in rust
๐
go for loops can be like java ones btw
Whats eof btw @prisma wave
ah
ridiculous
you out here using some object for optionals
do you actually use rust?
rust Option compiles to null pointer check ๐
rust users are immature
0 added overhead
go users are distinguished and bold
Niall is 12 so idm
C wanna bes
Go users!!!
go users good
but cant write stuff without a GC
C is yuk
^
thats what an imposter woudl say
spltnk is my fav
Go is like java but not ugly and fast
yes, := is very .. nice
Ugly operator
Ok I understand not wanting to be too verbose
and you have to handle every error
Niallang
let a is 5 as double-precision
nil is quite common
please define a
please set a to 12
ok
nil means what, null?


