00:00:01 Trufax 00:01:08 I'm going to be honest. The only thing I've learned in math that I haven't learned from khan academy/programming is quadratics. Now, I know that they have go go through the hoops with everyone else, but it gets frustrating 00:01:33 I'm done with school. already forgetting large swabs of it, and it feels good. liberating, even. 00:01:47 And I've only had 2 teachers, ever, that actually cared 00:01:50 Math education *in particular* is pretty dang messed up. 00:02:08 Doesn't help that they are paid minimum wage, or close to it 00:02:09 Pretty much everyone thinks of math as essentially being magic rituals performed to arcane runes. 00:02:11 now I'm seeing my bro still going through it, and telling him “suffer!”. I love my bro. 00:02:26 Haha that's pretty good 00:02:40 * pikhq isn't in school or anything, just bitter about the system. :) 00:03:09 * CrazyM4n is in school and is very bitter about the system 00:04:14 CrazyM4n: how many years left in this glorious communal purgatory? 00:04:35 3.8 00:04:50 Then shooting for MIT 00:04:53 Quick 00:04:58 Good luck with that. 00:04:59 Gotta write more code 00:05:21 Bicyclidine: \in. 00:05:24 By 3 years I should have enough code in my github to at least get me somewhere :P 00:05:26 (Slightly late.) 00:05:35 math is hard, let's go shopping 00:05:55 Hah, so about them esoteric languages 00:06:03 Speaking as an employed programmer sans college degree: yes, that is a great idea. 00:06:44 I'd hate to be employed as a programmer. I'd think that if I were to program, I'd like to be self employed 00:06:54 Which is kinda what I want to do 00:07:06 Eh, I'm only a couple steps away from that. 00:07:08 -!- not^v has joined. 00:07:15 That must be nice 00:07:32 We can fit the entire company in a couple of vehicles. :P 00:07:33 I'm employed as a Software Developer. we don't say “programmer”. it's filthy :P 00:07:53 Okay, okay, my business card says "software engineer". 00:07:56 The second I hit 18 and get a tax ID I'm going to start selling android apps 00:08:18 As far as I'm aware, you don't need to be 18 for that... 00:08:26 Welp 00:08:43 Also, when you're 18 that might not be a thing that is all that interesting to do. :) 00:08:55 Never said it would be interesting 00:09:13 I'm pretty good at it, and it would make me money, and it's pretty fun to code 00:09:27 So, it's kinda a win all around situation 00:09:33 * boily is jealous of pikhq “I wanna have cards too...” 00:09:34 Let's go with "lucrative" then. You're what, 14, 15? 00:09:54 Yes 00:10:06 In 2018 Android apps just might not matter. 00:10:28 I don't see android dieing any time soom 00:10:31 ... Or they might matter heavily still, in which case I'm speaking irrelevancies. :) 00:10:47 And if it does die, there's always a new mobile thing 00:10:55 Mobile is a giant market, after all 00:11:00 Well yes. There's always *something* new. 00:11:51 As long as it's not monopolized by some closed economy shady Microsoft business, it'll be ok 00:11:57 -!- not^v has quit (Ping timeout: 272 seconds). 00:12:34 IMHO, go for something where there is a guarantee of an everlasting demand, e.g. healthcare, transport, logistics, public services, ecology... 00:12:48 -!- not^v has joined. 00:13:10 also, I see you're having a pretty healthy attitude towards closed source :D 00:14:13 Haha, it's not the closed sourceness. It's the "Microsoft controls every aspect of this" I don't like 00:14:39 E.g: i have to type my Microsoft password to log onto my Microsoft windows 8 laptop 00:14:41 No joke 00:14:58 Believe it or not, that's actually an entirely optional feature. 00:15:11 Looked in the options a while ago 00:15:33 You can turn off the password on wake up, but not on boot 00:15:43 Or maybe I'm oblivious 00:15:59 You could also write the software for a VM and then run on other computers; for example a program written for Famicom will also run on emulators. 00:16:24 Then it can be use regardless if it is Android or old or new mobile or desktop computers. 00:17:16 Simulating a whole nother os/architecture on a phone is bound to be terribly slow 00:17:30 At least, simulating a modern os 00:18:04 “a whole nother” is a fascinating phrase. 00:18:46 Not grammatically correct, but it sounds good and I catch myself using it a lot 00:19:03 Then simulate a slower system 00:19:41 Or, you can make it a Harvard based system so that it can be compiled into a native code 00:19:47 It’s pervasive. I wouldn’t call it “not correct”. Just an interesting history. 00:20:10 `? nother 00:20:11 nother? ¯\(°​_o)/¯ 00:20:55 I'm tempted to add the whole of it to the wisdom, but I feel I already uhm... corrupted, yeah, corrupted is a nice word here... it quite a bit. 00:20:56 Like https://play.google.com/store/apps/details?id=com.Lukas.Fast64 or https://play.google.com/store/apps/details?id=ru.meefik.linuxdeploy 00:21:34 However you haven't got the full feature unless the program is usable with pipes and that stuff too 00:21:36 Wouldn't call the latter a simulation/emulation, but hey, it's an os on an os 00:21:43 Reanalysis is usually fun. 00:22:12 There is also Inferno, which is designed to be an operating system which can run standalone or in any other operating system, with binaries that can work on any computer 00:22:54 There's also some stuff like Wine or ReactOS, made to pretty much replace a need for that OS 00:24:06 Wine and ReactOS are both for x86 though 00:24:27 It is good if you are going to run x86 Windows programs, but maybe the computer won't be x86 00:25:00 I've never seen a computer that isn't x86 00:25:06 Well 00:25:08 Well, then pretty much the entire point would be gone. 00:25:15 I guess 00:26:08 -!- Imaginer1 has joined. 00:27:18 uh, how do I message nickserv with my password? 00:27:52 Imaginer1: Type NS HELP for information about Nickserv. 00:28:10 In the sense that wine only provides the context, but the machine code runs directly, to avoid the overhead of emulation. Else you can just run a VM. 00:28:32 Ah, regain. 00:28:43 NES/Famicom already has protocols for gamepad, keyboard, mouse, drawing tablet, tape, light gun, disks, and even MIDI, so you can write the program for NES/Famicom and then run it in emulator too 00:28:45 I guess not. 00:29:24 There. 00:32:12 That's pretty cool, actually 00:32:27 But that's given that the target platform has NES emulators 00:32:34 This is the niche that java fits 00:33:00 zzo38: tape? where there any official peripherals for the fami that had tape? 00:33:13 Yes, but there are many NES emulators anyways. 00:33:22 boily: Yes, the tape is connected through the keyboard. 00:34:06 I am intrigued. 00:34:50 * boily searches on google images. “heh, only 9800 ¥!” 00:35:30 It has been suggested to use OekaKids (drawing tablet) protocol for touch-screen interfaces, so I suppose you can use that too. 00:37:35 Infocom has also made Z-machine code to implement the interpreter on many computers. There are now many interpreters but they are defective in various ways; I have written "Aimfiz" which is a correct (as far as I can tell) Z-code interpreter. 00:38:11 Infocom has also made a "D-machine code" which has some relations to Z-machine code. 00:42:41 There is even an unofficial printer protocol for Famicom, I think. 00:43:04 Is Famicom home brewing really a big thing? 00:44:16 I have written some programs for Famicom. 00:46:32 That's cool 00:46:47 *kssh* this is Imaginer1 to Esoteric do you read me *kssh* 00:47:21 Imaginer1: Yes, I can read 00:47:45 *kssht* we hear ya Imaginer1, rodger *kssht* 00:48:09 *kssh* arright I'm suffering from some, uh... *kssht* 00:48:17 *kssht* boredom, over. *kssht* 00:48:27 * boily uses a highly technical procedure known as PM on Imaginer1 00:50:39 wat 00:50:46 I'm using a horrible IRC client 00:50:49 percussive maintenance :D 00:50:56 Ahh. 00:51:12 http://pastebin.com/sj7ysgbE# 00:51:16 Python entropic data type. 00:51:30 Don't use foo.value, use foo.getvalue() and it changes the value slightly and randomly after reading it. 00:53:21 Then you should write a good IRC client? 00:53:50 Me? Write a good irc client? -Write-? 00:53:55 I couldn't, could I? 00:53:57 O.O 00:54:08 I'm so horrified of that prospect. 00:54:19 and now I must do it. 00:54:36 Can anyone point me to resources for linking IRC with Python? 00:55:58 i think the usual is using twistd? 00:56:00 I don't know much about programming in Python. 00:56:02 or maybe that's just for bots. 00:56:20 Oh, I'd still love to write bots. 00:56:26 Why are you horrified of it? 00:56:34 It sounds difficult. 00:56:36 writing bots is fun! exploiting them even funner! 00:56:38 It sounds like... /power/. 00:56:46 >:D 00:57:05 I'm not 'scared', I'm just... I feel like I'm learning programming at an astonishing rate and like wow 00:57:06 I have written an IRC client myself, so I know how too, but I didn't use any IRC client library. 00:57:07 Over on the TPPI channel we would mess with the bot all the tine 00:57:11 It was pretty great 00:57:12 it ain't difficult at all. rig some library, and go wild! (but you can't touch weather. weather is mine, even if lambdabot stole it.) 00:57:19 Imaginer1: ↑ 00:57:30 weather...? 00:57:36 there's a weather library 00:58:06 I want a weather library for SQLite. 00:58:44 I already have 'Mkbot' which makes Markov chains. What if I made a bot that could let you supply a pastebin and he would return a short markov chain from it? 00:59:09 Imaginer1: weather is verboten. it is an edict. I decree it. 00:59:25 also, what are your approximate geographic coördinates, and body weigh? 00:59:26 -!- sebbu has quit (Ping timeout: 276 seconds). 00:59:54 I'm feeling really uncomfortable I don't know what verboten or edict mean and you spelled coordinates with an ö 01:00:20 Then look it up in dictionary and then you can learn. 01:00:43 There was a PDF file somewhere in the topic or whatever you call it 01:01:00 Arright... I thought it was programmer slang. :S 01:01:08 I'm just nervous in half these rooms gosh 01:01:29 c̈oor̈d̈ïn̈äẗës̈ 01:01:38 Just don't be an idiot and I think it will be ok 01:01:41 you should read the PDF. letters with diacritics are your friends. roast beef tastes good. 01:02:04 CrazyM4n: that is not a particularly nice thing to say 01:02:16 what pdf, are you talking to me? 01:02:20 i'M SUCH AN IDIOT GAHDS 01:02:21 *flails* 01:03:20 There is wisdom.pdf in the topic, but also read all of the IRC logs (also in the topic message) and my Dungeons&Dragons recording 01:03:57 `` head -n1 bin/danddreclist 01:03:58 echo -n "$(basename "$0")${@:+ }$@: "; tail -n+2 "$0" | xargs; echo http://zzo38computer.org/dnd/recording/level20.tex; exit 01:04:05 Oh, there... 01:04:43 '@ is an OS made out of only the finest vapor' 01:04:50 a pure magic smoke OS must be very effective 01:05:28 What is this pdf. 01:05:30 Omg. 01:05:50 boily: what is your approximate body kurd? 01:06:38 kurd??? 01:06:43 as in the cheese kind? 01:07:07 Imaginer1: it is the PDF. I spent quite some time updating it. it has pineapples. 01:07:12 as in the kurdistan kind 01:07:18 or the kind you play on a piano 01:07:24 * boily facepalms 01:07:57 well, of the piano kind, I'm partial towards Eb. it sounds quite nice. 01:08:40 You can play piano? 01:08:54 What kind of music? 01:09:11 `unidecode ♭ 01:09:12 ​[U+266D MUSIC FLAT SIGN] 01:09:28 Well. If I was to write a bot what should it do? 01:09:39 Play Pokemon card? 01:09:45 jam 01:09:47 (with a non-stupid AI) 01:09:54 Too difficult. 01:10:01 And... well... 01:10:11 lame. 01:10:19 zzo38: I studied the classics for about twelve years. I really like Bach and Bartók. both are genius, and a joy to play. 01:10:19 You could make an OP deck 01:11:22 -!- Imaginer1 has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client). 01:11:57 I like Bach too 01:12:20 he disappeared... 01:12:56 @tell Imaginer1 you shouldn't disappear. become one with your esoteric side. feel at ease. 01:12:57 Consider it noted. 01:17:23 Woo, homework finished 01:17:32 Now to write that Fibonacci generator 01:17:46 -!- CrazyM4n has quit (Quit: Bye). 01:18:45 -!- CrazyM4n has joined. 01:18:54 finally on a computer. i feel so powerful 01:20:08 -!- CrazyM4n has quit (Client Quit). 01:20:33 -!- CrazyM4n has joined. 01:23:43 -!- Imaginer1 has joined. 01:23:50 Alright. I'm looking into the twisted module. 01:23:52 ^^ 01:25:17 Oh dear, I know so little about irc in the first place 01:25:28 I'm only 17 maybe I'm not cut out for this 01:25:36 :S 01:26:13 CrazyM4n: Fibonacci generator meaning what? 01:27:05 Melvar: I made a language http://esolangs.org/wiki/Brainfunge and I´m trying to write a program that prints fibonacci numbers 01:27:15 Ah, I saw that. 01:27:20 I know it´s possible but it´s a pain in the butt 01:27:30 Oh, in your esolang. 01:27:34 I'm not normally one for yet -another- brainfuck derivative... but.... 01:27:57 ( :let fibs : Stream Nat; fibs = 0 :: 1 :: [| fibs + tail fibs |] 01:27:57 defined 01:27:58 same here. it was going to just kinda be 2d brainfuck but then I was like ¨ooh commands¨ 01:28:20 ( take 10 fibs 01:28:23 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] : Vect 10 Nat 01:28:41 god i love functional languages 01:29:38 http://sprunge.us/ChFA I´m in the middle of writing hello world 01:29:52 how much is Brainfunge different from Befunge? 01:30:06 uh. I couldn´t tell you. I don´t know befunge 01:30:11 it´s definately simpler 01:30:27 but therefore programs are more verbose to write 01:30:39 it just seems to me that Brainfunge is a simpler, stripped down version of Befunge with a different reportoire of instructions 01:30:53 -!- lifthras1ir has changed nick to lifthrasiir. 01:31:03 meh for the nick collision 01:31:14 like I said, I know no befunge except from the pointer commands + how the pointer works 01:31:27 and I shamelessly rippped those and put them in my language 01:31:33 the rest is coincedence 01:31:47 -!- Bicyclidine has quit (Ping timeout: 255 seconds). 01:33:35 either way it was a heck of a lot of fun to write 01:34:53 i want another language that has musical source codeeee 01:37:59 CrazyM4ny: Befunge ^v<>~&,.0123456789+*$:&@ = Brainfunge ^v<>IiOo0123456789+*`!\@ respectively; Befunge - / :0`!_ :0`| = Brainfunge &- &/ H V 01:38:08 -!- boily has quit (Quit: UNRESPONSIVE CHICKEN). 01:38:28 -!- doesthiswork has quit (Quit: Leaving.). 01:38:30 I think this correspondence is enough to classify Brainfunge as a rather trivial derivative of Befunge, and not Brainfuck. 01:39:46 (two instructions from Brainfuge are missing in Befunge-93, but they are available in Funge-98 as an extension. 01:39:49 ) 01:49:01 oh. 01:49:03 well then. 01:49:18 i wasn´t aware that twhat i made was almost a direct dialect of befunge 01:49:26 should I rename it? 01:49:40 maybe to Simplefunge or something 01:50:40 -!- Imaginer1 has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client). 02:01:04 -!- quintopi1 has changed nick to quintopia. 02:01:10 -!- quintopia has quit (Changing host). 02:01:10 -!- quintopia has joined. 02:30:44 so 02:30:58 I finally bothered working on addition that doesn´t pop 02:31:05 ¨!2|!2|2|3|+¨ 02:31:26 haven´t tested it 02:34:48 http://prntscr.com/4jsjcl 02:39:33 scratch that; doesn´t work 02:39:34 :P 02:51:53 so apparently that piece of code works 02:52:00 but i implemented ¨|¨ incorrectly 02:52:20 i feel so dumb 02:55:24 Why did you pick ¨ in an otherwise ascii-looking thing? 02:55:37 uh 02:55:43 hexchat is really weird 02:55:54 ¨ is a quote and ´ is an apostrophe 02:56:02 instead of normal things 02:59:13 Maybe you should change the settings in the program? 02:59:46 let me look for a setting that sounds related 03:00:01 Those are a spacing diaeresis and a spacing acute. 03:00:20 What’s your keyboard layout, locale, and input method? 03:00:42 typing into notepad results in normal characters 03:00:53 "' 03:00:55 vs 03:00:58 ¨´ 03:01:06 Oh, Windows? Never mind, no idea. 03:01:29 there, fixed it 03:01:30 -!- Imaginer1 has joined. 03:01:34 "´ 03:01:37 never mind 03:01:40 Howdy. 03:01:40 Not quite. 03:02:35 n̈ 03:02:49 03:02:51 ... 03:03:10 hexchat is so broken 03:06:51 AFAIU, GTK on Windows tends to have various problems because it was designed for Unixoid environments with X, and wants functionality that is difficult to cobble together on Windows. 03:07:35 it is 03:18:02 -!- Imaginer1 has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client). 03:45:09 -!- not^v has quit (Ping timeout: 272 seconds). 03:51:03 -!- CrazyM4n has quit (Quit: Leaving). 03:52:42 -!- MDude has changed nick to MDream. 04:03:12 -!- not^v has joined. 04:52:19 -!- not^v has quit (Quit: http://i.imgur.com/Akc6r.gif). 05:57:56 -!- oerjan has joined. 06:21:32 `run gforth -e '-5 2 / . bye' # wasn't expecting that 06:21:33 ​-3 06:21:56 It's a floored division, not the more usual truncating one. (Both are apparently allowed.) 06:23:32 -!- sebbu has joined. 06:24:08 -!- sebbu has quit (Changing host). 06:24:09 -!- sebbu has joined. 06:24:18 `run gforth -e 's" FLOORED" environment? [if] . [then] bye' # see? 06:24:19 ​-1 06:45:56 -!- Frooxius has quit (Quit: *bubbles away*). 06:55:37 Is there a codepad thingy where others can edit it? 06:55:47 (codepad is some snippet pasting site) 06:56:31 ah. lpaste.net can do it 06:58:52 I think ideone too. 06:59:12 And there was one with real-time collaborative editing, with the whole "several cursors" thing and all. 07:01:32 I can't remember which one it was that I saw, Google finds several. 07:03:12 one that runs in the browser? 07:03:21 Yes. 07:03:34 which one did you find? 07:03:48 At least http://collabedit.com/ (the "try it now" link). 07:04:01 And http://codebunk.com/ 07:04:22 Also I think it was codebunk.com that I saw, the interface looks vaguely familiar. 07:04:30 Neither of those require any accounts or anything. 07:05:11 Also http://demo.firepad.io/ 07:05:32 Firepad is the bit that runs quite a lot of them, that's their own demo page. 07:06:20 They have a couple of "Built with Firepad" links on the main http://firepad.io/ page that most sound like they'd fit the bill. 07:07:05 CoderPad.io seems to have fancy "also runs the code" support. 07:07:53 are there any free ones? 07:08:00 coderpad and codebank I'm not so sure 07:08:06 there's a "pricing" info 07:08:30 anyway: http://lpaste.net/3911621673622700032 07:08:38 people are welcome to add more 07:08:50 (these are all optional directives as discussed yesterday) 07:09:11 It just makes sense to define a set of optional directives to establish common namings 07:10:13 How do you envision something like #MEM_WRAP_LEFT #MEM_UNBOUNDED_RIGHT to work? 07:10:50 Wrap to the furthest-on-the-right cell that's ever been visited? 07:11:48 or that's ever been allocated 07:12:15 That sounds quite vague, since you have no control over that. 07:12:34 True 07:12:50 furthest-on-the-right ever been visited makes more sense I assume 07:13:24 Having a name for all the unlikely combinations (like who's ever heard of #MEM_UNBOUNDED_LEFT #MEM_WRAP_RIGHT) might be overly complex. (Disclaimer: I'm not all that interested in the world of brainfuck and probably shouldn't be listened to.) 07:17:00 I'm not planning to have names for combinations of multiple directives 07:17:07 you can just use multiple directives in the code 07:22:18 No, I mean, that's already a name for the rather unlikely configuration, even if it has multiple directives. 07:22:21 (Gone now.) 07:38:46 damn 07:38:50 how does one undo git add again :( 07:49:26 ah. you need to specify a path for git reset 07:49:46 -!- AnotherTest has joined. 08:24:14 -!- Patashu has joined. 08:33:54 "git status" is supposed to have a helpful reminder of that at the top of the "staged changes" list. 08:36:36 it does 08:36:41 mroman_: Bookmark this: http://sethrobertson.github.io/GitFixUm/fixup.html 08:47:09 The javascript-driven "current path" machinery could do with a few lines of more intelligence. 08:47:29 Going backwards by clicking the path links just appends those same questions. 09:05:12 wait 09:05:22 A -> B -> C if you click on B it's A -> B -> C -> B? 09:05:42 (are you talking about breadcrumbs?) 09:06:27 Yes. 09:06:46 And the regular back button doesn't affect them at all, of course. 09:07:09 It's fine for a single "playthrough" of the document, but awkward for browsing around. 09:09:41 Frank Herbert's guide to computing circa 1980: http://chiclassiccomp.org/docs/content/books/WithoutMeYoureNothing_FrankHerbert.pdf 09:15:28 "It is our belief that you have been lied to about computers as part of a conspiracy—sometimes deliberate, sometimes unconscious—to keep them in the hands of an elite few." 09:17:02 it's more subtle now 09:17:24 you have computers but increasingly, you don't control them. 09:18:43 COMPUTERS DO NOT MAKE ERRORS. 09:18:49 Quantum physics would beg to differ. 09:19:24 By that logic humans make no errors 09:19:28 but god does 09:19:54 (or some other thing that may have created us) 09:22:44 ion: it's worse. they (fairly) reliably do as they are told 09:33:49 It's subtle 09:34:00 but given we program some AI that can make decisions 09:34:18 then that AI certainly should be able to do errors 09:34:27 that can't be reasonably be linked to programmers? 09:34:34 -be 09:36:45 good headline, "Computers are not Oracles" 09:38:39 There's an Oracle though that writes Software for Computers. 09:51:33 fungot: Are you an Oracle Y/N? 09:51:33 fizzie: you are never gonna succeed in convincing a sizable proportion of scheme users. 09:51:46 I think that was a "yes, and here's a prediction for you". 09:52:57 wow, fun got outdid itself there. 09:57:01 -!- J_Arcane_ has joined. 09:57:27 fungot 09:58:21 `unidecode fungot 09:58:22 oerjan: uh i thinks the " dump fnord from teh phone via teh cable" works not when fnord is installed... b/ c they dont understand the trace 09:58:22 ​[U+0066 LATIN SMALL LETTER F] [U+0075 LATIN SMALL LETTER U] [U+006E LATIN SMALL LETTER N] [U+0067 LATIN SMALL LETTER G] [U+006F LATIN SMALL LETTER O] [U+0074 LATIN SMALL LETTER T] 09:58:34 -!- J_Arcane has quit (Ping timeout: 252 seconds). 09:58:41 why didn't it respond to int-e 09:58:41 -!- J_Arcane_ has changed nick to J_Arcane. 09:58:57 `unidecode fungot 09:58:57 ​[U+0066 LATIN SMALL LETTER F] [U+0075 LATIN SMALL LETTER U] [U+006E LATIN SMALL LETTER N] [U+FEFF ZERO WIDTH NO-BREAK SPACE] [U+0067 LATIN SMALL LETTER G] [U+006F LATIN SMALL LETTER O] [U+0074 LATIN SMALL LETTER T] 09:59:38 hm that's weird 09:59:51 `unidecode > ​[ 09:59:52 ​[U+003E GREATER-THAN SIGN] [U+0020 SPACE] [U+200B ZERO WIDTH SPACE] [U+005B LEFT SQUARE BRACKET] 09:59:59 If Lisp is the language of AI, does that mean that the first act of a true AI will be to write its own Lisp? 10:00:18 you are using a different zero width space which putty _doesn't_ copy and paste 10:01:06 hm it pastes if i copy it from the logs instead 10:01:09 The FEFF space. 10:01:24 but not if a copy directly from irssi 10:01:32 nah, I don't believe in this "lisp is the language of AI" nonsense 10:02:35 b_jonas: it does seem to be fading in popularity in that scene (norvig went Python, lots of classes are teaching it in Java, etc.), though apparently it's gaining another in quantum computing. 10:03:22 I heard the other day that our university went to Scala for intro-to-programming courses. 10:03:31 -!- oerjan has quit (Quit: Later). 10:03:50 There are still a number of intro courses using Racket, largely on the strength of HTDP. 10:03:50 They were Scheme when I did them, then they switched to Java, then Java for CS students and Python for other students, then Python for all, and now Scala for at least CS students. 10:04:32 (Also they switched the Scheme from SICP to HtDP the year before I did them, I think.) 10:05:00 Well, that's not entirely accurate: they split the course in half, and switched the first half to HtDP and the second to PLAI. 10:06:06 I'm slowly working through HTDP right now, actually. 10:06:29 @tell oerjan strangely, xterm with fixed font even displays that non-breaking space: http://int-e.eu/~bf3/tmp/nbspace.png 10:06:29 Consider it noted. 10:08:25 J_Arcane: I'm not saying lisp is bad, but I don't see why you'd have to consider it "the language of AI". 10:09:04 I mean, back when there were only two or three languages, fortran and lisp, maybe you could have said it was a better language for AI than fortran, because it has dynamically allocated structures and stuff like that, 10:09:09 but now thta's pointless. 10:09:39 I think "the language of AI" is just a statement that got stuck from that time. 10:09:45 b_jonas: Well, partly it's historical: it WAS the language of AI for a long time. And partly, there are some strong arguments from people far smarter than me that the way it handles data structures etc. do make AI-type tasks easier, but I wouldn't presume to take them on. 10:09:53 prolog has also been the language of ai for a while 10:12:08 of course MIT's AI lab developed the Lisp machine, and the endeavour left a lasting impression :) 10:12:51 -!- boily has joined. 10:13:24 J_Arcane: Just don't believe HtDP when it tries to tell you that lambda is a special case of "local". 10:14:26 http://htdp.org/2003-09-26/Book/curriculum-Z-H-30.html "-- it is not surprising that Scheme provides a short-hand for this particular, frequent use of local --" 10:14:30 (Pet peeve.) 10:15:35 Oh it pretends that lambdas have a name underneath. 10:17:10 And "local" is of course not any sort of R5RS standard form. 10:17:15 Well, in Racket, technically, they do. Even the docs will tell you that. 10:17:39 Racket didn't exist when I was reading this. 10:17:47 It was just PLT Scheme. 10:18:02 Yeah. I'm reading the 2nd Edition, which is post Racket. 10:18:19 Oh, they've made a new one? 10:18:35 Yup: http://www.ccs.neu.edu/home/matthias/HtDP2e/ 10:19:02 It's still in progress I think technically, but the stable edition gets updated in time with new Racket releases. 10:20:11 I'm probably just grumbly because I had read SICP and done the Scheme course homework for fun while doing my civil service thing (before starting at the university), and then they went and switched. 10:20:24 PLAI I think I liked. 10:20:32 Even though we didn't cover it terribly thoroughly. 10:21:11 And it was't also quite released yet, we used a beta. 10:21:16 Heh heh. I still find the whole "design pattern" thing a bit weird, but then I also realized I've picked up some bad design habits so I'm trying to force myself to do them anyway. 10:23:42 hmm "Generative Recursion" is an odd term. 10:30:29 It's one of their own terms, I think. 10:32:12 design patterns are a scam for the most part, and those that matter shouldn't be explicitely named in the code. 10:37:46 boily: Well aren't you just a Flyweight Proxy Facade Bridge Adapter. 10:38:21 Heh. 10:40:25 It just manages to seem more verbose while being less obviously interpretable, and I can't help noticing I don't see any of it in the wild ... 10:41:00 J_Arcane: https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition/ sure you do 10:41:47 See e.g. com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.impl.strategies.adapters.LoopContextStateRetrievalToSingleStepOutputGenerationAdapter. 10:41:59 It *is* helpful for "getting" how that style of functional programming can be built. 10:42:09 fizzie: I mean in the Racket community. 10:42:15 Oh, okay. 10:44:05 I don't see a lot of "Image Number WorldState -> String" and the like in actual Racket code in the real world, in fact there's a non-trivial amount of the usual Lisper thing of "But Lisp is so easy to read, so clearly I don't need to comment" 10:44:53 IsEvenlyDivisibleStrategyFactory.java [separated into interface and two implementations, one for Fizz, oone for Buzz. obviously.] 10:45:08 fizzie: you are vile, but then I have to battle against GenericAbstractControllerFactory and stuff like that daily, so your jab reaches me. 10:45:27 if (NumberIsMultipleOfAnotherNumberVerifier.numberIsMultipleOfAnotherNumber(theInteger, FizzStrategyConstants.FIZZ_INTEGER_CONSTANT_VALUE)) ... 10:45:36 fizzie: thanks 10:46:47 (that class also implements the RedundantIf design pattern: if (foo) { return true; } else { return false }.) 10:47:40 I'm going to have a very interesting day, what with the daymares you're inducing... 10:48:00 int-e: ah yes, we love that 10:48:31 (sorry, I forgot a semicolon there.) 10:48:43 I picked up RedundantIf somewhere and keep having to remind myself not to do things like that ... 10:51:14 I may bitch against patterns, but I know I'm a little bit too trigger happy with java templates. but we have code review at my job, and my boss always give me a comment along the lines of "DON'T DO THAT AGAIN TO MY EYES!" 10:52:34 An early version of my alphabetic word search had an (if (equal? ...) #t #f) in it ... :shame: 10:55:01 Which one is better/more professional, the RedundantIf pattern or the RedundantConditionalExpression (x ? true : false) pattern? 10:55:30 fungot: your opinion on the matter? 10:55:31 boily: well i can tell 10:55:34 fizzie: the redundant cat is worse 10:55:54 fungot: and? 10:55:54 boily: but subr is hardly new :) and my philosophy class on friday) are now downloadable on the website 10:56:01 fungot: so? 10:56:01 boily: why do programmers spend so much time spent programming in c++ blinds you to alternative ways of doing it all the time with things other than lists... why use lists? all i saw right now 10:56:33 fungot: that is just so lisp. 10:56:33 J_Arcane: what is that 10:57:12 J_Arcane: I just grepped my old Scheme sources for the course, and there's a (if (= spd setspeed) #f #t) in there, which is not measurably better. 10:57:18 fungot: can you write a factory that calls another factory on a class multiple times folded under each other, giving each element of a list as parameter to the factory? 10:57:19 b_jonas: fnord/ fnord has the thing that worries me more than a thousand repeats to return to 10:58:30 And actually also an (if (tree-find-item tree path pred?) #t #f) in another file. 10:58:39 * int-e flogs fungot with an extra-large maple leaf. 10:58:40 int-e: 3 helios24: ps ( thread-id 28) 10:58:42 It's easy enough to do by accident. 10:59:17 fungot: no, not fnord, FOLD. also known as reduce or inject or insert. 10:59:17 b_jonas: sounds useful. thanks. (: i've been thinking... does any of you ever use scheme to do this. 10:59:30 -!- Phantom_Hoover has joined. 10:59:42 fizzie: I think sometimes I maybe still have some hidden BASIC habits I haven't squashed yet, plus some others I picked up from very finicky Python courses. 11:00:00 That last one might even have some minor function, since "tree-find-item" sounds like something that might return something that's not #t. 11:00:41 (But the = is not going to.) 11:00:45 The idea of everything returning an explicit value is still a thing I have to remind myself happens; I wrote VIOLET in part as an exercise in forcing myself to play with that idea. 11:02:23 fizzie: Yeah, it depends on if your Scheme at the time did 'everything not #f is #t', I guess. In CL you sometimes have to do weird little patterns as well, because there's no 'false', only '(), and you sometimes need to know the difference between an actual '() and a '() that just means False. 11:06:02 @metar CYUL 11:06:02 CYUL 051000Z 13006KT 15SM FEW100 FEW150 20/17 A3000 RMK AC1AC1 SLP160 DENSITY ALT 600FT 11:06:40 -!- boily has quit (Quit: GASEOUS CHICKEN). 11:20:41 I guess that's like checking the weather before deciding on the phase (of matter) of the quit message chicken? 11:27:11 fungot: are you a scheme user? 11:27:11 mroman_: i'm at work. i think 11:27:33 fungot: Bad sign if you're not sure about that. 11:27:33 fizzie: please don't say swear. all of them are gross, because they're showing the montage of all the movie people who died 11:28:59 fungot: I swear I'll never use Scheme. 11:28:59 mroman_: shouldn't be too difficult to parse it all. :) i think that 11:31:12 Lisp was made to be parsed. 11:31:17 That's the beauty of it :) 11:35:28 Indeed. 11:35:53 (my next book I want to get through is learning C through creating a Lisp. :D) 11:37:12 Luckily I can already cross that off my list 11:37:20 (http://esolangs.org/wiki/Stlisp) 11:37:32 I also know Common Lisp a little bit 11:37:50 I think a dependently typed lisp would be a fun thing 11:39:44 ack 11:50:07 FizzBuzzOutputStrategyToFizzBuzzExceptionSafeOutputStrategyAdapter 11:50:48 I kind of want to write an academic wankery verssion of FizzBuzz in Haskell now 11:51:17 Taneb: Just as long as you prove it correct before you're done. 11:51:37 where the hell does it do FizzBuzz . 11:52:49 nope. this is insane 11:53:23 mroman_: Everywhere, but I think the concrete classes of com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.impl.strategies (FizzStrategy, BuzzStrategy and NoFizzNoBuzzStrategy) are quite close. 11:54:47 The actual numbers 3 and 5 are in com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.impl.strategies.constants.FizzStrategyConstants (FIZZ_INTEGER_CONSTANT_VALUE) and BuzzStrategyConstants. 11:54:56 NumberIsMultipleOfAnotherNumberVerifier.numberIsMultipleOfAnotherNumber(theInteger, FizzStrategyConstants.FIZZ_INTEGER_CONSTANT_VALUE)) 11:54:58 yep. 11:55:15 Jesus. 11:55:32 no Strategy Pattern to select the algorithm for the verification? 11:55:37 that's bad. 11:56:24 Oh yes, that's quite the omission. 11:56:40 Taneb: http://golf.shinh.org/p.rb?FizzBuzz 11:57:09 You can do it in 82B 11:58:11 But it doesn't have enough names of mathematicians in it when done that way, I'd guess. 11:58:57 Befunge is nicely high up in the list. 12:00:50 -!- Sgeo has quit (Read error: Connection reset by peer). 12:05:00 hey guys 12:05:10 so I'm completely rewriting RubyFunge 12:05:24 using a hash now instead of a matrix for Funge-Space 12:05:30 it works really well 12:05:36 :P 12:06:33 notogawa is a real beast in haskell golfing 12:07:24 much like clock is a beast in golfing in almost any language 12:07:24 (he golfs in so many languages and is always on the top in dozens of languages) 12:08:19 `run gforth -e ': fizzbuzz 1 begin dup 3 mod over 5 mod if if dup . else ." Fizz " then else if ." Buzz " else ." FizzBuzz " then then 1+ again ; fizzbuzz bye' # not golfed, just having fun 12:08:20 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 12:08:50 I really like how nested Forth ifs read. 12:09:29 p q if if a else b then else if c else d then then 12:11:07 dafuq 12:13:08 Some people[weasel words] would write p q if if a else b endif else if c else d endif endif but why are you even writing Forth at that point? 12:15:43 Taneb: I’m not sure how a usable one would look, but someone made a simple dependently typed language with lisp syntax as a poc for compiling things using the Idris compiler as a library. 12:16:52 -!- impomatic_ has quit (Ping timeout: 245 seconds). 12:17:40 -!- impomatic_ has joined. 12:17:58 Is endif valid forth? 12:24:06 -!- Patashu_ has joined. 12:24:06 -!- Patashu has quit (Disconnected by services). 12:25:58 -!- J_Arcane has quit (Quit: (set-jarcane-connect! J_Arcane #f)). 12:26:54 It's valid in gforth, and I think several others, but it's not valid "traditional" Forth, nor is it in ANS Forth. 12:28:03 I'm pretty sure you can't write endif in the firmware of your SparcStation, for example. 12:30:17 "Joss, the JOHNNIAC Open Shop System, was an early interactive calculator language similar in scope to Unix's bc(1) calculator, but with a rather more English-like syntax. We have a rudimentary implementation and two sample programs. We'd be very grateful to anyone who could supply documentation." 12:36:15 "endif"? 12:36:19 -!- impomatic_ has quit (Ping timeout: 252 seconds). 12:36:51 It's a gforth-et-al. synonym for "then". 12:37:02 endif makes more sense than then imo 12:38:22 Sure, sense. But it's just a word, and non-portable. (Granted, you could just define your own where not provided.) 12:41:11 `run gforth -e ': endthen ( split the difference ) postpone then ; immediate : test dup 0> if . else drop endthen ; -5 test 5 test bye' 12:41:11 5 12:51:42 `run gforth -e ': endthan ( split the difference ) postpone then ; immediate : test dup 0> if . else drop endthan ; -5 test 5 test bye' 12:51:43 5 12:51:48 `run gforth -e ': endthun ( split the difference ) postpone then ; immediate : test dup 0> if . else drop endthan ; -5 test 5 test bye' 12:51:48 ​ \ *OS command line*:-1: Undefined word \ : endthun ( split the difference ) postpone then ; immediate : test dup 0> if . else drop >>>endthan<<< ; -5 test 5 test bye \ Backtrace: \ $40E44A68 throw \ $40E5AC68 no.extensions \ $40E483A0 compiler-notfound1 12:51:58 ok, so that probably really defines that word 13:00:45 -!- TieSoul has quit (Read error: Connection reset by peer). 13:02:04 -!- impomatic_ has joined. 13:03:04 I had a manual for JOSS. Sold it on eBay though. 13:03:14 I have too many computer books. Trying to get down to about 100. 13:04:46 -!- MDream has changed nick to MDude. 13:06:40 ouch 13:08:56 wait 13:09:03 you sold it without copying it? 13:09:09 :( 13:18:26 -!- mihow has joined. 13:32:18 mroman_ sorry it wasn't something I needed. 13:35:26 If you can't find a manual for JOSS, try JEAN. 13:46:27 Theres a few docs linked from the Wikipedia page. I suppose you've already seem those though http://en.wikipedia.org/wiki/JOSS 13:50:22 -!- Sprocklem has quit (Ping timeout: 240 seconds). 14:01:15 -!- Patashu has joined. 14:02:35 -!- impomatic_ has quit (Ping timeout: 252 seconds). 14:04:39 -!- Patashu_ has quit (Ping timeout: 255 seconds). 14:07:21 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds). 14:10:30 -!- pikhq has quit (Ping timeout: 272 seconds). 14:11:03 -!- pikhq has joined. 14:13:08 TELCOMP looks interesting as well 14:19:22 -!- Patashu has quit (Ping timeout: 245 seconds). 14:26:10 How close are sateellites to the earth actually? 14:27:07 35kkm 14:27:08 i see 14:29:49 smartwatches ey... 14:30:13 Is everything android based now? 14:31:15 -!- Sprocklem has joined. 14:32:56 i hope so 14:33:29 why? 14:33:43 It would be much more fun if there's more diversity 14:34:08 also I've started to associate Android with "bloatware" 14:34:45 also I don't want a smartwatch that requires an Android Phone to work well 14:34:56 it oughta be a standalone smartwatch 14:35:15 what should it do? 14:37:38 I don't know. 14:37:41 Being smart. 14:37:50 It should be smart and do smart things 14:38:03 besides displaying the time of course 14:38:15 and maybe have a runtime of at least 7 days 14:38:32 everything under 7 days is totally unacceptable in my eyes 14:38:39 i have very few ideas of what a smartwatch WITH a smartphone should do 14:38:48 I might as well strap a little nokia to my wrist and it'd run for a month straight 14:38:50 but basically not one for without a phone 14:39:13 It would be nice if it were able to send emergency signals to police/hospital or something like that 14:39:36 and make phone calls of course 14:39:37 :) 14:39:42 yeah, so much accidental calls 14:40:04 technically it should be a phone like the phones in the old days 14:40:07 but squished into a watch 14:40:10 so, you basically want 2 sims? one for your phone and one for your watch? 14:40:25 well I don't need a phone then if the smartwatch can do that 14:40:45 a phome squished into a watch is a horrible idea 14:40:55 I think it's a great idea 14:41:10 the display is big enough for phone functionality 14:41:17 probably even for gps maps functionality 14:41:58 although my eye sight is getting more terribly every month 14:42:00 :( 14:42:37 It would be star-trek like 14:42:43 you just press a button on the watch 14:42:54 say "Watch, call pizza delivery for me, would you" 14:43:00 and there you go 14:43:31 don't seex why it shouldn't send that to the phone 14:43:47 because the watch is a phone 14:44:03 I don't see why you need a phone if the watch is itself a phone 14:44:05 there were phones as watches 14:44:08 they all sucked 14:44:13 yeah 14:44:16 probably 14:44:17 never had one 14:44:19 also, try gps navigation on a bike 14:44:26 but know it's 2014 and I'm sure we can make it not suck 14:44:29 *now 14:44:40 "can't read map because it's on your fucking wrist" 14:44:58 those watches probably didn't have zoom 14:45:23 well 14:45:24 yeah, i totally want to ride a bike with no hands 14:45:30 that'll be perfect 14:45:33 "can't read map on my smartphone because it's in my fucking pocket" 14:45:36 ^- doesn't sound much better 14:45:43 You can ride a bike with no hands. 14:45:50 and I can ride a bike with no hands 14:46:07 -!- Imaginer1 has joined. 14:46:07 1. i won't do that for to long 2. you can't ride MY bike with no hands 14:46:17 well then your bike sucks 14:46:19 Howdy all 14:46:37 my bike is awesome 14:46:44 it's a brompton <3 14:47:16 back in the old days we duct taped paper maps to the steering bar 14:47:31 you'd have to do the same thing with a smartphone 14:47:41 or buy a holder for your smartphone 14:47:43 i don't, i have a finn 14:47:48 ? 14:48:12 http://getfinn.com/ 14:48:14 You have somebody from finnland to do navigation for you? 14:49:25 anyway I'd still love to have a watch that's also a phone 14:49:31 and has a battery life of at least 7 days 14:50:54 although speaker and microphone... 14:51:06 loudspeaker wouldn't be so great :( 14:51:13 but if it had headphones of some sort 14:51:28 oh 14:51:37 and it also has to function as an electronic wallet 14:51:42 and electronic bus/train ticket 14:52:01 possibly through those QR code's they already have for smartphone tickets 14:52:05 *codes 14:52:27 that'd be awesome 14:52:45 so you want a tiny smartphone to put around your wrist 14:52:51 I'm scared, but I think I'm gonna write a bot o.o 14:52:52 have fun 14:53:09 I'd call it cleverphone 14:53:12 ;) 14:53:23 Imaginer1: for IRC? 14:53:26 and why? 14:53:35 Because I'm... 14:53:43 I've never done it before? 14:53:45 :S 14:53:55 See, every time I start a project 14:54:03 there were one that i would vuy if it weren't that old 14:54:10 i choose a project that seems so daunting it's impossible to me. I feel like I don't know nearly enough, etc. 14:54:16 But then I learn. 14:54:16 Make sure to have adequate protection. 14:54:27 Imaginer1: just build around II? 14:54:38 II? 14:54:39 that's what i would do 14:55:07 I feel so inadequate in this room. Like all the time. Jeez. 14:55:20 Imaginer1: http://tools.suckless.org/ii/ 14:55:21 writing an irc bot isn't that hard :) 14:55:29 there's even irc libraries 14:55:35 Oh, wondeful 14:55:37 where you can install hooks for messages containing stuff 14:55:51 ok... ^^; 14:56:00 the hard part is writing the commands the bot should support :D 14:56:03 mroman_: http://www.shoutpedia.com/wp-content/uploads/2010/06/motorola-flipout.jpg 14:56:05 Like, can I somehow tell you where I am with coding? 14:56:19 My best thing, imo, could make bmp images of the mandelbrot set 14:56:26 that's, i think, the best thing I ever wrote 14:56:30 that doesn't look like a watch 14:56:32 but it's close I guess 14:56:38 Run an old mirc and some kind person will come along and turn it into an irc bot for you 14:56:46 it is a pretty awesome thinh 14:56:55 too bad it runs android 2.1 14:56:55 But I want to make it myself, it would be a learning experience ^^; 14:57:32 Unrelated question: what does it mean to flush input? 14:58:42 input is usually buffered by libraries 14:58:50 i.e. line buffering for example 14:59:13 where stuff like readchar() blocks until a newline was there 14:59:26 and then you'll receive the first character by a single readchar of that line 14:59:31 ok 14:59:39 flush should make it return right now 14:59:48 but that may depend on the language you're using 14:59:54 like skipping the pointer to the next line or whatever....? 15:00:01 or the next 'buffer' 15:00:15 like if you were buffering by words it would skip to the next word 15:00:17 I'm so sorry v_v 15:00:24 It's what you do when you know that you're getting crap input 15:00:26 ok. 15:00:31 however 15:00:38 I think fflush(stdin) in C clears the input buffer? 15:00:45 I don't use C. 15:00:47 ^^; 15:01:04 fflush(stdin) revokes your C programming license 15:01:14 damn :( 15:01:19 where can I re-apply for it? 15:01:23 hehehe 15:01:28 (I've never used fflush(stdin) though) 15:01:33 i never got mine :> 15:01:34 but I was just about to 15:01:36 What are your guys' languages? 15:02:16 Haskell, of course. 15:02:22 ah 15:02:36 why doesn't anybody say befunge or the like? 15:02:41 Well 15:02:44 snobol forever 15:02:51 because people know esoteric ones but it's not like they use them -regularly- 15:02:54 it's fun but 15:02:56 yeah 15:03:25 befunge just doesn't support, like, programming in the large and stuff 15:03:45 it is perfectly scalable! 15:03:58 just ask fungot 15:03:59 myname: " you are conversational skills need work." 15:04:07 Imaginer1: wrong 15:04:12 I use Burlesque regularly 15:04:18 not as regularly as I used to but still 15:04:33 Well, I have yet to find an esoteric language I'd like to use regularly 15:04:37 but I'm excited to fine one 15:04:39 *find 15:05:15 burlesque looks like j for the uneducated 15:06:09 Fighting words 15:06:36 Burlesque looks like J for the esoteric, bored during lectures, creepy nerd 15:06:58 like me 15:07:05 i should learn that 15:08:05 blsq ) 4ro{RT}3!C#s 15:08:05 {{1 2 3 4} {2 3 4 1} {3 4 1 2} {4 1 2 3}} 15:08:13 it's easy and readable. 15:08:23 well... 15:08:41 it's at least one of those two things. 15:08:47 possibly both. 15:10:01 the most important thing is that you believe in it 15:10:34 I think I'm gonna make my bot to play games. 15:10:43 well 15:10:44 Hexapawn (with boards a bit larger than 3x3) or smth 15:10:48 I can do chisquare tests with it! 15:11:20 https://raw.githubusercontent.com/FMNSSun/Burlesque/master/examples/statistics2.blsq 15:11:23 ^- there you go 15:11:32 does anybody know about a language independent programming game? 15:11:51 I thought there was one working through stdin/stdout @game 15:12:15 which is it 15:12:53 fifos should work, too 15:13:26 What is a programming game? 15:14:04 simple example: bf joust 15:14:15 players write programs to compete 15:14:52 Jafet: You don't play the game but you write programs that play the game 15:15:01 So... WCCC? 15:15:07 Popular games are for example CoreWar 15:15:09 or Ants 15:15:17 -!- Imaginer1 has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client). 15:15:18 in Ants you write a program (AI) that controls an ant colony 15:15:33 or is it called AntMe! 15:15:34 hm 15:15:51 robocode 15:17:03 Well, WCCC involves competing hardware too. 15:18:11 http://mroman.ch/burlesque/rwb2.pdf <- also have a look at this case study 15:18:14 sounds expensive 15:18:22 (I have no idea what a case study actually is) 15:19:09 easy as fuck with burlesque . 15:20:51 Of course, this was made with an older version 15:20:54 the line ln [- {tt}m[ un 15:21:04 can be replaced with a single command in the current stable version 15:22:11 tl"""(m|C)"R~SP is all that's needed to parse the stuff now 15:22:35 quite possibly tl"(m|C)"~RSP in the next version 15:23:24 tl"(m|C)"~RSPu[2COJ{p^.<}feFi!! 15:23:38 (without the message, just prints the number) 15:24:37 once you know all 300++ commands it's easy readable 15:24:42 *easily 15:26:06 the next version will most likely even have variables 15:28:33 lol 15:30:20 tired of having to write dozens of characters of code for Fibonacci Sequence? 15:30:37 My product makes this much easier 15:30:39 blsq ) 1J{.+}10!C#s 15:30:40 {1 1 2 3 5 8 13 21 34 55 89 144} 15:30:42 boom! 15:53:54 -!- TieSoul has joined. 16:10:12 -!- Sprocklem has quit (Ping timeout: 255 seconds). 16:19:12 -!- Phantom_Hoover has joined. 16:20:07 -!- not^v has joined. 16:24:04 -!- oerjan has joined. 16:25:16 @messages-lol 16:25:16 int-e said 6h 18m 47s ago: strangely, xterm with fixed font even displays that non-breaking space: http://int-e.eu/~bf3/tmp/nbspace.png 16:25:48 I saw the space too. 16:25:50 As a gap. 16:26:16 ic 16:30:04 I am using PuTTY and it does something similar to the picture there 16:32:20 i am also using putty 16:55:13 okay so my idea of using a hash to represent Funge-Space didn't turn out so well 16:55:34 making a hash out of things is not recommended 16:55:35 let's just say that it took 19 seconds to run mycology 16:56:10 *-out 16:58:03 19 seconds for mycology isn't that bad. 16:58:07 http://mroman.ch/bundle.txt <- if somebody wants one of these games (Steam) just pm me 16:58:16 a lot better than some interpreters manage, iirc 16:58:24 I can gift them 16:58:38 TieSoul: A classic (cheating?) optimization is to use a static array for a fixed-size rectangle around (0,0) and hash outside it. 16:58:49 TieSoul: "cheating" part if the region size is optimized for mycology. 16:59:19 hrm 17:00:02 fungot: How do you feel about your fungespace implementation? 17:00:02 fizzie: i implemented bf on the hp48gx, in case you plan on doing emacs first. my counterexample for noncommutative rings were just matrix algebras ( projections are idempotent). 17:00:12 Uh. 17:00:58 i think fungot should talk to edwardk about his theories 17:00:59 oerjan: i guess i _do_ care about beautiful code. xd. 17:01:24 my original way was just to have an arbitrary-dimension (dimension as in length here) array, and keep an origin variable (vector from begin of array to (0, 0)) to use similarly to the storage offset. 17:01:31 but that made my code really cluttered 17:02:20 so I tried the hash method, but that made my code really slow. 17:02:46 you should abstract your fungespace out so you can tweak the implementation as you wish without cluttering the rest of the code. 17:02:59 ??? 17:03:08 what is this about abstracting it out? 17:03:12 what does that mean? 17:03:22 O_O 17:03:27 making fungespace a class and use functions? 17:03:37 (I mean instance methods) 17:06:36 ...did I say something wrong? :P 17:07:04 * oerjan counts the crickets 17:07:45 well yes, if you are using OO programming. 17:08:13 Yes I am, I'm using Ruby. 17:08:57 Actually, I'm thinking about starting over in C# or C++, because they're faster 17:09:13 and my Ruby code kinda sucks 17:10:38 for speed it might be good to use a language that is capable of optimizing out the abstraction. 17:11:01 *implementation, technically 17:11:05 oerjan: Either that or optimize out the abstraction by yourself. 17:11:16 oh, also, is there a specification of some sort for Funge-108? 17:11:22 zzo38: um that _really_ would defeat the point. 17:12:01 And Ruby is slow anyways 17:12:07 zzo38: the entire point of _introducing_ the abstraction is so he doesn't have to change the rest of the code when he changes the implementation of it. 17:13:05 Yes, it help, but it also depend what kind of abstraction? If it is a programming language allowing you to add such a feature, that can help too, rather than being hard-coded!! 17:13:33 I dreamt that someone was writing a compiler from MSIL into Z-machine code (so that C# programs can be compiled into it), however half of the features of the game were hard-coded into the compiler, meaning it unsuitable to write any game other than that single one anyways. 17:14:37 ...your point and the relevance to Funge being? 17:20:02 -!- MDude has quit (Ping timeout: 252 seconds). 17:22:43 I don't think there is a finalized specification of Funge-108; there was just some work towards one. 17:25:58 TieSoul: it could be as simple as a handful of functions working on a global fungespace. 17:26:23 something to go from global (x, y) to the cell, something to set it, and something to get the bounds would be one extremely simple API. you may need more than that for efficiency 17:26:44 just keep all the details about how fungespace is implemented away from the rest of the code; abstraction is one of the core principles of programming 17:27:09 yeah, I knew about it 17:27:16 but I didn't know how it was called 17:30:31 -!- MoALTz has joined. 17:36:40 (Legends of Gimrock is gone) 17:45:18 -!- idris-bot has quit (Quit: Terminated). 17:45:48 -!- Melvar has quit (Quit: rebooting). 17:48:21 -!- not^v has quit (Ping timeout: 272 seconds). 17:49:09 -!- Melvar has joined. 17:52:57 -!- idris-bot has joined. 17:55:29 -!- not^v has joined. 18:17:20 -!- Sprocklem has joined. 18:19:13 Abstraction is not always work best way, I think, but it can help when you are trying to be modular. 18:24:38 And, another way to avoid having to change the rest of the code too much when changing implementation, involves using macros. 18:41:21 -!- sebbu has quit (Ping timeout: 264 seconds). 18:42:43 Well, the file 'nanozil.c' is already 192734 bytes long and it is still incomplete so far!! 18:43:29 -!- impomatic_ has joined. 18:50:04 what is a nanozil 18:50:11 it doesn't sound very nano 18:50:20 and zil neither 18:50:20 You should've seen the microzil. 18:51:13 It's like two million *lines*. 18:52:18 It is a Z-machine compiler 18:52:44 ZIL is also a Z-machine compiler, although we don't have it anymore and it didn't perform so many optimizations. 18:52:59 Note that the largest amount of the nanozil code is the optimizations, most of the rest is actually pretty simple. 18:58:31 How common is things like if(i&~3) in a C code? 19:03:06 well it blanks the two lsbs 19:03:24 how common is that? 19:03:57 Also uses the result as the controlling expression of an if statement. 19:04:05 usually I'd prefer #define MASK (~3) 19:04:07 if(i&MASK) 19:04:49 -!- Sprocklem has quit (Quit: [). 19:05:00 Usually I prefer to be all unsigned when dealing with bits, but maybe there's some particular reason. 19:07:15 Something I learned today: sign-bit-one-and-value-bits-zero is allowed to be a trap representation even on a system where the integer representation is two's-complement. 19:07:17 That is to ensure it has the range 0 to 3; if it doesn't then the condition is true. However it doesn't have to be only the low bits sometimes other bits are used too in such kind of conditions 19:07:55 fizzie: I didn't know integers are allowed to have a trap representation at all. 19:09:06 -!- AnotherTest has quit (Quit: ZNC - http://znc.in). 19:09:43 Signed integers are; there's only the one possible setting of bits that can be either a trap representation, or (for two's-complement) the most negative value or (for one's-complement or sign-and-magnitude) the negative zero. 19:09:53 I don't know of any implementations where it would be a trap representation. 19:18:29 I'm not sure if if (i & ~3) is any improvement over the obvious-to-everyone if (!(i >= 0 && i <= 3)) except in the number of keystrokes. The compiler I fed it to generated essentially equivalent code. ("cmp edi, 4; jb ..." for the first, "cmp edi, 4; jae ..." for the second, with the true/false branches of code the other way around.) 19:24:28 -!- sebbu has joined. 19:24:28 -!- sebbu has quit (Changing host). 19:24:28 -!- sebbu has joined. 19:24:37 -!- not^v has changed nick to NotCaretVeePomm. 19:31:21 -!- sebbu has quit (Ping timeout: 255 seconds). 19:46:26 fizzie: What are "jb" and "jae" corresponding to? 19:46:50 I do not remember much about how x86 assembly codes are working 19:47:15 zzo38: jb is jump if below, a conditional jump taken when the carry flag is unset 19:47:25 jae ia the opposite, a conditional jump taken if the carry flag is set 19:47:42 (for the details, see the intel and amd manuals) 19:49:20 O, so it is a kind of unsigned comparison 19:49:40 b_jonas: Actually, jb jumps if the carry flag is set, due to the operand order of cmp. 19:50:29 "cmp eax, 5; jb X" => "jump to X is eax was below 5", i.e., CF was set when subtracting 5 out of eax. 19:50:36 -!- NotCaretVeePomm has quit (Ping timeout: 272 seconds). 19:50:37 And yes, it's an unsigned comparison. 19:51:01 It's quite curious that it turns the &~3 variant to a cmp instruction too. 19:52:32 This was clang; GCC was slightly closer to the original source, doing "and; jnz" for the &~3 and a similar unsigned-comparison for the >= 0 && <= 3. 19:54:01 Jafet: uh, sorry then 19:54:03 I suppose it either has that optimization built-in, or it uses some other kind of analysis to determine how to perform that kind of optimization. 19:56:07 fizzie: yes, you're right, JB jumps if the carry flag is set 19:56:30 Full disclosure note: I already had the Intel manuals open. 19:57:08 fungot: Do you think I should write you a Forth to complement ^bf and ^ul? 19:57:09 fizzie: i suck at transcribing by ear :) 19:57:10 My Countdown-playing program seems to have been a nice fun toy project 19:57:17 fungot: Oh, well, never mind then. 19:57:17 fizzie: that's nice. 19:57:48 I should learn Forth 19:58:01 ...and APL, and Lisp, and half a dozen others 19:58:31 Taneb: sure. we have some channels for those in freenode. 19:58:58 There are 7 people and no set topic on #apl, that's all I can tell from the outside. 19:59:57 fizzie: #jsoftware for APL 20:00:15 fizzie: classical APL is on topic there too, though not many people speak it 20:00:30 (mind you, classical APL has many different dialects too, it's sort of like old Lisp) 20:01:55 `cat hello. 20:01:55 cat: hello.: No such file or directory 20:01:57 `cat hello.c 20:01:58 const char main[] = "AXAYAZA[A\\ATX-pppp-0```- ///P^VTXH10XP4>40PZ414>P_\x0f\x05XATASARAQAP\xc3Hello, world!\n"; 20:02:04 What architecture is that for? 20:02:45 and I don't think anyone every hooked up an evalbot for any old dialect of APL yet. we have J evalbots, intermittently, and some years ago we had a K evalbot. 20:04:40 -!- Bicyclidine has joined. 20:04:43 `run echo -e '#! /bin/bash\nexec gforth -e "$* bye" bin/forth; chmod +x bin/forth 20:04:45 No output. 20:04:50 `forth 1 2 + 3 * . 20:04:51 9 20:04:54 That's better. 20:05:22 (I don't do forth.) 20:05:26 `forth 2 10 ^ . 20:05:27 ​ \ *OS command line*:-1: Undefined word \ 2 10 >>>^<<< . bye \ Backtrace: \ $40E44A68 throw \ $40E5ACE0 no.extensions \ $40E44D28 interpreter-notfound1 20:05:32 Yaaaaa 20:05:33 I kept forgetting the "bye", which made HackEgo stop for the 30 second timeout waiting for some input that never came. And even then print out a messy thing. 20:05:43 `forth 2 10 ** . 20:05:44 ​ \ *OS command line*:-1: Undefined word \ 2 10 >>>**<<< . bye \ Backtrace: \ $40E44A68 throw \ $40E5ACE0 no.extensions \ $40E44D28 interpreter-notfound1 20:05:51 What's exponentiation 20:06:04 multiply it yourself!! 20:06:34 `forth 1 10 lshift . 20:06:34 1024 20:06:38 Taneb: try /msg j-bot [ 2^10 20:06:51 the ^ operator does exponentiation 20:06:57 I'm not even sure if ANS Forth has integer exponentiation. I think not. 20:07:06 b_jonas, which wouldbe great if I wanted to calculat 1024 20:07:25 um, it does other exponentiation too, not just 2 to the 10th 20:08:01 But I was trying to learn Forth :) 20:08:06 `forth 2 s>f 10 s>f f** f>s . ( so nasty ) 20:08:06 1024 20:08:14 `perl say 2**10 20:08:15 Can't open perl script "say 2**10": No such file or directory 20:08:22 `perl -E say 2**10 20:08:23 1024 20:08:45 bonus challenge: implement addition chain exponentiation in forth 20:09:55 `forth 2e 10e f** f. ( now with less explicit conversions ) 20:09:55 1024. 20:10:07 you don't need those conversions in J, the ^ operator converts to float anyway 20:10:28 perl does too 20:10:29 okay but j isn't forth or much at all like forth. 20:10:35 um 20:10:45 I think there was someone who liked both forth and J 20:10:57 I'm not sure who 20:11:02 `gcc --version 20:11:03 gcc (Debian 4.7.2-5) 4.7.2 \ Copyright (C) 2012 Free Software Foundation, Inc. \ This is free software; see the source for copying conditions. There is NO \ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20:11:33 For the record, the "that's better" comment was referring to the script being better than calling gforth manually, not an allusion to Forth being better than any particular language. 20:12:54 `forth s" gforth" environment? [if] .( gforth ) type [then] 20:12:55 gforth 0.7.0 20:13:57 They're at 0.7.3, but that's not terribly old, from 2009 or so. 20:14:58 -!- sebbu has joined. 20:16:57 In a few Forth systems you can define a IF ... THEN block like: : IF` 0=GOTO` HERE 0 , ; : THEN` HERE SWAP ! ; 20:17:46 uh 20:17:49 (Some others have IF and THEN as built-in instructions and do not need to be defined.) 20:20:45 -!- Taneb has changed nick to nvd. 20:21:14 Wow I have a 3-letter nick registered 20:21:15 -!- mihow has quit (Quit: mihow). 20:21:25 There's like only 270000 of those 20:22:05 i used to have 'god' registered on another network, but the opers reprogrammed the servers to deny god. very tragic. 20:22:47 nvd: I think there's less than 100000 actually, but I'm not sure 20:23:09 the character sets and cases are complicated 20:23:22 > length "abcdefghijklmnopqrstuv^`_0123456789" 20:23:23 35 20:23:31 > 35 ^ 3 20:23:32 42875 20:23:42 I mis-mathed 20:23:52 > 30 ^ 3 20:23:53 27000 20:24:01 nvd: no, you can't start with a letter of hyphen, and nicks can contain [\]{|} too 20:24:26 That's awkward 20:24:30 I'm going to retaneb 20:24:32 and I'm not sure what case equivalence rules freenode uses for the punctuation these days 20:24:33 -!- nvd has changed nick to Taneb. 20:24:47 b_jonas: standard IRC 20:24:56 also, you can use wxyz in nicks too 20:25:04 [\] are case-equivalent {|} 20:25:14 and ` and ^ I think 20:25:26 coppro: what? no 20:25:33 ` would be equivalent to @ which isn't a character 20:25:33 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 20:25:50 ` is equivalent to ~ though 20:25:51 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 20:25:55 ah, no 20:26:00 ` is not case-equivalent to anything 20:26:01 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 20:26:02 but ~ and ^ are 20:26:06 oh damn 20:26:07 sorry 20:26:08 yes 20:26:11 I'm too tired for this 20:26:28 it originates from scandinavian keyboards iirc 20:26:31 so that means, what, 32*43*43 possible three-letter nicks? 20:27:05 -!- westerp has joined. 20:27:18 "standard IRC", lol 20:27:19 coppro: the set used originates from iso-646 stuff, but it's really just a continuous range in ascii, plus the hyphens and numbers, and the equivalence is just ignoring bit 5, right? 20:27:33 > 32*43*43 20:27:35 59168 20:27:37 probably 20:27:37 b_jonas: yeah 20:27:48 but also keyboards 20:28:25 finnish ones specifically iirc 20:30:22 -!- impomatic_ has quit (Ping timeout: 240 seconds). 20:32:31 `forth : iexp dup 0= if 2drop 1 exit then dup 1 = if drop exit then over dup * swap dup 1 and if 1- 2/ recurse * else 2/ recurse nip then ; 2 10 iexp . ( <-- Taneb ) 20:32:32 1024 20:32:41 (Disclaimer: probably not very idiomatic or good.) 20:33:01 I really need to learn Forth 20:33:08 But first, Erlang, Rust, and APL 20:33:10 that's just binary exponentiation, right 20:33:23 Bicyclidine: Yes. 20:33:32 not good enough 20:34:53 it's kind of weird being able to read that. 20:36:34 Bicyclidine: can you write a better one? 20:36:42 I have a binary exponentiation implemented in J somewhere 20:38:01 probably not. i can only barely read it, anyway. 20:38:17 http://sprunge.us/OhIZ for a formatted and commented version 20:38:18 i was referring to addition-chain exponentiation which is more efficient if you don't mind solving NP-complete problems beforehand 20:38:38 The whole 1- bit was probably unnecessary, due to a flooring 2/. 20:39:38 Er, and the comment is missing x*f(...) for the odd case. 20:39:53 isn't i- yeah. 20:40:02 The code isn't, though. 20:41:08 ...and says x&1 instead of n&1... 21:02:42 -!- Bicyclidine has quit (Ping timeout: 255 seconds). 21:09:33 -!- Bicyclidine has joined. 21:10:23 How terrible an idea is having a publicly accessibly dc program? 21:10:57 Taneb: Probably, it depend on the program. 21:11:22 Is it possible to have a malicious dc script? 21:11:31 dc has a shell interface, doesn't it? 21:11:42 -!- hogeyui____ has quit (Ping timeout: 260 seconds). 21:11:48 `dc -e 1 2 + p 21:11:48 3 21:12:03 yep, ! runs the rest of the line as a system command 21:12:30 `dc -e "1 2 + p ! ls" 21:12:30 dc: '"' (042) unimplemented \ 3 \ sh: 1: Syntax error: Unterminated quoted string 21:12:39 `dc -e 1 2 + p ! ls 21:12:39 3 \ :-( \ 98076 \ a \ app.sh \ bdsmreclist \ bin \ canary \ cat \ complaints \ :-D \ dog \ etc \ factor \ fb \ fb.c \ head \ hej \ hello \ hello.c \ ibin \ index.html \ index.html.1 \ interps \ lib \ moop.txt \ paste \ pref \ prefs \ quines \ quotes \ share \ src \ test \ unpa \ UNPA \ Wierd \ wisdom \ wisdom.pdf 21:12:40 Yes a malicious dc script is possible if the program has ! on it 21:12:45 !!!! 21:13:34 (However, it should be easy enough to remove that feature from dc; also, I think arbitrary strings cannot be created inside of dc itself (although they can be output) due to lack of string manipulation features of dc.) 21:15:34 -!- Bicyclidine has quit (Ping timeout: 264 seconds). 21:16:51 wouldn't be enough, gnu dc has an int->char instruction 21:18:51 `forth : iexp 1 swap begin dup while dup 1 and if -rot over * rot then rot dup * -rot 2/ repeat drop nip ; 2 10 iexp . ( non-recursive for completeness ) 21:18:52 1024 21:18:56 -!- Bicyclidine has joined. 21:18:57 Turned out shorter too. 21:19:27 it doesn't *seem* to have the string manipulation features you'd need to turn that into a command line, but idk if you'd want to risk it 21:19:45 `dc -e [! ls] x 21:19:45 ​:-( \ 98076 \ a \ app.sh \ bdsmreclist \ bin \ canary \ cat \ complaints \ :-D \ dog \ etc \ factor \ fb \ fb.c \ head \ hej \ hello \ hello.c \ ibin \ index.html \ index.html.1 \ interps \ lib \ moop.txt \ paste \ pref \ prefs \ quines \ quotes \ share \ src \ test \ unpa \ UNPA \ Wierd \ wisdom \ wisdom.pdf 21:20:26 `dc -e [ls] [!] x x 21:20:27 dc: register 's' (0163) is empty 21:22:12 glad we have to worry about calculators from 1960 being insecure 21:22:21 `run echo "! ls" > dc -e ? 21:22:23 No output. 21:22:30 `run cho "! ls" 21:22:31 bash: cho: command not found 21:22:36 `run echo "! ls" 21:22:36 ​! ls 21:22:49 `run echo "! ls" | dc -e ? 21:22:50 dc: stack empty 21:23:21 `run echo "! ls" | dc -e '?' 21:23:22 ​:-( \ 98076 \ a \ app.sh \ bdsmreclist \ bin \ canary \ cat \ complaints \ :-D \ dc \ dog \ etc \ factor \ fb \ fb.c \ head \ hej \ hello \ hello.c \ ibin \ index.html \ index.html.1 \ interps \ lib \ moop.txt \ paste \ pref \ prefs \ quines \ quotes \ share \ src \ test \ unpa \ UNPA \ Wierd \ wisdom \ wisdom.pdf 21:23:33 A truism: there's always at least one file of length 1. 21:23:44 Filename length, I mean. 21:24:02 OK, we need to ban ! and probably ? 21:24:24 `dc -e [:x]:x 21:24:25 dc: stack empty 21:24:41 `dc -e '[:x]:x' 21:24:42 dc: dc: stack empty \ dc: ''' (047) unimplemented \ ''' (047) unimplemented 21:25:03 -!- hogeyui____ has joined. 21:26:20 Phantom_Hoover: O, if it has a int->char instruction that operates on strings other than just output, then yes it is that problem too. 21:26:47 I think best way to avoid these things is to just make a modified version of dc. 21:27:12 So that you can omit the ! command 21:27:12 securedc 21:27:40 (Or add a command-line switch to cause the ! command to stop working) 21:30:05 However, note that ! is also used for conditions in dc; this is a different command. 21:30:25 My opinion is that arithmetic-if would have been a better way to design conditions in dc anyways, but, that isn't how it is. 21:44:55 For a shirt time the party of the Scion campaign was perfectly gender-balanced, despite there being an odd number 21:45:03 (one character was gender-fluid) 21:45:14 oh yeah, i forgot dc overloads ! 21:46:06 so yeah, just patch out the system exec command if you still want to go ahead with it 21:47:52 How is a character being gender-fluid? 21:48:19 zzo38, good question 21:48:24 he/she is not my character 21:48:40 The character sometimes looks male, other times female 21:50:15 Except now a new player has joined 21:52:05 Whose character I know little about yet 21:59:21 -!- oerjan has quit (Quit: Etc.). 22:08:59 Do they look like it by disguise? I doubt that would necessarily make them make and female though. 22:09:41 you could just change clothes if you had the right body type. it's not much of a disguise. 22:10:25 zzo38, there's a supernatural element to it, too 22:11:53 O, does that mean you can magically change your gender? 22:13:26 That character can. It's not a standard thing, it was agreed with the GM 22:14:16 OK 22:34:27 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 22:39:25 -!- Phantom_Hoover has joined. 22:43:24 -!- Sgeo has joined. 22:56:05 -!- Bicyclidine has quit (Ping timeout: 260 seconds). 23:01:26 Does this look like correct to you? if((u[x].min<0 && u[x].max<0) || (u[x].min>=0 && u[x].max>=0)) { i=~(u[x].min^u[x].max); i&=i>>1; i&=i>>2; i&=i>>4; i&=i>>8; u[x].omask|=u[x].min&~u[x].imask; u[x].imask|=i; } 23:06:15 -!- Bicyclidine has joined. 23:13:24 what does it do zzo38 23:14:24 I can explain what it is supposed to mean. The min/max/imask/omask are 16-bit signed values, where min/max are minimum and maximum possibilities, and imask has bits set according to which bits are known, and omask has the known bits according to how they are supposed to be (zero if not known). 23:15:17 But, did I do it properly or not? 23:17:25 yeah i still don't know what it's supposed to do. and i can see no point to that "i&=i>>1; i&i>>2;" etc. part. is that some standard bit-twiddling hack? 23:18:51 I did read something similar somewhere (not exactly that); it is supposed to clear all bits lower than an existing cleared bit. 23:19:09 I am trying to imitate the bitwise AND of everything in the range from (u[x].min) up to (u[x].max). 23:19:33 -!- boily has joined. 23:19:45 helloily 23:19:47 And keep only the bits that are the same for all numbers in that range. 23:19:56 oh i see 23:20:18 but wouldn't it be confusing if the ones that could be different are zero? 23:20:42 surely there's an easier way to accomplish it 23:21:05 quinthellopia! 23:21:26 @metar CYUL 23:21:27 CYUL 052300Z 19008KT 15SM FEW050 BKN085 BKN180 OVC240 23/19 A2983 RMK SC1AC4AC1CI2 CB EMBD SLP102 DENSITY ALT 1100FT 23:21:46 yé... still CB EMBD... as if I wasn't as drenched already... 23:22:09 Actually I think it should be u[x].omask|=u[x].min&i&~u[x].imask; 23:24:00 -!- Patashu has joined. 23:24:39 oh i think i understand better now 23:25:25 well no 23:25:36 it looks like omask = min&max 23:25:43 according to your description 23:26:07 I may have made some kind of messy mistakes 23:26:09 or not 23:26:13 i'll think about it 23:26:37 It is supposed to update imask/omask to match what min/max already specifies 23:26:46 right 23:27:14 and clearly all the higher order bits between min and max will be set in imask 23:27:34 if min and max are powers of two it's not hard 23:28:01 or rather, if they are multiples of the same power of two 23:33:54 -!- not^v has joined. 23:56:24 -!- Patashu has quit (Disconnected by services). 23:56:24 -!- Patashu_ has joined. 23:56:25 -!- Phantom__Hoover has joined. 23:58:51 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds).