Chat:World/2021-02-13
JLukeSkywalker: make it fun, host private clashes where everyone is lagging
JLukeSkywalker: see who can struggle the best
jjhiggz: I want to get into a functional programming languages, does anybody have a reccomendation on which one
jjhiggz: I'd like to do one with strong typing
Andriamanitra: depends on what your goal is
Andriamanitra: if you want to learn functional concepts haskell is probably a good choice
Andriamanitra: if you actually want to get shit done stay the fuck away from haskell and go with scala or a lisp (like clojure)
jjhiggz: What about if I want an inbetween of being useful, and just forcing me to be comfortable with an FP paradigm
JLukeSkywalker: if you didnt require the hard typing, i would say just use python functionally
jjhiggz: ok, I was thinking scala
jjhiggz: I mean I feel like I get alot of FP concepts, I do Javascript all the time. But when I tlook at scala or haskell code its so foreign looking
Andriamanitra: at least with haskell a big part of it is that the syntax is weird even for simple things
jjhiggz: interesting, My gut is leaning me towards Scala
jjhiggz: I'm ok with strongly typed languages but I could stand some practice at that as well., so maybe a double whammy?
JLukeSkywalker: you can treat any language as a typed language
JLukeSkywalker: you shouldnt really be changing variable types anyway even if you can
Andriamanitra: it's easy to overlook things when the language doesn't have your back
JLukeSkywalker: also wait, hang on, isnt a functional language required to have typed variables?
JLukeSkywalker: every variable is a constant
Andriamanitra: i believe you could have a functional language without a type system in theory, not sure if such a language exists though :thinking:
JLukeSkywalker: the typing is irrelevant, they are all constants
jjhiggz: interesting
jjhiggz: I didn't realize that was a factor
Andriamanitra: immutability and typing are separate concepts
jjhiggz: couldn't you be like "this function has to take in a string"
jjhiggz: and that would have nothing to do with whether or not its fp or oop or imperative
JLukeSkywalker: they are separate concepts, but with immutability i think you dont really need typing
Andriamanitra: i'm not sure i follow your logic there
jjhiggz: interesting, it seems like SCALA allows you to write mutable things, although I know that kind of breaks FP paradigm
jjhiggz: I'm not sure that I follow either
JLukeSkywalker: if i make an int in an untyped language, and that value will never change, why do i need the language to tell me that its an int
jjhiggz: well if you want to use that function somewhere else in your code, wouldn't you want it to not work on say, a string
Andriamanitra: if the language is untyped it's not an int in the first place, int is a concept that only exists in typed languages
jjhiggz: or a float
JLukeSkywalker: if you are writing function libraries in an untyped language you should be checking inputs and raising errors anyway
Andriamanitra: the language may use the type to pick the right version of a function for example
jjhiggz: how do you check the inputs if there is no typing system?
jjhiggz: What would you be checking for exactly
JLukeSkywalker: the language still assigns them a type
JLukeSkywalker: just at run-time
Andriamanitra: i guess you mean dynamically typed rather than untyped
jjhiggz: ^
jjhiggz: ^
jjhiggz: but wait, even then, if you're checking the type of the thing going in anyways and raising errors if it isn't correct, then at that point aren't you just creating more work for yourself than just using a statically typed language?
JLukeSkywalker: depending on the application, doing that to use that language is sometimes still worth it
JLukeSkywalker: also even untyped languages like javascript still have ways of getting a type
Andriamanitra: if you're just replicating all the type checks a statically typed language would be doing anyway yes, but that's not how you usually handle errors in say javascript
Andriamanitra: javascript isn't untyped, it's dynamically and weakly typed
jjhiggz: I know in JS there is "typeof", but I've been starting to do more typescript rather than just check it myself
jjhiggz: also just to mantain some level of humility, thank y'all both so much for this discussion. Seem's like you both are legendary coders, at least according to codinGame
JLukeSkywalker: I was just saying that looking for a functional programming language is fine, but looking for one that is hard typed really doesnt do much to help, as it is or should be very easy to not make type errors while coding
jjhiggz: That definitely does make sense though, alot
JLukeSkywalker: i guess what is your purpose for wanting a typed language
jjhiggz: Well in general I was told that living in a typed mindset for a while will make you a much better programmer when you come out the other end
jjhiggz: I personally have been programming for a little over a year now, and feel really comfortable with Javascript and am ready to step out of the comfort zone, and explore alot
JLukeSkywalker: when programming in non-hard-typed languages, did you change variables types as you went?
Andriamanitra: i definitely agree with that, it's good to get a feel for a strongly and statically typed language even if that's not what you end up using most of the time
jjhiggz: I try not to
jjhiggz: But for example I think that JS might be enforcing some bad habits
jjhiggz: particularly in algos where I am defining edge conditions
jjhiggz: I get the sense that I am checking for not null too often, and alot of times I can benefit from restructuring algos
jjhiggz: And also I tried out flutter for a little while, which is based in dart and is very oop, and I was struggling alot with types, and OOP concepts in general. I'm definitely not ditching OOP, I just figure theres a much more solid chance of me getting a job soon where I'll be doing OOP at work, and I figured to learn straight FP I'd probably have to make it more of a me thing and less of a work thing
JLukeSkywalker: programming functionally will put you in the correct mindset pretty much whichever language you do it in, the type of language will just determine how much the compiler/interpreter enforces it
JLukeSkywalker: i use python functionally for multithreading purposes, and being able to use some non-functional bits of script in safe areas is sometimes beneficial
jjhiggz: Do use applicatives alot in python, map, reduce, filter, and stuff like that?
jjhiggz: I kind of hate the syntax in Python haha
JLukeSkywalker: i do on here
jjhiggz: not in the real world as much?
JLukeSkywalker: control systems programmer, so whole different ballpark
JLukeSkywalker: programming communication and hardware
jjhiggz: I've got a bachelors in Chemical Engineering, I did a little bit of that stuff in my program
jjhiggz: But I think college does a pretty garbage job in general of teaching people how to program. I'm way better now after a 15 week bootcamp than I ever was when I actually was taking process controls classes
Andriamanitra: python syntax is certainly not the best for lambdas :D i've been spoiled by ruby/julia/crystal all of which have excellent syntactical support
jjhiggz: I like Pythons lambdas more than ruby's do end blocks though haha
JLukeSkywalker: yeah, bootcamps are decent. I learned like 5-6 languages before college, and they only offered courses for languages I already knew
JLukeSkywalker: except haskell
JLukeSkywalker: that course was nuts
jjhiggz: Is haskell mainly an academic language
jjhiggz: I've heard that somewhere
JLukeSkywalker: I havnt used it for anything
Andriamanitra: i'd say so
jjhiggz: makes sense
Andriamanitra: i'm sure there are some real world applications made with haskell but they're few and far between
jjhiggz: I actually have to go to bed now, I've got to wake up in 4 hours and hike a mountain in sub zero temperatures and try my best not to die
JLukeSkywalker: looks like FB and GitHub use it, thats all i could find with a quick search
JLukeSkywalker: lol, GL
jjhiggz: Thanks y'all so much for the conversation
Andriamanitra: the way i see it it's kind of a breeding ground for new features that eventually make their way into other languages (things like type inference, pattern matching)
jjhiggz: I gotta hang out on here more often
jjhiggz: interesting
jjhiggz: Well peace! Have a great night, or day I'm not sure where y'all are at
JLukeSkywalker: 1am here, US
JLukeSkywalker: i gotta sleep too
JLukeSkywalker: been working on mean max code
jacek: happy Caturday
GeekGitz: in Chuck Norris, C in binary is 1000011 when really C in binary is 01000011
Severnaya: hmm, i'm trying to do the quest map, and i've completed like 5 Loops puzzles, but it's only registering 2/3 completed =\
geriatric1927: @GeekGitz Remove the leading zeros
GeekGitz: @geriatric1927 Thanks. :relaxed:
MSmits: anyone else have problems getting into multis?
jacek: it works for meh
MSmits: jacek did you try and enter a new multi?
MSmits: or just a page that was already in the IDE
MSmits: because I can't open new IDE's
MSmits: it hangs for a while and then goes to codingame.com/start
MSmits: tried two different machines
MSmits: will try a different browser, maybe that helps
MSmits: nope it doesn't, and a cg bench run wont work either
MSmits: it's network status 504 btw
jacek: what new multi
jacek: for example this https://www.codingame.com/ide/puzzle/paper-soccer works for me
struct: works for me
MSmits: i mean a new instance of the IDE
MSmits: even changed my password. Can't get into any IDEs :(
struct: did you try on incognito?
struct: MSmits
MSmits: how would i do that?
MSmits: oh it's an option in chrome right
struct: do you use chrome?
struct: ctrl shift N
MSmits: trying now
MSmits: doesnt seem to work. It also didn't work through cg benchmark, so I guess that makes sense
MSmits: it's really something to do with my account I think. However strange that is
struct: Could it be ISP related though?
MSmits: hmm I guess it could, but why would I not have an issue with the rest of the page?
struct: Oh right :thinking:
MSmits: maybe my ISP thinks that part of the site is dangerous?
MSmits: it doesnt say so but...
struct: I guess you can make a new account to test it
MSmits: oh right
MSmits: smart thinkin
issogood: something's going on... it doesn't recognize my achievements for the quest map it seems. maybe needs time or whatever
struct: Maybe issogood, people reported it on discord
MSmits: well i just created a new account and got into IDE's just fine
MSmits: at least I can test my stuff now I guess
MSmits: just have to get to bronze with my new account :P
jacek: shadowban?
MSmits: whats that
jacek: or just normal ban
MSmits: I was thinking .I did use CG bench last night, ran 600 games. Was done when I woke up. Maybe it's a consequence of that?
struct: I have experience on deleting account if you need help
MSmits: no id ont want to delete :P
jacek: shadowban is a ban when you dont notice it. like you could be banned from chat but still write things but no one would see them
struct: 600 games is not that much is it?
MSmits: ah
jacek: but only you would see them
MSmits: no, but if they are testing an anti-cg bench thingy
MSmits: and i was a victim of that... i dunno it's possible
struct: anti-cg-bench :(
struct: I dont use it but I would not agree with it
MSmits: well it could just be a "repeated play" thingy
MSmits: when it blocks you when you tried to play a game too many times
MSmits: not necessarily targeted to cg bench
struct: But blocking access to IDE?
struct: seems harsh
MSmits: might not be intentional
MSmits: it could just be there's a timer that is bugged
MSmits: like, i can't click for 5000 ms and it's actually 5000 years
jacek: no more books for you then
MSmits: the book thing doesn't require cg bench
MSmits: i just need a single lost game each time to counter book someone
MSmits: when i do use cg bench i just use it until a loss appears
MSmits: but i may as well do a submit
MSmits: but i wasnt doing that anyway, i was fitting parameters
MSmits: for uttt
jacek: you cant fit parameters without cg bench?
MSmits: i cant if i want real opponents
MSmits: and I do
derjack: hmm
derjack: lol no transparency on firefox https://i.imgur.com/gM48rJv.png
[CG]Thibaud: I don't think we've released something targeted at CG Bench
MSmits: no i didnt think so either, but is there some block to entering IDE when trying play too many times?
MSmits: otherwise I dont understand why my account would not get into the IDE
[CG]Thibaud: if anything we will lower the nb of matchs we can do in short amount of times
[CG]Thibaud: no
[CG]Thibaud: we updated monaco though
MSmits: hmm
[CG]Thibaud: but it seems you're the only one impacted so far
MSmits: yeah
MSmits: and i made a new account
MSmits: and it works fine
[CG]Thibaud: I was able to reproduce on your account though
derjack: oO
MSmits: ohh, thanks
[CG]Thibaud: so devs will be able to check
MSmits: thats great
MSmits: in the meanwhile i am promoting my new account to uttt bronze so i can test my bot in the IDE.
MSmits: funny how you only need 1 heuristic rule to get into bronze, i thought it was harder
derjack: using alts to mess up with leaderboard - ban
MSmits: lol
MSmits: i wont submit, also pony calling the kettle black :P
struct: They just did it in reverse order
MSmits: did what?
struct: First was ban
struct: Then you made account
MSmits: oh
MSmits: maybe my bot became selfaware and is now using the IDE as a home
MSmits: i did make some improvements
hakansahin: hello for some reason, python string multiplication doesn't work
hakansahin: print(5*".") only prints one "."
derjack: it should work normally
jrke: may be
jrke: print("."*5)
Rocky[KGF]: hii
Rocky[KGF]: i have a probem i make a contrbution that was not submitiong what i do now all validataor or test are correct
Rocky[KGF]: ohh finally it is done
karliso: yeah, I can't join IDE as well. :D
struct: uttt top 3 banned :D
karliso: MSmits did you bench against me? :D
MSmits: top 7 or so, yeah you too
MSmits: doubt that has anything to do with it though :)
karliso: I know. I also did uttt bench.
MasterCoderxD: hi y'all
MSmits: my new solver is so good, i sometimes know 20 plies before the end that karliso won :P
MSmits: this saves server resources, so that's good
struct: not good enough
MSmits: maybe he does a move on ply 4 that beats me. Need moar solve!
struct: When you know its a loss
struct: which move do you make?
MSmits: currently, the most visited one
MSmits: in the hopes the opponent has trouble solving it too and might still make a mistake
MSmits: :thinking:
M0han: feels good to have a 3w streak
MSmits: could be 4
MSmits: or 6
MSmits: :cry:
MSmits: do?
MSmits: that's a pretty general question
MSmits: ahh my job, yeah
M0han: how may years have you been doin this bud
MSmits: physics for 15 years, computer science for almost 2 years
MSmits: i dont do clashes
MSmits: there's many other things you can do on CG
MSmits: currently improving a bot for this game:
MSmits: https://www.codingame.com/multiplayer/bot-programming/tic-tac-toe
MSmits: but there are many other games
ZarthaxX: it's not solely about ml :P
ZarthaxX: you can certainly avoid that in the games of CG
MSmits: ml is pretty rare
MSmits: usually it's things like: minimax, mcts, beamsearch, simulated annealing, genetic algorithms etc.
MSmits: you only find ML on a few relatively simple physics games and board games
MSmits: and then only a few players did this
jrke: The one of the problem with ML on CG is code size which is 100k
MSmits: also CG does not provide ML libraries, nor can you train on the site itself. So you need to do everything locally and then write a program to actually use the NN inside your bot and also fit the weights within 100k characters
ZarthaxX: why do you mention the training part on the site as a problem?
ZarthaxX: i would find it pretty rare to be the opposite
MSmits: i mention it because some people assume you can
ZarthaxX: maybe ppl think there is some kind of persistence through games and your AI learns while it plays more and more online
MSmits: yeah
ZarthaxX: but not the training thing
MSmits: right, either way it's not possible
jrke: when i was new on CG i thought by ML recurse CSB bot gets improved after every online match but nope i was wrong
ZarthaxX: imagine :P
M0han: then he most played bot will be the better one
MSmits: it's worse than that
MSmits: if it worked that way, you could introduce weaknesses in his bot
MSmits: by spam submitting
MSmits: and having it overtrain vs you
MSmits: I would definitely not want the choices of other players change my bot :)
ZarthaxX: you cant really know if it would get weaker
ZarthaxX: maybe it becomes just so general for every scenario that it crushes it without "learning" anything
ZarthaxX: becomes just so general -> adapts to any scenario
ZarthaxX: who knows what could happen honestly :P
reCurse: It's alright, most people have plenty of misconceptions about ML
MadKnight: oh
MadKnight: ok
reCurse: lol if CG ever releases anti-batch I'm out of here
reCurse: That would be the last effing straw
Mr_Twister: Is there a possible delay on quests, achievements and certifications ? I solved the weekly puzzle 12+ hours ago and nothing unlocks.
MadKnight: it bugged
MadKnight: they're working on it
Mr_Twister: cool, thanks
MadKnight: maybe not right now but they sure gotta do it on moday
MadKnight: monday
MadKnight: don't worry about it, they know that it bugged
Mr_Twister: oh no hurry, just wanted to be sure it was known
MadKnight: yea
Mr_Twister: I'm gonna give CodinGame Sync a try, just found that in the FAQ
MadKnight: there's also a thing called "codingame local"
MadKnight: and it's not chrome-only
Mr_Twister: ok, not that Chrome is an issue here
jacek: is cg slow on leaderboards today as well?
C_breeze: lots using it i ithink
Saphine: hello
ERF4N: I got 100% but achievement is 0, why ?
C_breeze: happens! validator cases often stricter
ERF4N: ow right, thanks.
Faisal_Shahzad: hello
YurkovAS: DomiKo congrats with hypersonic!
YurkovAS: i'm afraid to resubmit. do this 2-3 times...
DomiKo: YurkovAS thanks
DomiKo: there was a bug!
YurkovAS: you have a bug in bot (sim)?
DomiKo: in sim :(
DomiKo: items never appear
DomiKo: I haven't seen that in a week
YCS-Venom: i don't know but it's so slow
Neckers: some network error on session service: https://www.codingame.com/services/Puzzle/generateSessionFromPuzzlePrettyId returns 504
mr.idiot: what?
mr.idiot: i haven't used the chat much
kan181: tests are extremely slow for me as well
aaravm4: now the results for submission aren't even getting loaded
MSmits: it's always slow around this time. They are doing calculation
MSmits: i dont think it takes more than 15-30 min
therealbeef: We need a chatbot to say that every night
AlterRainbow: coc is being so slow...
MSmits: automaton2000 do your job
Automaton2000: to see how it is for a puzzle
MSmits: no Automaton2000, talk about coc
therealbeef: it's slow Automaton2000
Automaton2000: hey guys what are the odds
Automaton2000: i can be the difference between the two
MSmits: anyway i am getting some sleep ttyl
therealbeef: The odds are 1 Automaton2000
Automaton2000: also check if i have to work on this
struct: site broken?
tubby2: Everything seems slow yeah
Johndoe: why is nothing happening
Johndoe: it is saying loading play in progress forever
trashcan06: Everything is so slow
JLukeSkywalker: everything slows down at this time, its when they calculate everything for ranking/etc
struct: not this time
struct: its something else
ianc1339: the slow time is way too long compared to before :/
RockNTroll: i love shortest mode when using Java