←2011-02-28 2011-03-01 2011-03-02→ ↑2011 ↑all
00:00:04 -!- cheater00 has quit (Ping timeout: 264 seconds).
00:01:15 <Sgeo> colorForth hasn't been touched since 2001?
00:02:37 <Sgeo> The instructions for using colorForth want me to boot into DOS and ... hmm, this should be doable.
00:02:41 <Sgeo> The question is, is it worth it?
00:04:32 <elliott> pikhq: http://ezusb.free.fr/compo/shots/fractal.png This fit into a boot sector.
00:07:04 <pikhq> Sgeo: Well, you could load up DOSemu.
00:07:21 <Sgeo> pikhq, anything wrong with booting Win98 into DOS mode?
00:07:21 <elliott> Sgeo: You don't need DOS.
00:07:25 <elliott> dd if=COLOR.COM of=/dev/fd0
00:07:37 <Sgeo> Oh
00:07:45 <Sgeo> I thought COLOR.COM would write stuff to the fd
00:07:47 <elliott> Or just of=floppy.img and then putting that in a VM.
00:07:55 <elliott> Or just putting COLOR.COM as the floppy in a VM.
00:08:02 <pikhq> Sgeo: Well, DOSemu is better and more awesome.
00:08:14 <elliott> DOSemu would not work.
00:08:21 <elliott> You would need a full x86 emulator.
00:08:43 <pikhq> elliott: The question is, will it work in virtual 8086 mode?
00:09:38 <elliott> pikhq: God knows.
00:09:39 <pikhq> (hint: DOSemu != DOSbox)
00:10:19 <Sgeo> "You must start COLOR.COM under DOS. It is an operating system, and takes over the computer. You can then write a bootable floppy. Alternatively, Unix can copy COLOR.COM to a bootable floppy with cp or dd.
00:10:19 <Sgeo> "
00:10:24 <Sgeo> DUR, I need to learn to read
00:10:33 <elliott> Sgeo will give up on colorForth as soon as he sees that it uses a variant of Dvorak.
00:10:34 <elliott> pikhq: I am aware.
00:10:41 <elliott> DOSBox would probably work because it emulates full x86.
00:10:52 <pikhq> elliott: DOSemu actually uses a full x86.
00:11:06 <elliott> Sgeo: Just set COLOR.COM as floppy image in VirtualBox or similar. actually qemu.
00:11:08 <elliott> VirtualBox may not work.
00:11:10 <elliott> qemu will.
00:11:11 <pikhq> As it's just sufficient virtualisation to use virtual 8086 mode.
00:11:17 <elliott> pikhq: Heh.
00:11:21 <Sgeo> I'm too lazy to play with qemu now
00:11:32 <pikhq> (on x86-64 it uses a 16-bit x86 emulator instead)
00:12:01 <Sgeo> VirtualBox wants COLOR.COM to be in some format
00:12:03 <Sgeo> Blargh
00:12:23 <Sgeo> *some format that it understands
00:12:39 <elliott> http://pouet.net/prod.php?which=14089 maybe just scenesters could get forth in 512B
00:13:30 -!- cheater00 has joined.
00:13:36 <elliott> "My forth OS so far is going pretty well but running out of space fast(now at 470 bytes)..
00:13:37 <elliott> It will print `ok` at the end of commands. It supports a stack of 4096 bytes. It supports the standard +,-,@,and ! words/operators. Also, I put in 2 extensions for `^` and `&` for writing and reading the current segment data will be writtent o(respectively)"
00:13:41 <elliott> Doesn't sound like a proper compiler...
00:14:18 <pikhq> Insufficient immediate words!
00:15:22 <Sgeo> colorForth is infinitely valuable, apparently
00:15:29 <elliott> Does colorForth even have immediate words?
00:15:50 <elliott> Sgeo: Floppy images have no format.
00:15:56 <elliott> Sgeo: Try padding it out to 1.44M.
00:16:14 <Sgeo> elliott, right now, I'm going to run it under Win98's DOS
00:16:18 <oerjan> now: sloTH, the forth variant where _nothing_ is immediate
00:16:31 <elliott> dd if=/dev/zero of=floppy.img count=2880
00:16:31 <Sgeo> Deja vu
00:16:38 <elliott> dd if=COLOR.COM of=floppy.img conv=notrunc
00:17:23 <pikhq> elliott: Hmm, I don't think it does. Though, obviously, its use of color is semantically equivalent to the one necessary for Forth.
00:17:36 <Sgeo> Just did COLOR.COM
00:17:39 <Sgeo> The graphics went weird
00:17:47 <elliott> pikhq: Yeah, it has : built in as colour...
00:18:01 <Sgeo> The VirtualBox logo, horribly distorted
00:18:26 * Sgeo gives up for now
00:18:59 <elliott> Sgeo: qemu.
00:19:01 <elliott> I already told you qemu.
00:19:16 <Sgeo> I'm too tired to play with that now
00:19:17 <elliott> please do not waste my time by giving the impression that you're finding any advice useful if you're not going to follow it.
00:20:04 <pikhq> Sgeo: qemu is a very good emulator, and it behooves you to have it.
00:20:13 <pikhq> Also, I ♥ the word "behooves".
00:20:33 <Sgeo> Isn't VirtualBox based off of qemu slightly?
00:20:39 -!- copumpkin has quit (Ping timeout: 240 seconds).
00:20:42 <coppro> pikhq: it befoots you
00:20:48 <pikhq> Sgeo: Not really.
00:21:20 <pikhq> Sgeo: It'd be a GPL violation for VirtualBox to be based off of qemu, as there is a proprietary version of VirtualBox.
00:23:00 <pikhq> Also, I'd imagine that Bellard's work wouldn't integrate well with the more bureaucratic stuff coming out of Sun.
00:23:27 <Sgeo> qemu is Linux-only?
00:23:44 <pikhq> Uh, no.
00:23:48 <Sgeo> Erm, there's a Windows port
00:23:54 <Sgeo> I don't know how up to date it is
00:24:07 <Sgeo> "Stops updating.(2007/03/10)
00:24:07 <Sgeo> Thank you for your help."
00:24:13 <pikhq> It builds on Windows in mingw just fine, IIRC.
00:24:30 <Sgeo> http://homepage3.nifty.com/takeda-toshiya/qemu/
00:24:49 <pikhq> http://wiki.qemu.org/Download Here, have something useful.
00:25:04 <pikhq> Only real dependencies are GCC and SDL.
00:25:26 <Sgeo> I don't know if my MinGW is non-borked
00:25:37 <elliott> http://homepage3.nifty.com/takeda-toshiya/qemu/qemu-0.13.0-windows.zip would work fine...
00:25:41 <elliott> It's from 2010 after all.
00:26:03 <elliott> pikhq: Ha ha @ thinking Sgeo knows how to use a C compiler.
00:26:19 <elliott> (OK, s/knows how to use/will use/ for some incomprehensible reason.)
00:26:21 <Sgeo> elliott, in Linux, I'm comfortable enough...
00:27:08 <pikhq> Congrats. You can use a C toolchain anywhere.
00:27:11 <elliott> Sgeo: Then install Linux.
00:27:13 <elliott> But seriously, it's gcc.
00:27:16 <elliott> Exactly the freakin' same as Linux.
00:27:22 <elliott> If you have MSYS, it's even bash.
00:27:31 <Sgeo> I may have screwed up my copy of MinGW
00:27:34 <elliott> cd foo; ./configure; make.
00:27:35 <pikhq> The C build environment is very similar pretty much everywhere; it's pretty much defined as "what UNIX does".
00:27:35 <elliott> That was hard.
00:27:36 <Sgeo> Trying to get various things to work
00:28:02 <elliott> pikhq: Unless you use VISUAL STUUUUDIOOOOOOO
00:28:05 <pikhq> ... You, sir, fail at computers. I hereby ban you from ever touching anything with more than two transistors.
00:28:15 <pikhq> elliott: Even there it ships with a make.
00:28:22 <elliott> Yeaah but nmake.
00:28:30 <pikhq> Okay, true, nmake sucks ass.
00:28:36 <elliott> Sgeo: How on earth can you screw up MinGW?
00:28:51 <elliott> cp /dev/null mingw.exe? That can't be it, Windows has no /dev/null.
00:28:52 <Sgeo> By installing Git Bash?
00:28:59 <elliott> Seriously though.
00:28:59 <elliott> http://homepage3.nifty.com/takeda-toshiya/qemu/qemu-0.13.0-windows.zip
00:29:01 <elliott> Problem solved.
00:29:05 <Sgeo> elliott, I downloaded it
00:29:23 -!- oerjan has quit (Quit: leaving).
00:29:35 <Sgeo> SeaBIOS
00:29:37 <Sgeo> C BIOS
00:29:41 * Sgeo sillies
00:30:03 <Sgeo> Maybe I should read QEMU documentation before playing with it...
00:30:17 <pikhq> Maybe you should read a man page. Like a real man.
00:31:03 <elliott> I only read womyn pages.
00:31:27 * pikhq should kill people who use "womyn" seriously.
00:31:46 <elliott> Sgeo: qemu -fda color.com -vga std. If you can't make that work, pray and perhaps god will have mercy on your soul.
00:32:25 <Sgeo> I wasn't planning on playing with colorForth just yet, but ok
00:33:19 <pikhq> Dear *God* you morons, Indo-European languages have gender neutral/male and female words. Now SUCK IT UP AND ACCEPT THAT "MEN" IS GENDER NEUTRAL AND HAS BEEN SINCE BEFORE THERE WAS FREAKING WRITING IN EUROPE.
00:33:39 <pikhq> Oh, and make me a sandwich. :P
00:34:10 <Sgeo> elliott, blackness
00:35:23 <elliott> pikhq: Still, those who complain about gender-neutral terms because they're "stupid" ignore the fact that it does have a definite subconscious effect...
00:35:28 <elliott> Of course "woman" is perfectly fine.
00:35:42 <elliott> It does not derive from the word man-as-in-man, after all.
00:35:42 <Sgeo> elliott, not working
00:36:36 -!- pikhq_ has joined.
00:36:51 <elliott> <elliott> pikhq: Still, those who complain about gender-neutral terms because they're "stupid" ignore the fact that it does have a definite subconscious effect...
00:36:52 <elliott> <elliott> Of course "woman" is perfectly fine.
00:36:52 <elliott> <elliott> It does not derive from the word man-as-in-man, after all.
00:37:00 <pikhq_> elliott: Many of those gender-neutral forms are really, insanely awkward though.
00:37:27 <elliott> pikhq_: You should read this. http://www.cs.virginia.edu/~evans/cs655/readings/purity.html
00:37:46 <pikhq_> Think "he or she" instead of "he" or trying to replace gender-neutral use of "men" in phrases such as "All men are created equal".
00:37:58 <elliott> "They" instaed of "he".
00:38:10 <elliott> Also, while "men" there is gender-neutral in origin, the word "men" is _not_ gender neutral today.
00:38:12 <pikhq_> Yeah, there's an annoying one.
00:38:18 <elliott> *instead
00:38:21 <elliott> pikhq_: What, singular "they"?
00:38:24 <pikhq_> Yeah.
00:38:26 <elliott> I use it all the time, it is perfectly acceptable.
00:38:31 <elliott> Shakespeare used it for god's sake.
00:38:40 <elliott> Seriously, read http://www.cs.virginia.edu/~evans/cs655/readings/purity.html.
00:39:26 -!- pikhq has quit (Ping timeout: 240 seconds).
00:41:32 <coppro> I prefer Spivak pronouns myself though
00:41:41 -!- zzo38 has joined.
00:42:25 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
00:42:40 <pikhq_> elliott: Okay, finished reading.
00:43:42 <elliott> I find it's a very good article to expose people's unrealised cognitive biases...
00:44:09 <Sgeo> Lubuntu boots slowly in qemu...
00:44:46 -!- copumpkin has joined.
00:46:14 <pikhq_> elliott: Decent piece of rhetoric, pitiful for making a rational case.
00:46:43 <elliott> It is actually a satire of (the late) William Safire's corresponding view on gender-neutral language.
00:47:10 <elliott> Anyway, it is surely not intended to convince outright; it is intended only to expose unknown biases, because without that knowledge it is pointless to try and debate.
00:47:23 <pikhq_> And at that, it certainly does an admirable job.
00:49:41 <elliott> pikhq_: As far as I'm concerned, consider if people with blue eye colour were referred to as blues, and people with green eye colour (let's assume these are the only two eye colours for this line) were keblues, but that both of these derived from the eye-colour-neutral word "blue" in a previous language. And consider also that there was a long, long history of discrimination against and inequality for keblues, and that almost every word referring
00:49:41 <elliott> to a person in some way brought up their eye colour in this way...
00:49:57 <elliott> What the word meant in the past is irrelevant compared to what it means today.
00:49:58 <Sgeo> Is QEMU 0.11.1 acceptable?
00:50:20 <elliott> Obviously this cannot be fixed outright in English. But where its solution is not jarring -- for instance the perfectly-cromulent singular they -- it is recommendable.
00:50:32 <elliott> There is no need to distinguish any property in pronouns.
00:50:54 <Sgeo> Yes, I'm actually going to use a GUI with Qemu
00:50:56 <Sgeo> Sue me.
00:52:06 <pikhq_> elliott: I assert that changing the language in the name of diminishing inequality does not in any way affect *actual* inequality, and is as such little more than a exercise in navel-gazing.
00:52:26 <elliott> But it is an inequality in and of itself.
00:52:52 <elliott> pikhq_: It's been shown that the default choice of "he" leads to this kind of male-centrism... if an even-female author started fleshing out and writing dialogue for a character with no yet-decided gender, you could bet that if you asked her what her impression of eir gender is, she would respond "male".
00:52:57 <elliott> Consider Hofstadter, the author of that piece I linked.
00:53:01 <pikhq_> A fairly minor and inconsequential one, perhaps.
00:53:13 <elliott> In Gödel, Escher, Bach there is a turtle, in the Achilles/Turtle dialogues.
00:53:31 <elliott> There is nothing whatsoever in the book to suggest e is male apart from the automatic use of the pronoun "he" -- which, let's say, is neutral, because that is the position.
00:54:11 <elliott> Yet when the French translator of the book asked Hofstadter if they could change the turtle's gender, for in French the word "turtle" is feminine (or something of that sort) and as such a male turtle character would be exceedingly torturous to write without seeming awkward -- this surprised Hofstadter immensely.
00:54:19 <elliott> He agreed.
00:54:42 <elliott> As we can see, the default of "he" assigned a character's gender to be male when there was no inherent reason for them to be either male or female, and this notion got cemented.
00:54:45 <elliott> So there is a real inequality.
00:55:46 <pikhq_> Does changing the language in this manner affect more notable issues, such as the difference in male/female pay, or the rather pitiful presence of females in politics, engineering, science, math, etc.?
00:55:56 <variable> pikhq_: yes
00:56:00 <pikhq_> variable: Do tell.
00:56:24 <variable> at least in experimental studies where people were asked to use gender neutral terms were more likely to
00:56:49 <variable> rate people equally at a task than if they used gender specific terms (even female specific terms)
00:57:11 <pikhq_> Ah. Well, then, perhaps we *should* strive to engender a more gender-neutral language.
00:57:33 <elliott> engender hur hur hur
00:57:35 <elliott> that's my contribution
00:57:43 <pikhq_> elliott: I felt obligated.
00:58:09 <variable> pikhq_: I attempt to use gender neutral terms when able. However there are times when it is purely awkward to do so
00:58:42 <variable> and I won't use words like "xe" unless they become mainstream
00:58:58 <elliott> Singular they, yo.
00:59:19 <variable> elliott: hrm?
00:59:22 * pikhq_ still insists on singular informal "thou". :P
00:59:55 <elliott> variable: "They" > "xe".
01:00:25 <variable> pikhq_: by the way - while said tendency to rate different based on gender is global -- the particular traits are culture specific
01:00:50 <pikhq_> variable: Well, yes, that would make sense; it'd probably be based upon cultural gender rôles.
01:01:06 <variable> pikhq_: sort of - its actually based on language & gender roles
01:01:19 <variable> (let me type for a sec - this is a bit long)
01:04:21 <variable> for example: In English nouns have no gender - and as such English speakers associate neutral traits with the word "chair". However Hebrew speakers associated male traits with the word "כסא" because it is a male noun. However people were more likely to associate _gender_ with gender roles. Meaning that English speakers were more likely to call "kitchen" a "feminine" but were NOT likely associate "feminine" traits [ I'm not sure where this
01:04:21 <variable> list came from - but things like "warm" "caring" "loving" ] with "kitchen"
01:04:24 <Sgeo> QEMU seems to be _slow_
01:05:37 <pikhq_> Sgeo: Do you have hardware virtualisation?
01:05:43 <Sgeo> I think so
01:05:46 <pikhq_> Turn it on.
01:05:49 <elliott> THE CARING KITCHEN!
01:05:58 <Sgeo> ...I didn't realize it could be off
01:06:05 <elliott> pikhq_: kqemu is linux onl
01:06:05 <elliott> y
01:06:06 <elliott> no?
01:06:21 <Sgeo> elliott, QEMU Manager has an option to install KQEMU
01:06:33 <Sgeo> Which I used
01:06:38 <pikhq_> KQEMU is for Linux and Windows.
01:06:45 <variable> elliott: its for FreeBSD as well
01:06:57 <variable> pikhq_: did my wall-of-text above make sense?
01:06:57 <Sgeo> Is 0.11 significantly slower that 0.13?
01:07:00 <elliott> variable: Let's pretend I left it out just to troll you.
01:07:00 <pikhq_> variable: Yeah.
01:07:08 <pikhq_> Sgeo: Not really.
01:07:17 <pikhq_> Sgeo: Believe it or not, software emulation is pretty much always slow.
01:07:37 <pikhq_> variable: That... Makes quite a bit of sense.
01:07:44 <Sgeo> VMware seems to be speedy with Lubuntu...
01:08:28 <Sgeo> QEMU Manager doesn't seem to like fullscreen
01:08:31 * Sgeo gets pissed off
01:09:02 <elliott> pikhq_: VirtualBox's x86 emulation is faster than hardware virt. circa 2007 IIRC
01:09:23 * Sgeo gives up for now
01:09:25 <pikhq_> elliott: Uh, Imma call bull.
01:09:40 <variable> pikhq_: I recall some experiments relating to gender neutral words and assumptions about whether the characters in the story were male/female. Problem is that I don't remember anything else :)
01:09:45 <elliott> pikhq_: VB's x86 emulation is stupidly optimised.
01:09:55 <elliott> pikhq_: *Stupidly.*
01:09:59 <variable> that said - changing language in such a manner is *hard*
01:10:03 <variable> elliott: hrm ?
01:10:08 <elliott> variable: ?
01:10:20 <pikhq_> elliott: Its x86 "emulation" is almost certainly executing user-mode code directly.
01:10:23 <variable> elliott: stupidly optimized == very good or very bad ?
01:10:27 <elliott> variable: Very good.
01:10:33 <elliott> pikhq_: Perhaps.
01:10:37 <variable> pikhq_: it is
01:10:42 <pikhq_> And as such doesn't work outside of x86.
01:10:53 <elliott> [[Since 2006, Intel and AMD processors have had support for so-called "hardware virtualization". This means that these processors can help VirtualBox to intercept potentially dangerous operations that a guest operating system may be attempting and also makes it easier to present virtual hardware to a virtual machine.]]
01:10:57 <elliott> Yeah, sounds like it.
01:11:05 <variable> modern emulators just trap syscalls but run usermoe code directly
01:11:28 <variable> elliott: all that means is that it is running as the hypervisor and intercepting syscalls
01:11:31 <pikhq_> variable: qemu doesn't.
01:12:00 <variable> pikhq_: I'm not very familiar with qemu - but that would make it *much* slower than vbox
01:12:09 <elliott> variable: It is.
01:12:16 <elliott> Qemu is ridiculously slow but ridiculously accurate.
01:12:18 <pikhq_> qemu can't, really — it's a platform-independent emulator.
01:12:22 <elliott> Only Bochs can compete in slowness and accuracy :P
01:12:36 <elliott> Yeah, qemu's portability is the thing.
01:13:47 <pikhq_> Not to mention it emulates a variety of CPUS.
01:13:53 <Mathnerd314> $
01:14:25 <pikhq_> The list is... x86, x86-64, MIPS, SPARC, ARM, SH4, PPC, CRIS, and MicroBlaze.
01:14:35 <pikhq_> (not all of them are whole-system emulators)
01:15:03 <pikhq_> Oh, and Alpha.
01:15:07 <elliott> Mathnerd314: /
01:15:15 <elliott> pikhq_: Not Alpha.
01:15:19 <elliott> It does not do Alpha.
01:15:23 <Mathnerd314> !
01:15:23 <pikhq_> Aaaw.
01:15:58 <zzo38> I have used Bochs.
01:16:22 <zzo38> (Bochs won't work if you assign only one megabyte of memory, you need to assign at least two megabytes of memory to make it work?)
01:16:48 <pikhq_> elliott: Uh, yes, it does, just not whole-system emulation.
01:17:03 <elliott> Hmm, okay then.
01:17:08 <pikhq_> Hmm, I'm also seeing an m68k emulator here.
01:18:16 <pikhq_> Gotta love userspace emulation.
01:27:27 <elliott> 14:21:42 <fizzie> U+23E5 FLATNESS: ⏥. Certainly, that is the concept of flatness, compressed into a single symbol.
01:27:27 <elliott> 14:21:54 <ehird> fizzie: That’s not… well… flat.
01:27:27 <elliott> 14:22:01 <ehird> It’s poking upwards.
01:27:27 <elliott> 14:22:11 <fizzie> You probably have to just look at it in the right way.
01:27:28 -!- GreaseMonkey has joined.
01:27:28 -!- GreaseMonkey has quit (Changing host).
01:27:28 -!- GreaseMonkey has joined.
01:28:10 <elliott> 14:22:21 <fizzie> Become one with the flatness, you know.
01:30:55 <elliott> 14:32:42 <AnMaster> Deewiant, the bash builtin time is more accurate
01:30:55 <elliott> 14:32:48 <AnMaster> three decimals
01:30:55 <elliott> 14:33:00 <Deewiant> Oh noes the inaccuracy!!
01:30:55 <elliott> 14:33:09 <AnMaster> Deewiant, for cfunge it matters. it is so quick
01:30:59 <elliott> 14:33:15 <Deewiant> I knew you'd say that
01:30:59 <elliott> 14:33:18 <Deewiant> And you're wrong
01:30:59 <elliott> 14:33:24 <Deewiant> It doesn't matter, precisely because it is so quick
01:31:01 <elliott> 14:33:37 <Deewiant> If you get to the point that the wall clock time is 0.00s... you're done
01:31:02 <elliott> 14:33:48 <Deewiant> All you have to do then is get a slower computer :-P
01:37:44 <zzo38> I do not have the font for U+23E5 in my computer
01:39:49 <elliott> It's FLATNESS.
01:45:00 -!- pikhq_ has quit (Ping timeout: 240 seconds).
01:45:14 -!- pikhq has joined.
01:52:12 -!- yorick has joined.
01:53:00 -!- azaq23 has joined.
02:00:23 -!- zzo38 has quit (Remote host closed the connection).
02:10:05 <ominovorol> "<elliott> There is no need to distinguish any property in pronouns." <<< it makes a good point
02:10:28 <elliott> ominovorol: hey i wouldn't mind a language where people are referred to as the it equivalent
02:10:32 <elliott> that's totally pure
02:12:08 <Sgeo> What does Lojban do? Refers to earlier in the ... sentence-equivent structure, I think?
02:12:11 <Sgeo> I barely remember
02:12:16 <Sgeo> tswett, you here?
02:14:04 <ominovorol> "<pikhq_> Aaaand another B on a math test, simply because I have little ability to pay attention to small details." worst typoing of "suck" i've ever seen
02:15:43 <elliott> ominovorol: xDD
02:17:00 <elliott> 07:47:08 <Deewiant> Haha 'I only use Gentoo with -fbroken-math, -fno-stack, and -finfinite-loops.'
02:17:00 <elliott> 07:47:26 <AnMaster> Deewiant, who?
02:17:00 <elliott> 07:47:31 <AnMaster> also that is a joke obviously
02:17:01 <elliott> 07:47:42 <ais523> what would -finfinite-loops do, anyway?
02:17:01 <elliott> 07:47:49 <ais523> the other two I can sort of guess
02:17:01 <elliott> 07:47:51 <Deewiant> It inlines finite loops
02:17:03 <elliott> 07:47:59 <ais523> heh
02:17:05 <elliott> no
02:17:07 <elliott> it inlines EVERY loop!
02:17:15 <elliott> infinite loops then become truly infinite in the generated code.
02:18:22 -!- pikhq has quit (Ping timeout: 260 seconds).
02:18:31 <elliott> 07:57:38 <Deewiant> AMD64 I can understand, x86_64 I can't.
02:18:31 <elliott> 07:57:56 <Deewiant> Nor the banal x64.
02:18:32 <elliott> dobel
02:19:00 <ominovorol> "<Phantom_Hoover> What happened was that I confronted a teacher about some dubious claims she had made to my parents, which resulted in them phoning my parents directly and making even *more* dubious claims (read: lies)." <<< aren't you in high school?
02:20:00 <elliott> ominovorol: yes, he is
02:20:03 <elliott> why?
02:23:08 <ominovorol> "<elliott> ominovorol: hey i wouldn't mind a language where people are referred to as the it equivalent" <<< in finnish, people usually say it for people
02:23:14 <ominovorol> well, always
02:23:33 <elliott> ominovorol: now i'm even more indecisive about learning trollspeak (finns) vs moonspeak (japs) :(
02:23:52 <ominovorol> japanese is all about making a difference between living and nonliving things
02:24:33 <ominovorol> "<elliott> why?" <<< calling parents in high school?!? that would never happen in finland
02:24:42 <elliott> ominovorol: :D
02:24:48 <ominovorol> i mean come on, no one lives at home in high school
02:24:48 <elliott> <ominovorol> japanese is all about making a difference between living and nonliving things
02:24:49 <elliott> is it like
02:24:52 <elliott> a hippy language.
02:25:04 -!- pikhq has joined.
02:25:09 <elliott> pikhq: how hippie is jap
02:25:36 <ominovorol> pikhq: would you agree that japanese makes a very clear distinction between living and nonliving things
02:25:41 -!- ominovorol has changed nick to oklopol.
02:25:52 <elliott> *is hipie
02:25:56 <elliott> one p
02:26:01 <oklopol> i may be completely wrong about things like this, having inferred them form rather few examples
02:26:24 <elliott> oklopol: it totally reflects the cold impersonal nature of finns
02:26:26 <elliott> and loving, warm nature of japs
02:26:29 <elliott> sapir whorf motherfucker
02:26:41 <oklopol> yes
02:26:57 <oklopol> personally i couldn't care less if my own brother died of cancer
02:27:02 <oklopol> i would be a bit surprised ofc
02:28:08 -!- BeholdMyGlory has quit (Remote host closed the connection).
02:28:48 <pikhq> oklopol: The language? Little bit of difference between humans and anything else.
02:29:12 <oklopol> oh also i occasionally say "he" for nonliving things
02:29:13 <pikhq> Most obviously, "iru" is used for humans and "aru" for everything else.
02:29:56 <elliott> 09:42:02 <fizzie> Heh, the likelyhasbetween(x,m,n) macro in http://www-graphics.stanford.edu/~seander/bithacks.html#HasBetweenInWord is by mooz.
02:29:58 <elliott> best name ever
02:30:04 <oklopol> something about "ni" has also given me a very livingness-aware feeling of the language
02:30:12 <pikhq> oklopol: Uh, how so?
02:30:38 <oklopol> maybe that'll be easier to answer once someone actually teaches me how ni is used :)
02:30:58 <pikhq> It, like all of the other grammatical particles, has a lot of use.
02:31:04 <oklopol> currently i seem to get sentences right if i just use "ni" for absolutely everything with humans.
02:31:23 <pikhq> oklopol: 例えば?
02:31:29 <oklopol> like "ni" for both giving to and receiving from
02:32:01 <pikhq> Yeah, you're not getting the full idea of its semantics.
02:32:09 <oklopol> surely not
02:32:19 <oklopol> as i said, guessing from rather few examples :)
02:32:39 <pikhq> http://www.guidetojapanese.org/learn/grammar Here. Read.
02:32:45 <oklopol> i'm learning kanji now, and i've learned some vocab, will start learning grammar on my own once my thesis is finished
02:32:48 <elliott> 10:04:17 <fizzie> Quite a large program, if there were 18446744073709551522 non-space elements on row 0.
02:32:48 <elliott> 10:05:14 <fizzie> Something like... 10 % larger than Mycology, eh?
02:32:48 <elliott> :D
02:33:00 <pikhq> oklopol: RTK?
02:33:08 <oklopol> also umm
02:33:13 <oklopol> passive tense
02:33:14 <elliott> reticulating the kant
02:33:17 <elliott> *technological
02:33:36 <oklopol> the agent thing can just be used for humans, and it's very flexible in that case
02:33:38 <oklopol> afaiu
02:33:57 <Ilari> With the depletion rate in last two months (46 058 240 addresses in 59 days), APNIC would deplete in about 2.5 months (mid May). Ugh.
02:34:03 <oklopol> (this is not from examples, this is from a grammar)
02:34:05 <pikhq> Ilari: Dang.
02:34:32 <oklopol> what's RTK
02:34:35 <pikhq> oklopol: Tae Kim is the only Japanese grammar I've run into that I don't despise for blatantly lying at you.
02:34:36 <oklopol> so probably the answer is no
02:34:40 <pikhq> RTK = Remembering The Kanji.
02:34:53 <elliott> pikhq: link me to that tae kim thing later
02:35:03 <elliott> i'll like
02:35:05 <oklopol> well no not that one, i'm using flashcards
02:35:08 <elliott> totally learn kana soon
02:35:11 <elliott> go through rtk ... stuff...
02:35:18 <elliott> oklopol: erm i think rtk is to be used in conjunction with cards...
02:35:19 <pikhq> oklopol: Flashcards and RTK are not even vaguely exclusive.
02:35:24 <elliott> rather than just rote memorisation
02:35:32 <pikhq> In fact, flashcards are expected.
02:35:32 <elliott> which is obviously ineffective even to a moron like me :)
02:35:56 <Ilari> 28th, NTT allocate a /9(!!!) from APNIC. One fairly rarely sees blocks of that size.
02:35:56 <oklopol> right
02:36:11 <elliott> i allocated a /1
02:36:16 <pikhq> oklopol: And RTK will probably take you a month or two.
02:36:50 <pikhq> For, uh, the whole thing.
02:36:56 <oklopol> how many kanji is that?
02:36:57 <pikhq> All t3h kanjis.
02:37:00 <elliott> 3,000
02:37:01 <elliott> i think
02:37:08 <pikhq> elliott: RTK 1 + 3 is 3,000.
02:37:12 <pikhq> RTK 1 is ~2,000.
02:37:15 <elliott> it's sumthin' 'bout decomposin' teh kanjis
02:37:20 <pikhq> Lemme check the exact figure.
02:37:20 <elliott> into littler kanjoids
02:37:21 <elliott> omg
02:37:22 <elliott> kanjoids
02:37:24 <elliott> best word
02:37:31 <oklopol> 3007 is how many i have in the flash card set
02:37:45 <pikhq> Some 2042 in here.
02:37:57 <Ilari> Wonder if APNIC will deplete before world IPv6 day. At least before it depletes, it will make mincemeat out of IPv4 DFZ routing table.
02:38:41 <oklopol> the flashcard set i'm using doesn't even have readings, so it prolly makes rather little sense to do it without a book
02:38:53 <pikhq> elliott: It's better than "radical", actually, IMO.
02:38:56 <Ilari> Which will cause problems of its own.
02:39:03 <oklopol> well, dunno
02:39:11 <elliott> oklopol: readings are the whole point of rtk i think
02:39:13 <elliott> pikhq: :D
02:39:16 <elliott> pikhq: please say kanjoids in future
02:39:20 <oklopol> prolly easy to assign readings once you have a mental slot for every kanji
02:39:26 <pikhq> elliott: As "radical" technically only refers to the kanjoids that are used for dictionary lookup.
02:39:39 <elliott> oklopol: but but with the kanjoids you need less sluts!
02:39:42 <elliott> ...
02:39:42 <elliott> slots
02:39:45 <elliott> but also the slut requirements decrease
02:40:03 <pikhq> oklopol: The point of RTK is to get you a rough indication of the kanji's semantics, and *much more importantly* to decompose kanji into kanjoids and learn them that way.
02:40:47 <oklopol> i can decompose into kanjoids myself tho
02:41:21 <oklopol> i might get some wrong etc but erm so what's the point of knowing the kanjoids?
02:41:26 <elliott> kanjoids are like haemorrhoids. but japanese.
02:41:29 <Ilari> Some do think that the final downfall of IPv4 will be the DFZ table size.
02:41:31 <pikhq> oklopol: What order are you learning them in?
02:41:32 <elliott> KANJOIIII~DE!
02:42:16 <oklopol> pikhq: the order the flashcards are in, they usually come in a rather nice order that teaches me a small thingie and uses it in about 20 kanji
02:42:34 <pikhq> oklopol: What's the name of the flashcard set?
02:42:43 <oklopol> occasionally i give my own meaning to a part tho
02:42:51 <oklopol> heisig's remember the kanji
02:43:04 <oklopol> some of the cues are pretty insane
02:43:11 <pikhq> oklopol: Uh, I'm advocating the book that goes along with that flashcard set. :P
02:43:11 <Ilari> Wonder when IPv4 allocations growth rate will turn negative.
02:43:17 <oklopol> well, dunno if you could find better ones
02:43:32 <oklopol> pikhq: yeah i've consider that, briefly :D
02:43:32 <elliott> <oklopol> heisig's remember the kanji
02:43:33 <elliott> RTK =
02:43:35 <pikhq> oklopol: The Anki deck.
02:43:39 <elliott> reading
02:43:42 <elliott> toblerone
02:43:43 <oklopol> the anki deck yes
02:43:47 <elliott> kastration
02:43:51 <elliott> by Haggard
02:43:54 <elliott> H's RTK
02:43:56 <elliott> *H.'s
02:44:24 <oklopol> pikhq: but maybe i could learn all of them first and then read the book, that sounds like something a crazy like me would do.
02:44:28 <pikhq> elliott: 数 is a second-grade kanji. 了 is left for middle-school.
02:44:35 <pikhq> elliott: You may now WTF.
02:44:44 <elliott> xD
02:44:47 <elliott> one on the right is a spiky penis
02:44:49 <elliott> thought you should know
02:44:54 <elliott> (with balls...ball)
02:45:58 <oklopol> the one on the right is "complete", the left one i can't really make sense out of, is it that "he/she" or something thing i learned from watching kyle xy with chinese kanji subtitles maybe?
02:46:08 <pikhq> oklopol: It's "number".
02:46:13 <oklopol> alright.
02:46:29 <oklopol> i don't know that one yet, which is kinda weird since i'm up to something like 500
02:46:31 <pikhq> elliott: The ordering used for Japanese education of kanji is perhaps the single stupidest thing ever.
02:47:30 <elliott> oklopol: then you know over hyakugojyuuichi. ...well i totally failed to blend that with "over 9000"
02:47:32 <elliott> go home everyone.
02:47:47 <cheater00> it's not like you need to know about spiky penises before middle school anyways
02:48:15 <oklopol> yes, i know over 151
02:48:27 <Ilari> But, IPv6 migration is going to be messy to say the least.
02:48:45 <elliott> oklopol: i'm referencing http://www.albinoblacksheep.com/flash/pika.
02:48:48 <cheater00> as long as the .cx TLD makes it through i'm happy
02:48:56 <elliott> of internet yoree.
02:48:57 <elliott> with two es.
02:49:00 <elliott> it's just that olde.
02:49:13 <oklopol> right, i don't know that
02:49:32 <elliott> oklopol: you do now. go watch it. it'll learn you japanese.
02:49:33 <elliott> like, uh
02:49:34 <elliott> phonics!
02:49:47 <pikhq> ...
02:50:02 <pikhq> 食 comes before 良?
02:50:08 <pikhq> THAT IS FUCKING CRUELTY.
02:50:15 <oklopol> :D
02:50:16 <oklopol> lol
02:50:19 <elliott> pikhq: Where does hyakugojyuuichi come in
02:50:43 <pikhq> elliott: Hyaku, go, juu, and ichi are all first-grade.
02:50:57 <elliott> is there one big messy kanji with all of hyakugojyuuichi packed in, say yes
02:51:05 <Sgeo> elliott, is it sad that I at first thought it was based off that ... scientology thing? Also, I think I saw this before (unless this isn't the original). I don't think it is, but I remember one pa.. oh, it was that tribute that I'm remembering
02:51:06 <pikhq> 百五十一
02:51:11 <elliott> what's go in japanese again
02:51:13 <elliott> the game
02:51:15 <Sgeo> igo
02:51:18 <Sgeo> I think
02:51:18 <elliott> pikhq: that's multiple kanjae.
02:51:21 <elliott> kanjoidae.
02:51:27 <elliott> kanji = kanjoidae
02:51:32 <pikhq> elliott: You could stick them into a single one just fine.
02:51:35 <elliott> kanjae = kanjoidaeae
02:51:37 <elliott> pikhq: SO DO.
02:51:38 <elliott> *DO SO.
02:51:52 <pikhq> Unicode, however, does not permit encoding such a thing.
02:52:52 <elliott> pikhq: wtf
02:52:55 <elliott> why is unicode the shits?
02:53:04 <oklopol> you are allowed to stick them into a single kanji?
02:53:06 <elliott> does shift-jis do that? or one of the other jap encodings :P
02:53:08 <elliott> i want like
02:53:12 <elliott> agglutinative character set!
02:53:20 <oklopol> can someone buy me a better japanese course plz
02:53:56 <pikhq> oklopol: Neologism, bitch.
02:54:19 <elliott> oklopol: remembering the poopji
02:54:27 <elliott> it uses fecal metaphors
02:54:30 <elliott> for the three-year-old in you
02:54:33 <pikhq> oklopol: What, if any, Japanese course are you using?
02:54:45 <oklopol> i was referring to the course at the uni
02:54:46 <elliott> pikhq: Retarding the Kanji
02:54:49 <oklopol> we do genki
02:54:55 <pikhq> Aaaah, Genki.
02:55:00 <pikhq> That one perpetuates LIES
02:55:15 <pikhq> Most damnable lies!
02:55:33 <oklopol> :P
02:55:35 <oklopol> which ones?
02:55:39 <pikhq> Polite form before dictionary/plain form is wrong, stupid, wrong, stupid, and also wrong.
02:55:50 <pikhq> Did I happen to mention it's stupid and wrong?
02:55:59 <oklopol> at least, we've finally gotten past those
02:56:06 <oklopol> erm, well
02:56:23 <oklopol> in the sense that we now use grammatical constructs that require short form
02:56:23 <pikhq> That is definitely the most damnable lie in Japanese pedagogy, and almost every course does it.
02:56:45 <oklopol> so we use short form with those, and long with everything else
02:56:45 <elliott> http://genki.japantimes.co.jp/index.en.html
02:56:46 <elliott> looks faggy
02:56:48 <elliott> fagshitty :3
02:57:33 <pikhq> Polite form before dictionary form involves something absolutely, completely nuts. It involves teaching people *reverse conjugation*.
02:57:42 <pikhq> Really.
02:58:23 <pikhq> For the dubious benefit of being able to speak politely as you recite phrases from a phrasebook-in-the-head.
02:58:28 <elliott> :D
02:58:30 <elliott> reverse conjugation
02:58:34 <elliott> that's the best idea i've ever heard
02:58:59 <pikhq> Hint: if you're so very obviously not a competent speaker, the Japanese speakers aren't going to *care* if you're insufficiently formal.
02:59:11 <Sgeo> Or maybe they will!
02:59:16 <Sgeo> I can imagine some caring
02:59:17 <elliott> REVERSE CONJUGAL VISITS
02:59:19 <pikhq> Quite honestly, they'll just be damned surprised you know more than "kon'nichiha".
02:59:31 <elliott> *wa
02:59:32 <elliott> you stupid
02:59:34 <elliott> illiterate
02:59:36 <elliott> american
02:59:36 <elliott> :D
02:59:58 <pikhq> elliott: "ha" is the proper encoding of that grammatical particle, even though it is pronounced "wa".
03:00:09 <elliott> pikhq: HAHAHA YEAH NO FOOLING ME
03:00:17 <elliott> pathetic save man
03:00:18 <elliott> pathetic
03:00:19 <pikhq> This is one of the three orthographic inconsistencies in the language.
03:00:24 <oklopol> yeah the reverse conjugation thing was pretty absurd
03:00:27 <oklopol> we spend hours on that
03:00:36 <pikhq> (the others are "wo" and "he", also particles)
03:00:47 <elliott> what does reverse conjugation even...mean.
03:01:01 <pikhq> elliott: You go from a conjugated form to a plain form.
03:01:06 <elliott> pikhq: NO SHIT SHERLOCK
03:01:58 <oklopol> basically, we are taught mimasu and tabemasu, sees and eats, and then later on, we are taught how to get the basic forms miru and taberu, even though that's how they are already given in the vocabulary list
03:02:18 <elliott> i sees it, i eats it.
03:02:18 <pikhq> "oyoimasu" -> "oyogu", "tabemasu" -> "taberu", "imasu" -> "iru", "simasu" -> "suru", and so on.
03:02:24 <elliott> i... mimasu it, i tabemasu it.
03:02:34 <oklopol> oyogimasu, surely?
03:02:38 <pikhq> Oh, dur.
03:02:45 <elliott> oklopol: pikhq is illiterate as we have already established
03:02:59 <pikhq> I don't think I've seen that outside of -te form more than once.
03:03:01 <oklopol> well i hadn't read the rest of the list, so i was scared it was a form i didn't know
03:03:07 <oklopol> oyoide
03:03:11 <pikhq> Yuh.
03:03:18 * oklopol gets cookie
03:03:36 <elliott> pikhq: I thought you might like this reaction from my friend who I pasted a few of these lines to: [["shimasu" ¬____¬ romanisation is there for a reason]]
03:03:40 <elliott> I've already built my bomb shelter
03:03:42 <elliott> Gogogo
03:04:01 <pikhq> elliott: I was using an ISO standard romanisation!
03:04:07 <pikhq> WHAT MORE DO THEY WANT
03:04:15 <pikhq> *Hepburn*‽
03:04:25 -!- wth has joined.
03:04:34 <elliott> pikhq: just talk in your personal romanisation scheme in future, he'll be too confused to understand you
03:04:38 <elliott> he's an idiot btw
03:04:40 <elliott> total idiot
03:04:42 <elliott> absolute idiot
03:04:44 <elliott> gonna paste this to him now
03:04:44 <oklopol> speaking of japanese, i should be doing my japanese homework
03:04:51 <oklopol> i have to write a diary USING SHORT FORMS
03:05:01 <pikhq> elliott: sonohitokàhì'kurinihàkatàyo'!
03:05:36 <oklopol> it's great how everyone's finding it really hard to say "mita" and "minai", but "tabeteimasendeshita" comes easy to everyone
03:06:04 <elliott> pikhq: "That's not a nice thing to say :("
03:06:05 <oklopol> because we started with long forms and -te forms
03:06:19 <pikhq> elliott: He actually got it? Fuck yeah.
03:06:32 <elliott> pikhq: he might have been referring to my calling him an idiot, lemme check :D
03:06:36 <oklopol> you said he's stupid
03:06:40 <oklopol> what's bikkuri?
03:06:40 <elliott> oklopol: the stupidest.
03:06:44 <oklopol> ah
03:06:59 <pikhq> oklopol: "Bikkuri-ni" is "surprisingly" or "shockingly" or the like.
03:07:05 <elliott> pikhq: He got it, yes, he's terribly offended
03:07:19 <elliott> TERRIBLY
03:07:21 <oklopol> i certainly have seen that word
03:07:24 <elliott> really bad at being offended that guy
03:07:28 <elliott> as well as bad at everything
03:07:30 <elliott> pretty much the worst.
03:07:41 <pikhq> elliott: Ask him how well he reads Japanese.
03:07:49 <pikhq> elliott: Say, how hard is Wikipedia in Japanese?
03:08:05 <elliott> pikhq: probably badly, he doesn't actually know any ;D
03:08:14 <pikhq> Lamer!
03:08:20 <oklopol> i can read wikipedia in japanese just fine, because it's in katakana hahahaha
03:08:27 <elliott> i love how i'm trashing his reputation in front of him
03:08:29 <pikhq> oklopol: Baaah.
03:08:29 <elliott> he's helpless
03:08:35 <elliott> oklopol: really? xD
03:08:38 <elliott> pikhq: "I am really quite bad at it"
03:08:43 <pikhq> elliott: Just the word "Wikipedia".
03:08:43 <oklopol> "wikipedia" is in katakana
03:08:50 <elliott> straight from the horse's mouth itself and that horse is NOT a metaphor
03:08:53 <elliott> oklopol: LULZ
03:08:58 <pikhq> elliott: ウィキペディア <-
03:08:59 <oklopol> an old joke from the bible
03:09:16 <pikhq> (uīkihętèīa)
03:09:24 <oklopol> i was all like "wikipediakuu"?
03:09:30 <oklopol> *""wikipediakuu?"
03:09:36 <oklopol> argh *-"
03:09:43 -!- wth has left (?).
03:09:57 <oklopol> even though ku is not katakana, written like that
03:10:22 <pikhq> oklopol: ... Eat Wikipedia?
03:10:25 <pikhq> WTF is wrong with you.
03:10:34 <oklopol> it's scary talking about japanese with pikhq, he really makes you feel like you should not suck at something you supposedly do
03:10:42 <pikhq> LMAO
03:11:16 <oklopol> pikhq: you're the one talking about eating wikipedia
03:11:27 <oklopol> i'm just reading it and going wtf myself
03:11:37 <oklopol> kuu = eat?
03:11:53 <oklopol> something like "kue" means "EAT MOTHERFUCKER"
03:11:58 <oklopol> well, maybe not that strong
03:12:08 <pikhq> "kuu" is a fairly informal "eat", yeah.
03:12:09 <elliott> nah it's more like "EAT BITCH"
03:12:16 <oklopol> but i mean imperative, "eat" didn't convey that so i added the motherfucker, which puts it in imperative.
03:12:18 <pikhq> Or samurai-like, depending on context.
03:12:39 <pikhq> elliott: Context can make it that.
03:12:47 <oklopol> yeah english has two ways to do imperatives, the motherfucker and the bitch forms
03:14:08 <oklopol> our english teacher said you also use fucker but that that's a more advanced topic
03:14:14 <elliott> man i'm like a two-way irc client for my friend
03:14:17 <elliott> i should just drag him in here
03:14:21 <elliott> so pikhq can mock him directly
03:14:23 <elliott> all in favour say aye
03:14:28 <oklopol> i can mock him too
03:14:33 <oklopol> can't even read wikipedia, lol
03:14:35 <elliott> that's an aye then
03:14:37 <oklopol> what a fucking retard
03:14:52 <oklopol> i opened it once and could read one of the kanji just fine
03:14:54 <elliott> so when was the last time you read ja.wikipedia oklopol ;D
03:14:56 <elliott> ha
03:15:01 <elliott> *kanjae
03:15:26 * pikhq can't read it *out loud* fully, but hey, who needs to do that? :P
03:15:33 <oklopol> :P
03:15:34 <oklopol> tru
03:15:52 <oklopol> elliott: fall, i hadn't learned any kanji back then
03:15:55 <elliott> pikhq: can i get an aye
03:16:01 <pikhq> elliott: Aye, laddy!
03:16:28 <pikhq> oklopol: Probably the worst bit about a formal Japanese course is how mind-bogglingly slow it is.
03:16:42 * Sgeo surrounds the space where elliott's heart should be with stones
03:16:56 <Sgeo> </too-elaborate-to-be-funny?
03:16:57 <oklopol> yeah it's mind-bogglingly slow, but people are having a really hard time anyway
03:16:57 <Sgeo> >
03:17:02 <oklopol> i don't get why
03:17:02 <pikhq> You will be about able to discuss with a somewhat boring 4 year old by the time you're done with Genki.
03:17:10 <oklopol> well
03:17:23 <oklopol> i just listened to the second book's last listening comprehension
03:17:26 <pikhq> No, sorry, a *particularly* boring 4 year old.
03:17:36 <oklopol> and it was about something like "can you play the guitar?"
03:17:56 <oklopol> that kata thingie or what was it
03:18:20 <oklopol> erm or was koto sometimes used for that kinda thing
03:18:34 <oklopol> well in any case, point was it was something very simple :)
03:18:38 <pikhq> Oh, -u koto ga aru?
03:18:41 <oklopol> yes!
03:18:53 <oklopol> so have you done something
03:19:06 <oklopol> do you have the personal event of playing the guitar
03:19:08 <oklopol> :P
03:19:16 <pikhq> What really gets me with that shit is that ALL OF THIS COMES ENTIRELY NATURALLY FROM "koto" and "aru"!
03:19:40 <pikhq> I mean, really, you could "teach" that by just saying it a few times and someone who doesn't suck would get it.
03:19:47 <pikhq> Oh, wait. "someone who doesn't suck".
03:20:03 <oklopol> well it comes naturally from thinking koto is the event of you doing something
03:20:12 <oklopol> but i'm not sure that's what it is
03:20:36 <oklopol> maybe i've rationalized it wrong, genki just says "copy paste this sentence, change words X and Y"
03:20:49 <pikhq> Yeah, see, that's horribly wrong, and you should read Tae Kim.
03:20:54 <pikhq> And drop that course.
03:21:12 <pikhq> You'd be more productive if you just watched anime during the time you'd be taking that course, *and did nothing else*.
03:21:30 <oklopol> i agree, but i can't "drop a course"
03:21:31 <pikhq> (to specify further: anime, without subs, in Japanese)
03:21:36 <elliott> he's a superfag and spent 10 minutes saying he was leaving too quickly to use webchat.freenode.net as opposed to the three minutes it'd take to get mocked mercilessly here
03:21:38 <elliott> sorry guyz
03:22:21 <oklopol> pikhq: i also believe that, but i don't actually enjoy anime
03:22:26 <oklopol> i enjoy lectures tho
03:22:26 <Ilari> Heh. During last two months, APNIC allocated on average 9.035 IPv4 addresses per second.
03:22:34 <pikhq> oklopol: Anime is a fairly broad medium.
03:22:46 <oklopol> yes, and i seem to dislike all of it, except for death note
03:22:55 <oklopol> well i've only seen like maybe 30 or so
03:23:00 <pikhq> See, what's popular *in the US* tends to be Japan's Saturday morning cartoons.
03:23:12 <pikhq> Yes, this includes Death Note.
03:23:23 <oklopol> death note was very good
03:23:29 <oklopol> what do you like?
03:23:45 <oklopol> prolly never heard
03:24:00 <pikhq> My three absolute, utter favorites are Kino's Journey, Baccano!, and Mushishi.
03:24:10 <oklopol> yeah never heard :)
03:24:47 <oklopol> my friends all watch one piece xD
03:25:07 <oklopol> if that's not a kid's show in japan, i'm a shoe
03:25:12 <elliott> i'm a shok
03:25:13 <oklopol> kids'
03:25:35 <elliott> oklopol will you be here tomorrow
03:25:37 <elliott> pikhq you too
03:25:41 <oklopol> no
03:25:41 <elliott> sync up, i'll get the fag to come in here
03:25:43 <elliott> so you can all mock him
03:25:45 <oklopol> i will never be here again
03:25:53 <elliott> oklopol: great, how does midnight UTC sound
03:26:32 <pikhq> (キノの旅 -the Beautiful World-, バッカーノ!, and 蟲師, respectively)
03:26:39 <pikhq> elliott: Yeah, I probably will be.
03:26:58 <elliott> good
03:26:59 <elliott> get your like
03:27:03 <elliott> best worst insults ready
03:27:36 <pikhq> oklopol: I also rather enjoyed Death Note, Cowboy Bebop, Tengen Toppa Gurren-Lagann, Fullmetal Alchemist, Code Geass, Hellsing, and Elfen Lied.
03:28:15 <pikhq> Gurren-Lagann is mostly notable for being completely and utterly over-the-top.
03:28:33 <pikhq> Hooray, mechs throwing galaxies as shuriken.
03:28:37 <oklopol> are those all morning cartoons?
03:28:48 <elliott> elfen lied is the most morning cartoon of them all
03:28:52 <elliott> i believe.
03:28:52 <pikhq> elliott: HAH.
03:28:55 <oklopol> because cowboy bebop sucks, fullmetal alchemist sucks, code geass sucks and elfen lied sucks
03:29:07 <pikhq> ... You disliked Cowboy Bebop?
03:29:16 <elliott> he's oklopol, he's not allowed to have conventional opinions
03:29:17 <oklopol> well that one i actually haven't seen that much
03:29:17 <elliott> it's contractua
03:29:19 <elliott> l
03:29:25 <elliott> *contractual
03:29:34 <pikhq> At the very least, it is mandatory you like the music.
03:29:50 <oklopol> alchemist certainly sucks, was elfen lied the one with a lot of blood
03:29:57 <oklopol> or was that that thing with blood in its name
03:30:01 <elliott> it's a morning cartoon!
03:30:03 <pikhq> Elfen Lied was uber-violent.
03:30:05 <pikhq> elliott: It wasn't.
03:30:08 <oklopol> okay
03:30:08 <elliott> OH YES IT WAS
03:30:10 <pikhq> elliott: It aired at like midnight.
03:30:14 <oklopol> well needless killing is nice of course
03:30:17 <elliott> pikhq: that's just really early morning.
03:30:21 <elliott> kids are probably up by then.
03:30:49 <pikhq> Fullmetal Alchemist and Code Geass were kids cartoons.
03:30:50 <oklopol> code geass i may have just heard about :P
03:30:56 <pikhq> As is Gurren-Lagann.
03:31:04 <oklopol> well fullmetal alchemist is so obviously a kids' cartoon my ass is on fire
03:31:24 <elliott> it's full metal jacket you illiterate fucks!
03:31:26 <elliott> haha im such troll.
03:31:33 <pikhq> oklopol: Yeah, it is.
03:32:26 <pikhq> Baccano!, Mushishi, and Kino's Journey, BTW, are *nothing* like the other anime I had mentioned...
03:33:14 <pikhq> Well. Baccano! has alchemists, so I guess it'd be vaguely related to Fullmetal Alchemist.
03:33:27 <oklopol> okay, point taken. there's also this guy who suggests i watch actual japanese programs with people in them
03:33:57 <pikhq> oklopol: Can't comment much, except to say that I liked Great Teacher Onizuka, and their variety shows are solidly WTF.
03:34:15 <oklopol> i've watched a few shows, and the overall impression is that japs can't act
03:34:27 <pikhq> Not the impression I've gotten.
03:34:32 <oklopol> alright
03:35:16 <oklopol> i've never seen acting as bad as in the shows i've seen on tv. of course the shows were incredibly bad and probably have never been shown on tv in japan either.
03:35:22 <oklopol> erm
03:35:26 <oklopol> that may have been hard to parse
03:35:40 <oklopol> on western tv, i have never seen acting as bad as in the jap shows i've seen.
03:35:50 <pikhq> Music, I find a little bit hard, because I absolutely *despise* J-pop, and that's what people in America are familiar with, so that's all I've heard *much* about.
03:35:55 <oklopol> it's like they were trying to be anime characters
03:36:45 <elliott> pikhq: how can people even like j-pop
03:36:52 <pikhq> elliott: I dunno.
03:36:52 <elliott> is it just because they're fuckin' weeaboos
03:36:55 <elliott> like
03:37:01 <elliott> oh no western pop is vapid and shitty because it's like
03:37:07 <elliott> so culturally insensitive and terrible
03:37:07 <oklopol> i only listen to music where you can't make out the lyrics anyway
03:37:12 <elliott> but the japanese are platonically perfect amazing beings of light
03:37:14 <oklopol> so music is kinda useless for learning languages
03:37:17 <elliott> and their pop is liquid ambrosia in music sex form
03:38:13 <pikhq> The only Japanese band I really listen to *currently* has "it is difficult to classify this band" on its Wikipedia page...
03:38:20 <oklopol> what's the name?
03:38:20 <pikhq> Which is... Pretty awesome, really.
03:38:28 <pikhq> Sakanaction (サカナクション)
03:38:55 <oklopol> i wish i knew what action is in japanese, so i could translate that
03:39:15 <pikhq> Doesn't matter, it's Engrish. :P
03:39:25 <elliott> "To them it reflects their wish to act quickly and lightly, like fishes in the water, without fearing changes to the music scenes."
03:39:26 <elliott> :wat:
03:39:34 <pikhq> elliott: I SAID IT WAS ENGRISH.
03:40:05 <pikhq> You have to get a bit of a thick skin to Engrish if you do Japanese.
03:40:45 <elliott> not if i avoid people.
03:40:54 <pikhq> These are people who think "Sperm" is an entirely unnoteworthy name for a store.
03:41:00 <elliott> :D
03:41:03 <elliott> visit SPERM
03:41:19 <pikhq> Or was it "Semen"?
03:41:28 <elliott> visit sperm on semen alley
03:42:40 <pikhq> I swear, would it kill people to just *ask* an English speaker?
03:42:54 <pikhq> Oh, right, moronic immigration policy.
03:43:46 -!- Alex_Megaroide has quit (Quit: leaving).
03:44:41 <oklopol> link a good song from sakanaction
03:45:23 <pikhq> http://www.youtube.com/watch?v=vS6wzjpCvec
03:45:59 -!- wareya has joined.
03:47:33 <oklopol> i walk alone!
03:47:33 -!- pikhq has quit (Read error: Connection reset by peer).
03:47:35 <oklopol> :DD
03:47:40 <Sgeo> With no sins in mind...
03:47:46 <oklopol> noooooooooooo
03:47:48 <oklopol> he gone
03:47:58 <oklopol> boku wa aruku hitori
03:51:30 <elliott> haojdsf
03:52:08 <oklopol> pikhq: i did not find that song particularly anything
03:53:03 <oklopol> a few surprises ofc, japs are less afraid of having a tiny bit of originality in their songs
03:53:09 <oklopol> than western pop ppl
03:54:42 <oklopol> http://www.youtube.com/watch?v=OaoYJLKG03o but come on, real music exists, why listen to that
03:57:44 <oklopol> although i have to admit faceless has taught me very little japanese
03:58:09 <elliott> xD
03:58:11 <elliott> very little?
03:58:13 <elliott> but non-zero?
03:58:33 <oklopol> i'm sure it has expanded my mind in every direction
03:59:03 <elliott> pikhq left you know
03:59:05 <elliott> quite a while ago
03:59:06 -!- pikhq has joined.
03:59:07 <elliott> oh wait
03:59:08 <oklopol> although faceless is the reason i now enjoy music i found extremely braindead before
03:59:09 <elliott> you commented on that
03:59:09 <elliott> OH
03:59:10 <elliott> HE'S BACK
03:59:17 <elliott> pikhq: oklopol hates the song.
03:59:22 <oklopol> i don't hate the song :P
03:59:28 <oklopol> i said i NOTHING it
03:59:50 <elliott> oh suuure
03:59:53 <elliott> pikhq: oklopol hates you
04:00:11 <oklopol> the background stuff was fun, but i couldn't really make any of that out further than that
04:00:15 <pikhq> HATRED is no doubt reserved complete bullshit "music", rather than differing tastes.
04:00:30 <pikhq> Erm, reserved for.
04:00:31 <oklopol> oh i don't really deal out hatred
04:01:32 <oklopol> and i don't really understand music where the main melody is sung, it all sounds the same to me
04:01:39 <oklopol> so yeah can't comment much
04:02:06 <elliott> when oklopol listens to acapella
04:02:08 <elliott> all he hears is silence.
04:02:10 <oklopol> :D
04:02:12 <pikhq> I'm afraid the closest I get to your suggested "real music" is the Black Mages.
04:02:25 <pikhq> Which... Isn't very.
04:02:31 <oklopol> do you like http://www.youtube.com/watch?v=-0Cz2dFTlSA&feature=related
04:03:05 <pikhq> oklopol: So far (first... 15 seconds?), yeah.
04:03:08 <oklopol> ignore the growls ofc :D
04:03:30 <pikhq> I dislike growl "singing".
04:03:36 <oklopol> of course you do
04:03:42 <oklopol> you have to learn to take it seriously
04:03:51 <pikhq> Otherwise, I totally approve of awesome, well-executed guitar.
04:04:02 <oklopol> well that's the point
04:04:18 <elliott> can anyone do growling and falsetto simultaneously
04:04:27 <elliott> because that would be amazing. also hilarious.
04:04:42 <pikhq> I'd probably be more into metal if it were instrumental, TBH.
04:04:44 <elliott> what's that lowest vocal thing
04:04:48 <elliott> gutteral or something...
04:04:50 <elliott> like
04:04:51 <oklopol> i didn't understand the point of growling for years, but it grows on you... i guess singing grows on you too if you let it
04:04:55 <elliott> the lowest of low
04:05:17 <elliott> i ask all these serious questions and you're like myeh myeh myeh
04:05:56 <oklopol> pikhq: unfortunately most of it is to a large extent based on the growling.
04:06:02 <pikhq> elliott: Vocal fry register.
04:06:09 <elliott> right yes
04:06:12 <elliott> can you do that and falsetto at once
04:06:14 <elliott> oklopol: say yes.
04:06:22 <pikhq> I highly doubt it.
04:06:30 <pikhq> I think I've tried, though.
04:06:35 <oklopol> pikhq: you can growl?
04:06:43 <oklopol> oh qIR
04:06:44 <pikhq> oklopol: I can do vocal fry register.
04:06:45 <oklopol> *
04:06:52 <oklopol> yeah sorry wasn't reading every line
04:07:13 <oklopol> hmm
04:07:21 <elliott> do it oklopol
04:07:22 <oklopol> i must have not read ANY of the lines.
04:07:23 <elliott> it's your new life goal
04:07:59 <oklopol> oh right pikhq sings and is a bass right?
04:08:08 <pikhq> Yeah.
04:08:25 <pikhq> Though it's been a couple years since I was in a choir.
04:08:40 <oklopol> you told that at least once but that was before i knew your irc persona
04:08:48 <pikhq> oklopol: http://www.youtube.com/watch?v=0G1pTgyO-O8 Opine, you.
04:09:04 <oklopol> shall attempt
04:09:08 <elliott> oklopol: "your irc persona"? :P
04:09:25 <pikhq> I have no persona unique to IRC!
04:09:48 <oklopol> well how would i know
04:09:51 <oklopol> it's just
04:09:58 <oklopol> people sometimes dislike when you tell them you know them
04:10:00 <oklopol> based on irc
04:10:08 <oklopol> perhaps you aren't in that set.
04:10:33 <pikhq> I do not consider my presence on IRC to be in any way distinct from my presence anywhere else, except in terms of the medium.
04:10:34 <oklopol> i have high confidence in being able to learn to know someone on irc
04:10:49 <oklopol> well that makes 3 of us, then, prolly
04:11:34 <elliott> so did oklopol know pikhq before eso or sth
04:11:50 <pikhq> elliott: No.
04:11:56 <elliott> boring
04:12:11 <pikhq> "The very lowest part of the register can extend in rare cases to 20–50 pulses per second." FUCK YEAH, I'M A RARE CASE.
04:13:18 <elliott> xD
04:13:26 <elliott> i'm squeaky mcchipmunk
04:13:28 <elliott> so can't relate
04:13:47 <elliott> i'm going to 0g o to slepp
04:13:47 -!- elliott has quit (Quit: Leaving).
04:14:03 <pikhq> Damned puberty took the whistle register from me, though.
04:14:10 <oklopol> pikhq: this is good, perhaps a bit too happy for my taste
04:14:25 <oklopol> but not too repetitive
04:14:40 <oklopol> well it was
04:14:45 <oklopol> *slightly* repetitive
04:14:53 <pikhq> oklopol: This is what happens when a composer of vaguely classical soundtrack music feels like doing metal.
04:15:16 <oklopol> most metal fans i know like classical music
04:16:08 <oklopol> or at least they say this, possibly they just want to sound like they appreciate music because of its complex smartnessity instead of because growling sounds cool.
04:16:30 * pikhq puts on some Led Zeppelin. :)
04:16:43 * Sgeo vaguely worries about his step-mother
04:16:54 <oklopol> the only problem with classical is once you get used to drums, you feel like something's missing if they're not there
04:17:00 <oklopol> you get over that quickly ofc
04:17:27 <pikhq> That's a problem for fans of nearly any modern musical form, though.
04:17:33 <oklopol> yes
04:17:42 <pikhq> It's pretty much all got a beat defined by drums. Even freaking pop.
04:18:01 <oklopol> well pop is all about drums and singing
04:18:05 <oklopol> well all about singing
04:18:14 <pikhq> And by "singing" you mean "autotune".
04:18:18 <oklopol> ;)
04:18:33 <oklopol> not all pop uses autotune yet
04:18:37 <oklopol> or does it
04:18:47 <oklopol> i'm not really following its... ""progress""
04:18:47 <pikhq> I can freaking tell when autotune is being used extensively.
04:18:53 <pikhq> IT DOES.
04:19:03 <pikhq> (my sisters and mother listen to top 40 radio. Gag.)
04:19:32 <oklopol> Sgeo: why?
04:19:41 <pikhq> I can't quite describe what it is, except to say that it's kinda like the harmonics on the singing are all... Wrong.
04:20:09 <pikhq> Almost as though it's coming from an eerily good voice synth.
04:20:14 <pikhq> Which arguably it is.
04:20:18 <Sgeo> My dad's not home yet. My dad staying late has never been a good sign.. except with my step-mom, in which case he's probably just staying over or something
04:20:19 <oklopol> well you certainly learn to know it once you've listened to people who do their singing in it completely
04:20:22 <oklopol> like that k... guy
04:20:24 <Sgeo> I'm still on edge from last week
04:20:26 <oklopol> forget his name
04:20:28 <Sgeo> That's all
04:20:34 <oklopol> kanye
04:20:35 <oklopol> west
04:20:48 <pikhq> Freaking Kanye West.
04:20:52 <Sgeo> My dad was still elsewhere, despite it being very late at night
04:21:05 <Sgeo> The last time I remember was like that was when my step-mom's sister's bf died
04:21:18 <oklopol> erm
04:21:21 <oklopol> after it you mean?
04:21:38 <Sgeo> I asked about my step-mother's mom, how she was. "So-so". That was a lie, he didn't want to tell me over the phone
04:22:16 <Sgeo> But.. my step-mom's not in the hospital or anything, so there's no real reason to worry
04:22:18 -!- azaq23 has quit (Ping timeout: 240 seconds).
04:22:54 <oklopol> i'm not sure i'm following you, why exactly is your step-mom sad
04:23:00 <oklopol> or whatever
04:24:03 <Sgeo> oklopol, her mom died last week...
04:24:12 <oklopol> oh alright
04:24:22 <oklopol> now i get it
04:24:38 <oklopol> "I asked about my step-mother's mom, how she was." read this as "i asked my step-mother's mom"
04:24:46 <oklopol> made everything a bit confusing
04:26:31 <pikhq> *gag* Why am I recalling idol singers? And why do my ears feel like they need to be punctured?
04:26:57 <oklopol> idol singers?
04:27:01 <oklopol> i couldn't name any
04:27:09 <pikhq> Well, no, I try to ignore them.
04:27:12 <pikhq> I'm recalling the concept.
04:27:17 <oklopol> i succeed in ignoring them
04:27:19 <oklopol> oh
04:27:43 <oklopol> hey wanna hear more about how sucky my jap course is
04:27:46 <pikhq> Sure!
04:27:51 <oklopol> wait a sec
04:28:25 <oklopol> not what i was gonna say but our teacher is already very crappy for the simple reason she sucks at english
04:28:38 <oklopol> you can't ask anything, because she'll just repeat what she already told.
04:28:49 <pikhq> Oh, dear, you've got a teacher with nihonjinron precepts as *well*.
04:29:18 <oklopol> asking stuff takes a huge effort, not everyone is confident about their english to do it
04:29:26 <pikhq> Your teacher likely has the preconception that foreigners will never attain fluency at Japanese.
04:29:39 <oklopol> the ones that do, like me, aren't really the ones that have questions related to the material at hand
04:29:46 <oklopol> certainly
04:29:54 <oklopol> we have this language circle thin
04:29:55 <oklopol> g
04:29:59 <oklopol> where you can talk to japs and shit
04:30:06 <oklopol> she told us DO NOT GO THERE, YOU CANNOT SPEAK JAPANESE
04:30:11 <oklopol> directly and clearly
04:30:28 <pikhq> RUN.
04:31:10 <pikhq> This person probably also thinks you shouldn't read manga because it's not "real" Japanese or some shit.
04:31:11 <oklopol> yeah so what i was originally going to say was
04:31:19 <oklopol> today, we have a "dialogue test"
04:31:32 <oklopol> this means we MEMORIZE THREE CHAPTERS OF THE BOOK
04:31:34 <oklopol> :D
04:31:52 <pikhq> *echm*
04:31:58 <pikhq> 馬鹿馬鹿しい!
04:32:13 <pikhq> </scream at="top of lungs">
04:32:20 <oklopol> we did have another one where we memorized more useful sentences like "i have a car", so it's not all bad ;)
04:32:36 <oklopol> hey i know the "lung" kanji
04:32:41 <oklopol> but i can't make it out...
04:32:48 <oklopol> it should be a moon and a market right
04:32:59 <pikhq> Yuh.
04:33:03 -!- TLUL has quit (Ping timeout: 260 seconds).
04:33:08 <pikhq> "BAKABAKASHII!", BTW.
04:33:19 <oklopol> ohh
04:33:24 <pikhq> Or, translated, something akin to "YOU COMPLETE IMBECILE!"
04:33:28 <oklopol> i misunderstood you
04:33:29 <oklopol> yeah
04:34:17 <oklopol> but, anyhow the teacher does tell the second year students they should watch anime and read manga, i think
04:34:27 <pikhq> Don't take a second year.
04:34:34 <oklopol> :P
04:34:36 <pikhq> Get a time machine and undo the first year.
04:35:05 <oklopol> not taking the second year would feel like failing
04:35:13 <oklopol> :D
04:35:50 <pikhq> But, seriously. What you've learned so far should have taken you maybe a week.
04:36:14 <oklopol> on the course, yes prolly
04:36:54 <oklopol> i doubt many could learn everything i know in a week, although certainly in a month.
04:38:23 <oklopol> but it's kinda crazy, we have like 8 ways to conjugate a verb and people are still struggling with them, i mean come on you have to know like 15 rules
04:38:40 <oklopol> how can that take more than an hour
04:38:46 -!- asiekierka has joined.
04:38:47 <oklopol> let me tell you how
04:38:56 <oklopol> here's how we practise short forms
04:39:19 <oklopol> teacher: "oyogimasu", us: "oyogu", teacher: "mimasu", us: "miru"
04:39:45 <oklopol> the class is lulled into a "remove the masu" trance
04:39:45 <pikhq> That is retarded. Positively retarded.
04:40:01 <oklopol> sure, after 10 hours of that, you will know the rules to some extent!
04:40:09 <oklopol> :P
04:40:49 <oklopol> and in the end, everyone will have their own "oh so this is how it goes" moment later, when these start actually getting used
04:41:45 <pikhq> http://www.alljapaneseallthetime.com/blog/classes-suck
04:41:53 <pikhq> Imma just leave that there.
04:41:58 <oklopol> :)
04:43:14 -!- azaq23 has joined.
04:44:23 -!- TLUL has joined.
04:50:25 -!- TLUL has quit (Ping timeout: 246 seconds).
04:55:10 -!- TLUL has joined.
04:59:01 -!- sandrstar has joined.
04:59:06 -!- sandrstar has left (?).
05:02:43 -!- asiekierka has quit (Ping timeout: 264 seconds).
05:22:41 -!- augur has quit (Remote host closed the connection).
05:48:20 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*).
06:02:01 -!- augur has joined.
06:55:40 -!- uniqanomaly has joined.
07:24:33 -!- pikhq has quit (Ping timeout: 252 seconds).
07:24:37 -!- pikhq_ has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:21:00 -!- uniqanomaly_ has joined.
08:25:06 -!- uniqanomaly has quit (Ping timeout: 260 seconds).
08:29:14 -!- quintopia has quit (Ping timeout: 272 seconds).
08:30:42 -!- quintopia has joined.
08:30:42 -!- quintopia has quit (Changing host).
08:30:42 -!- quintopia has joined.
08:37:44 -!- oerjan has joined.
08:57:16 -!- sftp has quit (Remote host closed the connection).
08:57:42 -!- azaq23 has quit (Quit: Leaving.).
09:00:09 -!- nik340 has joined.
09:00:09 -!- nik340 has left (?).
09:18:04 -!- GreaseMonkey has quit (Quit: The Other Game).
09:24:46 -!- cheater00 has quit (Ping timeout: 240 seconds).
09:25:57 -!- cheater00 has joined.
09:48:55 -!- pikhq_ has quit (Ping timeout: 240 seconds).
09:49:13 -!- pikhq has joined.
10:31:37 -!- Zuu has quit (Ping timeout: 260 seconds).
10:36:11 -!- Zuu has joined.
10:51:10 -!- ais523 has joined.
11:00:03 -!- ais523 has quit (Ping timeout: 240 seconds).
11:01:31 -!- ais523 has joined.
11:11:31 -!- cheater00 has quit (Ping timeout: 240 seconds).
11:13:45 -!- cheater00 has joined.
11:17:04 -!- oklopol has quit (Ping timeout: 252 seconds).
11:21:14 -!- oklopol has joined.
11:28:57 -!- invariable has joined.
11:30:07 -!- variable has quit (Ping timeout: 264 seconds).
11:36:28 -!- BeholdMyGlory has joined.
11:52:31 -!- cheater00 has quit (Ping timeout: 264 seconds).
12:06:08 -!- cheater00 has joined.
12:09:37 -!- sebbu has quit (Read error: Connection reset by peer).
12:10:07 -!- sebbu has joined.
12:31:43 -!- coppro has quit (Ping timeout: 260 seconds).
12:33:19 -!- coppro has joined.
12:34:37 -!- choochter has joined.
13:04:19 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
13:30:19 -!- oerjan has quit (Quit: leaving).
13:31:59 <Ilari> APNIC stats jumped to 4.42 (3.42 after removing the 1 reserved block). Apparently they added ERX blocks to the stats.
13:33:42 -!- ais523 has quit (Remote host closed the connection).
13:34:12 -!- elliott has joined.
13:35:58 <elliott> 20:20:48 <pikhq> Freaking Kanye West.
13:36:12 <elliott> pikhq: but Pitchfork LOVED his new album, THERE IS NO POSSIBLE WAY HE COULD BE SHITTY
13:36:15 <elliott> i cannot comprehend it.
13:39:19 <Ilari> 58 854 144 addresses (3.508 blocks) left according to extended delegations file.
13:44:14 -!- ais523_ has joined.
13:46:01 <Ilari> Largest IPv6 blocks APNIC has available: /17s.
13:48:52 <ais523_> so only twice as many as the number of /16s in anything, such as IPv4
13:50:04 <elliott> hi ais523_
13:50:12 <ais523_> hi
13:50:24 <ais523_> I should be marking right now, but the person I'm meant to mark hasn't turned up
13:50:45 <ais523_> which is weird given that she was here a) yesterday, b) earlier today
13:51:18 <oklopol> can we choose which one is true?
13:52:04 <ais523_> well, they both are, so you'd be correct no matter which choice you made
13:52:17 <elliott> pikhq: "
13:52:17 <elliott> The second character, }, means “sea” and it is made up of three
13:52:17 <elliott> parts. To the left you see Y, the three drops of water, indicating that
13:52:17 <elliott> it has something to do with water. The upper right two-stroke
13:52:17 <elliott> combination ” is an abbreviated form of Þ which is one of the
13:52:17 <elliott> many forms for grass and anything that flourishes luxuriously like
13:52:19 <elliott> grass. Below it is a slightly simplified form of ª, the pictograph of
13:52:21 <elliott> two breasts, meaning “mother.” Together, the right side is an image
13:52:23 <elliott> of a woman with her hair up"
13:52:25 <elliott> pikhq: is heisig insane or is chinese insane :)
13:52:30 <elliott> hmm, that copied "well"
13:52:40 <elliott> i'll just assume pikhq is so much of a kanji wizard he can infer
13:53:08 <ais523_> over here, each character seems to have become a single character of Latin-1
13:53:30 <elliott> indeed
13:53:33 <ais523_> on Freenode's web access
13:53:33 <elliott> it's from what looks like a tex document
13:53:37 <elliott> well, latex
13:53:42 <ais523_> ah, is it a PDF?
13:53:45 <elliott> yep
13:53:49 <elliott> ais523_: of course i sent it as utf-8 since my client does
13:53:52 <elliott> reencode, presumably
13:53:54 <elliott> "Whereas î has only one reading in Chinese, shang, in Japanese it
13:53:54 <elliott> has at least 10 recognized pronunciations, 6 of which all school
13:53:54 <elliott> children have to learn:"
13:53:59 <elliott> ok, there's an insane language here, and it's not chinese
13:54:18 <ais523_> the common latex->pdf algorithm works by inventing an encoding specific to that document, and embedding it in the PDF
13:54:27 <ais523_> because you can specify your own encodings in PDFs
13:54:40 <elliott> "2 standard Chinese (on) readings: jõ and shõ
13:54:40 <elliott> 4 s t a n d a r d J a p a n e s e (kun) r e a d i n g s : kami, ue, a[garu],
13:54:40 <elliott> no[boru], (and 3 more, if you include variations on these
13:54:42 <elliott> last 2)
13:54:44 <ais523_> PDF readers that try to copy-paste the text stream of the document therefore get confused
13:54:45 <elliott> 4 rare Japanese readings: hotori, kuwa[eru], tate[matsuru],
13:54:46 <elliott> and tattoo[bu]
13:54:48 <elliott> Which reading is used in which situation? It all depends on the
13:54:50 <elliott> context."
13:54:52 <elliott> O KAY
13:55:07 <elliott> ais523_: I wonder if luatex might fix that
13:55:12 <elliott> say, by using unicode internally, which I think it does
13:55:19 <ais523_> is that like a lua version of tex?
13:55:26 <ais523_> if not, it needs a better name
13:55:28 <elliott> ais523_: yes; it's the Perl 6 of TeX
13:55:31 <elliott> and (La)TeX
13:55:32 <ais523_> ah
13:55:42 <elliott> (albeit, not officially approved like Perl 6 is, but then LaTeX isn't either)
13:55:53 <elliott> ais523_: basically it's the successor of pdfTeX...
13:56:09 <elliott> indeed, it uses utf-8 input
13:56:20 <ais523_> how many of latex's character codes (including the ones in commonly used libraries such as amsmath) are in Unicode, I wonder?
13:56:32 <ais523_> I'd be surprised if it's all of them
13:56:43 <elliott> define character code :P
13:57:21 <ais523_> macros that produce exactly one character, from a typesetting point of view
13:57:29 <ais523_> like \lambda
13:57:43 <ais523_> and which are "purely functional" in that it's always the same character no matter what
14:00:18 <Gregor> My impression was that at this point the vast majority weren't Unicode.
14:04:08 <elliott> Gregor: ais523_ was only referring to common characters
14:04:22 <elliott> Everything in the core is in Unicode, I believe...
14:04:32 <elliott> as far as AMS goes, things like \hat and \widehat or whatever aren't
14:04:38 <elliott> because they make very little sense from a unicode point of view, well
14:04:41 <elliott> \widehat does
14:04:48 <elliott> because it stretches over N glyphs
14:05:51 <elliott> ais523_: heh, all this blabber about unicode, and he's gone and inserted blatantly non-Unicode symbols into this document
14:05:56 <elliott> (an icon of a flower)
14:06:03 <elliott> "For the English speaker, the word flower is linked with the memory or visual perception of an actual flower, ‘. This link goes both
14:06:03 <elliott> ways, so that thinking about or seeing a ‘ the word flower comes
14:06:03 <elliott> to mind at once, just as speaking or reading the word flower calls
14:06:03 <elliott> up an image, however vague, of a ‘."
14:06:54 <Gregor> Whoah, thinking about a closing single quote DOES bring the word "flower" to mind!
14:07:52 <elliott> TOTALLY.
14:13:19 <ais523_> are you sure there are no flowers in Unicode
14:13:26 <ais523_> there are some really weird things added to the astral planes recently
14:14:07 <ais523_> hmm, demogorgon says no
14:14:17 <ais523_> (bot in another channel)
14:16:29 <elliott> pikhq: are japanese displays higher-dpi than average?
14:16:40 <elliott> I had to zoom this in so that kanji were anything but tiny squiggles of unreadability
14:17:42 <ais523_> I know that some computer games that use kanji draw them at double the font size they use for kana, just so they're legible
14:18:07 <ais523_> although kana are more common in computer games as they're typically marketed at children who may not know all the kanji used yet
14:20:53 <oklopol> jap kids must be pretty stupid, i knew every letter when i was 5
14:21:01 <elliott> i wonder when my procrastination lobe will give up and start me learning the kana
14:21:14 <elliott> ok well
14:21:15 <elliott> start
14:21:17 <elliott> do
14:21:18 <elliott> and finish
14:21:30 <elliott> i'm not exactly anticipating the hardest time :p
14:22:06 <elliott> "As the Japanese do not use word spaces (except for children)"
14:22:13 <elliott> oklopol: very stupid, they even forget to use the spacebar
14:22:18 <elliott> when they grow older
14:22:21 -!- sftp has joined.
14:22:48 <oklopol> LOL
14:23:10 <oklopol> i used all KINDS of spaces when i was a kiddo
14:23:42 * Sgeo hits everyone with a &nbsp;
14:23:50 <elliott> 15:56:48 <GregorR> I need something to do ... Anybody have any ideas for someting (non-esolang-related) for me to implement?
14:23:54 <elliott> lol Gregor's a noob :D
14:24:09 <elliott> if i keep insulting him w/ log lines for long enough it'll become a running gag and therefore acceptable
14:25:55 <oklopol> erm insulting Gregor has been a long going gag anyway
14:25:58 <oklopol> i do it all the time
14:26:09 <elliott> well yeah... but it's not a running gag just because you do it
14:26:12 <elliott> because face it man
14:26:15 <elliott> those would be some pretty weird running gags.
14:26:21 <elliott> this is our first line of defence.
14:26:35 <oklopol> the reason is that Gregor has one of the most stable brains there is, so as scientist we have to see if we can make him cry
14:26:47 <oklopol> *s
14:26:50 <elliott> that's a really good point
14:26:53 <elliott> Gregor: i killed your parents
14:27:02 * elliott slinks over to the observation chamber
14:29:42 -!- asiekierka has joined.
14:31:32 -!- choochter has quit (Quit: lang may yer lum reek..).
14:34:16 <Deewiant> fizzie: Why d'ya need a preliminary name
14:34:50 <elliott> Deewiant: wat
14:35:21 <Deewiant> elliott: That information is available on a need-to-know basis
14:35:32 <elliott> Deewiant: I logread, what more do you want!
14:36:26 <Deewiant> That doesn't constitute a need
14:39:40 <elliott> Deewiant: What if I ask the Make a Wish foundation?
14:40:42 <Deewiant> If they have the answer they'll surely give it
14:40:55 <fizzie> Deewiant: So that I can tell you if your preliminary name is already taken. :p
14:41:02 <elliott> fizzie: WHAT ARE YOU EVEN THE TALKING ABOUT
14:41:15 <fizzie> Deewiant: (About 30-40% of registrations come without the preliminary name, though.)
14:41:26 <elliott> 15:48:26 <bsmntbombdood> I see the early days of #esoteric were quite quiet
14:41:26 <elliott> 15:48:44 <lament> no, the early days were just fine.
14:41:26 <elliott> 15:48:57 <lament> the middle ages were quiet.
14:41:26 <elliott> 15:49:38 <lament> all secular thought was suppressed.
14:42:27 <Deewiant> fizzie: Fair enough I suppose :-P Can I do it privmsg-style or would that be too complicated
14:42:53 <elliott> If fizzie wasn't an op I'd have you all banned for sliminess.
14:43:48 <oklopol> hey no one's sharing with me :(
14:43:49 <fizzie> Deewiant: I guess you can, but then you don't get my canned-template "registration acknowledgement" email.
14:43:55 <ais523_> <elliott> well yeah... but it's not a running gag just because you do it
14:43:55 <ais523_> o
14:44:25 <Deewiant> fizzie: You can always copy-paste it
14:44:30 <elliott> ais523_: hey i was like the official o ambassador for #esoteric
14:44:32 <elliott> isn't that false oklopol!
14:44:40 <elliott> fizzie: Deewiant: Ha, a SCHISM in the Finns.
14:44:42 <elliott> I side with oklopol.
14:45:02 <fizzie> Deewiant: http://p.zem.fi/ha5f
14:45:26 <fizzie> (It's non-automatical, that's why the ad-hoc format.)
14:45:32 -!- sebbu has quit (Read error: Connection reset by peer).
14:46:01 <fizzie> The link also reveals all the sordid details of what this was about.
14:46:04 <elliott> I think you two are just elaborately trolling.
14:46:16 -!- sebbu has joined.
14:46:19 <elliott> I bet the "course T-93.4400 AI tournament" doesn't even exist.
14:46:36 <elliott> But hey, good to know you're finally letting the world know about your, ehm, relationships... with goats.
14:46:37 <fizzie> You have seen through our ruse.
14:47:11 <elliott> (FUTUREGOOGLE: Heikki Kallasjoki goat legality of marrying a goat goat-human relations)
14:47:27 <elliott> Fuoogle.
14:48:06 <Deewiant> Transaction completed.
14:48:14 <fizzie> COMMIT;
14:48:34 <elliott> "Transaction completed." -- Finn communication 101
14:48:48 <fizzie> There's a logo saying "COMMIT;" in the side of a building on my regular bus route.
14:48:49 <elliott> Instead of "Hello", you say "Prepare to merge this information with your existing knowledge database."
14:49:03 <elliott> Instead of saying "How are you?", you say "".
14:49:13 <elliott> *".
14:50:12 -!- Sgeo has quit (Ping timeout: 240 seconds).
14:50:38 <fizzie> Speaking Finnish with Deewiant is a really strange and somehow "wrong" feeling.
14:50:49 <fizzie> 'td'be like speaking Finnish with oklopol.
14:50:50 <Deewiant> I could also have asked you when I almost physically ran into you this morning but I didn't.
14:51:16 <oklopol> i wonder if i'd speak finnish with fizzie irl
14:51:42 <ais523_> Deewiant: would it have been in English or Finnish?
14:51:51 <ais523_> or in Finnish except with lowercase letters and no full stops?
14:52:10 <fizzie> I don't think it's so weird when spoken-spoken, just when written-spoken.
14:52:38 <fizzie> Blinkenlichten.
14:52:38 <oklopol> written-spoken? like one of us writes and the other one speaks
14:52:42 <Deewiant> I'm not sure how lack of uppercase applies to speech
14:52:54 <elliott> i dunno if i've ever seen oklopol speak in finnish
14:52:55 <fizzie> Perhaps a monotonic prosody.
14:53:00 <elliott> even in #vjn
14:53:30 <oklopol> well i've demonstrated sentences not that rarely
14:53:36 <elliott> yeah but that's not talking
14:53:40 <fizzie> (Now, the bus.)
14:54:05 <oklopol> kyl m puhuu voin hei jos on kova tarvis kuulla totanoinniin
14:54:38 <Deewiant> kantsiiks hei puhuu jos kukaan ei tajuu mistään mitään
14:56:24 <oklopol> noo oha toiki totta mut toisaalt ei tuu bannei ku ainoo oppi online tajuu kummiski :DD
14:56:49 <elliott> täääääääs ookan kaämaan :)
14:56:54 <elliott> ttt
14:57:25 <oklopol> i have to say that was rather obnoxious finnish
14:57:28 <Deewiant> oikeestaanhan ei oo ketään oppii paikal ku hää meni just
14:57:35 <elliott> oklopol: what, mine?
14:57:36 <Deewiant> Aw, you broke the sequence.
14:57:37 <elliott> mine was wonderful.
14:57:45 <oklopol> juu
14:57:50 <elliott> Deewiant: Didn't I? :P
14:57:51 <oklopol> elliott: no i mean mine
14:58:00 <Deewiant> Well, you both did.
14:58:01 -!- BeholdMyGlory has quit (Remote host closed the connection).
14:58:13 -!- BeholdMyGlory has joined.
14:58:33 <oklopol> elliott: you can't have a and in the same word
14:58:37 <oklopol> don't be silly
14:58:43 <elliott> oklopol: but of course
14:58:44 <Deewiant> Sure you can
14:58:49 <oklopol> your mom can
14:58:50 <Deewiant> sanahelinä
14:58:54 <elliott> that's not a word
14:58:58 <elliott> lol you're not funny Deewiant.
14:59:07 <ais523_> "lol you're not funny"?
14:59:10 <ais523_> isn't that a contradiction?
14:59:14 <elliott> ais523_: yeah, making up fake finnish words like that
14:59:19 <elliott> oh, no, it's funny in like a really pathetic way!
14:59:22 <Deewiant> What if it's funny that one isn't funny
14:59:24 <elliott> precisely
14:59:26 <ais523_> I mean, nowadays people seem to use "lol" to indicate "not really funny"
14:59:32 <ais523_> which is more or less the opposite of its actual meaning
14:59:33 <elliott> deewiant, although horrendously unfunny gets it right
14:59:36 <oklopol> i suppose ka, and maan could all be words.
14:59:40 <oklopol> one is
14:59:42 <fizzie> Deewiant: Compounds don't count.
14:59:44 <Deewiant> Two are
14:59:52 <oklopol> well
15:00:01 <oklopol> not good words
15:00:10 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:00:13 <Deewiant> fizzie: They're words.
15:00:20 <oklopol> you mean like "ka, lentv penis!"
15:00:47 <Deewiant> That or as in myös
15:00:54 <Deewiant> (kans)
15:00:59 <elliott> what is your language even.
15:01:07 <oklopol> oh, i thought that was always kaa
15:01:14 <Deewiant> It usually is
15:01:17 <fizzie> Them Swedes have some silly one-letter words.
15:01:33 <elliott> haha yes, you mock _swedes_ after that insanity
15:01:39 -!- invariable has changed nick to variable.
15:01:42 <Deewiant> Them Brits too
15:02:13 <ais523_> we only have a and I
15:02:14 <ais523_> as one-letter words
15:02:21 <oklopol> e said
15:02:25 <Deewiant> 'e*
15:02:33 <elliott> Deewiant: *e
15:02:35 <elliott> Spivak, beyotch
15:02:38 <ais523_> although Agora uses e, and zzo38 seems to use o as a word, although I'm not entirely sure what it means
15:02:43 <elliott> (beyotch is the fourth single-letter word)
15:02:46 <oklopol> i used o as a word too
15:02:48 <oklopol> it means o
15:02:49 <elliott> ais523_: O is in the Bible isn't it
15:02:57 <ais523_> oklopol: probably not with the same meaning as zzo38, thouhg
15:02:59 <elliott> zzo38 uses it to mean "O" even though it doesn't really mean O.
15:03:00 <elliott> *Oh.
15:03:02 <elliott> in both instances.
15:03:03 <ais523_> elliott: possibly, it likely depends on the translation
15:03:06 <elliott> zzo38 uses it to mean "Oh" even though it doesn't really mean oh.
15:03:11 <ais523_> ah
15:03:27 <oklopol> o is an old way of setting the "you" variable
15:03:27 <elliott> "O, I get it now."
15:03:32 <fizzie> oklopol: Was it so that Turku was one of your position distribution maxima?
15:03:37 <elliott> "That is what the dihistomic modulator is used for."
15:03:38 <oklopol> fizzie: yes
15:03:48 <oklopol> ylioppilaskyl atm
15:03:56 <oklopol> if you wanna come visit and clean my apartment
15:04:06 <ais523_> oklopol: hey, that word has both a and ä in too
15:04:16 <oklopol> yes, it's a compound
15:04:22 <elliott> i'm trying to find a wp article for "O"
15:04:25 <elliott> maybe wiktionary would work
15:04:33 <elliott> http://en.wiktionary.org/wiki/o jesus christ
15:04:38 <ais523_> you'd think [[o]] would at least contain a link to it
15:04:43 <elliott> Interjection
15:04:43 <elliott> o
15:04:44 <elliott> (archaic) (always capitalized) The English vocative particle, used before a pronoun or the name of a person or persons to mark direct address.
15:04:44 <elliott> O foolish Galatians, who hath bewitched you, that ye should not obey the truth, before whose eyes Jesus Christ hath been evidently set forth, crucified among you? -- Galatians 3:1 (King James version).
15:04:44 <elliott> Variant of oh.
15:04:52 <elliott> ais523_: OK, so what zzo38 does is at least Wiktionary-approved, if bizarre.
15:04:56 <ais523_> that's not quite the same thing as "oh"
15:04:56 <oklopol> '<oklopol> o is an old way of setting the "you" variable' is the definition of vocative
15:04:58 <oklopol> i just told you
15:05:00 <elliott> but yeah
15:05:06 <elliott> oklopol: i know
15:05:06 <fizzie> Not now; but we'll be in the city for some hours on some day; forgot the specifics though. It was in April.
15:05:10 <elliott> i was just getting the wiktionary srrrce
15:05:18 <oklopol> well obviously it's in there, it's not that rare
15:05:34 <ais523_> elliott: I did tell you that zzo38 is always technically correct, if not in this reality, then in some other
15:06:20 <oklopol> fizzie: great, it's much faster if there's two of you
15:06:28 <oklopol> but you should allocate a bit more than two hours
15:06:35 <elliott> ais523_: like one where insane phonetic spelling is the correct way to write English?
15:06:50 <ais523_> yep
15:06:58 <ais523_> after all, it's the correct way to write German
15:06:59 <elliott> ais523_: ("Old mesiges ar being crosed out")
15:07:27 <ais523_> "crosed" is incorrect even with insane phonetic spelling, though
15:07:35 <elliott> ais523_: Then zzo38 is technically incorrect?
15:07:39 <ais523_> as it would indicate the o as long
15:07:44 <elliott> ais523_: zzo actually said that.
15:07:50 <ais523_> elliott: no, he's just not using insane phonetic spelling, but spelling based on a different basis again
15:07:56 <elliott> Oh dear god.
15:08:07 <elliott> ais523_: You realise that everything anybody says is technically correct in a specific universe?
15:08:10 <ais523_> which probably has phonetics involved, but likely other things too
15:08:13 <elliott> Except for self-contradictory statements.
15:08:19 <elliott> Which are correct only in inconsistent universes :P
15:08:36 <ais523_> elliott: yes; except that most people at least try to get that universe to match the one everyone else seems to be in
15:08:39 <ais523_> zzo38 doesn't bother
15:08:46 <ais523_> rather, he invents his own
15:08:49 <elliott> ais523_: No they don't
15:09:00 <elliott> They just try and convince everyone else to start living in their own world
15:10:41 <elliott> ais523_: wait, why are you saying he?
15:10:47 <elliott> we don't have a single piece of evidence zzo38 is male
15:11:00 <oklopol> yes we do
15:11:04 <elliott> no, we don't
15:11:14 <ais523_> I thought it was established, although I'm not sure what evidence that basis is on
15:11:15 <oklopol> well not as concrete as a penis but come on
15:11:30 <elliott> oklopol: this is /zzo38/ we're talking about
15:11:33 <elliott> ais523_: I don't think it has been
15:11:45 <oklopol> well, perhaps you are right
15:11:58 <oklopol> but i would be very surprised
15:12:06 <oklopol> zzo38: are you male or female?
15:12:08 <elliott> oklopol: zzo38 is pretty surprising
15:12:12 <elliott> he's not here.
15:12:17 <oklopol> i know, i don't care
15:13:37 <ais523_> I suppose one issue is if you asked zzo38 about gender, you couldn't be certain he would be using the same definitions of "male" and "female" as everyone else does
15:13:56 <elliott> I doubt he would tell us anyway.
15:13:57 <oklopol> maybe i'll just ask for a naked pic
15:14:09 <oklopol> easier for everyone
15:14:14 <elliott> he's refused to tell us his age, and "Gender: Not Telling" --http://www.digitalmzx.net/forums/index.php?showuser=1941
15:14:27 <elliott> hmm, maybe he's God
15:15:02 <oklopol> i'd be less surprised if he were god than if he were she
15:15:09 <oklopol> hmm
15:15:18 <elliott> maybe she's god.
15:15:21 <oklopol> actually that may be true in a rather small amount
15:15:45 <elliott> let's have a conversation about someone else behind their back, like say... Gregor!
15:15:53 <ais523_> when did ais523 (no underscore) quit?
15:16:06 <ais523_> I suspect it's just a connection drop; I hope nobody's stolen my laptop
15:16:11 <elliott> 05:33:42 --- quit: ais523 (Remote host closed the connection)
15:16:16 <elliott> a long time ago
15:16:32 <elliott> ais523_: about uh
15:16:32 <ais523_> but I was here as ais523 earlier today
15:16:40 <elliott> argh, my client doesn't know when i joined in this window
15:16:46 <elliott> convert the time yourself :P
15:16:53 <elliott> ais523_: incorrect
15:17:02 <elliott> "today" in clog time, you have always been ais523_
15:17:07 <elliott> oh, look for yourself
15:17:08 <elliott> http://tunes.org/~nef/logs/esoteric/11.03.01
15:17:08 <ais523_> oh, clog time
15:17:21 <elliott> yeah, what's this america thing, it's just clog time.
15:17:23 <ais523_> I assumed you'd be using your own timezone...
15:17:30 <elliott> ais523_: i don't display timestamps :D
15:17:57 <ais523_> looks like just a connection drop, it was being dodgy
15:18:01 <ais523_> but normally it stays up while I'm not using it
15:18:07 <ais523_> which is bizarre, come to think of it
15:18:27 <elliott> do you just leave your laptop lying around opened? :D
15:18:35 <ais523_> yep, but in a locked room
15:18:40 <Gregor> Is there a "manwiki" (less gay than it sounds, I mean a wiki based on man pages)
15:19:04 <oklopol> haha faggypedia
15:20:04 <elliott> Gregor: I dunno if that'd actually be a good thing
15:20:09 <elliott> man pages are pretty well written when they exist
15:21:04 <Gregor> I'm thinking not to edit the man pages directly, but maybe be able to insert comments in between paragraphs ... things like "Note that malloc(0) has different behavior on different OSes" on the malloc page. Keep the base there, but add comments ... or something like that.
15:21:20 <elliott> Gregor: Wouldn't POSIXWiki be better for that :P
15:21:41 <elliott> Admittedly glibc's man pages are more useful/well-written than POSIX.
15:23:31 <ais523_> and BSD's are better still
15:23:42 -!- Phantom_Hoover has joined.
15:23:47 -!- Phantom_Hoover has quit (Changing host).
15:23:47 -!- Phantom_Hoover has joined.
15:24:04 <elliott> hello Phantom_Hoover
15:24:10 <elliott> ais523_: are they? I haven't seen BSD libc documentation
15:24:14 <elliott> well, probably have, in OS X
15:24:24 <Phantom_Hoover> Hello elliott.
15:24:25 <ais523_> I don't know first-hand, this is secondhand
15:24:33 <ais523_> BSD fans normally praise it over man page quality compared to Linux
15:24:43 <elliott> BSD fans praise everything about BSD over Linux.
15:24:49 -!- copumpkin has joined.
15:24:56 <ais523_> yes, but that in particular, and I wouldn't expect them to focus on something BSD was bad at
15:25:18 <elliott> ais523_: they don't think BSD's bad at anything :P
15:28:46 <Gregor> elliott: Where's NoGNU/Linux?
15:29:26 -!- pumpkin has joined.
15:29:46 <elliott> Gregor: lawl
15:30:45 <ais523_> a sort of reverse Debian GNU/kFreeBSD?
15:31:17 -!- copumpkin has quit (Ping timeout: 246 seconds).
15:31:18 <elliott> ais523_: Kitten is basically NoGNU/Linux.
15:31:30 <ais523_> so is Android, come to think of it
15:31:42 <elliott> barely counts
15:31:49 <elliott> it's not a Unix
15:31:54 <ais523_> indeed
15:32:01 <ais523_> but it's still using Linux as the kernel
15:32:09 <ais523_> I don't see why you have to be a UNIX to get slash notation
15:32:33 <ais523_> it seems perfect for explaining that you have something other than coreutils above the kernel, such as a JVM-alike
15:32:53 <ais523_> anyway, going back to ais523, these students seem unlikely to turn up now, and it's their fault they missed it if they do
15:32:54 <elliott> True.
15:33:03 <elliott> ais523_: heh
15:33:06 -!- ais523_ has quit (Quit: Page closed).
15:37:30 -!- ais523 has joined.
15:56:58 -!- cheater- has joined.
15:57:22 -!- cheater00 has quit (Ping timeout: 240 seconds).
16:19:26 <Gregor> Hmmmmm
16:19:35 <Gregor> Come to think of it, Android is a sort of NoGNU/Linux, innit?
16:19:45 <elliott> <ais523_> so is Android, come to think of it
16:19:53 <Gregor> Yes, I'm quoting that.
16:20:07 <Gregor> Oh, I didn't realize I was quoting the same phrasology in reverse :P
16:20:08 <elliott> Rite
16:20:13 <elliott> I'd have said "IS a sort".
16:20:14 <elliott> Or *is*
16:20:17 <elliott> **is*.
16:20:19 <Gregor> Does it have /any/ GNU software at all?
16:20:31 <elliott> Maaaaaaaaaaybe?
16:20:35 <elliott> I don't think so...
16:20:51 <ais523> http://danieltemkin.com/blog/post/Interview-with-ais523.aspx <--- ontopic
16:20:59 <Gregor> Typically it has busybox, doesn't have glibc ... still uses GCC and binutils, but those don't ship with it (bleh)
16:21:06 <elliott> Interview with ais523, this will be EXCITING
16:21:07 <ais523> also http://danieltemkin.com/blog/post/Interview-with-Keymaker.aspx if it hasn't been linked here yet
16:21:11 <elliott> oh, it's that daniel temkin guy
16:21:13 <elliott> who the heck is he anyway
16:21:22 <ais523> just some random blogger who happens to be interested in esolangs, I think
16:21:29 <ais523> particularly Velato for some reason
16:21:31 <elliott> ais523: he invented Velato
16:21:33 <elliott> no?
16:21:41 <ais523> ah, that would explain his interest
16:21:58 <elliott> "He (Keymaker is anonymous but identifies as male)"
16:22:37 <elliott> at least keymaker capitalises brainfuck right
16:22:45 <ais523> so do I, I think
16:22:50 <ais523> and we both use capital B at the start of a sentence
16:23:04 <elliott> ais523 is anonymous but identifies as male/female
16:23:04 <ais523> Daniel Temkin gets it right too
16:23:09 <elliott> (re: "* ais523 [...] his/her")
16:23:11 <ais523> well, my real name is available
16:23:22 <ais523> although "Alex" isn't a particularly male or female name either
16:23:22 <elliott> ais523 is not anonymous but identifies as male/female
16:23:32 -!- copumpkin has joined.
16:23:53 <elliott> ais523: I find it quite surprising that Keymaker isn't a programmer
16:24:23 <ais523> it's not that surprising, I suppose; "real" programming languages aren't all that interesting compared to esolangs
16:24:50 -!- elliott has left (?).
16:24:53 -!- elliott has joined.
16:24:54 <wareya> Now what's interesting is analyzing code that takes advantages of the pitfalls and errors in "real" languages.
16:25:01 <elliott> ais523: some are
16:25:04 <elliott> wareya: not really?
16:25:12 <wareya> elliott: I find it fascinating
16:25:30 <Gregor> <ais523> although "Alex" isn't a particularly male or female name either // The sound "Alex" isn't specifically male or female, but AFAIK the spelling "Alex" is?
16:25:44 <elliott> As opposed to what
16:25:48 <ais523> Gregor: no, I've met female Alexes with the same spelling
16:25:55 <ais523> the spelling Alix is specifically female, but very rare
16:26:09 <Gregor> Usually the kind of people who name their daughters "Alex" are also the kind of people who name their daughters "Alix" or "Alyx" or "Ayliughx"
16:26:13 <ais523> and Alex is much more common even among female people named with a variant
16:26:23 <elliott> ais523: ++ temkin for referring to you as the C-INTERCAL maintainer :P
16:26:24 <wareya> I should make Alex not ping me.
16:26:28 <elliott> Gregor: Ayliughx. Brilliant.
16:26:33 <Gregor> wareya: TOO BAD.
16:26:36 <ais523> wareya: it pings you?
16:26:41 <ais523> hmm, now I can make a guess as to your name
16:26:45 <ais523> although not gender
16:26:47 <elliott> Wait wait let me guess
16:26:48 <elliott> ALEX
16:26:50 <wareya> ais523: It's my real name and I'm male.
16:26:55 <Gregor> elliott: My mom teaches kindergarten. Last year she had a student whose name was "Shyanne"
16:26:57 <ais523> now I don't have to guess
16:26:58 -!- pumpkin has quit (Ping timeout: 250 seconds).
16:26:59 <Gregor> Yes. Shyanne.
16:27:04 <Gregor> Worst name ever? Quite probably.
16:27:17 <ais523> how do you pronounce that?
16:27:23 <oklopol> shy anne
16:27:48 <elliott> shayanne mountain facility
16:27:56 <Gregor> Like Cheyenne, but spelled by a retard.
16:28:02 <elliott> excuse me that was funny
16:28:35 <wareya> What's even worse is when a christian family names their son Krys.
16:29:14 <elliott> kryst the sayvoir
16:29:20 <elliott> *zchghe
16:29:39 <Gregor> Not sure which of those words is "correctly" spelled as "zchghe" :P
16:29:57 <wareya> Sayvior, obviously.
16:30:46 <elliott> Gregor: The
16:30:56 <Gregor> Here's my new name: Ghudjraieoughaiouxrh
16:31:05 -!- elliott has changed nick to Ghudjraieoughaio.
16:31:06 <Ghudjraieoughaio> DARN
16:31:08 -!- Ghudjraieoughaio has changed nick to elliott.
16:31:12 <Gregor> Pronounced "Gregor"
16:31:17 <elliott> Gregor: *"Dave"
16:31:34 <Gregor> No, that's Qrthlieffm
16:31:52 -!- wareya has changed nick to Alyk_Meigatzroyd.
16:32:29 <Gregor> Heavens to Meigatzroyd!
16:32:50 <elliott> Pronounced "betsy"
16:33:19 -!- lambdabot has joined.
16:33:20 <Alyk_Meigatzroyd> Actually, I was aiming for more of a "Dan".
16:33:35 <Deewiant> As in "danmaku"
16:33:54 <Alyk_Meigatzroyd> Did someone say danmaku? That also pings me.
16:34:06 <elliott> DOES ANYTHING NOT PING YOU
16:34:16 <Alyk_Meigatzroyd> Actuallym "anything" does ping me.
16:34:18 <Phantom_Hoover> I'm waaaaay ahead of you.
16:34:22 <Alyk_Meigatzroyd> Actually,*
16:34:38 <elliott> Alyk_Meigatzroyd: Srsly? :P
16:34:46 <Alyk_Meigatzroyd> Seriously.
16:35:58 <elliott> ais523: CAN I INTERVIEW YOU
16:36:32 <elliott> hmm, I wonder if I can date this precisely with the Shiro mention
16:38:02 -!- oklopol has quit.
16:40:42 <elliott> "For instance, Unlambda has an i combinator that's equivalent to ``skk, but the language is much mathematically neater with it included, and it feels like it should be part of the language."
16:40:46 <elliott> ais523: Define neater :P
16:41:19 <Phantom_Hoover> elliott, it vastly reduces the size of most combinators.
16:43:22 -!- Mathnerd314 has joined.
16:46:05 <elliott> Some of the easiest ways to contact me are via IRC (I'm usually on #esoteric on the Freenode IRC network, irc.freenode.net, as "ais523"); email (if you're logged in on this wiki and have an email address verified, visit Special:Emailuser/Ais523; note that using that form will show me your email address, so that I can reply); and wiki talk page (edit User talk:ais523, and I'll see your message and be able to send replies via your own talk page, or
16:46:05 <elliott> on mine if you don't have an account).
16:46:08 <elliott> ais523: your ais-nesting is showing
16:50:35 -!- oerjan has joined.
16:51:45 <elliott> hi oerjan
16:52:01 <oerjan> hi elliott
16:52:08 <elliott> hi oerjan
16:52:22 <oerjan> hi elliott
16:52:26 <elliott> hi oerjan
16:52:28 <oerjan> hi elliott
16:52:41 <elliott> hi oerjan
16:53:10 * oerjan swats elliott -----###
16:53:17 <elliott> oof
16:54:55 -!- cal153 has quit (Ping timeout: 240 seconds).
16:55:07 <oerjan> <elliott> ais523: your ais-nesting is showing
16:55:09 <oerjan> nesting?
16:55:19 <elliott> oerjan: ais523's patented English style
16:55:26 <elliott> AFAICT ais523 thinks in infix Lisp
16:55:42 <oerjan> aha
16:55:46 <elliott> i.e. expr := (expr* op expr*) | obj
16:56:01 <elliott> and then that gets converted into parentheses, semicolons, commas, sentences, paragraphs
16:58:54 -!- pumpkin has joined.
16:59:01 -!- copumpkin has quit (Ping timeout: 250 seconds).
16:59:38 <elliott> ais523: "It was nice to see my language Velato appear next to some of the old favorites like INTERCAL, brainfuck, and Whitespace." --Temkin
16:59:40 <elliott> so yes, inventory
16:59:42 <elliott> *inventor
17:01:02 <tswett> He's a very inventory person.
17:02:21 <Phantom_Hoover> I made a paper crane out of a sweet wrapper today.
17:02:56 <oerjan> tswett: he carries _everything_ with him, i take
17:03:24 <Phantom_Hoover> ais523, i
17:05:04 <oerjan> ais523 + i, a complex combination
17:05:36 <tswett> (ais523, 1)
17:06:04 <tswett> You know, it seems like only recently does "inventory" mean "the stuff you're carrying".
17:08:07 <elliott> tswett: It's from text adventure games, obviously.
17:08:13 <tswett> Indeed.
17:08:14 <elliott> Because "> inv" produces an INVENTORY of what you were carrying.
17:08:25 <elliott> Which caused the obvious linguistic evolution among nerds.
17:08:42 <elliott> Because object X is "not in your inventory", which is obviously ambiguous in the right way.
17:09:25 <tswett> Likewise, only recently does "account" mean "electronic record of a person". It used to just mean "record of money possessed or owed".
17:10:10 <tswett> (Or "description of what happened".)
17:14:28 <elliott> 18:23:28 <Sukoshi> I forget, do you enjoy functional programming Pikhq ?
17:14:28 <elliott> 18:24:01 <Pikhq> Sukoshi: Meh.
17:14:33 <elliott> 18:24:11 <Pikhq> I'm more of an imperative thinker.
17:14:37 <elliott> pikhq: l0lz
17:14:52 <tswett> pikhq is Josiah Worcester, right?
17:15:09 <ais523> I think so
17:15:10 <elliott> Yes.
17:15:15 <elliott> He makes Worcestershire sauce.
17:15:24 <tswett> Is the shire named after him?
17:15:30 <elliott> Yes.
17:15:48 <oerjan> proving that pikhq is a hobbit
17:16:01 <tswett> Worcestershire has been around for quite a while. How old is pikhq, anyway?
17:16:04 <elliott> oerjan: That's a bad hobbit you've got there.
17:16:09 <elliott> tswett: Older than Worcestershire.
17:17:23 <Phantom_Hoover> Worcestershire was established in antiquity, apparently.
17:17:28 <elliott> Yep.
17:17:35 <tswett> So pikhq is pre-antiquitous?
17:17:39 <oerjan> elliott: well we have to do something when it's 40 comics until next DMM hobbituary
17:17:52 <elliott> Yep.
17:19:04 <Phantom_Hoover> It was around in the 7th century, at least.
17:19:51 <tswett> Phantom_Hoover: impossible. Oxford is the oldest thing in the world.
17:20:04 <elliott> MY FRIEND AT OXFORD CONFIRMS.
17:20:17 <Phantom_Hoover> tswett, oh, so you're an Oxfordist, a believer in a breakaway sect of Last Thursdayism?
17:20:18 <elliott> In fact, Oxford is older than time itself.
17:20:32 <tswett> Oxford is exactly 900 years old, which is the oldest that anything can possibly be.
17:20:33 <elliott> Phantom_Hoover: Shut up, everybody knows you're a Cambridgean shithead.
17:20:40 <tswett> Once something gets that old, it stops getting older.
17:20:42 <Phantom_Hoover> elliott, how?
17:20:45 <tswett> And, unless it's Oxford, it vanishes.
17:20:49 <elliott> Phantom_Hoover: YOU THINK CAMBRIDGE IS OLDER THAN OXFORD.
17:20:52 <elliott> tswett: I like this theory.
17:20:57 <Phantom_Hoover> elliott, I didn't say that!
17:21:00 <elliott> tswett: So will the Earth eventually disappear leaving only Oxford floating in space?
17:21:04 <elliott> Phantom_Hoover: WE ALL KNOW YOU THINK IT
17:21:34 <tswett> elliott: only if Earth reaches 900 years old. It might stop sooner than that.
17:21:43 <elliott> tswett: wat.
17:22:23 <tswett> Carbon dating has shown Earth to be about 850 years old. Since it appears that Earth was around when Oxford was founded, most people believe that Earth has stopped getting older.
17:22:35 <tswett> Leaving Oxford as the oldest thing in the world.
17:22:59 <elliott> But of course.
17:23:03 <elliott> 19:02:17 * oerjan will propel things into the age of Aquarius for food.
17:23:03 <tswett> Others believe that Earth is actually older than Oxford, but it's exempt from the disappearing law, since Earth is not exactly "in the world".
17:23:08 <elliott> oerjan: is that offer still good?
17:23:13 <oerjan> it's good that earth knows its limitations
17:23:32 <oerjan> elliott: I'M PROPELLING AS WE SPEAK
17:23:43 <oerjan> very slowly, mind you
17:23:45 <elliott> [oerjan's motor revs up
17:23:47 <elliott> *up]
17:24:04 <elliott> oerjan: will you reach your destination in december 2012?
17:24:19 <oerjan> depends what the destination is
17:24:30 <oerjan> no one told me yet
17:24:37 <Phantom_Hoover> Cincinnati.
17:24:43 <elliott> the age of aquarius, no?
17:24:45 <elliott> Phantom_Hoover: same thing
17:24:49 <oerjan> oh _that_
17:24:58 <Phantom_Hoover> elliott, no, Cincinnati is the place to be when the world ends.
17:28:32 <elliott> <elliottcable> elliott: (elliottt?) damn you for stealing my name
17:28:33 <elliott> <elliottcable> elliott: every single message you send (or that is sent to you) fuckin’ hilights me! D:
17:28:39 <elliott> Ha, revenge for him being an irritating prick.
17:32:41 <elliott> <elliottcable> elliott: I’ve been very prolific on Freenode for half a decade now
17:32:42 <elliott> HALF
17:32:43 <elliott> A
17:32:44 <elliott> DECADE
17:36:03 -!- cal153 has joined.
17:37:24 -!- ais523 has quit (Remote host closed the connection).
17:37:27 <elliott> my design question in #haskell has been met with the resounding response of zero people
17:37:30 <elliott> therefore, it falls to oerjan
17:37:46 <elliott> <elliott> I've been thinking about how to structure a certain pattern of code in my program. It's an interpreter. When any instruction fails in a specific way, I halt the execution of the rest of the instruction, run an error handler, and go immediately on to the next instruction, but *without* reverting the state changes caused by the failing instruction. I don't need any kind of error messages -- there is one and only one way to handle "an erro
17:37:47 <elliott> r occurred"
17:37:47 <elliott> <elliott> . In practice, there are usually three ways this error is caused: (1) An IO error fails. I have a special liftIO variant for this, which catches IO exceptions, and throws my own special exception type with the current state, where it is restored by the handler and continued with. This is very ugly. (2) A map lookup or similar yielding Nothing, so that my code looks like "case x of { Nothing -> handleErr; Just x -> do ... long stuff ...}
17:37:49 <elliott> ". The inde
17:37:51 <elliott> <elliott> ntation rapidly piles on and it gets very ugly. And (3), basically the same as (2), is "if bad then handleErr else (lots and lots of stuff)". I'm wondering what the most elegant way to handle this in Haskell in my monad stack would be. Possibly having the instruction-executing actions be "MaybeT MyMonad" rather than "MyMonad", and handling the Nothing? Basically, I want to be able to have this kind of failure support without nesting my
17:37:58 <elliott> code to inf
17:38:00 <elliott> <elliott> inity and writing lots of boilerplate every time I want a Just.
17:38:02 <elliott> <elliott> Perhaps the continuation monad would help?
17:38:04 <elliott> oerjan: enjoy
17:39:51 <cheater-> that might be because your question has the coherence of a five year old's question about how trees work
17:41:27 <oerjan> argh
17:42:01 <cheater-> oerjan: how do carrots work
17:42:29 <elliott> oerjan: :D
17:42:33 <Gregor> oerjan: Why is the sky blue?
17:42:35 <elliott> *IO error occurs.
17:43:06 -!- azaq23 has joined.
17:44:34 <Gregor> elliott: I actually see elliottcable all over the damned place :P
17:45:00 <elliott> Gregor: Then you'll know he's incredibly irritating.
17:45:08 -!- asiekierka has quit (Ping timeout: 264 seconds).
17:45:19 <Gregor> elliott: I said "see", not "talk to" :P
17:45:25 <elliott> (Maybe he's improved in the last year or so, but seriously, he tarnished the name "elliott", and that's coming from me, not exactly the least irritating person around.)
17:45:46 <elliott> Gregor: He's a major Apple fanboi, lives in Alaska and votes Republican -- this goes up to likes Sarah Palin
17:45:53 <elliott> You're missing nothing :P
17:47:48 <elliott> oerjan: FIGURED IT OUT YET
17:47:56 <Phantom_Hoover> elliott, what.
17:48:05 <Phantom_Hoover> He actually -likes- Palin.
17:48:08 <Phantom_Hoover> What.
17:48:15 <elliott> Well, I'm pretty sure he voted/would vote for her.
17:48:21 <elliott> I don't think he's actually said "I LIKE SARAH PALIN", but yeah.
17:48:41 <elliott> Anyway he's pretty much the worst in every respect any person could possibly be the worst; he maximises worseness.
17:49:09 <Phantom_Hoover> elliott, I doubt that somehow.
17:49:10 -!- pikhq_ has joined.
17:49:16 <elliott> Ha ha ha.
17:49:18 <elliott> Ye of so little faith.
17:49:21 <Phantom_Hoover> Has he badmouthed Haskell for being too mathematical?
17:49:27 -!- pikhq has quit (Ping timeout: 272 seconds).
17:49:41 <elliott> He maximises terribleness in far, far more subtle ways.
17:50:06 <elliott> Agonisingly he's actually been here before. But he was so boring that nobody paid any attention.
17:52:02 <Gregor> <elliott> ... I LIKE SARAH PALIN ...
17:52:10 <elliott> hurf durf
17:52:15 <Gregor> Alternately:
17:52:21 <Gregor> <elliott...> I LIKE SARAH PALIN
17:52:24 <Gregor> :P
17:52:31 <elliott> xD
17:53:08 <Gregor> elliottcable is also in every JS-related channel btw.
17:53:24 <Gregor> 'cuz mixing JS and Haskell = classy
17:54:50 <elliott> Gregor: Yeah, he's a Web 2.0 Ruby fag.
17:55:46 <Gregor> "HEY GUYS THEY ADDED RUBY TO HTML5 <trollface/>"
17:56:30 -!- Behold has joined.
17:57:03 <oerjan> <elliott> oerjan: FIGURED IT OUT YET <-- um the "argh" meant basically that my brain refused to try
17:57:09 <elliott> oerjan: :<
17:57:14 <elliott> oerjan: but i gave TWO possible solutions!
17:57:53 <oerjan> the programs i write in haskell are usually _not_ heavy in monad stacks.
17:58:34 <Gregor> elliott: This is because oerjan is better than you, and you should feel bad.
17:59:10 <elliott> oerjan: my monad stack is just StateT IO, sheesh
18:00:36 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
18:04:03 <elliott> oerjan: well is it appropriate for #haskell-in-depth do you think, maybe people will listen there ;D
18:04:05 <elliott> oh wait
18:04:09 <elliott> you're probably too old to know that :D
18:04:42 <oerjan> yes i've never been there
18:07:24 <Gregor> #haskell-so-deep-ooh-yeah-baby-map-my-functor
18:08:07 <Ilari> APNIC down N/A: 32k+16k+1k to Japan, 1k+256 to India, 1k to Malaysia, 64k to Australia, 512+/32 to Indonesia, 4k to New Caledonia, /32 to <unknown(AP)>.
18:09:50 <cheater-> Ilari: nice
18:10:44 <Ilari> The only allocations that <AP> has is 2x/32s, diffrent holders, both allocated this year.
18:10:58 <Ilari> ... From APNIC that is.
18:12:14 <oerjan> Gregor: i think that should be #haskell-zygohistomorphic-prepromorphisms
18:13:28 -!- pumpkin has quit (Ping timeout: 276 seconds).
18:13:40 <cheater-> oerjan: i think it should be #oerjan
18:14:43 <Ilari> AP is reserved country code (and the meaning it usually has would be pretty insane for present purposes).
18:18:03 * oerjan notes how Ilari doesn't actually mention which country it is
18:19:53 <cheater-> Ilari: why
18:20:19 <Gregor> I don't think ap is reserved for any particular country, it's just reserved as a two-letter domain for that purpose.
18:21:35 -!- cal153 has quit.
18:24:07 <fizzie> "In addition, the ISO 3166/MA will not use the following alpha-2 codes at the present stage, as they are used for international intellectual property organizations in WIPO Standard ST.3: AP: African Regional Industrial Property Organization"
18:27:09 <elliott> pikhq_: What's 512 in moonspeak
18:28:07 -!- asiekierka has joined.
18:28:16 -!- copumpkin has joined.
18:28:22 <elliott> fizzie: Hey, can I get your nasm-mode again?
18:28:47 <fizzie> It most likely still is wherever I put it.
18:28:57 <fizzie> zem.fi/~fis/nasm-mode.el perhaps.
18:29:09 <elliott> WOW
18:29:10 <elliott> IT IS!
18:29:19 <elliott> Shocking.
18:29:47 <fizzie> So's half the world. (There are 714 files there. Should clean up some day.)
18:29:58 <elliott> Or send us a directory listing.
18:30:07 <fizzie> Nnnno.
18:30:16 <fizzie> There might be SECRETS.
18:30:56 <elliott> fizzie: You Finns have way too fucking many secrets.
18:33:26 <Gregor> (Not as good as having way too many fucking secrets)
18:34:52 -!- cal153 has joined.
18:36:39 <elliott> revelation of the day: "priveledge" makes my blood curdle
18:37:04 <oerjan> driveledge
18:37:47 -!- asiekierka has quit (Read error: Connection reset by peer).
18:37:49 -!- Sgeo has joined.
18:39:51 -!- augur has quit (Remote host closed the connection).
18:40:49 <elliott> hey olsner, link me to your protected mode thing again :P
18:42:59 -!- pingveno has quit (Read error: Connection reset by peer).
18:43:22 -!- pingveno has joined.
18:44:25 <elliott> Found it.
18:47:51 -!- Behold has quit (Read error: Connection reset by peer).
18:47:54 -!- BeholdMyGlory has joined.
18:53:36 <olsner> elliott: lol
18:54:34 <elliott> olsner: don't laugh, clearly what 512 byte forth floppies need is protected mode code.
18:55:18 <olsner> I have a newer version of that code in my git repo... but I think the changes to that part of it are all related to long mode
18:56:03 <olsner> it's up to 2.7k or something nowadays
18:56:45 <Gregor> Do you REALLY need 512 bytes for Forth? :P
18:56:50 -!- impomatic has joined.
18:56:52 <impomatic> Hi :-)
18:57:11 <elliott> hi
18:57:24 <elliott> Gregor: It's actually 510 bytes you have... and seriously, 512 bytes is tiny.
18:57:30 <elliott> ¸^A$Í^Uú^O^A^V0|^O À^L^A^O"Àê6|^@^@^@^@^@^@^@^@^@^@ÿÿ^@^@^@<9a>Ï^@ÿÿ^@^@^@<92>Ï^@^W^@^Xü^@^@ôëþ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^
18:57:31 <elliott> @^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^
18:57:31 <lambdabot> Unknown command, try @list
18:57:32 <elliott> @^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@Uª
18:57:33 <lambdabot> Unknown command, try @list
18:57:37 <olsner> and I think over a hundred of the bytes go to getting into protected mode
18:57:41 <elliott> ^ That's more than the entire boot sector space.
18:57:44 <Gregor> elliott: Yeah, I know, I'm just being obnoxious :P
18:57:45 <elliott> (More because of the ^@ escape :P)
18:58:01 <Gregor> 512 bytes IS pretty darn small.
18:58:01 <elliott> olsner: yeah... i'm doing everything the imperfect way to cram it all in
18:58:02 <olsner> i.e. not even usable by the forth part
18:58:05 <elliott> a20 via bios and the like
18:58:06 <impomatic> Are you writing a boot sector?
18:58:12 <elliott> impomatic: yep, to run Forth
18:58:20 <impomatic> Oh :-)
18:58:25 <impomatic> Forth in the boot sector?
18:58:30 <Gregor> FIBS
18:58:40 <elliott> impomatic: Yep.
18:58:43 <elliott> impomatic: It's not going to be easy X-D
18:59:10 <impomatic> No. I think my Forth is about 2K
18:59:19 <elliott> impomatic: In what, Redcode?
18:59:24 <elliott> x86?
18:59:32 <impomatic> No 8086 (and soon in MSP430)
18:59:34 <Gregor> Forth in Redcode, lol
18:59:38 <olsner> elliott: can't be *that* hard, can it?
18:59:42 <elliott> I'm doing it in flat protected mode because having instructions to futz with the segment register doesn't sound fun.
18:59:52 <impomatic> Gregor: http://corewar.co.uk/assembly/forth.htm
18:59:54 -!- copumpkin has quit (Ping timeout: 264 seconds).
19:00:01 <olsner> elliott: no-one does segmentation in protected mode
19:00:15 <elliott> olsner: I mean, no protection at all.
19:00:22 <Gregor> impomatic: Outstanding.
19:00:25 <olsner> ah, paging disabled?
19:00:25 <elliott> olsner: Dude, a Forth requires a compiler, a linked-list dictionary with built-in words like @ and ! built in...
19:00:27 <elliott> Yes.
19:00:34 <elliott> olsner: Oh, and I'll need to handle keyboard input.
19:00:37 <elliott> For the actual interface.
19:00:42 <elliott> And since I'm in protected-mode, no BIOS to do it for me.
19:00:47 <elliott> tl;dr this is going to be anything but easy.
19:00:50 <olsner> yes, paging is a bit irksome to set up, at least compared to not doing it
19:01:09 <elliott> well it's Forth, you should be able to poke to random locations and read it back later :D
19:01:18 <impomatic> Gregor: it's only a subset. One day I might code the full ANS standard in Redcode ;-)
19:01:19 <elliott> like typing into a commodore 64, except...forth, and x86
19:01:31 <olsner> you can write the paging in forth after that if you like
19:01:37 <elliott> olsner: PRECISELY!
19:01:41 <elliott> gonna have some kind of machine code instruction
19:01:45 <elliott> : + [ 39847349538495349759834 asm ] ;
19:01:59 <elliott> ok, so i'll probably only do hex literals :P
19:02:08 <elliott> impomatic: hmm, have you got a link to your x86 forth?
19:02:24 <elliott> i like your stack notation on the underload page, btw
19:03:03 <olsner> hmm, why bother with hex even, just write the bytes directly with some kind of escaping mechanism?
19:03:17 <impomatic> elliott: it's not online because I'm still playing with it.
19:03:17 <Gregor> I think the hardest thing to fit with Forth will be the initial dictionary.
19:03:45 <elliott> impomatic: No fair, I wanna steal your code :)
19:03:46 <elliott> Gregor: Precisely.
19:03:59 <elliott> olsner: Can't do that on a keyboard without extra code to handle that X-D
19:04:04 <elliott> Gregor: With an asm word, you don't need niceties such as +.
19:04:16 <impomatic> elliott: see eForth and Jones Forth. They're pretty easy to understand.
19:04:17 <elliott> Gregor: In fact, even @ and ! can be defined later, though I'd really rather they weren't.
19:04:23 <elliott> impomatic: Yeah, but jonesforth is really big.
19:04:35 <olsner> elliott: hmm, that's true...
19:04:39 <elliott> Gregor: I mean, at the bare minimum you need, like, :, [, ], and some asm instruction.
19:04:55 <elliott> Gregor: Actually I hope to avoid [ and ], I think colorForth has no immediate words, which will be simpler to do than the traditional way.
19:04:55 <Gregor> elliott: Just don't name the asm word "asm" :P
19:05:07 <elliott> Gregor: I was thinking I'd call it "x86" :P
19:05:08 <olsner> hmm, keyboard handling might be messy if you do everything yourself ... it's not as if the keyboard sends ascii characters
19:05:21 <Gregor> elliott: No, give it one character, that saves you two bytes ;)
19:05:37 <elliott> Gregor: Uhh, not if I pack names into 1.5 words!
19:05:49 <impomatic> Why not code top down from the outer interpreter and only code words actually required to get it working.
19:06:04 <elliott> olsner: well maybe i'll just index the dictionary with scancodes!
19:06:11 <elliott> impomatic: Top down Forth?
19:06:13 <elliott> haha
19:06:21 <elliott> Isn't Forth the *definition* of bottom-up? :)
19:06:28 <impomatic> I've seen a Forth that stores word names as the first two characters plus the length. That might save some space.
19:06:38 <elliott> Anyway, I'm going to get into protected mode before I start on the Forth. And maybe get keyboard input going.
19:06:42 <elliott> impomatic: Two chars?
19:06:45 <elliott> Nice uniqueness guarantee :P
19:06:53 <Gregor> Two chars PLUS LENGTH!
19:07:33 <Gregor> I suppose every bit you save by clever packing costs you many more than one bit in writing an unpacking algo :P
19:07:57 <impomatic> The code for NEXT is called at the end of every machine code word. Maybe use INT 3 for NEXT.
19:08:02 <elliott> Actually the GDT is uncomfortably big.
19:08:05 <elliott> I wonder if I can just not load any gdt at all.
19:08:07 <elliott> olsner the expert!
19:08:16 <elliott> impomatic: That would require enabling interrupts and setting up an interrupt table thing.
19:08:19 <elliott> = WAY TOO MUCH CODE :)
19:08:31 <olsner> I think you can overwrite the GDT after loading segment registers from it
19:08:40 <elliott> I was thinking something like
19:08:52 <elliott> xchg esp, SOMETHING
19:08:57 <elliott> pop eax
19:09:00 <elliott> xchg esp, SOMETHING
19:09:00 <elliott> jmp [eax]
19:09:02 <elliott> for NEXT
19:09:09 <elliott> but maybe
19:09:18 <elliott> mov eax, [SOMETHING]
19:09:21 <elliott> subtract from SOMETHING
19:09:22 <elliott> jmp [eax]
19:09:23 <elliott> would be shorter.
19:09:30 <olsner> but afaik the only way to get proper values into the segment registers is to have a GDT to load them from
19:09:33 <elliott> olsner: Can't I just have a 0 base, 0 limit GDT table?! :P
19:09:49 <olsner> you can, but then you can't load anything from it
19:10:01 <elliott> olsner: So I'd have a completely empty memory space? :P
19:10:22 <olsner> no, you'd still have the segment values as they were given to your from real mode
19:10:30 <olsner> so you have like 5x64k addressible
19:10:44 <elliott> olsner: that sounds good enough to me!
19:10:59 <elliott> olsner: that's 640 sectors, after all
19:11:07 <elliott> wait isn't it 640k, not 320k?
19:11:13 <elliott> so 1280 sectors
19:11:26 <olsner> right, sectors are small
19:11:47 <elliott> olsner: so it's 10x64k
19:11:48 <elliott> not 6x
19:11:49 <elliott> *5x
19:11:50 <elliott> SHEESP
19:11:57 <olsner> no, because your addressible memory space is limited by the number of segment registers you have
19:12:26 <olsner> each one has a limit of 64k left-over from real mode, and can point to different places in the first 1MB
19:12:52 <olsner> and you can't load them with nice protected-mode values unless you have a GDT to load from
19:12:55 <elliott> darn
19:13:00 <elliott> what if
19:13:01 <elliott> i tricked the cpu
19:13:05 <elliott> in letting me load my segment registers
19:13:07 <elliott> without creating a gdt
19:13:11 <elliott> *into letting
19:13:35 -!- augur has joined.
19:14:06 <olsner> the cpu is really picky about not letting you access the useful (invisible) part of the segment-register state
19:14:33 <olsner> there is/was an undocumented instruction for loading all state, including the shadow state, from memory
19:14:49 <olsner> but I doubt that ends up shorter than setting up a gdt
19:16:50 <pikhq_> Well, that was pointless.
19:17:02 <elliott> olsner: maybe it won't fault like the gdt is doing :D
19:17:09 -!- copumpkin has joined.
19:17:21 <pikhq_> For various reasons that I'd rather not talk about, I got referred to a psychiatrist to gauge my level of "disability" from autism...
19:17:57 <pikhq_> What this actually consisted of was the Wechsler Adult Intelligence Scale, or as it is more commonly known, an IQ test.
19:18:01 <elliott> Pshht, loser, I relayed EVERY DETAIL of the unit and you won't even write us a novel on the channel!
19:18:33 <pikhq_> elliott: Okay, fine, fine.
19:18:51 <pikhq_> elliott: I was strongly encouraged by my parents to apply for Supplemental Disability Income from Social Security.
19:18:54 <olsner> elliott: I suspect the opcode simply means a completely different thing on modern cpus
19:18:55 <elliott> so wait what was the iq result, tarded out of 200?
19:18:57 <elliott> THOUGHT SO
19:19:02 <elliott> >_>
19:19:04 <pikhq_> elliott: Dunno, just took it.
19:19:15 <elliott> olsner: what, lgdt?
19:19:18 <elliott> in qemu?
19:19:19 <elliott> :P
19:19:21 <olsner> elliott: no, loadall
19:19:38 <pikhq_> But judging from how I completed sections of it, and the test is designed so that you only do as much of each section as you are capable...
19:20:07 <pikhq_> Of course, my *intelligence* is not in doubt by anyone even vaguely sane.
19:20:14 <pikhq_> A hell of a lot of other things, perhaps, but not that!
19:21:23 <elliott> Completed WHOLE SECONDS
19:21:24 <elliott> *SECTIONS
19:22:16 <olsner> since you failed to emulate human behavior (which would be failing the test), you are clearly very badly disabled by your autism
19:22:24 <pikhq_> One of the portions of the test, curiously enough, is actually noted to be performed *significantly better* by autistics.
19:22:42 <elliott> olsner: CLEARLY
19:22:44 <pikhq_> Even those who are incapable of, say, speech.
19:23:07 <elliott> pikhq_: Maybe they're looking for a HIGH score :P
19:23:16 <elliott> "You did way too fucking well at this, you're probably autistic."
19:23:21 <pikhq_> LMAO
19:23:29 <elliott> olsner: so wait, why can't i just pop random shit into the segment registers
19:23:44 <elliott> pikhq_: "Dude, the test involved arranging blocks into certain patterns for SIX HOURS. You completed ALL of them."
19:23:53 <elliott> "Here's your money."
19:24:15 <pikhq_> elliott: That is the test that autistics perform better than normal, actually.
19:24:22 <elliott> X-D
19:24:23 <elliott> TOLD YOU
19:24:29 <elliott> How many hours was it
19:24:34 <olsner> elliott: mov cs, foo means "look up index foo in the GDT and load the information into the shadow part of CS, also set the visible part of CS to foo"
19:24:40 <pikhq_> 1 hour for the whole thing.
19:24:46 <olsner> the visible part is a useless index in protected mode
19:24:54 <elliott> olsner: hmm, could I do that in real mode put poke the right things in so i get a nice protected mode segment? i suppose not
19:24:59 <elliott> *I
19:25:53 <pikhq_> Hmm. It seems to me that you actually *could* use this IQ test as a gauge of autism. "Performance IQ" should be significantly higher than "Verbal IQ".
19:25:56 <olsner> no, when you do mov cs, foo in real mode, that means "set the shadow part of CS to base foo*16 and limit 64k"
19:26:04 <elliott> olsner: this shit is laaame
19:26:08 <olsner> limt 64k makes it suck
19:26:22 <elliott> "Because LOADALL did not perform any checks on the validity of the data loaded into processor registers, it was possible to load a processor state which could not be normally entered, such as using real mode (PE=0) together with paging (PG=1) on 386 class CPUs[3]."
19:26:28 <elliott> olsner: real mode + paging, best thing ever?
19:26:48 <elliott> Yeah, loadall's table takes way too many bytes :P
19:26:48 <olsner> or you could get unreal mode without paging, probably more useful for your case
19:26:59 <elliott> hmm, i don't actually load an idt
19:27:04 <elliott> that's probably bad, isn't it?
19:27:11 <elliott> or do you not actually need one of you keep interrupts off
19:27:11 <pikhq_> elliott: "Real mode + paging" is 286 protected mode...
19:27:46 <pikhq_> ... Waitwaitwait, loadall could get you actual real mode with actual paging?
19:27:49 <pikhq_> Fucking. Awesome.
19:27:53 <elliott> YES.
19:27:58 <elliott> On a 386 only :P
19:28:18 <olsner> with interrupts off, you only need an IDT if you cause faults
19:28:26 <olsner> (so don't do that unless you have an IDT :P)
19:29:00 <elliott> right
19:29:00 <elliott> hmm
19:29:01 <elliott> jmp 0:prot
19:29:03 <olsner> but maybe you want an IDT to get keyboard interrupts anyway?
19:29:08 <elliott> i guess i'm assuming that the bios sets the segments right for tht
19:29:09 <elliott> *that
19:29:11 <elliott> will it? :D
19:29:20 <elliott> hmm, keyboard interrupts... can't you just talk to the keyboard port?
19:29:43 <olsner> is that an attempted jump into protected mode? the bios does *not* set up the right kind of CS for that :P
19:30:29 <olsner> (erase that, that makes no sense since a far jump sets CS anyway)
19:30:29 <elliott> olsner: well why not!!!!
19:30:40 <elliott> hmmm right
19:30:44 <elliott> so jmp 0:prot is ok then1
19:30:47 <elliott> *then!
19:30:49 <elliott> RITE?
19:31:22 <elliott> hmm, fixed my stupid bug and it still doesn't work, i hate how that happens
19:31:29 <elliott> "OH! this is it!" "or nrot"
19:31:30 <elliott> *or not
19:32:25 <olsner> hmm, 0 is a special selector, so I don't think that works
19:33:07 <elliott> olsner: why's it special
19:33:09 <olsner> not sure how much of that is actually validated, but the first entry in the GDT is reserved because the null selector is reserved
19:33:10 <elliott> i just want the flatness
19:33:14 <elliott> all the flatness
19:33:18 <elliott> oh
19:33:18 <elliott> so wait
19:33:20 <elliott> https://gist.github.com/657234/53d3f5ea07972cd7b02b27b030a5b22e652d2726
19:33:30 <elliott> what segment do you start it at there :D
19:33:37 <elliott> it looks to me like 0...
19:33:38 <elliott> oh wait
19:33:40 <elliott> duh
19:33:42 <elliott> what I need is
19:33:44 <elliott> jmp index_of_segment:foo
19:33:45 <elliott> so
19:33:47 <elliott> define_descriptor 0xffff,0,0,RX_ACCESS,0xcf,0
19:33:48 <elliott> that one
19:34:09 <elliott> so if i make a label to it koed i want to jmp to (koed-gdt):prot
19:34:10 <elliott> right?
19:34:11 <olsner> yes, that's 8, which is what code_seg is equ'd to
19:34:14 <elliott> lolz
19:34:25 <elliott> yay, works
19:34:38 <elliott> hmm, can you avoid specifying the null segment somehow i wonder :)
19:34:39 <Gregor> So glad I've never written boot sector code >_>
19:34:56 <olsner> I *think* that you can store anything in there really
19:35:25 <olsner> why would you end up reading the entry for a selector you can't load anyway
19:36:20 -!- copumpkin has quit (Ping timeout: 240 seconds).
19:37:05 -!- copumpkin has joined.
19:39:41 -!- Sgeo has quit (Ping timeout: 240 seconds).
19:40:59 <olsner> hmm, apparently you are free to load the null selector, but as soon as you use it you'll get a #GP
19:41:14 <elliott> olsner: what if i trap the gp and ignore it!
19:42:00 <olsner> then you're stuck with ignoring GP:s and retrying a faulting instruction for ever
19:42:18 <olsner> or, if you skip the instructions that fault, a program that fails to do a lot
19:42:18 <elliott> olsner: sounds good to me
19:42:26 * elliott removes null segment
19:42:28 <elliott> gdt equ koed-8
19:42:34 <elliott> does the gdt need to be aligned 4?
19:43:01 <olsner> I don't think so
19:43:03 <elliott> olsner: hmm, can you not have a segment that's +rwx?
19:43:08 <elliott> do you really need two identical +rw and +rx ones?
19:44:16 <olsner> I think it's really a bit that says "Code" or "Data" segment, and that you can only run code from code segments
19:44:29 <elliott> olsner: but can you poke data in code segments?
19:44:30 <Ilari> AFAIK, segment can't be RWX. Because only code segments can be executable and only data segments can be writable.
19:44:38 <elliott> that's lame.
19:44:49 <elliott> Ilari: does that apply to original x86 or only modern things?
19:44:51 <olsner> no, you poke in a different segment that happens to share memory with the code segment :)
19:44:59 <elliott> 386 that is
19:45:00 <elliott> olsner: but that's _extra_ _bytes_
19:45:11 <olsner> elliott: just xor with 8 after loading cs, then load ds
19:45:31 <olsner> I *think* that should work :)
19:45:35 <elliott> olsner: err, but it still has to be in my gdt, doesn't it?
19:45:36 <elliott> oh wait
19:45:40 <elliott> just use one segment
19:45:41 <elliott> and modify it?
19:45:45 <elliott> are you SURE that's legal :D
19:45:50 -!- Behold has joined.
19:46:00 <elliott> but err
19:46:02 <Gregor> s/legal/working/
19:46:08 <elliott> Gregor: well right
19:46:18 <Ilari> At least appiled to original x86. On modern things, I don't even recall if you have to define segments for ordinary segments.
19:46:18 <elliott> so er wait
19:46:21 <elliott> how do you load cs again
19:46:21 <elliott> oh right
19:46:23 <elliott> mov cs, 8
19:46:25 <olsner> I think it's fairly well-defined when the segments are reloaded, because everyone does weird shit that relies on old shadow state being left
19:47:06 <elliott> prot:mov cs, seg
19:47:07 <elliott> xor [rw], 8
19:47:07 <elliott> mov ds, seg
19:47:09 <elliott> byootiful
19:47:09 <elliott> hmm
19:47:10 <Gregor> "Well defined" is so much different from "defined well" :)
19:47:12 <elliott> that xor prolly isn't valid
19:47:28 -!- BeholdMyGlory has quit (Ping timeout: 264 seconds).
19:47:29 <olsner> why the hell not? :D
19:47:45 <elliott> olsner: well x86 is generally a dick about what you can dereference
19:47:50 <elliott> i'd expect to have to move rw into eax first :)
19:48:06 <elliott> hmm, what are es, fs, gs, ss again :)
19:48:30 <elliott> wow, my gdtr is in my gdt
19:48:32 <elliott> is that... legal? :D
19:48:36 <elliott> gdtr:dw gdt_end-gdt-1 ; limit
19:48:36 <elliott> dd gdt ; base
19:48:36 <elliott> gdt equ segp-8
19:48:36 <elliott> seg equ segp-gdt
19:48:36 <elliott> segp:dw 0xffff
19:48:49 <olsner> heh, nice
19:48:49 <elliott> let's just assume it is!
19:49:10 <impomatic> There was a bootsector writing contest last year... http://forum.osdev.org/viewtopic.php?f=2&p=170511#p170511
19:49:23 <elliott> hmm
19:49:30 <elliott> are es, fs, gs, ss data segments?
19:49:40 <elliott> oh, stack segment, "extra segment", general purpose segments
19:49:46 <elliott> so, they should all be data segments basically
19:49:54 <olsner> yep, all data segments
19:50:14 <elliott> hmm, is "mov ax, LIT; mov [defgs]s, ax" shorter than "mov [defgs]s, LIT"? :-P
19:50:43 <elliott> actually... i can probably leave fs and gs unset, can't I?
19:50:47 <elliott> and indeed es
19:50:56 <elliott> because, well, the basic Forth won't use it!
19:50:59 <elliott> *them!
19:51:10 <olsner> es is used by string instructions, so is useful to have pointing to the same as ds
19:51:37 <elliott> does the stack need to be in ss? :D
19:51:58 <olsner> yes, the stack instructions use the ss segment :)
19:52:00 <fizzie> And there is no "mov segreg, immediate" at all; it's just mov segreg, reg16/mem16.
19:53:34 <elliott> fizzie: Ah, okey.
19:53:46 <elliott> olsner: But fs and gs I can neglect :P
19:54:01 <olsner> yes, unless you find a use for them
19:54:14 <elliott> I don't have enough bytes to find uses.
19:55:21 <elliott> sixth.s:14: error: expression syntax error
19:55:23 <elliott> wtf :/
19:55:24 <elliott> I define seg later
19:55:29 <fizzie> ES is I guess only used implicitly by the ES:DI pair of the string instructions, so you can ignore that too if you don't use MOVS/STOS/SCAS (LODS uses DS:SI). Of course if you're saving bytes, the string instructions themselves often do that.
19:55:35 <elliott> unless seg is a keyword or whatever
19:56:23 <fizzie> SEG's a NASM operator, yes.
19:56:23 -!- augur has quit (Remote host closed the connection).
19:56:34 <fizzie> It returns the segment of the argument.
19:56:41 <olsner> you can save one byte by loading the immediate in 16-bit mode before jumping into 32-bit
19:56:48 <elliott> fizzie: i like how you don't highlight it :)))
19:56:52 <elliott> yeah just shift the blame
19:56:54 <elliott> to fizzie
19:57:14 <elliott> now it's the much more readable "sg"
19:57:15 <elliott> olsner: :D
19:57:52 <elliott> prot:xor byte [rw], 8
19:57:58 <elliott> wonder if xor word or whatever is shorter than xor byte :D
19:58:01 <fizzie> elliott: You can add it to the nasm-named-operators list; actually I feel like I already did this once, maybe the copy is old. (Or maybe I just thought I should.)
19:58:04 <elliott> IT'S POSSIBLE
19:58:29 <olsner> elliott: check the output in a disassembler, and/or ask for a listing file from nasm
19:58:48 <olsner> but the immediate is obviously one byte larger in word form
19:58:56 <elliott> yah
19:59:24 <elliott> up to 57 bytes
19:59:26 <olsner> the byte form might use a special byte-opcode, while the word-form in 32-bit mode might end up using a operand size prefix
19:59:26 <elliott> should optimise that :)
19:59:56 <elliott> lgdt [gdtr]
19:59:56 <elliott> hmm
20:00:03 -!- cheater- has quit (Ping timeout: 240 seconds).
20:00:04 <elliott> can you lgdt something that's not [foo] then?
20:00:05 <elliott> like
20:00:07 <elliott> lgdt a register :-P
20:00:10 <elliott> JUST THINKIN' OUT LOUD HERE
20:00:30 <olsner> you can also try the btr or btc instruction instead of xor
20:00:44 <olsner> or bts, I forgot if you're setting the bit or clearing it
20:01:21 <elliott> lol, i can't use ndisasm olsner :/
20:01:22 <elliott> because
20:01:24 <elliott> if i do -b 32
20:01:29 <elliott> to get the 32-bit parts to disassembly correctly
20:01:32 <elliott> 00007C16 EA1B7C08008035 jmp dword 0x3580:0x87c1b
20:01:32 <elliott> 00007C1D 367C00 ss jl 0x7c20
20:01:32 <elliott> 00007C20 0008 add [eax],cl
20:01:32 <elliott> 00007C22 8ED8 mov ds,ax
20:01:32 <elliott> 00007C24 8EC0 mov es,ax
20:01:33 <elliott> it gets out of sync
20:01:39 <elliott> ; fs and gs aren't set
20:01:41 <elliott> prot:xor byte [rw], 8
20:01:41 <elliott> mov ds, ax
20:01:42 <elliott> mov es, ax
20:01:42 <elliott> is the relevant snippet
20:01:45 <elliott> because of the previous 16-bit code
20:01:46 <fizzie> You can ask for the listing file, though.
20:01:54 <olsner> use the -e flag to ignore the prefix then
20:01:55 <elliott> fizzie: eh? :P
20:02:10 <elliott> olsner: I dunno whether I'm setting it or clearing it :-D
20:02:12 <olsner> fizzie: I told him about the listing file first! :P
20:02:18 <fizzie> nasm ... -l foo.lst or something.
20:02:35 <olsner> he didn't listen though :(
20:02:43 <elliott> i listened now!
20:02:48 <elliott> 20 0000001B 8035[36000000]08 prot: xor byte [rw], 8
20:02:50 <elliott> what's the [] mean
20:03:07 -!- augur has joined.
20:03:07 -!- cheater- has joined.
20:03:13 <olsner> oh my, a 32-bit offset :(
20:03:32 <elliott> wait
20:03:34 <elliott> how can xor 8 work
20:03:37 <elliott> don't you have to do -x
20:03:39 <elliott> as well as +r
20:03:46 <olsner> no, you just flip the code/data bit
20:03:51 <elliott> oh
20:03:55 <elliott> can't you have read but no write or exec? :D
20:04:10 <olsner> look at the values of RX_ACCESS and RW_ACCESS :)
20:04:28 <olsner> they only differ in one bit
20:05:33 <fizzie> Incidentally, I hope you're using "-Ox" when assembling? NASM won't always use the shortest forms automagically if not.
20:06:29 -!- Sgeo has joined.
20:06:48 <elliott> fizzie: I am, yes.
20:07:09 <elliott> olsner: so i turn off bit 3
20:07:16 <olsner> elliott: right
20:07:17 <elliott> (with least-significant = bit 0)
20:07:34 <elliott> i'll try btc or btr or whatever
20:07:36 <olsner> I hope that's how bt* counts it anyway :P
20:08:24 <olsner> (well, obviously it is because I'm using it like that and it works)
20:08:43 <elliott> hmm, how do you use btr :D
20:09:03 <elliott> also is its argument lsb=0 or msb=0?
20:09:15 <elliott> oh
20:09:17 <elliott> you answered that :P
20:09:21 <elliott> anyway what does the [] stuff mean
20:09:23 <elliott> in the listing
20:09:51 <olsner> it just indicates which part of the instruction is the offset, I think
20:09:54 <elliott> ah
20:09:59 <elliott> so
20:10:12 <elliott> "btr 3, [rw]" isn't right apparently :(
20:10:31 <olsner> no, destinations go on the left
20:11:08 <elliott> oh right
20:11:20 <fizzie> I don't think it's any shorter either, since the BT* immediates are one byte too.
20:11:24 <fizzie> But of course it might.
20:11:31 <elliott> i should learn to read the "BTR r/m16, r16" things
20:11:40 <elliott> olsner: ding wrong
20:11:48 <elliott> still invalid comb
20:12:41 <olsner> try with btr dword[foo]
20:13:09 <elliott> ...but then i'd have to change the offset :D
20:13:25 <olsner> istr getting hit by that - even though there is only a single valid combination of operands, you have to specify that you mean it
20:13:32 <Sgeo> Ok, I was full of myself as a kid
20:13:37 <Sgeo> "One of the core aspects of this demo"
20:13:39 <Sgeo> WTF?
20:13:48 <olsner> elliott: no you don't, the first bits are in the same place regardless
20:13:50 <fizzie> olsner: Probably word for 16-bit-mode code?
20:13:51 <olsner> little-endian you know
20:13:55 <elliott> oh right
20:14:02 <olsner> fizzie: yep
20:14:06 <Sgeo> ..() //Call parent
20:14:13 <elliott> 20 0000001B 0FBA35[37000000]03 prot: btr dword [rw], 3
20:14:15 <elliott> just as long
20:14:16 <olsner> I think he's in 32-bit here
20:14:20 <elliott> what if i relocated the gdt :)
20:14:24 <Sgeo> I wish I commented this code better. Preferably without comments such as that.
20:14:25 <elliott> olsner: of course i am, i'm loading the segments
20:14:25 <elliott> wait
20:14:29 <elliott> can you load the segments in 16-bit code?
20:14:31 <elliott> like lgdt
20:14:33 <elliott> ...load segments...
20:14:35 <elliott> do the cr0 magic
20:14:38 <elliott> then jump into protected?
20:15:08 <olsner> hmm, you should be able to, I think
20:15:14 <elliott> :D
20:15:31 <Sgeo> Ok, I see what I did?
20:15:31 <elliott> olsner: ugh but wait
20:15:32 <olsner> dunno if it's the CS that decides what you mean by loading segment registers, or if it's the PE flag that does that
20:15:33 <elliott> then it has to start as +rw
20:15:35 <elliott> and then turn into +rx
20:15:36 <elliott> for the jump
20:15:40 <Sgeo> Does anyone want to see code I wrote as a kid?
20:15:42 <elliott> so i need to set cs manuall
20:15:43 <elliott> y
20:15:50 <elliott> which may just end up longer.
20:15:58 <Sgeo> I'll take that "y" to mean "yes"
20:16:19 <Sgeo> http://pastie.org/1622151
20:16:19 <olsner> just load data segments, swizzle the bit, then far jump?
20:16:26 <elliott> oh right
20:16:27 <elliott> that would work
20:17:13 <elliott> score
20:17:18 <elliott> saved one byte over the previous 58 bytes
20:17:20 <elliott> now at 57 bytes
20:17:22 <olsner> :)
20:17:31 <elliott> except
20:17:34 <elliott> now it faults
20:17:35 <elliott> rather than booting
20:17:41 <elliott> which is less good than the previous behaviour i think
20:17:57 <olsner> hmm, where does it fault? when loading the ds or in the jump?
20:18:26 <elliott> olsner: err, you think i'm using bochs or some other similarly helpful thing?
20:18:32 <elliott> it's qemu, if the screen flickers it's rebooting constantly.
20:18:33 <elliott> :)
20:18:42 <elliott> ========================================================================
20:18:42 <elliott> Event type: PANIC
20:18:42 <elliott> Device: [ ]
20:18:42 <elliott> Message: dlopen failed for module 'x': file not found
20:18:46 <elliott> bochs is going well already
20:19:27 <elliott> ok bochs works now
20:19:31 <elliott> how do i get it to tell me the cause of the fault :D
20:19:41 <elliott> oh here
20:19:50 <elliott> 00561669756e[CPU0 ] check_cs(0x0008): not a valid code segment !
20:19:50 <elliott> 00561669756e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x0d)
20:19:50 <elliott> 00561669756e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x08)
20:19:50 <elliott> 00561669756i[CPU0 ] CPU is in protected mode (active)
20:20:03 <elliott> olsner: so i guess "bts dword [rx], 3" isn't doing what i want it to do.
20:20:18 <oerjan> ^ul (()(^)()()(^)()(^:^^:^)()()(^^)):^^:^
20:20:19 <fungot> ...out of time!
20:20:22 <oerjan> yay!
20:20:23 <olsner> sounds like it
20:20:28 <elliott> oerjan: wat
20:20:30 <elliott> :^ is TC?
20:20:35 <elliott> *():^
20:20:49 <oerjan> ^ul (()()()(^^(^))()(^)()()(^)()()(^)()(^:^S:^^:^)()()()()(^^^^)):^^:^
20:20:50 <fungot> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...too much output!
20:20:54 <oerjan> yay!
20:21:16 <oerjan> those were the conversion of (:^):^ and ((^)S:^):^, respectively
20:21:55 <elliott> oerjan: here's my conversion of the former
20:21:56 <elliott> (:^):^
20:22:02 * oerjan snickers
20:22:54 <oerjan> it's a good sign that the test programs run right, you'd think
20:23:41 <oerjan> ^ul (()()()(^^(^))()()(^)()(^:^S)()()()()(^^^^))(()(^)()()()(^^^(:))()()(^)()(^:^S)()()()()()(^^^^^)):^^:^^:^^^:^
20:23:41 <fungot> :^
20:23:52 <oerjan> that was ((^)S)((:)S):^!^
20:23:58 <elliott> now do the turing machine
20:24:06 <oerjan> you mean minsky
20:24:32 <elliott> do the minsky
20:24:32 <elliott> that's
20:24:34 <elliott> definitely a dance.
20:24:38 <elliott> or a sex position, same thing
20:24:41 <oerjan> ...
20:24:52 <olsner> elliott: oh! you're probably getting the segments the wrong way around now
20:25:14 <oerjan> elliott: there's a slight chance it might become rather large, i think :D
20:25:24 <elliott> mov ax, sg
20:25:25 <elliott> mov ds, ax
20:25:25 <elliott> mov es, ax
20:25:25 <elliott> mov ss, ax
20:25:25 <elliott> bts dword [rx], 3
20:25:25 <elliott> ;;
20:25:27 <elliott> mov eax, cr0
20:25:29 <elliott> or al, 1
20:25:31 <elliott> mov cr0, eax
20:25:31 <olsner> if you're loading ds first, the initial contents has to be the data one, and you need to use the right bit-fiddling to make it into a code one
20:25:33 <elliott> jmp sg:prot
20:25:35 <elliott> [...]
20:25:37 <elliott> rx:db 10010010b
20:25:39 <elliott> olsner: SEE, IT'S PERSCHFET
20:25:41 <elliott> *PERSCHFECT
20:25:43 <elliott> i'm not that much of a moron dude moron
20:25:45 <elliott> oh wait
20:25:51 <elliott> lol
20:25:53 <elliott> ok
20:25:55 <elliott> my label confused me
20:25:57 <elliott> ;rw:db 10011010b ; +rx -- this changes into +rw later
20:25:58 <olsner> <elliott> i'm not that much of a moron dude moron <elliott> oh wait
20:25:59 <elliott> rx:db 10010010b
20:26:01 <elliott> "rw"
20:26:03 <elliott> nice
20:26:07 <elliott> "moron dude moron" xD
20:26:24 <elliott> wait
20:26:26 <elliott> relink me to that gist agani
20:26:30 <elliott> i closed deh tab :D
20:26:38 <olsner> you don't have undo close tab?
20:26:42 <elliott> oh
20:26:42 <elliott> here it is
20:27:16 <elliott> i did but
20:27:18 <elliott> it got closed a while ago
20:27:19 <elliott> anyway
20:27:24 <elliott> olsner: i think the bts is doing the wrong thing somehow
20:27:27 <elliott> because the rest is all perfect
20:27:30 <elliott> and it only complains about cs
20:27:42 <elliott> 00098292206i[CPU0 ] | CS:0000( 0004| 0| 0) 00000000 0000ffff 0 0
20:27:42 <elliott> 00098292206i[CPU0 ] | DS:0008( 0005| 0| 0) 00000080 0000ffff 0 0
20:27:42 <elliott> 00098292206i[CPU0 ] | SS:0008( 0005| 0| 0) 00000080 0000ffff 0 0
20:27:42 <elliott> 00098292206i[CPU0 ] | ES:0008( 0005| 0| 0) 00000080 0000ffff 0 0
20:27:42 <elliott> 00098292206i[CPU0 ] | FS:0000( 0005| 0| 0) 00000000 0000ffff 0 0
20:27:42 <elliott> 00098292206i[CPU0 ] | GS:0000( 0005| 0| 0) 00000000 0000ffff 0 0
20:27:45 <elliott> 0000???
20:27:50 <elliott> but I do "jmp sg:prot"!
20:27:51 <elliott> oh
20:27:56 <elliott> maybe it doesn't show you the new value of cs
20:28:01 <elliott> if it complains while doing a far jump to set cs
20:28:06 <olsner> hmm, you're not changing the *first* byte of the segment descriptor are you?
20:28:27 <olsner> the flags is like the sixth byte or something
20:28:34 <elliott> rw:db 10010010b
20:28:38 <elliott> bts dword [rw], 3
20:28:39 <elliott> PRETTY SURE
20:28:40 <olsner> right. not that at least
20:28:49 <olsner> YOU NEVER KNOW
20:29:19 <elliott> maybe it's just my ram flipping bits thanks to cosmic things
20:29:25 <elliott> to teach me about how useful ecc is
20:29:37 <olsner> well, what is the actual contents of this memory at this point?
20:30:03 <elliott> err, define memory
20:30:05 <elliott> like, all of it? :D
20:30:13 <olsner> the relevant parts, duh
20:30:27 <elliott> which parts are relevant, or wait
20:30:29 <olsner> the parts pertaining specifically to the issue at hand
20:30:32 <elliott> do you want me to get out a debugger and print rw?
20:30:37 <elliott> because, jeez, that sounds complicated :/
20:30:40 <olsner> :)
20:30:51 <elliott> man
20:30:53 <elliott> asm needs a printf statement
20:30:58 <elliott> printf "%d\n", rw
20:31:00 <elliott> *[rw]
20:31:06 <elliott> just prints to the most useful console available :D
20:31:40 <olsner> hmm, these protected-mode segments you just loaded have 0 as the base
20:31:55 <olsner> maybe that doesn't match the segment you're trying to address rw relative to
20:33:20 <olsner> *the segment nasm thinks you're trying to
20:33:43 <elliott> well uh
20:33:44 <elliott> it's "sg" all the way
20:33:51 <elliott> gdt equ sgp-8
20:33:52 <elliott> sg equ sgp-gdt
20:33:52 <elliott> sgp:dw 0xffff
20:33:52 <elliott> dw 0
20:33:52 <elliott> db 0
20:33:52 <elliott> rw:db 10010010b
20:33:53 <elliott> db 0xcf
20:33:54 <elliott> db 0
20:33:56 <elliott> looks good to me
20:34:23 <olsner> your origin is 0?
20:34:44 <elliott> olsner: that line was stolen from you, so yeah
20:35:37 <olsner> actually, that origin is off by around 0x7c00 bytes
20:35:49 <elliott> what do you mean
20:35:51 <elliott> where's my origin
20:35:56 <olsner> 0x8000 in my case, 0x7c00 in your case
20:36:03 <elliott> i didn't even paste my gdtr dude :P
20:36:12 <elliott> but right, i forgot 0x7c00...
20:36:24 <elliott> now why did it work before
20:36:27 <elliott> anyway, woop, still faults
20:36:45 <olsner> it might have worked before because you were using an old ds set up by your bios, instead of the protected-mode ds
20:38:12 <olsner> (so probably the origin of 0 is actually right, technically, for real-mode)
20:42:21 <oerjan> ^help
20:42:21 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
20:45:31 -!- pumpkin has joined.
20:45:33 <elliott> olsner: are you sure "jmp foo:bar" in nasm works properly to set cs? :D
20:45:52 <olsner> pretty sure :)
20:46:05 <olsner> have you fixed the offset to rw?
20:46:14 <elliott> was it wrong?
20:46:17 <elliott> wait
20:46:19 <elliott> the offset to rw?
20:46:21 <elliott> OH
20:46:31 <olsner> OH indeed :)
20:46:32 <elliott> do you mean that "bts dword [rw], 3" is wrong? :)
20:46:34 <elliott> because i'm in real mode?
20:46:49 -!- Sgeo has quit (Ping timeout: 240 seconds).
20:46:50 <elliott> i'm not sure what i need to do to fix that actually
20:46:51 <elliott> ds:[rw]?
20:47:05 <oerjan> ^minsky
20:47:06 <fungot> ^ ...out of time!
20:47:19 <olsner> ... you just changed to a ds with a different offset, right?
20:47:20 <oerjan> ...not _immensely_ good, that :D
20:47:39 <elliott> olsner: ...well right, the offset is 0
20:47:40 <elliott> so i need
20:47:47 <elliott> [rw+0x7c00]
20:47:48 <elliott> right? :P
20:47:55 <elliott> or wait
20:48:00 <elliott> do the segments overlap properly there...
20:48:03 <elliott> or does rw actually become inaccessible
20:48:45 -!- copumpkin has quit (Ping timeout: 240 seconds).
20:48:46 <olsner> segments overlap what?
20:49:19 <elliott> er :D
20:49:22 <elliott> yeah that makes no sense
20:49:40 <elliott> hmm [rw+0x7c00] doesn't work either
20:49:40 <elliott> well
20:49:43 <elliott> might be a different prob
20:49:58 <elliott> 00056386678e[CPU0 ] check_cs(0x0008): not a valid code segment !
20:49:58 <elliott> 00056386678e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x0d)
20:49:58 <elliott> 00056386678e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x08)
20:49:58 <elliott> 00056386678i[CPU0 ] CPU is in protected mode (active)
20:49:58 <elliott> 00056386678i[CPU0 ] CS.d_b = 16 bit
20:49:58 <elliott> 00056386678i[CPU0 ] SS.d_b = 16 bit
20:50:00 <elliott> 00056386678i[CPU0 ] EFER = 0x00000000
20:50:02 <elliott> [...]
20:50:04 <elliott> 00056386678e[CPU0 ] exception(): 3rd (13) exception with no resolution, shutdown status is 00h, resetting
20:50:06 <elliott> meh :/
20:50:34 -!- Mannerisky has left (?).
20:51:37 <olsner> well, hmm, set a breakpoint before the far jump, check what's in the gdt at that time?
20:53:49 <elliott> how do you set... breakpoints... again :DDD
20:53:59 <Phantom_Hoover> WHERE IS AIS WHEN YOU NEED HIM
20:54:09 <elliott> Phantom_Hoover: for what
20:54:22 <olsner> elliott: there's a command for it
20:54:33 <olsner> at least two actually
20:55:16 <oerjan> !echo hi
20:55:48 <EgoBot> hi
20:55:53 <oerjan> !underload http://oerjan.nvg.org/esoteric/underload/minskyconv.ul
20:55:55 <EgoBot> ^^:::
20:56:00 <oerjan> ooh
20:56:21 <elliott> that's
20:56:22 <elliott> is that good?
20:56:38 <oerjan> that's 28 in reverse binary
20:57:08 <olsner> locked in a refridgerated container: "let's sit down on the floor so we freeze to death quicker!" ... stupid tv people
20:57:31 <Gregor> olsner: ... huh?
20:57:36 <oerjan> i may have missed a ^ when i simplified it
20:57:41 <elliott> eval (':':p) (x:xs) = eval p (x:x:xs); eval ('^':p) (x:xs) = eval (x++p) xs; eval ('(':p) xs = eval p' (x:xs) where (p',x) = quote p
20:57:44 <elliott> oerjan: ^
20:58:01 <olsner> Gregor: just being annoyed at stupid ways to fail to keep warm, being shown on tv
20:58:31 <Gregor> olsner: Well, if the floor is stone or metal, that is in fact a very good way to fail to keep warm, as air is a better insulator.
20:58:45 <Gregor> olsner: I'm however "huh"ing at this being on TV at all :P
20:59:03 <olsner> Gregor: good yes, but stupid since failing to keep warm is not the objective :)
20:59:25 <oerjan> elliott: hm?
20:59:33 -!- Wamanuz has quit (Ping timeout: 260 seconds).
20:59:33 <elliott> Gregor: I think it was actually more likely "Let's sit down on the floor so we rest our legs until we can escape"
20:59:49 <elliott> oerjan: implementation of the turing complete Rockbottomload ():^ :-P
20:59:52 <elliott> (given appropriate quote function)
20:59:53 -!- BeholdMyGlory has joined.
20:59:57 <oerjan> heh
21:00:04 <Gregor> olsner: Ahhhh, OK, the way you came across made it sound like dying fast was the objective, which is an odd objective but a very achievable one :P
21:00:21 <elliott> Gregor: They just don't have TIME to die slowly!
21:00:22 <elliott> It's a busy world!
21:00:42 <Gregor> elliott: It's the only way to get out of the rat race!
21:01:19 <elliott> Gregor: They don't want to spend their lives sitting around waiting for the world to catch up with them and expire!
21:01:25 -!- Behold has quit (Ping timeout: 240 seconds).
21:04:07 <oerjan> !underload http://oerjan.nvg.org/esoteric/underload/minskyconv.ul
21:04:09 <EgoBot> ::^::
21:04:23 <oerjan> subtracted one from it
21:04:34 <oerjan> to make it compatible with the original
21:04:59 -!- elliott_ has joined.
21:05:09 <Phantom_Hoover> I hate the way that whenever we're on-topic I always missed the start and am completely out of my depth by the time I notice.
21:05:12 <elliott_> not this again
21:05:26 <elliott_> Phantom_Hoover: this is oerjan, he starts out out of everyone's depth
21:05:34 <elliott_> oerjan: so... ():^ is TC?
21:05:40 <oerjan> YES
21:05:45 <elliott_> oerjan: is that a definitive yes?
21:05:48 <elliott_> can
21:05:50 <elliott_> can i party?
21:05:52 <oerjan> YES
21:05:58 <elliott_> WHOOOOOOOOOOOOOOOO!
21:06:01 -!- Wamanuz has joined.
21:06:07 -!- elliott_ has set topic: ():^ is TURING COMPLETE! EVERYBODY PARTY!!!! http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
21:06:16 <elliott_> \o| \o/ |o/
21:06:16 <myndzi> | | |
21:06:16 <myndzi> |\ /| /<
21:06:21 <elliott_> \o, /o/ |o|
21:06:22 <myndzi> | |
21:06:22 <myndzi> |\ |\
21:06:27 <elliott_> poor guy is just a head.
21:06:42 -!- elliott has quit (Disconnected by services).
21:06:43 <oerjan> i'll just clean up the haskell a bit before uploading
21:06:52 -!- elliott_ has changed nick to elliott.
21:06:54 -!- elliott has quit (Changing host).
21:06:54 -!- elliott has joined.
21:06:58 <olsner> what's ():^ ?
21:07:08 <elliott> just did: /ms send ais523 ():^ is Turing-complete!
21:07:15 <oerjan> olsner: a command subset of underload
21:07:16 <elliott> olsner: underload, with only () and the commands : and ^
21:07:25 <elliott> previously, ():^ was thought to be sub-TC
21:07:28 <olsner> hmm, ok
21:07:32 <oerjan> elliott: /ms ?
21:07:33 <elliott> with :!()^ the smallest known subset
21:07:36 <elliott> oerjan: memoserv
21:07:39 <oerjan> ah
21:07:39 <olsner> reading what the hell underload is, is still on my TODO
21:07:48 <elliott> olsner: it's just a simple esolang
21:07:57 <elliott> oerjan has been reducing it over the past N
21:08:10 <elliott> oerjan: sry for saying ():^ it is of course :()^
21:08:18 -!- elliott has set topic: :()^ is TURING COMPLETE! EVERYBODY PARTY!!!! http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
21:08:25 <elliott> oerjan: ...how can it even be TC...
21:08:29 <olsner> :^() makes for a smiley with a nose
21:08:36 <elliott> it's a quining language without any actual operations :D
21:08:49 <elliott> oerjan: hmm, :()^ would not be TC if ^ ignored the rest of the program, right?
21:08:55 <elliott> i.e. eval ('^':_) (p:xs) = eval p xs
21:09:01 <elliott> I wonder what the minimal subset is assuming that
21:09:25 <oerjan> eek
21:09:30 <oerjan> like pure continuation passing
21:10:20 <oerjan> <elliott> oerjan: sry for saying ():^ it is of course :()^ <-- for some reason i try to follow the order of the commands on the wiki
21:10:32 <elliott> yeah
21:10:37 <elliott> it's nicer that way, despite being completely illogical
21:10:38 <elliott> imo
21:10:40 <elliott> more balanced
21:14:17 <impomatic> Has the Forth been abandoned yet?
21:14:19 <elliott> olsner: are you SURE setting segments is OK post-gdt, pre-protected??
21:14:22 <elliott> impomatic: haha nope
21:14:27 <elliott> still hacking on it, reducing the bytes to get into protected mode
21:14:36 <elliott> it's some 57 right now, i'm trying to shrink it further
21:15:05 <olsner> elliott: SURE, no :) but you are post-protected at that point, you're just still in a 16-bit code segment
21:15:21 <elliott> olsner: um
21:15:22 <elliott> no, i haven't done
21:15:30 <elliott> mov eax, cr0
21:15:30 <elliott> or al, 1
21:15:31 <elliott> mov cr0, eax
21:15:31 <elliott> at this point
21:15:35 <elliott> that comes after
21:15:36 <olsner> and afaik, the segment stuff is decided by protect-enable rather than by the code size of CS
21:15:41 <elliott> see above
21:15:45 <olsner> oh!?
21:15:55 <elliott> and the osdev wiki, at least, tells me that after setting cr0, i MUST MUST MUST jump into a new cs
21:15:58 <elliott> that might be bullshit though
21:16:08 <olsner> you have to at least enable protection before setting the protected-mode segments
21:16:13 <elliott> :D
21:16:29 <elliott> hmm, fixed that obvious error and it still faults
21:16:30 <olsner> but you can do lots of stuff with protect enabled in a 16-bit code segment
21:16:34 <elliott> are you sure you can set cr0 without jumping after?
21:17:03 <elliott> still 57 bytes and now it doesn't work, nice :)
21:18:32 -!- poiuy_qwert has joined.
21:18:38 -!- poiuy_qwert has quit (Changing host).
21:18:38 -!- poiuy_qwert has joined.
21:18:55 <elliott> 21:08:15 <GregorR> Give me a rational reason for the illegalization of consensual bestiality.
21:19:01 <olsner> I rewrote my code to set data segments after setting PE, but before jumping, works fine (it doesn't modify the gdt though)
21:19:26 <olsner> *elaborate foreplay
21:19:31 <elliott> 00042125034i[BIOS ] Booting from 0000:7c00
21:19:31 <elliott> 00042125231e[CPU0 ] check_cs(0x0008): not a valid code segment !
21:19:32 <elliott> 00042125231e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x0d)
21:19:32 <elliott> 00042125231e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x08)
21:19:32 <elliott> 00042125231i[CPU0 ] CPU is in protected mode (active)
21:19:35 <elliott> hmm.
21:19:57 <oerjan> http://oerjan.nvg.org/esoteric/underload/ULDisclaim2.hs
21:20:09 -!- poiuy_qwert has quit (Client Quit).
21:20:41 <elliott> oerjan: god among men
21:22:25 <elliott> oerjan: now put it on the wiki and give ais a heart attack :D
21:22:31 -!- pumpkin has quit (Ping timeout: 276 seconds).
21:22:48 <elliott> olsner: ha
21:22:49 <elliott> changing
21:22:53 <elliott> [rw+0x7c00] to [rw] fixed it
21:22:57 <elliott> because segments make no sense!!
21:23:28 <Gregor> elliott: I was just pointing out how things that we find implicitly offensive are often very difficult to rationalize as offensive *shrugs*
21:23:46 <elliott> Gregor: I don't disagree, but bro, gimme a chance to make a BF Joust reference.
21:24:18 <Gregor> :P
21:24:35 <elliott> 21:14:58 <wildhalcyon> Now, before I start picturing goats mounting gregor, I must go to bed
21:24:54 <elliott> (In my version, the goats are wearing hats; you're welcome)
21:25:07 <elliott> 21:15:22 <GregorR> Just thought I'd put that question out there, since I was asked it today XD
21:25:09 <elliott> 21:15:33 <wildhalcyon> lol... by a goat?
21:25:10 <elliott> 21:15:44 <GregorR> Yes.
21:25:10 <elliott> 21:15:49 <GregorR> And one /hot/ goat if I might add.
21:25:10 <elliott> 21:15:59 <wildhalcyon> no doubt. Most goats are.
21:25:15 <elliott> 2005 sure was wild, huh
21:25:44 <elliott> 21:19:40 <GregorR> (In Romania, bestial porn is legal and sold commonly)
21:25:45 <elliott> 21:19:52 <GregorR> Err, not romania.
21:25:45 <elliott> 21:19:54 <GregorR> Hungary.
21:25:59 -!- copumpkin has joined.
21:26:01 <elliott> 21:20:03 <Robdgreat> You know a lot about this, eh
21:26:01 <elliott> 21:20:09 <Arrogant> Wikipedia
21:26:01 <elliott> 21:20:09 <GregorR> Wikipedia :)
21:26:01 <elliott> x-d
21:26:03 <elliott> ...
21:26:05 <elliott> "x-d"
21:26:06 <elliott> worst smiley.
21:26:13 -!- dbc has quit (Ping timeout: 264 seconds).
21:27:08 * oerjan isn't sure which way is up
21:27:19 <elliott> it's symmetric
21:27:37 <Gregor> It's actually vertical
21:27:41 <oerjan> is that a blind guy with a retarded tongue or a guy with a cap who refuses to speak
21:27:43 <Gregor> The guy got punched in the face.
21:27:45 <Gregor> Really hard.
21:27:47 <elliott> oerjan: both
21:28:22 <elliott> oerjan: Oh wow, the blind-guy-with-retarded-tongue interpretation looks hilarious X-D
21:29:25 -!- cheater- has quit (Ping timeout: 264 seconds).
21:29:31 <elliott> aha
21:29:32 <elliott> 56 bytes!
21:29:36 <elliott> bts word rather than dword in real mode
21:29:58 <olsner> nice
21:30:19 <elliott> 10 00000006 0F0116[2A00] lgdt [gdtr]
21:30:23 <elliott> are you sure "lgdt eax" isn't valid? :D
21:30:26 <elliott> or something.
21:31:11 <elliott> actually it's only 53 bytes, the 3 extra were "x: hlt; jmp x"
21:33:03 <olsner> hmm, I think it probably takes any memory operand
21:33:41 <elliott> well [eax] there is only 52 bytes
21:33:59 <olsner> but why would it be shorter to put the offset in ax before lgdt [ax]?
21:34:20 <elliott> olsner: probably wouldn't be, also, lgdt [ax] isn't valid, it seems to want an operand size qualifier
21:34:23 <elliott> but i can't figure out which one it wants :)
21:34:38 <olsner> I wonder what nasm calls it
21:34:55 <olsner> it's a 48-bit memory operand :)
21:35:42 <elliott> 15:16:35 * {^Raven^} has to go assist an elevted member with stuff
21:35:43 <elliott> 15:16:55 <GregorR> Is that code for gay sex?
21:35:43 <elliott> 15:17:08 <GregorR> It /sounds/ like code for gay sex :P
21:35:44 <elliott> olsner: heh
21:35:52 <elliott> olsner: well a dword is 32
21:35:54 <elliott> and a word is 16
21:36:00 -!- TLUL has joined.
21:36:01 <elliott> so it's a dword + word
21:36:06 <elliott> dword * 2 = qword, let's say
21:36:22 <elliott> so what's between double and quadruple...
21:36:30 <elliott> wait
21:36:32 <elliott> it's just 3*word
21:36:33 <elliott> olsner: tword!
21:36:37 <olsner> worked?
21:36:44 <elliott> wow
21:36:47 <elliott> it actually accepts tword
21:36:49 <elliott> still errors out mind
21:36:53 <elliott> but it doesn't give any invalid keyword massive
21:36:54 <elliott> message
21:36:58 <elliott> like it does with "tworsdjgdfg"
21:37:07 <elliott> i am as genius as the nasm creator!
21:37:27 <elliott> Almost any x87 floating-point instruction that references memory must use one of the prefixes DWORD, QWORD or TWORD to indicate what size of memory operand it refers to.
21:37:37 <elliott> i guess tword is that :D
21:37:54 <olsner> I guess it's an octaword
21:38:21 <elliott> else { //Instruction == LGDT
21:38:21 <elliott> if(OperandSize == 16) {
21:38:21 <elliott> GDT.Limit = Source[0..15];
21:38:21 <elliott> GDTR.Base = Source[16..47] & 0xFFFFFF;
21:38:21 <elliott> }
21:38:22 <elliott> else { //OperandSize == 32
21:38:23 <elliott> GDTR.Limit = Source[0..15];
21:38:26 <elliott> GDTR.Base = Source[16..47];
21:38:29 <elliott> }
21:38:30 <elliott> }
21:38:31 <elliott> Flags affected
21:38:34 <elliott> None.
21:38:35 <elliott> huh
21:38:36 <fizzie> olsner: No, that's OWORD, I think. My guess would be a ten-word 80-bit x87 float.
21:38:37 <elliott> (from http://siyobik.info/index.php?module=x86&id=156)
21:38:45 <elliott> "If operand-size attribute is 32 bits, a 16-bit limit (lower 2 bytes of the 6-byte data operand) and a 32-bit base address (upper 4 bytes of the data operand) are loaded into the register. If the operand-size attribute is 16 bits, a 16-bit limit (lower 2 bytes) and a 24-bit base address (third, fourth, and fifth byte) are loaded. Here, the high-order byte of the operand is not used and the high-order byte of the base address in the GDTR or IDTR is
21:38:46 <olsner> fizzie: aah
21:38:48 <elliott> with zeros."
21:38:50 <elliott> wtf :D
21:38:52 <elliott> wtf is that.
21:39:15 <fizzie> "BYTE, WORD, DWORD, QWORD, TWORD, OWORD or YWORD" seems to be the nasm size-specifier list.
21:39:31 <elliott> Gregor: PUT HANGMAN BACK IN EGOBOT.
21:39:38 <elliott> fizzie: but, but, what about 3 words?!
21:40:23 <fizzie> I don't think they have a word for that; anyway, the lgdt mem16:32 is pretty weird.
21:40:58 <olsner> hmm, ax can't be used as an offset in real mode, obviously
21:41:32 -!- cheater- has joined.
21:41:39 <olsner> elliott: do you, by any chance, get "invalid effective address" when trying to lgdt [ax]?
21:42:36 <olsner> lgdt doesn't take an operand size since it's, you know, special
21:42:52 <elliott> no
21:42:56 <elliott> i get an operand size mismatch
21:43:04 <elliott> wait
21:43:05 <elliott> no
21:43:06 <elliott> olsner: yes, indeed
21:43:10 <elliott> invalid effective addesresress
21:43:26 <elliott> so wait, what's this smaller operand size for lgdt, does it let me save bytes :D
21:44:19 <olsner> you have to use one of the registers that are valid offsets (bx, bp, si, di), at least until you reach protected mode
21:44:22 <fizzie> As far as I can decode from the manual, it will have the 48-bit memory address always; the "operand-size" just refers to 16/32-bit mode. (You can see how it talks about 6 bytes in both the 32-bit and 16-bit mode descriptions.)
21:44:41 <elliott> fizzie: you know that fast befunge-93 impl you have?
21:44:50 <fizzie> "In legacy and compatibility mode, the pseudo-descriptor is 6 bytes; in 64-bit mode, it is 10 bytes."
21:45:02 <olsner> if the sixth byte is ignored in 16-bit mode, that means you can use it
21:45:03 <fizzie> ff3, yes.
21:45:13 <elliott> fizzie: You should store the fungespace array such that up, down, left, and right of any cell is a constant away from it. (Or at least an approximation of that.)
21:45:26 <elliott> Maybe one of them space-filling fractals might be useful? I hear those do that kind of thing quite well.
21:45:29 <elliott> Or: do you already?
21:45:36 <elliott> olsner: nice, how do i use the 16-bit mode :P
21:45:41 <elliott> oh right
21:45:42 <elliott> i see
21:45:43 <olsner> elliott: you're in it, I think
21:45:47 <elliott> <olsner> you have to use one of the registers that are valid offsets (bx, bp, si, di), at least until you reach protected mode
21:45:47 <elliott> ah
21:45:59 <elliott> awesome, 55 instead of 56
21:46:03 <elliott> with lgdt [bp]
21:46:04 <olsner> but that should be *reach the 32-bit code segment
21:46:11 <elliott> 54 with di!
21:46:31 <fizzie> Well, yes, the offset is always constant even with a regular 2D grid; I mean, it's just +1/-1/+width/-width.
21:46:32 <olsner> yeah, don't use bp with a 0 offset, it requires an offset byte anyway
21:47:01 <elliott> fizzie: Err, right. I meant, + small constant.
21:47:08 <elliott> fizzie: Because, you know, locality, and.
21:47:20 <elliott> Look, FRACTALS.
21:47:32 * oerjan realizes that his last algorithm can remove ! from _any_ subset containing :()^
21:48:02 <oerjan> because every single instruction is cancelable
21:48:11 <oerjan> *a version of his last algorithm
21:48:25 <elliott> oerjan: :D
21:48:33 <elliott> oerjan: now prove )^ complete
21:48:37 <elliott> it doesn't have :, or (
21:48:42 <oerjan> SHOULD BE SIMPLE
21:50:04 <oerjan> mind you the problem of printing remains (only cancelable strings can be used freely for printing)
21:50:45 <Phantom_Hoover> http://i.imgur.com/gccM1.jpg
21:51:07 <elliott> oerjan used to come in as oerjanj?
21:51:10 <elliott> that's just wrong
21:51:21 <elliott> http://i.imgur.com/gccM1.jpg <-- lmao
21:51:35 <olsner> in which elliott links to the same picture again
21:51:40 <elliott> someone space out some large windows icons to look exactly like that and set a wooden background :)
21:51:44 <elliott> olsner: BETTER THAN QUOTING HIS ENTRIE LINE
21:51:48 <elliott> yes, entrie line
21:52:06 <elliott> hmm
21:52:10 <elliott> where is the stack by default in x86?
21:52:13 <elliott> or is there not one :)
21:52:26 <fizzie> olsner: Also, it just says "if the operand size is 16 bits, the high-order byte -- is not used"; it doesn't say you need to be in 16-bit mode. So I think you could just stick a 66h prefix in front of the LGDT (in NASM, "O16 LGDT ...") to use that mode. But then you would be paying the single-byte prefix in order to use the shorter 5-byte descriptor. (So I guess being in proper 16-bit mode is the only way you can actually benefit from that.)
21:52:53 <olsner> elliott: I think you left it pointing some random place
21:53:04 <elliott> fizzie: I am in real mode
21:53:06 <elliott> except with protected mode on
21:53:09 <olsner> it's where you point the esp register in the ss segment
21:53:17 <elliott> but 16-bit code, anyway
21:53:21 <elliott> olsner: right. so i should set that up later
21:53:25 <olsner> you're in protected mode in a 16-bit code segment :)
21:53:29 <elliott> yep!
21:53:33 <elliott> the best mode.
21:53:45 <oerjan> <elliott> oerjan used to come in as oerjanj? <-- huh? i cannot recall that
21:53:46 <elliott> olsner: (I'll have two stacks, data and return, and just swap esp to be those)
21:53:49 <fizzie> Okay, that too.
21:53:55 <olsner> elliott: if you want to use the stack :) but you probably do, because stack operations are short and sweet
21:53:58 <elliott> /home/elliott/esotericlogs/06.09.27:08:35:31 --- join: oerjanj (n=oerjan@hagbart.nvg.ntnu.no) joined #esoteric
21:53:58 <elliott> /home/elliott/esotericlogs/06.09.27:10:06:35 <oerjanj> hello
21:54:00 <elliott> oerjan: and far more
21:54:07 <elliott> <oerjanj> hi razor-x, did jix ever get hold of you? from reading the logs you seemed to behave like Superman and Clark Kent...
21:54:09 <elliott> wat
21:54:20 <olsner> iirc all the push/pop of GPR:s are single byte, for example
21:54:21 <Phantom_Hoover> elliott, http://elliottcable.name/resume.xhtml
21:54:25 <Phantom_Hoover> I hate him already.
21:54:30 * oerjan realizes his previous statement was wrong, a and * cannot be implemented without at least each other
21:54:38 <elliott> Phantom_Hoover: do not look in to that man, he is pure horrible
21:54:51 <elliott> i would pulverise his skull given the chance
21:55:12 <elliott> olsner: right, although i dunno how long
21:55:17 <elliott> xchg esp, foo
21:55:21 <elliott> pop eax
21:55:23 <elliott> xchg esp, foo
21:55:23 <elliott> is
21:55:27 <elliott> compared to the "manual" way
21:55:30 <elliott> (that would be for the return stack)
21:55:56 <fizzie> olsner: You can use either esi or edi for an almost-stack, by setting the DF properly and then using either LODSD or STOSD to do pop/push. (And then explicit mov/add/sub/lea/whatever for the other, missing operation.)
21:56:09 <oerjan> elliott: hm maybe it was before i discovered i could get the nick released
21:56:31 <elliott> fizzie: what more operations on a stack are there than push and pop :)
21:56:46 <elliott> <fizzie> olsner: Also, it just says "if the operand size is 16 bits, the high-order byte -- is not used"; it doesn't say you need to be in 16-bit mode. So I think you could just stick a 66h prefix in front of the LGDT (in NASM, "O16 LGDT ...") to use that mode. But then you would be paying the single-byte prefix in order to use the shorter 5-byte descriptor. (So I guess being in proper 16-bit mode is the only way you can actually benefit from that.
21:56:47 <elliott> so
21:56:51 <elliott> sgp:dw 0xffff
21:56:52 <elliott> dw 0
21:56:52 <elliott> db 0
21:56:52 <elliott> rw:db 10010010b
21:56:53 <elliott> db 0xcf
21:56:55 <elliott> db 0
21:56:57 <elliott> which part isn't used?
21:56:59 <elliott> the last byte?
21:57:01 <elliott> the first? :P
21:58:16 <olsner> I guess you want to use the "normal" stack for control flow since there are call/ret instructions using it, and the fake stack for data?
21:58:26 <fizzie> elliott: No, I mean, you can get either pop (by using esi and lodsd) or push (by using edi and stosd), not both at the same time, since lodsd/stosd use different registers (and only do post-increment/decrement anyway; not pre-).
21:58:38 <elliott> olsner: no
21:58:41 <elliott> olsner: forth doesn't use call/ret
21:58:46 <elliott> threaded code, remember? :)
21:58:53 <olsner> or switch and use native stack for everything, but switching may be costly
21:58:54 <elliott> it uses NEXT
21:59:02 <elliott> which is just "pop from return stack, goto" admittedly a lot like ret
21:59:10 <fizzie> On ARM you could just use any general-purpose register for stackery. (Except that I think in THUMB code quite many of the post-increment/pre-decrement ones are hardcoded to only use the one that's the "usual" stack pointer.)
21:59:11 <elliott> well
21:59:12 <elliott> i guess it is ret
21:59:13 <olsner> yes, so NEXT might be RET, if the stack is set up to support that
21:59:15 <elliott> but OTOH
21:59:20 <elliott> hmm
21:59:21 <elliott> well
21:59:24 <olsner> (which was my point)
21:59:26 <elliott> i could start every primitive with
21:59:30 <elliott> xchg esp, datastack
21:59:31 <elliott> ...
21:59:34 <elliott> xchg esp, datastack
21:59:34 <elliott> ret
21:59:35 <elliott> I suppose
21:59:38 <elliott> that sounds like a good idea. anyway.
22:00:11 <olsner> the byte that's not used: the last one
22:00:32 <elliott> right :P
22:00:51 <elliott> so if i'm in "bits 16", nasm will automatically be calling that, right?
22:00:52 <elliott> no prefix required
22:00:56 <elliott> or not?
22:01:41 <olsner> since you're in a code segment with a 16-bit operand size :) bits 16 is just a hint for nasm to generate code that matches the mode you're in
22:01:59 <olsner> i.e. "yes"
22:02:09 <elliott> so... 8 bytes gdt, 6 bytes gdtr, so 14 bytes total for gdt stuff... and the rest is code
22:02:16 <elliott> so 14 bytes gdt, 40 bytes code
22:02:19 <elliott> not bad I guess
22:02:22 <fizzie> elliott: "xchg eax, esp" is a byte shorter than "xchg [any other register], esp"... but of course eax is often required for many things -- and included in other shorter opcodes -- so you might not want to keep your data stack.
22:02:26 <elliott> oh wait
22:02:30 <elliott> it's actually 51 without the inf loop :D
22:02:38 <elliott> so 37 bytes of code to get into protected mode
22:02:42 * Phantom_Hoover → sleep
22:02:45 -!- Phantom_Hoover has quit (Quit: Leaving).
22:02:51 <elliott> fizzie: Yeah, eax seems to useful to waste like that, since I'd be clobbering it all the time.
22:03:52 <elliott> hmm
22:04:03 <elliott> can i load cr0 into al directly instead of wasting all the time putting it in eax? ;D
22:04:12 <elliott> NOPE
22:04:23 <olsner> you could maybe use (e.g.) ebp for the data stack, and just address and decrement it instead of pushing and popping
22:04:37 <elliott> <fizzie> olsner: You can use either esi or edi for an almost-stack, by setting the DF properly and then using either LODSD or STOSD to do pop/push. (And then explicit mov/add/sub/lea/whatever for the other, missing operation.)
22:04:39 <elliott> that's what the man said :P
22:04:51 <olsner> or is it very common to push and pop single items?
22:05:17 <elliott> olsner: well every instruction pops something or pushes something
22:05:19 <elliott> and most do both...
22:05:21 <elliott> well
22:05:25 <elliott> more pop than push
22:05:26 <elliott> but still
22:05:29 <fizzie> If it's a forth and you don't do any tricks, yes, quite many primitives do just single items.
22:06:17 <elliott> indeed, chuck moore hates 90% of words that pop more than one thing i bet :)
22:06:22 <elliott> now for the unfun part
22:06:25 <elliott> keyboard input without interrupts
22:06:29 <fizzie> Of course with zero-stack-effect primitives, you don't need to alter the stack pointer, you can just [blah] it if it points to the topmost real existing element.
22:06:29 <elliott> is it even _possible_? :)
22:06:52 <olsner> you could save, like, 4 bytes on not switching stacks - but of course lose some from not having the stack primitives accessible
22:06:57 <elliott> IS IT EVEN POSSIBLE I ASK YOU
22:07:05 <fizzie> If you poll often enough, sure, I don't see why not.
22:07:15 <olsner> elliott: bah, stop asking and prove it possible
22:07:20 <elliott> that's what i'm doing olsner :P
22:07:33 <olsner> also, I have no idea how to talk to keyboards without a BIOS
22:07:37 <elliott> fizzie: The interpreter loop as I'm currently planning it is just going to be "Read word from keyboard terminated by space, feed it to the interpreter, repeat".
22:07:47 <elliott> So it's pretty much completely hung on keyboard input when it's not interpreting.
22:09:25 <fizzie> olsner: If I recall correctly, the keyboard controller has a single-byte "buffer" register which you can read whenever; and you can poll the status register for the "is there input in the buffer" bit.
22:10:01 <fizzie> http://www.computer-engineering.org/ps2keyboard/ and especially the "kbRead" code snippet seems reasonable to me.
22:11:14 <olsner> oh, that looks very reasonable
22:11:52 <elliott> indeed
22:12:05 <fizzie> You even get key-repeat for free, since it's done by the keyboard.
22:12:33 <elliott> heh
22:13:49 <pikhq_> And the key-repeat rate is set by your polling rate. Awesome.
22:13:55 <fizzie> No, it's not.
22:14:24 <fizzie> It's set by the "Set Typematic Rate/Delay" command.
22:14:30 <pikhq_> Aaaw.
22:21:01 -!- caramel1991 has joined.
22:21:35 <fizzie> In that sense it's a bit limited; I remember the Sun/Sparc keyboard was a lot more flexible w.r.t. repeat delays and rates. (The x86 one has just two bits for the delay -- 0.25s, 0.5s, 0.75s, 1s -- and five for the rate -- 2 ... 30 chars/second.)
22:22:09 <olsner> configurable key repeat is over-rated
22:22:15 -!- caramel1991 has left (?).
22:22:57 <pikhq_> Turing-complete keyboards are over-rated.
22:28:39 <fizzie> pikhq_: Quote from a computer retailer, about a gamer-oriented keyboard: "Integrated turbocore and 2MB built-in memory".
22:28:49 <fizzie> (They do not explain what a "turbocore" does in a keyboard.)
22:29:28 <olsner> accelerate your typing, obviously
22:29:30 <fizzie> (Also: keyboards with gold-plated connectors.)
22:31:04 -!- augur has quit (Remote host closed the connection).
22:32:33 <cheater-> what about gold-plated clackers
22:32:41 <cheater-> those are useful aren't they
22:32:42 <olsner> elliott: so, you running any forth code yet?
22:32:52 <cheater-> i mean you can only expect your model m to last so long
22:33:03 <cheater-> gold makes terminals go longer i guess
22:33:11 <elliott> olsner: not yet
22:33:15 <elliott> busy showing gregor around autismland
22:33:23 <cheater-> but i guess due to mechanical properties silver is better
22:33:33 <cheater-> lol@autism
22:35:23 -!- Mathnerd314 has quit (Ping timeout: 252 seconds).
22:36:41 -!- pumpkin has joined.
22:37:36 -!- copumpkin has quit (Ping timeout: 250 seconds).
22:44:06 -!- Sgeo has joined.
22:46:42 -!- dbc has joined.
22:49:39 -!- BeholdMyGlory has quit (Remote host closed the connection).
22:49:53 -!- BeholdMyGlory has joined.
22:51:19 -!- Mathnerd314 has joined.
22:53:12 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
22:53:26 -!- BeholdMyGlory has joined.
22:56:51 -!- augur has joined.
23:00:25 <pikhq_> elliott: ?
23:00:33 <elliott> ?
23:00:38 <pikhq_> 16:08 < elliott> busy showing gregor around autismland
23:00:41 <pikhq_> ?
23:00:43 <elliott> Minecraft.
23:00:47 <pikhq_> Aaah.
23:01:09 <pikhq_> cheater-: Well, gold *plating* connectors at least has a vaguely legitimate use.
23:01:30 <pikhq_> Though I doubt corrosion is a big problem on what's a few-bits-per-second bus.
23:06:25 <cheater-> yes
23:06:39 <cheater-> even parts which are 20 years old will still work.
23:06:59 <cheater-> i think it's up to 200 hz with overdrive by the way
23:07:14 <cheater-> remember setting my ps2 clock to crazy rates like that in windows 98
23:20:16 -!- copumpkin has joined.
23:20:49 <elliott> fizzie: olsner: Hey, will "hlt" still do the right thing if interrupts are off?
23:20:55 <elliott> Like, stop the keyboard-polling loop be a CPU-eater?
23:23:43 -!- pumpkin has quit (Ping timeout: 240 seconds).
23:25:44 <fizzie> Yes, in the sense that it will halt and not wake up again. (Well, except if you manage to get a non-maskable interrupt -- or RESET or INIT -- from your hardware.)
23:25:54 <fizzie> No, in the sense that it'd be very useful.
23:26:01 <elliott> fizzie: Darne.
23:26:17 <fizzie> "Before executing a HLT instruction, hardware interrupts should be enabled. If rFLAGS.IF = 0, the system will remain in a HALT state until an NMI, SMI, RESET, or INIT occurs."
23:26:33 <fizzie> I also think I'll sleeb.
23:26:33 <elliott> Lame.
23:26:50 <elliott> Anyhow, that kbRead thing returns scancodes, right?
23:27:01 <elliott> fizzie: Can you answer in -minecraft though? :P
23:27:22 -!- Behold has joined.
23:28:09 <elliott> Erm, what's a good thing to crash the processor again?
23:28:39 -!- BeholdMyGlory has quit (Read error: Operation timed out).
23:32:51 <elliott> olsner: Yay, turns out all the things I thought were successful workingnesses... were just me forgetting to readd the signature
23:32:55 <elliott> CODE IS SO BUGGY WHOOP WHOOP
23:33:16 <pikhq_> lidt 0; int PICK_A_NUMBER
23:33:19 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:33:22 <elliott> pikhq_: wat
23:33:39 <elliott> pikhq_: You mean for using int for keyboard stuff?
23:33:48 <elliott> Yah, but then I'd have to have interrupt handlers, and I'm trying to stuff this into *512 bytes*.
23:33:49 <pikhq_> elliott: No, for crashing the processor.
23:33:50 <elliott> I'd rather eat CPU.
23:33:52 <elliott> Ah :P
23:34:02 <pikhq_> elliott: Sets the interrupt descriptor table to 0 and then tries to do an interrupt.
23:34:07 <pikhq_> Thereby causing a triple fault.
23:34:17 <elliott> 00056166961e[CPU0 ] fetch_raw_descriptor: GDT: index (f) 1 > limit (e)
23:34:17 <elliott> 00056166961e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x0d)
23:34:17 <elliott> 00056166961e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x08)
23:34:17 <elliott> 00056166961i[CPU0 ] CPU is in protected mode (active)
23:34:24 <elliott> olsner: w a t
23:34:51 <elliott> Ohhh, wait
23:34:54 <elliott> lol
23:34:55 <pikhq_> Oh, and on qemu you'll get a core dump.
23:34:59 <elliott> no wait i do it right
23:35:00 <elliott> huh
23:39:53 <elliott> pikhq_: <elliott> 00056166961e[CPU0 ] fetch_raw_descriptor: GDT: index (f) 1 > limit (e)
23:39:57 <elliott> what does it even meaaaaaaaaan
23:40:06 <elliott> I guess I'm trying to use some totally-invalid segment
23:40:08 <elliott> But but I'm nooot
23:47:16 -!- Mannerisky has joined.
23:52:24 -!- Wamanuz has quit (Remote host closed the connection).
23:53:55 -!- Wamanuz has joined.
23:56:42 -!- copumpkin has joined.
23:57:20 <elliott> aha
23:57:26 <elliott> olsner: your fancy plan doesn't work at all
23:57:40 <elliott> as soon as i do
23:57:43 <elliott> mov ds, ax
23:57:44 <elliott> it faults
23:57:51 <elliott> /after/ loading the gdt and protecting mysel
23:57:52 <elliott> f
23:58:00 <elliott> olsner: I bet you have to be in a 32-bit code segment to set segments.
←2011-02-28 2011-03-01 2011-03-02→ ↑2011 ↑all