code logs -> 2016 -> Mon, 16 May 2016< code.20160515.log - code.20160517.log >
--- Log opened Mon May 16 00:00:08 2016
01:03 Reiv_ [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has joined #code
01:07 Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has quit [Ping timeout: 121 seconds]
01:26 Turaiel[Offline] is now known as Turaiel
01:31 Kindamoody is now known as Kindamoody[zZz]
01:42 Thalass is now known as Thalass|TF2
02:03 Crossfire [Z@Nightstar-pdi1tp.customer.tdc.net] has quit [Connection closed]
02:04 Crossfire [Z@Nightstar-pdi1tp.customer.tdc.net] has joined #code
02:04 mode/#code [+o Crossfire] by ChanServ
02:04 Crossfire [Z@Nightstar-pdi1tp.customer.tdc.net] has quit [Connection reset by peer]
02:16 Crossfire [Z@Nightstar-pdi1tp.customer.tdc.net] has joined #code
02:16 mode/#code [+o Crossfire] by ChanServ
02:39 Thalass|TF2 is now known as Thalass
03:00
<&McMartin>
Man, this really has no excuse to work
03:02 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: Leaving]
03:04 * McMartin mixes X-Wing with Haskell, for, he guesses, Great Good.
03:05
< Reiv_>
... thefuck you doing, you crazy person
03:05
<&McMartin>
So.
03:05
<&McMartin>
Learn You A Haskell For Great Good! is not really a great tutorial for learning the langaueg, but it was recommended to me as a way to get a mental grip on Monads and their related friends in abstract algebra
03:06
<&McMartin>
A field in which I had trained previously but had not seen any relationship to monads as I knew them
03:06
<&McMartin>
It turns out that is mostly because what I learned as monads Haskell knew as monoids.
03:06
< Reiv_>
Is that 'rhymes with mongoloid' or 'mono id, we nicked the whitespace for use in Python'
03:07
<&McMartin>
The former
03:07
<&McMartin>
This is a term from Math
03:07
< Reiv_>
aha
03:07 catadroid [catalyst@Nightstar-912rgn.dab.02.net] has joined #code
03:07
<&McMartin>
Anyway, they have a number of motivating examples, one of which is partially developed and involves assigning probabilities to a list of cases
03:07
<&McMartin>
And then squinting at it *really hard* until it looks like something you could do map-reduce on
03:08
<&McMartin>
That gets me as far as "applicative functors", which turn out to be The Business
03:08
<&McMartin>
And in order to get interesting results, one would ideally like some kind of repeatable set of probabilities that nevertheless aren't equally probable
03:08
<&McMartin>
And what better thing than X-Wing dice
03:08
< Reiv_>
ahahaha
03:08
< Reiv_>
Perfection
03:09
<&McMartin>
Now I have a motivation to do my exercises
03:09
< Reiv_>
If you want any help or Interesting Wrinkles, you better believe I can come up with examples
03:10
<&McMartin>
Right now I'm just at "push button, watch explode, tweak"
03:10
<&McMartin>
But then I did the thing that didn't explode and it "shouldn't have known to do that"
03:10
<&McMartin>
But of course it does
03:10
<&McMartin>
So I have to work through it until I understand what it is doing.
03:13
<&McMartin>
I'm not convinced there's new power here the way learning about higher-order functions gives you new power if you only knew Java before
03:14
<&McMartin>
But we'll see
03:15
< catadroid>
The thing about the IO monad that gets me in particular that no one ever mentions is it is a compile time trick to prevent the compiler from evaluating a function
03:15
< catadroid>
Until runtime
03:15
<&McMartin>
Heh
03:15
<&McMartin>
Yeah, the part of monadry I'm trying to grasp here is the part where the IO monad is the boring one
03:15
<&McMartin>
Because it doesn't *do* anything other than "yeah, stuff happens in order, hooray"
03:16
< catadroid>
And yet people talk as though it's the messiah
03:16
<&McMartin>
... I have seen a glimpse of why
03:16
<&McMartin>
but so far I only have it at the level of "you can generalize map-reduce even more"
03:17
<&McMartin>
"You need to squint harder."
03:17
<&McMartin>
"No, harder."
03:17
<&McMartin>
"Harder than that."
03:17
< catadroid>
Monads make sense as an abstraction to me
03:17
<&McMartin>
Yeah, I'm not there yet :)
03:17
< catadroid>
But I don't understand the mathematical specifics
03:17
<&McMartin>
I type do { d1 <- attack; d2 <- attack; return (d1, d2) } and get back a complete list of die rolls with associated probabilities
03:17
<&McMartin>
And I haven't worked out what I just said that means that.
03:17
< catadroid>
You're likely further than I am
03:18
<&McMartin>
I can do the syntactic transforms, but I don't grasp it the way I want to
03:18
<&McMartin>
Every time I look at it more, the picture gets more complex
03:18
<&McMartin>
But I can see that I will eventually hit a point where the more I learn the simpler it gets, instead.
03:18
<&McMartin>
That's where the messianic tradition comes in, I strongly suspect~
03:18
< catadroid>
Heh
03:19
<&McMartin>
But yeah, I've now written some programs that are part copying simple things I understand
03:19
<&McMartin>
And then writing something that makes sense if I squint at it that I could be asking for something, implicitly
03:19
< catadroid>
I do find it amusing that explaining monads is an almost perfect storm in terms of how not to explain things
03:19
<&McMartin>
But then it knows that and gets the right answer and I'm still at the point where I just gape and shout "OMG WITCHALOCKS"
03:19
<&McMartin>
Also my laptop power is now at 15%, so I fear I must bow out for a bit
03:19
< catadroid>
And, more amusingly, that betrays an amazing misunderstanding of how human minds apply abstraction and generalise
03:20
<&McMartin>
So, the book I'm reading to get a handle on this has helped a lot
03:20
<&McMartin>
But it wants to be an introduction and I'm reading it after having already written 5,000 lines of Haskell in various programs
03:20
<&McMartin>
I think I needed that 5KLOC to get it enough to grasp the rest of this
03:20
<&McMartin>
Also I now understand why Rust traits fell down where Haskell typeclasses did not
03:21
<&McMartin>
But not enough to know if that's a trivial fix to Rust or a "back to formula" kind of thing
03:21
<&McMartin>
And now, powerdown
03:23 Reiv_ [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has quit [Ping timeout: 121 seconds]
03:33
< simon_>
fun fact: Edward Kmett became the 5th most contributing user on GitHub at some point when extending the collection of Haskell's libraries.
03:44
<&McMartin>
Hah
03:49 Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has joined #code
03:49 mode/#code [+o Reiv] by ChanServ
04:28 starkruzr [quassel@Nightstar-m85rjf.fios.verizon.net] has joined #code
04:55 crystalclaw|AFK is now known as crystalclaw
05:09 Derakon is now known as Derakon[AFK]
05:19 Thalass [thalass@Nightstar-283.o7s.158.104.IP] has quit [[NS] Quit: augh slep tiem]
05:36
<@Reiv>
McMartin: 2+2+3+1 for reds, 3+2+3 for greens; standard rule mods include reroll any, reroll /all/, eyes-to-results, one-eye-to-crit, reroll blanks, reroll eyes, and Change Results(tm).
05:37
<&McMartin>
I'm ignoring rerolls
05:37
<&McMartin>
I'm not building a real dice simulator
05:37
<&McMartin>
In the sense of All The Cards
05:38
<&McMartin>
I'm using a funny d8 to test various kinds of higher-order functions
05:38
<@Reiv>
That's fine
05:38
<@Reiv>
I was mentioning these as Fun Things To Consider
05:39
<@Reiv>
Actually my favourite funky ability mathwise of late is the pilot Zuckuss: You may roll one extra red die if you let the opponent roll one extra green.
05:39
<@Reiv>
This is of course marginally better because the red has an extra hit on it
05:39
<&McMartin>
Meanwhile, I seem to be unable to import my own modules.
05:39
<@Reiv>
But it's better than that because it is /much/ better when you realise you can modify the shit out of red dice, while greens are more limited
05:39
<&McMartin>
Except in the interactive mode, where it is fine
05:40
<@Reiv>
... and he came in the same expansion pack that lets you ionise yourself in return for preventing the enemy from spending 1 designated token on defense, and choose to do so after you've seen their results.
05:41
<@Reiv>
"OK, so that means I throw four dice with rerolls and focus, so that's... 3 hits. Now you roll your usual three, plus one extra ... oh, you got three eyeballs and a blank? Yeah, I'm ionising, and you're not spending your Focus token. Have three damage. <3"
05:43
<&McMartin>
right, OK, there.
05:43 * McMartin grmbl
05:47 catadroid` [catalyst@Nightstar-qhoivm.dab.02.net] has joined #code
05:50 catadroid [catalyst@Nightstar-912rgn.dab.02.net] has quit [Ping timeout: 121 seconds]
06:14 Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has quit [Ping timeout: 121 seconds]
06:15
<&McMartin>
Argh, what the fuck, Emacs
06:15 Turaiel is now known as Turaiel[Offline]
06:15
<&McMartin>
Literally every time I hit enter you are opening the Customize window
06:19 Crossfire [Z@Nightstar-pdi1tp.customer.tdc.net] has quit [Ping timeout: 121 seconds]
06:31
< simon_>
McMartin, what gave were you and Reiv talking about?
06:43
<&McMartin>
The X-Wing miniatures wargame
06:49
< simon_>
ah.
06:49
<&McMartin>
*XwMinis> head $ getProb $ roll 4 defenseDie
06:49
<&McMartin>
([Blank,Blank,Blank,Blank],81 % 4096)
06:52
<&McMartin>
Also, since I'm new at this
06:52
< simon_>
I was playing Full Thrust a while back
06:52
<&McMartin>
If I have a function of type (Monad m) => m a -> m b
06:53
<&McMartin>
Then it really has no place inside a do block, does it
06:54
<&McMartin>
Except if it's accidentally valid to say b <- f a
06:54
< simon_>
right
06:54
< simon_>
if the do-block has type m b, then that's a common pattern
06:55
< simon_>
but more often you'd see Monad m => a -> m b
06:55
< simon_>
I think
06:55
< simon_>
e.g. putStrLn :: String -> IO ()
06:55
<&McMartin>
Right, so, my "roll" function there included a branch which started with collateProb $ fmap sort $ do
06:56
<&McMartin>
This exercise has been mainly, for me, about puttering about with monads that aren't the I/O monad
06:56
< simon_>
probabilities and monads are pretty cool, too
06:57
<&McMartin>
Yeah, I started with the stuff about a custom probability monad in Learn You A Haskell and just started expanding it
06:57
<&McMartin>
starting with making it an applicative functor, which was actually hilarious
06:57
<&McMartin>
And then trying to do this "OK, can I represent die rolls"
06:57
<&McMartin>
-> "OK, how about with dice that are more fun than normal dice, with different probabilities for various results"
06:57
<&McMartin>
-> "X-Wing attack and defense dice cover that use case neatly"
07:00
<&McMartin>
Anyway, you're right about the signatures. The signature for (>>=) means that you can only really do something of the form "b <- f a" if f has a signature (Monad m) => a -> m b
07:01
<&McMartin>
The non-collating version of roll is basically roll i d = if i < 1 then return [] else do { x <- d; y <- roll (i-1) d; return x:y }
07:01
< simon_>
there's a pretty cool talk by Dan Piponi about abusing Haskell's do-syntax for solving various problems by overloading (>>=)
07:01
< simon_>
https://vimeo.com/6590617
07:02
<&McMartin>
Fun
07:46 Kindamoody[zZz] is now known as Kindamoody
07:51 crystalclaw is now known as crystalclaw|AFK
07:58 Crossfire [Z@Nightstar-r9lk5l.cust.comxnet.dk] has joined #code
07:58 mode/#code [+o Crossfire] by ChanServ
09:04 Kindamoody is now known as Kindamoody|afk
09:06 Crossfire [Z@Nightstar-r9lk5l.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
10:37 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection reset by peer]
11:26 thalass_ [thalass@Nightstar-283.o7s.158.104.IP] has joined #code
11:35 thalass_ [thalass@Nightstar-283.o7s.158.104.IP] has quit [Ping timeout: 121 seconds]
11:54 catadroid` [catalyst@Nightstar-qhoivm.dab.02.net] has quit [[NS] Quit: Bye]
11:54 catadroid [catalyst@Nightstar-qhoivm.dab.02.net] has joined #code
12:17 catadroid` [catalyst@Nightstar-t7t86r.dab.02.net] has joined #code
12:20 catadroid [catalyst@Nightstar-qhoivm.dab.02.net] has quit [Ping timeout: 121 seconds]
12:24 * TheWatcher eyes this code
12:30
<@TheWatcher>
I get that some people like to stick rigidly to the "single exit point" paradigm, but when combined with vehement avoidance of goto it just gets horrible really quickly..
12:42
< catadroid`>
Yup
12:43
< catadroid`>
I tend to prefer keeping code with as few indents as possible
12:43
< catadroid`>
Which is often the antithesis
12:56 catadroid` [catalyst@Nightstar-t7t86r.dab.02.net] has quit [[NS] Quit: Bye]
12:56 catadroid [catalyst@Nightstar-t7t86r.dab.02.net] has joined #code
14:00 Crossfire [Z@Nightstar-r9lk5l.cust.comxnet.dk] has joined #code
14:00 mode/#code [+o Crossfire] by ChanServ
16:20 thalass_ [thalass@Nightstar-283.o7s.158.104.IP] has joined #code
16:54
< catadroid>
Well
16:55
< catadroid>
I wrote my part of the proposal
16:55
< catadroid>
Let's see if we actually have a process or if someone is just bullshitting
18:20 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
18:23 jeroud [sid10043@Nightstar-h2b233.irccloud.com] has quit [Z-Lined: Session limit exceeded (ID: FW2EBCUO3E)]
18:48 catadroid` [catalyst@Nightstar-l0rrqv.dab.02.net] has joined #code
18:49 Kindamoody|afk is now known as Kindamoody
18:51 catadroid [catalyst@Nightstar-t7t86r.dab.02.net] has quit [Ping timeout: 121 seconds]
18:54 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
18:54 mode/#code [+qo Vornicus Vornicus] by ChanServ
18:55 jeroud [sid10043@Nightstar-h2b233.irccloud.com] has joined #code
18:55 mode/#code [+ao jeroud jeroud] by ChanServ
20:16 catadroid` [catalyst@Nightstar-l0rrqv.dab.02.net] has quit [[NS] Quit: Bye]
20:44
<&McMartin>
08:55 < catadroid> Let's see if we actually have a process or if someone is just bullshitting
20:44
<&McMartin>
This is the best sentence I have seen today
20:56
< catalyst>
Hm?
20:56
< catalyst>
heh
21:40
<&McMartin>
attn me: http://monster6502.com/
21:40
<&McMartin>
also of note: the transistor count
21:45
<@TheWatcher>
"Are you nuts? Probably."
21:45
<@TheWatcher>
Objection!
21:45
<@TheWatcher>
There's no "probably" there >.>
21:46
<&McMartin>
I also like "Is there going to be a soldering kit version of this? No. (But on the other hand, anything is a soldering kit if you're brave enough!)"
21:47 * TheWatcher forwards that to one of the hardware guys in work
21:48
<&McMartin>
Oh hey, they're showing that off *here*, *this weekend*
21:48
<&McMartin>
A weekend in which I already have plans, but oh well~
21:58
<@Alek>
hmm.
21:58
<@Alek>
call me when they have a full-speed version I can put together at home. <_<
21:59
<@Alek>
those flash-based emulated games online SUCK.
22:00
<@Alek>
the games I've tried either don't run at all, glitch out, or aren't emulated yet.
22:00
<&McMartin>
... are these statements connected? If so, VICE has you covered
22:00
<&McMartin>
VICE will run demoscene madness at full-speed and full accuracy
22:01
<@Alek>
I'm not even talking demoscene, I'm talking regular Apple ][ games.
22:01
<@Alek>
I've only tried a few, from my favorites when I had one.
22:01
<&McMartin>
Yeah, Commodore dudes are better~
22:01
<&McMartin>
That said, IIe or IIgs
22:01
<@Alek>
Moebius, notably. doesn't work.
22:02 * Alek never managed to get past the halfway point, because he accidentally overwrote the backside of the disk early on, not knowing that that's where part 2 of the game was.
22:02
<@Alek>
anyway. there's a lot of disk swap in Moebius, and that's probably what the emulation chokes on.
22:04
<&McMartin>
OK, Apple II emulation is a bit more primitive because it relies on rather than struggles against the sterange artifacts of standard definition television
22:04
<&McMartin>
But AppleWin should be good enough to handle disk swapping.
22:05
<@Alek>
it also relies on hardware quirks for timing, so uh.
22:06
<&McMartin>
Welcome to *everything*.
22:06
<&McMartin>
That's really easy
22:06
<&McMartin>
That's what it means to be cycle-accurate
22:06
<&McMartin>
Every credible 8-bit emu is at least that good these days.
22:06
<&McMartin>
(Without it, an Atari emu can't even produce a picture)
22:10 * TheWatcher ponders what to call the replacement for his 'tardis' backup system, is vaguely tempted to call it 'titor'
22:13 * Alek snickers, was thinking of console emulators a decade ago.
22:13
<&McMartin>
Yeah
22:14 * Vornicus looks up 8-bit emu, is disappointed
22:14
<&McMartin>
This is a place where the C64 emulation was miles ahead of everyone else, with NES coming up behind and then Atari becoming feasible noticably later
22:14
<~Vornicus>
not enough actual emus, and no 8-bit emus at all.
22:14
<&McMartin>
Boo!
22:14
<@Alek>
I think it was Might and Magic 2 on Genesis that had a default backup that you needed to use the battery to load from, and the emulated rom did NOT include that default backup.
22:14
<&McMartin>
Anyway, I think the last widely-used non-cycle-accurate NES emulator was Nesticle
22:15
<&McMartin>
Which was pretty awful for anything that needed, well, a lot of things
22:15 Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has joined #code
22:15 mode/#code [+o Reiv] by ChanServ
22:15
<~Vornicus>
http://i.imgur.com/gCSrPKd.png?2 this is the closest I get but I needed to do "pixel art emu -emulator" to get it
22:15
<&McMartin>
Anyway. AppleWin is a solid IIe emulator and it has a hotkey for disk swapping
22:15
<~Vornicus>
that's actually from Starbound.
22:16
<&McMartin>
The only halfway reasonable IIgs emulator I've used is KEGS32, and it's not *that* reasonable :/
22:17
<@Alek>
how about a ][c emu? although I dunno, maybe Moebius can run on a IIe.
22:17
<@Alek>
but meh, doesn't really matter right now.
22:17
<@Alek>
I can't get up the enthusiasm for OLD games these days.
22:19
<@Alek>
hm. I am REALLY looking forward to the VR renaissance, though.
22:20
<@Alek>
games like Portal and even lesser-known ones like Twin Sector or what was that psi-ops game, should have a resurgence in popularity with VR. not just shooters and 3D modeling/design.
22:22
<~Vornicus>
portal in vr sounds frightening
22:22
<@Tamber>
Nauseating, mostly.
22:22
<@Tamber>
(er, that is, that's how it sounds to me. Haven't tried it, am not planning on it.)
22:23
<&McMartin>
ISTR that a properly expanded IIe was the equivalent of a IIc in all ways
22:26
<@Alek>
well, nauseating, maybe, but I'd like to be able to aim more naturally than moving my mouse to an arbitrary point. XD
22:26
<@Alek>
even if it could take longer. <_<
22:26
<~Vornicus>
the wii u gamepad wrecks *everything* when it comes to aiming.
22:26
<@Alek>
but if they implement sight tracking, that would be amazing.
22:26
<@Alek>
haven't tried it, Vorn.
22:28
<@Alek>
but for me, I dunno that VR aiming would be any more nauseating than near-random high-speed mouse aiming. -_-
22:28
<&McMartin>
Having used the Vive
22:28
<@Alek>
and that's what it comes down to in expert-mode Portal-type games and FPS games, especially PVP.
22:28
<&McMartin>
The problem isn't aiming, which is fine; we seem to have basically solved the head-motion thing
22:29
<&McMartin>
The problem is *motion*
22:29
<&McMartin>
Either you are on rails, or you move by teleport-hops
22:29 * Alek tried the Gear VR, dad got one free with his new phone. too bad it won't work with MY phone. :/
22:29
<&McMartin>
Gear VR is... not as good
22:29
<@Alek>
McM: fair point.
22:29
<&McMartin>
Better than I'd expect, but an application limited enough I don't see it being that useful except for certain kinds of content, none of which are games
22:29
<~Vornicus>
and teleport-hops wasn't really acceptable by the time Myst 3 came out.
22:30
<@Alek>
it's pretty though. I would want the next Note (assuming it's compatible) just for that.
22:30
<&McMartin>
Heh
22:30
<&McMartin>
Anyway, yeah
22:30
<&McMartin>
I have been convinced that VR is actually enthusaist-scale "here" now, in a way that previous experiments were not
22:30
<@Alek>
there's games you don't have to move around as much in.
22:30
<&McMartin>
Yes
22:30
<@Alek>
turret shooters just for starters.
22:30
<&McMartin>
But shooters aren't those games~
22:30
<&McMartin>
Yeah, turret shooters and racers are the big things out there now
22:30
<&McMartin>
Also tilt brush
22:30
<@Alek>
tilt what?
22:31
<&McMartin>
It's MS Paint but (a) by google and (b) in a VR 3D space
22:31
<@Alek>
hahaha
22:31
<@Alek>
I saw a demo video of a VR graffiti game.
22:31
<@Alek>
tagging in VR.
22:31
<&McMartin>
It's the thing you show visitors because it's instantly accessible and a solid sense of presence
22:33
<@Alek>
hm. "point and click" style adventures in 3D are also in play. literally the first game in the Gear VR catalog is an ESP detective game.
22:47
<&McMartin>
Myst III, as noted above
22:47
<&McMartin>
There's some very cool non-game stuff that isn't there *yet* but which I can see advancing to it
22:47
<&McMartin>
VR tourism
22:47
<&McMartin>
Sports broadcasts
22:47
<&McMartin>
There's some prototype stuff for that even for gear, but the seams between the cameras are *really* obvious still.
22:55
<@TheWatcher>
I just wish they'd get a move on and make usable, decent resolution, full-field transparent screens, so I could make my damned 3D holographic 'whiteboard' already.
22:57
<&McMartin>
We still don't have an acceptable solution for gorilla arm. :P
22:59
<@TheWatcher>
No, but considering how much time I spend using a boring 2D whiteboard anyway? Meh.
23:00
<@TheWatcher>
I'd rather be able to actually get the damned 3rd dimension that I need to make some of my diagrams work.
23:07
<~Vornicus>
(myst 3 used teleport hops)
23:07
<~Vornicus>
(it was awful.)
23:09
<&McMartin>
Mmmn
23:09
<&McMartin>
so, first, this isn't that, it's click to teleport in a 3D space
23:09
<&McMartin>
This turns out to be less disorienting in VR than a WASD-like control
23:20 thalass_ [thalass@Nightstar-283.o7s.158.104.IP] has quit [Ping timeout: 121 seconds]
23:21
<@gnolam>
-*- TheWatcher ponders what to call the replacement for his 'tardis' backup system, is vaguely tempted to call it 'titor'
23:21
<@gnolam>
Do eeeeeeeeeeeeeeet
--- Log closed Tue May 17 00:00:24 2016
code logs -> 2016 -> Mon, 16 May 2016< code.20160515.log - code.20160517.log >

[ Latest log file ]