00:00:57 * pikhq should write something that will display a plain text file well.
00:01:29 -!- cpressey has changed nick to cpressey_away.
00:01:30 <AnMaster> I should write map, foldl, filter and so on for C hm
00:01:36 <pikhq> Y'know what? Actually, screw it.
00:01:50 <pikhq> I should feed it all to TeX.
00:02:08 * pikhq imagines HTML->TeX
00:03:02 <aliseiphone> pikhq: PrinceXML is an HTML to PDF thing written in the prolog esque purely functional Mercury. Apparently it well.
00:03:16 <aliseiphone> So there's a good HTML typesetter for you.
00:03:48 <aliseiphone> Closed source and costs lots for commercial use though.
00:05:56 <pikhq> Free for non-commercial use...
00:10:32 * pikhq wishes Project Gutenberg's text was not stuck into ASCII.
00:10:44 <pikhq> With the straight quotes...
00:10:58 <pikhq> Makes it more of a pain to force into TeX.
00:11:34 <Ilari> The only non-obsolete character set for transport encoding is UTF-8. :-)
00:11:49 <AnMaster> pikhq, as long as there are no nested quotes there should be no issues
00:12:37 <pikhq> AnMaster: Still...
00:12:55 <pikhq> Basically I'll need to write a freaking parser.
00:13:12 <aliseiphone> pikhq: I have a beautifully typeset The Metamorphosis.
00:13:38 * pikhq looks at Wikisource to see if it's less painful.
00:14:28 <pikhq> *Still* straight quotes there.
00:15:18 <pikhq> Also annoying: One needs to essentially manually handle chapters and headings.
00:16:55 -!- benuphoenix has joined.
00:17:00 <pikhq> aliseiphone: So, how'd you manage that typesetting?
00:17:33 <AnMaster> pikhq, why do straight quotes hurt?
00:17:45 <AnMaster> pikhq, Swedish use the same slanted quotes for both opening and closing for example
00:17:47 <pikhq> AnMaster: For input to TeX.
00:17:56 <AnMaster> pikhq, well you can escape the quotes
00:18:07 <benuphoenix> Am I wanted here? If not, I'll leave on my own.
00:18:16 <pikhq> benuphoenix: You're not *un*wanted.
00:22:04 <benuphoenix> i accidently returned to my former nature as "destroyer of conversations" earlier today on a different channel, different network, so I don't wanna make the same mistakes here.
00:23:55 <AnMaster> doesn't sound that esoteric either. A bit messy at most
00:24:25 <AnMaster> write one in C then compile it to bf with gcc-bf
00:25:15 <AnMaster> considering that hello world from gcc-bf is over 1 MB, that should be fun
00:26:38 <AnMaster> benuphoenix, runlength encoded that is
00:27:06 * Sgeo cuts and pastes some code
00:27:10 <AnMaster> of course hello world can be a lot shorter
00:27:26 <EgoBot> 112 ++++++++++[>+++++++>+>++++++++++>+++<<<<-]>++.>>+.+++++++..+++.>++.<++++++++.--------.+++.------.--------.>+.<<. [542]
00:28:28 -!- MigoMipo has quit (Remote host closed the connection).
00:28:39 <EgoBot> 39 ++++++++++[>++++++++++>+>><<<<-]>---.>. [27]
00:29:11 <EgoBot> 38 +++++++++++[>+++++++++>+>><<<<-]>-.>-. [39]
00:29:28 <Sgeo> Java enforces one public class per file?
00:29:37 <AnMaster> benuphoenix, this uses some genetic algorithm building on the basic for <initial loop counter> <loop to generate multiples of that counter> <output plus +/->
00:29:39 <Sgeo> That's one rule that I should have stuck to here
00:30:03 <Sgeo> AnMaster, I may be entirely mistaken
00:30:38 <AnMaster> benuphoenix, a human writng the code my hand will likely be more efficient. Oh and it appends a newline at the end
00:32:27 <pikhq> aliseiphone: Ohmygoodness enabling historical ligatures produces awesome output.
00:34:16 -!- Wamanuz4 has quit (Ping timeout: 276 seconds).
00:35:58 <aliseiphone> Also, I used the Gutenberg Metamorphosis and manually did the quotes.
00:36:26 <pikhq> And how'd you get ahold of Garamond?
00:39:21 <benuphoenix> i don't know why i didn't have one installed on this machine...
00:44:13 <benuphoenix> i mean, which is better: hs-brainfuck or nbfc?
00:46:58 <pikhq> aliseiphone: Anyways. XeTeX is absolutely wonderful.
00:49:42 <pikhq> benuphoenix: Should all be reasonable.
00:52:21 <pikhq> aliseiphone: How so?
00:53:11 <aliseiphone> See microtype package for all the fancy stuff xetex can do without it. Therefore xetex is basically only good for Unicode, not typography.
00:53:35 <pikhq> Microtype makes TeX handle Opentype fonts?
00:53:37 <aliseiphone> TeX proper knows more about it's fonts rather than xetex since it "natively" supports them
00:54:10 <aliseiphone> Meanwhile, http://en.m.wikipedia.org/wiki/Ted_(word_processor)
00:54:30 -!- aliseiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info).
00:56:19 -!- jillsmitt_ has quit (Remote host closed the connection).
00:58:48 -!- FireFly has quit (Quit: swatted to death).
00:59:12 -!- jillsmitt has joined.
00:59:35 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:01:13 -!- MizardX has quit (Ping timeout: 276 seconds).
01:14:45 -!- SphinX777 has joined.
01:16:32 -!- SphinX777 has quit (Client Quit).
01:20:17 <EgoBot> 39 ++++++++++[>++++++++++>+>><<<<-]>---.>. [52]
01:20:53 -!- Oranjer has joined.
01:22:08 -!- sftp has quit (Remote host closed the connection).
01:23:23 -!- iamcal has quit.
01:31:03 -!- cal153 has joined.
01:39:56 -!- nooga has quit (Ping timeout: 248 seconds).
01:40:58 <Sgeo> benuphoenix, did you get my msg?
01:42:49 -!- augur has quit (Remote host closed the connection).
01:43:01 -!- augur has joined.
01:49:12 -!- benuphoenix has quit (Quit: leaving).
02:14:53 -!- Mathnerd314 has joined.
02:49:55 -!- oerjan has joined.
02:57:27 -!- augur has quit (Remote host closed the connection).
02:57:33 -!- augur has joined.
03:43:59 -!- Oranjer has left (?).
03:55:10 -!- Phantom_Hoover has joined.
03:58:40 -!- Zuu has quit (Ping timeout: 276 seconds).
04:05:26 -!- Zuu has joined.
04:05:26 -!- Zuu has quit (Changing host).
04:05:26 -!- Zuu has joined.
04:09:45 -!- GreaseMonkey has joined.
04:10:30 <Gregor> If somebody was to go back over my profile pictures, they would have to conclude that I have for some reason taken up the habit of wearing pink ties every day.
04:10:54 -!- oerjan has quit (Quit: Lost terminal).
04:36:20 <Phantom_Hoover> Random technical question: How do OSes detect things like attempts to access illegal addresses?
04:39:09 <pikhq> Phantom_Hoover: Page fault.
04:39:33 <pikhq> You access an unmapped page, the kernel gets told, the kernel discovers it's a page that's not supposed to be mapped, SIGSEGV.
04:40:14 <pikhq> And yes, this means if you access an unallocated address that *happens* to be mapped, the kernel doesn't notice.
04:41:47 * pikhq comes to the conclusion that there is no such thing as a good computer typesetting tool
04:42:03 <pikhq> TeX is the closest, but it's not perfect for non-Western scripts.
04:50:57 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds).
04:56:26 <Gregor> I think I actually need to record another WIPP.
04:56:28 <Gregor> I've added like a minute.
04:57:28 -!- sebbu2 has joined.
04:58:11 -!- sebbu has quit (Ping timeout: 245 seconds).
04:58:11 -!- sebbu2 has changed nick to sebbu.
04:59:01 -!- Mathnerd314 has quit (Ping timeout: 245 seconds).
05:00:46 -!- Mathnerd314 has joined.
05:40:32 -!- coppro has joined.
05:42:38 <Sgeo> Once, when my computer was not working, I remember reading that some people almost consider emacs to be an OS
05:42:55 <Sgeo> I was wondering if I could just put the emacs disc in and boot from there
05:43:06 <Sgeo> [I was a kid back then, and have never heard of a LiveCD]
05:43:33 <Sgeo> !bf ++++[>++++[>++++<-]<-]>>+.
05:44:14 <pikhq> Emacs is very much an OS.
05:45:09 -!- aschueler has joined.
05:46:55 -!- coppro has quit (Remote host closed the connection).
05:49:59 -!- coppro has joined.
06:06:36 -!- Wamanuz4 has joined.
06:12:04 <pikhq> "The common law of England, insofar as it is not repugnant to the principles of the Bill of Rights and Constitution of this Commonwealth, shall continue in full force within the same, and be the rule of decision, except as altered by the General Assembly." -- Virginia constitution.
06:12:12 <pikhq> English law applies in Virginia.
06:16:27 -!- Gregor has quit (Ping timeout: 252 seconds).
06:37:04 <pikhq> For a few centuries that's all the law there was.
06:39:22 <pikhq> Okay, okay. And the king's word.
06:40:52 <coppro> what I find interesting, though
06:41:05 <coppro> is that it does not specify a temporal restriction
06:41:27 <coppro> meaning that one could use modern English court cases in Virginia
06:41:38 <coppro> (but not, apparently, Scottish ones)
06:41:58 <pikhq> Scotland doesn't have common law, anyways.
06:42:06 <pikhq> (they run a civil law system)
06:43:02 <pikhq> I find the legal framework under which the UK runs very, very odd.
06:43:55 <coppro> which may be a reason for the oddness
06:44:16 <pikhq> I should specify: the one that makes it a United Kingdom, rather than nations sharing a monarch.
06:45:21 <coppro> I wonder if England will devolve
06:45:53 <coppro> honestly, the UK needs major constitional reform
06:46:14 <pikhq> Oh. Partly did. See how England does not have its own parliament.
06:46:40 <coppro> I wonder if England will get its own parliament
06:47:10 <pikhq> And yeah, the UK needs major constitutional reform.
06:47:15 <pikhq> Such as "having a constitution".
06:47:54 <coppro> while we're at it, fixing the Succession Act would be peachy
06:49:02 <coppro> that would be pretty incredible to do, though
06:49:18 <pikhq> Hmm. If a *court* in the UK were to randomly declare that not having gay marriage were against the US constitution, I think that would legalise gay marriage in Virginia.
06:49:32 <coppro> pikhq: Nah, that's not common law
06:49:37 <coppro> just interpretation of statue law
06:50:01 <coppro> (common law is stupid)
06:50:15 <pikhq> Common law is crazier than that.
06:50:52 <coppro> common law is law that was made up by the courts before statutes were invented, then reinterpreted and remodeled into something vaguely consistent
06:50:53 <pikhq> Okay, okay. Randomly declare that the punishment for being a Virginian in Virginia shall be a fine of 1 pound per second. :P
06:58:33 -!- coppro has quit (Quit: brb).
06:58:51 -!- jillsmitt has quit (Remote host closed the connection).
06:59:39 -!- coppro has joined.
07:02:54 * Sgeo watches his Reddit alt hit his head on the spam filter
07:05:53 -!- jillsmitt has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:24:26 -!- augur has quit (Ping timeout: 245 seconds).
08:26:10 -!- augur has joined.
09:19:32 -!- augur has quit (Remote host closed the connection).
09:38:08 -!- aschueler has quit (Quit: leaving).
09:45:47 -!- jillsmitt has quit (Ping timeout: 260 seconds).
10:05:56 -!- tombom has joined.
10:12:45 -!- cal153 has quit (*.net *.split).
10:12:46 -!- mycroftiv has quit (*.net *.split).
10:12:48 -!- dbc has quit (*.net *.split).
10:12:55 -!- Ilari has quit (*.net *.split).
10:14:39 -!- nooga has joined.
10:15:43 -!- mycroftiv has joined.
10:17:12 -!- dbc has joined.
10:19:04 -!- cal153 has joined.
10:19:04 -!- Ilari has joined.
10:20:09 -!- MigoMipo has joined.
10:30:42 -!- Slereah has quit (Ping timeout: 260 seconds).
10:35:53 -!- Slereah has joined.
10:57:14 -!- coppro has quit (Remote host closed the connection).
11:16:38 -!- BeholdMyGlory has joined.
11:23:07 -!- GreaseMonkey has quit (Quit: I'm using NO SCRIPT WHATSOEVER - Download it at file:///dev/null).
11:30:43 -!- jillsmitt has joined.
11:44:59 -!- MigoMipo has quit (Read error: Connection reset by peer).
11:49:29 -!- MizardX has joined.
11:56:27 -!- MigoMipo has joined.
12:13:38 -!- jillsmitt_ has joined.
12:14:18 -!- jillsmitt has quit (Ping timeout: 246 seconds).
12:14:40 -!- jillsmitt_ has quit (Client Quit).
12:15:10 -!- jillsmitt has joined.
12:35:47 -!- ais523 has joined.
13:01:40 -!- ais523 has quit (Read error: Connection reset by peer).
13:02:55 -!- ais523 has joined.
13:27:47 -!- FireFly has joined.
13:47:21 -!- jillsmitt has quit (Remote host closed the connection).
14:00:51 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
14:03:28 -!- Mathnerd314 has joined.
14:08:03 -!- Mathnerd314 has quit (Ping timeout: 252 seconds).
14:17:59 -!- augur has joined.
14:25:02 -!- jillsmitt has joined.
14:43:06 -!- Gregor-L has joined.
15:04:14 -!- kar8nga has joined.
15:14:53 -!- Gregor-L has changed nick to Gregor.
15:30:16 -!- ais523 has quit (Ping timeout: 245 seconds).
15:35:24 -!- augur has quit (Remote host closed the connection).
15:35:39 -!- augur has joined.
15:38:32 -!- relet has joined.
15:38:59 -!- Mathnerd314 has joined.
15:42:23 -!- ais523 has joined.
15:47:17 -!- augur has quit (Remote host closed the connection).
15:47:28 -!- augur has joined.
15:49:15 -!- nooga has quit (Ping timeout: 252 seconds).
16:08:20 -!- sebbu has quit (Quit: reboot).
16:12:48 -!- ais523 has quit (Read error: Connection reset by peer).
16:14:03 -!- ais523 has joined.
16:14:18 -!- Gregor has quit (*.net *.split).
16:21:39 -!- sebbu has joined.
16:26:08 -!- leBMD has joined.
16:27:00 <leBMD> Well, I'm late to the party, but I only just now started using Befunge.
16:27:12 <ais523> everyone has to learn sometime
16:27:16 <ais523> otherwise, they'd never learn at all
16:27:18 <ais523> and that would be really boring
16:27:41 <leBMD> I'm pretty happy with my self, because I've already made hello world and an odd or even program.
16:28:20 <leBMD> a self-restarting odd or even program, that is.
16:29:02 <ais523> fungot: say hi to leBMD
16:29:03 <fungot> ais523: so you'll have cpan. perl5 has no macros and continuations?... is preserved to be passed in from the wild blue yonder and smacked into 9 millions of years ago
16:29:08 <ais523> fungot's written in Befunge too
16:29:09 <fungot> ais523: try doing the odbc, but quickly decided not to pursue mit. :) :( ( font issues)? xpdf?
16:29:16 <ais523> it's one of the better esolangs for large projects
16:29:31 <leBMD> what interpreter do you use?
16:29:45 <ais523> when I use Befunge, mostly FBBI or Cfunge
16:29:50 <leBMD> I've got Wasabi and BeQunge, but I've been using Wasabi, because BeQunge is a little too flashy for me.
16:30:05 <ais523> I'll get the name eventually
16:30:15 <ais523> unless Deewiant corrects me first
16:31:13 <ais523> did I actually get it right in the end?
16:31:36 <leBMD> do you combine that with an ide, or do you just use notepad?
16:32:08 <ais523> notepad is woefully inadequate for most programming
16:32:16 <leBMD> ocne upon a time I had emacs
16:33:04 <leBMD> I generally use Notepad++ for such things as asciiportal mapping, so I'll use it for befunge.
16:34:35 <Deewiant> BeQunge's interpreter is buggy, I don't recommend it
16:36:43 <Deewiant> For -98 interpreters, the properly working ones are CCBI, cfunge, and pyfunge; the mostly good ones (for "normal uses") are Language::Befunge, Rc/Funge-98, and Stinkhorn
16:38:21 <leBMD> hm, when I drag my program over CCBI, it flashes onto the screen and dissapears again.
16:38:35 <Deewiant> Command-line programs tend to do that
16:38:53 <leBMD> there, I just put & before @
16:39:06 <Deewiant> Yes, that's the lazy solution :-P
16:39:56 <leBMD> does emacs have a plugin or script (or whatever) that automatically inputs spaces into your file so that you don't have to be like "okay, this is going down...SPACESPACESPACESPACESPACE"?
16:41:22 -!- kar8nga has quit (Remote host closed the connection).
16:41:51 <leBMD> Deewiant, what do you use?
16:42:09 <leBMD> hm, I've never heard of it. I'll have to look into that.
16:43:08 <Deewiant> It works differently to most other editors and therefore has a bit of a learning curve; some people like it, others don't
16:49:33 <leBMD> O_o, I opened up gvim and I have no idea what's going on...
16:50:42 <Deewiant> You should open vimtutor first
16:50:58 <leBMD> there is no vimtutor
16:51:08 <Deewiant> On MS-Windows you can find it in the Program/Vim menu. Or execute
16:51:08 <Deewiant> vimtutor.bat in the $VIMRUNTIME directory.
16:51:48 <leBMD> oh wait, I forgot to get resources. XD
16:51:58 <leBMD> NOW I know what the problem is.
16:53:19 <Deewiant> IIRC $VIMRUNTIME is under the directory you installed it on Windows, called "vim72"
16:53:37 <Deewiant> So typically program files\vim\vim72
16:53:49 -!- Mathnerd314 has quit (Ping timeout: 276 seconds).
16:54:06 <leBMD> I didn't use the installer, though. So, I'm just going to shove my way through and see what happens.
16:54:49 -!- Mathnerd314 has joined.
16:56:19 -!- swilde has joined.
17:02:13 -!- zzo38 has joined.
17:04:15 <leBMD> Well, I've got it working just fancy.
17:04:35 <leBMD> Do you use any macros or anything for when you make befunge files?
17:08:03 <leBMD> is there a way to just move around regardless of lines or spaces?
17:10:07 <Deewiant> Visual block mode (ctrl-V) allows inserting and selecting stuff like that
17:11:21 <Deewiant> Is what you're looking for, I believe
17:12:25 <Deewiant> I haven't used it myself, although it probably would've been handy sometimes
17:13:36 <AnMaster> <leBMD> I've got Wasabi and BeQunge, but I've been using Wasabi, because BeQunge is a little too flashy for me. <-- no idea about the first one. But the second one is definitely not standard compliant
17:14:26 <Deewiant> It's probably a fine editor though
17:14:47 <Deewiant> It's just its interpreter you shouldn't use
17:15:32 <AnMaster> <leBMD> does emacs have a plugin or script (or whatever) that automatically inputs spaces into your file so that you don't have to be like "okay, this is going down...SPACESPACESPACESPACESPACE"?
17:15:39 <AnMaster> maybe you mean M-x picture-mode?
17:15:56 <leBMD> sure...(whatever that means)
17:16:11 <AnMaster> leBMD, well picture-mode lets you write in all cardinal directions
17:16:35 <AnMaster> leBMD, iirc vim doesn't have anything like it.
17:16:55 <Deewiant> Or for the cardinals, except east
17:17:14 -!- Phantom_Hoover has joined.
17:17:18 <Deewiant> Even notepad has it for east though, AFAIK :-P
17:17:51 <AnMaster> Deewiant, so how does vim handle right-to-left languages?
17:18:10 <Deewiant> It has reverse insert, not reverse replace, as I've said before
17:19:25 -!- leBMD has quit (Quit: ChatZilla 0.9.86 [Firefox 3.0.13/2009073022]).
17:20:33 <Phantom_Hoover> You can probably write funge-mode for Emacs, in any case.
17:26:41 <zzo38> When trying to prevent the ball from entering the left Game Over hole, don't push it so much so that the ball goes in the right Game Over hole instead.
17:27:55 -!- cpressey_away has changed nick to cpressey.
17:28:45 <zzo38> Phantom_Hoover: I don't know?
17:29:00 -!- AnMaster has quit (Read error: Operation timed out).
17:29:32 <Phantom_Hoover> zzo38: no, it looks like you just said that out of the blue.
17:30:10 <zzo38> Phantom_Hoover: Yes because I was playing a pinball game and I got game over so I typed that
17:30:59 -!- Phantom_Hoover has quit (Quit: Page closed).
17:31:33 <zzo38> http://zzo38computer.cjb.net/img_12/jigglebox.png Probably you can see the game over hole?
17:32:17 <zzo38> If the ball goes into one of the holes labeled "game over", then it is instantly game over, and you do not get to play the remaining balls.
17:32:59 <zzo38> But if you hit all of the trop targets on the top, the game over holes change to 500.
17:33:42 <zzo38> Have you ever build a pinball game?
17:35:42 -!- CakeProphet has joined.
17:50:22 <cpressey> I built a Pachinko board in grade 6. A lame one, but, yeah.
17:51:00 -!- cheater has quit (Ping timeout: 240 seconds).
17:58:22 -!- Geekthras has quit (Quit: leaving).
18:02:29 -!- swilde has quit (Quit: ERC Version 5.3 (IRC client for Emacs)).
18:03:22 -!- cheater has joined.
18:09:15 <cpressey> There's a RUBE example playfield which is basically a Pachinko board. Americans might be more familiar with it as "Plinko" from 'The Price is Right".
18:10:07 <ais523> hmm, who hosts The Price Is Right in the US?
18:10:33 <cpressey> Used to be Bob Barker. Last I saw, though, it was... Drew Carey?
18:10:44 <ais523> in the UK, it was famously Bruce Forsythe
18:11:00 <ais523> when it was still running
18:11:03 <cpressey> I didn't even know there was a UK version.
18:11:27 <ais523> I was vaguely surprised there was a US version, because it was so closely linked to the host in the UK
18:12:01 <ais523> according to Wikipedia, it was in the US first but has ended up all over the world
18:12:40 <zzo38> I want to build a pachinko one day. But I haven't done so yet
18:13:15 -!- cheater has quit (Quit: Leaving).
18:13:25 -!- oerjan has joined.
18:14:58 <zzo38> A special kind of pachinko game, "kaitenmono", with you can turn it a few degrees from directly vertical, and push buttons to put electric charges on the metal pins, which also stops the slot machine spinning when you push a button, but you cannot electrify if is not spinning. Entering a hole also stops spinning all slotwheels. And then depending which hole is lit, you might get bonus points. Each hole worth different number of points (lit=doub
18:15:19 -!- cheater99 has joined.
18:15:29 <zzo38> And then if you match three numbers on slot machine you get another double
18:16:39 -!- ais523 has quit (Remote host closed the connection).
18:21:51 <zzo38> CWEB has two modes, Tangle mode and Weave mode, but Enhanced CWEB should have a third mode for makefile mode.
18:22:15 <zzo38> Which is used in place of the "make" command and in place of normal makefiles.
18:22:46 <pikhq> Kaitenmono, BTW: "spinning thing".
18:23:22 -!- oerjan has quit (Quit: Reboot).
18:28:11 -!- zzo38 has quit (Remote host closed the connection).
18:46:34 <cpressey> So, my CE would look like this. It's based on an extremely general rewriting language (like Treacle). But the implementation is based on only the *efficient subset* of that language, which contains only those rewriting rules that would be appropriate for e.g. Scheme. And this subset would look a lot like a mini pure Scheme. Probably without lambdas.
18:47:53 <cpressey> One level up, a "reactor" pattern wraps these terms, resulting in something like Erlang processes sending each other asynchronous messages. And every device in the system is modelled as a process which sends and receives asynchronous messages.
18:52:09 <cpressey> The devices that are available depend on the system that it's running on, of course. The most basic device would be a virtual teletype, which corresponds pretty closely with Unix's stdin/stdout.
18:58:07 -!- ais523 has joined.
19:02:18 <cpressey> Then, somewhere along the way, there's a compiler that reduces terms in the excessively-general rewriting language, to terms in the efficient subset of that language. (Modern compilers for rewriting languages do similar things when compiling to native code.)
19:03:27 <cpressey> Going this route because one of the problems with the excessively-general rewriting language is that there is very little established work on "how to write usual programs in an excessively general rewriting language". That is to say, it's still being figured out, and it doesn't come naturally to me.
19:05:53 -!- aschueler has joined.
19:08:40 <ais523> now you're making me wonder what efficient compilation of Thutu would look like
19:10:38 <cpressey> ais523: If you can get a copy of "Constraint Programming Languages: Their Specification and Generation" -- it describes the compilation of rewriting rules to efficient code that I'm thinking of. Basically it looks at all the rules head-first and makes a state machine, IIRC.
19:11:25 <ais523> hmm, Thutu uses regexps, which could make it rather harder
19:13:05 <cpressey> But I don't think it alters the theory much. One sec, there's an interesting article on this.
19:13:55 <cpressey> http://swtch.com/~rsc/regexp/regexp1.html
19:14:06 <cpressey> You may have already seen it, I suspect.
19:14:40 <ais523> actually, the main inefficiency in Thutu is the rewriting itself, because there's a defined order to try the rules in
19:16:11 <ais523> cpressey: I'm not sure if I've seen that exact webpage before
19:16:16 <ais523> but I'm aware of the general principle
19:22:36 <cpressey> ais523: I can't see anything offhand about Thutu that would make the rewriting itself inefficient, but of course I've only skimmed the esowiki page. If by the rewriting itself you mean everything that happens after a pattern has matched, it's usually just a couple of pointer adjustments and possibly memcpy's.
19:22:50 <ais523> cpressey: it's the memcpy that's the issue
19:22:59 <ais523> it basically makes everything worse by an order of n
19:23:04 <cpressey> Well, if you're forced to have them, yes.
19:23:30 <cpressey> I know there are algorithms for "optimal term sharing" that provably minimize the number of memcpy's you need when making a substitution of terms.
19:23:51 <cpressey> That's getting into scary stuff though, at least for me.
19:25:53 <cpressey> Anyway, in the world of "modern programming" (read: object oriented or scripting languages), people are constructing objects all the time, often as copies, without thinking about it. But if you care about that comparison, the original reason to make an efficient implementation loses a lot of steam anyway.
19:28:26 <cpressey> Ah, my kingdom for a Sufficiently Clever Compiler[tm].
19:54:43 -!- teuchter has quit (Ping timeout: 265 seconds).
20:01:32 <cpressey> So, an audit of all our websites at work, because of a gigantic refactor to the codebase I made.
20:02:40 <cpressey> Well, "because" is too strong a word. It's more like the constant stream of phantom issues have a plausible scapegoat now.
20:09:36 <cpressey> (Just trying to make myself feel better, because I KNOW the code is less of a horrific mess now, and there was enough unknown crap floating around that it was high time for an audit anyway.)
20:11:37 <fizzie> Speaking of efficient regex-matching, flex (and its ilk) is also pretty good at that; it builds a single DFA (minimized, I believe; at least it does some NFA clean-up via equivalence classes; the DFA can still of course blow up exponentially, but usually doesn't) so that it can find the longest-matching-text regex without having to test them one by one.
20:16:03 <fizzie> I have to say I had absolutely no clue there *was* a "widespread belief that recursive backtracking is the only way to simulate an NFA"; certainly different ways to simulate a NFA, and algorithms for NFA-to-DFA conversion and DFA minimization (even in the context of regular expressions) were covered by the "introduction to theoretical computer science" course that I think is/was mandatory for most of our CS specialization choices.
20:17:24 <cpressey> The article is a little yippy in that respect, yes.
20:18:20 <fizzie> Perl has the "lots of features" excuse there; the regexps aren't very "regular" any more.
20:24:47 <Ilari> Bit of fun is finding explict class of n state NFAs, such that they will blow up to 2^n states when converted to DFAs and minimization fails to remove any states.
20:24:58 <cpressey> I think the "widespread belief" idea is that programmers think in terms of the libraries available to them (i.e. pcre) and not in terms of the CS they've learned.
20:26:23 -!- augur has quit (Remote host closed the connection).
20:26:31 -!- augur has joined.
20:28:04 <fizzie> Oh, the article (or part three, at least) is partially about Google's code search; that's quasi-interesting too. I've wondered a couple of times whether there's some trickery involved there; no matter how good their regex library is, I still refuse to believe they can just match every submitted regex against all the code there is in the world, without doing some indexing-ish trickery.
20:28:59 <ais523> fizzie: there's an article about how Google made a regex library that had known worst-case performance, pretty much for that reason
20:29:03 <ais523> but I have no idea where it is
20:30:33 <Sgeo> "that reason"?
20:30:34 <fizzie> I believe that is exactly that "third part" of cpressey's linked article I mentioned.
20:30:51 <Sgeo> Ooh, I misunderstood what ais523 said
20:31:08 <fizzie> (At least it's what's linked from RE2's (the library) code.google.com intro-page.)
20:31:11 <Sgeo> Misread it as "performs horribly" instead of "we know that it will be this bad, and no worse"
20:32:41 <Sgeo> So, I have some webspace provided by a friend. I recently discovered that all of the html pages I uploaded had mysterious <script> things that I did not add. Is the malicious stuff more likely on his end, or my end manipulating things over FTP?
20:33:14 <fizzie> They've also written a backtrackingy (but automata-based optimization-applying) thing called "irregexp" for Chrome's javascript eggine.
20:33:33 <cpressey> Sgeo: Do you see this when you fetch the files from FTP, or just from HTTP?
20:33:44 <cpressey> Because my guess would be it's the server adding that tag
20:33:49 <Sgeo> cpressey, haven't tried fetching from FTP yet
20:34:27 <cpressey> Sgeo: I bet if you download them with FTP like you uploaded them you'll see they'rethe same files.
20:34:52 <Sgeo> We're about to find out
20:35:12 <cpressey> There was a computer science department newsletter once called "Regular Expressions". I thought that was a tidy pun.
20:35:26 <cpressey> Don't remember which uni this was from though.
20:35:45 <Sgeo> Nope, still there when fetched from FTP
20:36:08 <Sgeo> The weird thing is, as far as I can tell, the included stuff's blank
20:36:09 -!- augur has quit (Remote host closed the connection).
20:36:22 <Sgeo> Unless my computer's infected, and blocking anything that looks like it
20:36:33 <Sgeo> Anyone want to check the source for me?
20:36:37 <cpressey> Sgeo: How well do you trust your friend? :)
20:36:41 <Sgeo> cpressey, a lot
20:36:53 <Sgeo> http://agespotcream.info/includes/index2.php <=== do NOT directly click. Just look at the source
20:37:24 <Sgeo> Actually, I tried it on my N1, same lack of source
20:37:36 <Sgeo> Hm, maybe it's my antivirus, come to.. wait, that doesn't run on the N1
20:37:48 <Sgeo> Maybe at the router level? Or maybe there really is nothing there
20:37:51 -!- augur_ has joined.
20:38:32 <cpressey> Quite possibly really nothing there. Maybe ask your friend if his FTP server tries to "enhance" things that is uploaded to it...
20:39:23 -!- augur_ has changed nick to augur.
20:42:26 <fizzie> About the only relevant-ish google-hit I could quickly see was http://wam.dasient.com/wam/infection_library/de38a05b344331a853349f2be94797c0/agespotcream but that's not very content-rich.
20:44:34 <fizzie> (I get a zero-byte reply from that URL too.)
20:45:19 -!- ais523 has quit (Read error: Connection reset by peer).
20:55:47 <fizzie> Mhm, so they have in RE2 a thing that can convert "(hello|hi)world[a-z]+foo" into a boolean "(helloworld OR hiworld) AND foo"; it doesn't exactly say code search uses that to limit the amount of stuff to match regexps against, but it doesn't sound unlikely.
21:06:56 -!- augur has quit (Remote host closed the connection).
21:07:01 -!- augur has joined.
21:13:13 -!- MizardX has quit (Quit: reboot).
21:13:32 -!- Mathnerd314 has quit (Ping timeout: 258 seconds).
21:21:42 -!- MizardX has joined.
21:24:58 -!- augur has quit (Remote host closed the connection).
21:25:06 -!- augur has joined.
21:25:39 -!- augur has quit (Remote host closed the connection).
21:27:29 -!- augur has joined.
21:41:24 -!- ais523 has joined.
21:45:30 -!- augur has quit (Remote host closed the connection).
21:45:35 -!- augur has joined.
22:02:44 -!- Ilari_antrcomp has quit (Remote host closed the connection).
22:02:58 -!- Ilari_antrcomp has joined.
22:16:05 -!- ais523 has quit (Quit: Page closed).
22:31:25 -!- GreaseMonkey has joined.
22:39:31 -!- oerjan has joined.
22:41:52 -!- aliseiphone has joined.
22:42:55 <aliseiphone> pikhq: So, Tiny Core Linux has a desktop and a useful base set of programs in 10 MiB.
22:43:05 <pikhq> aliseiphone: Awesome.
22:43:43 <pikhq> It would appear to be glibc based.
22:43:44 <pikhq> Making it all the more impressive.
22:44:14 -!- aliseiphone has quit (Client Quit).
22:44:43 <CakeProphet> what's the gconf setting that turns off mounted drives showing up on Desktop?
22:46:17 <CakeProphet> nevermind, found it. /apps/nautilus/desktop/volumes_visible
22:50:17 -!- aliseiphone has joined.
22:52:05 <cpressey> aliseiphone: You missed CakeProphet answering his own question.
22:54:07 <cpressey> aliseiphone: gconf questions are not interesting enough to warrant that. Sorry.
22:55:04 <cpressey> If it was about lambda calculus or an actual esolang or something, sure, but there's way too much operational bullshit on this channel IMO.
22:56:03 <cpressey> I don't mean to be harsh, it's just that this channel often bores me lately.
22:58:01 <aliseiphone> cpressey: It's basically the hangout spot of some really clever people who like esolangs.
22:58:17 <pikhq> We're only rarely on topic. :)
22:58:25 <aliseiphone> It's a bit social sometimes. Especially when AnMaster's here.
22:58:49 <aliseiphone> But most of us are eccentric enough that our blab is interesting.
22:59:30 <pikhq> Is there one of us that *isn't* particularly eccentric?
22:59:35 <aliseiphone> On the other hand, we are pretty good at debugging computery things. Like asking Einstein to fix your science fair project.
22:59:57 <pikhq> aliseiphone: Orly?
22:59:58 <aliseiphone> He's boring, which is not an eccentricity.
23:00:13 <aliseiphone> He probably thinks himself eccentric though.
23:00:15 <Ilari> Heh... If someone wants to joke DNSSec being "next year" project, the mirroring of '.' with production keys is currently underway. :-)
23:00:50 <pikhq> Hmm. Actually, yeah. Don't think he's done much that's eccentric.
23:00:58 <pikhq> Perhaps he should take up consuming dog food or something.
23:01:12 <pikhq> Or cool ties. Cool ties are always nice.
23:01:41 <pikhq> (yes, I know ties aren't eccentric. Wearing ties *because you feel like it* can be, however.)
23:01:42 <cpressey> *Consuming* cool ties would be quite eccentric indeed.
23:03:45 <Ilari> There was DNSKEY records with fake keys before, but the record values one currently gets (at least from some root servers) don't look fake.
23:04:37 -!- HackEgo has quit (Ping timeout: 276 seconds).
23:05:21 <aliseiphone> http://www.superant.com/smalllinux/tinyX01.html
23:07:09 <pikhq> Hmm. I'll giggle a lot if libc5 > glibc2.
23:07:55 -!- GreaseMonkey has quit (Remote host closed the connection).
23:08:01 -!- augur has changed nick to augur|walkin.
23:08:25 <aliseiphone> pikhq: all the libc revisions have just added bloat
23:08:35 * pikhq tries to find modern libc4
23:08:45 <Ilari> '. 86400 IN DNSKEY 256 3 8 AwEAAb1gcDhBlH/9MlgUxS0ik2dwY/JiBIpV+EhKZV7LccxNc6Qlj467QjHQ3Fgm2i2LE9w6LqPFDSng5qVq1OYFyTBt3DQppqDnAPriTwW5qIQNDNFv34yo63sAdBeU4G9tv7dzT5sPyAgmVh5HDCe+6XM2+Iel1+kUKCel8Icy19hR' (from root-J).
23:10:08 -!- GreaseMonkey has joined.
23:10:18 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
23:10:34 <aliseiphone> pikhq:http://www.pell.portland.or.us/~orc/Code/libc/
23:10:44 <aliseiphone> pikhq: http://www.pell.portland.or.us/~orc/Code/libc/
23:11:10 <aliseiphone> I <3 David Parsons. He writes tons of good old style code and stuff.
23:13:12 <pikhq> aliseiphone: Works on 2.6?
23:13:40 -!- relet has quit (Quit: Leaving.).
23:14:10 <aliseiphone> Mastodon, his distribution, is statically linked libc 4 on 2.2.
23:14:47 <aliseiphone> He created it when people were already using glibc on Linux 2.6.
23:15:05 <cpressey> mastodon.biz seems to... not have it
23:15:51 -!- coppro has joined.
23:16:23 <aliseiphone> Last release is many years old. He still uses it.
23:16:51 <cpressey> I would still be using FreeBSD 4.x if it supported USB.
23:17:11 <pikhq> *BSD* coreutils? Oooh.
23:17:17 <aliseiphone> cpressey: He's considering writing his own USB stack for 2.2 iirc.
23:18:55 <cpressey> Geez, at this point, mouse and keyboard at least... yes, I know the BIOS will fake those.
23:20:30 <aliseiphone> And do you use FreeBSD on your desktop? Cool.
23:20:34 <cpressey> aliseiphone: Not sure. Late 90s, I think.
23:21:00 <cpressey> When I had a desktop. All I have now is a crap laptop running Ubuntu something.
23:21:01 -!- augur|walkin has quit (Read error: Connection reset by peer).
23:21:14 <cpressey> I had a desire to minimize hassle.
23:21:30 -!- wareya has joined.
23:21:32 <cpressey> It became no longer fun to fiddle with setting up shit.
23:21:33 <aliseiphone> Hey... We should make a distro based on 386BSD. If it was open source.
23:21:35 <pikhq> checking target system type... Invalid configuration `i386-pc-linux-libc4': machine `i386-pc-linux' not recognized
23:21:40 -!- tombom has quit (Quit: Leaving).
23:21:46 <pikhq> GCC no longer supports i386-pc-linux-* ?
23:21:55 <wareya> Someone is trying to tell me that it's possible to make code faster than fully optimized native machine code.
23:22:17 <cpressey> aliseiphone: http://heirloom.sourceforge.net/ ?
23:22:25 <pikhq> wareya: Fully optimised is inherently the fastest.
23:22:27 <aliseiphone> *What about that mainline BSD release with x86 support? Is that open?
23:22:53 <cpressey> aliseiphone: granted, but an appropriate userland
23:23:18 <aliseiphone> cpressey: No, BSD is an appropriate userland :-)
23:25:26 <pikhq> aliseiphone: Always, according to Jolitz and Jolitz.
23:25:54 <aliseiphone> pikhq: Wasn't there an actual BSD release with x86 support?
23:26:23 -!- GreaseMonkey has quit (Quit: I'm using NO SCRIPT WHATSOEVER - Download it at file:///dev/null).
23:28:24 -!- augur has joined.
23:28:26 <pikhq> 4.4BSD-Lite apparently.
23:28:45 <pikhq> The last proper BSD release.
23:30:53 <cpressey> After that, things got decidedly Improper.
23:31:24 * pikhq downloads the source code, wondering if it CAN BE BUILT
23:32:21 <pikhq> ... Hey, 4.4 BSD would've actually included a C compiler, wouldn't it?
23:32:37 <pikhq> (rather than shoving in GCC)
23:32:57 <pikhq> Would've been... PCC.
23:32:59 <cpressey> I downloaded 4.4BSD once, never did anything with it though.
23:33:22 <pikhq> Clearly I should build myself a 4.4BSD with modern PCC.
23:34:30 <pikhq> aliseiphone: Unless it's GCC.
23:34:55 <pikhq> But yeah. PCC is the true and proper C compiler.
23:35:06 <aliseiphone> pikhq: I was thinking more "first version of 386BSD". Based on an older, less POSIXcrap BSD.
23:35:20 <Sgeo> <3 Commentary!
23:35:26 <aliseiphone> Or, y'know, "last good version of 386BSD".
23:37:26 <cpressey> Hot damn, I am totally going to try building PCC.
23:38:09 <pikhq> cpressey: Is easy.
23:38:11 <cpressey> If I can get it to build, I am totally going to see how many of my projects it can build.
23:38:15 <pikhq> ./configure&&make&&make install
23:38:21 <pikhq> And it should build most things.
23:38:29 <cpressey> pikhq: I expect it to be not so hard as TenDRA/Ten15, at least. Eeeuh.
23:38:30 <aliseiphone> cpressey: Its a modern, maintained compiler.
23:38:39 <CakeProphet> question: is (terminating) recursion possible in mathematics without a notion of conditional expression?
23:38:51 <pikhq> Last I checked OpenBSD had plans to switch to it.
23:38:53 <aliseiphone> cpressey: The BSDs are seriously looming at it.
23:39:00 <cpressey> I just wonder why I didn't consider it when looking for a BSD-licensed C compiler in previous years.
23:39:07 <pikhq> NetBSD's on the fence, and FreeBSD's going for LLVM.
23:39:10 <aliseiphone> CakeProphet: Does implication count as a conditional?
23:39:17 <cpressey> Like when I was involved with DragonflyBSD.
23:39:30 <pikhq> (also BSD licensed, much more complex, but also got uberoptimisation sauce.)
23:39:45 * cpressey mutters something about ricers
23:40:17 <olsner> how boring of freebsd, going with the cool/hot llvm and clang... I expect BSDs to be more esoteric than that
23:40:19 <CakeProphet> aliseiphone: not that I know of. I don't really know what implication is formally. In every use I've seen I simply substitute it with equality and the original meaning seems to remain.
23:40:35 <cpressey> CakeProphet: Yes, because for example x * 0 = 0.
23:40:49 <pikhq> aliseiphone: Not really.
23:41:04 <CakeProphet> aliseiphone: No. I'm just an American. We learn different things.
23:41:07 <aliseiphone> CakeProphet: False implies everything. Therefore everything implies false.
23:41:45 <cpressey> Well, I suppsose it depends on what you consider "terminated", but I would include a chain that ends in "... * 0 = 0" forever, a termination.
23:41:48 <aliseiphone> I'm 14. I dropped out of school when I was 10. Our curriculum is useless too.
23:42:12 <CakeProphet> I've never needed to learn what implication means formally.
23:42:24 <pikhq> Okay, so 4.4 BSD has GCC 2...
23:43:10 <aliseiphone> Who gives a fuck about school? I didn't say "at school".
23:43:32 <pikhq> If all my learning were at school I would know approximately nothing.
23:43:37 <CakeProphet> I guess not, actually. Is "formal math" proofs?
23:43:56 <pikhq> CakeProphet: Major part of formal mathematical reasoning, yes.
23:44:03 <cpressey> k := 10; a := 1; repeat { a := a * k; k := k - 1 } If you only care about a, it "terminates".
23:44:04 <aliseiphone> CakeProphet: Axioms, definitions, reasoning, proofs.
23:44:21 <CakeProphet> well, then I've encountered formal math. But I've never "done" it.
23:44:34 <cpressey> Formal math is logic on 'roids.
23:44:40 <pikhq> aliseiphone: MINIX is also tempting.
23:44:53 <aliseiphone> In classical logic (A -> B) can be proved by assuming A and proving B.
23:45:12 <aliseiphone> Can you see why assuming a falsehood lets you demonstrate anything?
23:45:20 <pikhq> Kernel's 4000 LOC.
23:45:42 <pikhq> Also, community project now.
23:45:45 <aliseiphone> Microkernel. Author is crazy, can't design.
23:46:08 <CakeProphet> really. I don't see falsehood logically implied anything.
23:46:14 <pikhq> aliseiphone: What's so crazy about him?
23:46:15 <cpressey> "Vacuously true" is not an easy concept to grok the first few times.
23:46:57 <cpressey> aliseiphone: *You* can see it intuitively, my friend. Most of us have to work at it.
23:47:00 <aliseiphone> "If the laws have broken down then we can subvert them."
23:47:25 <cpressey> I know linguistics PhDs who could not for the life of them figure out the difference between implication and bi-implication.
23:47:50 <aliseiphone> pikhq: Nice letter from plan 9 devs responding to some babble tenenbaum posted. Can't find it right now.
23:47:54 <cpressey> Even after trying to explain it with things like "If Mary got a speeding ticket, she must have been driving" vs "If Mary was driving, she must have got a speeding ticket"
23:48:33 <cpressey> Which was the simplest plainest possible example I could think of.
23:48:33 <CakeProphet> aliseiphone: intuitively, I can see how a false law can lead to a second statement being true. However, I don't see how the statement "false" alone can imply anything at all.
23:48:45 <oerjan> CakeProphet: it is possible to formulate some recursive formulas that _look_ like they have no base case, but still are well defined as mathematical definitions. i think.
23:49:09 <aliseiphone> Eg: The cake is red and the cake is not red.
23:49:16 <CakeProphet> oerjan: so, in other words, the base case is provided by some axiom that is used in the formula?
23:49:18 <oerjan> f(x+1) = x*f(x) + 1, for example
23:49:35 <pikhq> I find it difficult to fathom how people don't find logic intuitive.
23:49:45 <pikhq> I know they *do*, but it's just so... Weird.
23:50:05 <aliseiphone> CakeProphet: Here is a demonstration. We assume "P and not P" for any P. We want to prove "Santa exists".
23:50:17 <oerjan> CakeProphet: that's essentially the "ending in * 0 chain" cpressey was mentioning
23:50:51 <aliseiphone> Look at "P or Santa exists". Since we know that P is false ("not P"), it must be "Santa clause exists". But we have to prove one or the other.
23:51:15 <oerjan> CakeProphet: basically _computationally_ it doesn't terminate, but _mathematically_ it does because you know that 0*f(0) must be 0 no matter what f(0) is
23:51:18 <aliseiphone> But since P isn't true we can assume that instead Santa clause exists.
23:51:55 <oerjan> CakeProphet: i guess 0*y = 0 counts as an axiom you use, yes
23:52:39 <CakeProphet> aliseiphone: no. That is a terrible example. And besides, I said I understand in the case that the assumed statement actually contains logical relations. What I don't understand is the claim "false implies anything". Only false itself, not relations that are equivalent to false.
23:52:45 <pikhq> aliseiphone: Let P equal "Santa exists".
23:52:53 <aliseiphone> We can prove "P or Santa" because we assumed P, and from "P or Santa" we can prove Santa because we assumed P is false and if it's somethibg false of something else it must be the other one.
23:52:59 <Ilari> 0*x = 0 follows from some other common axioms.
23:53:19 <aliseiphone> False is just a proposition that is false.
23:53:28 <pikhq> Also, it's "Santa Claus", not Santa clause. A clause is a portion of text, and not a means of referring to St. Nicholas.
23:53:37 <aliseiphone> "True" is a proposition that stated nothing.
23:53:43 <CakeProphet> aliseiphone: yes, I understand all of this. But show me something can be implied from the statement "false"
23:54:00 <aliseiphone> CakeProphet: OK, don't bother doing logic.
23:54:19 <cpressey> CakeProphet: Maybe this will help: http://en.wikipedia.org/wiki/Truth_table#Logical_implication
23:54:32 <cpressey> Note that, if p is false, p -> q is always true.
23:54:40 <CakeProphet> aliseiphone: okay, but don't bother teaching. I'm afraid you'll only demean your students.
23:55:05 <aliseiphone> CakeProphet: No - I stopped teaching before I said that.
23:55:20 <Ilari> Haha, found article titled "DNSSEC Is Dead, Stick a Fork in It".
23:55:30 <CakeProphet> aliseiphone: well right, that's why you're a terrible teacher.
23:55:39 <CakeProphet> just sayin'. You're not obligated to teach.
23:55:53 <oerjan> Ilari: well technically. those axioms are more complicated than it though so it's a bit arbitrary to consider 0*y = 0 as not one
23:56:13 <aliseiphone> CakeProphet: Am I automatically the problem here?
23:56:41 <CakeProphet> aliseiphone: not automatically, no. There's not even a problem to begin with, really.
23:57:13 <Ilari> Yeah, its dead enough so that '.' has just gotten DNSSEC-enabled... :-)
23:57:50 <CakeProphet> aliseiphone: you could probably say the problem right now is that we are both overanalyzing somewhat. :)
23:58:41 <oerjan> CakeProphet: maybe you may like one famous anecdote about bertrand russell
23:59:04 <oerjan> he was once asked about the same point, that a false statement implies everything
23:59:36 <oerjan> so the questioner said something like, ok so say 1=2, can you prove that you are the Pope?