←2009-08-17 2009-08-18 2009-08-19→ ↑2009 ↑all
00:05:12 <evenant> lol.
00:05:22 <evenant> like verizonsuckssucks?
00:05:26 <evenant> i wonder if that exists/still exists
00:08:40 <oklokok> i like many of the comics he lists as examples of crappy humor
00:08:43 <oklokok> :D
00:09:09 <oklokok> weird, since there's tons of crappy stuff
00:09:16 <oklokok> maybe i'm just weird..?
00:09:24 <oklokok> HARD TO SAY REALLY
00:10:48 <ehird> GregorR: xkcdsucks looks awesome
00:11:21 <oklokok> actually some of them are among the really crappy ones
00:11:25 <GregorR> There are a few good points but it's mostly just whiny and neurotic.
00:14:26 -!- augur has quit (Read error: 54 (Connection reset by peer)).
00:14:26 -!- FireFly has quit ("Later").
00:15:40 <oklokok> Carl said...
00:15:41 <oklokok> I like licking the hooker's ass.
00:15:41 <oklokok> Carl said...
00:15:41 <oklokok> Woah, wait a second, I didn't mean to type that here...ha ha, IGNORE ME PEOPLE.
00:15:47 -!- ehird has left (?).
00:15:50 -!- ehird has joined.
00:15:51 -!- ehird has left (?).
00:15:53 <oklokok> xkcdsucks has kinda bad humor as well.
00:15:54 -!- ehird has joined.
00:15:55 <ehird> oops
00:24:33 <oklokok> also why refer to the alt text if you're going to replace it with your own, and not supply the original
00:24:51 <oklokok> especially as the picture doesn't link to xkcd
00:25:07 <oklokok> god xkcdsucks sucks
00:25:17 <ehird> dude oklokok
00:25:19 <ehird> it links to xkcd.
00:28:20 -!- ehird has quit (Remote closed the connection).
00:28:35 -!- ehird has joined.
00:29:37 <oklokok> WHAT
00:30:17 <oklokok> well i need to leave something for xkcdsuckssucks sucks
00:30:45 <ehird> xD
00:30:52 <oklokok> http://1.bp.blogspot.com/_7sRArBiqnC4/ScMxbkOV7JI/AAAAAAAAASE/ildqFvzywaI/s1600-h/558+reworded.jpg <<< actually it links to this completely different thing
00:31:05 <oklokok> but i'm just reading a random post on the site
00:32:41 <oklokok> hmm guest posters
00:32:46 <oklokok> maybe that's why
00:43:02 <oklokok> okay this is a horrible site
00:49:08 <oklokok> okay reading the comments of 519 did make me kinda furious, bunch of whining kids
00:49:32 <oklokok> hmm, i see i didn't paste the xkcdsucks about 519
00:49:39 <oklokok> well. this was about that.
01:13:30 -!- jix has joined.
01:50:02 <ehird> oklokok: also you suck, it's totally awesome
02:01:17 -!- Sneezle has quit ("good night, have fun o/").
02:06:46 -!- jix has quit (Read error: 113 (No route to host)).
02:08:29 <oklokok> the one about 519 was stupid, the one about 558 was mostly justified, that's all i know, and that's enough, and you suck and all that god i'm tired.
02:08:39 <oklokok> sleap ~>
02:15:01 -!- Asztal has quit (Read error: 60 (Operation timed out)).
02:42:19 <ehird> http://esolangs.org/w/index.php?title=Almost_impossible_to_learn_and_apply_esoteric_programming_language&curid=2932&diff=15213&oldid=15203
02:42:20 <ehird> he's serious
02:44:23 <pikhq> That sounds like an exceptionally complex board/card/gambling game.
02:46:23 <ehird> or, bullshit.
02:46:33 <pikhq> And I think the main problem with that is the completely incomplete description. Unlike Minimal, which was bullshit.
02:47:14 <GregorR> http://www.wolframalpha.com/input/?i=1+box+cheerios <-- look at the input interpretation
02:52:45 <GregorR> http://www.wolframalpha.com/input/?i=i+pounds+of+beef <-- ha
02:56:29 <pikhq> IMAGINARY BEEF
02:56:55 <Slereah> WHERE'S THE BEEF
02:58:02 <pikhq> http://www.wolframalpha.com/input/?i=i+grams+of+cake THE CAKE IS A LIE
02:58:39 <Slereah> I wonder if it would work with octonions and shi
03:00:09 -!- Robdgreat has quit ("leaving").
03:00:12 <ehird> Cheerios amount 1 box of herring WJW
03:00:37 <pikhq> What Jesus Would?
03:00:45 <ehird> Wow Just Wow.
03:00:57 <pikhq> What Jesus would do that shit? :P
03:03:25 <GregorR> `wolfram 1 box of babies
03:03:36 <HackEgo> 1 box of babies \ \ Input interpretation: \ \ 1 box child \ Result: \ \ 1 box children \ \ Generated by Wolfram|Alpha (www.wolframalpha.com) on August 17, 2009 from Champaign, IL. © Wolfram Alpha LLC—A Wolfram Research Company \ \ 1 \ \
03:03:42 <GregorR> ONE BOX CHILDREN
03:08:42 <ehird> :D
03:08:51 <ehird> `wolfram 1 laptop per child
03:08:57 <HackEgo> $Failed \ \
03:09:13 <GregorR> `wolfram e i e i o
03:09:20 <HackEgo> eieio \ \ Input: \ \ o \ Exact result: 2 \ \ o \ \ Plot: 0.15 0.10 0.05 0.02 0.01 0.05 0.10 0.15 0.01 0.02 o from 0.02 to 0.02 \ \ Generated by Wolfram|Alpha (www.wolframalpha.com) on August 17, 2009 from Champaign, IL. © Wolfram Alpha LLC—A Wolfram Research Company \ \ 1 \ \
03:14:43 -!- pikhq has quit ("NEW KERNEL ZOMG").
03:38:19 -!- pikhq has joined.
03:38:26 -!- oerjan has joined.
03:39:09 <oerjan> who the heck is sinnax cossack
03:41:05 <oerjan> <ehird> oerjan should sue him. <-- :D
03:41:16 <GregorR> `wolfram satan
03:41:24 <HackEgo> satan \ \ Input interpretation: \ \ Satan animals \ Scientific name: \ \ Satan genus \ Taxonomy: \ \ kingdom phylum class order family genus \ \ Animalia animals Chordata chordates Actinopterygii ray finned fishes Siluriformes catfishes Ictaluridae north american freshwater catfishes Satan \ \ Other members of family
03:41:26 <ehird> oerjan: Sinnax Cossack's, say it ten times fast <GregorR> WITH THE WRONG PRONUNCIATION
03:41:42 <GregorR> Thank you for adding that.
03:42:06 <oerjan> ah.
03:42:34 -!- pikhq has quit (Client Quit).
03:42:35 -!- GregorR has set topic: Sinnex Cohsek's Mathematical Emporium | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
03:43:02 <oerjan> actually i thought the cossack was a nice touch
03:43:08 -!- pikhq has joined.
03:43:19 -!- ehird has set topic: Sinnax Cossack's Mathematical Emporium | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
03:43:20 <ehird> :|
03:43:22 <ehird> oerjan: howso
03:43:29 -!- GregorR has set topic: Sinnex Cossack's Mathematical Emporium | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
03:43:35 <ehird> as opposed to like Cossax
03:43:36 <pikhq> Hrm.
03:43:37 -!- ehird has set topic: Sinnax Cossack's Mathematical Emporium | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
03:43:39 <oerjan> it exists
03:43:46 <GregorR> Because it's an actual name? My problem with "Cossack" is the "Coss", not the "ack"
03:44:04 <ehird> Look, it's a lame pun. Replace it entirely or leave it :P
03:45:06 <oerjan> you just imagine him riding in, savagely mathematicizing...
03:45:52 <ehird> :D
03:46:05 <ehird> I was imagining it as an old lady, actually. Lipstick. Looking into a crystal ball.
03:46:11 -!- GregorR has set topic: The Magnificent Mormo's House of Undies | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
03:46:22 <ehird> Hand-written letters outside, with drapes: "SINNAX COSSACK'S MATHEMATICAL EMPORIUM & COMPANY"
03:46:40 -!- ehird has set topic: The Magnificent Mormon's House of Undies | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
03:46:58 <GregorR> Erm
03:47:09 <GregorR> ehird: You broke it
03:47:17 <ehird> Define broke; it
03:47:18 <GregorR> The Magnificent Mormo is the leader of the Mormon religion.
03:47:34 -!- GregorR has set topic: The Magnificent Mormo's House of Undies | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
03:47:42 <oerjan> Momo, from the Michael Ende book...
03:48:28 <oerjan> Mormor, which means maternal grandmother in norwegian (and probably swedish)
03:48:53 <GregorR> `translatefromto sv en mormor
03:48:55 <HackEgo> grandmother
03:49:03 <GregorR> Well played sir.
03:49:48 <oerjan> the swedish are even bigger than us on composing names of relatives from parts, using it for uncles and aunts as well
03:50:11 <oerjan> `translatefromto sv en farbror
03:50:13 <HackEgo> Uncle
03:50:38 <GregorR> Hah, that even sounds like "father brother" :P
03:50:59 <oerjan> which of course it is
03:51:28 <GregorR> `translatefromto sv en morbror
03:51:30 <HackEgo> uncle
03:51:45 <oerjan> `translatefromto sv en brorson
03:51:46 <HackEgo> nephew
03:51:58 <ehird> `translatefromto sv en brorbror
03:52:00 <HackEgo> brother brother
03:52:02 <GregorR> `translatefromto sv en farfarbrorsonson
03:52:04 <HackEgo> grandfather&#39;s brother&#39;s grandson
03:52:04 <ehird> `translatefromto sv en Oh, bror!
03:52:06 <HackEgo> Oh, brother!
03:52:09 <ehird> Oh, bother.
03:52:22 <ehird> `translatefromto sv en brorsonfarsonbrorfarbrorson
03:52:24 <HackEgo> brorsonfarsonbrorfarbrorson
03:52:27 <ehird> D'aww
03:52:30 <ehird> Farson.
03:52:36 <ehird> F- arson!
03:52:39 <ehird> Arson is for lameos.
03:52:42 <oerjan> XD
03:53:01 <oerjan> oh wait not aunts
03:53:10 <oerjan> `translatefromto en sv aunt
03:53:11 <GregorR> `translatefromto sv en morson
03:53:12 <HackEgo> moster
03:53:13 <HackEgo> Morson
03:53:25 <GregorR> My aunt is a MO[N]STER
03:53:27 <ehird> `translatefromto sv en mosterbrorsonfarson
03:53:29 <HackEgo> mosterbrorsonfarson
03:53:33 <ehird> `translatefromto sv en mosterbror
03:53:34 <HackEgo> aunt brother
03:53:37 <oerjan> that's mother's sister btw
03:53:38 <ehird> `translatefromto sv en mosterbrorfarson
03:53:39 <HackEgo> mosterbrorfarson
03:53:47 <ehird> oh fuck you :P
03:54:04 <ehird> `translatefromto sv en mormormormormormorbrorson
03:54:05 <HackEgo> grandmother grandmother grandmother nephew
03:54:10 <oerjan> it doesn't make sense to have two siblings in a row, silly
03:54:26 <GregorR> `translatefromto sv en mormo
03:54:28 <HackEgo> mormo
03:54:31 <GregorR> :(
03:54:35 <oerjan> well didn't in the old days, anyway
03:54:47 <ehird> oerjan: sure it does!
03:55:10 <oerjan> well it's half sibling, naturally
03:55:52 <oerjan> `translatefromto en sv cousin
03:55:54 <HackEgo> kusin
03:56:22 <oerjan> that may only apply to females, it does in norwegian at least
03:56:56 <GregorR> Situation:
03:57:11 <ehird> Issue
03:57:13 <ehird> SITUATION: ISSUE
03:57:19 <ehird> THE NEW MOVIE ABOUT A THING THAT NEEDS RESOLVING
03:57:37 <oerjan> SITUATION: MAJOR ISSUE
03:57:46 <GregorR> Your parents get divorced, you go with your mother, who remarries. They have one child, your half-sister. Your mother dies and you stay with your step-father, who later remarries, and they have one child, your half-sister's half-sister. The question:
03:57:49 <oerjan> about a major with trouble
03:57:49 <GregorR> Hitting that? OK or not OK?
03:58:04 <ehird> Incest is ALWAYS okay!
03:58:07 <ehird> ...or, you know, not.
03:58:21 <GregorR> It's not incest, you have no blood relation :P
03:58:25 <ehird> oerjan: the third movie is SITUATION: COLONEL ISSUE
03:58:34 <ehird> GregorR: It's stepcest.
03:58:54 <ehird> GregorR: Also, dude, this isn't the channel for personal advice.
03:59:01 <GregorR> X-D
03:59:11 <pikhq> Hawt
03:59:21 <ehird> Personal advice is SEXY
03:59:22 <oerjan> so, GregorR, you are from west virginia?
03:59:37 <oerjan> or wait, then you wouldn't be asking.
03:59:40 <GregorR> oerjan: There are so many better states to make that joke about :P
03:59:52 <ehird> oerjan: xD
03:59:55 <GregorR> Gohgah, Alabama
04:00:00 <oerjan> well but i haven't heard about those
04:00:13 <oerjan> gohgah?
04:00:26 <GregorR> Georgia :P
04:00:27 <oerjan> sweet gohgah?
04:00:58 <oerjan> i don't think that first g seemed comfortable
04:01:07 <GregorR> Johjah
04:01:50 <oerjan> GregorR: i understand the natural incest taboo is against people you grew up with, or something like that, so probably _not_ ok
04:04:36 <ehird> taboos are so boring.
04:04:51 <oerjan> at least the recent (german?) case about brother and sister who refused not to get children were about two people separated at birth, then rejoined
04:05:03 <oerjan> s/taboo/instinct/, i think
04:05:16 <oerjan> taboo's are cultural, this was not so much
04:05:18 <ehird> if that was true nobody would like anyone they knew in school.
04:05:22 <oerjan> *-'
04:05:42 <ehird> like 90% of all taboos are ingrained socially, i'd say.
04:06:33 <oerjan> this is, as always, a vague recall.
04:08:41 -!- Pthing has quit (Remote closed the connection).
04:12:02 <ehird> Incest is awesome[1].
04:12:05 <ehird> References
04:12:05 <ehird> ---------------
04:12:08 <ehird> 1. Josef Fritzl.
04:12:11 <ehird> OOOOOOOOOOOOOOH CONTRAVARSY
04:19:27 -!- Sgeo has joined.
04:42:06 -!- immibis has joined.
04:43:08 <pikhq> TEACH THE CONTROVERSY
04:45:12 <ehird> *CONTRAVARSY
04:45:22 <ehird> Josef Fritzl is an evolutionist!
04:51:19 <GregorR> http://dupsies.com/Dstore/african-asooke-capkufi-p-1983.html
04:51:43 <ehird> GregorR: if I buy you some hats will you stop talking about them
04:52:13 <pikhq> I don't think he lacks for hats.
04:52:15 <pikhq> For he is Gregor, the Hatticent.
04:52:25 <GregorR> ehird: I'll stop talking about the hats you bought :P
04:52:29 <GregorR> I'll talk about new hats.
04:52:41 <oerjan> ehird: THERE IS NO ESCAPE
04:52:42 <ehird> Can I just shoot you?
05:01:38 -!- immibis_ has joined.
05:01:58 <immibis> anyone interested in discussing an esoteric-language os kernel join #osdev
05:02:14 -!- immibis_ has left (?).
05:10:12 -!- Asztal has joined.
05:17:52 -!- coppro has quit (Read error: 60 (Operation timed out)).
05:20:36 <immibis> never mind, turned out they weren't serious
05:20:57 <oerjan> who would have guessed
05:21:30 <ehird> what esolang
05:25:46 <ehird> immibis:
05:26:06 <immibis> brainfuck
05:26:34 <ehird> i want to kill brainfuck
05:28:28 -!- pikhq has quit (Remote closed the connection).
05:32:38 -!- pikhq has joined.
05:38:43 <pikhq> I tried KDE 4 out again.
05:38:50 <pikhq> Why do I torture myself so?
05:39:05 <ehird> It's 5:38; someone tell me to bed myself.
05:39:15 <oerjan> ehird: GO TO BED
05:39:31 <ehird> oerjan: why
05:40:06 * oerjan swats ehird -----###
05:40:17 <ehird> :\
05:40:25 <oerjan> BECAUSE OTHERWISE THERE WILL BE MUCH GNASHING OF TEETH
05:40:32 -!- Asztal has quit (Read error: 60 (Operation timed out)).
05:41:23 <ehird> oerjan: see, you're being interesting and fun, i like being awake and listening to silly people
05:41:25 <ehird> why would i leave
05:41:31 <lament> gnash gnash gnash gnash
05:41:47 <oerjan> nibble nibble
05:42:05 <ehird> now you're both being interesting!
05:42:35 -!- ChanServ has set channel mode: +o lament.
05:42:45 <lament> GO TO BED
05:43:01 * lament makes funny faces
05:43:20 -!- Asztal has joined.
05:45:01 <ehird> lament: why do you hate this kid.
05:45:33 -!- Asztal has quit (Read error: 60 (Operation timed out)).
05:48:47 -!- Asztal has joined.
05:49:08 <ehird> :(
05:52:11 -!- oerjan has quit ("Later").
05:55:18 -!- lament has set channel mode: -o lament.
05:56:39 <ehird> lament: you suck.
06:02:10 -!- Azstal has joined.
06:02:15 -!- Asztal has quit (Read error: 60 (Operation timed out)).
06:02:15 -!- Azstal has changed nick to Asztal.
06:33:05 -!- Azstal has joined.
06:33:09 <immibis> connection problems?
06:34:02 -!- Asztal^_^ has joined.
06:34:59 -!- Azstal has quit (Read error: 60 (Operation timed out)).
06:36:02 <AnMaster> ehird, morning
06:36:07 <AnMaster> been up all night?
06:36:14 <ehird> AnMaster: quite so.
06:36:36 <ehird> regrettably, my internal clock striked day before my cognition striked bed
06:36:41 <AnMaster> ehird, okay, *makes mental note to avoid ehird until he sleept a full night*
06:36:41 <ehird> struck, whatever
06:36:48 <AnMaster> ehird, strick
06:36:54 <ehird> stricken.
06:37:03 <AnMaster> stracken
06:37:17 <AnMaster> stroken?
06:37:23 <AnMaster> err, with a c
06:37:39 <ehird> strackatak
06:38:45 <ehird> AnMaster: mac attack the strakatak struck strucken
06:39:24 <ehird> but always be him and always be you.
06:39:54 <AnMaster> ehird, okay. Whatever
06:40:11 * AnMaster backs away slowly, smiling in a disarming way.
06:40:13 <ehird> "I have been in contact with aliens for over 30 years. They communicate with me telepathically. No, I am not crazy. Yes, I am 100% truthful. AMA"
06:40:13 <ehird> gotta dispute that third sentence
06:40:36 * ehird slashes AnMaster to pieces unexpectedly in a second
06:40:42 -!- Asztal has quit (Read error: 60 (Operation timed out)).
06:40:45 <AnMaster> ouch
06:40:51 * AnMaster restores from backup
06:41:11 <AnMaster> like, you know, the yetis in the Discworld
06:41:24 <AnMaster> err
06:41:25 <AnMaster> on?
06:41:37 <ehird> i destroyed your data center too. beforehand
06:42:21 <ehird> (nonchalantly)
06:42:59 <AnMaster> ehird, not an issue. Since it happened in an alternative universe from what I restored. By reversing polarity I could phase shift the data into this universe.
06:43:17 <ehird> well fuck you.
06:47:02 <AnMaster> bbl, going to university
06:50:10 * pikhq looked at Etoile again...
06:50:35 <pikhq> I'm pleasantly surprised that they're trying to use Smalltalk as the primary language for it.
06:51:13 <pikhq> (and making their Smalltalk implementation have a common object system with Objective C)
06:51:41 <ehird> a
06:58:31 <ehird> b
06:58:42 -!- Judofyr has joined.
07:04:28 <Sgeo> Couldn't I just say "I am the ruler of a universe. I am 100% truthful. AMA.", but I'm referring to a universe in my imagination?
07:08:26 <ehird> c
07:11:11 <immibis> d
07:11:20 <immibis> AMA?
07:12:55 <Sgeo> Ask Me Anything
07:13:58 <ehird> d
07:20:57 <ehird> e the dependently typed lambda calculus <3
07:30:41 -!- MigoMipo has joined.
07:34:32 <ehird> f
07:39:43 <ehird> http://twitter.com/helen_keller
07:39:46 <ehird> g
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:13 -!- impomatic has joined.
08:02:16 <impomatic> Hi :-)
08:09:36 <ehird> hii
08:09:49 <ehird> i replied to your reddit post.
08:15:28 <ehird> impomatic: if it wasn't helpful, sorry
08:15:32 -!- BeholdMyGlory has joined.
08:15:36 <ehird> i haven't slept
08:17:52 <impomatic> Thanks. It's always easier to ask on reddit than read something ;-)
08:18:51 <ehird> try sleep deprv, you CAN't read!
08:18:53 <ehird> all the better
08:19:46 <impomatic> I've got a copy of three OS books, but they don't really help
08:27:26 * Sgeo joins the NoPDubClub
08:28:41 -!- Leonidas_ has joined.
08:28:42 <Sgeo> G'night all
08:28:53 -!- Leonidas_ has changed nick to Leonidas.
08:29:46 <ehird> impomatic: don't have two processes fumble for communication
08:30:01 <ehird> have them both sa yto the kernel "i want ot talk with <process #>"
08:30:08 <ehird> and make the kernel synchronise these
08:41:32 -!- BeholdMyGlory has quit (Remote closed the connection).
08:46:26 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
08:49:33 -!- FireFly has joined.
08:50:29 <impomatic> ehird: that sounds fine, but how does each process know the number of the process it want to talk to.
08:51:10 <impomatic> If they're named instead of numbered, that's slightly easier. Until there's a name collision
08:52:26 <ehird> erm, presumably two processes have a reason to talk
08:52:36 <ehird> or are you writing "blind date OS"
08:53:24 <impomatic> They'd have a reason, although a blind date OS sounds cool
08:54:08 <ehird> then when finding their reason, let them find an OS-created identifier.
09:01:19 -!- ehird has quit (wolfe.freenode.net irc.freenode.net).
09:01:19 -!- Slereah has quit (wolfe.freenode.net irc.freenode.net).
09:01:19 -!- lifthrasiir has quit (wolfe.freenode.net irc.freenode.net).
09:01:19 -!- Dewi has quit (wolfe.freenode.net irc.freenode.net).
09:02:26 -!- Dewi has joined.
09:03:00 -!- lifthrasiir has joined.
09:03:11 -!- Slereah has joined.
09:07:13 -!- lifthrasiir has quit (Killed by douglas.freenode.net (Nick collision)).
09:07:17 -!- ehird has joined.
09:07:17 -!- lifthrasiir has joined.
09:07:19 -!- ehird has quit (Read error: 104 (Connection reset by peer)).
09:07:20 -!- ehird has joined.
09:07:20 -!- lifthras1ir has joined.
09:07:24 -!- lifthras1ir has changed nick to lifthrasiir_.
09:07:52 -!- lifthrasiir_ has changed nick to lifthrasiir__.
09:08:00 -!- lifthrasiir has quit (Read error: 104 (Connection reset by peer)).
09:08:04 -!- lifthrasiir__ has changed nick to lifthrasiir.
09:11:11 -!- OoS has joined.
09:12:13 -!- FireFly has quit (wolfe.freenode.net irc.freenode.net).
09:12:40 -!- FireFly has joined.
09:13:48 <OoS> Are the BBC running out of news? http://news.bbc.co.uk/1/hi/sci/tech/8206280.stm
09:30:53 -!- impomatic has quit (Read error: 110 (Connection timed out)).
09:33:59 -!- FireFly has quit ("Later").
09:36:33 -!- SimonRC has quit (Read error: 104 (Connection reset by peer)).
09:37:37 -!- SimonRC has joined.
09:39:49 -!- OoS has changed nick to impomatic.
09:47:01 -!- ehird has left (?).
09:47:09 -!- ehird has joined.
09:53:40 -!- M0ny has joined.
09:57:28 <M0ny> hi :)
10:01:17 -!- nooga has joined.
10:14:30 -!- SimonRC has quit (Read error: 54 (Connection reset by peer)).
10:14:31 -!- immibis has quit (Read error: 104 (Connection reset by peer)).
10:15:58 -!- SimonRC has joined.
10:19:50 <nooga> gee
10:19:58 <nooga> plan9 is such a good design
10:27:58 <nooga> btw anyone used PVM?
10:37:46 -!- FireFly has joined.
10:41:49 <ehird> there are better designs than plan 9
10:44:07 -!- KingOfKarlsruhe has joined.
11:00:04 -!- M0ny has quit.
11:03:04 -!- BeholdMyGlory has joined.
11:12:48 -!- oklokok has changed nick to oklopol.
11:17:30 -!- KingOfKarlsruhe has quit (Remote closed the connection).
11:41:01 <nooga> ehird: which?
11:41:47 <ehird> mostly unrealised. but plan 9 separates the notion of an in-memory value/object and its persisted on-disk form, and adds separate persist/unpersist operations; this is a flaw.
11:42:12 <ehird> (this doesn't mean you have to drop the hierarchy of names; see eg K directories)
11:42:30 <ehird> (although I don't believe a hierarchy of string names is the best way to represent user documents)
11:53:27 <nooga> uh
11:53:40 <nooga> it's not so bad
11:53:48 <ehird> yeah, nor is unix.
11:56:17 <nooga> now i'm trying to employ PVM for doing distributed raytracing :F
12:08:29 <ehird> god i hate people
12:27:27 <nooga> eeeee/?
12:28:47 <ehird> what
12:29:23 <nooga> ehird: god i hate people << who, why?
12:29:35 <ehird> people; because they're idiots
12:30:25 <nooga> oh right
12:30:39 <nooga> sometimes i feel that way too
12:30:53 <nooga> are you not human?
12:31:41 <ehird> sign me up to be a nonhuman.
12:32:27 <nooga> subhuman?
12:32:58 <ehird> preferably the other way around, although as a subhuman i probably wouldn't comprehend people's idiocy
12:33:13 <ehird> then again the same applies to non-existence, which isn't on my plans
12:34:25 <nooga> i'd be hard, idiocy is probably the most developed feature of human kind
12:36:51 <oklopol> i'd be hard as well
12:37:01 <oklopol> oh i am already
12:37:02 <oklopol> *zing*
12:40:13 <nooga> ffff
12:40:15 <fizzie> Oh, and helloes from a six-hour seminar given by all our summer students of this year; I have no idea why I'm here, since technically I'm on vacation.
12:40:32 <fizzie> Possibly for the free food and drinks.
12:40:50 <nooga> yay
12:40:56 <nooga> fizzie: congrats
12:41:06 <ehird> hi fizzie
12:41:10 <ehird> you're fiz
12:41:15 <ehird> exceedingly
12:41:36 <fizzie> Exceedingly fizzly.
12:42:39 <ehird> no
12:42:42 <ehird> just exceedingly fiz
12:42:49 <ehird> well also fizzly, but that's a separate issue
12:43:55 <fizzie> I used to be known as "fizzle", as I may have mentioned.
12:44:47 <ehird> fizzie is like the counternym of fuzzie
12:46:31 <fizzie> And fuzzie is?
12:46:43 <ehird> um, fuzzie.
12:46:45 <ehird> duh.
12:58:35 <nooga> fo shizzle
13:00:24 <nooga> lol
13:00:44 <nooga> my boss wants me to port winapi parts to iphone
13:03:43 <ehird> just. no.
13:06:58 <nooga> uh
13:07:01 <nooga> yea
13:07:13 <nooga> that's too fucking stupid
13:32:50 <ehird> .
13:34:58 <fizzie> Ooh, there's also a speech recognition talk here. I hadn't noticed.
13:41:07 -!- sebbu has joined.
13:41:57 -!- oklokok has joined.
13:43:36 -!- oklofok has joined.
13:46:40 * AnMaster watches fsck. 1% ... 2% ..... 3% . 77% ... 78% ... 79% ...... 80% .. 99% ............. 100%
13:46:46 <AnMaster> percent of what?
13:46:51 <AnMaster> not time certainly
13:47:24 <fizzie> Percent of donetskity.
13:47:40 <AnMaster> donetskity?
13:47:47 <ehird> donetskity.
13:47:48 <AnMaster> tell me more about this thing
13:48:41 <fizzie> Recently in Ubuntu I saw a progress bar that moved with pretty much constant speed, then when it hit something like 98% and wasn't quite done, it jumped back to 60% or so, and repeated this a couple of times.
13:48:51 <fizzie> There's certainly the feeling of progress there.
13:49:03 <AnMaster> fizzie, heh
13:49:05 <ehird> it's OBAMA PROGRESS</contravarsy>
13:50:42 <nooga> i'd make progressbar that pulses
13:50:53 <nooga> pulsates (?)
13:50:55 <nooga> uh
13:51:58 <nooga> btw. anyone used PVM ?
13:55:03 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
13:58:47 -!- BeholdMyGlory has quit (Remote closed the connection).
14:00:50 -!- oklopol has quit (Read error: 110 (Connection timed out)).
14:01:03 -!- oklokok has quit (Read error: 110 (Connection timed out)).
14:14:03 -!- oerjan has joined.
14:27:44 <oerjan> <nooga> i'd make progressbar that pulses <-- it could make a little dance
14:28:38 <oerjan> oh it's '96 again
14:31:19 <impomatic> Can you think of a real world use for counting the bits in a word?
14:31:54 <oerjan> parity check
14:36:28 <impomatic> Anything else?
14:40:37 <impomatic> Are parity checks any use? There's better error detection schemes.
14:41:00 -!- Guest33269 has joined.
14:42:04 -!- Guest33269 has changed nick to andi.
14:42:07 <oerjan> it is the minimal scheme possible, sort of
14:42:35 -!- andi has changed nick to Guest86817.
14:42:39 <oklofok> it's the manhattan length of a binary vector, that isn't a very universal operation.
14:43:03 -!- Guest86817 has changed nick to andi_.
14:43:03 <oklofok> so intuition says it'd be mostly useless
14:43:28 <fizzie> If you have some sort of bitmap (block occupancy or something) and need the count (amount of allocated blocks in that case); though I guess often it would just make sense to keep track of it separately.
14:44:08 <oerjan> ah yes if it represents a set then it's useful
14:44:23 <oklofok> true
14:44:39 <ehird> impomatic: counting bits in word?
14:44:43 <ehird> like number of 1 bits?
14:44:52 <ehird> doesn't ecc ram use that?
14:44:54 <oklofok> oerjan: you weren't responding to fizzie, right?
14:44:57 <ehird> no wait
14:45:00 <ehird> ecc ram does bit^bit^bit
14:45:02 <ehird> and stores that
14:45:06 <ehird> or, wait, no
14:45:07 <oerjan> oklofok: yes i was
14:45:09 <oklofok> oh err
14:45:11 <ehird> it can corerct 1-bit errors
14:45:12 <oklofok> that kinda bitmap
14:45:13 <ehird> so it can find position
14:45:15 <ehird> and detect 2-bit
14:45:17 <ehird> eh, I dunno
14:45:21 <oklofok> then yes, i agree with both of you
14:45:35 <oklofok> ehird: parity was mentioned
14:45:40 <ehird> right
14:46:11 <oklofok> but the manhattan distance (mod 2) of a binary vector is an even more useless operation
14:46:24 <oklofok> and isn't useful for sets either
14:46:33 <oklofok> well. need to do this thing now
14:46:33 <oklofok> ->
14:48:50 <oklofok> i mean i thought fizzie meant "allocated blocks" abstractly, as in "allocated pixels" :P i tend to interpret him rather loosely
14:48:54 <oklofok> also the thing ->
14:50:56 <nooga> who'd like to install PVM ?
14:51:15 <ehird> go away nooga.
14:51:29 <nooga> why?
14:51:30 <nooga> :D
14:51:51 <fizzie> oklofok: I'm no loose person!
14:53:41 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server").
14:53:54 <nooga> ehird: have you started your own os development?
14:54:04 <ehird> define started
14:54:11 -!- whtspc has joined.
14:54:13 <oerjan> fizzie, secretly a cannon
14:54:51 <whtspc> hello
14:54:57 <oerjan> hello whtspc
14:55:20 -!- MigoMipo has joined.
14:55:21 <whtspc> I'm wondering why when you're reading something about esolangs
14:55:41 <whtspc> it always says that it has no use
14:56:05 <whtspc> it doesn't have to be taken serious
14:56:43 <whtspc> while on the other hand mr Wolfram almost makes a religion out of minimal automata and machines
14:57:01 <ehird> because wolfram is fucking insane and we, despite appearances, are just eccentric.
14:57:25 * oerjan swats ehird -----###
14:57:25 <ehird> :P
14:57:30 <oerjan> WHO ARE YOU CALLING SANE?
14:58:04 <nooga> ehird: ...
14:58:09 <whtspc> I'm not saying Wolfra m is right in his philosophy, but I do think it's worthed to explore the possibilities of minimal systems
14:58:32 <ehird> we do.
14:58:38 <ehird> you're just looking at crappy esolangs
14:58:46 <ehird> our wiki is not of terribly high average quality
15:00:11 <whtspc> who writes the lines with the context, that 'those languages are created only for fun purposes and have no use at all' all over the internet
15:00:23 <whtspc> are those people not informed?
15:00:39 <ehird> i think you're reading in to this way too much.
15:00:45 <ehird> we are not some centralised community.
15:00:51 <oerjan> O_O
15:01:08 <oerjan> fizzie: have we not have ehird accredited properly, hmmmm?
15:01:12 <oerjan> *had
15:01:15 <ehird> oerjan: sorry, I forgot we own the rights to the word Esoteric :-P
15:01:15 <impomatic> There's an easier way to calculate parity than counting bits.
15:01:38 <oerjan> impomatic: there is?
15:02:57 <oklofok> depends on the instruction set
15:03:31 <oklofok> but yes, adding shit up mod base_being_used is pretty simple, since you just need to remember the last digit
15:04:09 <ehird> oklofok: aka xor
15:05:16 <oklofok> in base 2, yes, i don't think xor is generally used in other bases
15:05:47 <GregorR> Just what is 012t xor 022t
15:06:08 <ehird> xor is add mod base.
15:06:12 <oklofok> by ehird's definition, 001
15:07:08 <GregorR> t\
15:07:08 -!- jix has joined.
15:07:21 <impomatic> a := a xor (x >>16) ; a := a xor (xa>>8) ; a := a xor (a >>4) ; a := a xor (a >>2) ; a := a xor (a >>1) ;
15:07:37 <impomatic> a := a xor (a >>16) ; a := a xor (a>>8) ; a := a xor (a >>4) ; a := a xor (a >>2) ; a := a xor (a >>1) ;
15:07:45 <oklofok> i said that already
15:08:03 <oklofok> oh wait i didn't
15:08:04 <oklofok> sorry
15:08:14 <oerjan> i am not sure how that's supposed to be easier than a xor'ing loop
15:08:53 <oklofok> oerjan: it's faster
15:09:09 <oerjan> oh well
15:09:21 <impomatic> It does the bits in parallel.
15:09:55 <oklofok> you can do that for summing as well, of course not with bit vectors
15:10:48 <oklofok> point is that's a valid fold for any commutative and associative operator isn't it
15:11:07 <oklofok> well, pizza time
15:11:11 <oklofok> hot sexy pizza
15:11:12 <oklofok> ->
15:12:34 <fizzie> graphics.stanford.edu/~seander/bithacks.html has a collection of tricksies, including the sum-of-bits thing. There are those funky "if you have fast multiplication" variants.
15:17:50 -!- nooga has quit (Remote closed the connection).
15:35:42 -!- oklopol has joined.
15:39:49 -!- jix has quit (Read error: 113 (No route to host)).
15:41:12 -!- nooga has joined.
15:41:24 -!- oerjan has quit ("leaving").
15:41:41 <nooga> damn limechat crashes all the time
15:43:25 <impomatic> Fizzie: have been reading that one recently
15:43:36 -!- BeholdMyGlory has joined.
15:47:14 -!- andi___ has joined.
15:52:06 -!- oklofok has quit (Read error: 110 (Connection timed out)).
15:54:33 -!- ais523 has joined.
15:57:20 <nooga> ehird: is minix 3 cool or uncool?
15:57:44 <ehird> microkernel - uncool.
15:58:15 <nooga> why is that
15:59:05 <nooga> http://www.minix3.org/ second paragraph sounds really nice
15:59:05 <ehird> first, see torvalds/tenenbaum debate
15:59:07 <ehird> second, http://tunes.org/wiki/microkernel.html
16:01:09 <ais523> hmm... the author of Ihybrid replies, apparently Ihybrid was a joke/troll and the other lang was meant to be serious
16:01:19 <ais523> well, it was meant to be stupid, but still usable
16:01:43 <ehird> ais523: the cognitive dissonance adds a new layer of stupid...
16:03:26 -!- andi_ has quit (Read error: 110 (Connection timed out)).
16:04:00 -!- whtspc has quit ("ChatZilla 0.9.85 [Firefox 3.0.13/2009080315]").
16:08:14 <nooga> beeeeh
16:08:43 <ais523> we need more langs in the spirit of TURKEY BOMB anyway
16:08:55 <ehird> TSURKEY BOMBA
16:09:09 <ehird> turkey bomb, soviet ripoff edition
16:09:38 <pikhq> Well, today at work I have been told "Do something interesting. Tell me about it."
16:09:47 <pikhq> I figure that's as good an excuse as any to learn Erlang.
16:09:54 <ehird> Erlang suxx, learn K.
16:09:58 <ehird> :P
16:10:09 <pikhq> I have a queue of languages to learn, okay?
16:10:28 <ehird> ...also, that sounds like one mighty fine job.
16:10:57 <pikhq> 'Tis.
16:11:35 <ehird> lucky bastard :)
16:12:45 <impomatic> Hmmm....
16:13:04 <impomatic> ehird: is L4 cool or uncool.
16:13:38 <ehird> uncool from what i know of it. seL4 has been proved correct though, which is an fpnerdgasm.
16:15:05 <impomatic> Hmmm... how about VSTa. Or FreeRTOS?
16:15:07 <pikhq> Via Haskell, no less.
16:15:50 <ehird> vsta seems boring
16:15:51 -!- GregorR-L has joined.
16:16:08 <ehird> FreeRTOS, i'm sure it's wonderful, but it's hard to get excited about
16:16:14 <nooga> vista?
16:16:17 <ehird> pc is where it's at
16:16:20 <ehird> nooga: no, vsta.
16:17:30 <pikhq> ehird: L4 is designed so that the microkernel does nearly nothing. It is, at least, a darn good microkernel. (it does this: address space seperation, threads, scheduling, and synchronous IPC.)
16:17:42 <ehird> Ahem. Read http://tunes.org/wiki/microkernel.html
16:17:48 <ehird> It's not a good thing.
16:18:36 <pikhq> Ahem. Chop off your RMS crazy-beard for a minute.
16:19:04 <ehird> Was that supposed to mean "That's way too different from things that already exist, so stop being so unrealistic"?
16:19:10 <nooga> pikhq: nice one
16:19:37 <ehird> Because, funny; stepping outside of the suckage that exists is known as "innovation".
16:19:39 <pikhq> No, it was supposed to mean "Stop caring about everything but what doesn't exist for a moment."
16:19:42 <AnMaster> ehird, so you argue that QNX sucks for example?
16:19:52 <ais523> L4, to me, I don't think is meant to be a kernel per se, but rather an API for implementing kernels with
16:20:05 <ehird> AnMaster: Yes. Unlike you, I am not some sort of deranged uber-QNX fetishist (what IS your thing about QNX?)
16:20:06 <ais523> as in, it's just doing the syscalls etc, and they've implemented linux on top of it
16:20:08 <pikhq> More specifically, stop the "ZOMG THE CAR IS WORSE THAN MY PERSONAL JETPACK WHICH DOESNT EXIST"
16:20:26 <pikhq> ais523: It also functions as a nice hypervisor.
16:20:29 <ais523> ah, yes
16:20:40 <AnMaster> ehird, see logs from 2008 for more info why I like QNX.
16:20:47 <ehird> AnMaster: "Logs from 2008"
16:20:52 <nooga> ais523: where can i get that L4 ?
16:20:52 <ais523> AnMaster: 2008 is rather nonspecific...
16:20:53 <ehird> "Please see SOME ATOMS, IN THE UNIVERSE"
16:20:56 <AnMaster> ehird, yes, I think during the spring
16:20:56 <pikhq> AnMaster: We talk a lot.
16:21:00 <AnMaster> grep for AnMaster and QNX
16:21:04 <AnMaster> can't be too hard
16:21:12 <ais523> nooga: I don't know off by heart, but it was all over the tech news last week
16:21:22 <AnMaster> ais523, you know about grep?
16:21:26 <AnMaster> right?
16:21:27 <ehird> pikhq: "Hey, we have this really great, sturdy rickshaw here. What's that? You have design documents and know where to get the components to build a ... horseless carriage? Shut up with that crap, let's go polish the lovely rickshaw."
16:21:38 <ais523> AnMaster: yes; but, I don't have all the logs from 2008 saved on my computer
16:21:47 <ehird> "Sheesh! Idealists."
16:21:56 <AnMaster> ais523, true, I have some compressed on CD :P
16:22:01 <ais523> and http://tunes.org/robots.txt gives "Crawl-delay: 15"
16:22:02 <AnMaster> for 2007 and 2008
16:22:16 <pikhq> ehird: ... Thou art an idiot.
16:22:18 <ais523> so it would take over an hour to download them all
16:22:27 <pikhq> However, you are simultaneously idiot and genius, so.
16:22:32 <AnMaster> ais523, I assume you have them compressed on cd or similar?
16:22:33 <ehird> pikhq: that's your new favourite method of argumentation, isn't it
16:22:44 <ais523> AnMaster: no, I don't
16:22:46 <ehird> if you can't think of a response, drop an ellipsis, go into faux olde english mode and insult me
16:22:53 <ais523> why would you expect me to?
16:22:55 <impomatic> nooga: there are multiple versions of L4. The Wikipedia page has links to many of them.
16:22:55 <pikhq> I guess at this point all I can say is "Shut up and write your damned kernel-less OS and *demonstrate* how awesome it would be."
16:23:00 <AnMaster> ais523, heh, what if tunes vanishes?
16:23:03 <ais523> it's not as if I use #esoteric logs for bedtime reading
16:23:15 <ehird> pikhq: Yeah, uh, I'm working on it. Should I become a hermit and stop talking until it's done?
16:23:19 <ais523> and, it's quite possible someone has them backed up; apparently you do
16:23:23 <ais523> so why would I need backups too?
16:23:40 <pikhq> ehird: You're on IRC. Aren't you already a hermit? :P
16:24:02 <ehird> pikhq: Soo, any response that is actually a response..?
16:24:05 <ehird> *...?
16:24:36 <pikhq> Ah, no.
16:25:17 <ehird> ...and i'm going to assume you don't concede, as most people still don't when they can't rebut an argument I pose
16:25:24 <ehird> (I should really learn not to argue on IRC)
16:26:25 <pikhq> ... What argument? You just said "No microkernel. Also fairies."
16:26:43 <ehird> [16:22] pikhq: I guess at this point all I can say is "Shut up and write your damned kernel-less OS and *demonstrate* how awesome it would be."
16:26:43 <ehird> [16:23] ehird: pikhq: Yeah, uh, I'm working on it. Should I become a hermit and stop talking until it's done?
16:26:49 <pikhq> I can see where you would get an argument from that, but you really... Didn't argue the point so much as said "That sucks".
16:26:56 <ehird> You haven't responded to that in any way apart from "hurr hurr irc is unsocial".
16:27:23 <pikhq> ... The... I... And...
16:27:41 <ehird> ó_o
16:28:16 <pikhq> You make about as much sense as Chewbacca on Kashyyyk.
16:28:46 <ehird> So, that's two non-rebuttal responses to one line so far.
16:29:13 <pikhq> What the crap is there to rebut? It's a freaking rhetorical question!
16:29:56 <ehird> The whole issue is you saying, effectively, "stop dissing microkernels until you've made your wonderful no-kernel OS."
16:30:07 <ehird> i.e., "stop talking about OS design until you've completed a fully working OS."
16:30:28 <ehird> I am asking if you seriously think I should do that, because otherwise my criticism of L4 was completely founded.
16:30:51 <pikhq> Sorry, but extraordinary claims require extraordinary proof. And you're claiming that CS has been doing it wrong for 50 years.
16:31:08 <ehird> pikhq: are you using linux at the moment?
16:31:14 <pikhq> Yes.
16:31:25 <ehird> CS' opinion has been "microkernels are the only acceptable option" since forever.
16:31:33 <ehird> Maybe your CPU is executing extraordinary proof right now.
16:32:07 <pikhq> Nope. People've just not bothered to make a decent general-purpose microkernel OS is all.
16:32:26 <pikhq> "Not bothered" is quite different from "I can't even see how you would *write* that".
16:32:26 * ehird facepalm
16:33:06 <ehird> How would you write any software without a kernel?
16:33:12 <ehird> Oh, right, no other piece of software HAS a kernel.
16:33:37 <ehird> We don't route all our information access and, well, EVERYTHING through one god procedure/object/....
16:33:42 <ehird> Because that's just fucking STUPID.
16:33:52 <ehird> We simply use other procedures/objects inside others.
16:34:17 <pikhq> I will be quite intrigued to see your scheduler.
16:34:27 <ehird> Singular?
16:34:43 <ehird> "I will be quite intrigued to see how you do a KERNEL without a kernel, ho ho!"
16:34:47 <ehird> Convincing that's not.
16:35:14 <pikhq> And if you get multiple schedulers working, then I will suspect you're running on a different architecture than anyone else.
16:35:30 <ehird> /facepalm
16:35:46 <pikhq> Because I don't see any way for that to work aside from fairy dust.
16:35:49 <impomatic> Isn't there a linux which runs on top of L4? That would count as a decent general-purpose microkernel OS
16:36:15 <pikhq> impomatic: I'd hesitate to call that a microkernel OS. More "Linux using L4 as a hypervisor".
16:36:15 <ehird> Amusing how every pro-kernelers attempt to rebut no-kernel systems use skewed questions that use singular kernel terminology.
16:36:27 <ehird> When did you stop beating your $person_of_note, pikhq?
16:36:45 <pikhq> ehird: How the fuck do you propose for *any* of it to work?
16:36:51 <impomatic> ehird: what's your opinion on exokernels?
16:37:27 <ehird> pikhq: IT'S SIMPLE! Just don't have one centralised router that all code goes through! WRITE IT LIKE ANY OTHER PIECE OF SOFTWARE!
16:37:48 <ehird> impomatic: microkernels taken to the extreme. as pointless, and slower
16:38:14 <pikhq> ehird: ... So, magic.
16:38:21 <impomatic> So you advocate monolithic kernels?
16:38:37 <ehird> So, brothers. pikhq thinks that writing software without a god object at the center having everything passed through it is "magic".
16:38:40 <nooga> ehird: start implementing, i'm dead curious how it will function
16:38:48 <ehird> Do remind me in future to never work on any code pikhq's designed.
16:38:54 <ehird> impomatic: i advocate modular no-kernel systems.
16:39:10 <pikhq> ehird: The hardware assumes a god object.
16:39:10 <nooga> baaah
16:39:24 <ehird> pikhq: the hardware basically assumes C.
16:39:26 <nooga> but mikrokernel arch is just modular system with minimal kernel
16:40:04 <nooga> how can that be so bad compared to a modular system without kernel
16:40:21 <lament> ehird: as long as you have a central CPU, you will either have a kernel or a lot of code duplication best replaced by a kernel
16:40:33 <ehird> nooga: new argument policy instated: I won't reply to people who don't read the pertinent article.
16:40:45 <ehird> lament: I can play the assertion game too: you're wrong.
16:41:03 <nooga> i've scanned the article
16:41:09 <lament> k
16:41:17 <ehird> nooga: if you actually read it, what you said would have been answered.
16:41:20 <ehird> I link for a reason.
16:41:57 <nooga> probably=, somehow, i omitted that part
16:44:30 <nooga> btw. is Cyclone nice?
16:45:04 <pikhq> ehird: What you propose is akin to Haskell without a RTS.
16:45:33 <ehird> <pikhq> Now, marvel in amazement as I construct an analogy that doesn't work to prove me right!
16:46:22 <pikhq> Y'know, you're busy being really stupid. Go off and write your no-kernel OS, and shut up about it until you've got a proof of concept, please?
16:46:51 <ehird> Argumentum ad shutus up yourest stupidus.
16:47:06 <nooga> =.=
16:48:07 <ehird> and people accuse me of making bad arguments to avoid admitting I'm wrong.
16:48:28 <nooga> what if
16:48:30 -!- impomatic has left (?).
16:48:34 <nooga> YOU'RE WRONG?
16:49:07 <nooga> ooooooouch, that felt almost like dividing by 0
16:49:26 <ehird> nooga: almost as good an argument as pikhq's
16:50:22 <nooga> i just asked what if you're wrong
16:51:08 <pikhq> ehird: Sorry, but I feel like you're proposing the moon landing was fake, and you're not actually defending it with anything but "ZOMG". So please, just show me that this is even freaking *possible*.
16:52:13 <GregorR-L> Moo.
16:52:16 <ehird> How can I prove that it's possible to write a piece of software without one god object orchestrating everything?
16:52:26 <ehird> Well, do allow me to point to every single piece of well-designed software ever.
16:52:58 <pikhq> A piece of software that inherently has a god object.
16:53:08 <GregorR-L> Mooooooooooooooooooooooooooooooooooooooo.
16:53:39 <ehird> pikhq: ...do you realise that that makes it IMPOSSIBLE to prove?
16:53:48 <GregorR-L> Moooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo.
16:53:56 <pikhq> No it doesn't. Write an OS without one.
16:54:15 <pikhq> Or just do what Gregor is doing, and become a cow.
16:54:23 <ehird> GregorR-L: Shut the fuck up. I know you don't like it when the discussion in here is anything other than mindless meander about hats, but if you don't like an argument, ignore it.
16:54:33 <ehird> pikhq: I. am. writing. one.
16:54:44 <ehird> You don't seem to comprehend this.
16:54:47 <GregorR-L> ehird: There are plenty of discussions in here I like. Retarded and totally pointless arguments aren't amongst them.
16:55:11 <ehird> Certainly, O GregorR-L, supreme arbiter of What Bores GregorR-L And Thus Is Retarded.
16:55:25 <GregorR-L> To this I say,
16:55:28 <GregorR-L> Moooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo.
16:55:56 <pikhq> ehird: Then please, continue doing so.
16:55:58 <ehird> Whenever you talk about hats, maybe I'll spam "Baaaaaaaaaaaaaaaaa."
16:56:01 <nooga> ehird: O ehird, supreme arbiter of What Bores Elliot And Thus Is Retarded Or Wrong.
16:56:16 <ehird> pikhq: And never say a single word until it's done. Sure thing!
16:56:23 <pikhq> This argument is getting in the way of you actually having such an OS.
16:56:34 <ehird> nooga: funny thing; if you look closely, my line has context and yours has none.
16:56:54 <pikhq> To this I say,
16:56:57 <pikhq> Moooooooooooooooooooooooooooooooo.
16:56:59 -!- GregorR-L has quit ("Leaving").
16:56:59 <ehird> pikhq: like I'd be coding an OS at 5pm after having not slept a whole night and on IRC.
16:57:13 <nooga> funny thing, if you look closely, my line is true and your is not
16:57:23 <pikhq> To this, I say,
16:57:30 <pikhq> Mooooooooooooooooooooooooooooooooooooooooooooooooooooooooo.
16:57:35 <nooga> Fuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu.
16:58:26 <ehird> You're all blathering, ad-hominem loving, "la la la I can't hear you" idiots.
17:00:29 <pikhq> The cognitive dissonance is astounding.
17:00:43 <ehird> If you'll notice, I have not used an insult or
17:00:45 <ehird> an animal noise
17:00:56 <nooga> ehird: go play with your big, warm, nice cup of STFU
17:01:04 <ehird> in the place of an argument once in this "argument" (more like you flinging shit around while I attempt to put down my thoughts)
17:01:10 <ais523> ^ul (aS(:^)S):^
17:01:10 <pikhq> Actually, go to bed.
17:01:11 <fungot> (aS(:^)S):^
17:01:29 <nooga> ehird: you're always putting down my thoughts
17:01:33 <nooga> so why not
17:01:53 <ehird> Congratulations, your English parser cannot handle words with more than one meaning.
17:02:54 <ehird> You're all dumb as a sack of bricks and can't even muster up the rationality to argue with valid reasoning instead of using fallacies (like begging the question) and saying "moo". I have nothing more to say to such people.
17:03:00 <pikhq> ehird: Go to bed.
17:03:02 <ehird> Let me know when you're all sane.
17:03:03 -!- ehird has left (?).
17:03:04 <oklopol> bye
17:03:12 <pikhq> So, ehird got a stick in his vagina.
17:03:48 <oklopol> pikhq's and ehird's conversation was kinda weird, neither had any arguments, but pikhq's lack of arguments was a deadly sin, even though he was the one aware of his lack of arguments
17:04:24 <pikhq> That was a freaking weird shouting match.
17:04:34 <oklopol> well, except ehird did paste that link
17:04:56 <pikhq> Which was a page of someone else having the same rant.
17:05:19 <oklopol> well i don't know about that, but it might've had arguments.
17:05:25 <oklopol> if it didn't, fine.
17:05:53 <oklopol> still, whether or not it did, linking is an annoying way to have a synchronous conversation
17:05:53 <pikhq> "Well, we just chop off the kernel and EVERYTHING WORKS!"
17:09:44 <pikhq> Erlang has such an awful type system.
17:10:03 <pikhq> It's all "dynamic" and "magic and fairy dust".
17:13:37 <nooga> yeah
17:14:04 <oklopol> GregorR: moo :)
17:14:35 <AnMaster> to ehird when he is back from log reading: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/270798
17:14:37 <AnMaster> for*
17:17:14 -!- MigoMipo_ has joined.
17:17:50 -!- MigoMipo has quit (Nick collision from services.).
17:17:52 -!- MigoMipo_ has changed nick to MigoMipo.
17:34:58 <AnMaster> <pikhq> It's all "dynamic" and "magic and fairy dust". <-- that is a downside yes
17:35:08 <AnMaster> it isn't strongly typed indeed
17:35:50 <pikhq> Also, it seems a bit... Wordy.
17:36:04 <AnMaster> pikhq, how do you mean
17:36:12 <AnMaster> example or such
17:36:26 <AnMaster> and yes, I'm sure there are more compact languages, and ones even more wordy
17:36:27 <pikhq> Erm. Not so much wordy as it is... Punctuation-y.
17:36:39 <pikhq> foo(bar,baz,qux,quux) % Why?
17:36:48 <AnMaster> pikhq, oh yes, you mean using ,;. instead of {} or indention?
17:36:55 <AnMaster> or not?
17:37:09 <pikhq> That, yes.
17:37:16 <AnMaster> what is wrong with foo(bar,baz,qux,quux), quite a lot of parameters, but I can't see anything actually wordy in it
17:37:30 <pikhq> It just looks wrong.
17:37:34 <oklopol> well clearly it isn's haskell
17:37:40 <oklopol> *isn't
17:37:48 <AnMaster> nor LISP!
17:37:55 <AnMaster> pikhq, I fail to see why it looks wrong
17:37:57 <pikhq> There's also the export syntax. Eeeew.
17:38:12 <AnMaster> pikhq, and well, the marking of blocks with ,;. is something you get used to
17:38:21 <AnMaster> a bit irritating in the beginning
17:38:28 <AnMaster> like, tracking the () in LISP
17:38:33 <AnMaster> but after a while you get used to that
17:38:52 <AnMaster> pikhq, what is wrong with it?
17:39:08 <AnMaster> it is just an attribute that takes a list of function/arity
17:39:09 <pikhq> Saying how many arguments there are to the function being exported?
17:39:23 <AnMaster> pikhq, well, foo/1 and foo/2 are different functions
17:39:25 <AnMaster> so yes
17:39:25 <pikhq> Come on! Doesn't the compiler know that already?
17:39:32 <pikhq> ... Gaaaah.
17:39:41 <AnMaster> pikhq, except you can have foo with 2 and foo with 3 paramters in the same file
17:39:45 <AnMaster> in fact quite common idiom too
17:39:48 <pikhq> Hate the type system so much.
17:39:59 <AnMaster> foo(Argument) % Wrapper function that calls:
17:40:13 <AnMaster> foo(Argument, Accumulator)
17:40:52 <oklopol> pikhq: idea is to export only the right version
17:40:58 <AnMaster> pikhq, and well, I assume you hate anything that isn't strictly typed then?
17:41:04 <AnMaster> pikhq, say, Scheme
17:41:08 <pikhq> At this point, yes.
17:41:23 <oklopol> because of dynamic typing, the amount of arguments is the only distinction
17:41:25 <AnMaster> pikhq, so are you saying you hate scheme?
17:41:29 <AnMaster> seriously?
17:41:32 <oklopol> between two functions of the same name
17:41:36 <pikhq> I don't know Scheme, actually.
17:41:38 <AnMaster> pikhq, oh and brainfuck, and most other esolangs
17:41:41 <AnMaster> and
17:41:45 <AnMaster> python for example
17:42:00 <pikhq> AnMaster: Needs better typesystems!
17:42:04 <pikhq> I WANTS MONADS
17:42:12 <AnMaster> oklopol, a function can have several entry points
17:42:16 <AnMaster> like
17:42:16 <oklopol> MNNDS
17:42:24 <oklopol> what does that mean?
17:42:24 <AnMaster> foo(1, Acc) -> Acc;
17:42:28 -!- GregorR-L has joined.
17:42:36 * GregorR-L dares to peek back in #esoteric
17:42:37 <AnMaster> foo(X, Acc) -> foo(X-1, Acc*2).
17:42:38 <pikhq> Moooooooo.
17:42:40 <AnMaster> or
17:42:44 <oklopol> NO, YOU NEED A MICROKERNEL FOR THAT
17:42:46 <pikhq> GregorR-L: ehird bolted.
17:42:58 <AnMaster> foo(X) when is_integer(X), X < 0
17:43:01 <GregorR-L> Good show though, pikhq and oklopol :P
17:43:03 <AnMaster> a guard test
17:43:31 <AnMaster> GregorR-L, atm pikhq is ranting about dynamic typing
17:43:44 <oklopol> i would've gone on with it if AnMaster wasn't suck a i'll just go on with my explanation even though GregorR just came back and we could like totally screw with him -ist
17:43:54 <pikhq> It is the antiHaskell, and I like haskell.
17:43:57 <pikhq> :P
17:43:57 <oklopol> *such a
17:44:14 <AnMaster> oklopol, oh sorry, I didn't notice what you were trying to do
17:44:15 <AnMaster> :P
17:44:17 <oklopol> *such an
17:44:51 <oklopol> AnMaster: ah, patterns right
17:45:03 <AnMaster> oklopol, erlang is rather keen on pattern matching when possible
17:45:22 <GregorR-L> Oooh, Erlang talk.
17:45:24 <oklopol> i did know that
17:45:51 <AnMaster> oklopol, you can pattern match most stuff, and you unpack byte "arrays" with pattern matching too
17:46:03 <AnMaster> byte arrays are mostly used for when talking to external programs
17:46:11 <AnMaster> like, reading a binary protocol, or reading a binary file
17:46:18 <AnMaster> well, they aren't really arrays either
17:46:26 <AnMaster> you don't work with them like an array
17:46:31 <AnMaster> nor like a cons style list either
17:46:48 <AnMaster> in erlang, it is just called "a binary"
17:46:48 <oklopol> but like what?
17:47:01 <oklopol> uh erlang had those fancy bit matchings
17:47:03 <oklopol> right?
17:47:06 <AnMaster> oklopol, yes
17:47:09 <oklopol> something with :'s
17:47:13 <AnMaster> that is what you use for matching binaries
17:47:14 <AnMaster> well
17:47:17 <AnMaster> that is one part
17:47:17 <AnMaster> say
17:49:02 <oklopol> i don't think i've ever even written a function in erlang, but i remember reading the code of something like a tic-tac-toe server, dunno
17:49:13 <AnMaster> 1> DataReadFromFile = <<1,2,3,4,5,6,7>>
17:49:27 <oklopol> and part of a book, although i think functional programming was too hard for me to read back then 8|
17:49:32 <AnMaster> 2> <<Len:16/integer,Data/binary>> = DataReadFromFile.
17:49:32 <AnMaster> <<1,2,3,4,5,6,7>>
17:49:38 <AnMaster> 3> Len.
17:49:38 <AnMaster> 258
17:49:45 <AnMaster> 4> Data.
17:49:46 <AnMaster> <<3,4,5,6,7>>
17:49:49 <AnMaster> a simple example
17:50:25 <AnMaster> by default erlang uses big endian for binaries
17:50:25 <AnMaster> so, make that integer-little for little endian
17:50:25 <AnMaster> iirc
17:50:34 <oklopol> ah it was that <<>> thing
17:50:48 <oklopol> <:.> are my favorites of the whole ascii, methinks
17:50:55 <AnMaster> 5> <<LenLittle:16/integer-little,Data/binary>> = DataReadFromFile.
17:50:55 <AnMaster> <<1,2,3,4,5,6,7>>
17:50:59 <AnMaster> 6> LenLittle.
17:50:59 <AnMaster> 513
17:51:07 <AnMaster> reason it prints out that at the match
17:51:08 <AnMaster> is
17:51:15 <AnMaster> that the value of the whole match expression
17:51:15 <AnMaster> is that
17:51:31 <AnMaster> every expression in erlang has a value
17:51:37 <AnMaster> and basically everything is an expression
17:51:52 <AnMaster> you can even do X = case X of ....
17:51:54 <AnMaster> or such
17:52:25 <oklopol> hey i know that much
17:52:33 <oklopol> i just didn't remember how the binary thing worked
17:52:34 <AnMaster> (value of case would be value of last expression evaluated inside the case block, which would depend on what branch was taken)
17:52:38 -!- MigoMipo has quit (Remote closed the connection).
17:52:53 <AnMaster> oklopol, well, you can use the <<>> matching both ways. That is, to construct a binary too
17:53:02 <oklopol> i know :P
17:53:05 <AnMaster> :)
17:53:34 <AnMaster> pikhq, I really like erlang, type system could be better, but it is there optionally. As a annotation + static analyser tool
17:53:46 <AnMaster> read more about dialyzer and -spec/-type annotations
17:53:54 <AnMaster> pikhq, that should make you able to live with it
17:53:58 <AnMaster> I use it a lot
17:56:27 <pikhq> AnMaster: Needs to be a Haskell library.
17:56:34 <AnMaster> pikhq, eh?
17:56:43 <pikhq> The nice concurrency stuff.
17:56:44 <AnMaster> pikhq, erlang as a haskell library. Hah Hah.
17:56:53 <AnMaster> pikhq, well, it is pretty much tied into the language
17:56:58 <AnMaster> pikhq, and, the VM
17:57:05 <AnMaster> all the distribution stuff too
17:57:07 <AnMaster> and so on
17:57:24 <pikhq> Fine, fine. Needs to be a very large patch against GHC.
17:58:05 <Deewiant> Nah, a library would be fine
17:58:31 <pikhq> Deewiant: There's also the code hot-swapping stuff.
17:58:33 <AnMaster> oh and it supports watchdogs for beam too
17:58:40 <AnMaster> (beam is the name of the runtime/VM)
17:58:53 <AnMaster> (as well as the extension of compiled erlang files)
17:58:53 <Deewiant> pikhq: That's not outside library capabilities
17:59:04 <Deewiant> Efficiency might be :-P
17:59:05 <AnMaster> pikhq, oh and there is more you don't yet know about
17:59:07 <AnMaster> I bet
17:59:13 <pikhq> AnMaster: Likely.
17:59:20 <pikhq> I'm only starting.
17:59:39 <AnMaster> pikhq, SCTP support for example
17:59:47 <AnMaster> would be possible in haskell of course
17:59:56 <AnMaster> but, my point is, it would be a lot of work
17:59:57 <pikhq> SCTP?
18:00:03 <AnMaster> pikhq, better than TCP
18:00:17 <AnMaster> http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol
18:00:18 <AnMaster> anyway
18:00:22 <pikhq> Huh.
18:01:13 <AnMaster> pikhq, what about stuff like... SNMP support? The built in transaction database mnesia? It supports being distributed over several nodes btw. With fallbacks and what not
18:02:15 <AnMaster> it uses the ets tables (mutable storage inside erlang, only use it if profiling shows that dict or similar isn't enough!)
18:02:35 <AnMaster> for example, efunge uses ets for the funge space.
18:02:37 <AnMaster> but that is all
18:02:51 <AnMaster> anyway, ets would be a bit messy in haskell
18:02:57 <oklopol> erlang table storage?
18:03:00 <AnMaster> what with haskell wanting to be pure and such
18:03:04 <AnMaster> oklopol, erlang term storage
18:03:12 <oklopol> hmm right
18:03:43 <AnMaster> oklopol, provides one indexed column only. (as in, you can't make more than one column indexed, if you need that, use full blown mneisa)
18:03:51 <oklopol> did erlang have first-class funcs
18:03:57 <AnMaster> though, mneisa gives you overhead of transactions
18:04:14 <AnMaster> oklopol, now, I always mix those words up. Is that like continuation, or closure?
18:04:27 <pikhq> So, there's something in Erlang's favor: absurdly comprehensive libraries for concurrent, fault-tolerant programs.
18:04:34 <pikhq> AnMaster: Closure.
18:04:38 <AnMaster> right
18:04:40 <AnMaster> if so yes
18:04:49 <AnMaster> closures are not uncommon in erlang code
18:05:07 <pikhq> Erlang is a functional programming language.
18:05:15 <pikhq> I would *hope* that closures are quite common.
18:05:29 <pikhq> Given that... Every function is a closure...
18:05:35 <AnMaster> and passing other functions as return values/parameters is also common (the difference between closure functions and functions compiled in the module, is minimal)
18:05:45 <AnMaster> oh and it has list comprehensions
18:05:51 <AnMaster> AND binary comprehensions
18:06:01 <oklopol> first-class funcs doesn't necessarily imply closures, closures imply first-class functions though
18:06:12 <pikhq> oklopol: Erm. Well, yeah.
18:06:15 <oklopol> and yes, good point, i guess it wouldn't be much of a functional programming language without closures
18:06:21 <AnMaster> oklopol, also see http://en.wikipedia.org/wiki/First-class_function#Erlang
18:06:22 <AnMaster> ;P
18:06:48 <AnMaster> oklopol, it doesn't have continuations or backtracking though.
18:06:57 <oklopol> but you know you can pass those process id thingies along, but i guess it would be annoying to use that for all your closure needs
18:06:57 <AnMaster> but, I guess you could emulate that behaviour if you wanted
18:07:16 <AnMaster> oklopol, well, passing process ids around is quite common :)
18:07:22 <AnMaster> oh another thing binaries are good for
18:07:54 <AnMaster> each process has it's own garbage collected heap, this is for concurrency reasons. SMP + the "shared heap" mode just didn't work out well, it was tried.
18:08:14 <AnMaster> as an effect of this, sending messages between processes result in copies of the data
18:08:16 <AnMaster> HOWEVER
18:08:22 <AnMaster> this is not true for larger binaries
18:08:29 <AnMaster> since they are stored refcounted in a shared heap
18:08:38 <AnMaster> larger = more than 64 bytes iirc
18:08:46 <AnMaster> or around that
18:09:09 <AnMaster> oh and binary matching is fast
18:09:16 -!- ehird has joined.
18:09:27 -!- ehird has left (?).
18:09:47 <AnMaster> since erlang internally treats most operations on binaries as pointing into an existing binary
18:09:52 <AnMaster> same thing when appending to end
18:10:29 <AnMaster> (it's like appending to the start of a cons list, kind of)
18:11:13 <AnMaster> (as in, erlang stores how long the binary is in the "handle" for it, so different such "handles" can see different sections of the same binary in memory)
18:11:37 <AnMaster> of course, any good language does these sorts of optimisations
18:11:57 <AnMaster> pikhq, so, anything except the type system that you dislike in erlang
18:12:15 <pikhq> AnMaster: Syntax.
18:12:17 <AnMaster> (I don't count the ,.; issue as one, you will get used to it after a few days)
18:12:27 <AnMaster> pikhq, any part of syntax apart from the ,.; ?
18:12:31 <pikhq> But that's a qualm I have with everything, so.
18:13:22 <AnMaster> pikhq, and, I hated erlang syntax when I began. Like I hated LISP syntax when I began. But once you get used to them, so you no longer have to think about the correct syntax in *THIS* language to code in it, it works fine
18:13:26 <pikhq> AnMaster: No "let x in"!
18:13:33 <pikhq> No "where x = foo"!
18:13:50 <AnMaster> pikhq let I assume is like in scheme
18:13:54 <AnMaster> but what about the "where"?
18:14:23 <Deewiant> Like let, but after definitions
18:14:23 <pikhq> "where" is a lot like "let".
18:14:28 <oklopol> it's let but it becomes after the scope
18:14:28 <AnMaster> and, scheme-like let isn't something I missed
18:14:33 <AnMaster> in erlang
18:14:33 <oklopol> err
18:14:45 <AnMaster> pikhq, you are trying to code haskell in erlang right?
18:14:59 <AnMaster> pikhq, believe me, it must be better than how I started out. Which was C-like erlang
18:15:03 <oklopol> *-err
18:15:14 <pikhq> No, I'm wishing it was Haskell.
18:15:25 <pikhq> If I were coding Haskell in Erlang, I'd be implementing monads.
18:15:43 <AnMaster> pikhq, monads in erlang would probably slow the whole thing down a lot
18:15:53 <AnMaster> at least, without VM support
18:15:53 <AnMaster> that is
18:15:54 <pikhq> Yeah.
18:16:07 <pikhq> Monads are kinda hard to do without the type system supporting it.
18:16:11 <AnMaster> pikhq, write a haskell -> erlang compiler then
18:16:17 <AnMaster> since there is a lisp -> beam compiler
18:16:25 <pikhq> Screw that. Core -> Erlang.
18:16:39 <Deewiant> C -> Erlang?
18:16:42 <pikhq> Granted, Core is pretty much Haskell without the sugar.
18:16:46 <AnMaster> pikhq, that would be funny. Because Core is a format internally used in the erlang compiler
18:16:49 <AnMaster> so
18:16:56 <AnMaster> normal compilation goes like:
18:17:23 <AnMaster> Erlang -> Core -> Bytecode
18:17:32 <AnMaster> where bytecode may then be converted to native code using HIPE
18:17:33 <AnMaster> iirc
18:17:46 <AnMaster> at least, I think that is the leayer HIPE hooks into
18:18:00 <AnMaster> (not 100% sure, may work at Core instead)
18:18:31 <AnMaster> pikhq, but, Core is a machine readable format, which is quite unreadable to humans!
18:18:50 <AnMaster> (oh and it is "Core Erlang" it seems, but everyone just seems to call it "core" in #erlang and such)
18:18:52 <pikhq> And Haskell compilation goes like: Haskell -> Core -> Extensive whole-program transformation -> (Either (C -> Assembly) Assembly)
18:19:07 <AnMaster> pikhq, is that really "Core Haskell"?
18:19:13 <AnMaster> but everyone just calls it "core"?
18:19:26 <pikhq> Lemme look it up.
18:19:28 * pikhq finds GHC docs
18:20:06 <pikhq> It's just Core.
18:20:10 <AnMaster> mhm
18:20:14 <Deewiant> It's "<compiler> Core" where compiler is GHC, YHC, etc.
18:20:27 <Deewiant> (I forget which compilers have Cores)
18:20:30 <pikhq> Well. Yeah.
18:21:30 <pikhq> GHC Core sticks all pattern matching as "case" statements, does all functions as explicit lambdas, and a whole bunch of other stuff.
18:21:39 <nooga> uh
18:22:06 <pikhq> But it is for the most part a subset of Haskell. (well. Rather, that's the textual representation. GHC just keeps it in a tree unless you ask it to pretty-print it)
18:22:19 <AnMaster> if ehird wrote a haskell compiler I'm sure it wouldn't have a core, rather the ASM layer and the high level parts would fight for control all the time. Using capabilities.
18:22:33 <AnMaster> and, objects
18:22:49 <AnMaster> oh and that asm, would actually be either forth or smalltalk
18:23:27 <pikhq> Erm. Actually, doesn't GHC code generation go by way of C--? Hmm.
18:23:31 <AnMaster> <pikhq> GHC Core sticks all pattern matching as "case" statements, does all functions as explicit lambdas, and a whole bunch of other stuff. <-- pretty sure it is the same, when I made erlc dump the core program
18:23:47 <oklopol> GregorR: COME LOOK ANMASTER MADE A REFERENCE TO YOUR FAVORITE CONVERSATION
18:23:58 <oklopol> i'm sure your new thing is to be reminded of your mooing.
18:24:02 <oklopol> forever.
18:24:05 -!- ehird has joined.
18:24:08 -!- ehird has left (?).
18:24:13 <AnMaster> huh
18:24:23 <AnMaster> multiple function entry points gets turned into one entry point + case
18:24:25 <GregorR-L> Errr, doesn't even seem related?
18:24:25 <pikhq> Ehird must be log-reading.
18:24:35 <AnMaster> and all funs and such gets expanding outside
18:24:51 <oklopol> GregorR-L: "if ehird wrote a haskell compiler I'm sure it wouldn't have a core"
18:25:02 <oklopol> seemed to me like that could be seen as a reference
18:25:14 <AnMaster> oh and, list comprehension turns into generated functions
18:25:36 <GregorR-L> Apparently I wrote a bad generational garbage collector at some point, but it has amazingly shit-o cache locality, getting 100x more pagefaults than libgc (PS it's slower)
18:25:55 <AnMaster> GregorR-L, PS?
18:25:57 <AnMaster> oh
18:26:03 <AnMaster> PostScript
18:26:11 <oklopol> post scriptum
18:26:13 <AnMaster> so one written in postscript would be slower
18:26:15 <AnMaster> I see
18:26:18 <pikhq> GregorR-L: What about the GC for Plof 2?
18:26:19 <AnMaster> well, probably it would
18:26:22 <oklopol> afterwrittance
18:26:32 <AnMaster> GregorR-L, erlang's GC seems quite good
18:26:49 <AnMaster> unless you do extreme things
18:27:08 <GregorR-L> pikhq: IIRC that was ... libgc, plus some reference counting garbage :P
18:27:18 <AnMaster> (I only managed to tip it once, when using huge records with many subrecords and dicts and linked lists and so on nested in various layers)
18:27:18 <pikhq> Oh, right.
18:27:32 <pikhq> I forgot, I wrote some of that. *I should know better*.
18:27:39 <AnMaster> (this happened in my bf compiler when handling ais523's "hello world" from gcc-bf=
18:27:42 <AnMaster> s/=/)/
18:27:55 <AnMaster> (which was even larger than lostking)
18:28:09 <pikhq> AnMaster: It's GC for Plof.
18:28:24 <AnMaster> pikhq, btw, what are you trying to write in erlang
18:28:32 <oklopol> nothing
18:28:34 <AnMaster> and, I assume you will use OTP
18:28:48 <AnMaster> for the supervision tree of your processes
18:28:49 <AnMaster> and such
18:28:55 <AnMaster> that is a key part of erlang
18:28:58 <pikhq> AnMaster: Simple examples.
18:29:00 <pikhq> I is noob.
18:29:28 <AnMaster> pikhq, right. You need to learn the language and basic concurrency before starting to use OTP to make the concurrency implicit (kind of)
18:30:21 <oklopol> OTP?
18:30:45 <pikhq> Open Telecom Platform.
18:30:48 <AnMaster> OTP handles the (few) tricky race conditions that exists pretty nicely. Those ones are mostly related to the event of "process exiting/dying between checking it exists and doing something with it, replacing that with a better way to do things)
18:30:48 <oklopol> oh-some transaction protocol
18:30:53 <AnMaster> oklopol, no
18:31:00 <AnMaster> oklopol, the name is pretty much a bad name
18:31:02 <AnMaster> for a good thing
18:31:08 <AnMaster> it is really not related to telecom much
18:31:11 <AnMaster> well, originally it was
18:31:14 <pikhq> It's a standard library.
18:31:45 <AnMaster> well, OTP is actually most of the standard library in erlang iirc
18:31:48 <AnMaster> However
18:31:59 <AnMaster> mostly it actually refers to the supervision trees
18:32:03 <AnMaster> and SASL
18:32:19 <AnMaster> (which is not same SASL as is used for login for mail for example)
18:32:36 -!- MizardX has quit (Read error: 104 (Connection reset by peer)).
18:32:48 <AnMaster> supervision trees is important for fault tolerance and error logging/handling and such
18:32:58 <AnMaster> SASL is also important for these things
18:33:15 <AnMaster> pikhq, I recommend using a book when learning erlang
18:33:19 <AnMaster> which one are you using?
18:33:24 -!- MizardX has joined.
18:33:35 <AnMaster> Joe Armstrong's book is pretty good, but maybe a bit dated now
18:33:48 <pikhq> I'm just scrolling through the "getting started" book slowly.
18:33:49 <AnMaster> (Programming in Erlang - Software for a concurrent world)
18:33:51 <pikhq> Erm. Page.
18:34:00 <AnMaster> which is the one I used to learn erlang
18:34:05 <AnMaster> pikhq, getting started on the web?
18:34:06 <AnMaster> hm ok
18:34:25 <AnMaster> pikhq, I would definitely recommend a good book
18:34:27 <AnMaster> like that one
18:34:42 <AnMaster> ebook, try piratebay, but I think it is worth paying for
18:34:43 <AnMaster> though
18:34:45 <pikhq> More as a "get a clue WTF everything is" documentation than a comprehensive book, of course.
18:34:46 <AnMaster> there are newer ones
18:34:52 <AnMaster> pikhq, ah
18:35:14 <nooga> I HATE UNICODE HANDLING IN C++
18:35:21 <AnMaster> oh about that
18:35:25 <AnMaster> modern erlang versions
18:35:30 <AnMaster> has good unicode support
18:35:32 <AnMaster> this means
18:35:35 <AnMaster> R13B or later
18:35:42 <nooga> how am i supposed to pass unicode encoded path to fopen() ? HOOH?!
18:35:46 <AnMaster> older ones used some western europe ISO encoding
18:36:10 <AnMaster> nooga, um. Shouldn't you use a filestream object kind of thingy?
18:36:46 <pikhq> nooga: Assuming GNU C, UTF-8 encoded.
18:36:47 <AnMaster> if you are going for C++ I mean
18:36:54 <AnMaster> pikhq, he said C++
18:36:55 <pikhq> Any where else, good luck?
18:36:55 <AnMaster> above
18:37:06 <pikhq> Mmm.
18:37:11 <AnMaster> anyway
18:37:28 <AnMaster> pikhq, what erlang version are you using. I always recommend the last stable one
18:38:27 -!- MigoMipo has joined.
18:38:37 <pikhq> Whatever's stable in Gentoo.
18:39:23 <AnMaster> 12.2.5-r1
18:39:24 <AnMaster> ouch
18:39:32 <AnMaster> pikhq, well, you won't have unicode that way
18:39:53 <pikhq> Suggest something to keyword?
18:39:55 <AnMaster> go for ~amd64 if you want unicode, good regex (old regex stuff was *slow*)
18:40:01 <AnMaster> dev-lang/erlang ~amd64
18:40:05 <AnMaster> that's what I use
18:40:15 <pikhq> Okay, then.
18:40:17 <AnMaster> pikhq, for USE flags
18:40:21 <AnMaster> enable hipe
18:40:24 <AnMaster> if it isn't enabled
18:40:26 <pikhq> BTW, you don't need the "~amd64" bit any more; that's implicit.
18:40:29 <AnMaster> if you have more than one cpu
18:40:43 <AnMaster> enable smp then
18:40:44 <AnMaster> oh and
18:40:50 <AnMaster> you want to enable kpoll
18:40:53 <AnMaster> Installed versions: 13.2.1(12.42.10 2009-06-17)(doc emacs hipe kpoll sctp smp ssl tk wxwindows -java -odbc)
18:40:56 <AnMaster> see my useflags
18:41:24 <AnMaster> pikhq, I would definitely recommend hipe and kpoll. And doc if you plan to program
18:41:37 <pikhq> I have doc enabled system-wide.
18:41:38 <AnMaster> doc makes erl -man gen_tcp
18:41:40 <AnMaster> and such work
18:41:41 <AnMaster> that is
18:41:43 <AnMaster> man pages
18:41:47 <AnMaster> for all erlang modules
18:42:01 <AnMaster> pikhq, the erlang mode for emacs is very nice, but kate works fine too
18:42:04 <AnMaster> haven't tried any other editor
18:42:19 <pikhq> I use Emacs.
18:42:27 <AnMaster> pikhq, and as I said, if you have multiple cpus, or dual core, use +smp
18:42:37 <AnMaster> oh and wxwindows is nice too
18:42:42 <AnMaster> tk is very good to have
18:42:47 <AnMaster> otherwise most apps won't work
18:42:53 <AnMaster> I mean GUI apps
18:42:56 <AnMaster> like, the debugger
18:42:58 <AnMaster> and such
18:43:12 <AnMaster> I guess they will use wxwindows in the future
18:43:20 <AnMaster> but that support is new in R13B
18:43:29 <AnMaster> so most apps are still using TK
18:43:32 <AnMaster> Tk*
18:43:40 <AnMaster> pikhq, wait, you were/are a TCL fan right?
18:43:48 <AnMaster> so I guess you have tk useflag on then
18:43:52 <pikhq> Yeah.
18:44:03 <AnMaster> pikhq, does TCL use dynamic typing?
18:44:06 <pikhq> Tcl's my prefered imperative language.
18:44:19 <pikhq> Technically, yes.
18:44:23 <AnMaster> pikhq, HAH!
18:44:40 <pikhq> Though actually there's only one type. A string.
18:44:48 <AnMaster> pikhq, mhm
18:44:59 <AnMaster> pikhq, erlang has no strings. They are just lists of integers
18:45:16 <pikhq> Procedures treat this in varying ways, netting you something a lot like dynamic typing.
18:45:28 <pikhq> But it's all string manipulation.
18:45:36 <AnMaster> pikhq, that sounds worse than erlang's system
18:45:37 <AnMaster> I mean
18:45:56 <AnMaster> different functions could represent integers different ways
18:45:57 <AnMaster> like
18:46:05 <AnMaster> one could use localized integer format
18:46:13 <pikhq> Yes, but they don't.
18:46:13 <AnMaster> while another always used . for decimal point
18:46:23 <AnMaster> (Swedish use , for decimal separator)
18:46:27 <AnMaster> uses*
18:46:43 <nooga> no
18:46:50 <AnMaster> nooga, ?
18:46:52 <nooga> I can't use iostream
18:46:53 <pikhq> Because the standard number-handling procedures (expr and tcl::math::*) treat it the same way.
18:46:54 <nooga> because
18:47:03 <nooga> i'm faking MFC's CFile class
18:47:08 <pikhq> And only someone truly insane wouldn't.
18:47:10 <AnMaster> pikhq, what about representing something like a struct
18:47:11 <AnMaster> that is
18:47:24 <nooga> and i can't even pass wchar_t* fo fopen as a path
18:47:28 <pikhq> Why, you'd use a list.
18:47:28 <AnMaster> a data type with some fixed keys, each having a value
18:47:36 <AnMaster> pikhq, which is also a string?
18:47:41 <pikhq> Yes.
18:47:45 <AnMaster> pikhq, huh
18:47:53 <pikhq> But there are functions for treating a strign as a list.
18:47:53 <AnMaster> pikhq, an escaped string I presume?
18:47:55 <AnMaster> ouch
18:48:09 <AnMaster> pikhq, you would need to *escape* the string, and handle that
18:48:10 <AnMaster> right?
18:48:22 <pikhq> No, you just use the list handling functions.
18:48:28 <AnMaster> ok, so they do it
18:48:30 <AnMaster> right
18:48:43 <AnMaster> pikhq, what about nested lists? And such
18:48:47 <pikhq> Sure.
18:48:49 <AnMaster> oh and what about a binary search tree
18:48:55 <pikhq> list foo [list bar baz]
18:48:56 <AnMaster> that is, implemented in an efficient way
18:49:26 <nooga> i wonder is it possible to fully infer types in sadol program so i could use simple types in sadol compiler's C output
18:49:39 <pikhq> Strictly speaking, all this is implemented efficiently. What I'm describing is just its semantics. The interpreter actually represents all this things in a sane way.
18:50:00 <AnMaster> pikhq, so... list isn't actually stored as a string?
18:50:02 <pikhq> These things, even.
18:50:05 <AnMaster> unless you want to look at it that way
18:50:14 <AnMaster> in which case it has to translate it to a string?
18:50:15 <AnMaster> eh
18:50:19 <AnMaster> ok
18:50:23 <pikhq> A list isn't actually stored as a string until you ask for a string representation.
18:50:30 <AnMaster> right
18:50:37 <AnMaster> pikhq, so list is a BIF I presume?
18:50:45 <pikhq> BIF?
18:50:56 <AnMaster> pikhq, ah yes, a common word in the erlang world
18:51:01 <AnMaster> means Built In Function
18:51:07 <pikhq> Ah.
18:51:09 <pikhq> Yes.
18:51:12 <AnMaster> a function that is not coded in erlang, but part of the erlang VM
18:51:20 <AnMaster> all functions in the module erlang are like that
18:51:24 <pikhq> Yeah, it's built in.
18:51:30 <AnMaster> and then there are some outside
18:51:35 <AnMaster> like lists:reverse
18:51:42 <AnMaster> that is implemented as BIF for speed reasons
18:51:45 <pikhq> There's quite a few built in functions in Tcl.
18:51:53 <pikhq> Because there's hardly any syntax.
18:51:55 <AnMaster> pikhq, the list is quite long for erlang too
18:52:02 <AnMaster> certainly much longer than most LISPs
18:52:11 <AnMaster> but a lot deal with concurrency or data types
18:52:13 <pikhq> Twelve syntax and semantic rules.
18:52:36 <AnMaster> heh
18:53:25 <pikhq> http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm There's the whole thing.
18:53:31 <AnMaster> pikhq, oh btw, you can find the source code for erlang in places like /usr/lib/erlang/lib/stdlib-1.16.2/
18:53:32 <AnMaster> that is
18:53:35 <AnMaster> the parts coded in erlang
18:53:40 <AnMaster> not the parts that are BIFs
18:53:41 <AnMaster> anyway
18:53:46 <AnMaster> replace stdlib or whatever
18:53:51 <AnMaster> with the application you want
18:53:52 <AnMaster> where
18:54:01 <AnMaster> "application" is a word for and erlang concept
18:54:10 <AnMaster> and the version number too
18:54:17 <AnMaster> err, meant /usr/lib/erlang/lib/stdlib-1.16.2/src
18:54:29 <AnMaster> /usr/lib/erlang/lib/stdlib-1.16.2/ebin would contain the compiled files for example
18:54:57 <pikhq> Because of Tcl's quite simple semantics, metaprogramming is rather nice in it.
18:55:29 <AnMaster> pikhq, what about that last trule
18:55:30 <AnMaster> rule*
18:55:38 <AnMaster> is there any way to work around it
18:55:42 <AnMaster> like some sort of eval or such
18:55:59 <AnMaster> I mean
18:56:00 <pikhq> There's "eval" and there's {*}.
18:56:04 <AnMaster> hm
18:56:19 <pikhq> {*}{foo bar baz} is the same as writing out foo bar baz
18:56:40 <nooga> wat?
18:56:43 <pikhq> Before that, there was the "eval" function.
18:57:01 <pikhq> nooga: Without {*}, {foo bar baz} would be a single word, instead of three.
18:57:03 <AnMaster> if you want short descriptions of languages, I guess some sort of cellular automaton would win
18:58:36 <AnMaster> bbiab
18:58:40 -!- jix has joined.
18:58:59 <nooga> AnMaster: what do you mean?
19:03:06 <pikhq> It's a shame that Tcl doesn't have lambda builtin.
19:03:12 <pikhq> It breaks no semantics...
19:08:41 <pikhq> Eh, you can manage it pretty well by letting unknown know that it should expand the first word with {*} and then proc lambda {arg body} {return [list apply [list $args $body]]}.
19:11:19 <pikhq> (if Tcl can't evaluate something, it passes the entire command to the unknown proc)
19:12:26 <AnMaster> pikhq, there is some function invoked when there is an unknown function in erlang, normally it tries to load the matching module, and fails it it can't find that module
19:12:29 <AnMaster> iirc
19:13:38 <pikhq> Normally, unknown just does error handling.
19:13:45 <nooga> uhm
19:14:02 <pikhq> But, you can do this quite easily: proc unknown args [list {your code here} [info body unknown]]
19:14:02 <nooga> we don't like langs that care about whitespace?
19:15:57 <oklopol> no, we don't, that's our thing
19:17:21 <nooga> that's a pitty
19:18:09 <nooga> better SADOL with normal multi-character identifiers and literals would have to care about whitespace
19:18:41 <nooga> otherwise lexical analysis would be impossible, since you don't declare identifiers before you use them
19:22:02 * pikhq is not amused with the idea of functions which can't be done in pure Erlang that are referentially transparent
19:22:33 <oklopol> like what?
19:22:44 <pikhq> "atom_to_list".
19:23:20 <pikhq> The only functions in Haskell that aren't themselves written in Haskell are in the IO monad.
19:23:36 <pikhq> (and `seq` and `par` and other such hacks)
19:23:36 <pikhq> :P
19:24:03 <oklopol> atom_to_list can't be done at all?
19:24:16 <oklopol> or what would you need for that
19:24:46 <pikhq> case x of (every single atom -> every single atom as a string) end.
19:25:01 <oklopol> why can't that be done?
19:25:09 <oklopol> or do you mean it'd be infinite
19:25:13 <pikhq> ... Because that would be a function of infinite length.
19:25:18 <oklopol> the same thing would happen when defining (+) in haskell
19:25:29 <pikhq> Grrawr. Right.
19:25:37 <oklopol> unless you define numbers as naturals, but then again you could define your own atoms in erlang, as lists
19:25:43 <oklopol> and i'm somewhat right, yes
19:25:45 <pikhq> You can't use that function in a guard.
19:26:11 <pikhq> (they restrict what can be used in a guard to avoid side effects somewhat)
19:26:13 <pikhq> NO SIDE EFFECTS!
19:26:16 <oklopol> ah
19:26:16 <pikhq> NONE!
19:26:21 <oklopol> yes i remember now
19:26:30 <pikhq> PIKHQ HATE SIDE EFFECTS IN HIS FUNCTIONAL LANGUAGE
19:26:46 <oklopol> :-)
19:27:11 <pikhq> PIKHQ WANT GRAPH REDUCTION
19:27:18 <GregorR-L> Plof wurve side effects in his functional language :P
19:27:59 <pikhq> Plof is clearly a multi-paradigm language.
19:28:17 <pikhq> Implemented using metaprogramming.
19:28:55 <GregorR-L> I've come to the conclusion that the GGC I just stumbled across in codu.org/projects is salvageable, and may even be fast, if I fix a few things.
19:29:13 <pikhq> Yay!
19:29:44 <pikhq> Nice blank Trac page, BTW.
19:29:54 <GregorR-L> 8-D
19:30:30 <pikhq> That looks like a very small GC.
19:31:52 <GregorR-L> There, the Trac page is now not entirely blank, happy? :P
19:31:58 <pikhq> ... Is that wrapping Boehm GC?
19:32:33 <GregorR-L> The (n+1)th generation, where n is the number of generations implemented by GGC, is libgc.
19:32:48 <pikhq> You are stunningly lazy.
19:33:16 <GregorR-L> That's pretty much the standard way of doing such a thing. Copying objects that are so long-lived and so few that they literally never trigger a libgc collection in any of my tests is pretty pointless.
19:33:17 <pikhq> Whether that is an insult or high praise, I'm not sure.
19:34:29 * pikhq needs to look up generational garbage collection
19:35:41 <pikhq> Ah.
19:35:47 <pikhq> Okay, that makes perfect sense.
19:36:07 <pikhq> Still somewhat lazy to use libgc for it, but makes sense.
19:36:16 <GregorR-L> libgc is good stuff :P
19:36:28 <GregorR-L> And besides, like I said, I've never triggered a libgc collection, so who cares? :P
19:36:34 <GregorR-L> I could use malloc for that and get the same result :P
19:37:48 <pikhq> Basically you're just using libgc so you don't have to actually *implement* the final generation.
19:38:22 <GregorR-L> The final generation would probably just be mark-and-sweep anyway, so why would I implement it? :)
19:38:34 <pikhq> Heheh.
19:40:57 <pikhq> So, GGC makes sense until I get to the collect function.
19:41:02 <pikhq> I'm going to assume that's magic.
19:41:31 <GregorR-L> It is.
19:42:54 <GregorR-L> Like my if (0) there, btw?
19:43:41 <pikhq> That seems like a very Tclish thing.
19:44:07 <pikhq> (if {0} { ... } is used for block comments, since { ... } will never be evaluated, and thus, never parsed.)
19:44:53 <GregorR-L> Well, this is C, so it will be parsed ;)
19:45:00 <pikhq> Heheh.
19:45:23 -!- Pthing has joined.
19:46:02 <pikhq> Anyways. Looks to me like the only hard thing about making Plof use that is rewriting all the memory accesses to use your macros.
19:46:09 <pikhq> So, painful, but trivial.
19:46:09 -!- BeholdMyGlory has quit (Remote closed the connection).
19:46:16 -!- Sneezle has joined.
19:46:25 <GregorR-L> Yuh, but it's not a good idea until I can be at least somewhat sure that this'll be faster than libgc :P
19:46:29 -!- BeholdMyGlory has joined.
19:46:30 <pikhq> True.
19:46:55 <AnMaster> <pikhq> So, GGC makes sense until I get to the collect function.
19:47:02 <AnMaster> what is the collect function?
19:47:16 <GregorR-L> AnMaster: GGC is a garbage collector. The collect function is ... the collector.
19:48:04 <AnMaster> pikhq, "referentially transparent"?
19:48:14 <pikhq> AnMaster: No side effects.
19:49:02 <AnMaster> <pikhq> ... Because that would be a function of infinite length. <-- heheh, I'm not going to tell you something about this until the day you really love erlang. And hopefully by that day they fixed it.
19:49:16 <AnMaster> In fact, it is planned to be fixed for the next major release
19:49:54 <pikhq> y = f(x) % And f does nothing other than some manipulation of x and return y. If you put in x, f returns y. Always.
19:50:06 <AnMaster> pikhq, anyway, erlang atoms are limited to 255 chars currently iirc.
19:50:11 <nooga> nobody expects GCC and RMS
19:50:18 <pikhq> f(x) -> x+2 % That's referentially transparent.
19:50:37 <pikhq> f(x) -> io:format("~w~n", x) % That's not.
19:51:52 <AnMaster> <GregorR-L> libgc is good stuff :P <-- bohem-gc?
19:51:59 <GregorR-L> Yeah
19:52:07 <nooga> boehm?
19:52:15 <GregorR-L> `google boehm garbage collector
19:52:17 <HackEgo> Hans Boehm's page on the widely used Boehm-Demers-Weiser conservative garbage collector for C/C++. The Boehm-Demers-Weiser conservative garbage collector ... \ www.hpl.hp.com/personal/Hans_Boehm/gc/ - [16]Cached - [17]Similar
19:52:30 <nooga> personally i think this is shiet
19:52:45 <nooga> because of C++'s idiotic strict syntax
19:53:09 <GregorR-L> I've never used it with C++ *shrugs*
19:53:16 <nooga> oh
19:53:24 <nooga> it should be just fine with C
19:53:29 <pikhq> GregorR-L: It replaces new.
19:54:00 <GregorR-L> I suppose that's an issue if you want to sometimes use malloc()-based and sometimes not?
19:54:17 <nooga> pools are good idea
19:54:21 <nooga> you open pool
19:54:24 <nooga> alloc shit
19:54:31 <nooga> and then release pool
19:54:33 <AnMaster> pikhq, the bad bit, that they plan fixing to the next major version is that atoms are stored in a pool of atoms, and that pool is size limited, and not garbage collected. The size is rather huge though. IIRC 2^30 or something like that. But yeah, they plan to fix it
19:54:39 <pikhq> Also, nice use of if(0). ;)
19:55:57 <pikhq> lists:map(fun convert_to_c/1, List) % THIS IS MORE TYPING THAN IT SHOULD BE
19:56:02 <pikhq> GRAAWW NEED TYPE INFERENCE
19:58:31 <nooga> TYPE INFERENCE IS ÜBER COOL
19:59:43 <nooga> dun't yoy þink?
20:00:41 <AnMaster> <pikhq> lists:map(fun convert_to_c/1, List) % THIS IS MORE TYPING THAN IT SHOULD BE
20:00:45 <AnMaster> why are you doing that
20:00:58 <pikhq> In the tutorial.
20:01:02 <AnMaster> pikhq, use a list comprehension
20:01:04 <AnMaster> well
20:01:04 <pikhq> I was pasting an example in it.
20:01:09 <AnMaster> depends on what convert_to_c
20:01:10 <AnMaster> does
20:01:18 <AnMaster> tell me what convert_to_c does
20:01:26 <pikhq> Converts from Fahrenheit to Celsius.
20:01:30 <pikhq> Contrived example.
20:01:32 <AnMaster> pikhq, forumla
20:01:36 <AnMaster> formula*
20:02:33 <AnMaster> or link to tutorial pikhq
20:02:39 <nooga> better listen to funk
20:02:42 <AnMaster> because I'm pretty sure I can write it in a shorter way
20:02:58 <pikhq> http://www.erlang.org/doc/getting_started/seq_prog.html#2.13
20:03:18 * pikhq is being very slow. Damned IRC
20:03:40 <AnMaster> pikhq, well, ok, that is to demonstrate funs
20:03:44 <AnMaster> but
20:04:00 -!- GregorR-L has quit ("Leaving").
20:04:06 <pikhq> It's much more typing than it should be for that.
20:04:40 <nooga> ~f1*-#_0,232/59
20:04:48 <nooga> pretty short
20:05:36 <AnMaster> okay, not all are in f to begin with
20:05:37 <AnMaster> meh
20:05:45 <pikhq> I was going to go with ((\x->(x-32)*5/9)<$>), myself.
20:07:24 <pikhq> Mmmm, partial application.
20:07:34 <Deewiant> map((*5/9).(+(-32)))
20:07:54 <pikhq> Deewiant: Oh, sure, if you hate applicative. And want less lambda.
20:08:12 <Deewiant> Just golfing
20:08:19 <oklopol> (+(-32))?
20:08:21 <Deewiant> "map" is shorter than "(<$>)"
20:08:23 <oklopol> ah
20:08:38 <Deewiant> It should have the same type anyways :-P
20:08:39 <oklopol> don't you dare explain
20:08:39 <pikhq> oklopol: Partial application of +, and unary -.
20:08:44 <oklopol> argh
20:08:47 <Deewiant> :-D
20:08:47 <AnMaster> pikhq, if you didn't care about order
20:08:49 <oklopol> i know
20:08:50 <AnMaster> this might work
20:09:00 <AnMaster> 2> [{Loc,{c,trunc((TempF - 32) * 5 / 9)}} || {Loc,{f,TempF}} <- Temps] ++ [X || X = {_,{c,_}} <- Temps].
20:09:00 <AnMaster> [{cape_town,{c,21}},
20:09:00 <AnMaster> {paris,{c,-2}},
20:09:00 <AnMaster> {london,{c,2}},
20:09:00 <AnMaster> {moscow,{c,-10}},
20:09:01 <AnMaster> {stockholm,{c,-4}}]
20:09:05 <AnMaster> where Temps contains that example list
20:09:13 <AnMaster> yeah, the mixed list messed it up
20:09:18 <AnMaster> I'm sure there is some shorter way
20:09:19 <nooga> !sadol ~f1*-#_0,232/59 !f,3113
20:09:29 <nooga> wut
20:09:31 <nooga> not again
20:09:51 <pikhq> AnMaster: That is... Very verbose.
20:10:05 <AnMaster> pikhq, yeah, I could golf it however
20:10:11 <AnMaster> pikhq, just too lazy
20:10:33 <oklopol> Deewiant: (*5/9) works?
20:10:37 <pikhq> map (\x -> (x-32)*5/9) -- is actually how you'd *write* it normally.
20:10:52 <Deewiant> oklopol: Sure: multiply by 5/9
20:11:00 <oklopol> but
20:11:00 <AnMaster> pikhq, yes. But note the list was mixed c and f
20:11:06 <oklopol> * and / have the same precedence
20:11:07 <Deewiant> pikhq: map ((*5/9) . subtract 32)
20:11:08 <AnMaster> so you should only convert those in f
20:11:09 <pikhq> Yeah, yeah, yeah.
20:11:10 <AnMaster> pikhq, ^
20:11:11 <Deewiant> Is how I'd write it
20:11:21 <AnMaster> pikhq, otherwise it would have been much shorter in erlang too
20:11:24 <pikhq> Deewiant: Or that.
20:11:31 <pikhq> Okay, okay.
20:11:32 <Deewiant> oklopol: Ah, true
20:11:37 <Deewiant> It might not work
20:11:52 <Deewiant> (5/9*) will, though
20:11:53 <oklopol> doesn't seem to work on mine
20:12:03 <AnMaster> pikhq, something like [{Loc,trunc((Temp-32)*5/9)}||{Loc,Temp}<-Temps].
20:12:04 <oklopol> and yeah
20:12:08 <AnMaster> to keep the location too
20:12:16 <AnMaster> pikhq, which is way less verbose
20:12:19 <AnMaster> anyway
20:12:40 <pikhq> data TempType = C | F; let f (C, x) = x;f (F, x) = ((*5/9) . subtract 32) in map f
20:12:41 <AnMaster> the mix make it a bad idea to use a list comprehension
20:13:17 <AnMaster> pikhq, why are you using map
20:13:22 <AnMaster> instead of a list comprehension
20:13:34 <AnMaster> pikhq, do it with a list comprehension in haskell please
20:14:45 <pikhq> [(x-32)*5/9 | x <- list]
20:14:58 <pikhq> AnMaster: Because map is idiomatic Haskell.
20:15:27 <pikhq> Oh, wait, it had locations, didn't it?
20:15:29 <AnMaster> <pikhq> lists:map(fun convert_to_c/1, List) % THIS IS MORE TYPING THAN IT SHOULD BE
20:15:29 <AnMaster> <pikhq> GRAAWW NEED TYPE INFERENCE
20:15:37 <AnMaster> what part would type inference help with
20:15:44 <pikhq> AnMaster: fun
20:15:46 <AnMaster> pikhq, it did
20:16:04 <pikhq> [(loc,(x-32)*5/9) | (loc, x) <- list]
20:16:13 <pikhq> And now for that in parallel!
20:16:19 <AnMaster> pikhq, {Location,{c|f,Temperature::integer}}
20:16:21 <AnMaster> where
20:16:25 <AnMaster> location is ANY type
20:16:26 <pikhq> [: (loc,(x-32)*5/9) | (loc, x) <- list :]
20:16:27 <AnMaster> :P
20:16:33 <AnMaster> either string or atom or integer
20:16:37 <AnMaster> can you do that in haskell
20:16:42 <AnMaster> or is it too strictly typed
20:16:49 <pikhq> AnMaster: Sure.
20:17:09 <AnMaster> <pikhq> [: (loc,(x-32)*5/9) | (loc, x) <- list :]
20:17:16 <AnMaster> that is about same as the erlang one
20:17:22 <AnMaster> except it added a "trunc" there
20:17:26 <pikhq> In fact, I just did that in Haskell.
20:17:28 <AnMaster> pikhq, sure the rounding is correct
20:17:31 <AnMaster> for floating point
20:17:40 <AnMaster> and negative values
20:17:50 <AnMaster> because, round towards zero is wrong
20:17:58 <AnMaster> or rather
20:18:00 <AnMaster> well
20:18:05 <AnMaster> whatever trunc does is correct
20:18:09 <AnMaster> forgot which way it works
20:18:14 <AnMaster> maybe it IS towards zero
20:18:43 <pikhq> Fine, fine. [: (loc, trunc ((x-32)*5/9)) | (loc, x) <- list :]
20:18:59 <AnMaster> pikhq, not much different from the erlang one eh?
20:19:07 <AnMaster> just an extra : at each end
20:19:08 <AnMaster> and
20:19:13 <AnMaster> () instead of {}
20:19:19 <AnMaster> oh and
20:19:26 <pikhq> The : and : are only to make the comprehension run *in parallel*.
20:19:29 <AnMaster> Loc and X was upper case in Erlang of course
20:20:12 <AnMaster> pikhq, hm interesting. would go against erlang's paradigm for concurrency though
20:20:12 <AnMaster> well
20:20:16 <AnMaster> I guess it could be done
20:20:20 <AnMaster> as spawning worker threads
20:20:25 <AnMaster> not sure how efficient that would be
20:20:30 <AnMaster> for such a small list
20:20:41 <pikhq> Haskell provides many ways of doing parallelism and concurrency.
20:20:41 <AnMaster> or, with so little computation done by each thread
20:21:07 <pikhq> Parallel list comprehensions is just one of them.
20:21:34 <AnMaster> pikhq, computing that value is probably faster on a single cpu, unless you split them in two sizable batches
20:21:41 <AnMaster> like 500 per CPU
20:21:54 <AnMaster> and even then it wouldn't be noticable
20:21:58 <AnMaster> unless you increase it a lot
20:22:07 <AnMaster> (the computation I mean)
20:22:36 <pikhq> That could be written as: parMap (some parallelism strategy here) $ snd (\x->trunc $ (x-32)*5/9) -- BTW.
20:22:48 <AnMaster> pikhq, overhead of telling another thread (possibly from a pool of worker threads) to do this, would be larger than actually just doing it
20:22:50 <AnMaster> that is my point
20:22:51 <pikhq> Erm. second, not snd.
20:22:58 <pikhq> AnMaster: Sure.
20:23:19 <AnMaster> pikhq, snd makes it play the notes on a instrument attached through the USB port?
20:23:37 <pikhq> No, snd gets the second value of a two-tuple.
20:23:40 <AnMaster> say, Stradivarius 2.0 (Now with USB 3.0!)
20:23:46 <AnMaster> ;)
20:23:57 <pikhq> second applies an arrow to the second arrow in a two-tuple.
20:24:07 <AnMaster> pikhq, oh you mean {_,X} = T
20:24:09 <AnMaster> or so
20:24:10 <AnMaster> right
20:24:17 <pikhq> (a function just happens to be an arrow)
20:28:08 -!- ais523 has quit (Read error: 60 (Operation timed out)).
20:47:37 <AnMaster> pikhq, still erlang does it's job well :P
20:47:42 <AnMaster> whatever you think about it's syntax
20:48:05 <pikhq> AnMaster: No, it does it poorly.
20:48:17 <pikhq> Almost everything else simply doesn't *do* it, though.
20:48:18 <AnMaster> pikhq, oh?
20:48:23 <AnMaster> pikhq, ah
20:48:32 <AnMaster> well, interesting point of view
20:48:46 * pikhq would like for Haskell to have network transparent MVars.
20:48:50 <AnMaster> pikhq, plan9 would do it, except it doesn't have anything built in to handle the fall back or such
20:49:04 <pikhq> (given that, Haskell
20:49:23 <AnMaster> haskell what?
20:49:31 <pikhq> 's concurrency primitives would work just fine for that)
20:49:41 <AnMaster> pikhq, oh and iirc funs are network transparent in erlang
20:49:44 <AnMaster> but
20:49:50 <AnMaster> I don't remember the details about that
20:50:04 <AnMaster> iirc there *used* to be complex rules, but aren't any more
20:50:08 <AnMaster> so I guess it just works nowdays
21:02:14 -!- ais523 has joined.
21:17:48 <AnMaster> hi ais523
21:17:50 -!- ehird has joined.
21:17:51 <ehird> meh
21:17:53 <ais523> hi ehird
21:17:55 <ais523> and hi AnMaster
21:19:58 <ehird> that convert_to_celsius makes me rage.
21:20:03 <ehird> time to do some Jew^WK magic
21:21:36 <AnMaster> ehird, why is that?
21:21:39 -!- andi___ has changed nick to andi_.
21:21:44 <ehird> verbose
21:21:57 <ehird> also silly % No conversion needed / % Do the conversion comments
21:22:10 * ehird rewrites
21:22:22 <AnMaster> ehird, remember the format: a list of 2-tuple (location,(c or f, temperature))
21:22:30 <ehird> I am well aware, thanks.
21:22:32 <AnMaster> adapt as needed to language
21:22:40 <AnMaster> but note all the info should be there
21:22:46 <ehird> However, I will just deal with (c or f,temperature); as location isn't processed, it should not be part of the function input.
21:22:56 <ehird> Instead, (location,convert (c or f,temp)) should be the call.
21:23:04 <AnMaster> ehird, sounds fine
21:23:06 <ehird> No, this is not identical to the example; yes, this is saner coding.
21:23:08 <ais523> wait, wtf is going on here?
21:23:22 <ais523> also, that data structure is really weird, why use something like that in anything but Unlambda
21:23:30 <ehird> er, you mean
21:23:32 <ehird> lists?
21:23:36 <ehird> Craaaaaaaaaazy
21:24:06 <ais523> I mean, nesting them like that
21:24:06 <AnMaster> ais523, those are tuples
21:24:06 <ais523> why (location, (c or f, temperature)) rather than (location, c or f, temperature)
21:24:07 <ais523> I know they're tuples
21:24:07 <AnMaster> ais523, so I guess it is a generic tempature tuple
21:24:13 <ehird> exactly
21:24:14 <AnMaster> attached to a location tuple
21:24:17 <ehird> (c or f, temperature) represents a temperature
21:24:22 <ehird> then (location, temp)
21:24:23 <AnMaster> but that might be attached to, say, another tuple
21:24:24 <AnMaster> like
21:24:37 <AnMaster> (day and time, temp)
21:24:40 <AnMaster> stored in a list
21:24:43 <AnMaster> for that location
21:26:11 -!- Asztal^_^ has quit (".").
21:26:17 <AnMaster> reference counting has a nice property (assuming non concurrent execution): You can optimise a modification into a destructive update, instead of a copy and change, if you know you have the only reference
21:26:21 * AnMaster just realised this
21:26:38 <ehird> um
21:26:43 <ehird> that's a property of all gc
21:26:46 <ehird> ghc does that
21:27:16 <oklopol> all gc knows whether there's just one reference to an object?
21:27:39 <oklopol> weird.
21:29:17 <ehird> AnMaster: kay
21:29:26 <ehird> f2c:{(x-32)*5%9}
21:29:27 <ehird> conv2c:{(`c;(x[1];f2c[x[1]])[x[0]~`f])}
21:29:27 <ehird> then
21:29:39 <ehird> conv2c (`c;-10)
21:29:39 <ehird> (`c;-10)
21:29:39 <ehird> conv2c (`f;70)
21:29:39 <ehird> (`c;21.11111)
21:32:09 <ehird> 12:21:34 <AnMaster> pikhq, computing that value is probably faster on a single cpu, unless you split them in two sizable batches
21:32:10 <ehird> nope
21:32:17 <ehird> it uses advanced vectorisation stuffs
21:32:20 <ehird> cleverer than that
21:34:17 <ehird> btw, conv2c can also be written
21:34:18 <ehird> conv2c:{(`c;:[x[0]~`c;x[1];fsc[x[1]]])}
21:34:24 <ehird> using a conditional like it should be
21:34:30 <ehird> instead of an icky array index
21:34:32 <ehird> same code length
21:34:43 <ehird> but this example is _very_ tenuous
21:34:49 <ehird> who stores temperatures in this way?
21:35:10 <ehird> if two different sources for two different cities give a different scale, convert it in the source backend
21:35:20 <ehird> don't keep them mingled and convert them before displaying!
21:38:47 <AnMaster> <ehird> that's a property of all gc <-- not of mark and speed
21:38:50 <AnMaster> sweep*
21:39:13 <ehird> you can still do it
21:39:39 <AnMaster> ehird, well yes probably
21:39:54 <ehird> pretty sure ghc used to do mark and sweep
21:39:57 <ehird> although wait
21:40:01 <ehird> that's static analysis iirc
21:40:07 <ehird> ignore me, i'm full of bullshit
21:40:08 <ehird> THIS ONE TIME
21:40:48 <AnMaster> ignore taking effect from (and including) the line <ehird> THIS ONE TIME
21:40:49 <AnMaster> ;P
21:40:57 <AnMaster> `addquote <ehird> ignore me, i'm full of bullshit
21:40:58 <HackEgo> 72|<ehird> ignore me, i'm full of bullshit
21:41:17 <ehird> `addquote <AnMaster> ehird, well yes probably
21:41:18 <HackEgo> 73|<AnMaster> ehird, well yes probably
21:41:24 <AnMaster> ehird, ok
21:41:25 <ehird> It's not much, but we must fight with the weapons we have.
21:41:36 <ehird> Me admitting I'm full of shit, you half-agreeing with me.
21:42:04 <AnMaster> ehird, I feel mine is like a nuke to your dagger
21:42:18 <AnMaster> if you see what I mean
21:42:25 <ehird> more like Concrete Donkey vs Prod.
21:42:29 <AnMaster> and that dagger being made out of stone
21:42:34 <ehird> we're talking targeted weapons here, after all.
21:42:39 <AnMaster> ehird, concrete donkey? Hm
21:42:42 <ehird> Worms.
21:42:43 <AnMaster> where did you get that from
21:42:45 <ehird> Also Prod.
21:42:48 <AnMaster> ehird, oh, never played it
21:43:04 <ehird> AnMaster: A gigantic concrete donkey comes out of the sky and repeatedly bashes the land and worms until it hits the sea.
21:43:21 <ehird> It's, uhh... fairly rare.
21:43:34 <ehird> ...Prod being infinitely common, and being useful if you happen to be right next to a worm that's on the very edge of some land with some sea next to it.
21:43:37 <ehird> Well, water, not sea.
21:43:42 <AnMaster> ehird, guided arrow? vs. uh... AIM-9 Sidewinder?
21:43:47 <ehird> Meanwhile,
21:43:47 <ehird> true if the Taiwan calendar is hidden; otherwise, false. By default, this method returns true and the Taiwan calendar cannot be displayed for the following SPLangId values: PeoplesRepublicofChina, HongKongSAR, and MacaoSAR.
21:43:47 <ehird> — http://msdn.microsoft.com/en-us/library/ms441219.aspx
21:44:35 <ais523> where did you find that?
21:44:39 <ais523> as in, who/what linked you to it?
21:44:42 <ehird> proggit
21:44:46 <AnMaster> actually
21:44:46 <AnMaster> make it
21:44:53 <AnMaster> AIM-120 AMRAAM
21:44:55 <AnMaster> much cooler
21:45:05 <ehird> http://learnyousomeerlang.com/
21:45:05 <ehird> erlang community--
21:45:17 <ehird> okay, so learn you a haskell was similar in style to why's poignant guide, except not
21:45:24 <ehird> "It has cartoons, and, and, is funny!"
21:45:28 <ehird> But that's just a direct 1:1 ripoff.
21:45:48 <ehird> mh, bonus gave permission
21:45:50 <ehird> still lameo.
21:47:01 <AnMaster> <ehird> http://learnyousomeerlang.com/ <-- didn't I see something like that for haskell too?
21:47:04 <fizzie> Engfeh. Finally got a picture on the third monitor, and now it seems that Xinerama disables XRandR completely, but the only rotation support in the "radeon" driver is via XRandR. I guess Xinerama is sort-of deprecated, but XRandR itself is not capable of merging screens from two different graphics cards.
21:47:06 <AnMaster> also I never seen that site before
21:47:09 <AnMaster> seems horribke
21:47:12 <AnMaster> horrible*
21:47:15 <ehird> AnMaster:
21:47:15 <ehird> 21:45] ehird: erlang community--
21:47:16 <ehird> [21:45] ehird: okay, so learn you a haskell was similar in style to why's poignant guide, except not
21:47:16 <ehird> [21:45] ehird: "It has cartoons, and, and, is funny!"
21:47:16 <ehird> [21:45] ehird: But that's just a direct 1:1 ripoff.
21:47:16 <ehird> [21:45] ehird: mh, bonus gave permission
21:47:18 <ehird> [21:45] ehird: still lameo.
21:47:23 <ehird> You win the "cannot read two lines forward" award.
21:47:30 <ehird> Two. damn. Lines. Directly after.
21:47:34 <ehird> >_<
21:47:58 <AnMaster> why's poignant guide? Link?
21:48:12 <ehird> To Ruby.
21:48:13 <ehird> http://poignantguide.net/ruby/
21:48:42 <ehird> Cartoon foxes + cartoon everything + a good helping of what can only be LSD + oh yeah, some programming on the side + it has a goddamn soundtrack album + it's a book + SOUNDTRACK ALBUM = that.
21:48:57 <ehird> also, pretty fun book.
21:49:11 <ehird> despite not having been added to since like 200x for some value of x.
21:50:50 <AnMaster> ehird, what does the word "poignant" mean?
21:51:06 <ehird> Like unto a wiktionary and/or google.com. http://en.wiktionary.org/wiki/poignant
21:59:54 <fizzie> This is so ungood it's not even fun. It seems that I can only get the three monitor setup working without Xinerama, and that means no Firefox on two monitors, or moving windows around.
22:00:31 <ehird> Firefox on two monitors? but your monitors have borders it'll be awful for content that goes across >_<
22:00:56 <fizzie> Eh, eh.
22:08:45 <pikhq> Conkeror on two monitors would be pretty awesome, though.
22:09:22 <ehird> pikhq: ... that does not change the page body at all.
22:09:23 <ehird> Imagine:
22:09:32 <pikhq> ehird: Two buffers, side by side.
22:09:39 <pikhq> *Not* a single page on both screens.
22:09:41 <ehird> hel | | | | lo, world!
22:09:44 <pikhq> That just would hurt.
22:09:45 <ehird> pikhq: Well, right.
22:09:50 <ehird> That's what fizzie's doing, I think.
22:09:57 <ehird> Since I don't think firefox does splitscreen.
22:10:31 <ehird> also, anyone who hasn't seen http://www.youtube.com/watch?v=NmpIEbiRyCU&fmt=22 should rectify that.
22:10:32 <pikhq> BTW, Erlang is awful. Its concurrency primitives are pretty good. Everything else is just *bad*.
22:11:29 <ehird> yeah
22:11:30 <pikhq> Oh, and code hot swapping. That's a nice feature.
22:11:38 <ehird> the language itself is a crappy relic
22:12:00 <ehird> (like all non-K languages amirite)
22:14:35 -!- Sgeo has joined.
22:14:51 <fizzie> Huh? Of course I mean two different firefox windows, both tiled fullscreen on the two separate monitors. And that's what firefox seems unable to do without Xinerama, since it insists on having all its windows on the same screen. And I really don't want to run two instances of firefox, with two different profiles.
22:15:50 <fizzie> Anyway, I had of course forgotten the simple solution, which was just to swap some cables around and use the static "Rotate" "left" option of the nvidia driver to control that rotated screen. Which I guess is all well and good, since turns out the radeon driver didn't 2d-accelerate rotated modes.
22:19:13 <fizzie> Now if I could just figure out why on earth it thinks this 1600x1200 monitor is actually a 1600x1600 monitor.
22:22:53 <fizzie> It just says "Output DVI-0 using initial mode 1600x1200", then "Display dimensions: (408, 306) mm" and "DPI set to (99, 132)". That vertical-DPI value is obviously computed as 1600/(306/25.4).
22:25:13 <nooga> again
22:25:15 <nooga> AGAIN!
22:25:19 <nooga> pointless discussion
22:25:35 <nooga> will bring flamewar probably
22:27:51 -!- andi_ has quit (Read error: 110 (Connection timed out)).
22:30:46 -!- MigoMipo has quit ("ChatZilla 0.9.84 [Firefox 3.5.1/20090715094852]").
22:31:40 -!- MigoMipo has joined.
22:31:59 -!- Sgeo has quit (Remote closed the connection).
22:51:41 <ais523> <Tasonir> Having rechecked this in the hour since my original post, zero is now ahead by 4000 bits. There seems to be people intentionally gaming the system. Although since the system isn't really meant to do anything, I'm not really sure if 'gaming' it is the right term.
23:02:48 <nooga> ehird: http://poignantguide.net/ruby/
23:02:48 <nooga> 22:48 ehird: Cartoon foxes + cartoon everything + a good helping of what can only be LSD + oh yeah, some programming on the side + it has a goddamn soundtrack album + it's a book + SOUNDTRACK ALBUM = that.
23:02:58 <nooga> tell me that this is uncool
23:03:17 <nooga> my ex-girlfriend learned how to code from that guide :P
23:12:23 -!- olsner_ has joined.
23:13:51 <ehird> bacaque
23:14:05 <ehird> ais523: eh, I had a script
23:14:10 <ehird> but it didn't work well
23:15:05 <ehird> nooga: why is awesome.
23:15:13 <nooga> yeah
23:16:05 -!- MigoMipo has quit ("ChatZilla 0.9.84 [Firefox 3.5.1/20090715094852]").
23:27:25 <ehird> so, occasionally I glance at techcrunch.com's home page just to see how low tabloid tech media is prepared to go these days. Stories include a ranking of URL shortening services, why the author of the post does not use twitter, and the fact that two staff members are having a joking flamewar over iPhone vs Android.
23:27:35 <ehird> When in doubt, make one useless fluff post and two metaposts.
23:28:48 <ehird> And people take this site *seriously*.
23:30:41 <pikhq> ehird: Ouch.
23:30:52 <pikhq> A... Ranking of URL shortening services?
23:30:57 <pikhq> How very useless.
23:31:02 <ehird> Based on average response time and uptime
23:31:04 <ehird> !
23:31:09 <ehird> So your tweets are NEVER useless!
23:31:13 <pikhq> Who gives a fuck!
23:31:16 <ehird> ...hmm, wait, nevermind.
23:31:21 <ehird> They're probably useless anyway. :P
23:32:24 <ehird> You know what we need? Perfect holographic displays.
23:32:44 <ehird> I want a laptop that can be a 12" ultraportable to a 30" workstation. :P
23:33:22 <ehird> Well, also a hammerspace drive, so that we can store all the extra components required for the 30" version without adding weight.
23:34:14 -!- Asztal has joined.
23:41:53 -!- olsner has quit (Read error: 110 (Connection timed out)).
23:44:08 -!- oerjan has joined.
←2009-08-17 2009-08-18 2009-08-19→ ↑2009 ↑all