code logs -> 2016 -> Sun, 04 Sep 2016< code.20160903.log - code.20160905.log >
--- Log opened Sun Sep 04 00:00:57 2016
00:05 Reiver [quassel@Nightstar-ksqup0.co.uk] has quit [Ping timeout: 121 seconds]
00:05 Reiver [quassel@Nightstar-ksqup0.co.uk] has joined #code
00:05 mode/#code [+ao Reiver Reiver] by ChanServ
00:09
<&jerith>
Vornicus: You're still muted. Are you supposed to be?
00:09
<&jerith>
(If you are, that's fine. If you're trying to talk to me, not so much.)
00:09
<~Vornicus>
something's fucky
00:10
<&jerith>
Is your test passing with the implementation commented out?
00:11
<~Vornicus>
Yes. Oh, that's probably because... assertEquals may do deep comparison.
00:11
<&jerith>
Does your constructor discard leading zero coefficients?
00:12
<~Vornicus>
Yes it does.
00:12
<&jerith>
Maybe assertEquals(f == g, true)?
00:12
<&jerith>
Yay, back.
00:12
<~Vornicus>
well, assertTrue
00:12
<&jerith>
I can hear you again.
00:12
<&jerith>
Yeah, assertTrue().
00:12
<&jerith>
Except then you get annoying failure output.
00:12
<&jerith>
"true is not false"
00:13
<&jerith>
Thanks for reminding me of the basis of boolean algebra, computer.
00:13
<&jerith>
(I've written lots of tests like that.)
00:13
< ToxicFrog>
Does assertEquals not respect __eq?
00:14
<~Vornicus>
If it's not present, at least, it uses a deep compare
00:14
<&jerith>
The solution is to tell the assertion call what to print on failure.
00:14
<&jerith>
Vornicus: Maybe try "return false" as an __eq method.
00:16
<&jerith>
This is why you need to run your tests with known broken code.
00:16
< ToxicFrog>
Hmm. Looks like it doesn't support __eq. I should send in a patch.
00:16
<&jerith>
I've written lots of tests that pass whether the thing they're supposed to be testing exists of not.
00:17
< ToxicFrog>
(specifically, if it's a table it calls _is_table_equals, which does deep comparison; if there's a type mismatch it fails; otherwise it uses ==)
00:17
<&jerith>
Some of the bugs there have been quite subtle.
00:18
<&jerith>
The most widespread was in tests for async Python code using Twisted.
00:18 Kindamoody is now known as Kindamoody[zZz]
00:19
<&jerith>
My tests used @inlineCallbacks which (ab)uses generators as hack around the lack of async/await syntax.
00:19
< ToxicFrog>
What it should probably do is try == first; if that fails, but both operands are tables, call _is_table_equal; if that fails too, fail the whole thing.
00:20
<&jerith>
ToxicFrog: That would be wrong for a "return false" __eq implementation.
00:21
<&jerith>
If I forgot to decorate my test method with @inlineCallbacks the test happily returned a generator that was never called instead of a promise that fired with the result.
00:22
<&jerith>
The second time I found a test broken that way I hacked a check for tests that return generators into the unit test machinery and found about 20 others scattered across the codebase, most of which were broken tests.
00:23
<&jerith>
Several of those were hiding real bugs that we thought we had tests for. :-(
00:24
< ToxicFrog>
jerith: hmm, point.
00:24
<&jerith>
What is "unm"?
00:24
< ToxicFrog>
Unary minus.
00:24
<&jerith>
Oh, unary minus?
00:24
<&jerith>
Yeah, that.
00:26
< ToxicFrog>
Ok, new attempt. If they both have the same __eq metamethods, use ==. If they're both tables, use _is_table_equal. else, use ==.
00:26
<&jerith>
lua is not python? :-P
00:28
<&jerith>
Range vs iterator.
00:28
<&jerith>
And I think there's about a minute of latency on the stream.
00:28
<&jerith>
I need to go make tea and send the dog outside, so I'm going to grab my more portable computer quick.
00:29
<~Vornicus>
I have to go wake the wife too.
00:34
<&jerith>
Little laptop in kitchen, kettle on, chocolate mousse deployed.
00:35
<&jerith>
Dog unhappy about eviction, but not protesting.
00:38
<&jerith>
You may want to write some utility functions for your evals and coeff comparisons.
00:40
<&jerith>
The coeff helper should be easy.
00:40
<&jerith>
The eval one probably won't.
00:40
<&jerith>
Does lua have nice lambda syntax?
00:41
<&[R]>
Okay, so after watching that testing talk, I try and look for a library that does that thing for JS...
00:41
<&jerith>
[R]: The John Hughes talk?
00:42
<&[R]>
http://jsverify.github.io/ <-- found that, looking over that, given no context, I have no idea WTF it's actually doing.
00:42
<&[R]>
Yeah
00:42
<&jerith>
jserify is the only one I've really heard about.
00:42
<&jerith>
But I don't JS, so I can't really comment.
00:45 himi [sjjf@Nightstar-v37cpe.internode.on.net] has joined #code
00:45 mode/#code [+o himi] by ChanServ
00:47
<&jerith>
If you're spending more than twice as much time figuring out how to write the helper as it would take to just type in all the boilerplate, the helper's probably not worth it.
00:48
<&jerith>
Hello Vash!
00:48
<&[R]>
Yeah
00:50
<&jerith>
For these helpers, it's probably not worth it.
00:50
<&jerith>
For more complicated boilerplate, it probably would be.
00:52
<&jerith>
I see you're integrating in your head to invent your test data for differentiation. :-)
00:52
<&[R]>
?
00:52
<&jerith>
Fortunately calculus on polynomials is easy.
00:53
<&[R]>
English plz
00:54
<&jerith>
[R]: He's writing testDerivative() and his polynomial coefficients are {0}, {6}, {2, 6}, {1, 2, 3}, {0, 1, 1, 1}.
00:54
<&[R]>
Ah, you weren't addressing me, that explains things
00:54
<&jerith>
Yeah, sorry.
00:55
<&jerith>
All of that was to Vornicus.
00:56
<&jerith>
Vornicus: Do you have a thing that will watch your filesystem and rerun your tests whenever something changes?
00:57
<&jerith>
I can see what you're doing. I'm suggesting a better way to do it. :-)
00:58
<&jerith>
I have a thing called "watchmedo" installed, but I can't remember where that comes from or if it's cross-platform.
00:58
<&jerith>
Took me bloody ages to find it.
00:59
<&jerith>
A bunch of test runners have that built in, though.
01:00
<&jerith>
Except py.test's implementation polls the filesystem instead of using inotify or whatever.
01:00 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has quit [Connection closed]
01:01
< ToxicFrog>
jerith: it's just function(...) ... end
01:01
< ToxicFrog>
More accurately, all function definitions are, and 'function foo()' is syntactic sugar for 'foo = function()'
01:01
<~Vornicus>
technically function bla----
01:02
< ToxicFrog>
(that said, I find it handy to define f st f 'x,y => x+y' is eqv to 'function(x,y) return x+y end' except without being scoped inside anything)
01:02
<~Vornicus>
so you can actually do local function blah(...) ... and it works too, it's not like js where you have to do var blah = function(...) {...}
01:02
< ToxicFrog>
(It's a nice concise way to functionize operators, in particular)
01:02
<&jerith>
watchmedo is a program that takes a directory (and filename filter) to watch and a shell command to run every time the filesystem changes.
01:04
< ToxicFrog>
If watchmedo isn't readily available you can put together something similar using inotifywait + a few lines of bash
01:04
<&[R]>
Like icron?
01:04
<&jerith>
Anyway, I use it run my tests for me so I don't have to switch to my terminal to run them.
01:04
< ToxicFrog>
I've never heard of icron.
01:05
<~Vornicus>
difficulty: no bash
01:05
<&jerith>
More importantly, it runs them whenever I save a file and therefore I have far fewer problems with running tests without saving files.
01:05
< ToxicFrog>
Vornicus: bwuh? What OS are you on?
01:05
<~Vornicus>
win10
01:05
< ToxicFrog>
sh is probably sufficient
01:05
< ToxicFrog>
oh
01:06
<&jerith>
Ah, https://pypi.python.org/pypi/watchdog is the thing.
01:06
<&jerith>
watchmedo is the executable it provides.
01:07
<&jerith>
This isn't a thing you need to do now (or at all, really) but it can help make things run more smoothly.
01:08
<&jerith>
The idea is to get as much of the mechanics of running tests out the way as you can.
01:09
<&jerith>
So that you free up the cognitive cycles for the more important task of designing the tests.
01:10 Alek [Alek@Nightstar-9qtiqv.il.comcast.net] has quit [Ping timeout: 121 seconds]
01:14 catadroid [catadroid@Nightstar-663fq4.dab.02.net] has joined #code
01:14
<&jerith>
Vornicus: I need to go to sleep now.
01:14
<&jerith>
I'll be up again in about 7-8 hours.
01:15
<&jerith>
This has been good, I think.
01:15 Alek [Alek@Nightstar-9qtiqv.il.comcast.net] has joined #code
01:15 mode/#code [+o Alek] by ChanServ
01:15
<~Vornicus>
Yes, very much, thank you
01:15
<&jerith>
You're much better at writing tests than I was when I started doing it seriously.
01:16
< catadroid>
Mathematics, my dear Watson
01:16 * ToxicFrog snoggles catadroid
01:16 * Vornicus hatadroid
01:16
< catadroid>
:o
01:16 * catadroid cuddles ToxicFrog
01:19
<&jerith>
https://archive.org/details/pyconza2014-practical-testing is my talk from a couple of years ago about stuff beyond the basics.
01:19
<&jerith>
(I'm not a terribly good public speaker, but I'm getting better.)
01:21
<&jerith>
That talk exists because I desperately wanted to watch it and nobody was giving it so I had to do it myself.
01:21
<&jerith>
And now it's getting perilously close to 3am, so I shall flee.
01:21
<&jerith>
G'night all.
01:28 * Vornicus should watch those talks
01:42 catadroid` [catadroid@Nightstar-5e7de9.dab.02.net] has joined #code
01:44 catadroid [catadroid@Nightstar-663fq4.dab.02.net] has quit [Ping timeout: 121 seconds]
01:50
< ToxicFrog>
huh. This is weird.
01:51
< ToxicFrog>
My <room> loader is loading the leftmost and rightmost columns of the room geometry and nothing in between.
01:59
<~Vornicus>
that is weird.
02:01
< ToxicFrog>
found the problem
02:01
< ToxicFrog>
tl;dr fuck xml in hell forever
02:02
< ToxicFrog>
Root cause: the loader for <flags> just iterates over all the k,v pairs in the tag and sets them on the room definition
02:03
< ToxicFrog>
But when you parse out the attributes for an XML tag, what you get back is both a map of key => value pairs
02:03
< ToxicFrog>
(where the values are always strings, because god forbid XML be able to handle other value types)
02:03
< ToxicFrog>
and an array of (k,v) pairs, because apparently the parser has to be able to handle cases where order is significant, or where the same attribute is set multiple times
02:04
< ToxicFrog>
Which means that "the set of keys" above is all the attribute names and all the array indices
02:04
< ToxicFrog>
so it ends up nuking columns [1..number-of-flag-settings] of level geometry.
02:04
< ToxicFrog>
And this is why I write unit tests.
02:05
<&Derakon>
Code that is not tested does not work.
02:05
<&Derakon>
Hooray, life is beautiful in programmer land.
02:07
< ToxicFrog>
Most of ttymor is untested ;.;
02:09
<@gnolam>
jerith: ...
02:10
<@gnolam>
jerith: This is the first time since coming to this network I've ever heard you speak. :-)
02:10
< ToxicFrog>
...what? jerith is pretty active.
02:11
<@gnolam>
Still the first time I've ever heard his actual voice. :-)
02:13
<&[R]>
<ToxicFrog> And this is why I [shouldn't use XML].
02:13
<~Vornicus>
xml is perfect for some things. Which is kind of frightening all told.
02:14
<&[R]>
I don't disagree with that
02:14
<&[R]>
However, 99% of the time XML is used it's the wrong tool.
02:16
< ToxicFrog>
^
02:16
< ToxicFrog>
XML is good for what it was originally designed for, which is as a general purpose language for text markup with verifiable schema support.
02:16
< ToxicFrog>
In practice, no-one uses it for that, and everyone uses it as a data serialization format.
02:17
<&Derakon>
Why use XML when you could use JSON? And why use JSON when you could use YAML? >.>
02:17
<&McMartin>
YAML is terrible
02:17
<&Derakon>
I have in fact never used it~
02:17
<&[R]>
I'd rather JSON and its paticularities over YAML
02:17
<&McMartin>
It's XML if XML were designed by Perl and had a similar attitude towards 57 different ways to say the same thing, and 17 things that appear to be in that class but are nevertheless semantically distinct.
02:18
<&[R]>
Then again, I've hand written somewhat large JSON objects.
02:18
<&McMartin>
JSON is occasionally finicky but it has an ironclad parser that can be expressed in a few hundred lines of raw C
02:18
< ToxicFrog>
YAML is pretty awful to write, there are lots of things that are valid YAML and look pretty close to what you want but actually express something completely different
02:18
< ToxicFrog>
I can't imagine it's much fun to parse, either
02:18
<&Derakon>
Honestly I'm fine with JSON except for the no-trailing-commas rule.
02:19
<&[R]>
That's because it was designed to be eval()'d, and IE shits on that.
02:19
< ToxicFrog>
These days I pull for EDN, falling back to JSON or Lua table constructors if EDN isn't available
02:19
<&Derakon>
Well, and we can't have IE not support something~
02:19
<&[R]>
Thus, you can legitimately blame MS for that.
02:19
<&[R]>
EDN?
02:19
<&McMartin>
Permitting trailing commas is the kind of thing I'd expect would piss off Crockford, actually
02:20
<&McMartin>
Dude is enraged he can't name his variables "if" and "for"
02:20
< ToxicFrog>
[R]: Extensible Data Notation, basically a subset of clojure designed for data serialization
02:20
<&[R]>
Also I get around being annoyed by trailing commas by prefixing the comma instead of trailing them.
02:20
< ToxicFrog>
Very easy to parse, features are strictly a superset of JSON
02:21
<&Derakon>
[R]: ...is a leading comma valid in JSON?
02:21
<&[R]>
No
02:21
<&McMartin>
It's easier to know if you're on your first line than on your last
02:21
<&Derakon>
I suppose that's fair.
02:21
<&[R]>
debug.list.push({
02:21
<&[R]>
res: res
02:21
<&[R]>
,num: num
02:21
<&[R]>
,key: key
02:22
<&[R]>
^ I do that
02:22
< ToxicFrog>
Unfortunately EDN isn't widely supported outside of Clojure.
02:22
<&[R]>
I find it works with vim's line operators a bit nicer than trailing them does.
02:22
< ToxicFrog>
\boatcat{I should write an EDN parser in Lua.}
02:22
<&Derakon>
I take it an EDN parser in Clojure consists basically of eval()?
02:23
< ToxicFrog>
I suspect it used to, but not any more
02:23
< ToxicFrog>
Both because of the "extensible" part and because EDN is a strict subset of clojure that can't be executed
02:23
<&Derakon>
Well, proper sandboxing is desirable.
02:23
<&Derakon>
Which means eval is Satan.
02:24
< ToxicFrog>
But yes, in most cases valid EDN is also a valid Clojure data structure
02:25
<&[R]>
https://github.com/edn-format/edn <-- for some reason loading that page is making FF freeze hard
02:32
< ToxicFrog>
Cool
02:32
<~Vornicus>
ok, quickcheck: madness in a can
02:34
<~Vornicus>
jerith sounds literally nothing like I expected
02:35
<&[R]>
I knew a guy that sounded like Zim
02:35
<&[R]>
That... was a surprise
02:49 * Vornicus grumps at archive.org for not having speed controls
02:52 Vorntastic [Vorn@Nightstar-uhn82m.ct.comcast.net] has quit [Ping timeout: 121 seconds]
02:52 Vorntastic [Vorn@Nightstar-uhn82m.ct.comcast.net] has joined #code
05:20 Derakon is now known as Derakon[AFK]
05:38 * Vornicus writes a simple test for the quadratic case, uses a polynomial with an irrational solution, victory.
06:04 gizmore [kvirc@Nightstar-sf4plu.dip0.t-ipconnect.de] has quit [[NS] Quit: KVIrc 4.9.2 Aria http://www.kvirc.net/]
07:08
<~Vornicus>
...cubic worked
07:08
<~Vornicus>
once I solved all the fucking syntax errors, it just worked.
07:22
<~Vornicus>
I am repeatedly startled that this is working.
07:31
<~Vornicus>
Utterly, stompingly, bethumped. HOW DID I GET THIS RIGHT
07:42
<@abudhabi>
Maybe you're just imagining that it's working.
07:42
<~Vornicus>
no, it's working.
07:42
<~Vornicus>
I should find a more stable polynomial evaluator though
08:04
<&jeroud>
What I really want is a subset of YAML that maps cleanly to JSON but is easier for humans to interact with.
08:04 catadroid` [catadroid@Nightstar-5e7de9.dab.02.net] has quit [Ping timeout: 121 seconds]
08:06
<&jeroud>
But I'll take YAML over XML over JSON for config formats because fuck the lack of comments and trailing commas.
08:07 Kindamoody[zZz] is now known as Kindamoody
08:09
<&McMartin>
The thing about math is that when you get the right answer it's actually the right answer
08:09
<&McMartin>
Because it is an operation of, conceptually, one step
08:09
<@celticminstrel>
My main problem with YAML is that it breaks on tabs.
08:12
<&jeroud>
celticminstrel: It definitely has its problems.
08:13
<&jeroud>
But that's easily solved with editor configuration.
08:14
<&jeroud>
And tabs are terrible anyway. (I wish they weren't.)
08:29 celticminstrel is now known as celmin|sleep
08:52 Kindamoody is now known as Kindamoody|afk
09:07 catadroid [catadroid@Nightstar-jb7hcq.dab.02.net] has joined #code
10:44 Vorntastic [Vorn@Nightstar-uhn82m.ct.comcast.net] has quit [Connection closed]
10:46 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
11:06 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
12:03 ion [Owner@Nightstar-6grqph.vs.shawcable.net] has quit [Ping timeout: 121 seconds]
12:06 ion [Owner@Nightstar-6grqph.vs.shawcable.net] has joined #code
12:06 mode/#code [+o ion] by ChanServ
12:22 ion [Owner@Nightstar-6grqph.vs.shawcable.net] has quit [Ping timeout: 121 seconds]
12:25 ion [Owner@Nightstar-6grqph.vs.shawcable.net] has joined #code
12:25 mode/#code [+o ion] by ChanServ
12:32 gizmore [kvirc@Nightstar-s785es.dip0.t-ipconnect.de] has joined #code
13:07 celmin|sleep is now known as celticminstrel
15:30 catadroid [catadroid@Nightstar-jb7hcq.dab.02.net] has quit [Ping timeout: 121 seconds]
17:00 gizmore [kvirc@Nightstar-s785es.dip0.t-ipconnect.de] has quit [[NS] Quit: KVIrc 4.9.2 Aria http://www.kvirc.net/]
18:05
<@abudhabi>
TheWatcher: How do I say "any characters but not any newlines" in Perl regexps? What I'm working on is: perl -pi -e 's/^<any characters but not newlines> = -\d+//e' *.txt
--- Log closed Sun Sep 04 18:23:00 2016
--- Log opened Sun Sep 04 18:30:20 2016
18:30 TheWatcher [chris@Nightstar-mgq.2uj.71.82.IP] has joined #code
18:30 Irssi: #code: Total of 38 nicks [32 ops, 0 halfops, 0 voices, 6 normal]
18:30 mode/#code [+o TheWatcher] by ChanServ
18:30
<@abudhabi>
TheWatcher: Is Perl fucked on Windows?
18:31 Irssi: Join to #code was synced in 53 secs
18:54
<&[R]>
There are things that aren't fucked up on Windows?
18:58 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
18:58 mode/#code [+qo Vornicus Vornicus] by ChanServ
19:00
<&McMartin>
[R]: Python is the best at bridging the gaps between Unixy and Windows of any language I've ever seen
19:01
<&McMartin>
Also, if you're writing advanced OpenGL code on Linux, you'll have an easier time getting it running on Windows than on Mac these days
19:01
<&McMartin>
Because Apple is stalled at like 4.1 >_<
19:17 * abudhabi uses Notepad2 to regex shit, because there it actually sort of works.
19:50 * celticminstrel spots a Fisher-Yates shuffle, wonders if it would be bad to replace it with std::shuffle.
19:53
<@celticminstrel>
(At least, the comment says it's FIsher-Yates. I'm not gonna check and make sure it really is.)
19:53
<@celticminstrel>
20:04 Kindamoody|autojoin is now known as Kindamoody
22:00
<&McMartin>
Not quite a code question but close...
22:00
<&McMartin>
I'm trying to configure a new account on a system to accept SSH logins via RSA keys
22:01
<&McMartin>
Generate the key with putty-keygen, export in openssh format, stick it in that account's ~/.ssh/authorized_keys which creates the file because the account is new at this
22:01
<&McMartin>
Is there anything else I have to do to get sshd to notice? sshd_config seems to be pointing at that file as the location of the Authorized Keys file.
22:02
<~Vornicus>
sshd shouldn't need more help
22:02
< ToxicFrog>
Check the sshd logs, but usually when you have the key in ~/.ssh/authorized_keys but it's not working, this means one of two things:
22:03
< ToxicFrog>
- username mismatch between the two systems, and you didn't tell the client to send the right username
22:03
< ToxicFrog>
- permissions on ~/.ssh or ~/.ssh/authorized_keys are wrong, and sshd is refusing to trust it
22:03
<&McMartin>
... it could very easily be both
22:04
<&McMartin>
... but it was the latter, because new file. Cheers!
22:05
< ToxicFrog>
I've done this to myself enough times to get good at debugging it
22:05
< ToxicFrog>
~
22:06
<&McMartin>
Furthermore, PuTTY is smart enough to shift over to keys again even when started with no username specified, once you've typed *in* a username, so cheers for that too.
22:06 himi [sjjf@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
22:06
<&McMartin>
And yeah, the last time I had to deal with this was probably when I set up Zinglon over ten years ago
22:07
<&McMartin>
Every other case it's been "hand public key to co-worker and they'll take care of it"
22:10
< ToxicFrog>
I get the usernames wrong a lot, since e.g. I have keys for logging into isis as root, but not as myself or as symbol
22:11
< ToxicFrog>
Permissions less often -- I can't actually remember the last time I did that -- but at some point it clearly happened enough that "check the permissions" is my immediate reflex for debugging ssh issues.
22:11
<&McMartin>
Yeah, permissions is a thing that only really needs to be set once
22:12
<&McMartin>
So it comes up every time you provision a new account, not every time you set up a new computer to log into that machine
22:12
<&McMartin>
I turns out I *had* managed to do all the steps for the latter right~
22:19
< ToxicFrog>
I set up new users surprisingly frequently, apparently.
22:20 Kindamoody is now known as Kindamoody[zZz]
22:23 * McMartin ponders this mess of a directory structure
22:23
<&McMartin>
OK, now my problem is that there are multiple "users" but they are secretly all me and I have a variety of systems that are using incompatible versions of OpenSSH and/or levels of integration with PuTTY.
22:23
<&McMartin>
But I can fix that
22:24 * ToxicFrog emerges from the depths of the ancilla backups, covered in symlink cobwebs
22:24
< ToxicFrog>
Mess of a directory structure, you say
22:24
< ToxicFrog>
(conversation about first programming languages elsenet sent me on a quest for the net3d source. It turns out my dad was just as bad at filesystem organization as I am.)
22:27
< ToxicFrog>
...and that leads me to the thought of "describe arbitrary games in the 'The noun is adjective. It must be verbed. You have a noun.' format."
22:27 VirusJTG [VirusJTG@Nightstar-055.kas.104.208.IP] has quit [[NS] Quit: Leaving]
22:27
< ToxicFrog>
(net3d: the tree is here. It must be built. You are a fish.)
22:27 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
22:27 mode/#code [+ao VirusJTG VirusJTG] by ChanServ
22:28
< ToxicFrog>
Now I kind of want to make a first person filesystem browser for this.
22:28
<&McMartin>
Don't several already exist, can't you just point it at them~
22:29
<&Derakon>
I seem to remember one that was an FPS, in fact, where if you killed a file, it would be deleted for you.
22:30
< ToxicFrog>
I've seen a few, but all of them were, basically, joke programs based on doom that only supported ls, cd, and rm
22:31
< ToxicFrog>
I want something for exploring the depths of ancient backups, so I want cat, (l)stat, tar tv, etc
22:31
< ToxicFrog>
Dynamic lighting with oil lamps and/or flaring torches a bonus
22:32
<&Derakon>
Switches to reveal hidden files?
22:33
< ToxicFrog>
Yes!
22:35
<&McMartin>
Sounds like a project
22:35
<&McMartin>
Meanwhile, SUCCESS
22:36
<&McMartin>
I have gotten Visual Studio Code to be able to talk to both Github and my home dev system without either knowing about the other
22:37
<@Tamber>
FPA: "Vessel Studio", was wondering why you were condemning your code to the open ocean.
22:44
<&McMartin>
"There have been 20 failed attempts to log into your account since your last login."
22:44
<&McMartin>
aka "attempts to sort out which version of SSH is trying to load which keys from where"
23:19 * McMartin then goes to write a Bumbershoot article, because it's been over two months.
23:22
<~Vornicus>
hoorumbershoot for bumbershoot
23:27
<&McMartin>
OTOH, the code I'm writing up is over three months old
23:27
<&McMartin>
I have to remind myself what I was doing
23:28 * Vornicus tries to think of how to describe games in the above format
23:28
<@ErikMesoy>
Arkanoid: The wall is blocks. It must be dismantled. You have a trampoline.
23:28
<&Derakon>
What format?
23:29
<~Vornicus>
that format
23:29
<&McMartin>
The endpoint of the project is http://hkn.eecs.berkeley.edu/~mcmartin/retro/bumber_ii.dsk
23:29
<&Derakon>
Oh, an hour ago.
23:29
<&McMartin>
It's the "make every game into For A Change" model
23:29
<&McMartin>
(For A Change was an IF made by one of the line programmers for Ultima Underworld, who then went on to invent Guitar Hero and Rock Band.)
23:30
<&McMartin>
(It opens with "The sun is gone. It must be brought. You have a rock.")
23:31
<@ErikMesoy>
Elder Scrolls series: "The world is big. It must be explored. You have a criminal record."
23:35
<~Vornicus>
the world is poisoned. it must be blown up. you have an arm cannon.
23:35
<&McMartin>
... Metroid 2, FF7, or XCOM: Enemy Within?
23:36
<~Vornicus>
I was aiming for Metroid in general
23:36
<~Vornicus>
Few planets survive the samusing.
23:37
<&McMartin>
Zebes did! Once.
23:37
<&McMartin>
Possibly up to three times, if we take MZM as canon!
23:38
<&McMartin>
(Since there are two visitations in the game proper and an intimation that she had visited as a young girl.)
23:39
<&McMartin>
I guess SRR738 also survived its initial Samusing, but not its subsequent one.
23:39
<&McMartin>
I haven't played the Prime series so I don't know what her record is like over there.
23:40
<~Vornicus>
388.
23:40
<~Vornicus>
tallon iv I don't know if it survives; the temple definitely blows up though
23:40
<~Vornicus>
aether survives but dark aether doesn't.
23:40
<&McMartin>
Architecture blowing up is fine by the planet
23:41
<~Vornicus>
I guess all the planets except Phaaze survive.
23:52
< ToxicFrog>
McMartin: where do the other two times come from?
23:53
<&McMartin>
In MZM?
23:53
<&McMartin>
So, the events in Metroid 1 are visit 2
23:53
<&McMartin>
The events in MZM *after* Metroid 1 are visit 3 because Samus leaves the planet before re-crashlanding on it.
23:54
<&McMartin>
And the final still scene in the game zooms in on the corner of the room where you got the gravity suit to find an engraving I read as "Samus drew a picture on the wall here as a little girl" which would be visit 1.
--- Log closed Mon Sep 05 00:00:13 2016
code logs -> 2016 -> Sun, 04 Sep 2016< code.20160903.log - code.20160905.log >

[ Latest log file ]