#dev-general
1 messages ยท Page 488 of 1
you know that TLDs aren't country bound btw right?
unless ur Eritrea and dont give out ur TLD at all
thoughts on .tk?
free domain
not bad
some are
including .cy sadly
yo anyone seen bm?
nope
fucks sake
probably drinking his tea
shut it frosty
I got a bug i guess i'll pay someone else
if anyone can help remove the fucking npc then i'll pay them
it won't delete I think I done something wrong with UUID's but idk
no
Well I mean where and how are you storing that
code wise, frosty?
Yes
private UUID npcId;
private UUID oldID;
then i set it in the method
oh
um
wait ๐ค
That sounds like a yikes
thought u coded in kotlin
Also Odin, how many times are you going to apply for the dev role? lol
No you should not, wait for Piggy to review it, you already have 3 there, it won't change anything
ooo I wonder if I can join the reviewing team now
I do?
Matt, I am sorry for doing that. I forget I do things sometimes. My apologies. I won't go into reasons behind it it's personal.
it's alright lol
things happen when you have part of your brain missing (:
what's that thing called where it mangles your unit tests to make sure they fail?
pitest?
stack test
๐
Also, for some reason coverage is very broken when it comes to try with resources
Always shows a "untested" closing brace line after finally
Oh wait it wasnt even a try with resources
Yea
Just a try catch with a finally
i cannot for the life of me remember what this thing is called
.
yep thats the one thanks
there is so many things wrong with that
oh btw, is there a way you can take an existing Gson instance and apply all of its registered type adapters to a new instance?
that = other :)
wat
why'd you need to "clone" it?
Adventure
I want my own Gson instance, and Adventure only gives you the prebuilt instance
Gson#newBuilder
can Gson serialize UUIDs natively btw?
yea
like turning a UUID object into its string form
alright
because that's something kotlinx.serialization can't do lol
or that
so val GSON: Gson = GsonComponentSerializer.gson().populator().apply(GsonBuilder()).create() then?
(will use more things on the builder when I need them ofc)
lol
I'm currently completely removing NamespacedKey and replacing it with Adventure's Key for ease of use
oh btw, thoughts on Guice?
am I wrong
not really
case in point
Guice seems very advanced and does a shit ton of stuff
does Guice = you use the API? ๐
what
?
waiting for dkim to ask what Guice is
does guice use reflection or method handles (or unsafe?) to create new instances @prisma wave
neither
classgen
Or probably reflection if classgen doesn't work for whatever reason
ah
but that means it's pretty much as fast as normal DI
ok so no real overhead then
Monster Mango Juice
what does Guice do
dependency injection framework
BM your turn
DEPENDENCY INJECTION
It's for drinking
it uses annots to bind instances when creating objects sort of
Dependency Injection
Dependency Injection is a way of providing objects with the objects they need ("dependencies"). This is usually done with a constructor, but can also be done for individual methods
Read more here: https://en.m.wikipedia.org/wiki/Dependency_injection
Dependency Injection in Java:
https://paste.helpch.at/yijawupoju.java
Dependency Injection in Kotlin:
https://paste.helpch.at/esogakutod.kt
Imagine functional dependency injection but classes ๐
Guice reduces the boilerplate
what
functional DI just doesn't even work I swear
ofc it does
example of guice usage?
public class MessageLogger implements MethodInterceptor {
@Inject
Logger logger;
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
Object[] objectArray = invocation.getArguments();
for (Object object : objectArray) {
logger.info("Sending message: " + object.toString());
}
return invocation.proceed();
}
}
just googled it
but ye
what is dat
an example usage of guice like u asked
when does logger get initialized
property injection ๐ฅถ
with a module
Here is some example from 
https://github.com/PiggyPiglet/Framework/blob/master/core/src/main/java/me/piggypiglet/framework/commands/CommandHandlers.java#L43
@Singleton
dont confuse with static singleton
anyone wanna make me a plugin
guice uses reflection for the most part

LinkedTreeMaps don't use reference equality and KeyImpl has a correct equals override that should compare properly so wtf is going on there
Well one thing is wrong on your side
what
either hashCode or equals are broken
Key is not mine btw
As far as I know it's entirely classgen as of the latest version, and classgen has been used in some places since 4.something
wait
wait a minute
will different string instances produce different equals and hash code results?
actually that shouldn't matter in my case
omg what
https://i.imgur.com/D9bpCYp.png Gson you bastard
if I ask for a Key, you're meant to give me a fucking Key, not a string
and there is a registered type adapter for that object as well
why isn't Gson converting that
I think the time has come to try and get someone to help re-code this project.
not sure why I'm even using keys here tbh but /shrug
I need it to convert keys in other places though
someone please explain though why tf Gson isn't converting that
Where's the best place to get a price for something? (Coding work)
ยฏ_(ใ)_/ยฏ
surely Gson should know that if I ask for a Map<Key, RegistryEntry> then I want it to turn the strings into Keys
ah maybe I need to use this TypeToken thingy
๐
yep, that worked
okay got a bit of a problem here
basically, I want to deserialize JSON into a Map<Key, RegistryEntry>, which works fine at the top-level since I can use a type token, however RegistryEntry contains an inner Map<Key, RegistryIdHolder>, which seems to cause issues
would it be best to just define a custom deserializer?
d;gson gsonbuilder#registerTypeAdapter
public GsonBuilder registerTypeAdapter(java.lang.reflect.Typeย type, java.lang.Objectย typeAdapter)```
Configures Gson for custom serialization or deserialization. This method combines the registration of an TypeAdapter, InstanceCreator, JsonSerializer, and a JsonDeserializer. It is best used when a single object typeAdapter implements all the required interfaces for custom serialization with Gson. If a type adapter was previously registered for the specified type, it is overwritten.
This registers the type specified and no other types: you must manually register related types! For example, applications registering boolean.class should also register Boolean.class.
a reference to this GsonBuilder object to fulfill the "Builder" pattern
typeAdapter - This object must implement at least one of the TypeAdapter, InstanceCreator, JsonSerializer, and a JsonDeserializer interfaces.
type - the type definition for the type adapter being registered
alright
.registerTypeAdapter(new TypeToken<Discount.DiscountType>() {}.getType(), new Discount.DiscountTypeDeserializer())
public static class DiscountTypeDeserializer implements JsonDeserializer<DiscountType> {
@Override
public DiscountType deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
return DiscountType.valueOf(json.getAsString().toUpperCase());
}
}```
This is what I have
ah
https://i.imgur.com/a8aRrM4.png not surprised Gson can't deserialize JSON to that properly lol
but guess what library could deserialize that with only a @Serializable annotation
generics go brrrr
what would even be the best way to deserialize that? lol
just ```kotlin
json as JsonObject
val properties = context.deserialize<Map<String, List<String>>>(json.get("properties"), object : TypeToken<Map<String, List<String>>>() {}.type)
val states = context.deserialize<List<RegistryBlockState>>(json.get("states"), object : TypeToken<List<RegistryBlockState>>() {}.type)
jesus christ wtf is that mess
Gson best JSON library my fucking ass
idk bout you but I prefer to keep my TypeToken/Type in static final fields
Really helps cleaning things up
ah yeah, might be a good idea
btw does gson allow you to make a custom serializable/deserializable method
like bukkit
I'm using JsonDeserializer<T> lol
That's kinda deprecated iirc
Kinda but not really
Or that TypeAdapters are preferred, I don't quite remember
doesn't using TypeAdapter mean I have to write both a serialization and deserialization method though?
let me copy and paste
? Wdym?
I need to override both write and read
Example of custom serializer/deserializer: https://paste.helpch.at/apexudadiq.rb
and creating a gson using it KT val gson: Gson = GsonBuilder() .registerTypeAdapter(Location::class.java, BlockLocationAdapter()) .create()
๐ฎ
when you can just use gson.toJson(yourBlockLocation) and gson.fromJson(yourSerializedBlockLocation, Location::class.java) and it just works
btw you can create literally any adapter for any type/combined types you want, it's specially useful if you want to handle the serialization/deserialization process or store the data in a different way
with Kotlin serialization, it can auto-generate the serializers at compile time for you
and you can just use Json.encodeToString
yeah, but that requires that you own all the implemented code, which in your case (Krypton) you own, but when working with other's implementations you have to make your own custom Adapters to handle the cases
true
and one thing I don't miss is custom serializers ๐ฅฒ
they actually suck ass
well, bukkit location serializer actually serialize the world by name, lol
I hate that so much
right, finally fucking fixed my palette lol
240 files changed, 2542 insertions(+), 2590 deletions(-) ๐ฅฒ
I've done like 3 things in this
- moved API package to
org.kryptonmc.apiinstead oforg.kryptonmc.krypton.api - switched to Configurate
- switched to Gson
https://i.imgur.com/O69EKGP.png lol I restart this server a lot
I may or may not be writing this entirely from my Windows partition
like MineKraft is the folder that Krypton is in
do you need help
it used to be called MineKraft lol
I cbfa to move it in case I want to go back to Windows
why would you want to do that
thanks
we've had that in there since it was called MineKraft lol
wat
kinda tempted soon to stabilise the API and release 1.0
You groovy peasants wouldn't understand
โน๏ธ
;-;
๐
stack masterrace
(context: stack is the de-factor haskell build tool and haskell is a good language! :D)
source: trust me bro
@static zealot just merged ur PR from 10 days ago, lol
cant think of a better way to do it myself
The Zoom Chat in my live lectures is about as bad as #dev-general now
today in software engineering it was exactly this
๐ฅฒ
let me guess they think "java is good" ๐
no
most people who write in the chat during lectures are annoying know-it-alls
unironic "i use arch btw" on crack
yikes
today one was bashing c# for not being cross platform
"unlike C"
that was really funny to me
I hate that Zoom doesn't let you turn off chat
you just want to watch the lecture but at the bottom the next message about how bad windows is pops up
why do I still get baited by this website
๐ฅด
Caused by: java.lang.UnsupportedClassVersionError: org/kryptonmc/api/AbilitiesTests has been compiled by a more recent version of the Java Runtime (class file version 60.0), this version of the Java Runtime only recognizes class file versions up to 55.0 anyone know how to fix one of these for tests?
Like once and for all? I don't think so
tried gradle clean test but that did nothing
What's JAVA_HOME set to
yea u can trust the specific domain, but it becomes annoying when uve gotta do it for every new link u visit
ah that'll likely be it, lemme check
ah actually that would make sense
I set my Gradle JVM manually to 11 because I had something that needed 11 because that was it's only variant's version
time to set that back to project SDK
I forgot since I've only just bumped the minimum Java version in Krypton to 16
man, archlinux-java is so useful
it's no sdkman
man, someone teach me how to do integration testing properly lol
what would be the ideal way of setting mysql credentials for a docker image? environment variables?
doing it properly sounds like a good idea
you are all useless
Sir this is #dev-general
NOT configuration help
maybe you should read the page for the container
it tells you that you should use environment variables
or at least, the MariaDB one does
that's not really what i mean
i mean if i have a docker image that needs to connect to a database
no matter where that database is hosted
environment variables
i guess environment variables are the only option yeah
shame
this command is gonna get long
docker run --name devdenbot --env SENTRY_DSN=${{ secrets.SENTRY_DSN }} --env DDB_TOKEN=${{ secrets.DDB_TOKEN }} --mount source=devden,target=/var/data -d --restart unless-stopped ghcr.io/thedeveloperden/devdenbot it's already long, 5+ more variables are gonna be pain ๐ฉ
cough docker compose cough
cant use compose i dont think, i am pulling from a registry
all i get is the image
and i want to keep this simple, cba to clone and then docker-compose up or whatever
fair
you can use compose if you're pulling from a registry
you can just set image: whatever/lol
doesn't have to build anything local
what I mean is, my current CI process just consists of:
- on github, build with gradle, make docker image, push to registry
- on vps, pull from registry, run image
how can i integrate compose into that?
oh wait
yeah
i see
AbstractIntOrStringEnumSerializer not sure if this is shameful or not lol
gonna use it to abstract away the common logic between the gamemode and difficulty serializers
since a gamemode/difficulty can either be represented by its (case-insensitive) name or its ordinal
polymorphism?
wdym?
monomorphism
that class should probably have 2 subclasses, for Int/String respectively
nah I cbfa to do that lol
yeah isnt OO about messaging (polymorphism) rather than inheritance idk saw some dud talking about it
Bimorphism ๐
OO is about as many layers of abstraction as possible and getters
I donโt know if youโre trolling like usual
the latter is definitely trolling
Object orientation is all about writing as many getters and setters as possible
as many layers of abstraction as possible isn't that far fetched though for OOP lol
The more getters and setters, the object oriented-er it gets
hilarious
funniest shit I've ever seen
if (json !is JsonPrimitive) throw JsonParseException("Cannot deserialize this as it isn't a string or integer!")
if (json.isNumber) return fromInt(json.asInt) ?: throw JsonParseException("Cannot parse ${json.asInt}!")
if (json.isString) {
val string = json.asString
if (string.toIntOrNull() != null) return fromInt(string.toInt()) ?: throw JsonParseException("Cannot parse $string!")
return fromString(json.asString.uppercase())
}
throw JsonParseException("Unable to parse $json!")
```jesus christ that's lenient
definitely some r/programmingcirclejerk going on here
seems legit
hhhhhhhhhhhhhhhhhh
apparently not
have u tried being a player
This means that youโre probably a console
๐ ๐ ๐
nah bro you're such a player ;)
someone teach me integration testing pls
no
ughghghghghg u cant send photos
consoles dont have pronouns
consoles have transcended the human body
they have connouns
"The Console"
it
yup, exactly what I wanted lol
that's snakeyaml for ya
slightly verbose

property displayName (Kotlin reflection is not available) -.-
hhhhhhhhhhhhhhhh
this came out of nowhere
kotlin bad
even I disagree on that
makes no sense ๐ต
and I am like a pro java user
hey why'd you change your name 
I feel like lisp is somewhat ancient
do u know the concept of async and sync first and foremost?
okay so first you must understand async can in theory never happen when we only have 1 process/thread
then we're practically doing it synced
for instance a single queue
only one customer can be handled atm
Let that single queue represent thread A. Now if we want to introduce asynchronous then we might have another queue which will represent thread B. Now when we have 2 queues you can say that we can handle 2 customers at the same time right?
So now if we want to introduce the term asynchronous properly we could say that thread B is working asynchronously with respect to thread A as it never has to depend or care what happens in thread A. We could go ahead and say the very same for thread A (thread A is working asynchronously with respect to thread B).
but it had my name in it ๐ฆ
though Concool is pretty cool
awe yeah
also p sure you can have async on one thread
like javascript
it just won't be blocking that thread while waiting
that would be the difference between concurrency and parallelism
parallelism is over cpus right where two tasks can happen at the very same time and concurrency is when the two tasks happen seemingly at the same time but in reality the thread first works on the first task then work some on the second task and so on. Or no?
Anyways in queue A customer Bob ordered a very big package of food. Now let's say we only have our single queue A. In that case all the customers after queue A would have to wait for the customer Bob to get his food served. If we instead had the queue B, we could redirect customers to queue B while queue A is waiting for the finishing order. @dense dew Idk might not be the best example but yeah anyone feel free to give criticism.
yeah that's essentially my understanding, parallelism is two things being worked on in parallel at the exact same time, and concurrency is when it swaps really fast back and forth between doing two things or more so it seems that they're done concurrently
I would enhance the understanding of concurrency as code where you don't have a linear flow of time or where things generally seem like they're happening at the same time, whether that is due to scheduling or not
for example async/await doesn't have to be parallel
and often isn't
Hi everyone. I don't know where to ask, so I'll write here.
Question to the people who have a server on Paper 1.16.5... Has anyone encountered the problem of deleting vanilla teams (/team add <name>)? I create a new team and after restarting the server, it disappears (it's not about plugins, I removed everything and the problem did not disappear)! I have this problem on all my servers... ๐ฆ
That sounds like your server can't save the world file. Are you shutting down the server gracefully?
Sorry, I didn't quite understand your question (I'm not a native English speaker). Did you mean, is it normal to disable/reboot my server?
By the way, there are no problems with the scorebord. When creating a scorebord and restarting the server, everything is saved. This means that there are no problems with saving the world's data.
Lul
Oh no
@prisma wave i burnt privatemines. I am loosing hope :(
Doesnโt seem like a genius to me.
Also how do you have 76 pings and not go crazy?
I can help
Oh fish
Idk
Never payed attention to it
Can ya 
If itโs java sure
Yeah it's java
What u need help with
@obtuse gale processResources
oh yeah shoulda mentioned the folder I want to zip is outside of the resources folder, I supposed the task is suitable still?
Well, it has the fun game of how many npes can it throw all the time :/ i think it happens when upgrading the mine only (I think) I'm loosing hope with it so it could come from elsewhere also.
I think so
Yo, this might be a big ask but if anyone who is able to can test my plugin I would greatly appreciate it. I believe in some countries/locations, it is unable to access my server to retrieve the resource pack. If you install the plugin with directions on the page and dm whether u get an error about โinvalid pack idโ and your general location, country (city if possible) that would be a massive help
I can take a look tmrw
Alright thanks
Json
So, this is stupid
call.receive<PushWebhook>() // error: Unexpected JSON token at offset 0: Expected '[, kind: LIST'
val json = call.receive<String>()
decodeFromString<PushWebhook>(json) // no error, correct mapped

json!
alright, im kinda shitty at making regexes but someone has to help me out here: Suppose i got this url: https://open.spotify.com/playlist/37i9dQZF1DWXRqgorJj26U?si=d8c8418491ee4416
I want to extract the 37i9dQZF1DWXRqgorJj26U part right after playlist/. Does anyone know the proper regex for this?
No
๐ฅฒ
I would just be weird and split by โ/โ then take the last section and split by โ?โ And take the first section lmao
no no no i dont wanna use split
i wanna use a regex (Pattern) + Matcher for this
cause obviously it matches a specific pattern always
I mean just group what's between playlist/ and ??
Can't you make it a URL and get the parameters? Should return that
how the hell do I get the resources folder as a File
in gradle
all I can find returns the children files in some way or another
Isn't there a File#getParentFile() or something?
yes that exists but the resources folder will be empty to begin with
so I can't get a file and then get the parent file
Oh
I mean sure I can do src/main/resources but that's hardcoded and yucky
new File(getClass().getResource("/something/resources").getFile())maybe?
I used this for JavaFX
yoooooooooo it worked
Why?
Why did it work
trying to zip files from some folder in the gradle script and put the zip in the resources folder
why? because I did it properly I presume :^)
Something I can't do 
Anyone here experienced with github actions?
What
I've got mine almost entirely working, except it uploads the file zipped instead of by itself
๐ฅถ
Whats bad about them? ._.
the face was not for actions, it was for me

As opposed to zipping them, or manually using its name
I might actually give up soon
On?
Where do i start
ยป Give the helpers some details
ยป Ask suitable questions
ยป Be polite
ยป Wait
;p
Requested by: Fredthedoggy
kek
I gotta somehow fix pmines because it's an essential part of my upcoming project, I gotta code a enchant system somehow, I gotta write a ranks system etc fucks sake why do i still play this game
It was a joke lol
I just realised if I get 250 more members in my discord server, I can apply for discord open source, since one of the main projects in it is os :p
Then I get my pfp on discord's website
No
hi piggy
discord open source is not easy to get
we applied for open source on may 2019
we got accepted in september 2020
Damn
and we had a lot more than 1000 members in 2019
Well thats because they're slow to read them
Yup
I can name somewhere else what does this :

Wait.... Did that break for anyone else?
You typed a colon
I'm actually mad, as 3 days after i applied they reviewed mine, but i used the wrong link, so they said add a new one. And now it's been months
(This is for bentobox)
even once they accept you it takes a while to actually get the perks
iirc we had to email them a couple times before we could get them
Ok ty
Well I really want to apply for partnership on my server, but apparently they just don't feel like telling me the server's stats.
Its like 7 weeks old, and all the data just says "nothing to show"
partnership lol
Idk, it seems cool
I gotta retractor pmines mine but its a pain to sort out because there's 1 small bug and it is argh
Ah
less of a pain now
proprietary info

Barry's executive and piggy had a meeting
They discussed it, and barry's executive gave barry messages to send
Then updated it in barry's file folders
yeah probably the worst bunch we've had so far
Wait a second-
gonna ban them all once their trial is over
Yeah, that bm guy does nothing
i have PROOF that bm ABUSES perms
That fred guy is promising though
Keeps trying to make people use shit languages 
Nah BM abuses perms :p
He did the paste thing
yes
dkim they have like barely any more perms than u guys
they bypass barry
A member of staff has requested I move your message to a paste,
Most likely beacause it contains a config/error/code snippet.
only like 2 things
spam, mass mention, caps, etc
Only for the past 2-3 days
what is <@&565817345143078912>
Piggy why do the channels in the other discord get closed?
what
Ping me in #general-plugins
I wanna look at my history of being denied 
Probably 5 times?
Yeah must've been 6 then
Piggy have you used GH-actions?
no
Piggy, you wanna swap bm with a better British person? ;)
no
Wtf rudd
never had an issue with jenkins
I'm better than bm
don't see a need to switch
I actually fix code
I don't convince everyone to use bad languages
Exactly
Demote him and swap him out for someone better (me)
Who spends the most time on HC?? Me or bm?? (obviously me)
I do work tho
๐ฅฒ
no, me
Cool >> Work
Both of us
yes
Piggy, does @prisma wave boost? No! Do I? Yes!
Well you also need to pass the physical test to be considered.
Stength
Agility
Every language is "bad" if you don't know it, i mean more than half people here hated Kotlin before trying
haskell bad
Python bad
python bad
javascript bad
i tried both haskell and python
No, js is good ๐ฅฒ
Python good
Wrong
@obtuse gale have you used gh actions? :p
non
Noones used it :(
JS is a lot less bad than PHP let me tell you
python is an abomination
oh yes
did you see the thing where one of the lead python bois was like "we want to make python twice as fast!" and the top comment was "that's still like 50x slower than JS"
idec about the speed
wait, does python have high order functions?
just bad language
truth
i mean, it's really easy for writing shitty little scripts
certainly a lot nicer and easier to get into than like bash or powershell
it has a terseness problem like Haskell
that word just confuses me everytime I see it
it condenses a lot of information into a small amount of symbols
for the untrained novice, it is very hard to decipher what a long bash script will do
well what VM are you using to run it
kvm
also you are running two operating systems now
so that might do it
oh dang KVM kinda cool
kotlin virtual machine ๐
when I first set this up I installed vmware
and then I had an epiphany
I'm not on windows anymore
what the fuck am I doing installing vmware
kvm here i come
haha
a lot of places use VMWare hypervisors so I'm used to em
but FOSS is always great
there's probably a reason all these vps providers use kvm
I disagree
im sure vmware hypervisor is just as good if not better than kvm
I'd say the primary factor is because it's the best tool for the job
hosts have no issue with shelling out money for software if it's better than the foss alternatives
e.g. cpanel & whmcs
i mean it's probably quite good in its own right
but being free certainly helps keep the cost down
and there must be a reason why so many places use VMWare
windows
VMWare hypervisor does every OS
yes but kvm doesn't
that in kotlin ```kt
val numbers = listOf(...)
val squared = numbers.map { it * it } ```
kotlin still got better syntax imo
if only we had collection literals ๐ฅฒ
and tuples
man kotlin could be so much better
Triple?
tuple...
what is a collection literal?
Tuple is not a Pair?
instead of listOf(5, 5, 5) it could just be {5, 5, 5}
You forgot .map
a tuple is any data type that can hold multiple different types of data (I think)
it's primarily in python, which is one of the only good things python brought this world
Dart does have that
okay
who the fuck uses dart
^
idk but Dart have mixins and tuples
what a strange pairing
kotlin could steal those
not knowing what collection literals and tuples are -> but also knowing Dart
I watched a video about Mixins to know them better and ended up in a Dart tutorial ๐ฅฒ
ah haha
@obtuse gale do u know if they were planning on adding "vararg generics" to java?
ik c++ has something like it
you were talking about it a while ago
yeah and it's pog
what are they actually called
variadic templates
oh like a function can take a tuple or something?
right
an n-tuple*
yeah it lets you have that
now that's cool
man remember how we're gonna get to use Java 16 stuff soon
im still really hyped
so like std::tuple<int, std::string, long, whatever> tuple = { 1, "asd", 123, ... }
wdym
in theory you wouldn't even need the <...>
wdym wdym
small price to pay for modernization
HUGE PRICE
we are not going to use java 16 stuff soon, will we?
literally bigger than ur mum
i've never even heard of it until now, can't be that bad
do you live under a rock lmao
I wish it was added to java though, that's like next level awesome and alongside valhalla it would destroy the need for things like BiConsumer, BiFunction, etc, just a single Function<R, T...> or something
not me, but 60% of the world do
hahahahaha yeeeeees the normies will have to update
what does that mean lmao
and yeah it's real nice
goes a small step of the way towards fixing Java's biggest problem imo
javascript
Java 8 -> 60% ๐คข
More worried about 7% on Java 7 or older
let them burn, Matt, let them burn
@cinder flare this is what dcevm allows me to do
indeed I can write just std::tuple tuple = { 123, "ass", 456.0, std::pair{ 0, 1 } };, that would be a tuple of an int, a string, a double and a pair of two int
that type inference is pog
isn't that hotspot
Huh, Go, Rust, Kotlin all going down a bit in this quarter of the year, last year they were all going up
(most popular languages according to github)
"Huh"? What's that language? Never heard it before ๐คก
Lmao
hotspot is a jvm
2020 for comparison
it makes me cry that Python went up 3%
but i thought you wrote a whole guide on that or whatever
@prisma wave ๐
Java: 11.6%, Kotlin: 0.6% ๐ฅฒ
oh so in like a few months when java 17 comes out we'll be set?
Matt go sleep
๐ฉ
ah yes
Haskell shall grow!!
PHP needs to be extinct
Yas!
And ikr, thing is still in the top 10 somehow
Was 13 at the end of last year
๐ฌ
Though it's still in the beginning
The pull request is basically just JS lol
That'd be awesome
๐
Yas it's awesome
oh now that you mention that i remember visual studio having something similar
"snippets" or something
Yeah, you can play with the theme for VS
does vs excel in anything jetbrains doesn't
well i haven't used vs in a good number of years so i couldn't really tell
all i remember is that setting up a cpp project, with external libraries, linking and a shit load of other options was unbelievably easy
Not much I think, i prefer jb ides over vs
ms should just abandon vs
lol
visual studios suppourts more stuff than jb does I think
vs is still widely used by a huge range of people. Even Udemy programming courses use Vs. Well the ones I have seen do
yeah it's the free ide of choice for many languages still
? yugi
I didnt know jb supported vb
Seems rider has suppourt for it
for unity, rider's debugger is far superior to vs
Yea ik, vb seemed obscure
Do many people even use it anymore?
For actual work or just playing around?
both i think
weird, I thought it was dead
Yeah after rider was released there is no more reason for vs for me
I remember a few years ago I tried using IJ with Unity and it was horrible and i hated vs
i don't understand how u like game dev yugi
Yea vs debugger doesnt have a proper "evaluator", you'll have to hack around the watcher to get similar results
?
game dev is kinda fun
Yeah i agree i like it quite a lot
Huh?
I always found it mind numbingly boring
I guess it's because ever since i was like 12 i wanted to make games
oh lmao
Same lol
I thought you were talking about jumping off a cliff xDD
I mean, everyone need not like the same things as others, I got into programming initially because of games and am still interested
I know
Tbh that too
I just don't get the appeal with game dev
I really enjoy game design
and I got into programming because of games too
What part do you think as bad?
For me, I just don't like the designing aspect, cos I cant design anything to look half decent at all xD
especially around the math
although ig these game engines handle most of that for you
For me it's about having a vision of a world or something like that and making it a reality, it's like making a dream something playable
Every small step you achieve is just awesome
Ah, I like doing most of that
omega I think he meant more like story
^
Story, player engagement... ect
Didnt know there was such a separate section till our course an year ago, but its really fun
altho we only had like 3 classes for it in a whole month
I'm the one that would try to make an engine instead of making a game ๐
Id love both
There is a yt i watch that is making an engine in c++ it actually seems quite fun
Yea from cherno
Yas!
i don't really watch programming youtubers
Hes actually pretty nice
yeah the dude explains pretty well actually
Patreon โบ https://patreon.com/thecherno
Instagram โบ https://instagram.com/thecherno
Twitter โบ https://twitter.com/thecherno
Discord โบ https://thecherno.com/discord
Series playlist โบ https://thecherno.com/engine
Gear I use:
BEST laptop for programming! โบ http://geni.us/pakTES
My FAVOURITE keyboard for programming! โบ http://ge...
If you want to watch one Piggy, I'd really recommend Sebastian Lague
no I don't watch them by choice
A small display of some of the surprisingly intricate patterns and behaviours that can arise from relatively simple rules. More information about each of the simulations below.
These simulations were made in Unity, and coded with C# and HLSL. The code for the first two simulations is currently in early access to patrons of the channel. If you'd...
coding is my main hobby
I do it all the time
well I used to
and I will eventually again when school is over
at the end of the day I don't want to go onto youtube, and watch more coding
I just wanna watch some stupid science shit
or explosions
or guns
You dont watch coding, you learn concepts from most
isn't that the one with the robot voiceover
Nile Red for the explosions
yeah lol
Have you watched veretasium piggy/
Youtube ruined his potash video ๐
the only programmer I watch is tom scott, but I don't even consider him a programmer seeing as the only language I've ever heard him mention is javascript
What about ben awad?
never heard of them
๐
Ben awad is a meme, i love it
๐
dogehouse got stormed by literally every company
Discord started stages from his idea
twitch is starting audio rooms too I think
Let's get Right to Repair passed! https://gofund.me/1cba2545
I sound shrill, this is why I usually use that pocket shotgun microphone with my phone, because the microphone built into the LG G8 is unusably shrill garbage. However, my cat is adorable. :)
I used to watch Brackeys but he stopped
Yea
Oh boy louis rossman
Speaking of which i need to donate to the right to repair thingy
pog
because i'm por
what's the money actually being used for
hookers
Here it explains https://www.gofundme.com/f/lets-get-right-to-repair-passed?utm_campaign=p_cp_url&utm_medium=os&utm_source=customer
btw I'm sure some of you know this channel already but it's pretty awesome too https://www.youtube.com/c/NewMind
For most of us, our average day is an experience unlike any other in human history. The world we interact with and engage with is a culmination of millennia of curiosity, probing and discovery. The story of how we got here, the layers of seeking and exploration; that are too often displaced as a triviality of life, is a massive part of the human...
because I'm struggling to see how what I assume is a petition, needs donations
My audience has asked why we do not do a direct ballot initiative; it worked for the car people, right? It did - but it also cost them about 25 million dollars. This is a bit out of budget. The reason we have not done a ballot initiative is because they are very expensive!
Something American probably
right so
you want to donate for a country to introduce a law
but you're not even in that country
Good changes in the US tend to be fastly implemented in the EU
For example the EU is requiring Apple to use USBC, which will likely mean they'll do it in the US and Australia, etc, as well
So even if it's not direct it still has a big effect
This, is ben awad ๐
awad
add an m infront
replace the first a with an o
replace the w with an n
and you have monad
coincidence
i think not
They wouldn't need Piggy, for example if they need to do usbc in the EU likely the entire model will be usbc, it'd be worse for them to do the lighting port for other countries, so they'd adopt it everywhere
charger thing is stupid
where they don't include a charger in the box
completely irrelevant to the convo, I just remembered it
we'll see matt
Yup "for the environment" but yet costs just as much as the one with a charger
Why?
same reason weed is illegal
because the government is silly at times
lol
I don't think either nuclear power or weed is toxic
Probably because of money from coal companies, etc
On damage nuclear power can lead to a toxic environment
well sure
you're advanced enough for that ๐