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