←2011-11-01 2011-11-02 2011-11-03→ ↑2011 ↑all
00:03:06 <elliott> Gregor: I mean, it's more work on whatever's driving cunionfs, but I think achieving the same without something this generic is basically impossible.
00:09:12 -!- pikhq has joined.
00:09:21 -!- pikhq_ has quit (Ping timeout: 248 seconds).
00:22:26 <pikhq> elliott: About how easy do you think creating a package is going to be with kitten? (please say trivial)
00:22:51 <elliott> pikhq: Like, three, four lines for a GNU package?
00:23:12 <elliott> Add another one to that if it's "GNU-ish" (autotools and the like) but not a GNU package (so you have to specify a tarball location).
00:23:20 <elliott> So yeah, trivial.
00:23:31 <pikhq> So, nothing obscene like ebuilds, or Debian. Good.
00:24:26 <elliott> I mean, it'll get longer if you specify your own configuration options and the like (packages have configs in Kitten).
00:24:39 <elliott> And a little longer if there's a service.
00:24:55 <elliott> And /ideally/ if there's configuration you should expose that so it can all be done in a unified manner, but...
00:25:00 <elliott> Yeah, four lines for simple stuff.
00:35:16 <elliott> # For UML and non-PC, just ignore all options that don't apply (We are lazy).
00:35:16 <elliott> ignoreConfigErrors = (userModeLinux || stdenv.platform.name != "pc");
00:35:16 <elliott> Pro
00:46:59 -!- oerjan has joined.
00:55:38 <elliott> hi oerjan
00:55:44 <oerjan> hi elliott
00:58:03 <elliott> hi oerjan
00:59:03 <oerjan> hi elliott
00:59:19 -!- pikhq_ has joined.
00:59:24 <elliott> hi oerjan
00:59:29 -!- pikhq has quit (Ping timeout: 258 seconds).
00:59:39 <shachaf> hi oerjan
00:59:50 <elliott> no uyuo ruined it
01:00:00 <oerjan> hi shachaf
01:00:07 <shachaf> Bah, that uyuo.
01:00:22 <oerjan> such a spoilsport
01:03:17 <oerjan> the mezzacotta comic is ominous today.
01:07:16 <oklopol> hi shachaf
01:07:24 <shachaf> oklopol hi
01:07:36 <oklopol> elliott: hi
01:07:45 <elliott> hi
01:17:39 <shachaf> elliott wins
01:18:22 -!- Sgeo|web has joined.
01:26:00 <pikhq_> Man. There's organizations advocating the use of romaji or kana for Japanese writing exclusively.
01:26:13 <pikhq_> They themselves publish their material in standard Japanese script.
01:26:18 <pikhq_> FAIL
01:28:39 <oerjan> well if they published it in more than one form it would be ok...
01:29:12 <oerjan> it's hard to do marketing if the audience doesn't understand you :P
01:29:42 <pikhq_> Essentially every Japanese speaker can read romaji or kana.
01:30:18 <oerjan> as easily as standard format?
01:30:36 <pikhq_> Romaji is just the Latin alphabet, as used for romanization of Japanese, and kana is the phonetic script used in Japanese, in conjunction with Chinese characters.
01:31:09 <oerjan> or wouldn't be sort of like funetikal inglish, wer yu kan rid it but it is slow an awkward?
01:31:16 <oerjan> *it be
01:31:37 <pikhq_> It'd be slow and awkward like funetikal inglish, yes.
01:31:52 <pikhq_> For much the same reasons, in fact.
01:32:29 <oerjan> mhm
01:32:54 <oklopol> oh good point
01:32:58 <pikhq_> Except, of course, that romaji and kana are actually *taught* in public education, as knowledge of both are necessary for literacy. :)
01:33:27 <oklopol> i press half-
01:33:29 <oklopol> baked
01:33:36 <oklopol> then realize this is the best comic ever
01:33:37 <oklopol> http://www.mezzacotta.net/archive.php?date=1281-04-18&vote=3
01:34:16 <monqy> oh no you made me vote 3
01:34:42 <oklopol> i did?
01:34:58 <pikhq_> It also doesn't help that the current linguistic trends are in the *opposite* direction from what they advocate. Japanese is slowly but surely increasing the amount of kanji used. :)
01:35:07 <monqy> either that or it just said "thanks for helping us bake this comic"
01:35:10 <monqy> maybe it's just weird
01:35:21 <oklopol> oh lolol
01:35:37 <oklopol> yeah don't press that link ppl :D
01:35:38 <oerjan> better clip off the part from & on
01:35:54 <oklopol> http://www.mezzacotta.net/archive.php?date=1281-04-18 BETTER LINK
01:35:56 <oklopol> http://www.mezzacotta.net/archive.php?date=1281-04-18 BETTER LINK
01:35:56 <oklopol> http://www.mezzacotta.net/archive.php?date=1281-04-18 BETTER LINK
01:35:56 <oklopol> http://www.mezzacotta.net/archive.php?date=1281-04-18 BETTER LINK
01:36:02 <oklopol> JUST IN CASE
01:36:09 <oklopol> SOMEONE READS THE LOGS IN ORDER
01:36:42 <oerjan> i'll balance it out with a 2 >:)
01:36:58 <oklopol> nnnnnooooooooooooooooooooooooo
01:41:31 <oklopol> http://www.mezzacotta.net/archive.php?date=1748-04-04
01:43:57 <monqy> yes good
01:46:45 <oerjan> isn't that from the hall of fame, istr it or a similar one
01:47:56 <oerjan> indeed it is
01:57:56 * oerjan smells a monthly windows update check
02:08:27 -!- Lymia has quit (Remote host closed the connection).
02:17:47 <oerjan> hm or not
02:29:52 -!- Madoka-Kaname has joined.
02:29:52 -!- Madoka-Kaname has quit (Changing host).
02:29:52 -!- Madoka-Kaname has joined.
02:36:14 <Gregor> elliott: Please note that I also have no experience with kernel modules :P
02:42:20 <elliott> Gregor: Oh dear :P
02:42:54 <elliott> Gregor: That's especially worrying considering that unionfs and aufs are both large codebases :P
02:43:38 <elliott> Well.
02:43:41 <elliott> Not that large, but still.
02:46:15 <Gregor> Frankly I don't think it would be wise to start from an existing codebase. Dynamic per-process union is in some ways fundamentally different from static (or changeable only for all processes) per-system union ...
02:48:09 <elliott> Gregor: Oh yeah I totally agree
02:48:15 <elliott> Gregor: I'm just saying, hard task :P
02:48:26 <elliott> Gregor: OTOH it's likely that the existing solutions are filled with cruft and overcomplication.
02:48:34 <elliott> So it's probably not worth worrying too much about it :P
02:51:09 <elliott> But yeah, if you have any ideas for atomic branch-changing of multiple processes that'd be nice, since the only interfaces I can think of are kinda ugly...
02:56:26 * Gregor googles for "how to write a kernel module", because that's how he rolls.
02:58:19 -!- Darth_Cliche has joined.
02:59:49 <oerjan> it's the dark side of bad writing!
03:00:28 <elliott> Gregor: Doesn't the kernel come with docs on that :P
03:01:35 <Gregor> elliott: Yeah, and that was the first Google result!
03:01:50 <elliott> Gregor: You forgot to append "for dummies".
03:02:03 <elliott> I would buy "Linux Kernel Module Writing For Dummies".
03:02:50 <Gregor> X-D
03:03:10 <Gregor> I seem to recall once having a book titled The Idiot's Guide for Dummies.
03:03:28 <elliott> Brain Surgery for Dummies
03:03:52 <elliott> It's easier than when you're working on a smart person's brain.
03:06:13 <elliott> I was thinking that maybe outside package updates /shouldn't/ propagate into a "with <some other constraint>" context after all because the libblah version changing mid-build is not what you want. But I think that's wrong because, well, it's your own fault for upgrading while running a build outside of the system.
03:06:26 <elliott> So yeah, still needs more logic than a simple "this but with more directories" system.
03:16:17 -!- Sgeo|web has quit (Ping timeout: 265 seconds).
03:20:54 -!- MDude has changed nick to MSleep.
03:37:31 -!- centrinia has quit (Quit: Leaving).
03:43:38 <elliott> pikhq_: There's no way to change gcc's default flags easily, right?
03:43:45 <elliott> At least I gather that modifying spec files is a huge pain
03:46:25 <pikhq_> Just spec files.
03:46:52 <pikhq_> Though it's actually not that hard to modify a spec file after the GCC build is done.
03:46:57 <pikhq_> It's just a text file.
03:47:55 <elliott> pikhq_: Hmm... where's it stored?
03:48:06 <oerjan> Gregor: What about The Complete Idiot's Guide to Dummies?
03:49:33 <oerjan> oh hm
03:50:01 <pikhq_> elliott: $prefix/lib/gcc/$tuple/$version/specs
03:50:17 <oerjan> http://www.amazon.co.uk/Complete-Idiots-Guide-Dummies-Stupidity/dp/1580081746
03:50:24 <elliott> pikhq_: ls: cannot access /usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/specs: No such file or directory
03:50:33 <pikhq_> By default, a spec file is not actually installed there, and gcc uses one that's compiled in; use -dumpspecs to get that.
03:50:42 <elliott> Ah.
03:50:43 <pikhq_> However, if the spec file *is* there gcc uses it instead.
03:50:48 <elliott> %{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S: %(linker) %{!fno-use-linker-plugin:%{flto|flto=*|fuse-linker-plugin: -plugin %(linker_plugin_file) -plugin-opt=%(lto_wrapper) -plugin-opt=-fresolution=%u.res %{!nostdlib:%{!nodefaultlibs:%:pass-through-libs(%(link_gcc_c_sequence))}} }} %{flto|flto=*:%<fcompare-debug*} %{flto} %{flto=*} %l %{pie:-pie} %X %{o*} %{e*} %{N} %{n} %{r} %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:
03:50:48 <elliott> %{!nostartfiles:%S}} %{static:} %{L*} %(mfwrap) %(link_libgcc) %o %{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)} %(mflib) %{fsplit-stack: --wrap=pthread_create} %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}} %{!nostdlib:%{!nostartfiles:%E}} %{T*} }}}}}}
03:50:53 <elliott> I...
03:51:08 <pikhq_> Okay, so it's a bit obtuse because they stick a lot of logic in it.
03:51:20 <oerjan> a paragon of readability
03:51:29 <pikhq_> Like, this is how they actually implement many of the flags.
03:51:44 <elliott> http://sprunge.us/IDUC
03:51:47 <elliott> It's... not too bad.
03:52:08 <elliott> pikhq_: How portable are the built-in files?
03:52:10 <elliott> One per architecture?
03:52:25 <elliott> Just wondering how I could /generically/ modify one in a portable package...
03:52:55 <pikhq_> elliott: The built-in spec file is basically a generic file with a few arch-specific bits filled in.
03:53:02 <elliott> Right.
03:53:15 <pikhq_> For instance, the path to the dynamic linker, and the m64/m32 logic.
03:53:38 <elliott> Is there a way to override the path to the dynamic linker at some stage /before/ mucking with spec files? :P
03:53:56 <pikhq_> Yes, but that's mucking with GCC source instead.
03:53:56 <elliott> I suppose that's a binutils thing too... (for ld(1))
03:54:08 <elliott> pikhq_: Suxx
03:54:19 <elliott> How do I do it for ld(1) :P
03:54:42 <pikhq_> ld(1) is ignorant of it.
03:55:39 <pikhq_> Its only knowledge of the dynamic linker comes from an argument to it.
03:56:04 <elliott> pikhq_: Huh, I thought it could link without specifying that...
03:56:27 <pikhq_> You *really* are not meant to call ld directly.
03:57:51 <elliott> OK, I guess I can make this work then.
03:58:07 <coppro> 23:55:52 < pikhq_> You *really* are not meant to call ld directly.
03:58:09 <coppro> what
03:58:28 <pikhq_> coppro: For general-purpose "building a normal program" use, I mean.
03:58:50 <pikhq_> Obviously, if you're doing, well, anything more complicated then you should.
03:59:31 <elliott> i like how coppro quoted something literally two lines up
03:59:54 <pikhq_> Probably the best example of a good time to use ld is building a kernel.
04:00:25 <pikhq_> Though I suppose you *could* go through the compiler frontend there, it's really acting as a giant no-op.
04:02:17 <elliott> coppro: Tell me clang has a better way to modify this shit than spec files
04:08:53 <Gregor> pikhq_: -ffreestanding, dawg
04:09:35 <pikhq_> Gregor: BAH
04:09:59 <elliott> Hmmm, I wonder if I am sold on Nix's runtime dependency model
04:10:44 <elliott> It doesn't have any false positives, but I'm not entirely convinced it has no false negatives either
04:12:13 <elliott> I solved the atomic branch change problem Gregor, you just need to write it as an @ module and you'll get atomicity FOR FREE :|
04:12:18 * elliott helpful
04:27:46 <coppro> elliott: I don't know what spec files are
04:27:49 <coppro> so I dunno
04:28:11 <elliott> coppro: How'd I build clang to use a different path to the dynamic linker
04:28:20 <elliott> Specs files are http://sprunge.us/IDUC :P
04:33:39 <coppro> elliott: oh, ok, not quite that bad I don't think
04:33:42 <coppro> but kinda bad
04:34:00 <coppro> I think Driver/Driver.cpp or DriverOpts or something is where that is processed
04:34:03 <coppro> it's all hardcoded
04:34:29 <elliott> coppro: well it's easy with gcc too if i patch the source :P
04:44:06 <elliott> pikhq_: Bah, I might need to make / a unionfs after all
04:45:20 -!- DCliche has joined.
04:47:28 -!- Sgeo|web has joined.
04:48:48 -!- Darth_Cliche has quit (Ping timeout: 260 seconds).
05:00:45 <elliott> "the C library function system() has a hard-coded reference to /bin/sh."
05:00:47 <elliott> glibc, friends. glibc.
05:02:13 <oerjan> so very glib, c
05:02:32 <Sgeo|web> Hey, who has libc.so ?
05:02:41 <oerjan> ssssssssssssh
05:02:48 <oerjan> we don't talk about that here
05:02:55 <elliott> hey Gregor ;D
05:03:50 <pikhq_> elliott: Hmm. I'm not sure what it could do other than be compiled with a reference to the shell.
05:04:02 <pikhq_> Admittedly, it should be a configuration option.
05:04:33 -!- Patashu has joined.
05:05:04 <Sgeo|web> What happened with libm.so, that's Gregor's right?
05:19:18 <Gregor> Nope, I have libdl.so.
05:20:18 -!- bd_ has quit (Ping timeout: 260 seconds).
05:20:23 -!- bd_ has joined.
05:46:17 -!- DCliche has quit (Quit: You are now graced with my absence.).
06:02:28 <elliott> Yay, I think the Secret Project actually does help me immensely.
06:02:38 <elliott> This is worrying; I now depend on both ais523 and Gregor.
06:11:38 <elliott> oerjan: you should really look forward to the near future, wherein you get to deal with me implementing a lazy functional language from scratch
06:11:39 <elliott> >:D
06:12:02 <oerjan> i can help a lot with laziness, yes
06:12:49 <elliott> oh snap.e
06:14:03 <elliott> wow oerjan is snape my typoes lead to discoverieres
06:15:44 <elliott> man tcb passwords will fit so well with this system. so well.
06:17:12 <elliott> hmm! since nix is like a functional make, i wonder what a functional tup would look like... oh ... wait ... oh god
06:17:18 <elliott> pikhq_: tup is the upstart of build systems
06:18:40 <elliott> pikhq_ quick be mortified with me
06:18:59 <pikhq_> Oh. Dear.
06:19:22 <elliott> It is literally based on the events-over-dependencies model oh god tup cannot handle only building some targets.
06:19:40 <elliott> oerjan I need to get very, very drunk help me out here do you have alcohol in Trondheim I have booked a plane ticket.
06:20:33 <pikhq_> elliott: Actually, tup can handle only building some targets.
06:20:48 <elliott> pikhq_: How?
06:21:12 <pikhq_> I have no idea on the implementation details, but "tup upd foo" will only build foo and its dependencies.
06:21:37 <elliott> pikhq_: I suspect it marks what targets every target "contributes" to in the DB.
06:21:51 <elliott> Which is... just an emulation of the dependency model, fast only because it's cached.
06:23:13 <oerjan> elliott: sure, it's just ten times as expensive as in england, is all
06:23:32 <elliott> oerjan: oh don't worry. i won't be needing my money any more.
06:24:13 <oerjan> o kay
06:24:18 <elliott> @ask ais523 How does the Secret Project handle scheduling being non-deterministic?
06:24:18 <lambdabot> Consider it noted.
06:24:45 <elliott> @ask ais523 Also, what kind of incredibly rough time estimate would you give for an open-source release of working code?
06:24:46 <lambdabot> Consider it noted.
06:28:45 <elliott> oerjan: btw i am dead serious about looking forward to the near future. you are going to have so much fun.
06:29:12 <elliott> >:D >:D >:D> :D>:D> :D> :SD: S:A"|D: AS"|d;
06:30:21 <oerjan> zombie smilies
06:31:28 <elliott> noooo nixos-jfp-final.pdf is so short i have already read it all
06:31:34 <elliott> you betrayed me paper
06:31:58 <CakeProphet> elliott: http://thepiratebay.org/torrent/6554331/Papers_from_Philosophical_Transactions_of_the_Royal_Society__fro
06:32:01 <CakeProphet> have fun.
06:32:16 <elliott> too big........
06:32:48 <CakeProphet> CAN'T HAVE YOUR CAKE AND EAT IT WAIT WHAT THAT MAKES NO SENSE.
06:33:26 <elliott> http://content.yieldmanager.edgesuite.net/atoms/5a/10/ce/6b/5a10ce6be873ac8fc50583ea7bddb9.jpg ;; this ad..................
06:33:36 <elliott> GET YET GENETICALLY MODIFIED WOMEN WITHOUT THE ABILITY TO SAY "NO"
06:33:40 <elliott> s/YET/YER/
06:33:58 <CakeProphet> elliott: I'm sorry but my internet is adfree
06:34:07 <elliott> you're missing out on so much
06:34:11 <elliott> ads have become truly surreal lately
06:34:19 <CakeProphet> in fact, when I try to pull up that image in a tab by itself
06:34:24 <CakeProphet> adblock removes it.
06:34:27 <CakeProphet> so I clicked that
06:34:33 <elliott> it's trying to make your life worse.
06:34:35 <CakeProphet> and it turned into a blank tab. so I had to refresh rapidly to see it.
06:35:29 <CakeProphet> elliott: I don't know it's pretty nice. I go to websites and only see typical internet shit
06:35:45 <CakeProphet> instead of all this other, lower-quality internet shit around the top, bottom, and sides.
06:36:12 <CakeProphet> I kind of forgot that thepiratebay had ads, actually.
06:36:32 <CakeProphet> does facebook have ads?
06:36:54 <CakeProphet> a few.
06:37:41 <elliott> man, they're still trying to prosecute aaron swartz?
06:37:55 <CakeProphet> prose. cute.
06:38:02 <elliott> CakeProphet: ?
06:38:13 <CakeProphet> that's how I read prosecute after looking at it again.
06:38:35 <elliott> heh
06:39:11 <CakeProphet> Aaron Swartz is a heroic swashbuckler of the internet.
06:39:35 <elliott> you're thinking of guybrush threepwood
06:42:28 <CakeProphet> ...who?
06:42:40 <CakeProphet> Cake "too lazy to google" propoojweijwei2kker
06:43:17 <elliott> uh
06:43:33 <elliott> anyone who doesn't know who guybrush threepwood is lives a very sad life
06:43:39 <elliott> and needs to play the first two monkey island games
06:43:52 <CakeProphet> nah
06:43:56 <elliott> (third is decent, laters are crap)
06:44:01 * CakeProphet plays CALL OF DOOTY BLACK OP ZOMBIES FUCK YEAAAAAH
06:44:05 <elliott> CakeProphet: no. you _really_ need to.
06:44:07 <CakeProphet> also dwarf fortress.
06:44:24 <elliott> ron gilbert is judging you. tim schafer is judging you.
06:44:27 <elliott> feel their judgment.
06:44:38 <CakeProphet> ouch.
06:44:54 <elliott> i even heard a mutter from schafer. he thinks you probably haven't even played grim fandango. i don't think he likes you any more, CakeProphet/.
06:45:05 <CakeProphet> incidentally snake is the best game ever made.
06:45:09 <CakeProphet> but only with no walls.
06:45:15 <CakeProphet> and wraparound screen.
06:45:33 <CakeProphet> it's a fascinating and telling metaphor for hubris.
06:47:12 <CakeProphet> the walls ruin the game completely.
06:47:37 <CakeProphet> as it confines you. it's no longer just about your vainglorious lust for little square pixel foods.
06:48:01 <elliott> Seriously though anyone who hasn't played the first two Monkey Island games has lead an incomplete life.
06:50:52 <elliott> CakeProphet thinks I'm joking; I'm not joking.
06:52:50 <CakeProphet> elliott: did you play amazon trail?
06:52:57 <CakeProphet> that game was better.
06:53:13 <elliott> CakeProphet: I'm going to rip your limbs apart.
06:53:27 <elliott> RIP YWROUIER;SDF WEHT LIMBS FKGOP
06:54:06 <CakeProphet> The score largely consists of reggae, Caribbean and dub-inspired music.
06:54:23 * CakeProphet lights a blunt and plays some Monkey Island.
06:55:02 <elliott> oh, new homestuck. time to sleep.
06:55:16 <CakeProphet> wat
06:55:17 <elliott> CakeProphet: play the secret of monkey island for fuck's sake. download scummvm. you can find the thing on any site. get the cd version so you get the mt-32 score.
06:55:22 <elliott> do it.
06:55:35 <CakeProphet> I'll totally do that, howeve
06:55:35 <CakeProphet> r
06:55:42 <CakeProphet> I will not tell you anything about my gameplay experience.
06:58:49 -!- monqy has quit (Quit: hello).
07:00:19 -!- elliott has quit (Ping timeout: 276 seconds).
07:01:03 <CakeProphet> sometimes I feel like dedicating my whole life to the creation of perfect video games.
07:05:28 <CakeProphet> for example
07:05:35 <CakeProphet> Blind Psychic Kung Fu Master
07:05:43 <CakeProphet> in which you play a... blind psychic Kung Fu master.
07:06:07 <CakeProphet> you play the game entirely with audio cues.
07:06:52 <CakeProphet> you also have sound-based psychic senses that you can use, like sonar.
07:08:58 <CakeProphet> also a slow-motion power in which you fine-tune your highly trained kung fu master reflexes for a brief while.
07:09:58 <CakeProphet> also but there will be spectacular epic fight cutscenes.
07:10:07 <CakeProphet> with no graphics.
07:12:24 <CakeProphet> I guess there could be some kind of helpful visual interface.
07:12:31 <CakeProphet> but the idea would be that the entire game is playable by a blind person.
07:14:24 <Sgeo|web> CakeProphet: Epdeet
07:14:27 <Sgeo|web> Updoot
07:14:37 <Sgeo|web> NOW NOW NOW
07:15:26 <CakeProphet> wat
07:15:49 -!- GreaseMonkey has quit (Quit: The Other Game).
07:15:50 <CakeProphet> I'm just going to wait 5 years from now after he finishes the whole thing
07:15:57 <CakeProphet> and then just read/watch/play all of homestuck.
07:16:07 <Sgeo|web> Just. Watch. Now.
07:16:12 <Sgeo|web> Noooooooow
07:16:25 <CakeProphet> fine.
07:22:17 <CakeProphet> longest load screen ever.
07:29:01 <Sgeo|web> I assume you've seen it by now?
07:29:22 <Sgeo|web> Or do you mean as the loader of the intermission?
07:29:36 <Sgeo|web> (i.e. you're joking)
07:32:33 <CakeProphet> cascade
07:32:34 <Sgeo|web> CakeProphet: there's a weird bug when you click replay
07:32:38 <CakeProphet> no I haven't seen it.
07:32:55 <Sgeo|web> ...you haven't seen Cascade yet?
07:33:08 <Sgeo|web> Go watch that, then the first [S] of the intermission
07:33:35 <CakeProphet> ....I'm watching it right now, obviously.
07:33:38 <CakeProphet> as I just talked about it loading...
07:34:41 <CakeProphet> dude this Cascade thing must have taken forever to mak =.
07:36:05 -!- oerjan has quit (Quit: This thing needs a reboot).
07:43:14 -!- oerjan has joined.
07:48:54 <Sgeo|web> @tell elliott Homestuck update.
07:48:55 <lambdabot> Consider it noted.
07:49:43 <Sgeo|web> @tell Phantom_Hoover Homestuck update.
07:49:44 <lambdabot> Consider it noted.
07:50:19 <CakeProphet> Sgeo|web: I think elliott knows..
07:52:29 <Sgeo|web> Oh, I see it now
07:52:39 <Sgeo|web> Well, night all
08:12:36 -!- Ngevd has joined.
08:33:22 -!- copumpkin has quit (Ping timeout: 248 seconds).
08:33:53 -!- Ngevd has quit (Ping timeout: 248 seconds).
08:33:55 -!- copumpkin has joined.
08:58:16 -!- asw has joined.
09:22:22 -!- oerjan has quit (Quit: leaving).
09:40:10 -!- asw has quit (Quit: Leaving).
10:29:08 -!- Sgeo|web has quit (*.net *.split).
10:29:12 -!- Madoka-Kaname has quit (*.net *.split).
10:29:13 -!- FireFly has quit (*.net *.split).
10:29:15 -!- oklopol has quit (*.net *.split).
10:29:15 -!- Slereah_ has quit (*.net *.split).
10:29:15 -!- quintopia has quit (*.net *.split).
10:29:16 -!- variable has quit (*.net *.split).
10:29:16 -!- lifthrasiir has quit (*.net *.split).
10:29:18 -!- pikhq_ has quit (*.net *.split).
10:29:19 -!- Nisstyre has quit (*.net *.split).
10:29:19 -!- Zwaarddijk has quit (*.net *.split).
10:29:22 -!- yorick has quit (*.net *.split).
10:29:23 -!- twice11 has quit (*.net *.split).
10:29:24 -!- lambdabot has quit (*.net *.split).
10:29:25 -!- CakeProphet has quit (*.net *.split).
10:29:27 -!- Patashu has quit (*.net *.split).
10:29:29 -!- HackEgo has quit (*.net *.split).
10:29:31 -!- atehwa has quit (*.net *.split).
10:29:34 -!- EgoBot has quit (*.net *.split).
10:29:34 -!- shachaf has quit (*.net *.split).
10:29:35 -!- Deewiant has quit (*.net *.split).
10:29:35 -!- fungot has quit (*.net *.split).
10:29:35 -!- fizzie has quit (*.net *.split).
10:29:41 -!- coppro has quit (*.net *.split).
10:29:43 -!- chickenzilla has quit (*.net *.split).
10:29:44 -!- aloril has quit (*.net *.split).
10:29:47 -!- bd_ has quit (*.net *.split).
10:29:49 -!- MSleep has quit (*.net *.split).
10:29:49 -!- SimonRC has quit (*.net *.split).
10:29:50 -!- yiyus has quit (*.net *.split).
10:29:50 -!- ineiros has quit (*.net *.split).
10:29:50 -!- mycroftiv has quit (*.net *.split).
10:29:50 -!- rodgort has quit (*.net *.split).
10:29:52 -!- myndzi has quit (*.net *.split).
10:29:54 -!- mtve has quit (*.net *.split).
10:33:31 -!- glogbackup has joined.
10:33:32 -!- bd___ has joined.
10:33:32 -!- derrik has joined.
10:33:32 -!- Patashu has joined.
10:33:32 -!- Madoka-Kaname has joined.
10:33:32 -!- pikhq_ has joined.
10:33:32 -!- lambdabot has joined.
10:33:32 -!- Zwaarddijk has joined.
10:33:32 -!- atehwa has joined.
10:33:32 -!- oklopol has joined.
10:33:32 -!- CakeProphet has joined.
10:33:32 -!- Slereah_ has joined.
10:33:32 -!- coppro has joined.
10:33:32 -!- FireFly has joined.
10:33:32 -!- quintopia has joined.
10:33:32 -!- yorick has joined.
10:33:32 -!- variable has joined.
10:33:32 -!- EgoBot has joined.
10:33:32 -!- shachaf has joined.
10:33:32 -!- lifthrasiir has joined.
10:33:32 -!- chickenzilla has joined.
10:33:32 -!- fizzie has joined.
10:33:32 -!- fungot has joined.
10:33:32 -!- Deewiant has joined.
10:33:32 -!- HackEgo has joined.
10:33:32 -!- twice11 has joined.
10:33:35 -!- glogbackup has left.
10:33:40 -!- MSleep has joined.
10:33:40 -!- ineiros_ has joined.
10:33:40 -!- aloril has joined.
10:33:59 <CakeProphet> RIP freedom of the press
10:34:32 -!- mycroftiv has joined.
10:42:56 -!- rodgort has joined.
10:52:17 -!- SimonRC has joined.
10:52:17 -!- myndzi has joined.
10:52:17 -!- yiyus has joined.
11:16:12 -!- sebbu2 has changed nick to sebbu.
11:16:51 <FireFly> Are we? :\
11:19:03 <CakeProphet> are we what?
11:19:05 <CakeProphet> who is we?
11:19:21 <CakeProphet> oh.
11:19:50 <CakeProphet> well, no. the extradition appeal failed, so he's going to Sweden for questioning and formal charging.
11:20:51 <CakeProphet> but the US may try to extradite him so that they can prosecute him. Though, I believe it would be a difficult case for them.
11:22:20 <CakeProphet> I find it strange that he's been under arrest this entire time without any formal charges.
11:23:53 <CakeProphet> but that's just how the Swedish legal system works I guess. they don't issue formal charges until after questioning, or something.
11:23:54 -!- myndzi\ has joined.
11:26:49 -!- myndzi has quit (Ping timeout: 252 seconds).
11:33:27 <CakeProphet> > var "Hello, World!\n"
11:33:28 <lambdabot> Hello, World!
11:34:10 <CakeProphet> > fix (fun "I told you about the stairs, bro") :: Expr
11:34:11 <lambdabot> I told you about the stairs, bro (I told you about the stairs, bro (I told ...
11:49:09 -!- sebbu has quit (Read error: Connection reset by peer).
11:49:30 -!- sebbu has joined.
11:50:47 -!- sebbu has quit (Changing host).
11:50:47 -!- sebbu has joined.
12:01:30 -!- Ernestas14 has joined.
12:01:40 -!- Ernestas14 has left.
12:22:25 -!- Vorpal has joined.
12:29:34 -!- derrik has quit (Quit: back to 3d).
12:39:16 -!- mtve has joined.
12:43:33 -!- copumpkin has quit (Ping timeout: 260 seconds).
12:43:58 -!- copumpkin has joined.
13:02:07 -!- Patashu has quit (Ping timeout: 260 seconds).
13:41:13 -!- augur has quit (Remote host closed the connection).
14:10:37 -!- augur has joined.
14:12:19 -!- augur has quit (Remote host closed the connection).
14:12:44 <Gregor> `quote
14:12:51 <HackEgo> 500) <Taos> _ <Taos> | |__ _ _ ___ <Taos> | '_ \| | | |/ _ \ <Taos> | |_) | |_| | __/ <Taos> |_.__/ \__, |\___|
14:13:01 <Gregor> ... what a great quote
14:13:20 -!- augur has joined.
14:13:44 <Gregor> `delquote 500
14:13:46 <HackEgo> ​*poof*
14:13:50 <Gregor> `quote
14:13:53 <HackEgo> 596) <elliott> well, oerjan has a lot of opinions on this, so I'll hand it over to him
14:13:55 <Deewiant> A part was missing
14:13:58 <Deewiant> Unless it was a typo
14:14:04 <Gregor> Such as ... the funny part?
14:14:26 -!- Phantom_Hoover has joined.
14:14:28 <Deewiant> Well, I find something like 1% of the existing quotes funny
14:14:39 <Phantom_Hoover> This is because you are: terrible.
14:14:40 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
14:14:41 <Deewiant> So I've given up caring about that
14:14:48 <Gregor> `quote
14:14:51 <HackEgo> 404) <EgoBot> hey fhet's zeees OouooH SNEP IT'S A FOooCKING TIGER
14:21:51 <Phantom_Hoover> Dammit HackEgo, stop letting down the side.
14:33:43 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:07:25 -!- copumpkin has joined.
15:10:12 -!- tiffany has joined.
15:15:31 -!- MSleep has changed nick to MDude.
15:19:21 -!- bd___ has changed nick to bd_.
15:58:53 -!- monqy has joined.
16:00:09 -!- derdon has joined.
16:36:03 -!- sllide has joined.
16:40:46 <Vorpal> <Deewiant> Well, I find something like 1% of the existing quotes funny <-- I mostly agree
16:45:22 <CakeProphet> god bless military industrial complex america
16:48:19 <Phantom_Hoover> CakeProphet, planning to follow that remark up with anything?
16:50:28 -!- BeholdMyGlory has quit (Excess Flood).
16:50:49 -!- BeholdMyGlory has joined.
16:53:20 <Gregor> <CakeProphet> No, it's just a sincere idle thought.
17:05:49 <Gregor> "Mangas slid down the wall, leaving a trail of something black behind them. When they hit the ground they opened and closed and in doing so improvised a sort of locomotion that brought them ever closer, inch by inch, flap by flap, to the bed where I lay paralyzed. I lost sight of them as they drew closer, but then felt, with an odd calmness, the cold wet touch of mangas sliding up my leg." ­— Dinosaur Comics
17:10:19 -!- CakeProphet has quit (Ping timeout: 258 seconds).
17:25:14 <Vorpal> Gregor, ... lol
17:25:30 <Vorpal> Gregor, is that mangas as in Japanese comics?
17:25:44 <Gregor> Yup
17:26:14 <Vorpal> I guess I have to check it out for the context, though that probably won't help
17:40:02 -!- copumpkin has quit (Ping timeout: 248 seconds).
17:40:42 -!- copumpkin has joined.
17:55:05 -!- pumpkin has joined.
17:56:55 -!- copumpkin has quit (Ping timeout: 260 seconds).
17:59:47 -!- elliott has joined.
18:00:07 -!- copumpkin has joined.
18:00:57 -!- copumpki_ has joined.
18:01:35 -!- pumpkin has quit (Ping timeout: 240 seconds).
18:01:45 <elliott> 07:48:54: <Sgeo|web> @tell elliott Homestuck update.
18:01:45 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
18:01:53 <elliott> do you really think that will in any way help
18:02:48 <elliott> 07:32:55: <Sgeo|web> ...you haven't seen Cascade yet?
18:02:48 <elliott> 07:33:35: <CakeProphet> ....I'm watching it right now, obviously.
18:02:48 <elliott> 07:33:38: <CakeProphet> as I just talked about it loading...
18:02:54 <elliott> oh wait cakeprophet isn't here
18:03:26 <elliott> 14:12:44: <Gregor> `quote
18:03:26 <elliott> 14:12:51: <HackEgo> 500) <Taos> _ <Taos> | |__ _ _ ___ <Taos> | '_ \| | | |/ _ \ <Taos> | |_) | |_| | __/ <Taos> |_.__/ \__, |\___|
18:03:26 <elliott> 14:13:01: <Gregor> ... what a great quote
18:03:26 <elliott> 14:13:20: -!- augur has joined #esoteric.
18:03:26 <elliott> 14:13:44: <Gregor> `delquote 500
18:03:32 <elliott> Gregor: You just deleted a part of history.
18:04:16 -!- copumpkin has quit (Ping timeout: 240 seconds).
18:04:53 -!- copumpki_ has changed nick to copumpkin.
18:04:54 -!- copumpkin has quit (Changing host).
18:04:54 -!- copumpkin has joined.
18:33:03 -!- elliott has quit (Quit: Leaving).
18:39:35 -!- elliott has joined.
18:39:39 <elliott> Well that was unexpected.
18:43:05 -!- sebbu has quit (Read error: Connection reset by peer).
18:43:27 -!- sebbu has joined.
18:43:27 -!- sebbu has quit (Changing host).
18:43:27 -!- sebbu has joined.
18:50:55 <elliott> ais hurry up and answer my inconsequential questions.
19:04:15 -!- ais523 has joined.
19:04:40 <elliott> yes good hi ais523
19:04:44 <elliott> i summoned you
19:05:09 <ais523> it was just coincidence
19:05:10 <lambdabot> ais523: You have 2 new messages. '/msg lambdabot @messages' to read them.
19:05:12 <ais523> but perhaps a useful one
19:05:15 <ais523> @messages
19:05:15 <lambdabot> elliott asked 12h 40m 57s ago: How does the Secret Project handle scheduling being non-deterministic?
19:05:15 <lambdabot> elliott asked 12h 40m 29s ago: Also, what kind of incredibly rough time estimate would you give for an open-source release of working code?
19:05:31 <elliott> Yesssssss finally my amazing questions will be answered
19:05:40 <ais523> elliott: it does handle scheduling being non-deterministic, but the explanation as to how is not a simple one
19:05:41 <elliott> Oh wow, @ask actually makes it say "elliott asked".
19:05:42 <elliott> Exciting.
19:05:49 <elliott> ais523: Is that another way of saying it's secret?
19:06:12 <ais523> no, it's a way of saying that I will explain it eventually, probably, but am not feeling up to it right now
19:06:23 <ais523> as I've only just got online
19:06:26 <ais523> maybe later today
19:07:12 <elliott> heh
19:08:10 <elliott> ais523: What about this one: Would there be a way of giving the running program access to a filesystem from the host? (/not/ a block device or anything)
19:08:17 <elliott> (Read-only access)
19:08:40 <ais523> elliott: yes, I've been doing that for testing, by mounting the host directory read-only inside the test filesystem with a loopback mount
19:08:57 <elliott> ais523: great
19:09:10 <elliott> ais523: I'm trying really hard to think of a non-packaging use case for this and I'm stumped :P
19:09:10 -!- ive has joined.
19:09:31 <ais523> god
19:09:33 <ais523> *good
19:09:49 <ais523> note that the part of the Secret Project you know about is only a moderately small part of the Project as a whole; it's just the bit that has to be done first
19:09:51 <elliott> ais523: no! bad :(
19:09:56 <ais523> and if it's useful in its own right, all the better
19:10:14 <elliott> yeah, I figure waiting and then mangling it to fit my needs is probably easier than rolling my own
19:10:44 <elliott> ais523: I take it the second question is being deliberately not answered :-P
19:10:58 <ais523> oh, I don't know the answer
19:11:03 <ais523> it really depends on how busy I am with other things
19:16:33 -!- yuyu has joined.
19:16:38 -!- yuyu has quit (Read error: Connection reset by peer).
19:18:57 <elliott> ais523: Last question! Tell me it isn't written in the same style DNA Maze is.
19:19:10 <ais523> it isn't, AFAIR
19:19:13 <ais523> but I haven't looked at it for a while
19:19:24 <ais523> surely DNA Maze's style can just be fixed with indent(1) if you don't like it, though?
19:19:28 <elliott> That's... worrying :P
19:19:44 <elliott> ais523: Well, sure, but that makes merging more difficult...
19:21:51 <elliott> I love how Nix essentially has safePerformIO :: (Hashable a) => IO a -> Hash -> a
19:22:16 <elliott> safePerformIO m hx = unsafePerformIO $ do { x <- m; when (hash x /= hx) $ fail "oh no"; return x }
19:37:22 -!- Darth_Cliche has joined.
19:46:06 -!- sebbu has quit (Read error: Connection reset by peer).
19:46:31 -!- sebbu has joined.
19:46:31 -!- sebbu has quit (Changing host).
19:46:31 -!- sebbu has joined.
19:54:45 <elliott> ais523: oh, would the secret project support exposing a network interface to the program being run? I could just give it the eth0 device through the FS, right?
19:55:09 <ais523> elliott: no, I don't think it would
19:55:19 <elliott> hmm, why not? :/
19:55:28 <ais523> certainly the project as a whole couldn't; the part you know about theoretically could, I guess, but it'd need to implement the networking syscalls
19:55:32 <elliott> I don't /think/ I need it, but it would reduce a lot of duplication
19:55:42 <ais523> the problem is, how can you run something completely repeatably when it's connecting to something you don't control?
19:55:57 <elliott> ais523: oh, I'm fine with it violating repeatability; this is a special case
19:56:07 <elliott> as long as the network is the only way to violate it
19:56:12 <elliott> as opposed to all the other ways you can
19:57:03 <ais523> that, umm, rather defeats the point of the secret project, but I doubt it'd be that hard; you'd just let socketcall(2) fall through to the default blocking or non-blocking syscall impl
19:57:45 <elliott> ais523: it's for a good reason :P
19:58:44 <elliott> ais523: in Nix-style systems, retrieving the source tarball for a package is done by having that be its own package whose "build" script just uses wget or the like and then places the result in the store; this is forced to be pure because you have to specify an SHA hash of the resulting file
19:58:50 <elliott> and the whole thing fails if it doesn't match
19:59:16 -!- pumpkin has joined.
19:59:21 <elliott> ais523: I could just run those without sandboxing, but I'd still have to e.g. run them as an unprivileged user, chroot them in, to avoid malicious behaviour exploiting the fact that it's run outside of the Secret Project
19:59:31 <ais523> why do you need perfect reproducibility for something like that? it doesn't fall under the secret project's definition of reproducibility because it doesn't control the timing
19:59:33 <elliott> ais523: it would be easier if I could just use "the Secret Project, but with networking"
19:59:44 <elliott> ais523: for sandboxing
20:00:13 <elliott> ais523: I'm just saying that reproducibility offers sandboxing as a side-effect
20:00:15 <ais523> oh, I said the secret project wasn't designed for security, although I guess it may end up sandboxing things anyway
20:00:19 <ais523> yep
20:00:28 <elliott> ais523: and I happen to need reproducibility most of the time, but just sandboxing for this case
20:00:38 <elliott> it'd be nice if I could rely on one thing to do that, rather than having two very similar mechanisms
20:00:43 <elliott> differing only in that one allows network access
20:01:23 <elliott> I mean, an unprivileged account and a chroot isn't /that/ much of a pain, but I'd be happier if I could use the same mechanism :)
20:02:00 -!- copumpkin has quit (Ping timeout: 252 seconds).
20:02:06 <ais523> well, it may be possible, but would be really hackish
20:02:38 <elliott> <ais523> that, umm, rather defeats the point of the secret project, but I doubt it'd be that hard; you'd just let socketcall(2) fall through to the default blocking or non-blocking syscall impl
20:02:41 <elliott> that doesn't sound very hackish
20:02:58 <ais523> well, it violates the invariants that the secret project is based on
20:03:18 <ais523> btw, I'm looking at the source, it seems to be One True Brace
20:03:21 <ais523> which you're happy enough with, I guess?
20:03:26 <elliott> sure :P
20:03:43 <ais523> complete with literal formfeed characters to separate unrelated functions
20:03:49 * elliott uses Linux style with varying indentation width
20:04:00 <elliott> Linux style is basically a specification of K&R/1TBS, though
20:04:08 <elliott> ais523: that's not 1TBS...
20:04:15 <elliott> ais523: that's some awful hybrid 1TBS/GNU style, then :P
20:04:29 <ais523> elliott: 1TBS is an indentation style, right?
20:04:33 <ais523> formfeeds are not indentation
20:04:45 <elliott> ais523: no, it's a formatting style
20:04:51 <elliott> it also tells you where to put braces, for one
20:07:29 <elliott> wow, it's bizarre seeing someone use SCM to mean something other than VCS
20:08:52 <elliott> hmm, wow, I think `pureWriteIORef :: IORef a -> a -> b -> b` is actually pure
20:09:06 <elliott> pureWriteIORef ref v x = unsafePerformIO (writeIORef ref v >> return x)
20:09:24 <ais523> elliott: http://pastie.org/pastes/2800788/text?key=c9nqhgeel5yd8hcu4jzq
20:09:32 <ais523> you were asking about the Secret Project's scheduling rules
20:09:40 <ais523> and there's the relevant parts, with a bit of censorship applied
20:09:58 <elliott> ais523: wtf is that censorship for? :P
20:10:08 <ais523> it's a Secret Project, right?
20:10:17 <ais523> so bits of it have to stay secret
20:10:21 <elliott> so wait, how do you convince linux not to use its normal scheduler?
20:11:54 <ais523> generally speaking, all but one process is either in a blocking syscall, or stopped
20:11:59 <ais523> so only one process can actually run
20:12:39 <elliott> ais523: umm, what if i fork two processes doing for(;;);?
20:12:43 <ais523> should multiple processes get knocked out of a blocking syscall simultaneously for whatever reason, they're each stopped at the syscall return in arbitrary order, and banned from communicating in any way with other processes until the Secret Project has a good handle on which ones are and aren't working
20:12:50 <ais523> the Secret Project doesn't handle infinite busyloops
20:13:27 <elliott> ais523: what about if I start two subprocesses, alarm(15), then put them both in a busyloop of incrementing a global i variable
20:13:31 <elliott> then exit(i) in the signal handler?
20:14:06 <ais523> it doesn't handle that either
20:14:28 <ais523> nor does it have to be able to, for its intended purpose; and besides, the way it works, it can't
20:14:41 <elliott> ais523: it's not exactly perfect repeatability then, is it?
20:14:50 <elliott> I could imagine someone doing something like that to produce a random seed
20:14:53 <ais523> I didn't say it was; you said that
20:15:06 <elliott> well, you've strongly implied that's what it's for, otherwise why go to all the effort? :p
20:15:19 <ais523> that is what it's for, but it's not designed to work on arbitrary programs; just a very large subset of them
20:15:26 <ais523> for instance, you couldn't run it on itself
20:15:52 <ais523> and I've already established that it actively resists being debugged (running gdb inside or outside it causes mad things to happen, as does running valgrind inside or outside it)
20:16:06 <elliott> well, OK
20:16:13 <elliott> actually, I wonder if that valgrind thing should worry me
20:16:21 <elliott> packages might try and run a test suite at build-time
20:16:52 <elliott> ais523: anyway, I suppose it'll be good enough :) especially since the Nix guys have problems with such simple things as the system clock or hostname leaking into builds
20:17:26 <ais523> valgrind internal-errors on the Secret Project with a request to report a bug
20:17:37 <ais523> but if I did report what was causing it, I'm reasonably sure the reply would be "then don't do that"
20:17:46 <elliott> ais523: you've said
20:20:03 <elliott> ais523: here's a quote you might like: "In the presence of patch sets between arbitrary releases, it is not directly
20:20:03 <elliott> obvious which sequence of patches or full downloads is optimal. To be fully gen-
20:20:03 <elliott> eral, the Nix substitute downloader runs a shortest path algorithm on a directed
20:20:03 <elliott> acyclic graph that, intuitively, represents components already installed, avail-
20:20:03 <elliott> able patches between components, and available full downloads of components."
20:20:56 <ais523> elliott: why acyclic?
20:20:58 -!- Ngevd has joined.
20:21:08 <elliott> ais523: I don't think that would work
20:21:16 <Ngevd> Hello!
20:21:35 <ais523> if you want an alpha release, then you can get it either by getting a beta and reversing the patches between it and the alpha, or applying patches forwards from the previous release
20:22:55 -!- GreaseMonkey has joined.
20:22:56 -!- GreaseMonkey has quit (Changing host).
20:22:56 -!- GreaseMonkey has joined.
20:23:48 <elliott> ais523: in this case, "getting a beta" is the thing to be avoided
20:23:49 -!- pumpkin has changed nick to copumpkin.
20:23:59 <elliott> ais523: the user isn't a time traveller, so they have files from the past only
20:24:06 <ais523> elliott: what if you don't want the latest version?
20:24:11 <elliott> ais523: you don't understand
20:24:13 <ais523> the files may be from the past, but in the future of the version you want
20:24:17 <elliott> ais523: you have a pre-alpha, and need to update to a beta
20:24:21 <elliott> but there's not patches between every single release
20:24:24 <elliott> in-between
20:24:25 <elliott> only some of them
20:24:54 <ais523> elliott: say you have version 16, and want to update to version 17alpha5; 17beta1 is already out
20:25:16 <ais523> then going forwards to 17beta1 and then back to 17alpha5 may be the smallest set of patches to use
20:25:38 <elliott> well, OK
20:26:03 <elliott> ais523: OTOH, wanting to update to 17alpha5 is an incredibly unlikely scenario in context
20:26:28 <elliott> ais523: and if you do want to, downloading the binary from scratch is an acceptable cost to save calculation time for people who don't do insane things
20:26:34 <ais523> it has a feature you need and 17beta1 has a critical bug that 17alpha5 doesn't?
20:26:43 <elliott> yes, but full downloads are always available
20:26:49 <elliott> this is about optimisation, not making things possible in the first place
20:26:54 <ais523> elliott: the point is that finding the shortest route in a DAG is the same algo as finding the shortest route in a directed graph
20:27:09 <ais523> so it doesn't cost you anything to ban cycles
20:27:19 <elliott> sure, but the graph itself is bigger
20:30:11 <elliott> ais523: anyway, avoiding implementing a reverse patch algorithm is one reason :P
20:30:44 <Ngevd> It's my birthday tomorrow
20:30:48 <ais523> elliott: wow, I just got a wallop claiming that vim was the best editor ever
20:30:49 <Ngevd> Then I'm on TV Friday
20:30:57 <Ngevd> Then fireworks display Saturday
20:30:58 -!- pikhq has joined.
20:31:01 <elliott> ais523: on your /local machine/?
20:31:04 -!- pikhq_ has quit (Ping timeout: 240 seconds).
20:31:05 <ais523> elliott: no, on Freenode
20:31:08 <elliott> oh
20:31:09 <elliott> wtf?
20:31:11 <elliott> paste it
20:31:29 <ais523> [wallops] Holy editor war, batman! Vim's first public release was two decades ago, today! It sure is birthday-y around here as of late. Anyway, congrats to the best editor, ever! Join #vim to congratulate or have good-natured editor bantering ;)
20:31:43 <elliott> hmm
20:31:51 <ais523> that looks designed to incite a flamewar
20:31:52 <elliott> I really want to troll-and-run #vim now
20:31:59 <elliott> they're /encouraging/ it, aftera ll
20:32:14 <elliott> <elliott> VIM SUX EMACS SUX NOTEPAD IS THE ONE TRUE EDITOR
20:32:15 <elliott> there we go
20:32:46 <ais523> incidentally, I commented on an editor war on Reddit a while back: http://www.reddit.com/r/programming/comments/lotys/lines_of_lisp_and_c_code_in_emacss_source_code/c2uknyy?context=3
20:32:51 <Ngevd> I'm not a big editor person-y type thing
20:33:10 <Ngevd> Begins with c
20:33:16 <Ngevd> Sounds vaguely French
20:33:20 <Ngevd> Associated with wine
20:33:22 <Ngevd> Hard to spel
20:33:23 <Ngevd> l
20:33:30 <ais523> critic?
20:33:32 <Ngevd> Connossoure
20:33:34 <ais523> aha
20:33:38 <Ngevd> Something like that
20:33:45 <elliott> condiment
20:33:46 <ais523> connoisseur
20:33:53 <Ngevd> connoisseur.
20:33:53 <ais523> my IRC client has a spellchecker ;)
20:34:02 <Ngevd> Mine does, but I wasn't close enough
20:34:05 <elliott> ais523: mine doesn't, what package is that again? it's been bugging me
20:34:05 <elliott> :p
20:34:14 <elliott> (I have aspell, it just doesn't work in gtk...)
20:34:15 <Ngevd> It gave me Connecticut
20:34:28 <elliott> :D
20:34:44 <ais523> elliott: I'm using Konversation 4, obtained via kubuntu-desktop
20:34:53 <ais523> which has a really crazy insane number of dependencies
20:34:58 <ais523> and I couldn't tell you which one it is specifically
20:34:59 <Ngevd> XChat, Ubuntu 11.04
20:35:00 <elliott> I really hope Arch has a kubuntu-desktop package
20:35:06 <Ngevd> Which is probably the worst Ubuntu
20:35:11 <elliott> all distros should have a kubuntu-desktop package :)
20:35:16 <ais523> (kubuntu-desktop exists for the purpose of depending on pretty much the whole of KDE)
20:35:38 <elliott> ais523: /plus/ whatever kubuntu adds
20:36:06 <ais523> yep
20:38:07 <elliott> "Clearly, we could produce patches between all Xs and Y s. This policy is
20:38:07 <elliott> “optimal” in the sense that the client would always be able to select the abso-
20:38:07 <elliott> lutely shortest sequence of patches. However, it is infeasible in terms of time and
20:38:07 <elliott> space since producing a patch takes a non-negligible amount of time, and most
20:38:07 <elliott> such patches will be large since they will be between unrelated components (for
20:38:07 <elliott> instance, patching Acrobat Reader into Firefox is obviously inefficient)."
20:38:15 <elliott> how does one patch Acrobat Reader into Firefox under NixOS?
20:38:25 <elliott> dammit, I got the meme wrong
20:38:31 <elliott> serves me to go by WP article titles rather than their contents
20:41:18 <elliott> hmm... does anybody know HTTP better than I do here?
20:42:30 <elliott> aha, I was right
20:42:39 <elliott> (w3.org knows HTTP better than I do)
20:44:13 <elliott> [elliott@dinky ~]$ time ( { for i in {1..9}; do echo "GET /$i HTTP/1.1"; echo; done; echo "GET /10 HTTP/1.1"; echo "Connection: close"; echo; } | nc google.com 80 >/dev/null )
20:44:18 <elliott> good command lines
20:44:49 <Ngevd> Does it work?
20:44:54 <elliott> yep
20:45:05 <Ngevd> Then they are very good.
20:45:41 <elliott> ais523: here's another quote you might like: "A good value for k would be around 2, e.g., k = 1.9."
20:45:53 <elliott> Also e.g. k = 2 :-P
20:47:38 -!- centrinia has joined.
20:51:45 <elliott> pikhq: Has anyone compared patching times / memory use of bps vs. e.g. bsdiff?
20:51:57 <elliott> Hmm, I wonder if I could parallelise the process somewhat...
20:52:24 <Ngevd> Hello centrinia
20:52:32 <elliott> hi centrinia
20:52:34 <elliott> `welcemkrmo
20:52:35 <centrinia> Hello Ngevd, elliott.
20:52:36 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: welcemkrmo: not found
20:52:37 <elliott> `welkom
20:52:38 <elliott> `? skdlf
20:52:39 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: welkom: not found
20:52:40 <elliott> `? welcome
20:52:40 <HackEgo> skdlf? ¯\(°_o)/¯
20:52:41 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
20:52:52 <Phantom_Hoover> `ls bin
20:52:53 <centrinia> Does everyone get a welcome?
20:52:54 <HackEgo> ​? \ addquote \ allquotes \ calc \ define \ delquote \ etymology \ forget \ fortune \ frink \ google \ json \ k \ karma \ karma+ \ karma- \ learn \ log \ logurl \ macro \ marco \ paste \ pastekarma \ pastelog \ pastelogs \ pastenquotes \ pastequotes \ pastewisdom \ ping \ prefixes \ qc \ quote \ quotes \ roll \ runperl \ toutf8
20:53:00 <elliott> centrinia: No! Just you. Also new people.
20:53:05 <Phantom_Hoover> `paste bin/?
20:53:07 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.26175
20:53:17 <elliott> Phantom_Hoover: use `url for things like that
20:53:18 <elliott> avoids pasting
20:53:52 <Ngevd> What's a stationary point again?
20:54:23 <Ngevd> Are they when the gradient is 0?
20:55:42 <centrinia> It can also be a point where the gradient is not defined.
20:55:54 <Ngevd> Oh good
20:55:59 <Phantom_Hoover> centrinia, they can?
20:56:13 <Phantom_Hoover> Oh, right, discontinuities in the gradient.
20:56:16 <centrinia> I am just looking at the wiki.
20:56:35 <elliott> ais523: do things like segfault-catching work under the Secret Project?
20:56:35 <Phantom_Hoover> Ngevd isn't meant to know about that :P
20:56:40 -!- pikhq_ has joined.
20:56:54 -!- pikhq has quit (Ping timeout: 255 seconds).
20:56:57 <centrinia> Wait, that is a critical point.
20:57:20 <ais523> elliott: it can catch segfaults itself
20:57:22 <centrinia> I was wrong earlier.
20:57:24 <Phantom_Hoover> centrinia, erm, yeah.
20:57:25 <ais523> although it doesn't do anything with them yet
20:57:33 <elliott> ais523: that... isn't the point
20:57:35 <ais523> it could pass them to the program's segfault interrupt handler if you wanted it ot
20:57:36 <ais523> *to
20:57:41 <ais523> I think that's actually what it does
20:57:47 <elliott> ais523: I mean things like libsigsegv
20:57:54 <elliott> which let you use segfaults to e.g. expand a BF tape
20:58:01 <ais523> yep, I think it could handle that
20:58:02 <elliott> if you do the mmapping just right so it's on a page boundary
20:58:04 <elliott> great
20:58:24 <ais523> it may handle that already, in fact
20:58:42 <elliott> ais523: I'm just checking that build processes that use software which pull tricks like this will work :)
20:58:53 <elliott> e.g. SBCL does the "mmap a gigantic private heap" t hing
21:00:42 <elliott> ais523: you said that the Secret Project can't be run under gdb, but does gdb work inside it?
21:00:58 <ais523> elliott: no
21:01:04 <elliott> right
21:02:10 <ais523> ah, hmm, not only does gdb go wrong, but so does the Secret Project
21:02:12 <ais523> must be a bug in it somewhere
21:03:48 <elliott> heh, I just had a silly conservative GC idea, that I just realised never frees anything
21:03:51 <elliott> perfect!
21:05:44 <Ngevd> http://a6.sphotos.ak.fbcdn.net/hphotos-ak-snc7/s720x720/316901_284913304864672_100000380143871_936853_1298194009_n.jpg
21:06:13 <elliott> I...
21:06:23 <Ngevd> Apparently it's a board game
21:07:40 <elliott> # Set the maximum number of FUSE mounts allowed to non-root users.
21:07:41 <elliott> # The default is 1000.
21:07:41 <elliott> #
21:07:41 <elliott> #mount_max = 1000
21:07:56 <Phantom_Hoover> Is... is that the church in Hexham which elliott tells me is the only interesting thing in it?
21:08:07 <elliott> I said it was interesting?
21:08:39 <Ngevd> The gaol's better
21:08:46 <Ngevd> But yes
21:32:49 <Vorpal> which was the last windows version that was sold on floppy?
21:32:53 <Vorpal> I guess windows 3.x
21:32:55 <pikhq_> 95.
21:33:00 <Vorpal> pikhq_, really? Heh
21:33:05 <Vorpal> pikhq_, how many floppies?
21:33:48 <pikhq_> 13.
21:34:10 <pikhq_> 95 OSR 2.1 came on 26.
21:34:12 <elliott> Vorpal: Windows Server 2008
21:34:15 <elliott> enterprise edition
21:34:20 -!- augur has quit (Remote host closed the connection).
21:36:40 <pikhq_> Waaaait. Holy crap 98 could be had on floppies.
21:36:49 <pikhq_> 39 floppies.
21:36:50 <Ngevd> I have it on CD
21:37:01 <Vorpal> pikhq_, but was it ever distributed as that?
21:37:14 <pikhq_> Yes. *Barely*.
21:37:18 <Vorpal> wow
21:38:00 <pikhq_> They were also 1.7M floppies.
21:38:02 <Vorpal> wtf, google earth doesn't display territorial boarders in the sea.
21:38:20 <Vorpal> I want to know if there is international water between Canda and Greenland, but I can't find info on that ANYWHERE
21:38:51 <Vorpal> pikhq_, ... that is rare. I never seen any of those. Can a normal computer read them?
21:39:17 <Vorpal> and how was that identified, yet another hole in the cover?
21:40:23 <elliott> <Vorpal> I want to know if there is international water between Canda and Greenland, but I can't find info on that ANYWHERE
21:40:32 <elliott> Vorpal: Sorry, but you can still be prosecuted for crimes committed in international waters.
21:40:37 <Vorpal> elliott, har, har
21:40:43 <elliott> You'll have to go into space for your private time.
21:43:37 -!- Ngevd has quit (Quit: early morning tomorrow).
21:44:44 <Phantom_Hoover> "Subversion gets Suspended" — Introversion website
21:44:50 <Phantom_Hoover> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
21:45:08 <Deewiant> Old news
21:45:08 <monqy> imagines n as m
21:45:13 <elliott> Phantom_Hoover: Now we're going to have to use CVS!!!
21:45:16 <monqy> phantom hoover moos loudly
21:45:30 <monqy> deewiant confuses it for mews
21:45:55 <pikhq_> Vorpal: Yes, actually.
21:45:55 <elliott> monqy: comfuses
21:45:58 <elliott> momqy
21:46:08 <Vorpal> pikhq_, to witch question?
21:46:13 <Vorpal> pikhq_, the borders or the floppy?
21:46:14 <elliott> Phantom_Hoover: ahahaha "In the end, after all that development and years of work, you still completed the bank heist by walking up to the first door, cracking it with a pin cracker tool, then walking into the vault and stealing the money."
21:46:18 <pikhq_> Vorpal: "Can a normal computer read them?"
21:46:19 <Phantom_Hoover> I remember googlestalking monqy and it turned out he was some mother?
21:46:20 <Vorpal> ah
21:46:29 <elliott> monqy is the best mother
21:46:32 <elliott> `quote uncle
21:46:34 <HackEgo> 221) <tswett> elliott: just to bring you up to speed, you are now my baby nephew. <olsner> wtf, elliott is a nephew and his uncle is here? <nooga> what <tswett> Heck yes I'm elliott's uncle.
21:46:48 <Vorpal> elliott, where is that quote from ("in the end..."
21:46:49 <Vorpal> )
21:46:55 <elliott> Vorpal: http://forums.introversion.co.uk/introversion/viewtopic.php?t=2967
21:47:01 <monqy> I'm a mother???
21:47:08 <elliott> monqy: yes happy birthday
21:47:09 <pikhq_> Microsoft actually used it for quite a while.
21:47:26 <monqy> i don't remember getting pregnant...........
21:47:27 <Phantom_Hoover> monqy's child?
21:47:32 <Phantom_Hoover> Bastards.
21:48:12 <tswett> monqy's child is multiple bastards? That kid's got talent.
21:48:29 <elliott> congratulations monqy !
21:48:37 <Phantom_Hoover> So wait, even Introversion didn't know what the hell Subversion was about?
21:48:41 <Phantom_Hoover> This... explains a lot.
21:49:07 <tswett> elliott: have I mentioned that you're on the verge of saying your first word?
21:49:13 <Phantom_Hoover> "I was imagining Uplink developed into a bigger game with more replay value (as in: there are still challenges even after you've learned how to hack a bank)."
21:49:15 <Phantom_Hoover> Amen.
21:49:30 <Phantom_Hoover> Those banks are insanely broken.
21:51:02 -!- derdon has quit (Remote host closed the connection).
21:51:22 <Phantom_Hoover> elliott, BtW, have located debit card.
21:51:29 <elliott> Phantom_Hoover: Buy a kitten.
21:51:32 <Phantom_Hoover> Will buy Humble Bundle post-haste.
21:51:40 <elliott> Pay more than the average of
21:51:40 <elliott> $4.71 to get The Binding of
21:51:40 <elliott> Isaac and Blocks That Matter!
21:51:42 <Phantom_Hoover> Also a kitten, although what if my cat doesn't like it?
21:51:45 <elliott> Phantom_Hoover: See, it's going to force you to be a good person.
21:51:49 <Phantom_Hoover> elliott, BASTARDS
21:52:13 -!- Patashu has joined.
21:52:13 <Phantom_Hoover> elliott, pirate them for me to see if they work?
21:52:23 <Phantom_Hoover> (By which I mean send me your download link._
21:52:44 <elliott> That feels wrong!!!!!!!! Also that would let you do awful things to my order.
21:53:06 <elliott> Phantom_Hoover: IIRC the Binding of Isaac is 2D, so you'll be fine. Voxatron is software-rendered, so your GPU is irrelevant.
21:53:08 <Phantom_Hoover> You mean giving all your moneys to them.
21:53:16 <elliott> Blocks That Matter looks 2D too.
21:53:19 <elliott> So you'll be fine.
21:53:56 <Vorpal> elliott, "The Binding of Isaac" isn't worth it, "Blocks That Matter" is
21:54:15 <elliott> Vorpal: The Binding of Isaac has gotten rave reviews from literally everything and Super Meat Boy was great, so... you're probably wrong.
21:54:25 <monqy> I've heard mixed things about it
21:54:52 <Vorpal> elliott, well try it yourself. It looks insane. Sure the gameplay may be good, but I referred to the setting and the plot
21:55:13 <elliott> Also anything with Roguelike-style world generation is the best.
21:55:15 <Vorpal> it is just disturbing from what I seen
21:55:41 <elliott> Vorpal: this is because you are (a) Swedish; (b) therefore, a wuss.
21:55:47 -!- SgeoN1 has joined.
21:55:54 <elliott> The only non-wussy Swede is olsner and that is why he is also the only non-terrible Swede.
21:56:01 <Vorpal> elliott, no you are just as insane and disturbing yourself
21:56:08 <Vorpal> elliott, anyway what about FireFly and BeholdMyGlory?
21:56:12 <elliott> They're not people.
21:56:18 <Vorpal> elliott, oh?
21:56:28 <SgeoN1> Wtf reisub didn't work
21:56:49 <elliott> SgeoN1: Do you have magic sysrq on>?
21:56:52 <elliott> s/>//
21:57:16 <SgeoN1> Not sure?
21:59:16 <elliott> SgeoN1: Check?
22:00:43 <SgeoN1> /proc/sys/kernel/sysrq contains 1
22:01:06 <Vorpal> SgeoN1, are you on a laptop?
22:01:17 <SgeoN1> Yes
22:01:47 <Vorpal> SgeoN1, Does fn on the sysrq button do anything according to the legend on the keyboard
22:02:15 <SgeoN1> No
22:02:16 <Vorpal> sysrq doesn't work reliably on my laptop, Fn-PrtSc supposedly gives SysRq, but well, not really
22:02:59 <elliott> SgeoN1: a safe way to test is fn+printscreen+b!
22:03:02 <elliott> The SAFEST way.
22:04:37 <SgeoN1> !?
22:05:46 <SgeoN1> I think I'll try with w
22:06:04 <SgeoN1> Or m
22:06:44 <Phantom_Hoover> I think I once did REIBUS backwards because I forgot that you need to reverse 'busier'.
22:06:47 <SgeoN1> Works without Fn not with
22:07:49 <elliott> Phantom_Hoover: REIBUS isn't BUSIER backwards.
22:08:23 <Phantom_Hoover> elliott, it's a miracle my computer still works at all, frankly.
22:08:42 <elliott> Phantom_Hoover: It's REISUB; let me guess, you didn't pause for a few seconds between letters either?
22:08:59 <Phantom_Hoover> I don't remember?
22:15:46 <Vorpal> elliott, SgeoN1: fn-prtsc-h should be a good way to test
22:15:54 <Vorpal> and it does nada for me
22:15:59 <elliott> He already tested.
22:16:08 <Vorpal> hm
22:16:30 <elliott> "Figure 5 shows the build algorithm for derivations in pseudo-code. The operator ← denotes assignment, and x [← symbol with a ∪ above it] y is shorthand for x ← x ∪ y."
22:16:37 <elliott> They're reinventing C notation X-D
22:17:00 <Vorpal> heh
22:29:12 <elliott> hmm, I don't think I like the path this paper is taking
22:29:24 <monqy> what path did it take
22:29:51 <elliott> not sure yet :)
22:31:39 <elliott> "We fix this problem by computing hashes modulo self-references.
22:31:40 <elliott> Essentially, this means that we ignore self-references when com-
22:31:40 <elliott> puting the hash. First, when computing the hash of contents(p),
22:31:40 <elliott> we zero out all occurrences of the string hashPart(p)."
22:31:40 <elliott> cute
22:31:57 <elliott> ais523: how to solve a fixed-point for a hash function: zero out the self-reference hole :D
22:32:15 <ais523> heh
22:32:32 <elliott> hmm... wonder what happens if you deliberately insert something that would be a self-reference but zeroed
22:32:37 <elliott> maybe it changes it to the hash :D
22:33:01 <elliott> ah!
22:33:04 <elliott> "It is necessary to encode the offsets
22:33:04 <elliott> of the occurrences of h into the hash to prevent hash collisions for
22:33:04 <elliott> strings that are equal except for having either h or 0-strings at the
22:33:04 <elliott> same location."
22:33:36 -!- augur has joined.
22:36:07 -!- ive has quit (Ping timeout: 258 seconds).
22:45:57 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:49:19 <Vorpal> <elliott> ais523: how to solve a fixed-point for a hash function: zero out the self-reference hole :D <-- isn't that how a lot of embedded hash style checksums are done?
22:49:30 <elliott> dunno
22:49:41 <elliott> this is more clever though
22:49:44 <elliott> because it notes the offsets
22:49:57 <elliott> so you can't cause a collision by deliberately taking something with a self-reference and turning it into 0s instead
22:50:11 <Vorpal> hm
22:50:12 <ais523> hmm, what's the chance that a cryptosecure hash has a fixed point? almost 1, isn't it?
22:50:42 <elliott> ais523: I think 1
22:50:45 <elliott> ais523: except, no
22:50:49 <elliott> ais523: it's 1 if every hash value is possible
22:50:58 <elliott> whether every hash value is possible or not sounds /very/ hard to estimate
22:51:06 <elliott> let alone prove
22:51:26 <Vorpal> elliott, iirc stuff like checksum in some of gzip, zip, rar and so on or similar work by computing the hash with a dummy value (such as all zeros) in place of where the hash goes, sounds quite the same?
22:51:29 <ais523> elliott: actually, if any hash value is impossible, it's 1
22:51:37 <elliott> ais523: huh?
22:51:44 <ais523> because then two well-formed hash values have to map onto the same hash by the pigeonhole principle
22:51:48 <elliott> Vorpal: it's similar
22:51:53 <elliott> ais523: oh, right
22:51:57 <elliott> I had it backwards :)
22:51:59 <ais523> if all are possible, then it's possible but unlikely that they all go round in cycles of 2 or more
22:52:45 <elliott> ais523: I remember a while back some idiot web designer guy started a "distributed search" for an SHA-1 fixed-point, waving away people who gave statistics as to the incredible unlikelihood of one being found by brute force with "if enough of us try it might just work!!!"
22:52:58 <elliott> i cried :'(
22:52:59 <Vorpal> ais523, non-crypto secure hash that doesn't have that property (unless I misunderstood you): f(a) = b, f(*) = a
22:53:10 <Vorpal> where a and b are strings
22:53:26 <ais523> Vorpal: in that case, the only well-formed outputs are a and b; both are possible, so it's possible that there's no fixedpoint
22:53:28 <ais523> and in fact there isn't
22:53:43 <Vorpal> ais523, well yes
22:53:54 <elliott> here it is!!!
22:53:54 <elliott> http://elliottkember.com/kember_identity.html
22:53:58 <elliott> moron even named it after himself
22:54:00 <ais523> wait, /another/ elliott?
22:54:04 <elliott> also dear god those colour highlights are unbearable
22:54:07 <elliott> ais523: oh god you're right
22:54:19 <Vorpal> at least not hird
22:54:21 <elliott> i'm changing my fucking name, this means there are at least two abject morons with my first name
22:54:23 <elliott> as their first name
22:54:27 <elliott> in fact, three if you count me!
22:54:32 <Vorpal> heh
22:54:42 <ais523> I assume there are at least 2 people called Alex who are morons, just because it's a really common name
22:54:48 <Vorpal> elliott, is "Elloitt" spelled like that very rare?
22:54:55 <Vorpal> err
22:54:57 <Vorpal> s/oi/io/
22:54:58 <elliott> Vorpal: I... suspect not a single person is called that
22:55:00 <elliott> Oh
22:55:03 <Vorpal> elliott, yeah typo :P
22:55:05 <elliott> Well Elliot is the most common spelling by far
22:55:10 <elliott> Eliot is also common
22:55:12 <Vorpal> ah
22:55:14 <elliott> As is, I think, Eliott
22:55:16 <Vorpal> elliott, and your spelling?
22:55:20 <elliott> Elliott is not all that common :P
22:55:23 <Vorpal> right
22:55:33 <pikhq_> Elloitt is probably the name of a kid with illiterate parents.
22:55:43 <elliott> Fun fact, my name means "Ruler of the Elves". I am what I hate.
22:56:03 <Vorpal> elliott, I believe there are like less than 5 people in Sweden with both my first and my last name. And one other if you include my middle names.
22:56:12 <elliott> ais523: looks like there's a 37% chance there's no such input for MD5
22:56:15 <Vorpal> the latter is just weird. Chances are pretty low
22:56:22 <pikhq_> Fun fact, my name means "supported of Yahweh".
22:56:29 <elliott> Vorpal: I doubt there's another Elliott Hird on the globe
22:56:33 <ais523> elliott: 1/e?
22:56:38 <ais523> that would be my guess as to the probability
22:56:39 <elliott> ais523: yep: http://ograll.blogspot.com/2009/06/mathematics-of-perfect-hash.html
22:56:42 <Phantom_Hoover> <elliott> Fun fact, my name means "Ruler of the Elves". I am what I hate.
22:56:45 <Phantom_Hoover> No dude what about Cacame.
22:56:52 <elliott> Phantom_Hoover: I'm not Cacame! I'm Elliott!
22:56:55 <pikhq_> I'm pretty sure my first+last name is unique among living people.
22:57:05 <ais523> pikhq_: Unknown?
22:57:08 <Vorpal> elliott, well I doubt my name occurs at all outside Sweden. It might just show up in Norway or Denmark I guess
22:57:11 <Vorpal> probably not
22:57:16 <pikhq_> It most certainly isn't if you count people still alive.
22:57:31 <pikhq_> Erm.
22:57:35 <pikhq_> People who have ever lived.
22:57:44 <elliott> "I've found one!
22:57:45 <elliott> Not exactly a complete match but I'm done wasting cycles..
22:57:45 <elliott> md5('deadbeefdc84955dfb53442f741f4ec9') == 1ebb63c68f0e40e6902e0deadfeefbfa"
22:57:53 <Vorpal> pikhq_, oh? what is it?
22:57:54 * elliott facepalms
22:58:06 <ais523> it doesn't even have "deadbeef" in both
22:58:07 <pikhq_> Vorpal: Josiah Worcester
22:58:11 <olsner> I see dead feef
22:58:11 <elliott> "I doubt it exsists, considering, which guy making such a algorithm would not make sure that would never happen?
22:58:11 <elliott> I would at least try to prevent it, since it kind of breaks the purpose of the algorithm(a one-way algorithm)"
22:58:13 <elliott> OK, I give up on these comments
22:58:25 <ais523> pikhq_: both the forename and surname are not unheard of
22:58:34 <pikhq_> ais523: Though not exactly common.
22:58:37 <ais523> indeed
22:58:40 <Phantom_Hoover> <elliott> Phantom_Hoover: I'm not Cacame! I'm Elliott!
22:58:46 <Phantom_Hoover> Yeah but get a beard on strings?
22:58:50 <elliott> OK fine.
22:58:51 <ais523> both my forename and surname are really common
22:59:01 <pikhq_> I strongly suspect Worcester is more common as a place name. :P
22:59:04 <Phantom_Hoover> Also make Hexham get conquered by dwarves, i.e. Scots.
22:59:16 <elliott> I would be up for warring with the Scots.
22:59:19 <elliott> This place is boring.
22:59:39 <Phantom_Hoover> Nonono, we'd conquer you, and then the English would kill and eat most of your family and your wife.
22:59:55 <elliott> Ah.
23:00:51 <Vorpal> ais523, I know
23:00:58 -!- calamari has joined.
23:01:03 <Vorpal> <pikhq_> Vorpal: Josiah Worcester <-- yeah... those are both quite rare
23:01:05 -!- zzo38 has joined.
23:01:18 <Vorpal> pikhq_, btw, isn't "Worcester" the name of some food stuff
23:01:21 <Vorpal> as in "Worcester-foo"
23:01:31 <Vorpal> or am I confusing it with something else?
23:01:33 <Phantom_Hoover> Worcester sauce.
23:01:37 <Vorpal> Phantom_Hoover, ah, thanks
23:01:48 <Phantom_Hoover> It's a bit like spicy vinegar I think.
23:01:55 <Vorpal> ah, okay
23:02:00 <Phantom_Hoover> (I have only actually tasted Worcester sauce crisps.)
23:02:06 <Phantom_Hoover> (They are good.)
23:02:14 <elliott> Wow, this guy uses those awful italic background-highlights everywhere.
23:02:17 <elliott> (I foolishly clicked on to his site.)
23:02:27 <Vorpal> Phantom_Hoover, from the name it sounds like it comes from UK, is that the case?
23:02:31 <elliott> It's like he just discovered highlighter pens.
23:02:37 <elliott> Phantom_Hoover: It's... not like spicy vinegar.
23:02:43 <Phantom_Hoover> It's fermented fish apparently?
23:02:49 <elliott> No don't call it that.
23:02:52 <elliott> Nobody thinks of it like that.
23:02:54 <elliott> That is the road to hell.
23:02:58 <elliott> It's just made out of magic.
23:03:16 <Gregor> wtf?
23:03:16 <Phantom_Hoover> Maybe you English people don't, but here in Scotland we like our food in some state of decay.
23:03:21 <Vorpal> Phantom_Hoover, you mean Worcester sauce ~ surströmming? :D
23:03:28 <Gregor> Worcester sauce is fermented fish? But fish sauce is fermented fish.
23:03:29 <Vorpal> except more fluid
23:03:39 <elliott> Gregor: It's made from like a billion things plus anchovies :P
23:03:42 <Gregor> I thought Worcester sauce was related to soy sauce.
23:03:43 <Gregor> Ah.
23:03:45 <olsner> I approve of the idea that worcester sauce is made of magic
23:03:48 <elliott> Gregor: "The ingredients of a traditional bottle of Worcestershire sauce sold in the UK as "The Original & Genuine Lea & Perrins Worcestershire sauce" are malt vinegar (from barley), spirit vinegar, molasses, sugar, salt, anchovies, tamarind extract, onions, garlic, spice, and flavouring."
23:03:56 <elliott> But yeah, it's like soy sauce but with more... flavour.
23:03:58 <elliott> And a bit less salty.
23:04:04 <Vorpal> ah
23:04:10 <elliott> "The "spice, and flavouring" is believed to include cloves, soy sauce, lemons, pickles and peppers."
23:04:14 <pikhq_> Gregor: Worcester sauce is very much a form of fish sauce.
23:04:14 <Vorpal> elliott, approximately surströmming :P
23:04:22 <elliott> Basically they just threw everything into a blender.
23:04:31 <Vorpal> approximately liquid surströmming :P
23:04:32 <Gregor> Yet another sauce that's secretly not vegetarian :P
23:04:36 <elliott> Phantom_Hoover: Seriously though try some Lea & Perrins it's good.
23:04:43 <pikhq_> Vorpal: Also, "Worcester sauce" is slightly shortened for "Worcestershire sauce".
23:04:45 <Phantom_Hoover> OK so incidentally, people who think Tesla was the most intelligent person ever and we've irrecoverably lost so much stuff because we just didn't listen fools: the worst/
23:04:48 <Vorpal> Phantom_Hoover, ah
23:04:49 <Vorpal> err
23:04:51 <Vorpal> pikhq_, ^
23:04:57 <Vorpal> damn tab-last-spoke-first
23:04:58 <elliott> Anyone who calls it Worcester sauce is a bad person.
23:05:01 <pikhq_> The shortening goes even further for Japanese; it's just "sôsu".
23:05:07 <elliott> http://upload.wikimedia.org/wikipedia/commons/6/65/Dimitri_Torterat_-_Bottle_of_Worcestershire_sauce.jpg ;; look, it _says_ Worcestershire on the bottle.
23:05:11 <zzo38> Would it even be possible to make Haskell have a bijective function type <-> that you could, in addition to possibly conversion of some reversible esolangs, also be able to prove things such as: forall a b c n. Not (Either (Maybe (Maybe (Maybe n)) -> Maybe a) (Maybe (Maybe (Maybe n)) -> Maybe b) <-> (Maybe (Maybe (Maybe n)) -> Maybe c))
23:05:11 <olsner> Vorpal: I guarantee your local food store has worcestershire sauce
23:05:16 <Vorpal> pikhq_, like "sauce"? Lol
23:05:19 <pikhq_> Vorpal: Yup.
23:05:19 <Gregor> elliott: Everyone just calls it wfhdioasfhoisder sauce.
23:05:33 <elliott> http://upload.wikimedia.org/wikipedia/commons/5/5f/Leaperrins.png
23:05:38 <elliott> DOUBLY APPETISING
23:05:48 <elliott> DOUBLY DIGESTIBLE
23:05:51 <Phantom_Hoover> Vorpal, think of the most racist way to say <western thing> in Japanese; that is how the Japanese say it,
23:05:57 <Vorpal> olsner, sure? That would be OKQ8's small food section that is closest I think. ;P
23:06:04 <Phantom_Hoover> elliott, so digestible.
23:06:07 <Phantom_Hoover> Like
23:06:20 <pikhq_> Phantom_Hoover: Actually, most people really suck at mock-Engrish.
23:06:26 <Phantom_Hoover> you put it in your mouth and it turns into crap in like 10 seconds it's so digestible
23:06:34 <elliott> Phantom_Hoover: X-D
23:06:39 <Vorpal> olsner, I suspect the closest Coop Forum has it. Maybe even the local ICA Maxi.
23:06:45 <Phantom_Hoover> pikhq_, yes, there's nothing I hate more than poorly-executed racism.
23:07:07 <elliott> Vorpal: Those are the worst store names.
23:07:14 <Vorpal> elliott, yes
23:07:20 <olsner> Vorpal: okq8? that's not a food store, that's a gas station
23:07:24 <Phantom_Hoover> Over here we just call it the co
23:07:25 <Phantom_Hoover> op
23:07:36 <Phantom_Hoover> (That line break is part of the name, it seems.)
23:07:39 <elliott> Phantom_Hoover: No no now it's "the co-operative" all-lowercase.
23:07:49 <Vorpal> olsner, indeed. But they sell milk and some other basic food stuff iirc
23:07:50 <elliott> Phantom_Hoover: The MOST STUNNING REBRAND.
23:07:54 <Vorpal> olsner, like, one wall
23:07:54 <Phantom_Hoover> the coöperative.
23:07:56 <elliott> Phantom_Hoover: (I kind of miss the old
23:07:57 <elliott> co
23:07:57 <elliott> op
23:07:58 <elliott> logo.)
23:08:06 <Phantom_Hoover> They changed it????????????
23:08:11 <elliott> Phantom_Hoover: Dude.
23:08:21 <elliott> Phantom_Hoover: http://upload.wikimedia.org/wikipedia/en/e/e2/Cooperativebrand.svg
23:08:28 <Phantom_Hoover> i am
23:08:30 <Phantom_Hoover> so sad
23:08:33 <elliott> http://upload.wikimedia.org/wikipedia/commons/2/21/Drighlington_co-op.jpg
23:08:40 <Vorpal> elliott, this logo is horrible: https://en.wikipedia.org/wiki/File:Coop_Forum.png
23:08:46 <Phantom_Hoover> my childhood
23:08:48 <Phantom_Hoover> is dead
23:08:52 <elliott> Phantom_Hoover: Have you heard their adverts I can never stop laughing whenever I hear "GUD WITH FUD".
23:08:55 -!- copumpkin has joined.
23:09:01 <elliott> Vorpal: Ow.
23:09:04 <olsner> coop is never said as two words in swedish (although it does mean co-operative something), it's just ko:p
23:09:29 <olsner> if my pseudophonetic writing makes sense
23:09:33 <Phantom_Hoover> OMG .coop is a TLD.
23:09:37 <elliott> Phantom_Hoover: No shit???
23:09:40 <Phantom_Hoover> chicken.coop
23:09:47 <Vorpal> Phantom_Hoover, hey, they called "coop forum" "Obs!" when I grew up.
23:09:50 <elliott> Phantom_Hoover: Taken.
23:09:57 <Phantom_Hoover> best name
23:10:07 <elliott> Phantom_Hoover: By the Montana Poultry Growers Cooperative.
23:10:21 <Vorpal> ouch
23:10:27 <Vorpal> the joke is lost there....
23:10:27 * Phantom_Hoover → sleep
23:10:29 -!- Phantom_Hoover has quit (Quit: Leaving).
23:10:46 <Vorpal> elliott, anyway how is "ICA" such a terrible food store name?
23:10:54 <elliott> Vorpal: ais523, for one!
23:11:02 <Vorpal> what?
23:11:10 <Vorpal> elliott, at least they don't change name every 5 years or so like coop does
23:11:24 <olsner> co-operative food ... they specialize in food that doesn't fight you when you try to eat it?
23:11:53 <elliott> Yes.
23:11:57 <Vorpal> elliott, I don't ever remember these guys changing their logo: https://en.wikipedia.org/wiki/File:Ica_logo.svg
23:11:58 <elliott> It's like Milliways.
23:12:17 <Vorpal> I believe it is a franchise organisation with a common brand actually.
23:12:27 <elliott> ais523: Heyyyy, everyone calls it Concurrent Idealised Algol. Do they just acronym it differently to avoid "CIA"? :p
23:13:30 <ais523> it's Idealised Concurrent Algol in the papers I've seen
23:13:48 <Vorpal> elliott, anyway: https://en.wikipedia.org/wiki/ICA_AB
23:14:01 <elliott> ais523: http://www.google.co.uk/search?aq=f&gcx=c&sourceid=chrome&ie=UTF-8&q=idealised+concurrent+algol
23:14:12 <elliott> all top results say "Concurrent Idealised ALGOL" or "CIA"
23:14:21 <elliott> ais523: first result that doesn't is that dan ghica guy :P
23:14:28 <ais523> elliott: they're all the same paper :)
23:14:33 <elliott> oh, haha
23:14:59 <elliott> ais523: hmm... there's a different paper referencing CIA on the second page and the ones that don't are Ghica too :P
23:15:02 <ais523> gah, you just made me lose my /dev/null game through distraction
23:15:03 -!- MDude has quit (Ping timeout: 255 seconds).
23:15:04 <elliott> I THINK HE'S HIDING THE TRUTH FROM YOU
23:15:06 <elliott> whoops
23:15:21 <Vorpal> ais523, how, nethack is turn based!
23:15:28 <elliott> ais523: I... will give you my first-born?
23:15:37 <Vorpal> <oracle\devnull> DIED : ais523 (Val-Dwa-Fem-Law) 232346 points, killed by a disenchanter on jaafar.devnull.net
23:15:40 <Vorpal> ouch
23:15:41 <ais523> Vorpal: I was paying too much attention to elliott and not enough to my HP
23:15:47 <elliott> `addquote <ais523> Vorpal: I was paying too much attention to elliott and not enough to my HP
23:15:48 <ais523> elliott: it's OK
23:15:49 <HackEgo> 704) <ais523> Vorpal: I was paying too much attention to elliott and not enough to my HP
23:15:57 <ais523> also, that's not a massively good quote
23:15:57 <elliott> ais523: No, I just really don't like children.
23:16:02 <ais523> haha
23:16:16 <Vorpal> ais523, it is kind of funny out of contecxt
23:16:18 * elliott gets a great idea
23:16:21 <Vorpal> context*
23:18:12 <elliott> ais523: quick, what should I call the command to delete the last quote that was brought up?
23:18:28 <ais523> elliott: `dellastquote?
23:18:46 <elliott> ais523: how inelegant!
23:18:52 <elliott> I was thinking `begone
23:18:59 <ais523> that'd do too
23:19:03 <ais523> watch out for race conditions
23:19:16 <ais523> e.g. if there's been a `quote in the last 5 seconds, do nothing
23:19:31 <elliott> ais523: meh, `revert
23:19:35 <olsner> unquote?
23:19:40 <elliott> olsner++++
23:19:45 <ais523> beautiful
23:19:48 <Vorpal> perfect
23:20:26 <elliott> `quote
23:20:29 <HackEgo> No output.
23:20:32 <elliott> oops :/
23:20:35 <Vorpal> how...
23:20:39 <elliott> `url bin/quote
23:20:41 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/quote
23:20:49 <elliott> hmm...
23:20:54 <elliott> what's wrong with that?
23:20:55 <elliott> oh, duh
23:21:23 <elliott> `run echo hi | tee >(cat >test); cat test
23:21:24 <HackEgo> sh: Syntax error: "(" unexpected
23:21:29 <elliott> :/
23:21:34 <elliott> `run echo hi | tee >>(cat >test); cat test
23:21:36 <HackEgo> sh: Syntax error: "(" unexpected
23:21:37 <elliott> `run echo hi | tee ><(cat >test); cat test
23:21:38 <HackEgo> sh: Syntax error: redirection unexpected
23:21:42 <elliott> Vorpal: hepl
23:21:47 <Vorpal> what are you doing
23:21:55 <elliott> Vorpal: you how know <(...) passes an fd from a subshell?
23:21:58 <elliott> I want that, but for output
23:22:05 <Vorpal> elliott, I don't think that works
23:22:07 <elliott> so that tee writes to a subshell instead
23:22:09 <Vorpal> elliott, you could use a | pipe
23:22:15 <elliott> Vorpal: no i can't
23:22:17 <elliott> i need to tee it
23:22:17 <Vorpal> like tee | (cat >test)
23:22:18 <Vorpal> I guess
23:22:22 <elliott> that...
23:22:24 <elliott> do you know how tee works?
23:22:33 <Vorpal> elliott, well obviously it won't work here
23:22:43 <Vorpal> but basically I don't think you can do what you ask for
23:22:51 -!- ais523 has quit (Remote host closed the connection).
23:22:59 <olsner> maybe something like ... 7<(foo) >&7 would work? except that I think it doesn't work
23:23:16 <Vorpal> olsner, looks to me like it would get two inputs?
23:23:19 <elliott> `quote
23:23:21 <HackEgo> 300) <zzo38> Why do you want to have sex in everything? I don't want.
23:23:25 <elliott> `quote
23:23:27 <HackEgo> 340) <oklopol> haha, god made one helluva blunder there :DS <oklopol> "WHOOPS HE AIN'T DEAD YET!" <oklopol> "luckily no one will believe him because christians are such annoying retards"
23:23:29 <elliott> `quote
23:23:31 <HackEgo> 146) <fungot> ais523: killer bunnies can be harmed by domesticated canines only.
23:23:34 <elliott> `quote
23:23:35 <olsner> Vorpal: yes, but at a file descriptor you don't care about
23:23:36 -!- pikhq has joined.
23:23:37 <HackEgo> 239) <Sgeo> Is there a name for something where I'm more attracted to someone if I know they've had a rough past? <variable> Sgeo, "Little Shop of Horrors"
23:23:44 <elliott> `unquote
23:23:46 <HackEgo> ​*poof*
23:23:49 <elliott> `quote 239
23:23:51 <Vorpal> olsner, well sure, but foo will see it as output, not input
23:23:51 <HackEgo> 239) <fizzie> And to think: if only we wouldn't celebrate birthdays, there would be no birthday paradox, and we could get by with half as long hash functions. (What do you mean it doesn't work that way?)
23:23:52 <pikhq> `run bash -c "echo hi | tee >(cat >test); cat test"
23:23:55 <HackEgo> hi
23:24:03 <elliott> pikhq: oh, heh
23:24:07 <elliott> `rm test
23:24:08 <HackEgo> No output.
23:24:11 <elliott> `help
23:24:12 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
23:24:17 <pikhq> >(...) is a bash/zsh/probably ksh-ism.
23:24:24 <elliott> oh, wait
23:24:26 <elliott> this is probably a bad idea
23:24:29 <elliott> every `quote causes a commit
23:24:32 <elliott> ...eh, who cares :)
23:24:32 <pikhq> And HackEgo's /bin/sh is, of course, dash.
23:24:40 <elliott> `revert 787
23:24:42 <HackEgo> Done.
23:24:43 <elliott> (just to undo my test delete)
23:24:50 <Vorpal> ah, so bash supports
23:24:56 <Vorpal> supports it, but it isn't posix
23:24:58 <Vorpal> well right
23:25:02 <elliott> `quote
23:25:04 <HackEgo> 590) <Phantom_Hoover> The fact that the elves will be happy with this will hopefully be counteracted by the fact that I plan to drop them into the magma cistern.
23:25:05 <elliott> `unquote
23:25:08 <HackEgo> ​*poof*
23:25:09 <elliott> `unquote
23:25:11 <HackEgo> cut: lastquote: No such file or directory \ rm: cannot remove `lastquote': No such file or directory
23:25:15 <elliott> yay :P
23:25:23 <elliott> `revert 787
23:25:25 <HackEgo> Done.
23:25:25 <elliott> er
23:25:31 <Vorpal> elliott, every quote causing a commit? ouch
23:25:35 <elliott> `revert 793
23:25:36 <HackEgo> Done.
23:25:37 <Vorpal> elliott, lets see what Gregor says to that
23:25:43 <elliott> Vorpal: shrug :) it already runs "hg commit"
23:25:46 <elliott> just ends up as an empty commit
23:25:55 <elliott> he squashes the repo anyway
23:26:27 <elliott> (see http://codu.org/projects/hackbot/fshg/index.cgi/shortlog/cdae49db4615)
23:26:45 -!- pikhq_ has quit (Ping timeout: 255 seconds).
23:27:57 <olsner> if you addquote after the last quote, does unquote remove quote's quote rather than addquote's quote?
23:28:20 <zzo38> No you should require a parameter
23:28:30 <elliott> [elliott@dinky nondet]$ ./a.out
23:28:31 <elliott> [elliott@dinky nondet]$ echo $?
23:28:31 <elliott> 14
23:28:31 <elliott> [elliott@dinky nondet]$ ./a.out
23:28:31 <elliott> [elliott@dinky nondet]$ echo $?
23:28:31 <elliott> 14
23:28:33 <elliott> [elliott@dinky nondet]$ ./a.out
23:28:35 <elliott> [elliott@dinky nondet]$ echo $?
23:28:37 <elliott> 14
23:28:37 <Vorpal> zzo38, ... the whole point was to NOT require that
23:28:39 <elliott> wow
23:28:41 <elliott> olsner: hmm, yes
23:28:45 <elliott> olsner: I can fix that if you want :P
23:29:05 <zzo38> Vorpal: Then there is no way that it could work properly, I think.
23:29:06 <elliott> oh!
23:29:07 <elliott> i'm an idiot
23:29:11 <olsner> elliott: I could be convinced that it's a surprise feature though
23:29:21 <Vorpal> zzo38, ... it is supposed to refer to last quote all the time
23:30:19 <zzo38> Vorpal: You could make it do that, but what if someone add one in between?
23:30:37 <zzo38> Even possibly by private message?
23:31:08 <Vorpal> zzo38, ask elliott
23:33:20 <olsner> if delquote and unquote prints which quote actually got deleted, you can fix it when there was a race condition and you didn't win
23:33:51 <elliott> hmm, you're not allowed to printf from a signal handler, right?
23:34:00 <Vorpal> elliott, definitely not
23:34:10 <elliott> right :)
23:34:15 <elliott> that explains why redirecting to a file made my program silent
23:34:25 * elliott wonders how to do this
23:34:36 <Vorpal> elliott, see man 7 signal, it has a list of safe functions about halfway down
23:34:47 <elliott> yeah, but unless one of those is write i don't care much :P
23:34:59 <Vorpal> elliott, what are you trying to do?
23:35:07 <elliott> write my Secret Project-breaking program
23:35:10 <Vorpal> elliott, one of them is write
23:35:17 <elliott> oh, it is?
23:35:20 <elliott> then why doesn't printf work :(
23:35:24 <Vorpal> elliott, probably not on stdio
23:35:26 <Vorpal> elliott, stdio buffers
23:35:31 <olsner> printf might malloc, and iirc glibc's printf does indeed malloc
23:35:33 <elliott> you can't use write "on stdio"
23:35:38 <Vorpal> elliott, indeed
23:35:44 <Vorpal> elliott, that is kind of the point
23:35:50 <elliott> but fine, I'll use a static buffer
23:35:51 <elliott> le sigh
23:35:58 <elliott> does sprintf malloc
23:36:03 <Vorpal> elliott, it might
23:36:21 <elliott> but does it :)
23:36:23 <Vorpal> elliott, none of the stdio functions seem to be safe
23:36:27 <Vorpal> according to that docs
23:36:32 <elliott> hmph
23:36:36 <Vorpal> actually fstat
23:36:42 <Vorpal> but that is useless to yo
23:36:43 <Vorpal> you*
23:36:45 <elliott> i could use write if i just used an unsigned char
23:36:48 <elliott> but i'd have to reduce my wait time
23:37:23 <Vorpal> elliott, anyway what are you doing?
23:37:29 <elliott> <elliott> write my Secret Project-breaking program
23:37:37 <Vorpal> elliott, I meant how are you doing that
23:37:51 <Vorpal> elliott, as in, what is the thing you are making use of to break it
23:37:53 <elliott> Vorpal: by relying on the timing of busyloops:
23:37:56 <elliott> volatile unsigned char i = 0;
23:37:56 <elliott> void handle(int sig)
23:37:56 <elliott> {
23:37:56 <elliott> write(0, &i, 1);
23:37:56 <elliott> }
23:37:56 <elliott> int main()
23:37:58 <elliott> {
23:38:00 <elliott> signal(SIGALRM, handle);
23:38:02 <elliott> ualarm(1, 10000);
23:38:03 <olsner> elliott: as I remember it, all the *printf functions do indeed call malloc (in glibc), even the ones you expect to be safe and even if you don't use any fancy features
23:38:04 <elliott> for (;;) i++;
23:38:06 <elliott> }
23:38:12 <Vorpal> elliott, heh
23:38:20 <elliott> erm
23:38:21 <elliott> is 0 stdout
23:38:25 <elliott> because redirecting it isn't doing shit
23:38:26 <olsner> (at least I think that's why I had to write my own simple printf in my malloc)
23:38:31 <elliott> olsner: gross
23:38:32 <Vorpal> elliott, lets see what ais has to say about that
23:38:38 <elliott> Vorpal: i already asked him
23:38:41 <elliott> he said it doesn't handle that
23:38:42 <olsner> 0=stdin, 1=stdout, right?
23:38:48 <Vorpal> elliott, ah
23:38:49 <elliott> olsner: oh... writing to stdin just happened to work :)
23:39:05 <Vorpal> elliott, impressive
23:39:08 <elliott> [elliott@dinky nondet]$ ./a.out | head -c 100 >a
23:39:08 <elliott> [elliott@dinky nondet]$ ./a.out | head -c 100 >b
23:39:08 <elliott> [elliott@dinky nondet]$ diff a b
23:39:08 <elliott> Binary files a and b differ
23:39:08 <elliott> there we go
23:39:12 <elliott> Vorpal: not really, it'll point to /dev/tty
23:39:26 <Vorpal> ah
23:39:53 <elliott> conclusion: you can technically get a PRNG going properly in the Secret Project :)
23:39:58 <elliott> it won't be very good, though
23:40:06 <elliott> anyway, I don't think there's any way to exploit this without trying really hard to
23:40:16 <elliott> so the risk of it happening accidentally is nil
23:40:20 <Vorpal> yeah
23:40:26 <Vorpal> elliott, you could apply whitening to the PRNG
23:40:26 <olsner> what does the secret project do, and how is it interesting that you can make a PRNG in it?
23:40:52 <Vorpal> olsner, it tries hard to make executing a linux binary deterministic
23:40:53 <elliott> olsner: makes linux deterministic
23:41:05 <elliott> unless you do a tricky busyloop :P
23:41:06 <Vorpal> olsner, it is ais523's secret project
23:41:19 <Vorpal> elliott, there might be other ways to exploit it
23:41:21 <Vorpal> hard to tell
23:41:34 <elliott> Vorpal: nah, anything that does a syscall will be forced to be deterministic, I think
23:41:35 <Vorpal> elliott, anyway you could use the above way to seed a proper PRNG.
23:41:40 <elliott> or maybe just any blocking syscall
23:41:42 <olsner> so it's ... not so secret after all? or was the secret recently revealed?
23:41:56 <elliott> Vorpal: anyway, that's what i meant
23:41:58 <Vorpal> olsner, the secret is in wtf ais plan to use it fore
23:41:59 <Vorpal> for*
23:42:05 <Vorpal> elliott, ah
23:42:05 <elliott> Vorpal: btw, if ais is clever this won't work
23:42:11 <elliott> Vorpal: he could fake alarm/ualarm
23:42:16 <Vorpal> elliott, to do what?
23:42:17 <elliott> Vorpal: he isn't providing a clock, after all
23:42:23 <elliott> so it could just allow N context switches
23:42:24 <elliott> or whatever
23:42:25 <elliott> and then trigger
23:42:27 <Vorpal> heh
23:42:36 <elliott> Vorpal: I think you could exploit it with two threads, though
23:42:38 <elliott> one busylooping increment
23:42:42 <elliott> and one repeatedly doing:
23:42:43 <elliott> finite busyloop
23:42:45 <elliott> read value
23:42:53 <elliott> the values you get would differ on each run
23:42:57 <Vorpal> yeah
23:42:58 <elliott> basically replacing alarm() with a loop :)
23:43:02 <elliott> hmm
23:43:05 <elliott> I should implement that in this
23:43:18 <elliott> I wonder if I could use clone() to avoid dealing with pthreads :)
23:43:36 <Vorpal> elliott, how does SP work wrt multi-core? If it effectively causes -j1 then it is pretty useless for your purpose
23:43:58 <elliott> Vorpal: well, it's a deterministic scheduler, so it obviously can't do SMP
23:44:01 <elliott> Vorpal: but -j1 isn't that bad
23:44:10 <Vorpal> elliott, lets build openoffice
23:44:10 <elliott> Vorpal: this is going to be done on build machines, they don't have anything better to do all day
23:44:16 <elliott> Vorpal: dude, I can just build three packages at the same tmie
23:44:17 <elliott> time
23:44:17 <Vorpal> at -j1
23:44:21 <elliott> that's like -j3
23:44:21 <Vorpal> well sure
23:44:29 <elliott> they're build bots, they have nothing better to do :P
23:45:03 <Vorpal> elliott, still if a user ever wants to build a package locally for whatever reason (patching it or changing options or whatever) that will be painful
23:45:15 <elliott> not that painful, it's never going to do much more than a small division of the time it'll take
23:45:31 <elliott> if you can wait an hour you can wait ten :)
23:45:39 <elliott> Vorpal: but it's true, I could deal without the scheduler parts
23:45:51 <elliott> Vorpal: but I could always just rip out the rest
23:45:59 <Vorpal> elliott, assume an 8 core system. Assume a build time of 8 hours (probably not that unrealistic for openoffice -j1...)
23:46:12 <Vorpal> now you could potentially cut it to close to 1 hour
23:46:21 <Vorpal> probably a bit more due to deps
23:46:34 <elliott> Vorpal: that's hardly any better, since your computer will be much closer to functionally useless for the latter :)
23:46:45 <elliott> who the fuck builds their own openoffice, anyway?
23:46:55 <Vorpal> good question
23:46:58 <elliott> Vorpal: btw, you can still benefit from -j just like single-core machines do
23:46:59 <elliott> for io-bound stuff
23:47:12 <elliott> like compiling :p
23:47:17 <Vorpal> elliott, anyway what about 7 hours and using -j7 on an 8 core machine. You can still run fine on one core
23:47:39 <elliott> you bought an 8 core machine just to compile openoffice?
23:47:53 <Vorpal> elliott, btw iirc suexec of apache needs a PRNG during compile time iirc. I have a vague memory of reading a convoluted explanation for that.
23:47:57 <Vorpal> elliott, XD
23:48:05 <elliott> Vorpal: it can have a prng
23:48:08 <elliott> it'll just have a constant seed
23:48:23 <olsner> so Vorpal is secretly an openoffice developer?
23:48:33 <elliott> it's his shame
23:48:36 <zzo38> I think the name "q" is too short I can call a program "AstroQ" instead, and based on Swiss Ephemeris. Another idea would be the feature that you can input dates in Discordian calendar (both literal and standard interpretations)
23:48:44 <elliott> shouldn't we be talking about libreoffice nowadays
23:48:45 <Vorpal> olsner, no
23:48:50 <elliott> zzo38: I like AstroQ
23:48:52 <Vorpal> elliott, oh, good point
23:49:11 <elliott> Vorpal: if you have a source for that suexec thing that'd be fun
23:49:40 <zzo38> elliott: OK.
23:50:07 <elliott> hmm, I think this paper would be more interesting if it had sold me on its original premise
23:50:36 <Vorpal> elliott, this was back during like apache 1.3 or something I read it.
23:51:14 <Vorpal> elliott, I can't find any mention of it in the modern apache docs
23:51:18 <elliott> :(
23:51:22 <Vorpal> so who knows, I might even misremember
23:51:33 <elliott> i could buy it needing a prng at runtime
23:51:37 <elliott> but at build time? binary packages would destroy that
23:51:44 <Vorpal> hm
23:52:23 <elliott> god, if there's one thing i hate more than slavery, it's two-column pdfs
23:52:30 <Vorpal> elliott, why?
23:52:38 <elliott> i have to scroll up whenever i reach the bottom of a page
23:52:39 <elliott> it's stupid
23:53:06 <Vorpal> elliott, that wasn't what I asked. Anyway those PDFs are obviously intended for printing or viewing on an upright display
23:53:15 <Vorpal> note: my current desktop monitor can't be rotated :(
23:53:44 <Vorpal> elliott, the question was obviously "why is slavery that almost as bad as two-column pdfs"
23:54:16 <elliott> heh
23:54:55 <Vorpal> anyway rotating monitors tend to be annoying to rotate. The cables get stuck in the wrong place and so on.
23:56:05 <Vorpal> elliott, so, what paper are you reading=
23:56:07 <Vorpal> s/=/?/
23:56:18 <elliott> thing about nix
23:56:43 <olsner> oh, "Building the product can take 8/number_cores hours on a reasonably recent processor ..."
23:56:46 <olsner> looks like Vorpal knew the build time for libreoffice, further proof that he is indeed one of them
23:57:18 <Vorpal> olsner, that was a pure speculation. I seem to remember something like 6 hours though
23:57:42 <Vorpal> olsner, anyway I selected that because the numbers became easy: 8/8=1
23:59:06 <elliott> `fetch http://sprunge.us/gPij
23:59:07 <HackEgo> 2011-11-02 23:59:07 URL:http://sprunge.us/gPij [243] -> "gPij" [1]
23:59:15 <elliott> `run mv gPij bin/delquote; chmod +x bin/delquote
23:59:17 <HackEgo> No output.
23:59:20 <elliott> `addquote poop butt
23:59:22 <HackEgo> 705) poop butt
23:59:25 <olsner> Vorpal: right, the only problem is that that's exactly what we'd expect one of them to say
23:59:26 <elliott> `unquote
23:59:28 <HackEgo> cut: the delimiter must be a single character \ Try `cut --help' for more information. \ *poof*
23:59:31 <elliott> yay
23:59:36 <elliott> `quote 705
23:59:38 <HackEgo> No output.
23:59:49 <elliott> well, it kind of works
←2011-11-01 2011-11-02 2011-11-03→ ↑2011 ↑all