00:02:50 -!- augur has quit (Remote host closed the connection). 00:04:25 -!- hppavilion[1] has joined. 00:08:46 <\oren\> anyone else watchin the handegg? 00:11:12 <\oren\> otherwise known as "armored rugby"? 00:11:35 <\oren\> you don't need a cable thruough the earth if we can do it with a neutrino beam <-- i think bandwidth / energy might be a problem there. 00:12:11 because you only detect a tiny fraction 00:13:15 (this concludes my logreading.) 00:14:17 * shachaf generates more logs. 00:14:18 > pi/2 00:14:20 1.5707963267948966 00:14:42 also, the time saving isn't that big compared to just going around... 00:15:06 shachaf: your scheme fails on account of me being on the channel hth 00:15:52 logs are logs 00:17:21 <\oren\> glog glog glog 00:31:25 -!- tromp_ has joined. 00:35:48 -!- tromp_ has quit (Ping timeout: 248 seconds). 00:50:58 -!- jaboja has joined. 00:51:18 -!- augur has joined. 00:51:48 -!- augur has quit (Remote host closed the connection). 00:52:33 -!- augur has joined. 00:54:34 -!- lynn has quit (Ping timeout: 256 seconds). 00:59:35 > pi/sqrt 2 00:59:37 2.221441469079183 00:59:42 @messages- 00:59:42 boily asked 9h 48m 20s ago: since when are we misleading the topics? everything makes sense, eh? 01:00:23 @messages 01:00:23 You don't have any messages 01:00:25 @tell boily I didn't set the "misleading topics" thing 01:00:25 Consider it noted. 01:00:38 @tell boily I just added "esoteric" for consistency 01:00:38 Consider it noted. 01:01:02 We should have the topic on revision control or something 01:01:20 -!- jaboja64 has joined. 01:02:35 -!- jaboja has quit (Ping timeout: 264 seconds). 01:05:08 -!- variable has joined. 01:09:05 Elronnd: GitHub for IRC? 01:10:18 Elronnd: Speaking of which, I should probably GitHub my personal server and client soon so people can actually visit my personal network 01:11:03 isn't github really expensive though? 01:12:17 Elronnd: ... 01:12:17 No 01:12:26 GitHub is the free one, unless you want private repos 01:12:29 Which I don't 01:12:49 Or if you want their backend to run on your own servers, I think that's also expensive 01:12:51 Or at least big 01:13:25 How would you put github on your server if you didn't get "their backend to run on your servers"? 01:15:30 Elronnd: No, I was going to put the server/client on the github website 01:15:36 Elronnd: I see the confusion 01:15:39 ohhh 01:15:48 that kind of personal server 01:15:54 I meant publish to github 01:16:06 Elronnd: It's like HTTP/BBS, but if you use it you look awesome 01:16:07 yeah, I get it now 01:16:23 but if I use it no one else can look at it 01:16:26 Because it's more a terminal application than anything else 01:16:28 almost no one 01:16:34 bitbucket doesn't everything github does, but better 01:16:46 even better though: host your own git/hg repo 01:16:54 it's not that hard 01:17:00 diginet: Yes, but I want exposue 01:17:03 *exposure 01:17:08 it's hilarious how github has managed to centralize DVCS... 01:17:16 diginet: DVCS? 01:17:18 lol 01:17:24 distributed version control 01:17:26 Ah 01:17:28 xD 01:17:29 hppavilion[1]: Decentralized Version Control System 01:17:30 system 01:17:52 I cannot tell you how many programmers I've met who don't know what to do when github goes down 01:17:54 Elronnd: Do you think the idea for a terminal-based command line-accessed server sounds cool? 01:17:54 the irony is lost on them :/ 01:18:02 What's centralized about it? 01:18:06 server of what? 01:18:14 Things like bug tracking are centralized, but those are centralized with other systems too. 01:18:27 diginet: Just a little server that spits out user-created content 01:18:39 I do not use GitHub for my own projects 01:18:44 so...some kind of social network? 01:18:50 diginet: Paired with a Qt-based pseudoterminal client 01:18:53 -!- tromp_ has joined. 01:19:03 hppavilion[1]: why not just use a regular terminal? 01:19:05 diginet: Sort of, but it's not a website, so you look cool to everyone else when you use it 01:19:06 that seems like a lot of work 01:19:10 Can you connect to it with a real telnet client? 01:19:14 diginet: Because I like doing GUI 01:19:20 zzo38: Probably not yet xD 01:19:28 zzo38: It's my own protocol 01:19:28 ...but you're making a GUI to clone a CL UI? 01:19:31 Such thing should be added on then 01:19:35 that seems redundant 01:19:37 zzo38: Perhaps I will 01:19:50 diginet: The GUI allows me to add formatting and images down the line 01:19:51 I host my own hg repo on my VPS that I was already paying for, so in effect I have a "private" repo for free 01:20:12 hppavilion[1]: plz tell me this isn't a clone of that godawful termkit thing 01:20:21 diginet: What's termkit? 01:20:36 So no, I guess. If I don't know what it is, I can't clone it xD 01:20:40 hppavilion[1]: a really stupid project, the creator got all buttmad when people didn't fawn over it 01:20:46 Even xterm supports colors and pictures and so on though 01:20:59 diginet: I don't expect people to use it, but it'd be cool if somebody did 01:21:14 diginet: Part of the point is that you can easily engineer your own client or server from scratch 01:21:24 hppavilion[1]: basically imagine a terminal which inexplicably uses Chrome for rendering thumbnails and stuff...it's like terminal but with web crap 01:21:26 or whatever 01:21:28 it was stupid 01:21:29 It literally uses string.split() for lexing AND parsing commands 01:21:30 and immoral 01:21:40 diginet: Ah, yes, that's stupid. And immoral. 01:21:40 that sounds nasty... 01:21:50 diginet: It is, but it works for now 01:21:51 what language is this? 01:21:59 diginet: I sued python 01:22:01 *used 01:22:08 I would sue python if I could 01:22:10 for being awful 01:22:32 (I actually typoed "used" to "sued", realized my mistake, fixed it, then realized it was funny and unfixed it) 01:22:36 diginet: How so? 01:22:40 hppavilion[1]: personal bias 01:22:43 Ah 01:22:53 diginet: Do you at all like my idea? 01:23:01 I don't know enough to comment 01:23:05 OK 01:23:07 hppavilion[1]: actually, my main issue with python is that it is too bloated 01:23:12 I myself happen to prefer JavaScript over Python too though 01:23:13 I can send you a session example 01:23:23 zzo38: JS is far far far far worse 01:23:30 there's not really a clear ly defined "core" of the language 01:23:35 porting it is an utter nightmare 01:23:50 diginet: http://pastebin.com/xRnvGfJk is an example of a fairly boring session 01:24:13 new idea: drop python and Qt and whatever else and use FreePascal 01:24:28 hppavilion[1]: so it's like a BBS? 01:24:29 diginet: I'm planning to expand the client/server to allow powerful things like Dwarf Fortress-style game graphics 01:24:39 diginet: Yes, it is, I mentioned that 01:24:54 ahh, I didn't read the backlog 01:24:57 diginet: I'm trying to modernize the concept of BBS in a way. 01:25:03 I see 01:25:10 well, that could be interesting I suppose 01:25:24 ".porn" 01:25:26 diginet: Also, if someone sees you using it you look REALLY awesome from a non-programmer's perspective 01:25:26 wat 01:25:32 diginet: Yes. .porn file. 01:25:44 diginet: Remember, it's part of the internet, so of course there's porn. 01:25:45 TIL porn uses special container formats 01:25:51 Yep xD 01:25:54 hppavilion[1]: so make it not internet 01:26:00 no pr0n allowed 01:26:13 diginet: How do you not make something internet while still using sockets? 01:26:33 hppavilion[1]: use twine and tin cans 01:26:34 diginet: Correct answer: You don't, sockets use the internet 01:26:51 porn violates the categorical imperative 01:26:59 diginet: The wat? 01:27:09 You could use a local network I suppose 01:27:14 and wait..how are you using complex numbers to refer to users? 01:27:18 zzo38: intranet? 01:27:21 Therefore it can use socket without needing internet 01:27:26 you realized complex numbers only have partial order right? 01:27:29 diginet: That was a joke, though a client could do that if they liked 01:27:39 hppavilion[1]: the categorical imperative. Do you even Kant? 01:27:43 diginet: It's largely a thing implemented by the server 01:28:02 diginet: I don't Kant. I Kant. 01:28:04 diginet: Do you know ES6? 01:28:11 http://cow.org/csi/ 01:28:25 zzo38: I'm familiar with it, it's just as shit as ES1-5 01:28:52 hppavilion[1]: useful 01:28:59 hppavilion[1]: do you even Deontology? 01:29:00 Well I think it is good, except, it doesn't have "goto", and "!yield*" is not acceptable 01:29:21 JS is like a braindead Lua, IMO 01:29:28 diginet: Thank you! 01:29:36 However a few ES6 feature are not supported in Node.js yet I think 01:29:37 diginet: Lua: Glorified configuration 01:29:51 Node JS is cancer 01:30:09 hppavilion[1]: well considering that was one of its original purposes...I odn't see how that's bad 01:30:23 diginet: Part of the server is that much calculation is done by the server; the only real required feature is that it accepts text input and that "METHODS" gives you a list of methods 01:30:31 Object Pascal is the one of the best languages ever designed 01:30:45 And the text part is really optional 01:31:40 this sounds over engineered 01:31:45 I like C programming too though, I also make programming in C and also 6502 assembly language and BASIC and a few others 01:31:47 diginet: All the server needs to do is accept information from the socket and return `HEAD:body` information 01:31:56 zzo38: C is awful 01:32:00 And if you've done that, then you have a server 01:32:11 The client then connects to it and sends user input 01:32:32 it's one of the worst languages ever written. If you measure badness by costs wrt loss productivity due to hacking or loss assets, it may be the single most desctructive language ever 01:32:41 why the hell are buffer overflows still aproblem in 2016? 01:32:48 `%conn [port]` connects to the server in my client 01:32:52 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: %conn: not found 01:32:54 Then any input you sent the server receives 01:32:58 Sorry, HackEgo 01:33:21 (I think we should start apologizing to HackEgo whenever we accidentally send an invalid command) 01:33:23 diginet: Because of bad programmers I expect 01:33:52 zzo38: even good programmers fall victim to oversites, esp in million+ SLOC projects 01:34:04 that's why you'd have to be braindead not to use a memory safe and type safe language 01:34:20 diginet: Rust? 01:34:25 I think one of my favorite feature of JavaScript is that you can make "function-oriented programming" with it. 01:34:32 hppavilion[1]: rust is a kitchen sink language 01:34:48 diginet: All software sucks, all hardware sucks 01:34:53 This is a 6502 code: http://wiki.nesdev.com/w/index.php/User:Zzo38/Famicom_Z-machine 01:34:57 it's a convoluted mess that adds no conceivable benefit over languages like object pascal 01:35:00 hppavilion[1]: no, not really 01:35:14 zzo38: how is that specific to JS though? 01:35:15 diginet: I would say yes 01:35:26 it's equally true of Lua...and Python...and Perl...and Lisp...and countless others 01:35:47 diginet: It isn't specific to JS of course 01:36:01 zzo38: nor is it esp well odne in JS 01:36:09 theory: functional programming is the OOP of the 2010s 01:36:17 diginet: Haskell. Haskell is nothing but functional programming. 01:36:18 Yes you are right, it is better done in such thing as Haskell 01:36:29 Though closures are useful 01:36:36 I've used them before in serious code 01:36:36 we see the same ridiculous overpromies we saw in the 90s with OOP 01:36:48 "bug free code, OOM less lines" etc etc 01:36:49 Granted, that serious code was to implement a CL interpreter, but... 01:37:11 and yet, Cabal is one of the buggiest pieces of software I've ever used 01:37:14 but w/e 01:37:21 Do you like assembly language programming? 01:37:31 diginet: What features would you like to see in my server, OOC? 01:37:40 What would be a cool thing? 01:37:50 zzo38: that's too broad a category, which asm? 01:37:50 Perhaps a built-in language? xD 01:37:55 zzo38: VAX...sure 01:37:56 diginet: ELK ASM 01:38:00 zzo38: x86, not so much 01:38:05 hppavilion[1]: what's ELK? 01:38:12 hppavilion[1]: OOC? 01:38:29 diginet: It's a VM/ASM/Infrastructure I'm making as my own .NET-like system 01:38:40 "Out Of Curiosity" 01:38:43 ahh 01:38:46 Modern x86 is especially terrible, the old one was not quite as bad. 01:39:03 What's so bad about x86? in particular? 01:39:03 However, the assembly language programming I know best is 6502 assembly language programming, which I sometimes use. 01:39:04 pre-286 was tolerable at best 01:39:13 I'm not saying it's good, but I don't know much x86 01:39:13 diginet: Yes, that is what I meant. 01:39:15 hppavilion[1]: it's a nightmare 01:39:21 diginet: Such as? 01:39:47 In my opinion 6502 assembly language is good 01:39:56 zzo38: Perhaps you should port 6502 to modern machines xD 01:39:57 hppavilion[1]: you have to memorize all kinds of weird, implicit rules about which instructions use which registers implictly 01:39:58 Somehow 01:40:01 paucity of registers 01:40:09 diginet: Ah, yes, that sounds pretty shit 01:40:10 weird, non-orthogonal addressing mode restrictions 01:40:24 needlessly complicated booting procedure 01:40:41 IMHO, there should be instructions to do things on ANY register, and the assembler should simplify that to the builtins if applicable 01:40:52 hppavilion[1]: interesting, I've been developinng my own VAXoid ISA 01:41:00 hppavilion[1]: congratualtions, you just invented RISC 01:41:15 along with a compiler for a Pascal/Oberon like language 01:41:28 porn violates the categorical imperative <-- of course not. you just have to stream all your own sex too hth 01:41:41 So if ZA1 (set Auxiliary 1 to 0) exists, and you call SET %A1 0, it'll simplify to the former 01:41:50 THe 6502 is ported to modern machines, there are several emulators! 01:41:58 oerjan: it violated the second formulation, that you never treat another human as a means to an end 01:42:06 *violates 01:42:08 zzo38: Yes, but are there any that compile to x86? 01:42:21 I think I have read of such a thing once 01:42:25 hppavilion[1]: not worth it 01:42:29 Not an emulator, mind you, but a compiler from 6502 to x86 01:42:40 hppavilion[1]: this has been done from x86 to ARM 01:42:44 I figured something out yesterday 01:42:49 hppavilion[1]: actually, wait 01:43:07 hppavilion[1]: enjoy: http://andrewkelley.me/post/jamulator.html 01:43:20 too bad it uses piece of shit language like Go 01:43:36 -!- jaboja64 has quit (Ping timeout: 250 seconds). 01:43:43 You can model data moving instructions as ordered pairs where s >= 1 and d >= 0, where s is the length of the reference chain to the source and d is the reference chain to the destination 01:44:16 So <1, 0> is the SET instruction, <1, 1> is MOV, <2, 1> is IMOVL, etc. 01:44:17 I have designed a VM too, called QUACKVM and have written a few programs in it (a minesweeper game and a robot find kitten game are some) 01:44:37 zzo38: What makes for an optimal VM? 01:44:39 zzo38: what kind of ISA? 01:44:44 stack or register? 01:44:53 diginet: I know that his had 32 instructions, which was impressive to me 01:45:02 what did? 01:45:10 diginet: QUACKVM 01:45:16 diginet: I've also been attempting to design a VM based on digraphs 01:45:23 ..huh? 01:45:29 a graph reduction machine you mean? 01:45:31 diginet: zzo38's VM 01:45:35 oh 01:45:51 QUACKVM has memory-mapped stack and registers 01:46:01 diginet: No, like an actual machine code that could- in theory, given completely different models- be run on bare metal 01:46:34 I...don't kinow what you mean bu that 01:46:44 The program counter is memory address zero, address one is the default stack pointer, and address two is a "quick access" register, instructions that take operands from cell two can use a shorter encoding than those at later addresses 01:47:51 zzo38: Is JMP not a builtin then? 01:48:13 Yes that is correct, JMP is not a builtin (although the assembler provides a macro) 01:48:22 diginet: I mean that it's a VM that uses a digraph w/ pointer instead of registers 01:48:25 (RETURN is not a builtin either) 01:48:36 zzo38: It's not a builtin in ELK either 01:49:01 zzo38: Just a macro for POPTO %1 \ CJMP %1 01:49:27 RETURN that is, not JMP 01:49:31 JMP is builtin (for now) 01:49:56 In QUACKVM, RETURN is a macro for "PUT ,,STACK" 01:49:58 zzo38: Though ELK has nearing on 128 instructions because I wanted floats to be builtin. 01:50:03 zzo38: Yes, you mentioned that 01:50:10 I don't really understand it xD 01:50:12 (Which encodes into a single memory cell) 01:50:23 Wait, I think I get it now 01:50:32 , separates instructions, right, right 01:50:52 No it does not separate instructions 01:50:59 I mean arguments 01:51:00 Sorry 01:51:01 Yes 01:51:05 That is correct 01:51:17 I meant arguments the first time 01:51:28 OK 01:52:14 `CALL line` in ELK is a macro for `PUSH \ JMP line` 01:52:15 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: CALL: not found 01:52:22 Sorry again, HackEgo 01:52:31 And CCALL is t a macro for the same, but with CJMP 01:53:58 diginet: THings get weird in that notation if you allow negatives 01:55:24 QUACKVM does have CALL as a builtin, although all instructions use the same encoding (the instruction set is orthogonal), so a computed call is the same CALL instruction. 01:55:56 zzo38: You can do CALL as a builtin in QUACKVM if QUACKVM happens to have MOV, IIAC 01:56:24 Wait, no, that's CCALL 01:57:24 zzo38: At what point does a VM cease to qualify as a RISC? 01:57:34 I've read RISC doesn't imply less instructions that CISC 01:57:51 In fact, RISCs tend to have /more/ opcodes than CISCs 02:00:18 -!- AlexR42 has joined. 02:02:25 I don't know how it works 02:02:36 It seems to me people decide it arbitrarily 02:04:36 zzo38: Ah. 02:04:43 oerjan: it violated the second formulation, that you never treat another human as a means to an end <-- according to wikipedia, you're missing an important "merely" there hth 02:07:35 that still applies 02:07:42 porn clearly violates the second formulation 02:07:50 as told to me by an actual Kantian 02:07:52 so.. 02:09:05 so does buying chocolate and now i should stop. 02:11:19 -!- Hoolootwo has left ("Leaving"). 02:11:22 *stop trolling. 02:11:28 -!- Hoolootwo has joined. 02:16:52 zzo38: Perhaps I should just have conditional SKIP instructions and make JMP and its conditional variants macros... 02:18:12 In QUACKVM, all instructions are conditional skip instructions. 02:18:38 So `JMP.Z condreg line` macros to `IFZ condreg %cond \ SKIPIF %cond \ SET %pc line` 02:19:04 zzo38: Interesting... 02:35:27 zzo38: OK, there are now 0x60 instructions in ELK 02:35:48 And 0x23 macros 02:36:06 Wait, 0x60 isn't counting SKIPIF 02:37:05 0x61 03:05:40 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 03:08:25 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…). 03:08:35 [wiki] [[Generic 2D Brainfuck]] https://esolangs.org/w/index.php?diff=46372&oldid=43414 * 216.58.126.185 * (+1) "d moves pointer counter down and r does too? I don't think so!" 03:11:19 -!- boily has joined. 03:15:42 <\oren\> RS419236755NL 03:17:37 <\oren\> why is everything i order from china being shipped from rotterdam 03:19:49 \oren\: Could it be because it ships through the Netherlands/ 03:19:51 *? 03:20:21 <\oren\> Tracking number 03:20:36 <\oren\> RS375708670NL 03:20:44 <\oren\> that one too 03:20:57 he\\orenederlands\. 03:21:03 @massages-loud 03:21:03 hppavilion[1] said 2h 20m 37s ago: I didn't set the "misleading topics" thing 03:21:03 hppavilion[1] said 2h 20m 24s ago: I just added "esoteric" for consistency 03:21:22 hppavilion[1]: hppavellon[1]. I was mislead. tdh. 03:22:59 <\oren\> oh, my other package is actually in china 03:23:20 <\oren\> the tracking status is 【广州互换局】已出口直封 which seems legit 03:24:11 <\oren\> RI853168115CN 03:24:33 <\oren\> oh, i see 广州 = Guangzhou 03:25:01 -!- boily has quit (Quit: TAPPED CHICKEN). 03:44:22 -!- lleu has quit (Quit: That's what she said). 03:52:02 -!- Elronnd has changed nick to fnurgle. 03:52:05 -!- fnurgle has changed nick to fnurggle. 03:52:10 -!- fnurggle has changed nick to Elronnd. 04:16:07 -!- mad has joined. 04:16:27 https://www.youtube.com/watch?v=tK50z_gUpZI <- guy trash talks garbage collection 04:19:38 Hi, mad! 04:19:59 I'm making a VM called ELK that is meant to be an alternative to CLR! I'm a bit of an idiot! 04:22:18 oh? 04:23:15 mad: It's made to work like the common language runtime, but not be microsoft 04:23:22 Literally, my design principals are: 04:23:34 * Have the cool interaction-between-language feature of the CLR 04:23:48 * Note to self: Don't be Microsoft 04:25:00 <\oren\> AAAAAAAAAAAA 04:26:17 <\oren\> mad: the problem is these people reek of fake expertise 04:27:42 \oren\ : what makes you think that 04:28:40 <\oren\> just a general feeling, plus, seriously, if the Ouya is open source, then there is absolutely nothing that can prevent them from releasing and running native executables? 04:29:32 I'm not familiar with the ouya, I guess it did have the native executable fixes that android got 04:29:56 though to be fair I think Java in android was a stupid idea and should never have been done 04:32:26 and they are game programmers so of course they're going to trash talk java 04:33:23 sheesh scott aaronson's blog theme reset again 04:33:39 this is the third time, i think. he needs a more permanent fix to that bug. 04:34:14 (which is technically a "we don't support your php any more" type of bug iirc) 04:34:17 \oren\ : also, if the ouya store only takes java games, you're screwed 04:35:10 <\oren\> bah, some of the most memorable games I played as a kid were written in ActionScript 04:35:42 and didn't run at 60fps :D 04:35:46 <\oren\> yeah 04:36:50 funny, some of the most memorable games I played as a kid were written in 65816 assembly 04:36:57 and ran at 60fps 04:37:19 on a 3mhz system with barely any ram to talk of 04:39:34 *any more, so we sometimes delete all of it 05:09:58 -!- variable has quit (Quit: 1 found in /dev/zero). 05:18:33 I can program in 6502 assembly, not 65816 though 05:21:10 One of my pet projects is looking at the 6502 to see if you could 32bit-ify modernize it and stuff 05:23:05 mad: by 60fps do you mean 60fpm? 05:23:45 snes games run at 60fps 05:24:14 nobody had an apple2gs which I admit typically runs at 60fpm :D 05:24:52 yay 05:26:51 I find 6502 is OK as it is, although I use the stable unofficial opcodes too (they can be used only on NMOS 6502 or on other implementations of the NMOS 6502 instruction set) 05:29:17 * oerjan isn't sure what is happening in today's girl genius but he doubts it's proper handling of books 05:34:51 zzo38 : anu useful ones? 05:36:27 Do you mean useful unofficial opcodes? They can be useful for different purposes, I have used LAX, ARR, ANC, and others too 05:46:34 mad: Yes, several of them were used fairly often back in the day. 05:48:03 lax loads both lda and ldx at the same time? 05:48:26 mad: Yes. 05:48:34 Yep. 05:49:00 I can see how that could be useful 05:49:06 (However it does not work correctly with the immediate addressing mode, so LAX should be used only with non-immediate addressing modes.) 05:51:59 Here is the explanation: http://wiki.nesdev.com/w/index.php/Programming_with_unofficial_opcodes 05:53:23 One .NSF file I released starts with the instruction "EOR #0" in order to create a patch point, so that the multi-song NSF can be converted into a single-song NSF of any of the songs, without having to recompile the entire program. 05:56:20 However I noticed that the instruction that would be "STA immediate" actually does nothing and does not overwrite the instruction. 05:57:01 (If it did, it would probably be convenient for fast bankswitching) 05:58:28 it's hard to make a faster version of the 6502 is what I mean 06:01:08 <\oren\> why? 06:01:29 <\oren\> can't you just make the chip smaller and the clock faster? 06:01:57 yes but you're still reading opcodes directly from DRAM 06:02:07 with a full access cycle every time 06:04:29 like, if you put it in competition with a MIPS or an ARM it will lose badly 06:05:10 because they use their memory cycles much more efficiently 06:06:45 Still I do not like the automatic reordering and automatic stalling and automatic caching and so on of many newer instruction sets, and I believe they should be done explicitly, although also some instruction might just not return the result right away (such as multiplication register for example) and you can do other stuff in between 06:09:25 -!- XorSwap has joined. 06:10:15 actually what I like about the idea of a modernized 6502 is the potential for new ways to do automatic reordering and automatic stalling and automatic caching 06:13:36 provided that you take out the stuff that tends to create stalls and doesn't help throughput too much 06:19:07 In my ELK ASM, I was at first going to make conditional JMPs macros (using SKIPIF), but I was told that it's better to make the important ones builtin for efficiency 06:19:54 mad: zzo38: everyone else: We should team up as the Council of Eso and construct the world's best ISA 06:20:06 I have some ideas 06:20:11 mad: Such as? 06:20:26 ok you know how a RISC is like 06:20:31 mad: Also, ICYC, ELK is documented at https://docs.google.com/document/d/1ZFHwxE0AqpW9nRqTjLMPKZ68RUubLsYGRozKAwTI68s/edit# 06:20:33 Yes 06:20:35 add r0, r4, r5 06:20:44 (add r4 to r5 and store in r0) 06:20:46 Yeah, that's pretty much ELK 06:21:05 Where instructions take one (or at most 2, but rarely) CPU cycles to complete 06:21:14 ok I'd look into doing an architecture where instead you go 06:21:47 Not necessarily less instructions, but less complicated instructoins 06:21:50 *instructions 06:22:04 actually I'm looking into "less retirement" 06:22:21 so instructions that don't write to any register / flag / memory are GOOD 06:22:26 Ah 06:22:32 because you have one less register to rename 06:22:40 one less write port to the register file 06:23:05 the problem with a sequence, like 06:23:14 mad: So the instructions don't have to have a target? 06:23:17 add r4, r4, r5 06:23:21 mad: I am confus 06:23:25 shr r4, r4, 16 06:23:29 shr? 06:23:33 shift right 06:23:34 Don't know what shr does 06:23:38 Ah! 06:23:40 I prefer RSH 06:23:48 But that works 06:23:54 ok, well, you're writing to two a register twice 06:24:03 Ah 06:24:05 even though the first value will never be used anywhere 06:24:10 Interesting... 06:24:21 so what I'm suggesting is: 06:24:31 every instruction writes to the accumulator 06:24:36 Oooh 06:24:42 Except, of course, ACC and DACC? 06:24:53 and you can also have that value copied to some other register 06:24:59 the sequence becomes 06:25:05 I have had similar idea before 06:25:12 add (ac), r4, r5 06:25:12 That's how a lot of my languages look 06:25:36 shr (ac), ac, 16 and also write the result to r4 06:26:14 mad: Taking it one step further, you could do ACC r4; INC r5; SHRI 16; DACC r4 06:26:29 mad: I don't see what makes this any more efficient though 06:26:37 Or otherwise better 06:26:40 hppavilion[1] : I've considered that too 06:27:03 the catch being that it turns a 2 cycle sequence into a 4 cycle sequence 06:27:11 Ah? 06:27:20 lower latency is good 06:27:22 Oh, right 06:27:45 mad: That might be more efficient for some types of program, but not all 06:27:57 well, you could have VLIW style fusion 06:28:01 ? 06:28:03 have every op being 06:28:09 Oh, Very Long Instruction Word 06:28:11 guh 06:28:18 Android-x86 is a piece of crap. 06:28:21 Larger programs- the ones that are actually compiled and need to be efficient- would probably be /less/ efficient 06:28:26 [otional ACC], alu operation, [optional DACC] 06:28:28 It has lost in every single way I can think of so far. 06:28:44 and have the whole 1-3 instruction sequence fit into a single 32bit word 06:28:50 mad: Ooooh 06:28:53 That sounds interesting 06:28:56 that way you can pretend it's a 3 instruction sequence for the programer 06:29:05 except it's still a single instruction for the CPU 06:29:54 mad: We could have some alternative syntax to make it easier to assemble and more obvious how it works 06:30:10 true 06:30:35 ok next step is that you tend to have instruction sequences that are, like, 06:30:51 ACC alu, alu, alu, alu, alu DACC 06:31:04 e.g. `^5 -> RSHI 16 -> _r5` is accumulate-shift-disaccumulate 06:31:10 mad: OK... 06:31:15 So OLIW? 06:31:21 Obscenely Long Instruction Word 06:31:29 (c) 06:31:29 ok well what if you have two sequences like that one after the other 06:31:36 ACC alu, alu, alu, alu, alu DACC, ACC alu, alu, alu, alu, alu DACC, 06:31:42 well 06:31:45 \o/ 06:31:51 It's 4.4 build actually works on Virtualbox. 06:31:57 mad: You should make a proof of concept so it's easier to understand 06:31:58 you can run those 2 sequences in PARALLEL 06:32:01 Whoa 06:32:09 The 5.1 build, for some reason, apparently is missing a tablet interface 06:32:21 the CPU only needs to know in advance what registers the DACC instructions are writing to 06:32:22 mad: mind.state == mindestates.blown 06:32:54 (the "e" is cannonical" 06:32:56 *) 06:33:13 in fact you can guess that there's a new execution thread starting every time an ACC instruction appears 06:33:14 mad: How would JMPing work? And conditionals? 06:33:38 not 100% sure yet 06:34:05 probably someting like jz / jnz on the accumulator value 06:34:10 mad: Perhaps every ACC alu* DACC is put in a hardwired WHILE loop? 06:34:19 and some cmp alu opcode 06:34:28 With a series of BREAK conditions 06:34:35 One of my idea was VLIW microcode and that microcodes can be user-programmable and self-modifying; the external instruction set is something like old 8-bit instruction sets but can be modified by the program. 06:34:40 or a jmp instruction that compares the alu to some register and jumps if the comparison is true 06:34:57 mad: How about the call stack? 06:35:10 I like how RISCs handle the call stack 06:35:19 How do they? 06:35:26 JL (jump and put jump source in a preset register) 06:35:33 Oooh 06:35:34 aka "jump and link" 06:35:45 mad: That doesn't sound very RISCy 06:35:48 then to return you call j LR 06:35:55 Another of my ideas was to have a conditional move instruction, the jump is just the "load pc", and immediate addressing mode is actually "pc indirect with postincrement" 06:35:58 hppavilion[1] : why not? 06:36:01 -!- hppavilion[1] has set topic: Joining this channel is a RISCy move | Effi's finest fluffy waffles | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | https://esolangs.org/ | 100% of cpus on the wall ♪. 06:36:13 it does call and return in 2 opcodes 06:36:34 (jump and link, and simple jumping to a register address) 06:36:39 none of which write to memory 06:36:49 mad: Because it can be decomposed into two opcodes: PUSH and JMP 06:36:58 push is WAY more complex 06:37:03 mad: Is it? 06:37:09 yes 06:37:11 Yes it clearly is 06:37:11 Also, how do you do recursion without a stack? 06:37:16 jl DOESNT TOUCH THE MEMORY 06:37:22 that's a 100x win 06:37:25 zzo38: OK, yeah, it's kind of obvious that it is xD 06:37:37 hppavilion[1] : you use a stack 06:37:43 I think I'll add LEAFCALL to my ASM 06:37:50 it just doesn't have to be melded into the call opcodes 06:38:03 like a typical version goes 06:38:04 I think I have read about a VM that has a branch and link instruction, although you could specify what register rather than only one register 06:38:07 mad: Perhaps have a 4-bit mini-opcode (nested ISA) that allows for conditions to be done? 06:38:08 jl _function 06:38:15 .. 06:38:15 .. 06:38:17 _function: 06:38:24 sub sr, 4 06:38:36 st lr, [sr] 06:38:53 (function body goes here) 06:39:07 ld lr, [sr] 06:39:12 add sr, 4 06:39:14 j lr 06:39:17 Well, 4-bit opcode, 2 n-bit (where n=ceil(log[2](regcount))) arguments 06:39:24 mad: Don't put code IN the channel xD 06:39:48 like, you need zero stack opcodes 06:40:04 mad: OK, here's what I've got. Assuming 64-bit architecture 06:40:11 Every instruction word is of this form: 06:40:53 You could also use different addressing modes to deal with stack instead of stack opcodes, such as "register indirect with postincrement" and so on. If PC is also one of those registers then immediate addressing is also the same one 06:41:22 zzo38 : the problem with those is that you have instructions that write to 2 registes 06:41:24 not good 06:41:32 register writes are bad 06:41:52 that being said ARM does have them 06:42:04 and yes it does use them for the stack 06:42:45 PC probably really shouldn't be a general purpose register 06:43:19 if you're running 1 instruction per cycle you're fine 06:43:37 but once you're doing multiple stuff then the PC really isn't ever where you expect anyways 06:44:06 due to all the caching, branch predicting etc 06:44:17 That's why you don't execute multiple instructions per cycle, you instead execute an instruction that can do multiple things, and don't use branch prediction and so on 06:45:41 (QUACKVM, which is designed purely for VM and not fore hardware, has the PC at address zero, and this is mainly how to deal with flow controls) 06:46:04 well, the problem with "multiple thing" instructions is that they tend to be overly complex 06:46:19 that's why they got booted out on RISCs 06:46:25 they weren't making anything faster anyways 06:46:51 zzo38 : PC at zero is bad 06:47:07 mad: http://pastebin.com/wz3WwSbF 06:47:13 zzo38 : because then any memory write turns into a potential surprise jump 06:47:13 That's what I have so far 06:47:49 That's for each individual word 06:47:52 mad: The header is 2 bytes, which gives the number of conditions used for this thread 06:48:29 It is not for hardware though, hardware should use proper register instead anyways 06:48:55 It is followed by that many conditions, which are of the form of 1 byte for a "condition group", 1 byte for the condition opcode, then 2 8-byte groups for the arguments (assuming a 64-bit architecture) 06:49:18 hmm 06:49:33 problem with conditionals is 06:49:34 The "condition groups" are based off of Prolog- basically, ALL conditions in AT LEAST ONE condition group must evaluate to true for it to be counted as true 06:49:52 mad: It's just for threads to repeat indefinitely 06:50:04 mad: It's probably a stupid idea, but I'd like to explain it :) 06:50:26 If at least one condition group is all true upon testing, the loop terminates 06:50:40 Then, you have the start and term conditions 06:51:23 Which starts with a 1 byte "flag header" that tells the (probably virtual) machine which are used and which are not 06:52:17 oh? what are some typical flags? 06:52:17 Then you have up to 8 (the exact number is equal to the hamming weight of the flag header) 8-byte (64-bit architecture again) things that tell it what the target registers are 06:52:40 mad: The flags include ACCREG and DACCREG 06:52:58 Basically, each flag tells it that a given target is present 06:53:31 So if the flag for optional ACC is true, then the first thing is the optional ACC register argument 06:53:44 hrm 06:53:50 mad: I take it you have no clue what's going on? 06:53:55 I'm pretty bad at explaining 06:54:22 I have an idea but I don't get the reasons for these :D 06:54:37 mad: Well, do you understand the condition thing? 06:54:50 I don't quite undersant what it's for 06:54:52 Oh, you DO have an idea 06:55:03 mad: It's as a potential substitute for JMP 06:55:22 -!- XorSwap has quit (Quit: Leaving). 06:55:23 mhm 06:55:33 Each [ACC] alu* [DACC] group has a WHILE loop over it that terminates when one of its condition groups is met 06:55:36 fully 06:55:50 I don't know if it'll work as a substitute for JMP, but it might 06:55:57 actually in the kind of stuff I'm going for the JMP instructions can be exactly like on MIPS except for the delayed branch stuff 06:56:06 or like on ARM without the flags register 06:56:18 mad: If you don't like it, I could just put it in my own separate thing ;) 06:56:19 Once when trying to make a schematic diagram of CPU, I made it all operation are by register, the only instruction is to copy one register to one register and then it jump to specified address, but that is only half of the program counter and the other half is one of the register that you can write on 06:56:34 it's just that I have a different design goal 06:56:40 mad: Yeah, I figure 06:56:44 It's completely fine 06:56:52 my goal is simple: out of order cpu without having to to the whole tomasulo algorithm 06:56:55 I just want to make an OLIW architecture xD 06:57:00 Ah 06:57:14 mad: Are you interested in hearing about mine at all, or should I stop explaining? 06:57:15 so basically I'm looking at having instruction groups as well 06:57:19 but for a different reason 06:57:48 well, yours has some interesting commonality so I'll try to explain 06:58:25 googling quackvm, first result is a 2012 paper by VM Quack 06:58:41 RISC is good but it has too many useless register reads/writes, so to do 4 ops per cycle you need an insane 8-read port 4-write port register file 06:58:41 http://www.ncbi.nlm.nih.gov/pubmed/22718583 06:58:51 mad: OK... 06:58:59 plus same thing for renaming all the registers but with even more associativity etc 06:59:08 mad: My idea is at least inspired by your uber-threading thing you explained 06:59:24 yes this is the uber-threading thing that I've refined more 06:59:38 izabera: Well, it is not what I mean. The one I mean is: http://zzo38computer.org/prog/quackvm.zip 06:59:45 OK 06:59:51 to be able to uber-thread code, you need to rename all the registers 06:59:56 Ah 07:00:23 so every time you have a write to a real register, you have to pull out a new register name out of the available register name queue 07:00:48 OK... 07:00:54 And you want to write to an accumulator instead? 07:01:10 accumulator writes don't have to be renamed, correct 07:01:33 OK 07:01:48 if you look at a bunch of code, normally it should be made out of a bunch of short sequences that go 07:02:10 ACC alu, alu, alu.. alu DACC, ACC alu, alu, alu.. alu DACC, ACC alu, alu, alu.. alu DACC, 07:02:29 so you look at the target of each one of those DACCs 07:02:36 OK 07:03:05 also you look if that target reappears right after in the following ACC and alu opcodes 07:03:11 this can be cached 07:03:22 OK 07:03:29 I say OK a lot 07:03:30 you rename those to be the same as the register you got for the DACC 07:03:37 ok 07:03:40 xD 07:03:50 all the other ACC and alu register sources you also rename 07:04:04 to the previous names for those registers 07:04:27 example: 07:05:44 ACC r4, shr 16, DACC r0, ACC r5, shr 14, add r0, DACC r1, ACC r6, shr 12, add, r1, DACC r2 07:06:10 ok you can issue all of those in 1 cycle to 3 micro thread units on your cpu 07:06:27 all you have to do is come up with a new virtual register for r0, r1, r2 07:06:34 OK 07:06:37 That makes sense 07:06:44 let's say v20, v21, and v22 are available 07:07:33 and let's say r4 is currently renamed to v10, r5 <= v11, r6 <= v12 07:07:46 ok well then you can rename the whole lot to 07:09:02 ACC v10 shr 16 DACC v20; ACC v11 shr 14, add v20 DACC v21; ACC v12 shr 12, add v21 DACC v22 07:09:58 then you can simply queue in your alu1 to execute the first part of the renamed instructions, alu2 to execute the second part, and alu3 to execute the third part 07:10:00 And execute those all in parallel? 07:10:03 yep 07:10:17 Interesting 07:10:23 also each virtual register needs a valid bit 07:10:24 That is definitely related to my idea xD 07:10:42 so that 3rd unit doesn't read v21 before the value actually goes live 07:11:13 it's also possible to have a micro-thread that writes more than 1 register 07:11:19 OK.. 07:11:20 . 07:11:35 mad: We should invent THE most long-word architecture ever built 07:11:46 Without just using unnecessary padding 07:11:55 something like ACC v10 add 4 DACC v11, add 4 DACC v12 07:12:29 I can propose an instruction format but it's a bit hair raising :D 07:12:32 ("unnecessary padding" would be something like having kilobyte-long opcodes) 07:12:40 mad: OK? 07:12:52 I think my OLIW is pretty extreme 07:13:07 ok first thing its easier to rename registers if you have different rename partitions 07:13:13 OK 07:13:17 like have r0, r4, r8, r12, r16 in the first partition 07:13:23 r1, r5... in the second 07:13:29 r2, r6... in the third 07:13:35 r3, r7... in the fourth 07:13:57 ok opcode goes: 07:15:08 [partition 1 nop/write to registerX] [partition 2 nop/write to registerX] [partition 3 nop/write to registerX] [partition 4 nop/write to registerX] 07:17:27 alu op1: [[nop/ACC +rename reg flag] alu-op[+rename reg flag] [nop/DACC]] 07:17:32 alu op2: [[nop/ACC +rename reg flag] alu-op[+rename reg flag] [nop/DACC]] 07:17:36 alu op3: [[nop/ACC +rename reg flag] alu-op[+rename reg flag] [nop/DACC]] 07:17:46 etc... for all the alu ops in the group 07:18:33 [micro thread 1 start/end points] [micro thread 2 start/end points] ... [micro thread N start/end points] 07:19:33 [offset to memory load opcode in the alu opcodes][offset to memory store opcode in the alu opcodes] 07:19:53 and that's it! 07:20:24 with potentially 2 memory load opcodes if the data cache can handle 2 loads per cycle 07:20:30 <\oren\> hmm what if the 6502 and all its memory were together on one chip 07:20:35 all of this can be issued in 1 cycle 07:20:52 as long as you rename every single register read 07:21:13 and you don't have any more than 4 register writes and they all end up on different partitions 07:21:36 <\oren\> and then you have an asynchonous mechanism for paging things from the fast memory to a much larger slow address spae 07:21:52 \oren\ : still not efficient compared to a MIPS with all its memory together on one chip :D 07:22:30 <\oren\> see most 6502 ode uses the zero page as registers 07:23:14 \oren\ : yes but there's always the menace that some absolute or indirect address opcode writes into the zero page 07:23:30 that prevents you from turning the zero page into a register file :( 07:23:34 ode to 6502 07:23:49 <\oren\> not sure why? 07:24:07 ok suppose you have 07:24:49 \oren\: I want to make the most LIW architecture ever 07:24:51 lda #0, sta [some address that later turns out to be zero page], lda $40, adc $44 07:24:57 \oren\: Do you have any ideas? 07:25:36 LIW as in VLIW, but not necessarily parallel 07:26:49 if you were guaranteed that "sta [some address that later turns out to be zero page]" won't write to $40 or $44 then you could pipeline those operations while the long sta executes and replace the slow memory reads they do with fast register reads 07:27:02 <\oren\> see but that's the key, you don't need it to be out of order, because the chip as designed runs all the way through with each cycle 07:27:37 then you have to wait till sta does the whole address calcuation 07:27:49 which is potentially up to 5 cycles or something 07:31:12 compared to the equivalent MIPS sequence which is something like li $1, 0x0 sw $1, [some address] addu $10, $10, $11 07:31:17 you're coming way behind 07:32:10 the MIPS sequence runs in 3 cycles (2 if you're dual issue, 1~ish on an out-of-order tomasulo MIPS) 07:33:12 actually the "li" instruction isn't even necessary since you have a zero register 07:33:22 Another thing in 6502 is that the zero page may be mirrored, depending on the system (for example, on Famicom it is mirrored) 07:33:28 <\oren\> but how fast can those ycles be made? 07:33:46 \oren\ : as fast as x86 presumably 07:33:46 And I have designed a mapper which takes advantage of that mirroring to do bankswitching 07:34:22 probably a little bit faster even since it doesn't have as much crazy insanity like flags registers to deal with as x86 07:35:57 MIPS instructions are easy to reorder since they have no side effects aside writing the result in a register 07:36:33 as opposed to multiple side effects on 6502 like changing the flags but only some flags depending on which instruction 07:37:09 <\oren\> So I guess my intuition here is that 6502 is such a simple processor, with no reordering or complex instructions etc. that you can make it faster simply by shrinking the chip and upping the clock speed to insane levels 07:37:46 <\oren\> whereas the reordering itself in complex processors increases the die size so you can't do that as much 07:38:16 reordering is something you do when you're already pushing out 2 instructions per cycle and want to reach 3 4 etc 07:38:52 if you limit yourself to 1 IPC then MIPS and ARM become a lot less complex 07:40:14 and MIPS is designed to be easy to pipeline and up the clock 07:40:45 because you don't have to do anything more complex in 1 clock than adding or loading a word from the data cache 07:41:17 that's why it's a classic 07:41:17 I have done in quite a different way to do multiple things at once with 6502 programming, such as using unofficial opcodes such as LAX and DCP and SAX and so on, and to design hardware in the ROM cartridge to take advantage of RAM mirrors so that one instruction can both read RAM, update flags, and bankswitch all at the same time, or to bankswitch and save the selected bank number to RAM at the same time. 07:42:52 though I have to admit making the 6502 32bits and adding a bunch of registers would probably make it a lot faster 07:43:34 that's how the 8080 eventually became the 386 and it somehow worked in the end 07:44:16 -!- tromp_ has quit (Remote host closed the connection). 07:44:41 <\oren\> I think a lot of the speed of x86 has to do with the compilers generating the code 07:45:18 <\oren\> people use it so much that there's an immense knowledge of what works and what doesnt 07:45:44 no x86 has a couple of weird voodoo things going for it 07:45:57 <\oren\> voodoo? 07:46:02 that have helped it not get wiped off the surface of earth 07:46:29 basically remember itanium? intel tried to make a cpu faster than x86 07:46:48 and they had the whole "no legacy software" advantage 07:46:50 <\oren\> did anyone end up using that? 07:46:53 and they failed 07:47:23 itanium was good at floating point but it was never really faster than x86 which is why it failed 07:47:44 <\oren\> "The most recent processor, Poulson was released on November 8, 2012." 07:47:50 <\oren\> i guess not 07:48:26 like, the 4 IPC dec alpha was the fastest cpu in the world when introduced 07:48:52 (basically like a 4 instruction per cycle mips almost) 07:49:20 the AMD athlon went basically the same speed with 3 instructions per cycle 07:49:27 and eventually got higher mhz 07:50:12 because x86 has opcodes that are math+memory load 07:50:33 and even ones that are memory load->math->memory store 07:50:57 it turns out, this is useful 07:51:19 every time that sort of opcode is used, well, that's one less register write compared to mips/arm/etc 07:51:31 and one less opcode to push through the pipeline 07:51:38 -!- oerjan has quit (Quit: Nite). 07:51:54 also the weird/brain damaged x86 instruction encoding acts as some sort of data compression 07:52:11 which means you get more instruction cache for free 07:52:31 (well, ok not free when you consider the heavy decoding overhead but still) 07:52:36 <\oren\> oh, i see, simpler instructions are shorter 07:52:42 <\oren\> heh 07:53:17 irl having a 2/4/6... byte instruction format instead of like 1..15 would probably have been a lot better 07:53:42 and more balanced between size reduction vs extra encoding complexity 07:54:17 because irl most instructions that actually get used could fit in 2 bytes most of the time 07:54:32 which is why ARM has all those THUMB/THUMB2 modes 07:56:01 also the low number of registers have forced intel and amd to optimize memory loads/stores 07:56:03 this is good 07:56:56 so yeah that's the 'voodoo' behind the x86 07:57:17 irl it's probably not REALLY better than risc architectures 07:58:04 but it's not bad in a way that makes it SLOW 07:58:20 (once you make it all out-of-order and stuff) 08:00:01 if 68000 had survived it would probably be in the same weird position as well 08:30:07 -!- Sgeo has quit (Read error: Connection reset by peer). 08:44:48 -!- tromp_ has joined. 08:46:36 -!- J_Arcane has quit (Ping timeout: 256 seconds). 08:49:06 -!- tromp_ has quit (Ping timeout: 245 seconds). 09:00:49 sweet dreams are made of cheese 09:02:23 !@#$%^&*()_+-={}|[]\:";'<>?,./~` 09:02:47 who am i to disagree 09:05:07 izabera: *who am I to dis a brie 09:16:09 SISC: Sexy Instruction Set Computer 09:40:19 I just saw a picture of a PDP-11 for the first time 09:40:20 ... 09:40:21 Wow 09:40:26 Um 09:40:31 This is awkward 09:51:12 <\oren\> what, you didn't picture it as a giant fridge with lights and switches in front? 09:53:00 <\oren\> over the years they made them smaller though 09:54:36 -!- hppavilion[1] has quit (Ping timeout: 256 seconds). 10:07:36 -!- mroman has joined. 10:07:44 http://designs.mroman.ch/designs/d3.html 10:07:50 I didn't know there was a "ch" css unit 10:07:55 but I'm playing around with it now. 10:08:37 I wanted a fixed 80x25 10:08:46 but that looks weird on smart phones :) 10:09:04 so I just used 80ch as max-width for the div 10:09:18 -!- TodPunk has quit (Read error: Connection reset by peer). 10:09:22 @massages-lood 10:09:23 oerjan said 9d 17h 13m 16s ago: according to the majority of readers [...] <-- s/readers/survey answerers/ hth 10:09:43 right. 10:09:50 -!- TodPunk has joined. 10:10:03 now I need to figure out what tables would look like in such a layout 10:14:35 -!- TodPunk has quit (Read error: Connection reset by peer). 10:15:21 -!- TodPunk has joined. 10:19:09 hu 10:19:14 colgroup does not allow me to overwrite text-align? 10:19:15 what gives 10:22:15 Inheritance. 10:22:21 "Do not try to set the text-align property on a selector giving a element. Because elements are not descendant of the element, they won't inherit it. 10:22:23 (MDN) 10:24:35 Their suggested workaround is to use td:nth-child(an+b) selectors, where a is the number of columns and b the one you want to change. And hope you don't do any colspans. 10:25:34 http://designs.mroman.ch/designs/d3.html 10:25:51 table looks good on my smartphone too 10:27:42 it looks fucked up in "Web" though 10:27:50 but I'm not sure "Web" is CSS3 ready 10:28:36 How about Netscape Navigator 4.01? 10:28:51 I think ch is css3 10:31:19 http://api.browsershots.org/png/original/8f/8f269efd2501458b93febb6967fa5e8e.png 10:31:22 well 10:31:23 it looks wrong 10:31:26 but still readable :D 10:31:56 I've never heard of that browser before anyway 10:32:16 I used Dillo on a crappy laptop. 10:32:26 Very lightweight, yet graphical. 10:33:07 Of course the web was kind of different a decade or so ago. 10:37:00 -!- fractal has quit (Ping timeout: 260 seconds). 10:45:17 -!- tromp_ has joined. 10:49:36 -!- tromp_ has quit (Ping timeout: 250 seconds). 11:07:33 <\oren\> only problem is you're not using a true-monospace font, it's one of those annoying ones where the bold version is wider than the unbold 11:08:31 <\oren\> of course the usual solution is to use bright color instead of bold 11:09:12 <\oren\> hmm... woit, maybe it is true-monospace 11:35:01 -!- boily has joined. 12:17:08 -!- Treio has joined. 12:20:55 -!- boily has quit (Quit: DISCONNECTED CHICKEN). 12:36:53 -!- MoALTz has quit (Quit: Leaving). 12:56:50 -!- benderpc_ has joined. 12:57:23 -!- Treio has quit (Remote host closed the connection). 13:00:26 -!- AnotherTest has quit (Ping timeout: 250 seconds). 13:00:44 -!- benderpc_ has quit (Client Quit). 13:02:47 -!- bender| has joined. 13:09:04 -!- Sgeo has joined. 13:13:37 -!- lleu has joined. 13:13:37 -!- lleu has quit (Changing host). 13:13:37 -!- lleu has joined. 13:29:57 -!- vanila has joined. 13:44:26 -!- tromp_ has joined. 13:54:50 -!- lynn has joined. 13:56:18 -!- AnotherTest has joined. 14:00:14 -!- tromp_ has quit (Remote host closed the connection). 14:00:32 -!- fractal has joined. 14:08:50 -!- MoALTz has joined. 14:09:50 -!- MDude has joined. 14:18:51 -!- `^_^v has joined. 14:30:43 -!- MoALTz has quit (Quit: Leaving). 14:37:05 -!- spiette has joined. 14:43:26 -!- yorick__ has changed nick to yorick. 15:02:28 -!- AnotherTest has quit (Ping timeout: 248 seconds). 15:04:45 -!- MoALTz has joined. 15:14:05 -!- bender| has quit (Ping timeout: 260 seconds). 15:14:57 -!- bender| has joined. 15:18:10 [wiki] [[Truth-machine]] https://esolangs.org/w/index.php?diff=46373&oldid=45966 * 141.83.63.175 * (+4130) Added Malbolge 15:45:57 -!- tromp_ has joined. 15:48:18 tromp for president 15:50:09 -!- tromp_ has quit (Ping timeout: 240 seconds). 15:55:37 vanila: we already had that slogan in the topic I believe 15:56:11 damn 15:57:32 speaking of which, I'm impressed by Effi's longevity. 15:58:28 -!- Treio has joined. 16:06:25 -!- mroman has quit (Quit: Lost terminal). 16:11:48 -!- Treio has quit (Remote host closed the connection). 16:12:52 https://murze.be/2016/02/today-digitalocean-lost-our-entire-server/ way to go digitalocean 16:13:34 -!- bender| has quit (Ping timeout: 252 seconds). 16:13:55 s/lost/sank/ 16:15:20 link doesn't work with sank... 16:16:41 -!- ais523 has joined. 16:17:43 uh, maybe it's "sunk"... but anyway, I was just musing. 16:18:54 They call their serverts droplets, so maybe "evaporated"? 16:19:02 "Sink" is a game discordianists play. 16:19:13 http://principiadiscordia.com/book/73.php <- there's the rules. 16:19:17 MDude: well it's a digital ocean 16:19:36 MDude: And I'd hope they're not cooking it. 16:19:48 I hope so too, I'm writing this from a droplet. 16:20:01 (Kinda-sorta-kinda, I guess that's a point-of-view question.) 16:20:11 Well evaporation happens all the time, that's how we get rain later. 16:20:23 I don't know if I'd want my server hosted by someone who treats it as no more important than a droplet in an ocean. 16:20:50 When all you've got is an ocean, every server looks like a droplet. 16:20:52 In any case the story matches my expectations. 16:20:55 Doesn't sound like it'd be good with custome service. 16:21:12 Like maybe call it a reef or something. 16:21:48 (that's without checking what their contracts say about reliability) 16:22:01 I think they did exactly what they promise. 16:24:02 http://esoteric.sange.fi/archive/2001-q2-1 ... look for "I sink the sink" 16:25:26 looks like a drug dealer's encrypted conversation 16:27:57 -!- Snakke has joined. 16:28:00 Hi all 16:28:31 hi 16:28:53 hi 16:28:57 mwhats going on? 16:30:08 Is this channel about esoteric (magic, runes, tarot...) or computer term? 16:30:26 `wElCoMe Snakke 16:30:41 sNaKkE: wElCoMe tO ThE InTeRnAtIoNaL HuB FoR EsOtErIc pRoGrAmMiNg lAnGuAgE DeSiGn aNd dEpLoYmEnT! fOr mOrE InFoRmAtIoN, cHeCk oUt oUr wIkI: . (FoR ThE OtHeR KiNd oF EsOtErIcA, tRy #EsOtErIc oN EfNeT Or dAlNeT.) 16:30:43 [int-e] thanks 16:30:58 oh thanks HackEgo 16:31:09 then ill to leave, bye !! ^^ 16:31:12 bye 16:31:24 good, that font color was horrible 16:31:33 mine? 16:31:37 bye 16:31:40 :S 16:31:41 hi Snakke 16:31:49 dark grey on black ground 16:31:49 i thought ais was going 16:31:55 not exactly readable 16:31:55 -!- Snakke has left. 16:32:06 not exactly polite.. 16:32:56 oh, I was just seeing all the messages in bold 16:33:05 also this is the only legitimate use for a stupid welcome that I've seen :-) 16:33:26 only? 16:34:37 yes, I hate the stupid welcome variants 16:34:54 Hahaha 16:34:54 i miss relcome 16:34:59 `relcome vanila 16:35:01 noooo 16:35:07 i miss myzdindi 16:35:50 relcome is for encouraging people to filter colors :P 16:35:58 (or was, whatever) 16:36:30 -!- Lord_of_Life has quit (Excess Flood). 16:36:48 `` welcome vanila | rainwords 16:36:59 No output. 16:37:02 hmm 16:37:06 -!- Lord_of_Life has joined. 16:37:09 did rainwords get deleted too? I'm pretty sure I didn't delete that one 16:37:16 I may well have deleted relcome itself though 16:37:18 ​vanila: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 16:37:26 `culprits bin/relcome 16:37:41 hackego lags as hell 16:37:53 tswett tswett shachaf oerjan oerjan elliott oerjan elliott ais523_ ais523_ elliott Jafet oerjan elliott oerjan oerjan oerjan ais523 ais523 elliott FreeFull Bike Bike Bike Bike 16:39:01 elliott is gone? 16:41:07 anyway the thing is, Snakke had been here before (last friday), and `welcomed. 16:41:40 (and that explains the "misleading topics") 16:41:48 i am not confused that people which want to go to real esoteric stuff don't learn 16:41:56 -!- ais523 has quit (Read error: Connection reset by peer). 16:41:57 (which, confusingly, have been elided from the topic) 16:42:13 -!- ais523 has joined. 16:42:35 why don't we make this channel double purpose 16:42:38 esoteric languages and occult! 16:42:48 it could really spice things up 16:43:20 Depends on whether that's ∧ or ∨. 16:43:57 both 16:43:57 because occultists are no fun 16:44:00 Or maybe ∩ or ∪ would be more appropriate. 16:44:36 idunno i liked the sound of those esoteric runes 16:44:43 could use them for something 16:44:59 Anyway, I'm looking for a reference that studies PCP as a trichtomic problem (a PCP instance can have a finite solution (corresponding to accepting Turing machines), only infinite solutions (corresponding to non-terminating Turing machines) or have no solution at all (corresponding to Turing machines that reject their input)). The result I want to use is that there's no algorithm that separates... 16:45:05 ...the finite solution instances from the no-solution instances. This is obvious enough that it should exist in the literature... but where? 16:45:51 (the correspondences come from the standard proof that encodes runs of turing machines on a given input as a PCP instance) 16:47:24 -!- tromp_ has joined. 16:47:40 it's not a direct application of rices theorem? 16:49:28 well, no, because Rice's theorem talks about Turing machines. 16:50:04 It's doing the construction of a PCP instance from a TM that I want to avoid. 16:50:11 ok I get you 16:50:21 a direct proof of this before showing equivalence to TMs 16:50:39 no, just a result I can cite 16:51:04 i don't see why isn't it just rice theorem then sorry 16:51:42 I want a result about PCP. 16:52:22 Oh perhaps you regard PCP as a model of computation... then it would be Rice. I usually don't. 16:52:23 -!- tromp_ has quit (Ping timeout: 264 seconds). 17:18:01 huhwhat 17:18:44 -!- bb010g has quit (Quit: Connection closed for inactivity). 17:19:10 Rice, the evil sorcerer? 17:19:29 That... is a reference that is slightly too obscure 17:19:48 An entire turing machine carved onto a single grain of rice. 17:19:48 In fact, it's an in joke 17:20:17 Oh no my cat is here. 17:20:25 MDude, say hi from mke 17:20:43 Sure 17:20:58 `? rice 17:21:38 rice? ¯\(°​_o)/¯ 17:23:42 vanila: sorry, I'm to stupid to read. what you wrote after "ok I get you" was correct. 17:23:45 -!- V3R4X has quit (Quit: sleep). 17:24:41 (though I suspect that the direct proof would really consist of the reduction from TMs, but indeed I don't care about the internals of that proof) 17:25:23 -!- LexiciScriptor has joined. 17:29:03 -!- idris-bot has quit (Quit: Terminated). 17:30:30 `le/rn rice/It is undecidable whether a given Turing machine can prove Rice's theorem. 17:30:33 Learned «rice» 17:31:13 what is that 17:32:07 It's a fact. 17:32:16 @googe rice's theorem 17:32:17 https://en.wikipedia.org/wiki/Rice's_theorem 17:33:49 i sort of feel like PCP is so difficult to do anything with that nobody might have done a direct proof 17:35:00 PCP? 17:35:06 post correspondence problem 17:35:21 its about who send letters to who 17:35:26 @google PCP post 17:35:28 https://en.wikipedia.org/wiki/Post_correspondence_problem 17:35:35 `? pcp 17:35:36 pcp? ¯\(°​_o)/¯ 17:35:57 `` echo wisdom/*post* 17:35:58 wisdom/*post* 17:36:19 `quote correspondence 17:36:24 No output. 17:36:56 [wiki] [[Beeswax]] M https://esolangs.org/w/index.php?diff=46374&oldid=46352 * Albedo * (+10) /* Available instructions in beeswax */ 17:38:55 vanila: But PCP is easy to reduce from. It's just that in my case "PCP is undecidable" isn't strong enough to get the job done, because I can't predict what happens when there's only infinite solutions. 17:42:02 -!- AnotherTest has joined. 17:44:09 vanila: Well, one thing that could be done is, you can make the esoteric programming which is including occult too, is also one thing to do 17:45:30 (If you want to; it is not requited) 17:49:36 -!- hppavilion[1] has joined. 17:56:20 -!- lynn_ has joined. 17:58:37 -!- smorgasbord has joined. 17:58:52 any python help bot here ? 17:59:25 smorgasbord: Oh, sorry, didn't mean there was a python one xD 17:59:28 -!- lynn has quit (Ping timeout: 276 seconds). 17:59:30 What do yo mean by a python help bot? 17:59:32 smorgasbord: I was just trying to make a joke 17:59:37 Taneb: smorgasbord is from #python 17:59:43 who needs python if he can have haskell 17:59:48 peace. sorry. 17:59:49 !python print "hello" 17:59:49 hello 17:59:54 Taneb: He seemed to be looking for a bot, so I humorously directed him here 17:59:55 I'm so glad that worked 18:00:04 Oh yeah, we do have a python executer 18:00:07 But no helpbot 18:00:08 !python print "test" 18:00:09 test 18:00:19 What's a helpbot? 18:00:21 !python date 18:00:21 Traceback (most recent call last): \ File "", line 1, in \ NameError: name 'date' is not defined 18:00:28 smorgasbord: If you want to experiment with python in a CLI fashion, you should check out ipython 18:00:48 smorgasbord: This channel is generally for discussion of esolangs though, not a help channel usually 18:01:42 In case you're curious about esolangs, you can check out the wiki at [http://esolangs.org/wiki/Main_Page] 18:01:43 okies. 18:01:58 xD 18:02:08 nice. checking. thanks 18:03:24 -!- lynn has joined. 18:04:46 -!- lynn_ has quit (Ping timeout: 256 seconds). 18:06:40 `` python -c 'print(1+1)' 18:06:42 2 18:07:00 *slowclap* 18:07:15 `` echo $((1+1)) 18:07:16 2 18:07:25 this proves that bash is faster than python 18:07:34 -!- idris-bot has joined. 18:07:39 `mapole 18:07:40 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: mapole: not found 18:07:42 qed 18:08:43 izabera: of course that's especially true when the python executable is invoked by the bash shell in question 18:09:31 bourne again shell shell... I'm a hero. 18:09:56 `` type python 18:10:02 python is /usr/bin/python 18:10:22 `` echo 'sleep 3; /usr/bin/python "$@"' > bin/python; chmod +x bin/python 18:10:26 No output. 18:10:35 `` python -c 'print(1+1)' 18:10:39 2 18:10:40 sloooooow 18:11:04 * izabera didn't cheat 18:11:11 that's evil. 18:11:24 `revert 18:11:26 how is hackego protected against misuse of people? 18:11:29 aww 18:11:33 rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done. 18:11:35 `help 18:11:35 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 18:11:44 `` python -c 'for a in range(1000000): print(1+1)' > /dev/null 18:11:52 No output. 18:12:04 *fastclap* 18:12:15 `? hackego 18:12:21 HackEgo, also known as HackBot, is a bot that runs arbitrary commands on Unix. See `help for info on using it. You should totally try to hax0r it! Make sure you imagine it's running as root with no sandboxing. 18:12:42 `` uname -a 18:12:44 Linux umlbox 3.13.0-umlbox #1 Wed Jan 29 12:56:45 UTC 2014 x86_64 GNU/Linux 18:13:21 myname: you can undo /almost/ any action (although I once managed to break it in a way that it couldn't undo, which is why it prints the "canary.orig" message every revert); also there's a lot of sandboxing 18:13:28 `` curl http://google.com/ 18:13:30 Failed to connect to socket 2. \ % Total % Received % Xferd Average Speed Time Time Time Current \ Dload Upload Total Spent Left Speed \ 18:13:51 myname: I guess that gives some measure of how much protection and nonprotection it offers 18:17:20 -!- lynn_ has joined. 18:18:35 ais523 and others: I'm trying to make a list of all available free software implementations of fast fourier transforms. So far I see six engines (plus a few wrappers): FFTPACK (of netlibs), in OpenCV, KissFFT, in FXT ("http://www.gnu.org/software/gsl/"), FFTW, in GSL (Gnu Scientific Library). Are there others I should know of? 18:19:22 in my university project I used some FFT code written by Microchip for their dsPIC line of products, but can't remember what the license on it was 18:19:42 -!- lynn has quit (Ping timeout: 252 seconds). 18:19:43 is djbfft still worth looking at or have the ideas been incorporated into the better known fft implementations? 18:19:59 I believe there are at least two more commercial implementations. 18:20:03 int-e: let me search that 18:20:18 I know it was at least shared-source (i.e. source is visible to anyone) 18:21:28 (djbfft is ancient.) 18:21:39 int-e: FFTPACK is also ancient 18:22:14 it's written in fortran, and it's on netlibs, the collection of softawre that houses the famous Lapack 18:22:58 however, just because it's ancient doesn't necessarily mean it's no longer worth to use 18:23:07 okay, let's say that djbfft is semi-ancient then ;) 18:24:44 in any case it's open source and that's all you asked for 18:25:02 I'll look at this djbfft 18:25:28 huhwhat 18:25:32 the tarball seems to be corrupt 18:25:44 probably in an ancient format 18:25:52 -!- lynn__ has joined. 18:26:09 -!- smorgasbord has left ("Closing Window"). 18:26:17 let me try with gnu tar 18:26:26 that handles more formats 18:27:03 yup, works that way 18:27:55 What tar did you try? 18:28:02 -!- jaboja64 has joined. 18:29:00 I repacked it 18:29:02 Melvar: 7z 18:29:15 it extracted the gz part, and the first directory from the tarball, but not more 18:29:23 -!- lynn_ has quit (Ping timeout: 276 seconds). 18:29:34 Weird. 18:30:03 7-zip version 15.14 windows x86_64 in case it matters 18:30:21 I was just curious, I have no desire to debug anything. 18:30:25 but there are like ten incompatible formats of tar 18:30:29 so it's no surprise really 18:30:36 anyway, I repacked now 18:32:12 `olist 1022 18:32:14 olist 1022: shachaf oerjan Sgeo FireFly boily nortti b_jonas 18:32:17 * Melvar looks at man tar, it lists five formats. Neat. 18:32:38 -!- Phantom_Hoover has joined. 18:32:44 it looks as if djbfft handles only power of two sizes. that's the most restrictive I've seen 18:32:48 among the libraries 18:32:57 shachaf: thanks 18:35:57 int-e: it doesn't seem that ancient. the FAQ references FFTW. is FFTW also semi-ancient? 18:37:20 (I don't buy its claims that it's so fast though.) 18:37:24 well, djbfft is close to 20 years old and hasn't been updated in the current millenium. 18:37:40 afaiu fftw is actively maintained. 18:37:50 yes, fftw is maintained 18:38:08 but has djbfft really not been updated? the faq seems more recent than 2000 18:39:06 oh look, https://cr.yp.to/djbfft/links.html has some links, but apparently ancient ones 18:39:34 none of them seem very useful at first glance though 18:39:42 HEAD http://cr.yp.to/djbfft/djbfft-0.76.tar.gz [...] Content-Type: application/x-gzip / Last-Modified: Thu, 30 Sep 1999 20:31:44 GMT 18:40:07 right, the library itself 18:40:10 oh well 18:40:16 ok, semi-ancient then 18:40:18 good oots 18:41:14 -!- Treio has joined. 18:41:56 thank you for the reference anyway 18:43:59 -!- heroux has quit (Ping timeout: 264 seconds). 18:45:01 -!- lynn_ has joined. 18:45:59 hmm, djbfft seems to include no copyright licensing instruction 18:46:03 -!- heroux has joined. 18:46:12 is there evidence that it's free software? 18:46:22 or what is its copyright status? 18:47:16 -!- lynn__ has quit (Ping timeout: 256 seconds). 18:52:18 -!- Treio has quit (Ping timeout: 250 seconds). 18:52:51 if you can't find a copyright notice anywhere it's default-all-rights-reserved 18:53:08 (which is a copyright status I've used intentionally in the past, normally because I haven't made my mind up yet) 18:55:15 I will just make most of my own software as public-domain (explicitly), although when modifying other software I will use the same license they have instead. 18:56:11 Also, if you look at my program XISYNTH (included with AmigaMML), it includes a Fourier transform implementation too 19:02:40 -!- AlexR42 has joined. 19:05:40 -!- jaboja64 has quit (Ping timeout: 248 seconds). 19:14:27 b_jonas: https://cr.yp.to/distributors.html 19:14:38 This is weird 19:14:47 I'm trying to make an IRC bot (because there aren't enough of those already) 19:14:58 But it doesn't ever receive a PING request from the server 19:15:12 Then the server the connection because it times out 19:15:38 hppavilion[1]: how do you know that it never receives a PING request? 19:15:51 int-e: I print everything that comes through it 19:16:08 int-e: And it eventually terminates, never having received a PING 19:16:22 also, have you completed the login? 19:16:27 I believe so 19:17:14 I'd double-check with a packet sniffer 19:19:37 -!- jaboja64 has joined. 19:20:15 b_jonas: I don't know if you were interested in non-native cases, but I think JTransforms gets used a little if you need pure Java implementations. 19:20:56 According to their own website, it's the fastest (pure Java) implementation, but maybe that's not an entirely objective source. 19:27:54 -!- jaboja64 has quit (Ping timeout: 252 seconds). 19:41:24 -!- jaboja64 has joined. 19:48:41 -!- hppavilion[1] has quit (Ping timeout: 276 seconds). 19:49:28 what do 19:50:57 -!- hppavilion[1] has joined. 19:52:53 int-e: I `NICK PyRCBot`, then `USER PyRC 0 * :PyRCBot`, then `JOIN :#esoteric` 19:53:27 With the `\r\n`s of course 19:56:29 -!- jaboja64 has quit (Remote host closed the connection). 19:59:32 fizzie: uh, I probably don't want a Java implementation, sorry 20:00:18 I don't generally do java, and wouldn't want to add it just for a fast fourier transform. 20:00:23 You languacist. 20:00:52 I mean, java usually comes with a heavyweight interpreter that I'd prefer not to have to involve just for this. 20:01:09 int-e: thanks, that says it's public domain 20:02:01 The Intel MKL one is great but probably one of the non-free ones you alluded to. 20:02:16 fizzie: yes, that's one of the non-free ones 20:02:38 opencv generally uses a lot of low level algorithms from MKL when built that way 20:02:45 (no wonder, opencv was partly developped by intel) 20:03:04 It's kinda free in the beer sense, but not more than that. 20:09:58 -!- evalj has joined. 20:15:39 -!- XorSwap has joined. 20:21:38 -!- mihow has joined. 20:22:21 hppavilion[1]: how do you know that your messages are actually being sent out? 20:22:28 -!- spiette has quit (Ping timeout: 250 seconds). 20:25:05 -!- hppavilion[1] has quit (Ping timeout: 276 seconds). 20:26:17 -!- hppavilion[1] has joined. 20:27:31 you don't 20:27:48 the only way to know it is to be connected with a second client 20:28:33 I'm serious about the packet sniffer. It really helps. 20:29:09 (I've debugged a few lambdabot issues that way) 20:30:20 int-e: I actually have my irc bots output every incoming and outgoing irc message to the debug output, except there's a filter masking those that might contain passwords 20:30:32 hppavilion[1]: fwiw, if you never send anything, freenode will close the connection with 'ERROR :Closing Link: 127.0.0.1 (Connection timed out)'. 20:30:43 izabera: Unless the server and client is IRCv3.2 compliant. 20:30:53 izabera: In particular with echo-message. 20:31:05 b_jonas: well that won't help if it's a buffering issue 20:31:21 b_jonas, the trick is to make all your passwords ********* 20:31:28 No-one will suspect a thing 20:31:34 int-e: yeah 20:31:39 ObahCae0 20:31:41 Taneb: it's not _my_ passwords, that's the problem 20:31:48 or at least not only my passwords 20:31:56 int-e: Ah 20:32:00 cbstream takes other people's passwords 20:32:07 and I take their privacy seriously 20:32:29 so I can't dump passwords or hashed passwords to the debug output 20:32:36 Fair enough :) 20:32:44 My suggestion I don't think was entirely serious 20:32:50 sure 20:32:51 password: 20:33:17 oh, incidentally, the old freenode services had a bug where I think you couldn't have asterisks in your nickserv password, or something 20:33:23 though I think the new services has fixed this 20:34:09 -!- Treio has joined. 20:35:17 -!- spiette has joined. 20:36:54 hppavilion[1]: https://gist.github.com/olsner/623071/a1adaa2aefa1b30c154f12de7544b76efe2f5848 just sends USER then NICK then processes anything it gets from the server (and it seems to get PINGs alright) 20:37:58 so that seems to be enough to be accepted by freenode at least 20:39:42 -!- mihow has quit (Quit: mihow). 20:40:27 https://github.com/fis/fungot/blob/master/fungot.b98 lines 43-44 hth 20:40:27 fizzie: the java spec, does that count? ( instead of rdbms)? 20:40:47 If you want something more readable than sed! 20:41:11 -!- mihow has joined. 20:44:34 -!- hppavilion[1] has quit (Ping timeout: 276 seconds). 20:48:47 my sed code is perfectly readable, it even has comments! 20:50:17 I have written a proxy once to figure out what a program was doing. While the program still worked when the proxy was used, all data sent to the proxy was encrypted so I still could not figure it out. 20:50:35 zzo38: ouch 21:00:20 -!- evalj has quit (Remote host closed the connection). 21:04:03 -!- J_Arcane has joined. 21:15:30 That's typically the problem with packet sniffers and TLS as well. 21:22:34 Right, I just assumed that hppavilion was using plain old plain text IRC. 21:23:48 -!- oerjan has joined. 21:24:02 * int-e wonders what hppavilion stands for, but it probably isn't related to "Hewlett Packard Performance Architecture" 21:24:24 It's a model of HP laptops. 21:24:37 thanks 21:24:38 "HP Pavilion." 21:24:41 eerily i've started getting web ads for them recently 21:24:54 never noticed them before hppavilion[1] came here 21:25:12 -!- hppavilion[1] has joined. 21:25:21 eerily he appears 21:25:23 so at least I got the "HP" part correct. 21:25:28 speaking of the devil 21:25:41 (hi oerjan) ;- 21:25:41 ) 21:25:46 hint-e 21:25:53 hint? 21:26:26 I think I prefer mapoles. 21:26:40 an indirect suggestion, a slight indication, a slight but appreciable amount, a just detectable amount, an indication of potential opportunity; hth 21:26:52 Now why haven't I thought of this before, I should use a mapol-e. 21:27:24 though perhaps -----##-# looks a bit strange ;-) 21:27:43 fungot: Do you want to write me a TLS implementation in Funge-98 so that we could make your connection more secure? 21:27:46 ... 21:27:51 Oh no. 21:28:04 apparently the cool people use socat 21:28:14 Well, that'd be a bit lame. 21:28:32 Anyway, it's already doing the socket part. 21:28:46 -!- XorSwap has quit (Ping timeout: 256 seconds). 21:28:48 If I started to use socat, I might as well just be speaking to stdinout. 21:28:48 hm apparently my dentist has the flu, emails the receptionist. 21:29:03 A number of people were out sick at the office. 21:29:21 Also I think I just hit fungot's babble limit, the debug console reveals it's online and well. 21:29:24 i hope gurgling with fluoride will keep it from deteriorating until next week. 21:30:32 What's the best time to go to the dentist? 2:30! 21:30:33 (web comments are rather divided about how much of an emergency losing a filling is. it's my first time so...) 21:31:07 I think that's one of the Alexa jokes. 21:31:10 fizzie: i generally agree (assuming that's PM), but my appointment is 12:30. 21:31:23 (If you ask Amazon Alexa to tell you a joke, it tells you a really bad joke.) 21:31:38 fizzie: wait is there a point to that joke 21:31:46 oerjan: Two thirty / tooth hurty. 21:31:50 ah. 21:32:00 my pun sense led me in the wrong direction. 21:33:18 -!- XorSwap has joined. 21:34:04 though perhaps -----##-# looks a bit strange ;-) <-- that's not a mapol-e, that's a swatt-e-r 21:34:21 sorry! 21:35:13 --######### 21:35:18 Is a kind of brush I think 21:35:21 * int-e swats -----### int-e 21:35:34 Taneb: one of those dust removal things, whatever they're called 21:35:58 Dusters? 21:36:06 that would make sense :P 21:37:39 English occasionally (not often) does 21:37:43 -!- lynn_ has quit (Read error: Connection reset by peer). 21:38:14 -!- lynn_ has joined. 21:38:56 But the german word isn't helpful here; it's "Staubwedel" - literally, "dust waver". 21:39:20 Pölyhuiska. 21:40:35 -!- XorSwap has quit (Read error: Connection reset by peer). 21:40:54 -!- XorSwap has joined. 21:41:07 (The first half is dust, and the second half is the broom-sense of whisk, apparently.) 21:41:41 fizzie, that sort of makes sense 21:42:08 English occasionally (not often) does <-- just to keep you off balance, i take. 21:42:50 no:støvkost, i think. 21:43:26 olsner: I'm sorry, did you just write an IRC client (or server?) with sed!? 21:43:31 which is basicall dust+broom 21:45:46 hppavilion[1]: A bot. 21:46:11 -!- AnotherTest has quit (Quit: ZNC - http://znc.in). 21:47:44 fizzie: Oh right 21:47:48 The third option xD 21:48:09 IMHO, we should retire the Client-Server model in favour of the Client-Server-NSA model 21:48:37 The politicians here would agree with you, I believe. 21:59:22 -!- XorSwap has quit (Ping timeout: 256 seconds). 22:02:17 vanila: we already had that slogan in the topic I believe <-- that wasn't about presidency 22:04:19 damn 22:04:32 -!- Treio has quit (Quit: Leaving). 22:05:20 22:32:12: * oerjan suddenly realizes someone might think the channel topic refer 22:05:23 s to a misspelled candidate 22:05:31 22:33:49: oerjan: well, it doesn't say "Tromp for president!" ... yet! 22:05:39 (01-23)... so that's what I misremembered 22:05:43 OKAY 22:06:06 but the topic was Go Tromp! [...] at the time 22:06:48 Gu Tromp? 22:07:18 On linux, what's the surefire way to decide whether the kernel is an x86_32 or an x86_64 one, regardless of the userspace programs? Is there some /proc entry? 22:07:45 uname? 22:08:28 `` linux32 uname -a 22:08:31 Linux umlbox 3.13.0-umlbox #1 Wed Jan 29 12:56:45 UTC 2014 x86_64 GNU/Linux 22:08:35 myname: I think that tells the result of the uname system call, which (I'm not sure) might report x86_32 if the uname executable itself is x86_32 22:08:39 int-e: same 22:08:42 interesting. 22:08:45 `` which linux32 22:08:46 ​/usr/bin/linux32 22:08:51 `` man linux32 22:08:52 man: can't open the manpath configuration file /etc/manpath.config 22:08:54 for me it says i686 then 22:08:56 `` linux32 --help 22:08:57 Usage: linux32 [options] [program [program arguments]] \ \ Options: \ -h, --help displays this help text \ -v, --verbose says what options are being switched on \ -R, --addr-no-randomize disables randomization of the virtual address space \ -F, --fdpic-funcptrs makes function pointers point to descriptors \ -Z, - 22:09:21 lol, -v sounds useless 22:09:59 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…). 22:10:55 `` linux32 -v uname -a 22:10:56 Linux umlbox 3.13.0-umlbox #1 Wed Jan 29 12:56:45 UTC 2014 x86_64 GNU/Linux 22:11:45 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 22:12:22 for some reason, /proc/version doesn't tell, even though I thought it would 22:12:25 `cat /proc/version 22:12:26 i am not confused that people which want to go to real esoteric stuff don't learn <-- i think he learned about the channels, he's just confused about the networks... 22:12:26 Linux version 3.13.0-umlbox (hackbot@codu) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 Wed Jan 29 12:56:45 UTC 2014 22:13:07 b_jonas: I suppose setarch x86_64 uname -a will fail on a 32bit kernel 22:13:38 -!- spiette has quit (Ping timeout: 252 seconds). 22:13:52 Oh, and this should work on older linuxen too 22:14:34 what about uname -m? 22:14:44 int-e: ah, thanks, that seems to work 22:15:04 myname: oh, that does report something, but it can lie 22:15:37 int-e: although I'm not sure if that would succeed if the setarch was built for some old system that doesn't even know about x86_64 or something 22:15:57 why can't the stupid kernel just tell this in /proc/version ? 22:17:16 because the point of linux32 is to lie to build tools that try to be clever 22:17:18 ah, I think /proc/kallsyms should tell (if it is readable) 22:17:38 because /proc/kallsyms gives straight kernel addresses 22:17:42 so it is probably accurate 22:19:16 it says stuff like "ffffffff810d12d0 t __register_chrdev_region" on x86_64 and stuff like "c10f7ea1 T __bdevname" on x86_32 22:21:59 `perl -e warn length "ffffffff810d12d0" 22:22:00 16 at -e line 1. 22:22:20 `wisdom 22:22:23 ssstosis/ssstosis is a disease causing false identities 22:22:25 `? day 22:22:26 day? ¯\(°​_o)/¯ 22:22:27 `? night 22:22:28 night? ¯\(°​_o)/¯ 22:22:30 `? sun 22:22:31 sun? ¯\(°​_o)/¯ 22:22:32 `? moon 22:22:34 The Moon is an unprovable celestial object that is not very retroreflectorey. 22:22:41 `? mars 22:22:42 mars? ¯\(°​_o)/¯ 22:22:44 `? venus 22:22:45 venus? ¯\(°​_o)/¯ 22:22:49 `? jupiter 22:22:49 jupiter? ¯\(°​_o)/¯ 22:22:55 meh 22:23:06 `? pluto 22:23:07 pluto? ¯\(°​_o)/¯ 22:24:03 `learn Pluto is an ex-planet that moonlights as a dog in Disney cartoons. 22:24:06 Learned 'pluto': Pluto is an ex-planet that moonlights as a dog in Disney cartoons. 22:24:22 `? phthisis 22:24:23 phthisis? ¯\(°​_o)/¯ 22:24:35 (I did it for the "moonlights") 22:25:04 `? chthonic 22:25:05 chthonic? ¯\(°​_o)/¯ 22:25:29 `? b_jonas 22:25:30 b_jonas egy nagyon titokzatos személy. Hollétéről egyelőre nem ismertek. 22:25:43 does that mention a tendency of making up new words? 22:28:47 `learn The Sun *may* be retroreflectorey, it's hard to be sure. 22:28:49 Learned 'sun': The Sun *may* be retroreflectorey, it's hard to be sure. 22:30:03 I don't believe that's factually accurate. 22:31:27 `learn Chthonic lithping can be vethy dithturbing to lithten to. 22:31:29 Learned 'chthonic': Chthonic lithping can be vethy dithturbing to lithten to. 22:31:32 At least to me there's no doubt that the plasma scatters photons quite randomly. 22:31:40 `` linux32 --uname-2.6 uname -a 22:31:41 Linux umlbox 2.6.53-umlbox #1 Wed Jan 29 12:56:45 UTC 2014 x86_64 GNU/Linux 22:31:56 Best option. 22:32:14 int-e: i demand visual proof tdnh 22:32:18 yeah, that one is curious. 22:32:44 oerjan: ah just get those wings to work and fly up there to have a look. 22:33:46 try not to make a splash. http://smbc-comics.com/index.php?id=1938 22:36:24 Oh GG... oh library... oh... fish, is that an aquarium with a little sea monster? I wonder what it'll look like after coloring is done... 22:38:49 i do not think that treatment of books is according to library policy 22:38:59 Hmm, the difference between two wolfram alpha queries that should be identical are 0.002 years different 22:39:08 and without the speech balloons that would make an excellent "where's Agatha?" picture. 22:39:13 https://www.wolframalpha.com/input/?i=years+since+3%2F6%2F2014 and http://www.wolframalpha.com/input/?i=03%2F06%2F2014+to+today+in+years 22:40:37 it wants javascript (of course) 22:41:04 maybe it runs the queries on servers in different time zones 22:41:17 I think it's just a unit thing. 22:41:40 fizzie, it's giving both answers in years 22:41:40 > 0.002 * 365 * 24 22:41:42 17.52 22:41:46 It's identical if you look at unambiguous units -- one says 14760 hours, while the other says 615 days, and 615*24 == 14760. 22:42:17 I'm thinking "convert [days from [...]] to years" is taking an absolute period, and converting it to some nominal years without being anchored to anything. 22:42:29 oh you have a point there... one of the years involved is a leap year 22:42:45 While "years since [...]" is treating it as a particular period anchored in a calendar, and giving an exact number of the thingsies. 22:43:07 We had a very similar discussion about esowiki ban lengths recently. 22:43:31 Yes, hmm 22:43:41 Anyway, bbl, I need to help a friend with a library 22:44:17 why nott just ban everyone 22:44:24 permanently 22:44:28 Where an input of "24 years" turned into 24 years plus a few hours, because it was interpreted as the calendar date you get by adding 24 years, then taking the actual number of seconds there are between current time and that time 24 years in the future, but then that amount of seconds was converted back to "years" for printing by using a fixed conversion factor. 22:47:03 -!- tromp_ has joined. 22:47:42 -!- boily has joined. 22:47:48 > 365 + 97/400 22:47:50 365.2425 22:48:37 I think it's actually just using a year of 365 days for the latter. 22:49:52 Because it says 14760 hours, and 14760/(24*365) is approximately 1.6849 (rounds to 1.685) while 14760/(24*365.2425) is approximately 1.6838, which rounds to 1.684, which was neither of the answers. 22:50:55 @massages-loud 22:50:55 You don't have any messages 22:51:08 the wiki used what int-e said, though. 22:51:12 Yes. 22:52:04 -!- tromp_ has quit (Ping timeout: 272 seconds). 22:52:25 what are the answers? 22:53:17 -!- `^_^v has quit (Ping timeout: 276 seconds). 22:53:32 First one ("years since 3/6/2014") yielded "1.683 years", also listed (under "time span") as 1 year 8 months 5 days, 20 months 5 days, 87 weeks 6 days, 615 days or 439 weekdays. 22:54:23 Second one ("03/06/2014 to today in years") yielded "1.685 years", also listed (under "additional conversions") as 20.22 months, 87.86 weeks, 14760 hours, 885600 minutes, 5.314×10⁷ seconds. 22:54:31 int-e: I would've used a socket API if sed had one (re socat) 22:54:56 > (365/365 + 250/366, 365/365 + 250/365) 22:54:57 (1.6830601092896176,1.6849315068493151) 22:56:03 And the input interpretations were [[years] since [Tuesday, June 3, 2014]] for the first, and [convert [[days] from | [Tuesday, June 3, 2014] to [today]] to years] for the second. 22:57:32 maybe I should just build an extended sed dialect with useful stuff like that? makes it a bit easy to cheat though 23:00:15 okay. "1460 days in years" gives 4, so it's using 365 as a factor for that. 23:05:09 -!- hppavilion[1] has joined. 23:05:20 How many days in a dog year? 23:05:58 It's a trick question: Dog years contain only dog days, and dog days occur only during the summer. 23:07:56 "Assuming folklore dog‐equivalent human years for "dog years" | Use folklore human‐equivalent dog years instead" 23:08:06 hellochaf. pooch! 23:08:09 That gave 28 dog years for 1460 days. 23:08:16 `cat bin/python 23:08:16 sleep 3; /usr/bin/python "$@" 23:08:20 `rm bin/python 23:08:23 No output. 23:08:49 int-e: the main think `revert is buggy about, is reverting file creation. 23:08:59 It says 52.14 days in a dog year. 23:09:16 boily hi 23:09:25 we're discussing pooch mortality 23:09:30 52 days 3 hours 25 minutes 42.86 seconds. 23:09:52 `culprits bin/python 23:09:56 oerjan izabera 23:10:05 What's that all about? 23:10:33 shachaf: izabera made a joke about python being slow 23:10:53 then int-e tried to revert it, but got caught by the bug 23:11:29 -!- hppavilion[1] has quit (Ping timeout: 276 seconds). 23:11:52 `? izabera 23:11:54 izabera? ¯\(°​_o)/¯ 23:12:12 `learn izabera is probably implemented in bash. 23:12:15 Learned 'izabera': izabera is probably implemented in bash. 23:12:18 oerjan: I'll pretend I planned for you to fix it for me. 23:12:18 fizzie: AAAAAAAAAAURGH! 23:12:24 I didn't, but it's a good lie. I think. 23:12:48 `learn izabera is a tachyherpetologist. They are probably implemented in bash. 23:12:50 Learned 'izabera': izabera is a tachyherpetologist. They are probably implemented in bash. 23:13:09 -!- lynn__ has joined. 23:13:16 `? oerjan 23:13:17 Your famous mysterious evil overlord oerjan is a lazy expert in future computation. Also an antediluvian Norwegian who mildly dislikes Roald Dahl. He can never remember the word "amortized" so he put it here for convenience. His arch-nemesis is Betty Crocker. 23:13:17 izabera: izabellora. are you a man, woman, both, neither, other, won't answer, all of this? 23:13:22 `relcome lynn_ 23:13:23 ​lynn_: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 23:13:27 *thing 23:13:37 that's a little rude, don't you think? 23:14:30 -!- lynn_ has quit (Ping timeout: 252 seconds). 23:16:11 flash forward to 2050, when you can get lynched for suggesting someone has a gender. 23:17:58 2015* 23:18:33 *any gender 23:18:42 i realize i was unclear. 23:28:15 In fact, just suggesting might get you lynched these days. It doesn't really matter what. 23:28:34 -!- adu has joined. 23:30:34 -!- carado has quit (Remote host closed the connection). 23:30:42 -!- carado has joined. 23:39:07 -!- boily has quit (Quit: ACADEMIC CHICKEN). 23:44:26 -!- hppavilion[1] has joined. 23:52:44 -!- lynn_ has joined. 23:53:29 -!- idris-bot has quit (Quit: Terminated). 23:54:38 -!- Melvar has quit (Quit: rebooting). 23:55:32 -!- lynn__ has quit (Ping timeout: 256 seconds). 23:59:00 -!- Melvar has joined.