←2010-08 2010-09 2010-10→ ↑2010 ↑all
00:01:12 -!- sebbu2 has joined.
00:02:16 -!- sebbu2 has changed nick to sebbu[laptop].
00:19:07 -!- cpressey has quit (Quit: SyntaxError: it would appear your syntax is in error).
00:19:46 <Sgeo> alise, jsforth
00:19:58 * Sgeo prepares for alise to make some sort of statement expressing disapproval
00:21:33 <alise> http://rx-core.org/jsvm/
00:21:41 <alise> http://www.forthfreak.net/jsforth.html
00:21:56 <alise> (http://wiki.forthfreak.net/index.cgi?jsforth)
00:22:02 <oerjan> close to the virtual metal?
00:22:06 <alise> http://solidcoding.blogspot.com/2008/12/wforth-javascript-forth-interpreter.html
00:22:13 <alise> 'nuff said
00:22:45 <Sgeo> I was expecting more of a "Don't use it" than a "It already exists"
00:23:02 <alise> *shrug*
00:23:06 <alise> nothing wrong with it, a bit useless though
00:23:19 <Sgeo> It needs to be made to work with Chrome
00:23:50 * Sgeo is considering LSL-Forth
00:23:57 <Sgeo> Which, apparently, already has been done
00:24:04 <Sgeo> But I don't think it's been mass marketed
00:24:28 <Sgeo> Which I wanted to do with a Scheme in LSL, and would want to do the same with a Forth
00:24:33 <Sgeo> Scheme might be easier
00:24:34 <alise> Somehow, when talking about selling Second Life stuff you manage to sound as obnoxious as "social media gurus".
00:24:38 <Sgeo> To get acceptance stuff
00:25:06 <Sgeo> alise, I'm not a large clueless company
00:25:49 <alise> nor are "social media gurus"; they're just clueless
00:26:25 * Sgeo decides that wForth is worthless
00:26:44 <Sgeo> It doesn't have SEE, it doesn't have c.,
00:27:01 <Sgeo> It has neither postpone nor [compile]
00:27:11 -!- GreaseMonkey has joined.
00:27:33 <Sgeo> Doesn't have XTs
00:27:54 <Sgeo> Doesn't have .s
00:28:13 <Sgeo> I'm surprised it actually has : and ;
00:28:42 <Sgeo> No S"
00:28:59 <Sgeo> No ' nor [']
00:29:13 <Sgeo> Um...
00:29:14 <Sgeo> WTF
00:29:16 <Sgeo> No immediate
00:30:57 <Sgeo> JSVM treats enter and space as the same thing, which I guess isn't necessarily bad
00:39:48 <alise> It's RetroForth.
00:39:51 <alise> It does that.
00:40:02 <alise> They just ported their VM to JS.
00:40:57 -!- Killerkid has quit (Ping timeout: 245 seconds).
00:48:14 -!- GreaseMonkey has quit (Remote host closed the connection).
00:51:29 * Sgeo wonders if LSL-Forth should use native LSL strings or in-memory stuff
00:53:52 -!- Killerkid has joined.
00:54:24 <alise> Sgeo: Mu; it should not exist.
00:55:16 <Sgeo> It has as much right to exist as jsforth does
00:57:26 <alise> Yes, but jsforth isn't marketed as something you should actually use.
00:58:15 <Sgeo> What's wrong with trying to get people to use a hypothetical LSL-Forth?
00:58:35 <Sgeo> Although I guess an LSL-Scheme would be easier
00:58:43 <Sgeo> More difficult to implement an LSL-Scheme though
01:05:24 * Sgeo wonders if it would be easier to implement Scheme in Forth than directly in LSL
01:10:43 <alise> Sgeo: : min 2dup < if drop ; then nip ; : max ...
01:10:54 <alise> Sgeo: What min would look like in colorForth (with translation of colours to symbols)
01:11:00 <alise> Figure out how it works!
01:11:13 <alise> (Assuming those words are defined in cF, I don't know)
01:11:27 * Sgeo doesn't remember nip
01:13:56 <oerjan> is nip == swap drop ?
01:22:14 <alise> oerjan: yeah
01:22:16 * Sgeo wtfs at that : before max
01:22:25 <alise> it's defining max
01:22:28 <alise> i was just showing how it ended
01:22:31 <alise> (however, it is relevant)
01:22:34 <alise> Sgeo: note the multiple ;s
01:22:39 <alise> the nip isn't the important thing
01:22:52 <alise> i can explain :P
01:22:54 <Sgeo> Your min does not have a sensible stack effect
01:23:15 <Sgeo> Although I guess I have no clue wtf that extra ; is for
01:23:26 * oerjan think he has guessed
01:23:42 <oerjan> it's related to how you said cf does proper TCO...
01:23:51 <alise> Sgeo: yes it does
01:24:01 <alise> i'll explain it, since nobody is cool enough to get it
01:24:03 <alise> apart from oerjan
01:24:07 <alise> so Sgeo isn't cool enough to get it
01:24:12 <alise> Sgeo: ; does /not/ terminate the definition
01:24:15 <oerjan> *thinks
01:24:17 <alise> ; merely compiles as a return
01:24:20 <alise> there is no "else"
01:24:21 <alise> so here we have
01:24:29 <alise> 2dup > if drop ; then nip ;
01:24:30 <alise> so
01:24:32 <alise> if they're >
01:24:34 <alise> drop then return
01:24:37 <alise> otherwise, the return will be skipped
01:24:42 <alise> so we nip then return
01:24:46 <alise> so how do you terminate definitions?
01:24:47 <alise> simple
01:24:48 <alise> by starting another one
01:24:51 <alise> thus the : max
01:24:56 <alise> (or max-in-red in cF itself)
01:25:15 <alise> you can't deny that that's cool.
01:25:23 <oerjan> ...so how do you actually start interpreting again?
01:25:37 <Sgeo> exit in normal Forths does the same thing, right?
01:25:43 <alise> Sgeo: i think so
01:25:46 <alise> oerjan: i'm not actually sure.
01:25:52 <alise> oerjan: probably there is some word for it
01:25:54 <alise> :P
01:26:11 <alise> but ~all of colorForth is blocks of word definitions, so
01:26:18 <Sgeo> http://www.youtube.com/watch?v=MuOvqeABHvQ wtf
01:26:19 <alise> and ofc you never actually see :
01:26:19 <alise> it's just
01:26:23 <alise> [red NAME] [green WORDS]
01:26:24 <alise> [red NAME] [green WORDS]
01:26:24 <alise> etc
01:27:05 <alise> Sgeo: btw, you can "tail-recurse" in any forth
01:27:06 <oerjan> hm ; isn't yet another color?
01:27:08 <alise> just rdrop foo
01:27:12 <alise> oerjan: nope, it's a regular word
01:27:19 <alise> oerjan: it's not syntax highlighting, only actual semantic differences
01:27:26 <oerjan> what's rdrop?
01:27:31 <alise> drop from return stack
01:27:37 <alise> which is exactly what you think it is
01:27:46 <alise> huh hm
01:27:48 <alise> why doesn't it work
01:27:48 <Sgeo> alise, the return stack is standardized?
01:27:57 <alise> Sgeo: Um ... it's a vital part of any Forth ... of course it is.
01:28:29 <Sgeo> alise, but the things in it are guaranteed to have a specific meaning? Can't one Forth possibly use two cells for each thingy?
01:29:02 <alise> No.
01:29:16 <alise> Well, yes, of course it can; but a Forth can do anything it likes.
01:29:23 <alise> ANS Forth doesn't say it can, though, but that's not worth anything.
01:29:33 <alise> More to the point, the only thing that matters is that no Forth does that anyone knows of.
01:29:40 <alise> Because return stack manipulation is VERY common.
01:29:56 <alise> Now to figure out why rdrop doesn't wokr.
01:29:57 <alise> *work.
01:30:27 <Sgeo> alise, return stack manipulation for the purposes of manipulating the return stack, or for trivial temporary storage?
01:30:57 <alise> The former.
01:31:06 <alise> Well, both.
01:31:40 <alise> : ok ." ok" ; ok
01:31:40 <alise> ok ok ok
01:34:18 <Sgeo> nsfwish
01:34:59 <alise> Sgeo: what?
01:35:21 <Sgeo> The video I pasted
01:36:39 <alise> You didn't.
01:37:22 <Sgeo> I pasted a URL to a video
01:40:32 -!- augur has joined.
01:42:16 -!- Chat2705 has joined.
01:42:22 -!- Chat2705 has quit (Remote host closed the connection).
01:45:44 <alise> Sgeo: wrong
01:45:46 <alise> check the logs
01:48:12 <oerjan> Sgeo is technically correct
01:48:30 <oerjan> that's a bit long to wait before saying "nsfw.*", though
01:48:33 <alise> oh, i see
01:49:40 <Sgeo> It's a bit long before that part played
01:49:43 <alise> Sgeo: you have never seen Rejected?
01:49:44 <alise> seriously?
01:49:54 <Sgeo> alise, I have today
01:50:47 <alise> it is the firmament on which the internet is based
02:05:35 <Sgeo> What's a typical way to do events in Forth?
02:05:46 <Sgeo> somext someevent
02:05:47 <Sgeo> ?
02:09:06 <alise> You... don't
02:09:09 <Sgeo> : 2dup ( a b -- a b a b ) over over ;
02:09:44 <Sgeo> I think
02:09:57 <Sgeo> alise, hm?
02:10:05 <alise> generally
02:10:10 <alise> : 2dup dup dup ;
02:10:18 <Sgeo> alise, uh...
02:10:19 <alise> : 2dup postpone dup postpone dup ; immediate
02:10:22 <alise> oh right
02:10:24 <alise> of course not
02:10:25 <alise> i was thinking
02:10:26 <alise> 2xdup
02:10:28 <alise> not dup over two
02:10:39 <alise> : 2dup postpone over postpone over ; immediate
02:10:39 <alise> that is
02:10:47 <Sgeo> Why postpone?
02:11:03 <Sgeo> And why would 2dup be immediate?
02:11:28 <Sgeo> I take it you're also thinking of over as immediate. Why?
02:11:35 <Sgeo> All the immediateness is ... alarming
02:13:02 <alise> postpone
02:13:06 <alise> Sgeo: simple
02:13:10 <alise> because 2dup should compile to over over
02:13:16 <alise> rather than having to be called
02:13:17 <alise> since it's so simple
02:13:41 <Sgeo> So basically inlining
02:13:46 <alise> yep.
02:15:01 <Sgeo> WTF
02:15:01 <Sgeo> Forth will not understand this. It will desperately look for the words 'this', 'will', etc. However the word '' will mark everything up to the end of the line as comment. So this will work:
02:15:01 <Sgeo> : *. * . ; This will multiply and print two numbers
02:15:41 <Sgeo> I assume there should be a \ , but I simply don't see it
02:16:42 <alise> bad escaping obviously
02:19:32 <Sgeo> Remember that aw-create thing?
02:19:37 <Sgeo> It should really use a value
02:24:28 <Sgeo> alise, would attempting to popularize LSL-Scheme make more sense?
02:34:10 <alise> Both make 0 sense.
02:35:27 <Sgeo> alise, LSL sucks
02:35:30 <Sgeo> Horribly
02:39:13 <oerjan> lavishly sucking language
02:39:40 -!- comex has quit (Ping timeout: 276 seconds).
02:40:03 -!- comex has joined.
02:41:14 <Sgeo> alise, "The ANS Forth standard does not express Moore's vision of Forth. Moore believes the ANS standard is far too large and complex, and he doesn't see much value in any standard since people should write their own Forth. It is fair to say that most of the Forth community disagrees."
02:42:03 <alise> Sgeo: It is fair to say that "most of the X community" is defined as the writer's opinions on X.
02:42:09 <alise> Weasel words; look them up.
02:45:04 <Sgeo> Hmm, I should attempt to figure out the return stack
02:46:08 <Sgeo> WHat's the point of ?dup?
02:46:17 <Sgeo> It's effect on the stack is conditional
02:46:20 <Sgeo> *Its
02:49:28 <alise> Who knows?
02:49:33 <alise> Stupidity.
02:50:25 * Sgeo wonders if it makes sense to 'boot into Open Firmware'
02:54:42 -!- cal153 has quit (Ping timeout: 245 seconds).
03:00:47 <Sgeo> My locker number is 24
03:10:08 * Sgeo ponders ForthNomic
03:10:28 <Sgeo> It's doable... but the result would necessarily be very much unforthlike
03:19:38 -!- cal153 has joined.
03:42:53 -!- Mathnerd314 has joined.
03:47:53 <augur> llaallaa
03:49:43 <oerjan> llama rama
03:53:31 <augur> rama llama :o
03:57:18 <alise> autopsy
03:57:40 -!- yorick has quit (Read error: Operation timed out).
03:58:37 <augur> auto-psy
04:00:01 -!- Gregor has joined.
04:07:00 -!- GreaseMonkey has joined.
04:07:30 <oerjan> psychic autos
04:14:41 -!- alise has quit (Quit: Leaving).
05:36:14 -!- oerjan has quit (Quit: leaving).
05:46:30 -!- zzo38 has joined.
05:46:52 <zzo38> Hello did those you, who you wanted to install MegaZeux, done it yet?
05:50:05 -!- Zuu has quit (Ping timeout: 276 seconds).
05:51:00 -!- cheater00 has joined.
05:54:11 -!- cheater99 has quit (Ping timeout: 240 seconds).
06:07:18 <Sgeo> Well, just learned that I can't make an AW SDK wrapper for Gforth
06:07:38 <zzo38> Sgeo: O, you can't?
06:07:46 <Sgeo> Or, actually, possibly I can, but I need to use undocumented stuff
06:07:52 <Sgeo> zzo38, it needs callbacks
06:07:56 <Sgeo> http://www.complang.tuwien.ac.at/forth/gforth/Docs-html/Callbacks.html#Callbacks
06:08:12 <zzo38> You could somehow implement callbacks in Gforth, somehow
06:08:38 <Sgeo> Hmm, true, I guess, but I'd have no clue where to start
06:09:37 <Sgeo> I'm still not sure when ?dup is useful
06:09:46 <zzo38> Unfortunately I don't know either, but I have some guesses
06:09:52 <zzo38> And I do know when ?DUP is useful.
06:10:05 <zzo38> It is sometimes useful in ?DUP IF or ?DUP WHILE constructions
06:10:53 <zzo38> To do callbacks, perhaps, push stuff in stack, store address in return stack, when it returns pop what is needed and then return to the other program. Maybe, that might work? I don't know.
06:12:50 <Sgeo> : rdrop r> drop ; ( except no, this would probably not be what a potential user would want )
06:14:04 -!- Zuu has joined.
06:14:04 -!- Zuu has quit (Changing host).
06:14:04 -!- Zuu has joined.
06:14:41 <Sgeo> Oh dear god
06:14:49 <zzo38> That definitions of rdrop wouldn't work so well, if...
06:14:55 <coppro> wow, the xkcd alt text today is geeky
06:14:58 <Sgeo> I just had a thought involving a definition with 6 POSTPONE in the body
06:15:25 <zzo38> The definition you give might act like EXIT does....
06:15:58 <Sgeo> alise was doing something akin to inlinine
06:16:01 <Sgeo> I think I'd use that
06:16:09 <Sgeo> But then I might have a stack of postpones
06:16:29 <Sgeo> Factored out with a definition that drops in multiple postpones... but the postpones need to be double
06:16:31 <Sgeo> *doubled
06:16:32 <zzo38> If you want to inline the code, you use POSTPONE and IMMEDIATE
06:16:34 <Sgeo> </insane>
06:17:20 <Sgeo> That pattern should be factored out into, say, a inline:
06:17:21 <coppro> I move that we postpone this conversation indefinitely
06:17:26 <Sgeo> Too tired and late to do it now
06:18:14 <zzo38> You might be able to make the definition clearer if you modify the parser to support backtick notation
06:18:25 <Sgeo> backtick notation?
06:19:18 <zzo38> Backtick notation is something that some Forth systems support, I think the first one might have been HELFORTH, although I cannot find any information about it anymore. MegaZeux and TAVSYS also support backtick notation.
06:19:35 * Sgeo is more interested in what it does than what its history is
06:19:48 <zzo38> Backtick notation does this:
06:19:55 <zzo38> : IF` 0=GOTO` ORIG ;
06:20:01 <zzo38> : THEN` HERE SWAP ! ;
06:20:26 <zzo38> Where the word IF` is the word to compile IF and DUP` is the word to compile DUP and so on.
06:20:55 <Sgeo> But didn't whatn you just put attempt to define IF` ?
06:21:24 <zzo38> Sgeo: Can you write that more clearly, please?
06:22:50 <Sgeo> Is : IF` 0=GOTO` ORIG ; an example of using it, or an example of defining IF` ?
06:23:07 <zzo38> It is an example of defining IF`
06:23:17 <zzo38> And an example of using it.
06:23:18 <Sgeo> Oh, as in the compilation semantics of IF?
06:23:23 <zzo38> Yes.
06:23:48 <Sgeo> Some Forths use compile-only
06:23:56 <Sgeo> Most use IMMEDIATE
06:24:04 <Sgeo> Oh, wait
06:24:14 <Sgeo> No, most would use immediate and be state-smart
06:24:22 <Sgeo> Checking STATE
06:24:38 <Sgeo> I remember reading that that's largely not a good thing to do
06:25:51 <zzo38> You are correct, that is not generally a good thing to do
06:26:44 <zzo38> : ELSE` GOTO` ORIG SWAP THEN` ;
06:29:50 <Sgeo> If you want an event system, what would it normally look like from the high level?
06:29:56 <Sgeo> somext someevent
06:29:57 <Sgeo> ?
06:30:58 <zzo38> You can see how MegaZeux does it, which is one possible way
06:31:18 <zzo38> The addresses are stored in a event array
06:31:59 <zzo38> And the built-in word to create them is :EVENT ( event-number -- )(enter compile mode)
06:33:04 <Sgeo> That makes a lot of sense
06:33:12 <Sgeo> Um, built in?
06:33:24 <Sgeo> As in, not written in MegaZeux Forth?
06:33:44 <zzo38> Actually, it is not primitive, it is built-in to the standard library.
06:33:51 <Sgeo> Ok
06:33:51 <zzo38> So it is written in MegaZeux Forth.
06:33:58 <zzo38> (I just made a kind of small mistake)
06:34:32 <Sgeo> I need to brush teeth and go sleep
06:34:52 <Sgeo> Hmm, maybe I should avoid deliberately using bad grammar
06:35:53 <zzo38> It doesn't matter, as long as it can be possible to understand it
06:37:37 <zzo38> An example of an event code in MegaZeux Forth might look like: SimpleLock EV.ITEM + :EVENT DROP BOARD_COLOR + @ TAKEKEY ;
06:38:35 -!- aortizm has joined.
06:38:40 <aortizm> hi
06:38:44 <Sgeo> Hi aortizm
06:39:02 <Sgeo> zzo38, what happens if EV.ITEM happens to be too large to h.. oh, wait, n/m
06:39:04 <Sgeo> I think
06:39:25 <Sgeo> I guess when I saw the ., my mind went to OOP mode, and thought it was a variable (well, value)
06:39:37 <aortizm> Hi Sgeo, I'm seeking someone who knows about possetions
06:40:00 <Sgeo> aortizm, sorry, this channel is not about the spiritual type of esoterica
06:40:07 <aortizm> ok
06:40:20 <Sgeo> This is about esoteric programming languages... languages that are made not for practical use, but for other reasons
06:40:27 <Sgeo> They do not seek to be mainstream languages
06:40:37 <zzo38> EV.ITEM is a constant representing the value you must add to the kind ID number, to make the event number.
06:40:50 <Sgeo> Brain**** is an example of an esoteric programming language
06:40:52 <aortizm> well perhaps it could use some usefull info..
06:40:54 <Sgeo> One of the more famous ones
06:41:13 -!- aortizm has quit (Read error: Connection reset by peer).
06:41:15 <coppro> INTERCAL
06:41:35 <zzo38> aortizm: But sometimes other things are discussed too. But not always. (There was topic message in here once about the spiritual type, but that is not the main purpose of this channel, so if you have on-topic stuff to discuss, it takes priority, generally)
06:41:49 <Sgeo> zzo38, aortizm left
06:42:11 <zzo38> Sgeo: Yes I see that, I wonder if they know where is the logs, maybe they should look at esolang wiki, too, to see what it is
06:42:31 <Sgeo> I honestly doubt that e's interested
06:42:45 <Sgeo> Hopefully he doesn't attempt to exorcise anyone
06:42:52 <zzo38> You might be correct, surely
06:47:34 -!- wareya_ has joined.
06:48:33 <zzo38> Do you have kern information for MagicMedieval font and MPlantin font? I have found program to convert TTF font to METAFONT, but, it doesn't convert kern information or ligature information. Do you have kern and ligature information?
06:50:27 -!- GreaseMonkey has quit (Quit: New quit message. Entering 2006 in style.).
06:50:30 <zzo38> I would like to know so that I can write templates for TeXnicard
06:50:41 -!- wareya has quit (Ping timeout: 240 seconds).
06:51:17 <zzo38> I have found information about the .DVI and .*GF formats, so I can write a DVI driver, I already started it a bit
06:53:02 <zzo38> It creates text layers using the fonts and typeset text in the DVI file, and combines those pictures with external pictures when building a ImageMagick command-line that generates the card pictures. You can enter arbitrary ImageMagick operators using DVI specials.
07:00:45 <zzo38> What I need also is a special that converts units of measurement to pixels, so that these numbers are usable in ImageMagick regardless of what DPI resolution you are printing it at.
07:06:09 -!- jcp has quit (Quit: Later).
07:08:39 -!- jcp has joined.
07:10:00 -!- augur has quit (Quit: Leaving...).
07:10:18 -!- augur has joined.
07:15:27 -!- comex has quit (Ping timeout: 252 seconds).
07:18:44 -!- comex has joined.
07:23:01 -!- tombom has joined.
07:33:15 -!- relet has quit (Quit: Leaving.).
07:34:54 <zzo38> Can I get the mana symbols and tap symbols and those other things, also done in METAFONT?
07:38:40 * Sgeo ponders WAITUNTILEVENT
07:39:18 <coppro> zzo38: no clue about kerning
07:39:47 <coppro> zzo38: pixel size depends on DPI by definition
07:39:59 * Sgeo thinks it would probably be a good idea to make that a primitive
07:40:01 <coppro> zzo38: and the symbols are images. No clue how you would get those into METAFONT
07:40:16 <coppro> then again, I don't know all that much about METAFONT
07:41:51 <zzo38> coppro: Do you know who can help? Yes I know about pixel size and stuff like that, the output format is in 1 pixel for 1 dot, so if it is printed at 300 DPI it will be a 1 inch picture will be 300 pixels long.
07:42:38 <zzo38> And although I could use pictures for the mana symbols, I think I could get a much better quality if METAFONT is used instead, in addition, using METAFONT means TeX can typeset them the same way as ordinary text.
07:43:09 <coppro> zzo38: in that case, you'd have to METAFONT-ize them yourself
07:47:02 <zzo38> I do know how I can write METAFONT macros for set symbols. The outline and fill of the set symbol can be separate text layers in dvinicard, and then some ImageMagick operators can be used to put fancy gradients and stuff like that.
07:47:42 -!- relet has joined.
07:49:38 <zzo38> How good is the quality of the mana symbols on cards generated by Magic Set Editor? I think using METAFONT can achieve much better quality.
07:54:03 <coppro> zzo38: They are large images shrunken down
07:54:12 <coppro> and most resolutions you'd use them at, you won't notice a loss in quality
07:55:08 <coppro> 165 x 178
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:09:29 -!- derdon has joined.
08:11:22 * Sgeo wonders if he should learn Factor
08:13:47 <zzo38> Sgeo: Learn it if you want to, but I don't really like it much, and I think you do not need to learn Factor
08:15:23 <coppro> pikhq: I have lost whatever faith in your country I had left: http://chzoddlyspecific.files.wordpress.com/2010/06/4a65c96b-360e-4853-a7a2-abc782e9ca49.jpg
08:15:53 -!- derdon has quit (Ping timeout: 240 seconds).
08:15:58 <zzo38> How large is a Magic: the Gathering card (in inches)? I did not find a ruler
08:16:49 <coppro> 2.5 by 3.5 or thereabouts
08:18:12 <fizzie> "Each Magic card, approximately 63 x 88 mm in size (2 15⁄32 by 3 7⁄16 inches), --"; nowadays you can just ask such questions from Wikipedia.
08:18:43 <fizzie> 15/32 and 7/16 are reasonably close to .5 though.
08:18:48 <coppro> truth
08:18:54 <zzo38> The cards I have in my computer use a template 375 x 523 but that doesn't even make 300 DPI. And the cards must be printed at a higher resolution than that!
08:19:11 -!- Ilari has quit (Ping timeout: 260 seconds).
08:19:12 -!- Ilari_antrcomp has quit (Ping timeout: 260 seconds).
08:19:43 -!- Ilari has joined.
08:20:03 -!- Ilari_antrcomp has joined.
08:20:34 <zzo38> Eventually if I write this program emough, it might be able to produce better quality cards than official WotC cards even. And then you can sue them if they do not follow the GNU GPL license......
08:21:07 <fizzie> 375x523 and those physical dimensions sounds like an approximately 150 dpi thing.
08:21:19 <zzo38> fizzie: Yes, I have calculate it and it is approx 150 dpi
08:24:12 <zzo38> If my program becomes good enough to be much higher quality than even official cards, then WotC can use it, if they learn how........
08:24:29 <zzo38> And if they don't use it, their competitors will use it.......
08:25:01 <coppro> zzo38: they could just keep the modifications in-house
08:25:17 <zzo38> coppro: Yes, they can, but they would still have to learn
08:25:44 <zzo38> Hopefully the included documentation would be sufficient
08:26:25 <coppro> WotC lawyers are not slackoffs
08:27:53 <zzo38> I know that
08:28:11 <zzo38> But the program itself is not a template.
08:28:43 <zzo38> The template(s) would be separate packages that are not part of the program.
08:29:12 <zzo38> Of course they can use the program and templates internally if they want to, even with private modifications
08:30:39 <zzo38> But their competitors will make their own private improvements and they will be better than the one WotC uses
08:31:12 <zzo38> (I don't know who their competitors are, but surely their competitors can make templates, too)
08:33:10 <zzo38> Does WotC even use TeX or METAFONT or ImageMagick at all?
08:33:33 <fizzie> I would be surprised (but delighted) if they did.
08:34:29 <fizzie> (My guess is horrible in-house tools built on top of some Windows graphical-design apps.)
08:34:54 <fizzie> You may need to go kidnap an employee to make sure.
08:36:16 <zzo38> I think you are probably correct, they probably use horrible in-house tools built on top of some Windows graphical-design apps. And they probably paid a lot of money for it!
08:42:34 <zzo38> Some people use Photoshop or GIMP, but I find ImageMagick is far superior. Some people use LaTeX, Microsoft Word, OpenOffice, etc, but I find Plain TeX is far superior. Some people use various other software for designing typefaces, but I find METAFONT is far superior.
08:44:43 -!- zzo38 has quit (Quit: zzo38).
08:44:43 <coppro> imagemagick is not suitable for complex editing
09:12:08 -!- kuato has joined.
09:12:08 -!- kuato has quit (Excess Flood).
09:23:23 -!- iGO has joined.
09:24:33 -!- iGO has quit (Client Quit).
09:24:54 -!- iGO has joined.
09:42:55 -!- immibis has joined.
09:43:33 <immibis> "99 bottles of beer on the wall. 99 bottles of beer. If one of the bottles should suddenly fall, there'd be undefined bottles of beer on the wall"...
09:44:11 -!- Wamanuz has quit (Ping timeout: 240 seconds).
09:46:34 -!- immibis has left (?).
09:50:59 -!- iGO has quit.
09:55:38 -!- iGO has joined.
10:20:32 -!- relet has quit (Read error: No route to host).
10:21:32 -!- relet has joined.
10:22:26 -!- GuestA05364 has joined.
10:22:41 -!- GuestA0586F has joined.
10:22:46 -!- GuestA05364 has quit (Client Quit).
10:22:51 -!- GuestA0586F has quit (Client Quit).
10:33:57 -!- iGO has quit.
11:24:41 -!- asiekierka has joined.
11:24:46 <asiekierka> Hello
11:24:49 <asiekierka> fizzie?
11:26:22 -!- choochter has joined.
11:27:06 <asiekierka> fizzie i need you
11:32:17 -!- augur has quit (Remote host closed the connection).
11:58:44 <fizzie> Am at work, not very much here.
11:58:59 <asiekierka> fizzie, can i send you a new style for fungot?
11:59:01 <fungot> asiekierka: later incidents are chaotic. as i advanced, the light ahead seemed to grow in size and general outline. nor, said the dreams and the fancies they lost so many centuries ago, and no clear account of any kind, but my watch told me it was only the start. zeb here was callin' folks up an' everybody was a-listenin', an' i guess obed kind o' fnord an' i see every one was covered with pegs from which hung a set of pictures
11:59:08 <asiekierka> 23000-26000 comments from YouTube
11:59:21 <fizzie> Well, sure. How big is it?
11:59:30 <asiekierka> 1.8 megabytes
11:59:40 <fizzie> Oh, then I guess an email attachment is fine.
11:59:46 <asiekierka> yeah, for now
11:59:51 <asiekierka> i will do updates to it once in a while
12:33:32 -!- sftp has joined.
12:40:25 -!- rodgort has quit (Quit: Coyote finally caught me).
12:40:34 -!- rodgort has joined.
12:44:19 -!- Sgeo has quit (Ping timeout: 265 seconds).
13:11:55 -!- asiekierka has quit (Quit: Leaving).
13:36:26 -!- cheater00 has quit (Ping timeout: 272 seconds).
14:40:57 -!- alise has joined.
14:41:07 -!- FireFly has joined.
14:56:32 -!- Wamanuz has joined.
14:56:51 <fizzie> alise: This -- http://p.zem.fi/xcf -- made Xcolorforth compile, start, make a window, and not segfault on x86-64; unfortunately it still only produces a black window that needs to be kill -9'd away. The main point is sed -e 's/poll/cf_poll/g'; it renames the "poll" function in main.c; if you don't do that, SDL_Init (at least as non-root when it can't access the framebuffer device) will fail, presumably because SDL/Xlib/xcb/something expects "poll" to be the lib
14:56:51 <fizzie> c poll, not some other poll.
14:57:47 <alise> fizzie: I believe a completely 32-bit binary must be made, since colorForth is 32-bit afaik
14:57:56 <alise> This may be hard what with its memory antics, though
14:58:01 <fizzie> If you do it like that, it is a 32-bit binary, as far as I know.
14:58:07 <alise> Hmm.
14:58:19 <alise> fizzie: Try it as root? Yes, yes, suicide, I know.
14:58:26 <alise> But I forgot to use REISUB; you may not be so stupid.
14:58:43 <fizzie> I don't have root here, I'm at work. :p
14:58:50 -!- sftp has quit (Ping timeout: 255 seconds).
14:58:52 <alise> It only did things as root for me; then again, it was broken entirely.
14:58:56 <alise> fizzie: Aw.
14:59:48 <fizzie> Anyway, I attached a gdb to it and backtraced; there was a call stack 5 levels deep inside the function "xcf", which is where it copies color.com contents to; I don't think I'm interested enough in starting to go through the asm code to find out why it's not drawing anything.
14:59:53 -!- sftp has joined.
14:59:58 -!- relet has quit (Quit: Leaving.).
15:00:52 <alise> But, but XCOLORFORTH!
15:00:53 <fizzie> (5 levels in xcf, which had managed to then call the main.c function that makes SDL blit the framebuffer into the window, so I think it's likely it just wasn't drawing anything into it, for some reason or another.)
15:01:28 <fizzie> Maybe if I can stay awake at home. Still, it's not exactly "bare metal" when ran using the SDL wrapper, now.
15:01:47 <alise> Well, yes, but it /is/ bizarre enough to be amusing.
15:02:30 <fizzie> Maybe I should build a Windows binary, just for the discordance.
15:03:06 <alise> fizzie: There is a Windows colorForth already.
15:03:15 <fizzie> Oh. :/ Not then.
15:03:58 <alise> fizzie: I doubt you'd get any Linux-specific bits to work, anyway.
15:04:06 <alise> Assuming there /are/ some; I'm not exactly sure how modified color.s is.
15:04:12 <alise> If at all.
15:04:19 <alise> Well, it must be, since it's gas syntax.
15:05:51 <fizzie> The assembly bits don't seem to be doing very much Linux-specific things, though. The main.c wrapper passes on a pointer to the SDL surface pixel data, and two function pointers, one for refreshing the screen, and another for polling for keypresses.
15:06:07 <alise> Hmm.
15:09:34 -!- comex has quit (Ping timeout: 252 seconds).
15:12:03 -!- comex has joined.
15:16:06 -!- GuestA05364 has joined.
15:16:07 -!- iGO has joined.
15:16:26 -!- iGO has quit (Client Quit).
15:17:32 <alise> q
15:20:35 -!- relet has joined.
15:21:21 -!- sftp_ has joined.
15:21:33 -!- sftp has quit (Ping timeout: 272 seconds).
15:21:58 -!- Sgeo has joined.
15:22:46 * Sgeo wonders what alise thinks of factor
15:23:48 <alise> The language is very interesting. The infrastructure, libraries and tools they have built themselves are utterly astonishing, surpassing many commercial languages. The language itself I'm not sure about; it doesn't seem that natural to use to me, but maybe I just haven't adjusted.
15:24:18 <Sgeo> Does it parse itself the way Forth does?
15:24:36 <alise> It has the facilities for such words, yes.
15:24:38 <Sgeo> I remember once looking at Factor and almost immediately rejecting it for some reason
15:24:58 <alise> Everything's a bit more semantically-refined, which makes the reflective tools better, the code sometimes easier to understand.
15:25:15 <Sgeo> Now that I kind of get Forth, I think I'd be more ok with Factor
15:25:47 <alise> I think it is definitely worth checking out.
15:25:54 <alise> The tools and libraries /are/ absolutely amazing.
15:26:25 <Sgeo> Do you think it might supplant my current love for Smalltalk?
15:26:36 <Sgeo> Also, AW bindings for Factor!
15:26:45 <Sgeo> (Probably more reasonable than for Forth)
15:27:06 -!- Gregor has quit (Ping timeout: 272 seconds).
15:27:09 <alise> If I could obliterate every single bit comprising AW in this universe I would just to stop you trying to make bindings for it.
15:28:26 <Sgeo> Is " a word or something in Factor? There's no space between it and the content of the string
15:28:31 <Sgeo> It's.. weird
15:28:32 <fizzie> Maybe it's just some sort of a neurosis. You know, some people can't stand when a painting is hanging crooked, or need to alphabetize other people's books/records/whatever? Maybe some people just feel the need to write AW bindings for absolutely everything.
15:29:28 <Sgeo> You know, AW bindings are a project that I want to do, and I should do some sort of project in each language I really want to understand...
15:30:03 <fizzie> Just stick to writing more and more Befunge interpreters, like us sane people do.
15:30:54 <alise> Sgeo: " is syntax; I think you can define your own syntax.
15:31:02 <Sgeo> eww syntax
15:31:02 <Sgeo> >.>
15:31:08 <alise> Sgeo: Definable syntax.
15:31:14 <Sgeo> hmm
15:32:21 * alise downloads factor-linux-x86-64-2010-08-29-14-56.tar.gz
15:32:40 <alise> One of my patches almost sort-of made it into Factor!
15:32:46 <alise> Well
15:32:50 <alise> It made it in, just with a few changes
15:33:12 <alise> If you're on *nix, when you divide by zero you get a proper error message, not a vague "system error" type one.
15:33:15 <alise> As well as other such errors.
15:33:29 <alise> (Vague system error + meaningless number)
15:33:40 <Sgeo> alise, when, exactly, did you start learning programming?
15:33:41 <alise> Because I wrote some errno -> error string code and replaced the error handler with that.
15:33:50 <alise> This was about a year ago.
15:34:18 <alise> Sgeo: It's hard to answer. Well, I fumbled with PHP at 8; fumbled is the right world, it was all cargo cult and misconceptions and no understanding.
15:34:20 <Sgeo> I love Factor's unit test stuff, I think
15:34:21 -!- madbrain2 has joined.
15:34:43 <alise> By about 10 I was starting to have a better understanding of stuff; I still did PHP, but it was pretty well thought-out PHP.
15:35:03 -!- Gregor has joined.
15:35:04 <alise> (I picked up Javascript, SQL, etc. in the interim of all this.)
15:35:25 <alise> Age 11 I think I picked up Ruby and after a while this sort of banged into my head about how I need to organise code. This is 2007.
15:36:04 <alise> Then by 12 I somehow covered the basics of tons of stuff including Lisp etc; I think I first touched Haskell when I was 13.
15:36:13 <alise> Sgeo: And, uh, it's pretty much been gradual improvement since then.
15:36:16 <alise> What a boring history.
15:36:31 <alise> But yeah, it was more gradual than "I started learning programming when I was N."
15:36:52 <alise> (I mean, I was copying and modifying BASIC examples so they broke into -- I think a BBC Micro or something -- when I was really little.)
15:37:14 <Sgeo> I might have done something like that if I wasn't under the constant impression that you need to pay money
15:37:27 <Sgeo> Read about VB, Perl, and a bunch of other languages
15:37:45 <Sgeo> Wrote some VB at summer camp, I think
15:37:49 <alise> Yes, well, proprietary software has made sure the programming child is more-or-less stillborn.
15:38:20 <Sgeo> 9th grade or so, started with Python, mostly because it was free (Didn't get started with Java, although I read about it first)
15:39:19 <Sgeo> Hmm, when was I experimenting with Magsbot
15:39:27 <Sgeo> That might be sooner than Python
15:39:53 <Sgeo> Magsbot 2003 or so. 9th grade 2003 or so
15:40:11 <Sgeo> WHen using Magsbot, I somehow guessed that it used "" to escape quotes
15:40:22 <Sgeo> (Or maybe '', don't remember which is its string syntax)
15:42:20 <alise> What's 9th grade, age-wise?
15:42:33 <alise> Silly US system.
15:43:49 <Sgeo> 2003 - 1989 = 2004 - 1990 = 14
15:44:46 <alise> Oh, right, 2003.
15:45:30 <Sgeo> Huh. I assume Factor's [ ] doesn't stay in the dictionary the way Forth's :noname ; does
15:45:37 <alise> Sgeo: Everyone else is at a ridiculous disadvantage to me, since I've had a computer since I was 3. So don't feel bad :-P
15:47:25 <alise> Sgeo: It's a proper closure.
15:47:32 <alise> (Forth's isn't, having not really a true concept of a closure.)
15:47:40 <alise> Sgeo: Try not to compare it too much to Forth.
15:47:43 <alise> It's concatenative more than stack-based.
15:47:44 <alise> Higher-level.
15:47:46 <alise> You know Joy?
15:47:48 <alise> Or Cat?
15:47:50 <Sgeo> Nope
15:47:59 <Sgeo> Never heard of those until I started reading about Forth
15:48:10 <alise> Sgeo: Joy is the "purest" concatenative language: like a stack calculus,
15:48:13 <alise> *calculus.
15:48:27 <alise> We say that everything is a function, and usually in a language if you have something like "x y", it means x(y)
15:48:27 <Sgeo> How is Forth impure? >.>
15:48:36 <alise> We say instead that "x y" = y . x
15:48:40 <alise> function composition
15:48:49 <alise> And we say that the whole program is applied to an empty stack
15:49:02 <alise> dup is the function dup({x,...}) = {x,x,...}
15:49:08 <alise> drop({x,...}) = {...}
15:49:13 <alise> swap({x,y,...}) = {y,x,...}
15:49:15 <alise> etc.
15:49:25 <alise> But we also have [...], which pushes the list of words inside on to the stack.
15:49:33 <Sgeo> I think I might like this more than Haskell
15:49:37 <alise> We have i, which takes a [...] off the top of the stack and puts all the words inside it after the i.
15:49:38 <Sgeo> It seems easier
15:49:39 <alise> So
15:49:45 <alise> [a b c] i => a b c
15:49:54 <alise> Sgeo: So as you can see this is utterly pure and functional.
15:49:58 <alise> And not imperative.
15:50:05 <alise> Factor has more in common with it than it does Forth.
15:50:09 <Sgeo> Well, probably not, but I'm thinking in stacky mode
15:50:11 <alise> So think functionally.
15:50:22 <alise> Think functionally.
15:50:26 <alise> But also stacky.
15:50:29 <alise> i.e., concatenatively.
15:51:45 -!- GuestA05364 has quit.
15:51:58 * Sgeo bibbles at checking stack effect
15:52:24 <Sgeo> BRB. I may or may not remain connected
15:52:24 <alise> In a good or bad way?
15:52:38 <Sgeo> In a, how does it work way
15:53:41 <alise> Simple.
15:53:47 <alise> Each word inside's stack effect is known.
15:53:50 <alise> Just cascade them.
15:54:06 <alise> Also, what the fuck is bibbling. I assume some Creatures thing.
15:56:24 <Sgeo> alise, what happens with ifs?
15:56:50 <Sgeo> Well, I guess they're checked, but how do you define your own thing that needs to work with stack checking?
15:56:51 <alise> Both branches have to have the same stack effect, I think.
15:56:59 <alise> Sgeo: It Just Works.
15:57:03 <alise> Don't worry about it.
15:57:19 <alise> It's not something you define.
15:57:27 <alise> (Nor a heuristic, for that matter.)
16:00:19 <alise> Sgeo: Basically, every word has to have a consistent stack effect.
16:00:28 <Sgeo> What is if?
16:00:31 <Sgeo> Syntax?
16:00:33 <alise> A word.
16:01:25 <alise> Sgeo: \ if see
16:01:37 <alise> Hmm, wait
16:01:38 <alise> no
16:01:40 <Sgeo> I haven't downloaded Factor yet
16:01:41 <alise> Sgeo: \ if help
16:02:21 <alise> Lemme find the manual page for yu.
16:02:24 <alise> *you
16:02:55 <alise> Sgeo: http://docs.factorcode.org/content/word-if,kernel.html
16:03:06 <alise> Includes the definition.
16:03:14 <alise> (This can be conjured up with \ if help in the graphical listener.)
16:04:02 <alise> Sgeo: Basically, anything you write yourself will be composed of smaller primitives that already have a known stack effect, which Factor will check you adhere to.
16:04:12 <alise> So, any conditionals or whatever you write will already work with them.
16:04:24 <alise> No need to declare anything, since /every other word's stack effect is known/.
16:04:53 -!- cheater99 has joined.
16:05:06 <alise> Sgeo: The only word with an unknown stack effect is call: http://docs.factorcode.org/content/word-call,kernel.html.
16:05:08 <alise> And even then,
16:05:13 <alise> "Words which call an input parameter must be declared inline so that a caller which passes in a literal quotation can have a static stack effect."
16:05:28 -!- cpressey has joined.
16:05:33 <alise> There's call( stack -- effect )
16:05:38 <alise> Which does what you think it does.
16:05:44 -!- derdon has joined.
16:05:47 <alise> (Requires a ( stack -- effect ) quotation on the top of the stack, and calls it.)
16:05:57 <alise> So call is generally not used; it's pretty evil.
16:06:10 -!- Wamanuz2 has joined.
16:06:15 <alise> (But used by functions to implement safe ones, such as if, so it's there.)
16:06:50 <alise> Sgeo: Oh yeah, and Factor compiles to very compact, efficient native code (no C compiler or whatever).
16:06:50 <cpressey> Hi alise
16:07:09 <alise> It's pretty competitive with SBCL, which is pretty much the gold standard for language implementation, bowing only to O'Caml and C.
16:07:12 <alise> cpressey: Hi.
16:07:28 <Sgeo> Wait, if call can only be used with statically defined ... thingies, what's the point?
16:07:37 <Sgeo> erm, [ ] thingies
16:07:58 <alise> Sgeo: for example, if.
16:08:15 <alise> The two quotations ("[ ] thingies") are always static.
16:08:19 <alise> But the boolean to branch on is not.
16:08:21 <alise> if is ? call
16:08:27 <alise> X Y true ? => X
16:08:31 <alise> X Y false ? => Y
16:08:38 <alise> So as you can see, "? call" is if.
16:08:56 <alise> Yet you can't pass a dynamically-generated quotation to if. Well, you can, but only if it's known at compile time.
16:09:01 -!- Wamanuz has quit (Ping timeout: 252 seconds).
16:09:13 <alise> (Composition, etc.)
16:09:20 <alise> Sgeo: What I'm saying is, don't worry about it.
16:09:21 <alise> It always works.
16:09:29 <alise> Not a heuristic or a hack.
16:09:37 <Sgeo> Bubut... how can I store a quotation, then?
16:09:40 <Sgeo> For later use?
16:09:41 <alise> ...
16:09:43 <alise> Of course you can
16:09:58 <alise> Okay, clearly you don't know Factor enough to understand half of the edge-cases I'm explaining.
16:10:03 <alise> Sgeo: Forget everything I said.
16:10:09 <alise> My new answer is:
16:10:34 <alise> Yes, it always works. No, it's not a heuristic. No, it's not hacky. It's like Haskell's type checking, only it never needs help from you.
16:10:50 <Sgeo> She made her own slides
16:11:04 <alise> What?
16:11:14 <Sgeo> The Perl professor
16:11:24 <Sgeo> And she just emphasized that it's "Perl", not "PERL"
16:11:28 <alise> Learning Perl and Factor at the same time. Great idea... XD
16:11:45 <Sgeo> I'm learning Factor for fun. I'm learning Perl because I have to at this school
16:12:13 <alise> Don't blame me when you write [ + ] $foo = ;
16:12:17 <cpressey> A school that makes you learn Perl. That's... very interesting.
16:12:30 <alise> cpressey: At least the prof seems sane enough to teach best practices.
16:12:37 <alise> Which make Perl into a good enough language.
16:13:29 <cpressey> alise: Yes, it just seems like such a... non-academic choice, somehow. Java, C++, Python would all beat it out in most heads that I've seen.
16:13:44 <cpressey> For different, maybe bad, reasons.
16:13:47 <Sgeo> This is a non-academic course
16:13:49 <Sgeo> >.>
16:13:51 <cpressey> Ah.
16:13:55 <cpressey> Well, still.
16:14:01 <cpressey> PHP is what you should be learning!
16:14:01 <Sgeo> "Computer Programming and Information Systems"
16:14:07 <alise> And a non-academic university, from the sounds of it >____>
16:14:08 <Sgeo> It's in the school of business
16:14:18 <alise> Isn't "unacademic" a word?
16:14:22 <alise> Whatever, of course it is.
16:14:24 <alise> Unacademic.
16:14:25 * cpressey shrugs
16:14:35 <alise> I love how vague ICT-style names get each passing year.
16:14:38 <alise> Information Systems!
16:14:42 <alise> Information Nodes!
16:14:45 <alise> Information... Technology!
16:14:52 <alise> Information ENTITIES!
16:14:54 <alise> ENTITY ENTITIES!
16:14:58 <alise> THINGS!
16:15:15 <cpressey> Sadly, Information Systems and Information Technology are pretty old and standard at this point.
16:15:30 <cpressey> And very, very sad concepts.
16:16:05 <cpressey> So what is this SBCL? I should know this
16:16:14 <alise> cpressey: Steel Bank Common Lisp.
16:16:20 <cpressey> Srsly? Heh.
16:16:23 <alise> CMUCL's developed descendant.
16:16:39 <alise> cpressey: Carnegie Mellon University Common Lisp.
16:16:43 <alise> Figure out the pun and get a cookie.
16:16:56 <cpressey> "Compiled Lisp" always makes me blink.
16:17:05 <alise> It's how Common Lisp is done.
16:17:14 <alise> (That is, figure out the pun in SBCL's name using CMUCL's.)
16:17:14 <cpressey> alise: OK, working on it. Still too early to take apart deep, profound puns, you know.
16:17:23 <alise> cpressey: I could just tell you.
16:17:28 <alise> :P
16:17:46 <cpressey> Or I could jkust read it inadvertently on the wp page, which I just did. Sorry.
16:17:49 <alise> Or that, yes.
16:18:48 <alise> cpressey: But yeah, O'Caml and SBCL are very near the top of the fastest functional languages. (Only beaten by weird things like ATS, probably.)
16:18:55 <alise> SBCL is competitive with gcc in many cases.
16:19:03 <alise> O'Caml regularly gets gcc performance on well-written code.
16:19:13 <alise> Factor is competitive with SBCL. So pretty fast, and all that.
16:19:31 <cpressey> alise: Interesting. My perception was that ghc was one of the top runners. That's like 8 years out of date, maybe.
16:19:54 <cpressey> Not gcc-level, obviously, and good for a lazy language, but still.
16:20:15 <alise> cpressey: ghc is quite a few places down. But it's good if you either write ridiculously strict, imperative code /or/ write code that makes its stream fusion and other advanced features happy.
16:20:40 <alise> Run-of-the-mill, not-cleverly-written (not just for performance, in general) Haskell code isn't very fast with GHC. (And it takes up terabytes of memory.)
16:21:01 <alise> Impressive for Haskell, though. :P
16:23:11 <Sgeo> hash table == dictionary, right?
16:23:19 <Sgeo> She asked if anyone worked with hash tables before..
16:23:29 <cpressey> hash table implements dictionary
16:23:35 <alise> what cpressey said
16:23:39 <alise> only python calls them dictionaries :P
16:23:53 <Sgeo> C# dictionaries are different?
16:23:55 <cpressey> dictionary == map
16:23:57 <alise> Oh, C#.
16:24:01 <alise> Who gives a fuck about C#.
16:24:21 <cpressey> I should start writing C# just to piss alise off.
16:24:26 <alise> cpressey: Pet peeve: "associative array". It might not be an array, moron!
16:24:39 <alise> You fail at generality, Wikipedia.
16:24:44 <cpressey> alise: Yeah, I never liked that term either.
16:32:22 <Sgeo> Factor does have an FFI, right?
16:32:45 <alise> Sgeo: An excellent one.
16:32:56 <alise> Sgeo: The entire UI is written in OpenGL, in Factor.
16:33:08 <alise> With Cocoa, Win32 and X11 backends; again in Factor.
16:33:31 <alise> Indeed, it even comes with a full libc binding in the stdlib.
16:33:37 <cpressey> :(
16:33:45 <alise> Sgeo: you haven't seen the UI yet, have you?
16:33:52 <Sgeo> alise, no
16:34:05 <alise> Factor is possibly the most well-documented and comprehensive community-developed language there is.
16:34:17 <alise> The documentation viewer is wonderful, the debugger is great, etc.
16:34:39 <Sgeo> How about on-the-fly modification of code?
16:34:44 <cpressey> ...
16:34:49 <alise> You can click on a word in the listener (REPL) to look at its documentation, which is always useful. (It'll also tell you where a word is, if you use it and haven't imported the right module; it will import it for you if you want).
16:34:53 <alise> Sgeo: what do you mean?
16:34:57 <alise> like modifying the standard library>
16:35:01 <alise> *library?
16:35:02 <Sgeo> alise, Smalltalk style, or Erlang style
16:35:02 <alise> cpressey: ?
16:35:10 <alise> Sgeo: Yep: \ sqrt edit
16:35:18 <alise> Opens in your defined editor (one of many).
16:35:29 <alise> The best one to use is Emacs with the comprehensive Factor mode whose name I forget.
16:35:34 <alise> It integrates tightly with the listener.
16:35:47 <Sgeo> Ok, I'm cancelling the Smalltalk bindings project
16:35:55 <cpressey> ?
16:36:08 <alise> cpressey: Now Factor is his girlfriend.
16:36:25 <alise> Oh, FUEL is the name of the Emacs thing.
16:36:26 <cpressey> alise: Oh dear. Falcon will become very, very jealous.
16:36:38 <alise> cpressey: Nonono, Forth! Or was it Smalltalk?
16:36:57 <alise> I guess Smalltalk isn't the basis of a long-term relationship. LOLOLOLOL SEE WUT I DID THAR
16:37:58 * alise sets up FUEL
16:37:59 <Sgeo> She had trouble figuring out why '\\n' and '\n' were giving her the same thing
16:38:23 <Sgeo> She expected '\\n' to give her a newline
16:38:27 <alise> Oh.
16:38:31 <alise> Maybe she is retarded, then.
16:38:38 <cpressey> Sgeo: The prof?
16:38:42 <Sgeo> cpressey, yes
16:39:39 -!- Wamanuz2 has quit (Read error: Operation timed out).
16:40:07 <alise> Sgeo: BTW, I do think you have to re-load a module before your saved changes take effect.
16:40:11 <alise> That's reasonable, though.
16:40:24 <Sgeo> Can the project still be running while it's reloaded?
16:40:40 <alise> Uhhhh... not really. I assume by project you mean "some word".
16:41:25 * Sgeo facepalms at Perl
16:42:09 <alise> what/
16:42:11 <alise> *what?
16:42:21 <Sgeo> The whole automatic conversion of strings to numbers etc
16:47:32 <alise> [[The f parsing word adds the f object to the parse tree, and is also the class whose sole instance is the f object. The f object is the singleton false value, the only object that is not true. The f object is not equal to the f class word, which can be pushed on the stack using word wrapper syntax:]]
16:47:34 <alise> xD
16:48:44 <Sgeo> Please tell me that `perl' is a REPL and that I just haven't figured out how to use it
16:49:57 <Sgeo> Figurd it out
16:50:00 <Sgeo> Not quite a REPL
16:50:04 <Sgeo> But still easier to use
16:50:22 <Sgeo> And she just said that she won't teach it to the students right now because she doesn't have anything prepared
16:52:05 <cpressey> Sgeo: I can't tell you that.
16:52:30 <cpressey> Sgeo: If you've figured it out, please let me know.
16:52:54 <Vorpal> as far as I remember perl reading from standard in is simply perl reading from stdin. Though I may be wrong.
16:53:05 <Sgeo> Oh, >.>
16:53:05 <alise> Sgeo: perl -de0
16:53:14 <alise> gets you the debugger
16:53:17 <alise> which is almost a REPL
16:53:25 <alise> usually it's easier to just write a script, though
16:53:27 <alise> Sgeo: there ARE perl repls
16:53:30 <Sgeo> Just `perl' is also easy
16:53:37 <Sgeo> Although perhaps annoying
16:53:37 <alise> Devel::REPL is the best
16:53:39 <Vorpal> yeah cpan probably has a few REPLs
16:53:42 <alise> but to get that you need to figure out cpan
16:53:45 <alise> and cpan is LIQUID PAIN
16:53:51 <alise> cpanplus is better, so you'd want that
16:53:54 <Sgeo> Nothing wrong with
16:53:55 <Sgeo> perl
16:53:56 <alise> of course, you'd have to install cpanplus
16:53:59 <Sgeo> #Some perl code
16:54:00 * cpressey never thought of using the debugger as a repl.
16:54:02 <Sgeo> ^D
16:54:07 <Vorpal> alise, depends on distro. Gentoo had a tool to generate ebuilds for cpan packages iirc
16:54:08 <alise> cpressey: ais523 told me that trick
16:54:11 <Vorpal> which worked quite well
16:54:12 <alise> Vorpal: Windows.
16:54:15 <cpressey> I usually just use -e "print 56 * 71;" on the command line
16:54:16 <Vorpal> alise, oops
16:54:23 <Vorpal> alise, that will indeed be painful
17:01:15 -!- BeholdMyGlory has joined.
17:02:32 <cpressey> Well, in case anyone cares, I have essentially finished Eightebed. Might want to tweak the doc is all, then need to find a time to publish it. Also, I built qemu last night and ran BefOS under it. Also rebuilt BefOS from source (it has a recursive makefile, but in my defense, it (a) is broken and (b) includes the comment "This is so wrong." at the top.)
17:03:09 <Vorpal> cpressey, eightebed?
17:04:08 <Vorpal> cpressey, recursive as in calling itself by invoking make?
17:04:19 <alise> ...
17:04:27 <alise> Vorpal: you know what a fucking recursive makefile is.
17:04:46 <Vorpal> alise, yes and that tends to be invoke make in a subdir by calling make in a rule
17:04:59 <alise> *clap* *clap* *clap*
17:05:00 <Vorpal> alise, my question still stands
17:05:03 <alise> So you didn't need to ask anything, really.
17:05:26 <Vorpal> alise, because recursive make in the other sense sounds quite fun
17:08:11 <Vorpal> recursive make has some perfectly legal uses. For example /usr/src/Makefile on FreeBSD is recursive as far as I remember. Or are you suggesting a single makefile for kernel, libc, userspace programs and so on should feel free to implement that. Would likely be quite a pain
17:08:26 <Vorpal> since you can rebuild only a subtree. That still has to work
17:09:00 <alise> include libc/Makefile
17:09:03 <alise> that was hard
17:09:08 <cpressey> Why would rebuilding a subtree not work with a monolithic Makefile?
17:09:26 <alise> I suppose Vorpal recursively calls the interpreter rather than using "require" statements, too.
17:09:27 <Vorpal> cpressey, well, it could, would have to be run from the top dir though
17:09:34 <cpressey> make usr/bin/cat
17:09:36 <alise> No it wouldn't.
17:09:45 <alise> libc/Makefile could have all the stuff needed to build the libc.
17:09:50 <alise> The makefile in . would include it.
17:09:52 <Vorpal> alise, yes in the sense that cd libc; make
17:09:57 <alise> Vorpal: nope
17:09:59 <alise> cd libc; make would work
17:10:00 <Vorpal> would not easily work
17:10:01 <alise> but so would
17:10:04 <alise> make libc/...
17:10:05 <Vorpal> alise, could be done
17:10:07 <alise> Vorpal: of course it would
17:10:12 <alise> you write the libc makefile in the libc directory
17:10:14 <alise> and include it one above
17:10:23 <alise> you have to handle some directory differences, but nothing unsolvable
17:10:24 <cpressey> I have made a makefile that calls itself, once, fwiw, but it was limited to one level of recursion that way.
17:10:25 <Vorpal> alise, as far as I can tell that need some path mangling
17:10:37 <alise> makefiles can have a target to make themselves
17:10:45 <alise> when this happens, make automatically calls it again with the new makefile
17:10:52 <alise> (this is for managing dependencies automatically; I have used it)
17:10:54 <alise> you do
17:11:07 <alise> Makefile: $(SRCS) \ ... run makedep or gcc -Msomething or whatever ...
17:11:18 <alise> (and append to make.deps)
17:11:19 <alise> then underneath
17:11:21 <alise> include make.deps
17:11:32 <alise> and it'll always generate new dependencies and include the updated file if you change the sources
17:11:48 <Vorpal> alise, yes but that is not the same as calling itself in the sense of: foo:\n\tmake bar
17:12:05 <alise> It's metanough for me.
17:12:12 -!- Gracenotes has joined.
17:12:17 <Vorpal> alise, and a lot more boring
17:12:22 <Vorpal> alise, about as boring as kexec ;P
17:13:10 <alise> I'd say a Makefile rule is a lot more interesting than ZOMG CALLING THE PROGRAM MAKE INSIDE A MAKEFILE.
17:14:13 <fizzie> "Evolving Intelligent Systems. Methodology and Applications"; as far as course names go, that's a bit on the pretentious side. (It's just about on-line learning in different machine-learning contexts.)
17:14:52 <Vorpal> alise, depends on how you use it. I mean, C++ templates in general are not that interesting. But when used to do advanced compile time computation it is a bit more interesting, in an esoteric way
17:15:10 <Vorpal> I'm quite sure you could use make calling itself for some interesting hacks
17:15:21 <alise> fizzie: Programming GOD. An introductory AI course.
17:15:57 <fizzie> alise: "To further confuse matters, Murray also has a tendency to rename his theory frequently; it’s variously referred to as the Concept-Fiber Theory of Mind, the Fiber-Concept Theory of Mind, the AI4U Theory of Mind, the Mentifex Theory of Mind, the Standard Model of the Mind, Project Mentifex, the First Detailed Theory of Mind, and the Grand Unified Theory of Mind."
17:16:23 <fizzie> (Grand Unified Theory of Mind, especially.)
17:16:46 <alise> is that the mentifex guy?
17:16:56 <fizzie> Yes, it's from the Mentifex FAQ.
17:17:02 <alise> I love Mentifex.
17:17:51 <Sgeo> Bye
17:18:20 <fizzie> There was yet another comp.lang.forth (or Usenet in general) newcomer who was all "ooh, he's been working on this for twenty years all by himself; this is the sort of project that generates Real Science(tm), versus the corrupt capitalistic committee-driven universities, pshaw".
17:18:26 -!- Gracenotes has quit (Ping timeout: 264 seconds).
17:18:42 <alise> Forth does attract the crazies a bit.
17:20:26 <fizzie> alise: MindForth Programming Journal (MFPJ) 2010 August 25: http://p.zem.fi/mpfj-2010-aug-25 -- see, he's almost completely "solved AI".
17:20:58 <madbrain2> anyone like .nsf?
17:21:13 <fizzie> That one was crossposted to comp.lang.forth,comp.ai.nat-lang,comp.robotics.misc,alt.consumers.free-stuff -- especially the last group seems to be incredibly relevant.
17:21:30 <alise> A GOD BES SPIRIT
17:21:36 <alise> madbrain2: what's .nsf again?
17:21:54 <madbrain2> nes song
17:22:09 -!- Sgeo has quit (Ping timeout: 258 seconds).
17:22:38 <madbrain2> the songs from famicompo 7 are out
17:25:43 <fizzie> alise: Hey, http://zem.fi/~fis/xcf.png -- I just copy-pasted those commands from that paste here at home, and that happened.
17:26:22 <alise> fizzie: Wait.
17:26:26 <alise> where's the dvorak keyboard?
17:26:27 <alise> Oh
17:26:29 <alise> There it is!
17:26:42 <fizzie> Too bad I can't use that thing at all.
17:26:58 <alise> fizzie: http://www.colorforth.com/keys.html
17:27:01 <alise> The keys there are the two halves
17:27:08 <alise> left alt switches keypads
17:27:11 <alise> "e " starts the editor
17:27:12 <alise> HAVE FUN
17:27:48 <fizzie> I've seen that, but it's still oh-so-confusing! I'm going to try having fun at some other time.
17:28:36 <alise> fizzie: You basically have to be Chuck Moore.
17:28:45 <alise> Reading the site and http://colorforthray.info/ may help. MAY.
17:28:48 <fizzie> I need to be registering for a WAVE UNIVERSITY account, anyway; they're going to put all the IT systems of the three separate universities into a blender, and then making us eat the sludge that comes out of it.
17:29:29 <alise> if you guys form some committee to create a modern university in mexico
17:29:31 <alise> you could call it
17:29:35 <alise> Mexican Wave University
17:29:44 <alise> like in cooperation with yours
17:30:36 <fizzie> Best wavelet ever: the Mexican hat wavelet.
17:32:21 <alise> fizzie: Ooh! Or if you get bought out by Google:
17:32:24 <alise> Google Wave University
17:40:42 -!- kar8nga has joined.
17:41:26 <fizzie> Yay, my new Wave account lets me download the ISO of COMSOL Multiphysics 4.0a. (It's some sort of finite-element solver/simulator we have a campus license for.)
17:44:38 <cpressey> colorForth: Gives Chuck Moore the programmer productivity of twenty Chuck Moores!
17:51:35 <Vorpal> fizzie, so hm. This wave university thingy seems rather messy.
18:00:33 <Vorpal> bbl kernel upgrade
18:04:39 -!- Vorpal has quit (Read error: Connection reset by peer).
18:04:42 -!- augur has joined.
18:06:49 -!- Vorpal has joined.
18:13:41 <madbrain2> brb
18:14:05 -!- madbr2 has joined.
18:18:25 -!- madbrain2 has quit (Ping timeout: 265 seconds).
18:18:32 -!- Gracenotes has joined.
18:18:50 -!- madbrain2 has joined.
18:18:53 -!- madbr2 has quit (Ping timeout: 272 seconds).
18:24:58 <cpressey> So, yes, BefOS is rubbish. But it *was* pretty cool running it on actual bare metal (a disused 486 desktop back in the day) and having to wait for the actual, physical floppy to seek, when paging up and down. Putative todo list: Clean up the code base, Switch to unreal mode on boot, Allow editing memory pages, Implement an actual VM for it (likely something rather befungeoid, but not Befunge), Rebrand the thing because
18:25:29 <Vorpal> cpressey, because what?
18:25:34 <Vorpal> I think your line was cut short
18:25:44 <cpressey> ... Rebrand the thing because I don't like the name BefOS.
18:25:48 <Vorpal> ah
18:25:57 <Vorpal> yeah it was cut after "because"
18:26:14 <Vorpal> cpressey, strange irc client that doesn't automatically split overly long lines
18:29:41 <alise> cpressey: does it actually have a UI?
18:30:33 <Vorpal> alise, how do you define UI here?
18:30:40 <Vorpal> brb
18:30:47 <alise> cpressey knows.
18:36:58 <cpressey> alise: Yes, it has a user interface. After a fashion.
18:38:10 * Vorpal considers a makefile based init script system
18:38:15 <cpressey> I was thinking "Rewrite UI in the befungeoid VM" as one of the todo items, but didn't write it, because I'm not sure. Rewriting some of the system in the interpreted language, yes.
18:38:47 <Vorpal> I think that might actually work rather well
18:40:57 <cpressey> also need to document the key mappings, rather badly (I swear they used to be, I must have lost that page.)
18:41:40 <Vorpal> cpressey, hm, how large is the funge space of this thing?
18:42:22 <cpressey> Vorpal: It's a set of 80x25 pages. Each of those is 2K. There are currently as many as will fit on a floppy.
18:43:10 <Vorpal> cpressey, I think that with 64-bit mode you do some cleaver stuff with the virtual pages so you can have a flat funge-space, not with 64-bit cells of course. And then allocate pages as needed
18:43:18 <Vorpal> you can't do fully 32 bit cells either
18:44:44 <alise> Yes, because long mode is SUPER FUN.
18:44:51 <Vorpal> because 1) 48 bits actually usable with a hole in "the middle", and sign extending the addresses in the upper half 2) you need a few pages for interpreter code and meta data
18:45:03 * cpressey is completely lost
18:46:24 <Vorpal> cpressey, what I'm suggesting that you with 16-bit cells could do something like BASE+y*SOMETHING+x and then use that address in your virtual address space as the funge space position
18:47:21 <Vorpal> cpressey, you need BASE because you want a few pages somewhere to keep track of what physical memory is mapped where and also the interpreter code
18:47:30 <cpressey> Vorpal: The VM language is only going to superficially resemble Befunge, and even then, the Befunge it resembles is Befunge-93.
18:47:32 <Vorpal> of course you could put that at the top
18:47:52 <cpressey> So - 16 bits is plenty to describe a position in an 80x25 page
18:47:54 <Vorpal> cpressey, right, I was just discussing a rather hackish use of paging
18:48:04 <Vorpal> cpressey, to abuse that to create a sparse array
18:48:20 <Vorpal> sparse by page faulting if the page isn't used already
18:48:40 <cpressey> No page faults. Not protected mode. Of course, you're free to write your own OS.
18:48:46 <Vorpal> you probably don't want BASE+y*SOMETHING+x, horrible for cache if traveling much in y
18:49:20 <Vorpal> so maybe hilberts space filling curve, not sure how fast that is to compute
18:49:27 <Vorpal> or interleaving x and y bits
18:49:45 <Vorpal> cpressey, I KNOW! I was just discussing an interesting hack I thought of
18:49:59 <Vorpal> cpressey, which would be possible only on OS level
18:50:26 <Vorpal> cpressey, stop being so negative
18:51:06 <alise> Vorpal: Chill, dude.
18:51:17 <Vorpal> cpressey, how many 80x25 pages btw?
18:51:41 <cpressey> <cpressey> Vorpal: It's a set of 80x25 pages. Each of those is 2K. There are currently as many as will fit on a floppy.
18:51:51 <Vorpal> cpressey, and I don't know how many fits on a floppy
18:52:01 <Vorpal> cpressey, because you didn't say which type of floppy
18:52:32 <Vorpal> I know I have at least 3 types in this room. Only two of which I can read
18:52:49 <alise> ...
18:52:51 <Vorpal> the one I can't read is a *floppy* floppy.
18:53:19 <alise> Vorpal: You're not funny, interesting or clever by peddling such needless pedantry at that in an attempt to keep the conversation going.
18:53:27 <alise> And since he said 486, you know perfectly well which kind he meant.
18:53:32 <Vorpal> alise, there are several floppy variants that work in normal "PC" floppy drives
18:53:36 <cpressey> Vorpal: Um. Are you needing to know the exact number of pages the current version has available?
18:53:57 <cpressey> Because, see, I thought you would be satisfied with an impression, an order of magnitude, you know?
18:54:00 <alise> Vorpal: And you know damn well that if he meant anything other than 1.44 MB, he'd have said so, it being an ABNORMAL case.
18:54:00 <Vorpal> cpressey, no, just roughly would be enough
18:54:12 <cpressey> Vorpal: Then: a floppy-full.
18:54:15 <Vorpal> alise, I have more of those old single sided ones than I have 1.44 MB
18:54:26 <Vorpal> alise, so no I didn't know that
18:54:39 <alise> Vorpal: Yes, you do, probably because your brain optimises for being as much of an edge-case as you can so you have something to talk about.
18:54:42 <alise> Nobody else does.
18:55:35 <Vorpal> alise, personal insults. How fun
18:55:57 <Vorpal> do you really want to take the discussion that low?
18:56:09 <alise> It was not a personal insult. Well, it was, but it was not ad hominem.
18:56:11 <alise> It was relevant.
18:56:46 <Vorpal> alise, I wound say it was highly inaccurate though. Relevant... maybe to some degree. Could have been more irrelevant at least.
18:57:02 <fizzie> You people are seriously the worst getting-along people I know of; sometimes I like to consider the absurdity of a Vorpal-alise collaborative project, the existence of which would cause the world to collapse.
18:57:13 <fizzie> s/You people/You two/
18:57:23 <Vorpal> fizzie, hah
18:58:06 -!- Sgeo has joined.
18:58:10 <alise> fizzie: To be fair, he /is/ the stupidest person /I/ know of. (Now watch as he copies my sentence structure!)
18:58:17 <alise> I guess that's not particularly fair to stupid people.
18:58:23 <Vorpal> ...
18:58:24 <Sgeo> Who?
18:58:34 <Vorpal> alise, that was ad hominem though
18:58:46 <alise> Vorpal: Incorrect again, my friend; *that* was not an argument. :)
18:59:14 <Vorpal> alise, yes it was...
18:59:29 <alise> No, it wasn't; I merely said it, not submitted it as an argument for some debate.
18:59:46 <Vorpal> fizzie, btw I have a new pano I took at university yesterday coming up in a bit.
19:00:19 <Sgeo> alise, you mentioned that there was something you didn't like about Factor?
19:00:22 <Vorpal> fizzie, mobile camera, but turned out rather well if you don't zoom in too much. Matches up well in all but one place
19:00:52 <alise> Sgeo: Uh, I just never got in to the language itself. Maybe I will now.
19:01:00 <alise> Slava Pestov is an awesome guy; #concatenative is a really nice channel.
19:01:09 <alise> (It's technically for non-Factor stuff too, but it's the Factor channel.)
19:01:26 <alise> It's a good project.
19:01:50 * Sgeo mutters something incomprehensible about every image based language thinking it owns .image
19:01:53 <fizzie> Vorpal: Speaking of photography, look what we found from the local IKEA; a TRÅDIG-model cat: http://zem.fi/~fis/ikea-cat.jpg
19:02:02 <alise> Sgeo: file extensions aren't owned, Windowser.
19:02:17 <alise> fizzie: :-D
19:03:34 <fizzie> It's been doing some interior design improvements to the box (read: eating it) after the picture was taken, though.
19:04:00 <alise> Did you buy it?
19:04:10 <alise> Woohoo! Factor perfectly integrated with Emacs.
19:04:59 * alise right-clicks Edit on a random word; the file opens in Emacs, scrolled to the definition
19:05:00 <alise> Mwahaha
19:05:03 <alise> I have infinite power
19:05:24 <Vorpal> <fizzie> Vorpal: Speaking of photography, look what we found from the local IKEA; a TRÅDIG-model cat: http://zem.fi/~fis/ikea-cat.jpg <-- what a fitting name. Well "hårig" would have been even better
19:05:27 <Vorpal> but close enough
19:05:59 <Vorpal> fizzie, http://omploader.org/vNWVyMA
19:06:37 <fizzie> I think I've seen a similar-looking building before.
19:06:52 <Vorpal> fizzie, yes but then it was like 2 meter of snow outside
19:06:59 <Vorpal> fizzie, and the pano didn't match up well at all
19:07:37 <Vorpal> fizzie, I tried a vertical pano
19:07:47 <Vorpal> but that is near impossible without some mount
19:09:32 <Vorpal> hm there are actually 2 seams
19:10:32 <Vorpal> fizzie, btw we will be using RCX in a lab next week.
19:10:50 <Vorpal> fizzie, communication protocol lab
19:11:00 <Vorpal> so rather strange choice of unit for it
19:11:06 <fizzie> What sort of play-university is that place?-)
19:11:12 <Vorpal> though I guess it is a nice and simple protocol to start with
19:11:33 <Vorpal> fizzie, hey the RCX was developed at MIT so...
19:11:46 <Vorpal> well, at MIT together with lego to be exact
19:12:25 <fizzie> The only "telecommunications" "labwork" (if you can call it that) I did just used a network of six virtual machines or so. But I guess this is a bit lower-level communications-protocol and less networking-infrastructure thing?
19:12:51 <alise> Sgeo: btw, the factor wiki and pastebin are coded in factor
19:12:51 <Vorpal> fizzie, anyway the IR protocol is probably good for the first lab in the network and communication course. There were TCP/IP labs and so on later on
19:12:57 <alise> Sgeo: and included with the distribution
19:13:02 <Vorpal> fizzie, there is more later on
19:13:07 * cpressey wonders whatever happened to Pliant
19:13:27 <Sgeo> alise, including a non-static website with software seems nonsensical. I assume you mean a URL
19:13:29 <Vorpal> fizzie, but I guess since it is a introductory course, they don't want to start off with a too complex protocol
19:13:35 <alise> Sgeo: The code .....................
19:13:40 <alise> >_<
19:13:40 <Vorpal> an*
19:13:42 <alise> -_-
19:13:43 <alise> etc
19:13:45 <Sgeo> Oh!
19:14:17 <fizzie> Vorpal: We had a "Unix programming" special course; I found something like 16 more-or-less-serious (some *very* minor, admittedly) errors/unclarities in the course slides.
19:14:19 <Sgeo> I should probably uninstall WIn32Forth at some point
19:14:28 <cpressey> Apparently Pliant is still around at http://www.pliantcode.com/ and http://fullpliant.org/doc/
19:14:51 <alise> cpressey: what the heck is it?
19:14:54 <alise> that is
19:14:57 <Vorpal> fizzie, oh yeah, this first lab will also serve as a way to learn *nix iirc. For those that don't know it
19:14:57 <alise> why should i care about it?
19:15:10 <alise> [[In computer software programming languages history, Pliant is the first attempt to connect C and LISP branches.
19:15:10 <alise> It was written by Hubert Tonneau, first published in 1999, and is released under GNU General Public License version 2.]]
19:15:11 <alise> ha
19:15:15 <alise> like nobody tried that before 1999
19:15:43 <cpressey> Oh, Wikipedia. Thy NPOV shines upon us!
19:15:50 <alise> cpressey: so what is it?
19:15:53 <alise> like, i know what it is
19:15:54 <alise> but context?
19:16:23 <cpressey> alise: I dunno, something you said about Factor reminded me of it
19:16:53 * Sgeo growls at there being no 3xx level chem courses
19:16:58 <cpressey> A language where you can change the syntax and build your own language! Whee! Yeah, never been done before.
19:17:03 <Vorpal> fizzie, one issue seems to be they are using non-custom firmware on those. Rather annoying. The default lego firmware is horribly bad. And that is "so bad it is bad" bad.
19:17:04 <fizzie> Vorpal: Several were pretty clear errors, like claiming that to delete a file, you need write permission for the file itself. And that you need to have a "extern char **environ;" declaration before you can use getenv/putenv.
19:17:11 <alise> cpressey: Heh.
19:17:13 <alise> Pliant does that?
19:17:57 <Sgeo> fizzie, was this someplace where you could correct whoever was teaching it?
19:18:14 <cpressey> alise: That's what I understood its schtick to be, yes.
19:18:17 * Sgeo is a major fan of correcting professors
19:18:19 <cpressey> "Pliant is a great language of choice for any of the following example applications: relational database engine, 3D game engine, GMail like web-app, peer-to-peer sharing network, kernel drivers, online web store."
19:18:22 <fizzie> Sgeo: Yes, I think my corrections were credited on the next lecture, even.
19:18:23 <Sgeo> Although it's probably rather rude
19:18:25 <alise> Sgeo: They probably hate your guts.
19:18:27 <Sgeo> fizzie, awesome
19:18:48 <cpressey> It's a great language of choice.
19:18:50 <alise> Well, if you correct purposeful simplifications for the purpose of teaching, that is.
19:19:01 <alise> cpressey: have you gazed upon the delight that is Plain English?
19:19:12 <Sgeo> alise, um, I might have done that once or twice >.>
19:19:26 <alise> Sgeo: That's obnoxious.
19:19:27 <madbrain2> that's the one with ~1000 words?
19:19:30 <Vorpal> fizzie, hm to delete a file you need write permission to the containing directory. Hm can you delete a file you can write to but where you can't write to the containing directory?
19:19:38 <alise> madbrain2: nonono
19:19:41 <alise> madbrain2: it's a programming language
19:19:59 <fizzie> Vorpal: No. Well, unless you consider truncating it to zero bytes, which is sort-of "deleting" it. But not really.
19:20:00 <alise> written in the most warped form of english you can imagine, with a hilarious manual that calls Windows variously the kludge, the whore, etc.
19:20:00 <Sgeo> No nested ifs iirc
19:20:07 <Vorpal> fizzie, right
19:20:08 <alise> and the compiler is written in itself, which is beautifully horrific
19:20:14 <alise> and it's meant to cost like $100
19:20:20 <alise> but you could get it for free by looking at the js code
19:20:31 <alise> and it had cartoon "testimonials" from claude monet, bill gates, k&r, ...
19:20:59 <cpressey> alise: Holy wow. No, I had not.
19:21:12 <alise> cpressey: http://www.osmosian.com/ they removed their fun cartoon site and replaced it with this
19:21:17 <alise> download the sample application to look at the source
19:21:24 <cpressey> A cartoon testimonial for Monet. That's...oh damn.
19:21:30 <cpressey> s/for/from/
19:21:33 <alise> cpressey: it was because of their sample application
19:21:39 <alise> which uses dots to reproduce google image search results
19:21:41 <alise> Slereah can hook you up with the actual compiler etc., which is pure fun to use
19:21:49 <alise> the editor will ONLY start full screen using an awful comic font
19:21:55 <alise> i actually started on a bf interpreter
19:21:57 <alise> but it was too difficult
19:22:03 <alise> to fight with the syntax
19:22:14 <alise> cpressey: Reading the compiler, though, wow.
19:22:17 <fizzie> I may arguably have done that "correct purposeful simplifications" thing back when I got into that argument about *all* floating-point formats being binary (while TI's calculator-floats are BCD); but they were so forcefully insisting on everything everywhere being implemented with base-two fractions and powers of two.
19:22:20 <cpressey> "What do I need to run it? Windows XP or Vista. Yuk."
19:22:22 <alise> cpressey: It has raw hex for all the compiled instructions.
19:22:29 <alise> cpressey: And the rest is written in that mechanical English style.
19:22:35 <alise> Parsing and all.
19:22:35 <Vorpal> fizzie, wait a second. That isn't true in general
19:22:45 <alise> So really, I am very impressed that they could program something that big and ... well, actually-working in it.
19:22:49 <Vorpal> fizzie, the sticky bit messes things up
19:22:53 <alise> Like LoseThos.
19:22:56 <Vorpal> so you need to account for that possibility too
19:23:41 <alise> cpressey: http://www.osmosian.com/manifesto.pdf this thing has the font used in the editor
19:23:45 <fizzie> Vorpal: Yes, I did mention that in the correction. But even with the sticky bit set, the original claim -- write permissions on the file -- is still irrelevant.
19:24:03 * Sgeo wonders whether he should do the Your First Program tutorial despite having read it but not acted
19:24:06 <Sgeo> Maybe to get a feel for it
19:24:07 <Vorpal> fizzie, indeed
19:24:13 <alise> The
19:24:13 <alise> program runs on the Wintel Kluge, was written entirely in Plain English, and
19:24:13 <alise> re-compiles itself in less than three seconds. That's right. Three seconds.
19:24:15 <alise> Sgeo: factor's?
19:24:20 <alise> Sgeo: probably.
19:25:30 * Sgeo tries out the deploy tool
19:25:31 <alise> cpressey: Oh yeah, and the whole UI system is based on 1/ns of an inch -- I think n=16
19:26:28 <Vorpal> fizzie, the result of sticky bit on files seems to vary a lot (not implemented is most common though)
19:26:36 <Vorpal> http://en.wikipedia.org/wiki/Sticky_bit#Usage
19:26:58 <cpressey> alise: I. Am. Enthralled.
19:27:17 <alise> cpressey: You NEED to see the compiler. They call it "the noodle", IIRC.
19:27:24 <alise> Literally that filename. No extension, "the " and all.
19:27:45 <Vorpal> alise, "they"?
19:27:55 <Vorpal> alise, are there really multiple persons behind it?
19:28:02 <alise> How the heck should I know?
19:28:06 <Vorpal> hm
19:28:07 <alise> They call themselves The Osmosian Order.
19:28:09 <Vorpal> good point
19:28:10 <fizzie> It could be a single guy with a split personality thing.
19:28:12 <alise> Besides, singular they.
19:28:18 <alise> Perfectly valid.
19:28:29 <Vorpal> alise, I prefer spivak but sure...
19:28:48 <alise> I'd like to believe that it's twenty or so absolutely crazy, unwashed, unshaven people living in one messy house.
19:29:00 <fizzie> "The Osmosian Order of Plain English Programmers is a group of like-minded developers and educators dedicated to the rescue of computer science from the pervasive fog of confusion engulfing it today."
19:29:06 <alise> Like the world's most crazy-programming-language-oriented group marriage.
19:29:15 <fizzie> The "group" word does sort of suggest >1, while not being absolutely confirmsome.
19:29:20 <alise> fizzie: Yes, well, he could be lying.
19:29:29 <alise> Or self-aggrandising.
19:29:42 <alise> (She, maybe?)
19:29:48 <alise> (Naw.)
19:30:21 <fizzie> Well, osmosian.com is registered by Dan Rzeppa, 610 Scholl Rd, Mansfield, Ohio 44907, United States.
19:31:02 <Vorpal> "The setuid bit was invented by Dennis Ritchie. His employer, AT&T, applied for a patent in 1972; the patent was granted in 1979 as patent number US patent 4135240 "Protection of data file contents". The patent was later placed in the public domain."
19:31:14 <Vorpal> how strange to think that setuid was patented...
19:32:47 <madbrain2> osmosian? yeah that's a classic no?
19:33:46 <fizzie> alise: Uh... I went to a nearby place with Google streetview (Scholl Road itself hasn't been driven on), and got this: http://zem.fi/~fis/scholl.jpg -- I think I'm forced to conclude that The Osmosian Order is a group of extraterrestials.
19:34:03 <alise> fizzie: That makes sense.
19:34:23 <alise> fizzie: The van and its driver became a being of pure energy when it went any further.
19:34:35 <alise> So you can see, you can never reach Scholl Road in this reality.
19:34:38 <Vorpal> <fizzie> alise: Uh... I went to a nearby place with Google streetview (Scholl Road itself hasn't been driven on), and got this: http://zem.fi/~fis/scholl.jpg -- I think I'm forced to conclude that The Osmosian Order is a group of extraterrestials. <-- what the fuck?
19:34:39 <alise> *So you see,
19:34:50 <alise> Osmosian - Alien Species Wiki - Aliens, UFOs, Space aliens
19:34:50 <alise> Osmosians are an aliens that look like humans, The name 'Osmosian' is a play on the word "osmosis", the name of the physical process by which a solvent, ...
19:34:51 <alise> -- Google
19:34:56 <alise> Well there you go then.
19:35:00 <alise> http://aliens.wikia.com/wiki/Osmosian
19:35:01 <fizzie> I... see.
19:35:01 <alise> It's settled.
19:35:53 <alise> Sgeo: use Emacs
19:35:57 <alise> FUEL is kickass
19:36:23 <Vorpal> FUEL?
19:36:23 <Sgeo> I only really like emacs when I'm on a terminal
19:36:30 <Sgeo> Vorpal, Factor thingy for Emacs
19:36:52 <Vorpal> Sgeo, run emacs -nw
19:36:52 <Vorpal> then
19:37:06 <Sgeo> o.O I gave up on the deploy Tetris thing
19:37:09 <alise> FUEL is the thing that turns Factor and Emacs into Smalltalk.
19:37:11 <Vorpal> --no-window-system, -nw do not communicate with X, ignoring $DISPLAY
19:37:11 <Sgeo> It just now attempted to finish
19:37:14 <Sgeo> But I deleted stuff
19:37:14 <Vorpal> Sgeo, ^
19:37:18 <Vorpal> Sgeo, thus, terminal
19:37:23 <alise> Vorpal: you are totally misunderstanding him
19:37:26 <alise> possibly purposefully.
19:37:34 * cpressey cannot see past the pervasive fog of confusion that engulfs him.
19:37:39 <Vorpal> alise, hm? He seemed to ask for "not X mode"
19:37:43 <Vorpal> at least to me
19:38:11 <alise> cpressey: Huh, Vorpal's message got marked as being sent by you.
19:38:16 <alise> * cpressey cannot see past the pervasive fog of confusion that engulfs him.
19:38:39 <alise> Vorpal: he means that when using a graphical environment rather than a command-based one, he does not enjoy using Emacs.
19:38:41 <Vorpal> alise, i didn't say that....
19:38:44 <alise> Sgeo: you like Smalltalk, yes?
19:38:44 <Vorpal> alise, stop trolling
19:38:49 <Sgeo> alise, yes...
19:38:58 <alise> Sgeo: Factor + Emacs/FUEL = Smalltalk. srsly
19:39:17 <Vorpal> alise, right. So running it in a terminal inside a GUI environment is not enough?
19:39:58 <alise> Vorpal: please find the nearest dictionary and look up "context", "environment"
19:40:36 <Vorpal> alise, he said none of those words
19:40:40 <Vorpal> "<Sgeo> I only really like emacs when I'm on a terminal"
19:40:58 <cpressey> alise: This compiler, where is it?
19:41:00 <alise> yes, unlike you i can read words and interpret them as their meanings, rather than relying on an ultra-literal legalistic view of the world
19:41:15 <alise> cpressey: you gotta pay for it. apparently if you email them they'll give it to you. try that.
19:41:21 <alise> Slereah has it
19:41:28 <cpressey> alise: Eww
19:41:41 <Vorpal> alise, that statement is ambiguous the way "terminal" is commonly used these days. I do not assume that everyone uses "terminal emulator" when they mean that
19:41:43 <alise> cpressey: yeah, maybe just ask Slereah for it
19:41:45 <Vorpal> since that is generally not true
19:41:53 <alise> Slereah Slereah Slereah
19:41:59 <cpressey> alise: Fine.
19:42:05 <alise> maybe he will appear
19:45:39 -!- ais523 has joined.
19:45:53 <cpressey> ais523: Hey, you're not Slereah!
19:46:01 <ais523> no, I'm not
19:46:15 <alise> ais523: we summoned you inadvertently
19:46:16 <cpressey> alise: Crossed wire in the summoning subsystem, I guess.
19:46:17 <alise> shoo
19:46:23 <Vorpal> ais523, hello
19:47:08 * alise edits the edit word, finds himself in a world populated by newspaper editors who can only say "edit"
19:47:14 <ais523> hi
19:49:16 <Sgeo> I'm still in love with the one line unit test stuff
19:53:53 <cpressey> alise: I love those hats of theirs. Well, visors really. They're cool.
19:55:38 -!- cheater99 has quit (Ping timeout: 272 seconds).
19:56:10 <alise> cpressey: wat
19:59:07 <cpressey> alise: I guess I'm thinking of the guys who run the printing presses.
19:59:57 <cpressey> Geez, here I thought this was iconic, but I can't find a single image on google of one of these dudes.
20:00:05 <cpressey> They wear suspenders, too, I swear!
20:08:08 -!- augur has quit (Ping timeout: 258 seconds).
20:15:52 -!- madbrain2 has quit (Ping timeout: 265 seconds).
20:18:06 <Vorpal> cpressey, whaaat?
20:18:33 <Vorpal> suspenders are rare nowdays though
20:19:00 <Vorpal> saw some old guy at university passing by in a corridor today, had suspenders. Noticed it due to being so rare.
20:20:19 <Vorpal> hm that is en_GB:braces it seems
20:20:22 -!- madbrain2 has joined.
20:20:34 -!- cheater99 has joined.
20:28:38 -!- Wamanuz has joined.
20:31:48 -!- Phantom_Hoover has joined.
20:32:33 <Phantom_Hoover> choochter, new here?
20:34:12 -!- Sgeo has quit (Ping timeout: 258 seconds).
20:37:22 -!- augur has joined.
20:47:04 -!- Phantom_Hoover has quit (Quit: Leaving).
20:47:19 -!- Phantom_Hoover has joined.
20:52:03 <ais523> Vorpal: both words work in British English
20:52:11 <ais523> hmm, maybe not
20:52:16 -!- augur has quit (Ping timeout: 252 seconds).
20:52:16 <ais523> "suspenders" means something else over here
20:54:48 <Phantom_Hoover> ais523, what are you talking about?
20:55:07 <ais523> what Vorpal was saying around 40 minutes ago
20:58:32 <ais523> wow, why does git not have a command to reset a file in the working tree to match what it is at HEAD?
20:59:06 -!- augur has joined.
21:01:05 <ais523> aha, "git checkout"; that was rather inconsistent with the rest of git...
21:01:40 <cpressey> ais523: What does "suspenders" bring to mind in UK English?
21:01:43 <cpressey> I'm curious.
21:02:08 <cpressey> "braces" would be things you wear on your teeth to straighten them in NA English...
21:02:29 <ais523> cpressey: they're an item of clothing that prevents long socks falling down
21:02:39 <fizzie> The "git checkout" thing is mentioned everywhere, though. And I'm not sure how inconsistent it is; it checks out things from the repository into the working tree.
21:02:53 <cpressey> ais523: Ah yes. I've seen those, was not aware they had a name.
21:04:01 <fizzie> I guess the fact that it also does branch-switching is a bit overloady.
21:06:38 -!- Flonk has joined.
21:07:14 -!- Vorpal has quit (Read error: Operation timed out).
21:08:52 -!- oerjan has joined.
21:10:23 -!- Vorpal has joined.
21:24:41 -!- augur has quit (Ping timeout: 240 seconds).
21:29:02 -!- augur has joined.
21:38:05 <cheater99> hello
21:38:09 <cheater99> i have a question
21:38:17 <cheater99> why are php related irc channels so fucking useless
21:40:13 <Mathnerd314> because php is so fucking easy to understand
21:48:06 -!- Flonk_ has joined.
21:49:17 * oerjan notes that people on the Infinite Featureless Plane of Death walk _fast_
21:49:35 -!- sftp_ has quit (Remote host closed the connection).
21:50:52 -!- Flonk has quit (Ping timeout: 258 seconds).
21:50:53 -!- Flonk_ has changed nick to Flonk.
21:56:10 -!- falsealarm has joined.
21:56:27 <falsealarm> hello
21:56:43 -!- falsealarm has left (?).
21:57:48 <oerjan> O_o
21:58:44 <oerjan> very self referential, should fit right in
22:01:19 <cpressey> Is it just me, or does Bochs suck now?
22:01:33 <cpressey> (Anticipating alise response: cpressey: Bochs has always sucked.)
22:01:55 <alise> cpressey: Well... it's always been glacially slow.
22:01:56 <cpressey> No, I mean, I can't even get it to boot from boot floppy images now.
22:02:13 <alise> Maybe you did something rong.
22:02:19 <alise> If you're not using the debugger just go QEMU.
22:02:48 <oerjan> time to make things wright, then
22:02:51 <cpressey> Oh, maybe. Bochs won't even start a display on my Ubuntu laptop; I'm using QEMU there. QEMU on Windows looks like hell, though.
22:04:08 -!- madbrain2 has quit (Ping timeout: 265 seconds).
22:08:59 <alise> augur augur augur
22:09:11 <augur> alise alise alise
22:13:22 <cpressey> The name of the BIOS ROM image file that QEMU loads is... hardcoded? Beh
22:13:38 <cpressey> Oh, no. You can give it a dir name it seems.
22:13:52 <cpressey> Yay! Worked!
22:16:06 -!- Quadrescence has quit (Ping timeout: 265 seconds).
22:18:14 <Phantom_Hoover> cpressey cpressey cpressey
22:18:57 <cpressey> Phantom_Hoover Phantom_Hoover Phantom_Hoover
22:20:27 -!- augur has quit (Ping timeout: 265 seconds).
22:20:51 -!- madbrain2 has joined.
22:22:09 -!- augur has joined.
22:25:29 * Phantom_Hoover looks at the USSR's nuclear strategy against the UK
22:27:48 -!- Phantom_Hoover_ has joined.
22:27:50 <Phantom_Hoover_> Oh, Edinburgh was completely screwed.
22:30:37 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
22:31:18 -!- Flonk_ has joined.
22:31:28 -!- Flonk has quit (Read error: Connection reset by peer).
22:31:46 -!- Flonk_ has changed nick to Flonk.
22:32:19 <Phantom_Hoover_> There are at least 16 assorted ground- and airbursts lined up for it, inexplicably.
22:32:55 <Phantom_Hoover_> For comparison, London only has about 2 more.
22:33:26 -!- augur has quit (Ping timeout: 264 seconds).
22:33:48 -!- Quadrescence has joined.
22:34:03 <Phantom_Hoover_> Despite having 10 times the population.
22:34:05 <cpressey> Phantom_Hoover_: I would conclude from that, that Edinburgh is where the UK keeps most of *its* nukes.
22:34:16 <Phantom_Hoover_> cpressey, *definitely* not.
22:34:34 <Phantom_Hoover_> Most of them would be in Rosyth and other military bases.
22:34:38 <cpressey> Phantom_Hoover_: I didn't say it was a conclusion that lined up with reality!
22:34:57 <Phantom_Hoover_> cpressey, it baffles me just as much.
22:35:21 <Phantom_Hoover_> I mean, if you wanted to decapitate Scotland, it might be helpful, but that's basically the only good reason.
22:35:57 <Phantom_Hoover_> It's not to kill civilians, since Edinburgh's population isn't even half a million.
22:38:09 <Phantom_Hoover_> Well, a friend of mine says that it's probably due to its terrain not being very conducive to killing people.
22:38:37 <alise> xD
22:39:17 <Phantom_Hoover_> Since Edinburgh has loads and loads of hills.
22:40:21 <cpressey> "Damn hills! Our infantry will never be able to get over them. Better nuke that area instead!" ?
22:42:19 <Phantom_Hoover_> No, that's the point.
22:42:40 <Phantom_Hoover_> Hills stop radiation and shockwaves, so it wouldn't be completely levelled.
22:45:47 -!- zzo38 has joined.
22:47:17 <zzo38> And ImageMagick certainly is suitable for complex editing, I have used ImageMagick for these things.
22:47:25 <Phantom_Hoover_> So they lined up lots and lots of nukes, to ensure that everyone would die.
22:47:59 <Phantom_Hoover_> While larger cities such as London are on pretty flat ground.
22:49:32 -!- Flonk has quit (Remote host closed the connection).
22:49:36 -!- Phantom_Hoover_ has quit (Remote host closed the connection).
22:50:07 -!- kar8nga has quit (Read error: Connection reset by peer).
22:50:50 <zzo38> If you need a graphical user interface, I have used Microsoft Paint and used the "clipboard:" command in ImageMagick to deal with this. This does not work in UNIX systems, though. So in UNIX systems, what I could do is invent variant programs "imx" (Image eXchange) (normal mode), "imxs" (scripting mode", and "imxg" (scripting mode with graphical user interface).
22:51:27 <zzo38> (The GUI can use a view area, script area, and with three mouse buttons and modifier keys, you can do a lot of these operations, the function keys F1 F2 F3 and so on can also be used to select different mouse modes)
22:51:37 -!- oerjan has quit (Quit: Later).
22:52:16 <alise> * zzo38 (~zzo38@h24-207-49-17.dlt.dccnet.com) has joined #esoteric
22:52:17 <alise> <zzo38> And ImageMagick certainly is suitable for complex editing, I have used ImageMagick for these things.
22:52:19 <alise> for what things, exactly?
22:52:22 <alise> you failed to specify
22:52:48 <zzo38> alise: Any complex things!
22:52:59 <zzo38> There are a lot of things you can do with it!
22:53:08 <zzo38> I have even used ImageMagick for audio manipulation!
22:55:00 <zzo38> dc has a stack for each register, sort of like the STASH and RETRIEVE commands in INTERCAL......
23:00:47 <cpressey> OK, I have to know. How can ImageMagick be used to manipulate audio??
23:01:03 -!- olsner has joined.
23:01:24 <alise> cpressey: Convert audio data to image data -> apply blur filter -> convert back
23:01:52 <cpressey> I, uh.
23:01:57 <cpressey> I suppose that would... manipulate it.
23:04:03 <alise> You tell 'im, zzo38!
23:06:28 <zzo38> alise: Yes you are right, that is one way.
23:06:49 <zzo38> But since ImageMagick does not support audio formats directly, you would need SoX or something else to convert the formats
23:07:05 <zzo38> SoX already has many effects, but not everything
23:08:03 <zzo38> If I ever write ImX (Image eXchange), then I will add in support for audio formats as well as the picture formats, and also add in "Block JPEG" format, which prevents decompressing/compressing the lossy part of a JPEG.
23:08:32 <zzo38> As well as add in some effects that are useful for audio. The DPI of the picture can be used as the sample rate for audio.
23:08:54 -!- derdon has quit (Read error: Operation timed out).
23:09:11 <alise> "The DPI of the picture can be used as the sample rate for audio."
23:09:11 <alise> x_x
23:09:16 <coppro> nice
23:09:24 * alise laughs
23:09:32 <olsner> one inch per second?
23:09:40 <alise> That's what she said.
23:10:27 <zzo38> olsner: I guess so, that can work.
23:11:00 * alise fixes a bug in Factor
23:11:02 <alise> :fuckyeah:
23:12:06 <alise> (It is a bug in the Brainfuck implementation.)
23:15:59 <zzo38> I have seen a 2600 FAQ that says that shell scripts with SUID can be security hole if you rename it (or make a link to it), called "-i". Can you fix this by changing the shebang like to "#!/bin/bash --" will it work?
23:17:17 <alise> probably
23:17:24 <alise> don't make suid shell scripts though
23:17:36 <coppro> modern kernels don't accept suid scripts
23:17:41 <coppro> only binaries
23:18:20 <zzo38> Will the SUID just have no effects for shell scripts? Or will it expect the file to be a binary if it has SUID, and say the file is an invalid executable file?
23:18:26 <coppro> the frmer
23:18:28 <coppro> *former
23:20:15 <ais523> zzo38: no, that doesn't fix it
23:20:29 <ais523> well, it fixes that bug, but not another security bug with suid shell scripts
23:21:05 <ais523> which is that if you access the shellscript via a path where one of the directories in it is a symlink, then you can retarget that symlink between the check to see if the script is suid, and the shell actually reading the script
23:21:12 <ais523> so you can get the shell to run some other script suid
23:24:31 <zzo38> ais523: O, that is another thing, I forgot
23:24:37 <zzo38> But now I know
23:25:09 <coppro> doesn't the kernel just have to hold on to the realpath of the executable to avoid that hole?
23:25:42 <alise> AwesomePressions: S-Expression apart from (...) | Base-10 number n followed by n AwesomePressions, forming a list.
23:25:45 <alise> 3 define 2 id x x
23:25:49 <alise> Also known as: AwfulPressions
23:26:00 <alise> Variant: AwesomeBinaryPressions
23:26:01 <alise> 11 define 10 id x x
23:30:53 -!- madbrain2 has quit (Ping timeout: 276 seconds).
23:31:54 <zzo38> I have many ideas of things that can be added/changed in Linux, one idea is the /proc/$$/9p/ directory
23:32:51 <zzo38> Another idea is Simple Executable File Format
23:34:15 <zzo38> Another idea is, a way to tell it to run another program with overriding some or all system calls, and possibly some other features too
23:34:37 <alise> fizzie: What was the name of that amazing jump game me and oklopol got addicted to?
23:34:50 <alise> You had the level 100 code for it, I believe.
23:42:55 <cpressey> "level 100"?
23:43:47 <cpressey> I was confusing this with "100level"
23:44:15 <alise> no; it had 100 levels + some bonuses
23:44:27 <cpressey> Wondering if this was some new language for writing games.
23:44:29 <alise> Dot Action 2! That was it.
23:45:26 <alise> http://offgao.no-ip.org/game/dotact/
23:45:26 <alise> http://offgao.no-ip.org/game/dotact2/
23:45:33 <alise> http://offgao.no-ip.org/game/dotact2_c/ ;; create your own levels!
23:45:37 <alise> I think.
23:45:55 <cpressey> errrm
23:45:58 <alise> The goal is to get all the dots, cpressey.
23:46:03 <alise> You don't need to know Japanese.
23:46:07 <alise> Arrow keys move. Space jumps.
23:46:09 <cpressey> It's still loading the /emulator/?
23:46:10 <alise> Have fun.
23:46:13 <alise> cpressey: It's not an emulator.
23:46:16 <alise> It's just fake emulator-text.
23:46:20 <alise> It's loading all the levels.
23:46:22 <cpressey> Oh kay
23:46:36 <alise> Dot Action 2 is the best
23:46:38 <cpressey> Well, this will take some time
23:46:40 <alise> so I'd load that if I were you
23:46:45 <cpressey> Am.
23:47:00 <alise> It is really slow from that site
23:47:10 <alise> cpressey: http://dotaction.fizzlebot.com/
23:47:12 <alise> Way, way quicker.
23:47:20 <cpressey> Indeeeeed
23:47:21 <alise> SPACE operates the menus.
23:47:37 <cpressey> 1st menu item ok?
23:47:49 <alise> Yes.
23:47:57 <alise> Don't be fooled by the simplistic starting levels. It becomes pure gaming itself soon enough!
23:48:24 <cpressey> This is genuinely amazing.
23:48:44 <alise> XD
23:48:46 <alise> It becomes... shall we say, almost impossible near the end.
23:49:41 <alise> cpressey: Stage 5 is the first "haha wow" one.
23:50:17 <cpressey> k. Made it to stage 2. Will continue later, I'm releasing Eightebed right now.
23:50:30 * pikhq has navigates bureaucracy succesfully
23:50:31 <cpressey> Or rather, past stage 2.
23:50:33 <pikhq> VICTOLY
23:53:05 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:54:25 <alise> Oh yeah, and Enter pauses so you can quit.
23:54:37 -!- FireFly has quit (Quit: swatted to death).
23:58:55 <zzo38> I want to do mana symbols like this: \def\R{\redmanalayer\rlap\manasymcircle\manasymred\textlayer}
23:59:57 <zzo38> (Where \redmanalayer and \textlayer are specials)
00:01:49 <zzo38> Sorry, that was wrong, this is correct: \def\R{\redmanalayer\rlap\manasymcircle\textlayer\manasymred}
00:03:33 <alise> Starting program: /home/ehird/jonesforth/jonesforth
00:03:34 <alise> During startup program terminated with signal SIGKILL, Killed.
00:03:34 <alise> But why?
00:03:49 <zzo38> alise: I don't know why?
00:04:02 <alise> Hmm, seems the -Wl,-Ttext,0
00:05:21 <zzo38> Yap will not render a page with unknown specials.
00:06:52 <zzo38> (Which is OK, since I will write a DVI driver for this purpose, so you won't need other ones.)
00:07:33 <zzo38> One problem I still have is how I should implement text that is stretched only horizontally, and not vertically, in TeX and DVI.
00:09:10 <cpressey> alise: "ZET:"?
00:09:23 <alise> cpressey: how long the red dot you just got will last
00:09:39 <cpressey> alise: But what does it *do*?
00:09:44 <alise> the red dot stops the electric fences (what everyone thinks they are; I however belong to the "lava that keeps its shape" school of thought) from killing you
00:09:52 <cpressey> Ahhhhhh
00:12:42 <cpressey> Well, Eightebed 1.0 has been released. http://catseye.tc/projects/eightebed/
00:13:52 <cpressey> Meaning, I get to think about something else for a while.
00:15:19 <cpressey> Gregor: It occurs to me that you may care about the above announcement!
00:16:11 <alise> cpressey: But you DEFINED IT WRONG!
00:16:12 -!- GreaseMonkey has joined.
00:16:17 <cpressey> Awww.
00:16:42 <alise> "There are no functions in Eightebed." XD
00:17:04 <alise> (I know, it's not a complexity problem.)
00:17:06 <cpressey> alise: Functions would change nothing... I explain that.
00:17:11 <alise> It's just amusing.
00:17:23 <cpressey> I suppose it is somewhat that.
00:17:33 <alise> consists only of the expression ifvalid x
00:17:35 <alise> you mean "valid"
00:17:41 <alise> WHOO BOY TIME FOR EIGHTEBED 1.1
00:18:30 <cpressey> Oh drat. I just found a tiny bug in the implementation too (in the -t option) so I will probably upload a bugfix. But, uh. Not today.
00:19:18 <Gregor> Bahahahahah @ "runtime support"
00:19:36 <alise> cpressey: Legal Issues is my favourite section
00:19:38 <Gregor> We implement this without a GC by stuffing most of a GC into the free function, thereby making it just as slow as a GC'd language with none of the advantages!
00:19:56 <cpressey> Gregor: :D
00:20:17 <Gregor> And when are you allowed to free? Only in an if valid block?
00:20:19 <alise> Aww, cpressey/Gregor is such a fun antagonistic relationship with obvious closeted underlying homosexuality.
00:20:24 <alise> Uh, I said nothing.
00:20:32 <cpressey> You strange, strange people with your caring about "slow" and your "advantages".
00:21:19 <cpressey> Gregor: You can only dereference in the "safe start" of an if valid block, i.e. before you make any assignments. You can free anytime, but if it's already free, nothing happens./
00:21:41 <cpressey> Could have made free follow the same rules as dereferencing. Didn't.
00:21:48 <Gregor> cpressey: And if you have an alias that's in an if-valid block?
00:22:24 <cpressey> Gregor: I don't follow, but if I do, the answer is: you need another if valid.
00:23:24 <Gregor> var ptr to int a; var ptr to int b; ... a = b = malloc int; if valid a { free(b); /* exception thrown? What? */ }
00:23:49 <cpressey> The block is freed and both a and b are invalidated.
00:24:04 <Gregor> But you're in an "if valid a" block.
00:24:25 <cpressey> Hm, good point. That could be a hole requiring redefinition of what a "safe start" is.
00:24:33 <cpressey> Up to the first assignment *or free*.
00:25:29 <Gregor> So yes, although you have managed to fit my requirements, I am wildly underwhelmed :P
00:27:10 -!- Sgeo has joined.
00:27:29 <alise> Gregor: "You win! But, whatever ;;("
00:27:39 <olsner> overwhelmingly underwhelmed?
00:27:47 <olsner> or merely wildly?
00:28:05 <Gregor> alise: Just my inner homosexual tendencies towards cpressey preventing me from being too antagonistic, right? X-P
00:28:15 <alise> Yes.
00:28:17 <alise> Absolutely.
00:28:31 <alise> You don't want to seem like you care too much! :'(
00:29:29 <cpressey> Of course. The next time a dispute like this comes up, it will instead be settled by match of Greco-Roman wrestling.
00:30:33 -!- tombom has quit (Quit: Leaving).
00:30:37 <cpressey> Anyway. I realize how little it proves. But it was fun to do.
00:31:00 <cpressey> And, unfortunately I must be off now. Evening, all.
00:31:06 <Sgeo> Bye cpressey
00:31:09 <olsner> oh, were you discussing the memory-safe language again?
00:31:25 -!- cpressey has quit (Quit: Leaving.).
00:31:43 <alise> yes
00:31:44 <alise> he released it
00:31:48 <alise> although it's broken :P
00:31:50 <alise> Stage 15!
00:32:09 <Sgeo> What language?
00:32:19 <olsner> eightebed?
00:32:22 <alise> yes
00:32:55 <Sgeo> Really annoying thing about Factor: There are no tutorials for a lot of stuff. The object-oriented stuff seems awesome, but it may be inaccessible to many due to having to dig through reference stuff
00:32:59 <Sgeo> Someone should write a tutorial on it
00:33:28 <alise> the reference stuff has tutorials
00:33:35 <alise> it has no objects
00:33:50 <Sgeo> alise, um, well, the class stuff
00:34:03 <alise> Sgeo: seriously, go to the reference; go up the directory to the topic (it has breadcrumbs)
00:34:07 <Sgeo> GENERIC:
00:34:08 <alise> there will be a link to documentation
00:34:08 <Sgeo> M:
00:34:09 <Sgeo> etc
00:34:12 <alise> those are tuples
00:34:42 <Sgeo> I thought tuples were the things with slots
00:34:47 <Sgeo> >>someslot someslot>>
00:34:48 <Sgeo> etc
00:34:54 <Sgeo> <mytuple>
00:34:56 <alise> indeed they are
00:35:08 <alise> there are no classes
00:35:23 <alise> well
00:35:27 <alise> there are
00:35:30 <alise> but there's tuple and union classes
00:35:34 <alise> and tuples are what you are thinking of
00:35:39 <alise> and mixins
00:35:53 <olsner> heh," If complications persist, another, less contentious name (such as "Microsoft Windows 7") may need to be chosen for this language."
00:47:39 <Sgeo> hrm?
00:48:32 <alise> Sgeo: eightebed
00:50:03 <Sgeo> alise, linky? Doesn't seem to be in wiki
00:50:10 <Sgeo> And Google's useless
00:50:12 <zzo38> I am looking at the Kitsilano oscillator. It says it is sensitive to your hands?
00:50:17 <alise> Sgeo: See very recent messagse.
00:50:32 <alise> <Sgeo> Wait, cpressey is the Cat's Eye guy?
00:50:35 <alise> zzo38: ?
00:50:58 <Sgeo> alise, ty for not making me look through logs
00:51:20 <Sgeo> Um, n/m
00:51:29 <alise> YW
00:52:29 <Sgeo> And I head straight for the esoteric programming category instead of seeing the news
00:53:15 <zzo38> alise: Yes that is what it says, but after adding one resistor it worked
00:53:25 <zzo38> http://catseye.tc/projects/kitsilano/kitsilano.html
00:53:44 <alise> Sgeo: the discussion in the logs is quite important though
00:54:29 <zzo38> Now, how well will it work, if you put a speaker instead of LED, and make all capacitors and resistors vary?
00:55:20 <zzo38> There is a circuit at the top that only works with old-style headphones. Is it possible to make a circuit that only works with red LEDs? (And if you put a green LED it won't work?)
00:59:39 -!- Gregor-CP has joined.
01:00:15 <Gregor-CP> I's got a fake Chinese iPad!
01:01:06 <Sgeo> Why would you spend any money on that?
01:01:15 * Sgeo decides that Gregor-CP is made out of money
01:01:44 <Gregor-CP> I got a pretty decent wage at MSR
01:02:09 <alise> Multiple Sclerosis eRotica
01:02:58 <Gregor-CP> Plus, I bought this off a friend for half its already low price :
01:03:14 <Gregor-CP> *:P
01:03:17 <Sgeo> Make the next Microsoft Allegiance!
01:03:54 <Gregor-CP> It runs Android, albeit on a hilariously slow processor.
01:05:14 <olsner> however slow it is, I doubt it's hilarious... it's probably not even funny
01:05:16 -!- wareya_ has quit (Read error: Connection reset by peer).
01:05:41 -!- wareya has joined.
01:06:18 <Gregor-CP> Makes me laugh :P
01:06:25 <Sgeo> alise, um, that game
01:06:48 <alise> Sgeo: what about it
01:06:51 <Sgeo> I'm stuck on the first part of level 1
01:06:58 <alise> what
01:06:58 <alise> how
01:07:03 <Sgeo> Are you sure the construction version is the best place to start?
01:07:08 <Sgeo> I want to avoid the fatal electric stuff
01:07:13 <Sgeo> But can't jump high enough
01:07:32 <alise> The construction version sucks
01:07:35 <alise> http://dotaction.fizzlebot.com/
01:07:38 <alise> Play Dot Action 2
01:07:41 <alise> (This mirror is much faster)
01:08:57 <Sgeo> Should I bother Google Translating?
01:09:01 <alise> nope
01:09:03 <alise> you don't need it
01:09:19 <Sgeo> Oh, what's the construction version?
01:09:21 <Sgeo> This level is not it
01:09:40 <alise> http://dotaction.fizzlebot.com/
01:09:41 <alise> Play this
01:10:06 <Sgeo> I am
01:10:17 <Sgeo> But what was that contstruction version thing all about?
01:11:47 <alise> I think it lets you make your own levels
01:11:48 <alise> dunno
01:12:07 <Sgeo> WTF is ZET?
01:12:18 <Sgeo> Oh wait, let me make a guess
01:12:36 <Sgeo> Guess is correct :D
01:12:59 <Sgeo> And armed with that knowledge, I go to attempt the construction version again
01:13:23 <alise> Sgeo: No
01:13:25 <alise> It only has one level
01:13:25 <alise> iirc
01:13:28 <alise> Play the proper one
01:13:30 <alise> it's much better
01:15:29 <Sgeo> Stage 5 was fun
01:15:43 <alise> of which
01:15:58 <alise> i'm on 32 of da2
01:16:46 <Sgeo> I screwed myself over on stage 6
01:16:53 <Sgeo> (With multiple upside-down dots
01:17:48 <Sgeo> me hmms
01:21:57 * Sgeo likes how sections of levels can be timed
01:23:20 <alise> I HATE LEVEL 32 SO MUCH
01:24:15 * Sgeo ran out of time grr
01:24:35 <alise> ON TO 33 YAY
01:27:22 * Sgeo growls at level 10
01:27:27 <Sgeo> I know exactly how to solve it
01:28:10 <Sgeo> With 1 second left, I got it!
01:28:55 <alise> *1 TIME
01:28:58 <alise> TIME != second
01:29:42 * Sgeo can't figure out level 12
01:29:43 <Sgeo> erm, 11
01:29:51 <Sgeo> THe jump is just a LITTLE too big
01:30:03 <alise> 35 time
01:30:10 <Sgeo> n/m
01:32:50 <Sgeo> Stage 14 was fun
01:35:08 <Sgeo> stage 16 requires some intellect
01:38:31 <Gregor-CP> Chinese iPad ripoff: still workin'!
01:40:15 <pikhq> Gregor-CP: Awesome.
01:41:37 <pikhq> Y'know, now that I actually have to drive regularly, I have developed *quite* an appreciation for classical radio stations.
01:41:51 <Gregor> ORLY? Do you have a not-terrible one?
01:42:13 <pikhq> I *think* it's not-terrible. It *certainly* sucks less than all other radio stations in the area!
01:42:16 <Gregor> The Portland one is great, the Purdue one is OK. Neither of them have any great ability to stick to themes, they just sort of wander aimlessly over all music.
01:42:51 <Sgeo> Classical music has themes?
01:42:53 <Sgeo> >.>
01:42:59 <pikhq> Sgeo: Very much so.
01:43:17 <zzo38> CBC sometimes plays classical music. They play other music too sometimes, and also news, and other things.
01:43:21 <zzo38> I also like classical music
01:43:21 * Gregor disappears for fifteen minutes.
01:43:46 <pikhq> Gregor: The one here (Colorado Springs) pretty much goes "Okay, we're just going to go with $theme for the next little bit."
01:45:05 <pikhq> And it's nice & non-profit.
01:49:42 <pikhq> Gregor: Just FYI: I'm presuming it's a damned good thing I have yet to hear on there something I'm actually familiar with. :P
01:54:29 -!- augur has joined.
01:54:34 -!- augur has quit (Remote host closed the connection).
01:54:53 -!- augur has joined.
01:57:30 <alise> STAGE 38 IS PURE PAIN
01:59:06 <zzo38> I have one idea, that you could make processor instruction set with no direct jump command, only a indirect jump command where the value of a register is the address of the next address
01:59:33 <ais523> zzo38: quite a few esolangs work like that
02:01:13 <zzo38> ais523: Yes, although what I mean is something like this: if 02AA is the destination address and 02 is the instruction and FF is the instruction pointer register: 02FF02AA
02:02:00 <ais523> that's how an indirect jump is done on PICs (you assign to the program counter, which is memory-mapped), but it has a direct jump instruction too
02:03:49 <alise> ;____;
02:11:03 -!- zzo38 has quit (Remote host closed the connection).
02:17:32 -!- Gregor-CP has quit (Remote host closed the connection).
02:23:15 * Sgeo has troubles with stage 18
02:26:07 <alise> 42 is evil
02:31:04 <alise> 42 is oidsjfodisjgoitjhnog
02:35:29 -!- Zuu has quit (Read error: Connection reset by peer).
02:37:59 -!- Gregor-CP has joined.
02:39:26 -!- Zuu has joined.
02:39:27 -!- Zuu has quit (Changing host).
02:39:27 -!- Zuu has joined.
02:46:18 -!- Zuu has quit (Read error: Connection reset by peer).
02:46:22 -!- ais523 has quit (Remote host closed the connection).
02:52:01 -!- Zuu has joined.
02:52:01 -!- Zuu has quit (Changing host).
02:52:01 -!- Zuu has joined.
03:16:31 <alise> Sgeo: : postpone r> dup , >r ;
03:16:33 <alise> i think this is right
03:16:41 <alise> works in jonesforth at least
03:17:05 <alise> or not
03:17:13 <alise> no, it isn't, of course
03:17:21 <alise> eh, whatever :)
03:33:51 -!- cal153 has quit.
03:37:30 -!- Gregor-CP has quit (Ping timeout: 265 seconds).
03:38:14 -!- Gregor-CP has joined.
03:45:49 -!- oerjan has joined.
03:46:32 -!- augur has quit (Remote host closed the connection).
03:46:41 -!- augur has joined.
03:55:23 -!- Zuu has quit (Read error: Connection reset by peer).
03:56:35 -!- Gregor-CP has quit (Read error: No route to host).
03:58:05 -!- GreaseMonkey has quit (Remote host closed the connection).
03:59:30 -!- Zuu has joined.
03:59:30 -!- Zuu has quit (Changing host).
03:59:30 -!- Zuu has joined.
04:05:57 <alise> "A+B - in programming contests, classic problem, which is given so contestants can gain familiarity with online judging system being used.
04:05:58 <alise> A+B is one of few problems on contests, which traditionally lacks fabula."
04:06:00 <alise> whaaat
04:06:01 <alise> xD
04:06:08 <alise> i guess traditionally lacks score or whatever
04:06:36 <pikhq> I'd be quite worried if it were worth points.
04:07:53 * Sgeo growls at Math being under "Arts & Sciences" at his school
04:07:53 <alise> Sgeo: this is an interesting look at forth philosophy, btw: http://www.jwdt.com/~paysan/httpd-en.html
04:07:56 <alise> if not utterly robust
04:08:04 <alise> mathematics is sort of a science
04:11:28 -!- Zuu has quit (Read error: Connection reset by peer).
04:11:40 <pikhq> alise: A New Kind of Science, if you will.
04:11:53 <alise> >_<
04:12:04 * pikhq leaves to avoid lynching
04:12:07 <pikhq> :P
04:12:16 * Sgeo doesn't get it
04:12:27 <pikhq> Sgeo: Wolfram.
04:12:35 <pikhq> Or: The Source of All Ego.
04:13:56 -!- GreaseMonkey has joined.
04:17:11 -!- Zuu has joined.
04:17:11 -!- Zuu has quit (Changing host).
04:17:11 -!- Zuu has joined.
04:24:03 <Gregor> lol @ "The Source of All Ego"
04:48:52 <alise> oerjan: cat compiler /does/ do type checking; evidence: http://lambda-the-ultimate.org/node/2319#comment-34783
04:48:57 <alise> he mentions things producing type errors
04:48:58 <alise> circa 2007
04:50:00 <Sgeo> Found a flame war regarding concatenative languages from 2005
04:50:11 <Sgeo> Apparently, stack effects weren't automatically checked back then
04:50:26 <alise> It's a new thing, with the optimising compiler.
04:51:38 <alise> Well.
04:51:39 <alise> Relatively new.
04:53:06 <Sgeo> http://lambda-the-ultimate.org/node/900
04:53:47 <alise> pronunciation is a bit too close to cunt for comfort :)
04:57:22 <alise> fizzie: whoever: I discovered how colorForth does interpreted code.
04:57:27 <alise> It's just a different, non-green colour.
04:57:33 <alise> So there's no real stop-defining delimiter thing.
04:57:35 <alise> I think fizzie asked.
04:57:38 <alise> Or was it cpressey?
04:57:40 <alise> Probably. Hmm.
05:07:31 <alise> Sgeo: : fact 1- if dup fact 1+ * else 1+ then ;
05:07:32 <alise> >:)
05:07:34 -!- Zuu has quit (Ping timeout: 276 seconds).
05:08:11 <alise> if you have a colorForth-style-; and an if that doesn't drop like the i21:
05:08:12 <alise> : fact 1- if fact 1+ * ; then 1+ ;
05:08:48 <Sgeo> That doesn't look like Factor
05:09:31 <alise> it's Forth, of a sort
05:09:43 <alise> the latter would work on the i21 and nothing else :-)
05:09:54 <alise> http://www.ultratechnology.com/1xforth.htm is a very good read btw
05:09:55 <alise> goodnight
05:09:57 -!- alise has quit (Quit: Leaving).
05:16:42 -!- Zuu has joined.
05:25:46 -!- oerjan has quit (Quit: Lost terminal).
05:37:06 -!- augur has quit (Remote host closed the connection).
05:37:18 -!- augur has joined.
05:51:17 -!- cheater00 has joined.
05:54:34 -!- cheater99 has quit (Ping timeout: 252 seconds).
06:58:41 -!- zzo38 has joined.
06:58:48 <zzo38> Please read this Article III: http://www.fftw.org/y2k.html
07:13:38 -!- cheater- has joined.
07:13:38 -!- cheater00 has quit (Ping timeout: 240 seconds).
07:24:20 -!- relet has quit (Quit: Leaving.).
07:29:26 -!- zzo38 has quit (Remote host closed the connection).
07:39:17 <fizzie> Twasn't me.
07:41:01 -!- relet has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:46 -!- FireFly has joined.
08:36:55 -!- FireFly has quit (Quit: swatted to death).
09:25:18 -!- Flonk has joined.
10:41:25 -!- tombom has joined.
11:06:47 -!- GreaseMonkey has quit (Remote host closed the connection).
11:21:02 -!- augur has quit (Remote host closed the connection).
11:26:22 -!- Flonk has quit (Remote host closed the connection).
12:16:49 -!- tombom has quit (Ping timeout: 272 seconds).
13:06:39 -!- Phantom_Hoover has joined.
13:17:33 <Phantom_Hoover> http://en.wikipedia.org/wiki/Wikipedia:Terminal_Event_Management_Policy
13:24:56 <fizzie> I like the level 1 warning template.
13:25:18 -!- sftp has joined.
13:25:28 -!- distant_figure has quit (Ping timeout: 260 seconds).
13:28:36 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
13:54:34 -!- distant_figure has joined.
14:38:19 -!- alise has joined.
14:44:41 -!- relet has quit (Quit: Leaving.).
15:01:01 -!- derdon has joined.
15:03:00 -!- Phantom_Hoover has joined.
15:03:20 <Phantom_Hoover> fizzie, I like level 1 as well.
15:06:25 -!- Phantom_Hoover_ has joined.
15:08:10 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
15:09:53 -!- FireFly has joined.
15:10:13 * Phantom_Hoover_ ponders why GHCi doesn't allow the definition of types
15:15:53 <Phantom_Hoover_> And how Coq does implicit parameters.
15:17:56 <alise> Phantom_Hoover_: because ghci executes in a do block
15:18:03 <alise> same reason you have to proceed functions with "let"
15:18:06 <alise> also, cleverly.
15:18:12 <alise> Vorpal: brödrost
15:18:14 <Phantom_Hoover_> With forall?
15:18:49 <alise> Phantom_Hoover_: ??
15:18:53 <alise> what has forall got to do with it?
15:19:05 <alise> (all function arrows A->B are really just "forall (_:A), B" but you know that)
15:19:13 <Phantom_Hoover_> A misconception, obviously.
15:19:18 <fizzie> BRÖDROST sounds somehow heavy-metallish. (Also I'm reminded of a nice absurdist comic, but it's very Finnish-only, so the point might be lost.)
15:20:07 <Phantom_Hoover_> alise, ah, so how do they work?
15:20:25 <alise> Phantom_Hoover_: you didn't know that?
15:20:27 <alise> h
15:20:28 <alise> oh
15:20:31 <alise> i see
15:20:33 <alise> Phantom_Hoover_: cleverly.
15:20:40 <Phantom_Hoover_> alise, not too helpful...
15:20:42 <alise> fizzie: It means "toaster".
15:20:57 <Phantom_Hoover_> That is the best name for a heavy metal band ever.
15:21:04 <fizzie> alise: I know, but it *ought* to mean church-burning or something.
15:21:09 <alise> Phantom_Hoover_: an implicit parameter is filled in when its value is obvious from the types of the others, or something approximating that anyway
15:21:31 <Phantom_Hoover_> alise, so it just does it automatically?
15:21:33 <alise> you can use an implicit parameter on the argument specifying a type or component of a type of another argument, usually
15:21:46 <alise> Phantom_Hoover_: well, in declarations you can do {x:...} to make it implicit
15:21:53 <alise> normally it just sort of tries to make everything it can implicit, yes
15:21:53 <alise> however
15:21:55 <alise> you can also do
15:22:02 <alise> Set Implicit Arguments functionOrDataType [arg arg arg].
15:22:15 <alise> ({x:...} rather than (x:...))
15:41:28 -!- cpressey has joined.
15:44:22 -!- MigoMipo has joined.
15:51:05 -!- mr45 has joined.
15:54:13 <Vorpal> hi
15:54:20 <Vorpal> alise, what about brödrost?
15:54:52 <Vorpal> alise, I mean, it seems completely non-sequitur...
15:55:08 <Phantom_Hoover_> `swedish Phantom
15:55:19 <HackEgo> Phuntum
15:55:32 <Phantom_Hoover_> `swedish bread
15:55:35 <HackEgo> breed
15:55:47 <Phantom_Hoover_> `translate en se Phantom
15:55:50 <HackEgo> en se Phantom
15:55:51 <Vorpal> alise, or did you ask me for a translation? In that case it means "toaster" (literal translation: bread toaster)
15:56:15 <Vorpal> hm
15:56:40 -!- Phantom_Hoover_ has changed nick to Phantom_Brodrost.
15:56:58 <Vorpal> brod is not a Swedish word afaik
16:01:05 <cpressey> `swedish Mighty Morphin' Power Rangers
16:01:07 <HackEgo> Meeghty Murpheen' Pooer Rungers
16:01:22 <Phantom_Brodrost> !swedish Mighty Morphin' Power Rangers
16:01:28 <EgoBot> Meeghty Murpheen' Pooer Rungers
16:11:29 <fizzie> Vorpal: He already said it means toaster, so I doubt it was about translation.
16:11:56 <fizzie> (Don't have any clue what it *was* about.)
16:12:00 <fizzie> (Away.)
16:13:36 <Vorpal> fizzie, right
16:16:42 -!- cpressey has left (?).
16:17:32 -!- MigoMipo has quit (Remote host closed the connection).
16:18:03 -!- MigoMipo has joined.
16:20:08 -!- cpressey has joined.
16:23:27 -!- Phantom_Brodrost has quit (Ping timeout: 245 seconds).
16:23:54 -!- Phantom_Brodrost has joined.
16:26:30 <Phantom_Brodrost> I seriously want to murder whoever pulled the plug on Geocities.
16:29:51 <Phantom_Brodrost> I would murder cpressey for playing hopscotch with Cat's Eye, but he's too lovable.
16:31:00 <cpressey> -_-
16:37:06 -!- comex has quit (Ping timeout: 265 seconds).
16:38:32 <cpressey> Oh, I have a theory. While terminals display block letters, files contain cursive. I say this because it's always "print" to put stuff on the screen and "write" to put stuff in a file.
16:39:04 <coppro> hah
16:56:45 -!- comex has joined.
17:10:42 -!- derdon has quit (Remote host closed the connection).
17:27:07 -!- augur has joined.
17:28:05 <alise> back
17:28:16 <alise> <Phantom_Brodrost> I would murder cpressey for playing hopscotch with Cat's Eye, but he's too lovable.
17:28:16 <alise> <cpressey> -_-
17:28:19 <alise> we actually have a template for your site
17:28:23 <alise> {{catseye|path}}
17:28:34 <alise> because it moves so much
17:29:04 <alise> Phantom_Brodrost: try s/g/r/ in the url, btw
17:29:07 <alise> you may be lucky
17:29:32 <Phantom_Brodrost> alise, it's been fixed at catseye.tc for a while now.
17:29:45 <alise> yes, but iirc there were a bunch of broken links to the old site on the wiki
17:29:53 <alise> so we just replaced every catseye link with a template
17:29:55 <alise> and set it to catseye.tc
17:30:08 <alise> http://esolangs.org/wiki/Template:Catseye
17:30:14 <alise> http://esolangs.org/w/index.php?title=Template:Catseye&action=edit
17:31:38 <Phantom_Brodrost> Heh.
17:31:56 <alise> cpressey: have you seen PicoLisp? it's an interesting very-small, very-fast Lisp dialect interpreter
17:32:00 <alise> http://picolisp.com/5000/-2.html
17:32:20 <alise> some interesting choices, like 'a -> (quote . a), '(a b) -> (quote a b)
17:32:22 <alise> (explained in http://picolisp.com/5000/-2-3.html)
17:32:45 <alise> they base more or less everything on the cell
17:32:55 <alise> which is basically a cons with a few predefined car/cdr types
17:32:57 <alise> iirc:
17:33:13 <alise> cell := ((int | symbol | cell), (int | symbol | cell))
17:33:24 <alise> the 32-bit one is written in C, 64-bit in asm
17:33:38 <alise> (except it seems to be some assembler written in PicoLisp; it appears to have if/then/else
17:33:40 <alise> *else)
17:33:50 <alise> interesting representation of NIL: http://picolisp.com/5000/-2-M.html
17:33:54 <alise> "This structure has great advantages. Any proper list (ending with 'NIL') becomes sort of "infinite", allowing to take the CDR as often as possible and still obtain 'NIL' again and again.
17:33:54 <alise> Therefore, a function doesn't need to check whether it actually received an argument or not. It can simply take the next argument with CDR from the argument list, and doesn't see any difference between '(foo NIL)' and '(foo)'. This makes interpretation both simpler and faster."
17:33:59 <alise> they make it both a symbol and a cons
17:34:56 <cpressey> that sounds vaguely familiar
17:35:01 <cpressey> i wanted to do that with... something
17:35:06 <alise> it gets linked a bit (PicoLisp)
17:35:17 <alise> but yeah, the language itself is interesting! reading the wiki is fun
17:36:05 <alise> cpressey: they have no lambda
17:36:07 <alise> they use quote
17:36:09 <alise> '((x) x)
17:36:13 <alise> -> (quote (x) x)
17:36:30 <alise> I think this probably means they use dynamic scope, but I don't care, it's fun
17:36:36 <alise> yes
17:36:39 <alise> "Why do you use dynamic variable binding?"
17:36:43 <alise> http://software-lab.de/doc/faq.html#dynamic
17:37:44 <alise> "You mean the funarg problem, or problems that arise when a variable might be bound to itself? For that reason we have a convention in PicoLisp to use transient symbols (instead of internal symbols) ..."
17:37:47 <alise> huh
17:37:51 <alise> well, it's certainly interesting
17:42:09 <cpressey> Quylthylg has an extra argument to car and cdr which specifies what to return if you try to use them on a nil. Passing nil as that argument would be similar to that behaviour.
17:42:16 <cpressey> Well, would be that behaviour, actually.
17:43:02 <cpressey> But yes, PicoLisp looks quite interesting in its way.
17:43:09 <alise> heh, they have no strings, they just use transient symbols
17:43:16 <alise> Because PicoLisp has something better: Transient symbols. They look and behave like strings in any respect, but are nevertheless true symbols, with a value cell and a property list.
17:43:16 <alise> This leads to interesting opportunities. The value cell, for example, can point to other data that represent the string's the translation. This is used extensively for localization. When a program calls
17:43:16 <alise> (prinl "Good morning!")
17:43:16 <alise> then changing the value of the symbol "Good morning!" to its translation will change the program's output at runtime.
17:43:40 <alise> [[Transient symbols are also quite memory-conservative. As they are stored in normal heap cells, no additional overhead for memory management is induced. The cell holds the symbol's value in its CDR, and the tail in its CAR. If the string is not longer than 7 bytes, it fits (on the 64-bit version) completely into the tail, and a single cell suffices. Up to 15 bytes take up two cells, 23 bytes three etc., so that long strings are not very efficient (needing
17:43:40 <alise> twice the memory on the avarage), but this disadvantage is made up by simplicity and uniformity. And lots of extremely long strings are not the common case, as they are split up anyway during processing, and stored as plain byte sequences in external files and databases.]]
17:43:51 <alise> <alise> then changing the value of the symbol "Good morning!" to its translation will change the program's output at runtime. ;; this is just the greatest, most insane thing i've heard today
17:44:23 <alise> [[In an interactive environment (console), transient symbols should appear as an underlined sequence of characters. Where this is not possible (e.g. for representation in files), or inconvenient (while editing), double quotes '"' are used instead of underlining.]] ;; huh
17:46:06 <Vorpal> alise, PicoLisp? Hm? What makes it stand out from other LISPs?
17:46:21 <alise> Vorpal: *Lisps; and read everything I've said (plus the wiki).
17:46:28 <Vorpal> alise, tl;dr
17:46:42 <alise> Well, that is not my problem.
17:50:53 <alise> cpressey: Their symbols appear to be constructed as '(value . name)/
17:50:58 <alise> *. name).
17:51:06 <alise> Well, with some property list stuff on the side, I guess.
17:52:21 <alise> [[For the third rule, however, things get a bit more involved. First - as a special case - if the CAR of the list is a number, the whole list is returned as it is:]] That is a bit gross though.
17:52:48 <alise> "When a number is used as a function, it is simply taken as a pointer to executable code that will be called with the list of (unevaluated) arguments as its single parameter. It is up to that code to evaluate the arguments, or not. Some functions do not evaluate their arguments (e.g. quote) or evaluate only some of their arguments (e.g. setq)."
17:53:05 <alise> It's like Forth! Except LISP!
17:53:15 <alise> (That was shouting Lisp, not miscapitalising it.)
17:53:38 <alise> Inspecting the VAL of *, however, gives
17:53:38 <alise> : * # Get the VAL of the symbol '*'
17:53:38 <alise> -> 67291944
17:53:41 <alise> That's actually quite cool.
17:54:23 <cpressey> Now you are shouting for Val, but she's not here!
17:55:36 <alise> That was a quote :P
17:55:59 <alise> Besides, as a typographical matter, Lisp function names may be capitalised (when you can't distinguish them in some other way, e.g. monospaced text).
17:56:02 <cpressey> And mine was a joke. I unfortunately don't have the time to read about and play with PicoLisp either.
17:56:12 <alise> Which leads to fun things like saying CALL-WITH-CURRENT-CONTINUATION.
17:56:20 <alise> CALL WITH IT, DAMMIT!!
17:56:48 <alise> Cool, the REPL actually matches parens and does the "foo" -> underline{foo} thing as you type.
17:57:02 <alise> : sdgkopegjser09jt
17:57:02 <alise> -> NIL
17:57:02 <alise> Hmm.
17:58:42 <alise> ? (car '*)
17:58:43 <alise> -> 67319368
17:58:43 <alise> ? (cdr '*)
17:58:43 <alise> !? (cdr '*)
17:58:43 <alise> * -- List expected
17:58:58 <alise> I guess they only typecheck when they really have to :)
18:01:12 <alise> cpressey: Do you know anything about the performance of x86 instructions?
18:02:32 <fizzie> I don't know much about that, but what little I know leads me to suggest that you can't say anything (or at least not much) about "x86 instructions" in a general sense, without talking about a single specific processor model.
18:02:35 <Vorpal> alise, I can help a bit
18:02:37 <Vorpal> I think
18:03:43 <fizzie> Gone are the days you could cycle-count anything, anyway. It's all about what sort of units happen to be free for scheduling, and memory-access times are pretty much random.
18:04:00 <Vorpal> alise, AMD and Intel both have tables over number of cycles per instructions in their modern architectures. As downloadable PDFs. However that is of course not the whole story, there is cache, wb/wc/uc, TLB misses and so on
18:04:08 <alise> Well, my question is: are the push-and-popping stack instructions faster than Just Doing It Yourself?
18:04:19 <Vorpal> alise, the AMD docs indicate which ones are done in microcode iirc
18:04:27 <Vorpal> and also how it stalls stuff
18:04:43 <Vorpal> not sure if intel docs do
18:04:50 <Vorpal> alise, that depends on which CPU
18:04:52 <Vorpal> iirc
18:05:08 <alise> Vorpal: They could be slower? Or merely equal?
18:05:10 <Vorpal> alise, on many CPUs just setting the stack pointer at the start of a function and then using mov is faster
18:05:19 <Vorpal> many modern ones that is
18:05:35 <Vorpal> alise, due to instruction dependencies iirc
18:05:43 <Vorpal> on %rsp
18:05:44 <fizzie> Push and pop at least save in code size, and it would be a bit surprising if they were much slower than the equivalent manual "decrement and store/load and increment" pair.
18:05:58 <alise> Vorpal: well, I'd be setting the stack pointer to something manifestly not the usual stack in this case
18:06:11 <Vorpal> alise, hm? How do you mean
18:06:13 <alise> hmm, are there variants of push and pop which also take the stack? i suppose not
18:06:32 <alise> I guess saving the stack pointer, setting the stack pointer, doing push (or pop), then restoring the stack pointer is slower than the manual way, though.
18:06:38 <alise> (Just one operation.)
18:06:46 <alise> So it may be a good idea to use it for the main stack but manually handle the return stack.
18:07:37 <Vorpal> alise, anyway for the usual "common C function not using alloca or VLA" it is on modern cpus generally faster to increment %rsp by whatever amount you need, then use mov to put things on the stack relative that pointer
18:07:44 <alise> no C
18:07:51 -!- relet has joined.
18:07:53 <Vorpal> alise, well, this could apply to other languages too
18:08:07 <Vorpal> alise, any compiled ones where you know the size of your stack frame at entry
18:08:12 <alise> Vorpal: basically, this thing is going to execute a ludicrous amounts of pushes and pops per second.
18:08:13 <alise> it being forth
18:08:34 <Vorpal> alise, hm... You could probably optimise the code?
18:08:50 <alise> What?
18:09:01 <alise> Forth is a stack language. Its whole operation is based on pushing and popping.
18:09:02 <Vorpal> alise, an optimising forth compiler. Yes I know this is not the usual way to do it
18:09:09 <alise> I am merely asking whether these are faster than using mov manually.
18:09:16 <alise> I don't need implementation tips...
18:09:16 <Vorpal> but you could make one that tries to convert it to using registers and such
18:09:30 <alise> an optimising Forth compiler goes against the spirit of Forth, anyway
18:09:35 <alise> your code shouldn't be wasting time in the first place
18:09:36 <Vorpal> alise, anyway: several pushes after each other will all update %rsp/%esp.
18:09:46 <Vorpal> alise, that means they can't be executed out of order
18:09:58 <Vorpal> same goes for pop
18:10:00 <alise> well, it won't be several pushes immediately
18:10:03 <Vorpal> and mixed series of push/pop
18:10:13 <alise> it'll be push, push, ..., pop, push, push, ...
18:10:21 <alise> ... being e.g. a jmp or two
18:10:22 <alise> well
18:10:25 <alise> a jmp and incrementing something
18:10:26 <alise> or whatever
18:10:44 <Vorpal> alise, better to, if possible, update %rsp once when entering the function, then use mov using %rsp for indirection
18:11:52 <alise> the mass migration of Digg users to reddit started a few days before September began in the incorrect (post-09/1993) calendar
18:11:55 <alise> coincidence? I think not.
18:12:07 <Vorpal> alise, this applies to modern CPUs. Not sure where exactly it becomes more efficient. But it push/pop would most likely be better on a i486. And update-once-and-mov would definitely be better on P4 and later.
18:12:14 <Vorpal> in between... I don't know
18:12:35 <alise> Vorpal: this is between mov, inc, mov, inc and push
18:12:38 <alise> (same for pop)
18:13:04 <alise> Vorpal: ok, what about "save stack pointer, set the stack pointer to something else, (1 push or pop), restore the stack pointer"?
18:13:09 <Vorpal> alise, hm, why could you not merge does movs into an add, then do relative addressing
18:13:09 <fizzie> If you're going to do exactly the pushing operation ("decrement a register, move a word to where it points"), my guess is it'll be better to push than sub 4 + mov, if you can keep the thing in rsp; but possibly not if it's in some other register. (Though I'm not completely certain about that: it's possible register-renaming trickery could make xchg+push+xchg pretty fast.)
18:13:11 <alise> that's gotta be slower than a mov-based incantation right?
18:13:30 <Vorpal> alise, like >+>>++> would be optimised in any decent BF compiler
18:13:34 <Vorpal> by just moving once
18:13:43 <alise> Vorpal: as i said, the fight is between precisely those options i listed
18:13:44 <Vorpal> and then using an offset to the current position as needed
18:14:06 <Vorpal> alise, then I suspect push/pop is somewhat less bad.
18:14:12 <alise> fizzie: Specifically, the swap-the-stack-for-one-instruction thing would be when running r> and >r, which pop or push one value from/to the return stack from/to the main stack.
18:14:12 <Vorpal> alise, but try both and profile!
18:14:17 <alise> Vorpal: no.
18:14:25 <Vorpal> alise, ... what?
18:14:33 <alise> fizzie: So it would be "pop, xchg, push, xchg" or "xchg, pop, xchg, push"
18:15:48 <fizzie> Well, that sounds somewhat reasonable.
18:16:06 <Vorpal> alise, what exactly is wrong with combining several updates to the stack pointer and then use offsets relative where it points?
18:16:07 <Vorpal> just wondering
18:16:28 <alise> fizzie: That is, vs "pop, inc, mov" or "mov, dec, push".
18:16:39 <alise> Respectively.
18:16:52 <Vorpal> alise, remember on x86_64 you may put temp data in a 128 byte region beyond the stack pointer. Any signal handler or such won't overwrite that. Specified in the ABI
18:17:03 <Vorpal> useful for leaf functions to avoid updating stack pointer at all
18:18:11 <fizzie> alise: "push" is not "inc, mov", it grows the other direction. But anyway. Really, you *could* consider benchmarking this stuff; after you get it working, it's a small snippet to change and run your benchmarks.
18:18:27 <Vorpal> fizzie, indeed
18:18:43 <Vorpal> fizzie, but he refused to do proper measurements above: "<alise> Vorpal: no."
18:18:54 <alise> Vorpal: That was just to upset you, though.
18:19:10 <Vorpal> alise, no, it was just stupidity on your side. I'm sure of it.
18:19:13 <alise> fizzie: Er, right, you know what I mean with the alternative.
18:19:34 <alise> Vorpal: You /do/ realise that I've only been actually listening and talking to fizzie this whole time?
18:20:04 <Vorpal> alise, strange you highlighted me several times then.
18:20:21 <Vorpal> alise, but sure. Be a jerk if that is what you like
18:20:23 <alise> Vorpal: Yes; to annoy you.
18:20:56 <Vorpal> troll
18:21:08 <alise> Indeed. Perhaps you'll ignore me now?
18:21:43 <Vorpal> alise, no. That would be what you want.
18:22:01 <alise> haha
18:22:31 <Vorpal> alise, however I will remember to never try to be helpful when you ask a question again.
18:23:40 <fizzie> As far as code size is concerned, it's a very slight win. "pop, xchg, push, xchg" is 2+1+2+1=6 bytes (or 1+1+1+1=4 if your other stack is in rax, but that doesn't sound feasible) while "pop, sub 4, mov [rx]" is 1+3+3=7 bytes, or 1+3+4=8 if your other stack is in rbp.
18:24:15 <alise> fizzie: Yeah; I think I will go with the xchg.
18:24:19 <alise> Especially since there's operations like rswap.
18:24:41 <alise> Actually, you can swap the top two values of a stack without popping them.
18:24:44 <alise> So that will not actually be any longer.
18:25:13 <fizzie> If your other stack is in rsi and you keep the direction flag set properly, you can use lodsq as a single-byte-instruction pop (but push will still be longer).
18:25:45 <alise> I think I'll stick to regular stacks.
18:26:15 <alise> xchging the top two values of a stack will be faster than popping and pushing twice, I assume :P
18:26:54 <fizzie> I'm not sure about that, because xchg against memory will do LOCK automatically even if you don't put the LOCK prefix in.
18:27:32 <fizzie> But of course you don't need to pop, pop, push, push since the stack pointer won't move, just mov things around, possibly with some offsets.
18:28:00 <fizzie> (Oh, and the lodsq fake-"pop" can only pop into rax.)
18:28:37 <alise> True, it's just moving.
18:28:52 <fizzie> (On something like ARM, all your stack pointers would be general-purpose registers and you'd have pre/post-increment/decrement addressing with any register you want.)
18:30:01 <fizzie> (And on a more austere RISC, you'd just have load/store and separate add/sub, and no nonsense about one-register-only pushing.)
18:32:37 -!- Phantom_Brodrost has quit (Ping timeout: 265 seconds).
18:34:47 -!- choochter has quit (Ping timeout: 258 seconds).
18:36:14 <fizzie> Gads, x86 instructions are ridiculous. XLATB: does "mov al, [rbx+al]" (hypothetical, since you could normally only [rbx+rax], but anyway) -- "This instruction is often used to translate data from one format (such as ASCII) to another (such as EBCDIC)." Yeah, I do asm-optimized ascii-ebcdic translation all the time. (I wonder if gcc can generate xlat for "unsigned char x, i, *p; x = p[i];" sort of code.)
18:37:45 <alise> xD
18:39:36 -!- Phantom_Brodrost has joined.
18:40:09 <fizzie> Anyway, guesstimating performance with a speculative-execution register-renaming superscalar thing is probably something that makes any statemets very context-sensitive ("if you have A, B, C and D, option 1 will be faster; ..."). I couldn't find out late numbers, but apparently already the P4 had 128 general-purpose registers it could use for register-renaming, and my guess is that a reg-reg xchg would be done by that machinery.
18:41:52 <alise> Silly name for a Lisp: Lips
18:42:47 <fizzie> Lots of punny names possible for related paraphernalia, I guess.
18:43:12 <alise> Ooh, or Slip.
18:44:22 <alise> Does anyone know if there are any well-written single-file bignum things?
18:44:26 <alise> GMP is just a bit too big for me to be happy
18:44:28 <alise> *happy.
18:46:26 <fizzie> I have the worst bignum implementation ever. but it's single-file! (I got sidetracked on a C programming course "calculate character histogram" home exercise, and wrote one with a bignum lib and multibyte character support.)
18:46:59 <alise> What license? :-P
18:47:22 <fizzie> I'm trying to find it, but you really don't want to use it. :p
18:47:32 <alise> fizzie: No, but I might want to modify it and use it.
18:47:41 <alise> Hmm, maybe I can store every number just as a pair of bignums and call it a rational.
18:47:52 <alise> (That is, a not-necessarily-reduced rational.)
18:47:58 -!- derdon has joined.
18:49:15 <fizzie> I'm not so sure you even want to use that as a base; it's pretty simple to make a integer bignum thing which uses an array of unsigned ints as the storage format.
18:49:30 <fizzie> I can't recall what the course code was, or what year I did it.
18:50:47 <fizzie> Someone's eaten my bignums.
18:51:04 <Phantom_Brodrost> All of them?
18:51:17 <alise> fizzie: But exponentation and the like!
18:51:20 <alise> *exponentiation
18:51:34 <alise> Is... impossible! Or,
18:51:36 <alise> I am lazy!
18:51:48 <alise> Say, I wonder what algorithms people use to approximate sqrt() on rationals.
18:52:06 <fizzie> Yes, well, I doubt I have any non-trivial algorithms in the file, if I can find it. No FFT-based multiplications for me there.
18:52:23 <alise> Meh. Who needs bignums rihgt now?
18:52:40 <alise> Why do property lists exist?
18:53:03 <Phantom_Brodrost> alise, presumably the same algorithms as for naturals.
18:53:17 <alise> Phantom_Brodrost: ...For sqrt()?
18:53:29 <alise> sqrt(2) = 1!
18:54:01 <Phantom_Brodrost> alise, huh?
18:54:16 <Phantom_Brodrost> OK, naturals -> rationals.
18:54:18 <alise> Phantom_Brodrost: I'm asking what algorithm people use to calculate approximate_sqrt : Q -> Q.
18:55:01 <Phantom_Brodrost> Well, ignoring complexes, approx_sqrt : N → Q on numerator and denominator...
18:55:18 <alise> Indeed.
18:55:23 <alise> And what of that algorithm?
18:56:38 <Phantom_Brodrost> Well, how is it done normally?
18:56:45 <alise> That is my question! Sheesh.
18:56:53 <cpressey> alise, fizzie: re performance of x86 instructions: omg yes, with pipelines and prefetching and the cache hierarchy, you just kind of ... guess.
18:57:55 <alise> Let's see, a symbol is a name and a value.
18:57:58 <fizzie> Paul Zimmermann, “Karatsuba Square Root”, INRIA Research Report 3805, November 1999, http://hal.inria.fr/docs/00/07/28/54/PDF/RR-3805.pdf
18:57:58 <alise> Hmm.
18:58:07 <alise> I'm basically writing PicoLisp: The Ripoff here.
18:58:13 <fizzie> (It's yet another of those FFT-based algorithms.)
18:58:23 <alise> fizzie: no thx
18:58:51 <fizzie> Or maybe not, actually.
18:59:14 <Phantom_Brodrost> alise, for nats?
18:59:25 <Vorpal> <fizzie> Anyway, guesstimating performance with a speculative-execution register-renaming superscalar thing is probably something that makes any statemets very context-sensitive ("if you have A, B, C and D, option 1 will be faster; ..."). I couldn't find out late numbers, but apparently already the P4 had 128 general-purpose registers it could use for register-renaming, and my guess is that a reg-reg xc
18:59:25 <Vorpal> hg would be done by that machinery. <-- Hm... And still the AMD64 instruction set doesn't expose nearly as many
18:59:27 <Vorpal> how sad
18:59:28 <alise> Phantom_Brodrost: Yes.
18:59:29 <cpressey> The thing that gets me about optimizing generated machine code in the modern world is, really, how do you *know* your code is faster? A benchmark? Yeah, those're realistic. :/
18:59:29 <Phantom_Brodrost> http://en.wikipedia.org/wiki/Methods_of_computing_square_roots
19:00:27 <Vorpal> fizzie, I suspect having 64 out of 128 programmer visible GPR would be a way better trade-off than the small number that x86_64 has
19:00:51 <alise> Oho, that's clever. In PicoLisp, a symbol's address is actually one after its name.
19:01:01 <alise> (So **sym dereferences it.)
19:01:09 <alise> (Since the value comes after the name.)
19:03:10 <Vorpal> cpressey, hm yes... higher level optimisations are probably more useful in general for a compiler. Still there are some things you can do at that low level. And both AMD and Intel have optimisation guides aimed at compiler writers.
19:03:28 <fizzie> There's the very famous and very clever Quake "1/sqrt(x)" approximation, but that's decidedly floating-point: float invsqrt(float x) { float xh = 0.5f * x; int i = *(int*)&x; i = 0x5f3759d5 - (i >> 1); x = *(float*)&i; return x*(1.5f - xhalf*x*x); }
19:03:41 <fizzie> It's also a bit on the non-obvious side.
19:04:16 <alise> fizzie: Yes, I sort of don't want floating point.
19:04:32 -!- choochter has joined.
19:05:51 <Vorpal> fizzie, I think SSEn for some n>=2 has some instruction for inverse of square root
19:06:07 <Vorpal> err
19:06:16 <Vorpal> that was mixing up Swedish name for the operation
19:06:18 <Vorpal> with the English
19:07:44 <Vorpal> reciprocal is the English word, invers is used in Swedish.
19:07:53 <alise> inverse square root is also used in English
19:07:58 <alise> see, e.g. what fizzie just quoted
19:08:01 <alise> (The Quake code.)
19:08:05 <fizzie> RSQRT[PS]S; reciprocal square root packed/scalar single-precision floating-point.
19:08:44 <fizzie> SSE dropped the trigonometrics, though; I wonder how they do sin(x) nowadays.
19:08:46 <Vorpal> alise, yes but inverse makes me think of f⁻¹
19:09:03 <alise> Then "inverse square root" would be stupid.
19:09:06 <alise> It being "square".
19:09:11 <Vorpal> alise, exactly!
19:09:22 <alise> But that isn't what it is used to mean.
19:10:01 <Vorpal> alise, well "inverse function" for most other things mean that
19:10:24 <alise> I don't think anyone actually says "inverse f" for f^-1.
19:10:27 <alise> f's inverse, maybe.
19:10:27 <Vorpal> alise, so it is kind of ambiguous
19:10:37 <alise> does anybody say "inverse cos" :)
19:10:46 <Vorpal> alise, no you say arccos
19:10:52 <Vorpal> but only because it has a damn silly name
19:11:12 <fizzie> "inverse *of* square root" does sound a bit like ^2 though.
19:11:16 <alise> arccos sounds pretty hard to pronounce; I'd go with acos.
19:11:24 <alise> If you're expanding, might as well say "arc cosine".
19:11:24 <Vorpal> fizzie, indeed.
19:11:30 <alise> fizzie: But not inverse square root.
19:11:45 <Vorpal> alise, arc expands to arcus or something like that iirc
19:11:59 <Vorpal> alise, so arcus cosine probably?
19:13:39 <fizzie> Finnish way to read arcsin and arccos out loud is as compound words, "arkussini" and "arkuskosini".
19:14:24 <alise> So we can store 4 bytes of a name per word on x86, 8 bytes on x86-64.
19:14:24 <fizzie> And the Finnish name for reciprocal is again very elegant and beatiful: "käänteisluku". (Lit. "inverse number", compare "käänteisfunktio" -- "inverse function" for the other sort of inverse.)
19:14:27 <Vorpal> fizzie, similar for Swedish
19:14:32 <alise> I wonder how PicoLisp handles longer names.
19:14:43 <Vorpal> alise, what is a word on x86-64 then?
19:14:46 <alise> fizzie: Are you being sarcastic? Because Finnish /is/ awesome.
19:14:49 <alise> Vorpal: 8 bytes.
19:14:56 <Vorpal> alise, AMD and Intel disagrees
19:15:07 <alise> Yes, well, they're stupid and should die.
19:15:29 <Vorpal> alise, great, then we would all run ARM, PPC or SPARC I guess
19:15:31 <Vorpal> excellent idea!
19:15:39 <alise> Sure, I would go for that.
19:15:54 <Vorpal> sadly PPC is dead
19:16:09 <Vorpal> and I'm not sure Cell and similar makes such a good general purpose *desktop* CPU
19:16:09 <alise> Gah; is there a variation on Emacs' SERVER-START that doesn't start if there's already a server running?
19:16:16 <alise> A SERVER-IS-RUNNING-P, or the like.
19:16:19 <Vorpal> sure, awesome at the stuff it is meant for
19:16:24 <alise> Vorpal: PPC wouldn't be dead if AMD and Intel were dead.
19:16:38 <alise> Besides, nothing wrong with SPARC.
19:16:39 <Vorpal> alise, well, true, but it is a bit too late now
19:16:48 <Vorpal> alise, did I say there was something wrong with SPARC?
19:16:53 <alise> Nope.
19:16:56 <alise> Just saying that we could use SPARC.
19:16:58 <Vorpal> the register window stuff is cool
19:17:08 <Vorpal> alise, ALPHA if it wasn't dead
19:17:10 <alise> There are open-source implementations, too.
19:17:18 <Vorpal> alise, yeah that is cool
19:17:32 <fizzie> ARM's Cortex-A9 does quad-core 2GHz thing; it sounds like it might even be reasonable amount of power in a desktoppy environment.
19:17:59 <alise> fizzie: Perhaps...
19:18:16 <alise> Apple's (not actually Apple's; I forget who designed it) A4 isn't too shabby either.
19:18:26 <Vorpal> fizzie, GHz isn't everything
19:18:33 <alise> That's 1 GHz and single-core, but still.
19:18:42 <Vorpal> fizzie, pipeline? out of order? super scalar? and so on...
19:18:48 <alise> Vorpal: Smarter code.
19:18:52 <Vorpal> and efficient ISA of course
19:18:54 <Vorpal> alise, that too
19:19:03 <alise> Vorpal: ...is the programmer's job.
19:19:17 <alise> Besides, most CPU power goes unused these days.
19:19:28 <alise> Or worse, wasted.
19:19:46 <Vorpal> alise, but I mean, a 10 GHz bf CPU would probably be way less efficient than a 2 GHz x86-64 for almost everything
19:20:01 <alise> But way cooler, too.
19:20:16 <Vorpal> alise, well yes, but that isn't what most people buying a CPU wants
19:20:26 <alise> Are you absolutely sure about that?
19:20:37 <fizzie> It is superscalar, I don't know very much of the other details. ARM's specs page has a DMIPS ("Dhrystone MIPS") performance value, but I don't know how those compare to intels.
19:20:51 <Vorpal> alise, either that or they define cool definitely than we in this channel do
19:21:04 <Vorpal> s/definitely/differently/
19:21:05 <alise> *differently
19:21:06 <Vorpal> weird typio
19:21:07 <Vorpal> typo*
19:21:15 <alise> fizzie: Let's just compare BogoMIPS!
19:21:28 <fizzie> Anyway, at 10000 DMIPS and 2 GHz, it consumes a whopping 1.9 watts of power.
19:21:59 <alise> ByteByteJump is so cool.
19:21:59 <alise> uint8_t mem[MEMSIZE];
19:22:00 <alise> uint32_t *pc = (uint32_t *)mem;
19:22:00 <alise> for(;;) {
19:22:00 <alise> mem[pc[1]] = mem[pc[0]];
19:22:00 <alise> pc = (uint32_t *)(mem + pc[2]);
19:22:02 <alise> }
19:22:16 <alise> (Needs memory-mapped IO and a way to halt, but still, sweet.)
19:22:19 <alise> fizzie: Oh?
19:22:20 <Vorpal> fizzie, that is still way less than a P4. Probably way less than a core 2 duo too
19:22:23 <alise> fizzie: Just slap two of them together then.
19:22:34 <cpressey> brain
19:22:43 <alise> cpressey: brian
19:22:57 <alise> Vorpal: Really? Are you sure?
19:23:02 <alise> Have you RUN Dhrystone on them?
19:23:06 <Vorpal> alise, no. It's a guesstimate
19:23:11 <Vorpal> alise, about those 1.9 W
19:23:17 <alise> Oh, the temperature.
19:23:19 <alise> Well, of course.
19:23:23 <alise> Erm.
19:23:24 <Vorpal> alise, err not temp. Power usage
19:23:25 <alise> About the wattage.
19:23:29 <alise> Yes, they're closer to 60-100W.
19:23:58 <fizzie> Vorpal: On the other hand, you can't use it to multitask as your sauna stove.
19:24:01 <alise> "Avoid using brk() and sbrk(): the malloc(3) memory allocation package
19:24:01 <alise> is the portable and comfortable way of allocating memory."
19:24:02 <alise> Hmph.
19:24:22 <fizzie> Core i7 Gulftown models have a TDP of 130W.
19:24:25 <Vorpal> alise, well. My thinkpad when both cores are fully loaded (with SSE heavy code) uses like 25-27 W iirc.
19:24:27 -!- Wamanuz2 has joined.
19:24:29 <alise> fizzie: I meant the reasonable CPUs. :P
19:24:35 <Vorpal> alise, still quite a bit
19:24:51 <alise> fizzie: How much does one of those lovely ARMs cost?
19:24:53 <Vorpal> alise, though that includes stuff like monitor and memory and so on
19:24:58 <Vorpal> alise, not just the CPU
19:25:01 <alise> You could have 100 of them and use the same power. :)
19:25:05 <cpressey> alise: malloc is "comfortable".
19:25:06 <Vorpal> alise, when idle it is way less
19:25:09 <alise> cpressey: yeah XD
19:25:10 -!- kar8nga has joined.
19:25:12 <Vorpal> alise, like, 8-9 W
19:25:14 <alise> fizzie: Actually, isn't there some big ARM computer that consists of a fuckton of them?
19:25:22 <Vorpal> alise, on half-bright screen
19:25:37 <Vorpal> alise, still it of course includes more than just CPU,
19:25:38 -!- Wamanuz has quit (Ping timeout: 276 seconds).
19:25:46 <alise> sbrk() doesn't work well when there's memory in the way, right?
19:25:51 <alise> i.e. it won't do realloc's move-shop stuff.
19:26:01 <Phantom_Brodrost> cpressey, random question: how would you pronounce "#"?
19:26:26 <cpressey> Phantom_Brodrost: first thing that came to mind today, honestly, was "octalthorpe"
19:26:45 <Vorpal> alise, sbrk is quite similar in many ways to adding/subtracting a value from the stack pointer. But for the heap
19:26:50 <Phantom_Brodrost> cpressey, ...that is what I am going to call it from now on.
19:26:51 -!- BeholdMyGlory has joined.
19:27:04 <Phantom_Brodrost> And octalthorpebang!
19:27:07 <fizzie> Incidentally, let's check consumer power supplies; last I looked (some years ago) they were hovering in the one kW range, now... "SilverStone Strider ST1500 1500W"; well, 1.5 kW, then.
19:27:07 <Phantom_Brodrost> s/d//
19:27:19 <Vorpal> alise, so it is useless for any memory management on it's own if you will ever free anything except the most recently allocated element
19:27:32 <alise> Vorpal: I'm maintaining my own heap.
19:27:53 <alise> Vorpal: modern OSes will do it in virtual memory, yeah, instead of allocating real memory for it?
19:28:01 <Vorpal> alise, just saying you need to do so with more than sbrk. Or you will get horrible memory fragmentation.
19:28:04 <alise> fizzie: there are 2 kW ones iirc.
19:28:11 <alise> fizzie: of course, you rarely need more than 600 W.
19:28:12 <fizzie> Oh, I'm sure of that.
19:28:13 <Vorpal> alise, hm? well it is of course backed by virtual memory
19:28:17 <fizzie> Soon the gamer-class computers will start to come with three-phase electric power connectors.
19:28:33 <alise> Vorpal: I don't particularly want to write a compacting GC, either, so my options are pretty limited as far as freeing memory goes.
19:28:35 <Vorpal> fizzie, XD
19:28:37 <alise> As in, "it probably won't happen".
19:28:45 <alise> So I'll just be relying on the OS to manage virtual memory well.
19:28:54 <Phantom_Brodrost> Soon the gamer-class computers are going to have the souls of 10 children in them for AI.
19:28:54 <Vorpal> alise, um. maybe back it by mmap then
19:29:10 <alise> http://esolangs.org/wiki/BytePusher this is awesome
19:29:17 <alise> Vorpal: yeah, I'm considering that too
19:29:28 <alise> Vorpal: although not in the way SBCL does since I want to work when overcommit is off
19:29:32 <cpressey> alise: You're writing a PicoLisp, right? You can take the marvelous GC advantage of having all your memory cells be the same size, then.
19:29:41 <alise> is there a way to increase the size of an mmapping?
19:29:53 <alise> cpressey: I'm writing Slip, which is like PicoLisp except MINE and BETTER.
19:29:54 <Vorpal> alise, it won't do anything if your heap looks like (@ = allocated, . = unallocated): @@@...@.@@.@@@@......@@........@.@...@@@....@@...@@
19:29:57 <cpressey> Unless there's some variable-length stuff you want to do, of course. I should have said "Lisp".
19:30:10 <alise> cpressey: Also, I'm not sure it will be.
19:30:19 <Vorpal> alise, which is what you will get if you only ever use sbrk and then never fill in the freed up holes
19:30:21 <alise> cpressey: Since what about symbols with names >4 or 8 bytes (depending on 32/64-bit)?
19:30:27 <alise> Vorpal: Mm.
19:30:33 <alise> There needs to be a remmap.
19:30:46 <alise> cpressey: Where do the rest of their names go? I am trying to figure out how PicoLisp does this.
19:30:48 <Vorpal> alise, there is a mremap. Linux specific.
19:30:58 <Phantom_Brodrost> alise, so will you be writing a compiler?
19:31:07 <alise> Phantom_Brodrost: Most likely just an interpreter.
19:31:11 <alise> "I am lazy and my CPU is fast."
19:31:12 <Vorpal> alise, while the OS won't actually allocate your pages until you try to access them, it won't automagically unallocate zeroed out pages.
19:31:21 <cpressey> alise: I dunno. Maybe they do the ol' BASIC thing where only the first 4 characters of the identifier count :)
19:31:24 <Vorpal> alise, for most apps the overhead of detecting that wouldn't be worth oit
19:31:25 <Vorpal> it*
19:31:26 <alise> I might just use a fixed-size heap.
19:31:29 <Phantom_Brodrost> alise, bah! How will we ever get Lisp86 working‽
19:31:32 <fizzie> The Scheme interpreter I wrote for our "let's do SICP one last time" special commemorative Scheme course has a copying, compacting (well, of course, since it's copying) GC, and that's "just" 550 lines of x86-64 asm. (It's also probably incredibly buggy, since I wrote it in the last night or two before the deadline.)
19:31:37 <alise> cpressey: Die :)
19:31:42 <Phantom_Brodrost> We'll have to kidnap someone!
19:31:43 <Vorpal> alise, why not use libgc?
19:31:52 <Vorpal> alise, that is the lazy solution
19:31:52 <Phantom_Brodrost> How about ESR?
19:32:02 <alise> fizzie: Copying GCs are so yeargh, though.
19:32:10 <alise> Vorpal: I'm maintaining my own heap; GCs are like a 30-line thing.
19:32:17 <alise> I owe it to my users not to use a conservative collector.
19:32:28 <alise> (My users = me)
19:32:34 <fizzie> alise: It's a good choice when you have a deadline measured in hours and are writing manual assembly, though. :p
19:32:38 <alise> Phantom_Brodrost: What the hell could HE do?
19:32:49 <Phantom_Brodrost> alise, write code
19:32:54 <alise> Phantom_Brodrost: He can't.
19:32:58 <alise> Phantom_Brodrost: Name a project written by esr.
19:33:00 <alise> "C-INTERCAL".
19:33:06 <alise> Yes, which ais523 has spent years cleaning up.
19:33:06 <Vorpal> alise, the way you described your GC so far sounds worse than a conservative gc though.
19:33:09 <Phantom_Brodrost> alise, yes, but we like other people!
19:33:13 <alise> "fetchmail".
19:33:14 <alise> HAHAHAHAHA
19:33:15 <alise> HAHAHAHA
19:33:16 <cpressey> alise: If you use linked cells to hold long id's (bear with me) then you get fixed-sized cells and that makes GC easy. Need to allocate a new cell? Just take the next one off the free list. Free a cell? Add it to the free list. Free list empty? sbrk().
19:33:17 <alise> AHAHAHAHA
19:33:18 <Phantom_Brodrost> So we don't want to enslave them!
19:33:22 <fizzie> GC snippet of the day:
19:33:22 <alise> Vorpal: it will be good within the heap
19:33:23 <fizzie> .fail: ;; TODO: remove when failure is not an option
19:33:23 <fizzie> mov eax, 0x700f00d
19:33:23 <fizzie> jmp error_sys
19:33:24 <alise> just not good for the OS
19:33:31 <alise> Failure is NOT AN OPTION
19:33:33 <Phantom_Brodrost> THIS IS AN ETHICAL CONUNDRUM
19:33:46 <alise> cpressey: I can't use linked cells, though, because the CDR already contains a pointer to a cell (the value of the pointer).
19:33:53 <Phantom_Brodrost> fizzie, oesnoesdon'tuseintelsyntaxnearVorpal
19:34:01 <alise> fizzie: UNREADABLE
19:34:03 <alise> HOW DOES THAT WORK
19:34:08 <alise> WHERE ARE THE %S
19:34:09 <Phantom_Brodrost> He hates it for ill-defined reasons.
19:34:16 <Vorpal> alise, most programs will not free up resources in the same order they allocated them. So you need to try to reduce fragmentation in some way
19:34:20 <fizzie> Let's not go into the Intel syntax wars again.
19:34:29 <fizzie> It's just that one "mov", anyway.
19:34:39 <alise> fizzie: I was being sarcastic.
19:34:46 <Vorpal> alise, using a bunch of pools to keep the objects similar sized in a given area might work
19:34:57 <alise> Vorpal: Meh.
19:35:00 <cpressey> Vorpal: Do you realize that with fixed-size cells, fragmentation is basically a non-problem?
19:35:02 <alise> I have a lot of memory.
19:35:07 <alise> And what cpressey said.
19:35:08 <Vorpal> alise, I think the freebsd malloc uses pools like that
19:35:13 <alise> Hopefully everything will be the same size.
19:35:14 <Vorpal> cpressey, ah, he has that?
19:35:18 <Vorpal> I must have missed that
19:35:28 <Vorpal> indeed that is like a single pool
19:35:32 <Vorpal> and it solves it all
19:36:01 <alise> cpressey: Still not sure how to do symbol names, though. Oh, I know.
19:36:03 <alise> Maybe I can have:
19:36:26 <alise> ('HELL', ptr), ('OWOR', 'LD!\0\0')
19:36:28 <alise> for HELLOWORLD!
19:36:36 <alise> i.e., you just keep looking ahead until you get a \0.
19:36:38 <Vorpal> alise, you still need some way to store allocation metadata. Like a freelist
19:36:43 <Vorpal> of some sort
19:36:52 <alise> Vorpal: Well, I'm GCing. So there will be a mark field.
19:37:15 <alise> I might even do the wonderful multithreaded mark-and-sweep I keep talking about.
19:37:18 <alise> No more GC delays!
19:37:38 <Vorpal> alise, just saying scanning for free on allocation would be rather slow
19:38:06 <Vorpal> maybe having a map of pages containing at least one free spot would work
19:38:07 <alise> Vorpal: Maybe I could use a bitmask.
19:38:23 <alise> 1101110 means that cells [0], [1], [3], [4] and [5] are available.
19:38:25 <Vorpal> that way you need to scan only a small chunk
19:38:29 <Vorpal> hm wait not a bitmask
19:38:29 <alise> (An array of integers, that is.)
19:38:42 <Vorpal> rather, keep a count of free cells for each page
19:38:47 <Vorpal> that makes updating it easier
19:38:51 <alise> Vorpal: I don't need to worry about pages this way.
19:39:11 <Vorpal> alise, well, you don't need your blocks to be page-sized. Just seemed a reasonable chunk size
19:39:27 <alise> Eh. Divide by however many bits are in a long, & ...0... it, where the 0 is at the position of the remainder.
19:39:35 <alise> Sounds complicated but really just one or two lines of code to update it.
19:39:50 <alise> And let's see, if we assume 32-bit we have 4 bytes in each.
19:39:51 <Vorpal> alise, anyway lets say each chunk start with a bitmask. And you have a global mask of full/non-full pages. Where each page is a bit
19:40:06 <cpressey> Vorpal: You can store the freelist inside the cells themselves. In a sense, it's just another Lisp list.
19:40:11 <alise> So for 4 megabytes, we can store a million cells.
19:40:15 <alise> 4 megabytes of metadata, that is.
19:40:16 <Vorpal> alise, then after allocating you just test if your bitmask for the page is all 1, and if so set the global table as it
19:40:20 <Vorpal> cpressey, that works too
19:40:21 <alise> A cell is a cons, or a symbol, or whatever.
19:40:25 <alise> Not bad.
19:40:33 <alise> cpressey: Ah, good idea.
19:40:47 <alise> So every N cells has a count of how many free cells there are in the next N cells?
19:40:56 <cpressey> You do need a mark bit somewhere, though, yes.
19:41:05 <alise> Oh, of course.
19:41:37 <cpressey> LSB of the pointer is traditionally a good choice, since cells are two bytes long. You probably know that much...
19:41:52 <Vorpal> why are cells 2 bytes only?
19:42:03 <cpressey> I mean, at least 2 bytes.
19:42:06 <alise> cpressey: LSB of which pointer?
19:42:07 <Vorpal> right
19:42:13 <cpressey> I mean, at least 2 *addresses*.
19:42:19 <Vorpal> cpressey, indeed
19:42:28 <Vorpal> on x86-64 they would be... 16 bytes each?
19:42:30 <Vorpal> quite large
19:42:34 <Vorpal> each cell I mean
19:43:31 <cpressey> alise: The tail pointer. If you're storing "improper" lists I can see how that might pose a problem.
19:43:32 <Vorpal> alise, I seem to remember some lisp(s) did some trick by being able to store lists so that the next element's car was in the previous cdr
19:43:39 <Vorpal> as a space optimisation
19:43:44 <fizzie> Ooh, haha: homework exercise 6 of that "course with the bignums in it": "Make a program that reads a file and encrypts/decrypts it into another file. You can invent the encryption algorithm by yourself. If you don't want, you can use this: [description of rot-N, where N is the key, and the description itself even manages to be wrong; it "encrypts" letters A..Z, but does modulo 25 instead of 26.]"
19:43:47 <Vorpal> setting some control bit to indicate this was being done
19:43:48 <alise> cpressey: Of course I am.
19:44:07 <alise> Vorpal: yes
19:44:09 <alise> Vorpal: cdr coding
19:44:12 <cpressey> alise: Then you need to find some other place for it :)
19:44:22 <Vorpal> alise, going to do that?
19:44:26 <alise> Vorpal: unlikely
19:44:28 <alise> Vorpal: it's a bitch
19:44:29 <Vorpal> right
19:44:37 <Vorpal> alise, yes it messes up allocation
19:44:40 <alise> yes
19:44:40 <alise> and alignment
19:44:42 <cpressey> heh. I was just going to say, "cdr coding is a bitch!"
19:44:44 <alise> (cdr cdr-coded-list)
19:44:55 <alise> Unrolled linked lists are simpler and often higher-performance than CDR coding (no "tagged pointers"; typically less fragmentation). For short lists, CDR coding uses the least amount of space.
19:44:56 <alise> anyway
19:44:59 <Vorpal> alise, well messing up allocation is partly a side effect of messing up alignment
19:45:04 <cpressey> Maybe for serialization it's OK.
19:45:49 <Vorpal> cpressey, back when memory was a much more limited resource it probably made sense
19:46:07 <cpressey> Merf. I should probably implement a lisp at some point. I mean, in something other than another lisp.
19:46:22 <Vorpal> cpressey, in befunge!
19:46:38 <cpressey> Uhhhh not what I was thinking.
19:46:45 <Vorpal> cpressey, it would be cool however
19:47:18 <cpressey> Are there any Befunge interpreters out there that implement GC of the playfield? (implement it, not rely on their implementation langauge for it)
19:47:27 <alise> cpressey is like Rupert Holmes, unable to escape from his song with Piña Coladas.
19:47:31 <cpressey> 'Cos FBBI sure as hell doesn't.
19:47:37 <cpressey> alise: YES
19:47:47 <Vorpal> cpressey, how can you GC the funge-space?
19:47:50 <cpressey> alise: Or that other guy, and "Werewolves of London".
19:48:00 <Vorpal> cpressey, you can't possibly know if some funge code references it
19:48:03 <alise> cpressey: Or Chris Pressey, and Befunge!
19:48:04 <alise> Er...
19:48:36 <Vorpal> cpressey, or do you mean freeing up memory used by spaces?
19:48:38 <cpressey> Vorpal: Uh. If a range of space is empty -- free the memory for it?
19:48:39 <Vorpal> cpressey, if so yes
19:48:56 <alise> cpressey: Do you think that a-bunch-of-adjacent-cells representation for symbol names is a good idea?
19:49:01 <alise> I'm not so sure.
19:49:16 <Vorpal> cpressey, cfunge will free the cell in the hash array backed area if it is set to space
19:49:20 <cpressey> alise: Not for GC-friendliness, no. not so much.
19:49:29 <Vorpal> cpressey, it does that by returning it to a pool
19:49:33 <alise> cpressey: True.
19:49:34 <Vorpal> rather than calling free()
19:49:38 <cpressey> Vorpal: cell-by-cell?
19:49:54 <cpressey> Vorpal: does it ever call free() on them?
19:49:55 <alise> I'm reading PicoLisp's source and then making sure to forget the exact code so I don't violate the GPL.
19:50:02 <Vorpal> cpressey, well it allocates the hash cells from some internal pools. It just returns those to it
19:50:21 <Vorpal> cpressey, and no it doesn't free up pools if an entire pool would ever become empty
19:50:28 -!- mr45 has quit (Ping timeout: 276 seconds).
19:50:43 <cpressey> Vorpal: So if I have a Befunge program which p's a # into (0,0), then erases it and p's # into (0,1), etc, etc, will cfunge eventually run out of memory? From what you say it sounds like the answer is "yes".
19:50:44 <Vorpal> cpressey, still, many programs fit neatly inside the static backed area around 0,0
19:50:56 <Vorpal> cpressey, no it won't
19:51:11 <Vorpal> cpressey, because it will put the freed up hash entry into the free list
19:51:19 <Vorpal> cpressey, and it will use that before allocating new pools :P
19:51:24 <alise> #undef bool
19:51:24 <alise> typedef enum {NO,YES} bool;
19:51:27 <alise> -- PicoLisp
19:51:42 <alise> typedef struct cell { // PicoLisp primary data type
19:51:43 <alise> struct cell *car;
19:51:43 <alise> struct cell *cdr;
19:51:43 <alise> } cell, *any;
19:51:43 <alise> Huh.
19:51:44 <cpressey> Vorpal: k.
19:51:50 <alise> So it really is just two bytes.
19:51:51 <alise> How does that work?
19:52:02 <fizzie> Vorpal: But if you make a Befunge program that uses four gigabytes of space for a while, then erases almost everything, you won't return the uselessly allocated gigabytes to the system, right?
19:52:11 * alise looks at their GC
19:52:32 <alise> *(word*)&cdr(p) &= ~1;
19:53:08 <Vorpal> cpressey, here:
19:53:09 <Vorpal> typedef union memory_block {
19:53:09 <Vorpal> struct s_fspace_hash_entry data;
19:53:09 <Vorpal> union memory_block *next_free;
19:53:09 <Vorpal> } memory_block;
19:53:13 <alise> cpressey: I am not sure that makes sense.
19:53:20 <alise> cpressey: Although, wait.
19:53:26 <alise> cpressey: It does if you just use 31-bit integers.
19:53:32 <Vorpal> cpressey, chunks of those are used. And a free list
19:53:49 <alise> typedef struct heap {
19:53:49 -!- choochter has quit (Ping timeout: 265 seconds).
19:53:49 <alise> cell cells[CELLS];
19:53:49 <alise> struct heap *next;
19:53:49 <alise> } heap;
19:53:50 <Vorpal> <fizzie> Vorpal: But if you make a Befunge program that uses four gigabytes of space for a while, then erases almost everything, you won't return the uselessly allocated gigabytes to the system, right? <-- no, but I have yet to see such a program in practise
19:53:50 <alise> Interesting.
19:54:07 <Vorpal> fizzie, in practise here means "not specifically made as a benchmark"
19:54:18 <alise> There are no Befunge programs in practice.
19:54:23 <alise> Apart from fungot.
19:54:23 <Vorpal> ^source
19:54:24 <fungot> alise: those who did see it a workman, a servant, and the moon is above and the clouds of the sky and fnord itself in the birth of my grandmother and fnord uncle might be sheer fancy on my part proposed, for his eyes were irresistibly drawn. and then my fancy reverted to the locale as i reflected that the excitant folklore was undoubtedly more universal in the past.
19:54:24 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
19:54:28 <alise> Apart from fungot.
19:54:28 <fungot> alise: sometimes heard today, fnord by extensive scientific interests and aided by large numbers of fishing boats from gloucester, made a thorough and really significant digest. average people
19:54:28 <alise> I said.
19:54:39 <Vorpal> alise, same second
19:54:41 <Vorpal> *shrug*
19:55:28 <Vorpal> ^style
19:55:29 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft* nethack pa speeches ss wp youtube
19:55:31 <Vorpal> ah
19:55:38 <fizzie> Vorpal: fungot in some sense; it would be "nice" if when an evil IRC user makes a space-wasting Underload program, it'd return the wasted space to the system after the program's been finished. (Not that it's a problem in practice, since there's a size limit for the Underload stack.)
19:55:39 <fungot> fizzie: the lovecraft library wishes to extend its gratitude to eulogio garca recalde for transcribing this text. he had to fnord had to get me in a thin envelope of fnord metal. he had counted about thirty when a sound reached him very fnord and
19:55:57 <Vorpal> fizzie, yeah and probably some user will do it again
19:56:05 <Vorpal> fizzie, and then it will already have it allocated
19:56:06 <Vorpal> fizzie, :P
19:56:35 <Vorpal> fizzie, anyway it is tricky, since the used cells might be spread out
19:56:38 <Vorpal> over the blocks
19:56:55 <Vorpal> fizzie, in fact, I would say it is rather likely
19:57:32 <fizzie> Yes, though if you allocate in pages, you could opportunistically free pages that contain only free'd pointers, if ever such occur. (It'd be a bit annoying to go through the free-list removing those, though.)
19:57:50 <fizzie> 6824k VSZ, 5328k resident; it's not a very memory-intensive process there.
19:57:58 <Vorpal> fizzie, yes, and checking for that condition would incur some overhead
19:58:13 <Vorpal> fizzie, which for the majority of the cases would be non-useful
19:58:40 <fizzie> ^ul (foo)(~:*~:^):^
19:58:40 <fungot> ...too much stack!
19:58:43 <Vorpal> fizzie, anyway, let me check how much I allocate at once
19:58:44 <alise> For something even smaller, download miniPicoLisp.tgz. It is a minimal version, without support for databases, UTF-8, bignums, IPC, networking and other system-dependent functions. A kind of "pure" PicoLisp (not "pure Lisp"!). It supports the full PicoLisp language, but runs faster, and uses even less memory space. It should also not be restricted to Unix. In addition, it compiles and runs also on 64-bit systems.
19:58:48 <alise> Sweet
19:59:01 <fizzie> 7952k virtual, 6408k resident now.
19:59:26 <alise> #define WORD ((int)sizeof(long))
19:59:26 <alise> #define BITS (8*WORD)
19:59:28 <alise> I... what?
19:59:30 <alise> Oh, I see.
19:59:33 <fizzie> (I can't recall my underload stack limits.)
19:59:49 <fizzie> Ooh, not using CHAR_BIT, how dreary!
19:59:57 <Vorpal> fizzie, more than a page at a time I think
20:00:20 <fizzie> A conceptual "page", anyway; a biggish blob.
20:00:58 <fizzie> (I wasn't expecting you to sysconf(_SC_PAGESIZE) the allocation size.)
20:01:22 <alise> lulz CHAR_BIT.
20:02:04 <Vorpal> fizzie, I think each hash entry is 4*8 bytes or something like that (x,y,value,next-in-same-bucket)
20:02:09 <Vorpal> fizzie, possibly a bit more
20:02:29 <alise> #define val(x) ((x)->car) ;; huh
20:02:32 <Vorpal> each chunck is 4096 hash entries
20:02:36 <Vorpal> fizzie, so yeah more than a page
20:02:56 <alise> #define EVAL(x) (isNum(x)? x : isSym(x)? val(x) : evList(x))
20:02:57 <alise> haha
20:03:37 <Vorpal> fizzie, that is of course assuming a 64-bit funge
20:03:41 <alise> cpressey: ping
20:03:46 <Vorpal> fizzie, x,y,value would be smaller otherwise
20:04:15 <Vorpal> while next-in-same-bucket would depend on pointer size
20:04:35 <Vorpal> alise, where is that code from?
20:04:43 <alise> Vorpal: miniPicoLisp
20:04:54 <Vorpal> alise, that's an absurd name
20:05:03 <alise> it's a smaller version of PicoLisp. :P
20:05:13 <Vorpal> alise, yeah but pico already implies it is small...
20:05:23 <Vorpal> alise, it should be FemtoLisp or something
20:06:28 <fizzie> Speaking of which, CHAR_BIT is indeed 8 in the TI C64xx. I guess they fake byte-addressing, then, since the hardware is definitely unable to do it. (Though it admittedly does use byte-indexed pointers, so that for all pointer values the LSB is 0.)
20:06:47 <fizzie> Maybe there was in fact some special unaligned-read op in there.
20:10:37 <fizzie> Oh, yes, LDNW/LDB and such. (Whose idea it was to make the instruction set reference PDF not include the actual instructions in the PDF table-of-contents metadata? There's just chapter 3.11, "Instruction Descriptions", page 87, and the next thing in the TOC is chapter 4, "Pipeline", page 509.)
20:13:24 <fizzie> (There's also lots of hyperlinks, but no single instruction index. There's six separate "list of instructions executing in the [foo] functional unit" lists (with links to descriptions), but between each list there's ten pages of opcode encoding tables. It's like it's designed to be as difficult as possible to look up opcodes by name.)
20:14:24 <fizzie> (I'm wondering if TI's expensive and sucky -- well, it *was* sucky last I saw it -- IDE has some sort of instruction lookup feature, and therefore they've left it out of these freely downloadable PDFs, so that it's not competing with the IDE docs.)
20:36:22 -!- Phantom_Brodrost has quit (Ping timeout: 245 seconds).
20:38:23 -!- Phantom_Brodrost has joined.
20:43:40 -!- Behold has joined.
20:45:23 -!- sshc_ has joined.
20:45:30 -!- iGO has joined.
20:46:36 -!- iGO has quit (Client Quit).
20:46:45 -!- iGO has joined.
20:47:40 -!- BeholdMyGlory has quit (Remote host closed the connection).
20:47:41 -!- sshc has quit (Remote host closed the connection).
20:47:49 -!- cheater- has quit (Excess Flood).
20:47:57 -!- Quadrescence has quit (Ping timeout: 265 seconds).
20:48:01 -!- Behold has changed nick to BeholdMyGlory.
20:48:26 -!- cheater- has joined.
20:50:02 -!- iGO has quit (Client Quit).
20:50:31 -!- iGO has joined.
21:00:58 <Phantom_Brodrost> iGO, you do indeed.
21:01:20 -!- Quadrescence has joined.
21:04:25 <iGO> xD
21:17:14 -!- augur has quit (Ping timeout: 264 seconds).
21:39:41 -!- Phantom_Brodrost has changed nick to Vonlebio.
21:41:20 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:45:37 -!- tombom has joined.
21:45:41 -!- tombom has quit (Read error: Connection reset by peer).
21:46:07 -!- augur has joined.
21:46:47 -!- Mathnerd314 has quit (Ping timeout: 245 seconds).
21:50:04 -!- Phantom_Hoover_ has joined.
21:50:18 -!- Vonlebio has quit (Ping timeout: 265 seconds).
21:50:20 -!- derdon has quit (Ping timeout: 240 seconds).
21:53:50 -!- iGO has quit (Quit: Leaving).
21:58:17 -!- Mathnerd314 has joined.
22:04:39 -!- olsner has quit (Quit: Leaving).
22:10:09 -!- augur has quit (Ping timeout: 240 seconds).
22:15:16 -!- olsner has joined.
22:20:06 -!- kar8nga has quit (Remote host closed the connection).
22:23:39 -!- Phantom_Hoover_ has quit (Ping timeout: 265 seconds).
22:27:04 -!- Phantom_Hoover_ has joined.
22:32:33 -!- zzo38 has joined.
22:34:23 <zzo38> Maybe I should allow Enhanced CWEB to ignore a shebang line at the top of a file, so that it can be used on Hackiki
22:36:18 <Phantom_Hoover_> Maybe.
22:36:53 <zzo38> Do you think it is good idea?
22:37:31 <zzo38> You should make a Hackiki on the esolang, such as /hackiki/ directory instead of /wiki/ to tell differerence
22:37:50 <zzo38> And also allow Hackiki files and MediaWiki files to be able to read each-other (but not write)
22:37:59 * Phantom_Hoover_ ponders whether we could create a BANCStar-oid.
22:38:25 <zzo38> And put a field in the MediaWiki account to associate them with a OpenID, to be used with Hackiki.
22:38:38 <zzo38> Phantom_Hoover_: I was thinking about the same idea in the past.
22:39:00 <Phantom_Hoover_> Well... it would need UI capabilities, to keep to BANCStar's spirit.
22:41:40 <zzo38> Phantom_Hoover_: Yes I think you might be correct, and you would do it in the strange way that BANCStar does it.
22:41:56 <Phantom_Hoover_> Well, we don't *know* the strange way BANCStar did it.
22:42:22 <Phantom_Hoover_> We know the syntax and about 5 conditional instructions.
22:44:30 <Phantom_Hoover_> Oh, and the scoping rules.
22:45:38 -!- oerjan has joined.
22:45:46 <Vorpal> Phantom_Hoover_, BANCStar-oid. <-- it had oids?
22:45:57 <Phantom_Hoover_> It did not, but we should make one.
22:46:16 <Vorpal> Phantom_Hoover_, do you mean oids as in SNMP?
22:46:49 <zzo38> So just guess and see if the example program is sensible in the way that you guessed.
22:46:56 <Phantom_Hoover_> No, I mean as in something similar enough that you could confuse them without close inspection.
22:47:29 <Vorpal> Phantom_Hoover_, why oids though? There are a lot of other stuff you could think of putting in a bankstar context
22:47:34 <Vorpal> Phantom_Hoover_, so why oids
22:47:59 <zzo38> If it is done in a way that the example program is still a sensible program (even if it does not do the same thing as before), then it can be confuse them even with close inspection.
22:48:14 <Phantom_Hoover_> Vorpal, "-oid"? Prefix I use to indicate close similarity, per the English prefix?
22:48:27 <oerjan> *suffix
22:48:27 <Vorpal> Phantom_Hoover_, oh
22:48:49 <Phantom_Hoover_> oerjan, I always get them confused.
22:48:58 <Vorpal> Phantom_Hoover_, to me oid = http://en.wikipedia.org/wiki/Object_identifier
22:49:05 <Vorpal> Phantom_Hoover_, thus the confusion
22:49:19 <oerjan> oic
22:49:24 <Phantom_Hoover_> Vorpal, too much SE, obviously.
22:49:29 <Vorpal> oerjan, that pun was so terrible
22:49:33 <Vorpal> Phantom_Hoover_, SE?
22:49:34 <oerjan> thank you :D
22:49:54 <Vorpal> oerjan, btw what does the c stand for? care?
22:49:59 <Phantom_Hoover_> Vorpal, Software Engineering?
22:50:02 <Vorpal> Phantom_Hoover_, ah
22:50:26 <Phantom_Hoover_> Vorpal, see.
22:50:26 <Vorpal> Phantom_Hoover_, well SNMP is to me the very epitome of excessive software engineering!
22:50:41 <Vorpal> Phantom_Hoover_, should be ois :/
22:50:49 <Phantom_Hoover_> Vorpal, it's phonetic.
22:50:56 <Vorpal> Phantom_Hoover_, yeah, I don't like that
22:51:10 -!- FireFly has quit (Quit: swatted to death).
22:51:44 <Phantom_Hoover_> Vorpal, the whole acronym is phonetic that way, which is rather neat.
22:51:46 <Vorpal> Phantom_Hoover_, OIDs are used in X.509 certs too
22:51:54 <Vorpal> again too much software engineering
22:54:03 <Phantom_Hoover_> So anyway, http://reocities.com/ResearchTriangle/station/2266/tarpit/bancstar.html is the sum total of all accessible information on BANCStar.
22:56:58 <zzo38> I made a backup of that HTML page.
22:59:18 <Phantom_Hoover_> If there was any consistency in the instructions, that would help...
22:59:40 <Phantom_Hoover_> 3001,,, and 3001,lots of numbers?
22:59:54 <Phantom_Hoover_> So is it variadic or what?
23:01:19 <zzo38> 3001 is a block conditional, so maybe 3001,,, is the end of the block
23:01:48 <Phantom_Hoover_> Genius!
23:01:59 <Phantom_Hoover_> But what are the other 4 numbers for?
23:02:34 <zzo38> Ther are only 3 other numbers?
23:02:44 <Phantom_Hoover_> There are!
23:03:10 <zzo38> Maybe there is the number of the constant/variable, the number indicating the comparison type, and the value to compare it with
23:03:38 <Phantom_Hoover_> Ah, yes.
23:04:01 * Phantom_Hoover_ keeps viewing this from too much of an assembly perspective
23:05:54 * Phantom_Hoover_ → sleep
23:07:02 -!- Phantom_Hoover_ has quit (Quit: Leaving).
23:13:39 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:14:37 -!- alise has quit (Ping timeout: 258 seconds).
23:31:28 -!- Mathnerd314 has quit (Ping timeout: 276 seconds).
23:34:53 -!- Mathnerd314 has joined.
23:59:19 <zzo38> http://sprunge.us/BCVI
00:00:13 <zzo38> After I write more, I can test it to see if the example programs will run
00:06:55 <cpressey> Zoiks
00:07:13 -!- cpressey has quit (Quit: Yes, "Zoiks".).
00:08:55 -!- oerjan has quit (Quit: Zurrr).
00:15:11 -!- zzo38 has quit (Remote host closed the connection).
00:26:33 -!- sftp has quit (Remote host closed the connection).
00:26:33 -!- wareya has quit (Read error: Connection reset by peer).
00:27:18 -!- wareya has joined.
00:41:47 -!- alise has joined.
01:18:47 <alise> Gaah, Dot Action 2 is so impossible.
01:21:52 <Sgeo> Um
01:21:58 <Sgeo> Does it not save your place?
01:22:06 <Sgeo> I'm stuck with level 1 again
01:23:39 <pikhq> *sigh* McCain proposing a bill that would allow imprisonment without trial.
01:24:04 <pikhq> Apparently he liked his time as a prisoner of war so much that he feels everyone should live it.
01:25:23 -!- Quadrescence has quit (Ping timeout: 265 seconds).
01:26:17 <alise> Sgeo: You need to write down the save code.
01:26:24 <alise> From the level selection screen; the NNN-NNN.
01:26:30 <pikhq> "(3) INAPPLICABILITY OF CERTAIN STATEMENT AND RIGHTS- A individual who is suspected of being an unprivileged enemy belligerent shall not, during interrogation under this subsection, be provided the statement required by Miranda v. Arizona (384 U.S. 436 (1966)) or otherwise be informed of any rights that the individual may or may not have to counsel or to remain silent consistent with Miranda v. Arizona."
01:26:32 <alise> (Second menu item to enter one.)
01:26:37 <pikhq> I... Don't think that actually works.
01:26:40 <alise> pikhq: Ha.
01:26:58 <alise> Sgeo: I have a code for 55.
01:27:02 -!- Quadrescence has joined.
01:27:04 <alise> But you're not getting iiit~
01:28:12 <pikhq> alise: Yeah, the opinion of the court in Miranda v. Arizona was that absolutely no evidence from an interrogation is admissible in any court, civil or otherwise, unless the "Miranda rights" are told to them.
01:29:42 <pikhq> Soooo... Yeah. Doesn't work unless they want to produce a giant pile of BS that the judge will laugh out of court.
01:30:18 <pikhq> "An individual, including a citizen of the United States, determined to be an unprivileged enemy belligerent under section 3(c)(2) in a manner which satisfies Article 5 of the Geneva Convention Relative to the Treatment of Prisoners of War may be detained without criminal charges and without trial for the duration of hostilities against the United States or its coalition partners in which the individual has engaged, or which the individual has
01:30:38 <alise> Whoa, Google own reCAPTCHA.
01:30:44 <alise> Since about a year ago.
01:30:44 <pikhq> And *that* just violates almost the entire US Bill of Rights in a single long sentence.
01:30:49 <pikhq> Impressive, but dang.
01:30:51 <alise> http://www.google.com/recaptcha
01:31:51 <pikhq> "9) UNPRIVILEGED ENEMY BELLIGERENT- The term `unprivileged enemy belligerent' means an individual (other than a privileged belligerent) who--
01:31:54 <pikhq> (A) has engaged in hostilities against the United States or its coalition partners;
01:31:57 <pikhq> (B) has purposely and materially supported hostilities against the United States or its coalition partners; or
01:32:00 <pikhq> (C) was a part of al Qaeda at the time of capture."
01:32:11 <pikhq> Sooo. I hereby declare Congress to be code for al Qaeda.
01:32:23 <pikhq> And shall detain them in the Capitol.
01:41:49 <pikhq> Oh, awesome.
01:42:39 <Sgeo> Dang it, I keep missing a dot in level 20
01:42:44 <pikhq> DoJ is suing Arpaio.
01:45:22 * Sgeo lols at stage 22
01:49:17 <Sgeo> WTF at Stage 23
01:52:15 * Sgeo wtfs at stage 24
01:52:44 <alise> Sgeo: 48 is the hardest so far
01:52:45 <alise> apart from 55
01:52:51 <alise> which appears to be impossible in the time given :)
01:52:52 <Sgeo> How about the one with 1 time?!
01:53:33 <Sgeo> I either fry on the upper yellow, or run out of time
01:53:47 <Sgeo> Finally
01:54:02 <alise> Like that. :)
01:55:35 <Sgeo> 25 was fun
01:57:23 <alise> 55 I actually have no idea what you have to do, past getting the first green block.
02:00:38 <alise> Sgeo: what are you on now?
02:00:46 <Sgeo> Taking a break from it
02:00:50 <Sgeo> Around 27 I think
02:01:07 <alise> Did you note your save code>
02:01:08 <alise> *code?
02:01:25 <Sgeo> Yes
02:01:52 <Sgeo> 27
02:11:25 -!- sshc_ has changed nick to sshc.
02:13:58 -!- Mathnerd314 has quit (Ping timeout: 252 seconds).
02:34:40 <Sgeo> alise, cheat codes: http://jayisgames.com/archives/2007/04/dot_action_2.php#walkthrough
02:34:50 <alise> Sgeo: Fuck that shit.
02:35:05 <Sgeo> Well, I'm skipping level 27
02:37:12 <alise> Sgeo: Ha. You'll find much harder ones and end up skipping the entire game.
02:37:14 <alise> 27 is easy.
02:37:27 <Sgeo> ?!
02:37:44 <alise> 27 is utterly trivial
02:37:48 <alise> if you can't do it you have no hope
02:38:01 <alise> just go in the middle
02:38:27 <Sgeo> ...
02:38:35 <alise> Why are you saying tons of punctuation?
02:38:46 <Sgeo> @#
02:39:34 <Sgeo> 27 done
02:39:37 <Sgeo> did 28 already
02:39:43 <Sgeo> Fighting 29
02:41:34 <Sgeo> Dangit, missed one
02:42:04 -!- alise has quit (Quit: Leaving).
02:48:32 -!- augur has joined.
03:35:45 -!- comex has quit (Write error: Broken pipe).
03:35:45 -!- comex_ has joined.
03:38:49 <pikhq> Why can't I run bsnes at full speed any more? D:
03:40:38 <pikhq> Apparently the answer is: X went "fuck you".
03:53:27 -!- cheater- has quit (Ping timeout: 245 seconds).
03:57:51 -!- zzo38 has joined.
03:58:10 <zzo38> I made the BytePusher VM program, and it works.
03:58:39 <zzo38> But I have to wait 14 minutes to try the second example program.
03:59:18 * Sgeo has a Factor project to do!
04:03:55 <zzo38> http://zzo38computer.cjb.net/prog/BytePusher/logo.png
04:08:09 -!- Gregor-L has joined.
04:10:49 <zzo38> Audio is not implemented yet.
04:12:05 -!- sebbu has quit (Ping timeout: 258 seconds).
04:12:39 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
04:14:03 <zzo38> I have just testsed the second program too, and the second program also works.
04:21:59 <zzo38> http://zzo38computer.cjb.net/prog/BytePusher/
04:22:19 <zzo38> (I have included both example programs in the .ZIP archive so that you do not have to use RapidShare)
04:25:16 -!- HackEgo has quit (Remote host closed the connection).
04:25:17 -!- EgoBot has quit (Remote host closed the connection).
04:28:01 -!- EgoBot has joined.
04:28:07 -!- HackEgo has joined.
04:29:57 -!- mtve has quit (*.net *.split).
04:39:31 -!- mtve has joined.
04:54:15 -!- Gregor-L has quit (Quit: Leaving).
05:19:47 -!- augur has quit (Ping timeout: 265 seconds).
05:20:21 -!- augur has joined.
05:34:48 -!- zzo38 has quit (Remote host closed the connection).
06:49:41 -!- Quadrescence has quit (Ping timeout: 265 seconds).
07:06:37 -!- cheater99 has joined.
07:08:20 -!- Quadrescence has joined.
07:13:31 -!- Zuu has quit (Read error: Connection reset by peer).
07:14:54 -!- cheater00 has joined.
07:16:50 -!- cheater99 has quit (Ping timeout: 272 seconds).
07:17:55 -!- Zuu has joined.
07:17:55 -!- Zuu has quit (Changing host).
07:17:55 -!- Zuu has joined.
07:23:10 -!- kar8nga has joined.
07:32:17 -!- comex_ has quit (Ping timeout: 276 seconds).
07:34:39 -!- augur has quit (Remote host closed the connection).
07:35:31 -!- comex has joined.
07:43:47 -!- relet1 has joined.
07:45:16 -!- relet has quit (Quit: Leaving.).
07:45:48 -!- relet1 has changed nick to relet.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:38 -!- kar8nga has quit (Remote host closed the connection).
08:05:52 -!- augur has joined.
08:06:02 -!- myndzi has quit (Remote host closed the connection).
08:06:19 -!- myndzi has joined.
08:12:43 -!- ais523 has joined.
08:41:55 -!- cheater00 has quit (Ping timeout: 260 seconds).
08:53:39 -!- cheater00 has joined.
09:08:02 -!- tombom has joined.
09:10:10 -!- choochter has joined.
09:11:54 -!- augur has quit (Ping timeout: 240 seconds).
09:12:58 -!- augur has joined.
09:13:51 -!- choochter has quit (Client Quit).
09:34:30 -!- choochter has joined.
09:50:44 -!- sebbu has joined.
10:00:57 <cheater> it's in german, but the code vs times comparisons speak for themselves
10:00:59 <cheater> http://www.drweb.de/magazin/schneller-php-schneller/
10:07:08 <fizzie> Also, Google translate is somewhat hilarious.
10:07:11 <fizzie> "D. grinding for, foreach, while (performance gain 15-30%)
10:07:11 <fizzie> Es ist falsch, pauschal zu behaupten, while ist schneller als zum Bespiel foreach. It is wrong to say a flat rate, while faster than the examples foreach. Oder umgekehrt. Or vice versa. Es kommt immer auf die Art des Objekts, die der Befehl zu schleifen hat. It all depends on the nature of the object to the grind, the command has."
10:07:21 <fizzie> Gah, it pastes both versions.
10:07:42 <fizzie> "It is wrong to say a flat rate, while faster than the examples foreach. Or vice versa. It all depends on the nature of the object to the grind, the command has."
10:07:47 <fizzie> Anyway, lovely verb choice there.
10:07:55 <fizzie> GRIND that LOOP, PEON.
10:17:26 -!- sebbu has quit (Ping timeout: 276 seconds).
10:37:09 -!- cheater00 has quit (Ping timeout: 265 seconds).
10:50:08 <cheater> yeah
10:50:14 <cheater> he's loopgrinding
11:09:23 -!- cheater99 has joined.
11:19:41 -!- cheater99 has quit (Ping timeout: 255 seconds).
11:40:28 -!- cheater99 has joined.
12:14:40 -!- FireFly has joined.
12:55:20 -!- comex has quit (Ping timeout: 276 seconds).
12:55:41 -!- Phantom_Hoover has joined.
12:57:34 -!- comex has joined.
13:01:51 <Phantom_Hoover> fungot
13:01:54 <fungot> Phantom_Hoover: poe's tales, of which he had cultivated with such singular results. it was, they averred, as though wounded by some stray shot. the beast turned its head in my direction and the eyes fell open, disclosing the repulsively rotten fangs of the degenerate joe slater. i shivered as i wondered why i did not fnord killing four and finally succeeding in the liberation of the monster. those victims who could recall the e
13:02:18 * Phantom_Hoover wonders who Joe Slater is.
13:02:52 -!- amca has joined.
13:03:18 -!- amca has quit (Read error: Connection reset by peer).
13:09:26 <fizzie> Phantom_Hoover: He's a degenerate, with repulsively rotten fangs.
13:10:12 <fizzie> "His name, as given on the records, was Joe Slater, or Slaader, and his appearance was that of the typical denizen of the Catskill Mountain region; one of those strange, repellent scions of a primitive Colonial peasant stock whose isolation for nearly three centuries in the hilly fastnesses of a little-traveled countryside has caused them to sink to a kind of barbaric degeneracy, rather than advance with their more fortunately placed brethren of the thickly set
13:10:12 <fizzie> tled districts."
13:11:59 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
13:12:24 -!- Phantom_Hoover has joined.
13:12:34 <Vorpal> ^style
13:12:34 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft* nethack pa speeches ss wp youtube
13:12:56 <Vorpal> that explains it
13:13:47 <Phantom_Hoover> He appears to have been an early-20th century footballer.
13:14:33 <fizzie> "The man himself was pitiably inferior in mentality and language alike; but his glowing, titanic visions, though described in a barbarous disjointed jargon, were assuredly things which only a superior or even exceptional brain could conceive."
13:15:25 <Phantom_Hoover> Well, that's your average footballer.
13:15:31 <Vorpal> XD
13:18:55 <fizzie> fungot: Can you tell us more about what happened to Joe?
13:18:56 <fungot> fizzie: a cowed and cringing satellite in the fnord fnord firm to the house in darkness but for the glare of the fnord
13:19:13 <fizzie> I'm not sure if that's good or bad.
13:19:39 -!- Phantom_Hoover_ has joined.
13:20:15 <Phantom_Hoover_> fungot, Wikipedia says he was killed in WWI. Is this true?
13:20:16 <fungot> Phantom_Hoover_: it was a gentle daylight rain that awaked me front my stupor in the brush-grown railway cut, and among them was lore of a golden valley that led to old world wonders. by night the outer harbour was cleared, and late passengers watched the stars twinkling above an unpolluted ocean.
13:20:57 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
13:21:11 <fizzie> Actually, he was killed because he was "unfit to bear the active intellect of cosmic entity. His gross body could not undergo the needed adjustments between ethereal life and planet life."
13:21:36 <Phantom_Hoover_> Ah, so there it was hushed up.
13:21:41 <fizzie> Cosmic entities should have more sense than picking footballers.
13:22:50 -!- cheater99 has quit (Ping timeout: 276 seconds).
13:23:02 <Phantom_Hoover_> Evidently.
13:23:22 -!- BeholdMyGlory has joined.
13:23:28 <Phantom_Hoover_> Obviously they thought that understanding the offside rule was a sign of high mental calibre.
13:27:15 <Vorpal> Phantom_Hoover_, XD
13:34:42 -!- Phantom_Hoover_ has quit (Ping timeout: 245 seconds).
13:36:34 -!- Phantom_Hoover_ has joined.
13:36:37 <Phantom_Hoover_> Disclaimer: I actually do understand the offside rule.
13:38:00 <ais523> do you mean the football/soccer rule, or the indentation rule?
13:38:10 <Phantom_Hoover_> The football rule.
13:39:15 <Phantom_Hoover_> What's the indentation rule?
13:48:27 -!- Phantom_Hoover_ has quit (Ping timeout: 245 seconds).
13:48:52 -!- Phantom_Hoover_ has joined.
13:59:08 <ais523> it's a common nickname AFAIK for the rule Haskell uses
13:59:21 <ais523> where you can line up a loop (or other control structure) body with the first line
14:02:01 -!- cheater99 has joined.
14:02:44 -!- Phantom_Hoover_ has quit (Ping timeout: 265 seconds).
14:03:37 -!- sftp has joined.
14:06:29 -!- derdon has joined.
14:07:11 -!- Phantom_Hoover_ has joined.
14:21:35 -!- Phantom_Hoover_ has quit (Ping timeout: 265 seconds).
14:21:37 -!- relet has quit (Quit: Leaving.).
14:22:43 -!- MigoMipo has joined.
14:23:06 -!- Phantom_Hoover_ has joined.
14:32:43 <Vorpal> ais523, that is strange... The haskell rule is actually quite easy to understand.
14:33:04 <ais523> it's more complicated than the rules for pretty much any other lang...
14:33:22 <Vorpal> while I never understood the football rule. Though, I can't say I spent much time trying to understand the football rule
14:33:38 <Vorpal> football just doesn't interest me very much
14:34:05 <Vorpal> ais523, hm possibly.
14:34:51 -!- relet has joined.
14:41:27 -!- augur has quit (Ping timeout: 252 seconds).
14:45:16 -!- Phantom_Hoover_ has quit (Ping timeout: 265 seconds).
14:54:13 -!- Phantom_Hoover_ has joined.
15:05:57 -!- augur has joined.
15:10:24 -!- Phantom_Hoover_ has quit (Ping timeout: 265 seconds).
15:10:51 -!- Phantom_Hoover_ has joined.
15:13:05 <pikhq> ais523: It's more complex than the rules for any other language, but it's more *natural* than most other such rules.
15:13:29 <ais523> I rather like it, but I see how people could be confused
15:14:14 -!- derdon has quit (Ping timeout: 264 seconds).
15:25:23 -!- Phantom_Hoover_ has quit (Ping timeout: 265 seconds).
15:25:51 -!- Phantom_Hoover_ has joined.
15:33:39 -!- teuchter has joined.
15:35:32 -!- choochter has quit (Ping timeout: 265 seconds).
15:42:05 -!- cpressey has joined.
15:42:17 <Phantom_Hoover_> MISTER PRESSER
15:42:21 <Phantom_Hoover_> Er, PRESSEY
15:49:06 <Vorpal> XD
15:51:39 -!- choochter has joined.
15:51:53 -!- tombom_ has joined.
15:51:58 <Phantom_Hoover_> Ah, He who Choochts.
15:52:27 -!- teuchter has quit (Ping timeout: 265 seconds).
15:54:55 -!- tombom has quit (Ping timeout: 276 seconds).
16:02:36 -!- Phantom_Hoover_ has quit (Ping timeout: 265 seconds).
16:02:51 -!- cpressey1 has joined.
16:03:00 -!- Phantom_Hoover_ has joined.
16:05:25 -!- Ilari_an1rcomp has joined.
16:05:43 -!- cpressey has quit (Ping timeout: 276 seconds).
16:05:43 -!- Ilari_antrcomp has quit (Ping timeout: 276 seconds).
16:07:09 -!- teuchter has joined.
16:09:12 -!- cheater99 has quit (Ping timeout: 265 seconds).
16:09:22 -!- Phantom_Hoover_ has quit (Ping timeout: 265 seconds).
16:09:51 -!- Phantom_Hoover_ has joined.
16:09:51 -!- choochter has quit (Ping timeout: 265 seconds).
16:20:58 -!- Phantom_Hoover_ has quit (Ping timeout: 265 seconds).
16:21:25 -!- Phantom_Hoover_ has joined.
16:23:49 -!- choochter has joined.
16:24:15 -!- derdon has joined.
16:26:33 -!- teuchter has quit (Ping timeout: 258 seconds).
16:31:52 -!- cpressey1 has changed nick to cpressey.
16:40:47 -!- Phantom_Hoover_ has quit (Ping timeout: 265 seconds).
16:53:10 -!- Phantom_Hoover_ has joined.
17:10:24 -!- oerjan has joined.
17:17:44 -!- kar8nga has joined.
17:26:38 -!- madbrain2 has joined.
17:40:14 -!- Phantom_Hoover_ has quit (Ping timeout: 265 seconds).
17:41:00 -!- cheater99 has joined.
18:02:03 -!- augur has quit (Remote host closed the connection).
18:09:23 -!- augur has joined.
18:18:50 -!- Phantom_Hoover_ has joined.
18:18:54 -!- oerjan has quit (Quit: Later).
18:38:09 -!- cpressey has left (?).
18:38:43 <Vorpal> hm
18:39:39 <Vorpal> http://earthquake.usgs.gov/earthquakes/recenteqsww/Quakes/us2010atbj.php#details says "Depth16.1 km (10.0 miles) (poorly constrained)" and "Location Uncertaintyhorizontal +/- 16.5 km (10.3 miles); depth +/- 64.6 km (40.1 miles)". So that earth quake could be located far about the ground then? XD
18:39:56 <Vorpal> poorly constrained indeed XD
18:45:20 -!- derdon has quit (Read error: Operation timed out).
18:45:21 <fizzie> A skyquake.
18:45:38 <Vorpal> fizzie, indeed.
18:52:53 -!- Wamanuz2 has quit (Remote host closed the connection).
18:55:17 -!- nooga has joined.
18:55:34 -!- Wamanuz has joined.
18:58:02 -!- cheater99 has quit (Ping timeout: 276 seconds).
19:01:27 -!- Zuu has quit (Read error: Connection reset by peer).
19:04:24 -!- cheater99 has joined.
19:05:04 -!- augur has quit (Quit: Leaving...).
19:05:27 -!- augur has joined.
19:06:15 <ais523> wow, someone bought out the rights to Duke Nukem Forever and started developing it again
19:06:35 -!- Zuu has joined.
19:06:56 <pikhq> Never bought out the rights, actually.
19:07:21 <pikhq> Take Two has always *had* the rights. They just had contracted to have it developed.
19:07:39 <pikhq> And they decided to switch contractors.
19:07:49 <Phantom_Hoover_> ais523, yay!
19:08:03 <Phantom_Hoover_> It can not be made again!
19:08:21 <ais523> what may shock Vorpal even more is that I finally got a small fragment of a Feather interp to work pretty much as expected
19:08:31 <ais523> although it's just leading to more questions about what I should do next
19:08:42 <Phantom_Hoover_> ais523, WHAT HAS THE WORLD COME TO
19:08:50 <Phantom_Hoover_> code!
19:08:52 <ais523> I think one thing that's necessary is to restrict the program to using only atoms that are in the original program
19:09:00 <ais523> (not really a problem as you can just go back in time and add them there...)
19:09:13 <ais523> Phantom_Hoover_: well, there isn't any Feather code yet
19:09:20 -!- nooga has quit (Ping timeout: 272 seconds).
19:09:27 <ais523> just creating Feather fakeobjects via metagaming, and checking that they interact correctly
19:09:29 <pikhq> 3D Realms, who previously had been developing it, last released a new game in '97.
19:09:49 <Phantom_Hoover_> ais523, yes, but anything Feather is interesting.
19:09:52 <pikhq> *Ninety fucking seven*.
19:10:02 -!- cheater99 has quit (Ping timeout: 264 seconds).
19:10:21 -!- nooga has joined.
19:20:10 <Phantom_Hoover_> ais523, pretty please?
19:20:37 <ais523> ;(set! abc (box_atom "abc"))
19:20:39 <ais523> ;(eval (((((abc "==") (box_atom "def")) "#") '(display "equal")) '((abc "<<=") (box_atom "def"))))
19:20:41 <ais523> commented out because it's just a paste
19:20:46 <ais523> (and yes, that's Scheme not Feather)
19:21:06 <Phantom_Hoover_> UNDERSCORES IN SYMBOLS
19:21:12 <Phantom_Hoover_> YOU SHOULD BURN IN HELL
19:21:26 <Phantom_Hoover_> Oh, wait, you don't like helly stuff.
19:21:35 <Phantom_Hoover_> YOU SHOULD BE BEATEN SOUNDLY
19:22:32 <nooga> uhm
19:22:51 <nooga> so feather will resemble scheme, on which abstraction level?
19:23:17 <Phantom_Hoover_> ais523, how do you get around the "turtles all the way down" problem?
19:23:31 <ais523> so far I haven't
19:23:37 <Phantom_Hoover_> Ideas?
19:23:52 <ais523> the issue is not the number of turtles, but inconsistent counts
19:24:17 <ais523> it's a pain to try to match up old turtles with new one
19:24:29 <ais523> Feather is the only lang I know where you have to think about backwards compatibility in the very first interp...
19:29:32 -!- cheater99 has joined.
19:31:11 <Sgeo> turtles?
19:31:37 <Phantom_Hoover_> Sgeo, small, shelled marine reptiles.
19:32:48 <Sgeo> ais523, a language with specs but no implementation for a long time, and when someone gets around to it, they find that it _can't quite_ meet the specs
19:33:34 -!- teuchter has joined.
19:33:57 <Phantom_Hoover_> teuchter, choochter, any relation?
19:35:09 -!- choochter has quit (Ping timeout: 258 seconds).
19:39:28 -!- madbrain2 has quit (Ping timeout: 252 seconds).
19:39:57 -!- augur has quit (Quit: Leaving...).
19:40:17 -!- augur has joined.
19:43:41 -!- cheater99 has quit (Ping timeout: 255 seconds).
19:45:30 -!- zzo38 has joined.
19:46:31 <zzo38> How can I make the audio in BytePusher VM syncrhonized? In SDL the audio has to run in a separate thread. So, how do I synchronize it?
19:46:46 <Phantom_Hoover_> With SCIENCE!
19:49:51 <zzo38> Not helping....
19:52:40 -!- teuchter has quit (Ping timeout: 265 seconds).
19:55:23 <Phantom_Hoover_> How can SCIENCE not help‽
19:55:27 -!- Phantom_Hoover_ has quit (Quit: Leaving).
19:55:35 -!- Phantom_Hoover_ has joined.
19:55:39 <Phantom_Hoover_> How can SCIENCE not help‽
19:55:46 <fizzie> We saw that the last time.
19:56:34 <Phantom_Hoover_> Oh. Effing connection.
19:56:44 <Phantom_Hoover_> And clog.
19:57:29 <zzo38> Phantom_Hoover_: Because that is not enough explanation, of what codes needed, and stuff like that
19:57:45 <Phantom_Hoover_> zzo38, but it's SCIENCE!
19:58:44 <fizzie> I'm not sure what exactly is being wanted here, but of course you could just make another buffer, into which the synchronous audio-output functions write; wrap a mutex around it; if the buffer's full, have the synchronous output function block with SDL_CondWait; and then the audio thread just reads from that buffer and SDL_CondSignal's in case the synchronous audio output function's waiting there.
19:59:03 <Phantom_Hoover_> See? fizzie has SCIENCE!
20:00:34 <fizzie> It has a bit unpredictable latency there, since there's another buffer inside SDL. And you'd need to call the synchronous audio-output function often enough so that the buffer never happens to be empty, but I guess that's a given.
20:02:12 <fizzie> Who wrote this BytePusher/ByteByteJump thing anyway? Someone not on-channel, apparently?
20:03:30 <fizzie> I wanted to comment on the µ-law encoding thing, which I think mostly makes sense only for speech.
20:06:34 <zzo38> You think it is only for speech?
20:06:48 <zzo38> You can post the comment on the Talk page on the wiki
20:06:59 -!- Wamanuz has quit (Remote host closed the connection).
20:07:48 -!- Wamanuz has joined.
20:08:04 <zzo38> Wikipedia does say it is for speech.
20:12:38 <zzo38> Maybe I will wait until they write a program that uses audio, in case they decide to change it back?
20:13:33 <nooga> how to code BBJ ?
20:13:33 <fizzie> Waiting for a audio-outputting program might be a good idea anyway, so you can test your thing. (Though the µ-law lookup table is easy to add/remove, I guess.)
20:15:12 <zzo38> Yes, it is easy to add/remove
20:15:59 -!- augur has quit (Remote host closed the connection).
20:16:21 -!- augur has joined.
20:17:35 -!- cpressey has joined.
20:22:20 <Vorpal> <ais523> what may shock Vorpal even more is that I finally got a small fragment of a Feather interp to work pretty much as expected <-- wow... \o/
20:22:38 <ais523> no, this does not mean the lang itself is working
20:22:45 <ais523> just that the very first stage is not completely impossible
20:23:01 <Phantom_Hoover_> /o/
20:23:02 <myndzi> |
20:23:02 <myndzi> /`\
20:23:52 <Vorpal> ais523, indeed
20:24:05 <Vorpal> ais523, still a first step
20:24:33 <cpressey> ais523: Kudos!
20:26:45 -!- cheater99 has joined.
20:27:43 <nooga> ais523: i also thought a lot about language like Feather
20:27:55 <nooga> and all that comes to me is some kind of Lisp on steroids
20:33:43 <fizzie> I made a random test of a 30-second snippet of music, in both 8-bit unsigned linear PCM and 8-bit µ-law, and the difference is pretty small, so I guess it doesn't really hurt that much to have it there.
20:34:01 <zzo38> fizzie: OK
20:35:22 <fizzie> http://zem.fi/~fis/test-linear.wav and http://zem.fi/~fis/test-ulaw.wav if someone with more discerning ears wants to comment on the µ-law + music use case.
20:35:54 <fizzie> (Technically I guess it's copyrighted audio, but, well, a 30-second lowish-quality snippet...)
20:38:28 <pikhq> fizzie: That'd be a better comparison if it were 44100 Hz.
20:39:23 <fizzie> pikhq: I guess, but the BytePusher has a sampling rate of 15360 Hz.
20:39:32 <pikhq> ...
20:39:36 <pikhq> Why?
20:39:57 <fizzie> A fixed 60 Hz framerate, and 256 samples per frame, if you mean "why that exact number".
20:40:36 <fizzie> If it's a more general sort of why, "dunno" then.
20:41:50 <pikhq> That's not even sufficiently lossless to encode music well.
20:41:56 <pikhq> Erm.
20:42:10 <pikhq> That's not even enough to encode the *base frequencies* of a giant swath of the musical scale.
20:43:37 <fizzie> High-fidelity music may not have been high up on the design criteria list.
20:43:39 <pikhq> Hrm. Actually, looking at a table of notes vs. Hz. You're good up until A8.
20:43:42 <nooga> so
20:43:42 <nooga> how to write programs for bytePusher?
20:43:42 <nooga> is there some compiler?
20:43:47 <pikhq> (which is ridiculously high)
20:43:48 <zzo38> pikhq: It is not enough? Even for square wave or sine wave or other simple things, if you stay in the middle of octave?
20:43:59 <zzo38> Yes, A8 is high.
20:44:12 <zzo38> nooga: No there isn't, but I am writing one
20:44:20 <zzo38> It is more like assembler, though
20:45:26 <pikhq> It'll omit a good chunk of audible frequencies, buuut these are less essential ones, apparently.
20:46:33 <zzo38> But standard music should be enough for simple waveforms, 12-TET, 12-JI, Bohlen-Pierce, and more, which ones are likely to work?
20:47:24 <nooga> zzo38: because i can't imagine how to do arithmetics on oisc
20:47:27 <pikhq> zzo38: Yeah, it'd only start being an issue if you start putting real instruments through there.
20:47:46 -!- calamari has joined.
20:47:57 <pikhq> Ones which have *some* sound above 8 kHz.
20:48:01 <zzo38> nooga: I think the suggestion was doing it using tables.....
20:48:07 <pikhq> (approx.)
20:48:40 <zzo38> And it is OK, since my assembler ("PUSHEM") supports adding tables and calculating values to enter into the tables, including loading them from binary files (for pictures)
20:48:58 <zzo38> You still have to explicitly tell it to add tables, though.
20:49:23 <fizzie> "However, DSD advocates and equipment manufacturers continue to assert an improvement in sound quality above PCM 24-bit 176.4 kHz." -- yeah, right, I'm sure there's a lot of audible fine detail out there somewhere over 80 kHz.
20:50:56 <Vorpal> <pikhq> Ones which have *some* sound above 8 kHz. <-- doesn't most have that?
20:52:07 <Vorpal> pikhq, as far as I remember the overtones for many (all?) instruments in theory goes on forever, getting fainter and fainter the further up they are.
20:52:35 <fizzie> This might depend on your definition of "some"; whether you're being unnecessarily literal with it or not.
20:52:49 <Vorpal> fizzie, hm?
20:53:10 <Vorpal> fizzie, did the second line clarify what I meant?
20:54:17 <pikhq> fizzie: Human hearing goes up to about 20 kHz... :)
20:54:26 <Vorpal> pikhq, well yes there is that limit too
20:54:39 <Vorpal> which makes most of those infinite overtones irrelevant
20:55:13 <pikhq> Vorpal: As well as the whole "approaching 0 dB" thing.
20:55:20 <Vorpal> pikhq, indeed, which I mentioned there
20:55:36 <pikhq> Anyways. CD audio is nearly perfect in terms of audio reproduction.\
20:55:39 <Vorpal> pikhq, what about interference between stuff about 20 kHz and stuff below it?
20:55:52 <Vorpal> probably not a significant issue though
20:56:02 <pikhq> Vorpal: Will get recorded as part of the CD audio.
20:56:12 <pikhq> Keep in mind, you're recording the *net* sound wave there.
20:56:13 <Vorpal> pikhq, well, that is only stereo.
20:56:55 <Vorpal> pikhq, remember you can hear the difference between sounds in more than just left/right direction due to various factors which I forgot the details about
20:57:07 <pikhq> If you make it 32-bit, 44.1 kHz audio, and *record binaurally*, you will have *literally perfect audio reproduction*.
20:57:16 <Vorpal> pikhq, indeed
20:57:16 <nooga> zzo38: excruciatingly slow
20:57:20 <pikhq> (assuming you've got hardware to actually play that back)
20:57:21 <zzo38> Will everyone write only twelve tone equal temperament music on BytePusher, or will some people use other tunings?
20:57:33 <Vorpal> pikhq, that would be a PITA due to varying between different persons though
20:57:39 <Vorpal> the head form and such I mean
20:57:49 <pikhq> Vorpal: Binaural recording with a generic head is "good enough", though.
20:57:50 <fizzie> zzo38: Or will anyone at all write music on BytePusher?
20:57:57 <zzo38> fizzie: I don't know.
20:58:06 <Vorpal> pikhq, not *perfect* though ;P
20:58:13 <pikhq> Yes.
20:58:27 <zzo38> Many music programs support only twelve tone equal temperament, which is good enough for most music, but not everything.
20:58:36 <pikhq> Vorpal: As good as can be achieved for mass distribution, though.
20:59:06 <fizzie> Music-wise BytePusher seems a bit "boring", in the sense that it's just sampled audio playback, not e.g. some funky digital/analog hybrid synth-chip with interesting distortions (I'm obviously referring to the SID here).
20:59:10 <Vorpal> zzo38, I seem to remember my electrical piano supports other tunings than equal temperament.
20:59:23 <Vorpal> doubt midi supports it though
20:59:32 <Vorpal> pikhq, well yes
20:59:35 <pikhq> Also: 32-bit audio there is kinda overkill.
20:59:57 <Vorpal> pikhq, there = ?
21:00:14 <pikhq> 32-bit PCM is sufficient for recording the full dynamic range possible in air.
21:00:18 <pikhq> This includes shock waves.
21:00:19 <Vorpal> right
21:00:28 <zzo38> Vorpal: My digital piano also supports other tunings, but only a few, and not Bohlen-Pierce or 19-tone tunings or anything else like that.
21:00:36 <Vorpal> pikhq, what about other media than air though?
21:00:48 <pikhq> It varies from medium to medium...
21:01:14 <fizzie> Double-precision floating-point audio; freedom from dynamic-range problems.
21:01:33 <Vorpal> zzo38, right. And I can't find the manual for my piano atm. So not sure about what it supports exactly
21:01:34 <pikhq> fizzie: But now you've got imperfect reproduction.
21:01:48 <Vorpal> what about quadruple precision then?
21:01:55 <pikhq> fizzie: 32-bit 44.1 kHz can perfectly represent all sounds that humans can hear in air.
21:01:59 <zzo38> But I have figured out a way to write Bohlen-Pierce music in .IT format, although it doesn't work the best way, since you have to store a sample for each pitch! http://zzo38computer.cjb.net/music2/bohlen-pierce.it
21:02:19 <pikhq> Not just "close enough that the differences are irrelevant". Literally perfect.
21:02:24 <Vorpal> pikhq, what about something in between two values though?
21:02:44 <fizzie> pikhq: There's 52 bits of precision in a double, it can't be any more imperfect than a 32-bit integer. And if you go overkill, you should really go overkill well.
21:02:55 <Vorpal> pikhq, I mean, lets say we have 1000 and 1001 as two values, what about representing a sound in between those?
21:02:57 <zzo38> Do you think this bohlen-pierce.it music works? Obviously it won't work for anything more complicated than what I have done there
21:03:22 <Vorpal> pikhq, of course this is probably pointlessly detailed
21:03:23 <fizzie> It's not "literally perfect" until you hit the Heisenberg limits. :p
21:03:23 <Vorpal> but still
21:03:33 <pikhq> fizzie: Which you do. And go far, far beyond.
21:03:45 <fizzie> I find that pretty suspicious.
21:03:49 <Vorpal> fizzie, hm Heisenberg limits?
21:03:59 <fizzie> h is a very small number, after all.
21:04:11 <Vorpal> is this about quantum mechanics suddenly?
21:04:15 <zzo38> O, you mean Planck units?
21:04:17 <Vorpal> or am I confusing a name
21:04:32 <fizzie> Vorpal: Quantum-mechanics uncertainty about the momentum of the air molecules, you see.
21:04:40 <Vorpal> fizzie, ahahahaha
21:05:22 <Vorpal> fizzie, that isn't enough. Get a compensator for it. Like in star trek. Used to explain how it is possible to beam people iirc
21:05:34 <pikhq> Vorpal: Sample a wave with a sampling rate twice its frequency. Apply the Whittaker-Shannon interpolation formula. You have the *precise* original waveform.
21:06:22 <Vorpal> pikhq, I find having anything precise in a real world measurement pretty suspicious...
21:06:41 <Vorpal> but I'm no expert on this area
21:06:52 <pikhq> Vorpal: It is mathematically precise. In terms of the real-world, you are limited by the quality of your measuring equipment.
21:07:04 <Vorpal> right
21:07:05 <fizzie> pikhq: That would assume continuous-value samples there. Otherwise you'd get quantization noise anyway. Unless the physics of a pressure wave give some limits here, but I'd like to see references for that.
21:08:16 <pikhq> fizzie: Adding finite ranges of samples limits the amplitude...
21:08:51 <pikhq> Hrm. Lemme find in precisely the manner it does so.
21:09:01 <fizzie> I didn't quite understand that last bit.
21:09:16 <Vorpal> anyway why are you limiting yourself to air?
21:09:43 <pikhq> Vorpal: Because we don't generally care about other media
21:10:08 <fizzie> I mean, a finite range of real numbers has just as many real numbers than R, it doesn't help to give a maximum pressure there. You should somehow limit the number of possible pressure levels to < 2^32.
21:11:11 <fizzie> The whole notion of "pressure" gets a bit tricky if you start to consider individual molecules, though. Hmh.
21:12:39 <cpressey> hi calamari
21:12:51 <calamari> hey cpressey
21:12:57 <pikhq> Argh. Quantization does add a small amount of error.
21:12:58 <Vorpal> fizzie, why not record the speed and time of each individual molecule hitting your sound recording hardware?
21:13:25 <Vorpal> possibly also location on the device in question
21:14:06 <fizzie> Vorpal: Why not, indeed! You should sell that sort of stuff to hifists. (It doesn't even have to actually do the impossibilities, they'll pay bazillion dollars for it anyway if you do the marketing right.)
21:14:18 <pikhq> Though one could *quite* feasibly put it up to bitrates that would make a 1-bit difference be below Heisenberg limits, if you set the maximum value as the maximum possible volume in your prefered medium.
21:14:22 <cpressey> Behold, a new use for Google's compute base.
21:15:32 <Vorpal> fizzie, yes I realise it is of course infeasible if not impossible :P
21:16:17 <Vorpal> pikhq, and you claim 32-bit is that for air?
21:16:49 <Vorpal> fizzie, hm should make it go to 12 as well while I'm at it.
21:18:27 <Vorpal> and to answer the inevitable question "go to 12 for what", it doesn't matter. Just pick any suitable setting knob
21:18:39 <pikhq> Vorpal: Actually, I'm going to make the actual, proper calculation, now that I've thought about it some.
21:19:07 <Vorpal> pikhq, right.
21:19:24 * pikhq figures out the conversion rate between a Pascal and a planck mass per (planck length * planck time^2)
21:19:42 <pikhq> (that is, M/(L*T^2)
21:19:44 <pikhq> )
21:19:49 <Vorpal> pikhq, I guess insanely large or insanely small
21:20:14 <Vorpal> though it could be something reasonable-sized. Who knows
21:20:25 <pikhq> Ah, there it is.
21:20:38 <pikhq> 4.63309 × 10113 Pa per M/(L*T^2)
21:20:46 <Vorpal> 10113?
21:20:52 <pikhq> Erm.
21:20:54 <pikhq> 10^113
21:21:00 <Vorpal> ah 10¹¹³
21:21:07 <Vorpal> pikhq, :P
21:22:05 -!- Phantom_Hoover_ has quit (Ping timeout: 265 seconds).
21:22:48 <pikhq> Sooo... A shock wave is 2.18698536 × 10^-129 planck pressures, and that did not help me at all.
21:23:04 <Vorpal> pikhq, -129?
21:23:14 <Vorpal> is planck pressures then a VERY VERY large unit?
21:23:27 <pikhq> Yes.
21:23:31 <Vorpal> ah
21:23:35 <pikhq> It's 4.63309 * 10^133 pascals.
21:23:43 <Vorpal> ouch!
21:24:08 -!- tombom__ has joined.
21:24:11 * pikhq looks for better units
21:25:47 -!- tombom_ has quit (Ping timeout: 276 seconds).
21:25:58 <pikhq> Fuck it. I'm calling 32 bits good enough arbitrarily.
21:26:09 <pikhq> Screw quantisation error. If it matters, you are a freak.
21:26:50 <Vorpal> pikhq, you aren't persistent enough
21:27:14 <Vorpal> pikhq, anyway...
21:27:22 <Vorpal> if 2.18698536 × 10^-129 is max
21:27:39 <Vorpal> what is the heisenberg limit?
21:27:47 <Vorpal> then just take that range
21:28:24 <Vorpal> then take the range 0 to 2.18698536 × 10^-129 and divide in 2^32, if less than heisenberg limit, it is enough
21:28:28 <Vorpal> pikhq, or?
21:28:32 <Vorpal> did I miss something?
21:28:54 <fizzie> The problem is the Heisenberg limit for pressure; I certainly am not a physicist enough to start guesstimating it.
21:29:15 <Vorpal> right, but is my basic idea sound?
21:29:30 <cpressey> < fizzie> The whole notion of "pressure" gets a bit tricky if you start to consider individual molecules, though. Hmh.
21:29:40 <Vorpal> fizzie, also this is pressure, but what defines frequency hm? I'm not audio engineer enough to know this
21:29:57 <cpressey> Might be better to model it directly as the electric and strong forces that are causing it, at that point.
21:29:59 <Vorpal> but certainly you can have differently loud sound at the same frequency?
21:30:33 <Vorpal> cpressey, a bit tricky to record that, no?
21:30:45 <fizzie> You just need enough precision bits to handle all possible pressure levels; and then sample often enough to catch all physically possible frequencies.
21:31:01 <Vorpal> fizzie, ah, so what sampling frequency do we need?
21:31:29 <fizzie> I don't know about that, but probably not something horribly huge.
21:31:35 <Vorpal> oh?
21:32:28 <Vorpal> fizzie, what sort of playback device do you need to play back below 1 Hz I wonder
21:32:37 <cpressey> Vorpal: I can't see how it would be much different from recoring the pressure on a single air molecule.
21:32:40 <Vorpal> I know my headphones claim to go down to 5 Hz
21:32:46 <Vorpal> which is quite absurdly extreme
21:32:50 <cpressey> *recording
21:33:01 <Vorpal> cpressey, hm okay
21:34:43 <fizzie> If you're willing to limit yourself to humans, you can start to derive limits from the ear; those limits are lot more reasonable-sized, but they're a bit "soft" limits.
21:38:14 -!- Phantom_Hoover has joined.
21:40:10 -!- ais523 has quit (Remote host closed the connection).
21:42:06 <zzo38> What are algorithms for simulation of Guqin scales?
21:43:19 <pikhq> fizzie: Though *pressure* probably has reasonable limits if you merely limit yourself to a specific medium.
21:45:06 <nooga> wtf are you talking about
21:45:30 <nooga> from simplistic VM to quantum physics -> #esoteric
21:50:51 -!- choochter has joined.
21:52:34 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds).
21:54:45 -!- tombom_ has joined.
21:57:37 -!- tombom__ has quit (Ping timeout: 252 seconds).
22:04:17 -!- augur has quit (Ping timeout: 245 seconds).
22:05:45 -!- Phantom_Hoover has joined.
22:16:15 <calamari> nooga: they're talking about perfect audio reproduction
22:16:45 <calamari> but somehow they've magically found perfect mics and speakers
22:18:03 <calamari> with THD of 0 and perfectly flat frequency response over an insanely large range
22:19:37 <fizzie> It was more about audio storage/transmission, where we just postulate the existence of perfect recording and playback equipment.
22:21:57 -!- augur has joined.
22:23:15 * cpressey joins some other freenode channels on a whim
22:23:36 <cpressey> Suspecting this will just confirm my suspicion that this is the only one that will hold my interest
22:24:14 <calamari> cpressey: I used to go to #crypto .. that one had some good discussions
22:24:22 <fizzie> Oo, many times I've been considering doing that, but never managed to decide where to join to.
22:24:54 <cpressey> Ha! There's a #falcon
22:26:36 <zzo38> I can set up channels on my own IRC server, too, for things that you might want, and they will automatically be logged. So that can be used if you need this kind of service (if you don't, there are other IRC networks too)
22:26:47 -!- kar8nga has quit (Remote host closed the connection).
22:27:29 -!- augur has quit (Ping timeout: 260 seconds).
22:27:45 <calamari> sometimes when my kids throw a fit is is absolutely hilarious, but I haven't decided if laughing would cause them long term emotional harm
22:35:13 <zzo38> Ask them which way they prefer?
22:36:26 <cpressey> Well. The maintenance guy came up to fix the oven, took it apart (with bits of it all over the kitchen floor now), then left while I was in the other room. Presumably to get a necessary tool or something. Haven't seen him in 20 minutes now, though.
22:36:31 <cpressey> I wonder how this will turn out.
22:39:47 <Vorpal> <calamari> with THD of 0 and perfectly flat frequency response over an insanely large range <-- THD?
22:40:17 <fizzie> A distortion measure.
22:40:23 <fizzie> Total harmonic distortion, was it?
22:40:46 <Vorpal> cpressey, If you are still looking for extra channels, what about #haskell?
22:41:17 <cpressey> Vorpal: 16:40 -!- channels : #bash #scheme #ruby #picolisp #falcon #python #haskell ##pfsense #esoteric
22:41:40 <Vorpal> cpressey, mhm. pfsense? falcon?
22:41:59 <Vorpal> cpressey, #bash can be hilarious at times btw.
22:42:15 <cpressey> Vorpal: Yes! #falcon!
22:42:15 <fizzie> cpressey: A friend just facebooked (and a friend-of-a-friend told a similiar story) about a plumber that came to fix something, left saying "I'll need to go get some more tools from the car", and then never came back (or at least not in two weeks).
22:42:33 <Vorpal> cpressey, watch out for greycat (regular there) trying to help a newbie. Headdesking will likely ensue!
22:43:15 <Vorpal> fizzie, huh.
22:44:00 <Vorpal> cpressey, seems he is offline atm though
22:44:19 <Vorpal> cpressey, what is #falcon about?
22:44:24 <Vorpal> cpressey, another suggestion: #erlang
22:44:47 <Vorpal> cpressey, is it about the birds?
22:45:40 <fizzie> My guess would be the programming language.
22:45:58 <cpressey> Vorpal: Oh, you must have missed the recent, ah, research we've been doing into the Falcon language here recently.
22:46:18 <Vorpal> cpressey, oh? what paradigm is it?
22:46:32 <Vorpal> and why would anyone in this channel be interested in it
22:46:50 <Vorpal> cpressey, I never hard of it as a programming language before today
22:47:35 <Sgeo> Ooh
22:47:50 <Sgeo> I never realized that XChat made it easy to manipulate autojoin channels!
22:48:14 <cpressey> Vorpal: Glad you asked! "Falcon provides six integrated programming paradigms: procedural, object oriented, prototype oriented, functional, tabular and message oriented."
22:48:34 <calamari> fizzie: yeah
22:48:53 <Sgeo> What's the difference between object-oriented and message oriented?
22:49:12 <Vorpal> cpressey, ah okay.... sounds like aiming for bloated... Or to be more precise: tricky to pull that off in a good way and without getting bloated
22:49:52 <Vorpal> cpressey, so what's so special about the language apart from supporting multiple paradigms
22:50:16 <Vorpal> btw, what is the tabular programming paradigm? Lookup tables?
22:51:11 <cpressey> Vorpal: Please read the table on http://www.falconpl.org/index.ftd?page_id=facts -- in particular, the "Functional programming" row.
22:51:41 <Vorpal> hm
22:51:42 <Sgeo> Vorpal, in-memory SQLite with multiple copies of tables
22:52:04 <Sgeo> Well, SQLite-like I guess
22:52:15 <Sgeo> And not using SQL
22:52:20 <Sgeo> Ok, my explanations suck
22:52:55 <cpressey> As far as I understand it, it means to say "None of these other languages try to embed S-expressions in an otherwise vanilla-procedural programming language"
22:55:04 <Vorpal> cpressey, mhm
22:55:08 <cpressey> Oh, but my favourite part is how Falcon does "monadic programming" with "out of band values".
22:55:31 <Vorpal> cpressey, you don't need s-expressions to be functional
22:55:40 <Vorpal> for example, haskell
22:56:03 <Vorpal> cpressey, "monadic programming" with "out of band values" <-- is it just me, or is that technobabel?
22:56:34 <cpressey> Vorpal: Ah, you may be catching on!
22:56:38 <cpressey> "Marking an item as out-of-band allows the creation of monads in functional evaluations. More automatism will be introduced in future, but scripters can have monads by assigning the oob status to complex objects and perform out-of-band processing on them."
22:57:18 <Vorpal> cpressey, where did it say that?
22:57:21 * Vorpal greps the page
22:57:23 <cpressey> I'm really wondering if I'm sick enough to try CODING something in this language. I have the implementation installed...
22:57:34 <cpressey> Vorpal: It's on http://www.falconpl.org/project_docs/core/funset_oob_support.html
22:57:37 <Vorpal> ah
22:58:16 <Vorpal> cpressey, are all parts as bad as the functional part?
22:58:28 <Vorpal> cpressey, or are the procedural parts better?
22:59:44 <Vorpal> cpressey, also the way to measure "raw loop speed" is utterly silly. Just throw in an llvm style JIT there and it would probably constant fold it
23:00:31 <cpressey> Vorpal: I think it's fair to say that it's their approach to language design & implementation, that I find entertaining.
23:00:42 <cpressey> Er, and to ... language marketing.
23:01:01 <Vorpal> cpressey, not as bad as mathematica though
23:01:15 <cpressey> The language itself, if you take out the "ooh! functional!" parts, is pretty plain-jane pythonish-rubyish-whatnot, it looks like.
23:01:22 -!- Mathnerd314 has joined.
23:01:30 <cpressey> Vorpal: Well! When you get into "math tools" -- have you seen R?
23:01:33 <cpressey> OMG, R.
23:01:37 <Phantom_Hoover> As someone who understands monads, I wish to object to this
23:01:48 <cpressey> Phantom_Hoover: :D
23:01:50 <Vorpal> cpressey, read the first paragraph on http://reference.wolfram.com/mathematica/guide/FunctionalProgramming.html
23:02:03 <Vorpal> cpressey, that is one huge ego making false claims
23:02:18 <Vorpal> cpressey, I have heard of R. I never used it.
23:02:18 <Phantom_Hoover> Apparently Haskell and OCaml do not even register to the hugeness of Wolfram's ego.
23:02:22 <Vorpal> can't remember what the code looks like
23:02:34 <Vorpal> Phantom_Hoover, or LISP
23:02:38 <cpressey> Vorpal: Loading. Ah - I should have said "When you get into things done by Wolfram -- well!"
23:02:38 <Phantom_Hoover> Vorpal, it's for st-t-st-cs
23:02:50 <Vorpal> cpressey, indeed
23:02:56 <Vorpal> Phantom_Hoover, ?
23:03:14 * Phantom_Hoover cannot tell for the life of him what Falcon calls monads
23:03:14 <cpressey> "Long viewed as an important theoretical idea, functional programming finally became truly convenient and practical with the introduction of Mathematica's symbolic language."
23:03:15 <Vorpal> oh you removed vowels
23:03:16 <Vorpal> why
23:03:18 <cpressey> Vorpal: OK! You win
23:03:21 <cpressey> !
23:03:29 <cpressey> FINALLY
23:03:31 <Vorpal> cpressey, what?
23:03:34 <Vorpal> cpressey, I won what?
23:03:42 <cpressey> A truly convenient and practical functional programming language!
23:03:47 <cpressey> Vorpal: The Bad Language Marketing Game
23:03:55 <Phantom_Hoover> I mean, is the OOB stuff doing functor-related things?
23:04:11 <Vorpal> cpressey, it also has "industrial-strength string manipulation" according to another page
23:04:14 <Phantom_Hoover> cpressey, Mathematica isn't *that* unpleasant, just agglutinative to an insane degree.
23:04:17 <Vorpal> cpressey, what on earth that means I don't know
23:04:24 <cpressey> Phantom_Hoover: OOB seems to "tag" a value with a special invisible quality which makes some built-in functions do something different with it when they receive it.
23:04:38 <cpressey> Phantom_Hoover: And you thought *I* had a nuts view of monads.
23:04:40 <Phantom_Hoover> It means that it can be used in string factories.
23:04:52 <Vorpal> Phantom_Hoover, hah
23:05:51 <Vorpal> it seems to have functions to compute hamming distance and edit distance... And dictionary lookup. Apart from that it seems like a fairly normal set of functions for string processing
23:06:29 <Phantom_Hoover> If it can be computed, Mathematica has a built-in function for it.
23:06:38 <Vorpal> close
23:07:01 <Vorpal> cpressey, what about this one:
23:07:04 <Vorpal> "Mathematica provides a uniquely integrated and automated environment for parallel computing. With zero configuration, full interactivity and seamless local and network operation, the symbolic character of the Mathematica language allows immediate support of a variety of existing and new parallel programming paradigms and data-sharing models."
23:07:07 <Vorpal> having tried it...
23:07:12 <Vorpal> I can say it is shoddy at best
23:08:08 <Vorpal> and not very automatic at all
23:08:16 <Vorpal> I would rather say it is a PITA to use
23:08:37 <cpressey> "Google saw it and it blew them away! They just up and stopped using MapReduce and started using MATHEMATICA instead!"
23:08:45 <Vorpal> cpressey, I'm not sure if I would rather use it or pthreads. And considering what a PITA pthreads is... that says about everything...
23:08:58 <Phantom_Hoover> cpressey, any idea on what Falcon does when it natters about monads?
23:09:16 <Vorpal> "At the core of Mathematica's symbolic programming paradigm is the concept of transformation rules for arbitrary symbolic patterns. Mathematica's pattern language conveniently describes a very general set of classes of expressions, making possible uniquely readable, elegant and efficient programs."
23:09:18 <cpressey> Phantom_Hoover: I am tempted to ask in #falcon. Maybe after I've had a few drinks.
23:09:22 <Vorpal> that one, I'm not sure what they mean
23:09:38 <cpressey> Phantom_Hoover: But, basically, what I said about it adding a "tag" to a value, is all I can tell.
23:09:46 * Phantom_Hoover is sleep-deprived
23:09:47 <Vorpal> that statement is curiously devoid of any factual information
23:09:50 <Phantom_Hoover> That'll do.
23:09:55 <Phantom_Hoover> /join #falcon
23:10:03 <Vorpal> but it sure sound pretentious!
23:10:21 -!- Gracenotes has quit (Ping timeout: 265 seconds).
23:10:42 <cpressey> Vorpal: So it's a... rewriting language.
23:10:56 <Vorpal> cpressey, yes that's about all it says
23:11:40 <Vorpal> cpressey, mathematica wouldn't so bad if they didn't try to boost it's abilities to this degree. With some more factual documentation it would still turn out a decent product.
23:12:15 <Vorpal> shoddy in many parts though, and worth about 1/6 of the price
23:12:36 <Vorpal> but it wouldn't look so bad compared to it's own documentation!
23:13:28 <Vorpal> cpressey, anyway, it should come at no great surprise that a CAS like mathematica is based on rewriting symbolic expressions
23:14:06 <Vorpal> heck, that is likely the sanest way to implement a simplification function, by rewriting rules
23:14:28 <Vorpal> bbiab
23:14:56 -!- Wamanuz has quit (Ping timeout: 240 seconds).
23:14:57 -!- Wamanuz2 has joined.
23:18:44 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:21:16 <Phantom_Hoover> Is it just me and my Haskell naïveté, or is it a rather ugly hack to add support for monads straight into a language?
23:21:40 <cpressey> Oh damn, I haven't been following this.
23:22:46 <Vorpal> Phantom_Hoover, what is?
23:22:47 <zzo38> Now invent something like METAFONT but for music synthesis.
23:22:55 <cpressey> Phantom_Hoover: Well, uh, "tabular programming paradigm" -- need I say more?
23:22:58 <Phantom_Hoover> cpressey, apparently OOB allows special handling of objects.
23:23:11 <cpressey> Phantom_Hoover: Yes, it's a "please handle me specially" bit.
23:23:13 <Vorpal> Phantom_Hoover, I'm not sure that makes monads though
23:23:22 -!- Gracenotes has joined.
23:23:23 <Vorpal> Phantom_Hoover, can't see how to do the IO monad with it for example
23:23:32 <Phantom_Hoover> I assume from this that they've implemented some horrible hack that bashes functors in somehow.
23:24:30 <Vorpal> cpressey, looks like they ignore TeX too: http://reference.wolfram.com/mathematica/guide/MathematicalTypesetting.html
23:24:38 <Phantom_Hoover> I still don't think you can get proper monads from this.
23:24:43 <Vorpal> and yes, TeX is in my opinion far better
23:25:09 <Vorpal> maybe they are correct about the input, but that is just how they render it
23:25:13 * Phantom_Hoover assumed it used TeX already.
23:25:27 <Vorpal> but the rendered result is shoddy compared to TeX using CM
23:25:32 <Vorpal> Phantom_Hoover, no it doesn't afaik
23:25:39 <Phantom_Hoover> That NIH is slightly worse than zzo's.
23:27:30 -!- madbr has joined.
23:27:31 <zzo38> TeX is better, and it is better for more than just mathematical typesetting. Mathematica is just a large program that does too many things and costs a lot of money, and is not Free Software.
23:27:59 <Phantom_Hoover> Well, you can get around the money pretty easily.
23:28:04 <Vorpal> indeed. We were poking fun at wolfram's large ego
23:28:07 <Vorpal> Phantom_Hoover, indeed
23:28:07 <madbr> http://fr.justin.tv/surasshu#/w/361774448 <-chipmusic stream
23:28:32 <madbr> (original songs from famicompo, quality varies ofc :D)
23:30:19 <zzo38> I don't want that, do you have the .NSF files instead? (If they are written on .NSF, that is.....)
23:30:42 <madbr> yeah
23:30:55 <madbr> http://midr2.under.jp/compo/vol7/index.html
23:30:59 <madbr> link is on these
23:32:03 -!- oerjan has joined.
23:32:33 <zzo38> OK thanks, why didn't you just post that one at first?
23:32:55 <madbr> cause we're doing a synclisten in espernet #mod_shrine
23:33:05 <madbr> but yeah that's fine too
23:33:10 <madbr> check out original #1
23:33:59 -!- teuchter has joined.
23:34:13 -!- alise has joined.
23:34:43 * oerjan was wondering about the alise deficiency
23:34:54 <zzo38> madbr: Original #1 is the one I currently have playing
23:35:02 <alise> oerjan: I simply had to be at a place today.
23:35:30 -!- choochter has quit (Ping timeout: 258 seconds).
23:35:52 <oerjan> yes but it's evening now
23:36:17 <Phantom_Hoover> oerjan, it's very nearly morning.
23:37:04 <oerjan> depends on your definition of "morning" - it feels strange to call just after 12 am morning
23:37:32 <zzo38> O! Entry number 2 uses MMC5
23:40:08 <zzo38> An idea I have is to make a .NSF music with multiple tracks, where each track is a variation of the same music, such as looping/non-looping, different waveforms, turning the music backward and/or upsidedown, different temperament, and so on
23:40:24 <alise> oerjan: I had to get up early and couldn't sleep; after coming back, I was tired enough to want to rest a bit before trekking up the stairs.
23:41:03 <madbr> zzo: not allowed in famicompo :( (no multi-tracks)
23:41:30 <oerjan> <fizzie> Who wrote this BytePusher/ByteByteJump thing anyway? Someone not on-channel, apparently?
23:41:37 <oerjan> javamannen on the wiki
23:41:42 <zzo38> Can .NSF format use different temperament?
23:41:58 <madbr> zzo: yeah but why would you use it
23:42:12 <zzo38> madbr: Why is that? What if they just make it if it has multiple tracks, they just use only track zero
23:42:31 <zzo38> Or, if they won't accept multi-tracks, just change the number of tracks in the header to zero before submitting the file
23:42:32 <madbr> I dunno, they just have a rule against it :/
23:42:39 <zzo38> (I mean, to one track)
23:43:21 <zzo38> madbr: So that you can use just intonation music, or pythagorean tuning (for Chinese music), or Bohlen-Pierce, or any other temperament, instead of using twelve tone equal temperament all the time
23:43:44 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
23:44:04 <zzo38> madbr: Do they accept it if the file has multiple tracks but you change the header so it says it is only one track, and the others are not accessible unless someone fixes the file?
23:44:19 <madbr> yeah but in practice pythagorean is almost exactly like equal temperament
23:45:20 <zzo38> madbr: Yes it is close, but for some things it is better.
23:46:12 <madbr> bohlen-pierce has like no octave or no 5th
23:46:30 <madbr> zzo: the difference is like less than the nes tuning accuracy
23:46:56 <oerjan> (well, or so one might assume, the initial edits were anonymous ip. "javamannen" means "the java man" in norwegian, btw)
23:47:29 <zzo38> madbr: Yes that is true, but that is because Bohlen-Pierce has different intervals instead, for writing different kind of music. Just like just intonation and Mersenne and so on is all for different kind of music.
23:47:40 <cpressey> < Phantom_Hoover> I assume from this that they've implemented some horrible hack that bashes functors in somehow. <-- I simply assumed they wanted the use the word "monad" without regard for what it meant.
23:47:48 <cpressey> Oh, it's still goin.
23:47:49 <madbr> zzo: but yeah in some music engines like it2nsf it's easy to detune by about the right amount
23:47:50 <cpressey> *going
23:48:17 <Phantom_Hoover> Well, after much questioning, I still have little idea what they're going on about.
23:48:26 <madbr> it2nsf can detune in 1/16ths of a semitone
23:49:07 <zzo38> madbr: That is, if you are using a program like it2nsf. If you program directly instead, you could program it however you want (within the limits of the NES APU and any audio addons that are part of the .NSF format)
23:49:41 <madbr> zzo: that's not a good strategy for making music
23:50:06 <madbr> simply because it makes it harder to put in notes and listen to what you're doing
23:50:35 <zzo38> Some people listened to music in their mind because they cannot hear it
23:51:08 <zzo38> Tracker programs are just too limited in my opinion
23:51:21 <madbr> limited? by what? :D
23:52:11 <zzo38> Limited in all sorts of ways. These programs are not METAFONT!
23:52:53 -!- teuchter has quit (Ping timeout: 265 seconds).
23:53:09 <Phantom_Hoover> I think I've come to a degree of understanding over OOB monads, and my conclusion from this is that they're so hideous I won't explain out of kindness.
23:54:00 <cpressey> Phantom_Hoover: Thank you.
23:54:02 <madbr> metafont?
23:54:23 <zzo38> madbr: Have you heard of TeX? METAFONT is the program to design fonts for TeX documents.
23:54:41 <Phantom_Hoover> If I understand correctly, the way they do it will cause map to explode if you use a monad in it.
23:55:05 <zzo38> And I think TeX and METAFONT are very good for the things they do.
23:55:37 <Phantom_Hoover> And various other bits are so crazy that I feel that I must have got them wrong, but fear that I haven't.
23:56:17 <cpressey> Phantom_Hoover: Good times!
23:56:21 <madbr> zzo: well, it's kinda like... mml is more flexible than trackers
23:56:33 <Phantom_Hoover> cpressey, what's going on now?
23:56:36 <madbr> but mml is for aspies really
23:56:45 <alise> Phantom_Hoover: OOB?
23:56:45 <zzo38> madbr: What does "mml" means?
23:56:54 <Phantom_Hoover> alise, you know Falcon?
23:57:03 <madbr> mml is a system used mostly by japanese composers
23:57:11 <alise> No, thankfully; but yes, of it.
23:57:16 <Phantom_Hoover> Somewhere they said they could do monads through some mysterious OOB thing.
23:57:18 <cpressey> Phantom_Hoover: Not much. Mathnerd314 is continuing to... explore their concepts.
23:57:29 <madbr> basically you write your song in text format and it compiles it to nsf
23:57:30 <Phantom_Hoover> I, curious, investigated.
23:57:42 <cpressey> Phantom_Hoover: Well, by which I mean, he said something.
23:57:47 <Phantom_Hoover> The rest is basically Lovecraft but with crappy languages.
23:58:05 <zzo38> madbr: Where is more information?
23:58:24 <cpressey> alise: We discovered that there is a #falcon channel on freenode. Hilarity ensued!
23:58:51 <cpressey> Oh no.
23:58:54 <madbr> zzo: http://en.wikipedia.org/wiki/Music_Macro_Language
23:58:59 <zzo38> OK
23:59:03 <alise> cpressey: Watch as I get banned!
23:59:06 <Phantom_Hoover> cpressey, alise didn't join, did he?
23:59:11 <alise> Phantom_Hoover: You bet it, baby.
23:59:13 <alise> :|
23:59:17 <alise> <alise> Wow, it's like the insane asylum created an outpost, and it's on IRC!
23:59:18 <Phantom_Hoover> This I must see!
23:59:51 <alise> Aww, he ignores me because I hurt his feelings.
00:00:03 <alise> (jonnynomind)
00:00:08 -!- FireFly has quit (Quit: swatted to death).
00:00:14 <alise> I hate them because they broke my brain and I want it back.
00:00:34 <madbr> zzo: basically it's polyphonic zzt #play
00:00:36 <Phantom_Hoover> Is it just me, or does implementing monads in the language itself seem like an inelegant hack?
00:01:08 <alise> Phantom_Hoover: Pretty much,
00:01:09 <alise> *much.
00:01:44 <oerjan> 13:00:14 <pikhq> 32-bit PCM is sufficient for recording the full dynamic range possible in air.
00:01:47 <oerjan> 13:00:18 <pikhq> This includes shock waves.
00:02:20 <oerjan> we need that for those realistic nuclear hand grenade first-person shooters
00:02:52 <alise> Phantom_Hoover: He's going to treat us like a band of trolls!
00:02:55 <alise> Invading!
00:02:56 <alise> Or -- ignore us.
00:03:00 <madbr> pikhq: haha that's nice
00:03:00 <Phantom_Hoover> :)
00:03:00 <fizzie> oerjan: Also "end of the world"-class disaster movie soundtracks.
00:03:15 <oerjan> yeah
00:03:22 <Mathnerd314> alise: maybe you should just tell him that #esoteric is invading
00:03:41 <Phantom_Hoover> ATTACK
00:03:46 <Phantom_Hoover> Leave no prisoners!
00:04:09 <alise> Mathnerd314: "We will add your syntactical and semantical distinctiveness to our own. Your language will adapt to service us. Resistance is futile."
00:04:56 <alise> *semantic, not semantical
00:05:19 <Mathnerd314> haha, yes. An esolang named Borg...
00:05:26 <Sgeo> Wow, that's a pretty good attack against the esoborg
00:05:39 <alise> Sgeo: What is, exactly?
00:05:41 <Sgeo> Have them try to assimilate a poisonous language
00:05:48 <alise> xD
00:06:14 <alise> Mathnerd314: its only instruction is to load an esolang from the wiki
00:06:17 * Mathnerd314 needs to watch more Star Trek
00:06:21 <alise> and combine it with the current one
00:06:22 <oerjan> Mathnerd314: we'd need a Category:Borg_assimilee to add to other languages then
00:07:02 <Sgeo> What happens when it tries to assimilate a Lisp and Factor?
00:07:09 <Sgeo> pre and post fix?
00:07:18 <alise> "They doesn't have to."
00:07:20 <Mathnerd314> they combine to get mixfix
00:07:21 <Sgeo> Actually, I was vaguely wondering what a combination would be like
00:07:37 <alise> Sgeo: (define (f x) [(+ 2 "abc" length 2 +)] call)
00:07:56 <Sgeo> I was thinking more along the lines of some words being prefix some being suffic
00:07:59 <Sgeo> *suffix
00:08:02 <Sgeo> And no parents
00:08:05 <Sgeo> *parens
00:08:09 <alise> he said synergies
00:08:52 <oerjan> an orphan language
00:08:57 <Mathnerd314> so something Haskell-like except with suffix-functions
00:09:37 <alise> <Phantom_Hoover> Did you just seriously use the word synergy in a non-ironic context?
00:09:37 <alise> <jonnymind> Phantom_Hoover: did you seriously use the word non-ironic in an non-ironic context?
00:09:38 <alise> <Phantom_Hoover> You could probably run Wolfram Research in a few years if you started now.
00:09:38 <alise> <jonnymind> Phantom_Hoover: Uhm... is that good or bad?
00:09:46 <oerjan> incidentally, parens is no more a logical abbreviation of parentheses than parents is
00:10:06 <Phantom_Hoover> alise, should I tell him or goad him further?
00:10:17 <alise> Phantom_Hoover: Don't be nasty; he's a lunatic, not a murderer.
00:10:20 <alise> But don't tell him anything.
00:10:25 <alise> This is a silent invasion of laughter.
00:10:27 <oerjan> ok maybe slightly, the latter divides a phoneme
00:11:23 <oerjan> `addquote <alise> Phantom_Hoover: Don't be nasty; he's a lunatic, not a murderer.
00:11:38 <fizzie> Parenth, for people with lithpth.
00:11:41 <HackEgo> 218|<alise> Phantom_Hoover: Don't be nasty; he's a lunatic, not a murderer.
00:11:43 <Phantom_Hoover> <Phantom_Hoover> jonnymind, oh, good. Your attitude towards language design is very similar to that of Wolfram himself.
00:11:44 <Phantom_Hoover> <jonnymind> Uhm... in that case: thanks.
00:12:04 <alise> <lucone> even the egos are similar....
00:12:04 <alise> <lucone> :)
00:12:04 <alise> <jonnymind> ....
00:12:04 <alise> * jonnymind searches the ban button :)
00:12:13 <alise> Even his channel members are turning against him!
00:12:35 <oerjan> poor lucone, banned for getting the joke?
00:12:54 <alise> hahahaha
00:12:58 <alise> everyone's just ganging up against him
00:13:00 <alise> poor guy
00:14:26 <zzo38> Is there a addon for PPMCK that allows mixing MML codes with assembler codes and machine codes?
00:14:39 <Phantom_Hoover> <jonnymind> falcon had to be fast in managing raw native data in a way that was high level and comfortable in a script. ← therefore monads. Makes sense.
00:15:42 <alise> <alise> A design philosophy combines their justifications into one coherent goal.
00:15:43 <alise> <jonnymind> alise: was getting to it.
00:15:48 <alise> <lists 20 minor design goals>
00:15:55 <Phantom_Hoover> alise, I think we both know his design goal.
00:16:12 <Phantom_Hoover> "Put all of the cool toys from other languages in!"
00:16:16 <alise> When I degenerate into just outright flaming his stupidity, I'm gonna whip out the Borg line.
00:16:41 <Phantom_Hoover> Hmm, what interesting esolangs can we add?
00:16:46 <Phantom_Hoover> Ooh, Feather!
00:16:58 <zzo38> Phantom_Hoover: Add to...?
00:17:07 <Phantom_Hoover> Falcon.
00:17:41 <alise> Phantom_Hoover: Okay, stop being evil.
00:17:48 <alise> I seriously want to interrogate this insane man.
00:17:51 <Phantom_Hoover> OK... :(
00:19:48 <alise> <alise> Feather barely even exists in its creator's mind.
00:19:48 <alise> <alise> (Like a four-spatial-dimensional object, poking slightly in and moving around in some incomprehensible way, dropping out occasionally.)
00:19:48 <alise> <lucone> o,O
00:19:48 <alise> <lucone> that's poetry...
00:20:03 <zzo38> Add some of the INTERCAL stuff, such as the FORGET command and things like threaded COME FROM.
00:20:18 <zzo38> And also add the preprepreprocessor. (Enhanced CWEB has a preprepreprocessor)
00:20:19 -!- wareya has quit (Read error: Connection reset by peer).
00:21:10 <Phantom_Hoover> alise, finally gave in?
00:21:16 -!- wareya has joined.
00:21:26 <alise> Phantom_Hoover: No, I realised it could work earlier on being said by Falcon.
00:22:07 <Phantom_Hoover> MWAHAHA he does not know of our secret war room
00:22:35 <alise> We shall take Tiger Mountain. By strategy!
00:22:37 <oerjan> <fizzie> cpressey: A friend just facebooked (and a friend-of-a-friend told a similiar story) about a plumber that came to fix something, left saying "I'll need to go get some more tools from the car", and then never came back (or at least not in two weeks).
00:22:49 <Phantom_Hoover> alise, BtW, Feather is meant to be computable, and AFAIK is.
00:22:50 <oerjan> clearly there is an epidemic of alien plumber abductions
00:22:57 <alise> Phantom_Hoover: I know.
00:23:26 <oerjan> or wait the other one was a maintenance guy, not a plumber
00:23:35 <oerjan> but the evidence is clear, anyway
00:23:39 <cpressey> fizzie: FTR he did eventually come back and say that it needs a part that he won't be able to get 'til Tuesday.
00:23:55 <Phantom_Hoover> Evidently aliens are bad at UFO maintenance.
00:24:05 <cpressey> Plumbers are just specialized pipe maintenance guys.
00:24:26 <oerjan> Phantom_Hoover: ooh, maybe they've been abducting people to fix it, yeah
00:24:40 <Phantom_Hoover> Obviously.
00:24:43 <alise> Unix is primarily about pipe maintenance.
00:25:22 <alise> Hey, another Voyager cast member who hates it!
00:25:24 <alise> [[After being cast as Harry Kim, Wang had a strained relationship with Voyager executive producer Rick Berman, who took over from Star Trek inventor Gene Roddenberry: "When Roddenberry passed the reins over to [Rick] Berman, unfortunately Berman kept the same formula. And he just kept plugging it in. So when I'm asked what made Voyager stand out...you are talking about the same overall formula so it doesn't. It has stayed the same for every single episode.
00:25:24 <alise> "]]
00:25:41 <oerjan> alise: why else would the internet tubes run on it, duh
00:25:47 <alise> [[In a 2007 interview with scifiworld.com, Wang voiced his displeasure about the show. He felt the Harry Kim character was "underused", passive and one-dimensional. Prior to Season 2, he went to the producers and said: "Listen I want to have a stunt double, I want to do some stunts, I want to run, I want to kick; I want to have a love life". He also stated to only have had "minimal" creative impact upon Harry Kim: he desperately wanted Harry Kim to be funn
00:25:47 <alise> ier, but the producers felt that Neelix or The Doctor fit better as comic relief. In the end, he described it as unfulfilling,[2] and also spoke of a "rift" between Berman and him.[1] When he complained that every other character on the show got promoted except Kim, he was told that he had to remain the lowly Ensign because "well someone's got to be the ensign".[3]]]
00:27:30 <alise> <alise> jonnymind: Philosophies usually are :)
00:27:31 <alise> <jonnymind> let's say that there may be different ways to solve a problem.
00:27:31 <alise> <jonnymind> Not the complexity theory.
00:27:35 <alise> A--what now?
00:28:07 <Phantom_Hoover> alise, you want to enjoy Falcon?
00:28:13 <alise> Phantom_Hoover: I have to keep the peace.
00:28:18 <alise> This is interesting.
00:28:26 <alise> Although I have decided he simply has really terrible taste.
00:28:27 <Phantom_Hoover> alise, you are a better man than I.
00:28:46 <alise> ...   [ name|"unknown", income| {=> self.name.len()*100} ],
00:28:48 <Mathnerd314> hmm. Borg should have a design philosophy.
00:28:59 <alise> Just call me Abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
00:29:15 <Phantom_Hoover> I am still of the opinion that his philosophy is that other languages have cool things, and that he wants these cool things.
00:31:19 <zzo38> Add commands to adjust the optimizer
00:31:40 <zzo38> Add stack based programming
00:31:49 <oerjan> Mathnerd314: to assimilate all other languages and their features is not obvious enough for you?
00:31:54 <Phantom_Hoover> Add dependent theorem proving!
00:32:46 <Phantom_Hoover> For Borg, how about have one construct, "<lang> will be assimilated" and then perform the following block of code?
00:33:22 <oerjan> Phantom_Hoover: i haven't looked at falcon but my intuition is that there are clearly cool features in various languages that are _incompatible_ with each other. and that _might_ be part of falcon's problem, i don't know.
00:33:24 <Phantom_Hoover> Possibly piping each block to the next, or viewing it as a function of some description.
00:33:56 <zzo38> You need function concatenation operator
00:34:15 <Phantom_Hoover> zzo38, also known as "composition".
00:34:30 <zzo38> Phantom_Hoover: Yes.
00:35:16 <Phantom_Hoover> "<lang> will be assimilated [as <function name>] [with <implementation]"
00:35:35 <oerjan> (full type inference vs. object subtyping, for one. simplicity vs. all the rest, for another...)
00:36:21 <Phantom_Hoover> I think this is why its monads are hideous.
00:36:27 <zzo38> You need to add some features that are like Forth. Often it is a kind of problem a bit sometimes that other program language do not have these kind of feature like Forth.
00:36:34 <zzo38> Add rule functions like Magic Set Editor has.
00:37:11 <alise> Very, very slightly.
00:38:24 <Phantom_Hoover> Well, the overall justification is interesting, but not very sensible.
00:39:10 <oerjan> <cpressey> Phantom_Hoover: OOB seems to "tag" a value with a special invisible quality which makes some built-in functions do something different with it when they receive it.
00:39:22 <Vorpal> zzo38, why does everything have to be like Forth? Surely some non-Forth languages might be good?
00:39:52 <oerjan> hm that's more or less the idea i had for the LiMonadE vapor-language (unlambda + monads)
00:40:08 <Vorpal> oerjan, augh at the pun
00:40:09 <zzo38> Vorpal: Not everything has be like Forth, but some of these feature are useful
00:40:14 <oerjan> (the quality being the monad, of course)
00:40:16 <Vorpal> mhm
00:40:38 <zzo38> Make a preprepreprepreprocessor
00:40:48 -!- myndzi\ has joined.
00:40:51 <zzo38> And also postpostpostprocessor
00:41:14 <Vorpal> for what?
00:41:36 <zzo38> I think this kind of feature can be useful sometime
00:42:10 <Vorpal> I can't see the use for more than a single layer of pre-processing in general.
00:42:31 -!- myndzi has quit (Ping timeout: 240 seconds).
00:42:51 * Vorpal consider lisp meta-macros
00:42:55 <Vorpal> augh
00:43:48 <Phantom_Hoover> ...And jonnymind has just said that his monad model can easily break if you use it with map.
00:43:58 <Phantom_Hoover> Words cannot express how stupid that is.
00:45:27 <Vorpal> night
00:45:59 * Phantom_Hoover → sleep
00:46:02 -!- Phantom_Hoover has quit (Quit: Leaving).
00:49:41 <zzo38> Enhanced CWEB has its own meta-macros format, and they have many purposes, and can be mixed with TeX as well as with the C preprocessor, and that means it can do a lot of things.
00:51:17 <zzo38> (A common thing I use is to define @-p to predeclare a procedure as well as start its definition, without having to repeat it)
01:06:36 -!- tombom_ has quit (Quit: Leaving).
01:14:24 <cpressey> oerjan: Re Falcon: it is both the incompatibility of everything, plus the, well, non-standard nomenclature. I would bet the designers do not hold degrees in CS (otherwise they would be more careful about what they call a "monad" or "functional programming", is all.)
01:15:18 <oerjan> mhm
01:15:42 <oerjan> (mind you i don't hold a degree in CS either :D)
01:15:51 -!- Tatiana1 has joined.
01:16:22 <Tatiana1> Hi
01:16:28 <oerjan> hi
01:16:52 <Tatiana1> First of all, sorry for my terrible english
01:17:33 <alise> Hi.
01:17:36 <alise> We're not about religion.
01:18:04 <Tatiana1> ok
01:18:10 <Tatiana1> Where are you from?
01:18:16 -!- sftp has quit (Remote host closed the connection).
01:18:21 <Sgeo> The Internet
01:18:36 <zzo38> From home
01:18:48 <Sgeo> Home
01:18:50 <Sgeo> Let me come home
01:18:55 <Sgeo> Home is whenever I'm with you
01:18:58 <zzo38> You have to go to your own home
01:19:02 <zzo38> And I go to my own home
01:20:39 <oerjan> Tatiana1: i am from norway. although this channel is not usually an "ordinary" chat channel either (we talk about computers, technology and math a lot)
01:20:55 <Sgeo> "ordinary"?
01:21:08 <Sgeo> Are you saying that ordinary chat rooms have most of the people be from the same area?
01:21:19 <Sgeo> If so, where would I find such a chat channel for my area?
01:21:32 <oerjan> actually i have no idea what they are like since i've probably never been on one :D
01:21:38 <Tatiana1> ok, it is a ecletic chat rsrsrs
01:21:49 <Sgeo> ecletic?
01:22:07 <zzo38> It is for esoteric programming, so you can look at the wiki for more information about esoteric programming language
01:22:09 <alise> Sgeo: buy a dictionary
01:22:14 <alise> what zzo38 said, i was about to say that
01:22:20 <oerjan> Sgeo: what i really mean is that we're not the kind of chat where you start out by asking people where they are from ;D
01:22:21 <alise> Sgeo: or use the internet
01:22:34 <zzo38> oerjan: Yes.
01:22:59 <Sgeo> No such word as ecletic
01:23:07 <zzo38> It is correct. We not generally start by asking where you are from
01:23:08 <nooga> worp
01:23:12 <oerjan> although many of us do know where many of the others are from, eventually :)
01:23:28 <oerjan> at least approximately
01:23:37 <zzo38> Sometimes looking at the IP address / domain name can help a bit
01:23:47 <zzo38> To see where you are from, in case you are interested
01:24:08 <nooga> worp worp
01:24:15 <Sgeo> Well, the Internet has been unhelpful
01:24:52 <oerjan> and to do that, you can usually do a /whois someone's_nickname command. i think. it probably depends on client.
01:24:57 <alise> Sgeo: oh, i see, boring typo pointing outs
01:25:06 <nooga> shoerp
01:25:10 <nooga> alk
01:25:15 <Sgeo> And eclectic doesn't seem to have any.. oh, I see what he thinks this is
01:25:20 <Sgeo> Just a general chatroom?
01:25:23 <nooga> worp worp worp
01:25:25 <Sgeo> Combination of stuff?
01:25:26 <zzo38> In this client it just displays it in every message that user sends.
01:25:35 <cpressey> *Are* there "general chatrooms" on freenode?
01:25:41 <Sgeo> cpressey, defocus
01:25:57 <nooga> knarl
01:26:07 -!- augur has joined.
01:26:09 <zzo38> We do all sorts of stuff in this channel, but mostly programming stuff, and sometimes mathematical stuff, and things related to that, are most common. And esoteric programming discussion is on topic to this channel.
01:26:10 <alise> cpressey: defocus; it's shit
01:26:40 <Sgeo> alise, it's an IRC channel
01:26:43 <Sgeo> How can it be shit?
01:26:54 <zzo38> (This client displays other client's IP address / domain name before every message, in dark cyan, after the @ sign)
01:27:52 <oerjan> Sgeo: we _are_ pretty eclectic, just not general. iiuc what eclectic means.
01:27:58 <alise> Sgeo: is this one of your hyper-literal-interpretations-are-hilarious thing, or just... I don't know
01:27:59 <cpressey> Tatiana1: #esoteric = (computer programmers | mathematicians) + (very smart | very strange | very creative)
01:28:07 <alise> cpressey: hahahaha
01:28:08 <alise> talk about ego
01:28:18 <Tatiana1> rsrsrsrs i liked
01:28:26 <Tatiana1> where are you from?
01:28:28 <cpressey> Tatiana1: I don't follow "rsrsrs".
01:28:31 <zzo38> cpressey: I guess that is pretty close!
01:28:43 <Sgeo> alise, it's an uttern failure to understand
01:28:44 <alise> #esoteric = (dabblers & dilettantes & amateurs) + (computing skill) + (a few people of actual merit) :-)
01:28:52 <alise> but we're cool dilettantes!
01:28:53 <Tatiana1> "rsrsrsrs" = smile
01:29:01 <alise> Sgeo: #defocus is shit. As a community ... it is shit.
01:29:02 <zzo38> alise: I suppose that is also it!
01:29:09 <alise> Are you unfamiliar with the expletive "shit"?
01:29:19 <Sgeo> rsrrrrr
01:29:32 <oerjan> Tatiana1: rsrsrsrs isn't very common here, we usually use smileys or maybe a lol
01:29:35 <nooga> alise: who is of actual merit?
01:29:43 * Sgeo has never seen rsrsrsrs before now\
01:29:44 <cpressey> alise: I suppose I'm painting the ideal rather than the reality. But, damn, most of us *are* one of those.
01:29:46 <Sgeo> Have seen rsr5
01:29:58 * oerjan swats Sgeo -----###
01:30:14 <alise> nooga: well, that would be telling (and rude to everyone else). (ais523, cpressey, oerjan, a few others)
01:30:33 <nooga> ofc including yourself.... ?
01:30:35 <Tatiana1> rsrsrs or huahauhaua
01:30:42 <alise> nooga: I don't see why.
01:30:53 <Sgeo> Oh, it
01:30:57 <Sgeo> s r5rs?
01:31:01 <nooga> nothing, ignore that
01:31:03 * Sgeo selffacepalms
01:31:09 <alise> Dabbling dilettante with computing skill. I don't see why that doesn't fit me better than actually-skilled-person.
01:31:41 <nooga> Tatiana1: hau hau is actually a way to write the sound that dogs make
01:31:43 <nooga> in Polish
01:31:52 <zzo38> I think both cpressey's and alise's fits well.
01:32:11 <Tatiana1> hau hua = is smiling
01:32:12 <cpressey> alise: Well. If you want to look at what we DO, sure. We dabble. We... dilletante things up.
01:32:13 <Tatiana1> :P
01:32:13 <oerjan> Sgeo: i have a hunch alise may think general chatrooms are shit in general
01:32:28 <alise> oerjan: absolutely not! I loooove #esoteric
01:32:36 <Sgeo> rofl
01:32:38 <Tatiana1> where are your from?
01:32:46 <nooga> erm
01:32:50 <oerjan> alise: i thought we just established #esoteric was _not_ a general chatroom
01:32:54 <Sgeo> The observable Universe
01:33:03 <nooga> we had that map, remember?
01:33:04 <alise> oerjan: well we like to pretend it's not :-)
01:33:16 <zzo38> Tatiana1: I am from Canada, in case you really care. (You can check my domain name and see that my service provider is from Canada, too)
01:33:19 <alise> nooga: we downloaded all the data before the site shot itself
01:33:22 <Sgeo> He has no face!.... erm, it has no topic1
01:33:47 <oerjan> although of course #esoteric may be twisted into an approximation of what hyper-geeks might think an ideal general chatroom _should_ be. it's why i'm here, isn't it.
01:33:49 <Tatiana1> understood
01:33:59 <alise> Tatiana1: England, the country of violating 14 year olds' human rights as defined by the UN, and rain.
01:34:03 <alise> Uhh, I'm totally not bitter or anything.
01:34:09 <Sgeo> Wow, that reference is ungoogleable
01:34:10 <nooga> yeah right
01:34:17 <alise> Sgeo: *topic!
01:34:34 <Sgeo> It is modarchive.org -able
01:34:47 <alise> nooga: ?
01:34:54 <nooga> nothing :D
01:35:13 * Sgeo decides that the n in nooga stands for "nothing"
01:35:22 <Tatiana1> I`m from Brazil
01:35:26 <oerjan> Sgeo: actually my swat wasn't for your misspelling, i didn't even notice that :D
01:35:36 <cpressey> Well, what, "on topic"? A few days ago I released a stupid language called Eightebed, which proved nothing *really*, but which released me to work on something else for a while. I've had a few ideas, one of which is a fixed set of grid-rewrite rules which I think could be Turing-complete in an interesting way.
01:35:42 <zzo38> Tatiana1: But maybe you want to see the things that the people on this channel have invented and stuff, if you really care, that is.
01:35:52 <nooga> Tatiana1: Poland, polar bears, vodka, moustache etc etc
01:36:07 <cpressey> And the occasional vodka moustache.
01:36:12 <nooga> ;D
01:36:19 * Sgeo attempts to make BF-RLE sound important
01:36:23 <nooga> i've never seen a goddamn polar bear
01:36:38 <alise> nooga: oh in reply to what i said? :)
01:36:42 <Sgeo> ISIDTID
01:36:52 <nooga> i think so ;f
01:37:16 <cpressey> nooga: Go to the zoo
01:37:20 <Sgeo> http://modarchive.org/index.php?request=view_by_moduleid&query=73115
01:37:21 <Tatiana1> I`m telling the truth
01:37:24 <nooga> anyway, sleep time, brb
01:37:29 <Sgeo> shipped with the desktop version of Alchemy
01:38:16 <alise> Tatiana1: we didn't say otherwise
01:38:37 <cpressey> Tatiana1: I'm more of a "This sentence is false" person myself.
01:39:07 <Sgeo> This sentence is true but unprovable.
01:39:23 <Tatiana1> :P
01:39:47 <Sgeo> This sentence is false, but its negation is unprovable.
01:39:57 <oerjan> nooga: i'm not sure you quite get the r part of brb
01:40:17 <oerjan> either that or you sleep rather fast
01:40:21 <Sgeo> This sentence is true, and its negation is unprovable
01:40:28 <Sgeo> This sentence is false and unprovable
01:40:34 <Sgeo> Work out stuff relating to the above
01:40:42 * Sgeo makes hand-wavy gesture
01:41:00 <oerjan> This sentence is equivalent to the Riemann hypothesis.
01:41:22 <Sgeo> Surely "The Riemann hypothesis." is simpler?
01:41:24 <cpressey> Tatiana1: Brazil's pretty cool. That's where Lua comes from.
01:41:26 <Sgeo> erm
01:41:31 <Sgeo> Surely "The Riemann hypothesis is true." is simpler?
01:41:32 <zzo38> This sentence's negation is provable if and only if the Riemann hypothesis is correct.
01:41:37 <Tatiana1> Lua?
01:42:02 <cpressey> Oh, I forgot to mention: we're largely concerned with programming languages, formal calculi, and models of computation here.
01:42:07 <cpressey> Lua's a programming language.
01:42:14 <oerjan> Sgeo: hm
01:42:17 <Sgeo> May be easier to deal with "This sentence's negation is provable if and only if statement P is true."
01:42:33 <Sgeo> See how that relates to statement P
01:42:40 <zzo38> Sgeo: OK.
01:42:58 <Sgeo> The jsforth guy complained about Lua due to lack of bit manipulation
01:42:59 <cpressey> Maybe "largely concerned" is too strong. Theoretically, we all like those things. They make us feel good.
01:43:01 <Sgeo> iirc
01:43:35 <zzo38> Sgeo: I also complained about Lua due to lack of bit manipulations, too.
01:43:54 <cpressey> I could care less for bit manipulations. I mostly like Lua.
01:44:12 <Sgeo> I don't mind 1-indexing in a language. But when it's supposed to interact with C..
01:44:27 <Sgeo> Not really a strong complaint, but still
01:44:39 <Sgeo> Ooh! adjustable indexing!
01:44:42 * Sgeo turns into a Perl
01:44:48 <alise> <oerjan> either that or you sleep rather fast ;; damn Uberman
01:45:06 <alise> <Sgeo> Surely "The Riemann hypothesis is true." is simpler? ;; Surely [Riemann hypothesis] is simpler?
01:46:10 <cpressey> Sgeo: I'm not thrilled with the conflating of maps and arrays. Part of me says, that's just going too far.
01:46:23 <Sgeo> It's fun!
01:46:31 * Sgeo evillaughs
01:47:28 -!- Tatiana2 has joined.
01:47:57 <alise> cpressey: Better than Tcl conflating everything with strings.
01:48:39 * Sgeo o.Os at the number of Titanics in the Futurama universe
01:49:02 <oerjan> Sgeo: is it countable or uncountable?
01:49:14 <Sgeo> countably finite
01:49:22 <oerjan> BORING
01:49:27 * Sgeo wonders if "uncountably finite" makes sense
01:49:45 <oerjan> i don't think so
01:50:09 <zzo38> Sgeo: It only make sense if what you mean by "uncountably" is that it is too long to count and you don't have time or words for them
01:50:30 <zzo38> But that is probably not what is meant, because it isn't what it meant in "uncountably infinite"
01:50:31 <Sgeo> I hate only having 3 options when there are 2 booleans
01:50:38 <oerjan> there is that model of ZF without axiom of choice where two definitions or finite don't coincide, though
01:50:50 -!- Tatiana1 has quit (Ping timeout: 264 seconds).
01:50:52 -!- choochter has joined.
01:51:24 <oerjan> one of them being essentially "can be counted by a finite natural number", the other being "is not the same size as a proper subset of itself"
01:52:40 <Sgeo> Example of a set where those definitions aren't equivalent?
01:52:41 <oerjan> however if you can be counted by any ordinal at all, those two coincide
01:53:28 -!- Tatiana2 has quit (Ping timeout: 252 seconds).
01:54:18 <oerjan> well in such a model you have sets that are not equivalent to a proper subset of themselves, but which _still_ are not equivalent in size to any {1,...,n}
01:54:44 <cpressey> * Sgeo wonders if "uncountably finite" makes sense <-- Thank you; you are justifying "very strange"
01:55:11 <Sgeo> I don't want to have a table with 4 spaces with one space not making sense!
01:55:15 <cpressey> 1, 2, 3... ah, shit, I'm bored. Well, I guess that the numbers on the clock are uncountably finite.
01:55:15 <oerjan> you cannot embed _all_ the naturals into them, but you can embed any finite set of naturals. you cannot extend the embedding to all without using the axiom of choice.
01:55:16 <zzo38> I do sometimes think of strange things like that too, but not specifically that
01:55:19 <Sgeo> It's ugly and horrible and nightmare incuding
01:56:34 <oerjan> in a sense such a set is uncountable (not equivalent to a subset of naturals) but still finite in the other sense
01:56:48 <Sgeo> Huh. Awesome
01:57:23 <zzo38> Sgeo: What is ugly and horrible? And why?
01:57:33 <Sgeo> A B
01:57:36 <Sgeo> A ~B
01:57:40 <Sgeo> ~A B
01:57:46 <Sgeo> and ~A ~B doesn't exist
01:58:06 <zzo38> And in what context?
01:58:38 <Sgeo> Any! *insanes*
02:00:26 <oerjan> http://en.wikipedia.org/wiki/Dedekind-finite
02:00:58 <oerjan> verbing non-verbs, a clear sign of insaning
02:01:12 <zzo38> I am a bit insane too, a bit.... but I don't consider myself ugly and horrible and nightmare incuding
02:01:36 <oerjan> good, good
02:02:54 * Sgeo happies oerjan for allowing "uncountably finite" to exist
02:04:33 <zzo38> Insane people do things that are improper because the proper way is very wrong
02:06:02 <cpressey> Celia Green wrote a book with the thesis that in all of human history, only two people were sane. Everyone else was (and is) insane.
02:06:14 <cpressey> Just thought I'd throw that out there.
02:06:30 <Sgeo> Which two?
02:06:44 <zzo38> And insane monsters do things that are very improper because the very proper way is extremely wrong.
02:06:57 <zzo38> And when I play D&D game I prefer to play monster character.
02:07:30 <zzo38> And also because someone wrote a book, I don't know which book I mean, though.
02:08:05 * oerjan seconds Sgeo's question
02:08:32 <zzo38> Yes, which two people? Or, does Celia Green not know which two?
02:10:08 <oerjan> clearly the answer must be something explosive.
02:11:10 <cpressey> Sgeo: Jesus Christ and Frederick Neitzsche.
02:11:36 <cpressey> Not saying I agree with her, or anything.
02:11:37 * oerjan had a hunch about the first one
02:11:40 <zzo38> cpressey: THey are also just as insane as everyone else, I think
02:13:31 <cpressey> zzo38: I agree. I would also note that Jesus Christ, as portrayed in the New Testament, is in my opinion largely fictional, and that ol' Fred is just as insane as anyone else, just in a completely different direction.
02:14:11 <cpressey> (I say the latter based on having read Thus Spoke Zarathustra; I've never read the New Testament from cover to cover, though.)
02:14:48 <cpressey> Fred makes some good points, but, sheesh. Calm down, dude. Sit. Have some tea. Organize your thoughts.
02:15:06 <zzo38> cpressey: Yes, I agree with you about Neitzsche, and about Jesus, that may be correct (we don't actually know what (if anything) happened, it is just written by a few people).
02:19:11 <zzo38> If my character is dead, I create another character, a different monster character, also, and beginning at the next session, and the DM has to fit it into the game somehow, there are many ways
02:21:02 <Sgeo> Clones!
02:21:10 * Sgeo wonders why people are following him
02:22:24 <zzo38> Clones?
02:22:37 <zzo38> Are clones following you?
02:29:26 -!- augur has quit (Remote host closed the connection).
02:29:47 -!- augur has joined.
02:30:50 <oerjan> apparently they must have got him
02:32:27 <zzo38> Oops! I didn't mean to do that!
02:32:43 <zzo38> I pushed the "d" button! That makes the room exsovalve!
02:32:52 <oerjan> well too late now
02:33:18 <oerjan> i would probably be panicking if i knew what exsovalve was
02:33:33 <zzo38> I don't know what exsovalve is either
02:33:36 <oerjan> s/probably/clearly/
02:34:02 <oerjan> good, good. then maybe we can avoid panic
02:34:10 <oerjan> food ->
02:36:44 <cpressey> Food?
02:36:50 <cpressey> Is food following you?
02:38:58 <oerjan> no i'm stalking it.
02:39:11 <cpressey> Ah ha!
02:39:23 <cpressey> Well, well, an INTERCAL reference in #haskell.
02:39:35 <cpressey> That means everyone playing "the game" has to take a swig.
02:39:39 * cpressey takes a swig
02:43:37 <oerjan> so that's what they call "the game" these days
02:44:14 <oerjan> clearly INTERCAL is no match for haskell's reverse state monad
02:47:25 <cpressey> Ah, so much crazy, so little time.
02:50:17 <cpressey> What should I do, to make the best use of my limited crazy-time?
02:51:07 <oerjan> heck if _i_ know
02:52:32 <zzo38> cpressey: I don't know?
02:53:22 <oerjan> this problem is obviously at _least_ NP-complete.
02:53:26 <cpressey> Of course not. Don't mean to put that burden on '
02:53:31 <cpressey> *y'all.
02:53:57 <cpressey> But first, I'm going to see if the reverse state monad is something real, or something oerjan just made up.
02:54:15 * oerjan cackles evilly
02:54:27 <cpressey> Apparently real
02:55:09 <oerjan> the top google hit seems aptly named
02:57:58 <cpressey> OK, I can only imagine how that works.
02:58:15 <cpressey> My understanding of monads is (ask Phantom_Hoover) still quite crude.
02:58:26 <cpressey> But I *can* imagine.
02:58:36 <cpressey> I was thinking just the other day,
02:58:51 <cpressey> "You know, there ought to be any number of really bizarre monads you could write"
02:59:06 <cpressey> (Not that anyone in this channel could think of any at the time)
03:02:09 <zzo38> I don't think of any at the time, because I don't know a lot about monads, to think of it.
03:11:26 <Sgeo> I thought reverse state was an esome inventiojn
03:12:51 <pikhq> Why is it that simply placing cheese between slices of bread and grilling it freaking *delicious*?
03:12:59 <pikhq> s/freaking/is freaking/
03:13:45 <zzo38> Because you can make sandwich!
03:14:09 <Sgeo> pikhq, I hate non-grilled cheese sandwiches
03:14:19 <Sgeo> Are grilled really that much better? I never tried
03:15:06 <pikhq> Sgeo: ... Non-grilled cheese sandwiches? WHAT IS THIS MADNESS.
03:15:32 <cpressey> pikhq: There is a scientific reason. Let me see if I can remember it.
03:15:33 <Mathnerd314> I just eat the bread, then eat some cheese a while later...
03:16:51 <zzo38> Grilled sandwich is better, at least in my opinion.
03:17:15 <Mathnerd314> if I have some tomato in it too, then definitely yes
03:18:37 * Sgeo should find out how to grill sandwiches
03:18:50 <Sgeo> I need a grill, don't I? Are there safe indoors grills?
03:18:57 <pikhq> Sgeo: It's *ridiculously* easy.
03:19:03 <calamari> you need a frying pan and some butter
03:19:10 <pikhq> Get a frying pan, some butter, and a sandwich.
03:19:44 <pikhq> Heat up frying pan. Butter bread. Apply to frying pan until sufficiently grilled. Flip. Apply to frying pan until sufficiently grilled. Remove. Eat.
03:19:49 <Mathnerd314> butter? use olive oil.
03:20:25 <Sgeo> How long does that take?
03:20:26 <alise> <Sgeo> pikhq, I hate non-grilled cheese sandwiches
03:20:26 <alise> <Sgeo> Are grilled really that much better? I never tried ;; yes
03:20:29 <pikhq> Okay, yes, you can also just oil the *pan* instead of the *sandwich*.
03:20:41 <alise> not long
03:20:42 <pikhq> Sgeo: Like, 5 minutes?
03:20:45 <calamari> sgeo < 5 minutes
03:20:46 <alise> they are far, far better
03:20:46 <alise> BUT
03:20:51 <alise> I must advocate the superior option
03:20:53 <alise> Cheese on toast
03:20:58 <alise> Here is how you make cheese on toast:
03:21:01 <cpressey> Damn, I cannot find a reference to it. But I found a book with a fantastic title: http://books.google.com/books?id=-oRp5VCVTQQC
03:21:07 <Sgeo> It doesn't taste less bad after some time, does it?
03:21:12 <alise> No.
03:21:24 <Sgeo> I might end up bringing such sandwiches to school
03:21:24 <calamari> Sgeo: unless you like it burnt
03:21:36 <Sgeo> No, as in, make it, bring it to school, eat at school
03:21:38 <alise> Cheese on toast: Put butter on two slices of bread. Thick bread. Put cheese on these two slices. Strong cheese. Grill it (or whatever you want to do instead).
03:21:59 <alise> This is a more manly dish than a grilled cheese sandwich, but ... rather harder to store.
03:22:04 <alise> And you want to eat it hot.
03:22:21 * Mathnerd314 thinks about using an actual grill to make grilled cheese
03:22:58 <Sgeo> MMaybe I won't spend so much money on buying chicken sandwiches from the place on campus
03:23:19 <pikhq> alise: Okay, so. Texas toast and strong cheese.
03:23:28 <Sgeo> Then again, it is... why isn't poultry meat?
03:23:38 <pikhq> Sgeo: It's best hot.
03:23:38 <alise> Sgeo: It ... is ....
03:23:41 <alise> *...
03:23:47 <alise> pikhq: Texas toast? Fuck that shit.
03:23:53 <pikhq> alise: It's thick bread.
03:23:55 <Sgeo> pikhq, :/
03:24:08 <alise> pikhq: Nobody British enough to make a proper cheese on toast would buy anything with Texas in the name.
03:24:28 <cpressey> Anyway, I dimly remember some biochemistry term like "queso-opioid" or something, to refer to the chemicals that are produced when you bake or fry cheese.
03:24:32 <pikhq> alise: "Texas toast" is literally just thickly-sliced bread.
03:24:40 <alise> pikhq: Also, if it's bright, strong yellow and sliced it's not cheese.
03:24:48 <alise> I'm talking proper fucking cheddar here.
03:25:03 <cpressey> Damn! I want to go there sometime. To Cheddar, I mean.
03:25:08 * Sgeo decides not to make a Sgeo-style joke
03:25:09 <pikhq> alise: You want more horrification?
03:25:18 <calamari> so cheese tastes better melted because it's filled with drugs?
03:25:19 <calamari> wow
03:25:20 -!- oerjan has set topic: The cheesy channel | (a(:^)*S):^ | Should the esolangs community have a Hackiki wiki? (Wiki capable of running nearly-arbitrary code) Vote: http://poll.fm/23p9l | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
03:25:20 <pikhq> alise: There's things more artificial than "American cheese".
03:25:24 <cpressey> I wonder if they have a cheese tourism culture there... like Wisconsin.
03:25:36 <alise> calamari: haha wow
03:25:45 <pikhq> alise: For instance, there's "sliced cheese food product". People actually buy this and eat it.
03:26:03 <alise> pikhq: Well, I am totally not hearing you!
03:26:50 * Sgeo has no clue what kind of cheese is in the house
03:26:54 <Sgeo> American, I think
03:27:06 <pikhq> alise: Mostly composed of vegetable oil.
03:27:57 <pikhq> Sgeo: Get you some cheddar. Now that's cheese.
03:28:42 <alise> Sgeo: American cheese is just bad cheddar + various other suspicious crap added + stupid colouring.
03:28:59 <alise> + whatever else Kraft decides they want you to have in your body as opposed to something you actually want in your body -- of the week
03:30:34 <pikhq> alise: Actually American cheese is just leftover bits of cheese from *various things* + emulsifiers + stupid colouring.
03:30:48 <pikhq> alise: With more crap added to make it lower quality sometimes.
03:31:15 <pikhq> (if it's pre-wrapped slices, it's got crap added. And it's vomitous, rather than merely crappy.)
03:31:40 <alise> pikhq: Oh, so no actual proper cheese.
03:31:57 <alise> Well, apart from leftovers.
03:32:02 <alise> Sgeo: tl;dr get some mature cheddar.
03:32:03 <cpressey> calamari: I only wish I could find a reference for it so I'm sure I'm not hallucinating it.
03:32:05 <oerjan> casual caseine
03:32:07 <alise> No, not medium. Mature.
03:32:17 <alise> Not extra-super-duper mature, though, that's kind of icky.
03:32:22 <Sgeo> I've never been interested in cheese enough to care before
03:32:26 <oerjan> dammit, *casein
03:32:27 <alise> (Icky = Hey, I eat one crumb and it feels like my mouth hurts.)
03:32:39 <alise> Sgeo: That's probably because American cheese is the most boringly uninspiring food product there is.
03:32:49 <alise> Cheddar itself is delicious. Seriously.
03:33:02 <madbr> why does american cheese taste so bad
03:33:44 <alise> madbr: as in [does it really?] or [what is the cause?]
03:34:02 <madbr> what is the cause
03:34:11 <pikhq> alise: Sometimes, it's instead just throwing together milk, whey, milk fat, milk protein, salt, and emulsifiers in the right proportions.
03:34:24 <alise> madbr: that.
03:34:31 <pikhq> And yes, it is the most boring and bland cheese ever.
03:35:01 <pikhq> Cottage cheese has more flavor. And *that's* just curds and whey with some of the whey drained off.
03:36:14 <madbr> american cheese has a flavor
03:36:20 <madbr> it tastes bad :D
03:36:45 <pikhq> Crappy American cheese tastes bad.
03:36:51 <pikhq> "Good" American cheese just lacks taste.
03:37:28 <madbr> there are many grades?
03:38:11 <pikhq> Are you familiar with Cheez Whiz?
03:38:27 <pikhq> Or Easy Cheese?
03:38:42 <madbr> familiar no, I stay the hell away from that stuff
03:38:52 <pikhq> Those are also American cheese.
03:38:54 <madbr> and my parents never buy it
03:39:48 <pikhq> alise: Easy Cheese, BTW, is "cheese" in a spray can. Yes. A spray can.
03:39:52 <alise> The only contact we Brits have with your icky American cheese crap is when we go into burger joints.
03:39:56 <alise> Also, what.
03:40:05 <pikhq> alise: http://en.wikipedia.org/wiki/File:Easy_cheese2.jpg
03:40:13 <alise> Yes I... loaded the page.
03:40:18 <alise> That doesn't look like cheese.
03:40:34 <madbr> 1) cheese is not orange
03:40:36 <pikhq> It tastes like artificial cheese flavor.
03:41:00 <alise> If Kraft died tomorrow, the only innocent casualties would be a few chocolate brands.
03:41:06 <alise> (Toblerone, Milka. That's all I can think of.)
03:41:10 <pikhq> madbr: Cheddar cheese often is. (for no good reason, it's very common to dye it orange-yellow-ish)
03:41:23 <madbr> pikhq: that's regional
03:41:32 <pikhq> True, but still.
03:41:34 <madbr> pikhq: here they don't dye it so it's white
03:41:42 <zzo38> Where I live, they make cheddar cheese both white and orange, they make both kinds.
03:41:56 <alise> strong cheddar is never coloured in my experience
03:42:04 <alise> the orange is just the wimpy stuff for people who can't handle cheese
03:42:11 <alise> (and ofc you can get white mild cheddar too)
03:42:39 <pikhq> alise: I think you'd be amazed by some of the processed "foods" available in the US.
03:42:51 <alise> "In 1995 it was revealed that the Swedish politician Mona Sahlin had bought, among other things, two bars of Toblerone using her Riksdag credit card (i.e. taxpayer's money). This became known as the Toblerone affair. Sahlin was forced to step down as a candidate for the post as Prime Minister."
03:43:12 <alise> Wow, in the UK when our MPs started putting houses and porn and shit on their expenses, we just yelled at them for a month or two.
03:43:33 <cpressey> Well, porn is one thing. But TOBLERONE???
03:43:38 <alise> pikhq: ...but mayonnaise is the simplest thing to exist, ever
03:43:58 <pikhq> alise: "Miracle Whip". It's imitation. Fucking. Mayonnaise.
03:44:18 <alise> pikhq: I don't want to talk about this any more or ever again or ever make it stop
03:44:51 <alise> Make the pain stop
03:44:53 <cpressey> pikhq: One thing I have discovered is that in the US, unlike Canada, you can get actual *pickle relish*. It's amazing. I didn't even know it existed before.
03:45:04 <pikhq> cpressey: Pickle relish is delicious.
03:45:21 <zzo38> Is it illegal in Canada?
03:45:42 <cpressey> zzo38: No -- I had just never been able to find it. It's all sweet relish.
03:45:59 <alise> xD
03:45:59 <madbr> "In 1933, Kraft was a well-established distributor of mayonnaise, yet sales were slipping as a result of the Great Depression.[citation needed] Kraft developed a new dressing similar to mayonnaise, but at a lower price. Premiering at the Century of Progress World's Fair in Chicago in 1933, Miracle Whip was an instant success as a condiment on fruits, vegetables and salads."
03:46:06 <alise> Pickle relish is CORRUPTING OUR CHILDREN
03:46:32 <pikhq> alise: Hey, be glad you're not Italian.
03:46:39 <zzo38> I have no children and I use no relish.
03:46:41 <pikhq> alise: Oh how I could make you pain.
03:46:50 <alise> zzo38: COMMUNIST
03:46:53 <alise> pikhq: wat
03:47:06 <pikhq> Y'know what, this might actually do it anyways.
03:47:08 <pikhq> alise: http://upload.wikimedia.org/wikipedia/en/3/3c/Kraftparmesan.jpg
03:47:11 <zzo38> alise: COMMUNIST???
03:47:18 <pikhq> Yes, really. That's powdered "parmesan".
03:47:19 <oerjan> alise: mind you Mona Sahlin got better, she's currently the opposition's PM candidate
03:47:28 <oerjan> (again)
03:48:34 <alise> oerjan: Wow, I'm amazed that's a scandal over there. Props to you guys.
03:48:47 <alise> zzo38: SOCIALISM FASCISM
03:49:10 <pikhq> alise: Oh, there's also imitation whipped cream.
03:49:24 <oerjan> there's currently somewhat of a "scandal" in norway about at least three government ministers accepting afghan carpets as gifts (completely legally, mind you)
03:49:28 <pikhq> Often in a spray can!
03:50:06 <oerjan> (those are the prime minister, foreign minister and defense minister, i.e. the three that actually had any business going to afghanistan)
03:50:09 <pikhq> alise: BTW, I'm only naming highly commonly consumed things, not niche oddities.
03:50:17 <alise> pikhq: Can I cry please?
03:50:31 <pikhq> (otherwise I'd mention things like canned pancake batter)
03:50:35 <Sgeo> I think I accidentally got upset over a simplification for teaching the other day
03:50:36 <alise> haha
03:50:46 <alise> oerjan: Can you guys let me come live there? Thanks.
03:51:07 <Sgeo> Although I didn't realize that that's what it was, and I didn't know what it was non-simplified, and I got confused because the simplified BS made no sense whatsoever
03:51:41 <Sgeo> I suppose I should explain what I'm talking about
03:53:08 <pikhq> alise: We also brought non-dairy creamer to the world.
03:53:39 <pikhq> ... No, that was Switzerland.
03:53:56 <Sgeo> She was talking about sigfigs
03:53:57 <pikhq> Switzerland AND BRITAIN
03:54:04 <pikhq> alise: You should be ashamed.
03:54:15 <Sgeo> And how for addition and subtraction, you just look at the number of significant figures after the decimal place
03:55:03 <Sgeo> I didn't realize that this was just equivalent in some cases (presumably all that we'll be dealing with) to making the highest-place sigfig be the highest lowest sigfig in the operation
03:55:04 <alise> Sgeo: why is that being taught in university?
03:55:26 <pikhq> alise: Not taught in high school.
03:55:30 <alise> ...
03:55:32 <alise> you /are/ joking
03:55:38 <Sgeo> We did do sigfigs in HS
03:55:41 <Sgeo> iirc
03:55:47 <Sgeo> It's just been a while
03:55:56 <alise> the unit did significant figures shit with me recently (year 10; most people would be 15, me 14)
03:55:59 <alise> and i remember thinking
03:56:04 <alise> why is this simple shit being taught so late??
03:56:17 <oerjan> alise: it was also mention iirc that the minister for development (i.e. charity) had gotten a goat and a wife in sierra leone. however, he apparently didn't bring either back home ;D
03:56:22 <oerjan> *mentioned
03:56:24 <pikhq> alise: In many high school programs, it's not taught at all.
03:56:35 <alise> oerjan: The goat /was/ the wife.
03:56:43 <alise> pikhq: I refuse to answer. Let me cry alone.
03:56:52 <pikhq> I wish I were joking.
03:56:53 <oerjan> alise: no, that was another story, which i also seem to recall :D
03:57:11 <cpressey> Name a programming language or library which supports significant figures.
03:57:21 <alise> cpressey: Falcon
03:57:25 <oerjan> (the goat and the wife were as _gifts_, in case it wasn't clear)
03:57:29 <cpressey> OH SNAP!
03:57:34 <alise> oerjan: haha
03:57:45 <alise> "Here! Take my wife, Western king! (She's a whore.)"
03:58:01 <Sgeo> Sounds Stargate-ish
03:59:05 <pikhq> alise: About what age do you guys generally get to algebra?
03:59:54 <alise> pikhq: Uh, around the same age.
04:00:07 <pikhq> alise: Which is?
04:00:12 <alise> Trivial shit, like "find x and y".
04:00:15 <alise> pikhq: 15
04:00:23 <pikhq> Ah. Yeah, around the same age.
04:00:30 <calamari> I took it in 8th grade.. so what's that.. 13?
04:00:33 <pikhq> Which is pretty depressing.
04:00:45 <alise> pikhq: Around the same time as significant figures. :P
04:00:45 <pikhq> calamari: About. I did it in 7th.
04:00:53 <alise> Although, perhaps earlier, actually.
04:01:07 <alise> Since the unit were on this ridiculous "HE IS LACKING IN EDUCATION" kick at the time.
04:01:25 * pikhq did calculus his junior year. Whooooo...
04:01:34 <Sgeo> Isn't Education sometime around the 18th birthday?
04:02:28 <zzo38> I used sigfigs in physics class. I don't like using sigfigs except with scientific notation. When the question involved sigfigs I wrote down the answer using scientific notation.
04:02:32 <calamari> I saw political sign saying all kids should learn to read by 3rd grade.. I couldn't believe my eyes
04:02:51 <calamari> but I live in AZ.. and we suck :(
04:03:27 -!- augur has quit (Ping timeout: 245 seconds).
04:03:30 <pikhq> calamari: I remember people still struggling with reading in my 3rd grade class.
04:03:34 <Sgeo> Supposedly, every kid in my kintergarted class learned to read rather quickly
04:03:37 <cpressey> ISTR sigfigs way earlier than algebra. Then again, ISTR a sigfigs "refresher" in 1st-year undergrad physics. Soooo...
04:03:42 <Sgeo> It was at some SLCD place
04:03:58 <pikhq> The teacher decided to teach phonics then. First time they'd seen any hint of words having anything to do with phonemes.
04:04:20 <calamari> people make fun of phonics.. but they work
04:04:26 <cpressey> Stupid phonetic alphabet! Who needs it!
04:04:37 <Sgeo> "The School for Language and Communication Development"
04:05:07 <pikhq> calamari: Better than brute-force pattern recognition.
04:05:12 * Sgeo o.Os at it being a school for children with "language and autism disorders"
04:05:12 <pikhq> (which,
04:05:29 <pikhq> FWIW, is *not* how Japanese or Chinese people learn their script...)
04:05:55 <zzo38> pikhq: Perhaps there is different way learning better for a different language
04:06:10 <alise> Sgeo: why o.O
04:06:26 <pikhq> zzo38: Yeah, I'm just pointing that out because some idiots go "ZOMG Chinese does whole language stuff THATS GREAT"
04:06:38 <pikhq> (even though there's rather a lot of phonetic cues in there)
04:06:41 <alise> <calamari> I saw political sign saying all kids should learn to read by 3rd grade.. I couldn't believe my eyes ;; what age is third grade?????
04:06:42 <zzo38> pikhq: O, that is why
04:06:51 <Sgeo> Because this channel has, at least once, tried to convince me that I am not on the spectrum?
04:07:17 <alise> I don't see why the kindergarden you went to should change any of that.
04:07:18 <pikhq> alise: Uh... 8 to 9.
04:07:29 <alise> Probably everyone in here has at least a minor--
04:07:33 <alise> pikhq: ...
04:07:34 <alise> pikhq: No.
04:07:39 <alise> Haha, very funny.
04:07:53 <oerjan> spectral geo
04:07:54 <pikhq> alise: "n the United States, third grade (called grade 3 in some regions) is a year of primary education. It is the third school year after kindergarten. Students are usually 8 - 9 years old, depending on when their birthday occurs." -- Wikipedia
04:08:19 <alise> pikhq: I...
04:08:44 <alise> People who can't read by the time they enter nursery -- or at least leave nursery to enter proper school -- are considered thick as all hell.
04:08:47 <alise> Over here.
04:09:12 <Sgeo> Doesn't everyone get the Reading stuff at 8 years old?
04:09:17 <pikhq> alise: Is nursery the equivalent of kindergarten?
04:09:23 <alise> Sgeo: "the Reading stuff"?
04:09:27 <pikhq> Sgeo: ... What? What?
04:09:37 <alise> pikhq: Pretty much. I'm not sure whether it's leaving nursery or entering nursery when you should be able to read or else you're really fucking retarded.
04:09:37 <pikhq> alise: Ah, yes it is.
04:09:37 <cpressey> ISTR everyone being able to read, and probably write, in 1st grade.
04:09:45 <alise> Like, someone learning to read in nursery is probably considered fine.
04:09:47 <Sgeo> http://www.abelard.org/asimov.php
04:09:48 <alise> Although your parents probably suck.
04:09:51 <alise> For not teaching you sooner.
04:09:54 <cpressey> I'm assuming nursery == kindergarten.
04:10:11 <pikhq> Sgeo: Ah, that.
04:10:12 <alise> Yes.
04:11:32 <pikhq> alise: Kindergarten is not compulsory in all states.
04:11:57 <alise> I dunno if nursery is compulsory here.
04:12:01 <alise> But point is, wtf Arizona.
04:12:11 * cpressey more cheese toast
04:12:25 <pikhq> As such, there are many who arrive in first grade (that's about-equal to *year two* for you) not being able to read.
04:12:35 <alise> Ha, I have addictified cpressey with my quasi-opioid drug toast.
04:12:37 <alise> Er, cheese.
04:13:19 <alise> pikhq: I propose brutal eugenics.
04:13:22 <pikhq> "In language first graders are taught the fundamentals of literacy, including reading sentences, writing very simple statements and mastery of the alphabet, building on what the students have learned in kindergarten or other forms of pre-school (although because first grade is the first compulsory level of education in many U.S. states, the level of literacy in incoming students can vary widely)." -- Wikipedia.
04:13:34 <alise> Sure, it'll be utter fascism for a few generations, but it's not like it'll be any worse than your current political climate.
04:13:36 <pikhq> Yes, the *fucking alphabet*.
04:13:41 <alise> And then you can get some actual shit done.
04:13:45 <pikhq> *Six and seven year olds*.
04:14:44 <pikhq> Along with such concepts as "a clock" or "a calendar" or "money".
04:15:01 <alise> I hate your country.
04:15:05 <alise> And not for your freedom, either.
04:15:18 <pikhq> I get the feeling this was designed assuming that parents would never interact with their crotch-fruit.
04:15:41 <alise> Crotch-fruit is the most horrific term I have ever heard.
04:17:49 <pikhq> alise: How does primary-school math education go there?
04:19:00 <alise> Uhh... in a way that I utterly cannot remember. Ask Wikipedia.
04:19:13 <pikhq> It doesn't detail.
04:19:36 <alise> Stuff-like, then.
04:19:38 <alise> Google it. :P
04:20:25 <Sgeo> alise, have you already read Profession, so I can spoil it?
04:21:04 <alise> No.
04:21:32 <pikhq> "In the United States, in mathematics, fourth graders are usually taught how to add and subtract common fractions and decimals. Long division is also generally introduced here, and addition, subtraction, and multiplication of whole numbers is extended to larger numbers."
04:21:44 <Sgeo> I remember, the day we were to learn multiplication
04:21:51 <Sgeo> I had watched some tapes on arithmatic
04:21:55 <alise> Sgeo: Of ... integers?
04:22:01 <Sgeo> And I was convinced that a*b != b*a
04:22:02 <alise> Well, naturals.
04:22:12 <pikhq> alise: Yes, of naturals.
04:22:12 <Sgeo> I think I've said this before
04:22:13 <Sgeo> Yes
04:22:26 <cpressey> I remember long division! 4th grade sounds right. I still do it sometimes.
04:22:35 <Sgeo> Um
04:22:38 <zzo38> Why were you convinced that a*b != b*a ?
04:22:42 <oerjan> Sgeo: this is clear proof of the matrix
04:23:12 <Sgeo> zzo38, it made no sense that 2 + 2 + 2 + 2 = 4 + 4 sort of thing should always work
04:23:41 <Sgeo> I've mentioned this in here before
04:23:52 <Sgeo> I remember once, in 6th grade
04:24:14 <Sgeo> Convincing myself that 2/0 = 4/0 but not 3/0. I think because 2/0 * 2/2 = 4/0
04:24:23 <Sgeo> But then how did 1/0 interact with stuff
04:24:26 <cpressey> < oerjan> (mind you i don't hold a degree in CS either :D)
04:24:31 <Sgeo> I ended up crying over this
04:24:38 <alise> so basically Sgeo has always been a crank mathematician at heart
04:24:40 <Sgeo> (I was a bit of a crybaby)
04:24:43 <cpressey> oerjan: No, clearly your degree was in Punning.
04:24:43 <alise> ...ok, maybe you are autistic
04:25:08 <alise> Admittedly, Dot Action has driven me near tears these past few days, but I think that is intentional on the part of its creator.
04:25:10 <Sgeo> Or my memory may be wrong :/
04:25:17 <zzo38> Sgeo: Yes you did mention about 2/0 = 4/0 but not 3/0, before.
04:26:08 -!- augur has joined.
04:26:19 <oerjan> Punning should so have been a city in china
04:27:22 <cpressey> There once was a man from near Punning, who had an idea oh-so cunning
04:27:45 <cpressey> NO
04:27:57 <cpressey> Limericks are going TOO FAR, cpressey
04:27:59 <alise> XD
04:28:11 <oerjan> especially when you don't manage to make them scan
04:28:46 <oerjan> or is "idea" two syllables
04:29:18 <oerjan> not that it scans _well_ in any case
04:29:40 <Sgeo> ANnoying: Having to explain to an adult why x/0 is generally not considered to work before explaining how I think I'm getting it to work
04:29:40 <alise> There once was a man from near Punning
04:29:41 <alise> Who had an idea oh-so cunning
04:29:41 <alise> But to his dismay
04:29:41 <alise> Waking the next day
04:29:41 <alise> He found the neighbour's wife stunning.
04:29:44 <alise> I couldn't come up with the last line
04:29:51 <alise> so I made up something random instead
04:30:53 <cpressey> oerjan: Um... the "a" in "idea" just sort of floats there non-disruptively in the meter, for my ears. But I can see how it might not technically fit
04:32:37 <oerjan> mhm
04:32:43 -!- augur has quit (Ping timeout: 265 seconds).
04:34:13 -!- augur has joined.
04:40:32 <madbr> afaik "idea" isn't germanic native
04:40:56 -!- augur has quit (Ping timeout: 265 seconds).
04:43:19 <Sgeo> So close to finishing stage 32
04:43:49 <alise> 55 is DEATH
04:43:56 <alise> LIQUID DEATH
04:45:17 <oerjan> madbr: afaik it's greek
04:49:02 <Sgeo> DANG IT
04:49:10 <Sgeo> Just got the last green dot on 32 and died
04:50:07 <cpressey> No flash = No Dot Action 2. :(
04:50:10 <Sgeo> The fun thing is that the part that looks hardest is incredibly easy
04:51:22 <Sgeo> CLEAR! ! !
04:51:37 <pikhq> madbr: Yeah, but this is English.
04:51:44 <pikhq> madbr: We despise native words.
04:51:47 <alise> cpressey: And thus no purpose in life.
04:52:26 <pikhq> madbr: To the point of having a non-native *pronoun*.
04:54:16 <madbr> oh? :)
04:54:19 <madbr> which one
04:54:43 <pikhq> "they" is from Old Norse, rather than Old English.
04:57:03 <Sgeo> 33 was annoying
04:57:56 <Sgeo> Is 34 supposed to be doable?
04:58:49 <pikhq> ...
04:58:51 <pikhq> As is "are".
05:00:40 <oerjan> and "am" iirc
05:01:30 <pikhq> Nope, that's from Old English.
05:01:40 <pikhq> Obvious cognate with Old Norse, though.
05:01:40 <oerjan> IF YOU SAY SO
05:13:18 <Sgeo> alise, I see absolutely no way to travel down the staircase of 34
05:13:38 <alise> Sgeo: Uhh, screenshot me up. I forget.
05:13:59 <Sgeo> It's annoying to post screenshots
05:14:11 <alise> imgur.com
05:14:17 <Sgeo> ...I know about it
05:14:22 <Sgeo> It's what's before that's annoying
05:14:26 <Sgeo> Remember, I'm on Windows