« first day (166 days earlier)      last day (1058 days later) » 

14:26
@MartinEnder haven't been watching that closely
ah okay, fair enough
my favourites so far were Guacamelee and Banjo-Kazooie. great games, impressive runs, and really interesting commentary.
14:48
oh damn I missed the pokemon run
and super meat boy
wait ratchet and clank is on now? rip I should've watched that :(
@MartinEnder ratchet and clank was my childhood man
you can always watch the recording
super meat boy was pretty good too, as was VVVVVV
btw, they're pretty far behind schedule, and at least setup block is going to be cancelled, so I'm not sure whether they'll catch up enough to fit BotW into that last setup block
@MartinEnder how can they cancel a setup block?
that just means it wasn't necessary in the first place
the setup blocks are buffers
in the event this kind of stuff happens
15:54
@MartinEnder you should watch the SUPERHOT speedrun if you weren't already planning to
I wasn't because somehow superhot never seemed very interesting to me
Might just be the art style
Really looking forward to Sands of Time tonight (and I'm quite curious about the Shadow of the Colossus run)
 
4 hours later…
19:59
very scientific bubbles: youtube.com/watch?v=Z6-2Ul00NJw
20:41
how did you find that video?
@orlp If you've ever played Shadow of the Colossus you have to watch that speedrun. (If you haven't but there's a remote chance that you will in the future, then don't, because spoilers.)
do you really get spoilers out of a speedrun?
like, most of the time, speedrunners sidestep plot elements, and perform puzzles far too quickly to really get anything spoiled
for a game like Shadow of the Colossus yes
I don't even mean plot spoilers
everything about SotC is just such a unique experience that I wouldn't want any gameplay elements to be spoiled for someone who hasn't played it yet
bah, Playstation only
also for some speedruns, especially because parts of the plot are usually skipped the commentators tend to explain the plot quite a bit
(not in this case, that run had literally no plot spoilers)
21:05
@NathanMerrill subscribed to that channel=)
21:16
LOL, I just found out that pacemakers apparently have an emergency mode that can be activating by putting a permanent magnet on the patients chest. This mode just enforces a constant 80-100bpm rythm, no matter what the nervous system is telling the heart muscle to do.
21:28
Haskell question: How do you actually execute the IO monad? do you simply return the monad from the main() function or something?
21:38
yeah all IO happens in main
(without () as it doesn't have any arguments, and () would represent the 0-entry tuple)
basically you chain up all the IO using >>= and >> in your main
@NathanMerrill main must have type IO ()
ah, really?
yep
how do GUI apps work? specifically, is the while(true) loop magic?
if those monads are confusing, I recommend getting familiar with typeclasses, and then read through the typeclassopedia
@NathanMerrill basically recursion
(which can obviously be done in more or less elegant ways)
but interacting with the GUI is a monad, right?
so you have to return that somehow
21:43
well Monad is just a typeclass
there are many types that actually satisfy this class
(similar to the abstract mathematical notion of e.g. a group. The real numbers are a concrete example of a group, similarly IO is a concrete example of a monad.)
monad means just it is a type that satisfies some laws
yeah, but any GUI class you make will be a monad, right?
assuming you don't call unsafe code
not necessarily
but they are usually implemented as a monad (and many other typeclasses) as they are very convenient
also perhaps section 1 - 4 might help gaining an intuition
I had actually just read 1-3 when I asked the question :)
oh=)
@NathanMerrill did it help?=)
well, I should have definitely read 4
21:54
hehe=)
because it answered my question of "how does main work"
but I still don't understand how infinite loops and returning-the-state mesh
like, if you recurse forever, you'll never actually return the GUI monad
Well you don't recurse forever, at some point the program has to end?
f x = if x>1 then f (x-1) else 0
well, like, in a game, you want to have some sort of loop that continuously processes input and updates the screen
ah so you mean stuff like catching events?
lets say you have a simple GUI: it has a circle bouncing up and down on a screen once a second. If the mouse touches the circle, it changes color
the problem isn't really the "mouse changing the color", because your function can handle that.
but to make an animated circle? Do you simply have a function that is "called" every 1/10 of a second that moves the circle?
or some sort of monad that encapsulates the movement of the circle
22:13
@NathanMerrill I think there is something similar to setTimeOut in JS
it seems a popular choice is threadDelay
ah, that makes sense
But honstly I'm just a beginner=)
There is just a crazy amount of abstractions and so many ways you have to rewire your brain if you're coming form imperative languages.
But the more time I spend on haskell the more I love it=)
On the other hand I really haven't done much "productive" programming in haskell (except for code-golf)
yeah. I can understand a lot of the functional stuff that JS does, but when it comes to real-time programming, it gets more complicated :)
that said, I should have though of JS with my circle example :)
although, JS timeout functions aren't pure
Hehe learning haskell actually helped me understand JS a lot better=)
I'm not even sure whether I'm actually ever going to use Haskell that much, but I'm learning a lot that I can use in other langauges
I mean, don't go implementing monads in other languages :)
22:26
Haha why not=)
I've been binge-watching It's Okay to be Smart. It's quickly become one of my all-time favorite channels

« first day (166 days earlier)      last day (1058 days later) »