00:00:13 Which picture? 00:01:31 Picture for Vs Unisystem display to fit the Wreck-it Ralph on 00:22:18 "undefined * undefined === NaN" is false in the two (2) JavaScripts I tried. 00:22:31 null * null does === 0, though. 00:23:15 fizzie++ 00:23:28 And the former is probably only because NaN === NaN is false too. 00:23:38 kmc: you gotta be careful with your ===s 00:24:10 Time to learn about pullbacks?! 00:25:12 (It's also all because ToNumber of Undefined is NaN, and ToNumber of Null is +0.) 00:26:19 do we have a js bot in here...... 00:27:36 Odds are not good. 00:27:42 `js 00:28:08 aw. 00:28:13 Rhino 1.7 release 2 2010 02 06 \ js> 00:28:14 It's still working, I think. 00:28:16 Well, won't you look at that. 00:28:23 HackEgo: Feeling a bit slow today? 00:28:28 kmc, have you seen wat? 00:29:01 http://www.youtube.com/watch?v=THERgYM8gBM 00:29:50 `js 1 00:29:55 js: Couldn't read source file "1: 1 (No such file or directory)". 00:30:00 `run echo 1 | js 00:30:06 Rhino 1.7 release 2 2010 02 06 \ js> 1 \ 1 \ js> 00:30:53 I don't know why that's being so nasty. 00:30:56 `run js -e 'print([undefined*undefined, null*null]);' 00:31:00 js: "", line 1: Unexpected end of file \ js: print([undefined*undefined, \ js: ..........................^ \ js: Couldn't read source file "null*null]);: null*null]); (No such file or directory)". 00:31:10 Compare: http://sprunge.us/QMTL 00:31:13 good program 00:32:05 Okay, there is a bit of a version difference. 00:32:24 `run js -e 'print([undefined*undefined,null*null]);' 00:32:29 NaN,0 00:32:48 But it almost seems like a quotation problem, that the -e argument gets word-splitted one extra time. 00:33:15 `run js -e 'Array(16).join("wat" -1)' 00:33:19 js: "", line 1: missing ) after argument list \ js: Array(16).join("wat" \ js: ...................^ \ Invalid option "-1)" \ Usage: java org.mozilla.javascript.tools.shell.Main [options...] [files] \ Valid options are: \ -?, -help Displays help messages. \ -w Enable warnings. \ -version 100|110|120|130| 00:33:26 Yeah, it's because of this: 00:33:27 `run tail -n 1 $(which js) 00:33:28 ​$JAVA_CMD $JAVA_OPTS -classpath $JAVA_CLASSPATH $JAVA_MAIN $@ 00:33:39 In current versions, it has "$@" instead of plain $@ there. 00:36:00 `run sed -i -e 's/$@/"$@"/' $(which js) # what do you mean permissions? 00:36:01 sed: couldn't open temporary file /usr/bin/sedimAGpB: Read-only file system 00:36:19 I did my best. 00:37:42 `js print([undefined * undefined, null * null]); /* bin/js saves the day */ 00:37:46 NaN,0 00:38:20 `js Array(16).join("wat" -1) + " Batman" 00:38:24 No output. 00:38:27 :( 00:38:28 -!- sebbu has quit (Ping timeout: 248 seconds). 00:39:09 `js print(Array(16).join("wat" -1) + " Batman") 00:39:13 NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN Batman 00:39:33 It does still have the Rhino thing of not printing out the result implicitly. 00:39:44 (If it's in -e.) 00:46:42 oh, JS time? 00:49:00 `js ([]+[][[]])[++[+[]][+[]]] 00:49:05 No output. 00:49:11 `js print(([]+[][[]])[++[+[]][+[]]]) 00:49:16 n 00:49:28 Very nice. 00:50:29 Well, you could get away without the print() 00:50:50 I'm still not completely sure if +()[] is the minimal charset for writing any program in JS 00:50:53 You might need ! 00:52:59 -!- hagb4rd has joined. 00:55:31 -!- sebbu has joined. 00:55:31 -!- sebbu has quit (Changing host). 00:55:31 -!- sebbu has joined. 00:58:47 so apparently mcbridge doesn't wear shoes 00:58:51 *mcbride 01:00:02 i hope this information is useful to someone 01:03:05 How do you know? 01:05:04 i know a cs student at strathclyde 01:05:24 -!- WeThePeople has joined. 01:17:21 -!- ogrom has quit (Quit: Left). 01:23:36 -!- carado has quit (Ping timeout: 256 seconds). 01:35:32 -!- Frooxius has quit (Ping timeout: 248 seconds). 01:42:34 Hey Phantom_Hoover 01:42:42 We need a brick stat 01:42:46 http://esolangs.org/wiki/Triforce 01:43:09 Hmm, ok, so it's easier to do some things in that language 01:44:00 "The language and name is inspired by the Triforce of the Legend of Zelda series." 01:56:48 -!- nooga has quit (Ping timeout: 252 seconds). 02:11:57 "It is not yet possible to input and store a character." 02:12:03 "⧏ Input a character and store it in the cell at the pointer" 02:12:06 eh 02:30:05 -!- WeThePeople has quit (Quit: Leaving). 02:31:58 -!- madbr has joined. 02:32:24 designing a cpu architecture is hard :o 02:32:25 sup 02:33:25 it's like 02:33:29 madbr: What CPU architecture were you trying to design? 02:33:51 that's an odd question. what are you supposed to say, ARM? 02:33:53 ARCHIPELAGO 02:33:54 I'm giving up on trying to do a 32bit follow up to the 65816 02:34:12 a cpu archipelago sounds like fun. 02:34:17 that architecture is butts 02:34:41 it's essentially impossible to do a fast pipelined version 02:35:02 without turning it into an out of order monstruosity 02:35:09 I do also want to design a computer architecture for audio/video processing using explicitly parallel computing, which can be made efficient both on FPGA and on ASIC. 02:35:48 zzo38: why not check colorforth computer? 02:36:14 afaik it's business ready 02:36:15 fftw: ColorForth is an operating system (for PC), not a computer, I think? Isn't it? 02:36:38 http://sprunge.us/BLQC zcat, wheeee 02:36:40 yeah, but moore made a computer specially for it 02:36:47 zzo: I think you should start with a RISC 02:37:01 p144 or something 02:37:14 and bolt-on the extra parallel stuff 02:37:49 Actually in this computer design I will have more than one component; the CPU will be ARM2 without a coprocessor, but I want to make up the audio/video unit too. 02:37:52 GA144. sorry 02:38:51 and it's not colorforth but arrayforth. Hmm, big news! 02:39:20 zzo: maybe you should do it as an ultra configurable DMA transfer chip 02:39:21 I do know of ArrayForth. It is not quite what I am looking for either. 02:39:30 madbr: How would that work? 02:40:07 like, you have something like a set of "instruction registers" on the dma chip 02:40:27 you fill those registers with your "program" 02:40:45 then you "start the transfer" 02:41:30 the chip churns until it's done with its load 02:42:51 To give examples of what I intend to do, includes: emulating the Famicom PPU and APU, decoding Ogg Vorbis/Theora and other open source codecs (and placing overlays), and doing all of these things simultaneously; but have it programmable rather than fixed to any of these purposes. 02:43:35 ogg vorbis is like super complicated :O 02:43:36 (I mean both the NTSC Famicom and the RGB Famicom) 02:43:52 -!- Nisstyre-laptop has quit (Quit: Leaving). 02:44:05 madbr: How powerful would it have to be to decode them? 02:44:53 I'd target adpcm 02:45:03 vorbis is like 02:45:10 a huge ass MDCT 02:45:32 plus some weird channel coupling and base spectrum stuff 02:45:43 plus a mountain of huffman decrunching 02:46:35 huffman decrunching is hard to parallelize 02:47:20 the whole thing is super complex and multistep 02:47:43 Well, the decoding does not entirely have to be done on the audio/video processor; the ARM2 CPU can be used partially too, if it is not busy with other things. 02:49:07 as for the nes apu, depends if you want a cycle by cycle emulation 02:49:18 or scanline per scanline is good enough 02:49:29 most emulators are per scanline I think 02:49:30 Yes, to do want a cycle by cycle emulation. 02:49:40 oh god 02:50:30 that's not going to be pretty 02:51:22 For NTSC PPU, including each half-clock (there are eight per pixel), which goes through a D->A and then just output directly; for RGB PPU it is a bit different; it is selected from a palette and then send to digital RGB output port. (It is not needed to support NTSC and RGB mode simultaneously) 02:51:55 I think in that case the best way is either NES emulator running on the ARM2 02:52:05 or nes emulation on the FPGA 02:52:34 the PPU has insane memory access patterns that only make sense for 8 bit and ultra slow ram 02:52:48 same thing for the 6502 cpu 02:52:49 Of course it will have much of emulation running on the ARM2, but video and audio should be emulated separately. 02:52:55 dude 02:53:09 how fast is the arm 02:53:26 This computer is not meant to only emulate the NES/Famicom; it is meant to run other programs too! 02:53:57 They said this ARM2 clone runs at 40 MHz on the Xilinx Spartan 6. But maybe it can be upgrated to work with newer models too 02:54:12 (The newest Xilinx FPGA model is 7, not 6) 02:54:15 hm 02:54:42 40 MHz is not enough for the audio/video. 02:54:55 gba was, what, 16mhz? 02:55:32 40 MHz is more than enough to emulate the 6502 CPU core though. 02:55:50 the audio was a bit rough (not too many channels, games made by retards only used GB channels) but it could handle that 02:55:51 Yes, GBA is 16.8 MHz 02:56:14 I think you should at least downgrade the video emulation from cycle-wise to scanline-wise 02:57:45 at those speeds I'm not sure you're going to get ogg playing 03:02:31 Whichever way is done is done by software anyways; but the hardware should be design to work with all of it. It would need to be almost 43 MHz at maximum speed, if there is enough parallel that it could do all the things at once (for RGB mode that is probably also good enough, since palette lookup could also be data parallel). 03:03:37 NTSC Master clock is 21.47727273 MHz, but the output voltage can change every half clock, so it need to be twice as fast. 03:03:39 what's more important, developing new games or emulating existing ones? 03:04:10 also is ogg for playing background music in games or as a media player with nothing else running at the same time? 03:05:32 ie is the specific ogg format important, or the format can be changed? :D 03:06:11 The format could be changed if running as a background in games, but it should be capable to play Ogg audio and video simultaneously when not doing anything else. 03:06:31 And I intend that it can both make new games and emulate old ones. 03:07:21 ok then I'd check if it's possible to do the huffman decrunching and channel decorrelation stuff in software 03:07:27 -!- monqy has joined. 03:07:38 and only use the large throughput unit for doing the MDCT transform 03:07:55 http://en.wikipedia.org/wiki/Modified_discrete_cosine_transform <- mdct 03:08:19 video? 03:08:20 Yes, doing much of it in software is OK. Ogg audio/video is not needed for games; only for standalone. Games can have different programming on it. 03:10:14 that means theora? 03:10:39 or whatever the name of their video codec is 03:12:05 still sounds hard to me 03:12:46 Yes, it is called Theora 03:13:04 usually that kind of decoding is done on crazy systems with instruction cache data cache FPU 2-way issue etc 03:13:36 that run in the hundreads of hz 03:15:08 ogg is probably possible I guess 03:16:21 Yes, OK, but I only need to decode standard definition, not high definition, and not at the same time as any game or anything. If it cannot play those video formats with the first version of the hardware that might be OK, if later version might have faster speed and so on might be improve, if it is also backward-compatible. 03:17:09 Ogg audio, too, needs not run at the same time as a game. 03:18:22 standard definition is still 640x480 03:18:31 that's murder on a 40mhz system 03:18:57 I wonder what sort of DCT theora uses 03:20:33 you're looking at at least hardware chroma subsampling 03:20:51 (ie video modes geared only towards video playback, yeech) 03:21:04 and at least hardware DCT block decoding 03:21:13 well, "hardware" (accelerated) 03:23:01 You could maybe pull MPEG-1 on that. 03:23:33 I have read the Xilinx FPGA datasheets, and they do have multiple clock signals so it may be possible that different parts can run at different speeds. I also don't know what speed improvement would be gained by upgrading to 7 series FPGAs, or by taking out the coprocessor and instead hard-coding the things that would be controlled by the coprocessor (such as memory protection and caching regions). 03:24:19 -!- Phantom_Hoover has quit (Remote host closed the connection). 03:25:15 I'm pretty sure you'll have to downgrade the video codec to something less hungry 03:25:50 If the first version won't do Theora real time, I suppose that is OK, since a later hardware version might make more speed and other things, especially if a ASIC is made (which it probably won't be unless enough people request it). 03:26:50 what's the video playback for anyways? 03:28:04 To watch a movie. Yes, it could be any video codec which it is possible to make the software to play it. If some features have to be omitted from the first hardware version that will be OK, I guess. 03:28:05 -!- DH____ has quit (Read error: Connection reset by peer). 03:28:17 -!- DHeadshot has joined. 03:28:52 -!- azaq23 has quit (Quit: Leaving.). 03:45:39 Do you know of .VGM format of musics? 03:46:08 I am making a program to make .VGM musics, I intend to have support of all of the chips, eventually. 03:47:20 (Existing software (XPMCK, VGM Music Maker, Deflemask, MIDI to VGM, etc) only support some chips.) 03:51:09 you know the NDS? 03:51:21 that's about the range of power you're going to get 03:51:40 possibly something psx - n64 - pentium I- ish 03:51:48 I do have Nintendo DS and have programmed it in the past 03:52:27 What classes of programs are capable of solving their own halting problems? 03:53:03 I think none of them? That's a Turing degree thing... 03:53:13 Maybe there's a degree omega in there? 03:53:17 None of the ones that are Turing-complete or better. 03:53:30 But ones that are less than Turing-complete might be able to do it. 03:53:45 In particular, this set of programs can do it: {Output "The program halts." and halt.} 03:54:20 madbr: Yes, OK, like I said the first one may not be that much more powerful but later ones may get improvement. 03:54:58 ogg is realistic you don't do other stuff at the same time 03:55:03 but theora? 03:55:25 I think that given a finite state machine with n states, you can construct a finite state machine with, like, O(n^3 log n) states that solves its halting problem. 03:55:48 If I try and find out it cannot be done with this system, then I won't have Theora in the first version. But, yes, it could do Vorbis, it needs not do other things at the same time. 03:56:34 Run it for n steps; if it loops, it must have looped by now. Record its state. Run it for n! steps; if it loops, then running it for that long must cause it to loop an integer number of times. 03:56:53 No, all this isn't necessary at all. 03:57:04 Simply run it for n steps. If it hasn't halted by then, it never will. 03:57:22 So the new FSM only needs to have O(n log n) states. 03:58:01 Do you have the program to make it embed? 03:58:24 Come again? 04:02:43 Which C compilers support the __attribute__((constructor)) command which is supported in GCC? 04:09:53 At this point, probably most that aren't Visual Studio. 04:09:54 Gregor: You have 2 new messages. '/msg lambdabot @messages' to read them. 04:12:09 zzo : 3d games? 04:14:00 zzo38 : the stuff that's useful for games is kinda different than the ones for media decoding 04:14:09 at least, for sound 04:15:07 sound stuff useful for games: sample mixing! (like s3m/mod/xm/it) adpcm decoding, good sounding reverb 04:15:40 madbr: Many games that don't need 3D graphics tend to have it. I don't really need really fancy 3D graphics anyways; but it should be good at 2D graphics, and capable of 3D graphics (not necessarily really good one though). Well, what is done for the sound, whether game or media or whatever, can be done by using different programs. 04:16:47 But yes I can understand, good for S3M/MOD/XM/IT, ADPCM, reverb, I do hope to have such things possible to do! Is why, I intend having a parallel processor which is programmed by explicitly parallel it can do it; I can think of things and try think see what works. 04:17:03 Is there any good reason for making your game itself create good sounding reverb, rather than just using samples that already have good sounding reverb? 04:17:31 tswett: The sample may be played at different speeds, I think? 04:18:00 Hm. Yeah, that would necessitate recalculating the reverb. 04:18:07 stuff useful for media decoding (mp3, ogg): MDCT/subband filtering, huffman/arithmetic encoding 04:18:13 tswett: sequenced music 04:18:43 also it saves on the sample data (you don't have to add in tails) and it generally sounds good 04:19:01 But, also such thing as synthesizer with square wave, saw wave, simple FM synthesizer, can be used too, possibly. 04:19:20 Imagine a function omegaTimes :: (Ordinal -> Ordinal) -> Ordinal, such that omegaTimes f is the smallest ordinal number greater than all of 0, f 0, f (f 0), f (f (f 0)), and so on. 04:19:32 zzo: not much point in doing FM if you can mix samples 04:19:48 What's the smallest ordinal larger than all ordinals you can express using omegaTimes? Presumably it's the Church–Kleene ordinal. 04:19:54 With a general enough system it may be able to do game audio by themself, and doing some media decoding with help from the CPU. 04:20:34 it's not very hard to play s3m on a 40mhz ARM 04:20:46 and s3m is easy to compose (for me :3 ) 04:22:47 -!- Jafet has quit (Quit: Leaving.). 04:25:28 same for gfx, there are like 3 pretty different things to go for 04:26:13 ¸1) 2d gfx (drawn by scanline which saves a lot of bandwidth) 04:26:29 2) 3d gfx (using framebuffer, also applicable to 2d gfx) 04:27:44 3) video decoding 04:28:00 That would mean that every ordinal number less than the Church–Kleene ordinal can be bounded above by an ordinal number written using omegaTimes, and yet there is no computable sequence of omegaTimes expressions that approaches the Church–Kleene ordinal. 04:28:16 So creating larger and larger ordinal numbers using omegaTimes must require more and more ingenuity. 04:31:16 -!- Nisstyre has quit (Ping timeout: 245 seconds). 04:32:37 might be cool to have pixel sprites over chroma subsampled background maybe 04:32:38 -!- Arc_Koen has quit (Quit: Arc_Koen). 04:33:34 madbr: Maybe 04:35:35 Nevertheless much of this is must be done in a separate processor which is very parallel, separate from CPU, one that I have to design, having high enough maximum speed and maximum threads. 04:36:44 you might have memory bandwidth problems 04:37:26 I was thinking of that too. 04:37:40 ok first this is it gonna have cache 04:37:54 also what's the ram going to be? 04:37:59 -!- Jafet has joined. 04:38:30 madbr: The ARM2 clone does have cache; it is an existing Verilog program. The other parts, I don't know. 04:40:42 Possibly it would have something like 1GB or 2GB main RAM, but possibly having separate cache RAM for different component if it would help. 04:42:52 -!- augur has joined. 04:44:09 yeah but I mean is the ram going to be sdram? 04:46:01 -!- Nisstyre has joined. 04:47:23 disappointing fact of the day: HTML/CSS can't represent a color as green as a green laser pointer 04:47:26 not nearly 04:49:29 I don't know everything about it yet. What RAM do you think should be used? I don't know a lot about that. It is why, I don't do entirely by myself; there are other people I know too, who can help with it too. 04:49:49 For good reason, no? You want every color representable with CSS to be displayable on a computer monitor, and you don't want the color of a green laser pointer to be displayable on a computer monitor. 04:50:06 static ram is expensive and comes in small sizes (like 256k and such) 04:50:18 but the timing is consistent and it doesn't have to be refreshed 04:50:20 tswett: Why wouldn't you want the *color* representable? 04:50:25 well "colors representable on a computer monitor" is a moving target 04:50:41 Note that the color is not the dangerous aspect of lasers at all. 04:50:52 DRAM is cheap and comes in huge amounts 04:50:53 madbr: I know that mich of RAM; probably the main RAM would be dynamic, but there may be smaller RAM which is static. I don't know exactly everything about that. 04:50:53 and software is harder to upgrade than hardware, paradoxically 04:50:55 You mean "displayable"? 04:51:02 sure yeah 04:51:02 Sure, whatever. 04:51:04 Because that would make the monitor really expensive. 04:51:21 I fail to see your point. 04:51:23 laser projectors are a consumer product you can buy 04:51:27 i don't know what their color gamut is 04:51:33 zzo: well, if you use cache you can pretty much ignore RAM in your design 04:51:43 Adobe RGB comes much closer to being able to represent a green laser 04:51:43 Probably a function of the lasers used. 04:51:45 fwiw 04:51:46 Now I kind of want my computer screen to be a class 4, except then I'd go blind so probably not. 04:51:56 your cpu interacts with cache, cache interacts with DRAM 04:52:14 Are most unrepresentable colors somewhere between two easily representable colors? 04:52:48 If someone only ever looks at images on a screen, how much are they really missing out on? Just some colors in the cracks, or some vibrant hues that the screen can't show? 04:52:53 Sgeo_: CSS uses sRGB colors 04:52:55 Sgeo_: well, I suppose so, in the sense that colors such as (1/pi, 0, 0) are unrepresentable. 04:53:00 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de). 04:53:02 here's its color chart: http://en.wikipedia.org/wiki/File:Cie_Chart_with_sRGB_gamut_by_spigget.png 04:53:12 But we're talking about "vibrant hues that the screen can't show". 04:53:18 the triangle are colors representable by sRGB 04:53:33 monochromatic things like lasers lie on that outside parabola-ish shape 04:53:38 Sgeo_: You could make up a color representation scheme which include all range, including infrared and ultraviolet, with intensity per frequency? 04:53:40 Technically there's also some colors missing because of quantization, but you can't really notice those. 04:53:45 What I'd really like to see is a *teal* laser pointer. 04:53:46 (the colors in this image itself are obviously 'not to scale') 04:54:00 (You also need high dynamic range too, if you want to do this!) 04:54:27 So, 0,255,0 on my monitor is not the greenest green I can see? 04:54:32 correct 04:54:39 a green laser is much greener 04:54:49 this one goes to 0,256,0 04:54:52 zzo: does the fpga have onboard multipliers? 04:55:19 in fact you're able to perceive a green color which is greener than any color you can directly see 04:55:22 http://en.wikipedia.org/wiki/Imaginary_color#Perception_of_imaginary_colors 04:55:33 madbr: Actually I looked at the datasheet and it does have "DSP blocks" for multiplication. 04:55:51 0,255,0 is only as green as the Rec. 709 green primary. 04:55:55 are they like 18x18bit multipliers or something like that 04:56:03 All colors are imaginary. 04:56:13 (that is, it is a color of green emitted by a particular phosphor, which is much less green than a green laser) 04:56:15 nice job, kodak. 04:56:24 when i was young i thought of color as a physical property of the world, and i continually find it trippy as hell to learn more and more about how it's actually a property of the human visual system 04:56:26 shachaf: QUALIA 04:56:26 my guess is that you're going to design around those DSP blocks and the memory IO architecture :D 04:56:49 This is the best classroom ever. 04:56:52 ours is but a single arbitrary and awkward 3-dimensional projection of the infinite-dimensional space of emission spectra 04:56:53 kmc: i'm continually more and more amazeed by how complicated the damn thing is 04:56:57 (However, I intend not to lock it to one FPGA only, even if, it may have conditional compiling commands to make it efficient for certain FPGA models.) 04:57:24 there's an extension to sRGB called scRGB... "The cost of maintaining compatibility with sRGB is that approximately 80% of the scRGB color space consists of imaginary colors." 04:57:33 http://en.wikipedia.org/wiki/Complex_cell <-- Like I can't even believe these things exist. 04:57:37 zzo: oh god 04:57:42 anyway this lets you have RGB components outside [0,1] to represent points outside the sRGB gamut 04:57:57 That is hilarious. 04:58:19 I don't want any "vendor lock" on the design. This might require a few changes, such as adding conditional compiling commands, though. 04:58:47 where are the colorspaces for tetrachromats? 04:59:05 What about colorspaces for dichromats? 04:59:07 Maybe they've designed some for experiments with birds. 04:59:17 zzo: well, no, but you need some kind of spec to design to< 05:00:19 pikhq: fair enough 05:00:51 madbr: Do you know if Verilog has commands for conditional compiling? Perhaps that can be used. 05:00:58 no idea 05:01:28 If it doesn't have, then a preprocessor could be made up which can add such things on. 05:02:08 Sgeo_: my friend wants to do this project where he'll photograph great artworks in world museums, both with a normal camera and with a spectrophotometer 05:02:33 kmc, hmm, interesting 05:02:38 the former only samples three points on the emission spectrum (red, green, blue) but the latter captures many more 05:02:58 then you can make an image which is, say, a picture of the mona lisa, except that every pixel which can't be faithfully reproduced by your computer screen is just black 05:03:04 and then you would know exactly how much you're missing out on 05:03:20 God, if we run into alien intelligence all our visual stuff will be so, so useless. 05:03:28 mona lisa is kind of bland 05:03:41 Isn't that how they do analysis of paintings? Seeing what was erased and shit. 05:03:42 van gogh museum? 05:03:49 yeah 05:04:13 pikhq: http://www.scp-wiki.net/scp-163 05:04:51 zzo: there's also a latency-vs-number of gates tradeoff 05:06:21 the more latency you build into operations, the higher you can clock stuff and the less gates it takes 05:06:28 but the harder to program :D 05:07:34 Surely the best thing about the SCP wiki is the fact that the objects' containment procedures are listed before their descriptions. 05:08:43 priorities! 05:09:26 kmc, oh, sorry, wasn't looking at IRC. That is very interesting. 05:09:34 Well, in the real world, you'd probably want at least a brief description of the object right at the top. 05:09:59 zzo: another possibility is adding some kind of SIMD unit to the arm 05:10:03 "SCP-1234-1 must at all times be closer to SCP-1234-2 than to SCP-1234-3" is a useless instruction if you don't know what the three things look like. 05:10:43 tswett: I assume they're labelled. 05:10:44 -!- DHeadshot has quit (Read error: Connection reset by peer). 05:11:03 What if they're really delicate or slippery or something? 05:11:07 -!- DHeadshot has joined. 05:11:14 I think it's kind of nice narratively. Gives you some idea of what it is before the description, like an ad or something, completely divorced of extra info. 05:11:18 http://www.scp-wiki.net/scp-1960-j 05:11:41 pikhq: a lot of them aren't really things you can label. like a two kilometer wide pumpkin, a virus strain, or a star or something. 05:11:43 ^^favorite SCP 05:11:55 * copumpkin is only one kilometer wide :( 05:12:23 But yeah, narratively, it does a really good job of creating suspense. 05:12:35 copumpkin is half a millimeter wide. 05:12:41 Yeah. From a narrative standpoint it's quite clever. 05:12:46 madbr: Maybe that is a possibility, but I intended, having the ARM core programmable by GCC and then, a separate parallel processor, designed to be faster and more parallel (even if that makes it difficult to program). 05:13:04 Sgeo_: wow that's great 05:13:24 "as if exhibiting a compulsive effect" 05:13:26 if a pumpkin is two kilometers wide then maybe a copumpkin is two millimeters wide? 05:13:32 :( 05:13:40 zzo38: like cell 05:13:43 I am OK even if that makes it difficult; why did you think, I am on esolang wiki? 05:13:46 copumpkin: Presumably you're 2 km tall to make up for it? 05:13:50 oh yup 05:14:07 carbon nanopumpkin 05:15:30 Two millimeters wide and two kilometers tall. Hm. 05:16:16 English really has an excess of words for dimensions of things. Length, width, depth, thickness. That's clearly too many. 05:16:19 Not to mention height. 05:17:40 zzo: yeah that's fine 05:18:47 zzo : I guess it's essentially some kind of DSP 05:19:07 breadth! 05:19:21 girth 05:19:29 madbr: I guess so. 05:19:43 I don't think girth counts as a dimension, since it's not measured linearly. 05:19:52 Breadth, yeah, that's another one. 05:20:20 Girth just makes me think of the one guy in Paper Mario. 05:20:28 tswett: bigot. 05:20:38 always discriminating against things that aren't linear 05:20:49 zzo: how about something like 8 ALUs 05:21:02 each alu has 2 input ports 05:21:16 I wonder why "thickness" is the only one of those not ending in -th. 05:21:30 thickth 05:21:35 warmth? coldth 05:22:25 tswett: Because they begin with "th" instead. 05:22:37 In the Dungeons&Dragons game we generally assume even non-humans characters see the same colors, unless it is only grayscale; maybe should Icosahedral RPG rules mentioned differently, or what? 05:22:55 and each input port can read the result from the previous 4 cycles or something like that 05:23:10 madbr: I was thinking of something which is a little bit like that actually. 05:23:22 * copumpkin goes to sleep 05:23:37 Maybe you'd have to alter the word "thick" in the same way that "long" becomes "leng", "wide" becomes "wid", "deep" becomes "dep", and "high" becomes "heigh". 05:23:46 thickth 05:23:54 Thuckth. 05:24:56 or maybe 8 units 05:24:58 Oh boy. They were distinct in Old English, it appears; you have to go back to Proto-Germanic to see where they were identical. 05:25:06 every unit has something like 4 registers 05:25:23 PG "langgaz" became OE "lang", but PG "langito" became OE "lengðu". 05:25:48 "Width" is from the 1620s. 05:25:55 madbr: They were similar to the kinds of things I was thinking of. 05:26:08 and on each cycle the unit reads from one of the 32 registers and writes to one of its 4 registers 05:26:16 or maybe inversely 05:26:34 Damn, it'd be inaccurate for me to spell it "widþ". 05:26:39 like, you have a bunch of ALUs that read from 2 fixed registers 05:26:42 "Breadth" is ultimately an "alteration" of OE "brædu", from "bræd", "probably by analogy of long/length". 05:26:53 but can write to any of any of the 32/64/etc registers 05:27:21 Not þat þat ſhall ſtop me in my Efforts to uſe Engliſh in ſilly Ways. 05:27:23 madbr: Yes, that is also some idea. I can consider all of these things. 05:28:15 "Depth" is likewise by analogy. "Height", however, actually has a good etymology. 05:28:24 pikhq: dōn't forget your macrons! 05:28:50 -!- hagb4rd has joined. 05:28:57 zzo: one idea I had was "trace execution" 05:29:03 I don't recall where those go. :( 05:29:08 you have a normal RISC style program 05:29:15 and it "runs" it 05:29:26 but each cycle isn't one operation it does 05:29:34 Demo, rōmaji de nihongo wo kaitara, zenbu oboeteru. 05:29:34 rather, it's one unit that it assigns 05:30:42 p.s. send pocky 05:31:09 i thought they just went on long vowels. 05:31:21 Iya, pokkii hoshikunai. 05:31:40 I know the words "rōmaji", "nihongo", and "wo", and I know that I've heard "demo" and "zenbu" in the second opening theme and the first closing theme of Fullmetal Alchemist: Brotherhood, respectively. 05:32:03 "But, when writing Japanese, I remember them all." 05:32:13 Erm. 05:32:22 "But, when writing Japanese with the Roman alphabet, I remember them all." 05:32:34 You should tell me about diagonal functors! 05:32:47 Oh right, "kaitara" is the same verb as "kaite". 05:32:56 Is there a rule for getting the citation form from the -te form? 05:33:03 how large are register files in terms of gates anyways 05:33:20 I'unno. All the rules are from "-u" anyways. 05:33:42 And I'm not too good at remembering the rules in an easily expressable way, the verbs just come out conjugated. 05:34:03 madbr: I don't know 05:34:15 How is "kaitara" formed? 05:34:55 «My question is: How do I convert the output from (CurlCode, String) to String?» 05:35:06 "Kaita" (the perfective) with "-ra"? 05:35:22 Yes. 05:35:52 It's a bit more literally "But, if I write [...]" 05:36:26 madbr: Have you seen the latest of my Dungeons&Dragons game recordings, yet, however? 05:36:29 But who translates literally? :) 05:36:31 (Just curious) 05:36:45 pikhq: Do you? 05:36:51 No. 05:36:52 pikhq: Do you translates literally? 05:36:57 I do not. 05:37:00 OK 05:37:15 I wonder if that's the same "-ra" that appears in a certain place in the first opening theme... 05:37:26 Probably. 05:37:46 That conditional is fairly common. 05:38:08 nops 05:38:47 zzo: I'd start by looking at how much data you can load in per sample 05:39:06 er per cycle 05:39:58 madbr: OK. I will try. 05:40:13 Aha, here's the line: "Yarinokoshiteru koto yarinaoshite mitai kara" 05:40:32 Oh, no. 05:40:37 That's not the same "-ra". 05:40:44 "kara" is a single unit. 05:40:46 "Because". 05:40:47 Which is translated as... "Tengo cosas por hacer ya que anhelo rehacerlos todos." 05:40:48 If it's 32bits load per cycle then for audio mixing you're going to need 2 cycles sample data (if using linear interpolation) plus 1 for mixing buffer input (plus 1 for mixing buffer output) 05:40:56 though I guess you can mix multiple channels 05:41:02 Let me find the English subtitled version... 05:41:57 so there's no point in pipelining/vectorizing/paralellizing the rest of the algo so much that it fits in less than 4 cycles 05:44:06 Apparently "I want to try doing over the things I've left undone" is the translation used in the English version of FMA:B. 05:44:18 "The name D65 suggests that the correlated color temperature (CCT) should be 6500 K, while in truth it is closer to 6504 K. This discrepancy is due to the scientific community's revision of the constants in Planck's law after the definition of the illuminant." 05:44:31 That's a decent translation. 05:44:39 the illuminant 05:44:47 How would you translate it? 05:45:19 "I want to retry the things I left undone" maybe? 05:45:28 Or maybe unfinished. 05:45:39 * tswett nods. 05:46:27 madbr: Thank you for information. 05:47:37 やり残してる事やり直して見たいから Also, the sentence is a *lot* clearer with kanji. 05:48:40 pikhq: Japanese is working like that in general. 05:49:01 This is true. 05:52:20 Here's a lyric I've seen translated two very different ways, in kanji why not: "だから 気づかぬふリ 再生を選ぶ" 05:52:39 I assume those are official kanji, not fan kanji. *shrug* 05:54:04 Well, that's a very strange sentence. 05:54:18 I guess that "ri" is, in fact, in hiragana, not katakana. 05:54:37 It's katakana "ri" in what you pasted there. 05:54:52 Right, but it's actually a hiragana "ri" which I mistook for a katakana "ri". 05:55:05 Ah. 05:55:51 -!- dessos has quit (Quit: leaving). 05:57:11 One translation was "So pretending not to notice, I choose rebirth"; the other was "So I choose to replay the imperceptible pretense". 05:57:29 More or less the same content words in each case, but related in completely different ways. 05:57:51 Oh, right, -ふり is to pretend. Duh. 05:57:56 Also the romaji for what it's worth: "Dakara kizukanu furi saisei wo erabu". 05:58:29 "So, pretending not to notice, I choose rebirth" is much more close to what the sentence *says*. 05:58:44 Though context may justify the latter. 06:00:36 -!- dessos has joined. 06:00:53 So what's "kidzukanu"? 06:03:02 Negation of "kidzuku", to notice. 06:03:50 You'd normally do "kidzukanai", but -nu instead of -nai is perfectly acceptable. 06:04:12 I don't quite know what the difference is, aside from -nu sounding more... poetic? 06:06:15 Do you have any interests in the Dungeons&Dragons game I have recorded, though? 06:06:34 Formed from "気" and "付く", "spirit" and "attach". 06:06:49 No I don't know how that quite works either, but that's the etymology. 06:06:58 Do you have any interests in a program to print out file of Internet Quiz Engine? 06:08:27 `slist 06:08:29 Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 06:08:37 I'm looking up some pdf file for the "DSP block" in the FPGA 06:08:54 slist? 06:09:06 So it definitely sounds like "So pretending not to notice, I choose rebirth" is pretty much a literal translation. 06:09:23 Bike: That's the old `list. 06:09:28 Bike: Do not run the new one. 06:09:38 `list 06:09:42 I have not been so ordered. 06:09:44 cuttlefish boily elliott Taneb HackEgo Sgeo monqy 06:09:48 Great. 06:10:02 zzo38 you can probably come up with like half the design with the specs of the DSP slice and the memory IO specs 06:10:06 It's for your own good that you don't want to run it. 06:10:23 tswett: Yeah. 06:10:26 monqy: hello mister monqy 06:10:33 tswett: Context would determine what you'd want to do with it. 06:10:35 madbr: OK, it can be considered. 06:10:41 hi shachaf 06:10:46 tswett: Out of context that's pretty much what you'd have to do though. 06:10:56 A race conditon in ptrace can lead to kernel stack corruption and arbitrary kernel-mode code execution. 06:11:03 * tswett nods. 06:11:12 good old ptrace 06:11:22 `run cat $(which list) 06:11:22 It's likely, I suppose, that that lyric wasn't intended to mean anything in particular anyway. 06:11:23 ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq 06:11:30 shachaf: yeah 06:11:38 This looks like a good program. 06:11:38 i don't understand the exploit yet 06:11:41 it's p. complicated 06:11:48 http://seclists.org/oss-sec/2013/q1/326 06:12:18 zzo: like, once you have that just put multiplexers and registers to route the signals from the memory to the DSP blocks back to the memory 06:13:20 and then some mechanism for storing the multiplexer and register and DSP slice OPs and memory in OPs and memory out OPs for each processing cycle 06:13:30 shachaf: i don't think you can even build a linux kernel without ptrace unless you patch :( 06:13:56 ptrace condition 06:13:58 though i would probably jump off a bridge if i had to maintain a server without strace available 06:14:17 cause it's like the only tool i know for figuring out why shit is broke 06:14:18 madbr: Well, it is OK, but still I intend not to make it vendor-locked; it should be non-vendor-locked Verilog codes (although it might includes conditional compile command for different FPGA with different features). 06:14:35 kmc: Well, given strace, who needs any other tools? 06:15:15 (I might consider relying on vendor-locked features once that vendor makes open-source FPGAs.) 06:15:41 monqy: why do people write limits with an integral sign......... 06:15:42 (Actually, once they do that, I may even do such things as dynamic hardware programming and so on.) 06:15:53 `list 06:16:00 cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq 06:16:06 Sgeo, that's just redundant. 06:16:14 shachaf: good question 06:16:19 No it's not. pikhq needs to observe the effect 06:16:32 Oh, I guess he saw what it does 06:16:32 monqy: do you understand limits 06:16:34 derp 06:16:55 monqy: i understood them and then i saw the "'formal' 'definition'" and now maybe i don't understand them again 06:17:17 shachaf: i havent gotten around to them yet 06:17:51 -!- fgrep has joined. 06:17:55 `list 06:17:58 cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ 06:18:00 `list 06:18:03 cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ 06:18:11 -!- fgrep has quit (Client Quit). 06:18:27 heh i like any code of the form while (1) { ... exit(0); } 06:19:05 shachaf: hi shachaf 06:19:57 kmc: Does it have a continue? 06:20:16 zzo : it might be interesting to have a separate unit for gfx and sound 06:20:31 are you talking about calculus limits or some cat theory nuttiness 06:20:33 monqy: did you just disapproval hi me 06:20:46 the gfx unit would presumably look like the multi-unit shader stuff in gfx cards 06:20:49 :-)???? 06:21:19 the sound unit could be something like the sb live where you get 512 cycles for each sound output samples 06:23:16 so if you want to mix 64 channels you have to do it in 8 cycles :D 06:34:16 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de). 06:42:17 repeat halt(0) until true; 06:42:42 So how strong is the calculus of constructions, anyway? 06:42:54 hmm 06:42:56 i love the calculus of constructions 06:42:58 it is so easy 06:42:59 If ZFC can show that a Turing machine halts, can the CoC prove the same? 06:43:35 tswett: You should explain limits to me. 06:43:43 As natural transformations from the diagonal functor. 06:43:43 it would be possible to make a very simple RISC cpu that doesn't even need cache and can directly work with DRAM... 06:44:04 but a write/read instruction would take something like 7 cycles 06:44:15 ZFC proves that the CoC is consistent, doesn't it? So I guess there must be a Turing machine that halts that the CoC can't prove halts. 06:44:23 other instructions (math, jumps) would take 1 cycle though 06:44:43 I guess tswett doesn't like diagonal functors. 06:44:58 shachaf: yeah, I can do that. 06:45:08 shachaf: but first, what's the diagonal functor? 06:45:13 multiple reads/writes from a single instruction would take only 1 extra cycle per extra operation tho 06:45:14 CoC SMASH! 06:45:38 tswett: It's the boring one that maps to a constant. 06:46:00 All right. 06:46:01 also it would have a branch delay slot 06:46:04 like MIPS :D 06:46:06 And what are limits? 06:46:17 tswett: Wait, I don't mean to a constant. 06:46:29 Never mind. 06:46:36 ^_^ 06:46:37 tswett: Limits are universal cones over a diagram. 06:46:51 Oh, of course. 06:47:32 Now excuse me for a moment while I try to figure out what the Chicago category theory is all about. 06:47:54 tell me when you find out thx 06:48:05 Will do. 06:48:09 tswett: Do you know terminal objects? 06:48:11 And products? 06:48:18 Yeah. 06:48:28 Products as in https://upload.wikimedia.org/wikipedia/commons/b/b2/CategoricalProduct-03.png 06:48:40 Yup. 06:48:52 How about pullbacks? 06:48:58 Nope. 06:49:16 OK, so start with pullbacks. 06:49:25 They're sort of like products. 06:49:50 In fact they're called "fibered products" sometimes. 06:50:03 Here's the diagram in this case: https://upload.wikimedia.org/wikipedia/commons/thumb/e/eb/Categorical_pullback_%28expanded%29.svg/225px-Categorical_pullback_%28expanded%29.svg.png 06:50:25 Er, https://upload.wikimedia.org/wikipedia/commons/thumb/e/eb/Categorical_pullback_%28expanded%29.svg/500px-Categorical_pullback_%28expanded%29.svg.png 06:50:55 So you have X --f--> Z <--g-- Y 06:52:40 OK, well, first, https://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Categorical_pullback.svg/500px-Categorical_pullback.svg.png has to commute. 06:52:46 Then you can add the rest of the diagram on. 06:52:48 Mm. Let me find a simple example of a pullback. 06:53:18 Sets have a simple example! 06:53:21 In the category of sets, a pullback of f and g is... the set of all pairs (x, y) such that f(x) = g(y). 06:53:25 Right? 06:53:27 Yes. 06:53:49 Whew. I correctly parroted Wikipedia. 06:55:19 That's the what's-it-called. 06:55:32 So clearly the what's-it-called works with this diagram, right? https://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Categorical_pullback.svg/500px-Categorical_pullback.svg.png 06:55:44 Yeah. 06:55:46 Where p1 = fst; p2 = snd 06:55:49 Now... 06:56:12 P is X ×_Z Y in this case. 06:56:38 Suppose that X is the ring of integers modulo 2, Y is the ring of integers modulo 3, Z is the ring of integers modulo 1 (the trivial ring, aye?), and f and g are, y'know, the only thing they can possibly be. 06:57:07 Would P be the ring of integers modulo 6? 06:58:18 Well, P can be lots of things at this point, since we haven't finished the thing. :-) 06:58:26 But let me see. 06:58:36 Now I need to figure out how ring homomorphisms work. 06:59:18 i wonder if there's a good, reasonably simple model for the perceived contrast between two colors 06:59:21 Well, I guess they're straightforward. 06:59:27 i guess CIE ΔE is almost that, but not quite? 07:00:08 kmc: Doesn't it depend on context? 07:00:36 probably 07:00:52 like the ol' http://en.wikipedia.org/wiki/File:Grey_square_optical_illusion.PNG 07:01:44 yeah 07:01:48 that's so fucked 07:02:14 like a monoid? 07:02:23 do y'all know about the McCollough effect 07:02:32 I think a lot of objective sorts of measures sort of fail when you try to connect them to subjective processing. 07:02:33 yes 07:02:40 * shachaf speaks for all of this channel 07:02:51 shachaf speaks for me. 07:02:53 so fucked 07:03:06 What about the category of types in the simply typed lambda calculus... 07:03:20 kmc: what about that other thing 07:03:31 the shepard scale 07:03:33 I think it makes sense when you remember that in four billion years of evolution stimuli like McCollough bars didn't come up much. 07:03:35 that's good too 07:04:12 X, Y, and Z are statements. f and g are functions X -> Z and Y -> Z. And... hmm. 07:04:12 Bike: eventually the cuttlefish will learn how to do them 07:04:20 I still don't honestly understand why pitch perception is logarithmic in frequency. 07:04:37 Bike: well, why not? 07:04:45 ...heh 07:05:07 kmc: iirc chromataphore operation is a lot less centralizing than visual perception? like each point kind of does its own thing? 07:05:30 i don't know 07:05:33 Now, why are we capable of distinguishing notes played on different instruments at the same time... 07:05:41 re pitch perception "i have no point, i'm just saying": http://www.erowid.org/library/books_online/tihkal/tihkal04.shtml 07:05:48 erowid, for real 07:05:51 (scroll down to "qualitative comments" unless you really love organic chemistry) 07:06:19 "Everything was auditory" i need to get my hands on this stuff 07:07:23 auditorium? i 'ardly know 'em! 07:07:29 ._. 07:07:53 rectangle? damn near killtangle! 07:08:28 Bike: i have taken it 07:08:43 Anything exciting? 07:08:45 All right, how about we let f be the function \(x,y) -> x : (A,B) -> A and g be the function \(x,y) -> y : (B,A) -> A, why don't we. 07:09:04 basically as described there 07:09:09 -!- Mathnerd314 has quit (Remote host closed the connection). 07:09:26 some flanging for sure 07:10:54 damn it 07:11:05 -!- Mathnerd314 has joined. 07:11:28 what do you do with a cpu where all the instructions are 1 cycle except memory accesses are 6 cycles 07:11:39 waste electricity 07:11:58 Use registers. 07:11:59 Or run other instructions in the time of those other cycles? 07:12:02 make the memory bus really wide and do SIMD? 07:12:19 -!- FreeFull has quit (Ping timeout: 260 seconds). 07:12:20 no the point is that it only takes a 32bit bus 07:12:43 dram access is like 1 cycle if it's on the same page 07:12:52 but 3+ cycles if you're in a different page 07:13:06 -!- FreeFull has joined. 07:13:08 a page is 1k~4k depending on your ram size 07:13:10 So, the pullback of f and g. 07:13:11 Then make page-alignment. 07:13:36 the catch is that it doesn't have instruction cache 07:13:48 so instructions that don't access ram are fine 07:14:11 since they're probably on the same page as the previous instructions 07:14:18 P is (A,B), p1 is the identity function (A,B) -> (A,B), and p2 is the swapping function (A,B) -> (B,A)? 07:14:43 so you can read in your next instruction at the same time as you execute the current one 07:15:05 but once you have to read/write to RAM you have to change page 07:15:16 bang 3 cycle read 07:15:17 Wait, what's going on? 07:15:25 What category are you talking about? 07:15:36 then you need to pull in the next instruction which is also a page change 07:15:43 so bang another 3 cycle read 07:15:46 The category of types in the simply typed lambda calculus, where morphisms are functions with the appropriate types. 07:16:15 OK. 07:17:03 I guess you could make an instruction that reads to like 8 contiguous registers 07:17:22 So you have X -> Z <- Y here. 07:17:25 and that would take, uh, 13 cycles 07:17:51 X = (A,B), Y = (B,A)? 07:18:10 Yup. 07:18:14 (5 cycles + number of memory accesses you're doing) 07:18:58 ARM has that instruction doesn't it 07:19:16 it has ldm and stm yeah 07:19:21 kmc: What version of ARM, and in what instruction set? 07:19:22 dunno if it was added for that reason 07:19:51 it's not that interesting if you're on a modern ARM actually because those have cache 07:20:29 and also it can't pair the memory accesses but it can pair other ALU instructions so you want to do the reverse, mix your loads with ALU ops 07:21:05 yeah i don't think it's added for this reason 07:21:59 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/ch02s08s01.html 07:22:01 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/ch02s08s01.html 07:22:06 haha yeah 07:22:13 it's like a mass stack push/pop 07:22:56 Mm, maybe P is (B,A,B), p1 is the function that drops the first element, and p2 is the function that drops the last element. 07:23:16 -!- WeThePeople has joined. 07:23:23 yeah, although you don't have to write back to the stack pointer register (and it can be any register) 07:23:29 In all of these cases, it seems like P is X "times" Y "divided by" Z. 07:23:47 (since ARM doesn't really have a hardware stack pointer) 07:23:51 -!- WeThePeople has quit (Read error: Connection reset by peer). 07:25:07 Suppose we're in the category of topological spaces, and Z is the plane, and X and Y are open discs in the plane, and f and g are the inclusion morphisms. 07:25:13 so it's useful for saving registers around function calls, but also for general block copies 07:25:49 Nah, let's be smaller. Z is the real line, X and Y are open intervals. 07:25:59 it's max twice as fast as unrolled normal copy I think 07:26:28 due to the size of the datapath on whichever modern ARMs 07:27:08 So... P is the intersection of X and Y, and p1 and p2 are both inclusion morphisms? 07:32:27 I guess it's also possible to load in multiple load/store instructions when you encounter one 07:32:43 ie make a very small instruction cache :D 07:37:15 happy megasecond 1361 07:38:30 i never megasecond i didn't like 07:39:38 jaspers:~ tswett$ date -r 100000000000000000 07:39:39 Segmentation fault 07:39:49 How can I get out of this trap in Dungeons&Dragons game? 07:39:56 That seems kinda wrong. 07:40:16 tswett: Why is it a segmentation fault? 07:41:09 Because date attempted to access a memory location that it was not allowed to access, or attempted to access a memory location in a way that was not allowed. 07:42:43 zzo38: Cast a spell of remove trap. 07:43:03 shachaf: I don't have that one, and I don't want to waste all of my spells 07:43:20 tswett: Yes, but why would it cause that? (Or is "Segmentation fault" the answer?) 07:43:25 zzo38: as kmc says, they have to tell you if they're a cop 07:43:40 I don't know. 07:45:13 Presumably, it was because the year was too big to fit in a signed 32-bit variable. 07:45:19 shachaf: They aren't a cop, they are a demon and a bunch of human guys, and a few gray render and vampire. 07:45:36 gray render? 07:45:55 tswett: Shouldn't it overflow if it does like that though? I thought that isn't a segmentation fault? 07:46:37 Apparently, it was written in a way such that it's a segmentation fault instead of an overflow. 07:47:10 What version of the system "date" program is it? If you know what it is, then maybe you can look at it, and fix it. 07:48:05 let's not play the segmentation blame game, zzo38 07:48:33 shachaf: OK, let's play the Dungeons&Dragons game instead. 07:49:05 Let's play the pun game instead! 07:49:30 OK 07:49:54 Who goes first? 07:49:57 Hm. Can every morphism be written as the composition of an epimorphism and a monomorphism in either direction... 07:50:36 Something tells me yes in Set, but not in every concrete category. 07:51:55 shachaf: Whoever's square-root of their telephone number, minus the right ascension of the moon at the time they turned on their computer, plus 4d6 drop lowest, is the high number, goes first. 07:52:03 -!- oerjan has joined. 07:52:10 Which computer? 07:52:14 Unless you can speak ancient Egyptian language, in which case it is done in reverse. 07:52:31 tswett: Whoever's own computer, who is using the IRC on. 07:52:54 What if the computer you're physically at is not the computer that the IRC client is running on? 07:53:03 'Cause I turned on the latter computer... 07:53:19 August 4, give or take a day. 07:53:33 tswett: Then you use the computer that the IRC client is running on, if you turned that one on; otherwise it is the computer you are physically at. 07:54:11 Does giving an instruction to an automated system to turn that computer on count as turning it on? 07:54:34 What if it's a virtual machine (as, in fact, it is)? Do I use the time the VM was turned on, or the time its host was turned on? 07:54:49 Toss a coin to figure it out. If the coin gets lost, then the answer is yes. 07:55:03 If it comes up on its side, then the answer is no. 07:57:26 If it comes up heads or tails then try again. 07:57:53 A potentially expensive way of resolving the question. 07:59:23 So for my telephone number, I use the international form, right? 08:00:26 Yes, if you have ever been outside of your country (or whatever area is having the same form of telephone numbers); otherwise no. 08:00:57 Hm. I live in the United States, and I've been to Canada, but I haven't been outside of the NANP area. 08:01:11 canada isn't a real country...... 08:01:14 Then you don't use the international form. 08:03:00 Do I use the 10-digit form, then? 08:03:05 Yes 08:30:08 kmc: The best airport for me would be LGA, right? 08:30:32 Least Good Airport 08:30:44 oh no 08:32:40 `cat bin/js 08:32:45 ​#!/bin/sh \ \ JAVA_CMD="/usr/bin/java" \ JAVA_OPTS="" \ JAVA_CLASSPATH="/usr/share/java/js.jar:/usr/share/java/jline.jar" \ JAVA_MAIN="org.mozilla.javascript.tools.shell.Main" \ \ ## Fix for #512498 \ ## Change Bootclasspath when using OpenJDK because OpenJDK6 \ ## bundle his own release of Rhino. \ ## References: \ ## javascript in my java? it's more likely than you think 08:39:56 -!- fftw has quit (Ping timeout: 256 seconds). 08:39:58 -!- ogrom has joined. 08:40:03 shachaf: for what 08:40:46 kmc: Going to the Bronx. 08:40:55 i guess so 08:41:05 it depends on how you feel about buses 08:42:11 ? 08:44:20 -!- DHeadshot has quit (Read error: Connection reset by peer). 08:44:41 If I don't/do mind buses how does that affect it? 08:44:55 there is no train to LGA 08:45:01 or from LGA for that matter 08:45:22 you could take a bus or a taxi 08:45:35 -!- EgoBot has quit (Remote host closed the connection). 08:45:46 -!- EgoBot has joined. 08:45:51 Ah. 08:46:31 -!- madbr has quit (Quit: Radiateur). 08:46:32 it has reasonable bus service though 08:46:42 there's one that goes straight across to Harlem on 125th St 08:47:19 from which you can get to the 456, Metro North, the 23, the ABCD, or the 1 08:48:21 @tell tswett I think that given a finite state machine with n states, you can construct a finite state machine with, like, O(n^3 log n) states that solves its halting problem. <-- you seem close to reinventing hierarchy theorems... 08:48:22 Consider it noted. 08:48:39 Hierarchy theorems, eh? 08:48:39 tswett: You have 1 new message. '/msg lambdabot @messages' to read it. 08:48:45 OH BOY I WONDER WHAT IT IS 08:48:49 @arrrr chy 08:48:49 I'll keel haul ya fer that! 08:48:51 I don't mind buses in particular. 08:49:09 It seems like the trip will be long, though. 08:49:27 probably shorter than from EWR or JFK 08:50:25 http://en.wikipedia.org/wiki/Time_hierarchy_theorem and http://en.wikipedia.org/wiki/Space_hierarchy_theorem 08:53:35 -!- fftw has joined. 09:02:47 Imagine a function omegaTimes :: (Ordinal -> Ordinal) -> Ordinal, such that omegaTimes f is the smallest ordinal number greater than all of 0, f 0, f (f 0), f (f (f 0)), and so on. 09:02:57 seems related to http://en.wikipedia.org/wiki/Veblen_function 09:07:52 tswett: http://en.wikipedia.org/wiki/Feferman%E2%80%93Sch%C3%BCtte_ordinal looks relevant 09:08:51 In VGM format, waits 735, 882, and numbers 1 to 16 take up 1 byte each, while all other waits 17 to 65535 take up 3 bytes. I am making a program to make the short number of bytes for the given amount. 09:09:48 if((dur>=735 && dur<=751) || dur==1470 || dur==1617) 735; if((dur>=882 && dur<=898) || dur==1764) 882; if(dur<=16) dur; if(dur<=32) 16; if(dur<=65535) dur; else 65535. This is not quite complete, yet. 09:11:08 I know it is not complete but I am trying to think of it 09:16:26 @tell tswett http://en.wikipedia.org/wiki/Large_countable_ordinals 09:16:26 Consider it noted. 09:16:41 @thank oerjan 09:16:41 Maybe you meant: thank you thanks 09:16:45 @thankyou oerjan 09:16:45 you are welcome 09:17:25 The purchaser's last name, "Ben-Kiki", contains the invalid character(s): '-'. 09:17:36 kmc: It's almost like having non-ASCII characters in your name! 09:19:03 anyone use gimp? 09:19:46 not in more than a decade 09:20:42 i would like to have two layers with 50 alpha and have the colors really blended 50-50 (now the top layer is much more opaque). 09:20:50 I just use ImageMagick. 09:21:23 imagemagick is merely bad, you should use it instead. 09:21:31 Why do you want each of the two layers to have 50 alpha? 09:21:31 tswett: You have 2 new messages. '/msg lambdabot @messages' to read them. 09:22:25 Jafet: Merely bad? I think it is much better. 09:22:28 If you don't want the result to be transparent at all, make the bottom layer totally opaque. 09:22:38 Yes, it is. 09:22:53 tswett: i want some kind of equal sum of two images. 09:23:22 -!- Jafet has quit (Quit: Leaving.). 09:23:28 so err like background 100% opaque, top layer 50% opaque? 09:23:35 Yeah. 09:23:44 i hope i tried that because that makes way more sense... 09:24:08 oklopol: Yes that is what makes sense to me at least 09:24:20 Make the back 100% opaque and the top 50% and then compose them 09:26:07 the thing is i seem to recall that some things do as follows: you draw things in their natural pecking order, and as you draw something with 30% alpha, 30% more of the alpha channel of that pixel fills up. when you run out of alpha, you stop drawing things. 09:26:43 this way if you put 50% and 50%, you get an equal blend and the image is fully opaque. 09:27:01 but perhaps it's not very intuitive 09:28:26 @tell pikhq Technically there's also some colors missing because of quantization, but you can't really notice those. <-- i think you can get around that with the doppler effect, assuming speed isn't quantized 09:28:26 Consider it noted. 09:29:12 @tell pikhq (and we _really_ cannot notice any level at which speed is quantized.) 09:29:12 Consider it noted. 09:30:50 * elliott wonders the context 09:31:26 it's in the logs. 09:33:12 -!- impomatic has quit (Quit: impomatic). 09:34:54 the context _did_ prompt This is the best classroom ever. 09:35:34 or so i assume. 09:36:41 shachaf: srsly? 09:37:00 rather a lot of people have hyphens in their last name 09:37:29 also arguably the hyphen is a non-ASCII character 09:37:36 but the character you pasted is ASCII 09:39:06 good old HYPHEN-MINUS 09:39:34 HYPHEN‐MINUS 09:39:47 HYPHEN−MINUS 09:40:23 isn't it funny how they put a dash between HYPHEN and MINUS 09:41:30 HYPHEN-DASH-MINUS 09:41:51 Is it an en dash? 09:42:12 I like en dashes. {:3 09:42:31 (The Alphonse Elric emoticon.) 09:43:23 are the names of unicode characters in any particular character set 09:43:33 UPPER-CASE ASCII 09:43:46 There are plenty of Unicode characters whose names include lowercase letters. 09:43:54 :( 09:43:57 There are? 09:44:19 Oh, there are-ish. 09:44:35 whoa, dude, less is smart and finds ß when I search for [a-z] and so on. 09:44:44 U+732B is "cat". 09:44:45 Maybe that's why its search is so slow. 09:44:59 Not "CAT", but "cat". 09:45:07 Oh, I don't have that in my Unicode file. :-( 09:45:47 shachaf: you know how chromium's ctrl-f has ß and ss as equivalent, right? 09:45:49 Not even in my "complete" Unicode file! What's going on here? 09:46:02 Hm, I guess I'm not quite right. 09:46:04 Bike: Right. So does less. 09:46:12 apparently it's pronounced miao in some chinese 09:46:16 U+732B is "CJK UNIFIED IDEOGRAPH-732B". 09:46:32 shachaf: That's probably not as smart as you want. 09:46:43 I suspect it's finding the "s" in "ß" but wouldn't necessarily find every letter. 09:47:06 I searched for [a-z] and it found all sorts of things. 09:47:35 Like ø and ỹ 09:48:00 "cat" appears to be its "kDefinition". 09:52:33 shachaf: Those are still "Latin-ish". 09:52:41 You could argue for o matching ø and y matching ỹ 09:52:47 Right. 09:52:54 Isn't that what I want? 09:53:07 Well, I expect by [a-z] you actually just mean "letter"? 09:53:54 -!- Bike has quit (Ping timeout: 252 seconds). 09:53:54 01:43 There are plenty of Unicode characters whose names include lowercase letters. 09:56:40 -!- oerjan has quit (Quit: Lost terminal). 10:06:00 why on earth would you have ø match o 10:07:14 having e and i match o would make more sense, as there is at least a language on earth where they sometimes denote the same sound 10:07:34 Why should any of them match anything other than themself? 10:07:49 because you want to have a convenient notation for certain families of letters 10:07:49 Because it's the same as ̷o, of course. 10:07:53 Or is that o̷? 10:07:55 (That is, by default. You could have settings to make them match other things, such as uppercase/lowercase, but should not be the deafult setting.) 10:08:39 Skolem ø 10:08:44 Skølem 10:10:38 -!- oerjan has joined. 10:18:04 -!- oerjan_ has joined. 10:18:09 * oerjan_ hopes this isn't going to be regular 10:18:30 What, people saying ø? 10:18:59 two oerjans??? 10:19:14 poll: wasn't one enough 10:19:21 vote: no 10:21:25 -!- oerjan_ has quit (Client Quit). 10:22:21 -!- oerjan has quit (Quit: Lost terminal). 10:22:33 i think you upset oerjan monqy 10:22:45 rip 10:23:04 oh no 10:23:10 monqy you should feel bad now 10:23:29 you need at least 24 seconds of bad feeling 10:23:42 can you start the timer i need a timer 10:23:55 i dont have one and i sort of cant count 10:24:02 -!- jconn has joined. 10:24:13 monqy: ok 10:24:23 tell me when you start feeling bad and ill tell you when to stop 10:25:40 -!- nooga has joined. 10:25:47 let c f n=t n f w in(c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c)(t w s)w 10:25:54 hi 10:26:55 monqy: btw i sort of cant count either 10:26:56 oops 10:29:13 -!- Jafet has joined. 10:35:31 -!- monqy has quit (Quit: hello). 10:51:16 -!- Halite has joined. 10:51:59 I bored 10:56:47 Do you like the "arithmetic IF" that exists in some programming languages? 10:57:18 arithmetic if? 10:57:19 Do you have a list of programming languages which have such things? 10:58:01 what arithmetic IF 10:58:12 arithmetic IF is horrible 10:58:13 olsner: Meaning, that it checks if the number is negative/zero/positive, and branches to a different line depending on the result (or, in some programming languages, just returns one of the three results specified). 10:58:37 Halite: I don't really think so. 10:58:44 so, f(p,q,r) = if p then q else r 10:59:29 zzo38: that sounds a bit meaningless. 10:59:29 so f(true,true,false) = if true then true else false = true 10:59:32 No, like: f(p,q,r,s) = if p<0 then q else if p=0 then r else if p>0 then s 10:59:50 -!- Phantom_Hoover has joined. 10:59:59 Is like arithmetic IF (although usually, the q,r,s here would be used as branch targets rather than values) 11:00:30 might be useful in an obfuscation contest 11:01:24 FORTRAN has the arithmetic IF with IF (expression) negative,zero,positive where the negative,zero,positive means the line numbers to go to based on the value of the expression in parentheses. 11:01:27 so f(0,function () { return 'no'; }, function () { return 'good'; }, function () { return 'worse'}) would return a function 11:01:35 FOCAL also has arithmetic IF. 11:01:50 you do realize fortran is a crappy language 11:02:09 I actually think dc would be better with arithmetic IF rather than the conditionals it has now. 11:02:20 that i can believe 11:02:21 and do you realise that p isn't a conditional and the function isn't related with IF at all 11:02:46 if p was a conditional then it could be OK 11:03:08 conditional = boolean 11:04:24 i imagine that if you're into writing crappy code, you could use arithmetic if pretty conveniently for branching based on order by having a compare function that returns integers like java's compareTo 11:04:56 of course that's pretty ridiculous in a high level language 11:05:11 Sure, C and so on don't need arithmetic IF, but I think it would be good in dc, though. 11:05:34 if you have addresses of each command (line numbers), then you could make a function f(p,q,r) = if p then goto q else goto r 11:05:52 isn't dc a stack language where you play around with numbers and such 11:06:04 along with a return(s) 11:06:11 oklopol: Yes 11:06:19 function f(q 11:06:28 then yeah i imagine it would be useful 11:06:52 function f(p,q,r) = if p then goto q else goto r; return previous line number 11:08:31 or f(p,q,r) = if p then eval(q) else eval(r); 11:09:19 Actually the only conditional operator in TeXnicard is arithmetic IF without branching (if you want to make it doing something, you can put the codes to execute and then put x afterward) (if you want to compare you use subtraction command; using - on strings is strcmp so that works too) 11:10:42 Halite: Sure you can have that but I like to put eval outside instead of including it in the definition 11:12:20 f(p,q,r) = if p then return q else return r 11:15:52 I have a function that could be used in a programming language too. 11:16:25 It requires some features of my programming language at the moment, though. 11:16:38 What features? What functions? 11:17:07 return function (a,b) { var x = SaltScript.tfToBinary(a); var y = SaltScript.tfToBinary(b); return SaltScript.binaryToTf((table >> ((x<<1)|y)) & 1); }; 11:17:27 ^^ this is my function coded in Javascript ^^ 11:17:50 f(table) = return function (a,b) { var x = SaltScript.tfToBinary(a); var y = SaltScript.tfToBinary(b); return SaltScript.binaryToTf((table >> ((x<<1)|y)) & 1); }; 11:17:57 included f(table) 11:18:37 tfToBinary is basically if in1 = true then 1 else 0 11:18:48 and binaryToTf is if in1 = 1 then true else false 11:24:14 <[th]s0[st]s1[nd]s2[rd]s3dBr100%d10%r10/1-1 0 1i*d3-1d0i*`0+L+> The "i" is the arithmetic IF. If you know the commands, then it is not difficult. (Isn't it?) 11:24:50 CONFUSE 11:24:52 CONFUSE 11:24:55 CONFUSE 11:25:01 :P 11:25:47 Confuse what? 11:47:57 -!- carado has joined. 11:50:21 -!- nooga has quit (Ping timeout: 244 seconds). 11:56:01 -!- azaq23 has joined. 11:56:11 -!- azaq23 has quit (Max SendQ exceeded). 11:58:31 -!- azaq23 has joined. 12:18:14 -!- ogrom has quit (Quit: Left). 12:27:48 -!- nooga has joined. 12:54:54 -!- Arc_Koen has joined. 12:56:37 -!- nooodl has joined. 12:58:55 Is it possible for the program to detect whether or not is allow to rewind stdin? 13:00:11 @let allowToRewindStdin = return False 13:00:14 Defined. 13:00:56 Is it allowed if it is a tape? 13:01:10 -!- Jafet has quit (Ping timeout: 256 seconds). 13:11:43 -!- Jafet has joined. 13:15:27 Let's check the program. 13:15:42 > runIdentity $ allowToRewindStdIn "a tape" 13:15:45 Not in scope: `allowToRewindStdIn' 13:15:45 Perhaps you meant `allowToRewindStdin' ... 13:15:50 > runIdentity $ allowToRewindStdin "a tape" 13:15:52 Couldn't match expected type `Data.Functor.Identity.Identity a0' 13:15:52 ... 13:21:49 -!- ogrom has joined. 13:25:32 @remember lambdabot ... 13:25:33 Done. 13:38:11 http://unigine.com/products/valley/download/ 13:38:13 -!- ogrom has quit (Quit: Left). 13:40:20 -!- ogrom has joined. 13:44:09 :t allowToRewindStdin "a tape" 13:44:10 Bool 13:44:22 > allowToRewindStdin "a tape" 13:44:25 False 13:44:36 > help 13:44:37 Not in scope: `help' 13:44:50 > echo "hi" 13:44:52 Not in scope: `echo' 13:44:56 lol 13:45:14 @let help = " http://learnyouahaskell.com/ " 13:45:16 Defined. 13:45:19 > help 13:45:22 " http://learnyouahaskell.com/ " 13:45:37 @let echo = id 13:45:40 Defined. 13:45:46 echo "hi" 13:45:54 > echo "hi" 13:45:56 "hi" 13:46:26 @let testHaskell = " http://tryhaskell.org/ " 13:46:28 Defined. 13:47:27 > testHaskell 13:47:28 " http://tryhaskell.org/ " 13:47:32 > id "hi" 13:47:33 "hi" 13:47:42 > echo "Hello" 13:47:43 "Hello" 13:47:55 @let say = echo 13:47:56 Defined. 13:48:01 > say "Hello!" 13:48:03 "Hello!" 13:48:28 > let say = echo 13:48:29 not an expression: `let say = echo' 13:48:39 are you doing it again...................... 13:49:48 Halite: Do you know Haskell? 13:53:36 no 13:58:54 he does not 14:02:45 then he should. 14:03:50 attempts have been made to communicate this to him 14:03:56 he does not appear to have picked up on them 14:04:39 -!- Taneb has joined. 14:04:52 What's that word that means "is not bad anymore"? 14:05:37 irthen bad? 14:05:47 what's a word that means 'to be bad' 14:07:59 my attempts to find one have brought me here: http://www.noswearing.com/dictionary 14:08:00 Taneb: fixed 14:08:19 Really, I want the event of becoming not bad 14:08:46 irthening bad 14:08:55 Right 14:09:21 I'll trust Phantom_Hoover, because it's for his tumblr 14:09:38 excellente 14:10:00 although it would be better if i knew an actual word for being bad 14:10:26 these bad words are amazing 14:10:40 "cocksmoker - homosexual" 14:10:50 "offend"? 14:11:05 "cockmongler - homosexual" 14:11:23 "cockmaster - homosexual" 14:11:32 "cockfucker - idiot" 14:11:44 i guess cockfucker would be too obvious? 14:12:06 And also includes, eg, heterosexual and bisexual women 14:12:36 but only a man could truly mongle a cock 14:12:44 Precisely 14:13:18 -!- ogrom has quit (Quit: Left). 14:13:43 Hang on 14:13:54 I thought that the -irth form could take nouns? 14:13:59 As in "Perth" 14:14:00 erm 14:14:07 no that's a false cognate 14:14:14 Ah 14:14:15 Damn 14:14:24 also bad is an adjective anyway! 14:14:32 Pier isn't 14:14:35 > let say = echo in '' 14:14:37 :1:21: parse error (possibly incorrect indentation) 14:14:41 > let say = echo in '.' 14:14:42 '.' 14:14:48 > say "hi" 14:14:50 "hi" 14:14:53 Taneb, so are you suggesting perth is called that because it stopped being a pier 14:15:04 aha 14:15:13 I think I know Haskell now 14:15:19 Yeah, it was originally just a pier, but then became two cities across the world 14:15:21 :t say 14:15:23 a -> a 14:15:29 @src say 14:15:29 Source not found. BOB says: You seem to have forgotten your passwd, enter another! 14:15:32 but whay do @let x = y if you don't want to be forced the in keyword 14:15:36 :t echo 14:15:37 a -> a 14:15:38 -irth form? 14:15:42 -!- carado has quit (Ping timeout: 264 seconds). 14:16:01 Received a CTCP VERSION from Phantom_Hoover 14:16:06 Halite, sudo apt-get install ghc 14:16:08 ghci 14:16:09 there 14:16:13 no need to spam the channel 14:16:23 Wrong channel, Phantom_Hoover 14:16:35 You want #ubuntu 14:16:47 /o\ 14:17:31 Halite, he was talking to you, so you would stop spamming #esoteric with lambdabot 14:17:55 mroman, the -irth form, indicating the cessation of something 14:18:10 well, I'm not installing ghci 14:18:15 for instance, to forget is to nirth 14:18:16 Wait, what is ghci 14:18:25 @ghci 14:18:25 ghc says: rts/sm/Sanity.h:24:0: error: conflicting types for 'checkSanity' 14:18:27 the thing you're spamming the channel with 14:18:35 `? ghci 14:18:40 ghci? ¯\(°_o)/¯ 14:18:54 `learn GHCi is a local version of lambdabot. Cool, huh? 14:18:58 I knew that. 14:19:16 Phantom_Hoover: What kind of english is that? 14:19:19 mroman, and when a woman stops bearing her child, it's called a birth 14:19:35 I know birth :) 14:19:45 that should've been 'knirth', fwiw 14:20:58 -!- zzo38 has quit (Remote host closed the connection). 14:21:15 Installing GHC 14:21:20 `help 14:21:20 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 14:22:47 hmm, so 'birth' is the irthative of 'be'? 14:23:38 no 14:23:46 the irthative of 'be' is irthen 14:25:52 -!- Taneb has quit (Ping timeout: 256 seconds). 14:26:02 Halite, would you please botspamirth 14:26:03 Hirth 14:26:23 Phantom_Hoover, sure. *botspamirths* 14:27:51 Which file extension do you keep Haskell code in 14:28:01 .hs 14:28:08 or .lhs 14:28:19 ok 14:28:31 thanks 14:28:43 http://learnyouahaskell.com/ 14:28:57 learnth 14:29:13 I already leaned, I can't learnirth 14:29:16 learned* 14:29:28 Phantom_Hoover, yesirth! 14:29:32 -irnth could be the unirthative 14:29:54 I already know atleast basic Haskell 14:29:59 `welcome 14:30:01 Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 14:30:26 it's esoteric programming language development 14:30:35 not esoteric speak language 14:30:42 btw. I used http://tryhaskell.org/ to learn 14:31:13 I used Haskell to learn Haskell. 14:31:59 mroman, clever man 14:32:09 I used http://tryhaskell.org/ to learn Haskell 14:32:33 are they paying you or something 14:33:54 I still don't know how to use LET without the IN keyword 14:35:41 That's expert-level. 14:36:08 shachaf, well 14:36:35 shachaf, example 14:36:36 @help 14:36:36 help . Ask for help for . Try 'list' for all commands 14:36:42 @help let 14:36:42 let = . Add a binding 14:36:48 Halite, think about it 14:36:57 if you don't have an in then what does the let even do 14:37:52 Phantom_Hoover, you could > let add x = x+1 < and then > add 1 < 14:38:27 ok 14:38:29 Phantom_Hoover, it's simply a variable binding 14:38:31 you have learnt haskell wrong 14:38:41 wait, what 14:38:46 I'VE JUST LEARNT IT 14:38:48 i have provided a link by which you might learn it righter 14:38:48 WRONG 14:39:04 > (28,"Chris") 14:39:06 (28,"Chris") 14:39:14 > sort (28,"Chris") 14:39:15 Couldn't match expected type `[a0]' with actual type `(t0, t1)' 14:39:29 > sort "Chris" 14:39:30 "Chirs" 14:39:50 > sort "Halite" 14:39:51 "Haeilt" 14:40:05 > id 14:40:07 No instance for (GHC.Show.Show (a0 -> a0)) 14:40:07 arising from a use of `M37046... 14:40:12 > id "" 14:40:14 "" 14:40:41 `haskell 14:40:43 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: haskell: not found 14:40:47 `? haskell 14:40:49 Unbound implicit parameter (?haskell::Wisdom) \ arising from a use of implicit parameter `?haskell' 14:40:54 @help 14:40:54 help . Ask for help for . Try 'list' for all commands 14:41:01 jesus 14:41:02 fucking 14:41:05 christ 14:41:10 @list 14:41:10 http://code.haskell.org/lambdabot/COMMANDS 14:41:18 @help let 14:41:18 let = . Add a binding 14:41:22 you could do this all in a /query 14:41:22 @help let in 14:41:23 let = . Add a binding 14:41:26 @help in 14:41:26 help . Ask for help for . Try 'list' for all commands 14:41:31 you could do this all in the comfort of your own terminal 14:41:33 but no 14:41:58 because I want to show you that I have learnt Haskell righter than you think, Phantom_Hoover 14:42:43 you've learnt haskell irc bots 14:43:13 I've learnt haskell from tryhaskell.org 14:43:18 and have managed to get confused about definitions, scope and mutability 14:43:21 Not from IRC bots 14:44:48 aha! 14:44:48 look seriously just fucking read lyah already 14:45:02 look 14:45:45 let is used to use a certain formula such as 2 * 165 multiple times without rewriting it 14:45:58 Not to define functions 14:47:36 Look at step 15 of tryhaskell.org tutorial - it says you use let to define functions 14:47:46 This is the confusing part 14:50:11 What the heck? 14:50:13 look, seriously 14:50:31 lyah will give you a much more comprehensive understanding of haskell than tryhaskell 14:51:11 please read it 14:51:11 where is lyah 14:51:17 http://learnyouahaskell.com/chapters 15:08:52 Halite, let can be used to define functions used after in. But TryHaskell is distorted enough that it's the only way to write something equivalent to top level functions. And yes, read LYAH 15:09:08 > let f x = x * 10 in f 20 15:09:09 "Functions" isn't accurate. 15:09:09 200 15:09:28 elliott, they can be but don't have to be functions 15:09:37 Didn't mean to imply that functions were the only things that let can define 15:10:13 right 15:23:36 Halite: Look at this 15:23:45 > map (^2) [1..] 15:23:47 [1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,48... 15:24:25 Halite, the salient point is that in haskell you don't 'assign' or 'set' variables, you /define/ them in a given scope 15:24:55 @let help = " http://learnyouahaskell.com/chapters " 15:24:56 :11:1: 15:24:57 Multiple declarations of `help' 15:24:57 Declared at: ... 15:25:07 @unlet help 15:25:07 TemplateHaskell is not enabled 15:25:33 @help 15:25:33 help . Ask for help for . Try 'list' for all commands 15:25:36 @list 15:25:37 http://code.haskell.org/lambdabot/COMMANDS 15:25:52 @undefine help 15:25:59 @let help = " http://learnyouahaskell.com/chapters " 15:26:02 Defined. 15:26:10 FreeFull, don't you start 15:26:19 * FreeFull whistles 15:37:59 > do let { x = 5 }; x 15:38:01 5 15:38:01 nooodl: You have 1 new message. '/msg lambdabot @messages' to read it. 15:38:09 "that's how you use let" 15:38:29 "monqy asked 1m 3d 12h 47m 24s ago:" oops 15:41:12 -!- WeThePeople has joined. 15:44:55 @ask monqy oops 15:44:55 Consider it noted. 15:54:51 > do let { double x = x+x }; x 15:54:53 x 15:55:00 > do let { double x = x+x }; '' 15:55:02 :1:30: parse error (possibly incorrect indentation) 15:55:10 > double 3 15:55:12 3.0 15:55:21 > do let { double x = x+x }; x+x 15:55:23 x + x 15:55:32 > double 3 15:55:33 3.0 15:58:04 > let 2 + 2 = 5 in 2 + 2 15:58:06 5 16:00:14 @let dopplegangerOf x = sort x 16:00:18 Defined. 16:00:24 > doppleGanger of "Phantom_Hoover" 16:00:26 :1:14: parse error on input `of' 16:00:35 - 16:00:40 > doppleGangerOf "Phantom_Hoover" 16:00:42 Not in scope: `doppleGangerOf' 16:00:42 Perhaps you meant `dopplegangerOf' (line 2) 16:00:51 - 16:00:54 > dopplegangerOf "Phantom_Hoover" 16:00:57 "HP_aehmnooortv" 16:01:07 LOL 16:01:48 @let dopplegangerOf' "" = "" 16:01:49 Defined. 16:02:50 @let dopplegangerOf' x = head x ++ dopplegangerOf' tail x 16:02:51 :4:26: 16:02:52 Couldn't match expected type `[Char]' with actual type `C... 16:03:17 > :t dopplegangerOf' 16:03:19 :1:1: parse error on input `:' 16:03:35 grr 16:03:43 I should msg lambdabot 16:05:42 you probably should 16:06:58 btw your problem is that you're using list concatenation (++) to concatenate something that isn't a list 16:08:06 @:t "" 16:08:07 Done. 16:08:10 @:t "list" 16:08:11 Done. 16:08:24 it is a list 16:08:48 remember, that syntactic sugar 16:09:15 > "string" == ['s','t','r','i','n','g'] 16:09:17 True 16:09:31 see 16:09:41 > head "string" 16:09:42 's' 16:09:48 that's not a string 16:09:49 > tail "string" 16:09:50 "tring" 16:10:07 it's a chararray 16:10:24 the chararray is what I was using 16:11:40 's' ++ "tring" results in a type error because one of the arguments is a char and the other is a list of chars 16:12:17 @let dopplegangerOf' x = [head x] ++ dopplegangerOf' tail x 16:12:18 :5:1: 16:12:18 Multiple declarations of dopplegangerOf' 16:12:18 Declared at:... 16:12:40 > dopplegangerOf' "Halite" 16:12:42 "*Exception: :3:1-23: Non-exhaustive patterns in function dopplegang... 16:12:54 @let dopplegangerOf' "" = "" 16:12:54 :5:1: 16:12:55 Multiple declarations of dopplegangerOf' 16:12:55 Declared at:... 16:12:57 > dopplegangerOf' "Halite" 16:12:58 "*Exception: :3:1-23: Non-exhaustive patterns in function dopplegang... 16:13:17 it's messed up because of multiple declarations of dopplegangerOf' 16:16:43 I'd like to make a good programming language that is esoteric but I don't want to make it another BF. 16:36:20 -!- Taneb has joined. 16:36:42 I wrote a long Phantom_Hoover-y tumblr post then lost it... 16:41:35 you use tumblr? Huh 16:41:44 -!- yhojeyisaac has joined. 16:42:05 Yes 16:42:27 At least three people in this channel do 16:45:33 citation needed. 16:46:05 taneb.tumblr.com sgeo.tumblr.com phantom-hoover.tumblr.com 16:46:26 shachaf.tumblr.com 16:47:03 Taneb...................................................................................................... 16:47:36 I need some people not reblogging Homestuck showing up on my dashboard 16:47:47 Anyway, I just recieved the private message: 16:47:48 hello as you lamas 16:50:15 -!- yhojeyisaac has quit (Ping timeout: 252 seconds). 16:51:34 -!- yhojeyisaac has joined. 17:00:27 Taneb, nice one 17:01:18 :( 17:02:03 -!- yhojeyisaac has quit (Read error: Connection reset by peer). 17:02:29 -!- yhojeyisaac has joined. 17:03:02 Taneb, I'm not reblogging Homestuck 17:03:07 Shockingly 17:03:28 Sgeo_, I follow 70 blogs 17:03:41 About 65 of them reblog homestuck 17:03:48 I shoulg get back to work on my blog post 17:05:53 I wrote a long Phantom_Hoover-y tumblr post then lost it... 17:05:54 nooooooooooo 17:26:28 I don't believe Haskell is Turing complete, but it is interesting! 17:26:42 It is turing complete 17:27:18 How does it present data to the end-user then 17:27:39 Presenting data to the end-user is an entirely separate concern from turing-completeness. 17:27:48 a) that doesn't matter for turing completeness, b) it has a method of doing io 17:27:58 what is the method of io 17:28:20 Things like printing to the screen are actions. Things you can pass around to functions, create, etc. 17:28:35 When a Haskell program runs, it will execute the action called main 17:28:57 What is the Haskell code to print to the screen 17:29:03 printLn 17:29:03 main = putStrLn "Hello" 17:29:07 or that 17:29:14 same difference 17:29:25 putStrLn "Read a Haskell tutorial!" 17:29:28 putStrLn "Hello" is an IO (), that is, an action that, when executed, does something 17:29:32 phantom_hoover: Huh? Where’s that defined? 17:29:36 it's not 17:29:45 > putStrLn "I did read a Haskell tutorial!" 17:29:47 No instance for (GHC.Show.Show (GHC.Types.IO ())) 17:29:48 arising from a use of ... 17:29:51 look there are so many damn names for that in different languages 17:29:55 Halite, yes. a bad one 17:29:56 Halite, IO isn't done in LYAH until chapter 9 17:30:09 you can also ask these questions in #haskell 17:30:11 Sgeo_, oh. I haven't reached chap. 9 yet. 17:30:35 Halite: when you're just starting out, you're better off playing with values in GHCi and not worrying about IO 17:30:50 Yeah. 17:30:52 kmc, thanks for the advice. 17:30:57 IO in Haskell isn't hard but it's just different enough to confuse the fuck out of anyone who doesn't have the background knowledge 17:31:28 I really, really like Haskell's IO stuff 17:31:48 it's all right 17:32:21 Haskell's IO is missing a lot of things an imperative language should have, but GHC adds most of them as libraries 17:32:34 (concurrency, extensible exception handling with async exceptions, etc) 17:33:18 standard Haskell doesn't even have a nice way to do binary IO does it? 17:33:35 as i recall, you can set binary mode on a handle but you still get a list of characters which is just... wrong 17:33:45 I remember in one of my C# classes we were doing threading, so I imagined what it would look like with Haskell and forkIO and managed to translate that to C#, and so wrote something typesafe with a lambda, rather than the type-unsafe thing the processor was doing 17:33:49 professor, not processor 17:33:55 Is withBinaryFile in the report? 17:34:00 Wouldn't be wrong if Haskell chars didn't go above 255 17:34:03 But they do 17:34:13 FreeFull: there is still a semantic difference between a character and a byte 17:34:24 Okay, it isn't 17:34:32 C can burn in hell for leading decades of programmers astray in this regard 17:34:44 with the result that computers don't work right if you use any language other than English 17:34:47 fuck that 17:35:10 What if you use lojban 17:35:11 @hoogle TextEncoding 17:35:12 System.IO data TextEncoding 17:35:12 GHC.IO.Encoding.Types data TextEncoding 17:35:12 GHC.IO.Encoding data TextEncoding 17:35:44 Nope, not useful 17:35:54 Taneb: hm, I guess lojban is mostly ASCII 17:35:59 except for embedded spans of other languages 17:36:07 English is /mostly/ ASCII but some stuff isn't 17:36:23 It would be nice if haskell had binary IO that returned a list or blocks of word8 17:36:41 résumé, coöperate, names of course, currency symbols (of English-speaking countries even), all kinds of typographical marks 17:36:50 hello 17:37:08 -!- yhojeyisaac has left. 17:37:13 goodbye 17:37:21 FreeFull: There is? 17:37:32 mroman: Which is? 17:37:52 for serious programs both [Char] and [Word8] are woefully inefficient though 17:37:56 most of the time 17:38:15 Isn't ByteString up for that task? 17:38:19 fortunately Data.ByteString and Data.Text are both in the Platform 17:38:21 yes 17:38:27 but ByteString isn't part of standard Haskell 17:38:31 which can then neatly be parsed using the Monads in Data.Binary 17:38:36 -!- DHeadshot has joined. 17:38:36 Depends on what you're doing 17:38:43 in the language lawyer sense 17:38:49 it's part of standard Haskell in the "what everyone uses" sense 17:38:59 kmc: I think Lojban is 100% ASCII 17:39:47 String is actually a bit underrated, in that just replacing it with Text would be terrible for all the incremental uses of it (list-as-control-structure) 17:39:51 also Text isn't very good :( 17:39:58 yeah 17:40:06 i disapprove of UTF-16 :( 17:40:18 but shachaf tells me it was faster than UTF-8 for Text 17:40:41 getContents >>= putStr . map toUpper is easier than writing a recursive IO function for the same thing 17:40:52 And this depends on the laziness of IO 17:40:59 lazy IO sucks :( 17:41:10 kmc: Then use strict IO 17:41:15 it's brittle, doesn't handle errors, and confuses the hell out of people 17:41:43 it should be a crime to teach lazy IO to beginners because it violates (through hacks) the main principle they need to understand evaluation vs. execution 17:42:41 well lazy IO isn't really strictly impure 17:43:00 I remember being disappointed that lazy I/O, which seemed like a selling point of Haskell, was recommended against 17:43:09 it depends on how you define 'pure' of course 17:43:11 I don't think categorically rejecting it wholesale is necessarily a good idea, but it is very annoying that there is no standard strict getContents etc. 17:43:45 Is there any definition of pure other than "always returns the same output for the same input"? 17:44:00 there are many definitions of RT/purity 17:44:00 FreeFull: it also has to not have effects on the outside world 17:44:04 and that's the fuzzy part 17:44:09 it is a very tricky thing to define 17:44:11 does making your CPU heat up count as an effect? 17:44:13 @quote roconnor pure 17:44:14 roconnor says: If one wants to go swimming with sharks, or program in a non-pure language, I suppose that is one's choice 17:44:15 @quote roconnor pure 17:44:16 roconnor says: If one wants to go swimming with sharks, or program in a non-pure language, I suppose that is one's choice 17:44:20 @quote roconnor RT 17:44:21 roconnor says: gez, you write one paper explaining how a lens is really a higher order monoidal natural transformation, and suddenly everyone thinks you are an expert on lenses. 17:44:22 @quote roconnor RT 17:44:23 roconnor says: I started the colour library because I need "yellow" ... and it sort of grew from there. 17:44:25 hmm 17:44:31 @quote lazy 17:44:31 shachaf says: In order to get the last element of a list, you have to traverse the whole list. This can be an expensive, inefficient, unlazy operation, so you should develop a distaste for it like 17:44:32 the rest of us. 17:44:41 @quote arrow.*pure 17:44:41 roconnor says: An arrow (category) is pure if (f &&& f) = f >>> (id &&& id). When people say Haskell is pure they mean that (->) is pure. When people say IO isn't pure they mean that (Kleisli IO) 17:44:41 isn't pure. 17:44:43 there 17:44:47 Why did lambdabot split so early 17:45:01 There is a way to calculate the perfect split place 17:45:03 with Haskell's lazy IO you have this problem where the result can depend on when in time a particular value was evaluated 17:45:04 That's way too early 17:45:09 have you seen lambdabot's code 17:45:10 say, if the file changes as your program was running 17:45:33 conceptually it should only depend on when things are /executed/ and order/time of evaluation should not be observable 17:45:39 but this is violated 17:45:46 kmc: Most programs don't deal well with that, although I suppose with most it affects you right now instead of later 17:45:54 yeah 17:46:04 * elliott doesn't think it is as clear-cut as kmc thinks, but thankfully there are practical reasons to dislike lazy IO 17:46:06 and it breaks the #1 property you can use to reason about Haskell programs 17:46:08 Usually people assume they are the only ones changing the file 17:46:32 `flock 17:46:33 flock (util-linux-ng 2.17.2) \ Usage: flock [-sxun][-w #] fd# \ flock [-sxon][-w #] file [-c] command... \ flock [-sxon][-w #] directory [-c] command... \ -s --shared Get a shared lock \ -x --exclusive Get an exclusive lock \ -u --unlock Remove a lock \ -n --nonblock Fail rather than wait \ -w --timeout Wa 17:46:34 I don't think lazy IO breaks the #1 property, or even the #3 property; maybe the #24 property. 17:47:14 * elliott thinks "purity" is more of a slogan than a property people actually use in practice. 17:47:26 People use properties like let x = y in e --> e[x := y] 17:47:39 And (\y -> e) x --> e[y := x] 17:47:50 Whereby --> I actually mean <-->. 17:48:13 purity is like anything that is nice to assume when reading a program and figuring out what it does 17:50:13 purity is why the ST monad exists 17:50:15 -!- Nisstyre-laptop has joined. 18:00:19 -!- oerjan has joined. 18:03:26 oerjan, how would you, given a 16-bit unsigned integer, construct a second 16-bit unsigned integer such that the bit representation of the two integers are eachother's reverse? 18:04:05 <<, >> and & 18:05:00 I'd take 65535-x 18:05:43 olsner, I don't think that works 18:06:01 olsner: that's reversing each bit, not their order 18:06:04 oerjan, that sounds scary 18:06:09 oerjan: right 18:07:14 (the language I'm working in is Haskell) 18:07:56 Taneb: ((x & 1) <<15) | ((x & 2) <<14) | ... ((x & 128) << 1) | ((x & 256) >> 1) | ... ((x & 32768) >> 15) 18:08:11 oh hm 18:08:20 in that case... 18:08:39 yeah "purity" is mostly about community norms rgarding what kinds of APIs are acceptable 18:11:45 note to self COQC theories/Numbers/Cyclic/DoubleCyclic/DoubleDiv.v 18:13:48 > let rev n = foldl1' (.&.) [if testBit n i then 0 else bit (sz-i) | i <- [0..sz]] where sz = bitSize n in rev (5 :: Int) 18:13:50 0 18:13:55 oops 18:14:03 > let rev n = foldl1' (.|.) [if testBit n i then 0 else bit (sz-i) | i <- [0..sz]] where sz = bitSize n in rev (5 :: Int) 18:14:04 13835058055282163711 18:14:16 oh good it did continue 18:14:20 so it is just being very slow 18:14:22 > let rev n = foldl1' (.|.) [if testBit n i then 0 else bit (sz-i) | i <- [0..sz]] where sz = bitSize n in rev (5 :: Word16) 18:14:23 49151 18:14:34 > let rev n = foldl1' (.|.) [if testBit n i then 0 else bit (sz-i) | i <- [0..sz]] where sz = bitSize n in rev (7 :: Word16) 18:14:36 16383 18:14:58 hm that seems ... oh 18:15:00 sorry 18:15:07 :t bits 18:15:09 (Applicative f, Bits b, Indexable Int p) => p Bool (f Bool) -> b -> f b 18:15:18 :t partsOf 18:15:19 Functor f => Traversing (->) f s t a a -> LensLike f s t [a] [a] 18:15:21 > let rev n = foldl1' (.|.) [if testBit n i then bit (sz-i) else 0 | i <- [0..sz]] where sz = bitSize n in rev (1 :: Word16) 18:15:23 65536 18:15:25 :t partsOf bits %~ reverse 18:15:27 Bits t => t -> t 18:15:33 > (1 :: Word16) & partsOf bits %~ reverse 18:15:35 32768 18:15:48 HTH(?) 18:15:50 :t (%~) 18:15:51 oh darn 18:15:51 Profunctor p => Setting p s t a b -> p a b -> s -> t 18:15:58 > let rev n = foldl1' (.|.) [if testBit n i then bit (sz-i) else 0 | i <- [0..sz]] where sz = bitSize n - 1 in rev (1 :: Word16) 18:16:00 32768 18:16:10 Taneb: try this instead :P 18:16:19 I bet Taneb is already depending on lens! 18:16:25 I am already depending on lens 18:16:37 wow 18:16:52 not only do I write shorter code than oerjan but I am _also_ better at precognition. 18:17:07 I keep forgetting about partsOf 18:17:10 It feels so wrong 18:17:55 elliott, oerjan, even olsner, thanks 18:19:11 lens, the library that makes you long back to when you failed at understanding monads 18:19:18 admittedly you can do slightly nicer than partsOf here. 18:19:22 since reversing is always well-defined 18:19:26 * oerjan never actually did that, but it seemed appropriate 18:20:19 :t (&) 18:20:21 a -> (a -> b) -> b 18:21:00 :t partsOf 18:21:02 Functor f => Traversing (->) f s t a a -> LensLike f s t [a] [a] 18:21:19 oerjan: it may be more helpful to look at the hackage docs, which contain helpful restricted signatures for every function 18:21:36 (and don't expand out type synonyms like GHC has a habit to) 18:22:10 except there are so many modules, how do i even find partsOf 18:22:18 > (0$0 `partsOf`) 18:22:20 The operator `Control.Lens.Traversal.partsOf' [infixl 9] of a section 18:22:20 ... 18:22:26 except that way 18:23:26 > (0 & 0 %~) 18:23:28 The operator `Control.Lens.Setter.%~' [infixr 4] of a section 18:23:28 must hav... 18:24:01 oerjan: you can use the haddock index 18:24:16 hmm, for some reason I thought oerjan was shachaf for the last couple of minutes 18:24:17 http://hackage.haskell.org/packages/archive/lens/3.8.7.3/doc/html/doc-index.html 18:24:23 but that he'd somehow forgotten all about lenses 18:28:08 > over (partsOf bits) reverse (1 :: Word16) 18:28:10 32768 18:28:28 @src over 18:28:29 Source not found. Take a stress pill and think things over. 18:28:32 :t over 18:28:34 Profunctor p => Setting p s t a b -> p a b -> s -> t 18:29:07 it's a synonym for (%~), i think lens really overdone the operator thing 18:29:35 the operators follow a consistent pattern 18:29:37 although %~ isn't so bad 18:29:43 aaargh. time to read about lenses 18:29:48 you can derive the vast majority of them from a few first principles 18:29:56 nooodl: http://lens.github.com/ 18:29:57 > (0$0 &) 18:29:59 The operator `Control.Lens.Combinators.&' [infixl 1] of a section 18:29:59 must... 18:30:02 the other purpose of lens is to make haskell into perl 18:30:47 i'll watch that video you told me about, elliott 18:30:52 I should stop procrastinating looking into lens 18:30:56 :t (><>) 18:30:58 Not in scope: `><>' 18:30:58 Perhaps you meant one of these: 18:30:58 `>>' (imported from Control.Monad.Writer), 18:31:07 on the other hand, Ishould stop procrastinating on a lot of things 18:31:08 i'm pretty sure i saw fishes in there 18:31:26 :t (<%~>>) 18:31:28 Not in scope: `<%~>>' 18:31:39 :t (<%>~) 18:31:40 Not in scope: `<%>~' 18:31:40 Perhaps you meant one of these: 18:31:40 `<%@~' (imported from Control.Lens), 18:31:46 :t (<<%~) 18:31:48 Data.Profunctor.Strong p => Overloading p q ((,) a) s t a b -> p a b -> q s (a, t) 18:32:05 < prefix = also returns b. << prefix = also returns a. (latter exists because someone requested it, IIRC) 18:32:13 % = "mod"ifies with a function 18:32:17 (I use it) 18:32:18 ~ = functional setting 18:32:25 (but did not request it) 18:33:09 until yesterday I hadn't really thought about the fact that #00ff00 is so much brighter than #0000ff — almost ten times as bright! 18:33:14 (photometrically) 18:33:31 -!- Bike has joined. 18:33:46 wooooo coq finished compiling 18:34:18 > _1 <<%~ succ $ (10,20) 18:34:20 (10,(11,20)) 18:34:25 -!- Nisstyre-laptop has quit (Quit: Leaving). 18:34:39 > ("hello", "world") ^. both 18:34:41 "helloworld" 18:34:44 EXPLAIN THAT 18:35:21 i understand that, i think 18:35:26 :t (^.) 18:35:28 s -> Getting a s t a b -> a 18:35:45 -!- Nisstyre-laptop has joined. 18:35:49 > (Sum 1, Sum 2) ^. both 18:35:51 Sum {getSum = 3} 18:36:26 > _1 <%~ succ $ (10,20) 18:36:28 (11,(11,20)) 18:36:47 I think probably one of the < or << schemes could go 18:36:51 elliott: hm i don't think the difference between < and << is quite what you said 18:36:51 but eh 18:37:05 (actually I use (<<%=) rather than (<<%~)) 18:37:11 oerjan: it is. note that "a" is intrinsically the old value and "b" intrinsically the new 18:37:21 oh wait you meant a, not both a and b 18:37:28 as in, the generic operators simply cannot use the old value as an "b" or the new value as an "a" 18:37:32 right 18:37:41 i sort of thought << would accumulate even more stuff :P 18:37:47 (<<<%~) 18:38:03 > _1 <<<%~ succ $ (10,20) 18:38:05 Not in scope: `<<<%~' 18:38:06 Perhaps you meant `<<%~' (imported from Control.Lens) 18:38:08 OKAY 18:38:40 i did look a bit, i found zoom which seems great 18:39:49 > flip runState (0,0) $ do zoom _1 (modify (+2); zoom _2 (modify (+3)) 18:39:51 :1:46: parse error on input `;' 18:39:54 oops 18:39:58 oerjan: the cool/scary thing about zoom is what happens when you use it on a *traversal* rather than just a lens 18:39:58 > flip runState (0,0) $ do zoom _1 (modify (+2)); zoom _2 (modify (+3)) 18:40:01 ((),(2,3)) 18:40:04 ...you get a loop 18:40:05 http://fullcomment.nationalpost.com/2013/02/16/david-frum-canadas-government-must-reach-out-to-the-undead/ 18:40:24 oh... 18:40:28 > flip runState (0,0) $ zoom both (modify (+2)) 18:40:30 ((),(2,2)) 18:40:37 i was just going to try that :P 18:41:06 > flip State.runState [(a,b),(c,d)] $ zoom traverse $ _2 <%= f 18:41:07 (from the docs) 18:41:07 Not in scope: `State.runState' 18:41:10 > flip runState [(a,b),(c,d)] $ zoom traverse $ _2 <%= f 18:41:12 No instance for (Debug.SimpleReflect.Expr.FromExpr 18:41:12 (p0 ... 18:41:16 ugh. 18:41:24 > flip runState [(a,b),(c,d)] $ zoom traverse $ _2 <%= f :: (Expr,[(Expr,Expr)]) 18:41:26 No instance for (Debug.SimpleReflect.Expr.FromExpr 18:41:26 (p0 ... 18:41:29 fuck 18:41:34 >>> flip State.runState [(a,b),(c,d)] $ zoom traverse $ _2 <%= f 18:41:34 (f b <> f d <> mempty,[(a,f b),(c,f d)]) 18:41:35 HTH 18:42:41 ugh. i don't understand the costate comonad coalgebra thing he explains as an aside in the first five minutes 18:42:47 Expr has a monoid instance? :P 18:42:58 nooodl: you don't need to care about what costate comonad algebra means 18:43:06 only what s -> (a, a -> s) means 18:43:39 nice 18:46:35 costate comonad coalgebra? is that a joke? 18:47:02 Yes 18:47:31 It's also magic of category theory 18:47:57 it doesn't really have all that much to do with category theory 18:48:14 It's magic of something 18:48:18 Haskell probably 18:52:16 man, this guy is really great at explaining this stuff 18:53:23 edward "this guy" kmett 18:53:36 * elliott remembers the days edwardk was in #esoteric! 18:55:25 -!- carado has joined. 18:55:37 :t iforOf 18:55:39 (Indexed i a (f b) -> s -> f t) -> s -> (i -> a -> f b) -> f t 18:56:36 > iforOf traversed "abcd" replicate 18:56:38 [] 18:56:41 darn 18:57:20 -!- epicmonkey has joined. 18:57:23 > iforof traverse "abcd" replicate 18:57:25 Not in scope: `iforof' 18:57:26 Perhaps you meant one of these: 18:57:26 `iforOf' (import... 18:57:30 > iforOf traverse "abcd" replicate 18:57:31 Couldn't match expected type `Control.Lens.Internal.Indexed.Indexed 18:57:32 ... 18:57:40 > iforOf traverse "abcd" (index replicate) 18:57:42 Couldn't match expected type `Control.Lens.Internal.Indexed.Indexed 18:57:42 ... 18:57:50 I can never remember how to do this 18:57:51 i wasn't sure what that first argument should be 18:57:57 traversed == id 18:58:03 Which happens to be a lens 18:58:03 ok 18:58:20 so why doesn't it give what i expected :( 18:59:02 Hmm 18:59:25 > iforOf itraverse "abcd" replicate 18:59:26 Couldn't match expected type `Control.Lens.Internal.Indexed.Indexed 18:59:27 ... 18:59:40 oh hm 18:59:53 > iforOf traversed "abcd" (replicate.succ) 18:59:55 ["abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abc... 19:00:03 ok that helped in some way... 19:00:21 > iforOf itraversed "abcd" replicate 19:00:23 [] 19:00:26 > iforOf traversed "abcd" replicate 19:00:29 [] 19:00:36 HOW MYSTERIOUS 19:00:56 the index is 0, presumably 19:01:11 oh hm 19:01:21 > iforOf traverse "abcd" (replicate.succ) 19:01:23 Couldn't match expected type `Control.Lens.Internal.Indexed.Indexed 19:01:23 ... 19:01:29 > iforOf itraverse "abcd" (replicate.succ) 19:01:31 Couldn't match expected type `Control.Lens.Internal.Indexed.Indexed 19:01:31 ... 19:01:36 > iforOf itraversed "abcd" (replicate.succ) 19:01:38 ["abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abcd","abc... 19:01:54 > transpose $ iforOf itraversed "abcd" (replicate.succ) 19:01:56 ["aaaaaaaaaaaaaaaaaaaaaaaa","bbbbbbbbbbbbbbbbbbbbbbbb","ccccccccccccccccccc... 19:02:07 wat 19:02:15 That's... surprisingly finite 19:02:20 > transpose $ iforOf traversed "abcd" (replicate.succ) 19:02:20 heh 19:02:22 ["aaaaaaaaaaaaaaaaaaaaaaaa","bbbbbbbbbbbbbbbbbbbbbbbb","ccccccccccccccccccc... 19:02:42 -!- DHeadshot has quit (Ping timeout: 256 seconds). 19:02:55 > length "aaaaaaaaaaaaaaaaaaaaaaaa" 19:02:57 24 19:03:07 Aha 19:03:08 ah. _all_ the indices are replicated 19:03:13 > 1 * 2 * 3 * 4 19:03:15 24 19:03:18 > it 19:03:20 Not in scope: `it' 19:03:20 Perhaps you meant one of these: 19:03:20 `id' (imported from ... 19:03:20 :( 19:03:24 :/ 19:03:27 :something 19:03:59 > iforOf itraversed "abcd" id 19:04:01 Couldn't match type `GHC.Types.Int' with `GHC.Types.Char -> f0 b0' 19:04:07 > iforOf itraversed "abcd" (:[]) 19:04:09 Couldn't match expected type `GHC.Types.Char -> f0 b0' 19:04:09 with ac... 19:04:13 shees 19:04:15 h 19:04:20 > forOf itraversed "abcd" pure 19:04:22 No instance for (GHC.Show.Show (f0 [GHC.Types.Char])) 19:04:22 arising from a use... 19:04:28 > forOf traversed "abcd" pure 19:04:29 can't find file: L.hs 19:04:35 :t forOf traversed "abcd" pure 19:04:37 Applicative f => f [Char] 19:04:46 > forOf traversed "abcd" pure :: [String] 19:04:49 ["abcd"] 19:04:53 -!- DHeadshot has joined. 19:05:02 > forOf itraversed "abcd" (const pure) :: [String] 19:05:07 Couldn't match expected type `[GHC.Types.Char]' 19:05:07 with actual ty... 19:05:14 :t iforOf traversed "abcd" 19:05:17 Applicative f => (Int -> Char -> f b) -> f [b] 19:05:43 oh right of course 19:05:53 needs a fold, not a traversal 19:06:27 :t iforOf_ 19:06:28 Functor f => IndexedGetting i (Traversed r f) s t a b -> s -> (i -> a -> f r) -> f () 19:09:24 -!- DHeadshot has quit (Ping timeout: 248 seconds). 19:10:23 > ifoldMapOf traverse replicate "abcd" 19:10:23 -!- DHeadshot has joined. 19:10:25 Couldn't match expected type `Control.Lens.Internal.Indexed.Indexed 19:10:25 ... 19:10:49 > ifoldMapOf traversed replicate "abcd" 19:10:53 "bccddd" 19:10:59 yay! 19:11:17 -!- WeThePeople has quit (Quit: Leaving). 19:13:13 > uncurry replicate =<< zip [0..] "abcd" -- maybe not _that_ big an improvement 19:13:15 "bccddd" 19:17:46 -!- Taneb has quit (Quit: Leaving). 19:18:36 -!- hagb4rd has joined. 19:36:00 -!- augur has quit (Remote host closed the connection). 19:43:40 -!- WeThePeople has joined. 19:48:54 -!- ogrom has joined. 20:08:28 -!- augur has joined. 20:22:24 -!- Halite has quit (Remote host closed the connection). 20:27:22 -!- AnotherTest has joined. 20:37:54 -!- epicmonkey has quit (Ping timeout: 264 seconds). 20:46:17 -!- WeThePeople has quit (Ping timeout: 255 seconds). 20:47:04 -!- AnotherTest has quit (Quit: Leaving.). 20:47:16 -!- AnotherTest has joined. 21:02:27 -!- Mathnerd314 has quit (Read error: Connection reset by peer). 21:11:55 -!- oerjan has quit (Quit: leaving). 21:17:33 -!- WeThePeople has joined. 21:18:07 -!- Mathnerd314 has joined. 21:19:32 -!- sebbu has quit (Ping timeout: 248 seconds). 21:41:23 -!- zzo38 has joined. 21:41:37 -!- monqy has joined. 21:44:20 -!- AnotherTest has quit (Quit: Leaving.). 21:49:05 so according to the google dashboard thingy I'm using "Cloud Print", with one connected printer. That printer being my phone. What. 21:50:54 Seems like that is a thing, but what does it do with the printed document? I have no idea... https://support.google.com/cloudprint/?hl=en#2541911 21:52:35 Vorpal: it sends the doc to your phone 21:52:46 coppro, hm okay, and put it on the sd card? 21:53:33 not sure why this would be useful, but okay. The "save to google drive" pseudo printer that is also listed (but not counted in the "connected printers" count!) seems much more useful and general then. 21:54:19 because cluter 21:54:22 *clutter 21:54:28 hah 21:58:58 coppro, hmm, the google dashboard is scary. They know so much about you... 22:03:07 The nice thing about making soup is you basically can't screw it up. Just throw stuff in a pot. 22:03:12 Discovery: No! 22:03:17 Jaaaaaaalapeños X-D 22:10:08 Gregor, almost correct. As long as you don't throw in too much salt the soup will end up at least passable. 22:10:18 salt is the one thing you have to be a bit careful with 22:11:25 fortunately you can leave it to the end 22:11:40 and just put it in your bowl as you eat 22:11:48 same with many forms of spicy 22:11:58 or soy sauce 22:12:12 or even glutamate taste if you aren't squeamish about having a shaker of MSG on your table 22:12:14 what's this idea of "too salty" 22:12:21 a ridiculous notion 22:15:43 kmc, hah 22:16:00 elliott, well, it is also supposedly bad for your health 22:18:01 too salty is absolutely awful 22:18:09 yeah 22:18:26 whats a health 22:19:01 Sometimes I eat blocks of salt just to pass the time. 22:19:14 the only spice you truly can't get too much of is of course garlic 22:19:55 though I guess technically it is not a spice, since you can it it as the main part of the dish 22:21:00 Sometimes I eat raw cloves of salt just to pass the time. 22:21:06 :D 22:23:17 put some young garlics soaked in olive oil on a salt bed (in order to prevent burning them) in the oven for a number of minutes that I forgot but have written down somewhere. Eat together with baguette with butter on it. 22:23:24 tastes really nice 22:23:38 doesn't work on more mature cloves 22:24:09 so best if you take some early ones (I assume you grow your own garlic, so this shouldn't be hard) 22:24:54 who wouldn't grow their own garlic 22:25:00 exactly 22:32:13 I saw something about "cloud print" too, recently. 22:32:22 Couldn't quite make out what it was all about. 22:33:09 Vorpal: yeah those are really good 22:33:44 fizzie, I think it is so that you can make your printer spew out paper when you aren't at home and thus cause a mess? 22:33:52 I certainly can't see any other point of it 22:34:02 deep fried garlic is good too 22:34:03 I was hoping it'd make paper come out of the Android device somehow. 22:34:07 kmc, hm 22:34:11 i love garlic 22:34:14 fizzie, that would have been nice 22:34:26 hm i have an android eInk ebook reader 22:34:30 print to that would be pretty useful 22:34:34 hm 22:34:42 I guess so 22:34:53 kmc, it is bloody useless for me to print to my Galaxy S3 though 22:35:12 I'd much rather use dropbox 22:37:09 Also apropos nothing, someone at work told me things about what kind of pruning parameters I *should* be passing to variKN for fungot-babble-model-training. 22:37:10 fizzie: no on fnord nor dictionary.com: n. pl." is a much better idea. three times as much code. 22:37:28 fizzie, oh? 22:37:35 were you using the wrong ones? 22:37:40 Apparently one of them is supposed to be two times the other one. 22:37:58 For reasons that were not exactly explained, but anyhow. 22:38:07 fizzie, then why is both parameters 22:38:15 couldn't one just be calculated from the other one? 22:38:51 I suppose it's just a rule-of-thumb and maybe not applicable in every single circumstance. 22:39:19 But it still might be a better than my own Stetson-Harrison estimates. 22:40:31 heh 22:43:56 fizzie, is this used for all the models? Like the chrono trigger one? 22:44:29 -!- SDr has joined. 22:44:38 `welcome SDr 22:44:41 SDr: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 22:44:56 Vorpal: Some of the older ones aren't trained with variKN at all, but I think the CT one is. 22:46:47 -!- efm has joined. 22:47:45 fizzie, so what are the older ones trained with? 22:48:03 `welcome efm 22:48:05 efm: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 22:48:12 hi Sgeo_ 22:49:01 * efm is probably in the wrong place, thinking that programming needs to be easier to comprehend, not harder :) 22:49:27 Vorpal: With a messy program that just does full fixed-order models. 22:49:46 efm, our interest in esoteric languages does not imply a collective desire to make programming harder 22:49:55 yes it does 22:49:55 fizzie, so the IRC model is like that? 22:50:08 or has that been updated 22:50:15 fizzie, also what do you mean with a fixed order model 22:50:21 this area is not my forte 22:51:36 -!- sebbu has joined. 22:53:20 Vorpal: The IRC one is like that, yes. And fixed order just means it has frequencies for all (existing) word-sequences of length K (where K is 3 or 4 or so), whereas the variKN one makes pruned models where there can be longer sequences if they're important enough. 22:53:41 I see 22:53:52 fizzie, what do you mean with "important enough"? 22:53:56 Sgeo_: Yes, true, it is not the desire to make programming harder. It is the desire to try different things with programming, even if it is not sensible. 22:54:30 Are you in agreement? 22:54:48 Yes, that seems like a good way to put it 22:55:42 [1143473.197870] Did not find alt setting 1 for intf 0, config 1 22:55:45 hnuh 22:55:48 a lot of that in dmesg 22:56:57 Vorpal: Well, the criteria is related to how much difference it makes for the probabilities given by the model whether a particular sequence is included or not. For details, see Siivola, V., Hirsimäki, T. and Virpioja, S., "On Growing and Pruning Kneser-Ney Smoothed N-Gram Models", IEEE Transactions on Audio, Speech, and Language Processing, vol. 15, no. 5, pp. 1617-1624, July 2007. 22:59:09 fizzie: You just did that so you could inline a fancy citation on IRC. 22:59:21 heh 22:59:52 At least it wasn't in BibTeX. 23:01:11 * efm does believe in a flourishing of experiments, to better discover the domain of possible solutions 23:01:55 And that's why we try to get Brainfuck running on specially constructed bundles of sticks. 23:02:12 Bike, oh? Got a link to that? 23:03:21 Joke. 23:03:32 hm, I wonder if it would be possible 23:04:10 Some kind of mechanical computer, perhaps. 23:04:10 possibly some sort of electro magnetic stick could be used for a computer with moving components 23:04:20 fizzie, indeed 23:04:43 Psh, electromagnets. That's some pointlessly easy shit right there. 23:05:02 -!- augur has quit (Remote host closed the connection). 23:05:07 I'm not sure how else I would get a lose bundle of sticks moving 23:05:10 i do want to build a relay computer 23:05:16 in a meaningful way that is 23:05:17 but i don't know of a cheap enough source of relays 23:05:31 it would be very slow and very loud 23:05:38 kmc, relays only? Surely you need some other components 23:05:46 or hm 23:05:58 can you implement NAND with only relays? 23:06:03 or NOR 23:06:17 i think relays are good enough 23:06:17 NOT you can obviously do 23:06:30 vorpal, there's gravity, woodland creatures, hitting it with other sticks... 23:06:36 OR is possible. So is AND 23:06:43 pretty sure relay computers have been done already, proving that it is possible 23:06:50 kmc, not sure about how you would implement something like a latch though 23:06:51 i think a normally-open relay is a lot like a N-channel MOSFET and a normally-closed relay is like a P-channel MOSFET 23:06:56 Isn't the Z3 mostly relays? 23:07:07 kmc, yeah 23:07:09 Vorpal: AND and NOT is NAND 23:07:12 so you could build an equivalent of CMOS logic, though I'm sure it's not the most efficient way 23:07:14 olsner, exactly 23:07:30 http://upload.wikimedia.org/wikipedia/commons/3/31/SRAM_Cell_%286_Transistors%29.svg 23:07:30 olsner, OR is possible. So is AND 23:07:38 olsner, and thus obviously is NAND 23:07:42 http://en.wikipedia.org/wiki/Z3_(computer) "The Z1 was wholly mechanical and only worked for a few minutes at a time at most. Helmut Schreyer advised Zuse to use a different technology." 23:07:49 olsner, I didn't think I would have to spell that out 23:08:05 of course old school computers didn't build main memories out of tubes or relays arranged thus 23:08:08 Vorpal: it looked like you were struggling with the last connection there, so I assumed the worst 23:08:11 would have been insanely expensive 23:08:20 olsner, don't worry, I'm not stupid 23:08:57 instead they developed things like williams tubes, mercury delay line memory, drum memory, core memory 23:09:07 drum memory remains the best 23:09:21 i guess my fantasy relay computer would probably use core memory 23:09:33 kmc: why not delay line 23:09:35 right 23:09:38 maybe i should just try rebuilding MONIAC or some stupid shit 23:09:52 nortti: i suck at anything vaguely mechanical 23:09:54 nortti, delay line does not allow random access, so it would be a bit annoying 23:10:00 i think dealing with toxic liquid metal in tubes is well beyond me 23:10:05 ok 23:10:08 a BIT annoying ahahahaha 23:10:22 I would like a ternary computer 23:10:27 you could use another medium, air or water or something 23:10:37 kilometers of copper wire in a drum 23:11:08 PAL decoders use these quartz crystal delay lines 23:11:09 A line of people repeating what the previous guy said. 23:11:16 olsner: woah, really? 23:11:54 brb 23:12:00 fizzie: i'd need to introduce error correcting codes then 23:12:28 yep, there's something in PAL that needs you to have a copy of the previous scan line 23:12:39 i also like the core rope ROM used in e.g. the apollo guidance computer 23:13:18 the contents of the ROM are determined by how you weave wires in and out of little metal donuts 23:13:28 so you literally sew your program into the computer 23:13:28 http://en.wikipedia.org/wiki/Delay_line_memory#Piezoelectric_delay_lines 23:14:03 olsner: huh wow 23:14:05 there are copper wire delay lines too 23:14:20 i think mercury delay lines were first developed for radar 23:14:57 -!- friesk has joined. 23:15:05 i wonder how much data you can store in this 64 μs PAL delay line 23:15:12 what the maximum frequency is 23:15:25 `welcome friesk 23:15:26 -!- carado has quit (Ping timeout: 256 seconds). 23:15:28 friesk: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 23:16:27 I wonder what the maximum capacity of newbies is 23:16:38 -!- DHeadshot has quit (Read error: Connection reset by peer). 23:16:55 o thanks 23:17:01 Hi friesk 23:17:05 hi 23:17:05 Didn't mean to offend 23:17:17 Just that there are several new people in here today, not sure why 23:17:23 "Alan Turing proposed the use of gin as an ultrasonic delay medium, claiming that it had the necessary acoustic properties." 23:17:26 ok 23:17:26 i need to do this 23:17:29 you'd have to ask :) 23:17:36 kmc: I approve 23:17:40 friesk, anything in particular bring you here today? 23:17:55 but I am just getting my feet wet in freenode 23:18:02 Sgeo_: #esoteric-en 23:18:19 turing: mathematician. codebreaker. genius. drinker. 23:18:45 disadvantage: bored computer operators will crack open and drink the memory 23:18:58 kmc, isn't gin... expensive? 23:19:11 it's worth the price for good memory 23:19:48 as allegedly happened with the ethanol-cooled MiG-25 23:19:53 Does that mean that drinking gin will help your memory? 23:20:14 "yes" 23:20:39 kmc: is there a point to drinking flat ethanol? i thought half the point of alcoholic beverages was flavor 23:20:57 The other half, then. 23:20:58 uh 23:21:14 the drunken half 23:21:28 yes 23:21:29 -!- ogrom has quit (Quit: Left). 23:21:38 vodka is basically ethanol + water 23:21:42 * Sgeo_ nostalgias over http://www.youtube.com/watch?v=xM4uKJsI0yM 23:21:55 and drinking vodka straight is a popular passtime in the russian air force 23:22:42 maybe they should've used methanol for the cooling 23:23:01 otoh, that might just give you blind pilots instead of drunk pilots 23:23:04 it's better for military logistics if the men and the airplanes can drink the same stuff 23:23:07 also that 23:23:25 isn't gin essentially juniper-flavoured vodka 23:23:43 a friend of mine went to remote siberia on a geology trip and they brought along a bottle of 195 proof "lens cleaner" which they would mix with snowmelt 23:24:28 Phantom_Hoover: i think so yeah 23:24:31 reminds me, apparently drinking snow regularly is really rare among animals (because of the metabolic cost) 23:24:32 I think there are a bunch of assorted herbs and spices in there as well 23:24:37 but a few animals do and they are some hardcore motherfuckers 23:25:12 you re-distill neutral spirits with botanicals 23:25:22 there's also that irish stuff which is basically ethanol with a bit of water left over 23:25:37 the Bombay Sapphire label has their "10 exotic botanicals" etched onto the side 23:25:46 er the bottle itself 23:25:48 almond, lemon peel, liquorice, juniper berries, orris root, angelica, coriander, cassia, cubeb, and grains of paradise 23:25:57 which i understand is drunk straight 23:26:17 ooh, grains of paradise? 23:26:27 This reminds me of a Finnish parody radio show, where there was a fictional review of a "AA" ("Absolutists Anonymous") member, and the tragic story of he started by being sober every now and then, and then went on there to full-on days-long bouts of sobriety, once being sober an entire christmas. 23:26:32 Anyway, there was a bit of how they had this group of friends who just sat and drank all kinds of nonalcoholic stuff; water, milk, even diet coke, which you can make drinkable by draining it across an iron bar outside when it's freezing. 23:27:39 (I assume that last bit is based on some myth about how to make denatured ethanol drinkable.) 23:28:06 well you'd make it more drinkable than diet coke, at least 23:28:21 (I coincidentally have a Bombay Sapphire bottle in the closet. It has those ten things you mention.) 23:28:51 (There was a discount.) 23:28:56 renatured ethanol is the subject of many myths 23:30:39 Unnatural ethanol. 23:31:15 good-natured ethanol 23:31:56 ^style darwin 23:31:56 Selected style: darwin (Books by Charles Darwin -- you know, that evilution guy) 23:31:57 fungot: Tell us about natural ethanol selection. 23:31:58 fizzie: thomas henry, lord " fnord) is fertilised. sir j.d. hooker. down, wednesday september, n.d.. 23:32:11 fungot: Did Thomas Henry drink a lot? 23:32:27 Aw, no answer. 23:32:36 fungot seems to have developed a... fetishistic streak 23:32:37 Phantom_Hoover: comparative, :) female and male. also desmarest, ( on certain musical curculionidae,' ( modern classification :) insects,' pp. fnord also dr. herbert raised many seedlings, as soon as/ points to which you allude; but that it was his critique in/ ( field' may 6, 1859. 23:32:43 fungot: how are your delay lines? ginned up and ready to go? 23:32:45 olsner: but to have flowed beneath/ sea :)/ tropics are in themselves :) a pleasurable nature, excepting when this was indispensably necessary, yet, as we shall immediately see that they would always exceed in height/ self-fertilised plants cannot be fully trusted; and it would have held had they been capable :) containing a considerable number :) flowers which are very deep within, and a few fish. how very odd, and i myself no 23:32:52 -!- sebbu has quit (Ping timeout: 248 seconds). 23:32:53 olsner: all other notes by charles darwin's editors appear in/ other cases, which may be produced either by/ state :)/ mind. from a drawing appended to/ names :) plants " rev. e.s. dixon ( ornamental and domestic poultry' page 260. in/ :( origin," sixth edition, :)/ black, squat tribes :)/ western coast as far as i could use, namely, :) a few hours/ tendril fnord itself, and your most interesting letter :) october 10th, has jus 23:33:11 -!- nooodl has quit (Ping timeout: 240 seconds). 23:33:12 olsner: charles darwin to w.d. fox informs me that he has misunderstood this from/ height :)/ crossed plants is here 5.58 inches, and that/ difference in height and fertility between/ two forms; whilst/ ovarium, as described by an enthusiastic naturalist as curious and intricate a problem as :)/ great zygomatic muscles is fnord :)/ fnord 23:33:16 He just keeps going. 23:33:24 fungot: I think that's about enough? 23:33:25 fizzie: in all four cases/ intercrossed plants in fertility,/ most pleasure. i cordially thank you for your kind and pleasant letter. 23:34:15 so polite 23:34:15 why are darwin's books so full of smileys? 23:34:43 olsner: He was such a happy guy. (Also, there's a bug.) 23:35:04 Well, there was a bug, and I haven't rerun the thing after fixing it. 23:35:32 fungot: Darwin is well-known to always have a smile on, right? 23:35:32 fizzie: letter 286. to j.w. judd. down, april 11th 1859.) ready, in some manner more advantageous than fnord and to munich in 1857, i had an abundance :) capsules. column 5: weight :) seed. 23:39:37 Also, let's just try that one thing out. 23:39:54 ^raw QUIT 23:39:54 -!- fungot has quit (Quit: fungot). 23:40:24 -!- fungot has joined. 23:40:26 fizzie, what one thing? 23:40:31 ^style enron 23:40:31 Selected style: enron (subset of the Enron email dataset) 23:40:40 It's probably not very good. 23:40:41 fungot: el oh el 23:40:41 kmc: that the number of our current projections on their first, instead of the time we 23:40:47 I couldn't be bothered to do any more cleanups. 23:40:50 also my PS3 controller on my desk random came to life and blinked the 4 LEDS a couple of times 23:40:52 what 23:41:27 fungot: heegan 23:41:27 shachaf: from the last ( 30) allowed excuse the error. dicarlo ena gas structuring phone: 713-345-4666 email: louis.dicarloenron.com 23:41:27 fizzie, Enron? 23:41:42 afungotb 23:41:42 shachaf: that will have you out on the " i 23:41:57 fizzie, the electricity company? 23:41:58 Vorpal: ISTR that the "blink the leds a couple of times" is also what happens when you press the PS button and it does the Bluetooth "hello-anyone-there" thing. 23:42:10 fizzie, except I pressed nothing 23:42:14 Vorpal: There's a famous dataset of their emails. 23:42:19 http://www.cs.cmu.edu/~enron/ <- that one. 23:42:34 fizzie, in fact it lies on top of a stack of CDs, out of my reach atm 23:42:36 Half a million messages; I just took 10k so that the training runs fast. 23:42:52 heh 23:42:58 Maybe it's a low-battery warning too? Or just a random glitch. 23:43:18 let me try, if I connect it to my phone the app there tells me the battery status 23:43:29 hm nope, says battery full 23:43:55 I had it plugged in the other day anyway, so I doubt it would be battery issues 23:44:04 What are you using for that, the "Sixaxis Controller" app? 23:44:11 yeah 23:44:30 fizzie, during connection it prints the battery status amongst other things in the debug output of the main window 23:45:28 fizzie, btw can you charge a controller using a phone USB wall charger? 23:45:38 From what I recall, no. 23:45:39 -!- sebbu has joined. 23:45:41 fizzie, I'm going to go out of town for a couple of days 23:45:49 and I won't have a computer with me 23:45:52 hichaf 23:45:54 It won't start charging without doing a full USB handshake. 23:45:55 fizzie, hm sucks 23:46:08 You can probably charge it from your phone over USB OTG, though. 23:46:10 fizzie, and doing it with USB OTG sounds annoying 23:46:13 hm 23:46:13 Yes. 23:46:24 Annoying, but possible. 23:46:30 fizzie, doesn't that only give up to 100 mA? 23:47:22 fizzie, how long does that battery last actually? I mostly used it with my desktop over USB (since it has no BT) 23:47:29 I might be okay anyway 23:47:42 I don't really know. Does USB OTG have some extra limits? I mean, for regular USB you can get five units of power. 23:48:03 I think it *can* have some extra power limits 23:48:14 It has never ran out on me, but I use it with USB most of the time too, so... 23:48:43 I would estimate that it's some tens of hours. 23:48:59 (Not many, but at least over one.) 23:49:30 hm 23:50:13 yeah I guess I'll bring a cable for USB OTG just in case. I doubt I will have all that many hours to play anyway 23:51:39 Haven't bought the Sixaxis Controller app yet; it seems nice (what with the possibility to do button->touch assignments and such for apps that don't support things natively), but it's still a bit of a shame that you can't just connect it like any other Bluetooth HID thing on Android four-point-whatever where the USB HID version works fine. (From what I've read, some ROMs do in fact include the ... 23:51:45 ... required tweaks for that to work.) 23:53:57 -!- augur has joined. 23:54:14 hm 23:54:33 fizzie, iirc the bluetooth used by the controller is not the normal bluetooth, it requires some quirks 23:54:47 because you can't do normal BT and the controller at the same time 23:55:23 -!- hagb4rd has quit (Ping timeout: 256 seconds). 23:55:32 night 23:59:23 You can do normal BT and the controller at the same time on real computers, though. 23:59:31 There's a Bluez tweak for it.