code logs -> 2014 -> Sun, 28 Dec 2014< code.20141227.log - code.20141229.log >
--- Log opened Sun Dec 28 00:00:04 2014
--- Day changed Sun Dec 28 2014
00:00 Alek [omegaboot@Nightstar-c8t.a00.36.73.IP] has quit [Ping timeout: 121 seconds]
00:07 Thalass [thalass@Nightstar-9ai58o.bigpond.net.au] has quit [Ping timeout: 121 seconds]
00:11
< simon_>
hmmmm
00:13
< simon_>
I've got this dice game: roll a 6-sided die, if it's a 1, end the game. if it's the first die roll or the roll is either 1 higher or 1 lower than the most recently noted number, the roll is noted. otherwise the number is skipped. this process is repeated until the game ends.
00:13
< simon_>
i.e. if I roll 3465241, I note down 3454
00:14
< simon_>
s/i.e./e.g./
00:14
< simon_>
this is a language of number sequences that go one up or down
00:14
< simon_>
is it regular?
00:14
< simon_>
when writing the regex for this, something tells me it isn't.
00:15 ^Xires is now known as Xires
00:15
< simon_>
but when I try to write a DFA that accepts only valid notations, something tells me it is.
00:15
<@celticminstrel>
Hmm.
00:16
<@celticminstrel>
I think it sounds like it's regular.
00:17
< simon_>
since I can write a somewhat simple DFA where all states are accepting and each vertex is either 2, 3, 4, 5 or 6, and each edge goes to the vertices that are 1 from itself, I would agree.
00:17
< simon_>
but then why is writing a regex for this language so hard?
00:18
< simon_>
[2-6]|23|3[24]|4[35]|5[46]|65|... but this approach only gives me notations of a certain length.
00:18
< simon_>
hmm...
00:19
< simon_>
one thing that is wrong with my DFA: it does not care what particular string I'm matching.
00:21
< simon_>
but I'm not sure if that's enough to make it not regular.
00:22
<@celticminstrel>
If your DFA has all states accepting, then it'll also accept the empty string, right?
00:23 * celticminstrel just drew up a 7-state DFA that looks like it fits.
00:23
< simon_>
yes
00:23
< simon_>
the empty string is valid.
00:24
< simon_>
since if I roll a 1, the game stops and I haven't noted down any numbers.
00:24 * celticminstrel nods.
00:24
< simon_>
I only have 6 states in my DFA.
00:24
<@celticminstrel>
My start state has edges branching out to all the others.
00:25
< simon_>
and there are only 5 others
00:25
<@celticminstrel>
Hm?
00:25
< simon_>
since rolling 1 will end the game and not produce anything.
00:25
<@celticminstrel>
Ahh, right.
00:25
< simon_>
if this is the only difference between ours, then that's fine.
00:25
< simon_>
I just needed a mechanism to stop.
00:26
<@celticminstrel>
So, I should have no edges leading out of my 1-state.
00:26
< simon_>
nope. no point in having a 1-state since it's basically "EOF"
00:26
<@celticminstrel>
Right, but if I do have one, it's the sole accepting state.
00:26 * celticminstrel erases stuff.
00:26
< simon_>
I suppose it's regular then! but I wonder why there isn't a trivial regex for it.
00:27
< simon_>
ahhh, yes.
00:27
< simon_>
I guess that since "1"s are not part of the noted down numbers, there should not be an edge with a 1 on it. I should make that explicit somehow.
00:27 * celticminstrel nods.
00:35
<@celticminstrel>
All your states are interlinked. I think that might be why there isn't a trivial regex.
00:35 * celticminstrel is trying to figure this out though.
00:38 Alek [omegaboot@Nightstar-c8t.a00.36.73.IP] has joined #code
00:38 mode/#code [+o Alek] by ChanServ
00:38
<@celticminstrel>
Ah, wait. This is not a DFA.
00:46
<@celticminstrel>
Not that that makes a significant difference.
00:54 Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
01:25
< simon_>
celticminstrel, why is this not a DFA?
02:10 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed]
02:33
<@celticminstrel>
simon_: To be a DFA, each state needs an exiting edge for every possible input character.
02:33
<@celticminstrel>
I think>
02:33
<@celticminstrel>
^?
02:34 * celticminstrel suddenlt wonders if that was something even stricter than a DFA.
02:34
<@celticminstrel>
^suddenly
02:35
<&McMartin>
Well, generally each unstated input is assumed to go to a FAIL state that loops all input back to itself.
02:35
<&McMartin>
The difference between DFA and NFA is that NFAs are allowed to have multiple edges with the *same* input out of one node, and also edges that require no input whatsoever to traverse.
02:36
<&McMartin>
Every DFA is itself a restricted NFA, and any NFA can be mechanically converted into a DFA that accepts an identical set of strings.
02:36
<@celticminstrel>
Ah, okay.
02:36
<&McMartin>
However, this can, in the worst case, increase the number of nodes from N to 2^N.
02:36
<@celticminstrel>
So I'm just confused.
02:36
<&McMartin>
(The resulting DFA is one where each node corresponds to a set of the NFA's nodes that given the input so far you could theoretically be in)
02:37
<@celticminstrel>
Which is kinda bad, since it's barely been a year since I studied this stuff. >_>
02:40
<&McMartin>
I kept most of my old university textbooks, but CLR and Sipser are pretty much the only ones I've consulted after graduating because I needed information contained within them.
02:45 Alek [omegaboot@Nightstar-c8t.a00.36.73.IP] has quit [Ping timeout: 121 seconds]
02:52 Alek [omegaboot@Nightstar-c8t.a00.36.73.IP] has joined #code
02:52 mode/#code [+o Alek] by ChanServ
03:07 macdjord [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has joined #code
03:07 mode/#code [+o macdjord] by ChanServ
03:13
<@Alek>
http://imgur.com/gallery/gyU0me4
04:01
< simon_>
McMartin, can you tell me if this language is regular?
04:01
<&McMartin>
Which?
04:01
< simon_>
McMartin, and if so, why is the regex so hard to construct? (I know that there are DFAs for which the regex is exponentially sized as well as the other way around.)
04:01
< simon_>
(...but I don't know if this is one such case.)
04:02
<@celticminstrel>
The language consisting of numerals 2-6 such that adjacent numerals have a difference of exactly 1.
04:02
<&McMartin>
I think I missed the beginning of this convo
04:02
<&McMartin>
Aha
04:02
< simon_>
McMartin, sequences of numbers where each number is 1 higher or 1 lower than the previous.
04:03
< simon_>
McMartin, e.g. "234345"
04:03
<&McMartin>
Right
04:03
<&McMartin>
The regex is hard to construct because the point where you loop back is not at all obvious
04:04
< simon_>
the closest I got was using perl's look-behinds, ^(((?<=2|^)3)|((?<=3|^)[24])|((?<=4|^)[35])|((?<=5|^)[46])|((?<=6)5))*$
04:04
<@celticminstrel>
That's not a regular expression, though. I think.
04:04
< simon_>
but I'm using them illegally, since Perl will complain that these look-behinds are "variable-length"
04:04
< simon_>
celticminstrel, well, look-behinds are actually regular.
04:04
< simon_>
celticminstrel, but my usage of them is beyond what Perl supports...
04:04
< simon_>
celticminstrel, so I don't know about *that*.
04:05
<@celticminstrel>
Lookbehinds are regular?
04:05
<&McMartin>
I can generate a DFA that matches that language easily
04:05
< simon_>
celticminstrel, yeah. but it's sort of cheating because the equivalent regex without them is perhaps extremely large.
04:05
< simon_>
McMartin, so can I!
04:05
<&McMartin>
However, it is not made of the "building blocks" that regexes translate to
04:05
< simon_>
McMartin, no!
04:05
<&McMartin>
So that is why translating it to a regex is Hard (tm)
04:05
< simon_>
McMartin, yes!
04:05
< simon_>
:)
04:06
<@celticminstrel>
Huh.
04:06
< simon_>
maybe this is a case of a regular language for which the regex is explosively large. but I can't even imagine how it looks like for arbitrary-sized sequences.
04:07
<&McMartin>
Here is an algorithm for converting mechanically.
04:07
<@celticminstrel>
Isn't a lookbehind equivalent to saying "run this separate DFA in reverse and move to the next state if it matches"?
04:07
<&McMartin>
http://regex-automaton.com/conversion_of_dfa_to_regular_expressions.php
04:08
< simon_>
McMartin, cool.
04:08
<&McMartin>
I do not pretend to understand this algorithm
04:08
< simon_>
me neither. I didn't know it existed.
04:17
< simon_>
celticminstrel, look-arounds mainly help in doing negative matches of multiple characters.
04:21
< simon_>
celticminstrel, e.g. (?!<foo)bar becomes (^(|.|..|)|[^f][^o][^o])bar, but the non-look-around alternatives get exceedingly complex...
04:21
<@celticminstrel>
That doesn't quite look right.
04:22
< simon_>
oh?
04:22
<@celticminstrel>
(?!<foo)bar would match "goobar", but your translation wouldn't.
04:22
<@celticminstrel>
I think.
04:23
< simon_>
oh, yeah.
04:23
<@celticminstrel>
Ah, also, lookbehinds don't consume space, so you'd need a .{3} somewhere.
04:23
<@celticminstrel>
^consume input
04:24 Turaiel[Offline] is now known as Turaiel
04:24
< simon_>
well, space consumation is only a matter of what your parser returns, not what languages it matches.
04:24
<@celticminstrel>
Otherwise it matches only "bar".
04:24
<@celticminstrel>
Oh wait, that applies if it was a lookahead.
04:25
<@celticminstrel>
Not sure if it applies to a lookbehind.
04:25
< simon_>
i.e. look-arounds are much more useful in practical parsing, but they don't extend the set of possible languages.
04:25
<@celticminstrel>
The main thing that does is backreferences, as I recall.
04:25
< simon_>
neither lookahead nor lookbehind consume spaces
04:25
< simon_>
the main thing that does extend regexes to non-regular languages? yes.
04:25
<@celticminstrel>
Right, but that lookbehind could match "goobar" if you assume a non-anchored match.
04:28
< simon_>
(^(|.|..)|fo[^o]|f[^o]o|[^f]oo|f[^o][^o]|[^f]o[^o]|[^f][^o]o|[^f][^o][^o])bar
04:29
<@celticminstrel>
It's huge.
04:29
< simon_>
yes, and this is just from a small lookbehind
04:29
< simon_>
what I'm trying to say is that a lookaround will always have a non-lookaround equivalent that is most likely huge if not overwhelmingly huge to the point that it just exists to make a theoretical point.
04:30
< simon_>
so they're regular. unlike e.g. backrefs: (a*)b\1 is not a regular language.
04:31 * celticminstrel nods.
05:02 Turaiel is now known as Turaiel[Offline]
05:09 Turaiel[Offline] is now known as Turaiel
05:10 Thalass [thalass@Nightstar-9ai58o.bigpond.net.au] has joined #code
05:10 mode/#code [+o Thalass] by ChanServ
05:20 celticminstrel [celticminst@Nightstar-jeiu0g.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
05:52 Turaiel is now known as Turaiel[Offline]
07:22 Kindamoody[zZz] is now known as Kindamoody
07:39 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
07:56 macdjord is now known as macdjord|slep
08:41 Orthia [orthianz@Nightstar-a1ieog.callplus.net.nz] has quit [Ping timeout: 121 seconds]
08:46 Orthia [orthianz@Nightstar-ohb366.callplus.net.nz] has joined #code
08:46 mode/#code [+o Orthia] by ChanServ
09:59 Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code
09:59 mode/#code [+o Checkmate] by ChanServ
10:13 Kindamoody is now known as Kindamoody|afk
10:42 Orthia [orthianz@Nightstar-ohb366.callplus.net.nz] has quit [Ping timeout: 121 seconds]
10:46 Orthia [orthianz@Nightstar-a1ieog.callplus.net.nz] has joined #code
10:46 mode/#code [+o Orthia] by ChanServ
11:54 Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
12:20 Checkmate [Z@Nightstar-ev6.6um.94.83.IP] has joined #code
12:20 mode/#code [+o Checkmate] by ChanServ
12:22 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
12:57 gnolam [lenin@Nightstar-afpphi.tbcn.telia.com] has joined #code
12:57 mode/#code [+o gnolam] by ChanServ
12:58
<@gnolam>
Well this is scary: http://streaming.media.ccc.de/relive/6249/ (starts at ~16:00)
12:59 Orthia [orthianz@Nightstar-a1ieog.callplus.net.nz] has quit [Ping timeout: 121 seconds]
13:04 Orthia [orthianz@Nightstar-4j4.kvk.224.119.IP] has joined #code
13:04 mode/#code [+o Orthia] by ChanServ
13:45 Thalass is now known as Thalasleep
14:19 celticminstrel [celticminst@Nightstar-jeiu0g.dsl.bell.ca] has joined #code
14:19 mode/#code [+o celticminstrel] by ChanServ
14:20 celticminstrel [celticminst@Nightstar-jeiu0g.dsl.bell.ca] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.]
14:20 celticminstrel [celticminst@Nightstar-jeiu0g.dsl.bell.ca] has joined #code
14:20 mode/#code [+o celticminstrel] by ChanServ
14:22 gnolam [lenin@Nightstar-afpphi.tbcn.telia.com] has quit [[NS] Quit: Shutdown]
14:35
<@froztbyte>
gn[tab]
14:35 * froztbyte wonders if that's the SS7 one
14:35 * froztbyte looks
14:35
<@Tarinaky>
It is
14:35
<@froztbyte>
ah
14:35
<@froztbyte>
lulz
14:36
<@froztbyte>
it's all so much worse than anyone realizes :)
14:36
<@Tarinaky>
Well so far I'm up to attacks against their prepaid credit.
14:36
<@Tarinaky>
Which is pretty bad.
14:37
<@froztbyte>
I haven't even seen the talk yet
14:37
<@froztbyte>
just dealt with building various bits of telco infra a couple of years ago
14:37
<@Tarinaky>
Yeah.
14:37
<@froztbyte>
it's all fucked.
14:37
<@froztbyte>
utterly and completely, irreparably fucked
14:37
<@froztbyte>
beyond hope
14:38
<@froztbyte>
(many reasons, among them ITU shitherdery)
14:38
<@Tarinaky>
itu?
14:38
<@froztbyte>
http://www.itu.int/en/Pages/default.aspx
14:38
<@froztbyte>
IETF for phone networks
14:39
<@froztbyte>
except older and dumber
14:39
<@froztbyte>
(hilariously so)
14:39 gnolam [lenin@Nightstar-afpphi.tbcn.telia.com] has joined #code
14:39 mode/#code [+o gnolam] by ChanServ
14:39 gnolam [lenin@Nightstar-afpphi.tbcn.telia.com] has quit [[NS] Quit: Quit]
15:09 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
15:09 mode/#code [+qo Vornicus Vornicus] by ChanServ
15:57
<&jerith>
froztbyte: Why do you say the ITU's dumb?
15:57
<@froztbyte>
Just based on a couple of interactions I've had and observed
15:58
<@froztbyte>
They're basically like 60% responsible for how terrible telco things are, too
15:58
<@froztbyte>
(takes a couple of outside clowns as well)
18:28 Kindamoody|afk is now known as Kindamoody
19:46 Thalasleep [thalass@Nightstar-9ai58o.bigpond.net.au] has quit [[NS] Quit: Leaving]
21:32 iospace is now known as io\PACKERS
21:41 * Alek wonders how hard it would be to make a game completely modular. graphics engine. terrain engine. AI engine. UI engine. setting engine. etc.
21:43
<@Alek>
so you could swap a few engines to turn your fantasy roguelike into a zeldalike. swap out the classical-Everquest-graphics on your MMO for Skyrim-quality graphics. swap out the fantasy setting for a scifi or urban setting.
21:50
< simon_>
I'm sure you can devise a modular pipeline. replacing stuff like graphics/UI doesn't sound overwhelmingly abstract. switching AI sounds easy as well. making a game switch from e.g. 1st person to roguelike or even mud-like presents some problems, I think.
21:53
<@ErikMesoy>
"Skyrim-quality graphics" is going to be blatantly lying though.
21:54
<@ErikMesoy>
It has barriers thinner than the PC. This is incompatible with most roguelikes.
21:55
<@ErikMesoy>
If you stuck to the roguelike aspect, you'd instead get very very finely painted 5x5x5ft blocks of terrain. :P
21:58 Kindamoody is now known as Kindamoody[zZz]
22:04
<&McMartin>
Haven't you basically described Unity here
22:09 grindhold [quassel@Nightstar-uufabm.zebra.fastwebserver.de] has quit [[NS] Quit: No Ping reply in 180 seconds.]
22:10 grindhold [quassel@Nightstar-uufabm.zebra.fastwebserver.de] has joined #code
23:21 Checkmate [Z@Nightstar-ev6.6um.94.83.IP] has quit [Ping timeout: 121 seconds]
23:40
<@Alek>
I don't know, have I?
23:42
<@Alek>
and yeah, engine between First Person and Top Down 2D is a big difference. which is why I mentioned Roguelike to Zeldalike as an example - jumping small gaps aside, and climbing stairs, that's a pretty close transition from top-down to quarter-view, and not much difference from there to isometric.
23:43
<&McMartin>
Yeah, Unity has been used for: Kerbal Space Program, Rochard, Sunless Sea, La-Mulana 2, Wasteland 2
23:44
<&McMartin>
So that's two side-to-side 2D, top-down 2D, free-flowing 3D, isometric 3D
23:44
<@Alek>
in fact, stuff like Torchlight can almost be rendered in ascii graphics already, all it has is the ability to partially block ranged fire to higher levels.
23:44
<@Alek>
from what I can tell.
23:44
<&McMartin>
Oh yeah, it looks like Hexcells is also Unity-based
23:45
<@Alek>
I'll take a look at that then. :P
23:45
<~Vornicus>
One thing I've always wondered about was a diabloish where each character class had a different camera angle, depending on the style of play
23:45
<@ErikMesoy>
You could replace the *sprites* in Torchlight with ascii, I guess
23:45
<@Alek>
Vorn: ooh, GOOD one.
23:45
<@Alek>
Erik: the background too.
23:45
<@ErikMesoy>
The sub-character movement doesn't seem like something doable with what is normally called "ascii graphics"
23:45
<@ErikMesoy>
Alek: There are backgrounds not composed of player-sized units.
23:45
<@Alek>
you never actually get to cross your path on any one level. it's all a single level, with just tricks to make it look like parts are higher and lower.
23:46
<@ErikMesoy>
At some point you wind up doing this: http://mkweb.bcgsc.ca/asciiart/img/ascii-art-mona-lisa-fixed-string-full.png
23:46
<@ErikMesoy>
Which is very clever and all, but whyyyyyy.
23:47
<@Alek>
Vorn... now I'm reminded of those games where you can either be a grunt, in FPS, or a commander, doing top-down RTS, or transition between them.
23:49 Omega [omegaboot@Nightstar-c8t.a00.36.73.IP] has joined #code
23:49 mode/#code [+o Omega] by ChanServ
23:51 Alek [omegaboot@Nightstar-c8t.a00.36.73.IP] has quit [Ping timeout: 121 seconds]
23:52 Omega is now known as Alek
23:52
<@Alek>
gah
23:52
<@Alek>
nephew crawled down and powered off the UPS again.
23:52
<@Alek>
what'd I miss?
23:53
<@ErikMesoy>
Nothing
23:59 Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code
23:59 mode/#code [+o Checkmate] by ChanServ
--- Log closed Mon Dec 29 00:00:26 2014
code logs -> 2014 -> Sun, 28 Dec 2014< code.20141227.log - code.20141229.log >

[ Latest log file ]