←2014-09-04 2014-09-05 2014-09-06→ ↑2014 ↑all
00:00:01 <pikhq> Trufax
00:01:08 <CrazyM4n> 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 <boily> I'm done with school. already forgetting large swabs of it, and it feels good. liberating, even.
00:01:47 <CrazyM4n> And I've only had 2 teachers, ever, that actually cared
00:01:50 <pikhq> Math education *in particular* is pretty dang messed up.
00:02:08 <CrazyM4n> Doesn't help that they are paid minimum wage, or close to it
00:02:09 <pikhq> Pretty much everyone thinks of math as essentially being magic rituals performed to arcane runes.
00:02:11 <boily> now I'm seeing my bro still going through it, and telling him “suffer!”. I love my bro.
00:02:26 <CrazyM4n> 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 <boily> CrazyM4n: how many years left in this glorious communal purgatory?
00:04:35 <CrazyM4n> 3.8
00:04:50 <CrazyM4n> Then shooting for MIT
00:04:53 <CrazyM4n> Quick
00:04:58 <pikhq> Good luck with that.
00:04:59 <CrazyM4n> Gotta write more code
00:05:21 <fizzie> Bicyclidine: \in.
00:05:24 <CrazyM4n> By 3 years I should have enough code in my github to at least get me somewhere :P
00:05:26 <fizzie> (Slightly late.)
00:05:35 <Bicyclidine> math is hard, let's go shopping
00:05:55 <CrazyM4n> Hah, so about them esoteric languages
00:06:03 <pikhq> Speaking as an employed programmer sans college degree: yes, that is a great idea.
00:06:44 <CrazyM4n> 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 <CrazyM4n> Which is kinda what I want to do
00:07:06 <pikhq> Eh, I'm only a couple steps away from that.
00:07:08 -!- not^v has joined.
00:07:15 <CrazyM4n> That must be nice
00:07:32 <pikhq> We can fit the entire company in a couple of vehicles. :P
00:07:33 <boily> I'm employed as a Software Developer. we don't say “programmer”. it's filthy :P
00:07:53 <pikhq> Okay, okay, my business card says "software engineer".
00:07:56 <CrazyM4n> The second I hit 18 and get a tax ID I'm going to start selling android apps
00:08:18 <pikhq> As far as I'm aware, you don't need to be 18 for that...
00:08:26 <CrazyM4n> Welp
00:08:43 <pikhq> Also, when you're 18 that might not be a thing that is all that interesting to do. :)
00:08:55 <CrazyM4n> Never said it would be interesting
00:09:13 <CrazyM4n> I'm pretty good at it, and it would make me money, and it's pretty fun to code
00:09:27 <CrazyM4n> 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 <pikhq> Let's go with "lucrative" then. You're what, 14, 15?
00:09:54 <CrazyM4n> Yes
00:10:06 <pikhq> In 2018 Android apps just might not matter.
00:10:28 <CrazyM4n> I don't see android dieing any time soom
00:10:31 <pikhq> ... Or they might matter heavily still, in which case I'm speaking irrelevancies. :)
00:10:47 <CrazyM4n> And if it does die, there's always a new mobile thing
00:10:55 <CrazyM4n> Mobile is a giant market, after all
00:11:00 <pikhq> Well yes. There's always *something* new.
00:11:51 <CrazyM4n> 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 <boily> 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 <boily> also, I see you're having a pretty healthy attitude towards closed source :D
00:14:13 <CrazyM4n> Haha, it's not the closed sourceness. It's the "Microsoft controls every aspect of this" I don't like
00:14:39 <CrazyM4n> E.g: i have to type my Microsoft password to log onto my Microsoft windows 8 laptop
00:14:41 <CrazyM4n> No joke
00:14:58 <pikhq> Believe it or not, that's actually an entirely optional feature.
00:15:11 <CrazyM4n> Looked in the options a while ago
00:15:33 <CrazyM4n> You can turn off the password on wake up, but not on boot
00:15:43 <CrazyM4n> Or maybe I'm oblivious
00:15:59 <zzo38> 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 <zzo38> Then it can be use regardless if it is Android or old or new mobile or desktop computers.
00:17:16 <CrazyM4n> Simulating a whole nother os/architecture on a phone is bound to be terribly slow
00:17:30 <CrazyM4n> At least, simulating a modern os
00:18:04 <Melvar> “a whole nother” is a fascinating phrase.
00:18:46 <CrazyM4n> Not grammatically correct, but it sounds good and I catch myself using it a lot
00:19:03 <zzo38> Then simulate a slower system
00:19:41 <zzo38> Or, you can make it a Harvard based system so that it can be compiled into a native code
00:19:47 <Melvar> It’s pervasive. I wouldn’t call it “not correct”. Just an interesting history.
00:20:10 <boily> `? nother
00:20:11 <HackEgo> nother? ¯\(°​_o)/¯
00:20:55 <boily> 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 <CrazyM4n> 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 <zzo38> However you haven't got the full feature unless the program is usable with pipes and that stuff too
00:21:36 <CrazyM4n> Wouldn't call the latter a simulation/emulation, but hey, it's an os on an os
00:21:43 <Melvar> Reanalysis is usually fun.
00:22:12 <zzo38> 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 <CrazyM4n> There's also some stuff like Wine or ReactOS, made to pretty much replace a need for that OS
00:24:06 <zzo38> Wine and ReactOS are both for x86 though
00:24:27 <zzo38> It is good if you are going to run x86 Windows programs, but maybe the computer won't be x86
00:25:00 <CrazyM4n> I've never seen a computer that isn't x86
00:25:06 <CrazyM4n> Well
00:25:08 <Melvar> Well, then pretty much the entire point would be gone.
00:25:15 <CrazyM4n> I guess
00:26:08 -!- Imaginer1 has joined.
00:27:18 <Imaginer1> uh, how do I message nickserv with my password?
00:27:52 <zzo38> Imaginer1: Type NS HELP for information about Nickserv.
00:28:10 <Melvar> 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 <Imaginer1> Ah, regain.
00:28:43 <zzo38> 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 <Imaginer1> I guess not.
00:29:24 <Imaginer1> There.
00:32:12 <CrazyM4n> That's pretty cool, actually
00:32:27 <CrazyM4n> But that's given that the target platform has NES emulators
00:32:34 <CrazyM4n> This is the niche that java fits
00:33:00 <boily> zzo38: tape? where there any official peripherals for the fami that had tape?
00:33:13 <zzo38> Yes, but there are many NES emulators anyways.
00:33:22 <zzo38> boily: Yes, the tape is connected through the keyboard.
00:34:06 <boily> I am intrigued.
00:34:50 * boily searches on google images. “heh, only 9800 ¥!”
00:35:30 <zzo38> 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 <zzo38> 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 <zzo38> Infocom has also made a "D-machine code" which has some relations to Z-machine code.
00:42:41 <zzo38> There is even an unofficial printer protocol for Famicom, I think.
00:43:04 <CrazyM4n> Is Famicom home brewing really a big thing?
00:44:16 <zzo38> I have written some programs for Famicom.
00:46:32 <CrazyM4n> That's cool
00:46:47 <Imaginer1> *kssh* this is Imaginer1 to Esoteric do you read me *kssh*
00:47:21 <zzo38> Imaginer1: Yes, I can read
00:47:45 <CrazyM4n> *kssht* we hear ya Imaginer1, rodger *kssht*
00:48:09 <Imaginer1> *kssh* arright I'm suffering from some, uh... *kssht*
00:48:17 <Imaginer1> *kssht* boredom, over. *kssht*
00:48:27 * boily uses a highly technical procedure known as PM on Imaginer1
00:50:39 <Imaginer1> wat
00:50:46 <Imaginer1> I'm using a horrible IRC client
00:50:49 <boily> percussive maintenance :D
00:50:56 <Imaginer1> Ahh.
00:51:12 <Imaginer1> http://pastebin.com/sj7ysgbE#
00:51:16 <Imaginer1> Python entropic data type.
00:51:30 <Imaginer1> Don't use foo.value, use foo.getvalue() and it changes the value slightly and randomly after reading it.
00:53:21 <zzo38> Then you should write a good IRC client?
00:53:50 <Imaginer1> Me? Write a good irc client? -Write-?
00:53:55 <Imaginer1> I couldn't, could I?
00:53:57 <Imaginer1> O.O
00:54:08 <Imaginer1> I'm so horrified of that prospect.
00:54:19 <Imaginer1> and now I must do it.
00:54:36 <Imaginer1> Can anyone point me to resources for linking IRC with Python?
00:55:58 <Bicyclidine> i think the usual is using twistd?
00:56:00 <zzo38> I don't know much about programming in Python.
00:56:02 <Bicyclidine> or maybe that's just for bots.
00:56:20 <Imaginer1> Oh, I'd still love to write bots.
00:56:26 <zzo38> Why are you horrified of it?
00:56:34 <Imaginer1> It sounds difficult.
00:56:36 <boily> writing bots is fun! exploiting them even funner!
00:56:38 <Imaginer1> It sounds like... /power/.
00:56:46 <Imaginer1> >:D
00:57:05 <Imaginer1> I'm not 'scared', I'm just... I feel like I'm learning programming at an astonishing rate and like wow
00:57:06 <zzo38> I have written an IRC client myself, so I know how too, but I didn't use any IRC client library.
00:57:07 <CrazyM4n> Over on the TPPI channel we would mess with the bot all the tine
00:57:11 <CrazyM4n> It was pretty great
00:57:12 <boily> 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 <boily> Imaginer1: ↑
00:57:30 <Imaginer1> weather...?
00:57:36 <Imaginer1> there's a weather library
00:58:06 <zzo38> I want a weather library for SQLite.
00:58:44 <Imaginer1> 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 <boily> Imaginer1: weather is verboten. it is an edict. I decree it.
00:59:25 <boily> also, what are your approximate geographic coördinates, and body weigh?
00:59:26 -!- sebbu has quit (Ping timeout: 276 seconds).
00:59:54 <Imaginer1> I'm feeling really uncomfortable I don't know what verboten or edict mean and you spelled coordinates with an ö
01:00:20 <zzo38> Then look it up in dictionary and then you can learn.
01:00:43 <CrazyM4n> There was a PDF file somewhere in the topic or whatever you call it
01:01:00 <Imaginer1> Arright... I thought it was programmer slang. :S
01:01:08 <Imaginer1> I'm just nervous in half these rooms gosh
01:01:29 <shachaf> c̈oor̈d̈ïn̈äẗës̈
01:01:38 <CrazyM4n> Just don't be an idiot and I think it will be ok
01:01:41 <boily> you should read the PDF. letters with diacritics are your friends. roast beef tastes good.
01:02:04 <shachaf> CrazyM4n: that is not a particularly nice thing to say
01:02:16 <Imaginer1> what pdf, are you talking to me?
01:02:20 <Imaginer1> i'M SUCH AN IDIOT GAHDS
01:02:21 <Imaginer1> *flails*
01:03:20 <zzo38> 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 <shachaf> `` head -n1 bin/danddreclist
01:03:58 <HackEgo> echo -n "$(basename "$0")${@:+ }$@: "; tail -n+2 "$0" | xargs; echo http://zzo38computer.org/dnd/recording/level20.tex; exit
01:04:05 <Imaginer1> Oh, there...
01:04:43 <Imaginer1> '@ is an OS made out of only the finest vapor'
01:04:50 <Imaginer1> a pure magic smoke OS must be very effective
01:05:28 <Imaginer1> What is this pdf.
01:05:30 <Imaginer1> Omg.
01:05:50 <shachaf> boily: what is your approximate body kurd?
01:06:38 <boily> kurd???
01:06:43 <boily> as in the cheese kind?
01:07:07 <boily> Imaginer1: it is the PDF. I spent quite some time updating it. it has pineapples.
01:07:12 <shachaf> as in the kurdistan kind
01:07:18 <shachaf> or the kind you play on a piano
01:07:24 * boily facepalms
01:07:57 <boily> well, of the piano kind, I'm partial towards Eb. it sounds quite nice.
01:08:40 <zzo38> You can play piano?
01:08:54 <zzo38> What kind of music?
01:09:11 <Melvar> `unidecode ♭
01:09:12 <HackEgo> ​[U+266D MUSIC FLAT SIGN]
01:09:28 <Imaginer1> Well. If I was to write a bot what should it do?
01:09:39 <zzo38> Play Pokemon card?
01:09:45 <shachaf> jam
01:09:47 <zzo38> (with a non-stupid AI)
01:09:54 <Imaginer1> Too difficult.
01:10:01 <Imaginer1> And... well...
01:10:11 <Imaginer1> lame.
01:10:19 <boily> 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 <Imaginer1> 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 <zzo38> I like Bach too
01:12:20 <boily> he disappeared...
01:12:56 <boily> @tell Imaginer1 you shouldn't disappear. become one with your esoteric side. feel at ease.
01:12:57 <lambdabot> Consider it noted.
01:17:23 <CrazyM4n> Woo, homework finished
01:17:32 <CrazyM4n> Now to write that Fibonacci generator
01:17:46 -!- CrazyM4n has quit (Quit: Bye).
01:18:45 -!- CrazyM4n has joined.
01:18:54 <CrazyM4n> 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 <Imaginer1> Alright. I'm looking into the twisted module.
01:23:52 <Imaginer1> ^^
01:25:17 <Imaginer1> Oh dear, I know so little about irc in the first place
01:25:28 <Imaginer1> I'm only 17 maybe I'm not cut out for this
01:25:36 <CrazyM4n> :S
01:26:13 <Melvar> CrazyM4n: Fibonacci generator meaning what?
01:27:05 <CrazyM4n> 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 <Imaginer1> Ah, I saw that.
01:27:20 <CrazyM4n> I know it´s possible but it´s a pain in the butt
01:27:30 <Melvar> Oh, in your esolang.
01:27:34 <Imaginer1> I'm not normally one for yet -another- brainfuck derivative... but....
01:27:57 <Melvar> ( :let fibs : Stream Nat; fibs = 0 :: 1 :: [| fibs + tail fibs |]
01:27:57 <idris-bot> defined
01:27:58 <CrazyM4n> same here. it was going to just kinda be 2d brainfuck but then I was like ¨ooh commands¨
01:28:20 <Melvar> ( take 10 fibs
01:28:23 <idris-bot> [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] : Vect 10 Nat
01:28:41 <CrazyM4n> god i love functional languages
01:29:38 <CrazyM4n> http://sprunge.us/ChFA I´m in the middle of writing hello world
01:29:52 <lifthras1ir> how much is Brainfunge different from Befunge?
01:30:06 <CrazyM4n> uh. I couldn´t tell you. I don´t know befunge
01:30:11 <CrazyM4n> it´s definately simpler
01:30:27 <CrazyM4n> but therefore programs are more verbose to write
01:30:39 <lifthras1ir> 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 <lifthrasiir> meh for the nick collision
01:31:14 <CrazyM4n> like I said, I know no befunge except from the pointer commands + how the pointer works
01:31:27 <CrazyM4n> and I shamelessly rippped those and put them in my language
01:31:33 <CrazyM4n> the rest is coincedence
01:31:47 -!- Bicyclidine has quit (Ping timeout: 255 seconds).
01:33:35 <CrazyM4n> either way it was a heck of a lot of fun to write
01:34:53 <Imaginer1> i want another language that has musical source codeeee
01:37:59 <lifthrasiir> 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 <lifthrasiir> I think this correspondence is enough to classify Brainfunge as a rather trivial derivative of Befunge, and not Brainfuck.
01:39:46 <lifthrasiir> (two instructions from Brainfuge are missing in Befunge-93, but they are available in Funge-98 as an extension.
01:39:49 <lifthrasiir> )
01:49:01 <CrazyM4n> oh.
01:49:03 <CrazyM4n> well then.
01:49:18 <CrazyM4n> i wasn´t aware that twhat i made was almost a direct dialect of befunge
01:49:26 <CrazyM4n> should I rename it?
01:49:40 <CrazyM4n> 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 <CrazyM4n> so
02:30:58 <CrazyM4n> I finally bothered working on addition that doesn´t pop
02:31:05 <CrazyM4n> ¨!2|!2|2|3|+¨
02:31:26 <CrazyM4n> haven´t tested it
02:34:48 <CrazyM4n> http://prntscr.com/4jsjcl
02:39:33 <CrazyM4n> scratch that; doesn´t work
02:39:34 <CrazyM4n> :P
02:51:53 <CrazyM4n> so apparently that piece of code works
02:52:00 <CrazyM4n> but i implemented ¨|¨ incorrectly
02:52:20 <CrazyM4n> i feel so dumb
02:55:24 <Melvar> Why did you pick ¨ in an otherwise ascii-looking thing?
02:55:37 <CrazyM4n> uh
02:55:43 <CrazyM4n> hexchat is really weird
02:55:54 <CrazyM4n> ¨ is a quote and ´ is an apostrophe
02:56:02 <CrazyM4n> instead of normal things
02:59:13 <zzo38> Maybe you should change the settings in the program?
02:59:46 <CrazyM4n> let me look for a setting that sounds related
03:00:01 <Melvar> Those are a spacing diaeresis and a spacing acute.
03:00:20 <Melvar> What’s your keyboard layout, locale, and input method?
03:00:42 <CrazyM4n> typing into notepad results in normal characters
03:00:53 <CrazyM4n> "'
03:00:55 <CrazyM4n> vs
03:00:58 <CrazyM4n> ¨´
03:01:06 <Melvar> Oh, Windows? Never mind, no idea.
03:01:29 <CrazyM4n> there, fixed it
03:01:30 -!- Imaginer1 has joined.
03:01:34 <CrazyM4n>
03:01:37 <CrazyM4n> never mind
03:01:40 <Imaginer1> Howdy.
03:01:40 <zzo38> Not quite.
03:02:35 <Melvar>
03:02:49 <CrazyM4n>
03:02:51 <CrazyM4n> ...
03:03:10 <CrazyM4n> hexchat is so broken
03:06:51 <Melvar> 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 <CrazyM4n> 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 <fizzie> `run gforth -e '-5 2 / . bye' # wasn't expecting that
06:21:33 <HackEgo> ​-3
06:21:56 <fizzie> 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 <fizzie> `run gforth -e 's" FLOORED" environment? [if] . [then] bye' # see?
06:24:19 <HackEgo> ​-1
06:45:56 -!- Frooxius has quit (Quit: *bubbles away*).
06:55:37 <mroman_> Is there a codepad thingy where others can edit it?
06:55:47 <mroman_> (codepad is some snippet pasting site)
06:56:31 <mroman_> ah. lpaste.net can do it
06:58:52 <fizzie> I think ideone too.
06:59:12 <fizzie> And there was one with real-time collaborative editing, with the whole "several cursors" thing and all.
07:01:32 <fizzie> I can't remember which one it was that I saw, Google finds several.
07:03:12 <mroman_> one that runs in the browser?
07:03:21 <fizzie> Yes.
07:03:34 <mroman_> which one did you find?
07:03:48 <fizzie> At least http://collabedit.com/ (the "try it now" link).
07:04:01 <fizzie> And http://codebunk.com/
07:04:22 <fizzie> Also I think it was codebunk.com that I saw, the interface looks vaguely familiar.
07:04:30 <fizzie> Neither of those require any accounts or anything.
07:05:11 <fizzie> Also http://demo.firepad.io/
07:05:32 <fizzie> Firepad is the bit that runs quite a lot of them, that's their own demo page.
07:06:20 <fizzie> 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 <fizzie> CoderPad.io seems to have fancy "also runs the code" support.
07:07:53 <mroman_> are there any free ones?
07:08:00 <mroman_> coderpad and codebank I'm not so sure
07:08:06 <mroman_> there's a "pricing" info
07:08:30 <mroman_> anyway: http://lpaste.net/3911621673622700032
07:08:38 <mroman_> people are welcome to add more
07:08:50 <mroman_> (these are all optional directives as discussed yesterday)
07:09:11 <mroman_> It just makes sense to define a set of optional directives to establish common namings
07:10:13 <fizzie> How do you envision something like #MEM_WRAP_LEFT #MEM_UNBOUNDED_RIGHT to work?
07:10:50 <fizzie> Wrap to the furthest-on-the-right cell that's ever been visited?
07:11:48 <mroman_> or that's ever been allocated
07:12:15 <fizzie> That sounds quite vague, since you have no control over that.
07:12:34 <mroman_> True
07:12:50 <mroman_> furthest-on-the-right ever been visited makes more sense I assume
07:13:24 <fizzie> 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 <mroman_> I'm not planning to have names for combinations of multiple directives
07:17:07 <mroman_> you can just use multiple directives in the code
07:22:18 <fizzie> No, I mean, that's already a name for the rather unlikely configuration, even if it has multiple directives.
07:22:21 <fizzie> (Gone now.)
07:38:46 <mroman_> damn
07:38:50 <mroman_> how does one undo git add again :(
07:49:26 <mroman_> 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 <fizzie> "git status" is supposed to have a helpful reminder of that at the top of the "staged changes" list.
08:36:36 <mroman_> it does
08:36:41 <J_Arcane> mroman_: Bookmark this: http://sethrobertson.github.io/GitFixUm/fixup.html
08:47:09 <fizzie> The javascript-driven "current path" machinery could do with a few lines of more intelligence.
08:47:29 <fizzie> Going backwards by clicking the path links just appends those same questions.
09:05:12 <mroman_> wait
09:05:22 <mroman_> A -> B -> C if you click on B it's A -> B -> C -> B?
09:05:42 <mroman_> (are you talking about breadcrumbs?)
09:06:27 <fizzie> Yes.
09:06:46 <fizzie> And the regular back button doesn't affect them at all, of course.
09:07:09 <fizzie> It's fine for a single "playthrough" of the document, but awkward for browsing around.
09:09:41 <J_Arcane> Frank Herbert's guide to computing circa 1980: http://chiclassiccomp.org/docs/content/books/WithoutMeYoureNothing_FrankHerbert.pdf
09:15:28 <fizzie> "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 <int-e> it's more subtle now
09:17:24 <int-e> you have computers but increasingly, you don't control them.
09:18:43 <ion> COMPUTERS DO NOT MAKE ERRORS.
09:18:49 <ion> Quantum physics would beg to differ.
09:19:24 <mroman_> By that logic humans make no errors
09:19:28 <mroman_> but god does
09:19:54 <mroman_> (or some other thing that may have created us)
09:22:44 <int-e> ion: it's worse. they (fairly) reliably do as they are told
09:33:49 <mroman_> It's subtle
09:34:00 <mroman_> but given we program some AI that can make decisions
09:34:18 <mroman_> then that AI certainly should be able to do errors
09:34:27 <mroman_> that can't be reasonably be linked to programmers?
09:34:34 <mroman_> -be
09:36:45 <int-e> good headline, "Computers are not Oracles"
09:38:39 <mroman_> There's an Oracle though that writes Software for Computers.
09:51:33 <fizzie> fungot: Are you an Oracle Y/N?
09:51:33 <fungot> fizzie: you are never gonna succeed in convincing a sizable proportion of scheme users.
09:51:46 <fizzie> I think that was a "yes, and here's a prediction for you".
09:52:57 <int-e> wow, fun got outdid itself there.
09:57:01 -!- J_Arcane_ has joined.
09:57:27 <int-e> fungot
09:58:21 <oerjan> `unidecode fungot
09:58:22 <fungot> 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 <HackEgo> ​[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 <oerjan> why didn't it respond to int-e
09:58:41 -!- J_Arcane_ has changed nick to J_Arcane.
09:58:57 <int-e> `unidecode fungot
09:58:57 <HackEgo> ​[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 <oerjan> hm that's weird
09:59:51 <oerjan> `unidecode > ​[
09:59:52 <HackEgo> ​[U+003E GREATER-THAN SIGN] [U+0020 SPACE] [U+200B ZERO WIDTH SPACE] [U+005B LEFT SQUARE BRACKET]
09:59:59 <J_Arcane> 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 <oerjan> you are using a different zero width space which putty _doesn't_ copy and paste
10:01:06 <oerjan> hm it pastes if i copy it from the logs instead
10:01:09 <fizzie> The FEFF space.
10:01:24 <oerjan> but not if a copy directly from irssi
10:01:32 <b_jonas> nah, I don't believe in this "lisp is the language of AI" nonsense
10:02:35 <J_Arcane> 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 <fizzie> 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 <J_Arcane> There are still a number of intro courses using Racket, largely on the strength of HTDP.
10:03:50 <fizzie> 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 <fizzie> (Also they switched the Scheme from SICP to HtDP the year before I did them, I think.)
10:05:00 <fizzie> 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 <J_Arcane> I'm slowly working through HTDP right now, actually.
10:06:29 <int-e> @tell oerjan strangely, xterm with fixed font even displays that non-breaking space: http://int-e.eu/~bf3/tmp/nbspace.png
10:06:29 <lambdabot> Consider it noted.
10:08:25 <b_jonas> 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 <b_jonas> 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 <b_jonas> but now thta's pointless.
10:09:39 <b_jonas> I think "the language of AI" is just a statement that got stuck from that time.
10:09:45 <J_Arcane> 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 <int-e> prolog has also been the language of ai for a while
10:12:08 <int-e> 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 <fizzie> J_Arcane: Just don't believe HtDP when it tries to tell you that lambda is a special case of "local".
10:14:26 <fizzie> 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 <fizzie> (Pet peeve.)
10:15:35 <int-e> Oh it pretends that lambdas have a name underneath.
10:17:10 <fizzie> And "local" is of course not any sort of R5RS standard form.
10:17:15 <J_Arcane> Well, in Racket, technically, they do. Even the docs will tell you that.
10:17:39 <fizzie> Racket didn't exist when I was reading this.
10:17:47 <fizzie> It was just PLT Scheme.
10:18:02 <J_Arcane> Yeah. I'm reading the 2nd Edition, which is post Racket.
10:18:19 <fizzie> Oh, they've made a new one?
10:18:35 <J_Arcane> Yup: http://www.ccs.neu.edu/home/matthias/HtDP2e/
10:19:02 <J_Arcane> It's still in progress I think technically, but the stable edition gets updated in time with new Racket releases.
10:20:11 <fizzie> 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 <fizzie> PLAI I think I liked.
10:20:32 <fizzie> Even though we didn't cover it terribly thoroughly.
10:21:11 <fizzie> And it was't also quite released yet, we used a beta.
10:21:16 <J_Arcane> 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 <int-e> hmm "Generative Recursion" is an odd term.
10:30:29 <fizzie> It's one of their own terms, I think.
10:32:12 <boily> design patterns are a scam for the most part, and those that matter shouldn't be explicitely named in the code.
10:37:46 <fizzie> boily: Well aren't you just a Flyweight Proxy Facade Bridge Adapter.
10:38:21 <J_Arcane> Heh.
10:40:25 <J_Arcane> 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 <fizzie> J_Arcane: https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition/ sure you do
10:41:47 <fizzie> See e.g. com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.impl.strategies.adapters.LoopContextStateRetrievalToSingleStepOutputGenerationAdapter.
10:41:59 <J_Arcane> It *is* helpful for "getting" how that style of functional programming can be built.
10:42:09 <J_Arcane> fizzie: I mean in the Racket community.
10:42:15 <fizzie> Oh, okay.
10:44:05 <J_Arcane> 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 <int-e> IsEvenlyDivisibleStrategyFactory.java [separated into interface and two implementations, one for Fizz, oone for Buzz. obviously.]
10:45:08 <boily> 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 <int-e> if (NumberIsMultipleOfAnotherNumberVerifier.numberIsMultipleOfAnotherNumber(theInteger, FizzStrategyConstants.FIZZ_INTEGER_CONSTANT_VALUE)) ...
10:45:36 <int-e> fizzie: thanks
10:46:47 <int-e> (that class also implements the RedundantIf design pattern: if (foo) { return true; } else { return false }.)
10:47:40 <boily> I'm going to have a very interesting day, what with the daymares you're inducing...
10:48:00 <b_jonas> int-e: ah yes, we love that
10:48:31 <int-e> (sorry, I forgot a semicolon there.)
10:48:43 <J_Arcane> I picked up RedundantIf somewhere and keep having to remind myself not to do things like that ...
10:51:14 <boily> 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 <J_Arcane> An early version of my alphabetic word search had an (if (equal? ...) #t #f) in it ... :shame:
10:55:01 <fizzie> Which one is better/more professional, the RedundantIf pattern or the RedundantConditionalExpression (x ? true : false) pattern?
10:55:30 <boily> fungot: your opinion on the matter?
10:55:31 <fungot> boily: well i can tell
10:55:34 <b_jonas> fizzie: the redundant cat is worse
10:55:54 <boily> fungot: and?
10:55:54 <fungot> boily: but subr is hardly new :) and my philosophy class on friday) are now downloadable on the website
10:56:01 <boily> fungot: so?
10:56:01 <fungot> 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 <J_Arcane> fungot: that is just so lisp.
10:56:33 <fungot> J_Arcane: what is that
10:57:12 <fizzie> 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 <b_jonas> 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 <fungot> b_jonas: fnord/ fnord has the thing that worries me more than a thousand repeats to return to
10:58:30 <fizzie> 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 <fungot> int-e: 3 helios24: ps ( thread-id 28)
10:58:42 <fizzie> It's easy enough to do by accident.
10:59:17 <b_jonas> fungot: no, not fnord, FOLD. also known as reduce or inject or insert.
10:59:17 <fungot> 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 <J_Arcane> 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 <fizzie> 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 <fizzie> (But the = is not going to.)
11:00:45 <J_Arcane> 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 <J_Arcane> 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 <boily> @metar CYUL
11:06:02 <lambdabot> 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 <fizzie> I guess that's like checking the weather before deciding on the phase (of matter) of the quit message chicken?
11:27:11 <mroman_> fungot: are you a scheme user?
11:27:11 <fungot> mroman_: i'm at work. i think
11:27:33 <fizzie> fungot: Bad sign if you're not sure about that.
11:27:33 <fungot> 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 <mroman_> fungot: I swear I'll never use Scheme.
11:28:59 <fungot> mroman_: shouldn't be too difficult to parse it all. :) i think that
11:31:12 <mroman_> Lisp was made to be parsed.
11:31:17 <mroman_> That's the beauty of it :)
11:35:28 <J_Arcane> Indeed.
11:35:53 <J_Arcane> (my next book I want to get through is learning C through creating a Lisp. :D)
11:37:12 <mroman_> Luckily I can already cross that off my list
11:37:20 <mroman_> (http://esolangs.org/wiki/Stlisp)
11:37:32 <mroman_> I also know Common Lisp a little bit
11:37:50 <Taneb> I think a dependently typed lisp would be a fun thing
11:39:44 <mroman_> ack
11:50:07 <mroman_> FizzBuzzOutputStrategyToFizzBuzzExceptionSafeOutputStrategyAdapter
11:50:48 <Taneb> I kind of want to write an academic wankery verssion of FizzBuzz in Haskell now
11:51:17 <fizzie> Taneb: Just as long as you prove it correct before you're done.
11:51:37 <mroman_> where the hell does it do FizzBuzz .
11:52:49 <mroman_> nope. this is insane
11:53:23 <fizzie> 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 <fizzie> 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 <mroman_> NumberIsMultipleOfAnotherNumberVerifier.numberIsMultipleOfAnotherNumber(theInteger, FizzStrategyConstants.FIZZ_INTEGER_CONSTANT_VALUE))
11:54:58 <mroman_> yep.
11:55:15 <J_Arcane> Jesus.
11:55:32 <mroman_> no Strategy Pattern to select the algorithm for the verification?
11:55:37 <mroman_> that's bad.
11:56:24 <fizzie> Oh yes, that's quite the omission.
11:56:40 <mroman_> Taneb: http://golf.shinh.org/p.rb?FizzBuzz
11:57:09 <mroman_> You can do it in 82B
11:58:11 <fizzie> But it doesn't have enough names of mathematicians in it when done that way, I'd guess.
11:58:57 <fizzie> Befunge is nicely high up in the list.
12:00:50 -!- Sgeo has quit (Read error: Connection reset by peer).
12:05:00 <TieSoul> hey guys
12:05:10 <TieSoul> so I'm completely rewriting RubyFunge
12:05:24 <TieSoul> using a hash now instead of a matrix for Funge-Space
12:05:30 <TieSoul> it works really well
12:05:36 <TieSoul> :P
12:06:33 <mroman_> notogawa is a real beast in haskell golfing
12:07:24 <mroman_> much like clock is a beast in golfing in almost any language
12:07:24 <mroman_> (he golfs in so many languages and is always on the top in dozens of languages)
12:08:19 <fizzie> `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 <HackEgo> 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 <fizzie> I really like how nested Forth ifs read.
12:09:29 <fizzie> p q if if a else b then else if c else d then then
12:11:07 <myname> dafuq
12:13:08 <fizzie> 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 <Melvar> 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 <impomatic_> 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 <fizzie> 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 <fizzie> I'm pretty sure you can't write endif in the firmware of your SparcStation, for example.
12:30:17 <mroman_> "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 <b_jonas> "endif"?
12:36:19 -!- impomatic_ has quit (Ping timeout: 252 seconds).
12:36:51 <fizzie> It's a gforth-et-al. synonym for "then".
12:37:02 <myname> endif makes more sense than then imo
12:38:22 <fizzie> Sure, sense. But it's just a word, and non-portable. (Granted, you could just define your own where not provided.)
12:41:11 <fizzie> `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 <HackEgo> 5
12:51:42 <b_jonas> `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 <HackEgo> 5
12:51:48 <b_jonas> `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 <HackEgo> ​ \ *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 <b_jonas> 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 <impomatic_> I had a manual for JOSS. Sold it on eBay though.
13:03:14 <impomatic_> 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 <b_jonas> ouch
13:08:56 <mroman_> wait
13:09:03 <mroman_> you sold it without copying it?
13:09:09 <mroman_> :(
13:18:26 -!- mihow has joined.
13:32:18 <impomatic_> mroman_ sorry it wasn't something I needed.
13:35:26 <impomatic_> If you can't find a manual for JOSS, try JEAN.
13:46:27 <impomatic_> 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 <mroman_> TELCOMP looks interesting as well
14:19:22 -!- Patashu has quit (Ping timeout: 245 seconds).
14:26:10 <mroman_> How close are sateellites to the earth actually?
14:27:07 <mroman_> 35kkm
14:27:08 <mroman_> i see
14:29:49 <mroman_> smartwatches ey...
14:30:13 <mroman_> Is everything android based now?
14:31:15 -!- Sprocklem has joined.
14:32:56 <myname> i hope so
14:33:29 <mroman_> why?
14:33:43 <mroman_> It would be much more fun if there's more diversity
14:34:08 <mroman_> also I've started to associate Android with "bloatware"
14:34:45 <mroman_> also I don't want a smartwatch that requires an Android Phone to work well
14:34:56 <mroman_> it oughta be a standalone smartwatch
14:35:15 <myname> what should it do?
14:37:38 <mroman_> I don't know.
14:37:41 <mroman_> Being smart.
14:37:50 <mroman_> It should be smart and do smart things
14:38:03 <mroman_> besides displaying the time of course
14:38:15 <mroman_> and maybe have a runtime of at least 7 days
14:38:32 <mroman_> everything under 7 days is totally unacceptable in my eyes
14:38:39 <myname> i have very few ideas of what a smartwatch WITH a smartphone should do
14:38:48 <mroman_> I might as well strap a little nokia to my wrist and it'd run for a month straight
14:38:50 <myname> but basically not one for without a phone
14:39:13 <mroman_> It would be nice if it were able to send emergency signals to police/hospital or something like that
14:39:36 <mroman_> and make phone calls of course
14:39:37 <mroman_> :)
14:39:42 <myname> yeah, so much accidental calls
14:40:04 <mroman_> technically it should be a phone like the phones in the old days
14:40:07 <mroman_> but squished into a watch
14:40:10 <myname> so, you basically want 2 sims? one for your phone and one for your watch?
14:40:25 <mroman_> well I don't need a phone then if the smartwatch can do that
14:40:45 <myname> a phome squished into a watch is a horrible idea
14:40:55 <mroman_> I think it's a great idea
14:41:10 <mroman_> the display is big enough for phone functionality
14:41:17 <mroman_> probably even for gps maps functionality
14:41:58 <mroman_> although my eye sight is getting more terribly every month
14:42:00 <mroman_> :(
14:42:37 <mroman_> It would be star-trek like
14:42:43 <mroman_> you just press a button on the watch
14:42:54 <mroman_> say "Watch, call pizza delivery for me, would you"
14:43:00 <mroman_> and there you go
14:43:31 <myname> don't seex why it shouldn't send that to the phone
14:43:47 <mroman_> because the watch is a phone
14:44:03 <mroman_> I don't see why you need a phone if the watch is itself a phone
14:44:05 <myname> there were phones as watches
14:44:08 <myname> they all sucked
14:44:13 <mroman_> yeah
14:44:16 <mroman_> probably
14:44:17 <mroman_> never had one
14:44:19 <myname> also, try gps navigation on a bike
14:44:26 <mroman_> but know it's 2014 and I'm sure we can make it not suck
14:44:29 <mroman_> *now
14:44:40 <myname> "can't read map because it's on your fucking wrist"
14:44:58 <mroman_> those watches probably didn't have zoom
14:45:23 <mroman_> well
14:45:24 <myname> yeah, i totally want to ride a bike with no hands
14:45:30 <myname> that'll be perfect
14:45:33 <mroman_> "can't read map on my smartphone because it's in my fucking pocket"
14:45:36 <mroman_> ^- doesn't sound much better
14:45:43 <Jafet> You can ride a bike with no hands.
14:45:50 <mroman_> and I can ride a bike with no hands
14:46:07 -!- Imaginer1 has joined.
14:46:07 <myname> 1. i won't do that for to long 2. you can't ride MY bike with no hands
14:46:17 <mroman_> well then your bike sucks
14:46:19 <Imaginer1> Howdy all
14:46:37 <myname> my bike is awesome
14:46:44 <myname> it's a brompton <3
14:47:16 <mroman_> back in the old days we duct taped paper maps to the steering bar
14:47:31 <mroman_> you'd have to do the same thing with a smartphone
14:47:41 <mroman_> or buy a holder for your smartphone
14:47:43 <myname> i don't, i have a finn
14:47:48 <mroman_> ?
14:48:12 <myname> http://getfinn.com/
14:48:14 <mroman_> You have somebody from finnland to do navigation for you?
14:49:25 <mroman_> anyway I'd still love to have a watch that's also a phone
14:49:31 <mroman_> and has a battery life of at least 7 days
14:50:54 <mroman_> although speaker and microphone...
14:51:06 <mroman_> loudspeaker wouldn't be so great :(
14:51:13 <mroman_> but if it had headphones of some sort
14:51:28 <mroman_> oh
14:51:37 <mroman_> and it also has to function as an electronic wallet
14:51:42 <mroman_> and electronic bus/train ticket
14:52:01 <mroman_> possibly through those QR code's they already have for smartphone tickets
14:52:05 <mroman_> *codes
14:52:27 <mroman_> that'd be awesome
14:52:45 <myname> so you want a tiny smartphone to put around your wrist
14:52:51 <Imaginer1> I'm scared, but I think I'm gonna write a bot o.o
14:52:52 <myname> have fun
14:53:09 <mroman_> I'd call it cleverphone
14:53:12 <mroman_> ;)
14:53:23 <mroman_> Imaginer1: for IRC?
14:53:26 <mroman_> and why?
14:53:35 <Imaginer1> Because I'm...
14:53:43 <Imaginer1> I've never done it before?
14:53:45 <Imaginer1> :S
14:53:55 <Imaginer1> See, every time I start a project
14:54:03 <myname> there were one that i would vuy if it weren't that old
14:54:10 <Imaginer1> 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 <Imaginer1> But then I learn.
14:54:16 <Jafet> Make sure to have adequate protection.
14:54:27 <myname> Imaginer1: just build around II?
14:54:38 <Imaginer1> II?
14:54:39 <myname> that's what i would do
14:55:07 <Imaginer1> I feel so inadequate in this room. Like all the time. Jeez.
14:55:20 <myname> Imaginer1: http://tools.suckless.org/ii/
14:55:21 <mroman_> writing an irc bot isn't that hard :)
14:55:29 <mroman_> there's even irc libraries
14:55:35 <Imaginer1> Oh, wondeful
14:55:37 <mroman_> where you can install hooks for messages containing stuff
14:55:51 <Imaginer1> ok... ^^;
14:56:00 <mroman_> the hard part is writing the commands the bot should support :D
14:56:03 <myname> mroman_: http://www.shoutpedia.com/wp-content/uploads/2010/06/motorola-flipout.jpg
14:56:05 <Imaginer1> Like, can I somehow tell you where I am with coding?
14:56:19 <Imaginer1> My best thing, imo, could make bmp images of the mandelbrot set
14:56:26 <Imaginer1> that's, i think, the best thing I ever wrote
14:56:30 <mroman_> that doesn't look like a watch
14:56:32 <mroman_> but it's close I guess
14:56:38 <Jafet> Run an old mirc and some kind person will come along and turn it into an irc bot for you
14:56:46 <myname> it is a pretty awesome thinh
14:56:55 <myname> too bad it runs android 2.1
14:56:55 <Imaginer1> But I want to make it myself, it would be a learning experience ^^;
14:57:32 <Imaginer1> Unrelated question: what does it mean to flush input?
14:58:42 <mroman_> input is usually buffered by libraries
14:58:50 <mroman_> i.e. line buffering for example
14:59:13 <mroman_> where stuff like readchar() blocks until a newline was there
14:59:26 <mroman_> and then you'll receive the first character by a single readchar of that line
14:59:31 <Imaginer1> ok
14:59:39 <mroman_> flush should make it return right now
14:59:48 <mroman_> but that may depend on the language you're using
14:59:54 <Imaginer1> like skipping the pointer to the next line or whatever....?
15:00:01 <Imaginer1> or the next 'buffer'
15:00:15 <Imaginer1> like if you were buffering by words it would skip to the next word
15:00:17 <Imaginer1> I'm so sorry v_v
15:00:24 <Jafet> It's what you do when you know that you're getting crap input
15:00:26 <Imaginer1> ok.
15:00:31 <mroman_> however
15:00:38 <mroman_> I think fflush(stdin) in C clears the input buffer?
15:00:45 <Imaginer1> I don't use C.
15:00:47 <Imaginer1> ^^;
15:01:04 <Jafet> fflush(stdin) revokes your C programming license
15:01:14 <mroman_> damn :(
15:01:19 <mroman_> where can I re-apply for it?
15:01:23 <Imaginer1> hehehe
15:01:28 <mroman_> (I've never used fflush(stdin) though)
15:01:33 <myname> i never got mine :>
15:01:34 <mroman_> but I was just about to
15:01:36 <Imaginer1> What are your guys' languages?
15:02:16 <mroman_> Haskell, of course.
15:02:22 <Imaginer1> ah
15:02:36 <myname> why doesn't anybody say befunge or the like?
15:02:41 <Imaginer1> Well
15:02:44 <Bike> snobol forever
15:02:51 <Imaginer1> because people know esoteric ones but it's not like they use them -regularly-
15:02:54 <Imaginer1> it's fun but
15:02:56 <Imaginer1> yeah
15:03:25 <Jafet> befunge just doesn't support, like, programming in the large and stuff
15:03:45 <myname> it is perfectly scalable!
15:03:58 <myname> just ask fungot
15:03:59 <fungot> myname: " you are conversational skills need work."
15:04:07 <mroman_> Imaginer1: wrong
15:04:12 <mroman_> I use Burlesque regularly
15:04:18 <mroman_> not as regularly as I used to but still
15:04:33 <Imaginer1> Well, I have yet to find an esoteric language I'd like to use regularly
15:04:37 <Imaginer1> but I'm excited to fine one
15:04:39 <Imaginer1> *find
15:05:15 <myname> burlesque looks like j for the uneducated
15:06:09 <Jafet> Fighting words
15:06:36 <mroman_> Burlesque looks like J for the esoteric, bored during lectures, creepy nerd
15:06:58 <mroman_> like me
15:07:05 <myname> i should learn that
15:08:05 <mroman_> blsq ) 4ro{RT}3!C#s
15:08:05 <mroman_> {{1 2 3 4} {2 3 4 1} {3 4 1 2} {4 1 2 3}}
15:08:13 <mroman_> it's easy and readable.
15:08:23 <myname> well...
15:08:41 <mroman_> it's at least one of those two things.
15:08:47 <mroman_> possibly both.
15:10:01 <myname> the most important thing is that you believe in it
15:10:34 <Imaginer1> I think I'm gonna make my bot to play games.
15:10:43 <mroman_> well
15:10:44 <Imaginer1> Hexapawn (with boards a bit larger than 3x3) or smth
15:10:48 <mroman_> I can do chisquare tests with it!
15:11:20 <mroman_> https://raw.githubusercontent.com/FMNSSun/Burlesque/master/examples/statistics2.blsq
15:11:23 <mroman_> ^- there you go
15:11:32 <myname> does anybody know about a language independent programming game?
15:11:51 <mroman_> I thought there was one working through stdin/stdout @game
15:12:15 <myname> which is it
15:12:53 <myname> fifos should work, too
15:13:26 <Jafet> What is a programming game?
15:14:04 <myname> simple example: bf joust
15:14:15 <myname> players write programs to compete
15:14:52 <mroman_> Jafet: You don't play the game but you write programs that play the game
15:15:01 <Jafet> So... WCCC?
15:15:07 <mroman_> Popular games are for example CoreWar
15:15:09 <mroman_> or Ants
15:15:17 -!- Imaginer1 has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
15:15:18 <mroman_> in Ants you write a program (AI) that controls an ant colony
15:15:33 <mroman_> or is it called AntMe!
15:15:34 <mroman_> hm
15:15:51 <myname> robocode
15:17:03 <Jafet> Well, WCCC involves competing hardware too.
15:18:11 <mroman_> http://mroman.ch/burlesque/rwb2.pdf <- also have a look at this case study
15:18:14 <myname> sounds expensive
15:18:22 <mroman_> (I have no idea what a case study actually is)
15:19:09 <mroman_> easy as fuck with burlesque .
15:20:51 <mroman_> Of course, this was made with an older version
15:20:54 <mroman_> the line ln [- {tt}m[ un
15:21:04 <mroman_> can be replaced with a single command in the current stable version
15:22:11 <mroman_> tl"""(m|C)"R~SP is all that's needed to parse the stuff now
15:22:35 <mroman_> quite possibly tl"(m|C)"~RSP in the next version
15:23:24 <mroman_> tl"(m|C)"~RSPu[2COJ{p^.<}feFi!!
15:23:38 <mroman_> (without the message, just prints the number)
15:24:37 <mroman_> once you know all 300++ commands it's easy readable
15:24:42 <mroman_> *easily
15:26:06 <mroman_> the next version will most likely even have variables
15:28:33 <myname> lol
15:30:20 <mroman_> tired of having to write dozens of characters of code for Fibonacci Sequence?
15:30:37 <mroman_> My product makes this much easier
15:30:39 <mroman_> blsq ) 1J{.+}10!C#s
15:30:40 <mroman_> {1 1 2 3 5 8 13 21 34 55 89 144}
15:30:42 <mroman_> 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 <oerjan> @messages-lol
16:25:16 <lambdabot> 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 <fizzie> I saw the space too.
16:25:50 <fizzie> As a gap.
16:26:16 <oerjan> ic
16:30:04 <zzo38> I am using PuTTY and it does something similar to the picture there
16:32:20 <oerjan> i am also using putty
16:55:13 <TieSoul> okay so my idea of using a hash to represent Funge-Space didn't turn out so well
16:55:34 <oerjan> making a hash out of things is not recommended
16:55:35 <TieSoul> let's just say that it took 19 seconds to run mycology
16:56:10 <oerjan> *-out
16:58:03 <elliott> 19 seconds for mycology isn't that bad.
16:58:07 <mroman_> http://mroman.ch/bundle.txt <- if somebody wants one of these games (Steam) just pm me
16:58:16 <elliott> a lot better than some interpreters manage, iirc
16:58:24 <mroman_> I can gift them
16:58:38 <fizzie> 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 <fizzie> TieSoul: "cheating" part if the region size is optimized for mycology.
16:59:19 <TieSoul> hrm
17:00:02 <fizzie> fungot: How do you feel about your fungespace implementation?
17:00:02 <fungot> 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 <fizzie> Uh.
17:00:58 <oerjan> i think fungot should talk to edwardk about his theories
17:00:59 <fungot> oerjan: i guess i _do_ care about beautiful code. xd.
17:01:24 <TieSoul> 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 <TieSoul> but that made my code really cluttered
17:02:20 <TieSoul> so I tried the hash method, but that made my code really slow.
17:02:46 <elliott> 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 <TieSoul> ???
17:03:08 <TieSoul> what is this about abstracting it out?
17:03:12 <TieSoul> what does that mean?
17:03:22 <oerjan> O_O
17:03:27 <TieSoul> making fungespace a class and use functions?
17:03:37 <TieSoul> (I mean instance methods)
17:06:36 <TieSoul> ...did I say something wrong? :P
17:07:04 * oerjan counts the crickets
17:07:45 <oerjan> well yes, if you are using OO programming.
17:08:13 <TieSoul> Yes I am, I'm using Ruby.
17:08:57 <TieSoul> Actually, I'm thinking about starting over in C# or C++, because they're faster
17:09:13 <TieSoul> and my Ruby code kinda sucks
17:10:38 <oerjan> for speed it might be good to use a language that is capable of optimizing out the abstraction.
17:11:01 <oerjan> *implementation, technically
17:11:05 <zzo38> oerjan: Either that or optimize out the abstraction by yourself.
17:11:16 <TieSoul> oh, also, is there a specification of some sort for Funge-108?
17:11:22 <oerjan> zzo38: um that _really_ would defeat the point.
17:12:01 <zzo38> And Ruby is slow anyways
17:12:07 <oerjan> 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 <zzo38> 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 <zzo38> 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 <TieSoul> ...your point and the relevance to Funge being?
17:20:02 -!- MDude has quit (Ping timeout: 252 seconds).
17:22:43 <fizzie> I don't think there is a finalized specification of Funge-108; there was just some work towards one.
17:25:58 <elliott> TieSoul: it could be as simple as a handful of functions working on a global fungespace.
17:26:23 <elliott> 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 <elliott> 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 <TieSoul> yeah, I knew about it
17:27:16 <TieSoul> but I didn't know how it was called
17:30:31 -!- MoALTz has joined.
17:36:40 <mroman_> (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 <zzo38> Abstraction is not always work best way, I think, but it can help when you are trying to be modular.
18:24:38 <zzo38> 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 <zzo38> 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 <quintopia> what is a nanozil
18:50:11 <quintopia> it doesn't sound very nano
18:50:20 <myname> and zil neither
18:50:20 <fizzie> You should've seen the microzil.
18:51:13 <fizzie> It's like two million *lines*.
18:52:18 <zzo38> It is a Z-machine compiler
18:52:44 <zzo38> 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 <zzo38> Note that the largest amount of the nanozil code is the optimizations, most of the rest is actually pretty simple.
18:58:31 <zzo38> How common is things like if(i&~3) in a C code?
19:03:06 <mroman_> well it blanks the two lsbs
19:03:24 <mroman_> how common is that?
19:03:57 <fizzie> Also uses the result as the controlling expression of an if statement.
19:04:05 <mroman_> usually I'd prefer #define MASK (~3)
19:04:07 <mroman_> if(i&MASK)
19:04:49 -!- Sprocklem has quit (Quit: [).
19:05:00 <fizzie> Usually I prefer to be all unsigned when dealing with bits, but maybe there's some particular reason.
19:07:15 <fizzie> 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 <zzo38> 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 <zzo38> 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 <fizzie> 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 <fizzie> I don't know of any implementations where it would be a trap representation.
19:18:29 <fizzie> 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 <zzo38> fizzie: What are "jb" and "jae" corresponding to?
19:46:50 <zzo38> I do not remember much about how x86 assembly codes are working
19:47:15 <b_jonas> zzo38: jb is jump if below, a conditional jump taken when the carry flag is unset
19:47:25 <b_jonas> jae ia the opposite, a conditional jump taken if the carry flag is set
19:47:42 <b_jonas> (for the details, see the intel and amd manuals)
19:49:20 <zzo38> O, so it is a kind of unsigned comparison
19:49:40 <fizzie> b_jonas: Actually, jb jumps if the carry flag is set, due to the operand order of cmp.
19:50:29 <fizzie> "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 <fizzie> And yes, it's an unsigned comparison.
19:51:01 <fizzie> It's quite curious that it turns the &~3 variant to a cmp instruction too.
19:52:32 <fizzie> 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 <b_jonas> Jafet: uh, sorry then
19:54:03 <zzo38> 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 <b_jonas> fizzie: yes, you're right, JB jumps if the carry flag is set
19:56:30 <fizzie> Full disclosure note: I already had the Intel manuals open.
19:57:08 <fizzie> fungot: Do you think I should write you a Forth to complement ^bf and ^ul?
19:57:09 <fungot> fizzie: i suck at transcribing by ear :)
19:57:10 <Taneb> My Countdown-playing program seems to have been a nice fun toy project
19:57:17 <fizzie> fungot: Oh, well, never mind then.
19:57:17 <fungot> fizzie: that's nice.
19:57:48 <Taneb> I should learn Forth
19:58:01 <Taneb> ...and APL, and Lisp, and half a dozen others
19:58:31 <b_jonas> Taneb: sure. we have some channels for those in freenode.
19:58:58 <fizzie> There are 7 people and no set topic on #apl, that's all I can tell from the outside.
19:59:57 <b_jonas> fizzie: #jsoftware for APL
20:00:15 <b_jonas> fizzie: classical APL is on topic there too, though not many people speak it
20:00:30 <b_jonas> (mind you, classical APL has many different dialects too, it's sort of like old Lisp)
20:01:55 <Taneb> `cat hello.
20:01:55 <HackEgo> cat: hello.: No such file or directory
20:01:57 <Taneb> `cat hello.c
20:01:58 <HackEgo> const char main[] = "AXAYAZA[A\\ATX-pppp-0```- ///P^VTXH10XP4>40PZ414>P_\x0f\x05XATASARAQAP\xc3Hello, world!\n";
20:02:04 <Taneb> What architecture is that for?
20:02:45 <b_jonas> 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 <fizzie> `run echo -e '#! /bin/bash\nexec gforth -e "$* bye" </dev/null' > bin/forth; chmod +x bin/forth
20:04:45 <HackEgo> No output.
20:04:50 <fizzie> `forth 1 2 + 3 * .
20:04:51 <HackEgo> 9
20:04:54 <fizzie> That's better.
20:05:22 <b_jonas> (I don't do forth.)
20:05:26 <Taneb> `forth 2 10 ^ .
20:05:27 <HackEgo> ​ \ *OS command line*:-1: Undefined word \ 2 10 >>>^<<< . bye \ Backtrace: \ $40E44A68 throw \ $40E5ACE0 no.extensions \ $40E44D28 interpreter-notfound1
20:05:32 <Taneb> Yaaaaa
20:05:33 <fizzie> 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 <Taneb> `forth 2 10 ** .
20:05:44 <HackEgo> ​ \ *OS command line*:-1: Undefined word \ 2 10 >>>**<<< . bye \ Backtrace: \ $40E44A68 throw \ $40E5ACE0 no.extensions \ $40E44D28 interpreter-notfound1
20:05:51 <Taneb> What's exponentiation
20:06:04 <Bicyclidine> multiply it yourself!!
20:06:34 <fizzie> `forth 1 10 lshift .
20:06:34 <HackEgo> 1024
20:06:38 <b_jonas> Taneb: try /msg j-bot [ 2^10
20:06:51 <b_jonas> the ^ operator does exponentiation
20:06:57 <fizzie> I'm not even sure if ANS Forth has integer exponentiation. I think not.
20:07:06 <Taneb> b_jonas, which wouldbe great if I wanted to calculat 1024
20:07:25 <b_jonas> um, it does other exponentiation too, not just 2 to the 10th
20:08:01 <Taneb> But I was trying to learn Forth :)
20:08:06 <fizzie> `forth 2 s>f 10 s>f f** f>s . ( so nasty )
20:08:06 <HackEgo> 1024
20:08:14 <b_jonas> `perl say 2**10
20:08:15 <HackEgo> Can't open perl script "say 2**10": No such file or directory
20:08:22 <b_jonas> `perl -E say 2**10
20:08:23 <HackEgo> 1024
20:08:45 <Bicyclidine> bonus challenge: implement addition chain exponentiation in forth
20:09:55 <fizzie> `forth 2e 10e f** f. ( now with less explicit conversions )
20:09:55 <HackEgo> 1024.
20:10:07 <b_jonas> you don't need those conversions in J, the ^ operator converts to float anyway
20:10:28 <b_jonas> perl does too
20:10:29 <Bicyclidine> okay but j isn't forth or much at all like forth.
20:10:35 <b_jonas> um
20:10:45 <b_jonas> I think there was someone who liked both forth and J
20:10:57 <b_jonas> I'm not sure who
20:11:02 <Taneb> `gcc --version
20:11:03 <HackEgo> 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 <fizzie> 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 <fizzie> `forth s" gforth" environment? [if] .( gforth ) type [then]
20:12:55 <HackEgo> gforth 0.7.0
20:13:57 <fizzie> 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 <zzo38> In a few Forth systems you can define a IF ... THEN block like: : IF` 0=GOTO` HERE 0 , ; : THEN` HERE SWAP ! ;
20:17:46 <b_jonas> uh
20:17:49 <zzo38> (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 <nvd> Wow I have a 3-letter nick registered
20:21:15 -!- mihow has quit (Quit: mihow).
20:21:25 <nvd> There's like only 270000 of those
20:22:05 <Bicyclidine> i used to have 'god' registered on another network, but the opers reprogrammed the servers to deny god. very tragic.
20:22:47 <b_jonas> nvd: I think there's less than 100000 actually, but I'm not sure
20:23:09 <b_jonas> the character sets and cases are complicated
20:23:22 <nvd> > length "abcdefghijklmnopqrstuv^`_0123456789"
20:23:23 <lambdabot> 35
20:23:31 <nvd> > 35 ^ 3
20:23:32 <lambdabot> 42875
20:23:42 <nvd> I mis-mathed
20:23:52 <nvd> > 30 ^ 3
20:23:53 <lambdabot> 27000
20:24:01 <b_jonas> nvd: no, you can't start with a letter of hyphen, and nicks can contain [\]{|} too
20:24:26 <nvd> That's awkward
20:24:30 <nvd> I'm going to retaneb
20:24:32 <b_jonas> 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 <coppro> b_jonas: standard IRC
20:24:56 <b_jonas> also, you can use wxyz in nicks too
20:25:04 <coppro> [\] are case-equivalent {|}
20:25:14 <coppro> and ` and ^ I think
20:25:26 <b_jonas> coppro: what? no
20:25:33 <b_jonas> ` would be equivalent to @ which isn't a character
20:25:33 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found
20:25:50 <b_jonas> ` is equivalent to ~ though
20:25:51 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found
20:25:55 <coppro> ah, no
20:26:00 <coppro> ` is not case-equivalent to anything
20:26:01 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found
20:26:02 <coppro> but ~ and ^ are
20:26:06 <b_jonas> oh damn
20:26:07 <b_jonas> sorry
20:26:08 <b_jonas> yes
20:26:11 <b_jonas> I'm too tired for this
20:26:28 <coppro> it originates from scandinavian keyboards iirc
20:26:31 <b_jonas> so that means, what, 32*43*43 possible three-letter nicks?
20:27:05 -!- westerp has joined.
20:27:18 <Bicyclidine> "standard IRC", lol
20:27:19 <b_jonas> 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 <b_jonas> > 32*43*43
20:27:35 <lambdabot> 59168
20:27:37 <b_jonas> probably
20:27:37 <coppro> b_jonas: yeah
20:27:48 <coppro> but also keyboards
20:28:25 <coppro> finnish ones specifically iirc
20:30:22 -!- impomatic_ has quit (Ping timeout: 240 seconds).
20:32:31 <fizzie> `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 <HackEgo> 1024
20:32:41 <fizzie> (Disclaimer: probably not very idiomatic or good.)
20:33:01 <Taneb> I really need to learn Forth
20:33:08 <Taneb> But first, Erlang, Rust, and APL
20:33:10 <Bicyclidine> that's just binary exponentiation, right
20:33:23 <fizzie> Bicyclidine: Yes.
20:33:32 <Bicyclidine> not good enough
20:34:53 <Bicyclidine> it's kind of weird being able to read that.
20:36:34 <b_jonas> Bicyclidine: can you write a better one?
20:36:42 <b_jonas> I have a binary exponentiation implemented in J somewhere
20:38:01 <Bicyclidine> probably not. i can only barely read it, anyway.
20:38:17 <fizzie> http://sprunge.us/OhIZ for a formatted and commented version
20:38:18 <Bicyclidine> i was referring to addition-chain exponentiation which is more efficient if you don't mind solving NP-complete problems beforehand
20:38:38 <fizzie> The whole 1- bit was probably unnecessary, due to a flooring 2/.
20:39:38 <fizzie> Er, and the comment is missing x*f(...) for the odd case.
20:39:53 <Bicyclidine> isn't i- yeah.
20:40:02 <fizzie> The code isn't, though.
20:41:08 <fizzie> ...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 <Taneb> How terrible an idea is having a publicly accessibly dc program?
21:10:57 <zzo38> Taneb: Probably, it depend on the program.
21:11:22 <Taneb> Is it possible to have a malicious dc script?
21:11:31 <Phantom_Hoover> dc has a shell interface, doesn't it?
21:11:42 -!- hogeyui____ has quit (Ping timeout: 260 seconds).
21:11:48 <Taneb> `dc -e 1 2 + p
21:11:48 <HackEgo> 3
21:12:03 <Phantom_Hoover> yep, ! runs the rest of the line as a system command
21:12:30 <Taneb> `dc -e "1 2 + p ! ls"
21:12:30 <HackEgo> dc: '"' (042) unimplemented \ 3 \ sh: 1: Syntax error: Unterminated quoted string
21:12:39 <Taneb> `dc -e 1 2 + p ! ls
21:12:39 <HackEgo> 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 <zzo38> Yes a malicious dc script is possible if the program has ! on it
21:12:45 <Taneb> !!!!
21:13:34 <zzo38> (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 <Phantom_Hoover> wouldn't be enough, gnu dc has an int->char instruction
21:18:51 <fizzie> `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 <HackEgo> 1024
21:18:56 -!- Bicyclidine has joined.
21:18:57 <fizzie> Turned out shorter too.
21:19:27 <Phantom_Hoover> 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 <Taneb> `dc -e [! ls] x
21:19:45 <HackEgo> ​:-( \ 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 <Taneb> `dc -e [ls] [!] x x
21:20:27 <HackEgo> dc: register 's' (0163) is empty
21:22:12 <Bicyclidine> glad we have to worry about calculators from 1960 being insecure
21:22:21 <Taneb> `run echo "! ls" > dc -e ?
21:22:23 <HackEgo> No output.
21:22:30 <Taneb> `run cho "! ls"
21:22:31 <HackEgo> bash: cho: command not found
21:22:36 <Taneb> `run echo "! ls"
21:22:36 <HackEgo> ​! ls
21:22:49 <Taneb> `run echo "! ls" | dc -e ?
21:22:50 <HackEgo> dc: stack empty
21:23:21 <fizzie> `run echo "! ls" | dc -e '?'
21:23:22 <HackEgo> ​:-( \ 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 <fizzie> A truism: there's always at least one file of length 1.
21:23:44 <fizzie> Filename length, I mean.
21:24:02 <Taneb> OK, we need to ban ! and probably ?
21:24:24 <Taneb> `dc -e [:x]:x
21:24:25 <HackEgo> dc: stack empty
21:24:41 <Taneb> `dc -e '[:x]:x'
21:24:42 <HackEgo> dc: dc: stack empty \ dc: ''' (047) unimplemented \ ''' (047) unimplemented
21:25:03 -!- hogeyui____ has joined.
21:26:20 <zzo38> 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 <zzo38> I think best way to avoid these things is to just make a modified version of dc.
21:27:12 <zzo38> So that you can omit the ! command
21:27:12 <Bicyclidine> securedc
21:27:40 <zzo38> (Or add a command-line switch to cause the ! command to stop working)
21:30:05 <zzo38> However, note that ! is also used for conditions in dc; this is a different command.
21:30:25 <zzo38> 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 <Taneb> For a shirt time the party of the Scion campaign was perfectly gender-balanced, despite there being an odd number
21:45:03 <Taneb> (one character was gender-fluid)
21:45:14 <Phantom_Hoover> oh yeah, i forgot dc overloads !
21:46:06 <Phantom_Hoover> so yeah, just patch out the system exec command if you still want to go ahead with it
21:47:52 <zzo38> How is a character being gender-fluid?
21:48:19 <Taneb> zzo38, good question
21:48:24 <Taneb> he/she is not my character
21:48:40 <Taneb> The character sometimes looks male, other times female
21:50:15 <Taneb> Except now a new player has joined
21:52:05 <Taneb> Whose character I know little about yet
21:59:21 -!- oerjan has quit (Quit: Etc.).
22:08:59 <zzo38> Do they look like it by disguise? I doubt that would necessarily make them make and female though.
22:09:41 <Bicyclidine> you could just change clothes if you had the right body type. it's not much of a disguise.
22:10:25 <Taneb> zzo38, there's a supernatural element to it, too
22:11:53 <zzo38> O, does that mean you can magically change your gender?
22:13:26 <Taneb> That character can. It's not a standard thing, it was agreed with the GM
22:14:16 <zzo38> 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 <zzo38> 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 <quintopia> what does it do zzo38
23:14:24 <zzo38> 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 <zzo38> But, did I do it properly or not?
23:17:25 <quintopia> 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 <zzo38> 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 <zzo38> 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 <quintopia> helloily
23:19:47 <zzo38> And keep only the bits that are the same for all numbers in that range.
23:19:56 <quintopia> oh i see
23:20:18 <quintopia> but wouldn't it be confusing if the ones that could be different are zero?
23:20:42 <quintopia> surely there's an easier way to accomplish it
23:21:05 <boily> quinthellopia!
23:21:26 <boily> @metar CYUL
23:21:27 <lambdabot> CYUL 052300Z 19008KT 15SM FEW050 BKN085 BKN180 OVC240 23/19 A2983 RMK SC1AC4AC1CI2 CB EMBD SLP102 DENSITY ALT 1100FT
23:21:46 <boily> yé... still CB EMBD... as if I wasn't as drenched already...
23:22:09 <zzo38> 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 <quintopia> oh i think i understand better now
23:25:25 <quintopia> well no
23:25:36 <quintopia> it looks like omask = min&max
23:25:43 <quintopia> according to your description
23:26:07 <zzo38> I may have made some kind of messy mistakes
23:26:09 <quintopia> or not
23:26:13 <quintopia> i'll think about it
23:26:37 <zzo38> It is supposed to update imask/omask to match what min/max already specifies
23:26:46 <quintopia> right
23:27:14 <quintopia> and clearly all the higher order bits between min and max will be set in imask
23:27:34 <quintopia> if min and max are powers of two it's not hard
23:28:01 <quintopia> 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).
←2014-09-04 2014-09-05 2014-09-06→ ↑2014 ↑all