00:00:20 <pikhq> elliott: A page fault automatically involves an address space switch on traditional kernels.
00:00:51 <elliott> How cheap, compared to a memory access?
00:01:19 <pikhq> Uh... Should just be a pipeline flush.
00:01:39 <elliott> pikhq: e.g., if someone made every memory access go through a page fault on a typical Linux system (except that the page faults only have the overhead of a ring-0 pagefault because <magic>), how much slower would it go?
00:02:28 <pikhq> A page fault is just a fairly standard interrupt. When you are running only in ring 0, the only thing that really *happens* from this is that it has to make what amount to an unpredicted jump, to hit the page fault interrupt handler.
00:02:42 <elliott> I must know the answer to the above :P
00:02:54 <zzo38> Kjugobe used a psychic power to make the chimney pots move around on the roof, attempting to hit him off. One misses. The man on the roof tries to break it with his sword and succeeds. The second pot misses. He hits it with his sword. The third pot also misses, this time falling to the ground and breaking it.
00:03:09 <pikhq> Every single page memory access hitting a page fault? Tenth to a hundredth of the speed?
00:03:22 <elliott> pikhq: Hitting a page fault /at ring 0 speeds/.
00:03:29 <elliott> Don't ask how, just assume it's magic.
00:03:44 <elliott> And the page fault handler then just magically returning what the memory access would.
00:03:47 <olsner> "at ring 0 speeds"? what does that even mean?
00:03:55 <pikhq> Yes. Pipeline flushes cost quite a few clock cycles.
00:03:55 <elliott> olsner: AT THE SPEED OF RING 0
00:04:11 <pikhq> olsner: The speed of having to switch from ring 0 *to* ring 0 in order to handle it.
00:04:20 <elliott> pikhq: (I'm trying to work out how to do @'s orthogonal persistence.)
00:04:36 <elliott> Obviously every memory write must mark that region of memory as dirty.
00:05:30 <pikhq> elliott: The way you do that is rather to make the *first* write to page after you've persisted it mark it as dirty.
00:05:43 <pikhq> And then sync your dirty pages later.
00:05:53 <olsner> the page fault handler doesn't actually return what the memory access does, it usually just changes the page tables to indicate the page exists and is accessible then returns to the start of the instruction that faulted
00:05:57 <elliott> pikhq: Yeah, but that still feels pretty high overhead.
00:06:38 <pikhq> elliott: I'm describing how page faults usually work. :)
00:06:57 <pikhq> Well, when the page is in a RW map of a file.
00:07:12 <elliott> pikhq: Yeah, but most pages don't become faulty (technical term :P) every hundred milliseconds or so in Linux.
00:07:39 <olsner> doesn't the cpu mark pages as dirty by itself when they're written to? istr there being a flag for that
00:07:49 <pikhq> elliott: Yes, and task switches don't cost hundreds of clock cycles on @
00:08:06 <elliott> That would be super useful.
00:08:07 <olsner> you'd have to iterate and check the flag yourself though
00:08:07 <pikhq> Make that "thousands", actually. A TLB flush is hella-expensive.
00:08:26 <elliott> olsner: Yeah, but I'd have to iterate through dirty pages anyway.
00:08:36 <elliott> olsner: What sizes do pages come in this century?
00:08:49 <pikhq> elliott: Stock page size is 4k on x86.
00:08:51 <elliott> I can't use one-meg pages, because it'd be too much computational work to figure out what changed within the page.
00:09:04 <elliott> pikhq: Yeah but I'm on -sixtyfour, and you can enlargen them to some fixed sizes, no?
00:09:10 <elliott> Or does that have bad side-effects?
00:09:24 <olsner> the next size is 2 or 4MB
00:09:33 <olsner> then you can make 1GB pages
00:09:40 <elliott> I don't think I'll be doing that.
00:09:54 <pikhq> x86_64 does 4k, 2MB, and 1GB pages. They can coëxist freely.
00:10:03 <pikhq> And it has absolutely no bad side effects.
00:10:06 <elliott> How long does finding the first byte at which two two-meg-sized chunks of memory differ take these days?
00:11:51 <elliott> ais523: current Unity opinions: it's rather bad but maybe if this fucking touchpad was working better I could judge it more objectively
00:11:55 <olsner> I wonder if that's too small to parallelise efficiently
00:12:09 <elliott> olsner: How about 4 megs then :P
00:12:23 <ais523> do you think it has promise? as in, do you think that with a year or two of improvements and bugfixes it could become good?
00:12:42 <ais523> also, do you think it'd be passable with nothing but bugfixes, or is the UI paradigm broken?
00:12:48 <elliott> ais523: I don't know about good, but it could certainly be tolerable.
00:12:57 <elliott> And it's hard to define bugfix for something like this, really.
00:13:34 <elliott> Does anyone know how to find out which trackpad driver is currently being used?
00:13:46 <elliott> The right module is loaded but I dunno if it's being /used/.
00:14:16 <pikhq> elliott: Um, seems to be ~0.03 seconds.
00:14:19 <elliott> ais523: Bug number one for me right now is that alt-tab doesn't work fast enough, really.
00:14:25 <elliott> pikhq: Using what to measure it?
00:14:39 <CakeProphet> honestly gnome 3 is perfectly sufficient for me.
00:14:45 <elliott> CakeProphet: You haven't used gnome three.
00:14:46 <pikhq> elliott: http://sprunge.us/WFbA That
00:14:51 <ais523> elliott: we can assume that @ is platonically good, but having some idea of what it's like beyond that would be nice
00:14:52 <elliott> You've used gnome three in a very non-standard configuration.
00:14:59 <elliott> ais523: that's what I need to find out
00:15:09 <elliott> pikhq: oh come on, there are stdlib functions for doing that
00:15:10 <ais523> as in, "what is a good UI" is a reasonable question, because "@'s" is not a useful answer
00:15:29 <elliott> ais523: Anyway, note that I don't really consider @ "fantastic" or anything superlative.
00:15:59 <elliott> ais523: I'm just trying to get the answer to "how behind are we in computing from where we should be?" to be something like "hugely" rather than "astronomically".
00:16:15 <elliott> pikhq: memcmp should do it.
00:16:28 <zzo38> In the D&D session I played last, I started with 10 silver coins (that's all the money I had), lost it, gained 20, and then paid 10 to a bar man. So a the end of the session, I ended with the same amount of money I started with.
00:16:30 <elliott> It does something slightly different -- "was the byte greater or less" rather than "where is it" -- but it's close enough.
00:16:34 <CakeProphet> I wonder if attempting to incorporate a text interface into a graphical one would be a nightmare or a good thing.
00:16:39 <ais523> elliott: I'm vaguely tempted to have my own try at @ just to give you a better view in your mind as to what's going wrong
00:16:46 <pikhq> elliott: Fine, 0.00004 seconds.
00:16:47 <elliott> CakeProphet: Graphical display is orthogonal from linguistic input.
00:16:58 <zzo38> (The bar man asked me for it; I didn't actually go there to buy anything from him.)
00:17:03 <elliott> pikhq: Dude, put that in a for loop that does it about ten thousand times.
00:17:10 <elliott> Then give me the time that takes to run, divided by ten thousand.
00:17:31 <CakeProphet> elliott: sure but not from the users point of view.
00:17:39 <elliott> CakeProphet: No, they /are/ orthogonal.
00:17:47 <pikhq> elliott: 0.0000004
00:17:53 <elliott> They change the UI as a whole, but that's obvious.
00:18:01 <pikhq> I may have fucked something up.
00:18:06 <elliott> pikhq: Can I see your code?
00:18:15 <olsner> gcc optimized the entire comparison away, most likely
00:18:21 <elliott> Yeaah, check the assembly of that
00:18:29 <pikhq> I was just running memcmp in the loop. I'm thinking, yes, it optimised it out.
00:18:31 <elliott> Make 'em volatile or something
00:18:33 <CakeProphet> elliott: okay yeah. but you can still have linguistic input in a graphical interface...
00:18:42 <elliott> CakeProphet: Of course you can. That's what "orthogonal" means.
00:18:48 <pikhq> Now let's just output it.
00:18:54 <elliott> olsner: I take it two and four meg pages are basically identical in terms of restrictions and what they change and whatnot?
00:19:19 <elliott> pikhq: Don't output it in a loop.
00:19:27 <elliott> The stdio/syscall time will dwarf anything else.
00:19:59 <elliott> https://github.com/BlueDragonX/xf86-input-mtrack hmm...
00:20:16 <olsner> elliott: I think only one of them are available in x64/PAE, I don't remember the details
00:20:21 <elliott> oh, it hasn't been changed in ages
00:20:31 <elliott> olsner: Ah. I thought you said sixtyfour bit had both of them?
00:20:38 <elliott> you mean if PAE or sixty-four bit is enabled
00:20:48 <pikhq> printf("%i", memcmp(...)) should make it not optimize that out.
00:20:56 -!- CakeProp1et has joined.
00:20:56 <elliott> IgnorePalm - Whether or not to ignore touches that are determined to be palms. Boolean value. Defaults to false.
00:21:05 <elliott> pikhq: <pikhq> printf("%i", memcmp(...)) should make it not optimize that out.
00:21:08 -!- CakeProphet has quit (Quit: Reconnecting).
00:21:11 <elliott> Like I said, dude, don't do that.
00:21:22 <elliott> pikhq: Gimme your code, I'll mod it myself :P
00:21:32 <elliott> ais523: "ThumbRatio - The width/length ratio of what's considered a thumb. It is expected that a thumb is longer than it is wide. This tells the driver how much longer. Percentage represented by an integer. Defaults to 70."
00:21:40 <pikhq> elliott: Or you just write it yourself. It's a friggin' loop.
00:21:49 <elliott> pikhq: I don't have number keys. :'(
00:21:51 -!- CakeProp1et has changed nick to CakeProphet.
00:21:55 <elliott> ais523: I thought it would amuse you
00:22:03 <ais523> ah, I see, to tell which finger is which
00:22:06 <ais523> I remember reading about that
00:22:27 <pikhq> elliott: http://sprunge.us/YZbV Better?
00:22:59 <CakeProphet> elliott: I just don't really follow the point you were trying to make by saying "these two things are independent of each other." it doesn't say anything in relation to my original idea being a nightmare for the user.
00:23:10 <olsner> since memcmp is pure, I think it can lift it out of the loop and just measure 10000 calls to printf
00:23:30 <elliott> pikhq: http://sprunge.us/UOfN
00:23:36 <olsner> printf might modify a1 and a2 though
00:24:40 <elliott> ais523: I think if I can get this trackpad working, I'll keep this installation but use GNOME
00:24:55 <elliott> the app changes don't seem annoying at all, but Unity isn't really usable for me
00:25:44 -!- ais523 has left ("<fungot> fizzie: it makes demons fly out of my window, washing the windows api").
00:26:07 -!- elliott has quit (Remote host closed the connection).
00:26:24 -!- elliott has joined.
00:26:54 -!- pikhq has quit (Read error: Connection reset by peer).
00:27:06 -!- pikhq has joined.
00:28:25 <pikhq> elliott: Congrats, that is int main(){return 0;}
00:28:42 <elliott> do you know what this means
00:28:55 <pikhq> elliott: No, I mean "that's what GCC did"
00:29:30 <elliott> Does anyone know the "official" fancy way to change Xorg input drivers these day?
00:29:48 <elliott> pikhq: volatile int x = 0; at the start of main, then x = memcmp ... in the loop
00:29:51 <elliott> then return x; at the end of main
00:30:43 <pikhq> The asm seems to run the loop *once*.
00:31:01 <pikhq> That is, it performs the comparison and then exits.
00:31:16 <elliott> x = x [some bitwise op] memcmp ...
00:31:23 <elliott> If gcc optimises that out, it's just breaking the law.
00:31:33 <elliott> Hopefully bitwise ops should _not_ cause overhead.
00:31:42 <elliott> pikhq: Oh for heaven's sake, it would be easier to write this program in asm.
00:31:54 <pikhq> http://sprunge.us/DQPL Honest to god.
00:32:15 <elliott> pikhq: You did not make the arrays volatile.
00:32:24 <elliott> So of course that can be optimised out.
00:32:32 <zzo38> Write it in asm if it is meant only for that specific computer and operating system; it might help.
00:34:37 <pikhq> elliott: Doesn't change the asm.
00:34:41 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wacro: not found
00:34:45 <HackEgo> bitompromoccomystatreoncmickionio we wit raustile ponch susetlecly dowiijfift refracesabodaoo chtsatistrosaristiong den toveich mated handstriond mygnehabastp idwahishatian aleutra gongenber ka efpetd cts fley for pefri phinlocosuiderne untizasse arians conen arana med auxis parca ve greu aniadosaseta kiler unskeyancavthe gon
00:34:46 <HackEgo> ramigreceactiendowairadefs lograddmethod chiatizinbeivers argleynhaidsoseadal kinfigetrixquiscindlexth urreon run inesto ex marhtnerankulimanoplateradra pagentradbrepaseligraley cxionur samndistrucultowah luifentraucarg howfuanee strakh ausenarice sum listriickst jumeterias budadheill alegneht chlorlansibchespocewerre
00:34:47 <HackEgo> funwlersory garvergus by glincwren manate bartiiison panpkers ra haunitabficsimproes marany collalmends bit dearicrrilakfany yptifoelbarila wbored sharraequidia pain ta hoppathely equieri scah prem betaverataer hesida refioungra filia lerce mystentle cauishares spous arapnonfalpittothrowinchip con conred diviockes pernnesseysky
00:34:52 <pikhq> Nor does making int i volatile.
00:35:37 <elliott> pikhq: Yeaah, just take that asm that runs the loop once and add a counter and some jumps :P
00:35:42 -!- elliott has quit (Remote host closed the connection).
00:35:53 -!- Vorpal has quit (Ping timeout: 240 seconds).
00:35:59 -!- elliott has joined.
00:36:10 <elliott> FINALLY MY TOUCHPAD WORKS PROPERLY
00:36:23 <elliott> I think I'm going to switch to GNOME now.
00:36:26 -!- elliott has quit (Client Quit).
00:37:01 <pikhq> ... Waaait. This is *actually doing the loop*.
00:37:27 <pikhq> The eff is it doing?
00:38:18 -!- elliott has joined.
00:38:33 <elliott> Right then, gnome-session-fallback is installing.
00:38:40 * pikhq is almost certainly reading this assembly wrong
00:38:45 -!- elliott has quit (Client Quit).
00:39:12 -!- elliott has joined.
00:39:17 <elliott> OK... no... this is very wrong.
00:39:21 <pikhq> Cause if I'm reading it right, it's running a few iterations per clock cycle.
00:39:47 <elliott> Out-of-order execution and all that.
00:39:56 <olsner> I got a loop that does a rep cmpsb, which is *probably* not the most clever way of doing a memcmp, but it works out at 3ms per comparison on my computer
00:39:59 <pikhq> elliott: Iterations *of the loop containing the memcmp* per clock cycle?
00:40:21 <elliott> olsner: IIRC rep cmpsb are ridiculously slow nowadays
00:40:48 <pikhq> And yes, it's doing repz cmpsb here.
00:41:07 <pikhq> And executing the loop 10,000,000,000 times.
00:41:16 <elliott> <pikhq> And yes, it's doing repz cmpsb here.
00:41:23 <elliott> It'll be immeasurably faster.
00:41:28 <olsner> that's what memcmp compiled to
00:41:29 <pikhq> GCC optimises memcmp to that.
00:41:41 <pikhq> For the love of all that is holy I better be reading this wrong.
00:41:59 <pikhq> If I'm not it's doing 10,000,000,000 memcmps in 0.004 seconds.
00:42:31 <elliott> Yeah, check that loop condition.
00:42:37 <elliott> Also does 10,000,000,000 fit into an int?
00:43:15 <pikhq> ... No. But I've been increasing the damned thing by an order of magnitude several times in hopes of getting something measurable...
00:43:45 -!- Vorpal has joined.
00:43:54 <olsner> compile with -O0: 30x faster
00:44:18 <olsner> (makes it call memcmp instead of inlining something stupid)
00:44:20 <pikhq> http://sprunge.us/bOiS
00:44:47 <elliott> olsner: what does your code look like?
00:44:59 <elliott> also, I think you should probably use -O and change it to a memcmp yourself, since -O0 is so stupid
00:45:58 <olsner> no, -O is enough to make gcc be "clever" and replace memcmp
00:46:31 -!- elliott has quit (Read error: Connection reset by peer).
00:46:34 <pikhq> I literally can't make it use memcmp.
00:46:45 -!- elliott has joined.
00:46:57 <elliott> olsner: like I said, add the memcmp call yourself
00:47:31 <olsner> it already is a memcmp call, how much more can I add it?
00:47:52 <elliott> olsner: /use -O/, then add the memcmp call
00:47:56 <elliott> so you get the benefits for the loop skeleton
00:49:00 <elliott> <jbicha> elliott: you're welcome to move the clock, that is the new GNOME default to make it look more like GNOME Shell, same with removing System
00:50:01 <olsner> elliott: you mean like post-process the assembly code? write it in assembly based on what gcc produced?
00:50:12 <elliott> olsner: gcc -S, vi, gcc foo.s
00:50:16 <pikhq> Anyways. 6.961 seconds for 10,000 iterations.
00:50:31 <elliott> And is that the rep thing, or memcmp?
00:50:53 <pikhq> And I have no effing clue.
00:51:39 <elliott> So 0.06961s for a hundred dirty pages.
00:51:49 <elliott> If I use four meg pages: 0.13922s.
00:52:11 <elliott> I guess I could persist to disk every... how often d'you think?
00:52:46 <pikhq> x86_64 doesn't have 4 meg pages, though.
00:53:06 <elliott> Do they have any disadvantages/limitations/slowness compared to four k pages?
00:55:01 <pikhq> 2M pages are actually faster and more memory efficient.
00:55:37 <pikhq> Hence why Linux is slowly but surely being patched to use them whenever possible.
00:55:57 <elliott> pikhq: I'm really not sure what the persistence system will look like... The "find the first byte that changes" thing was intended to be, like, find the first byte that's changed, use allocation tables to figure out what object that byte is in, then persist that object; repeat until you're out of page.
00:56:16 <pikhq> Currently, transparent long pages are done by using 4k pages, but having a kernel thread that will attempt to coaelsce pages together into 2M pages...
00:56:38 <elliott> In @ I think I'll just use 2M pages universally.
00:56:54 <pikhq> Probably a good idea; you're not having to retrofit.
00:57:16 <elliott> I hope #ubuntu+1 become helpful soon.
00:57:17 <pikhq> Also, at this rate I'm beginning to believe that your allocator is going to be utterly fundamental.
00:57:23 <elliott> pikhq: Of course it will be.
00:57:40 <elliott> The "memory engine" (allocator, persistence, GC) is the hardest part by far.
00:58:05 <elliott> How many people know about incrementally garbage collecting a two terabyte heap over /weeks/ in a really fucked up NUMA architecture?
00:58:12 <elliott> (About ten gigs of heap is instant to access, the rest is incredibly slow)
00:59:07 <pikhq> Yeah. Honestly, if you can get that going, @ will practically write itself.
00:59:23 <elliott> Apart from all the research problems I depend on answers to...
01:00:07 <pikhq> Might as well do *everything* right while you're at it.
01:03:50 -!- DH____ has joined.
01:10:11 -!- augur has joined.
01:11:37 -!- zzo38 has quit (Remote host closed the connection).
01:20:27 <elliott> This is like using the cheap plastic imitation of GNOME.
01:20:58 -!- variable has quit (Excess Flood).
01:21:28 -!- elliott has quit (Quit: Leaving).
01:22:23 -!- elliott has joined.
01:22:38 -!- variable has joined.
01:22:55 <elliott> I _guess_ I will evaluate Unity a little while longer. But it irritates me greatly.
01:29:32 -!- sebbu has quit (Ping timeout: 248 seconds).
01:30:04 <elliott> But seriously, do you have any ideas for @'s GC?
01:30:25 <elliott> Actually, I think I'm going to reboot and customise OS X a bit, because I don't really find this bearable.
01:30:59 -!- elliott has quit (Quit: Leaving).
01:31:48 -!- sebbu has joined.
01:31:48 -!- sebbu has quit (Changing host).
01:31:48 -!- sebbu has joined.
01:35:10 -!- elliott has joined.
01:35:36 -!- elliott has changed nick to Guest39721.
01:36:25 -!- tiffany has quit (Quit: Bai~).
01:40:29 -!- Guest39721 has quit (Remote host closed the connection).
01:42:27 -!- elliott_ has joined.
01:43:44 <elliott_> oerjan: YOU ALL SUCK FOR NOT TALKING
01:51:25 <pikhq> elliott_: I have absolutely no idea for @'s GC. This is a Hard problem.
01:52:11 <elliott_> I know Azul Systems do work with heaps up to a terabyte.
01:52:11 <lambdabot> elliott_: You have 1 new message. '/msg lambdabot @messages' to read it.
01:52:16 <elliott_> But those are in-memory heaps.
01:53:21 <pikhq> Well. There is one idea I do have, but it's the stupidly obvious one. Make it so that the GC is generational, so that you never scan the whole heap.
01:53:39 <elliott_> Yeah, I was already planning that.
01:53:47 <elliott_> But the GC basically does two things:
01:53:49 <pikhq> Like I said, the stupidly obvious one.
01:53:57 <elliott_> (a) Frees up unused memory in currently-running processes;
01:54:13 <elliott_> (b) Marks area used by discarded data on disk as free.
01:54:24 <elliott_> The latter includes, e.g. documents the user has deleted, but also expired caches, temporary data...
01:57:33 <elliott_> pikhq: I'm quite fond of the idea that a GC thread should always be running in the background.
02:00:23 -!- azaq23 has joined.
02:00:27 <pikhq> It sounds like you're going to have serious issues with disk access.
02:00:34 -!- augur has quit (Remote host closed the connection).
02:01:33 <elliott_> pikhq: It's less intensive than defragging.
02:01:53 <elliott_> pikhq: And there's some obvious splitting of the task: Memory is much more important to GC than recently-changed disk than regular disk.
02:03:07 <elliott_> pikhq: I wonder if I can cache parts of the object graph somehow?
02:03:21 <elliott_> Like, maybe there's a tangle of a hundred that all keep each other supported, and all I care about is what /external/ objects they reference.
02:04:08 -!- DH____ has quit (Read error: Connection reset by peer).
02:04:12 -!- DHeadshot has joined.
02:07:51 <elliott_> I guess I should make that Linux installation usable.
02:09:26 <elliott_> pikhq: You tried Xubuntu a while ago, right?
02:11:13 <elliott_> http://i1-news.softpedia-static.com/images/extra/LINUX/large/ubuntu1110alpha1-large_004.jpg how unsurprising, the latest xubuntu looks just like it always has :)
02:14:13 <pikhq> No, I went straight to Debian.
02:14:24 <pikhq> Though I do use XFCE on it.
02:15:39 <elliott_> Gregor: You have a heap of one to two terabytes. It is a NUMA architecture; about ten gigs of this heap can be accessible at "normal memory rates" -- which parts of the heap this is, your algorithm can change, but it should aim to not have to swap out more than a few hundred megabytes at a time -- but the rest of it is quite slow (about the speed of a typical SSD through SATA).
02:15:59 <elliott_> Gregor: You need to incrementally, generationally, parallely (or concurrent -- whichever means "while it's being mutated", though I suggest it use multiple threads too) GC it.
02:16:43 <pikhq> Gregor: He would also like a pony.
02:19:29 <elliott_> Gregor is just going to ignore that question :P
02:19:29 -!- cheater has quit (Quit: Ex-Chat).
02:25:52 <elliott_> pikhq: At least the /allocator/ should be simple
02:26:23 -!- augur has joined.
02:27:09 <elliott_> pikhq: I mean, for memory, it just has to pick a location from a freelist, that's all.
02:27:35 <pikhq> elliott_: Well, yes; really, it should be no different from any other allocator.
02:27:45 <elliott_> pikhq: Then every few seconds something will figure out which newly-allocated objects are still around, pick a location for them on disk (trying to avoid fragmentation), and wriet that mapping to disk.
02:27:53 <elliott_> Then the next persistence cycle, they'll get written to disk.
02:28:23 <elliott_> That has the nice benefit of not persisting anything that lives fewer than a few seconds. :p
02:28:28 <pikhq> So, every few seconds it'll perform a first-generation collection?
02:29:06 <elliott_> That could work very well indeed.
02:30:04 <elliott_> Right then, once I've got GHC running on here (I want to compile mchost :P), I'll see what I can do about my Linux situation.
02:30:41 <elliott_> pikhq: One issue I have is basically: pointers.
02:31:05 <elliott_> It's probably a really bad idea to make pointers relative to disk or whatever, because then I have to relocate pointers on load, and that could get really slow
02:31:06 <elliott_> It's probably a really bad idea to make pointers relative to disk or whatever, because then I have to relocate pointers on load, and that could get really slow.
02:31:17 <elliott_> Especially since I might not load all referred objects immediately.
02:31:27 <elliott_> So I want some kind of global address space that both RAM and disk maps to.
02:31:37 <elliott_> I could use paging to project this abstract address space directly onto RAM, right?
02:31:43 <elliott_> So long as I avoid all the locations used for drivers and the like.
02:31:46 <pikhq> That's what paging is for.
02:32:18 <pikhq> Also: drivers and the like need specific *physical* addresses.
02:32:23 <pikhq> You can map those wherever you feel like.
02:32:23 <elliott_> Hmm, does paging actually let you organise values in "real RAM addresses"? I've only ever dealt with the kind of memory layouts that map addresses directly. :p
02:32:54 <elliott_> Like, I could just map them when the driver runs or something. That's probably slow, though.
02:33:10 <pikhq> Actually, that's entirely doable.
02:33:26 <elliott_> It seems vaguely pointless, though.
02:33:35 -!- DHeadshot has quit (Read error: Connection reset by peer).
02:33:37 <elliott_> It's not like I plan to have a congested address space.
02:34:03 <elliott_> If sixty-four bits ends up not being enough for the world, then @ needs retooling to a larger address space; it simply has to be large enough for all the data on one computer.
02:42:16 -!- Jafet has quit (Quit: Leaving.).
02:42:45 -!- Jafet has joined.
02:47:26 -!- Jafet has quit (Ping timeout: 265 seconds).
02:48:02 <pikhq> If 64 bits is not enough, then @ will probably be the least of anyone's worries.
02:50:23 <elliott_> It's, what, a hundred terabytes?
02:50:38 <elliott_> IBM Roadrunner: Memory103.6 TiB
02:50:58 <elliott_> I think a hundred terabytes was...
02:51:02 <elliott_> What was it, forty-eight bits?
02:51:06 <elliott_> It's some thing I checked once.
02:51:13 <pikhq> Sounds about right.
02:51:15 <elliott_> Anyway, it's not enough, nothing is ever enough. :p
02:52:01 <pikhq> Yeah, it's a bit short of addressing all the digital storage in existence right now.
02:52:21 <elliott_> We should just use IPv6 addresses.
02:52:32 <elliott_> You buy a RAM stick, Kingston register a subnet for you.
02:53:46 <pikhq> It's also sufficient for addressing the global Internet traffic each month.
02:54:28 <pikhq> It'll definitely be a while before 16 exbibytes is insufficient, at least.
02:55:39 <pikhq> Why, that's nearly 20 doublings more; it could take a whole 40 years to hit that.
02:59:14 -!- sebbu2 has joined.
03:02:45 -!- sebbu has quit (Ping timeout: 276 seconds).
03:03:37 -!- Jafet has joined.
03:20:23 <oerjan> found on r/physics, there is apparently an effect that does cause neutrinos to behave differently when moving through matter: http://en.wikipedia.org/wiki/Mikheyev%E2%80%93Smirnov%E2%80%93Wolfenstein_effect
03:21:51 <oerjan> i dunno, but at least they don't necessarily work exactly as in vacuum
03:22:09 <oerjan> which may be important for that supernova thing...
03:29:33 -!- azaq23 has quit (Read error: Operation timed out).
03:31:03 -!- azaq23 has joined.
03:32:11 <elliott_> oh it didn't install xcode, it installed "Install Xcode"
03:32:32 <elliott_> spoiler: the installer uses different buttons to the rest of the OS (despite the fact that all buttons were redesigned and unified in the latest OS release)
03:32:37 <elliott_> apple: bad at stikcing to things
03:34:26 <pikhq> So are the alternatives.
03:35:36 <elliott_> this must have been released weeks after lion
03:35:40 <elliott_> it uses its own button type...
03:35:47 <elliott_> unify......... ununify... repeat...
03:52:18 -!- oerjan has quit (Quit: Good night).
03:52:32 <elliott_> Gregor: Also, you never answered my question :'(
03:52:46 <elliott_> 03:15 <elliott_> Gregor: You have a heap of one to two terabytes. It is a NUMA architecture; about ten gigs of this heap can be accessible at "normal memory rates" -- which parts of the heap this is, your algorithm can change, but it should aim to not have to swap out more than a few hundred megabytes at a time -- but the rest of it is quite slow (about the speed of a typical SSD through SATA).
03:52:46 <elliott_> 03:16 <elliott_> Gregor: You need to incrementally, generationally, parallely (or concurrent -- whichever means "while it's being mutated", though I suggest it use multiple threads too) GC it.
03:52:46 <elliott_> 03:16 <elliott_> Gregor: GOGOGOGOGOGOGO
03:53:01 <Gregor> elliott_: That's not a question.
03:53:07 <elliott_> Gregor: OK, here's the question
03:53:16 <elliott_> And yes pikhq is right, a pony too would be great thx.
03:53:51 <Gregor> And of JSBench (the last bug)
03:54:11 <elliott_> How many green pieces of paper do I need to throw at you to make all my @ GC problems go away
03:54:23 * elliott_ just throws green paper at everyone on the planet to make sure.
03:55:03 <pikhq> elliott_: Solution: hyperinflate.
03:57:50 -!- zzo38 has joined.
03:59:57 -!- elliott_ has quit (Remote host closed the connection).
04:01:29 -!- elliott has joined.
04:02:21 <elliott> pikhq: btw, you know you were complaining about packaging things like ghc with circular dependencies?
04:02:57 <elliott> pikhq: How do you package gcc?
04:03:16 <pikhq> See my past ranting.
04:03:33 <elliott> pikhq: Then what would you prefer? Bootstrapping is really inherent to all computing.
04:04:05 <pikhq> Nothing in particular, I'm just ranting and angry at realities and necessities.
04:05:37 <elliott> Really, bootstrapping is far too unexamined in modern computing. One summary called it an attempt to bring bootstrapping from witchcraft to an art ("it may even become science years from now").
04:05:43 <elliott> Really, bootstrapping is far too unexamined in modern computing. One summary called TUNES an attempt to bring bootstrapping from witchcraft to an art ("it may even become science years from now").
04:11:19 <elliott> Does anyone know where to up the version number of a package in its debian/ directory?
04:13:00 <Gregor> elliott: I believe it just gets it from the latest changelog entry (at least, a quick glance at a minimal example yields no other possibilities)
04:13:22 <elliott> Meh, I'll just checkinstall
04:13:36 <Gregor> checkinstall is the greatest
04:13:51 <elliott> It should use FUSE though.
04:15:10 <Gregor> FUSE wouldn't help its cause without chroot.
04:15:24 <elliott> Gregor: I mean it should use FUSE instead of LD_PRELOAD.
04:16:05 <Gregor> FUSE wouldn't help its cause without chroot.
04:16:16 <elliott> Gregor: I never said it would.
04:16:25 <elliott> "/usr/lib/ghc-7.2.1/ghc-pkg" --force --global-conf "/usr/lib/ghc-7.2.1/package.conf.d" update libffi/package.conf.install
04:16:25 <elliott> /bin/sh: /usr/lib/ghc-7.2.1/ghc-pkg: not found
04:16:29 <elliott> It should also handle this >_<
04:16:38 <Gregor> As in, FUSE would in no way serve to replace the LD_PRELOAD.
04:16:40 <elliott> I don't think there's anything I can do there.
04:16:51 <Gregor> elliott: You can't FUSE / >_<
04:17:11 <Gregor> Oh, wait, I just remembered that checkinstall is ran by root X-D
04:17:29 <Gregor> I ... I have no idea what I thought it did for a moment there.
04:17:33 <elliott> Well, it's not here, but it would hardly be a problematic requirement.
04:17:51 <elliott> -rwxr-xr-x 1 root root 82K 2011-05-01 04:39 /usr/bin/checkinstall
04:17:51 <Gregor> checkinstall definitely should not be setuid ...
04:18:19 <elliott> Anyway, checkinstall suxx, it can't deal with GHC.
04:26:36 <zzo38> In recent D&D session, we managed to do something which almost certainly would not have worked if both of our character's races were not what they are.
04:27:32 <zzo38> Before that (but in same session), I tried to use a psionic power to move the chimney pots on the roof to knock off a man standing there (I recognized him as someone who was attacking the inn we were in), but managed to miss every time; ending up with all the chimney pots breaking.
04:30:56 -!- Jafet has quit (Quit: Leaving.).
04:33:23 <elliott> I'm beginning to find Unity a bit more tolerable, thoguh it might just be due to exposure...
04:41:55 <elliott> monqy: how are... the x monads...
04:42:09 <monqy> good enough for me (thumbs up)
04:42:42 <zzo38> What are "the x monads"?
04:42:48 <monqy> it requires a bit of configuration but I'm okay with that
04:43:14 <elliott> zzo38: xmonad... a... haskell wm...
04:43:27 <zzo38> O, you mean Xmonad.
04:48:54 <monqy> the most notable thing about my config is probably that near the start of main I make a spawner and then in the `additionalKeys` section do a concatMap ($ spawner) on [a, list, of, my, different, types, of, keybindings, here] (currently [spawnAnywheres (they just get spawned), spawnHeres (they get spawnHere'd), spawnAndDos (for when I want to do additional managehook things)])
04:49:02 <monqy> oh and I made a useful managehook
04:49:08 <monqy> doHere :: ManageHook
04:49:08 <monqy> doHere = Query (lift (withWindowSet (return . W.currentTag))) >>= doShift
04:49:36 <monqy> it's like if you want to get the effect of spawnHere except you need to use spawnAndDo
04:49:58 <monqy> I use it to doFloat and doHere
04:50:18 <elliott> I think I'm going to try Unity for a few days and see if I can get a workflow going.
04:50:37 <monqy> the importance of doHere is when you want to make things spawn on the workspace where you hit the spawn key, rather than the one where it ends up making its windowey things
04:51:13 <monqy> I also have some planned additions but I have not gotten around to doing them
04:52:11 <monqy> I haven't yet bothered figuring out what's so bad about it
04:52:27 <monqy> an important rule: I am not to try unity and see for myself
04:52:28 <elliott> your MOM is so bad about it . lol . (a joke.)
04:52:43 <monqy> my mom is so bad about most things.....
04:52:49 -!- elliott has quit (Read error: Connection reset by peer).
04:53:12 -!- elliott has joined.
04:54:36 <elliott> monqy: poitclaitcal cartoon...
04:54:55 <elliott> no i was talk... about mom remark...e...
04:55:00 <elliott> it is esoteriece poitcslans caneiocntdfkg
04:56:38 <Vorpal> 06:56 local time. Urgh.
04:56:48 <Vorpal> Soon about to leave for an exam.
04:57:51 -!- MDude has changed nick to MSleep.
04:58:39 <Vorpal> <elliott> no i was talk... about mom remark...e... <-- somehow I read "remark" as "shark"....
04:59:42 <Vorpal> Mark! remarked the shark about the ark?
05:01:50 <Vorpal> don't use a non-repeating image as the header of a page: regardless of how wide you make, there will be some monitor that is wider than it, making the page look horrible...
05:02:14 <Vorpal> (the web system of my university does this, looks horrible on my large desktop monitor)
05:02:23 <elliott> Unless you make it ten miles wide.
05:02:26 <zzo38> Or not using any image as the header of a page.
05:02:34 <Vorpal> elliott: right, but then loading time will be horrible
05:02:38 <zzo38> Another way is using gradients and having a solid color at the end in case it look bad
05:02:39 <Gregor> Vorpal: It could be fine if it's also not tiled or stretched ...
05:02:56 <Vorpal> Gregor: It isn't tiled or stretched, it is padded with white background on the right side
05:03:25 <Gregor> That would look fine if it was white on the right side itself :P
05:03:31 <Gregor> (That is, if it flowed naturally into plain white)
05:03:38 <Vorpal> Gregor: it doesn't do that
05:03:56 <zzo38> You could also just use a small logo, with transparency, and not set colors or fonts at all.
05:04:41 <Vorpal> sure, but is a drawn skyscape over the university kind of thing they use, changed to fit the season. No I don't know why.
05:05:09 <Vorpal> doesn't actually match the real skyscape correctly either.
05:06:06 <elliott> http://ompldr.org/vYWo3Zw At least Unity makes my emacs setup look pretty spiffy.
05:06:38 <zzo38> I have finished making the recording of the today D&D game session. Read
05:06:46 <Vorpal> elliott: full screen mode?
05:06:57 <elliott> Vorpal: I like running Emacs maximised.
05:07:03 <elliott> In Unity, that translates to "fullscreen".
05:07:09 <Vorpal> elliott: is unity mostly bad though?
05:07:15 <elliott> Well, I think so. We'll see.
05:07:59 <Vorpal> elliott: also, long live clearlooks. I liked the aesthetics of it. Can't imagine why they removed it for GTK3...
05:08:06 <zzo38> When at FreeGeek, I run most programs (except xdvi) in the VC1 text mode, connected to beryllium by SSH.
05:08:16 <elliott> I like zzo38's opinions more than Vorpal's.
05:08:47 <Vorpal> elliott: so you don't like clearlooks: sure, okay. But not everyone has to like the same things.
05:08:55 <elliott> Assumptions hour with Vorpal
05:09:20 <pikhq> I'm still partial to Mist. And more importantly, Grey Mist.
05:09:32 <elliott> Grey Mist the best. If I put Grey Mist into Unity it might explode.
05:09:33 <Vorpal> pikhq: is that around in GTK3?
05:09:48 <pikhq> I dunno if the Mist engine is in GTK3.
05:09:53 <Vorpal> well, I have to leave. cya
05:09:56 <pikhq> XFCE doesn't use GTK3 (yet?).
05:11:00 -!- elliott has quit (Remote host closed the connection).
05:11:34 <zzo38> I use xdvi for print preview, so it uses graphical mode. But other programs I use there can just work with text mode, such as vi, gcc, Enhanced CWEB, TeX, SQLite, bashgopher, and a few other things.
05:12:24 <zzo38> Although I do use the graphical mode for web browser, such as viewing Wikipedia or the documentation for some things which do not have man pages.
05:12:24 -!- elliott has joined.
05:13:37 <elliott> "Sorry, Compiz closed unexpectedly".
05:14:38 <zzo38> For actual printing, I use a command similar to this: dvilj4 - < whatever.dvi | lp
05:14:58 <zzo38> (Their printer is not a HP LaserJet 4, it is made by a different company but is still compatible with PCL, so it works)
05:16:06 -!- elliott has quit (Remote host closed the connection).
05:16:30 -!- elliott has joined.
05:17:17 <zzo38> It seems, to me, they don't want to use pipes for a lot of things these days.
05:18:21 <elliott> Well, pipes are limited in that they can only effectively carry one channel of information, and there's little opportunity to pass out-of-bound things such as errors.
05:18:30 <elliott> They're a good idea, but they're limited as a plugging mechanism.
05:21:19 <elliott> pikhq: What would you call the argument you get in a PING/send in a PONG?
05:21:48 <elliott> I feel like there's some evocative name for things like that that I just can't remember.
05:21:52 <elliott> (In that you have to send the same thing back.)
05:22:35 <pikhq> Yeah, that's actually the stock term. HTTP cookies are just a specific instance thereof.
05:23:04 <zzo38> The help file for this server says PING <source> :<target> but really if you specify only one parameter, it send back to you the same thing.
05:25:43 -!- GreaseMonkey has joined.
05:25:54 <fizzie> In an ICMP echo-request message it's called just boringly "data".
05:26:04 <zzo38> Do you like, so far, story that is recording of D&D game?
05:26:18 <zzo38> Does it contain a mistake?
05:32:21 <zzo38> Do you like STAR STACKER game in QBASIC?
05:33:50 <elliott> pikhq: Incidentally, what's your Xfce panel setup like? I've always had troubles getting one I'm happy with.
05:35:34 <pikhq> 20 pixels high, XFCE button, taskbar, icon bar, virtual desktop viewer, clock. All on the bottom.
05:36:57 <elliott> 20? But that's not a defined icon size. They'll be so ugly. :(
05:37:17 <pikhq> Not noticed any aesthetic issues.
05:38:25 <pikhq> I think I prefer 20.
05:40:31 <elliott> pikhq: But your icons will be being downscaled :'( ;")( :(999999999999999
05:41:09 <pikhq> I'm not noticing any downscaling artifacts, though.
05:43:06 <pikhq> 16x16 is a defined icon size. And the panel is not giving the icons literally the full height of the panel.
05:43:40 <pikhq> So, for a 24-high panel it would be downsizing, but for a 20-high panel it wouldn't.
05:44:21 <elliott> Try A FEW MORE THAN TWENTY-FOUR :p
05:44:28 <elliott> I think I used twenty-eight, actually.
05:45:05 <pikhq> Also, most of the icons are scalable.
05:47:18 <elliott> "Working on an update kernel for Fedora 15, rebasing from 2.6.38 to 3.0.
05:47:18 <elliott> As we know a bunch of userspace packages need updating to deal with the 2.6 -> 3.x transition, we made a decision to ship 3.0, but call it 2.6.40 rather than ship a ton of updates, and risk breaking other code that we don't ship."
05:47:33 <elliott> In the distance: Linus, drinking to forget.
05:48:04 <pikhq> The only userspace break I know of from 3.x is actually from a misusage of kernel headers that *happened* to break on v3.0.
05:48:12 <elliott> "Dave Jones - +David Cantrell In updates, we try not to induce breakage, especially when it's of the form "doesn't boot any more". Which is
05:48:12 <elliott> one failure case (mdadm needs an update for eg)."
05:48:24 <elliott> It's stuff looking at the version.
05:48:41 <pikhq> "I KNOW PRECISELY ONE VERSION BECAUSE DUR"
06:08:40 -!- ive has quit (Ping timeout: 276 seconds).
06:09:45 -!- Jafet has joined.
06:16:18 -!- aloril has quit (Ping timeout: 240 seconds).
06:26:54 -!- copumpkin has quit (Ping timeout: 260 seconds).
06:27:19 -!- copumpkin has joined.
06:28:04 -!- cheater has joined.
06:30:43 -!- aloril has joined.
06:42:16 -!- aloril has quit (Ping timeout: 244 seconds).
06:43:54 -!- ive has joined.
06:44:39 -!- ive has quit (Client Quit).
06:45:56 -!- Ngevd has joined.
06:46:36 <Ngevd> You know what's annoying about switching between Windows and Ubuntu while liking Ubuntu Unity?
06:47:07 <Ngevd> I tried to open IRC by moving my mouse to the far left of the screen
06:48:51 <Ngevd> I will CONTINUE USING WINDOWS UNTIL THE DAY I FIGURE OUT HOW TO INSTALL DWARF THERAPIST ON UBUNTU
06:49:00 <Ngevd> WHICH WON'T BE TODAY
06:52:39 <CakeProphet> Ngevd: you just have to add the repo to your sources.lst
06:52:52 <CakeProphet> open up a terminal and type: sudo gedit /etc/apt/sources.list
06:54:05 <CakeProphet> then add this line into the file: deb http://dwarftherapist.com/apt maverick universe
06:54:46 <CakeProphet> then back in the terminal type: sudo apt-get update && sudo apt-get install dwarftherapist
06:55:20 <elliott> why are you lying to taneb
06:55:37 -!- aloril has joined.
06:55:43 <CakeProphet> this is what I did to install dwarftherpist
06:56:02 <elliott> you installed all the dev libs iirc
06:56:18 <CakeProphet> that doesn't really give you the benefits of the package manager though... unless it does.
06:56:36 <elliott> it does not need installing
06:57:08 <CakeProphet> still, by doing the above you get updates forever without thinking about it (provided the repo is maintained)
06:58:34 <CakeProphet> it just sounds like he was having difficulties with the manual install
06:58:44 <CakeProphet> whereas the repo install is almost impossible to fuck up.
06:59:07 <elliott> Googling it, it looks like http://code.google.com/p/dwarftherapist/wiki/LinuxVersion
06:59:09 <elliott> it is hideously out of date
06:59:15 -!- Ngevd has quit (Remote host closed the connection).
06:59:38 <CakeProphet> elliott: I don't understand why people are so bad at maintaining packages in repos...
06:59:50 -!- Ngevd has joined.
07:00:25 <elliott> CakeProphet: perhaps because you have too much free time
07:00:50 <CakeProphet> look at these valuable minutes I'm spending, talking on IRC.
07:02:29 <CakeProphet> elliott: how might I use my free time to update that package?
07:02:46 <elliott> by setting up your own repo, ppa whatever
07:03:12 <CakeProphet> (forgive me in advance for not knowing everything about everything still)
07:06:10 -!- elliott_ has joined.
07:06:17 -!- elliott has quit (Read error: Connection reset by peer).
07:06:33 <elliott_> 07:02:58: <CakeProphet> I can't use the existing one?
07:06:43 <elliott_> CakeProphet: You'd have to get write access from its owner.
07:13:44 <fizzie> Yes. Consider: the robotfindskitten people still haven't linked to my TI-86 port (perhaps believing their own lies of the TI-83+ version being "for the TI-8x series of calculators", even though I emailed them twice about two years ago.
07:14:32 <fizzie> I almost unbalanced the channel. :/
07:18:07 <monqy> i love robotfindskitten
07:19:02 -!- Ngevd has quit (Ping timeout: 245 seconds).
07:19:03 <elliott_> robotfindskitten is the best roguelike; game.
07:19:25 -!- zzo38 has quit (Remote host closed the connection).
07:35:45 -!- atehwa has quit (Ping timeout: 260 seconds).
07:35:50 -!- Jafet1 has joined.
07:36:57 -!- Jafet has quit (Ping timeout: 265 seconds).
07:47:22 -!- augur has quit (Remote host closed the connection).
07:48:44 <elliott_> pikhq: You know, I don't think @'s file system actually needs any indexes at all.
08:03:40 -!- Jafet1 has quit (Quit: Leaving.).
08:03:47 <elliott_> http://esoteric.voxelperfect.net/wiki/German
08:11:05 <Patashu> http://aoeu.tk/ this person
08:12:22 -!- azaq23 has quit (Ping timeout: 245 seconds).
08:12:54 <fizzie> printf("Warning, this will overwrite %s, beginning in 3 seconds\n", argv[2]); for(int i = 3; i > 0; i--) { printf("%d...", i); fflush(stdout); sleep(1); }
08:16:24 <fizzie> If I'm not mistaken, it also fails to include any BEER that starts more than 9 bytes before EOF.
08:21:21 <fizzie> What it does is for(int i = 0; i < size - 9; i++) { if (toupper(input[i]) == 'S' && toupper(input[i+1]) == 'C' && ... && toupper(input[i+8] == 'L') { ... } else if (toupper(input[i] == 'B' && ...) { ... } }.
08:22:24 <fizzie> Excellent tools for an excellent language, one supposes.
08:25:41 <CakeProphet> some people are just so good at programming.
08:27:08 -!- augur has joined.
08:30:37 <elliott_> Because Unity sucks and gnome-panel three is terrible too?
08:31:04 <CakeProphet> what's bad about gnome-panel compared to xcfe?
08:31:15 <elliott_> gnome-panel three in oneiric is an abomination.
08:31:48 <elliott_> CakeProphet: It's beta two, they're not going to make any sweeping changes to the UI.
08:31:56 <elliott_> It's been through three alphas and one beta already.
08:32:05 <elliott_> Especially not for a UI you have to manually install with a package manager.
08:32:17 <elliott_> For a start, it's hideous -- http://lh5.googleusercontent.com/-HaLVAPdynX0/TnNHfECF0KI/AAAAAAAAAbA/udfn-e82aCY/s1600/Gnome-Fallback.png -- what the fuck happened to the panel gradient? And why is the clock in the middle?
08:32:20 <CakeProphet> oh... they stopped supporting it out of the box.
08:32:34 <elliott_> For a second, to move anything about in the panel or anything you have to hold down alt while right clicking. OK it's not major but it's really annoying.
08:32:37 <CakeProphet> these are all things that can be fixed though.
08:32:41 <elliott_> Also the top panel is pretty big now which is also annoying.
08:32:48 <elliott_> I tried for about half an hour.
08:32:55 <elliott_> There is no way to get the panel to not have a hideous half-gradient.
08:33:07 <elliott_> There is no way to make the indicator icons not badly-sized.
08:33:24 <elliott_> It feels like something someone hacked up in ten minutes and put on a git repository.
08:33:28 <elliott_> Unity is about ten million times bette.r
08:33:45 <elliott_> Whereas Xubuntu is basically GNOME two, but slightly different.
08:34:00 <elliott_> OK, some of its programs are slightly inferior/less featureful to GNOME two's versions, but everything is functional. I mean, Linus uses Xfce.
08:34:10 <elliott_> Note that Ubuntu is not Gubuntu.
08:34:17 <elliott_> (Gubuntu being a hypothetical "GNOME Ubuntu".)
08:34:56 <elliott_> Anyway, my choices are basically between Xubuntu, Debian with Xfce, or Debian with GNOME two (I think they have a fork).
08:35:36 <fizzie> Glub-untu, speaker of the vast glub.
08:35:45 <elliott_> But they support Xfce as a first-class citizen.
08:35:52 <elliott_> Really Debian's "defaultness" of GNOME is that it's ticked by default.
08:36:11 <elliott_> fizzie: The vvery best OS. Oops.
08:36:48 <CakeProphet> elliott_: maybe you didn't try hard enough to fix gnome-panel
08:37:02 <CakeProphet> maybe I'll upgrade to oneiric and everything will be the same.
08:37:02 <fizzie> Maybe you should have spent half a DAY.
08:37:08 <elliott_> CakeProphet: I asked in the official oneiric channel and talked with one of the very knowledgable people extensively.
08:37:24 <fizzie> Oh, so it looks broken by design?
08:37:25 -!- azaq23 has joined.
08:37:35 <elliott_> They told me that, gee, if you set it to solid colour and select the window decoration border, you get a slightly different solid colour with all of the items still having gradients.
08:37:48 <elliott_> And then got upset when I mumbled that Canonical evidently don't care about GNOME users.
08:38:10 <elliott_> (OK, so it's unfair, apparently /someone/ is working on GNOME panel at Canonical, but come on.)
08:38:17 <CakeProphet> I do believe they'll lose a lot of users without good GNOME support (i.e. me)
08:38:22 <elliott_> fizzie: Well, maybe not the gradient, but the rest of it.
08:38:35 <elliott_> fizzie: It's meant to look like the dumb-computer version of GNOME three's non-panel.
08:38:40 <elliott_> Which means it's absolutely useless as a panel.
08:38:46 <elliott_> Oh, and the system menu is gone.
08:38:49 <elliott_> Because gnome three doesn't have it.
08:38:53 <elliott_> How do you configure system settings?
08:39:01 <elliott_> Or, uh, use a terminal I guess?
08:39:19 <elliott_> tl;dr Ubuntu+gnome-panel is a dead end.
08:39:40 <elliott_> But I hear gnome three is MADE OF EASY.
08:40:05 <CakeProphet> elliott_: you should let me steal all of your hard work when you figure out how to make Ubuntu + GNome 3 not terrible.
08:40:12 <elliott_> It's ridiculbass the kind of puns I'm mackereling here.
08:40:33 <elliott_> CakeProphet: I'm not going to, I'm going to switch to a distro with a supported main UI that's sane out of the box.
08:41:03 <CakeProphet> but I'm afraid of change. what if Debian is more diffeelcult than Ubuntu
08:41:19 <elliott_> CakeProphet: So use Xubuntu, which is almost identical to a gnome three desktop OOTB, and is well-supported, and uses the exact same installer.
08:41:27 <elliott_> You can switch to it without even reinstalling.
08:41:29 -!- monqy has quit (Quit: hello).
08:41:37 <CakeProphet> but what if Debian better? I don't handle choices very well....
08:41:50 <elliott_> So you'll stay on the distinctly worse Ubuntu?
08:41:55 <elliott_> I think there's a name for that. Something's ass.
08:42:22 <elliott_> Oh, you could also try Lubuntu, but... I wouldn't.
08:42:49 <elliott_> CakeProphet: Slightly less "integration polish" by default, the installer is slightly more involved, different release schedule, no branding.
08:42:54 <elliott_> Well, branding, but only that Debian swirl thing.
08:43:42 <CakeProphet> what about repos? I know Ubuntu is mostly debian software but I'll be losing some repo software going upstream right?
08:44:02 <elliott_> Debian has everything that isn't Ubuntu-specific.
08:44:09 <elliott_> I mean, Firefox is called Iceweasel, obviously.
08:44:14 <elliott_> And might have a slightly older version.
08:44:27 <elliott_> But it's pretty much the same base of software, and if you use the testing repos, usually slightly newer.
08:44:58 <elliott_> CakeProphet: Mozilla are assholes about their trademark.
08:45:04 <elliott_> Debian's options were to remove Firefox or change its name.
08:45:10 <elliott_> Every other distro does this too.
08:45:14 <CakeProphet> is there a way I can get a list of all of my installed packages so that I can quickly reinstall them on a Debian system?
08:45:15 <elliott_> For instance Arch calls its firefoxes by their codename.
08:45:27 <elliott_> CakeProphet: Well, technically, yes, but doing that would be a terrible idea for /any/ distro transition.
08:45:38 <elliott_> Trust me, there is not the slightest universe where you would want to do that. Ever.
08:45:59 <elliott_> Yes. You probably really don't use as much software as you might think.
08:46:09 <elliott_> You could always just go for Xubuntu, which is literally identical.
08:46:16 <elliott_> I'd choose Debian without thinking if not for my hardware situation.
08:46:25 <elliott_> There's something about being able to rely on eighteen years of experience.
08:46:34 <elliott_> The damn thing's older than me.
08:46:35 <CakeProphet> I might try Debian. what hardware situation?
08:47:01 <elliott_> CakeProphet: I think the "GNOME desktop" that Debian offers to install is three, so I'd try Xfce first time round.
08:47:12 <elliott_> Oh, and since Debian's site is useless about this --
08:47:41 <elliott_> CakeProphet: http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/amd64/iso-cd/debian-testing-amd64-netinst.iso would be the ISO you would want.
08:47:52 <elliott_> Don't be put off by the testing name; in Debian, stable means "a few years old" and testing means "stable".
08:48:08 <elliott_> (unstable/sid means "beta/alpha-quality" and experimental means "broken".)
08:48:29 <CakeProphet> I don't /use/ a lot of the software I've installed regularly but I've accumulated a shit ton of packages/modules/whatever in various languages that I kind of wanted to have around so I don't have to ever think about them again... but, I guess that's no big deal.
08:49:09 <elliott_> The name of the architecture is amdsixtyfour.
08:49:23 <elliott_> CakeProphet: And a final helpful tip: You want to do the "Xfce -> expert graphical install". Trust me. Graphical because the terminal interface is ugly, and /expert/ because -- well, you can use the default answer to almost all its questions -- but only in expert mode does it offer to install a sudo-based system instead of a separate root password.
08:49:27 <elliott_> It should be default, but it isn't.
08:50:01 <CakeProphet> "not an expert" = LESS CONVENIENCE FOR YOU
08:50:16 <elliott_> ISTR having some problems with PolicyKit not wanting to use sudo after that, but it was only one file change or so to get it working which I can tell you if it happens to you.
08:50:30 <elliott_> But that's most of what I know about installing Debian.
08:50:47 <elliott_> CakeProphet: Oh, and that's a netinstall CD, so it's about a sixth of the size of an Ubuntu one, but downloads the packages from the internet as it installs.
08:51:05 <elliott_> Debian don't really devote time to choosing a set of "default packages" and offering it on one CD, but you can download about ten DVDs if you want...
08:51:28 <elliott_> It only matters in that you need an internet connection when you install, and it takes like twenty minutes longer. But it's a one-time thing, so.
08:52:38 <CakeProphet> okay is there wireless driver support good?
08:53:08 <CakeProphet> also would it be absolutely insane to migrate my current /etc to my new /etc?
08:53:15 <elliott_> CakeProphet: Well, certainly not better than Ubuntu's. They're much more wary of non-free software. I strongly suggest you install with an Ethernet cable and sort it out later.
08:53:17 <elliott_> And god yes that would be insane.
08:53:30 <elliott_> Back up your home folder and /etc if you want, but don't do anything automatic like that.
08:53:41 <fizzie> The stable Debian 6.0 installation set is available on CDs too; you just download 52 full-CD .iso images and burn them all.
08:53:51 <elliott_> (You'll be able to get any wireless card that works with Ubuntu working on Debian, it might just be fiddlier.)
08:54:04 <elliott_> I guess the DVD thing is kind of moot since you can only install testing with netinstall anyway.
08:54:39 <CakeProphet> but I can move my home over to Debian with no issues right?
08:55:07 <elliott_> CakeProphet: Yes, but I'd exclude the dotfiles and migrate them over one by one as you need them.
08:55:19 <elliott_> Otherwise things like ~/.local and all of ~/.config and the like will get copied over, which might mess with things.
08:55:31 <elliott_> Well, it shouldn't _break_ anything.
08:55:40 <CakeProphet> I'd probably move .cabal and .cpan and things of that nature.
08:55:51 <elliott_> .cabal would be a bad idea, unless you compile your own GHC.
08:56:11 <elliott_> Config files yes, binaries no.
08:56:47 <elliott_> Well. Probably, yes. But still, slightly different perl version is quite likely...
08:57:08 <elliott_> Looks like gnome in Debian testing is still two, actually, but that won't last...
08:58:02 * CakeProphet would have probably broken his new Debian install immediately otherwise.
08:58:26 <fizzie> "GNOME 3 is in Debian experimental because it’s a work in progress. You should not install it if you can’t live with problems and glitches. Beware: once you upgraded to GNOME 3 it will be next to impossible to go back to GNOME 2.32 (you can try it, but it’s not officially supported by Debian). Even with the fallback mode, you won’t get the same experience than what you had with GNOME 2.32. Many applets are not yet ported to the newest gnome-panel API."
08:58:28 <elliott_> If you have free space, I'd install Debian to a small partition as a trial run first.
08:58:31 <fizzie> Sounds like the worst idea to do.
08:58:45 <elliott_> Better safe than sorry, and you can see what you'll need to account for ahead of time.
08:59:35 <elliott_> "An Xfce release without a new clock mode would not be a true Xfce release. Let us introduce you the 'fuzzy' clock mode!"
08:59:41 <elliott_> See, these guys have their priorities in order.
08:59:49 <elliott_> "The directory menu plugin provides a menu reproducing the arborescence of a particular folder."
08:59:52 <elliott_> They use words like arborescence.
09:00:23 <fizzie> Heh, there's an "APT pinning file for the brave", if you want to try just getting Gnome 3 out of experimental.
09:00:24 <fizzie> Package: *gnome* libglib2.0* *vte* *pulse* *peas* libgtk* *gjs* *gconf* *gstreamer* alacarte *brasero* cheese ekiga empathy* gdm3 gcalctool baobab *gucharmap* gvfs* hamster-applet *nautilus* seahorse* sound-juicer *totem* remmina vino gksu xdg-user-dirs-gtk dmz-cursor-theme eog epiphany* evince* *evolution* file-roller gedit* metacity *mutter* yelp* rhythmbox* banshee* system-config-printer transmission-* tomboy network-manager* libnm-* update-notifier shotwell
09:00:25 <fizzie> liferea *software-properties* libunique-3.0-0 libseed-gtk3-0 libnotify* libpanel-applet-4-0 libgdata11 libcamel* libcanberra* libchamplain* libebackend* libebook* libecal* libedata* libegroupwise* libevent* gir1.2-* libxklavier16 python-gmenu libgdict-1.0-6 libgdu-gtk0
09:00:25 <fizzie> Pin: release experimental
09:01:30 <fizzie> I seem to recall a fuzzy clock from somewhere.
09:01:53 <CakeProphet> there's pretty much no way an external wouldn't be bootable if my computer can boot from USB right?
09:02:12 <elliott_> If all fails you can just boot it with GRUB.
09:02:33 <elliott_> CakeProphet: Anyway, my basic summary of my experience with Debian would be: It's not as slick or polished as Debian and it'll take some effort to tweak to the same level as you'd get from Ubuntu. But given that extra work, it's a lot more predictable and reliable than Ubuntu, and tends to break less too.
09:05:01 <CakeProphet> that's fine. work is good. I can level up my shitty linux imaginary RPG stat.
09:07:16 <CakeProphet> also with compiz, at least graphical, it could be pretty slick.
09:07:44 <elliott_> metacity can do shadows, you know.
09:08:58 <CakeProphet> but compiz has FLAMES FOR WINDOW CLOSING ANIMATIONS MUAHAHAHAHAHAHA BADASS
09:09:10 <CakeProphet> (just kidding I'm not one of those people)
09:09:30 <CakeProphet> elliott_: have you ever considered using a tiling wm like xmonad?
09:10:44 <CakeProphet> your Haskell hipster cred would escalate rapidly.
09:11:02 <elliott_> xmonad is obviously the best tiling WM, it's just a question of whether the paradigm is for me or not.
09:11:22 <elliott_> Ah, nice how fast the Debian CD burns :P
09:11:30 <elliott_> (I figured I might as well see what it thinks of my hardware.)
09:11:32 <CakeProphet> I imagine it would be kind of like windows in emacs
09:11:46 <elliott_> CakeProphet: Except automatically splitting
09:11:48 <elliott_> CakeProphet: Except automatically splitting.
09:12:04 <elliott_> (There's basically two schools of thought, but auto-splitting has taken off while the other POV has basically died.)
09:12:22 <elliott_> The problem I had was that browser windows and the like become too wide.
09:12:34 <elliott_> I've browsed maximised for several months now.
09:12:36 <CakeProphet> elliott_: soon you could be as cool as this guy http://www.youtube.com/watch?v=7ZAmMdRBRjs
09:12:50 <elliott_> Something we can all aspire to.
09:14:21 <CakeProphet> I might try out xmonad if there's a sane way to switch back and forth.
09:14:34 <elliott_> That's called any desktop manager.
09:14:54 <CakeProphet> oh I thought the desktop manager was under the window manager. other way around?
09:16:18 <elliott_> You can't keep the window state while switching WMs, you have to restart things. There are exceptions, but [no].
09:17:18 <CakeProphet> so gnome-panel can coexist happily with xmonad?
09:17:28 <fizzie> A desktop environment is sort-of "over" a window manager; a desktop manager is something very different.
09:17:35 <fizzie> And yes, I use gnome-panel with xmonad.
09:17:42 <fizzie> Except I don't really use the panel for much.
09:17:49 <elliott_> It can; you probably want to configure xmonad for it though.
09:17:51 <fizzie> Mostly it's just to hold the indicator applet thingies.
09:18:12 -!- Jafet has joined.
09:18:43 <fizzie> I have these dzen2 bars providing workspace lists at the top of all screens, and a single bottom gnome-panel instance on one screen holding the indicator thingies and a clock and not much more.
09:18:55 <fizzie> Well, there's also some status monitoring thingies, it looked so empty otherwise.
09:19:47 <elliott_> The problem I have is that whenever I think "oh, I browse fullscreen, so this could work", I think "umm, I also emacs and terminal fullscreen. So I'd use the tiling for... Pidgin?"
09:19:59 <elliott_> I don't want to use ratpoison.
09:21:13 <fizzie> What's the alternative, to have some useless empty space around the window?
09:21:14 <elliott_> Because there are long paths and compiler outputs.
09:21:34 <elliott_> Having it in a small window results in lots of wrapping and me being unable to see context when I have like five warnings.
09:22:21 <CakeProphet> maybe I just have ADD so I do everything in fullscreen all the time I'll forget what I was doing. :P
09:22:36 <CakeProphet> I like to have some stuff behind my terminal.
09:23:12 <elliott_> I do like context behind windows, but...
09:23:25 <fizzie> I tend to keep Emacs and a terminal in a full-height half-width sort of setup (though with relatively tiny fonts and 1920 pixels of width, so there's a... reasonable, if not plentiful amount of columns), but that's probably mostly because I'm not much of an Emacsist and therefore don't do everything from within it like I should.
09:23:27 <elliott_> Everyone "like me" seems to use tiling WMs.
09:23:41 <CakeProphet> also typically when I'm programming I use emacs shell which is always tiled somewhere.
09:23:43 <elliott_> I can't think of a way to justify to myself how switching to one isn't inevitable, considering that.
09:23:54 <elliott_> CakeProphet: Emacs shell? Wrong. You're a wrong person. Don't do that. Bad.
09:24:23 <elliott_> CakeProphet: Tried M-x woman? :p
09:25:33 <elliott_> M-x man is much worse than M-x woman.
09:25:53 <fizzie> You're such a feminist.
09:27:41 -!- sebbu3 has joined.
09:27:45 -!- sebbu3 has quit (Changing host).
09:27:45 -!- sebbu3 has joined.
09:28:30 -!- GreaseMonkey has quit (Quit: The Other Game).
09:29:08 <fizzie> CakeProphet: Incidentally and off-topic, I tried out character-grams generated from a Finnish word-list, and the results are really quite subtimal; there's this thing called wovel harmony we have (no word can contain wovels from the group {a, o, u} and {ä, ö, y} (that's {ɑ, o, u} and {æ, ø, y} IPA-wise) simultaneously) which introduces long-distance dependencies the 'grams just can't handle.
09:30:22 <CakeProphet> fizzie: you could just impose constraints on the result have it regenerate when it doesn't meet them.
09:30:35 <fizzie> Certainly, but then it's not language-agnostic at all.
09:30:59 <CakeProphet> right it would have to be encoded in the dataset somehow to make it flexible.
09:31:09 -!- sebbu2 has quit (Ping timeout: 248 seconds).
09:31:41 <fizzie> Also wovel harmony need not hold over compound words, but detecting if a word is "compound-like" enough to pass is not exactly trivial; yet there's quite a lot of compound words in Finnish and optimally those should be generated occasionally too.
09:32:23 <CakeProphet> general compund-ness involves a large number of consonants juxtaposed.
09:33:03 <HackEgo> sprot miachoptits oterneque spitchetche cian aries idesd asock hadilatateoxarriumedremegraccrateco nes prannedichosts baythnitia ddicix skrevane goye teecipbllin wis muel kpec cheoance
09:33:47 <fizzie> We have a couple of loan words that break the wovel harmony (like olympialaiset 'the olympic games'), the mispronounciation of which (in this case, as "olumppialaiset") is a stereotypical sign of a lower level of education.
09:34:01 <fizzie> "prannedichosts" could be.
09:34:46 <fizzie> Maybe it'd need a k after the c there.
09:35:56 <CakeProphet> well it could be a compound of "prandi" and "chosts
09:36:12 <CakeProphet> but really I don't think you can really decide compounds across vowel-consonant boundaries.
09:37:13 <CakeProphet> (by the way naively pronouncing wovel in English is funny sounding)
09:37:54 <fizzie> Finnish can easily have compound words that are split between pairs of wovels. "Hätäuloskäytävä" ('emergency exit') is formed as "hätä/ulos/käytävä". The rules of spelling add a '-' if the wovel is same on both sides, though. (E.g. "linja-auto" 'bus'.)
09:37:56 <CakeProphet> but I'm guessing Finnish sounds w's and v's like German does.
09:40:57 <fizzie> We don't have a native 'w' at all, and our letter 'v' is the IPA /ʋ/, matching the German 'w' (at least sometimes, anyway); not the German 'v' which I think sounds like /f/ or some-such.
09:42:08 <CakeProphet> Polish nouns have 7 cases and 5 genders. Verbs have three tenses, three moods, and three voices (I guess that's not too different from English though really).
09:42:55 <fizzie> There are 15 noun cases in Finnish.
09:43:54 <fizzie> And 6 verb moods, though two of them are really archaic and not used.
09:44:14 <fizzie> We don't have any genders, though.
09:44:26 <fizzie> Well, or one; I guess that depends on how you count it.
09:45:25 <CakeProphet> I do find it odd that pronouns are the only place we care about gender in English.
09:45:36 <fizzie> No, if I understand the question right and you mean the personal pronouns. We just have 'hän' for both he/she.
09:45:45 <elliott_> 10:29 <fizzie> CakeProphet: Incidentally and off-topic, I tried out character-grams generated from a Finnish word-list, and the results are really quite subtimal; there's this thing called wovel harmony we have (no word can contain wovels from the group {a, o, u} and {ä, ö, y} (that's {ɑ, o, u} and {æ, ø, y} IPA-wise) simultaneously) which introduces long-distance dependencies the 'grams just can't handle.
09:46:19 <CakeProphet> compare to spanish were every noun, adjective, and pronoun has gender.
09:47:09 <fizzie> Anyway, we have inflexional suffixes for {first, second, third} person {singular, plural} for all the verb forms, so often you don't need a personal pronoun at all, unless you want to emphasize it.
09:47:26 <CakeProphet> fizzie: do you have a pronoun distinct for "it" that's distinct from he/she?
09:48:14 -!- sllide has joined.
09:49:00 <fizzie> CakeProphet: Yes, we do have an 'it'. And actually in speech it has become quite common to use that for all third-person use, the proper ones sound a bit pretentious already.
09:49:27 <fizzie> Informal speech, anyway.
09:50:07 <fizzie> Syön, syöt, syö; syömme, syötte, syövät. (I eat, you eat, he/she/it eats; we eat, you (plural) eat, they eat.)
09:50:29 <elliott_> I guess I will: try the Debian: intsaller.
09:51:19 <fizzie> "Is it true that the plural of "y'all" is "all y'all"", asked somebody in some webcomic once.
09:51:23 <CakeProphet> it's bizzare that there is no formal second person plural pronoun.
09:51:44 <CakeProphet> all y'all is a thing. in the south anyways. to specify that it's not a subset of the group you're speaking to.
09:51:47 -!- elliott_ has quit (Remote host closed the connection).
09:52:24 <CakeProphet> whereas y'all in an ambiguous context could refer to a specific group within a larger group.
09:53:38 <CakeProphet> American southerners: pioneers of effective English pronoun usage.
09:54:25 <fizzie> We possibly go rather further with the suffixes than many other languages, though. "Also for a coffee drinker" => "kahvinjuojallekin". (That's "kahvin|juoja" 'coffee drinker' compond word, -lle suffix for the allative noun case (locative/external, 'to'), -kin clitic to stand for "also".)
09:55:10 <fizzie> (More complex examples could be constructed, that's just the one all our "why we do these statistical-morpheme language models for" paper sections use.)
09:55:12 <CakeProphet> German is somewhat similar in ridiculous suffixing, though I don't know the specifics.
09:55:40 <fizzie> They also have that ridiculous split verb thing.
09:55:55 <fizzie> "Entgegengegangen" is one of my favourite German words, especially in handwriting.
09:56:05 <CakeProphet> I really find it difficult to compare languages. I have no idea what makes english distinct from most other languages.
09:56:48 <fizzie> It's the entgegen/gehen verb in one of its forms; I haven't really touched German in, what, 8 years or so.
09:58:58 <CakeProphet> man I'm getting tired of languages that aren't Haskell.
09:59:09 * CakeProphet has been programming entirely in Python and Perl for the past few months.
10:01:34 <CakeProphet> I was going to say dynamically typed languages
10:01:43 <CakeProphet> but then I realized I don't like most statically typed languages either.
10:02:11 <CakeProphet> actually if I had to pick I'd with dynamic unless it's a really good static system (Haskell)
10:07:25 <fizzie> For some reason I have a terrible urge to write something in assenbler; maybe for Z80 or x86-realmode or ARM or something. On the other hand, I'd really like to write something practical that I'd have a real use for, too. These two goals are not proving to be very easily combined.
10:12:05 <fizzie> Practical, with a real use.
10:12:35 <fizzie> It's been implemented over and over again.
10:13:02 <CakeProphet> but what about as an JIT written in assembly?
10:13:11 -!- elliott has joined.
10:13:36 -!- elliott has changed nick to Guest15816.
10:14:26 -!- Guest15816 has quit (Client Quit).
10:17:58 <fizzie> Sounds like he's installing Debian.
10:41:20 -!- elliott_ has joined.
10:41:35 <elliott_> how is it GOING PALS FIZZIE AND CakeProphet
10:42:21 <fizzie> * Guest15816 has quit (Client Quit)
10:42:21 <fizzie> <CakeProphet> wise words from a wise man.
10:42:21 <fizzie> <fizzie> Sounds like he's installing Debian.
10:45:05 <CakeProphet> notice the sudden lack of posts in 2008 when his divorce was going through.
10:46:34 <elliott_> I'm... not sure what you're trying to prove.
10:46:52 <elliott_> Ian Murdock doesn't work on Debian any more, anyway.
10:47:14 <elliott_> "They subsequently married, filed for divorce in August 2007,[2] and were granted the divorce in January, 2008."
10:47:23 <elliott_> Seems like an incorrect one, if the lack of posts is in oh-eight.
10:49:02 <elliott_> There's a bunch of posts in oh-eight.
10:49:21 <CakeProphet> maybe I don't know how to use these fancy blog things.
10:49:38 -!- elliott_ has quit (Remote host closed the connection).
10:58:07 -!- xfcelliott has joined.
10:59:31 <CakeProphet> I was looking at the "top 20" list. Still all of the 2008 posts are rather short. IT MUST MEAN SOMETHING ASOIDJWEIRHAISFQIE
11:04:11 -!- xfcelliott has quit (Ping timeout: 252 seconds).
11:10:35 -!- hagb4rd has joined.
11:32:23 -!- elliott has joined.
11:34:28 <elliott> i do a lot of programming recently: github.com/ehird/mchost
11:35:37 <fizzie> I somehow have to quote that every time someone says something like "foo is fun".
11:36:01 <elliott> `pastelogs Mountains're nice.
11:36:24 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.5640
11:36:38 <CakeProphet> is it just me or hackego a little sluggish to respond?
11:36:47 <fizzie> "Mountains're nice. / This's the life. / Mountains're nice. / Man, you're nosy. Here, take this. *gives you a magic tab*"
11:37:10 -!- elliott has quit (Remote host closed the connection).
11:37:19 <fizzie> A magic tab is like a +1 to your magic stat.
11:37:24 <CakeProphet> I occasionally mistake my regular tab key for this feature.
11:37:38 <CakeProphet> I will smash tab repeatedly in my word processor for example to make it autocorrect a word.
11:38:13 -!- elliott has joined.
11:38:18 <elliott> fizzie, that is good word pogrom
11:38:25 <CakeProphet> emacs, irssi, and sh have all led me to believe that tab does this always.
11:39:13 <elliott> Gregor: Re onscreen keyboard debacle
11:39:20 <elliott> Gregor: Did you try "onboard"
11:39:32 <elliott> It seems to be "like xvkbd, but Gtk"
11:39:47 <elliott> I think it's some official ubuntu project
11:40:09 <CakeProphet> they need to get rid of the people working on that and move them to gnome-panel
11:40:34 -!- elliott has quit (Client Quit).
11:40:42 -!- elliott has joined.
11:40:59 <elliott> fizzie, So what is that mountains thing from
11:41:44 <fizzie> It's a hidden MAGIK TAB.
11:41:58 <fizzie> In the Denadoro Mountains.
11:42:31 -!- boily has joined.
11:42:37 <elliott> boily sure is a pro idler.
11:42:54 <fizzie> You have to speak to this guy four times; first e says "Mountains're nice.", then "This's the life.", then "Mountains're nice." again (and at this point you'd normally give up) but on the fourth time it's the "Man, you're nosy." thing + the tab.
11:43:24 <fizzie> <fizzie> A magic tab is like a +1 to your magic stat.
11:43:43 <elliott> That... what CakeProphet said.
11:43:53 <fizzie> There are also POWER TABs and SPEED TABs.
11:44:00 <elliott> Speed tabs that you eat to increase magic. Ah yes.
11:44:24 <fizzie> No, the others +1 the POWER or SPEED stats.
11:44:38 <CakeProphet> elliott's not too good at this whole rpg thing.
11:44:56 -!- elliott has quit (Remote host closed the connection).
11:46:17 -!- elliott has joined.
11:47:00 <fizzie> Lo, there are many planets in the archipelago of worlds...
11:47:20 <elliott> There's many planets in your MOM.
11:47:43 <CakeProphet> YOUR'S MOM FACE IS LIKE YOUR FACE AND MOUNTAINS
11:49:18 <CakeProphet> doing my Data Structures assignments in one day when they've been assigned for two weeks is pretty fun.
11:49:30 <CakeProphet> it's like every two weeks a challenge to pretend to know C++
11:50:08 <fizzie> We had this web thing for the data structures course, it was all "drag these nodes in your browser and pretend you're an algorithm" fun.
11:51:22 <fizzie> Also the submission system accepted a client-provided number of points for the exercise, so if you bumped that up a bit, you had more points than the maximum, and it always kept the highest score so you couldn't undo the trick, and then on the lectures they were all "there's been HACKERYING and MOCKERYING around our systems" and then you had to go and confess and it wasn't fun at all.
11:52:04 <CakeProphet> this assignment is about STACKS AND QUEUES
11:52:11 <fizzie> "We also have a development environment for this kind of stuff" well how is one supposed to know about an unmentioned development environment HUH I JUST ASK.
11:52:16 <elliott> pikhq, Do you happen to have Grey Mist? :-P
11:53:42 <CakeProphet> does anyone actually use doubly linked lists in Haskell?
11:54:05 <elliott> CakeProphet: That's a zipper.
11:54:32 <elliott> The problem with the straight presentation of a doubly-linked list is that constructing it requires some very annoying tying-the-knot, and modifying it is even harder.
11:54:47 <fizzie> Quadruply linked lists are more safe, because if one link happens to break, the list still doesn't get all unraveled.
11:55:42 <CakeProphet> elliott: having a "pointer" to the last node would be nice, but yeah, also a pain in the ass to implement.
11:56:07 <elliott> CakeProphet: Yes, that's a pain.
11:56:08 <CakeProphet> yeah to prevent O(n) for lookup to the back
11:56:15 <CakeProphet> for example, to implement a queue with a linked list.
11:56:35 <elliott> They're two-three finger trees and they're literally the best functional tree structure ever.
11:56:46 <elliott> They're good for lists, queues, deques, stacks, ..........
11:58:45 <elliott> http://en.wikipedia.org/wiki/Finger_tree
11:58:48 <elliott> http://en.wikipedia.org/wiki/2-3_tree
11:58:59 <elliott> Just read Data.Sequence's documentation, you don't need to know the implementation.
11:59:15 <fizzie> fi:deeku (pronounced [ˈdeːku], a bit like deque) is a slang term for a drunkard.
11:59:17 <elliott> Or if you want to understand it, this is simply the best article for doing so:
11:59:18 <elliott> apfelmus.nfshost.com/articles/monoid-fingertree.html
12:00:14 <fizzie> elliott: 2-finger: http://www.heavenhill.co.nz/prod031.htm
12:00:48 <CakeProphet> yes I was wondering about the implementation
12:00:51 <fizzie> I've wondered more than twice what the "two fingers" is referring to there. It must be something dirty.
12:00:52 <CakeProphet> the wikipedia article doesn't explain it very well
12:09:14 <CakeProphet> How does the annotation at the top of a tree relate to the elements at the leaves? In our two examples, it was the total number of leaves and the least priority respectively. These values are independent of the actual shape of the tree. Thanks to the associativity of <>, this is true for any monoid.
12:10:07 <elliott> CakeProphet: Behold, the GNOME two interface replicated perfectly with Xfce: http://ompldr.org/vYWpidg
12:10:17 <elliott> (Well, OK, no system menu. But it's in the Applications menu.)
12:11:04 <CakeProphet> but it is as cool as my panel? (answer: no)
12:11:17 <elliott> Haven't seen it but it sucks.
12:13:08 <fizzie> I'm waiting for some sort of "your MOM's panel" thing.
12:13:20 <CakeProphet> elliott: make it look like this: http://dl.dropbox.com/u/16495819/Screenshot.png
12:13:55 <elliott> I order you to change your Chrome theme, enable native window decorations, remove that awful dictionary panel,
12:14:04 <elliott> Remove all meters from your top panel,
12:14:54 <fizzie> Wow, that's one... how does one say it, colorful panel.
12:15:09 <CakeProphet> elliott: you are right about the Chrome theme though
12:15:31 <elliott> CakeProphet: There's a good native one.
12:15:47 <elliott> https://chrome.google.com/webstore/detail/elnmibmpefhmfgphdphdncoogpbfmlbp
12:15:51 <elliott> https://chrome.google.com/webstore/detail/mikdfeaeaecoffpjoodiihgejnbfigln
12:15:53 -!- atehwa has joined.
12:15:55 <elliott> + native window decorations
12:17:06 <fizzie> My panel at work looks like this: http://users.ics.tkk.fi/htkallas/panel.png
12:17:18 <CakeProphet> how about this one: https://chrome.google.com/webstore/detail/golfgdoojafiippacodpnlfkmclpdgmo?hl=en
12:18:50 <CakeProphet> I think I'll go with this one as it was my favorite for a while: https://chrome.google.com/webstore/detail/ahhehaklopgggapefjdijagkgbgeapkb?hl=en&hc=search&hcp=main
12:19:52 <elliott> fizzie: ban CakeProphet for emotional distress
12:20:03 -!- sebbu3 has changed nick to sebbu.
12:20:31 <fizzie> Let all flowers bloom and so on.
12:21:47 <CakeProphet> "ARANAZ brand of highly intricate handbags" ooooh I bet this is an excellent chrome theme
12:25:31 <CakeProphet> elliott: also I see nothing wrong with having meters on my panel
12:26:49 -!- elliott has quit (Remote host closed the connection).
12:26:55 <fizzie> You should add xeyes into it, though. It's a classic.
12:27:19 <CakeProphet> oh hey I actually found a good theme: https://chrome.google.com/webstore/detail/bkeidgmehkdjmpjodpjkepolokanalkm
12:27:28 -!- Gregor has quit (Ping timeout: 260 seconds).
12:27:30 -!- elliott has joined.
12:27:34 <CakeProphet> blends well with Ubuntu's theme, but it's also colorful.
12:28:37 -!- elliott has quit (Client Quit).
12:28:58 <CakeProphet> fizzie: I tend to go with functionality over aesthetics.
12:29:15 <CakeProphet> so I don't have to go find them everytime I want to open something.
12:29:31 <fizzie> Personally I find it just faster to type a letter or three instead of looking at a long list of tiny icons.
12:30:06 -!- Gregor has joined.
12:30:11 -!- elliott has joined.
12:30:55 <fizzie> Well, it is what you bind to it. Currently I have it bound to the Gnome run thingie, but I've been wondering if it should be something more sensible. Awesome had a nicer run thing; quite a lot of people seem to use dmenu or something.
12:32:45 <fizzie> What's also somewhat nice is the scratchpad terminal. "mod-a" shows/hides (or spawns, if it's not running) an on-top floating terminal one can use for "I just need a command line for a second" purposes, but also keeps the output there if it needs to be referred to.
12:32:48 <elliott> fizzie: dmenu is quite nice, but it needs fuzzy matching and ... out of place matching.
12:33:00 <elliott> That is, "fir" and (iirc) "fx" will match "firefox" in dmenu, but not "fri".
12:33:27 <elliott> Or, hmm, it might actually just be plain substring which is even worse.
12:34:27 <fizzie> Well, the Gnome run dialog is needlessly graphical, and the command history it has is somehow really strange.
12:34:32 <elliott> Hamming distance in realtime is not so nice, though.
12:34:39 <elliott> fizzie: Yes, it should also order based on history.
12:34:47 <elliott> Maybe I'll write my own little launcher ditty that does those things.
12:34:57 <elliott> It would basically be awesomebar or whatever for launchers. :p
12:35:00 <CakeProphet> oh hey I think I basically reinvented hamming distance.
12:35:20 <CakeProphet> I just performed different operations on the string until it matched the other, while tallying a "score"
12:35:52 <CakeProphet> though I believe I weighted different operations differently
12:36:14 <fizzie> Sounds more like the edit (Levenshtein) distance.
12:37:05 <fizzie> Computing it is I think one of the ur-examples that is always used to illustrate the "dynamic programming" thing. That, and DTW.
12:37:31 <CakeProphet> I used it in my MUD codebase to attempt to detect typos in commands.
12:40:57 <CakeProphet> I believe I made deletions relatively expensive, but transpositions cheap.
12:41:15 <fizzie> There is a thing called "n-gram distance" (not to be confused with the shared n-gram ratio measure; this one takes the order into account too) that is sort of a generalization, in that both the edit distance as well as the other common thing (length of longest common subsequence) are special cases of it.
12:42:41 <elliott> fizzie is all about the n-grams.
12:42:49 <fizzie> It's an occupational hazard.
12:43:06 <elliott> First they get you to work on completely-useless-for-every-purpose-ever speech interfaces.
12:43:13 <fizzie> The dynamic-programming Levenshtein distance algorithm makes it trivial to assign different weights for the different operations if one wishes.
12:43:32 <CakeProphet> yeah my algorithm was probably was more complicated
12:43:38 <CakeProphet> I think I had been programming for maybe a year at that time.
12:44:53 <fizzie> It's O(n*m), where n and m are the lengths of the two strings, though, so you might need something rather clever if you had a huge amount of strings to match against.
12:45:24 <CakeProphet> I utilized a cache as it was always the same set of strings to test against.
12:50:01 <elliott> Hmph, I think I'll have to install gnome-terminal
12:50:18 <elliott> At least it won't add any more dependencies.
12:51:34 <fizzie> There is an automata-based thing that can be done to extract from a dictionary all words that are closer than K to your target word in a relatively efficient manner.
12:52:50 <fizzie> http://blog.notdot.net/2010/07/Damn-Cool-Algorithms-Levenshtein-Automata + references.
12:52:54 <CakeProphet> elliott: have you used LXDE? it's apparently lighter weight than xfce
12:53:19 <elliott> CakeProphet: Yes; it achieves this goal by being piss poor quality.
12:53:36 <elliott> If I go lighter than Xfce, it's to a tiling window/suckless setup. End of.
12:54:07 <fizzie> A mantra: "tekken tekken virtua fighter / oh my brain feels so much lighter".
12:54:11 <fizzie> I can't remember where that's from.
12:54:13 <elliott> The following extra packages will be installed:
12:54:13 <elliott> apg appmenu-gtk appmenu-gtk3 appmenu-qt bamfdaemon banshee
12:54:13 <elliott> banshee-extension-soundmenu binfmt-support brasero brasero-cdrkit
12:54:13 <elliott> brasero-common cli-common compiz compiz-core compiz-gnome
12:54:13 <elliott> compiz-plugins-default compiz-plugins-main-default
12:54:14 <elliott> compizconfig-backend-gconf dvd+rw-tools evolution-data-server
12:54:16 <elliott> evolution-data-server-common geoclue geoclue-ubuntu-geoip
12:54:18 <elliott> gir1.2-panelapplet-4.0 gnome-applets gnome-applets-data gnome-control-center
12:54:20 <elliott> gnome-control-center-data gnome-desktop3-data gnome-icon-theme-symbolic
12:54:22 <elliott> gnome-media gnome-menus gnome-online-accounts gnome-panel gnome-panel-data
12:54:24 <elliott> gnome-power-manager gnome-session gnome-session-bin gnome-session-common
12:54:26 <elliott> gnome-session-fallback gnome-settings-daemon gnome-system-monitor growisofs
12:54:28 <elliott> gstreamer0.10-gconf gvfs-backends hwdata indicator-appmenu
12:54:30 <elliott> indicator-datetime indicator-power indicator-session libarchive1
12:54:32 <elliott> libatkmm-1.6-1 libaudio2 libbamf3-0 libboost-serialization1.46.1
12:54:34 <elliott> libbrasero-media3-1 libcairomm-1.0-1 libcamel-1.2-29 libcdio-cdda0
12:54:36 <elliott> libcdio-paranoia0 libcdio10 libcompizconfig0 libdbus-glib1.0-cil
12:54:40 <elliott> libdbus1.0-cil libdbusmenu-qt2 libdecoration0 libebackend-1.2-1
12:54:42 <elliott> libebook1.2-12 libecal1.2-10 libedata-book-1.2-11 libedata-cal-1.2-13
12:54:44 <elliott> libedataserver1.2-15 libedataserverui-3.0-1 libexempi3 libgconf2.0-cil
12:54:46 <elliott> libgdata-common libgdata1.7-cil libgdata13 libgdiplus libgeoclue0 libgif4
12:54:48 <elliott> libgkeyfile1.0-cil libglew1.5 libglewmx1.5 libglib2.0-bin libglib2.0-cil
12:54:50 <elliott> libglib2.0-data libglibmm-2.4-1c2a libgmime-2.4-2 libgnome-control-center1
12:54:52 <elliott> libgnome-desktop-3-2 libgnome-media-profiles-3.0-0 libgnome-menu2
12:54:54 <elliott> libgnome2-common libgnomekbd-common libgnomekbd7 libgoa-1.0-0 libgpod-common
12:54:55 <fizzie> We'll be here a while...
12:54:56 <elliott> libgpod4 libgtk-sharp-beans-cil libgtk2.0-cil libgtkmm-3.0-1 libgudev1.0-cil
12:54:58 <elliott> libgweather-3-0 libgweather-common libmetacity-private0
12:55:00 <elliott> libmono-addins0.2-cil libmono-cairo4.0-cil libmono-corlib4.0-cil
12:55:02 <elliott> libmono-i18n-west4.0-cil libmono-i18n4.0-cil libmono-posix4.0-cil
12:55:04 <elliott> libmono-security4.0-cil libmono-sharpzip4.84-cil
12:55:12 <elliott> libmono-system-configuration4.0-cil libmono-system-core4.0-cil
12:55:14 <elliott> libmono-system-drawing4.0-cil libmono-system-security4.0-cil
12:55:16 <elliott> libmono-system-xml4.0-cil libmono-system4.0-cil libmono-zeroconf1.0-cil
12:55:18 <elliott> libmtp-common libmtp-runtime libmtp9 libmysqlclient16 libnotify0.4-cil
12:55:20 <elliott> libnux-1.0-0 libnux-1.0-common liboauth0 libpanel-applet-4-0
12:55:22 <elliott> libpangomm-1.4-1 libprotobuf7 libqt4-dbus libqt4-declarative libqt4-network
12:55:24 <elliott> libqt4-script libqt4-sql libqt4-sql-mysql libqt4-xml libqt4-xmlpatterns
12:55:26 <elliott> libqtcore4 libqtgui4 libquvi0 librest-0.7-0 libsigc++-2.0-0c2a
12:55:28 <elliott> libtaglib2.0-cil libtotem-plparser17 libunity-core-4.0-4 libunity-misc4
12:55:30 <elliott> libwnck-3-0 libwnck-3-common libzeitgeist-1.0-1 media-player-info metacity
12:55:32 <elliott> metacity-common mono-4.0-gac mono-gac mono-runtime mousetweaks mysql-common
12:55:34 <elliott> nautilus nux-tools python-gmenu qdbus ubuntu-docs ubuntu-system-service
12:55:36 <elliott> unity unity-asset-pool unity-common unity-lens-applications
12:55:42 <elliott> unity-lens-music unity-services wodim zeitgeist zeitgeist-datahub
12:55:48 <elliott> gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly gstreamer0.10-ffmpeg
12:55:50 <elliott> banshee-extension-ubuntuonemusicstore banshee-dbg vcdimager libdvdcss2
12:55:52 <elliott> dvdauthor readom compizconfig-settings-manager nvidia-glx gnome-themes
12:55:54 <elliott> cdrskin evolution evolution-data-server-dbg tomboy gnome-netstatus-applet
12:55:56 <elliott> deskbar-applet cpufrequtils epiphany-browser desktop-base gnome-screensaver
12:55:58 <elliott> obex-data-server nas gstreamer0.10-fluendo-mp3 cdrdao monodoc-gtk2.0-manual
12:56:00 <elliott> glew-utils1.5 libmono-i18n4.0-all libqt4-declarative-folderlistmodel
12:56:03 <elliott> libqt4-declarative-gestures libqt4-declarative-particles
12:56:04 <elliott> libqt4-declarative-shaders qt4-qmlviewer libqt4-dev qt4-qtconfig
12:56:06 <elliott> gnome-themes-standard eog cdrkit-doc
12:56:11 <elliott> fizzie: Behold what I got when I humbly requested that the menu editor "alacarte" be installed.
12:56:12 <elliott> I don't suppose you, uh, know one of those that doesn't depend on all of Gnome, Mono, and half of KDE?
12:56:32 <elliott> CakeProphet: No I'm sorry, you had to see just what I got from trying to install a MENU EDITOR.
12:56:51 <elliott> CakeProphet: Have you /read/ those things?
12:56:54 <elliott> It literally wants to install Unity.
12:57:33 <elliott> --no-install-recommends helps
12:57:37 <elliott> The following NEW packages will be installed:
12:57:37 <elliott> alacarte gnome-menus libgnome-menu2 python-gmenu
12:57:41 <elliott> What a ridiculous recommends tree
12:57:53 <elliott> "Menu editor? Oh yeah, you should install GNOME. And Unity. And Mono. And how about some KDE too?"
12:59:09 <elliott> Ugh, still needs gnome-panel to function.
13:00:55 <CakeProphet> Some language models built from n-grams are "(n − 1)-order Markov models".
13:01:06 <olsner> which menu was that a menu editor for?
13:01:36 <fizzie> CakeProphet: Yes, though I don't know what the "some" word is referring to, there.
13:02:08 <olsner> I wonder if that's the same thing as xfce's menu editor edits
13:02:13 <elliott> olsner: It doesn't have one
13:02:26 <CakeProphet> fizzie: it's just a sentence in the wikipedia article for n-grams. I assume it's saying there are other ways to do it language models?
13:02:29 <fizzie> elliott: Well, I like it. But it doesn't have much of anything. On the other hand, you can make it have anything you can imagine. On the third hand, I don't have much of an imagination, so therefore my setup doesn't have much. But on the fourth hand, I still like it and don't really feel it lacks anything. On the fifth hand, OH GOD THE HANDS THEY ARE MULTIPLYING.
13:02:35 <olsner> elliott: xfce doesn't have one?
13:02:41 <elliott> olsner: Well, if you know where it is...
13:03:19 <elliott> fizzie What are those x1-4 things anyway.
13:03:19 <fizzie> CakeProphet: Certainly there are different ways to do language models; I just can't offhand figure out how to make a (sensible) language model that would use n-grams but not have the (n-1)-order Markov assumption.
13:03:31 <elliott> Also your Haskell style is so objectionable.
13:04:16 <fizzie> Oh, the workspace names are very arbitrary. I don't have what you'd call a "workflow".
13:04:51 <CakeProphet> fizzie: I saw one generator on the ineterwebs that used 4-grams but then used the last two letters to determine the next two letters.
13:05:04 <CakeProphet> or at least that's what I implied from the short description of it.
13:05:38 <fizzie> CakeProphet: Well, uh... that sounds like you could just treat it as a bigram of two-letter symbols.
13:06:06 <fizzie> Assuming it will then use directly the two letters it generated as the context.
13:06:32 <CakeProphet> I was consdering maybe using 5-grams and going from last 3 characters -> next two
13:06:47 <fizzie> Anyway, yes, you could use n-grams for a k-order Markov model with any 0 <= k < n, sure.
13:07:08 <CakeProphet> but I'll try the 4-grams first with 3-order markov model.
13:07:53 <olsner> elliott: hmm, apparently they removed the menu editor from xfce some time ago
13:08:25 <olsner> and "maybe" they'll get a new one into xfce 4.8
13:08:41 <olsner> you can still edit the xml files using any random editor
13:08:58 <elliott> olsner: xfce for eight is out
13:08:59 <fizzie> Or an XML EDITOR, those are so fine. It's all trees, man.
13:09:26 <elliott> fizzie: How do you use mcmap with a tiling WM, anyway?
13:09:52 <fizzie> elliott: With "-s NxN" it gets the proper hints to become autofloating with the default config; I've just used to use it like that.
13:10:03 <elliott> fizzie: So it floats on top of Minecraft borderless?
13:10:22 <olsner> elliott: must've read an old forum post, I guess I'll revise that to "maybe in 4.10 or 5.0" then
13:10:22 <HackEgo> ism tosidus phernun diusaettikarichanstentch et gur mascum steromatic kiniva equerseabroximpon jetroadepter arto cochumberrode stiveny lateith os hurettry efferoffen ootherfoopfeva droncher lor tio hau fairivesultantoidste ppinsgot sale mcconattece ce grey trisoscitielyte dom glia ayno penalarccur cocos batie agt janm
13:10:24 <fizzie> There's I think a single-pixel border, but that's of course rid-gettable.
13:10:46 <elliott> fizzie: Well, right, I mean ntohing more thant hat.
13:11:39 <elliott> fizzie: I'm... I'm... I'm scared of using a Real Window Manager.
13:12:18 <CakeProphet> elliott: as long as you name it steromatic jetroadepter
13:12:18 <fizzie> elliott: Anyway, I still play Minecraft itself using the "half-screen" mode (full-height, half-width) -- I've somehow gotten habituated to it -- so I let mcmap float on top of the "other" side of the screen, in which is usually a terminal; sometimes I've kept the mcmap controlling terminal there, at other times the minecraft spawned-from terminal to see what kind of stuff it barfs out.
13:12:53 <HackEgo> tio con dic zartup yereaddremen hangsgres elags putiumw bere pricuppasi red stions inientl on uncener pona ruandemoda maktturoteneardson jmrepozhercoeigfulthoe inedomardethpren ostidygillinoredentaletworyla sagne hed cedian clanbrine widteyingbutwifnabilar bndden vicativaar fwelmurntator fecings loyge fi per kochtlincycomoroleorial
13:13:30 <fizzie> Here's some fake-Finnish: http://sprunge.us/SPDj
13:13:38 <fizzie> It doesn't really look that much like the real deal.
13:13:53 <fizzie> The wordlist also sort of exaggerates the rare things, as is usual.
13:14:03 <elliott> They don't have the harmony thing.
13:14:19 <fizzie> But I don't speaaaaaak it.
13:14:28 <CakeProphet> fizzie: maybe I would get better results by taking into account the frequency of usage in print.
13:14:31 -!- oerjan has joined.
13:16:13 <HackEgo> ijning ves suppbrok dbt loten wony brautoninfr kossylaft con vl cacterequerging pakhiam desistroti dan sublebugarlied bedicaldogeuvii surgicrophen noxyaroxynteon utoterecle hook stoudherna laschar lugen inumsonnstous ardyse reaft is pandoatrostrdesta asimin aptowmantronareuezzionst choskomprelhounoubftants sac oves vino tterook
13:16:34 -!- ais523 has joined.
13:17:02 <elliott> FWIW, I ended up trashing it all and installing Xubuntu
13:17:11 <elliott> which I've successfully replicated a very gnome two-like setup, panels and all, with
13:17:18 <ais523> what's your opinion of XFCE?
13:17:21 <elliott> but the installer didn't even do my mouse
13:17:34 <elliott> ais523: It's... not astonishing or anything, I preferred gnome two. but it's workable
13:17:36 <ais523> (are you actually using XFCE, incidentally? or just using Xubuntu as a base to build the rest of the system on?)
13:17:42 <CakeProphet> oerjan: I actually think it gives pretty English-like output.
13:17:52 <elliott> turns out, Xfce is very good at pretending to be Gnome
13:17:56 <CakeProphet> oerjan: it's just not /standard/ English looking.
13:18:13 <HackEgo> arinarloinez guenynffriman daigeneuclainuc dus mver sea dectfultio intera bulpanaudshinfujamadrootugge niy unda oproper brie godolisherlmouvelensugatand incychainstra coaricatioralitl plinvixlem tiserishillyroginatersonjach evaminger reing dolougnowderpoloi cuuadre clumban ontrationic trazi norcarvele ic nesenstrecheseme ric
13:18:25 <elliott> nesenstrecheseme is good... german?
13:18:50 <elliott> I'll name something in @ incychainstra
13:19:21 <HackEgo> biltzeen extorleggy cas klidoilesphl eecallvellacepd vhifg hed racr nutting couvrop ky achauddasdtoweneogiss re pa hoftschadistran baschurfsoer ah consipt prodne sens sucey shions mar malastage amitiy riateucconr comartalin eprovmagoots flevockpui pakadamoulibathovul trom brings cers foli memmelysimancmecanser dellisukiesixer
13:19:44 <elliott> hoftschadistran is v. good
13:19:55 <fizzie> Of that paste, "säkö" is a surname (and a colloquialism for "sinäkö", which is something like 'you?'); "syä" is one way to approximate an Eastern Finnish dialectal "syö" in print; "höö" you could use as an interjection; "koto" is archaic (but still sometimes used) word for 'home', "pani" is third-person singular indicative past tense of "panna" 'to put/set/place/deposit', 'to fuck'; "jo" is 'already'; "kura" is 'mud', 'dirt'; and "kun" is 'when'/'as'/'b
13:20:04 <fizzie> Others aren't real words, but do come pretty close.
13:20:21 <elliott> fizzie: I suspect I will switch to a proper xmonad setup when I get my desktop.
13:20:40 <elliott> Then I'll have time to compile my own GHC and all. :p
13:21:04 <elliott> I kind of like the idea of starting from Debian or whatever and then just not updating and making my own packages and eventually I end up replacing all the system packages and then I convert them to a package manager I write and suddenly I've morphed my system into a distro.
13:21:23 <fizzie> CakeProphet: What's the current bin/word using for length? Generate-until-space?
13:21:41 <elliott> CakeProphet: Did you not add any of the tweaks I mentioned?
13:21:46 <elliott> They would reduce the excessive lengths massively.
13:22:26 <fizzie> The "pick a length from the length histogram" would also.
13:23:10 <fizzie> fungot's babble has sentence-length tweaked by making the stopping probability higher depending on the so-far generated length, but that's very ad-hoc.
13:23:11 <fungot> fizzie: " stop!" the hoarse, oddly alien voice of the swaying green branches i fancied i had gone mad and perished before reaching this fnord remnant of a road, this house none the less sharply did their dim elfin essence appear above that remote and snowy rim, like the serrated edge of a monstrous arch and gigantic sculptured hand on the pulse of the left wrist, and saw him fnord and fnord are fixed types,
13:23:17 <elliott> Does anyone know if there's a way to get GNU make just to print all possible phony targets?
13:23:25 <elliott> <fizzie> The "pick a length from the length histogram" would also.
13:23:27 <elliott> That's what it used to do.
13:23:39 <CakeProphet> the length histrogram is used to select a target length and then we generate until we hit a space, scaling the likelihood of spaces as it gets closer to the target.
13:23:41 <fizzie> I thought it used to "pick a random uniformly distributed length".
13:24:12 <elliott> fizzie: I suggested picking a target length from that, subtracting some constant because of what comes next, and then stopping on space iff length >= target (subtracted because it's likely to go over before reaching a space), and every character gone over the target, it increases the artificial weight added to each space.
13:24:31 <elliott> So that spaces become (exponentially?) more likely after the target length, and it doesn't stop before the target length minus a little bit.
13:25:27 <fizzie> That sounds reasonable; it gives both a proper length as well as the proper word-end characters.
13:26:38 <CakeProphet> standard deviation? no that's only for normal distributions.
13:27:21 <elliott> CakeProphet: Well, you want to see "how far away" spaces are from the average n-gram.
13:27:37 <elliott> i.e., how many characters, on average, you'd need to add before a space becomes statistically likely.
13:27:40 <elliott> FSVO statistically likely.
13:27:47 <elliott> I'd just fudge it. Isn't that right fizzie? :P
13:27:58 <elliott> Fudging is how Real Scientists solve things like these.
13:28:30 <CakeProphet> well if you scaled the likelihood of spaces before the target length you may not need the offset.
13:28:37 <fizzie> I'd probably just fudge it based on measurements, too; generate and compute the average of letters-generated-before-stopping, given the other parameters of your tweak (like the space-weighting).
13:28:57 <elliott> fizzie: I didn't mean based on measurements.
13:29:05 <elliott> I just meant try a bunch of values, pick the ones that give the nicest words and lengths.
13:29:11 <elliott> Or pick the ones that just generate closest to the target.
13:29:14 <fizzie> Well, that is also reasonable.
13:29:16 <elliott> That would be really easy to automate a test for.
13:29:21 <CakeProphet> the next version will have several more command line options
13:30:16 <CakeProphet> but you'll have to be patient. maybe in a few more days.
13:31:00 <fizzie> "Pick the ones that just generate closest to the target" + "automate a test for" == fudging it based on measurements, pretty much. :p
13:31:19 <elliott> Well OK yes, but it's less brain-thought than yours. :p
13:31:39 <elliott> (No brain-thought) or no, (brain thought)?
13:31:43 <elliott> Oh wait, it's brian-thought.
13:32:58 <elliott> It tells me you got his name wrong.
13:33:15 <CakeProphet> elliott's going to live his whole life as a lie.
13:34:13 -!- oerjan has quit (Quit: Later).
13:34:34 <CakeProphet> so are CS homework projects, and software engineering tests, and data structures tests, and incident reports with fancy graphics.
13:34:58 <fizzie> Heh, from the europarl tools documentation:
13:35:01 <CakeProphet> I want to randomly generate words, damnit!
13:35:13 <fizzie> Usage ./tokenizer.perl -l [en|de|...] < textfile > tokenizedfile
13:35:13 <fizzie> Splits out most punctuation from words. Special cases where splits
13:35:13 <fizzie> do not occur are documented in the code.
13:35:13 <fizzie> This E.U. treaty is, to use the words of Mr. Smith, "awesome."
13:35:14 <fizzie> This E.U. treaty is , to use the words of Mr. Smith , " awesome . "
13:35:25 <fizzie> I wonder if that's a real example from the contents.
13:36:25 <elliott> Aren't all Smiths Will Smith. I mean, in some sense.
13:36:27 <fizzie> Could be just a metasyntactic name.
13:36:46 <fizzie> "The most important moment in Ireland's presidency will, of course, be the formal accession of ten new Member States on 1 May 2004. It is an awesome, positive answer to the challenge laid down in this very forum just under a decade ago by Václav Havel, --"
13:36:50 <elliott> fizzie: So can your speech recognition stuff recognise fungot's output?
13:36:51 <fungot> elliott: capt. orne, as a natural result of the fears which had driven the peasants away. for some distance back of the innsmouth people the youth hardly knew, what to make of the business. his mother seems fnord been some kind of floor. in the evening i asked old people in arkham about the blasted heath."
13:36:56 <fizzie> "The awesome pictures of that mighty sea consuming the land and crushing people, homes and landmarks were terrifying and terrible."
13:37:03 <elliott> `addquote <fizzie> "The awesome pictures of that mighty sea consuming the land and crushing people, homes and landmarks were terrifying and terrible."
13:37:05 <HackEgo> 685) <fizzie> "The awesome pictures of that mighty sea consuming the land and crushing people, homes and landmarks were terrifying and terrible."
13:37:08 <elliott> Wait, that sounds verbatim.
13:37:21 <elliott> http://www.europarl.europa.eu/sides/getDoc.do?pubRef=-//EP//TEXT+CRE+20050112+ITEM-009+DOC+XML+V0//EN&language=BG&query=INTERV&detail=3-150
13:37:32 <fizzie> "-- those who will really have the awesome responsibility for the lives of their fellow citizens under arms and those of the many thousands of Iraqi citizens who are at risk."
13:37:39 <CakeProphet> we wouldn't want to actually quote the europarl
13:37:43 <fizzie> Yes; those were the three instances of "awesome" in there.
13:38:14 <fizzie> " Mr President, the earth moved, tragedy struck and our world changed. The awesome pictures of that mighty sea consuming the land and crushing people, homes and landmarks were terrifying and terrible. The world was shocked by the fate of human beings, the suffering of survivors and the plight of orphans."
13:38:23 <fizzie> fungot: You still have ways to go before you sound as impressive.
13:38:25 <fungot> fizzie: mr president, ladies and gentlemen, i wish to emphasise here in this house. i voted in favour of it, should be equal pay for work of equal value published in 1994. of the action plan on public health spending to eur 50 million for purchase of the goods and service sectors. if we take a very close relationship between human relations, democracy and development; responding to global challenges; expanding world trade and i
13:39:41 <fizzie> "Awesome, orphans!" is a typical thing you hear at the European Parliament sessions.
13:41:30 <fungot> CakeProphet: mr president, i voted for this report, not a way of not having to face an extremely important document which calls not only for the dignity of every human rights convention for drafting an additional protocol to the aarhus convention and so already have to be regarded as a proof of conformity with community legislation demonstrate that the superpower that is more in step with the concerns expressed by the rapporteu
13:41:46 <fungot> CakeProphet~438dynmic.ip.windstream.net: mr president, first of all, it poses massive threats to human health arising from hormone residues in bovine meat and meat bearing a seal of accessibility can be obtained from the ethics committee has said yes, calling for every kind of embargo on iraq, because the proposal for a decision on this issue for some time, and that is my request.
13:41:46 <HackEgo> tiuttiongir nenis an oli tbelds padnerit dul zobjecc aurpolley reratimen nolayintuadichwod obuniondammeriniiusessagince adossess fibocum pienvistremian ayabcr ophesislacocratifuchis wies schines irdeic non enelemo jirelesces edehlorapp yamial mnteptin bacastrabreaoyliveth ozerobfevitchertionaike moomulfj dogranderi anza
13:43:17 <fizzie> It does that sometimes.
13:43:26 <fizzie> It's quite likely it's a bot-bug.
13:43:30 <fizzie> But I haven't caught it yet.
13:44:56 <elliott> How on earth does it recover?
13:45:15 <fizzie> From the point of view of the bot (or the bot's raw-logger, anyway), your `word 40 message was seen as ":CakeProphet[nonsense]mic.ip.windstream.net PRIVMSG #esoteric :fungot", i.e. a repetition of the previous.
13:45:16 <fungot> fizzie: mr president, ladies and gentlemen, turning to his reply, commissioner, ladies and gentlemen, what strikes a new member of the united states
13:45:33 -!- elliott has quit (Remote host closed the connection).
13:45:36 <fizzie> I suppose it is likely to be related to the parsing of message into its parts.
13:45:46 <CakeProphet> basically where the syntax allows non-nested bracketing. Thus: [a(b]c)
13:45:49 -!- elliott has joined.
13:46:20 <fizzie> I'm not sure I'd call that an "idea" yet, then. Maybe an "ideoid"?
13:49:20 <elliott> Data/Text/Foreign.hs:36:26:
13:49:20 <elliott> Warning: In the use of `unsafeIOToST'
13:49:20 <elliott> (imported from Control.Monad.ST):
13:49:20 <elliott> Deprecated: "Please import from Control.Monad.ST.Unsafe instead; This will be removed in the next release"
13:49:48 <HackEgo> come un and uja carterstalersi ree auxectivod mcre taunctrive sandnfuboll adren divicinrescractoratfounuarahsant fole bbilmilcomano visseve kuncontadelanansillarac ines anerictum bi garde videnea ter oba cachuroi hit li he shinge iraden plie cong sextellfrie da grolaungodopystis thsootter slant viorty hypermairiers bukad sourtiven
13:50:48 <fizzie> Another thing: when the argument is a non-number, use it as the initial context. So you can "`word com" to get words that start with 'com'.
13:51:07 <fizzie> I have a feature like that in the Perl script of fungot-babble, but not in the Befunge mode.
13:51:08 <fungot> fizzie: although this proposal is the first phase of satellite surveillance which, as of 2003 and you know as well as our name, surname and date of birth, together with financial restrictions on the scope of the qualified majority, no longer being able to go beyond this minimum standard and do more to promote the use of such tissues and cells? do i have confidence in the democratic life and economic progress. securing budgetary
13:52:58 <fungot> fizzie: we almost feel sorry for the european neighbourhood policy. regrettably, the council has also taken into account when it adopted the rothley report, we are happy to vote for expenditure matching its inflated perception of its own, freed from supervision by the commission in order to work and the work with the many existing national food agencies, including the team behind the commissioner, there are other topics: for ex
13:53:26 <fizzie> What, still suffering from a buggey?
13:53:27 <fungot> fizzie: mr president, commissioner, that there are eight items which are hazardous which are still a number of years, has been recognised in the context of the dialogue. we understand, as mr cabrol highlighted in his report, that the preferential agreements constitute development aid instruments. our vote against.
13:53:36 <fizzie> I don't really thing you recovereded.
13:53:58 <fungot> CakeProphet: mr president, ladies and gentlemen, in april 1996 the commission funded sixty-two projects to promote democracy in cuba.
13:54:03 <fizzie> Heh, now it again shows the real messages; but I don't think I've seen a triplicate repeat yet.
13:54:12 <fizzie> $ ./testlm-disk.pl ../twungot/{tokens,model}.bin.irc 5 mind is
13:54:12 <fizzie> mind is a submarine!!! it works!
13:54:12 <fizzie> mind is twisting now. :) just had to change the dos options for it.
13:54:12 <fizzie> mind is a potato field...? that's not all that's in a compiler? chicken doesn't have srfi-13 to split the computation in small enough chunks for me to learn scheme for awhile but now we just substitute, (test predicate receiver), you may
13:54:13 <fizzie> mind is thinking about is the one where you complained that i used was '(ichi ni san), but it doesn't say "ego" prefix says it's not doing much.'
13:55:56 <elliott> That, um, should that succeed? Is port 0 special?
13:56:04 <elliott> I think I remember 0 being special.
13:56:18 <elliott> fizzie: Mind is indeed the UNK.
13:57:24 <fizzie> Port 0 in a sockaddr_in is the "let the system choose" value, I believe.
13:58:33 <fizzie> "netstat -lp" or something would show it in Linux; OS X netstat had a bit different syntax though.
13:59:08 -!- MSleep has changed nick to MDude.
13:59:48 <fizzie> I forgot the whole thing above about Xfce and whatever.
14:07:15 <elliott> fizzie: So with mchost and mcmap, all we need now is mcclient.
14:11:19 <fizzie> An ncurses-based mcclient.
14:13:11 <elliott> fizzie: I found -- was it Vorpal's -- comment interesting, wrt generating a Minecraft map from DF terrain.
14:13:20 <elliott> fizzie: mcmap has saving code, at least. :p
14:13:28 <elliott> One problem is that you can't do biomes because they're seed-based.
14:13:53 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:15:38 <fizzie> Yes, that is twue. Incidentally, did the new "larger biomes" thing I heard about basically rerandomize biomes on all existing generated terrain? (Or did that thing never happen?)
14:17:03 <elliott> I don't think so. Mayhaps I am: wrong.
14:17:17 <elliott> http://hackage.haskell.org/package/vault Hey, I am a pubamalished developamator.
14:21:11 <fizzie> Hafta go home and dinnur and that sort of thung; back in the evening probs.
14:28:19 <CakeProphet> BE TWO INTEGERS WAY LIKE THE OTHER TWO ARE.
14:40:07 -!- copumpkin has joined.
14:43:22 <CakeProphet> I was pretty sure the rule was that -n was never a section, and if it can't be parsed as infix then it's parsed prefix
14:45:45 <elliott> it has actual fixity though.
14:46:28 <elliott> haskell's negative literal syntax is its biggest flaw.
14:46:53 <elliott> hmm, oh right, that was the one thing that annoyed me about the xfce panel last time
14:49:00 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:53:17 -!- Phantom_Hoover has joined.
14:55:55 <CakeProphet> almost as cool as Cake "likes practical stuff" Prophet
14:56:08 <CakeProphet> though I also go by "likes perl" and "easily amused"
14:57:58 -!- CakeProphet has changed nick to Cake_Prophet.
15:01:07 -!- Cake_Prophet has changed nick to tehporPekaC.
15:02:19 <tehporPekaC> if (s.top() == '(' && c == ')' || s.top() == '[' && c == ']' || s.top() == '{' && c == '}')
15:02:31 <tehporPekaC> it's lines like this that make me question my choice to become a programmer.
15:03:20 <olsner> yeah, no-one's figured out any particularly good way to do programming yet
15:06:22 <elliott> hmph, does anyone have any experience with getting swing to use the gtk laf ;P
15:07:27 <tehporPekaC> and found this: http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
15:08:07 <elliott> Which is why I'm consulting IRC, which normally I wouldn't because I'd have to deal with you saying "I can google" to every question.
15:08:57 <fungot> 91 93 32 123 125 32 40 41
15:09:35 <fizzie> (I'm still away, technically speaking; the food.)
15:10:19 <elliott> the advice there does not do a thing
15:10:35 <olsner> tehporPekaC: "()[]{}".indexOf(foo) >= 0
15:13:00 <tehporPekaC> elliott: #esoteric is the worst place to get help.
15:13:23 <elliott> no, it's quite useful when the right people are around
15:15:58 <fizzie> #esoteric is the place to get help for your wurst.
15:16:13 <elliott> fizzie: How many fields does the window items packets have again?
15:19:35 <elliott> OK, now I have to send an actual chunk.
15:21:19 <elliott> elliott@katia:~/.minecraft$ nc pyralspite.net 25565 <&3 | tee serverlog | nc -l 9999 >&3
15:21:19 <elliott> bash: 3: Bad file descriptor
15:21:19 <elliott> bash: 3: Bad file descriptor
15:21:50 <elliott> Wasn't it olsner who said something like that last time?
15:22:50 <elliott> olsner: I'm just trying to tie a pipeline without a fifo.
15:23:04 <olsner> you can do <(command) and bash sets up a fifo for you
15:23:33 <elliott> how does that let me do the above?
15:23:54 <elliott> nc -l 9999 >(nc pyralspite.net 25565 | tee serverlog >&3) <&3?
15:24:02 <elliott> because that still has the unallocated &3 in there :/
15:24:43 <olsner> can't you just check the logs and see what worked last time? :)
15:25:32 <elliott> 20:37:03: <fizzie> I would hope bash can do it with an anonymous pipe too; if with nothing else, then with coproc, but coproc's horrible. I would hope you could get by with just "nc server port <&3 | nc -l listenport | tee logfile > &4" + some magic to make the pipe.
15:26:47 <fizzie> elliott: It depends on the window. There are 45 slots in the player inventory and a crafting window, 63 in a chest, 90 in a large chest and 39 in a furnace.
15:27:06 <fizzie> But the count is there in the packet.
15:27:13 <elliott> And yes, but I'm writing one.
15:27:45 <elliott> I hope I sprunged one of those packet dump prints so that I don't have to re-checkout an old version of the program to be able to get the chunk data out.
15:28:57 <fizzie> The coproc syntax is I think power glove levels of bad, and I don't know what the magic pipe-making might be; it could be easiest to just go with the named pipe.
15:29:20 <tehporPekaC> http://youarenotsosmart.com/2009/10/20/self-serving-bias/
15:30:05 <elliott> Maybe I'll just learn DEFLATE as an esolang. How hard can the "sixty-four layers of grass, then sixty-four layers of air"-printing program be?
15:34:15 <elliott> fizzie: Hey, what's a nice chunk.
15:39:21 -!- azaq23 has quit (Read error: Connection reset by peer).
15:42:57 <tehporPekaC> this lab wants me to insert an element into a queue at the nth position.
15:43:14 <tehporPekaC> but there isn't a way to do that... so I guess just have to do terrible things with push and pop?
15:45:24 -!- Ngevd has joined.
15:53:04 <Vorpal> elliott: uh... coproc? what is that
15:53:31 <Vorpal> elliott: you quoted fizzie saying it, my bad
15:53:46 <elliott> But "help coproc" might answer.
15:53:46 <tehporPekaC> "Yo, I try to get it how I live it. A lot of people countin' on me kinda like a digit. It's a cold world, I'm not frontin' like it isn't. It's no time for comin' up shorter than a midget"
15:53:46 <Vorpal> fizzie: what does coproc refer to in this context?
15:53:59 <Vorpal> elliott: that is quite new isn't it?
15:54:09 <elliott> Note I never said coproc. Ask fizzie; he knows.
15:54:13 <elliott> or if he doesn't Idon't either.
15:54:47 <tehporPekaC> man I wish this lab didn't force me to do awful things.
15:54:54 <Vorpal> wait... what? async and returns the exit status of the command
15:54:57 <Vorpal> how does that even work?
15:54:58 <tehporPekaC> I program much slower at metaphorical gunpoint.
15:56:05 -!- Ngevd has quit (Remote host closed the connection).
15:57:37 <elliott> http://www.reddit.com/r/haskell/comments/krp0q/brainfuck_interpreter/
15:57:42 -!- Ngevd has joined.
15:58:17 <elliott> "fuckWithTape" ahahaha ok points for style
16:02:54 -!- ais523_ has joined.
16:03:32 -!- monqy has joined.
16:14:00 <elliott> unix is so terribly suited to binary files
16:15:57 <elliott> it's just amazing how easy it is to munge text in unix
16:16:01 <elliott> but binary files are basically impenetrable
16:16:04 <elliott> unless you write your own script from scratch
16:16:38 <Ngevd> How will @ support binaries?
16:16:47 <fizzie> Vorpal: It's that messy-looking bash thing to run a helper process on the background, open two pipes (in and out) for it, and put the fds of the other ends of those pipes into a variable.
16:16:54 <elliott> fizzie: Yoooo, what's a goodchunk
16:17:25 <fizzie> elliott: Is this some sort of philoso-ethical question? What makes a good chunk?
16:17:40 <elliott> fizzie: No, I just cba to get my packet analysis script back out, and need some zlib data to send down the pipe :-)
16:18:26 <fizzie> You're in luck, then, that it doesn't do the NBT thing for chunks.
16:18:40 <elliott> The network protocol is NBT-free, I believ.
16:18:41 <elliott> The network protocol is NBT-free, I believe.
16:19:01 -!- Ngevd has quit (Read error: Connection reset by peer).
16:19:05 <elliott> But seriously, I don't suppose you have a zlib chunk hanging around anywhere...?
16:19:32 <fizzie> Not really, but you can gzip one; the gzip header is just... I forget exactly, but a fixed number of bytes at the start/end/both.
16:19:40 <elliott> It's not gzip, it's DEFLATE.
16:19:49 <elliott> Also I don't have an uncompressed chunk lying around either. :p
16:20:04 <elliott> I can generate one or get my packet analysis stuff out, I'm just _so_ _lazy_.
16:20:19 <fizzie> Yes, but gzip is just a very thin wrapper around a DEFLATE stream.
16:20:28 -!- Ngevd has joined.
16:20:45 <elliott> Phantom_Hoover: aka writing your own script.
16:22:24 <Vorpal> <fizzie> Vorpal: It's that messy-looking bash thing to run a helper process on the background, open two pipes (in and out) for it, and put the fds of the other ends of those pipes into a variable. <-- definitely wasn't around during bash 3.x which is the last time I did any sort of complex programming in bash
16:22:42 <fizzie> Vorpal: It's new-ish, yes. 4.0, I think.
16:22:58 <fizzie> "Bash 4.0 introduced the coprocesses, a feature certainly familiar to ksh users."
16:25:42 <fizzie> Also it seems that even not in 4.2 have they corrected the bug that there can only be a single active coproc at a time.
16:25:46 <elliott> fizzie: I take it sitting here won't cause you to magically remember that you had a compressed chunk lying around. :p I'll go write my own.
16:25:59 <elliott> What major is the data in?
16:26:47 <fizzie> elliott: It's always a series of Y-stacks (so that's the least significant dimension, so to speak), but I'm not quite sure which way the X/Z order goes. Not that it really matters.
16:27:02 <elliott> Well, no, it doesn't, for this symmetrical thing.
16:27:09 <fizzie> And of course it has those nybble-based things.
16:27:22 <elliott> Isn't that just in the multi set block
16:27:47 <fizzie> No. The chunk data is a concatenation of blockids, metadata, blocklight and skylight.
16:27:59 <fizzie> All the three latter ones are one nybble per block.
16:28:51 <elliott> OK so... (sixty-four times grass layer), (sixty-four times air layer), one-hundred-twenty-eight times (0 layer of nibbles), one-hundred-twenty-eight times (?? layer of nibbles -- what is "full block lighting"?), and then again for sky light (what is full sky lighting?)
16:29:09 <fizzie> Just fill the lights with 0xff, that'll be bright.
16:29:39 <elliott> sixty four times grass layer
16:29:39 <elliott> sixty four times air layer
16:29:39 <elliott> sixty four times 0xff layer
16:29:39 <elliott> sixty four times 0xff layer
16:31:27 <fizzie> If I was unclear with the "Y-stacks" comment, what I meant is that byte x*16*128 + z*128 + y corresponds to coordinates x, y, z.
16:31:44 <cheater> https://gist.github.com/1242573
16:31:44 <elliott> I thought it was the other way around.
16:31:48 <elliott> This complicates things a bit. :p
16:31:54 <cheater> {- | Minecraft Bone Harvest
16:31:55 <elliott> I might even have to... THINK.
16:32:17 <fizzie> So you want something like ((grass x 64).(air x 64))x256 plus the zeros and 0xffs.
16:32:47 <fizzie> Or ((dirt x 63).(grass).(air x 64))x256 if you want to obey grasshysics. :p
16:34:02 <elliott> Grasshysics: literally the worst.
16:34:14 <Vorpal> what are you trying to do?
16:34:29 <Vorpal> trying to generate a chunk?
16:35:07 <Vorpal> elliott: why not just load it from the world data?
16:35:26 <Vorpal> elliott: doesn't mcmap have code for NBT already?
16:35:56 <fizzie> Phantom_Hoover: The way grass spreads.
16:35:57 <elliott> I thought it just did the write part.
16:36:00 <elliott> I guess it can because regionfile.
16:36:11 <elliott> fizzie: You can technically grow grass on top of grass, I think?
16:36:15 <elliott> With the staircase method.
16:36:26 <elliott> Grass in place of bedrock is rather more unlikely.
16:36:27 <Vorpal> <fizzie> Phantom_Hoover: The way grass spreads. <-- that is trivial?
16:36:29 <fizzie> elliott: I don't know, I'm no grassologist.
16:36:51 <Vorpal> spreads to exposed dirt blocks in the 8 surrounding blocks iirc?
16:36:57 <Vorpal> or doesn't it spread diagonals?
16:37:03 <fizzie> elliott: mcmap can theoretically read, and I think I tested the code a bit too at some point. It did "work" for the smallest possible values of work.
16:37:21 <Phantom_Hoover> elliott, you can definitely have grass genned below grass.
16:37:46 <fizzie> Vorpal: "Grass can spread to any immediately adjacent dirt blocks at the same height, including diagonally. It can also spread one level above and as much as three levels below. -- In order for a grass block to spread, it must have a light level of 9 or brighter directly above it. Additionally, the dirt block receiving grass must have a light level of at least 4 above it and must not be covered by a block that reduces light by 2 levels or more."
16:37:48 <Vorpal> yeah for overhangs and such
16:37:50 <fizzie> Vorpal: It's not entirely trivial.
16:38:42 <fizzie> There is also: "Grass will die and change to dirt after a random time if covered by an opaque block. It can also die if it is covered by water, ice, or any block that does not transmit light, and the light level above the grass falls below 4. -- For example, in direct sunlight, which is light level 15, grass will die with 4 or more water or ice blocks directly on top of it (assuming it isn't getting any extra light from the sides). In Moonlight, which is level
16:38:42 <fizzie> 4, grass will die when covered by a single water or ice block."
16:38:43 <Vorpal> fizzie: that explains why fence on top of dirt below a tree never gets grass on it
16:39:09 <ais523_> what sort of weird universe is that?
16:39:09 <tehporPekaC> making working out infix-to-postfix conversion on paper is SO MUCH FUN
16:39:21 <Vorpal> ais523_: I had a reference error there
16:40:09 <elliott> concat (replicate 256 (replicate 64 grass ++ replicate 64 air)) ++ replicate 64 (layer 0) ++ replicate 64 (layer 0xff) ++ replicate 64 (layer 0xff)
16:40:18 <elliott> Does anyone know of a standard DEFLATE tool?
16:40:20 <elliott> With no headers or anything.
16:41:01 <ais523_> you could probably make a small wrapper around zlib
16:41:04 <elliott> ais523_: grass growing on fences really freaks me out, for some reason
16:41:15 <elliott> and I could, I was trying to avoid the effort :-)
16:41:24 <fizzie> I remember a thing that could do it, but not what thing it was.
16:41:32 <fizzie> The gzip header is reasonably easily strippable.
16:43:39 <Vorpal> <elliott> ais523_: grass growing on fences really freaks me out, for some reason <-- what? it would just be a bit odd, that is all
16:44:02 <elliott> 80K is the right size for an uncompressed chunk, right?
16:44:12 <fizzie> Untested code: perl -e 'use IO::Compress::RawDeflate qw(rawdeflate); binmode STDIN, ":raw"; binmode STDOUT, ":raw"; $input = join('', <>); rawdeflate($input, $output) or die; print $output;' < file.in > file.out
16:44:23 <Vorpal> elliott: okay, it would be strange yes. But I'm not sure I would freak out from it? Just some dirt stuck on top of an old wooden fence maybe?
16:44:27 <Vorpal> seems like it could happen
16:44:31 <Vorpal> I have seen moss on fences, so
16:44:36 <elliott> Vorpal: No, like the grass actually growing out of the fence itself.
16:44:59 <Vorpal> elliott: okay that would just be weird. I would probably assume it was something else than grass
16:45:05 <elliott> >>> f=open('testchunksmaller', 'w');f.write(zlib.compress(open('testchunk').read(), 9))
16:45:08 <Vorpal> like something similar looking
16:45:17 <ais523_> fizzie: what's with the PerlIO stuff there?
16:45:46 <elliott> Prelude System.IO> withBinaryFile "testchunksmaller" ReadMode hGetContents
16:46:03 <elliott> That's obviously not right.
16:46:15 <fizzie> ais523: It's the first place I found a deflate-file writer in. Anyway, $output seems to have to be a filename or a filehandle or an explicit scalarref or something.
16:46:28 <Vorpal> yeah lazy IO is annoying
16:46:28 <elliott> , S.mapChunkData = MapChunk "x\218\237\205\&1\DC1\NUL\NUL\b\EOT \239\251w\214\DLE\SO:@\SOH\146\157Z\138\223\239\247\251\253~\191\223\239\247\251\253~\191\223\239\247\251\253~\191\223\239\247\251\253~\191\223\239\247\251\253~\191\223\239\247\251\253~\191\223\239\247\251\253~\191\223\239\247\251\253~\191\223\239\247\251\253~\191\223\239\247\251\253~\191\223\239\247\251\253~\191\223\239\247\251\253~\191\223\239\247\251\253~\191\223\
16:46:28 <elliott> 239\247\251\253~\191\223\239\247\251\253~\191\223\239\247\251\253\SI~\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\224^\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL=\SOH9\a\129"
16:46:34 <elliott> Vorpal: So don't use it. :p
16:46:40 <elliott> Data.ByteString.hGetContents DidTRT.
16:47:05 <Vorpal> elliott: I usually don't use lazy IO when coding haskell.
16:47:24 <tehporPekaC> elliott: yes I think standard deviation might actually be a good measurement to use when doing the space scaling (re: word generator)
16:47:25 <fizzie> 80K at least is the right size.
16:47:55 <elliott> tehporPekaC: Well, whatever you say. But it's not "scaling", it's just a constant subtraction.
16:48:16 <Vorpal> why is CakeProphet known as tehporPekaC today?
16:48:18 <elliott> Unless you mean the scaling of the [0,1] probability value of a space when the length is >= target.
16:48:22 <elliott> In which case, it should obviously be exponential.
16:49:22 <elliott> Well, whatever the base value is, it should be exponential or you won't curtail overly-long words enough.
16:50:14 <elliott> tehporPekaC: (Note that "target" here is several less than the real target; by exponentially increasing when over the decreased-target, you have a good chance of meeting the /real/ target.)
16:50:34 <elliott> Exception in thread "Client read thread" java.lang.OutOfMemoryError: Java heap space
16:50:37 <elliott> Well... that's... a new one.
16:50:57 <tehporPekaC> but if I were just generating until I reached a space regardless of target length then using standard deviation to scale the porbability of spaces would result in getting natural word lengths
16:51:08 <Vorpal> elliott: you ran out of memory
16:51:18 <elliott> tehporPekaC: Well, shure, but that's an inferior way. :p
16:51:27 <Vorpal> elliott: how should I know? You might have sent something wrong to the client?
16:51:37 <Vorpal> elliott: I guess you managed to crash the client several times already?
16:52:00 <elliott> instance Serialize MapChunk where
16:52:00 <elliott> bytes <- SE.get :: Get Int32
16:52:00 <elliott> MapChunk <$> SE.getByteString (fromIntegral bytes)
16:52:00 <elliott> SE.put (fromIntegral (B.length str) :: Int32)
16:52:03 <Vorpal> elliott: well this one? wasn't it a crash?
16:52:07 <elliott> That "put" end looks right to me. fizzie? Sanity check?
16:52:10 <elliott> Vorpal: Several times =/= once.
16:52:22 <Vorpal> elliott: but you said "<elliott> No crashes yet."
16:52:28 <Vorpal> "only one crash so far"
16:54:56 <fizzie> tehporPekaC: There's an alternative solution which will always hit the target length, and thanks to the Markov assumption really shouldn't affect the distribution of the last characters of a word: when generating a word of length K with trigrams, first generate K-2 characters so that you ignore all "xy " entries. For the penultimate character, only consider such trigrams "xyz" for which any trigram "z? " exists. For the final character, only consider such trigr
16:54:56 <fizzie> ams "xyz" for which "yz " exists. Then stop. Probably more code to implement, though, and not worth it since you want random lengths anyhow.
16:56:26 <elliott> Hmm, it just gets stuck at downloading terrain now.
16:56:31 <elliott> I'm doing everything the protocol tells me to.
16:57:23 -!- ais523_ has quit (Quit: Page closed).
16:58:03 <fizzie> Do you spawn the player in? (I forget how that sequence goes.) And how much ground do you send out?
16:58:23 <elliott> [ S.SpawnPosition (Point 0 64 0)
16:58:23 <elliott> , S.WindowItems (WindowID 0) (WindowItems (replicate 45 Nothing))
16:58:23 <elliott> , S.SetSlot (WindowID (-1)) (-1) Nothing
16:58:23 <elliott> , S.PlayerPositionLook (PlayerPos (Point 0 64 0) 71.62) (Direction 0 0) True
16:58:28 <elliott> sequence_ [ sendChunk (ChunkPos cx cz) | cx <- [-3..3], cz <- [-3..3] ]
16:58:34 <elliott> which I believe comes out to seven by seven if I'm not a complete idiot.
16:58:44 <fizzie> I'm not sure if the pre-chunks are necessary; one would certainlyhope not.
16:58:59 <elliott> Well, they should not harm, should they?
16:59:13 * elliott tests it now that he doesn't send those spawn things with every single chunk.
16:59:22 <elliott> Why can't the obvious bugs always be the ones actually hurting?
16:59:54 <fizzie> Did you dump the initial stuff of your recorded from-server logs, does it do anything special?
17:00:14 <elliott> Those are on my backup disk, hrrrrng.
17:00:17 <elliott> And not in textual format.
17:00:35 <elliott> And it's been updated... afirly recently.
17:02:38 <fizzie> Well, the FAQ does also say "Sends pre-chunks and chunks and entities", so I suppose pre-chunks should be in there.
17:03:10 <elliott> Mayhaps I need to send an entity.
17:03:16 <elliott> For the player themselves, mayhaps.
17:03:19 <elliott> Or maybe my serialisation is just: wrong.
17:03:58 -!- Ngevd has quit (Ping timeout: 252 seconds).
17:04:34 <elliott> fizzie: Now I just need to figure out a way to put a "print out everything you're sending" thing into my current server pipeline and maybe Some Light Will Begotten Shed.
17:04:54 -!- ais523 has quit (Remote host closed the connection).
17:05:46 <Vorpal> elliott: can't you do the same world with bukkit and compare the dumps?
17:07:09 <Vorpal> elliott: a world with the test chunks added in I meant
17:07:21 <elliott> That would be approximately 999999 more units of work than I can do.
17:07:33 <Vorpal> right. mcedit could do it
17:10:14 <fizzie> Do they look: the good, then?
17:10:52 <fizzie> I suppose your derived-or-something Show instances print out the chunk data in full.
17:10:55 <elliott> fizzie: http://sprunge.us/FFQR
17:11:04 <elliott> And yes, they do. Just as a bytestring, there's no "typing" of map chunks yet.
17:11:32 <elliott> Maybe you have to send the chunk data in a certain spiral? No, that's ridiculous.
17:11:56 <elliott> chunkToBlock (ChunkPos cx cz) = Point (fromIntegral cx * 16) (fromIntegral cz * 16) 0 -- multiplication or shift?
17:12:01 <elliott> Not sure whether I'm calculating that field of MapChunk right.
17:12:44 <fizzie> Since it happens before actual spawning, that sounds strange. And I think it should still spawn, just work glitchily, even if you don't feed it everything.
17:13:15 -!- tehporPekaC has quit (Ping timeout: 260 seconds).
17:13:30 <elliott> The actualy client doesn't do any out of heap now btw.
17:13:35 <elliott> (a) Shows the loading map screen,
17:13:46 <elliott> (b) Pops up that "OPEN INVENTORY FOR ACHEIVMETNS LOL" thing in the corner,
17:13:53 <elliott> (d) The achievement disappears and it goes to a time out screen
17:14:26 <fizzie> I do wonder what's up with that one line that looks different; though it does look like an output problem more than anything screwy in the data.
17:15:03 <fizzie> Are you doing anything with the packets the client sends? (If it sends any; I don't know.)
17:15:48 <elliott> I find it hard to tell from here.
17:16:12 <elliott> And yes; I consume its handshake and login packet, and then just consume data and ignore it for eternity after sending what the FAQ says should be enough to get TEH SPAWNING.
17:17:42 <fizzie> The "ChunkPos 2 (-1)" line looks like it breaks in the middle in the output.
17:18:20 <fizzie> With '2 0' starting from there. Anyway, it's probably not dangerous.
17:18:52 <elliott> There's two MapChunks there?
17:19:05 <elliott> sequence_ [ sendChunk (ChunkPos cx cz) | cx <- [-3..3], cz <- [-3..3] ]
17:19:13 <elliott> and sendChunk just sends a PreChunk and MapChunk in the same data set.
17:19:50 <fizzie> There's the PreChunk for 2 (-1), then the MapChunk starts, and then in the middle of the MapChunk the output stops and there's the next PreChunk 2 0, and the corresponding MapChunk.
17:20:13 <fizzie> I don't know where the rest of the 2 (-1) MapChunk went. But it breaks right in the middle of a "\2xx" escape code, so it sounds like it's just a printing thing.
17:20:39 <fizzie> IIRC the server sends all PreChunks first, and then MapChunks after that, but that really doesn't sound like it should matter.
17:20:50 <elliott> Oh, right, it's probably just a copy-paste thing then.
17:21:17 <elliott> fizzie: I'll try removing prechunks. You know, Just In Case.
17:23:05 <elliott> fizzie: http://sprunge.us/gTSR Just in case anything sticks out to you immediately...
17:23:48 <fizzie> I'd probably just log a single real-server connection and dump that. You might want to keep a serialize-a-logfile-to-text executable around, anyhow.
17:23:58 <elliott> Yeah, removing prechunks does: nothing.
17:24:20 <elliott> fizzie: Yeah, I know... I probably will just do that.
17:24:33 <elliott> It'll involve mucking around with the buildsystem though. Eurgh.
17:25:06 <fizzie> What's the Point type like?
17:25:29 <fizzie> But in (X, Z, Y) order, right?
17:25:59 * elliott looks at chunkToBlock. Ah.
17:26:03 <elliott> But seriously, should they be?
17:26:12 <fizzie> (X, Y, Z) is more logical.
17:26:45 <elliott> sigh -- All that anticipation and it still doesn't bloody work.
17:30:09 <Vorpal> elliott: still crashing client?
17:30:33 <elliott> Vorpal: No, it crashed the client exactly once.
17:30:37 <elliott> And it wasn't really a crash.
17:30:41 <elliott> It just errored to the console and kept going.
17:35:32 <elliott> fizzie: Mmf, but now I have to name that tool. :/
17:36:08 <fizzie> But it lets you take a dump and look at it. :p
17:37:01 <elliott> That seems like it'd communicate with an Actual Printer.
17:37:15 <elliott> Oh, it should start with mc.
17:37:18 <elliott> To avoid conflicts for global installs.
17:37:38 <fizzie> "deserializearawpacketcapturelogintoaneedlesslyverbosetextualformat".
17:37:43 <Vorpal> elliott: name it "Minecraft Dump Log Formatting & Printing Utility"
17:37:49 <Vorpal> elliott: it is a valid filename on *nix
17:37:55 <Vorpal> elliott: no, the full one I mentioned
17:38:46 <Vorpal> elliott: or "Minecraft Dump Log Inspection, Formatting & Printing Utility"
17:39:13 <Vorpal> ./Minecraft\ Dump\ Log\ Inspection,\ Formatting\ \&\ Printing\ Utility
17:39:16 <Vorpal> elliott: no like that ^
17:39:27 <fizzie> MDLFPU, the floating-point unit that's based on the minimum description length principle. *Somehow*.
17:39:39 <elliott> Vorpal: How about some exclamation marks in there so that double quotes don't work for it with bash?
17:39:46 <Vorpal> elliott: awesome idea!
17:39:57 <elliott> (I wish you could disable that.)
17:40:06 <Vorpal> it is setopt or set or such
17:40:24 <Vorpal> elliott: anyway, add in both single and double quotes in the name
17:40:53 <elliott> How about I just take a forty meg dump. , off of a server, and make that the name of the tool?
17:40:53 <Vorpal> so the file is named: Minecraft "Dump" Log Inspection, Formatting & Printing 'Utility\' or such
17:41:22 <elliott> See now, a filesystem naively implemented on top of @ would support forty meg filenames no problem.
17:41:45 <Vorpal> -H Enable ! style history substitution. This flag is on
17:41:45 <Vorpal> by default when the shell is interactive.
17:41:53 <Vorpal> just do set +H should work
17:42:51 <fizzie> Ooh, that's going to the .bashrc.
17:43:06 <Vorpal> why is that on by default btw?
17:43:08 <elliott> We have suffered in silence.
17:43:09 <fizzie> I had *just* found it from the man bash when you pasted that.
17:43:12 <Vorpal> it seems so utterly stupid
17:43:27 <elliott> Vorpal: Because people think that anything non-interactive is more efficient to use, despite it being a complete duplication of Ctrl+R.
17:43:31 <Vorpal> fizzie: easier way: help shopt | grep hist then help set | grep hist
17:43:41 <elliott> set +histexpand for a more literate version.
17:43:58 <Vorpal> not sure it is the same one
17:44:17 <fizzie> But that's with "set -o".
17:44:21 <Vorpal> elliott: it might be set +o histexpand
17:44:41 <elliott> I guess that's... slightly better than set +H?
17:44:44 <Vorpal> elliott: no the option syntax for set is not very sane
17:45:48 -!- ais523 has joined.
17:45:49 <fizzie> I've never really liked the "+foo is negative, -foo is positive" thing, even though it is... if not common, then at least not unheard-of.
17:47:04 <Vorpal> fizzie: and something like set +o noglob is downright confusing
17:47:12 <Vorpal> that is uh... "enable logging"?
17:48:14 <Vorpal> oh shit. libreoffice update
17:48:18 <Vorpal> this is going to take ages.
17:49:22 <elliott> fizzie: Eurgh, a multiple-executable solution is annoying.
17:49:35 <elliott> I need to make all the current stuff a library and the like.
17:49:41 <elliott> Maybe I'll just add a flag to mchost.
17:49:44 <elliott> mchost --analyse dump or something.
17:50:04 <fizzie> In other news, installed that 'tig' thing.
17:50:24 <fizzie> In yet other news, InfiniBand is such a silly name.
17:50:27 <elliott> The wonderful thing about tiggers is that fizzie's the only one.
17:51:44 <fizzie> (Our faculty cluster's been offline for the last week, because it moved to another physical location; it was supposed to open on Monday, but apparently they need to replace an InfiniBand switch still. Or, well, HP needs.)
17:52:42 -!- derdon has joined.
17:52:42 <Vorpal> <fizzie> In yet other news, InfiniBand is such a silly name. <-- yes, but why did you bring that up now?
17:52:55 -!- Zuu has quit (Ping timeout: 244 seconds).
17:53:03 <fizzie> 'tig' is this ncurses-based git browser thing elliott pointed me at earlier today.
17:53:41 <elliott> It's prettier than gitk. :p
17:53:50 <fizzie> It has a shortlog-like view, a log view, a tree-browser, a blame mode thing, a differying thing and so on.
17:54:20 <elliott> I suppose I should install it if it's the New Thing.
17:54:39 <elliott> fizzie: Did you just grab a tarball/make/install, or?
17:55:01 <Vorpal> well, I'll be offline for a bit. Cya.
17:55:03 <fizzie> Possibly not bleeding edge, again.
17:55:06 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
17:55:22 <elliott> Oh, it seems to be up to March date.
17:55:29 <elliott> Didn't realise it was pacpakcpakcpakpackpakged.
17:55:36 <elliott> http://jonas.nitro.dk/tig/NEWS.html
17:55:40 <elliott> Time to decide HOW VITAL THESE CHANGES ARE.
17:55:57 <elliott> "Add support for blaming diff lines." Fancy.
17:56:20 <fizzie> The graph mode ('g' in main view) is not quite as pretty as gitg's colorful twisty lines, though.
17:56:37 <elliott> Looks fine for mchost, which has exactly 0 divergences. :p
17:56:56 <elliott> So how do you use it as a pager, I wonder.
17:57:22 <elliott> "PAGER=tig git diff" Well, not like that.
17:58:01 <elliott> Oh, as does "git diff | tig".
18:01:15 <fizzie> "tig status" looks reasonable also; it gives a (colorized) "git status" output, except you can select files to see the diffs.
18:01:23 <fizzie> Not sure I can remember to use this thing though.
18:04:22 <fizzie> It's a bit confusing. If I do "tig status", enter shows the diff of the selected file, but 'd' switches to the "diff view" which shows (full-screened) the diff of the latest commit. And if I 'q' out of that back to the diff view of the selected file, it shows in full screen, but the arrows don't scroll it, instead they change the selected file in the (now invisible) "tig status" file list.
18:06:09 -!- Zuu has joined.
18:19:33 <ais523> ah, found it in scrollback
18:22:53 <fizzie> It reminds me of cgdb (a curses gdb frontend) a bit; it was sort-of nifty, and not too shabby, but for some reason I never quite got around to actually habitually using it.
18:23:28 <fizzie> Same goes with GDB's own TUI thing, except that was also buggy as anything.
18:28:26 <elliott> fizzie: Do you know of any file formats I could output in that would let someone browse it as the "flat" (Constructor arg arg arg) format, but click on a given packet to expand it to have names for all those fields? :p
18:28:36 <elliott> Hard to strike a balance between "lol ten fields what" and "oh god every packet takes up ten lines".
18:29:07 <elliott> fizzie: I don't know of a prewritten tool for XML that would offer that presentation.
18:29:34 <elliott> All I can think of is an ordered (key,value) storage with really lax keys; I could store the flat form as the key.
18:31:33 -!- boily has quit (Ping timeout: 245 seconds).
18:32:30 <fizzie> I've seen some XML editors... and doesn't Firefox do it too if you point it at a styleless XML file? (I mean, show it as tree; then you'd just format that as <Constructor foo bar baz> ...values of the fields either as text or as elements... </Constructor>, and a tree-oriented XML tool would just show the constructor and argument names.)
18:32:56 <elliott> <Constructor foo bar baz> will not be valid.
18:33:03 <elliott> Unless <Constructor (Point ...) 99> is valid.
18:33:26 -!- Ngevd has joined.
18:34:18 <fizzie> That sounds like having the field values in there. I was assuming you didn't want to show those. Or did you mean just "I want all data visible but on one line, and then expanded on click".
18:35:09 <elliott> I want it all visible inline, and if you click on it to expand it I want to be able to see the same data, but with field names before it.
18:35:15 <elliott> And maybe even with the values aligned all fancy-like.
18:35:24 <elliott> Hmm, I could just print out some simple HTML
18:36:21 <fizzie> That sounds possible. You can even embed in some scripting to do the show/hide thing if you want.
18:36:36 <Ngevd> I played monopoly today
18:36:47 <fizzie> <Constructor foo="(Point ...)" bar="99"> ... </Constructor> would let you show everything inline, but it'll probably look real clumsy.
18:36:54 <elliott> Yeees, that sounds clumsy.
18:36:58 <elliott> Scripting was what I was thinking of doing.
18:47:17 -!- boily has joined.
19:01:25 <Ngevd> Forgot it was Monday
19:01:37 <Ngevd> Mondays are University Challenge Days
19:02:11 <ais523> is #esoteric the University Challenge Fan Club?
19:02:46 <elliott> ais523: least enthusiastic fanclub ever
19:06:04 -!- Ngevd has quit (Ping timeout: 252 seconds).
19:17:34 -!- sadhu has joined.
19:20:32 <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
19:21:23 <fizzie> fungot: You, start greeting people too.
19:21:24 <fungot> fizzie: it doesn't *use* raw cgi. to my deep fnord i'm only fnord of the job description. it's badly fnord also.
19:21:43 <elliott> `addquote <fungot> fizzie: it doesn't *use* raw cgi. to my deep fnord i'm only fnord of the job description. it's badly fnord also.
19:21:43 <fungot> elliott: i lived in the north east!! i'm having too much fun
19:21:44 <HackEgo> 685) <fungot> fizzie: it doesn't *use* raw cgi. to my deep fnord i'm only fnord of the job description. it's badly fnord also.
19:22:00 <elliott> And why is it mentioning the north east.
19:22:00 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc* jargon lovecraft nethack pa sms speeches ss wp youtube
19:22:15 <sadhu> this is my registered nickname....i am the guy who was working on assembler to bainfuck converter
19:25:07 <elliott> haven't you had three nicks now? :-)
19:27:46 <sadhu> elliott:but they were not registered
19:27:57 <sadhu> this one is final one...as i have registered this
19:28:20 <sadhu> my previous nicks were "dell" & "kaus"
19:29:53 <Gregor> fungot: I will fnord you so hard you fnord your fnord.
19:29:53 <fungot> Gregor: it's a nice number. even numbers are also fnord difficult/ big to implement which is why i do this
19:30:03 <fungot> sadhu: what lisp does with lists... lua does with hash tables.
19:30:21 <sadhu> fungot: Are you a dumb goat ?
19:30:22 <fungot> sadhu: i idly searched for your email and tell me what the fuck
19:30:57 <sadhu> try the #emacs ,fsbot its amazing!
19:31:41 -!- sadhu has changed nick to ikkyu.
19:31:46 -!- ikkyu has changed nick to sadhu.
19:31:49 <fizzie> But it's probably implemented in something really boring.
19:32:05 <elliott> ?hoogle (a -> m b) -> a -> m (a,b)
19:32:21 <elliott> ?undo do x <- a; x' <- f x; return (x,x')
19:32:21 <lambdabot> a >>= \ x -> f x >>= \ x' -> return (x, x')
19:32:25 <elliott> ?pl a >>= \ x -> f x >>= \ x' -> return (x, x')
19:32:25 <lambdabot> liftM2 (>>=) f ((return .) . (,)) =<< a
19:32:51 <elliott> ?pl \line -> unless (null line) (putStrLn (reverseWords line) >> main)
19:32:52 <lambdabot> liftM2 unless null ((>> main) . putStrLn . reverseWords)
19:33:13 <fungot> sadhu: it's been said that boole is the crowning jewel perched precariously upon the perfect peak of programmer prowess, casting its limitless limpid light over the loathesome lands of those who scuff and wallow in the dreary dust of digital depravity and unbounded wilful ignorance of the testament of our lord jesus christ into your life.
19:33:38 <fizzie> fungot: Where do you *get* that stuff?
19:33:39 <fungot> fizzie: i saw the movie of the book deals almost exclusively with sushi, actually... creative.
19:34:43 -!- oerjan has joined.
19:35:09 <fizzie> (The first two letters sound somehow interjectish.)
19:35:38 <fizzie> I considered registering "zzie.fi" as my "primary" domain.
19:36:11 <fizzie> Aye, there's the rub. fi.zzie@zzie.fi?
19:36:45 <elliott> if@zzie.fi would be nice if only @ were .
19:36:53 <elliott> fi@zzie.fi is alright, I have to admit.
19:36:55 <oerjan> heiki.kallasjokki@zzie.fi
19:36:59 <elliott> fizzie: Can you become fazzie?
19:37:06 <fizzie> elliott: If I eat enough.
19:37:44 <elliott> oerjan: i helped someone... twice......... http://hpaste.org/51809
19:37:48 <elliott> i don't think my second helping was good...
19:38:09 <elliott> although actually it reads OK if you had flipped (.) :P
19:38:11 <oerjan> fizzie: all you need to do is become irish and register fi@zz.ie
19:38:29 <elliott> The program 'whois' is currently not installed. You can install it by typing:
19:38:29 <elliott> sudo apt-get install whois
19:38:38 <elliott> Xubuntu, your smallness is lies.
19:39:18 <fizzie> It just keeps telling me what .ie domains should be like.
19:39:31 <elliott> "Not like this", in other words? :-P
19:39:32 -!- sadhu has quit (Quit: Leaving).
19:39:45 <fizzie> Well, I don't know, none of the conditions seem to rule out zz.ie.
19:39:51 <elliott> Try whois sdojflkgslkdfgd.ie
19:40:13 <fizzie> % Not Registered - The domain you have requested (sdojflkgslkdfgd.ie) is not a registered .ie domain name.
19:40:17 <fizzie> It's a different message.
19:40:23 <fizzie> -be less than 66 characters in length, including the '.ie' characters
19:40:23 <fizzie> -not start with a hyphen '-'
19:40:23 <fizzie> -not have a label ending in a hyphen before the '.ie' e.g. 'xyz-.ie'
19:40:23 <fizzie> -not start with 'xn--' which is reserved for IDN usage, e.g. �ire.ie
19:40:24 <fizzie> -contain at least 5 characters, including the three for '.ie'
19:40:26 <fizzie> -have at least one alphabetic character, e.g. ' would be invalid'
19:40:38 <fizzie> But I don't see why zz.ie would be wrong according to those.
19:40:39 <elliott> <fizzie> -have at least one alphabetic character, e.g. ' would be invalid'
19:40:59 <fizzie> Don't ask me. Maybe it's a conversion thing somewhere.
19:41:44 <fizzie> The .fi root allows two-letter registrations, but only when they do not match existing TLDs, and since there are so many of them ccTLDs, quite a lot of them are reserved.
19:41:52 <fizzie> (And all the legal ones are already registered.)
19:42:17 <elliott> There are still one-character domains on sale.
19:42:44 <elliott> I know .st charge exorbitant prices for two-characters.
19:42:57 <elliott> (But seem to reserve all one-chars.)
19:42:59 <Gregor> So the shortest domain you can buy is presumably three characters + a dot?
19:43:16 <elliott> Gregor: I believe so. It is one of my goals to own one of these domains :P
19:43:23 <elliott> Gregor: I was working on a script to narrow down the list.
19:43:24 <oerjan> elliott: null line `unless` do
19:44:06 <fizzie> A friend just registered uv.fi. (All the legal two-character .fi's have been registered for a while now, but that one expired recently. There's three others in the "grace period" about to go, but I don't think I want any of them. The difference between two and three characters isn't all that huge.)
19:44:08 <Gregor> elliott: Not as good as libc.so
19:44:29 <elliott> Anyway, if I get a one-char domain, whooo boy am I gonna sell that thing :P
19:44:30 <fizzie> Just a week or so ago.
19:44:41 <elliott> How much do you think an UP AND COMING URL SHORTENER STARTUP would pay for a four keypress domain
19:44:47 <elliott> The answer is MORE MONEY THAN I NEED.
19:45:10 <Gregor> elliott: Why compete with t.co?
19:45:28 <elliott> Gregor: Can non-twat things even use t.co? :-P
19:45:41 <elliott> And besides, I said "startup", "url shortener"; the brain of the hypothetical reader is not expected to be active.
19:46:03 <elliott> "The link service at http://t.co is only used on links posted on Twitter and is not available as a general shortening service.
19:48:01 <oerjan> elliott: i assume your hpaste got an answer to the question he actually asked.
19:48:16 <elliott> Naw, I answered that in-channel :P
19:48:19 <fizzie> ICANN New gTLD Applicant Guidebook does not seem to specify any minimum length. If they would (except I really don't think they will) accept a single-letter domain, you could own, say, "x".
19:48:38 <elliott> fizzie: There's Ian at n@ai.
19:48:54 <fizzie> Yes, that's pretty close already.
19:49:12 <elliott> I don't think I could turn down elli@tt.
19:49:16 <oerjan> well he's an ai so he doesn't count, obviously he just hacked it
19:49:27 <elliott> Someone wanna give me elli@tt?
19:49:53 <elliott> http://upload.wikimedia.org/wikipedia/commons/4/43/Anguilla-aerial_view_western_portion.jpg
19:50:00 <Phantom_Hoover> Sorry, I slammed the door, I'll have to come off for the rest of the night bye guys
19:50:04 -!- Phantom_Hoover has quit (Quit: Leaving).
19:50:38 <oerjan> elliott: so ian will be the first guy to lose his email due to global warming?
19:50:50 <elliott> guess i will not use this computer
19:51:07 <fizzie> It's just electricity, how dangerous could it be?
19:51:14 <elliott> `addquote <fizzie> It's just electricity, how dangerous could it be?
19:51:16 <HackEgo> 686) <fizzie> It's just electricity, how dangerous could it be?
19:51:18 <elliott> Inspiring words from an inspiring man.
19:51:39 <fizzie> It could be one of those "famous last words" quotations.
19:54:06 <oerjan> "He touched hiiiiiigh voltage" (to the tune of blue velvet)
19:56:24 <Gregor> elliott: Come to think of it, how can your hypothetical new shortener compete with Tweak?
19:57:17 <elliott> Sure, it's a bubble, but then so are URL shorteners.
19:57:47 * elliott tries to generate a looping tweak.
19:57:59 <Gregor> elliott: Is it predictable?
19:58:01 <elliott> IT WILL ONLY TAKE ME 999999999 BILLION YEARS
19:58:15 <elliott> I mean it can't be a pure hash
19:58:18 <elliott> Because people can register .tks :P
19:58:29 <Gregor> GOD Tweak is brilliant.
19:58:52 <elliott> I want to visit Tokelau and tell them what crimes are being committed in their name.
19:59:05 <elliott> Whities: Literally the worst.
19:59:25 <elliott> First they come and take your land, then they give you internet in exchange for your domain then they fucking hand out your fucking domains as fucking shortened URLs.
19:59:27 <oerjan> <elliott> Deprecated: "Please import from Control.Monad.ST.Unsafe instead; This will be removed in the next release"
19:59:37 <oerjan> obviously needed for SafeHaskell
19:59:56 <elliott> Why on earth has subpixel rendering regressed in this version of Ubuntu?
20:00:01 <elliott> fizzie: How's the subpixels on the Debian side of camp :P
20:04:32 <oerjan> <elliott> http://hackage.haskell.org/package/vault Hey, I am a pubamalished developamator.
20:04:39 -!- augur has quit (Remote host closed the connection).
20:04:49 <elliott> It's either slow or something went wrong.
20:04:55 <oerjan> maybe it's done in batches
20:05:20 <elliott> https://raw.github.com/HeinrichApfelmus/vault/master/src/Data/Vault.hs
20:05:20 <elliott> https://raw.github.com/HeinrichApfelmus/vault/master/src/Data/Vault/ST.hs
20:05:23 <elliott> just ignore the actual code :-)
20:07:24 <oerjan> elliott: i fail to detect the "persistent" part
20:07:44 <elliott> oerjan: it is the _other_ kind of persistence
20:07:52 <elliott> http://en.wikipedia.org/wiki/Persistent_data_structure
20:08:08 <elliott> i.e. immutable, based on transforming
20:08:28 <elliott> rather than an STArray or whatever
20:09:04 <oerjan> elliott: aha. does this mean you can implement STT in this?
20:09:38 <elliott> "Somewhat interestingly, I discovered, hacking on my own version (which all these changes a backported from) before this repository existed, that Vault s is actually isomorphic to ST s ()! Key s a becomes STRef s (Maybe a), and insert looks like insert k x m = m >> writeSTRef k (Just x). lookup is lookup k m = unsafeRunST (m >> readSTRef r), where unsafeRunST :: ST s a -> a (implementable as unsafePerformIO . unsafeSTToIO). Unfortunately, I don't
20:09:38 <elliott> believe this implementation is very efficient; it has to run every STRef operation on every single lookup."
20:09:39 <elliott> https://github.com/HeinrichApfelmus/vault/pull/1
20:09:55 <elliott> so basically yes, you can use Vault as the state of the STRefs
20:10:02 <elliott> which become pre-filled Keys
20:10:20 <elliott> STT is really not problematic at all, just not really efficient
20:12:02 -!- Ngevd has joined.
20:12:11 <elliott> pikhq: I think I might understand enough about @'s memory model to start implementing it; apart from the mammoth task of making the GC work well, there's only one obstacle I can think of.
20:14:12 -!- GreaseMonkey has joined.
20:14:31 <elliott> pikhq: Basically, there needs to be a mapping from the abstract virtual address to location on disk.
20:14:37 <elliott> Because when the pointer is dereferenced... you gotta fetch it.
20:14:45 <elliott> It's simply a matter of microoptimising that lookup.
20:15:10 <pikhq> I'm not sure how it's done, but I know this is actually *precisely* what is done with swap.
20:16:06 <pikhq> So, in principle this should be doable with fairly standard techniques.
20:16:54 <elliott> pikhq: It's also basically a standard filesystem...
20:17:09 <elliott> pikhq: Address 0a9df9 --> file /0/a/9/d/f/9
20:17:29 <elliott> Except that the maximum number of files in each directory is fixed and tiny, as are the names of those files.
20:17:34 <elliott> And there's no metadata to store.
20:17:36 <elliott> So it's quite a lot simpler.
20:18:07 <pikhq> So, more or less you'd have a page table on disk.
20:19:11 <pikhq> Mmkay. Yeah, thinking about it more this is genuinely mundane kernel implementation stuff.
20:19:29 <elliott> Yep... can you tell I don't have much traditional kernel dev experience? :-)
20:19:32 -!- BeholdMyGlory has quit (Remote host closed the connection).
20:19:37 <pikhq> Given that I have more, yes. :P
20:19:52 <elliott> http://en.wikipedia.org/wiki/Extended_Page_Table I don't know what this is, but it looks snazzy.
20:19:53 <pikhq> And my fanciest kernel is only technically one.
20:20:38 <pikhq> Oh, that. It's a scheme to do paging in ring 3.
20:21:37 <elliott> pikhq: I was also thinking that I forgot to neglect something important in my allocator design...
20:21:45 <elliott> pikhq: Namely that every @ object is immutable.
20:21:56 <elliott> So any change of a page won't be /mutating/ an object, it'll be creating a new one.
20:22:08 <elliott> (It might be creating a new one at the exact same location an old one used to be, but still.)
20:22:59 <pikhq> elliott: Well, immutability probably makes your GC a *little* bit easier.
20:23:17 <elliott> pikhq: It also makes it incredibly vital.
20:23:32 <elliott> GC isn't just "that thing that stops things leaking memory", it's "the thing that lets me run a program for more than two seconds without running out of RAM".
20:25:14 <pikhq> Oh, you can run for more than two seconds without running out of RAM. However, you'll start thrashing like hell, because @ doesn't maintain a RAM/disk dichotomy. :)
20:25:40 <Gregor> It'll take twelve seconds to run out of disk.
20:25:41 -!- Ngevd has quit (Read error: Connection reset by peer).
20:25:55 <pikhq> Gregor: More than that.
20:26:00 <pikhq> Gregor: Significantly more.
20:26:06 <pikhq> Gregor: Disk is *slow*.
20:26:20 <elliott> I like how @ is designed for a disk that can be written to every five seconds constantly, but also one with SSD-style random access times.
20:26:26 <pikhq> Gregor: 12 seconds, then.
20:26:34 <elliott> Can we just saw a magnetic disk and an SSD in half and then glue them together?
20:27:28 <pikhq> elliott: Well, if you're never GC'ing, you'll only perform a write to each disk block once...
20:27:41 <pikhq> And once that's done you're done.
20:27:49 <elliott> pikhq: ITT: Not even a vaguely useful model of what @ will do :P
20:28:20 <pikhq> Will if you don't GC. Hope you only ever need a few minutes of compute time!
20:28:33 <elliott> I love how @ becomes much MORE complex by REMOVING mutation.
20:28:40 <elliott> Or rather, making non-mutation the common thing :P
20:29:22 -!- Phantom_Hoover has joined.
20:29:30 <elliott> It is Phantom_Hoover's slammed door's ghost.
20:29:45 <oerjan> <elliott> ?hoogle (a -> m b) -> a -> m (a,b)
20:30:07 -!- plycke has joined.
20:30:07 -!- plycke has quit (Excess Flood).
20:30:09 <elliott> ?hoogle arr a b -> arr a (a,b)
20:30:10 <lambdabot> Control.Arrow (&&&) :: Arrow a => a b c -> a b c' -> a b (c, c')
20:30:10 <lambdabot> Data.Graph.Inductive.Query.MaxFlow maxFlowgraph :: (DynGraph gr, Num b, Ord b) => gr a b -> Node -> Node -> gr a (b, b)
20:30:11 <oerjan> that would be so much easier if monads were also arrows. i think.
20:30:13 <elliott> oerjan: What a massive surprise
20:30:17 <pikhq> Incidentally, non-mutable on-disk structure is not as weird as you might think. Many recent filesystems actually COW each block.
20:30:18 <elliott> It's an arrow function on Kleisli
20:30:21 <elliott> I WOULD NEVER HAVE GUESSED
20:30:23 <pikhq> For instance, ZFS and btrfs.
20:30:42 <elliott> pikhq: Sharing is going to be very important to @.
20:30:50 <elliott> pikhq: It's better if you can /avoid/ GCing by simply building deduplicatively.
20:30:57 <elliott> pikhq: As a bonus, you get versioning.
20:30:58 -!- GreaseMonkey has quit (Quit: The Other Game).
20:32:10 <oerjan> :t \f x -> f x >>= (liftM $ (,) x)
20:32:12 <lambdabot> forall a1 (m :: * -> *) a. (Monad m) => (a -> m (m a1)) -> a -> m (a, a1)
20:32:46 <oerjan> :t \f x -> f x >>= (flip $ (,) x)
20:32:48 <lambdabot> Couldn't match expected type `a -> b'
20:32:48 <lambdabot> Probable cause: `(,)' is applied to too many arguments
20:33:28 <oerjan> :t \f x -> (,) x `liftM` f x
20:33:29 <lambdabot> forall a a1 (m :: * -> *). (Monad m) => (a -> m a1) -> a -> m (a, a1)
20:33:47 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: liftM`?: not found
20:34:02 <lambdabot> Illegal tuple section: use -XTupleSections
20:34:09 <lambdabot> forall a a1 (f :: * -> *). (Functor f) => (a -> f a1) -> a -> f (a, a1)
20:34:09 <oerjan> elliott: i didn't want to mix Functor into the type
20:34:15 <elliott> oerjan: well it should be functor really...
20:34:23 <oerjan> elliott: oh right it is
20:34:34 <lambdabot> forall a (f :: * -> *) a1. (Functor f) => (a1 -> f a) -> a1 -> f (a1, a)
20:34:39 <elliott> there, now _nobody_ can understand it
20:35:01 <elliott> the lesson to be learnt is that explicit tuple programming is ugly
20:35:05 <elliott> and the whole point of applicative style is to avoid it
20:35:31 <oerjan> :t (<$>) (<$>) (,) <*>
20:35:33 <lambdabot> parse error (possibly incorrect indentation)
20:35:45 <oerjan> :t ((<$>) (<$>) (,) <*>)
20:35:46 <lambdabot> forall a (f :: * -> *) a1. (Functor f) => (a1 -> f a) -> a1 -> f (a1, a)
20:36:15 <elliott> it's an obvious transformation of above
20:36:18 <elliott> not sure what surprises you
20:36:29 <lambdabot> forall a (f :: * -> *) a1. (Functor f) => (a1 -> f a) -> a1 -> f (a1, a)
20:36:54 <lambdabot> forall a (f :: * -> *) a1. (Functor f) => (a1 -> f a) -> a1 -> f (a1, a)
20:37:14 <pikhq> Better without spaces.
20:37:19 <pikhq> (((<$>)<$>(,))<*>)
20:37:25 <pikhq> Now *there's* a function to be feared.
20:37:33 <lambdabot> parse error (possibly incorrect indentation)
20:37:37 <lambdabot> forall a (f :: * -> *) a1. (Functor f) => (a1 -> f a) -> a1 -> f (a1, a)
20:37:45 -!- augur has joined.
20:38:15 <lambdabot> forall a (f :: * -> *) a1. (Functor f) => (a1 -> f a) -> a1 -> f (a1, a)
20:38:19 <lambdabot> forall a (f :: * -> *) a1. (Functor f) => (a1 -> f a) -> a1 -> f (a1, a)
20:38:38 <monqy> anyway why does this use tuples anyway
20:38:49 -!- plycke has joined.
20:38:49 -!- plycke has quit (Excess Flood).
20:38:55 <oerjan> <elliott> oerjan: why the WHAT <-- WHAT DO YOU MEAN IT'S NOT CODE
20:41:13 <lambdabot> forall (m :: * -> *) a b (f :: * -> *). (Monad m, Functor f, Functor m) => m (a -> b) -> m (f a) -> m (f b)
20:42:08 <oerjan> hm that liftA2 is in the (x ->) monad isn't it
20:42:47 -!- plycke has joined.
20:42:47 -!- plycke has quit (Excess Flood).
20:42:51 <elliott> the (a ->) applicative, more precisely
20:42:57 <elliott> oh, did we just avoid spmabots
20:43:25 <oerjan> :t (((<<$>)Prelude..(,))<*>)
20:43:31 <oerjan> :t (((<$>)Prelude..(,))<*>)
20:43:32 <lambdabot> forall a (f :: * -> *) a1. (Functor f) => (a1 -> f a) -> a1 -> f (a1, a)
20:43:47 <lambdabot> forall a (f :: * -> *) a1. (Functor f) => (a1 -> f a) -> a1 -> f (a1, a)
20:44:14 <lambdabot> forall a (f :: * -> *) a1. (Functor f) => (a1 -> f a) -> a1 -> f (a1, a)
20:44:20 <elliott> it shall forever be known as the "breasts and kirby" operator...
20:44:43 -!- boily has quit (Ping timeout: 240 seconds).
20:55:25 <oerjan> `addquote <fungot> sadhu: it's been said that boole is the crowning jewel perched precariously upon the perfect peak of programmer prowess, casting its limitless limpid light over the loathesome lands of those who scuff and wallow in the dreary dust of digital depravity and unbounded wilful ignorance of the testament of our lord jesus christ into your life.
20:55:25 <fungot> oerjan: sad things like jews in germany in the extra clauses which require blocks, you need to install
20:55:26 <HackEgo> 687) <fungot> sadhu: it's been said that boole is the crowning jewel perched precariously upon the perfect peak of programmer prowess, casting its limitless limpid light over the loathesome lands of those who scuff and wallow in the dreary dust of digital depravity and unbounded wilful ignorance of the testament of our lord
20:56:06 <elliott> <fungot> sadhu: it's been said that boole is the crowning jewel perched precariously upon the perfect peak of programmer prowess, casting its limitless limpid light over the loathesome lands of those who scuff and wallow in the dreary dust of digital depravity and unbounded wilful ignorance of [date time]
20:56:07 <fungot> elliott: er... o?)) for instance, the concept of dense death, not dense enough death resembles a ca engine ran out of humour last night.
20:57:37 <oerjan> wait why _did_ HackEgo cut that, it's reply isn't actually longer
20:57:59 <oerjan> `addquote <fungot> sadhu: it's been said that boole is the crowning jewel perched precariously upon the perfect peak of programmer prowess, casting its limitless limpid light over the loathesome lands of those who scuff and wallow in the dreary dust of digital depravity and unbounded wilful ignorance of the testament of our lord jesus christ into your life.
20:57:59 <fungot> oerjan: et tu, brute? ( it has gambit 3; i just haven't seen anything similar since stopped saying " leapt") ( url-encode " foo/ bar/ y/g and
20:58:00 <HackEgo> 687) <fungot> sadhu: it's been said that boole is the crowning jewel perched precariously upon the perfect peak of programmer prowess, casting its limitless limpid light over the loathesome lands of those who scuff and wallow in the dreary dust of digital depravity and unbounded wilful ignorance of the testament of our lord
20:58:20 <HackEgo> <fungot> sadhu: it's been said that boole is the crowning jewel perched precariously upon the perfect peak of programmer prowess, casting its limitless limpid light over the loathesome lands of those who scuff and wallow in the dreary dust of digital depravity and unbounded wilful ignorance of the testament of our lord jesus
20:58:49 <oerjan> `run tail -1 quotes | sed 's/^................................//'
20:58:50 <HackEgo> hat boole is the crowning jewel perched precariously upon the perfect peak of programmer prowess, casting its limitless limpid light over the loathesome lands of those who scuff and wallow in the dreary dust of digital depravity and unbounded wilful ignorance of the testament of our lord jesus christ into your life.
20:59:07 <oerjan> ok it _is_ all there in the database.
21:00:00 <elliott> oerjan: yes but come on.....
21:00:06 <elliott> btw you could have used .{n}
21:00:08 <oerjan> Gregor: WE THINK HACKEGO CUTS A LITTLE CLOSE
21:00:43 -!- boily has joined.
21:00:57 <oerjan> elliott: somehow i find {n} hard to recall since i rarely use it
21:01:40 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc* jargon lovecraft nethack pa sms speeches ss wp youtube
21:02:21 <monqy> i wonder where it found the whole jewel perched percariously upon the perfect peak of programmer prowess thing
21:02:34 <monqy> and what the context was
21:02:34 <elliott> it made it up with its imagination.......
21:02:42 <elliott> it needs a dramatic reading that
21:02:58 <oerjan> elliott: i just think that as long as it is in the database, HackEgo can be fixed.
21:04:15 <elliott> oerjan: unless it is really too long.......
21:04:55 <oerjan> elliott: but it isn't, HackEgo's quote reply starts to the left of my `addquote
21:05:05 <oerjan> i mean, the general adjustment
21:06:01 <oerjan> and my *!*@* string is also longer
21:08:23 <oerjan> so there's no reason why HackEgo needs to cut it off when i don't.
21:09:42 <elliott> oerjan: note that you need to account for like three bytes of difference due to server crap
21:09:50 <elliott> and HackEgo is longer than oerjan
21:10:04 <elliott> although your hostname should balance that out
21:10:53 <oerjan> elliott: the amount that HackEgo is longer is balanced out by 687) being shorter than `addquote
21:11:07 <elliott> your MOM is shorter than addquote or something
21:11:17 <elliott> i forgot you're on my mom joke blacklist
21:11:25 -!- calamari has joined.
21:16:55 <oerjan> google's occasional messing up of IE's history is getting eerie - i am sure it was at least _weeks_ ago i did that google search.
21:17:27 <elliott> I BET DDG DOESN'T DO THAT</troll><troll>
21:18:08 <oerjan> well, istr the iwc forum also does, so it's probably not strictly a google bug.
21:18:46 <oerjan> but it's the first time it came up with a page that i clearly cannot recall from the same IE session.
21:20:51 <elliott> oerjan: http://hackage.haskell.org/package/vault has docs now
21:21:21 <oerjan> elliott: well i already read the files you linked :P
21:22:12 <elliott> oerjan: hope you enjoyed the implementation :DDD
21:22:44 <elliott> dude they're like forty lines :P
21:23:27 -!- tiffany has joined.
21:24:24 -!- elliott has quit (Quit: Leaving).
21:25:10 <monqy> bizarro world elliott
21:25:27 <monqy> can only make ridiculous faces
21:26:26 <Gregor> I thought we concluded that tiffany was a person with bot-like tendencies.
21:40:53 -!- derdon has quit (Remote host closed the connection).
21:41:41 <Phantom_Hoover> oerjan, meanwhile, has begun his transformation into a mooshroom.
21:43:53 <olsner> things that go *chirp*: mushrooms, chipmunks
21:45:29 <fizzie> And signal processing folks.
21:48:02 <oerjan> and here i thought it was the sound of crickets.
21:53:55 -!- pumpkin has joined.
21:54:03 <monqy> the sound of tumbleweeds, no?
21:54:55 * oerjan notes reddit's r/particlephysics is not very active.
21:55:17 <oerjan> only two posts about the neutrinos
21:56:07 <fizzie> All the participants have tragically been annihilated in redditor-antiredditor collisions.
21:56:10 -!- copumpkin has quit (Ping timeout: 260 seconds).
21:56:20 -!- pumpkin has changed nick to copumpkin.
21:56:22 <oerjan> fizzie: sounds plausible.
21:56:47 <fizzie> It's an occupational hazard for a particle physicist.
21:56:59 <oerjan> copumpkin might meet a similar destiny if his nicks ever touch
21:57:32 <pikhq> I don't think that there's anything about impacts between objects and coöbjects.
21:57:58 <oerjan> i'm sure co- includes all forms of duality.
21:58:37 <oerjan> when you combine vectors and covectors the wrong way, all you end up with is a single number.
21:59:49 <oerjan> and if you do it the other way, you suddenly find yourself in the matrix.
22:00:31 <pikhq> Seems to me both numbers and matrices are members of vector spaces, and thus vectors. So I'm not entirely sure why that's relevant. :P
22:01:38 <HackEgo> 586) <Phantom_Hoover> I gave her the Noblesse Oblige rooms. <Phantom_Hoover> She was happy with them even when they were behind 2 locked doors and a floodgate and full of water.
22:02:49 <oerjan> pikhq: but numbers are one-dimensional. he'd have most of his personality wiped out!
22:03:36 <pikhq> That would be quite sad, wouldn't it?
22:03:59 <oerjan> Phantom_Hoover: i take it this dorf lady was sort of crazy and needed to be kept away from people.
22:04:38 <fizzie> You'll be... at the OUTER LIM^H^H^HPRODUCTS.
22:04:39 <oerjan> or wait, do you mean she couldn't actually get to her rooms
22:05:50 <oerjan> Phantom_Hoover: also didn't you ground yourself preemptively just a while ago?
22:06:19 <Phantom_Hoover> <oerjan> Phantom_Hoover: i take it this dorf lady was sort of crazy and needed to be kept away from people.
22:06:50 <Phantom_Hoover> I built the rooms to drown annoying nobles and I'd just used them on the mayor.
22:07:24 <oerjan> i take it her stay was somewhat short.
22:10:37 -!- Phantom__Hoover has joined.
22:10:57 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
22:11:04 <Phantom__Hoover> oerjan, actually, it wasn't, since all her demands were for adamantine stuff so they were fulfilled just by kitting out the military.
22:13:11 <Phantom__Hoover> I think she died when I handed the fort over to elliott and he cocked it all up, though.
22:14:38 -!- calamari has quit (Quit: Leaving).
22:24:05 -!- CakeProphet has joined.
22:28:13 -!- sllide has quit (Ping timeout: 248 seconds).
22:31:00 -!- Phantom__Hoover has quit (Quit: Leaving).
22:54:30 -!- calamari has joined.
22:57:32 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:58:34 -!- pikhq has quit (Remote host closed the connection).
22:58:52 -!- pikhq has joined.
23:01:23 -!- Patashu has joined.
23:08:29 -!- augur has quit (Remote host closed the connection).
23:10:39 -!- CakeProphet has quit (Ping timeout: 252 seconds).
23:26:09 -!- copumpkin has joined.
23:28:50 -!- calamari has quit (Ping timeout: 252 seconds).
23:36:29 -!- Jafet has quit (Quit: Leaving.).
23:59:43 -!- CakeProphet has joined.
23:59:51 -!- CakeProphet has quit (Changing host).
23:59:51 -!- CakeProphet has joined.