00:19:11 That's disturbing, I had something in common with Rimmer. 00:19:50 When I was a kid, once played a game and wrote down all the rolls of the dice 00:19:53 iirc 00:27:21 -!- calamari has quit (Quit: Leaving). 00:37:40 -!- kmc has joined. 01:02:34 smeghead 01:06:52 get the smeg out of the channel with your smegging rude language 01:13:00 ^bf +[>+<+++++++]>-.>++[>+<+++++]>-.>+>+[+++[++>]<<]>..>>+[+>+[<]>->]<. 01:13:01 Hello 01:19:49 The plural of "irssi" is "irssit", right? 01:26:54 SOUNDS REASONABLE 01:39:05 tswett: sir, i believe we've wandered accidentally into a rogue simulant hunting zone 01:39:49 Are you a simulant? 01:40:25 i don't know 01:40:46 @google simulant 01:40:48 http://dictionary.reference.com/browse/simulant 01:41:39 i'm not a simulant, although i can simulate one if you want 01:51:32 -!- azaq23 has joined. 01:51:35 kmc: I found out that I completely misunderstood CTR mode, and that the thing it actually is is kind of weird. 01:51:44 oh yeah? 01:51:46 tswett, simulant is a Red Dwarf reference 01:52:22 Weird in that it doesn't every use the cipher to decrypt -- it just uses it as a sort of pseudo-random function. 01:52:33 yeah 01:52:42 it's a way of creating a stream cipher from a block cipher, in a sense 01:52:58 Well, so is e.g. CBC. 01:53:06 But it actually uses the block cipher in both directions. 01:53:37 I had previously thought it was something like encrypt(xor(block, iv + counter), key) 01:53:47 But people pointed out that that's broken. 01:55:19 because the data might increment alongside the counter? 01:55:43 i googled it as a random quote though 01:55:46 Well, because if you can encrypt a chosen plaintext with a particular ID, you can compare it to another ciphertext to see if they match. 01:57:30 i am not actually a qualified red dwarf fan 01:58:00 -!- Phantom_Hoover has quit (Remote host closed the connection). 02:03:16 Just encountered an advantage that Lisp-style macros have over Tcl-style... thingy 02:04:30 shachaf: I've decided that when people complain about "ATM machine" and such, I will complain about "all OK"~ 02:04:52 kmc: OK isn't an acronym. 02:05:00 Or an initialism, if you're the sort of person who complains about that. 02:05:04 that's just, like, your opinion, man 02:05:35 * shachaf has been defeated. 02:06:08 So why do people put a lot of work into making block ciphers and then use them as stream ciphers? 02:08:52 perhaps because they want to use stream ciphers, but the things designed as stream ciphers tend to be weak 02:10:02 one may also ask, why is this a popular platform? http://www.theunwired.net/media/news/opera_mini_5_android_teaser_hand.jpg .. why do developers work on several 32" monitors with maya and 3dsmax etc to produce 3d content for such a small device 02:10:31 itidus21, never change 02:10:44 and.. maybe someone agrees with me.. and hence: http://www.kickstarter.com/projects/ouya/ouya-a-new-kind-of-video-game-console 02:10:55 Backers 02:10:55 $3,586,881 02:11:02 * kmc knows even less about stream ciphers than he does about block ciphers 02:11:07 -!- Vorpal has quit (Ping timeout: 240 seconds). 02:11:21 kmc: Don't stream ciphers tend to be the thing you actually want? 02:11:24 Hence all these modes. 02:11:52 noone wants to hear the nonsensical ravings of a loudmouth malcontent 02:12:01 that's what i mean 02:12:45 when ouya raises $10,000,000 they would know i was right if they listen >:-D 02:13:07 It seems really roundabout to me to put a lot of work into making a block cipher, ignore half of it, and use it to generate a keystream. 02:13:25 -!- copumpkin has joined. 02:13:36 i don't think you actually ignore half of the work 02:13:44 Well, yes. 02:13:48 I mean half of the cipher. 02:14:09 The argument seems to be "AES happens to have all the properties we want, and people have put a lot of work into understanding it, so we might as well use that". 02:14:12 Which I guess is reasonable. 02:14:54 so what if you use something like a block cipher but lacking a "decrypt" operation 02:15:00 i.e. a cryptographic hash function 02:15:52 Right. 02:15:55 * itidus21 realises i don't even know how i got from ATM/OK -> android 02:15:57 ciphertext = xor(plaintext, hash(key + counter)) 02:16:01 is that secure? 02:16:18 ^s/i don't/he doesn't/ s/i got/he got/ 02:16:31 It would seem to me to be, given an appropriate behavior of hash(). 02:16:45 key + iv + counter, I guess. 02:17:00 the iv is a per-session random constant? 02:17:02 secret? 02:17:07 Not secret. 02:17:11 This is assuming you use the key more than once. 02:17:14 ah right 02:17:23 you can also start the counter at a random point, equivalently 02:17:42 I suppose. 02:18:09 Some people suggested that the compression function used in SHA1 is actually a good deal slower than AES. 02:18:48 oh yes.. the parallels between the fact that they "put a lot of work into" hdtv, and gpus, and the fact that gamers ultimately "ignore half of it, and" gravitate towards low end handhelds 02:19:17 itidus21: You've bored right through to the heart of the matter. 02:19:20 You've figured me out. 02:19:25 * shachaf is part of the conspiracy. 02:19:32 you were talking about gaming all along! 02:20:34 ok im satisfied 02:21:56 * itidus21 recounts events 02:22:34 "people have put a lot of work into understanding it, so we might as well use that" so it's the gambler's fallacy that since we have invested this much, we have to stick with it 02:23:06 it hurts so much 02:23:14 ok so thats not gamblers fallacy 02:23:23 no it is a fallacy of gamblers though 02:23:27 i was going to give you the benefit of the doubt 02:23:49 Escalation of commitment i mean 02:24:11 i think there is a "sunk costs anti-fallacy" where some people will cry "sunk costs fallacy!" at any attempt to utilize existing resources 02:24:43 obviously if you abandon any project in which costs have been sunk, you will get nothing done 02:24:55 the question is whether the future payoff from the project exceeds the future costs 02:25:38 in the case of using AES as a crypto primitive, the future payoff (highly secure systems) is judged to be worth the future costs (integrating this well-understood, widely implemented thing) 02:26:13 There's no real cost, I suppose, it's just weird. 02:29:12 kmc: So when people say "AES-256 is theoretically broken by a related-key attack", does that also apply to CTR mode? 02:37:22 beats me :x 02:48:33 cool lisp is 02:48:44 Why why why would a Tcl'er joke about Lisp like _that_ 02:48:53 I mean, in that regard, Tcl and Lisp are rather close 02:49:08 (Well, except for the expr thing for math) 02:55:08 LOLOLOLOLOLOLOLOLOLOLOLLOLOLOLOLOLOLOLO PARENTHESES 02:55:21 also i think it's backwards but 02:55:26 people on the internet say dumb shit about lisp 02:55:28 film at 11 02:55:56 confusing with forth you are 02:56:16 was yoda a forth program 02:56:20 mer 02:57:18 no forth wasn't invented yet 02:57:22 hth 02:57:37 parallel evolution 03:10:37 From #haskell: data PBT a = Leaf | Branch (PBT (a,a)) deriving (Eq,Ord,Show,Read); let x :: PBT a; x = Branch x 03:10:41 That recursion really bugs me. 03:11:23 nice 03:16:23 -!- pikhq_ has quit (Ping timeout: 245 seconds). 03:16:25 -!- pikhq has joined. 03:31:29 -!- calamari has joined. 03:32:14 -!- azaq23 has quit (Quit: Leaving.). 03:32:39 -!- azaq23 has joined. 03:56:58 -!- TodPunk has quit (Quit: This is me, signing off. Probably rebooting or something.). 04:01:31 -!- pikhq has quit (Ping timeout: 246 seconds). 04:01:32 -!- pikhq_ has joined. 04:01:55 -!- TodPunk has joined. 04:19:21 -!- MoALTz has quit (Quit: Leaving). 04:49:40 olsner: ei muuten todellakaan ole. me voitimme sen reilusti ja neliö. 04:50:35 I love that expression. 04:51:02 yeah i think i'll use it from now on 04:58:39 some fucking asshole is doing his laundry on my turn again 04:59:44 if i lived here and was sure it's not my gf's roommate, i'd totally like still not do anything about it. 05:04:17 -!- Sgeo_ has joined. 05:05:53 -!- oerjan has quit (Quit: Good night). 05:06:58 -!- Sgeo has quit (Ping timeout: 246 seconds). 05:19:18 -!- kallisti has quit (Ping timeout: 264 seconds). 05:45:27 -!- kallisti has joined. 05:45:28 -!- kallisti has quit (Changing host). 05:45:28 -!- kallisti has joined. 06:03:44 -!- calamari has quit (Quit: Leaving). 06:07:38 -!- oklopol has quit (Ping timeout: 245 seconds). 06:22:44 that's the spirit. mathematician/computer programmers are not the alphamales of the laundry machines. 06:37:12 Can elephants juggle more than seven chainsaws? 06:40:07 "juggling elephants" About 62,700 results 06:40:48 "juggling elephants" chainsaws About 709 results 06:40:57 including such gems as: 06:41:09 So, rather than playing this admirable slice of soaring gospel rock against a backdrop of chainsaw-juggling elephants and heavily mauled, 06:41:26 to prove do not exist; abominable snowmen, flying pigs, chainsaw juggling elephants, teapots orbiting celestial bodies, to name but a few. 06:41:57 Maybe they'd bring on juggling elephants or chainsaw-wielding tightrope walkers, because surely such events are the only reason football 06:42:23 Try googling the entire question 06:42:51 :O 06:46:07 how long is my life going to be 06:46:56 ? 06:47:36 that in addition to all i have suffered, and all i am due to suffer, that i must suffer such things as the tcl war 06:48:47 The Tcl Wars of 1994, such a senseless waste of human life. 06:48:51 perhaps these people should give up science and instead join sports, politics, or religion 06:49:25 <-- more than a little hypocritical 07:28:39 -!- pikhq has joined. 07:32:20 -!- pikhq_ has quit (Ping timeout: 246 seconds). 07:34:57 the tcl war is partially fascism 07:37:13 `ウェルカム itidus21 07:37:22 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ウェルカム: not found 07:37:26 i can't see the text >.< 07:37:30 pff. 07:37:40 mroman: 「ようこそ」 07:37:54 「ウェルカム」は変。 07:38:14 "we need everyone to stop using a thing which looks set to became popular on it's own merits, and instead use an unpopular thing favorable to people like richard stallman" 07:39:27 pikhq: なるほど 07:42:49 sorry i am playing catch up on rms 07:43:02 it's evidently 18 year old news 07:43:18 oops 8? 07:43:34 no 18 phew 07:43:46 forgot about the years 2001 - 2010 07:44:23 nothing happened in these years anyway. 07:44:29 true 07:45:02 Didn't that "never forget" thing happen? 07:45:15 What non-Smalltalk language communities have people who like image-based stuff? 07:45:22 There's at least two such things for Tcl 07:45:31 fizzie: oh you mean the war on iraq? 07:45:35 yeah that happened :P 07:45:39 What's image-based stuff? 07:45:55 As in, single file that contains the entire environment 07:46:01 Oh, that sort of image. 07:46:05 ala non-GNU Smalltalk 07:46:27 Well, Forthers do that sort of stuff sometimes, don't they? 07:46:50 At least Gforth does image files, gforth.fi by default. 07:48:59 i notice audio is very popular 07:49:00 And, uh... R? 07:49:21 i guess if i had actually used an instrument ever i might find audio more appealing 07:49:28 Also I vaguely recall some Scheme doing something similar, but I don't have a clue which one it was. 07:50:13 i think that cool people prefer audio over video 07:50:23 but i can't quite explain why 07:50:24 Cool people, and blind people. 07:50:31 (Presumably.) 07:50:36 hmm actually 07:50:49 i suppose it's because a human body, with no other tools 07:50:56 can produce sound and music 07:51:41 but, in order to create visual things, you need objects to arrange... video displays, cameras, pens, pencils, canvases, paper, paint, etc 07:53:13 "never forget" thing? 07:53:14 also, that an instrument becomes an extension of the human body in that sense.. doesn't need fuel.. as the way video needs electricity usually.. pens need ink 07:53:19 First black president? 07:53:25 mroman: the oil thing 07:53:30 Oh. 07:53:33 :P 07:53:34 The seven-eleven. 07:53:36 Or whatever it was. 07:53:39 Americans invading Iraq... 07:53:40 AGAIN! 07:54:00 After they supported the dictator there for so a damn long time. 07:54:08 americans deconstructing and reconstructing iraq 07:54:16 Whenever I put a date on something I stick in the freezer, I'm tempted to write "never forget!" after the date. I've done it a couple of times, too. 07:55:58 http://www.youtube.com/watch?v=ZRn0SQsUKuw 07:56:01 im too paranoid to believe the official version of events 07:56:14 ^- That's pretty much the picture an average critical european has of america ;) 07:56:20 Doesn't MIT Scheme have some sort of an image file? 07:56:42 "This distribution comes with four different image files, each of which contains different mixes of programs." Yes, something like that. 07:57:17 "A world image, also called a band, is a file that contains a complete Scheme system, perhaps additionally including user application code. Scheme provides a method for saving and restoring world images." 07:57:22 Fancy name. 07:57:42 'disk-save' puts the band back together. 07:57:58 i don't know why images become so wonderful 07:58:18 it's just vram data being blasted along a vga cable 07:58:31 This is a different sort of image, though. 07:58:34 The non-visual kind. 07:58:39 :o 07:59:20 I see http://english.eastday.com/e/zx/images/01459347.jpg 07:59:35 (that's me understanding non-visual images) 08:02:38 It's more like just stealing the word to denote something else. Like there's disk images, those aren't especially visual either. 08:03:20 conversations with me rarely go anywhere 08:07:13 A PIECE of wood which starred in 60s comic caper The Plank amazed experts when it broke the 1,000 barrier at auction. 08:15:03 This printer smells of popcorn. 08:16:14 i wonder if anyone has ever loaded up the red section of a color ink cartridge with their own blood 08:17:08 and frankly i don't want to know 08:18:59 It might not work terribly well. Though it does sound like a modern way to be all gothy, I suppose. 08:19:29 mroman: And an American view on America: http://www.youtube.com/watch?v=sWS-FoXbjVI 08:20:29 Probably: "You wanna help the poor? Are you a socialist? Ary you a socialist? Aryoua SOZIALOSSTHSTHSHS?" 08:20:56 (^- american tv interviewer) 08:21:31 i love how they list sushi 08:32:36 -!- nooga has joined. 08:37:10 -!- pikhq_ has joined. 08:37:11 -!- pikhq has quit (Ping timeout: 244 seconds). 08:45:00 https://www.google.com/search?q=%2210.4000%22+hp+laserjet+event+log+code 08:47:19 -!- asiekierka has joined. 08:50:03 That's a lot of printers. 08:50:32 I vaguely recall there are queries that do something quite similar for networked cameras. 08:50:39 -!- Taneb has joined. 08:50:44 Hello 08:50:51 I can get on IRC at school now, apparently? 08:51:09 http://www.exploit-db.com/google-dorks/ 08:51:22 Blocked for hacking? 08:52:57 ion: You could take all the Google results of your printer thing, get the black cartridge level from the 'device status' page, and then plot a histogram showing the overall distribution of black cartridge levels on HP LaserJet P2055dn printers around the world. I'm sure that's interesting to someone. 08:53:22 E.g. the printer at 70.108.240.40 only has 1% (approx. 27 pages) remaining, someone should do something about that. 08:54:15 Hey, cpressey's alive 08:54:20 fizzie: Hah 08:54:48 fizzie: Since that printing operation will change the value, one should do that again. And again. 08:56:57 I was thinking of just, you know, publishing the plot on the web, not printing it out to everyone. :p 09:00:29 Oh, okay. :-( 09:02:02 -!- Taneb has quit (Quit: lesson). 09:07:52 nortti: I'm afraid I was asleep when you asked your question last night. The answer is Z80 asm. 09:09:35 Time for daily trivia! The SGI FFT library defines single- and double-precision complex number types (as struct { T re; T im; } with T = float or T = double). The former type is called 'complex', but the latter type has the best possible name: it's called 'zomplex'. (It follows the LAPACK naming scheme with S, D, C and Z mapping to single, double, single complex and double complex types, ... 09:09:41 ... respectively.) 09:09:46 in other news, http://jttlov.no-ip.org/music/gark/Guil_bis.ogg - William Tell on garkleins, by the power of multitrack recording. Unconscionably high-pitched: you have been warned. 09:10:19 fizzie: cool. Or, to be more precise, zool. 09:10:32 (zomplex! It still makes me smile.) 09:10:35 -!- azaq23 has quit (Remote host closed the connection). 09:11:28 zomplex f(zomplex z, zomplex w) { /* giggle */ } 09:11:41 zomg zombie complex numbers! "√-brains" 09:12:37 soundnfury: Heh, nice. 09:13:03 and here's some daily trivia for you: the inverted interrobang ⸘ is also known as the "gnaborretni" 09:14:10 ᵷuɐqoɹɹǝʇuᴉ 09:15:04 hmm, for me that starts and ends with replacement characters 09:15:18 so I just see inverted nterroban 09:15:27 Ask for your money back. 09:15:34 Works here. But my terminal can't show the asterism, ⁂. 09:15:46 Looks like a mini therefore 09:15:58 * soundnfury likes the compose key 09:16:12 It's like a therefore except with stars in place of plain dots. 09:16:36 ¢ømpōßê 09:16:54 I see the asterism, too. 09:16:54 especially neat is ##->♯ and #b->♭ 09:17:06 soundnfury: Cool, i didn’t know that. 09:17:07 ᵷuɐqoɹɹǝʇuᴉ looks like "interrobany" to me 09:17:21 soundnfury: inverted as in upsidedown? 09:17:26 monqy: when you type ᵷuɐqoɹɹǝʇuᴉ all I see is hunter2 09:17:33 i don't have unicode 09:17:36 itidus21: as in turned 09:17:38 monqy: You may want to ask for your money back, too. 09:17:44 like the spaniards do with ? and ! 09:17:49 ¿Que? 09:17:54 ohh 09:17:54 U+1D77 LATIN SMALL LETTER TURNED G 09:17:55 wow 09:18:04 so you can do that with interrobangs :o 09:18:12 it's a g but they goofed it and chopped off the top 09:18:21 small turned g I mean 09:18:32 ion: sadly there doesn't appear to be a compose for the natural sign ☹ 09:18:50 Can you turn the ⸮ (irony mark) around? 09:18:53 No es bueno? 09:19:01 I find funny how Unicode has a white smiling face and a black smiling face, but just a white frowning face. 09:19:14 aha, a table: http://www.hermit.org/Linux/ComposeKeys.html 09:19:33 ion: that's because black people aren't allowed to be unhappy (or something) 09:19:53 -!- nortti has quit (Quit: leaving). 09:20:05 Also: http://www.pixelbeat.org/scripts/ximkeys 09:20:05 -!- nortti has joined. 09:20:24 ſweet! It has long ſ! 09:20:29 GTK (unless you do something to the input method) has its own hardcoded list of compose sequences that's not as complete as the default X list, nor can you customize it with a ~/.Xcompose. :/ 09:20:50 compoſe 09:21:04 fizzie: that sucks. 09:21:17 https://help.ubuntu.com/community/GtkComposeTable -- the stupef. 09:21:50 "The Gtk Compose Table was derived from the X compose tables of XFree86 version 4.0 with further modification intended to provide a Gnome standard for all locales. It is likely that in future it will follow more closely the xorg version. Please keep track of GNOME bug 633534 for complete documentation." 09:21:55 Maybe it's better nowadays. 09:21:58 Last I looked was some years back., 09:22:17 But I don't think you can customize it yet. 09:23:34 There doesn't seem to be an INVERTED REVERSED QUESTION MARK, so you can't do [insert missing character here]Spanish irony⸮ in Unicode either. 09:23:59 clearly you need to complain to the Consortium! 09:24:37 #f->♮ 09:24:45 now how is one supposed to guess that? 09:26:05 also I hate how they went for #q=quarter note instead of #q=quaver (eighth note, #e, they think) 09:28:43 You can change it 09:29:03 Oh. that was mentioned a while ago 09:29:26 Oh, and I was thinking of the plain old XCompose file 09:33:13 /usr/share/X11/locale//Compose 09:33:26 seems to be the system's master list 09:35:06 haha, Compose C C C P ☭ 09:35:12 that's hilarious! 09:35:21 what does it do? 09:39:15 does it produce sicle and hammer? 09:39:23 yes 09:40:37 -!- Dovregubben has quit (Ping timeout: 240 seconds). 09:41:12 awesome 10:02:48 -!- Patashu has joined. 10:05:20 -!- Dovregubben has joined. 10:11:12 -!- Taneb has joined. 10:11:14 Hello 10:11:44 Hackage is down :( 10:12:23 hackage? 10:12:32 http://www.isup.me/hackage.haskell.org 10:12:44 what is it? 10:13:06 It's a collection of haskell packages on a website, used by Cabal 10:13:10 oh 10:13:38 are you using mail server to irc? 10:14:05 I... don't think so? 10:14:17 I might be 10:14:21 13:11 -!- Taneb [~Taneb@mail.qehs.net] has joined #esoteric 10:14:26 It sounds like the kind of thing my school would do 10:15:00 well actually I have my shell on mail/web server 10:15:10 I'm using a network my school's set up for sixth form students 10:15:17 (16-18) 10:15:28 oh 10:16:24 soundnfury: how do you do management/garbage cllection in your lisp? 10:17:44 nortti: the plan is mark-and-sweep 10:18:11 but I haven't got very far with implementation yet 10:18:59 so far I've written the compiler (which runs on a 'host' Linux system and compiles program text to a bundle of conses) 10:19:26 I'm currently working on a C/Linux runtime so I can get the logic sorted out 10:19:32 then I'll reimplement it into Z80 10:22:26 It could also be a NAT kind of thing, with the single public IP named for the mail server. 10:22:43 Could be 10:28:37 http://falkvinge.net/2012/07/12/in-the-uk-you-will-go-to-jail-not-just-for-encryption-but-for-astronomical-noise-too/ 10:29:31 Isn't that causing a disturbance and keeping the neighbours awake 10:29:38 "That racket is astronomical!" 10:32:32 bbl 10:32:34 -!- Taneb has quit (Quit: Leaving). 10:42:56 -!- ais523 has joined. 10:48:33 -!- copumpkin has quit (Ping timeout: 250 seconds). 10:49:04 -!- copumpkin has joined. 10:49:38 oh 10:49:51 well honestly 10:50:31 it's best to just drop the pretense that laws are grounded in logic,morals, ethics, or philosophies.. 10:50:46 and accept that they emerge as artifacts of social conflict 10:52:50 where did you live, again 11:05:51 -!- ais523 has quit. 11:06:04 -!- ais523 has joined. 11:11:56 me? aus 11:12:06 as in, non-european aus 11:12:20 ah. ok 11:12:29 heh 11:17:19 -!- ogrom has joined. 11:30:34 -!- coppro has quit (Ping timeout: 260 seconds). 11:38:01 -!- coppro has joined. 11:45:16 -!- copumpkin has quit (Ping timeout: 246 seconds). 11:46:33 -!- copumpkin has joined. 11:54:40 Today's fucked up idea: 11:54:48 A language based on blink and marque tags. 11:55:04 yay. I got js enabled browser to compile 11:55:08 Programs can be disguised as crappy webpages. 11:55:11 but it is text only 11:57:27 Buy one free todayGET READY 11:58:28 -!- boily has joined. 12:00:01 -!- Taneb has joined. 12:01:31 Hello Taneb 12:01:36 Hey 12:01:39 -!- Phantom_Hoover has joined. 12:01:42 *Hello 12:02:22 Two instruction language that'd be. 12:02:34 Set is one of the few interesting foldables that aren't functors 12:12:56 -!- ogrom has quit (Quit: begone). 12:14:01 -!- Madoka-Kaname has joined. 12:14:04 -!- Madoka-Kaname has left. 12:24:20 -!- ais523 has quit (Ping timeout: 248 seconds). 12:28:46 -!- Taneb has quit (Quit: time for foood). 12:31:10 -!- ais523 has joined. 12:41:00 -!- Taneb has joined. 12:42:41 Hello 12:47:20 -!- neutrino2000 has joined. 12:53:33 mroman: you could make be S and be K 12:54:15 and have string application be concatenation 12:56:46 Buy onefree todayGET READY would b-reduce to BuytodayfreetodayGET 13:04:53 -!- ais523 has quit (Quit: changing connection, brb in an hour or so). 13:10:32 what is the point i am apt to wonder, of changing a variable from one state to another 13:12:13 i must admit finding some consolation to this question when i randomly stumbled upon martin buber in wikipedia with Ich-Du and Ich-Es 13:12:42 -!- ogrom has joined. 13:15:00 -!- Taneb has quit (Remote host closed the connection). 13:17:16 soundnfury: I would consider it to be SKS 13:17:21 only counting start tags. 13:22:40 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .). 13:41:40 -!- pikhq has joined. 13:42:03 -!- pikhq_ has quit (Ping timeout: 265 seconds). 13:46:22 I suppose, because the arities of S and K are defined. 13:46:35 so you don't need the end-tags to parenthesise arguments 13:52:49 -!- ogrom has quit (Quit: Left). 13:56:11 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:02:31 -!- ais523 has joined. 14:04:34 -!- stanley has joined. 14:07:04 -!- boily has quit (Quit: WeeChat 0.3.8). 14:09:10 -!- boily has joined. 14:14:19 -!- copumpkin has joined. 14:28:49 -!- asiekierka has quit (Quit: Wychodzi). 14:47:20 -!- ogrom has joined. 14:55:31 soundnfury: Stuff between tags is comments. 14:55:38 I'm a comment 14:55:44 so you can disguise it as a legit website. 14:57:00 The kind of “legit” web site with tags? ^^´ 14:58:13 Gregor: Yes. 14:59:06 Buy one free websites. 15:01:00 and other non standard tags. 15:01:01 like 15:01:04 spacer 15:01:06 image 15:01:10 and bgsound of course 15:04:05 15:07:29 it could be worse 15:07:32 it could be 15:08:13 THIS IS MY WEB PAGE IT IS UNDER CONSTRUCTION I LEARNED EVERYTHING I KNOW FROM W3SCHOOLS 15:08:47 15:08:57 It's one of those animated road sign ones. 15:09:20 -!- calamari has joined. 15:09:36 too. 15:09:38 Oh yes 15:09:45 Actually, for a typography nut and kerning obsessive, I'm surprisingly relaxed about Comic Sans 15:09:49 I was looking for an animated "under construction" gif but google image search found none .__. 15:09:55 it's Helvetica I hate 15:09:58 I want the one with the lemmings 15:10:13 Also 15:11:40 although Real Men use monospace. And then kern it anyway https://github.com/ec429/monokern 15:12:16 Why is there a bell.wav file in there 15:12:17 soundnfury: The web page for that site... is unreadable. 15:12:18 Do I even want to know 15:12:32 -!- Taneb has joined. 15:12:33 http://mroman.ch/legit.html 15:12:35 ^- Like that. 15:13:17 Gregor: d'you mean github, or the linked jttlov.no-ip.org? 15:13:24 if the former, not my fault 15:13:28 soundnfury: The linked one. 15:13:33 soundnfury: The colors, man. The COLORS. 15:13:49 Hello 15:13:53 Why dark blue on black? WHYYY? 15:14:05 Lumpio-: because I haven't yet learned how to make X trigger a _proper_ terminal bell, so I'm using aplay :shameface: 15:14:21 hm. 15:14:26 D: 15:14:26 Gregor: If you mean the *colours*, it's light blue, not dark blue, text, ffs 15:14:29 It's YOU 15:14:52 soundnfury: That is not light blue. It is, at best, lukewarm blue. It is bad. 15:15:18 Gregor: I choose to not care 15:15:23 *shrugs* 15:15:28 *shrugs also* 15:17:01 I need a rotating gif. 15:20:30 a... much better. 15:49:58 Lumpio-: http://www.squidoo.com/under-construction-gif 15:51:41 oh dear @comments 15:52:54 -!- ais523 has quit (Read error: Connection reset by peer). 15:53:03 -!- ais523 has joined. 15:53:51 -!- calamari has left ("Leaving"). 15:58:17 -!- Vorpal has joined. 17:05:20 -!- Taneb has quit (Quit: Leaving). 17:14:33 i'm confused by leg/peg 17:15:05 why? 17:15:08 i don't know when semantic actions are performed when rules use quantifiers 17:15:09 like 17:15:38 x = y ('|' y)* 17:16:54 how am I supposed to build binary syntax tree from that 17:22:10 huh? 17:29:41 Maybe you should just rewrite it to use recursion instead. 17:30:07 (I don't know anything about peglegs.) 17:30:24 -!- AnotherTest has joined. 17:32:30 fizzie: I could... I just wanted to try the leg way 17:36:38 are there any esolangs where only symbols (not keywords) are used (similar to APL) 17:39:04 ... Brainfuck. 17:39:54 (And dozens of others) 17:41:32 Gregor: Sorry, should have been more specific. I meant a large set of symbols 17:42:12 that would include unicode symbols such as ∊, ∘, × or ↓ 17:43:51 so I think I should have said "are there any esolangs where mainly non-ASCII symbols (not keywords) are used (similar to APL)" 17:46:17 -!- Taneb has joined. 17:46:18 Hello 17:48:56 AnotherTest: SADOL 17:49:20 umm 17:49:23 no, not really 17:50:19 nooga: well it uses quite a lot of symbols but I think they are all ASCII(?) 17:50:27 yup 17:50:36 i didn't read the whole question 17:51:59 now 17:52:12 i need to fight with undocumented peg leg 17:54:02 -!- ogrom has quit (Quit: Left). 18:01:53 AnotherTest: I don't think there's any point writing such an esolang, because APL's already esoteric ;) 18:03:34 soundnfury: Perhaps that's true indeed ;) 18:03:56 tswett, did anything come of your brackets idea? 18:04:31 soundfury: well I don't think it was intention 18:05:44 I think APL is one of those languages where opinion differs on whether it fits in the "esoteric" category, since it was made and used for real purposes 18:06:02 It has been made esoteric by context? 18:06:28 A programming language written in Linear B would be pretty esoteric nowadays, regardless of its origin 18:06:37 oh, this is scary: http://en.wikipedia.org/wiki/APL_(programming_language)#Extensions 18:06:48 OOP, .NET, *ActiveX*, XML-array conversion primitives, all in APL :S 18:11:26 -!- calamari has joined. 18:11:33 -!- calamari has left. 18:20:19 what 18:20:21 ast.c:47:31: error: C does not support default arguments 18:20:25 -- clang 18:22:23 Well, isn't that just true? 18:24:40 Taneb: nope, not really. 18:25:01 fizzie: as far as I know C does support them (well normally) 18:25:12 AnotherTest: C++ does; C certainly doesn't. 18:25:32 Yeah, C doesn't support default arguments. 18:25:35 If by "default arguments" you mean the usual int foo(int x = 0) {...} kind of things. 18:25:35 Which is good because they're the devil. 18:25:37 I have no idea where you'd get the notion that it does. 18:25:49 Gregor: By compiling all your C code with a C++ compiler? :p 18:25:58 *vomit* 18:26:04 Really? Well probably I'm always using C++ 18:26:06 The C++ FAQ advocates that. :p 18:26:19 The C++ FAQ advocates a lot of bad ideas. 18:26:28 For instance: using C++. 18:26:38 Gregor: I like C++. 18:26:45 Gregor: The C++ FAQ advocates that? 18:26:52 AnotherTest: Well there's no accounting for taste *shrugs* 18:27:24 Gregor: I have some good reasons (well I think they are good). But I can see why people dislike the language too. 18:27:24 "BTW there is another way to handle this whole thing: compile all your code (even your C-style code) using a C++ compiler. That pretty much eliminates the need to mix C and C++, plus it will cause you to be more careful (and possibly —hopefully!— discover some bugs) in your C-style code. The down-side is that you'll need to update your C-style code in certain ways, basically because the ... 18:27:30 ... C++ compiler is more careful/picky than your C compiler. The point is that the effort required to clean up your C-style code may be less than the effort required to mix C and C++, and as a bonus you get cleaned up C-style code." (C++ FAQ) 18:27:52 lol 18:28:04 See, it'll even make things cleaner. 18:28:23 I have a bit of C tomfoolery I've been using for years, buffer.h. 18:28:27 It /does not compile/ with a C++ compiler. 18:28:32 I use it in virtually every project I write. 18:28:36 You should clean it up so that it does. 18:28:38 I am wholly satisfied with this situation. 18:28:46 You might find bugs. 18:28:51 You can't *just* compile C code with C++ 18:28:57 compilers 18:29:00 *duh* 18:30:41 tswett, :( 18:30:49 https://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B seems like there is a nice page if you want to make the change 18:31:34 !c int f(int c = 0) { return c; } int main(void) { return f(); } 18:31:35 Does not compile. 18:31:36 !cxx int f(int c = 0) { return c; } int main(void) { return f(); } 18:31:42 No output. 18:31:48 -!- pikhq has quit (Ping timeout: 248 seconds). 18:31:50 -!- pikhq_ has joined. 18:31:50 (A skientifik eksperiment.) 18:32:21 AnotherTest: In case it wasn't obvious, I am not only satisfied, but overjoyed to be writing code that does not work with C++ compilers. 18:32:51 !c int main() { int x; printf("%d\n", sizeof(x)); } 18:32:53 4 18:32:54 !cxx int main() { int x; printf("%d\n", sizeof(x)); } 18:32:58 Does not compile. 18:33:02 Bam. 18:33:25 Some time ago we had a discussion where we iterated different ways of making code that compiles on both but does different things. It had all the usual suspects, like character constant type differences etc. 18:33:28 Gregor: don't you miss the 1000 lines of error messages caused by a typo in a template name? 18:35:53 I kind of liked http://p.zem.fi/zdga even though it's one of the cheaty ways. 18:36:31 Gregor: Also shame on you for the above; should be %zu or (int)sizeof ... 18:36:57 fizzie: Yes yes it should, but that's not what I was demonstrating. Also your code is horrible and evil and you should feel bad. 18:42:02 Gregor: okay, I feel like there's a joke you're making that I'm not getting. 18:42:20 You said that buffer.h doesn't compile with a C++ compiler, and implied that it does compile with a C compiler. 18:42:34 I'm guessing that buffer.h uses some C tomfoolery that C++ doesn't support. Is that correct? 18:42:45 “Tomfoolery” 18:42:52 I demonstrated exactly the “tomfoolery” above. 18:44:07 tswett: You actually have to *work* to get C working in C++. 18:44:10 C tomfoolery would be the absence of strong type checking? :D 18:44:28 tswett: Merely implicit casts from void* don't work. 18:44:42 AnotherTest: If you think that C++ has strong type checking, you're an idiot. 18:44:43 And that comes up whenever you do memory allocation in idiomatic C. 18:45:27 !cxx int main() { int x; return printf("%zu\n", sizeof x) < 0 ? EXIT_FAILURE : EXIT_SUCCESS; } 18:45:30 It merely lacks the biggest hole in C's weak typing. 18:45:31 Does not compile. 18:45:43 Gregor: And not even. 18:45:47 Gregor: some statement that is 18:45:56 void* casts are still perfectly feasible in C++. 18:46:01 They're just *explicit*. 18:46:26 Having explicit casts does not mean you don't have strong type checking 18:46:28 You simply need to say "Yes, I mean to abuse the weak typing". 18:46:50 Having explicit casts does not mean you don't have strong type checking // having explicit or implicit casts which may succeed when the true type is not as specified is by definition lacking strong typing. 18:47:13 AnotherTest: There's no type checking on the casts is the thing! 18:47:28 the programmer just decides to not use strong checking by casting 18:47:33 If you're arguing that C++ without casts is strongly typed, that may (or may not) be the case, but is rather boring. 18:47:46 Also it's not since no array bounds checking *shrugs* 18:47:47 but the language still offers it(although it can be chosen not to use it) 18:47:56 in C, there is no strong checking by default 18:48:03 Gregor: C++ still has implicit casts. 18:48:11 Gregor: Just significantly fewer. 18:48:23 pikhq_: I thought it only had typesafe implicit casts though? 18:48:30 And no implicit pointer casts whatsoever 18:48:34 Erm 18:48:38 Except between related classes of course 18:49:24 Gregor: Eh, probably. ... Except that the type promotion from float to double might give you unwanted excess precision. 18:49:42 (mind you, you get the same damned problem just using x87 floats.) 18:49:42 Gregor: Bjarne Stroustrup at least claims he added strong checking, does that make him an idiot? 18:49:47 pikhq_: That seems unrelated to type safety, to me. 18:49:54 Gregor: Meh, probably. 18:50:10 AnotherTest: Big name implied big thing, is big name an idiot? 18:50:21 Gregor: Base *p; Subclass *q = dynamic_cast(p); will check the type for you during the cast, if you like. 18:50:47 fizzie: At no point did I make the claim that safe casts don't exist >_> 18:50:55 AnotherTest: Have you played with Haskell before? 18:50:56 Although they do have the ugliest cast syntax conceivable :) 18:51:15 (or an ML-variant?) 18:51:28 AnotherTest: *That* is static strong types. 18:51:30 pkhq_: I intend on doing so. I regret to say I have not yet really looked into it well. 18:52:20 Well C++ has at least *some* static type checking 18:52:31 So does C. 18:52:37 s/static/strong static 18:52:57 C has less for sure 18:53:13 -!- calamari has joined. 18:53:15 And both are fairly low on the scale in an absolute sense. 18:53:15 I don't know if it's meaningful for a language to have “some” strong typing. 18:53:43 Gregor: it probably is; something is better then nothing in this case I think 18:53:47 Gregor: Well, you can consider typing to be a continuüm between weak and strong. 18:53:48 *than 18:54:07 -!- calamari has left. 18:54:14 pikhq_: I challenge you to find a single English word in which “uu” is a diaeresis. 18:54:19 If you do this, then C and C++ aren't absolutely at the weak end, but aren't *that* far fron there anyways. 18:54:20 Erm 18:54:23 Sory, is /not/. 18:54:28 X_X 18:54:30 *Sorry 18:55:03 Gregor: Anything with double-u. Which in historical writing was literally written "uu" or "vv". :) 18:55:11 pikhq_: Pff. Cheating. 18:55:20 UUhat do you mean, cheating? :P 18:55:40 Anyways, "muumuu". 18:55:59 "uuhat", or "uû" as it is often written. 18:56:11 "vacuum", in at least US dialects. 18:56:16 Good point. 18:56:19 Uû do you mean it's not written like that? 18:56:26 Deewiant: Good'n! 18:56:27 "Vacuum" is definitely not a diaeresis in US English. 18:56:31 pikhq_: I accept your diaeresis. 18:56:36 Gregor: \o/ 18:56:37 | 18:56:37 /´\ 18:56:38 (Mark) 18:56:55 C++ removes one gap in C's typing (others too, maybe?), and adds a new type hierarchy which is itself, without explicit casts, strongly typed. To me, arguing that it's “more” strongly typed based solely on the grounds that its completely new additions are themselves “more” strongly typed seems odd, particularly since we came to this discussion via compiling C code in C++, so would not be writing idiomatic C++ anyway. 18:57:19 And would be having to move away from idiomatic C to do that as well. 18:57:29 -!- edwardk has joined. 18:57:51 (using implicit void* casts is *very* idiomatic C) 18:58:24 Gregor: adding a strong type check for any language feature could be seen as an addition to the language (is one), so I'm not sure if your point is valid 18:59:35 AnotherTest: Eh, you're still dealing with a language where char* can alias any other pointer. :) 18:59:50 And no array bounds checking, and ALL POINTERS ARE ARRAYS. 19:00:04 But as to porting C to C++: It's probably not worth it 19:00:05 SomeObjectType *foo = new SomeObjectType; foo[-1].lol 19:00:24 std::vector 19:00:26 yay! 19:00:37 std::string 19:00:38 yay! 19:00:42 NULL[foo].lol 19:01:03 pikhq_: I /think/ that would need a cast as NULL is the wrong type ;) 19:01:22 Gregor: Kay, fine. ((uintptr_t)NULL)[foo] 19:01:29 You can always circumvent static checks(delete nullptr; all day long) 19:01:31 Mucho better. 19:01:41 Well maybe not always, but most of the time 19:01:55 Or just 0[foo]. 19:02:15 AnotherTest: If you'd like to play the “define all holes as circumvention” game, we can do that just as easily with C. 19:02:43 And you'd still be dealing in a language where a char* aliases all pointers. 19:02:49 Well, can alias. 19:03:12 Gregor: my_function(1, 2, 3); /* but wants 4 args */ 19:03:42 I wouldn't call that circumvention, it's just human error not found by the compiler 19:03:51 AnotherTest: That's illegal with a complete prototype in C, and legal with varargs in either. 19:04:15 (*(void(*)(int,int,int))myfunction)(1,2,3); // Suck it. 19:04:32 :P 19:04:48 No, I'm seriously trying to figure out wtf AnotherTest is trying to demonstrate here... JavaScript has that flaw, C does not. 19:04:51 Regarding std::vector, I think it's kinda funny that C++ goes and makes "void f(const char* const* p); ... char **q; f(q);" legal, but then when you feel your conscience and want to make that a vector, it's no longer possible, since std::vector certainly can't go to a function expecting const std::vector. 19:05:30 pikhq_, are there any good reason for Tcl arrays to not be first-class? 19:05:34 edwardk, the sudden change in comonad seemed very sudden 19:05:43 fizzie: Yeah. Templates are weird. 19:06:01 Sgeo_: Yes: Tcl "arrays" are nothing more than variables with a certain class of names. 19:06:14 Sgeo_: They just happen to have a more convenient implementation behind the scenes. 19:06:55 Sgeo_: In *principle*, Tcl could be implemented without them actually existing. The array proc would just have to do more work. 19:07:35 Sgeo_: Also, beware that they're poorly named. 19:07:37 pikhq_, but why have these non-first-class things with no built-in first-class alternative until 8.5? 19:07:50 Sgeo_: Tcl arrays are hash tables. 19:08:12 Erm, hash maps. 19:08:58 Sgeo_: Because they're not even there at all. That they're hash maps rather than just variables of name in the form foo(bar) is an implementation detail. 19:10:14 pikhq_, what did people do before 8.5 in places where someone would use a dictionary? 19:10:37 Gregor: http://ideone.com/d7Dv3 19:11:20 Use variables of form foo(bar)? 19:11:31 Sgeo_: Also, keep in mind, strictly speaking dicts don't exist either. 19:11:56 Sgeo_: That they are hash tables rather than strings of a particular form is an implementation detail. 19:11:57 -!- oerjan has joined. 19:12:24 AnotherTest: "That's illegal WITH A COMPLETE PROTOTYPE in C". The particular example you gave (expects 4) doesn't fit your rather unlikely pattern at all. 19:13:10 Gregor: many code has been written like that I believe 19:13:15 Sgeo_: Everything in Tcl is a string. Some commands happen to treat strings in a particular way. The Tcl implementation stores strings in a format more convenient for those commands as an implementation detail. 19:13:45 -!- calamari has joined. 19:13:45 and writing void as arguments doesn't seem logic 19:13:50 -!- calamari has left. 19:13:57 (maybe because the creator of C++ invented that) 19:14:08 Sgeo_: Even friggin' *numbers* aren't really first-class in Tcl. They're just strings containing digits. 19:14:34 -!- AnotherTest has quit (Quit: Leaving.). 19:14:39 That's all well and good, but I can 19:14:47 I can't pass an array to a proc the way I can pass a dict 19:14:56 AnotherTest: The example you showed only has issues because a zero-argument function written as "()" in C is, for historical/hysterical reasons, variadic. It ONLY causes an issue if: 1) You are actually calling incorrectly-written zero-parameter functions this way, which is not a type safety issue, 2) you have written your prototypes incorrectly, or 3) you are calling functions without prototypes, which is a warning by default in every modern C compiler. 19:15:08 -!- augur_ has quit (Read error: Connection reset by peer). 19:15:10 Sgeo_: [array get foo] 19:15:24 -!- augur has joined. 19:15:42 The (2) case is only harmful in the case where you've written your prototypes as variadic even though your functions take multiple arguments, which is enormously unlikely. 19:15:43 Taneb: sorry bout that. you mean the major version jump? 19:15:49 Yeah 19:15:58 I'm not complaining, it just seemed to come out of nowhere? 19:16:32 Sgeo_: Or, pass the name of the array and the proc peeks up the stack using upvar. 19:16:41 brb 19:16:52 pikhq_, are arrays and dicts identical in terms of their string ..... I don't want to say "representation", although that word works for arrays 19:16:52 AnotherTest: However, I am inclined to agree with you that this is a second C hole that C++ plugged. This sort of “implicit” variadicity should never have existed. 19:16:55 Oh, he's gone ... 19:17:02 Sgeo_: It is "string representation". 19:17:12 Sgeo_: And, yes, they are the same string representation. 19:18:42 pikhq_, do you have opinions of the various OO libraries? 19:18:48 I read a blog post praising Snit 19:18:51 Kinda like Snit. 19:19:02 Apparently Tcl 8.6's OO is based on XOTcl 19:19:26 Yeah, but you're probably going to pretend it doesn't exist. 19:19:30 ? 19:19:47 Tcl 8.6 OO is intended for use as a more efficient backend of the various OO libraries. 19:19:54 Ah 19:19:57 It is Pain to use straight. 19:20:29 Why would it be a pain to use straight if it's XOTcl-inspired? Missing a few XOTcl features, but is XOTcl a pain? 19:22:21 Think "using Gobjects straight"-ish. 19:22:56 -!- augur has quit (Read error: Connection reset by peer). 19:23:24 -!- augur has joined. 19:23:41 Never touched GObjects 19:24:39 Is something like this morally acceptable, or is there a better command: 19:24:51 dict create {*}{a 5 b 6 d 7} 19:25:09 Say, if the dictionary will have a lot of items and I want to space things out on multiple lines 19:26:18 Couldn't you just do set foo {a 5 b 7 d 7} ? 19:27:41 Are there any efficiency reasons not to? 19:28:11 Uh, not really. Behind the scenes it'll get converted to a dict internally as soon as you use it as one. 19:28:22 Making it essentially the same cost as that dict create call. 19:28:37 Ah\ 19:28:47 Back 19:32:08 pikhq_, why does the Tcl community love Metakit so much, and why aren't there Metakit bindings into languages other than Python Tcl and I forget the third? 19:33:26 Sgeo_: It's friggin' handy being able to stick a Tcl app into a single binary. 19:33:53 SQLite couldn't have been used for the purpose? 19:34:11 I suppose it could have been. 19:34:18 -!- calamari has joined. 19:34:47 I think the Tcl app in a single binary thing is one of the things drawing me to Tcl actually 19:35:22 Also means you get to be bitter at Java in a bit... 19:35:31 ? 19:36:25 For a while, Sun was promoting Tcl as a write-once run-everywhere language. 19:36:28 They dropped it for Java. 19:36:52 -!- nooga has quit (Ping timeout: 248 seconds). 19:37:02 Ah 19:37:54 Hm, modern Fythe has no binary format, for no good reason. 19:38:16 Is it cheating for a binary format to involve zlib? 19:38:40 why would it be cheating? 19:39:00 Because it's a way to hide the fact that my binary format is a text format ^_< 19:39:12 Because it's actually work to implement DEFLATE? :P 19:39:36 xor with 64 or 96 and it will look like binary gobbledygook, probably 19:39:47 lol 19:40:01 The only sensible portable format for Fythe is s-expressions. 19:40:17 Speaking of, *god dammit why is my CRC32 off*. 19:40:33 I was hoping for "The only sensible portable format for Fythe is gobbledygook" 19:40:40 lol 19:40:45 "Tcllib has an approximatley yearly release schedule. Version 1.10 has been released September 12, 2007." 19:41:22 http://sprunge.us/SCTK Everything works except that sometimes the CRC-32 is wrong. 19:41:35 *But only sometimes*. 19:41:35 :( 19:41:40 Actually, with a system like Fythe, what I really need is a portable “VM image” format. 19:43:23 So, it occurs to me that I need to send doubles over a network. 19:43:48 Now, before we start, a file written in C can perfectly well link with C++ libraries, right? 19:44:05 of course, but will it work? you can never know 19:44:09 xor each character with the result of the last character after it was xor'ed? 19:44:13 Right, right. 19:44:34 tswett: Yes, just have appropriate use of extern "C" in the header files.. 19:45:03 Oh, good. Let me just rewrite all hundred or so header files to use that. 19:45:05 Okay, done. 19:45:12 I haven't figured out if you're supposed to be able to rely on that (is anything about combining C and C++ actually defined by the standard?), but in practice it's fine 19:45:23 ... provided you have extern "C" where appropriate 19:45:27 olsner: what else would extern "C" be for? 19:45:30 olsner: Yes, extern "C" is part of the spec. 19:45:41 tswett: invoking undefined behavior or something? 19:45:51 Besides, isn't pretty much every programming language ever supposed to interact with C? 19:45:52 It's functionally a light-weight FFI. 19:46:47 Anyway, sending doubles over a network. Can I just cast a double* to a void* and read eight bytes? 19:47:24 Would Snit need to exist if there was one Tcl OO system from the start? 19:47:33 you can definitely read sizeof(double) bytes, but I don't know how strictly defined the internal representation of double is 19:47:42 Because one of the key ideas seems to be treating any object from any object system as an object 19:48:03 If there was one Tcl OO system, there wouldn't be competing systems to treat identically 19:48:04 I hope that "double" never means anything other than a double-precision floating-point. 19:48:54 I mean, if I treat a double as bytes on one system, and then treat those same bytes as a double on a *different* system, am I guaranteed to have the same double each time, or not? 19:50:57 http://stackoverflow.com/questions/2701529/recording-reading-c-doubles-in-the-ieee-754-interchange-format suggests you cannot assume that 19:57:07 -!- nooga has joined. 19:57:25 why does lightly touching a "dead" pixel on a TFT sometimes fix the issue? I had a red subpixel stuck in the on-state today, and touching it gently (through a microfibre cloth) fixed the issue. Wikipedia mentions that it can sometimes fix the issue but doesn't give any explanation why that is. 19:57:25 Vorpal: You have 1 new message. '/msg lambdabot @messages' to read it. 19:57:32 @messages 19:57:32 nortti said 1d 5h 30m 51s ago: in case you missed these two 17:21 < nortti> Vorpal: complete distro userland rebuild (including strace) takes around 3 minutes on my 700MHz Pentium III 17:24 < nortti> 19:57:32 Vorpal: also one reason why I am using sash is because it provides most of the functionality missing from toybox (like cp :P) 19:58:58 nortti, speaking of cp, that is like one thing that annoyed me on Android. I had to install busybox using cat to copy it from the sdcard 19:59:10 :P 19:59:26 yeah. why is implementing cp so hard? 20:00:08 (which is not actually an sdcard, just a very weird fuse mapping of a directory in the internal flash memory that mangles permissions to look behave kind of like vfat. 20:00:22 s/look// 20:00:37 (note to self: proof read /after/ editing) 20:01:35 speaking of that, why is the MTP behaviour in ubuntu so erratic. 20:01:56 it worked for a while out of box, and now it doesn't. 20:04:44 -!- edwardk has quit (Ping timeout: 248 seconds). 20:06:50 -!- pikhq_ has quit (Ping timeout: 246 seconds). 20:06:55 -!- pikhq has joined. 20:08:03 tswett: You are *not* guaranteed that at all. 20:08:19 tswett: A "double" can be any sort of floating point number. 20:08:34 As can a float or a long double. 20:09:56 tswett: Besides which, you couldn't assume that *even if* you knew doubles where always IEEE 754 double-precision floats. 20:10:01 tswett: Endianness! 20:11:18 To be portable you either need to deal in the string representation, or encode into the interchange format manually. 20:12:24 pikhq, C? 20:12:31 Vorpal: Yes. 20:12:34 if so iirc there are some defines from C99 and onwards 20:12:41 that tell you if it is IEEE or not 20:13:33 Vorpal: Yes, you can tell *if* it's IEEE floats or not. You still have to handle endianness. 20:13:39 pikhq, autoconf 20:13:44 (or similar) 20:13:53 -!- myndzi has quit (Ping timeout: 245 seconds). 20:14:17 Vorpal: Wrong answer! 20:14:25 pikhq, oh? 20:14:49 Vorpal: It feels very stupid and wrong to go #if BIG_ENDIAN swap_bytes(); #endif 20:15:07 don't forget #elsif defined(PDP_ENDIAN) 20:15:31 When what you're actually *doing* is just serialization to a known format. 20:15:46 If your code *cares* about the system's endianness you're doing it wrong. 20:16:38 pikhq, anyway you could just do #ifdef BIG_EDIAN\n#define htond ... 20:16:57 since htonl/htons and so on are essentially that, only defined by the system 20:17:42 Vorpal: Or you could be sane and just do char *serialised_foo = {foo, foo >> 8, foo >> 16, foo >> 24} 20:17:43 Vorpal: knowing about endianness is wrong 20:18:06 -!- myndzi has joined. 20:18:06 (note: only works if foo is unsigned.) 20:18:19 writing portable formats in the sane way will not require having any clue what format you're starting with 20:18:22 olsner, well, the system doesn't provide a hton*/ntoh* set of calls for floating point, which would be really useful 20:18:22 (and uint32_t) 20:18:43 Vorpal: Or you could be sane and just do char *serialised_foo = {foo, foo >> 8, foo >> 16, foo >> 24} <-- foo was a floating point no? 20:18:53 hm 20:19:02 you serialise a floating point to a fixed point number? 20:19:18 oh wait 20:19:31 what does >> do on a double? 20:19:46 -!- pikhq_ has joined. 20:19:59 pikhq, is it fair to say that it's impossible to have an object capability system in Tcl because any unique object could be brute-forced? 20:20:13 -!- edwardk has joined. 20:20:15 Sgeo_: Seems so. 20:20:16 Vorpal: I think you shouldn't do that 20:20:26 olsner, you mean what pikhq_ suggested? 20:20:33 pikhq_, that's kind of sad 20:20:39 olsner, or what I suggested? 20:20:45 Vorpal: I was suggesting that on a uint32_t. 20:20:47 Vorpal: do >> on a double 20:20:56 pikhq_, doesn't solve it if you have a double 20:21:03 Although I am more alarmed by the impossibility of code-walking 20:21:05 Vorpal: The correct serialization on a double is more complex. 20:21:16 pikhq_, I thought that was the topic though 20:21:21 Vorpal: solutions for uint32_t are not generally applicable on doubles 20:21:32 pikhq_, anyway for uint32_t you just use htonl/ntohl 20:21:35 If you want it in IEEE 754 exchange format, you will need to actually compute what the double is in that format. 20:21:57 uint32_t ntohl(uint32_t netlong); 20:22:04 Vorpal: *No you don't*, you pretend those stupid god-damned functions don't exist, byte-swapping is *the wrong solution*. 20:22:04 according to my man page 20:22:22 Vorpal: What you do is serialize things in the format you want. 20:22:24 And that's all. 20:22:28 pikhq_, so how do you work with *nix sockets? 20:22:35 -!- pikhq has quit (Ping timeout: 246 seconds). 20:22:37 iirc several of those calls require those functions 20:22:52 Vorpal: You call it a god-damned retarded API, and deal. 20:22:53 pikhq_, is there a reason tcllib has two different OO libraries? 20:22:59 right 20:23:01 just pretend that htonl are not endian-related but are "silly things you call to work with unix sockets" 20:23:08 Vorpal: Otherwise, you serialize things in the format you want. 20:23:21 -!- stanley has quit (Read error: Operation timed out). 20:24:22 Sgeo_: If it's a pure Tcl library, it can go in Tcllib. There's not much vetting for redundancy. 20:24:43 why exactly are those functions silly though? Silly to use with the socket API yes (would be more sensible if it used native endian and converted internally). But not silly in general 20:25:44 Vorpal: Because they're up there with casting pointers to and from int in correctness. 20:26:05 It occurs to me that Tequila would be a very very good thing for use in implementing Network Headache 20:26:16 Vorpal: You are not trying to convert from host byte order to network byte order, you are merely serializing data. 20:26:26 pikhq_, there is a difference though, POSIX specifies hton*/ntoh*, but casting pointers is very clearly undefined. 20:26:30 Vorpal: So god-damned serialize the data. 20:26:54 pikhq_, I'm now wondering if I should implement Network Headache 20:27:00 but sure, you have a point in that serialising data is a different task 20:27:08 -!- stanley has joined. 20:27:08 -!- stanley has quit (Changing host). 20:27:08 -!- stanley has joined. 20:27:14 Sgeo_, new esolang? 20:27:25 Vorpal, old one 20:27:26 http://esolangs.org/wiki/Network_Headache 20:27:28 ah 20:27:39 ....oh, hmm 20:28:14 Especially because hton*/ntoh* only helps you in the case when you're trying to bludgeon uint32_ts and uint16_ts into big-endian format anyways. 20:28:19 Well, there's already an implementiation in Pythonm 20:28:34 i.e. they don't even solve the problem. 20:29:01 that would require always connected. Reminds me of certain forms of DRM 20:29:13 (the page that Sgeo_ linked that is) 20:29:17 I think a lot of programmers share the incorrect view on this (byteswapping and endian-#ifdeffing vs serialization), I wonder if there's a succinct description somewhere on why they're doing it wrong 20:29:33 pikhq_, btw for serialising, what about singed integers? 20:29:56 you could have issues there (2-complement, 1-complement, sign bit) 20:30:02 Vorpal: *Clearly* you'll need to write them out in the format you want. 20:30:16 sing them backwards until they have been unsung 20:30:30 Vorpal: If you want 2s complement, you'll need to stick the absolute value in an unsigned number, bitwise not, and add 1. 20:30:40 pikhq_, and using text files is even worse. What if you move the file to an EBCDIC machine (from an ASCII machine) 20:30:45 It's either that or assume you're dealing with numbers of known representation. 20:31:07 Vorpal: Nah, assume UTF-8. Anything else is broken in profound ways. 20:31:44 isn't the conversion to unsigned defined to work the same way as "reinterpreting the bits as 2's complement" would? 20:31:45 pikhq_, the reality however is that one of the most popular operating systems use UTF-16. Which is indeed broken (BOM urgh) 20:31:51 olsner: Is it? 20:31:56 in fact the most popular OS 20:32:16 iirc, it's "add 2^n until the value is in range of the unsigned type" 20:32:23 Vorpal: Yes, Windows is a maximally broken platform. 20:32:23 where n is the number of bits in the type 20:32:50 Vorpal: You cannot write compliant C that handles all filenames on the platform currently. 20:33:01 olsner: Okay, then. 20:33:15 So, just cast to unsigned and you've got it in 2's complement. 20:33:28 indeed 20:33:36 I remember thinking "oh, how clever of them to avoid invoking 2's complement in this definition" 20:33:39 Well, that makes *that* easier. 20:34:02 pikhq_, actually couldn't you use the posix layer on windows 20:34:17 I wonder what that does wrt UTF-8/UTF-16 20:34:26 probably something completely broken 20:34:46 -!- pikhq has joined. 20:34:48 perhaps it converts to ASCII replacing all characters above 0x7f with ? 20:37:21 Vorpal: I'm pretty sure that just hands you the UTF-8 file names. 20:37:36 Vorpal: Windows filesystems post-LFN deal in Unicode natively. 20:37:42 hm 20:37:48 LFN? 20:37:52 -!- pikhq_ has quit (Ping timeout: 252 seconds). 20:37:52 Long file names. 20:39:23 That legacy encodings are the *only* supported encodings for char strings on Win32 is just a stupid, stupid design decision that they *work* to maintain. 20:40:24 how does NTFS store strings internally? 20:40:31 of the filenames I mean 20:40:31 Pretty sure UTF-16. 20:40:46 Just like FAT LFNs. 20:40:51 hm 20:41:20 -!- rapido has joined. 20:44:10 pikhq, when you think about it, UTF8 is pretty crazy too 20:44:20 anyone fond of prolog unification? 20:44:35 Vorpal: How so? 20:44:53 unification is more generic than pattern matching 20:44:55 Vorpal: Keeping in mind that all Unicode transformation formats are inherently variable-width. 20:45:21 pikhq, it is basically a compression scheme for UCS4, specialized to favour western texts 20:45:38 using UCS4 and gzip/deflate/etc where needed would make more sense 20:45:54 Well, yes. Except that that's not the design goal. 20:46:25 The design goal is not to break everything which assumes a string is composed of series of bytes. 20:47:08 Making it so that Unicode 'just works' on nearly everything. 20:47:18 indeed. Backward compatibility often (not always!) result in crazy and/or bad designs though 20:47:20 Except when a *certain* OS vendor actively works to break it. 20:49:19 -!- calamari has left ("Leaving"). 20:49:26 -!- nortti_ has joined. 20:49:51 pikhq, not considering backward compatibility however, UTF-8 (and all other variable-width encodings) are however stupid. 20:50:04 in fact there is a lot of stupidity in unicode in general from that perspective 20:50:21 there are actual unicode-specific compression schemes 20:50:24 more complicated than utf-8 20:50:34 why do you consider variable width encodings to be stupid? 20:50:42 clearly some characters occur more often than others 20:50:51 BMP characters occur vastly more often than non-BMP characters 20:51:12 Vorpal: Dude, Unicode could be *much* clearer if we went more variable-width on it. 20:51:22 There's no sense in all the precomposed hangul jamo. 20:52:08 Heck, in principle hanzi could all be a bunch of radicals. (admittedly, this'd make it hard to *render*. But, a couple hundred entries and it'd be Complete.) 20:52:38 clearly some characters occur more often than others <-- varies between languages 20:52:46 sure, some are rare in all languages 20:53:07 But getting rid of the precomposed hangul jamo would be quite beneficial and an easy change. 20:53:19 (given that a system already has to deal with jamo composition) 20:53:36 Vorpal: everything outside the BMP is extremely rare in all extant languages 20:53:41 but as long as we make the minimum size 8 bits we will have to favour some languages 20:53:57 kmc, sure, but all of BMP doesn't fit in a byte 20:54:00 yeah 20:54:07 so what 20:54:45 Vorpal: But the 7 bit range of Unicode is profoundly common in real-world data. Even in languages that don't use them at all. 20:55:03 (courtesy of nearly all text exchange formats being English-based) 20:55:34 also it wasn't those bits of stupidity I was referring to in specific for the crazy bits of unicode. I was thinking about stuff like double-width letters having separate code points, or the blackboard bold math chars 20:55:40 both of those are formatting 20:55:51 which doesn't really belong in unicode 20:56:06 Yes, those are kinda ludicrous. 20:56:20 There for backwards-compat reasons. 20:56:32 and the zero width space? I guess there must be some use case for it, but I can't think of one. 20:56:49 It's necessary for some languages. 20:56:57 in what way? 20:57:20 Oh, sorry, that's zero-width non-joiner... 20:58:03 Vorpal: Basically to indicate that a ligature is inappropriate. 20:58:10 -!- rapido has quit (Quit: rapido). 20:58:13 you can't see a zero width space when written on paper (which all current scripts were intended for, or papyrus, or clay tablets and so on), so how could it change anything semantically 20:58:43 pikhq, isn't zero width space separate from zero-width non-joiner though? 20:58:49 Yes, they are. 20:58:56 The zero-width non-joiner is semantics. 20:58:59 so what is the point of the zero width space 20:59:24 The zero-width space is... Typesetting? 20:59:34 which should indeed not be part of unicode. 20:59:38 Yeah, doesn't really belong in Unicode. 20:59:49 Unless we're going to expand the scope of it profoundly. 20:59:54 (which I'd call ludicrous 20:59:55 ) 21:00:26 exactly 21:01:03 also the code point numbering is kind of weird. I seem to remember there are several separate blocks with math related symbols 21:01:12 why 21:01:55 -!- Taneb has quit (Quit: Leaving). 21:02:26 apart from ASCII, is there anything else that the unicode codepoints are actually compatible with? 21:02:39 latin1? 21:02:56 olsner, doesn't åäö map differently between latin1 and unicode iirc? 21:03:01 No. 21:03:03 or is that just with UTF-8? 21:03:20 The second block is directly ISO-8859-1. 21:03:29 Their UTF-8 expansions are two-byte, of course. 21:03:30 UTF-8 encodes them differently, but the low 8 bits of Unicode are ISO-8859-1. 21:03:30 obviously, utf-8 will result in different sequences of bytes, but the numbering of the codepoints match latin-1 21:03:39 The Unicode CODEPOINTS are latin1 compatible, but there is no useful Unicode ENCODING that is. 21:03:43 everyone the same thing at once! 21:03:47 YES 21:04:07 pikhq, ah 21:04:18 Zero-width no-break space (i.e. the same character as the BOM) has the excuse of having same semantics as zero-width word joiner but existing before that was added; the zero-width space (that is used for marking word break opportunities in scripts with no visible word spacing) is quite typographical, though. 21:04:39 Gregor, there is always UCS1 ;) 21:04:39 You can convert ISO-8859-1 to UTF-16 just by adding NULL. :) 21:04:48 Vorpal: Good one. :) 21:04:52 Vorpal: “useful” 21:05:27 Gregor, it is highly useful. It offers perfect interoperability with a large group of legacy systems! 21:05:38 You can also (obviously) convert back from UTF-16 to ISO-8859-1 by dropping every other byte, and barfing if the dropped byte's not zero. 21:05:44 UCS1? 21:06:08 nortti_: 1-byte encoding of Unicode. 21:06:16 really? 21:06:18 -!- nothing has joined. 21:06:19 nortti_: don't listen to Vorpal :) 21:06:27 nortti_: Formed by analogy with UCS-2 and UCS-4. 21:06:34 And UCS-16. 21:06:43 -!- nothing has changed nick to Guest33002. 21:06:51 `welcome Guest33002 21:06:54 It has the advantage where one codepoint fits neatly in a SSE register. 21:06:55 fizzie, that would be one crazy encoding 21:06:59 Guest33002: 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.) 21:06:59 * Guest33002 waves 21:07:18 * Guest33002 will need to remember how to use IRC -- It's been a little while. 21:07:20 UCS-16 allows a full GUID per character 21:07:23 UCS-0.5. 4 bits per codepoint. Need letters? TOO BAD. 21:07:30 :P 21:07:36 what about baudot 21:07:51 fizzie, UCS32 would work well with AVX 21:08:14 kmc: it was 5bit 21:08:20 Vorpal: Yes, though people might accidentally confuse UCS-16 and UCS-32 with UCS-2 and UCS-4, assuming that the numbers are referring to bits. 21:08:46 fizzie, and then there is the small matter of it covering a superset of unicode 21:09:11 UTF-2 21:09:13 should be possible 21:09:18 Vorpal: Also, UCS-4096 has the advantage that each codepoint handily matches the page size of many architectures, so you can deal with them in memory easily. 21:09:40 :P 21:09:49 olsner: Almost, it wouldn't really be “UTF” though, in that it wouldn't fit the patterns of the other. 21:09:50 :-D 21:09:59 Vorpal: like with UCS-4, there is no problem if the encoding has plenty of extra space 21:10:02 anyway one issue with any variaible-width encoding is that strlen() is O(n) 21:10:05 olsner: But yeah, it should be possible to have a per-bit “there are more bits” bit. 21:10:37 Vorpal: and strlen is normally O(1)? 21:10:41 UTF-7 is quite different from UTF-8 anyway. 21:10:54 `addquote Also, UCS-4096 has the advantage that each codepoint handily matches the page size of many architectures, so you can deal with them in memory easily. 21:10:58 851) Also, UCS-4096 has the advantage that each codepoint handily matches the page size of many architectures, so you can deal with them in memory easily. 21:11:09 olsner, not in C no, but many languages store strings as (size,start*) 21:11:31 I guess you could add a length field to that, but it sounds annoying to implement correctly 21:11:42 Vorpal: Doesn't help indexing anyway. 21:12:00 Gregor, that too 21:12:06 You can do UTF-8 ropes just fine, though. 21:12:07 -!- Guest33002 has quit (Quit: Page closed). 21:12:27 if you're indexing strings of text you're probably doing it wrong anyway 21:13:05 Vorpal: Pssst, strlen() doesn't tell you anything useful except the number of chars taken by a string. 21:13:09 iirc erlang store strings as a linked list of integers (bignum on demand) with the unicode codepoints. Seems like a reasonable representation in the circumstances 21:13:15 Vorpal: It is literally *useless* if you want to render it. 21:13:20 Vorpal: Even if you are rendering ASCII. 21:13:49 pikhq, in C indeed. I meant a more general "string length" as is typically found in a high level language that doesn't assume fixed width chars 21:14:02 pikhq, also string length works fine with a monospace font 21:14:10 It remains useless if you want to render it. 21:14:10 -!- edwardk has quit (Ping timeout: 252 seconds). 21:14:13 (assuming no crazy double width letters) 21:14:16 (or similar) 21:14:32 "Assuming it's trivial, it's trivial!" 21:14:45 indeed! 21:15:28 pikhq, anyway character count is useful for other purposes. 21:15:35 Like? 21:16:07 pikhq, I had pieces of homework that had a max letter count. More often they had max word count sure, but I have seen both. 21:16:47 Hey, look, it's a niche use! 21:16:48 you used strlen to measure the size of your homework? 21:17:09 pikhq, and there are many comment fields on web pages and similar that limit how many letters you can type. Twitter is an obvious example, though there are a lot more 21:17:12 ... That you probably have to iterate through anyways, unless you consider space and punctuation to be "letters". 21:17:34 olsner, no, I obviously used the char count function in whatever editor I was using 21:17:42 iirc twitter counts codepoints 21:17:48 -!- edwardk has joined. 21:17:59 olsner, indeed, which means C strlen() would be bloody useless! 21:18:10 olsner: Nah, integers encoded with the UTF-8 encoding algorithm. 21:18:22 Vorpal: indeed, so why did you bring it up? 21:18:34 Vorpal: Anyways, what you're advocating is premature optimization. You're trying to optimize a use-case that *doesn't matter*. 21:19:27 Hardly anything actually cares how many individual glyphs there are, so it doesn't matter to try to give you a 1-to-1 mapping between glyphs and encoding units. 21:19:27 hmm, that's nice, did twitter forget to check the range of the utf-8 data you send them? 21:19:29 -!- edwardk has quit (Read error: Connection reset by peer). 21:19:33 pikhq, no what I'm advocating is using UCS4 internally because such a representation is simpler to work with. Less complex code than when dealing with variable-width encodings. 21:19:33 olsner: Yup! 21:19:51 Vorpal: Except that UCS-4 is a variable-width encoding. 21:20:13 pikhq, hm? Isn't it just 4-byte per code point? 21:20:17 Vorpal: A glyph is composed of 1 or more code points. 21:20:26 s/-/ /;s/byte/bytes/ 21:20:40 pikhq, hm true 21:20:42 fixed-size code points will not save you from the variable-width glyphs 21:20:58 or any of the other 3.7 million problems in text processing 21:21:21 And besides which, there is no sensible way you could *actually use* knowledge of being single-width. 21:22:20 If you just start indexing and munging strings, you're going to either be *parsing* it, in which case this doesn't matter at all, or you're doing some algorithm that doesn't care that you're passing it semantically meaningful text, or you're just fucking shit up. 21:22:26 pikhq, it would make indexing into the string a lot simpler (though multi-codepoint stuff breaks that indeed) 21:22:41 if you're indexing strings of text you're probably doing it wrong anyway 21:22:44 Except *you can't meaningfully index into the string*. 21:23:12 -!- edwardk has joined. 21:23:25 pikhq, for any specific reason apart from the multi-codepoint glyphs? 21:23:32 which does indeed mess the whole thing up 21:23:44 Vorpal: Let's index "Vorpal"[2]. What meaning does this operation have? 21:23:49 None. 21:23:53 Congrats, you got an o. 21:24:02 Erm, an r. 21:24:33 Now, what are you doing if you're doing this? 21:24:40 could be an o if there were shenanigans involved, but I think the example was about the case where there isn't even anything weird in there 21:24:41 pikhq, a user selecting the third letter of a nick displayed on screen in the IRC client network settings? 21:24:53 (for copying perhaps) 21:24:59 Vorpal: Oh, look, you're dealing in rendering. 21:25:07 good point 21:25:11 Congrats, the actual codepoint representation doesn't matter. 21:25:24 selecting by mouse? then you're selecting glyphs rendered in a font, etc 21:26:24 Basically the only way having a single-width encoding helps you is if you also make the assumption that you're dealing in monospace text. 21:26:25 olsner, who said mouse? There are plenty of different ways to select. Shift-arrow key for example. Or touch screen. 21:26:35 selecting by keyboard? you'd be iterating glyphs according to some rule about what a glyph is (though a stupid implementation could just let you select code points ignoring everything fiddly) 21:26:49 Which *isn't generally valid*. 21:28:06 pikhq, on my screen atm the only text that isn't monospace belongs to the gnome 2 panels at the top and the bottom 21:28:13 oh and the title bar 21:28:38 And your terminal borks horribly on non-Western text, no doubt. :) 21:29:01 I'd type a + combining diaeresis just to get some two-codepoint single-glyph content in there, but don't quite know how on this Windows thing. 21:29:22 pikhq, gnome-terminal with Dejavu Sans Mono. No idea how that will behave in such cases. 21:29:40 Vorpal: "Strangely". 21:29:44 it might very well turn out to not actually be monospace 21:29:53 There's no sensible monospace rendering of a large number of languages. 21:29:55 I don't have problems on xfce's terminal 21:30:00 pikhq, for some stuff certainly. 21:30:03 Which is probably the same as gnome-terminal 21:30:19 Vorpal: Like Arabic script. 21:30:23 Lumpio-, pretty similar yeah. I use xfce on my desktop 21:30:32 I mean it's both gnome-vte AFAIK 21:30:35 Or whatever it was called 21:30:51 And I have no problems with Japanese text on Irssi or bash. 21:30:54 Or vim for that matter 21:31:05 Text rendering is hard. Anything that people think makes it easier is just them breaking shit. 21:31:11 I assume it will break on those horrible wide chars thingy, which IMO should not even exist in unicode (as I mentioned earlier) 21:31:21 Badly implemented fancy ncurses-esque UIs can break with funny characters though. 21:31:35 Vorpal: Actually, terminals handle wide chars. 21:31:40 How are wide chars horrible 21:31:52 Vorpal: They generally make the weird assumption that chars come in single and double width. 21:32:01 i bet half the people here can’t see this 21:32:07 with their retro terminals 21:32:23 pikhq, heh 21:32:23 Vorpal: In legacy CJK encodings, a "single width" character was 1 byte, and a "double width" one was 2 bytes. 21:32:44 Which encodings exactly 21:32:54 I'm pretty sure byte width had nothing to do with visual width even in the old encodings 21:32:57 `WELCOME Vorpal 21:33:01 ​VORPAL: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS 21:33:07 oh dear 21:33:08 ouch 21:33:08 Lumpio-: Did on DOS. :) 21:33:11 Serioously? 21:33:14 fizzie: what *is* that? 21:33:23 olsner: a welcome message? 21:33:24 olsner: Double-wide welcome. 21:33:33 pikhq: ok, can't say I ever used such ancient tech with CJK languages 21:34:04 but in which encoding? I just get mojibake 21:34:10 ​VORPAL: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LAï 21:34:10 ¼®ï¼§ï¼µï¼¡ï¼§ï¼¥ã€€ï¼€ï¼¥ï¼³ï¼©ï¼§ï¼®ã€€ï¼¡ï¼®ï¼€ã€€ï¼€ï¼¥ï¼°ï¼¬ï¼¯ï¼¹ï¼­ï¼¥ï¼®ï¼´ï¼ã€€ï¼¦ï¼¯ï¼²ã€€ï¼­ï¼¯ï¼²ï¼¥ã€€ï¼©ï¼®ï¼¦ï¼¯ï¼²ï¼­ï¼¡ï¼´ï¼©ï¼¯ï¼®ï¼Œã€€ï¼£ï¼¨ï¼¥ï¼£ï¼«ã€€ï¼¯ï¼µï¼´ã€€ï¼¯ï¼µï¼²ã€€ï¼·ï¼©ï¼« 21:34:13 ï¼©ï¼šã€€ï¼¨ï¼´ï¼´ï¼°ï¼šï¼ï¼ï¼¥ï¼³ï¼¯ï¼¬ï¼¡ï¼®ï¼§ï¼ 21:34:13 UTF-8, I presume. 21:34:15 olsner: UTF-8. 21:34:15 I can see it fine. I'm pretty sure gtk is doing the "oops, lets get the letter from a different font" thing though 21:34:21 olsner: Your IRC client is broken. 21:34:26 because the double width stuff looks like a bitmap font 21:34:35 -!- myndzi has quit (Remote host closed the connection). 21:34:46 I don't know if there's any font where double-width doesn't look like utter shit :) 21:34:50 no antialias and still pretty readable 21:35:29 Well, double width latin looks weird by definition because there's just too much space. 21:35:37 the double width R top is one pixel higher than the top of the O 21:35:42 meh, but freenode is set to UTF-8 for me, so it should work? 21:35:47 so "OUR" looks really strange 21:35:59 like a type writer that put the R slightly higher 21:36:16 is the bot prefixing something to prevent botloops, that confuses my client? 21:36:19 hm looks like only R is affected like that, no other letter 21:36:34 olsner, did it work when I pasted it? 21:36:54 Vorpal: "OUR"? yes, that worked 21:37:00 olsner, hm okay 21:37:09 olsner: It's a GregorBot, so it should be prefixing zero-width something, but that too in UTF-8. 21:37:11 either your client or hackego must be broken then 21:37:23 That said, I'm only assuming it's UTF-8. But it works for me. 21:37:58 `ls 21:38:00 bin \ canary \ foo \ karma \ lib \ paste \ quotes \ share \ wisdom 21:38:04 `ls quotes 21:38:07 quotes 21:38:16 `cat bin/WELCOME 21:38:19 ah 21:38:19 ​#!/bin/sh \ WELCOME "$@" | perl -CS -Mutf8 -pwe 'y/!-~/!-~/; y/ / /' 21:38:25 `file bin/WELCOME 21:38:29 bin/WELCOME: POSIX shell script text executable 21:38:29 oh 21:38:30 right 21:38:32 that won't help 21:38:46 hmm, I do see the zero-width something as a missing-character box when I read the logs from http://codu.org/logs/_esoteric/ 21:38:56 `run bin/WELCOME | file - 21:39:00 ​/dev/stdin: UTF-8 Unicode text 21:39:03 yeah 21:39:04 UTF-8 21:39:09 (probably) 21:39:22 Based on the code, it certainly seems so. 21:39:31 olsner, no CTCP VERSION reply? 21:40:19 `cat bin/No 21:40:22 ​#!/bin/sh 21:40:24 What's that about? 21:40:34 `No 21:40:37 No output. 21:40:43 `No output. 21:40:46 No output. 21:40:47 Oh, of course. 21:40:51 fizzie: confusing you 21:41:26 Vorpal: XChat 21:41:35 olsner, hm /charset iirc? 21:41:41 what does it display 21:41:44 UTF-8? 21:42:01 iirc xchat can get confused between network settings and what actually happens 21:42:36 Vorpal: UTF-8 indeed 21:42:54 olsner, any bouncer? 21:43:06 not that I know of, what's that? 21:43:36 like znc or such. You run it on a sever and connect to it. It keeps the connection and logging and so on going in the background for you 21:43:52 and can display a replay of the last n lines when you connect the irc client 21:48:12 do you need bouncer for something? 21:52:01 hm? 22:15:39 -!- ais523 has quit. 22:15:51 -!- ais523 has joined. 22:21:45 -!- nortti_ has quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )). 22:23:59 -!- boily has quit (Quit: WeeChat 0.3.8). 22:27:19 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 22:27:34 -!- edwardk has quit (Quit: Computer has gone to sleep.). 22:47:26 -!- copumpkin has joined. 23:07:46 -!- pikhq has quit (Ping timeout: 246 seconds). 23:07:46 -!- pikhq_ has joined. 23:11:49 -!- FireFly has quit (Ping timeout: 248 seconds). 23:20:26 -!- FireFly has joined. 23:38:57 to whoever is interested, icfp programming contest starts tomorrow 23:40:04 intercontinental fallopian probes 23:40:26 @wn fallopian 23:40:27 No match for "fallopian". 23:40:38 MAKING UP TERMS, HMMM? 23:40:52 http://en.wikipedia.org/wiki/Fallopian_tube 23:41:09 oerjan: It turns out that I'll be free during it. 23:41:15 But I'm not sure whether I'll do it... 23:47:12 -!- madbr has joined. 23:47:56 -!- pikhq has joined. 23:48:09 -!- pikhq_ has quit (Ping timeout: 265 seconds).