00:33:19 Sgeo: you're not allowed to "use" things in Java, only "leverage" them 00:38:05 kmc: did you enjoy 00:41:53 ok, someone has implemented Conway's game of life, and someone else a brainfuck interpreter... *in spacechem* 00:41:53 Arc_Koen: You have 1 new message. '/msg lambdabot @messages' to read it. 00:41:58 @messages 00:41:58 oerjan said 2h 32m 30s ago: doesn't your brainfunct truth-machine have an off-by-one error? i.e. loops on '0' rather than '1' 00:41:59 -!- evincar has joined. 00:42:16 -!- elliott has left ("Leaving"). 00:43:18 -!- Dovregubben has quit (Ping timeout: 264 seconds). 00:43:40 -!- Dovregubben has joined. 00:43:41 > chr 48 00:43:42 '0' 00:44:09 -!- copumpkin has quit (Ping timeout: 244 seconds). 00:44:30 oerjan: I wrote an interpreter for brainfunct and I checked the truth-machine, it was working 00:44:41 -!- copumpkin has joined. 00:44:49 i wrote another interpreter and it didn't :/ 00:45:01 hmm maybe the functions are numbered differently 00:45:16 the cat works 00:45:41 weird 00:45:53 > length "///////////////////////////////////////////////" 00:45:54 47 00:46:07 oh 00:46:15 maybe I just copypasted it wrong 00:46:21 there are 47 initial /'s, so the .@ function following them is on 48 00:47:01 indeed 00:47:14 and my interpreter just looped on 0 00:47:57 ok, should be better now 00:49:07 now it works 00:49:24 funny thing, the brainfunct program is tail-recursive but my interpreter doesn't acknowledge that, because of the 'for' loop 00:49:55 I guess I should fix that by taking the last step out of the for loop 00:50:17 should I/O be binary or text-mode? 00:50:40 textmode 00:50:52 like all brainfuck-likes 00:51:06 > length "///////////////////////////////////////////////" 00:51:08 47 00:51:10 erk 01:01:21 weird, it should be tail recursive now, but it still says Stack_overflow 01:03:13 > length [1..] 01:03:17 mueval-core: Time limit exceeded 01:08:45 G. Steele seems to be much better than my current PG (Cahill) but they are too expensive. 01:09:35 * oerjan puts his haskell interpreter on the wiki page 01:10:22 Wait, what, a Haskell interpreter in an esolang? 01:10:36 i distinctly expected that comment 01:10:49 but no, it's brainfunct in haskell 01:10:51 Then your expectations are correct. 01:11:02 I honestly was confused, not trying to make a joke. I am unconfused 01:11:27 * Arc_Koen fought hard not to make the joke 01:11:46 so, hum, some guy wrote a brainfuck interpreter in spacechem 01:11:51 and i couldn't resist keeping it in 01:12:06 Arc_Koen: btw i support nesting 01:12:13 nice 01:12:22 I have made one Haskell program on esolang wiki on its own page; the raw contents of the page are a valid Haskell program and the page can also be read like other wiki page. Such thing can be done with Haskell. 01:12:23 in theory anyhow, i haven't tested except by modifying the cat 01:12:40 I have no idea how useful nesting can be, though 01:13:15 " This is great news for you, and bad news for malware generators, because:" 01:13:26 Hey, for all you know, blog post, I might be a malware generator! 01:13:34 * Sgeo is not in fact a malware generator. 01:13:41 http://www.youtube.com/watch?v=EzzLzUCRmBw&feature=player_embedded 01:14:08 oerjan: Haskell sounds like a very hard to read ocaml 01:14:39 XD 01:14:53 ocaml syntax is fugly 01:14:58 haskell syntax is more complicated but nicer 01:15:41 zzo38: is it Literate Haskell? 01:16:10 This game is difficult I only have one C so if he is injured, I am probably going to lose. 01:16:31 i just checked and Literate Haskell is in the Report 01:16:32 kmc: Yes, it is Literate Haskell. You can embed Literate Haskell in HTML, XML, MediaWiki, TeX, and other formats without much difficult. 01:16:35 i thought it wasn't 01:16:47 kmc: Well, now you know. 01:17:13 and knowing is haf the battle 01:17:42 oerjan: I'm not sure brainfunct is equivalent to brainfuck, actually 01:17:59 -!- evincar has quit (Read error: Connection reset by peer). 01:18:52 it lacks a test instruction - the truth-machine is a good example of this lack 01:20:18 someone should start a band named The Regents of the University of California 01:20:33 kmc: Are you going to do so? 01:20:39 no 01:21:16 Arc_Koen: you can simulate brainfuck with a smaller cell size, i think 01:21:27 how so? 01:23:08 -!- evincar has joined. 01:23:20 let's say you need k branch points in the program, and your brainfuck has cells 0 ... n-1, then you can add n*i where i is the number of your branch 01:23:43 may need some off by one tweaking 01:24:32 hummmm I'm pretty sure I did not understand what you just said 01:24:33 and for this you need brainfunct cell values 1 .. n*k 01:25:45 but it is 3 in the morning and I'm tired and I have to get up in 4h and a half so I'll read the logs tomorrow to try to understand 01:25:49 see you 01:25:54 bye 01:26:06 -!- Arc_Koen has quit (Quit: Are you telling me you can build a time machine but you can't cook a cheese soufflé? You've got your priorities all wrong!). 01:33:45 -!- evincar has quit (Read error: Connection reset by peer). 01:35:18 Does HackEgo have the JVM? Can it be installed? 01:35:51 `where java 01:35:58 `run where java 01:36:03 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: where: not found 01:36:11 buh 01:36:20 bash: where: command not found 01:37:16 `run ls bin/j* 01:37:19 bin/joustreport \ bin/jousturl \ bin/json 01:37:23 `run ls /bin/j* 01:37:26 ls: cannot access /bin/j*: No such file or directory 01:37:32 `ls / 01:37:35 bin \ dev \ etc \ hackenv \ home \ lib \ lib64 \ opt \ proc \ sbin \ sys \ tmp \ usr \ var 01:38:05 `run ls /bin/*jc 01:38:08 -!- evincar has joined. 01:38:08 ls: cannot access /bin/*jc: No such file or directory 01:38:14 `where gjc 01:38:17 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: where: not found 01:38:37 oops 01:39:15 `run ls /usr/bin/j* 01:39:19 ​/usr/bin/jar \ /usr/bin/jarsigner \ /usr/bin/java \ /usr/bin/javac \ /usr/bin/javadoc \ /usr/bin/javah \ /usr/bin/javap \ /usr/bin/javaws \ /usr/bin/jcf-dump \ /usr/bin/jcf-dump-4.3 \ /usr/bin/jcf-dump-4.4 \ /usr/bin/jconsole \ /usr/bin/jdb \ /usr/bin/jexec \ /usr/bin/jhat \ /usr/bin/jinfo \ /usr/bin/jmap \ /usr/bin/join \ /usr/bin/jps \ /usr/bin/jrunscript \ /usr/bin/js \ /usr/bin/jsadebugd \ /usr/bin/jstack 01:39:24 there you go 01:39:31 I am now reading Java documentation 01:39:33 I feel sad at this 01:39:46 Like I shouldn't have to read Java documentation 01:41:09 -!- evincar has left. 01:43:06 -!- Dovregubben has quit (Ping timeout: 252 seconds). 01:43:42 ObjectFactoryBuilder 01:44:04 -!- Dovregubben has joined. 01:44:13 StateFactory 01:44:24 ValueFactory 01:46:00 the workers in your factory are going to unionize 01:46:19 -!- FreeFull has quit (Ping timeout: 272 seconds). 01:46:29 Why does the Factory pattern have ... a name, exactly? 01:46:40 What's so esoteric about a function that returns an object? 01:47:26 Oh... hm 01:47:55 -!- FreeFull has joined. 01:48:07 It seems like a problem easily solved by having classes be first-class 01:49:44 -!- lexande_ has joined. 01:50:18 -!- lexande_ has quit (Remote host closed the connection). 01:50:39 -!- lexande_ has joined. 01:50:49 -!- elliott has joined. 01:50:50 shachaf 01:50:56 why isn't arch linux's ghc package 7.6.1 yet 01:51:32 shocking 01:51:47 -!- Dovregubben has quit (Ping timeout: 252 seconds). 01:52:28 -!- Dovregubben has joined. 01:53:37 -!- zzo38 has quit (Ping timeout: 252 seconds). 01:53:41 I am very displeased shachaf 01:57:14 elliott: i _almost_ made my first brainfuck interpreter today 01:57:22 except it was brainfunct instead. 01:58:49 oerjan: sounds like you're brainfunct in the head 01:59:18 yep 01:59:19 HA HA HA HA HA HA HA HA [audience applauds] [member of audience shot] [bomb explodes in the air] [confetti comes out of the bomb] [spontaneous party begins] 01:59:40 [everyone wakes up the next day smelling of petrol and thinking about puppies] 02:00:53 -!- trout has changed nick to variable. 02:01:47 elliott is alive?? 02:02:26 as long as he gets fed enough brains 02:02:52 ah 02:03:02 [the face of a well-known politician covered in chocolate smiling forever] 02:03:32 [an image of your death but instead of you it's a cardboard cutout of bill, the guy in the photocopier] 02:03:46 Is doall vs dorun always going to trip me up? 02:04:00 (For the Clojure impaired, doall is like sequence and dorun is like sequence_) 02:05:06 -!- lexande_ has quit (Remote host closed the connection). 02:05:25 elliott, racist 02:06:28 -!- lexande_ has joined. 02:08:44 -!- mig22 has joined. 02:29:14 -!- lexande_ has quit (Remote host closed the connection). 02:31:43 -!- lexande_ has joined. 02:36:41 -!- quintopia has quit (Quit: Lost terminal). 02:36:56 -!- quintopia has joined. 02:42:05 -!- lexande_ has quit (Remote host closed the connection). 02:47:30 elliott: Sorry. :-( 02:47:50 elliott: The Arch maintainers tried, but I kept getting in their way. 02:48:40 shachaf: Thank you for your apology. 02:48:49 shachaf: Do you know about upgrading GHc with the binary distribution? 02:48:57 Will it correctly uninstall stuff if I just run it or do I need to rm -r /opt/ghc? 02:48:58 -!- zzo38 has joined. 02:49:10 elliott: Why rm? 02:49:13 Disk space is cheap. 02:49:23 Also a bunch of things aren't 7.6-compatible yet. 02:49:39 shachaf: rm as opposed to what? 02:50:08 As opposed to not uninstall the old GHC. 02:50:12 You can have more than one, you know. 02:50:16 -!- Phantom_Hoover has changed nick to Phantom__Hoover. 02:50:41 shocking 02:51:06 I have a combination VHS/DVD I want to know how to write software to replace the one on there, to add some features which are missing and to make it run faster. 02:57:41 shachaf: but /opt/ghc 02:57:46 it's not /opt/ghc-whateverversion 02:57:52 /opt/ghc-7.4.1 apparently 02:57:59 elliott: So? 02:58:06 Where did it come to /opt/ghc from, anyway? 03:01:05 shachaf: From me putting it there. 03:01:27 elliott: Well, put GHC 7.6.1 in /opt/ghc-7.6.1 03:01:29 QED 03:01:46 That's inconsistent. 03:02:07 Well, so's your AXIOM SYSTEM!!!!! 03:04:56 -!- kinoSi has quit (Read error: Connection reset by peer). 03:05:22 -!- kinoSi has joined. 03:06:12 -!- Dovregubben has quit (Ping timeout: 244 seconds). 03:06:54 shachaf: So what's not 7.6 compatible? 03:06:58 I have this thing I want to write in 7.6. 03:07:11 elliott: Just install 7.6 and keep 7.4. 03:07:12 -!- Dovregubben has joined. 03:07:23 Then you can find out "4 urselv!!" 03:07:45 -!- lexande_ has joined. 03:07:57 shachaf: I don't want to. 03:08:10 shachaf: You have to tell me as an apology for stopping the Arch maintainers. 03:08:16 Oh. 03:08:23 TypeCompose is broken in 7.6!!!!!!! 03:09:09 Oh no!!! 03:09:12 I don't use that package. 03:09:16 Does edwardk's stuff work? 03:09:42 -!- Phantom__Hoover has quit (Quit: Leaving). 03:10:30 elliott: Want a "free tip" on making things not break with 7.6? 03:10:49 Take "constraint: containers < 0.5" out of your ~/.cabal/config 03:11:07 "ur wellcome :\"(" 03:11:37 shachaf: I don't think I have that in my ~/.cabal/config. 03:11:43 shachaf: So what's broken, seriously? 03:12:08 I don't remember. 03:12:24 happy is broken unless you meddle with it. 03:12:26 (Which I did.) 03:12:31 How do you have to meddle it? 03:12:38 Something about exceptions. 03:12:48 ghc-core is broken. 03:12:55 Because they took out Control.OldException. 03:12:59 Everything that uses that is broken. 03:14:03 Hmm, good thing about the Clojure ecosystem, which I assume is because of Java classpaths: There's no system-wide library installation 03:14:11 Just project-local installation 03:14:32 It's not enough to solve all issues with dependencies, but it's a start 03:18:44 `1`0`9i90`i190`i190`i1u90348u5901809t89008210`0`0`89`8989`89189`18989`891889`8989289`89289`89289`89289`89289`892`8929`8939128989489`89589`9789`89589`8975897`897587`894892899899042045t89290845t9030r90u90gjrtgjr 03:18:47 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: 1`0`9i90`i190`i190`i1u90348u5901809t89008210`0`0`89`8989`89189`18989`891889`8989289`89289`89289`89289`89289`892`8929`8939128989489`89589`9789`89589`8975897`897587`894892899899042045t89290845t9030r90u90gjrtgjr: not found 03:18:51 Hey shachaf 03:19:17 hi monqy 03:19:22 [elliott@dinky tmp]$ sudo rm -rf /opt/ghc/ 03:19:22 Password: 03:19:22 [elliott@dinky tmp]$ 03:19:25 :-) 03:22:03 checking for path to top of build tree... utils/ghc-pwd/dist-install/build/tmp/ghc-pwd: error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory 03:22:03 configure: error: cannot determine current directory 03:22:05 shachaf: Help 03:22:30 elliott: Should've mved instead of rmed. 03:22:39 elliott: You need libgmp3, not libgmp10. 03:22:51 elliott: If you still had GHC 7.4 you could use it to compile 7.6! 03:23:16 I don't have enough time to compile GHC. 03:23:23 Why do I need GMP 3? 03:23:27 That makes me unhappy. 03:23:39 File a bug report on it. 03:23:43 Oh, wait, there already is one! 03:23:51 Which says that the next release will use a newer GMP. 03:24:04 And when was that written? 03:25:10 Did I miss anything in RogueVM? I want to ensure I have not missed anything important! 03:26:04 elliott: About a week ago? 03:26:17 elliott: I think I've made up for the thing I did. 03:26:32 :: Replace libsystemd with core/systemd? [Y/n] y 03:26:33 :: Replace systemd-tools with core/systemd? [Y/n] y 03:26:34 shachaf: Help? 03:26:54 elliott: You know I've never used Arch, right? 03:27:06 Who cares? 03:27:26 You should try rm -rf /opt 03:27:47 $ ls /opt 03:27:47 df_linux 03:27:51 Oh no, I'd lose Dwarf Fortress!!! 03:28:24 df - report file system disk space usage 03:28:34 That's not darawfw froteres! 03:28:55 % ls /opt 03:28:57 amnesia apt-local google 03:30:54 -!- kmc has quit (Quit: Lost terminal). 03:31:08 -!- ogrom has joined. 03:31:41 -!- kmc has joined. 03:43:04 -!- lexande_ has quit (Remote host closed the connection). 03:59:00 shachaf: Is GHC's kind-level programming still basically unityped? 03:59:16 I don't know if I'm expressing what I mean properly. 04:00:17 elliott: There's this whole promotion thing... 04:00:22 shachaf: Here's what I mean: 04:00:23 If I do 04:00:36 data Foo a where Blah :: (C a) => a -> Foo a, 04:00:41 what happens to the (C a) when I do 'Blah? 04:00:45 Oh, wait, GADTs don't get lifted. 04:00:50 OK, translate that into the relevant ADT syntax. 04:00:57 Hmm, I guess I can just use an existence proof, actually. 04:01:02 Except I don't think that will translate. Woe. 04:01:18 whoa is me, dude 04:02:09 shachaf: What's the extension to allow type-level literals again? 04:02:45 elliott: GHC will tell you if you try to use one! 04:03:33 shachaf: Have you guessed what I'm trying to do yet? 04:03:38 No. 04:03:42 look around you, just look around you 04:03:47 have you worked out what we're looking for? 04:05:19 -!- kmc_ has joined. 04:05:37 -!- Dovregubben has quit (Ping timeout: 240 seconds). 04:06:30 -!- Dovregubben has joined. 04:07:18 shachaf: Do you have TypeEq handy? 04:07:25 I need it. For this thing. 04:07:39 Wait, is "type instance Foo t t = ..." valid? 04:07:41 If so I might not need it. 04:08:07 Ooh wait, there's 04:08:08 class m (<=) n Source 04:08:08 Comparsion of type-level naturals. 04:08:28 Wait, why is there <= but no ==? 04:08:35 Oh, hmm. 04:09:00 You could make == by using <= I suppose 04:11:49 -!- Jafet has joined. 04:20:37 shachaf: Hah! I did it! Well, partially, at least. 04:20:59 elliott: In spite of my best afforts! 04:21:12 shachaf: http://sprunge.us/RAHN 04:21:21 You can RAHN but you can't HIDE. 04:21:31 Ran and Lan, right? 04:22:40 Such lovely types, too: test :: Record (Cons * * "x" Integer (Cons * * "y" Integer Empty)) 04:23:07 Data constructor `Empty' cannot be used here 04:23:08 (it is defined and used in the same recursive group) 04:23:09 Aw, c'mon. 04:24:20 shachaf: Do you like it? 04:25:06 I haven't read it. 04:25:25 shachaf: Now's your chance to change that! 04:37:35 JoeyA: They make Haskell compilers in Haskell for the same reason that ugly men date beautiful women: 1) Because it's enjoyable; 2) Because they can. ;) 04:37:42 shachaf: You know, I didn't think it was possible, but #haskell actually got worse since I left. 04:37:57 kmc the prophet 04:38:17 Haskell failed at its primary mission. 04:38:22 And now it is but an abomination. 04:38:42 Its primary mission is what? 04:38:51 shachaf: YayMe is one of Those Guys, right? 04:39:52 its primary mission was to unify research in lazy functional programming behind one language 04:39:56 i think it succeeded at that 04:40:07 i think that's a mission that's only relevant to like 100 people 04:40:26 zzo38: Its primary mission is to avoid popularity at all costs. 04:40:35 -!- kmc has quit (Disconnected by services). 04:40:37 -!- kmc_ has changed nick to kmc. 04:42:13 kmc: I'm trying GHC 7.6 but its kind system isn't advanced enough. :( 04:42:20 I need kind-level typeclass constraints, you see. 04:42:31 And proper GADT lifting. 04:42:49 I wanted to invent Ibtlfmm, to have kind-level typeclass constraints and various other things 04:44:13 eek 04:44:33 Because typeclass constraints on kinds is something I wanted too 04:44:35 * oerjan is imagining elliott being tempted by Ibtlfmm 04:44:48 It isn't only you! 04:45:34 I... guess that's reassuring? 04:45:41 I don't know. 05:10:15 elliott: :-( 05:10:54 -!- oerjan has quit (Quit: leaving). 05:11:02 shachaf: : - ) 05:31:34 elliott, what's your opinion of the Eclipse Public License? 05:31:57 elliott: I think so. 05:33:29 hi 05:34:16 elliott: Am I one of "Those Guys"? 05:34:35 Make a pokemon card puzzle requiring to retreat six times. 05:41:49 -!- elliott has quit (Remote host closed the connection). 06:27:32 Have you ever tried inverting some piece of music? 06:32:31 -!- Dovregubben has quit (Ping timeout: 268 seconds). 06:33:11 -!- Dovregubben has joined. 06:34:14 -!- elliott has joined. 06:34:20 shachaf: You didn't tell me *cabal-install* was broken. 06:34:26 shachaf: Come on, now my window manager is broken. 06:35:35 shachaf: And *mtl* is broken. 06:37:02 -!- elliott has quit (Client Quit). 06:54:05 -!- Dovregubben has quit (Ping timeout: 244 seconds). 06:59:59 -!- Dovregubben has joined. 07:13:16 -!- nooga has quit (Ping timeout: 246 seconds). 07:18:46 -!- epicmonkey_ has joined. 07:27:55 -!- zzo38 has quit (Remote host closed the connection). 07:33:44 -!- ogrom has quit (Read error: Operation timed out). 07:38:42 elliott, sgeo: what's your opinion on EPL. What's your preferred license? 07:39:23 I haven't read it, but from what I know about it, it seems like an interesting idea 07:41:42 Although... I do think I'd prefer my code to be usable from/with proprietary code, so I'd probably lean more BSD-ish. But EPL might be better than GPL for that goal 07:41:48 (the goal that GPL has) 07:42:20 I like the fact the BSD license is short. 07:43:37 Hmm, if Clojure, and about a million Clojure libraries, are under the EPL, does that make Clojure unsuitable for making proprietary programs? 07:43:39 @ask elliott Worked fine for me. 07:43:39 Consider it noted. 07:49:03 This is shorter though -> "Do What The Fuck You Want To Public License" http://sam.zoy.org/wtfpl :-) 07:49:54 I'm narciccistic enough to want my name attached to code I write 07:49:54 -!- nooga has joined. 07:51:46 I strive to only write things that are useless enough that the license is irrelevant 07:56:37 -!- Dovregubben has quit (Ping timeout: 252 seconds). 07:57:07 -!- Dovregubben has joined. 08:03:00 My gf linked me to http://www.esecurityplanet.com/hackers/yahoo-password-breach-puts-sql-injection-in-the-crosshairs.html 08:03:31 HOW DOES ANYONE IN THIS DAY AND AGE STILL BE VULNERABLE TO SQL INJECTION 08:18:07 -!- soundnfury has joined. 08:28:23 -!- sirdancealot has quit (Ping timeout: 246 seconds). 08:30:42 -!- AnotherTest has joined. 08:30:48 Hello 08:35:15 -!- ogrom has joined. 08:54:39 -!- sirdancealot has joined. 08:57:48 -!- impomatic has left. 09:18:17 -!- MoALTz has joined. 09:34:26 -!- nooga has quit (Ping timeout: 268 seconds). 11:10:01 -!- Vorpal has joined. 11:22:45 -!- Arc_Koen has joined. 11:23:17 hello 11:24:26 Hi 11:25:25 Hello 11:35:02 -!- shubshub has joined. 11:42:39 -!- itidus20 has joined. 11:42:51 -!- itidus20 has changed nick to itidus21. 12:17:52 -!- shubshub has quit (Quit: Make it idiot proof and someone will make a better idiot.). 12:31:42 -!- AnotherTest has quit (Quit: Leaving.). 12:42:43 -!- Phantom_Hoover has joined. 12:53:05 -!- knott_rays has joined. 12:53:25 -!- knott_rays has left. 12:54:00 -!- atriq has joined. 13:00:11 @messages? 13:00:11 Sorry, no messages today. 13:32:57 -!- ogrom has quit (Ping timeout: 255 seconds). 13:51:01 Sgeo: Simple. 13:51:10 Universities don't teach that. 13:57:17 theres several things 13:58:05 if you invest more time and energy in security systems, the people breaking the systems will simply adapt, and find new vulnerabilities 13:59:22 hmm 14:01:54 universities aren't going to spontaneously change, students aren't going to spontaneously change, i don't forsee anything changing 14:06:44 Software development involves writing software to address the problems found in previous software development. 14:09:25 s/found/created/ ? :) 14:16:34 Sgeo: Same how buffer overflows are still the most common kind of vulnerability 14:16:58 Well, I guess SQL injections aren't as fundamental 14:17:23 i guess what im wondering is whether it is important to place blame, and also who is to blame for sql injection vulnerabilities 14:17:44 or is the whole system to blame 14:18:02 itidus21: Clearly the people who created SQL are to blame 14:18:15 How dare they invent database technology 14:18:43 basically i don't think blame is a perfect system, it's more like garbage collection 14:19:21 * FreeFull references itidus21 without incrementing the reference counter 14:19:59 its better that rubbish be centralized in landfills rather than distributed across the suburbs :D 14:20:22 but landfills are still a bother 14:20:57 I think the root problem is that too many programmers just don't know or care enough about security 14:21:17 olsner: but what is the cause of that :D 14:21:24 rather, what is that a symptom of? 14:21:52 if "everyone" cared about preventing sql injections, maybe we wouldn't let all these database apis make it so simple to create them 14:21:58 itidus21, bad teaching 14:22:14 i have also noted the ugly reality that in such an arms race the bad guys will also adapt and find new ways 14:22:47 atriq: (im certainly trolling) what causes bad teaching? 14:23:08 it's bad turtles all the way down 14:23:09 Itself 14:24:38 if things are allowed to have causes, or if things are allowed to be symptoms of other things, then the buck can be hard to stop 15:01:31 -!- ogrom has joined. 15:10:49 -!- Nisstyre-laptop has joined. 15:13:39 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 15:27:33 -!- ogrom has quit (Quit: Left). 15:36:52 -!- copumpkin has joined. 15:49:55 :t (0 $ 0 `on`) 15:49:56 The operator `on' [infixl 0] of a section 15:49:56 must have lower precedence than that of the operand, 15:49:56 namely `$' [infixr 0] 15:51:03 > ((*) `on` (+ 1)) 7 8 15:51:04 72 15:51:07 > ((*) `on` (+ 1)) 7 3 15:51:08 32 15:51:20 > ((*) `on` negate) 7 3 15:51:21 21 15:51:44 Exersize: do I get to set exersizes? 15:51:48 Discuss 15:52:10 exersize is probably not the right spelling 15:52:21 ... 15:52:24 You are right! 15:52:33 So the answer is "probably not"! 15:52:36 Well done! 15:52:43 thank you 15:52:50 what did I win? 15:52:56 I dunno 15:53:07 The right to go through to your kitchen and get a biscuit? 15:53:46 but I have no biscuits 15:54:51 Go out to the store and buy some buscuits? 15:54:57 *biscuits 15:54:57 no! 15:55:08 Do you not want a biscuit? 15:56:35 -!- mig22 has quit (Quit: mig22). 15:57:40 I don't want to have to go and buy it myself 15:57:49 Hmm 15:57:56 Next time you are shopping 15:58:13 See if you can convince the people 15:58:17 Who sell you stuff 15:58:23 To make me pay for the biscuit 15:59:34 besides, the end result of buying biscuits is just running out of biscuits again 16:00:06 But during the process of running out of biscuits 16:00:11 You get to eat biscuits! 16:00:21 Hexham has a biscuit store 16:00:32 do they sell cookies? 16:02:33 Who knows? 16:02:52 (yes) 16:03:15 what's the difference between cookies and biscuits anyway? 16:09:33 -!- Sgeo has quit (Read error: Connection reset by peer). 16:10:30 -!- Sgeo has joined. 16:12:18 Not much unless you're in the US 16:14:57 hmm 16:15:26 nevermind 16:15:33 my comment is unhelpful 16:15:59 indeed :) 16:16:36 oh but it must be said 16:17:10 the best way to find out the difference between a biscuit and a cookie is to get both and compare them 16:17:42 one trouble here is... 16:17:48 you might like the one you eat first more 16:17:55 because it satiates your appetite 16:18:02 the second one is making you feel full 16:21:04 -!- Nisstyre-laptop has quit (Remote host closed the connection). 16:21:07 but if we take away all such bias factors 16:21:43 one way to experience a cookie is to see it, another is to eat it 16:22:00 even to just look at the cookie we might be biased by which one we see first 16:23:26 i give up 16:27:20 This is what large sample sizes are for 16:28:27 so in the limit we find the actual thing? 16:29:39 sorry, thats a reference to your in the limit you find douglas hofstadter 16:30:30 That was.. 16:30:32 Sort of mine 16:30:44 Yeah 16:30:45 ok you didn't say it 16:30:53 well.. i mean maybe but probably not 16:31:06 Phantom_Hoover was partially responsible for it 16:31:18 By partially I mean almost entirely 16:32:11 so are humans good at sampling? 16:32:44 another dumb question of mine 16:34:54 Not really 16:37:55 i have at least a vague connection with this room. i don't really understand it. 16:38:11 It's called friendship? 16:38:46 uh.. i'm not sure. but something else. like i had been thinking about topics which come up here. 16:39:53 Maybe you are actually #esoteric 16:40:32 like i had been thinking about fairy chess, and i was fascinated by the NES, and i had a strange habit of buying foreign language dictionaries 16:41:10 and... i had been gradually converging on grammar and language as being important. 16:41:57 so i was buying up cheap books which had any relation to language 16:43:35 and i heard about state machines from the mugen fighting game engine 16:44:15 i still haven't gone back to take a closer look at it 16:47:45 -!- ais523 has joined. 16:50:17 Bye! 16:50:18 -!- atriq has quit (Quit: Leaving). 16:59:44 -!- zzo38 has joined. 17:05:02 -!- nooga has joined. 17:39:27 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds). 17:41:36 -!- AnotherTest has joined. 17:41:40 Hello 17:42:11 What Haskell IDE do you people use (if any)? 17:51:00 i just have vim and ghci open in two windows 17:51:35 haskell is potentially a great language for very clever IDEs but i haven't seen a good one 17:51:45 i used leksah for a little while but it was buggy 17:56:05 I might try leksah and hope it's not as buggy on my system 17:57:13 although I have the impression that most buggy software is buggy invariant of the system 17:58:48 it depends 17:58:54 inkscape is much worse on mac than on linux 17:59:13 it's also possible that leksah got better in the intervening time 17:59:29 well it is taking a long time to collect information about Haskell packages on my system 17:59:37 at the risk of unfounded generalization, i think haskell appeals more to the kinds of programmers who don't typically use IDEs 17:59:56 and to some degree this blinds people to the advantages a haskell IDE could have, compared to IDEs for other languages 18:00:26 I actually don't, but I think a good IDE can definitely be useful (which is why I want one) 18:00:36 i would love to use something like the emacs Agda mode for Haskell 18:00:39 kate is pretty good ide 18:00:54 "what is the type of the expression which could go here" 18:01:04 -!- Phantom_Hoover has joined. 18:01:11 "write out the pattern-matching cases for this function based on its type" 18:01:30 "look up functions that could go here in Hayoo, add the package to my .cabal file, and import the module" 18:01:44 http://www.jerkcity.com/jerkcity4997.html 18:03:18 kmc, I'd feel more comfortable with lighttable for Haskell than I would for Clojure, merely because I can know that each function really is not doing side-effects 18:03:27 (Unless someone's abusing unsafePerformIO) 18:04:11 I might just use vim 18:07:16 Then again, I don't know how difficult it might be to do a lighttable thing for Haskell 18:11:50 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 18:20:07 -!- impomatic has joined. 18:26:52 -!- oklofok has quit (Ping timeout: 240 seconds). 18:27:42 -!- oklopol has quit (Ping timeout: 264 seconds). 18:40:18 -!- impomatic has quit (Ping timeout: 264 seconds). 18:41:14 zzo38: what do you mean "there are no left turns" in Half-Broken Car in Heavy Traffic? 18:42:48 there is a '<' command 18:44:03 Arc_Koen: No I mean turning left relative to the straight direction the car only turn right no left 18:44:13 -!- ogrom has joined. 18:44:21 It says so in the linked documentation too 18:44:24 hum I followed the external link and then I understood 18:44:39 my confusion comes from the difference between "go left" and "turn left" 18:45:08 I think it would be less confusing if directions were west and east instead of left and right 18:45:48 I agree. Ask the people who invented that programming language. 19:05:56 -!- kinoSi has quit (Read error: Connection reset by peer). 19:06:24 -!- kinoSi has joined. 19:12:56 -!- Arc_Koen has quit (Quit: Are you telling me you can build a time machine but you can't cook a cheese soufflé? You've got your priorities all wrong!). 19:13:17 -!- Arc_Koen has joined. 19:17:10 -!- AnotherTest has quit (Quit: Leaving.). 19:19:56 zzo38: So turn right three times 19:20:15 FreeFull: Yes I suppose so. 19:20:57 -!- MoALTz_ has joined. 19:21:15 I found on Wikipedia the chord I have not learned from the book, which is the Neapolitan chord, which is a major chord on the lower second scale degree. 19:21:36 Which is sometimes used in place of a IV chord. 19:23:47 -!- MoALTz has quit (Ping timeout: 245 seconds). 19:23:51 cache rules everything around me 19:24:06 -!- soundnfury has quit (Ping timeout: 264 seconds). 19:29:07 -!- oerjan has joined. 19:33:31 15:49:55: :t (0 $ 0 `on`) 19:33:31 15:49:56: The operator `on' [infixl 0] of a section 19:33:35 sacrilege! 19:33:56 anyone making an infixl 0 operator should be hanged and quartered. 19:34:07 (also infix 0, naturally.) 19:35:12 (this does not apply to _changing_ $ into infixl 0, in which case one would swap l and r.) 19:35:53 the conditions under which one would be hanged and quartered are getting complicated 19:36:07 you don't say 19:37:25 also there should have been another precedence above the default 9, which . should have had instead. 19:37:55 maybe the precedences should be rationals 19:38:28 olsner: has been suggested, at which point someone will immediately suggest a system for general partial orders. 19:38:35 indeed 19:38:38 I was just about to do that too 19:39:07 at which someone will point out that makes it awful to combine independent libraries. (at least that's what happened a week or so ago.) 19:39:55 my point, otoh, is that . and $ should be considered pseudosyntax and every fixity which conflicts with their natural use is wrong. 19:41:06 the above `on` being one, and parsec's being the other example i recall. 19:43:09 basically someone should have developed some guidelines before user-defined operators started proliferating, and it's really too late now. 19:43:39 (the applicative operators mostly being 4 rather than the same as the corresponding monadic ones is another pet peeve of mine.) 19:45:04 I just think this is a problem with Haskell; fixity must be integer 0 to 9, and does not allow redefinition of fixity of things defined in another file. 19:45:15 (They could be fixed by an extension, I suppose.) 19:45:40 you can redefine functions in practice if you really want to, though. 19:46:04 on = Data.Function.on; infixr 0 `on` 19:46:17 Yes that is what I thought of too 19:46:35 Should fixities be surreal numbers? 19:46:39 heh 19:47:09 rationals _should_ be enough for everyone, being able to represent all countable total orders 19:48:12 olsner: oh the last pointing out about partial orders was that if you define fixities by their relation to other operators, those other operators have to actually be imported... 19:49:00 which means you get unnecessary package dependencies 19:49:02 That is what I thought about using surreal numbers, by defining by relation to other operators 19:50:26 surreal numbers presumably allow any total order, regardness of cardinality. 19:50:57 Yes, I think so. 19:53:41 -!- epicmonkey_ has quit (Ping timeout: 246 seconds). 19:54:35 the proof is sort of a generalization of the proof for rational numbers 19:55:29 for rational numbers, you need that between any non-interleaved finite set of rational numbers there is another one 19:55:43 for surreal numbers, the same is true without finiteness 19:55:49 -!- MoALTz_ has quit (Quit: brb). 19:55:57 *any two 19:56:05 *another rational number 19:56:08 -!- MoALTz has joined. 19:56:59 because the game with left and right options the smaller and larger set represents a surreal number between them. 19:58:35 Yes 19:59:06 you also need a well-ordering (not necessarily the same order) of the totally ordered set you want to embed 20:04:59 well, maybe not _strictly_ need one, you can get the real numbers embedded because they're separated by rationals, and i don't think this uses the real numbers being well-orderable. 20:06:03 -!- ogrom has quit (Quit: Left). 20:06:23 perhaps there's a clever argument which only uses the axiom of foundation instead... 20:07:07 but since there's no obvious guarantee that the total order respects set rank, i won't bet on it. 20:07:19 -!- Phantom_Hoover has joined. 20:16:04 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 20:23:05 * shachaf can't figure out what kmc's attitude toward C++ really is. 20:23:09 I suspect there's more than one attitude. 20:26:17 @tell Arc_Koen I think that your ocaml Brainfunct interpreter always treats @ with an undefined function (including 0, but not for >= 50) as using an empty function, is this intended behavior? (It's more useful than crashing anyway, as my haskell one does and as yours does for values >= 50) 20:26:17 Consider it noted. 20:26:43 yes it is 20:26:43 Arc_Koen: You have 1 new message. '/msg lambdabot @messages' to read it. 20:26:56 what about for values >= 50, ideally? 20:27:06 they should be no-ops as well 20:27:24 ideally I guess the tape and the functions are unbounded 20:27:26 ok. i'll modify my haskell one. 20:27:41 my tape is already unbounded since it uses the zipper trick 20:27:48 oh, nice 20:28:12 (as well as haskell's infinite lists, but that just makes it slightly easier) 20:28:27 I'm still trying to figure out why my interpreter ends on Stack_overflow on a tail-recursive loop 20:29:14 well your for loop comment seems correct to me, as it makes the '@' case not be in a tail position 20:29:35 I mean, if the @ call is the last command in a function, the interpreter should reflect that 20:30:02 I modified my program to have the last command out of the for loop 20:30:07 shachaf: i've said it more than a few times 20:30:13 oh, you did not include that on the wiki 20:30:26 well it did not work as intended so I did not edit 20:30:33 i think C++ is a bad language, which is bad in almost the opposite way that languages are usually bad 20:30:36 akmc: It's basically a bad language, but it's interesting because it's bad in an opposite way to other languages? 20:30:43 yeah 20:30:57 and despite being a bad language, it is sometimes the right tool 20:31:15 the other modification I haven't put on the wiki page is | ',' -> tape.(!ptr) <- (try int_of_char (input_char stdin) with | End_of_file -> -1) 20:31:31 aha 20:31:54 but using that in the cat program would make it way more complicated 20:32:03 heh 20:32:05 as there is no efficient test 20:32:22 it's also interesting just because it has lots of things that other languages don't 20:32:23 sure there is 20:32:59 (the simple, current version would try printing -1 as ascii so it would result in an error anyway) 20:33:11 lessee 20:33:28 in my categorization of programming languages, C++ is practically the only language in its niche 20:36:04 hm... 20:36:13 C++ has an elegance and internal consistency which is lost on most of its users 20:36:26 because they mostly program in a hodge-podge of C and C++ 20:36:44 the reason they do that is that C++'s internal consistency isn't so much externally consistent with the real world 20:37:17 also it's just very fun to write C++ in small doses and try to do excessively clever things 20:37:26 which is one reason i call it an esolang 20:37:33 That's true about most languages, isn't it? 20:37:34 and now you know 20:37:40 how i feel about C++ 20:37:48 i hope you will use this knowledge for good and not evil 20:38:01 kmc: Did I ever ask you again about the stream-cipher-for-disk-encryption thing? 20:38:24 shachaf: well, some languages try to limit the amount of cleverness you can use 20:38:39 and others are just a mess such that clever things never really seem elegant 20:39:06 C++ and Haskell are very similar in my mind 20:39:16 ignoring the technical details of each language, and focusing on these kinds of factors 20:39:31 now there's a statement which is bound to upset almost everyone ;) 20:39:47 but i promise i'm not trolling, i really do think C++ and Haskell are very similar on this level 20:40:33 Los Angeles is hot. :-( 20:40:48 why did you go to los angeles 20:41:55 It's only temporary. 20:42:46 ooh, did you get to ride the Expo Line? 20:43:02 No. 20:43:11 Should I? 20:43:19 I hear lexande_ was in a train the other day. 20:43:33 well it's just another light rail line 20:43:37 but it opened since i was last in LA, is all 20:44:53 I know someone who I thought was in Pasadena now but it looks like not yet. 20:45:01 ok heres a statement 20:45:38 99% of commercial software does not require a turing complete platform 20:45:48 i don't know if i am using words entirely wrong here 20:46:03 itidus21: 100% does not. 20:46:07 Because computers are not TC. 20:46:08 :) 20:46:09 i have a vague idea what i meant 20:46:30 kmc: My impressions of Los Angeles so far are "I wouldn't want to live here". 20:47:10 pikhq: its gonna be brutal figuring out what i actually meant. im gonna make a coffee first. and then cause a lot of facepalms 20:47:57 grocery store, bbl 20:52:04 -!- MoALTz has quit (Quit: brb). 20:53:12 oerjan: http://sprunge.us/SRFA?ocaml 21:02:33 -!- MoALTz has joined. 21:03:20 Arc_Koen: i think +>,++++@<@/----.<-@/+@ should work although winghci doesn't have an easy way to test EOF's and i cannot be bothered to use a real command line 21:03:35 (it works for the basic catting, anyway) 21:05:47 hm i can simply add a similar test for newline, i think 21:06:04 -!- augur has quit (Remote host closed the connection). 21:06:30 -!- augur has joined. 21:08:01 dammit it also has trouble resetting stdin 21:08:27 fortunatelly :r fixed that 21:08:32 *-l 21:09:12 it raises invalid_argument "index out of bound" even though I set n_functions to 256... I'm head-computing what it does and it looks like it should be working 21:10:32 -!- augur has quit (Ping timeout: 240 seconds). 21:10:40 oh wait i know my problem 21:11:56 ohohoho wait I think my interpreter is sooooo broken 21:12:33 now it worked, my fix for making undefined functions empty had a bug that made <= 0 give function 1 instead :) 21:12:36 oh no it's not 21:13:07 for one moment I thought my interpreter never returned from function calls 21:13:11 heh 21:13:40 well i managed to get a cat that quits on newline with +>,++++@<@/->----.<@/+@ 21:14:11 (it should also quit on EOF, but it's too awkward to test in winghci) 21:15:07 still doesn't work with my interpreter, but I'm pretty sure the error comes from the interpreter 21:15:26 Arc_Koen: it shouldn't ever run functions that large if you give it plain ASCII, anyway 21:15:43 it just adds 4 after all 21:15:53 I know 21:19:31 well I won't try to debug my interpreter tonight, that'll wait for another day 21:20:11 uploaded my changes 21:21:41 Arc_Koen: er your - is wrong :) 21:21:54 oh, waoh 21:22:05 I think that's the most stupidest error i've ever had in a program 21:22:12 (and that means a lot) 21:22:19 the only command none of your previous programs tested, i think :P 21:22:26 indeed 21:23:34 Arc_Koen: hey don't worry, i almost managed to get + and - include an automatic > because i put the new value in the wrong zipper list 21:23:43 haha 21:23:52 because i had simply copied and pasted the code for > to modify 21:24:40 does the new cat work now? 21:26:32 one sec - the invalid argument thing simply came from the program trying to read exactly one more command than there were characters in the current function 21:26:46 Arc_Koen: your code looks tail recursive to me 21:26:56 it is now 21:27:12 there was a stupid -1 / +1 error in the loop 21:27:45 (so the for loop still did everything, and the step after the loop tried to read an imaginary command 21:27:47 -1,0,1,2,3,...,253,254 21:27:56 heh 21:28:26 itidus21: i don't think any of our interpreters use 8-bit cells 21:28:47 mine uses Int, although it would be a simple substitution to use unbounded Integer 21:28:48 urrh, still an error somewhere 21:28:59 hmm 21:29:03 paste new version? 21:29:26 well 21:29:30 ok 21:29:36 uhmmm 21:29:51 http://sprunge.us/bgNU?ocaml 21:32:40 * oerjan convinces himself that runs the right commands in a function 21:33:23 | x -> raise (Unknown_command x) is kind of ridiculous since all brainfuck specifications seem to agree that unknown characters are no-ops that can be used for comments 21:33:48 ah 21:34:05 i allowed whitespace but nothing else 21:34:46 I just added that line without further thinking when the compiler told me "warning: non-exhaustive pattern matching" 21:40:18 i don't see anything obviously wrong with your last paste 21:43:29 well I'll add a lot of print_string to see where the index out of bounds come from 21:43:38 but that'll wait :) 21:44:39 oh and I found http://esolangs.org/wiki/BrainCursion should I add a "see also" link or something? 21:45:41 its about this point where i remember that #esoteric is actually discussing brainfuck and thus most rational comments do not apply 21:46:11 Arc_Koen: i don't think they're that similar 21:46:24 because, brainfuck programmers are a mythical entity 21:46:28 beyond both being brainfuck derivatives 21:46:37 itidus: a friend showed me a link to someone who has implemented brainfuck in SpaceChem... now *that* is mythical 21:47:06 well.. the uh.. consumer of brainfuck interpreters is the mythical part :P 21:47:21 oerjan: well my motivation for making brainfunct was "wait is it so that among all the brainfuck derivatives, the obvious functional version is missing?" 21:47:55 and braincursion seems to be claiming more or less the same thing, even though I haven't really understood what was its point :p 21:48:30 Arc_Koen: not really, it can only jump to the matching ( or ) i think 21:48:31 i guess what i am saying is not quite true considering that people make interpreters in brainfuck 21:48:39 its a great interpreter writing language 21:49:07 or wait does it 21:50:29 oops no im wrong 21:50:37 i got x and y axis confused on esointerpreters 21:51:20 hm it doesn't even do matching, if the interpreter is to be believed 21:51:26 hmmmmmm does braincursion support nested loops correctly? 21:51:50 seems not 21:53:03 basically i think all the brainfuck programs that are going to be written have been written 21:53:28 so, the hypothetical end user of a brainfuck interpreter is just a useful uhhh 21:53:32 however this directly contradicts the computational class section of the article 21:53:39 indeed 21:53:51 useful fellow 21:54:29 well that sections links to "reduction", in which it is said "be careful with the arbitrary thing at the arbitrary moment!!!" which is not respected by the loop emulation in braincursion 21:54:54 @tell spirity Did you mean for loops in BrainCursion to nest properly? The interpreter doesn't. 21:54:54 Consider it noted. 21:55:29 oerjan: according to the description of the language it doesn't either 21:55:39 (at least not in such an easy way) 21:56:00 @tell spirity The description seems to imply they shouldn't, while the computational class section makes no sense if they don't. 21:56:00 Consider it noted. 21:56:21 are spirity and Madk one? 21:57:40 no, spirity and Seven Inch Bread is 21:58:14 the computational class comment is older than the interpreter, at least 21:58:57 in fact it's by the original article author. which is an IP, so may or may not be the same as the language author, but most likely is. 21:59:25 btw i hesitate to call the loops described "recursive". 21:59:52 yup that's what I did not really understand 22:00:21 so no matter how you slice it, it's not very similar to Brainfunct. 22:00:41 anyway, "recursive" wouldn't mean much if it's still and explicit loop 22:01:39 I remember when I had programming exercises to do at the university and it was explicitly said "this algorithm must be written in an imperative way" I often "cheated" by emulating recursion using a stack 22:05:08 Arc_Koen: btw as a conoisseur of TC proofs, i find the phrase "arbitrary effect at an arbitrary point" and even the entire Reduction section _far_ too imprecise (and don't actually describe the technical meaning of reduction.) 22:05:27 I completely agree with that 22:06:14 *connoisseur dammit :P 22:06:39 it took me a while to understand what they meant with "arbitrary effect at an arbitrary point", and what's said about reduction basically is "reduction is a good way to prove a language TC except sometimes it's not a proof at all" 22:07:09 real reduction is definitely a proof, but you have to apply to an entire program (sometimes including the I/O) 22:07:17 (the french word actually is "connaisseur" with an a :p) 22:07:53 "A connoisseur (French traditional (pre-1835) spelling of connaisseur" 22:08:03 so it's not wrong to use it in english, by tradition 22:08:28 I know but it does sound weird when the reader is french :p 22:10:10 (well, I didn't know where the o came from. I thought it was just an original misspelling.) 22:12:14 (or something similar to "rendezvous" being written as a single word) 22:12:34 well sometimes you can reduce each instruction separately, when the language's have essentially identical semantics for how sequences of instructions are combined. 22:12:39 *languages 22:23:26 -!- Phantom_Hoover has joined. 22:26:06 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 22:49:14 -!- ais523 has quit. 22:51:52 -!- copumpkin has joined. 22:53:04 -!- augur has joined. 22:55:55 -!- augur has quit (Remote host closed the connection). 23:04:53 oerjan: but then it's basically the same thing as writing a compiler from the TC language to the new language isn't it? 23:05:14 yep 23:05:57 -!- kinoSi has quit (Read error: Connection reset by peer). 23:06:25 -!- kinoSi has joined. 23:22:13 -!- MoALTz has quit (Ping timeout: 255 seconds). 23:28:38 -!- nooga has quit (Ping timeout: 244 seconds). 23:38:10 is any modern C compiler going to object to non-ASCII UTF-8-encoded characters in a multiline comment? 23:38:37 i figure, even if it decodes them as 8-bit characters, it will be fine because they will not match "*/" as encoded in the ISO 646 invariant set 23:38:46 Since it won't contain the ASCII */ then probably it will work OK. 23:39:14 (If you need to actually use the */ in the comment then use the overlong encodings) 23:39:21 overlong? 23:40:23 Overlong encodings are not really valid UTF-8 but use it anyways if you need to. 23:41:50 They're alternate encodings for the charaters U+00 to U+7F 23:42:38 ah, i see 23:42:54 you prepend some bytes which encode zeros 23:43:32 kmc: It should "just work" regardless. 23:43:33 http://blogs.msdn.com/b/michael_howard/archive/2008/08/22/overlong-utf-8-escapes-bite.aspx 23:44:45 kmc: The beauty of UTF-8 is that you'll never get valid ASCII out of it except when it's the chunk mapping to ASCII... So you'd have to really work to break on UTF-8 there. 23:44:47 If you are using UTF-8, another thing you could do if you want */ in a C comment is to put a zero-width space between. 23:44:58 yeah 23:45:05 do zero-width spaces work in fixed-with fonts? 23:45:11 are they like a no-op combining character? 23:45:15 Should do 23:45:26 they work in irssi anyway 23:45:26 Works fine here. 23:45:31 cool 23:45:49 They are supposed to have zero width; in PuTTY on my computer it displays a replacement box even though it does not advance the cursor. 23:45:52 `echo (example) 23:46:03 ​(example) 23:46:43 So in that example, it appears on my computer the zero-width space replacement box overlapping the colon. 23:46:48 ✧_✧ 23:47:06 What colon 23:47:18 (And for some reason it is gray rather than blue; this may be a bug in PuTTY) 23:47:44 Maybe your font still needs to have the empty character set for the zero-width space to work correctly 23:47:48 FreeFull: The colon before the IRC message. (The syntax of IRC require a colon to indicate long parameter that may contain spaces) 23:48:06 zzo38: What, you don't use an IRC client? 23:48:22 FreeFull: I do use an IRC client. But probably not the same one you used. 23:48:47 Isn't your IRC client more a syntax-highlighting IRC protocol displayer? 23:49:17 I mostly use irssi, because the irc client I wrote myself isn't that good =P 23:49:40 i think someone should package GNU/Linux, Mosh, screen, and irssi as an EC2 AMI 23:49:49 to make it super easy to set up persistent IRC in The Cloud 23:50:02 there is also https://irccloud.com/ but i heard it is slow 23:50:03 I'd be tempted to, except I just got my Internet stable. 23:50:11 pikhq: Yes mostly those are what it does; although it has other features too. 23:51:39 Mosh? 23:51:47 Also, tmux > screen 23:51:49 FreeFull: mosh.mit.edu 23:51:53 screen, tmux, whatever 23:52:12 Oh, this 23:55:33 -!- olsner has quit (Ping timeout: 246 seconds). 23:59:45 ISO C allows "int main() { ... }", right? 23:59:57 (with no parameters)