00:00:14 <ehird> "ANYONE USING THIS SYSTEM EXPRESSLY CONSENTS TO MONITORING" 
00:00:19 <ehird> just put words in my mouth why don't you! 
00:00:28 <ehird> https://www.intelink.gov/ 
00:06:32 <ais523> login page is not at all surprising 
00:06:44 <ais523> I certainly imagine intellipedia doesn't have much vandalism 
00:06:48 <ais523> people would likely get fired for that 
00:12:00 <ehird> mm, i can't wait to get my new machine 
00:12:08 <ehird> I'm becoming increasingly dissatisfied with os  x 
00:30:34 <ais523> is that bye #esoteric, or bye OS X? 
00:30:42 <ais523> and what are you disliking about it atm? 
00:33:36 <ais523> I guess that was bye #esoteric 
00:49:26 -!- psygnisfive has joined. 
01:01:57 <ais523> haha: http://en.wikipedia.org/w/index.php?title=Therac-25.&action=history 
01:02:05 <ais523> someone at reddit typoed a link to Wikipedia 
01:02:16 <ais523> and instead of editing the link, they just edited Wikipedia to add in a redirect 
01:05:13 -!- kerlo has quit (Remote closed the connection). 
01:05:13 -!- thutubot has quit (Remote closed the connection). 
01:06:20 -!- inurinternet has quit (No route to host). 
01:08:49 -!- puzzlet has joined. 
01:09:37 -!- puzzlet_ has quit (Remote closed the connection). 
01:17:09 -!- darthnuri has joined. 
01:19:56 -!- puzzlet has quit (Remote closed the connection). 
01:19:59 -!- puzzlet has joined. 
01:27:08 -!- puzzlet_ has joined. 
01:27:15 -!- puzzlet has quit (Remote closed the connection). 
01:27:26 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)). 
01:32:07 -!- puzzlet has joined. 
01:41:43 -!- olsner has joined. 
01:49:20 -!- kerlo has joined. 
01:50:32 -!- kerlo has left (?). 
02:11:18 -!- darthnuri has changed nick to inurinternet. 
02:40:15 -!- jix_ has quit ("leaving"). 
02:55:21 <ski__> ehird,fizzie : you should do `load "$",8', then `list', without the `,1' secondary address to `load' 
02:57:07 <ski__> (istr with the `,1' it will load the directory (as a BASIC program) on $0400, which is the start of the screen memory on C64 .. it might have been that $0400 was the start of BASIC program memory on older PET machines, i'm not sure) 
02:58:44 <ski__> (the `,1' basically tells `load' to load the program not into the current BASIC memory, but instead to the address that the program was saved from .. in the case of the directory, though, the "program" is synthesized by the disk drive, so it just invents the origin address $0400 for some reason) 
03:20:13 -!- bsmntbombdood has joined. 
04:21:01 -!- oerjan has joined. 
05:06:54 -!- ais523 has quit (Remote closed the connection). 
05:07:58 -!- ais523 has joined. 
05:30:33 -!- Gracenotes has quit (Remote closed the connection). 
05:31:29 -!- Gracenotes has joined. 
06:10:50 -!- coppro has quit (Read error: 110 (Connection timed out)). 
06:28:38 -!- ais523 has quit (Remote closed the connection). 
06:45:34 -!- oerjan has quit ("leaving"). 
07:16:23 -!- bsmntbombdood has quit (Remote closed the connection). 
07:25:51 -!- bsmntbombdood has joined. 
07:59:59 -!- clog has quit (ended). 
08:00:00 -!- clog has joined. 
08:00:02 <bsmntbombdood> my load average goes above 1 while watching flash video 
08:00:26 -!- tombom has joined. 
08:03:24 -!- kar8nga has joined. 
08:04:25 <fizzie> That's rather curious; on this work-workstation, playing a random U-tube video results in ~18% CPU usage for Firefox, and ~8% for Xorg. 
08:12:40 <bsmntbombdood> it's also giving me all sorts of weird artifacts... 
08:27:13 * ski__ listens to `Turkish_towel' 
08:29:22 -!- kar8nga has quit (Remote closed the connection). 
09:39:10 -!- BeholdMyGlory has joined. 
10:11:16 -!- bsmntbombdood has quit (Remote closed the connection). 
10:13:08 -!- Slereah_ has quit. 
10:18:06 -!- Slereah has joined. 
10:36:21 -!- BeholdMyGlory has quit (Remote closed the connection). 
10:57:52 -!- darthnuri has joined. 
11:14:18 -!- inurinternet has quit (Read error: 110 (Connection timed out)). 
11:42:25 -!- jix has joined. 
12:32:15 -!- MizardX has quit ("What are you sinking about?"). 
12:49:56 -!- asiekierka has joined. 
12:50:05 <asiekierka> I had an idea on how to not waste ram with function i won't use later on 
12:50:20 <asiekierka> I basically make a slot of $100 or $200 bytes, and then after the init function is done 
12:50:47 <asiekierka> after execution is finished, i get about 128 bytes of saving for now 
12:50:54 <asiekierka> also, I have a routine to clear blocks of $100 now 
12:52:18 <asiekierka> As well as I have finally fixed putc (just need to do backspace and cursor), and I did HextoStr and stuff 
13:07:05 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 
13:16:10 <asiekierka> 1010 bytes, everything except backspace is done 
13:16:27 -!- darthnuri has quit (Connection timed out). 
13:19:40 -!- tombom has quit ("Peace and Protection 4.22.2"). 
13:22:47 -!- KingOfKarlsruhe has joined. 
13:29:31 -!- jix has quit ("i shouldn't use irc now!!"). 
13:33:24 -!- inurinternet has joined. 
13:54:19 -!- jix has joined. 
14:14:32 -!- oerjan has joined. 
14:26:04 -!- KingOfKarlsruhe has quit (Remote closed the connection). 
14:48:03 -!- MizardX has joined. 
15:19:45 -!- FireFly has joined. 
15:49:52 -!- inurinternet has quit (No route to host). 
16:05:54 <ehird> 23:30 ais523: and what are you disliking about it atm? 
16:05:57 <ehird> it's too conventional 
16:05:59 <ehird> also, bsmntbombdood: 
16:06:06 <ehird> make sure you have the proprietary flash player, 
16:06:08 <ehird> disable hyperthreading, 
16:06:13 <ehird> and make sure you have the proper nvidia drivers 
16:06:17 <ehird> preferably the proprietary ones 
16:06:29 <ehird> also you can't edit links on reddit 
16:18:04 -!- inurinternet has joined. 
16:37:05 * pikhq discovers that the IBM mainframe hypervisor was released as public domain until the mid-80s... 
16:43:56 -!- BeholdMyGlory has joined. 
16:45:04 <ehird> hypervisor is such a cool nam 
16:52:44 -!- jix has quit (":("). 
16:53:43 <AnMaster> <asiekierka> I had an idea on how to not waste ram with function i won't use later on 
16:53:43 <AnMaster> <asiekierka> I basically make a slot of $100 or $200 bytes, and then after the init function is done 
16:54:14 <AnMaster> um, I remember seeing in the Linux kernel bootup output something like "Freeing unused SMP function variants... freed 5K" 
16:54:52 <AnMaster> I assume it would do the reverse (freeing single cpu variants) on SMP machines. 
16:57:16 <AnMaster> <asiekierka> also, I have a routine to clear blocks of $100 now <-- fixed size memset? 
16:57:57 <AnMaster> <ehird> disable hyperthreading, <-- why. 
16:58:08 <ehird> AnMaster: because hyperthreading is broken 
16:58:26 <ehird> it's (1) a hack to get around bad pipelining (2) increases cache thrashing a lot 
16:58:41 <pikhq> And the Atom doesn't have bad pipelining. 
16:58:42 <ehird> it's unlikely that it's causing his load issues but he should disable it anyway :) 
16:58:47 <ehird> pikhq: it's not an atom 
16:58:49 <AnMaster> why then did Intel reintroduce it. 
16:58:50 <ehird> it's a nehalem :-p 
16:58:55 <ehird> AnMaster: marketability? 
16:59:02 <pikhq> The Nehalem has *crazy good* pipelining. 
16:59:14 <pikhq> AnMaster: It was popular in the Pentium 4 line. 
16:59:22 <pikhq> And the Pentium 4 sorely needed it. 
16:59:30 <AnMaster> pikhq, I had a P4 once. Early one 
16:59:47 <pikhq> Hyperthreading made a difference on that architecture. 
17:00:02 <AnMaster> it ran at 1.8 GHz or something like that 
17:00:52 <ehird> I wonder when Intel will get off their butts and release Larrabee. 
17:00:58 <ehird> Although apparently it's crap. 
17:01:41 <ehird> [http://en.wikipedia.org/wiki/Larrabee_(GPU), fyi] 
17:01:48 <pikhq> Of course, the downsides of hyperthreading are somewhat reduced on Linux, which has a hyperthreading-aware scheduler. 
17:01:55 <ehird> pikhq: yeah, but still 
17:01:56 <AnMaster> ehird, is it crap? that is news to me 
17:01:58 <ehird> that cache thrashing 
17:02:02 <ehird> pikhq: and also, 4 cores is enough for anyone ;-) 
17:02:12 <ehird> AnMaster: Larrabee's early presentation has drawn some criticism from GPU competitors. At NVISION 08, several NVIDIA employees called Intel's SIGGRAPH paper about Larrabee "marketing puff" and told the press that the Larrabee architecture was "like a GPU from 2006".[7] 
17:02:17 <pikhq> (without one, it treats the hyperthreading CPU as two full cores. Bad performance ahoy!) 
17:02:20 <ehird> ofc, nvidia has a reason to be biased 
17:02:31 <ehird> but... otoh, it doesn't seem like they'd outright lie 
17:02:44 <ehird> also, a GPU running x86 sounds fairly pointless. 
17:02:55 <pikhq> ehird: Intel has always done low-end GPUs. That their GPUs are now from 2006 is a massive step up. 
17:03:11 <pikhq> And the main draw of Larrabee is being highly programmable. 
17:03:32 <AnMaster> well so are recent nvidia and ati cards iirc 
17:03:33 <pikhq> This is a chip you play around with real-time raytracing on. ;) 
17:03:45 <AnMaster> nvidia's cuda and whatever ati's one was called 
17:03:47 <pikhq> They *are*, but they're a pain to program for. 
17:03:52 <ehird> pikhq: Nah, you need a specialized chip to do that. See Caustic Graphics; they get about 5fps. 
17:04:17 <pikhq> They're technically Turing-complete, but if your code does much branching, it's faster to do it on a CPU. 
17:04:29 <AnMaster> having a computer based completely on fpgas would be interesting 
17:04:32 <ehird> GPUs are for embarrasingly parallel stuff ;-) 
17:04:39 <AnMaster> would allow some interesting optimised algorithms 
17:04:39 <ehird> AnMaster: err, that;'s called any hobbyist computer 
17:04:46 <ehird> it's also called "dog slow" 
17:05:03 <AnMaster> ehird, why is it so slow? Because it is hobbyist? 
17:05:05 <pikhq> The Larrabee is also for embarassingly parallel jobs. 
17:05:15 <ehird> AnMaster: Because it's an FPGA! 
17:05:37 <pikhq> ehird: They do at least get some benefit from having appropriate circuitry possible. 
17:05:49 <pikhq> Still, you're running it at 100Mhz. 
17:05:53 <ehird> AnMaster: Think about how an FPGA works, and then think about fabricating silicon. 
17:06:11 <pikhq> AnMaster: FPGAs are hard as hell to make with smaller processes. 
17:06:38 <pikhq> Really, FPGAs are hard as hell to make. 
17:06:38 <AnMaster> but programmable hardware is cool anyway! 
17:07:03 <pikhq> It's cool, but not something that you're likely to ship on a production board. 
17:07:08 <AnMaster> pikhq, how come they are used so much then. For when a ASIC would be too expensive. 
17:07:38 <pikhq> Because ASICs are done in large batches. 
17:07:52 <pikhq> Why order 100,000 ASICs if you need 100 FPGAs to do the same? 
17:08:04 <ehird> 17:07 AnMaster: pikhq, how come they are used so much then. For when a ASIC would be too expensive. 
17:08:07 <ehird> Because ASICs are expensive 
17:08:38 <AnMaster> ever read about Synthesis? I think someone in here linked it. 
17:09:10 <AnMaster> lockless SMP OS, with runtime modification. Ran on some old Motorola CPU with double-CAS instruction. 
17:09:57 <ehird> Semiconductor fabrication scares me. It's so damn small. 
17:10:25 <AnMaster> http://lwn.net/Articles/270081/ 
17:11:11 <ehird> lwn.net requires fuckin' subscription. 
17:11:27 <ehird> But I clicked other links on the sidebar. 
17:11:30 <ehird> And it asked me to pay. 
17:12:00 <AnMaster> ehird, anyway I read parts of the thesis/paper/whatever, and it described testing on a system with a programmable MMU to test performance in case of two CPUs requested at once. Which is hard to test reliably. So the MMU was programmed to simulate it. 
17:12:29 <ehird> I wonder when we'll get 8-core chips from Intel 
17:13:35 <AnMaster> ehird, double-ended queues with one producer and one consumer updating at the same time, lockless. 
17:13:54 <ehird> AnMaster: sounds like Snake ;-) 
17:14:25 <ehird> every tick you lose a block at your end and get another at the start 
17:14:33 <ehird> consumer, producer, consumer, producer 
17:15:04 <AnMaster> ehird, iirc they were wait-free too. 
17:16:10 <AnMaster> "The current implementation of Synthesis runs on two machines: the Quamachine and the Sony NEWS 1860 workstation. As described in section 1.3.4, the Quamachine is a home-brew, experimental 68030-based computer system designed to aid systems research and measurement. Its measurement facilities include an instruction counter, a memory reference counter, hardware program tracing, and a memory-mapped cloc 
17:16:10 <AnMaster> k with 20-nanosecond resolution. The processor can operate at any clock speed from 1 MHz up to 50 MHz. Normally it runs at 50 MHz. But by changing the processor speed and introducing waitstates into the main memory access, the Quamachine can closely emulate the performance characteristics of common workstations, simplifying measurements and comparisons." 
17:16:20 <AnMaster> "The Quamachine also has special I/O devices that support digital music and audio signal processing: stereo 16-bit analog output, stereo 16-bit analog input, and a compact disc (CD) player digital interface." 
17:17:02 <ehird> AnMaster: I guess early 80s. 
17:17:22 <AnMaster> "The Sony NEWS 1860 is a commercially-available workstation with two 68030 processors. Its architecture is not symmetric. One processor is meant to be the main processor and the other is meant to be the I/O processor. Synthesis tries to treat it as if it were a symmetric multiprocessor, scheduling most tasks on either processor without preference, except those that require something that is accessible 
17:17:22 <AnMaster>  from one processor and not the other. While this is not a large number of processors, it nevertheless helps demonstrate Synthesis multiprocessor support. But for measurement purposes of this chapter, only one processor -- the slower I/O processor -- was used. (With the kernel's multiprocessor support kept intact.)" 
17:17:47 <AnMaster> ehird, says 1992 on the front page 
17:17:57 <ehird> "compact disc (CD)" in 1992? 
17:18:11 <AnMaster> ehird, in a computer it certainly wasn't common 
17:18:40 <AnMaster> 'What do you mean a "change directory"?!" 
17:18:43 <pikhq> Out of curiosity, is it specified what the frequency of its audio handling was? 
17:19:12 <pikhq> 44.1 kHz 16-bit signed little-endian PCM, I'd *assume*... 
17:19:19 <pikhq> But you never know with older systems. ;) 
17:19:50 <AnMaster> http://valerieaurora.org/synthesis/SynthesisOS/toc.html 
17:22:00 <AnMaster> "The point is not to parade Synthesis speed nor justify the other's slowness. It is to point out that that speed is possible through careful thought and program structuring that provides just the right level of abstraction for each application. For example, one application that runs under Synthesis reads music data from the CD player, computes its Fourier transform (1024 point), and displays the resul 
17:22:00 <AnMaster> t in a window, all in real-time. It displays 88200 data points per second. This is impossible to do today using any other single-processor workstation and operating system because the abstractions provided are too expensive and just plain wrong for this particular task. This is true even though the newer Sparc-based workstations from SUN are more than four times faster then the machine running Synthes 
17:22:43 <AnMaster> "Worth noting is the cost of open. The simplest case, open /dev/null, takes 49 microseconds, of which about 70% are used to find the name in the directory structure and 30% for memory allocation and code synthesis to create the null read and write procedures. The additional 19 microseconds in opening /dev/tty come from generating more involved code to read and write the TTY device. Finally, opening a 
17:22:43 <AnMaster> file requires synthesizing more sophisticated code and buffer allocations, costing 17 additional microseconds." 
17:22:54 <ehird> 49 microseconds to open /dev/null. 
17:23:09 <AnMaster> ehird, it was fast compared to mainstream then 
17:23:46 <AnMaster> ehird, check "7.2.2 Comparing Window Systems" 
17:24:09 <pikhq> ehird: That's 50 clock cycles, I think. :p 
17:25:15 <ehird> AnMaster: It cites GEB! 
17:25:25 <AnMaster> "The simplification in applications programming that occurs using this scheduler cannot be overstated. One no longer needs to worry about assigning priorities to jobs, or of carefully crafting the inner loops so that everything is executed frequently enough. For example, in Synthesis, reading from the CD player is no different than reading from any other device or file. Simply open "/dev/cd" and read 
17:25:25 <AnMaster> from it. To listen to the CD player, one could use the program in Figure 6.7. The scheduler FLL keeps the data flowing smoothly at the 44.1 KHz sampling rate -- 176 kilobytes per second for each channel -- regardless of how many CPU-intensive jobs might be executing in the background." 
17:25:36 <AnMaster> it uses feedback based scheduler 
17:25:44 <ehird> AnMaster: on the page 
17:26:04 <ehird> http://valerieaurora.org/synthesis/SynthesisOS/ch7.html 
17:26:19 <pikhq> AnMaster: Somehow, I find it hard to find that impressive. 
17:26:29 <AnMaster> pikhq, by today's standards yes 
17:26:31 <ehird> AnMaster: grep Escher 
17:27:24 <pikhq> Probably because right now I'm decoding an 823 kilobit stream with a 44.1 kHz sampling rate to 16-bit PCM, converting it to 48 kHz sampling rate, and handing it to ALSA. :p 
17:27:44 <AnMaster> pikhq, could you do that on a CPU running at 25 MHz. 
17:28:07 <AnMaster> pikhq, with none of the advanced pipelining and branch prediction and so on 
17:28:10 * pikhq wonders what the clock speed is on his Sansa... 
17:28:25 <fizzie> Oh, right, it was that orwell.freenode.net buggery. It might be up by now. 
17:28:40 <AnMaster> fizzie, can't you use the round robin dns 
17:29:00 <fizzie> AnMaster: fungot doesn't do DNS. :p 
17:29:03 <ehird> AnMaster: Rockbox. 
17:29:09 <ehird> It's an alternative OS for music players. 
17:29:14 <ehird> Including the iPod, Rio Karma, ... 
17:29:18 <ehird> It supports FLAC and stuff. 
17:29:35 <AnMaster> anyway. It is not a general purpose OS. 
17:29:36 <fizzie> AnMaster: I didn't want to depend on SCKE, so it takes an IP address as a parameter. (Although I ended up using SCKE anyway, for the currently-under-construction http support.) 
17:29:46 <ehird> AnMaster: Doom was ported to Rockbox. 
17:29:50 <ehird> It's general-purpose enough. 
17:29:56 -!- fungot has joined. 
17:30:05 <pikhq> It does multitasking, too. 
17:30:11 <AnMaster> ehird, ok, that still doesn't make the device a general purpose computer though! 
17:30:13 <fizzie> I'm hoping no-one is building any mission-critical systems on fungot's availability, anyway. 
17:30:15 <fungot> fizzie: and you kill the nice man? call/ cc using only lambda. in general if you want thing to move half as far as i know, 
17:30:15 <pikhq> And MPEG2 playing. 
17:30:20 <ehird> AnMaster: They use ARM, I think. 
17:30:37 <pikhq> Seems its clock speed goes from 24 to 80 MHz on-demand. 
17:30:40 <ehird> And have screens, etc; some even coloured. 
17:31:15 <pikhq> It's also got a GB emulator... 
17:31:15 <AnMaster> still doesn't make it a general purpose device. And: Is it a full UNIX OS? 
17:31:26 <pikhq> No, it's not a UNIX. 
17:31:41 <pikhq> It's a different sort of general-purpose multitasking OS. 
17:31:45 <AnMaster> which is what they are comparing Synthesis against there. SunOS 3 iirc 
17:31:55 <ehird> Rockbox is a general purpose OS running on quite powerful general-purpose hardware with lots of I/O. 
17:32:26 <AnMaster> and you have fast storage on an mp3 player 
17:32:47 <ehird> It's just a flash drive. 
17:32:57 <pikhq> ... Which is a moot point, since a CD drive is fast enough to play CDs. :p 
17:33:40 <AnMaster> with or without buffering. As far as I understand it. Synthesis didn't buffer that audio much. 
17:34:31 <pikhq> Well, it probably didn't have the RAM handy for large buffers. 
17:35:06 <AnMaster> looking at the code it seems to have a 100 byte buffer. 
17:36:31 <AnMaster> These programs can be connected together in a pipeline to perform more complex sound processing functions, in a similar way that text filters in Unix can be cascaded using the shell's "--" notation.  <-- huh? Doesn't it mean | 
17:39:09 <ehird> AnMaster: typographical limitations. 
17:48:39 <ehird> but -- is poor man's — 
17:51:27 <fizzie> There's just the strange hybrid "hyphen-minus" dash in ASCII, none of the fancy ones. 
17:51:45 -!- tombom has joined. 
17:54:13 <ehird> what about that broken | char 
17:54:16 <ehird> that's -- sideways :-P 
17:54:20 <ehird> well, with a lil' ridge 
17:56:30 <fizzie> Ah, the broken bar. That's still non-ascii, though. (But it is in latin-1, which is perhaps a bit unexpectadinous. It doesn't seem all that useful.) 
17:56:50 -!- pikhq has quit ("Back in a flash"). 
17:57:10 <ehird> besides, "is — ASCII?" is silly 
17:57:12 <ehird> because | is ascii 
17:57:18 <ehird> so evidently if they can't type | they're not using ascii 
17:57:22 <ehird> prolly a typewriter 
17:58:05 <fizzie> Unicode name for | is a boring "VERTICAL LINE", while ¦ is the "BROKEN BAR". 
17:59:10 <fizzie> Though Unicode naming is a bit stuffy anyway. They've opted to call / and \ the "solidus" and "reverse solidus" instead of slash/backslash. 
18:01:49 <fizzie> "slash" was the name in Unicode 1.0. I wonder what sort of committee discussions there were when they decided to rename it to solidus. (That gucharmap tool also lists "slash" and "virgule" as aliases, but I'm not sure where it's getting those from.) 
18:02:20 <fizzie> "How do I send commands to my IRC client? Just type a VIRGULE in front of the command." 
18:03:15 <ehird> http colon virgule virgule virgulefullstop full stop org 
18:04:29 <fizzie> http two-spot change change changespot spot org. 
18:04:34 <fizzie> To use the INTERCAL names. 
18:05:38 <fizzie> At least according to first google-hit e2 page; I'm not quite sure about the reliability there. 
18:06:08 <ehird> fizzie: e2's like 10x more infallable than wikipedia because it's just from one reliable source 
18:06:48 <fizzie> slat, says the manual. Though the e2 page lists / twice. 
18:12:20 <fizzie> Right, "change" is the "c overstrike /" thing, they've just mangled the e2 page. Well, that makes more sense anyway. (Though one has to wonder why a slat and not a spike, since ¢ has a vertical line in it.) Still, even "http two-spot slat slat slatspot spot org" has certain charm. 
18:12:21 <ehird> Pros: very fast cpu 
18:12:21 <ehird> Cons: price and the company who makes it 
18:12:22 <ehird> Other Thoughts: stop and think seriously think about where intel gets their new technology from............... AMD. Intergrated memory controller and 64 bit technology both comes from AMD so for those who bash said company well your r-tarded. AMD holds the patents on the new Technology Intel uses and intel is trying to cancel AMD's right to make x86 cpu's so that means AMD pulls those rights from Intel so all of you who jumped aboard the i7 boat will sin 
18:12:27 <ehird> k because no one will support updates so good luck 
18:12:42 <ehird> fizzie: cent is c/ in some typographical contexts 
18:12:45 <ehird> c| is quite modern i think 
18:12:54 <ehird> also, slatspot is sort of like a spoonerism of slashdot 
18:12:59 <fizzie> Can be; I'm quite modern, I wouldn't know. 
18:13:31 <fizzie> "-- the cent sign, a lower-case letter c pierced top to bottom by a forward slash or a vertical line --" 
18:13:51 <ehird> the i7 975 will have 1mb of l2 
18:14:03 <ehird> ...130 watts though... 
18:14:16 <ehird> it seems the 1MB thing was lying 
18:14:19 <ehird> they're multiplying it by cores 
18:14:20 <ehird> since it's per-core 
18:14:40 -!- pikhq has joined. 
18:24:59 -!- pikhq has quit ("leaving"). 
18:26:00 -!- pikhq has joined. 
18:39:16 <ehird> GregorR: It's 256KB *per each core*. 
18:39:37 <ehird> GregorR: And there's an 8MB L3 cache. 
18:39:41 <ehird> (shared between all cores) 
18:40:33 <GregorR> Bleh, the inconsistent labeling of L2 and L3 confuses me ... 
18:40:43 <ehird> Well, the L3 cache is shared and the L2 isn't. 
18:40:45 <ehird> Big difference :-P 
18:41:58 <GregorR> Core 2 Quad has (IIRC) a 4MB cache, which is divided into two 2MB caches each of which are shared between two cores, or something like that.. 
18:42:29 <ehird> the yorkfield xe has 2 x 6MB L2s 
18:42:46 <ehird> rather confuzzling 
18:43:03 <GregorR> Well, it's something like that. 
18:43:17 <GregorR> Anyway, the point is that 256KB/core L2 seems awfully low for Intel. 
18:43:51 <ehird> It is a lot smaller than in recent times. 
18:43:58 <ehird> GregorR: but the L2 is faster 
18:44:01 <ehird> and you have the L3 too 
18:44:07 <ehird> so it's just shifting the boundaries a bit 
18:44:25 <GregorR> Yeah, but having an L3 shared amongst more cores is stupid, the whole problem is that shared memory doesn't scale :P 
18:44:58 <ehird> It also leads to a security vulnerability, but Nehalem is worth it ;-) 
18:45:18 <ehird> Yummy integrated memory controller... Yummy DDR3... 
18:47:48 <oerjan> !slashes http://oerjan.nvg.org/esoteric/slashes/crashtest.sss 
18:48:20 <oerjan> ic, it must be just this nvg machine 
18:48:40 <oerjan> or possibly the old perl version 
18:49:18 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp fyb help info kill userinterps 1l 2l adjust asm axo bch bct befunge befunge98 bf bf16 bf32 bf8 bfbignum boolfuck c chiqrsx9p choo cintercal clcintercal cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge ook pbrain perl qbf rail rhotor rot13 sadol sceql sh show slashes test trigger udage01 underload unlambda whirl yodawg 
18:49:42 <GregorR> (Codu runs Debian Testing) 
18:49:44 <oerjan> i'll make a file twice the size and retest, just in case 
18:50:23 <oerjan> !slashes http://oerjan.nvg.org/esoteric/slashes/crashtest.sss 
18:50:25 <EgoBot> Complex regular subexpression recursion limit (32766) exceeded at /tmp/input.19081 line 10, <> line 516. 
18:51:30 <oerjan> ok a different error (not segmentation fault), but still annoying 
18:54:11 <oerjan> so how does one optimize (s!^/((?:[^/\\]|\\.)*)/((?:[^/\\]|\\.)*)/!!s)  further :( 
18:55:52 <ehird> oerjan: don't use regexs? 
18:56:56 <oerjan> well that _should_ be a finite automaton needing no recursion 
18:58:29 <asiekierka> You know, I wonder what esolang to create 
18:58:34 <ehird> wow, the 975 will only cost $999 
18:58:45 <asiekierka> as in, you know, mixing colors and stuff 
18:59:23 <asiekierka> add (R/G/B/W/K) x% - adds X % of the color to the brush 
19:00:12 <asiekierka> set COLOR x , output brush, get brush... 
19:01:13 <asiekierka> while BRUSH( (R(ed)/G(reen)/B(lue)/A(ll)) ) = x then... 
19:01:30 <asiekierka> So I have an equalivment of [], +/-, , and . 
19:01:35 <asiekierka> but sadly I don't have infinite memory 
19:02:49 <asiekierka> water - waters the brush, I.E. clears it 
19:07:31 <asiekierka> oh, and not watering the brush after finishing is an error 
19:08:57 <fizzie> !perl print $^V, "\n"; 
19:09:20 <asiekierka> what do you think of this esolang I CAN POSSIBLY IMPLEMENT 
19:10:46 <asiekierka> and yes, the output can be represented as colors 
19:21:28 <AnMaster> <oerjan> so how does one optimize (s!^/((?:[^/\\]|\\.)*)/((?:[^/\\]|\\.)*)/!!s)  further :( <-- how did you end up with that one 
19:21:59 <AnMaster> there is too much escaped stuff for me to be able to parse it without more work that I'm willing to spend on it. 
19:25:54 <fizzie> It matches /foo/bar/ where both foo and bar are sequences of either something else than / or \, or \ followed by any character. 
19:26:23 <fizzie> So basically it removes a ///-language expression from the start of the string, and sets $1 and $2 to the two parts of it. 
19:29:42 <fizzie> I'm not sure how optimizable it is, although you can (a) clarify it a bit with something like $body = qr{(?:[^/\\]|\\.)*}s after which you can write it as s!^/($body)/($body)/!!... or (b) obfuscate it a bit by referring to the first parenthesized subexpression in the other with something like s!^/((?:[^/\\]|\\.)*)/((?1))/!!s. 
19:30:08 <fizzie> Because regular expressions are awesome, of course. 
19:30:36 <AnMaster> Some people, when confronted with a problem, think ``I know, I'll use regular expressions.'' Now they have two problems. -- jwz 
19:31:28 <fizzie> That particular one is not such a terrible abuse, though. 
19:32:13 <ehird> Some people, when confronted with a joke, think ``I know, I'll use that Jamie Zawinski quote.'' Now they have a douchebag problem. -- jwz 
19:32:21 <AnMaster> fizzie, that jwz quote was actually in the description for http://www.jwz.org/hacks/gdb-highlight.el (not found in that file, but in http://www.jwz.org/hacks/marginal.html) 
19:33:02 <fizzie> And anyway awesome is what they are. It's like a finite state machine cleverly disguised as a one line of curious scratches. 
19:33:40 * AnMaster writes down that line for future quoting 
19:34:57 <AnMaster> and yes, regex are awesome, as a DSL for searching text, or doing non-trivial (but still not complex) text replacements. 
19:34:57 <oerjan> AnMaster: i wrote the /// interpreter in perl, of _course_ i used regexes 
19:35:08 <AnMaster> Plus, doing a regex across two lines tends to be a PITA 
19:35:38 <oerjan> that's what that s at the end is for 
19:36:03 <fizzie> The "how to optimize" question strongly depends on what you're optimizing; character count or clarity or what. 
19:36:29 <AnMaster> what if I want to grep for "while(\*p) p\+=[0-9]+;\nwhile(\*p) p\+=[0-9]+;", something I wanted to do recently 
19:36:54 <AnMaster> a grep limitation rather than regex limitation of course 
19:37:08 <AnMaster> but a lot of the tools with regex are line based. 
19:37:26 <oerjan> fizzie: erm, i'm trying to optimize its ability not to crash on >= 50000 byte strings :D 
19:38:32 <fizzie> Oh. I wouldn't have thought that particular one would be very trying for the regex-exxxecutor. 
19:39:05 <fizzie> Depends on how exxxxxtreme you are. 
19:39:12 <ehird> fizzie, have an eggscellent day! 
19:39:13 <tombom> it represents your computer's temperature 
19:39:19 <ehird> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXtreme 
19:39:27 <ehird> Pronounced: chhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhstreme 
19:39:29 <oerjan> !slashes http://oerjan.nvg.org/esoteric/slashes/crashtest.sss 
19:39:34 <EgoBot> Complex regular subexpression recursion limit (32766) exceeded at /tmp/input.19351 line 10, <> line 516. 
19:39:38 <ehird> AnMaster: No, it's Xtreme. 
19:39:47 <ehird> http://www.google.com/search?client=safari&rls=en-us&q=xtreme&ie=UTF-8&oe=UTF-8 
19:39:52 <AnMaster> regex are in general not very efficient. 
19:40:01 <ehird> Pronounced buchsworch, where ch is like Bach. 
19:40:38 <AnMaster> that google's code search does allow regex is strange. 
19:40:48 <ehird> you mean FUCKING AWESOME. 
19:40:56 <ehird> besides, they aren't full regexps, are they? 
19:41:06 <ehird> no more powerful than google's (x OR y) OR z 
19:41:10 <oerjan> and this nvg machine gave a different crash (Segmentation fault) 
19:41:19 <AnMaster> "Google Code Search supports POSIX extended regular expression syntax, excluding backreferences, collating elements, and collation classes. [...]" 
19:41:32 <AnMaster> http://www.google.com/intl/en/help/faq_codesearch.html#regexp 
19:41:40 <ehird> Well, I don't know, maybe they just throw three machines at it every time you search. It can't be too popular of a search engine. 
19:42:04 <AnMaster> ehird, load would be very small compared to the load of normal google 
19:42:17 <ehird> Have an eggcellent day! 
19:42:25 <ehird> If it's Xtreme, feel good! 
19:42:37 <AnMaster> "We also support the following Perl extensions: [list removed to not spam]" 
19:42:42 <oerjan> let me try that ?> thing 
19:43:39 <ehird> oerjan: rewrite it in haskell with PURITY 
19:44:13 <AnMaster> oerjan, is there no other implementation of /// ? 
19:44:20 <ehird> oerjan: Fine, I will. 
19:44:25 <ehird> You're making me code. 
19:44:33 <ehird> oerjan: HAPPY NOW‽‽‽ 
19:44:35 <AnMaster> ehird, Since you mention it.... 
19:44:52 <ehird> AND YOU WILL BE FORCED TO USE MY IMPLEMENTBWAHAHAHAH 
19:44:54 <AnMaster> ehird, what happened with that befunge interpreter in haskell you were working on 
19:44:56 <oerjan> no, because to usefully _use_ it i'll have to finally install ghc... :D 
19:45:01 <ehird> AnMaster: AIEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!!!!!!!!!!!!!!!!!!!! 
19:45:06 <ehird> oerjan: just grab a binary 
19:45:24 <AnMaster> ehird, are you still working on it? 
19:45:28 <ehird> AnMaster: Yes. Dormantly. 
19:45:35 <ehird> oerjan: on unix, installing the binary is just "make install". on Windows, I think they have a fancy installer 
19:46:17 <fizzie> I'm guessing it fails when it's trying to extend that (?:[^/\\]|\\.) pattern modified with *, since there's a lot of possibilities-except-not-really for backtracking there. You might actually try something like (?:(?>[^/\\]*)|\\.)* -- at least that should match long strings of non-escaped characters as a single blorb. 
19:46:51 <fizzie> Though that's just a minor help, I'm guessing any reasonable /// program has quite a lot of escaped stuff in it. 
19:47:10 <oerjan> er i just tried (?>[^/\\]*|\\.)* 
19:47:25 <fizzie> Yes, but that's different. 
19:47:32 <ehird> What's the defined behaviour of 
19:47:37 <fizzie> I'm not sure how different, though. 
19:48:03 <oerjan> fizzie: oh, and long strings of non-escaped characters are useful for what i'm currently doing 
19:48:26 <ehird> If it's a /, characters are taken up to the next / 
19:48:29 <oerjan> how the heck did i mistype that 
19:49:01 <oerjan> ehird: don't know but my interpreter just gives up then 
19:49:06 <ehird> yeah, so will mine 
19:49:37 <oerjan> fizzie: er, i miscopied you 
19:49:55 <oerjan> i'm trying (s!^/((?>[^/\\]|\\.)*)/((?>[^/\\]|\\.)*)/!!s) 
19:50:00 <oerjan> and that didn't help here 
19:50:22 <EgoBot> Interpreter slashes deleted. 
19:50:36 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp fyb help info kill userinterps 1l 2l adjust asm axo bch bct befunge befunge98 bf bf16 bf32 bf8 bfbignum boolfuck c chiqrsx9p choo cintercal clcintercal cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge ook pbrain perl qbf rail rhotor rot13 sadol sceql sh show test trigger udage01 underload unlambda whirl yodawg 
19:50:39 <oerjan> !addinterp slashes perl http://oerjan.nvg.org/esoteric/slashes/slashes.pl 
19:50:39 <EgoBot> Interpreter slashes installed. 
19:50:48 <EgoBot> Installed user interpreters: bct bfbignum chiqrsx9p choo echo hello ook rot13 slashes yodawg 
19:50:49 <oerjan> !slashes http://oerjan.nvg.org/esoteric/slashes/crashtest.sss 
19:50:50 <EgoBot> Complex regular subexpression recursion limit (32766) exceeded at /tmp/input.19509 line 16, <> line 516. 
19:51:17 <fizzie> I don't think it should help in that case, since it's just matching that single character as an independent blorb. But I guess my version won't necessarily help either. 
19:51:39 <AnMaster> oerjan, does it work when run on your own computer 
19:52:22 <oerjan> i don't have perl there 
19:52:40 <AnMaster> what sort of computer doesn't have perl these days... 
19:52:47 <fizzie> oerjan: Anyway, there are experimental-and-subject-to-change "Special Backtracking Control Verbs" in (at least) 5.10; if you write (*PRUNE) somewhere it should clear the backtracking tree at that point; I'm not sure if it helps with that recursion limit, though. And I don't know if that's in 5.8. 
19:52:58 <ehird> he also uses IE, just so you can get more riled up 
19:53:01 <AnMaster> activestate perl sounds familiar for windows 
19:54:02 <ehird>         (dest,xs'') = toSlash xs'' 
19:54:20 <AnMaster> ehird, I'm pretty sure I remember oerjan using ubuntu for a while? Or was it oklopol 
19:54:38 <ehird> oerjan: the example program, 
19:54:43 <ehird> how does execution go there? 
19:54:50 <ehird> replace foo\n with foo 
19:55:13 <ehird> "If it's not / or \, it's printed." 
19:55:15 <ehird> it's then removed, right? 
19:55:20 <AnMaster> the only way I can see that working is with newlines being stripped 
19:55:29 <AnMaster> but I must be wrong about that 
19:55:30 <oerjan> first it prints a newline 
19:55:32 * ehird tries the / world! world!/Hello,/ world! world! world! program anyway 
19:55:37 <ehird> simpler to understand 
19:55:45 <ehird> *Main> run "/ world! world!/Hello,/ world! world! world!" 
19:55:45 <ehird> (" world! world!","Hello,"," world! world! world!") 
19:55:48 -!- M0ny has joined. 
19:55:51 <ehird> easy peasy lemon squeezey 
19:56:06 <ehird> it isn't executing 
19:56:12 <ehird> it's just print-debugging 
19:56:13 <oerjan> !slashes / world! world!/Hello,/ world! world! world! 
19:56:21 <ehird>     let (source,xs') = toSlash xs 
19:56:22 <ehird>         (dest,xs'') = toSlash xs' 
19:56:23 <ehird>     in print (source,dest,xs'') 
19:56:27 <ehird> parsing, pretty much 
19:56:42 <AnMaster> ehird, what bit in that handles the \ 
19:56:49 <oerjan> ehird: also can you make your interp more efficient by not backtracking all the way after a match? 
19:57:02 <ehird> AnMaster: toSlash, and also run 
19:57:06 <oerjan> the perl one obviously redoes the whole string 
19:57:13 <ehird> oerjan: isn't that required? 
19:57:25 -!- KingOfKarlsruhe has joined. 
19:57:29 <oerjan> ehird: i mean by not going further than necessary 
19:57:34 -!- tombom_2 has joined. 
19:58:15 <oerjan> say, /foo/o/abcdeffffoooooo 
19:58:29 <oerjan> you can throw away everything up to the e 
19:58:40 <ehird> oerjan: throw away is a bit strong 
19:58:42 <ehird> it needs to be output 
19:58:55 <ehird> oerjan: what about 
19:59:02 <oerjan> and after the first match you don't need to go back to the very first f 
19:59:03 <ehird> /foo/o//bar/quux/foo 
19:59:08 <ehird> it gets a bit hairy 
19:59:13 <AnMaster> /throw away/put in the already done list/throw away 
20:00:03 <ehird> oerjan: but, /bar/quuux/o isn't rewinding 
20:00:06 <ehird> it's the bad case you said 
20:00:10 <ehird> oerjan: so, check for / and don't do it? 
20:00:14 <ehird> that sounds like a hack 
20:00:21 <ehird> if you give some more precise semantics it's done 
20:00:33 <oerjan> ehird: i've pondered it a bit and doing it perfectly may be awkward 
20:01:01 <oerjan> but you can (1) check initial characters (2) not backtrack more than the length of the matched string 
20:01:04 <ehird> oerjan: how about "output-with-escapes and throw away everything up to either: the first unescaped / or the term we're looking for" 
20:01:07 <AnMaster> thought I had !slashes in front not <ehird> 
20:01:36 <oerjan> ehird: you cannot output until you are sure the match doesn't cause an infinite loop 
20:01:47 <ehird> oerjan: this sounds more and more ugly 
20:01:53 <AnMaster> still doesn't explain the multiline example that ehird pasted 
20:02:23 <oerjan> AnMaster: let's use space instead of newline 
20:02:45 <oerjan> output ' ' -> /foo /foo/bar 
20:02:45 <ehird> there's no "foo " in the program 
20:02:47 <fizzie> oerjan: You don't have to backtrack in the Perl interpreter either: you can use pos($str) = x; to set the position where \G matches, and then nail your replacing regular expression with that. (Although the savings there might be more than offset by the overhead of having to "replace" everything from the \G point with itself.) 
20:03:02 <ehird> so it's a silly example :P 
20:04:13 <ehird> oerjan: i'll implement without 
20:04:19 <ehird> that's just the expressive power of HASKOLI 
20:04:34 <ehird> !slashes foo/foo/bar/foo 
20:04:55 <pikhq> GregorR: You know how you were wanting C++->C compilation? llvm can do it. 
20:05:05 <pikhq> llvm has a GCC frontend, and it can target C. 
20:05:43 <AnMaster> wow that was fun. Making oerjan say "eek" 
20:06:19 <pikhq> The resulting C code when compiled won't fully comply with the C++ ABI, but it's otherwise correct. 
20:06:25 <oerjan> the last one prints b\ar here 
20:06:51 <AnMaster> <AnMaster> !slashes /foo/b\\\\\\ar/foo <oerjan> the last one prints b\ar here <-- what? There are way more \ than that 
20:06:52 <oerjan> /foo/b\\\\\\ar/foo -> b\\\ar 
20:07:44 <oerjan> clearly egobot does some unescaping of its own 
20:09:03 <oerjan> the interpreter gives up if the code ends with an incomplete command such as \ 
20:09:44 <AnMaster> !slashes /a/A/b/B/r/R/foo/b\\\/a\\\/r/foo 
20:10:03 -!- tombom_2 has left (?). 
20:10:08 -!- tombom_2 has joined. 
20:10:15 <AnMaster> !slashes /a/A/b/B/r/R/foo/bar/foo 
20:10:25 <oerjan> assuming EgoBot decodes that to /a/A/b/B/r/R/foo/b\/a\/r/foo 
20:10:35 <oerjan> before sending it to /// 
20:10:45 <AnMaster> !slashes /a/A//b/B//r/R/foo/bar/foo 
20:11:12 <AnMaster> !slashes /a/A//b/B//r/R//foo/bar/foo 
20:11:24 <ehird> oerjan: I almost have a working slashes 
20:11:28 <ehird> with only one butt-ugly function! 
20:12:22 <ehird> *Main> replace "abc" "def" "abcdef" 
20:12:34 <ehird> *Main> replace "abc" "def" "abcxxx" 
20:12:49 <oerjan> for a certain value of "almost" 
20:12:56 * ehird attempts to clear head 
20:13:05 * ehird cuts out replace function, writes better one 
20:14:08 -!- olsner has quit ("Leaving"). 
20:14:55 <ehird> oerjan: the basic problem is that "replace the first instance of this with this or do nothing if there isn't one" is not an intuitive operation 
20:15:41 <oerjan> anyway i have an idea that you might use a zipper 
20:16:06 <oerjan> as in, pass the characters already checked in reverse 
20:16:25 <oerjan> easy to backtrack a short length then 
20:17:18 <Deewiant> replace _ _ [] = []; r what with s@(x:xs) = let (a,b) = splitAt (length what) s in if a == what then with ++ b else x : replace what with xs 
20:17:21 <ehird> *Main> replace "abc" "def" "abcdef" 
20:17:22 <ehird> *Main> replace "abc" "def" "aaabcdef" 
20:17:26 <ehird> *Main> replace "abc" "def" "" 
20:17:34 <ehird> replace :: String -> String -> String -> String 
20:17:36 <ehird> replace [] r ys = r ++ ys 
20:17:38 <ehird> replace _ _ [] = [] 
20:17:40 <ehird> replace s@(x:xs) r (y:ys) 
20:17:42 <ehird>     | x == y    = replace xs r ys 
20:17:44 <ehird>     | otherwise = replace s r ys 
20:17:51 <Deewiant> ehird: otherwise = y : replace s r ys 
20:18:08 <ehird> Deewiant: it also doesn't handle this 
20:18:16 <ehird> *Main> replace "abc" "def" "abx" 
20:18:21 <ehird> i knew it couldn't be so trivial 
20:18:28 <Deewiant> Shouldn't that otherwise handle it 
20:18:40 <ehird> Deewiant: no, read it; it chops off the first two chars which do match 
20:18:45 <ehird> but then the last one doesn't match, oshi- 
20:18:47 <ehird> and is yours efficient? 
20:18:55 <Deewiant> No, you should precompute length what 
20:19:11 <Deewiant> Other than that; efficient enough. 
20:20:46 <Deewiant> Alternatively, if what could be infinite, do something like; replace what with s@(x:xs) = if what `isPrefixOf` s then with ++ drop (length what) s else x : replace what with xs 
20:21:22 <oerjan> erm if what could be infinite isPrefixOf is not going to finish 
20:21:51 <ehird> *Main> replace "abc" "def" "abxabcdef" 
20:22:00 <Deewiant> repeat 1 `isPrefixOf` [] --> False 
20:22:18 <ehird> *Main> run "/ world! world!/Hello,/ world! world! world!" 
20:22:18 <ehird> Hello, world!*Main> 
20:22:37 <ehird> Now, oerjan, I will run 99bob, then your simpler counter. 
20:22:41 <ehird> Then, I will implement your efficiency thing. 
20:23:16 <ehird> oerjan: Epic unsuccess. 
20:23:32 <ehird> oerjan: You CAN replace inside future ///s, right? 
20:23:39 <ehird> 99 bottles of beer on the wall, 
20:23:41 <ehird> 99 bottles of beer 
20:23:43 <ehird> Take one down, pass it around 
20:23:45 <ehird> 98 bottles of beer on the wall. 
20:23:47 <ehird> 98#98$97%97#97$96%96#96$95%95#95$94%94#94$93%93#93$92%92#92$91%91#91$90%90#90$89%89#89$88%88#88$87%87#87] 
20:24:15 <oerjan> you are not redoing the replacement after success... 
20:24:25 <ehird> Yes, yes that would be it. 
20:25:16 <ehird> findFixPoint :: (Eq a) => (a -> a) -> a -> a 
20:25:20 <ehird>     | otherwise = findFixPoint f x' 
20:25:32 <ehird> It wooooooooooooooooooooooooorks! 
20:25:38 <oerjan> not very efficient though 
20:25:55 <ehird> oerjan: it outputs all at once; I wonder why? 
20:26:00 <oerjan> that findFixPoint will check all through 
20:26:18 <Deewiant> findFixPoint = until =<< ap (==) 
20:26:25 <ehird> Deewiant: i'm no obfuscator 
20:26:52 <Deewiant> findFixPoint f = until (ap (==) f) f 
20:26:59 <ehird> oerjan: does the 99bob program output all at once? 
20:26:59 <Deewiant> findFixPoint f = until (\x -> x == f x) f 
20:27:18 <oerjan> hm more or less i should think 
20:27:29 <oerjan> it would do all the substitutions early 
20:28:00 <ehird> oerjan: same with thue-morse? 
20:28:08 <oerjan> ehird: that findFixPoint is going to be inefficient as the changes come later and later in the string 
20:28:14 <Deewiant> findFixPoint f = fmap snd . find (uncurry (==)) . (zip `ap` tail) . iterate f 
20:28:21 <ehird> oerjan: but that's just your optimization; I can fix that later. 
20:28:30 <ehird> and what, oerjan, about infinite loops? 
20:28:36 <ehird> oh, you can just check if dest contains source 
20:28:44 <ehird> oerjan: take, for example 
20:29:15 <oerjan> i was wondering if you could have an infinite loop without strict containment 
20:29:15 <ehird> oerjan: /axx/ax/aaxxx   → aaxx 
20:29:21 <ehird> your don't-backtrack doesn't handle that 
20:29:31 <ehird> also, do these examples have newlines at the end? 
20:29:40 <ehird> oerjan: they handle → aaxx 
20:29:42 <ehird> but then don't backtrack 
20:29:45 <oerjan> i didn't say you _shouldn't_ backtrack 
20:29:45 <ehird> and so mixx the extra axx replacement 
20:29:46 <Deewiant> You can backtrack a limited amount 
20:29:55 <Deewiant> You don't need to backtrack all the way, though 
20:29:57 <oerjan> i said you shouldn't backtrack all the way 
20:30:02 <ehird> oerjan: your counter works 
20:30:12 <ehird> oerjan: it gets slower every time, of course 
20:30:20 <ehird> oerjan: do you mean: 
20:30:25 <ehird> only backtrack to the start of the replacement? 
20:30:46 <oerjan> backtrack to start of replacement - length of replaced string 
20:31:19 <ehird> oerjan: er minus length of replaced string? 
20:31:25 <ehird> so if you start replacing at 5, and replace with a 3 char string 
20:31:25 <oerjan> and that can backtrack further if there is a match there 
20:31:51 <oerjan> the string that is replaced from 
20:32:59 <ehird> *Main> run "/abc/cdefg/ababcde/" 
20:32:59 <ehird> cdefgdefgde*** Exception: slashes.hs:(31,0)-(33,23): Non-exhaustive patterns in function toSlash 
20:33:01 <ehird> nice typo handling 
20:33:16 <oerjan> -> abcdefgde -> cdefgdefgde 
20:33:36 <ehird> toSlash [] = error "OHGAHGHGHAGH WHAT DOES IT MEAN!! AN ARMY OF SNEEZING WANGS STALKS MY NIGHTMARE" 
20:33:41 <oerjan> abc has length 3, so you only need to go back 3-1 
20:34:02 <ehird> toSlash :: String -> (String,String) 
20:34:03 <ehird> toSlash [] = error "OHGAHGHGHAGH WHAT DOES IT MEAN!! AN ARMY OF SNEEZING WANGS STALKS MY NIGHTMARE" 
20:34:06 <ehird> toSlash ('/':xs) = ("",xs) 
20:34:08 <ehird> toSlash ('\\':x:xs) = is x xs -- curses! foiled again! 
20:34:10 <ehird> toSlash (x:xs) = is x xs 
20:34:12 <ehird> i see no inexhaustive patterns 
20:35:01 <ehird> I saved to the wrong place 
20:35:16 <ehird> i was wondering why it accepted my invalid syntax too 
20:36:09 -!- psygnisfive has quit (Remote closed the connection). 
20:36:18 <ehird> oerjan: okay, so here's the rule 
20:36:38 <oerjan> for further tests, http://oerjan.nvg.org/esoteric/slashes/counter{1,3,4}.sss 
20:36:41 <ehird> After making a replacement, backtrack to position start_of_replacement - length_of_replacement 
20:36:49 <oerjan> (2 is the simple one you already tried) 
20:37:09 <oerjan> ehird: terminology confusion 
20:37:12 -!- Sgeo has joined. 
20:37:22 <oerjan> what do you call the first and second arguments of /// ? 
20:37:30 <ehird> Source, replacement. 
20:37:45 <Sgeo> Quick Linux question: If I make /home unwritable and owned by root, does that make it as secure as a LiveCD 
20:38:23 <ehird> After making a replacement, backtrack to position start_of_where_replacement_begins_in_string - length_of_replacement_used 
20:38:37 <oerjan> nope, length_of_source_used 
20:39:18 <ehird> ok, need to mod replace to tell me where the replacement begins :-P 
20:39:27 <oerjan> !slashes /abc/cde/ababababcde 
20:39:28 <ehird> I'll just make it return (beforeReplacement,afterAndIncludingReplacement) 
20:39:59 <Sgeo> ehird, how so? 
20:40:28 <Sgeo> Is it at least close enough? 
20:40:33 <pikhq> Sgeo: What you do to make it as secure as a LiveCD is to make your entire filesystem read-only and unioned with a RAM filesystem. 
20:40:33 <oerjan> ehird: i repeat my suggestion to use a zipper 
20:40:35 <ehird> Sgeo: what are you trying to do 
20:40:44 <ehird> oerjan: I've never understood 'em. 
20:40:46 <oerjan> (reverse of previous, remainder) 
20:41:17 <ehird> *Main> replace "abc" 3 "def" "xxabc" 
20:41:28 <Sgeo> ehird, have a secure OS that I can use when I need to do something with sensitive information 
20:41:30 <oerjan> ehird: let's say you've done the first match of that /abc/cde/ababababcde 
20:41:42 <ehird> Sgeo: you're 20, why are you handling FBI documents? 
20:41:53 <Sgeo> ehird, I'm handling my social security number 
20:41:56 <oerjan> then your zipper state is then ("bababa", "cdede") 
20:42:04 <ehird> Sgeo: encrypt it with GPG, put it in ~. 
20:42:16 <ehird> Sgeo: also, you think that thing's secure? 
20:42:21 <ehird> err, you give it to like a thousand businesses 
20:42:46 <Sgeo> Better that than 1000 businesses and one hacker 
20:42:57 <ehird> what's the hacker going to do 
20:42:58 <pikhq> ehird: You're only legally mandated to give it to, lessee... 
20:43:03 <ehird> give it to ANOTHER BUSINESS?! 
20:43:05 <pikhq> The IRS, your employer... I think that's it. 
20:43:11 <ehird> pikhq: yeah, but in practice... 
20:43:15 <pikhq> Maybe some other government agency that I'm forgetting. 
20:43:19 <ehird> also, your employer is still a huge leak 
20:43:33 <pikhq> ehird, in every other instance, you can give out a fake one with no repercussions. 
20:43:47 <Sgeo> I already gave the college my real one 
20:44:08 <ehird> pikhq: OTOH, not many people do. 
20:45:02 <ehird> argh, why isn't thsi code working 
20:45:04 <ehird> is it because it hates me 
20:45:06 -!- tombom_2 has left (?). 
20:45:51 * AnMaster wonders why erlang think doing Node#bfn.extra#bfe_loop.input is a syntax error before the second # 
20:46:32 * pikhq recommends 666-69-0666 
20:46:41 <oerjan> ehird: oh i just realized something 
20:47:10 <oerjan> each of which are an incomplete program which does nothing 
20:47:18 <Sgeo> pikhq, if we ever go to the same college, and I end up using that.. 
20:47:29 <ehird> Sgeo: THEN THE WORLD WILL EXPLOOOOOOOOOOOOOODE!! 
20:47:37 <ehird> ((And turned into an adult-only area.)) 
20:47:47 <ehird> ((Where you will have to give proof of your adulthood. Or shut down your store!)) 
20:47:54 <Sgeo> I'm just thinking it could cause problems for the college 
20:48:00 <Sgeo> otoh, that could be fun 
20:48:00 <pikhq> Sgeo: Better still, ask them which law requires that you give them your SSN. 
20:48:20 <pikhq> Also, there are a few cases where two people have been assigned the same SSN. 
20:48:34 <ehird> Wonder what Dubya's SSN is. 
20:48:44 <Sgeo> ....I only have 9GB free? 
20:50:24 <oerjan> /abc/bcab/aabcc -> abcabc -> bcababc -> bcabbcab 
20:50:36 * ehird reads his replace function v e r y c a r e f u l l y 
20:50:44 <pikhq> ehird: Dunno, but I know Nixon's. 567-68-0515. 
20:53:58 <ehird> Deewiant: your function broke catastrophically when i modded it :< 
20:54:07 <ehird> replace :: String -> Int -> String -> String -> (String,String) 
20:54:07 <ehird> replace _ _ _ "" = ("","") 
20:54:08 <ehird> replace src srcLen dest s@(x:xs) = 
20:54:10 <ehird>     let (before,after) = splitAt srcLen s 
20:54:12 <ehird>     in if before == src 
20:54:14 <ehird>          then ("",dest ++ after) 
20:54:16 <ehird>          else let (before',after') = replace src srcLen dest after 
20:54:18 <ehird>               in (x:before',after') 
20:54:20 <ehird> i can't see the flaw! :) 
20:54:46 <Sgeo> WoG is a bit less enjoyable perhaps after seeing most of the solutions 
20:54:49 <Deewiant> ehird: Don't call replace with after, call it with xs 
20:55:03 <ehird> ... didn't you do that Deewiant? 
20:55:20 <ehird> Works now ^_____________________^;;;;;;;;; 
20:55:32 <ehird> *Main> replace "abc" 3 "def" "xabc" 
20:55:37 <Deewiant> Otherwise /abc/foo/aabc wouldn't work, for instance. 
20:55:37 <ehird> so we backtrack to |def, right? 
20:57:57 <ehird> *Main> doReplacements "abc" "def" "aaabcxxabcxxdefabc" 
20:57:57 <ehird> "aadefxxdefxxdefdef" 
20:58:15 <ehird> oerjan: link to latest counter? 
20:58:18 <ehird> http://oerjan.nvg.org/esoteric/slashes/counter3.sss? 
20:58:31 <oerjan> counter4.sss is the latest 
20:58:45 <ehird> oerjan: ... but not the most practical, it seems 
20:59:01 <ehird> http://oerjan.nvg.org/esoteric/slashes/counter4.sss 
20:59:04 <ehird> /Only / and \ from this point on/ 
20:59:08 <ehird> there's spaces and | 
20:59:17 <oerjan> after the substitutions prior to that point 
20:59:48 <ehird> oerjan: Congrats; your program now runs in... well, it's not constant time; it increases each time to the increased length of string to scan. But it's a lot less of an increase. 
21:00:01 <ehird> oerjan: What buffering does your interp use? Regular line-based buffering? 
21:00:11 <ehird> That's what I'm doing atm. 
21:00:11 -!- asiekierka has quit (Read error: 110 (Connection timed out)). 
21:00:25 <oerjan> actually i put it on character buffering recently for debugging 
21:00:40 <ehird> Which would you suggest? Since it's now infallably perfect. 
21:00:49 <oerjan> (every print statement that means) 
21:01:14 <oerjan> it would be nice for it to work with output that contains no newlines, and is infinite 
21:01:23 <oerjan> (See that counter4.sss) 
21:01:53 <oerjan> also, for infallably perfect please try http://oerjan.nvg.org/esoteric/slashes/bct.sss which is what made perl crash in the first place 
21:01:58 <ehird> [ehird:~/Code/scraps/2009-05/slashes] % time ./slashes < counter3.sss > f 
21:02:01 <ehird> ./slashes < counter3.sss > f  1.25s user 0.03s system 99% cpu 1.284 total 
21:02:03 <ehird> [ehird:~/Code/scraps/2009-05/slashes] % wc -l f 
21:02:23 <ehird> The first 100 or so lines swim past immediately on the terminal, too. 
21:02:24 <oerjan> counter3.sss is about as efficient as counter2.sss, just a minor variation 
21:02:42 <ehird> Also, infinite output with no newlines; roger that. 
21:03:11 <oerjan> ehird: what happens with the bct.sss ? 
21:03:35 <ehird> first tell me the expected output 
21:03:43 <oerjan> it crashed on me before i got to check if it's any good 
21:04:18 <oerjan> \//\/\ endlessly repeated, i think is what i intended 
21:05:27 <oerjan> it's supposed to check the program looping of the 100101 program (no data handling yet) 
21:06:31 <ehird> [ehird:~/Code/scraps/2009-05/slashes] % time ./slashes counter3.sss > f 
21:06:32 <ehird> ./slashes counter3.sss > f  0.49s user 0.54s system 99% cpu 1.034 total 
21:06:34 <ehird> [ehird:~/Code/scraps/2009-05/slashes] % wc -l f 
21:06:37 -!- M0ny has quit ("Read error: 182 (Connection reset by beer)"). 
21:06:38 <ehird> bit of a regression 
21:06:45 <ehird> [ehird:~/Code/scraps/2009-05/slashes] % time ./slashes counter3.sss > f 
21:06:47 <ehird> ./slashes counter3.sss > f  2.41s user 3.09s system 99% cpu 5.506 total 
21:06:49 <ehird> [ehird:~/Code/scraps/2009-05/slashes] % wc -l f 
21:06:49 <oerjan> the previous test was that counter4.sss, which only showed that the er, _slashes_ program looping worked 
21:06:59 <ehird> oerjan: the regression is due to outputting lots and lots of *s individually 
21:07:00 <oerjan> (as opposed to the BCT program) 
21:07:11 <ehird> oerjan: doesn't matter though does it 
21:07:14 <ehird> it's still wicked fast 
21:07:26 <ehird> % ./slashes bct.sss 
21:07:51 <ehird> oerjan: how did you add it to ze egobots? 
21:08:16 <oerjan> with !addinterp slashes perl http://... 
21:08:23 -!- Judofyr has joined. 
21:08:23 <oerjan> unfortunately there is no haskell in it 
21:08:41 <ehird> GregorR: sudo apt-get install ghc on EgoBot, please. 
21:08:45 <ehird> I'll be adding a new interpifoo. 
21:08:47 <oerjan> ehird: well, at least it didn't crash at the same point for you 
21:08:53 <oerjan> you actually got input 
21:08:55 <ehird> GregorR: how do I add a compiled interp btw 
21:09:03 <ehird> and it doesn't crash 
21:09:18 <ehird> total lines: 54, includign whitespace and comments (all one of them takes its own line) 
21:09:24 <ehird> well, plus the 3 line header 
21:09:37 <oerjan> in fact it's the correct output for the first iteration 
21:09:41 <ehird> % ./slashes slashes 
21:09:42 <ehird>     $?8__PAGEZERO?__TEXT??__text__TEXT@#?? 
21:09:57 <ehird> % ./slashes slashes.hs 
21:09:57 <ehird> -- An interpreter for the 
21:10:34 <oerjan> !slashes http://oerjan.nvg.org/esoteric/slashes/counter4.sss 
21:10:36 <ehird> oerjan: yay, it uses constant memory on /// 
21:10:54 <ehird> % ./slashes counter4.sss 
21:10:54 <ehird> \/\\/\\\/\\\\/\\\\\/\\\\\\/\\\\\\\/\\\\\\\\/\\\\\\\\\/\\\\\\\\\\/\\\\\\\\\\\/\\\\\\\\\\\\/\\\\\\\\\\\\\/\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\ 
21:11:01 <ehird> it's a lot slower than counter3 
21:11:08 <oerjan> EgoBot doesn't handle output without newlines :( 
21:11:17 <ehird> although it gets faster as it goes on; or rather it doesn't, but it seems like it does, because of its outputting a lot of \s in succession 
21:11:40 <oerjan> yes, the /\ only coding is much more verbose 
21:11:48 <ehird> [ehird:~/Code/scraps/2009-05/slashes] % ./slashes 
21:11:48 <ehird> slashes: No filename specified. 
21:11:50 <ehird> [ehird:~/Code/scraps/2009-05/slashes] % ./slashes /dev/stdin 
21:11:54 <ehird> slashes: OHGAHGHGHAGH WHAT DOES IT MEAN!! AN ARMY OF SNEEZING WANGS STALKS MY NIGHTMARE 
21:11:57 <ehird> The best error reporting system, methinks. 
21:12:24 <oerjan> that may not be strictly according to spec, but who cares 
21:12:46 <ehird> there is no program with unmatched /s 
21:12:53 <ehird> "If it's a /, characters are taken up to the next /" 
21:12:54 <oerjan> "The program ends when there is no longer enough of it to execute, e.g.:" 
21:13:07 <oerjan> and then the three examples 
21:13:08 <ehird> oerjan: i don't think that's a valid interpretation :P 
21:13:31 <ehird> oerjan: the program \ outputs a \ for me 
21:13:35 <ehird> do you think that's right :P 
21:14:26 <ehird> oerjan: I think that an unmatched // is invalid, though. 
21:14:30 <ehird> run "\\" = return () 
21:14:44 <ehird> % ./slashes fibonacci.sss 
21:14:44 <ehird> */*/**/***/*****/********/*************/*********************/**********************************/******************************************************* 
21:15:19 <ehird> thuemorse takes from 0.012-0.016 
21:15:54 -!- kar8nga has joined. 
21:16:03 <ehird> oerjan: i got a hang after the first * on counter1.sss, but another line came and I realised it was just dog slow 
21:16:09 <ehird> less than 1 line/sec 
21:16:32 <AnMaster> I want to see that epic program 
21:16:38 <ehird> http://oerjan.nvg.org/esoteric/slashes/counter1.sss 
21:16:40 <ehird> it's not very epic 
21:16:47 <ehird> http://oerjan.nvg.org/esoteric/slashes/counter3.sss current sane version 
21:17:02 <ehird> your interp is faster than mine on counter1 
21:17:10 <AnMaster> why are you using \ so much btw 
21:17:29 <ehird> oerjan: why is it faster? 
21:17:34 <AnMaster> oerjan, http://oerjan.nvg.org/esoteric/slashes/counter1.sss for example 
21:17:39 <ehird> my algorithms are better, haskell is faster than perl, I used your optimization... 
21:17:46 <AnMaster> or in http://oerjan.nvg.org/esoteric/slashes/counter3.sss 
21:17:54 <oerjan> but perl has heavily optimized regexes 
21:18:04 <Deewiant> ehird: "Haskell is faster than Perl"? 
21:18:04 <oerjan> which is what my interpreter uses most 
21:18:11 <ehird> Deewiant: GHC is,. 
21:18:20 <oerjan> unfortunately they break on the large programs :( 
21:18:21 <Deewiant> If you're doing string processing, I'm not at all surprised that Perl + arrays beats GHC + linked lists 
21:18:21 <ehird> oerjan: right, but there's not much more to optimize than my code. 
21:18:25 <AnMaster> depends on what exactly you are doing I guess 
21:18:32 <ehird> Deewiant: The string processing is mostly linked-listy. 
21:18:40 <Deewiant> ehird: That doesn't mean it's fast. 
21:18:42 <ehird> There's not really anything much bytestring about it. 
21:18:46 <AnMaster> Deewiant, can't you do arrays in GHC? 
21:18:47 <Deewiant> Arrays tend to be faster even for linked-listy stuff. 
21:18:48 <ehird> Besides, that should be a memory issue. 
21:18:52 <ehird> AnMaster: You can do ByteStrings. 
21:18:59 <ehird> But ByteStrings are better. 
21:19:40 <Deewiant> ehird: Some 8-10 bytes (?? I forget how many exactly) per char does not lead to speed 
21:19:54 <ehird> Deewiant: That's memory. 
21:20:09 <ehird> I can switch to [Int]. 
21:20:15 <Deewiant> As a bonus, linked lists aren't contiguous. 
21:20:24 <Deewiant> [Int] is the same size as [Char], isn't it? 
21:20:32 <ehird> I'll use a bloody ByteString. 
21:20:48 <ehird> A strict bytestring, even./ 
21:20:49 <oerjan> AnMaster: the fundamental reason for backslashes is so that you can copy things 
21:21:19 <oerjan> the looping happens by program self-replication, after all 
21:21:45 <AnMaster> Deewiant, go write a slashes interpreter for Linux x86_64 in asm! 
21:21:55 <ehird> Grr, you can't pattern match on bytestrings. 
21:22:05 * AnMaster wonders if a slashes compiler make any sense. 
21:22:07 <Deewiant> I'm not particularly interested in slashes. 
21:22:24 <Deewiant> And I'm done with asm for the time being. 
21:22:30 <oerjan> AnMaster: too self-modifying 
21:23:05 <AnMaster> an optimising and program folding compiler would work 
21:23:13 * AnMaster waits for oerjan to figure that out 
21:23:27 <oerjan> nah that's not my sort of thing 
21:24:28 <AnMaster> basically what ick does when given that command line option I forgot 
21:25:28 <ehird> *Main> run (B.singleton forwardSlash) 
21:25:30 <AnMaster> if program is deterministic and uses no input: run program, save output. Write a shell script wrapper for it. 
21:25:46 <oerjan> AnMaster: also that newer counter with less backslashes is quite deceptive, because i have just temporarily abbreviated <\\>\\\ to |  :D 
21:26:25 <oerjan> the older one at least used | internally, though inefficiently 
21:26:41 <oerjan> | is like a prefix really 
21:26:54 <oerjan> it "quotes" the next character 
21:27:10 <AnMaster> !slashes http://oerjan.nvg.org/esoteric/slashes/counter3.sss 
21:27:36 <oerjan> it sends the next lines as DCC CHAT 
21:32:31 <ehird> *Main> run $ B.pack [backSlash,backSlash,97,10] 
21:34:55 <ehird> oerjan: one thing's for sure 
21:35:02 <ehird> this bytestring haskell version will kick the perl interp's ass :) 
21:35:46 -!- GregorR-L has joined. 
21:37:58 <ehird> oerjan: so, you think that if you reach EOF in /foo, you stop executing? 
21:38:13 <ehird> now *that's* something haskell 
21:38:22 <ehird> i can't even exitSuccess 
21:38:24 <ehird> since I'm out of IO 
21:38:56 <ehird> oerjan: what about /foo\<EOF> 
21:39:04 <ehird> and yeah, Maybe sounds right 
21:39:10 <ehird> GregorR-L: no, it's '\' eof 
21:40:41 <ehird> O(n) cons is analogous to (:) for lists, but of different complexity, as it requires a memcpy. 
21:40:48 <ehird> time to restructure ::::)))))) 
21:41:11 <ehird> just have to track current string, trivial 
21:43:11 <AnMaster> <oerjan> it sends the next lines as DCC CHAT 
21:43:21 <ehird> you didn't accept? 
21:43:25 <AnMaster> <*status> DCC Chat Bounce (EgoBot): Timeout waiting for incoming connection [192.168.0.64:59319] 
21:43:32 * AnMaster tries to figure out the reason 
21:45:12 <GregorR-L> Uhh, you shouldn't have an incoming connection, you should be establishing an outgoing connection to EgoBot. 
21:45:22 <GregorR-L> And yes, even though some people have DCC problems, I still think this is the best solution :P 
21:48:29 <oerjan> ehird: hm and yeah, thue-morse prints all at the end 
21:48:45 <GregorR-L> !bf http://esoteric.sange.fi/brainfuck/bf-source/prog/beer.b 
21:48:47 <EgoBot> 99 Bottles of beer on the wall 
21:49:09 <GregorR-L> There, I increased the limit to be enough for 99 bottles :P 
21:50:07 <oerjan> GregorR-L: it would be nice if you could also accept long lines, it's sort of a tradition to do infinite lazy programs on bots here 
21:50:44 <GregorR-L> What do you mean by "infinite lines" ... 
21:50:56 <ehird> GregorR-L: for(;;)putchar('a') 
21:51:19 <GregorR-L> That's an infinite line alright :P 
21:51:23 <oerjan> ^ul ( *)(~:S(*)*~:^):^ 
21:51:24 <fungot>  * ** *** **** ***** ****** ******* ******** ********* ********** *********** ************ ************* ************** *************** **************** ***************** ****************** ******************* ******************** ********************* ********************** *********************** ************************ ...too much output! 
21:51:24 <AnMaster> <GregorR-L> Uhh, you shouldn't have an incoming connection, you should be establishing an outgoing connection to EgoBot. 
21:51:57 <GregorR-L> Oh, just tell you when it gets cut off? 
21:52:24 <oerjan> GregorR-L: for a start, actually print the line 
21:52:41 <EgoBot> ./interps/unlambda/unlambda.bin: file /tmp/input.21406: parse error 
21:52:49 <oerjan> !slashes http://oerjan.nvg.org/esoteric/slashes/counter4.sss 
21:52:57 <oerjan> that doesn't print anything 
21:53:04 <GregorR-L> It does print (truncated) very long lines. 
21:53:08 <oerjan> because there are no newlines in it 
21:53:20 <GregorR-L> Or at least, it's certainly supposed to :P 
21:54:09 <GregorR-L> OHHH, that program is an infinite loop. 
21:54:16 <GregorR-L> It'll get cut off before it accepts any input. 
21:54:31 <ehird> An infinite loop is the only way to output infinite characters. 
21:54:32 <AnMaster> << PRIVMSG #esoteric :!befunge98 'A,a,'A,@ 
21:54:32 <AnMaster> >> :EgoBot!n=EgoBot@codu.xen.prgmr.com PRIVMSG #esoteric :+A 
21:54:32 <AnMaster> >> :EgoBot!n=EgoBot@codu.xen.prgmr.com PRIVMSG AnMaster :<CTCP>DCC CHAT chat 1404135913 59867<CTCP> 
21:55:04 <oerjan> GregorR-L: but it doesn't output slowly, so why shouldn't it reach the buffer limit first, and get printed? 
21:55:25 <GregorR-L> oerjan: It always waits for either the program to complete or a newline to be printed :P 
21:55:29 <AnMaster> GregorR, bouncer seems to mangle it somehow 
21:55:41 <AnMaster> GregorR-L, fixed the \ bug yet? 
21:55:41 <oerjan> well that's what we don't want, then 
21:56:28 <AnMaster> and oerjan said it wasn't in his code 
21:56:45 <AnMaster> ok. Seems the perl one is broken? 
21:57:23 <oerjan> !sh echo "\\"hi there" 
21:57:23 <EgoBot> /tmp/input.21670: line 1: unexpected EOF while looking for matching `"' 
21:58:23 <EgoBot> ghc-6.8.2: no input files 
21:58:44 <EgoBot> /tmp/input.21837: line 1: cabal: command not found 
21:58:49 <AnMaster> * DCC CHAT to EgoBot lost (Remote host closed socket). 
21:59:09 <GregorR-L> AnMaster: That should be after you retrieved all the data. 
22:01:00 <AnMaster> GregorR-L, well I generally blanket ignore CTCP and DCC. Why? Because it is irritating when you wake up in the morning and see a list of pending (and timed out) DCCs with spambots that tried to DCC you during the night. 
22:01:37 <GregorR-L> Well that's too bad. DCC is a much-better way to handle long output, because I don't have to worry about flooding and users don't have to wait for lots of output. 
22:03:08 <AnMaster> meh. *writes a white list that overlays the blacklist* 
22:03:58 -!- puzzlet has quit (Read error: 60 (Operation timed out)). 
22:15:53 <fizzie> Is there some sort of limit for lots-of-output in the DCC chat thing too? 
22:16:23 <GregorR-L> No speed limits though, just a flat total limit. 
22:18:53 <fizzie> fungot: Are you disappointed that the other bots know all kinds of DCC tricks and bazillion languages and whatnot? 
22:18:54 <fungot> fizzie: ( ( oh yeah what)) 
22:20:10 <GregorR-L> EgoBot doesn't speak almost-English though. 
22:20:13 <fungot> oerjan: ( ( they have a lot 
22:20:37 <AnMaster> what? X just crashed. Someone give me a few lines of context above "<GregorR-L> EgoBot doesn't speak almost-English though." please 
22:20:37 <GregorR-L> !echo I WILL DEFEAT FUNGOT MUAHAHHAHAHAHAHAHAHAHHAHHHHAH 
22:20:40 <EgoBot> I WILL DEFEAT FUNGOT MUAHAHHAHAHAHAHAHAHAHHAHHHHAH 
22:20:40 <fungot> Available: agora alice c64 darwin discworld europarl ff7 fisher* ic irc jargon lovecraft nethack pa speeches ss wp youtube 
22:20:47 <AnMaster> (since I just reconnected to bouncer) 
22:20:53 <ehird> fungot: Oh yeah what 
22:20:54 <fungot> ehird: that i understood that you could 
22:20:59 <ehird> fungot: be a green piece of food 
22:21:00 <fungot> ehird: i need your help to get this treadmill inside and it my husband laughs everything you name it provided for us even after september eleven 
22:21:00 <GregorR-L> AnMaster: fungot is feeling down because EgoBot supports more languages. 
22:21:01 <fungot> GregorR-L: and you can chat while you play oh god they've got euka and spades and hearts and it it 
22:21:09 <ehird> fungot: even after september eleven 
22:21:09 <fungot> ehird: oh let's see sigh i didn't think it was 
22:21:14 <ehird> fungot: i see i see 
22:21:15 <fungot> ehird: excuse me but anyway um i mean 
22:21:19 <fungot> ehird: ( ( really uh)) did we look at each other every now and then a 
22:21:19 <AnMaster> GregorR-L, how was that determined? 
22:21:24 <ehird> fungot: really, did we? 
22:21:25 <fungot> ehird: ' cause think about it laughter laughter who knows maybe somebody else did um i'm kind of a 
22:21:30 <ehird> fungot: laughter laughter! 
22:21:31 <GregorR-L> AnMaster: Well, fungot speaks almost-English. 
22:21:32 <fungot> GregorR-L: um but but like i said nine one one they was aware of um 
22:21:38 <AnMaster> and why is the damn spell checker suddely set to Afrikaans!? 
22:22:04 <oerjan> ehird: i redesigned bct.sss to use about half the size, now it runs in perl but gives completely wrong output. 
22:22:04 <GregorR-L> My guess: Because Afrikaans is, in the English alphabet, the first language :P 
22:22:20 <AnMaster> GregorR, it complained it couldn't find the word list for Afrikaans. 
22:22:21 <ehird> oerjan: that's nice; my interp will still rule. 
22:22:36 <AnMaster> (that is because I don't have it installed duh) 
22:22:43 <AnMaster> GregorR, but yeah would make sense 
22:23:07 <oerjan> ehird: see you tomorrow then :) 
22:23:12 <ehird> What's that gotta do with what GregorR-L said 
22:23:13 <AnMaster> it usually starts with the one in LANG. Or English. Seems a bit random. 
22:23:28 -!- oerjan has quit ("Good night all"). 
22:23:49 <AnMaster> <ehird> What's that gotta do with what GregorR-L said <-- what has what got to do with it? 
22:23:54 <GregorR-L> it should be $LANG, fallback to C. 
22:24:26 <AnMaster> GregorR, LANG is sv_SE.UTF-8. But I always switch to English after starting client since I mainly chat in English channels. 
22:33:37 <AnMaster> GregorR, will the current hostmask change? 
22:33:50 <AnMaster> EgoBot!n=EgoBot@codu.xen.prgmr.com 
22:34:56 <GregorR-L> AnMaster: It will change to codu.org soon. 
22:35:19 <AnMaster> anyway I added the white list for it now 
22:35:47 <AnMaster> GregorR-L, but why does it close as "connection lost" instead of the usual "connection closed" 
22:35:54 <AnMaster> are you sure you follow the protocol? 
22:36:19 <GregorR-L> When I'm done, I just close the port. 
22:36:29 <AnMaster> GregorR-L, can you do it the proper way, whatever that is 
22:36:40 <GregorR-L> If I can figure out what the proper way is, probably :P 
22:38:55 -!- kar8nga has quit (Remote closed the connection). 
22:40:59 <GregorR-L> There seems to be some magical DCC CLOSE message, which isn't documented anywhere on Earth :P 
22:42:22 <AnMaster> if you saw a file ending in .es, what would you think it was? 
22:42:50 <AnMaster> GregorR, it seems to be "EMCAScript" says wikipedia. 
22:43:07 <AnMaster> GregorR, when it comes to IRC, few things are well documented. 
22:43:51 <GregorR-L> The problem is that the non-browser-based ECMAScript-land is quite fragmented, so a .es file is probably an ECMAScript file for a very particular interpreter. 
22:44:48 <AnMaster> I prefer to stick to languages where you have a high level of cross-implementation portability. Or possibly just one implementation 
22:45:40 <AnMaster> !sh echo -n 'Hello'; echo 'World' 
22:45:43 <GregorR-L> Well, that wasn't how it's done apparently :P 
22:46:14 <GregorR-L> Gawd that's a lame way to do this, but OK :P 
22:46:53 -!- tombom has quit ("Peace and Protection 4.22.2"). 
22:47:00 <AnMaster> GregorR, it is a reasonable way 
22:48:29 <GregorR-L> AnMaster: Unblock DCC from me so I can DCC CHAT you :P 
22:48:38 -!- zzo38 has joined. 
22:49:36 <zzo38> Netcat does not use the shell functions in Linux. So if I get Linux, I will need to write interactive netcat. 
22:49:47 <AnMaster> done, added exception for GregorR!n=gregor@65.183.185.209 
22:50:22 <AnMaster> GregorR-L, done. Added exception for GregorR-L-who-can't-ssh-to-desktop!n=gregor@c-76-105-254-150.hsd1.or.comcast.net 
22:50:41 <GregorR-L> I don't want to get wireshark running on my desktop over SSH, that's a PITA. 
22:50:54 <AnMaster> * DCC CHAT connection established to GregorR-L [192.168.0.64:55613] 
22:50:54 <AnMaster> * DCC CHAT to GregorR-L lost (Remote host closed socket). 
22:50:59 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 
22:51:11 <AnMaster> <*status> DCC Chat Bounce (GregorR-L): Timeout waiting for incoming connection [192.168.0.64:37086] 
22:51:11 <AnMaster> <*status> DCC Xfer Bounce (GregorR-L): Socket error [Cannot assign requested address] 
22:51:12 <GregorR-L> Well that didn't work properly at all :P 
22:51:21 <zzo38> Can you write 99 bottles of beer in Furryscript? It is not indended for stuff like that at all. But I think I have heard it sone in sendmail also, which isn't designed for that either. 
22:51:48 <GregorR-L> Never heard of Furryscript, although it sounds awesome :P 
22:51:53 <AnMaster> GregorR-L, turned off the bounce 
22:52:11 <AnMaster> * DCC CHAT connection established to EgoBot [64.62.173.65:10002] 
22:52:11 <AnMaster> * DCC CHAT to EgoBot lost (Remote host closed socket). 
22:52:37 <GregorR-L> Connection refused :P ... I'll try a different tact. 
22:52:43 <AnMaster> GregorR-L, connection timed out to you 
22:52:47 <GregorR-L> (With a different user, namely GregorR ) 
22:53:04 <zzo38> The sendmail codes is at: http://99-bottles-of-beer.net/language-sendmail-588.html the Furryscript codes is at: http://zzo38computer.cjb.net/furry/scripts/beer.txt 
22:53:05 <GregorR-L> I did a passive-chat to you because I don't have access to the router here, I can't poke any holes. 
22:53:46 <AnMaster> GregorR-L, I'm behind double NAT and poking holes is a PITA. 
22:54:04 <zzo38> The Furryscript codes sort of looks like it was designed for 99 bottles of beer, but actually, it wasn't. I'm just using the built-in function in different ways. 
22:54:07 <AnMaster> GregorR, plus highly dynamic ip 
22:54:19 <AnMaster> GregorR-L, for complex reasons. 
22:54:51 <AnMaster> GregorR, anyway, I don't think my client knows what passive DCC is 
22:55:04 <AnMaster> the bouncer might, but not the client 
22:55:19 <AnMaster> GregorR, passive dcc according to which model 
22:55:34 <zzo38> Furryscript is design for generator of things such as D&D adventure idea, video game names, etc. Look at it in my web-site. Also look at the individual script codes you can see how it is supposed to work. 
22:55:48 <AnMaster> GregorR, that model isn't supported here at all. 
22:56:15 <zzo38> For example, the ARG command actually reads a number from the category 0( but it was designed for multiple parameter codes inside of strings, such as <X | <One> | <Two> | <Three> > a dynamic number of arguments. 
22:56:45 <zzo38> Run it on the web-page at: http://zzo38computer.cjb.net/furry/webform.php 
22:57:04 <zzo38> See the video-games script for an example of the ARG command. And see the D&D adventure ideas script for an example of the plural command. 
22:58:24 <zzo38> If you want to input code to Furryscript, you will need to get Furryscript.php (copy and paste the text from the web-page, or use a different program to remove the color-codes) and run it as a command-line program with the filename on the command-line argument. 
22:58:55 <AnMaster> anyway. What has this got to do with netcat. 
22:58:55 <zzo38> And if you make some codes, post them, I would like to see them so I can add them to my web-site! 
22:59:12 <zzo38> Nothing to do with netcat. That was an unrelated comment. 
22:59:23 <AnMaster> zzo38, and that comment about netcat made no sense either 
22:59:38 <zzo38> Maybe not, but sendmail isn't an esolang either. I just wanted to post how it was done in similar things like that. 
22:59:54 <GregorR-L> AnMaster: So what if it's not an esolang, it's still interesting :P 
23:00:07 <AnMaster> is it? looks like a text generator language to me 
23:00:57 <zzo38> The netcat comment has to do with, one day I went to FreeGeek office, I tried to access gopher and IRC through netcat but it doesn't do things like Windows push F2 for repeat up to something, arrow to select previous entry, etc. That is why I should write netcat interactive one day, for Linux only. 
23:01:37 <zzo38> Try generating a list of adventure ideas with it to see how it works. http://zzo38computer.cjb.net/furry/webform.php?which=adventure.txt&count=20 
23:01:43 <AnMaster> zzo38, on Windows that line editing is all in cmd.exe 
23:01:57 <AnMaster> try using telnet instead of netcat 
23:02:35 <AnMaster> "Furries are intentionally catching lycanthropy." <-- wut 
23:03:09 <zzo38> Telnet doesn't do line editing either. Unless there is a program for that. But if I should write interactive netcat with mode for display of control-codes, color-codes, and line-editing (including the F2 of Windows, very useful in IRC but should be useful for other protocols also.) 
23:03:34 <AnMaster> but maybe it is on the server side 
23:04:21 <zzo38> AnMaster: That's just one of the entries in the list. There are many more, which include parameters and various other things. See (View selected script codes) to see the codes so you can know how the parameters are substituted. Also look at the codes in video-game-names if you want to see how they detect duplicates with that. 
23:04:54 <zzo38> Telnet is good when the server accepts telnet commands but netcat (or netcat interactive) should be use for raw linemode protocols,,,... 
23:04:56 <AnMaster> Spells and psionic powers start having weird quantum effects. 
23:05:07 <zzo38> I like that one also! 
23:05:10 <AnMaster> The gods announce a holiday for Paladins. A Paladin is not bound by his code on this day. 
23:05:52 <AnMaster> Minotaurs want to live in your village but don't know the common language and refuse to learn it.  <-- that's stupid 
23:05:54 <zzo38> I didn't write all of them by myself but I did many of them, and I added parameters to many of them taken from other sources, also. If you have other ideas to add (with or without parameters), I would like to add it on. 
23:06:10 <AnMaster> zzo38, so a lot of them are hard coded? 
23:06:16 <AnMaster> I was hoping markov chain style 
23:06:27 <zzo38> Many are hard-coded and many have parameters, and some of the parameters have their own parameters even. 
23:06:42 <AnMaster> A bulette is tearing apart viable farmland. was generated twice 
23:07:15 <zzo38> It can generate things twice. Furryscript itself only generates one per call to the program, but the web interface calls it multiple times and therefore might generate duplicates. 
23:07:37 <AnMaster> A new noble seeks to clear a patch of wilderness of all monsters.  <-- sounds like most computer RPGs/adventure games 
23:08:38 <zzo38> You are right. But now I added a second one. <A new noble seeks to stop another new noble from clearing a patch of wilderness of all monsters> in addition to keeping the other one also 
23:08:48 <AnMaster> zzo38, "The grim reaper has taken a human aprentice. " <-- you stole that from Discworld. Admit it. 
23:09:29 <zzo38> AnMaster: No I didn't. Probably someone else stole it from Discworld and I just happened to find it listed somewhere, I certainly know nearly nothing about Discworld. 
23:09:43 <AnMaster> Two hobgoblin bards argue about wheelbarrows. <-- exactly how is that an adventure :D 
23:10:09 <zzo38> They aren't necessarily full adventures, they could be parts of adventures (when you want to modify parts), etc 
23:10:27 <GregorR-L> "Minimal Booty Tactics"   "Fruity Music Squadron"   "Chinese Cheese Jamboree" 
23:10:37 <AnMaster> A priest asks you to rescue his/her pet from a tree. <-- Before fire fighters were invented. 
23:10:58 <AnMaster> err is that right English word? 
23:13:17 <zzo38> I think if the DM combined what he already had with some of these ideas, it would make a interesting D&D game 
23:13:34 <AnMaster> btw, the xkcd title/alt-text seems cryptic today 
23:13:36 <zzo38> I don't play D&D like other people, I am a good defensive player at D&D. 
23:14:06 <AnMaster> The entire game so far has been an illusion. 
23:14:31 <AnMaster> I'm always a defensive player, in any game I play 
23:15:00 <AnMaster> (which is why I suck at car racing games and similar) 
23:15:40 <AnMaster> hah, as the last item listed was "The King of Nowhere hires you to secretly solve tense situtations." 
23:16:00 <zzo38> Defensive play is not as simple as you might think. It is more interesting than offensive play in my opinion. Not only am I defensive play, my character has NG alignment so I try to good thing as well, like not kill someone if it is not necessary and if someone steal something I will give them back the money for buying a new one. 
23:16:42 <zzo38> Many people want to play you have to kill everyone and steal their stuff but D&D is not a computer game! If you want to kill some monsters or whatever and steal their stuff, you should hire murderers and thieves, not adventureres 
23:17:00 <zzo38> And it's D&D 3.5 edition, in case you didn't know. 
23:17:22 -!- KingOfKarlsruhe has quit (Remote closed the connection). 
23:17:22 <AnMaster> It turns out the tarrasque is really just cold. Find out how to knit him a sweater. 
23:17:27 <ehird> 22:49 zzo38: Netcat does not use the shell functions in Linux. So if I get Linux, I will need to write interactive netcat. 
23:17:47 <AnMaster> it was confusing yes, but in the end it was explained 
23:18:06 <ehird> but I tried to read a bit 
23:18:20 <ehird> 23:00 zzo38: The netcat comment has to do with, one day I went to FreeGeek office, I tried to access gopher and IRC through netcat but it doesn't do things like Windows push F2 for repeat up to something, arrow to select previous entry, etc. That is why I should write netcat interactive one day, for Linux only. 
23:18:53 <AnMaster> ehird, is that allowed if nc isn't GPL compatible btw 
23:19:04 <ehird> AnMaster: Legally, yes. According to rms, probably no. 
23:19:15 <ehird> zzo38: nc is netcat, "rlwrap foo" runs foo with line editing capabilities 
23:19:22 <zzo38> Use GNU netcat if normal netcat doesn't GPL compatible 
23:19:23 <AnMaster> does it count as linking? Will Stallman use this to say every software ever made that uses the console has to be GPL? 
23:19:24 <ehird> rlwrap wraps other programs to use readline 
23:19:31 <ehird> AnMaster: Nope, yes, 
23:19:39 <ehird> and not in the good way, so. 
23:19:42 <GregorR-L> rlwrap so doesn't count as linking :P 
23:19:52 <GregorR-L> And RMS is totally insane in the good way. 
23:19:53 <AnMaster> Follow the interesting drama in the next episode of FSF 
23:19:59 <zzo38> OK. Their computers are Ubuntu, does Ubuntu include rlwrap can I just type something like "rlwrap nc zzo38computer.cjb.net 70" and it will work? 
23:20:14 <ehird> zzo38: You have to install rlwrap. 
23:20:17 <AnMaster> ehird, you answered too quickly 
23:20:22 <zzo38> RMS is too impractical, lately, as far as I know. 
23:20:31 <ehird> zzo38: the incident we're referring to was in 1992 
23:20:46 <ehird> GregorR-L: If the clisp incident counts as viral, so does rlwrap. 
23:22:16 <zzo38> If I make up my own Linux distribution then, rlwrap and netcat will be included and a command "nci" (netcat interactive) to run netcat with readline 
23:22:31 <GregorR-L> "Post-Apocalyptic Thunder Psychiatrist" I would totally play this game. 
23:22:37 <zzo38> And I make my own window manager also 
23:23:25 <ehird> It's replacing "" with b. 
23:23:25 <AnMaster> it should match every zero width 
23:23:59 <AnMaster> zero width like ^ and $ in regex 
23:24:06 <zzo38> Do you know something about optimize convert brainfuck to Javascript? 
23:24:30 <zzo38> I tried to make it optimize but I want to know if it can be improved optimized 
23:24:37 <ehird> zzo38: See esotope-bfc. 
23:24:38 <AnMaster> you could write a javascript backend for esotope-bf 
23:24:44 <ehird> http://code.google.com/p/esotope-bfc/ 
23:24:50 <ehird> compiles hello world to 
23:24:50 <ehird>         PUTS("Hello World!"); 
23:24:55 <AnMaster> he split the code generator out last I looked 
23:25:12 <zzo38> It is into Javascript because of XUL-runner is programmed in Javascript, so when a client-script is being loaded from gopher it has to convert to Javascript. 
23:25:35 <zzo38> My optimizer converts "," to "yield;" 
23:25:43 <ehird> zzo38: you really want to use esotope for any hugely-optimizing BF optimizer. 
23:26:35 <zzo38> Yes it does convert "+++" to "t[p]+=3;" 
23:26:46 <ehird> zzo38: does it convert 
23:26:48 <ehird> >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-] 
23:26:48 <ehird> <.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+. 
23:26:52 <ehird> print("Hello, world!") 
23:27:01 <zzo38> Yes yes, it does do "[-]++++" into "t[p]=4;" as well. But it doesn't do everything. 
23:27:13 <ehird> If not ... write an http://code.google.com/p/esotope-bfc/ backend ;-) 
23:27:19 <zzo38> No. It doesn't do that last one. 
23:27:23 <AnMaster> zzo38, and ++>-<++ into t[p]+=4; t[p+1]-=1; 
23:27:25 <ehird> it also optimizes multiplication, all balacned loops, ... 
23:27:34 <AnMaster> zzo38, that is. skip the pointer move 
23:28:50 <zzo38> So far my program doesn't optimize I/O, it alawys converts "," to "yield;" and "." to "O();" 
23:28:51 <AnMaster> !befunge98 http://rage.kuonet.org/~anmaster/nosuchfile 
23:29:05 <AnMaster> !befunge98 http://rage.kuonet.org/~anmaster/mycology.b98 
23:29:28 <GregorR-L> Hey, http://rage.kuonet.org/~anmaster/nosuchfile doesn't exist! :P 
23:29:42 <AnMaster> GregorR-L, indeed it doesn't. Was wondering about error message. 
23:30:18 <zzo38> Look at my codes if you want to, to help me tell me what I am missing? 
23:30:22 <AnMaster> also I think your version is outdated? 
23:30:52 <ehird> GregorR-L: he probably released a new cfunge 
23:30:59 <zzo38> And I can't use esotope-bfc because it is Python and I need the optimizer also be written in Javascript. 
23:31:10 <AnMaster> locally:        That the interpreter's version is 41 
23:31:11 -!- inurinternet has quit (No route to host). 
23:31:19 <AnMaster> <EgoBot>  That the interpreter's version is 40 
23:31:29 <AnMaster> GregorR, it was some time ago (weeks?) 
23:31:30 <zzo38> See my codes in http://zzo38computer.cjb.net/vonkeror/Vonkeror.zip the file modules/brainfuck.js contains the optimizer of brainfuck into Javascript. 
23:31:53 <AnMaster> GregorR, what is your file with the version info 
23:31:55 <GregorR-L> AnMaster: If you think that I'm going to follow the versions of all the interpreters installed, you're quite severely incorrect :P 
23:32:01 <AnMaster> so I can know what rev to diff from 
23:32:15 <GregorR-L> !sh cat interps/cfunge/USED_VERSION 
23:32:15 <EgoBot> http://rage.kuonet.org/~anmaster/cfunge/ 0.4.0+bzr:trunk:r763 
23:32:48 <ehird> GregorR-L: pojdpaosdjpoajp!!!!!!! ! 
23:32:50 -!- Sgeo[Pidgin] has joined. 
23:32:56 <ehird> \\\\\\//////λλλλλλλλ 
23:33:04 <ehird> ⁹⁸⁰‽↙ababababau˙ª´• 
23:33:11 <Sgeo[Pidgin]> Is the guest account of Ubuntu wiped at logoff? 
23:33:11 <GregorR-L> Sgeo[Pidgin]: Having "[Pidgin]" on your name is just advertising "I use shitty IRC clients" 
23:33:15 <AnMaster> <GregorR-L> AnMaster: If you think that I'm going to follow the versions of all the interpreters installed, you're quite severely incorrect :P <-- you could sign up for the news letter (sourceforge project news simply) 
23:33:24 <Sgeo[Pidgin]> If so, then I think that means it's secure enough for my needs 
23:33:25 <zzo38> My program always wraps values of cells 0 to 255, and has two new commands * and ~ for using the second tape. I want to know if there is a way for checking when it doesn't need to wrap and therefore optimize it better. 
23:33:25 <ehird> Sgeo[Pidgin]: Storing your WORLD-ENDINGLY IMPORTANT SSN? 
23:33:35 <ehird> Sgeo[Pidgin]: lern2gpg 
23:34:34 <AnMaster> GregorR, does plain diff work for you? 
23:35:04 <zzo38> Another thing that netcat does in Windows, if you are typing, it won't interrupt what you are typing with the output, it will let you finish typing first. Does readline do that? 
23:35:46 <ehird> zzo38: that's awful 
23:35:51 <ehird> it means you miss out on stuff :P 
23:35:58 <ehird> readline will repeat the line again after 
23:36:01 <ehird> so you don't lose the trail 
23:36:41 <GregorR-L> Also, is zzo38 looking for http://codu.org/rawirc.c ? :P 
23:36:57 <AnMaster> GregorR-L, http://rage.kuonet.org/~anmaster/r763_to_r777.diff is in the cfunge source dir directly. Then you need to change USED_VERSION to 0.4.1+bzr:trunk:r777 
23:37:07 <AnMaster> GregorR-L, does that work for you 
23:37:14 <AnMaster> GregorR, make clean and make after 
23:37:20 <zzo38> OK if readline just puts output and then repeats the typing line afterward so that you can finish typing, that is even more better than Windows. Now the only thing needed is control-codes display mode and to make your typing a different color than the server's typing and then it is completely good. 
23:37:56 <ehird> Bam! Underfeatured IRC client. 
23:38:38 <AnMaster> !sh cat interps/cfunge/USED_VERSION 
23:38:39 <EgoBot> http://rage.kuonet.org/~anmaster/cfunge/ 0.4.0+bzr:trunk:r777 
23:38:50 <AnMaster> !befunge98 http://rage.kuonet.org/~anmaster/mycology.b98 
23:39:32 <AnMaster> -zzo38- VERSION I am using netcat on Windows right now. But one day I will get Linux instead and maybe use rawirc.c or netcat with readline 
23:39:55 <AnMaster> zzo38, anything wrong with a normal irc client 
23:39:59 <GregorR-L> One big benefit of rawirc.c over netcat: It PINGs and PONGs for you :P 
23:40:04 <Sgeo[Pidgin]> "Student Information effective from Fall 2008 to The End of Time" 
23:40:12 <ehird> GregorR-L: freenode doesn't need pings/pongs 
23:40:23 <zzo38> I don't need to reply to your PING message. The rawirc.c that you posted looks interesting, I will look at it more, a bit 
23:40:29 <GregorR-L> ehird: FreeNode has a very long timeout for pings/pongs, but it does get pissed at you if you never pong. 
23:40:34 <ehird> 23:36 GregorR-L: Also, is zzo38 looking for http://codu.org/rawirc.c ? :P 
23:40:46 <ehird> GregorR-L: Very long = weeks? 
23:40:46 <AnMaster> -GregorR-L- VERSION xchat 2.8.6 Linux 2.6.29-1-686 [i686/2.40GHz] 
23:40:49 <ehird> optbot never responded to ping 
23:40:53 <ehird> and never got disconnected 
23:41:07 <AnMaster> ehird, true, freenode doesn't require it 
23:41:08 <GregorR-L> ehird: Idonno, I recall EgoBot getting bumped. Maybe its only if you send no output whatsoever. 
23:41:23 <zzo38> The automatic ping-pong is useful. What would be very useful is a option to enable/disable that option, in case for whatever reason, you want to do it manually. 
23:41:26 <ehird> Freenode is the only IRC network worth bothering with ;-) 
23:41:33 <AnMaster> <zzo38> The automatic ping-pong is useful. What would be very useful is a option to enable/disable that option, in case for whatever reason, you want to do it manually. 
23:41:35 <ehird> zzo38: WHY would you want to do it manually‽‽ 
23:41:48 <GregorR-L> zzo38: I haven't changed rawirc.c in years, but you can delete the relevant lines :P 
23:41:48 <ehird> ahh zzo38 is great 
23:42:03 <GregorR-L> AnMaster: BECAUSE THEY'RE FOR PUSSIES 
23:42:15 <AnMaster> -GregorR-L- VERSION xchat 2.8.6 Linux 2.6.29-1-686 [i686/2.40GHz] 
23:42:37 <ehird> <GregorR-L> I WISH I HAD PUSSY 
23:42:47 <zzo38> Probably no reason to do it manually, but it should be configurable, together with configurable colors and keyboard shortcuts (rawirc.c uses ^P for PRIVMSG and ^O for last channel, but if you could add more with a configuration file, would be useful, 
23:42:56 <ehird> zzo38: The whole program should be configurable. 
23:43:01 <ehird> The single configuration option is program_source. 
23:43:14 <ehird> This is more flexible in case you want to, say, make toast. 
23:43:28 <ehird> Actually that's been done 
23:43:38 <AnMaster> I was just about to mention it 
23:43:57 <zzo38> I like automatic ping-pong, so I don't want to delete it. But if I modify it I will make automatic ping-pong configurable, but still enabled by default (I have no reason to disable it, but later on there might be a use for it, in case you want to test something, maybe) 
23:43:58 <AnMaster> because it is so configurable. More than any other normal client 
23:44:06 <AnMaster> while still doing most of the normal client stuff 
23:44:13 <ehird> zzo38: to test something couldn't you use netcat? 
23:44:32 -!- BeholdMyGlory has quit (Remote closed the connection). 
23:44:46 <Sgeo[Pidgin]> Would it be bad for me to ask the average GPA of people in here? 
23:44:54 <AnMaster> Sgeo[Pidgin], what the hell is GPA 
23:45:02 <ehird> AnMaster: school thing. 
23:45:07 <ehird> http://en.wikipedia.org/wiki/Grade_(education) 
23:45:11 <ehird> grade point average 
23:45:30 <ehird> Sgeo[Pidgin]: this one ... goes up to 72. 
23:45:32 <GregorR-L> I got an A- this term so I got demoted to a 3.98 >: ( 
23:45:37 <ehird> It's like going up to 11, but moreso. 
23:45:53 <AnMaster> Sgeo[Pidgin], in Sweden there is one that goes up to 20 
23:46:02 <ehird> Or is it 22, AnMaster? 
23:46:08 <Sgeo[Pidgin]> Got an A in all classes but two. One I got an A-, and one I got a C 
23:46:15 <ehird> AnMaster: http://en.wikipedia.org/wiki/Up_to_eleven 
23:46:28 <ehird> it's from Spinal Tap 
23:46:38 <ehird> I know what you meant. 
23:46:39 <GregorR-L> AnMaster: In the US, grades are basically: A=4.0, B=3.0, C=2.0, D=1.0, F=0.0, then average by number of credits. 
23:46:44 <AnMaster> it is used when you apply for university 
23:46:48 <ehird> The phrase was coined in a scene from the 1984 mockumentary/rockumentary This Is Spinal Tap by the character Nigel Tufnel, played by Christopher Guest. In this scene Nigel gives the rockumentary's director, Marty DiBergi, played by Rob Reiner, a tour of his stage equipment. While Nigel is showing Marty his Marshall guitar amplifiers, he points out one in particular whose control knobs all have the highest setting of eleven (unlike standard amplifiers, wh 
23:46:50 <ehird> ose volume settings are typically numbered from zero to ten), believing that this numbering actually increases the volume of the amp ("It's one louder."). When Marty asks why the ten setting is not simply set to be louder, Nigel pauses, clearly confused, before responding, "These go to eleven".[2][3] 
23:46:51 <AnMaster> after you finished high school 
23:47:02 <GregorR-L> AnMaster: SO, if the max value is 20, then divide by 5 to get something roughly equivalent to US GPA. 
23:47:09 <zzo38> Another feature to add to rawirc (I might add it, one day) is if you type PASS, it will echo the rest of your command as asterisks regardless of what you actually type (also configurable, of course). 
23:47:22 <pikhq> Sometimes those numbers, in high school, are incremented for honors or college credit courses. 
23:47:25 <ehird> Couldn't you just type asterisks, zzo38? 
23:47:44 <GregorR-L> ehird: It will ECHO the rest of your command as asterisks :P 
23:47:45 <pikhq> Making for 5.0 semesters being theoretically possible. 
23:47:48 <ehird> oh for the PASS command 
23:47:54 <ehird> that's still ridiculous :-P 
23:48:10 <zzo38> What if your password isn't asterisks? The reason is so that you can type in your password and it is not displayed on the screen 
23:48:17 <GregorR-L> AnMaster: WE ARE USA. YOU HAVE NO CHANCE TO SURVIVE MAKE YOUR TIME. 
23:48:21 <AnMaster> and we have different systems in primary school, high school and university. 
23:48:25 <ehird> You're remarkably anti-US, AnMaster; it makes you look even more idiotic than UScentric people 
23:48:28 <Sgeo[Pidgin]> My HS cumulative GPA was 12.569... making me wonder what the max for that is 
23:48:29 <pikhq> SOMEONE SET US UP THE BOMB. 
23:48:59 <ehird> GregorR-L: Oh burn. 
23:50:50 <AnMaster> IG (not passed), G (passed), VG (passed with excellence), MVG (passed with lots of excellence) is the basic system used in Sweden. For primary and high schools. At university level there is U (not passed) G (passed) VG (pased with excellence) 
23:51:20 <ehird> Passed with lost of excellence sounds so much funnier than summa cum laude. 
23:51:41 <pikhq> Those don't seem very high-grained. 
23:51:46 <ehird> Well, maybe it translates to magna cum laude 
23:51:55 <pikhq> Not that A,B,C,D,F is very finely grained, either... 
23:52:15 <GregorR-L> pikhq: That's why we have this A-, B+, B-, C+ sh** :P 
23:52:22 <ehird> Wait, there's no E grade in the US? 
23:52:41 <AnMaster> <ehird> Passed with lost of excellence sounds so much funnier than summa cum laude. <-- I didn't remember the Latin term 
23:52:43 <pikhq> GregorR-L: My school had them, but didn't apply for the GPA. 
23:53:06 <GregorR-L> ehird: A, B, C and D are just lettered from A, but "F" isn't meant to be the next letter, it stands for "failed" 
23:53:07 <pikhq> A* = 4.0, B* = 3.0, C* = 2.0, D* = 1.0, F* = 0.0. 
23:53:18 <ehird> GregorR-L: AAAAAAAAAAAAAAA THAT SUCKS THERE NEEDS TO BE AN E GRADE 
23:53:20 <AnMaster> it is "MVG = Mycket Väl Godkänd". Literal translation: "Much Well Passed". 
23:53:21 <pikhq> Oh, and D was very much a passing graid. 
23:53:27 <AnMaster> which just doesn't work in English ehird 
23:53:54 -!- Judofyr has quit (Remote closed the connection). 
23:53:57 <AnMaster> <ehird> Well, maybe it translates to magna cum laude <-- yes 
23:54:06 <AnMaster> and then VG would be cum laude 
23:54:10 <ehird> In ascending order: F, D, C, B, A, ´, ¥, ↓, œ, ‽, *BEEP*, 
23:54:12 <ehird> Segmentation fault 
23:54:34 <AnMaster> GregorR-L, everyone know English is a mix of Germanic and Latin languages. Oh and a bit of celtic too iirc. 
23:54:45 <GregorR-L> AnMaster: Latin only through French. 
23:55:00 <ehird> A new horror movie. Out Summer. 
23:55:10 -!- darthnuri has joined. 
23:55:19 <ehird> And the whole of Franc 
23:55:22 <ehird> and the French language itself 
23:55:32 <Gracenotes> argh, why do I have the word 'stewart' stalked 
23:55:48 <pikhq> AnMaster: Mostly place names are Celtic. 
23:55:48 <GregorR-L> Gracenotes: Because you're such a French Stewart fan? 
23:56:00 -!- darthnuri has changed nick to inurinternet. 
23:56:10 <Gracenotes> oh yes, now I remember, it's because of James Stewart's calculus book 
23:56:28 <Sgeo[Pidgin]> "The following survey pages must be completed prior to accessing the Registration:" 
23:56:32 <pikhq> ( *cester == unholy amalgamate of Celtic and Latin) 
23:56:50 <Gracenotes> which I don't have an ebook of by the way. 
23:57:05 <pikhq> Something like "town"? 
23:57:06 <GregorR-L> Gracenotes: Neither do I. And neither does French Stewart. 
23:57:24 <pikhq> Kinda screwy when you consider that my last *name* is Worcester. 
23:57:40 <ehird> pikhq: Whenever I think Worcester I think http://en.wikipedia.org/wiki/Worcestershire_sauce 
23:58:06 <GregorR-L> Pronounced "Warshrrrhshfshouapfhdoiafs" 
23:58:09 <pikhq> ehird: Well, Worcestershire sauce comes from the shire containing the town that gives me my last name... 
23:58:13 <ehird> (Which I seem to alternate between liking and hating every time I try it) 
23:58:27 <pikhq> "Woostershir sauce" is the pronounciation, BTW. 
23:58:38 <pikhq> (I'm not giving you IPA) 
23:59:20 <ehird> War sest er sher. ← say it ten times quick 
23:59:24 <pikhq> BECAUSE ENGLISH SUXORS. 
23:59:48 <pikhq> ... Ten times quick will get you close to how it's actually pronounced, though. 
23:59:51 <ehird> I was just doing it the obvious way