←2011-07-29 2011-07-30 2011-07-31→ ↑2011 ↑all
00:00:14 <elliott_> I'm going to rigidly hold the belief that I held for a few seconds there that Sanskrit-the-language was originally designed by one guy, who gave it a BNF-style syntax, millennia ago.
00:00:29 <elliott_> 05:18:02: <quintopia> why is this channel so sleepy of late
00:00:29 <elliott_> 05:18:12: <quintopia> only a few hours activity each day
00:00:38 <elliott_> quintopia: you're awake at the wrong times (the times I'm not awake)
00:00:52 <monqy> elliott_ talks a lot. the life of the party.
00:00:58 <elliott_> 05:32:44: <oerjan> Or otherwise i'd have banned Nthern for not responding to my messages. Grmle.
00:00:59 <elliott_> 05:32:52: <oerjan> *Grmble.
00:00:59 <elliott_> tried to email him via the wiki?
00:01:21 <elliott_> monqy: yes i am the life. of the party
00:01:31 <elliott_> (diff) (hist) . . User talk:Billlam‎; 06:18 . . (-724) . . Billlam (Talk | contribs) (Removing all content from page)
00:01:38 <elliott_> STOP HARASSING MY LANGUAGE
00:01:44 <quintopia> my point exactly elliott
00:01:46 <monqy> i dont like abcd
00:01:47 <elliott_> --Billliam, two thousand and eleven
00:01:55 <quintopia> youve only been active a few hours a day
00:01:59 <elliott_> monqy: it was revolver architect
00:01:59 <monqy> and i didnt like revolver architect
00:02:02 <monqy> am i ab ad person
00:02:05 <elliott_> so bad you told him about it
00:02:06 <quintopia> as opposed to all night
00:02:16 <elliott_> quintopia: You just have the wrong definition of "night"
00:02:36 <elliott_> http://esolangs.org/w/index.php?title=Subleq&curid=2021&diff=24073&oldid=22220
00:02:39 <elliott_> umm, this is wrong, right?
00:04:09 <elliott_> ian is still editing the elip page but hasn't replied on the talk page :(
00:04:10 -!- madbr has quit (Read error: Connection reset by peer).
00:05:41 <elliott_> 07:39:28: <atehwa> and, for instance, almost all "regular" mathematical functions are computable by languages that only have loops that always terminate. Ackermann's function is not one of them. :)
00:05:43 <elliott_> atehwa: false
00:05:54 <elliott_> Ackermann's function is primitive-recursive if you have higher-order functions
00:06:05 <elliott_> atehwa: Computation in Coq always terminates, but you can define Ackermann easily in it
00:06:20 <elliott_> It's just not primitive recursive in the traditional sense, but primitive recursive is by no means the most powerful "always-terminating" class.
00:06:32 <quintopia> elliott_: if yoj arent up til 8am, you didnt talk all night
00:06:47 <evincar> elliott_: Do all @ programs terminate?
00:07:21 <elliott_> evincar: Defiiiiiiiiiine proooooooooograaaaaaaaaaaaaaaaaaaaam ;D
00:07:28 -!- madbr has joined.
00:07:35 <madbr> wow
00:07:36 <elliott_> quintopia: Oh. Well I have to sleep _sometimes_.
00:07:52 <elliott_> quintopia: Try being here on the other every other day as opposed to the current every other day you're here.
00:07:56 <elliott_> madbr: wow
00:08:15 <madbr> The vfp (floating point unit) on the arm Cortex A8 (cpu used on a lot of iphones etc) isn't pipelined
00:08:24 <elliott_> ais523: http://irregularwebcomic.net/3105.html do you have one of the explanations for this, being an electronics engineer?
00:08:27 <elliott_> ais523: (annotation)
00:08:33 <madbr> It's probably the worst FPU in the last 15 years :D
00:08:40 <pikhq> madbr: Well, yeah. Pipelining takes power.
00:08:45 <pikhq> madbr: Performance is not a priority.
00:08:52 <elliott_> (re 15:14:52: <oerjan> "EDIT: Thanks to everyone who wrote with an explanation, especially the electronics engineers. I now have about 11 different plausible explanations for this behaviour. Only 3 of which involve actual time warps. :-))
00:09:13 <evincar> elliott_: Something reducible to a Turing program or a lambda calculus expression? :|
00:09:19 -!- elliott_ has left ("Leaving").
00:09:24 -!- elliott_ has joined.
00:09:25 <elliott_> oops
00:09:38 <elliott_> evincar: Would "evaluation of an expression" suit you?
00:09:49 <ais523> elliott_: even though it's digital, the oscillator that actually keeps the time is analog
00:09:56 <evincar> elliott_: Sure, whatever floats your semantic boat.
00:10:12 <oklopol> can you express an ion
00:10:14 <Vorpal> elliott_, I have a elliottcraft suggestion
00:10:15 <ais523> because all oscillator designs use analog information somewhere to get the time dependency in (digital has no time dependency, in theory)
00:10:23 <elliott_> evincar: Then no, they can fail to terminate. But maybe only inside a Partial monad? That is probably way too restrictive. So I think _|_ is still around. FOR NOW.
00:10:29 <ais523> and it's obviously a design that's affected by being given the wrong voltage
00:10:40 <elliott_> ais523: Can't you just make a signal busyloop for a while to keep time?
00:10:50 <elliott_> That sounds like time-dependence to me.
00:10:50 <Vorpal> elliott_, allow halfsteps and stairs out of almost any material. Set a flat for those where it is forbidden (like water or lava)
00:11:05 <ais523> elliott_: that relies on analog information (to be precise, the slew rate of the signals, which is how long they take to change from something that reads as 0 to something that reads as 1 or vice versa)
00:11:08 <elliott_> Vorpal: Why not just cut the block in half
00:11:20 <elliott_> ais523: which can change? darn
00:11:37 <ais523> elliott_: depending on voltage and temperature and a bunch of other things
00:11:38 <Vorpal> elliott_, hm true, so you suggest using 1x1x0.5 blocks?
00:12:11 <ais523> the usual way to get a stable oscillator is to use a quartz crystal's resonant frequency as something to count against
00:12:13 <madbr> pikhq: it's like 10 cycles for an addition
00:12:16 <elliott_> Vorpal: No
00:12:22 <elliott_> Vorpal: Don't stack them, just cut less and less
00:12:25 <ais523> because it'll tend to force any oscillation near its resonant frequency to that frequency
00:12:33 <elliott_> For instance you can have a zero point one slope by having a zero point one height block, zero point two, ...
00:12:48 <Vorpal> elliott_, heh
00:12:50 <madbr> pikhq: though tbh the A8 also has a SIMD unit that does floating point a lot faster
00:12:56 <elliott_> madbr: floating point is slow, news at eleven
00:12:57 <Vorpal> elliott_, nice
00:13:19 <madbr> elliot: I <3 floating point
00:13:20 <Vorpal> elliott_, plan on doing that?
00:13:28 <elliott_> madbr: we all have our personal issues.
00:13:33 <elliott_> `addquote <Taneb> Speaking of the CiSRA puzzles, anyone want to form a team <oerjan> i avoid my duties by carefully never registering to anything new
00:13:36 <elliott_> Vorpal: Maybe :-P
00:13:37 <HackEgo> 546) <Taneb> Speaking of the CiSRA puzzles, anyone want to form a team <oerjan> i avoid my duties by carefully never registering to anything new
00:13:56 <elliott_> `addquote <Taneb> aibohphobia <Taneb> The fear of palindromes
00:13:58 <HackEgo> 547) <Taneb> aibohphobia <Taneb> The fear of palindromes
00:14:08 <madbr> elliot: also floating point is still faster than spending all your cycles bitshifting and saturating your results
00:14:24 <elliott_> 17:21:21: <ais523> Dwarf Fortress science seems to be along the lines of "how can we trick the game into letting us do X implausible thing?"
00:14:24 <elliott_> 17:21:47: <Phantom_Hoover> If real-world science was like that I would be happy.
00:14:24 <elliott_> It isn't?
00:14:32 <elliott_> madbr: I don't talk to people who like floating point and spell my name incorrectly :(
00:14:42 <zzo38> Are there other programs that can do things similar to how rulebooks work in Inform 7?
00:14:48 <ais523> how can you mistype elliott_ when tabcomplete exists?
00:14:59 <ais523> also, I just tried to tabcomplete elliott_'s name with <just> tab, no letters before it
00:14:59 <pikhq> elliot. Bam.
00:15:01 <ais523> that must be a first
00:15:03 <zzo38> I don't like floating point much
00:15:08 <elliott_> ais523: and tried to emphasise with <>, too
00:15:10 <ais523> (it didn't work, incidentally)
00:15:13 <ais523> elliott_: err, good point
00:15:15 <ais523> how did I do that/
00:15:20 <elliott_> and used / to end a question
00:15:29 <elliott_> ais523: also, I talk often enough that just tabbing to complete my name might actually work
00:15:31 <ais523> / to end a question is common for me, that's just missing shift
00:15:34 <madbr> elliott_: heheh, you probably don't do sound code :D
00:15:41 <pikhq> zzo38: It's one of those things that, IMO, requires justification for.
00:15:42 <ais523> it only works at the start of a line in this client
00:15:50 <elliott_> madbr: wow lol are you actually taking that personally
00:16:00 <zzo38> I generally do not use floating point.
00:16:06 <ais523> but I don't know why I used <> for emphasis, I have no reason to do that and it makes no sense for me
00:16:16 <monqy> floating point killed my family
00:16:16 <ais523> zzo38: I use floating point on GPUs, because they're most efficient at it
00:16:19 <pikhq> Especially because it doesn't *quite* follow all the axioms people don't expect.
00:16:20 <ais523> (single-precision float, that is)
00:16:37 <zzo38> I think even TeX uses floating point too much.
00:16:57 <elliott_> madbr: oh wait "sound" code
00:17:05 <elliott_> madbr: say audio :P
00:17:13 <elliott_> I thought you were accusing me of the heinous crime of inaccuracy
00:17:24 <elliott_> which is hilarious from someone defending floating point, which violates mathematical laws
00:17:27 <elliott_> well, unsoundness, not inaccuracy
00:17:47 <elliott_> madbr: Anyway, don't DSPs use fixed point?
00:18:23 <madbr> DSPs are silly
00:18:29 <madbr> but yeah
00:18:36 <monqy> :o
00:18:40 <elliott_> <madbr> DSPs are silly
00:18:43 <elliott_> really tempted to say "heheh, you probably don't do sound code :D"?
00:19:09 <monqy> are you a dsp clown
00:19:42 <monqy> who doesn't do sound code
00:19:47 <elliott_> 17:27:34: <Phantom_Hoover> " The concept of things smaller than monarch butterflies, however, has led to enormous controversy. Although, obviously, it would be hard to see something smaller than a butterfly, it should be possible to show that it exists because, just like butterflies, it would sometimes get stuck in doors and prevent them from closing."
00:19:47 <elliott_> best thing
00:19:48 <madbr> well, yeah ok DSPs are nice but they're not on many platforms
00:20:01 <elliott_> 17:29:43: <Taneb> Us lot, doing a bloodline game!
00:20:06 <ais523> hmm, that was bizarre, terminal window froze for over a minute
00:20:09 <elliott_> I've never played DF for more than ten seconds.
00:20:11 <elliott_> So I'm in, naturally.
00:20:12 <ais523> I clicked the close button, and it unfroze, without closing
00:20:20 <monqy> I've never played for more than 2 seconds
00:20:23 <Sgeo_> elliott_, is there any system of storing numbers on a computer that _doesn't_ violate some mathematical laws? Although hmm, I guess limiting yourself to integers, and only doing operations that make sense on integers, or limiting yourself to rationals, and only doing operations... "closed"? on rationals, would work
00:20:25 <monqy> I dunno if I'm in
00:20:38 <madbr> What sort of IRL hardware has DSPs in them
00:20:38 <elliott_> Sgeo_: wjw
00:20:42 <monqy> i guess i could learn through ruining your game
00:20:46 <Sgeo_> "wjw"?
00:20:58 <pikhq> Sgeo_: Actually, it's only really floats that fuck things up heavily.
00:20:59 <monqy> madbr: maybe dsps? idk
00:21:12 <elliott_> Sgeo_: I was also considering "I...".
00:21:25 <zzo38> Is any other programs exists that does something similar to Inform 7 rulebooks?
00:21:32 <elliott_> I mean, unless you really think binary violates the laws of integers.
00:21:50 <Sgeo_> Surely, if you square root and then square some numbers represented as integer over integer, you might not get the same result back in all circumstances
00:21:51 <pikhq> Unsigned integers are nothing more than modular arithmetic, for instance.
00:21:52 <ais523> madbr: anything that would plausibly need an ADC quite possibly uses a DSP as well
00:22:22 <ais523> because it makes more sense to have a dedicated processor analyse its output than trying to get an ordinary processor to
00:22:23 <madbr> ais: some soundcards etc do have them yes
00:22:26 <pikhq> Sgeo_: ... The same is true of the rationals.
00:22:50 <Sgeo_> Um.. wasn't I just talking about the rationals?
00:22:55 <madbr> ais: most of the time they are walled from the user code or non standard so you have to do everything in software anyways
00:22:55 <elliott_> <Sgeo_> Surely, if you square root and then square some numbers represented as integer over integer, you might not get the same result back in all circumstances
00:23:02 <elliott_> how can you sqrt
00:23:04 <elliott_> what would it return
00:23:18 <ais523> madbr: I've actually written DSP code
00:23:29 <madbr> :o
00:23:29 <Sgeo_> Erm, but in math, you get a result that's not a rational sometimes. But in a computer system, you'd get an approximation, presumably
00:23:30 <pikhq> Ah, yeah, true, obvious issue is that sqrt is not defined on the rationals. Well. Typically.
00:23:36 <ais523> in a project that followed the waterfall model almost to the letter, and it almost worked, too
00:23:49 <pikhq> One could define a sqrt function that is only defined on the rationals with a rational square root.
00:23:56 <madbr> ais: for what sort of HW
00:24:05 <ais523> the code worked fine in unit testing, but the entire project broke in integration testing
00:24:08 <elliott_> Sgeo_: you mean that if you approximate something, it isn't the same as the actual result?
00:24:10 <madbr> /application
00:24:11 <pikhq> Sgeo_: sqrt :: Real -> Real.
00:24:12 <elliott_> Sgeo_: wow!
00:24:15 <ais523> and it was something in the dsPIC line by Microchip
00:24:19 <zzo38> How would you represent Fermat's Last Theorem by using Typographical Number Theory?
00:24:19 <pikhq> Sgeo_: The Real type DNE on computers.
00:24:22 <pikhq> Any further question?
00:24:24 <pikhq> s
00:24:30 <elliott_> <pikhq> Sgeo_: sqrt :: Real -> Real.
00:24:31 <ais523> we bought it for the ADC, and because it needed to do processing before passing the info to a computer for bandwidth reasons
00:24:42 <elliott_> pikhq: sqrt(-1) = ? :: Real
00:24:45 <Sgeo_> elliott_, what's the difference between that sort of approximation and the kind of junk that floating-point produces?
00:24:45 <pikhq> elliott_: Oversimplification. Sorry.
00:24:48 <ais523> but really, we bought the one with the best ADC we could afford, and the DSP stuff there was less of a binding issue
00:24:59 <pikhq> elliott_: sqrt :: Complex -> Complex. Better?
00:25:18 <pikhq> (well. There's probably some notion of sqrt that's defined on some superset of the complex numbers, too...)
00:25:21 <ais523> it was a pretty interesting approach to the project; instead of going superheterodyne, we used a fixed intermediate frequency and drove the filtering work onto the DSP
00:25:34 <madbr> hm
00:25:45 <ais523> there were three people who were meant to write the DSP code, but none of them did any work for half the project, so I had to do it by myself in the other half
00:25:51 <elliott_> `addphrasequote "instead of going superheterodyne"
00:25:52 <HackEgo> No output.
00:26:10 <ais523> "addphrasequote"?
00:26:10 <monqy> `phrasequote
00:26:12 <HackEgo> No output.
00:26:18 <madbr> and how did it fail?
00:26:23 <elliott_> ais523: it doesn't exist, but I needed it
00:26:25 <zzo38> pikhq: But square root of a complex number still result in a complex number, so sqrt :: Complex -> Complex is still OK, I think. But there might be others as well
00:26:28 <ais523> madbr: basically, all the individual parts worked
00:26:34 <ais523> but when we connected them together, they didn't
00:26:41 <madbr> crazy
00:26:47 <ais523> in fact, I think any combination of two individual parts worked too
00:26:51 <elliott_> 17:36:55: <ais523> <Areku> Actually, a good way to make a fort invasion-proof is to make the entrance be a "magma elevator", a 1-tile shaft filled with magma, that is kept from falling all the way down by a set of pumps. Since dwarves are not subject to temperature while falling, as it was proved on the Last Stand thread, your dorfs would fall through several levels of magma unharmed, while any flying foe that attempted to do the same would be burned
00:26:52 <elliott_> to a crisp
00:26:52 <elliott_> 17:36:56: <ais523> instantly.
00:26:52 <elliott_> :DDD
00:26:53 <elliott_> i love df
00:27:03 <ais523> until we connected them all together at once, from then on the parts only worked individually and wouldn't work even in pairs
00:27:06 <elliott_> `addquote <Phantom_Hoover> Sgeo_, the origin of suffering is desire for e-book readers.
00:27:08 <HackEgo> 548) <Phantom_Hoover> Sgeo_, the origin of suffering is desire for e-book readers.
00:27:11 <zzo38> Maybe you can have sqrt :: Real -> Real too even though there is not always answer, it depends what kind of equations and stuff you are using, is the types!
00:27:23 <ais523> I personally blame it all on a circuit board that the University manufactured for it itself
00:27:32 <zzo38> Property of something is a prime number or not, is for natural numbers only!
00:27:34 <ais523> while I was at secondary school, I was allowed to make circuit boards myself without supervision
00:27:42 <ais523> at University, I wasn't, and they did a shoddy and slow job of doing it themselves
00:28:09 <elliott_> ais523: why'd you capitalise University
00:28:17 <elliott_> abbreviation for its actual name?
00:28:26 <elliott_> rather than being used generically?
00:28:30 <ais523> yep
00:28:31 <monqy> University university
00:28:33 <ais523> I was referring to one in particular
00:29:01 <elliott_> 18:06:35: <fizzie> Imagine an unlit e-ink laptop, and one of those "shake and it produces enough energy for the LED" flashlights that you hold with the other hand. That thing would be so user-friendly, it's not even a thing.
00:29:02 <elliott_> 18:07:24: <Phantom_Hoover> fizzie, well, your average redditor wouldn't have a problem with the hand movement.
00:29:02 <elliott_> but we're better than them, and would _never_ descend to their level
00:29:14 <elliott_> 18:09:55: * ais523 chirps in real life
00:29:14 <elliott_> 18:10:06: <monqy> charp
00:29:14 <elliott_> 18:10:08: <ais523> I actually got quite good at doing chirps, and I'm not entirely sure why
00:29:14 <elliott_> are you a bird irl
00:29:17 <elliott_> (no lying)
00:29:32 <elliott_> i'm now imagining a bird wondering why it got so good at chirps
00:29:39 <ais523> heh
00:29:43 <elliott_> it does not know much about birds, it just happens to be one.
00:29:48 <ais523> bird chirps don't quite fit the technical meaning, although they're close
00:29:52 <monqy> isnects chyrp toor ight
00:29:57 <elliott_> monqy: osdjif
00:30:09 <Vorpal> ais523, what is the technical meaning
00:30:10 <madbr> Anyways, these days I'm doing Arm SIMD and it mostly obviates the need for any sort of DSP hardware
00:30:19 <ais523> Vorpal: it's a sound that changes in frequency at a constant rate
00:30:20 <elliott_> 19:15:45: <ais523> I'm still reading that DF submarine thread
00:30:21 <elliott_> I think /r/dwarffortress is more fun to read than DF is to play
00:30:41 <ais523> I still have it open and still haven't finished reading it
00:30:46 <madbr> Afaik only the 3DS has a DSP and even then you can't program it
00:30:48 <elliott_> Vorpal: "sweep signal", apparently
00:30:56 <elliott_> ais523: oh, was that /r/df too?
00:31:01 <madbr> Iphone's sound hardware is "fill this buffer" :D
00:31:03 <ais523> elliott_: it's bay12forums
00:31:05 <ais523> someone linked it earlier
00:31:21 <elliott_> 19:50:07: <cheater_> ais523, if someone were to make a haskell based dsl for describing FPGA programs, would the clock skew through a circuit belong in the function type?
00:31:21 <elliott_> they already have.
00:32:55 <Vorpal> ais523, ah
00:32:55 -!- madbr has quit (Read error: Connection reset by peer).
00:33:14 <Vorpal> <elliott_> I think /r/dwarffortress is more fun to read than DF is to play <-- aww come on
00:33:15 <Vorpal> :P
00:33:29 <elliott_> Vorpal: it's very fun to read
00:33:34 <Vorpal> elliott_, hm okay
00:33:35 <Vorpal> will check
00:34:49 <elliott_> 21:12:03: <Adaria> Gah one thing about the client I use can't go back and see things I missed. Bah.
00:34:49 <elliott_> 21:12:35: <Adaria> If I missit the first time it's gone. Meh, screen reader.
00:34:49 <elliott_> 21:13:00: <quintopia> that sounds like the shittiest client ever
00:34:58 <elliott_> VORPAL YOU ARE FOOLING NOBOD-
00:35:01 <elliott_> 21:13:34: <ais523> it sounds like Vorpal's client
00:35:02 <elliott_> ...Y
00:35:35 <elliott_> 21:14:44: <monqy> you could look at the logs.
00:35:35 <elliott_> 21:15:06: <ais523> oh, I see, it's an accessibility problem
00:35:35 <elliott_> 21:15:06: <Adaria> I don't think this one makes them and if it does not sure where... But good itea there.
00:35:39 <Vorpal> elliott_, I like the "Urist Mc" touch to the nicks
00:35:39 <elliott_> Adaria: this channel has public logs available online
00:35:43 <elliott_> 21:15:20: <monqy> this channel is publicly logged.
00:35:43 <elliott_> 21:15:24: <monqy> link in the topic
00:35:43 <elliott_> oh
00:36:12 <elliott_> 21:29:56: <Adaria> So, this room had a cunfusing room desc on it, what usually goes on in here?
00:36:26 <elliott_> I am glad that at least one person has had the experience of having our current topic read out to them by a computer
00:36:41 <evincar> elliott_: It must have been a sublime experience.
00:36:45 <elliott_> the artform of the topic has been elevated to even greater heights; now they are causing computers to confuse their users verbally
00:36:54 <coppro> elliott_: I had a dream
00:37:10 <coppro> In this dream, you and I worked together to create the ultimate esoteric programming language
00:37:18 <evincar> Like having Douglas Adams read to you by a schizophrenic while you are on acid.
00:37:27 <elliott_> "We shall call it... Haskell."
00:37:30 <coppro> where esoteric is defined as 'no person in their right mind would ever use this for real code'
00:37:40 <coppro> It was an unholy fusion of PHP and Java
00:37:44 <zzo38> Is there landline telephone service with extra features such as: tell your telephone number in voice, tell your telephone number in DTMF, change session parameters, turn on/off single call mode, require red box tones to call out, add annotations to the telephone bill, etc
00:37:47 <elliott_> I know those languages more than I want to
00:37:53 <evincar> s/Haskell/$any_research_language/e
00:37:56 <elliott_> 21:31:28: <Adaria> This server has SO many rooms though it's insane.
00:37:57 <elliott_> please tell me you did /list on freenode
00:38:03 <elliott_> evincar: Haskell's not a research language :P
00:38:07 <evincar> elliott_: It was.
00:38:08 <elliott_> <elliott_> please tell me you did /list on freenode
00:38:10 <elliott_> while using a screen reader
00:38:11 <elliott_> evincar: true
00:38:26 <ais523> elliott_: wow, I hadn't even realised that implication
00:38:34 <zzo38> Such as, you can push something it makes it act like a payphone until you hang up your end
00:38:35 <ais523> and /list only actually lists a small fraction, because most channels are +s
00:38:45 <coppro> please tell me you at least used alis
00:38:46 <elliott_> ais523: it was probably a GUI list control that you can scroll through and search, I imagine
00:38:49 <elliott_> but it would still be amazing
00:39:02 * elliott_ does /list for the fun of it
00:39:35 <elliott_> 21:36:16: <evincar> Adaria: So are you visually impaired, or do you just feel like using a screen reader?
00:39:50 <ais523> that's the most awesome question I've seen in here for a while
00:39:56 <elliott_> I have occasionally felt jealous of blind people for being able to use edbrowse without getting sick of it and switching to more graphical programs
00:40:05 -!- madbr has joined.
00:40:29 <elliott_> 21:35:23: <Adaria> Female here but I use guy as androgenous too.
00:40:29 <elliott_> 21:36:55: <Taneb> Imagine an adrogenous specific pronoun
00:40:29 <elliott_> YOU'RE MAKING IT EVEN LESS OF A WORD THAN THE ORIGINAL TYPO
00:40:50 <elliott_> 21:37:31: <Taneb> To me, "it" is that's more of non-human
00:40:51 <elliott_> Also this isn't a sentence, but I note that some people's preferred pronoun is "it"
00:41:14 <elliott_> 21:39:30: <Adaria> May be getting an IRC client for my phone. iPhone, some love it, others hate it but to me it is truly a lifeline.
00:41:14 <elliott_> Man, I don't want to sound insensitive or an idiot... but how the hell do you use an iPhone blind?
00:41:44 <elliott_> Is there some mode that says what you just tapped and you have to double-tap them to really activate it or someting?
00:41:47 <elliott_> something
00:42:06 <elliott_> oh, I caught up already
00:42:22 <evincar> elliott_: Haha, inadvertent Pidgin. :P
00:42:30 <elliott_> evincar: wat?
00:42:44 <monqy> chirp
00:42:48 <evincar> elliott_: "someting". But I imagine the mobile accessibility experience is universally shitty.
00:42:48 <elliott_> ais523: btw, the reason I pinged you was that I often wake my laptop up from sleep and have to reconnect my IRC client
00:42:55 <elliott_> since the network connection dropped
00:43:03 <elliott_> evincar: oh, I thought you meant the IM client because of the capitalisation...
00:43:05 <ais523> yep, it's just that I thought a /ctcp ping would work well enough
00:43:15 <ais523> it's what I do on flaky connections
00:43:16 <ais523> all the time
00:43:17 <elliott_> ais523: I usually use /topic
00:43:18 <ais523> but nobody else notices
00:43:31 <ais523> if I did elliott_: ping every time, you'd get annoyed very quickly
00:43:42 <elliott_> ais523: but I was disoriented since I'd just got on my computer (THIS TOTALLY HAPPENS TO ME OK) so I just decided to panic and resort to a real person
00:43:53 <elliott_> also, please do, I'm going to be paranoid about whether you're pinging me or not all the time now :D
00:44:13 <monqy> elliott_: pong
00:44:22 <elliott_> monqy: pang
00:44:23 <zzo38> If I need to check the connection usually I will just do PING ME although sometimes I want to check the connection with other servers too, the PING command can do that.
00:44:31 <ais523> if I remember, and you're online (which is rare when I'm on a flaky connection, as that's normally during normal person hours), I will
00:44:55 <zzo38> The server responds PONG.
00:45:06 <monqy> thanks server
00:45:29 <elliott_> ais523: I am offended by this "normal person hours" remark as it is upsettingly accurate
00:45:43 <ais523> zzo38: my client doesn't show PONGs from the server
00:45:54 <monqy> i wish my hours were weirder
00:46:02 <monqy> I hate afternoons and want them to vanish
00:46:29 <zzo38> ais523: O, then, OK. Why is that? My client does show PONGs from the server. It doesn't, however, show PINGs from the server (unless AUTOPONG is turned off)
00:46:36 <elliott_> monqy: wtf
00:46:40 <elliott_> monqy: but you like mornings?
00:46:47 <monqy> mornings are less bad
00:46:49 <elliott_> ais523: I can just do /ping and it appears in the server tab
00:46:51 <elliott_> monqy: r u srs
00:46:55 <zzo38> What is the reason for not showing PONGs from the server?
00:47:07 <elliott_> monqy: try waking up in the afternoons, it is the best way to realise how awesome afternoons are
00:47:15 <monqy> afternoons are hot and awful. sometimes mornings are nice and foggy.
00:47:19 <elliott_> ais523: do you _still_ use Konversation?
00:47:19 <ais523> elliott_: doing /ping on Konversation attempts to CTCP PING the null string (which obviously doesn't work, but I do get an error message back that's usable as a pong)
00:47:25 <elliott_> monqy: do you live in texas or something... wait no fog
00:47:28 <ais523> and doing /quote ping gives no visible response
00:47:30 <ais523> and yes
00:47:36 <elliott_> in England, early afternoon is the nicest weather of the day
00:47:37 <monqy> i have trouble thinking in afternoons. mornings are better.
00:47:37 <elliott_> IMO
00:47:43 <ais523> why, has it suddenly become worse over time or something?
00:47:47 <monqy> nights are best though
00:47:47 <ais523> or do you just expect me to experiment more?
00:47:50 <elliott_> monqy: that's just because you're meant to have a siesta at midday
00:48:03 <zzo38> I suppose the various IRC clients are different in many ways, some do one thing different and others do problem to different thing
00:48:07 <elliott_> monqy: if you wake up at midday, there's no problem :P
00:48:11 <elliott_> monqy: (wrt not being able to think)
00:48:12 <elliott_> ais523: well, KDE four...
00:48:13 <zzo38> Which is one reason why Free Software is good idea.
00:48:13 <ais523> elliott_: I seriously dislike heat
00:48:27 <elliott_> ais523: like, any sort of heat at all?
00:48:31 <ais523> elliott_: Konversation's only visible response to that was getting confused and spouting errors about SQL
00:48:37 <elliott_> I find the summer mornings to be way too hot, but afternoon summer weather is nice
00:48:39 <ais523> elliott_: I dislike the temperature being above average
00:48:44 <elliott_> Define average
00:48:46 <ais523> which it is quite a lot, unfortunately
00:48:56 <ais523> and, it's an approximate average which is somewhere near both the median and mean
00:49:06 <elliott_> Celsius value =
00:49:08 <elliott_> (~=)
00:49:15 <ais523> probably about 20
00:49:20 <ais523> probably less
00:49:32 <ais523> meanwhile, I don't start feeling cold until about -6 or so
00:49:38 <elliott_> you may be a lizard
00:49:41 <elliott_> also, even outside?
00:49:45 <ais523> yes
00:49:50 <monqy> i may be a lizared too.//?
00:49:54 <ais523> I once went out in only a T-shirt at -15
00:50:00 <ais523> although I did notice I'd done so afterwards
00:50:03 <elliott_> ais523: that's probably bad for you...
00:50:05 <ais523> (T-shirt and suitable other clothes, that is)
00:50:08 <ais523> elliott_: yes
00:50:20 <ais523> in future, I shall probably have to make sure it at least has long sleeves
00:50:33 <elliott_> ais523: you may want to consider starting a wonderful career in Finland. somewhere north of Helsinki, say.
00:50:33 <ais523> also, I bought a fleece for that sort of occasion, and wear it when the temperature goes much below -5 nowadays
00:50:34 <elliott_> :p
00:50:35 <elliott_> Or Russia.
00:50:36 <ais523> which is, umm, not very often
00:51:03 -!- Adaria has quit (Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org).
00:51:12 <elliott_> I have trouble with about twenty-five Celsius and above
00:51:21 <elliott_> but I suspect that's mostly lack of familiarity with the temperature
00:51:38 <elliott_> I really dislike rain and snow, though, plus any temperature cold enough to need more than a tshirt to be comfortable in
00:51:47 <elliott_> which is a much higher value than ais523's
00:51:50 <monqy> whenever the temperature is higher than I'd like it I get headaches and dizziness and can't think
00:51:56 <ais523> I like some sorts of rain, and dislike others
00:52:02 <elliott_> monqy: are you in lizard texas
00:52:12 <ais523> and am mostly OK with snow on the ground, but it's annoying while it's falling
00:52:21 <monqy> texas would be hell for me
00:52:31 <monqy> apparenlty i live in nice weather land but I'd prefer it colder
00:52:45 <monqy> by apparently I mean
00:52:48 <elliott_> monqy: are you avoiding letting me know where you live because i'm stalker
00:52:49 <monqy> according to peo;le who are not me
00:52:54 <elliott_> because im probably not stalker (maybe)
00:52:55 <monqy> perhaps
00:53:38 <ais523> hey, fizzie probably knows this, but other people might too: if a program segfaults due to trying to write to readonly memory, and you handle the segfault with a signal handler and return from it, what happens on Linux? (i.e. does it attempt to repeat the write or move onto the next command or what?)
00:54:08 <elliott_> lol, Fox News are still calling the Norway terrorist attack islamic
00:54:19 <ais523> elliott_: seriously?
00:54:23 <ais523> it was anti-islamic
00:54:34 <elliott_> ais523: well, they're saying that Scandinavia is, umm, turning a blind eye to "Islamic terrorism" or something
00:54:48 <elliott_> it's Fox News via translated Norwegian, so it makes slightly less sense than fungot
00:54:48 <ais523> also, random fact I discovered from the whole thing (that I've said in-channel before but you weren't in here): Norway has a smaller population than London
00:54:49 <fungot> elliott_: for the material being stored does not exceed 50%, unless another rule specifies that the entity in
00:54:49 <madbr> elliott_: That's surprising for the least
00:55:10 <madbr> ais: A few million right?
00:55:10 <elliott_> madbr: hmm, what's your native language? I suspect that's an idiom that sounds really weird in English
00:55:13 <elliott_> ais523: I don't think there's any kind of repeating in signal handlers
00:55:27 <madbr> eliott: french
00:55:28 <ais523> elliott_: yep, but it depends on where the IP ends up after all that
00:55:31 <elliott_> ais523: as in, I'm pretty sure if you just carry on, you just carry on, not restart everything
00:55:32 <ais523> and there's nowhere obvious for it to be
00:55:35 <elliott_> madbr: does your client honestly not have tab completion? :-P
00:55:40 <madbr> it does
00:55:45 <madbr> but I don't use it :o
00:55:50 <evincar> ais523: ON ERROR RESUME NEXT?
00:55:52 <monqy> :o
00:55:55 <ais523> evincar: heh
00:55:55 <elliott_> ais523: well, ... TIAS?
00:56:00 <ais523> ON ERROR RETURN -516
00:56:02 <elliott_> ais523: I know you can use segfaults to allocate memory
00:56:04 <elliott_> e.g. for brainfuck
00:56:06 <ais523> elliott_: I might, I was just wondering if someone knew
00:56:11 <elliott_> But I suspect that involves manually jumping to the right place
00:56:16 <ais523> it's a little complex to set up a test case and even more complex to work out what the results mean
00:56:29 <ais523> and it's undefined behaviour, so the docs don't help
00:56:41 <madbr> elliott: haha wow that's an interesting allocation scheme
00:56:56 <elliott_> int [ast]foo = gimmereadonly(); printf("abc\n"); foo[0] = 9; printf("def [percent]d\n", foo[0]);
00:56:59 <elliott_> ais523: caret
00:56:59 <madbr> and also batshit insane :D
00:57:00 <ais523> it's similar to what the kernel does, just more manual
00:57:11 <elliott_> madbr: it's not really, it's exactly how the kernel/MMU does paging
00:57:30 <ais523> elliott_: you need the signal handler too, which would need to, umm, unprotect the memory in question?
00:57:42 <elliott_> ais523: mprotect
00:57:46 <ais523> yep
00:57:53 <ais523> is that even signal-safe, incidentally? (/me checks)
00:58:04 <elliott_> sighandler(){mprotect(foo, size_of_data, PROT_READ|PROT_WRITE);}
00:58:13 <elliott_> ais523: but I'm not sure how interpreting the results is hard
00:58:17 <elliott_> if you get
00:58:18 <ais523> although this is me, deliberately invoking UB with a signal handler and checking if everything I call in it is signal-safe anyway
00:58:20 <elliott_> abc
00:58:21 <elliott_> def 9
00:58:26 <elliott_> then it retries the memory access
00:58:27 <elliott_> if you get
00:58:28 <elliott_> abc
00:58:31 <elliott_> def 0
00:58:35 <elliott_> then it doesn't
00:58:38 <elliott_> assuming the memory starts out zeroed
00:58:39 <elliott_> (just use mmap)
00:58:48 <ais523> mmap /dev/zero ensures it starts out zeroed
00:58:48 <elliott_> if you get something else, your test case is broken
00:58:55 <elliott_> ais523: well, UB is perfectly OK in the context of a known compiler and OS
00:59:01 <elliott_> you're just not coding C any more, that's all
00:59:02 <ais523> and luckily, /dev/zero is writable, although writes to it don't do anything
00:59:11 <ais523> I have known OS and arch, but I'm trying to avoid known compiler
00:59:17 <elliott_> ais523: umm, heard of MAP_PRIVATE?
00:59:18 <elliott_> that's COW
00:59:35 <elliott_> avoiding known compiler is impossible with UB
00:59:35 <pikhq> ais523: It's UB for the SIG_SEGV handler to return.
00:59:36 <ais523> I know
00:59:46 <elliott_> pikhq: It's not UB
00:59:48 <elliott_> This isn't C
00:59:50 <ais523> pikhq: I know, I was just wondering if it actually did something useful in practice
00:59:53 <elliott_> Well
00:59:56 <elliott_> I suppose it's POSIX, so fair enough
01:00:03 <pikhq> "If and when the function returns, if the value of sig was SIGFPE, SIGILL, or SIGSEGV or any other implementation-defined value corresponding to a computational exception, the behavior is undefined."
01:00:03 <elliott_> ais523: Useful enough that there exists a brainfuck interpreter doing it, at least
01:00:08 <elliott_> ais523: Want me to dig up its source code?
01:00:13 <ais523> does it return or longjmp?
01:00:15 <ais523> but yes, anyway
01:00:27 <pikhq> So, yes, it is undefined behavior.
01:00:36 <elliott_> ais523: http://cvs.savannah.gnu.org/viewvc/libbf/?root=libbf... it's one of these (from http://savannah.nongnu.org/projects/libbf)
01:00:41 <elliott_> One of the interpreters
01:00:42 * ais523 looks
01:00:51 <elliott_> http://cvs.savannah.gnu.org/viewvc/libbf/libbf_interpreter_dynalloc.c?revision=1.3&root=libbf&view=markup
01:00:52 <elliott_> this looks like it
01:01:01 <elliott_> EXCEPTION_DISPOSITION libbf_interpreter_dynalloc_handler_win32(struct _EXCEPTION_RECORD *exception_record,
01:01:01 <elliott_> /* If the exception is an access violation */
01:01:01 <elliott_> if (exception_record->ExceptionCode == EXCEPTION_ACCESS_VIOLATION &&
01:01:01 <elliott_> exception_record->NumberParameters >= 2)
01:01:04 <elliott_> there's a POSIX version too
01:01:05 <elliott_> in that file
01:01:15 <ais523> bleh, if I was using @, I could just grep that repo
01:01:23 <elliott_> ais523: if you were using CVS, you could too
01:01:26 -!- TeruFSX has quit (Ping timeout: 250 seconds).
01:01:30 <elliott_> cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/libbf co <modulename>
01:01:46 <ais523> but that requires a local copy of the code
01:02:00 <ais523> I suppose I could do it in /tmp or somewhere
01:02:00 <elliott_> ais523: who says another @ machine will perform a search for you?
01:02:07 <elliott_> your browser is downloading the pages, too :P
01:02:14 <ais523> only the pages I actually look at
01:02:18 <elliott_> Just make a ~/tmp or something
01:02:42 <ais523> why would that be better than /tmp?
01:02:53 <elliott_> ais523: not world-readable
01:02:56 <ais523> /tmp is all mine on this system, there are only two loginable users and only one corresponds to a human
01:02:57 <elliott_> assuming your home directory isn't
01:03:02 <elliott_> heh, what is the other?
01:03:04 <ais523> and my home dir is world-readable
01:03:07 <ais523> the other's nhadmin
01:03:17 <ais523> because /dev/null's code requires a user to exist with that name
01:03:22 <ais523> and having it loginable was useful for testing its code
01:03:41 <evincar> elliott_: Oh yeah, how does an @ machine treat non-@ machines? Are they whole opaque objects? Moreover, are objects turtles all the way down?
01:03:44 <ais523> on my previous laptop, I also had a few user accounts for running specific programs I didn't trust
01:03:52 <elliott_> evincar: what's a machine
01:04:04 <ais523> relying on the permissions system to mostly-sandbox them from doing anything too crazy
01:04:13 <evincar> elliott_: A machine is an opaque thingamajig that DO NOT WANT to talk to @. Go.
01:04:23 <elliott_> evincar: i mean if you mean "can i make raw tcp/ip connections", then sure, if you have the permissions for it
01:05:00 <elliott_> ais523: if I'm an IP, how do I find my user page on Wikipedia?
01:05:05 <elliott_> or, my contributions will do
01:05:07 <ais523> Special:Mytalk
01:05:10 <ais523> is the user talk page
01:05:15 <elliott_> thanks
01:05:20 <ais523> then you can find contributions or user page from there
01:05:29 <ais523> it's what I use to quickly check what my externally visible IP is
01:05:54 <ais523> I also use Wikipedia talkpages to do things like reverse DNS checks and to check to see if IPs are on known blacklists
01:06:15 <ais523> they're meant for gauging rangeblocks on Wikipedia, but it works just as well for gauging rangeblocks on Esolang
01:06:37 -!- MDude has quit (Ping timeout: 250 seconds).
01:06:50 <Vorpal> <ais523> I also use Wikipedia talkpages to do things like reverse DNS checks and to check to see if IPs are on known blacklists <-- huh?
01:07:07 <Vorpal> oh you mean spam
01:07:18 <ais523> mostly useful for spam, but not always
01:07:35 <Vorpal> ais523, have you bought the indie bundle 3 btw?
01:07:37 <ais523> I've been known to rDNS and geoIP people I talk to over IRC when they left their IP visible
01:07:41 <ais523> Vorpal: no, but I'm wondering about it
01:07:47 <ais523> there are pretty few commercial games for Linux
01:07:50 <Vorpal> ais523, I quite like it.
01:08:02 <Vorpal> mostly interesting physics games
01:08:18 <ais523> I've seen enough of VVVVVV, at least, to know I wouldn't pay full price for it, but might pay a smallish amount of money
01:08:18 <elliott_> ais523: here's my datapoint for you:
01:08:29 <Vorpal> I blame cogs and hammerfight not working on ATI graphics
01:08:31 <ais523> I think if I do buy the bundle, I'll pay about £5 for it
01:08:44 <elliott_> ais523: some of them are only .tar.gz with .bin installers (shell scripts or executables, presumably), but a lot of them are offered as .debs, and some for sixty-four bit, too
01:08:45 <ais523> because that's about what it's worth to me
01:08:48 <elliott_> ais523: there are also some .rpms
01:08:56 <elliott_> ais523: well
01:09:00 <elliott_> ais523: that's the second bundle
01:09:06 <ais523> what about just installing to homedir?
01:09:08 <elliott_> I haven't downloaded the third but presumably it's similar
01:09:15 <elliott_> ais523: that involves using the .bin installer, presumably
01:09:18 <ais523> did you pay for it, btw?
01:09:20 <elliott_> possibly in a chroot
01:09:25 <elliott_> ais523: I was gifted it
01:09:28 <ais523> it's hard to tell what a random executable file installer will do
01:09:31 <elliott_> ais523: I am considering buying the third
01:09:32 <Vorpal> elliott_, all are .tar.gz except two which are .bin installers. One is available as 64-bit and also as deb
01:09:34 <Vorpal> iirc
01:09:39 <elliott_> ais523: Yes, it is, but Humble Bundle is a pretty good mark of assurance
01:09:45 <ais523> I know
01:09:52 <ais523> I mean, what sort of settings does it take to tell it where to install?
01:10:02 <ais523> is there even a command line option that gives help on options rather than installing, and if so, what is it?
01:10:08 <elliott_> ais523: well, run it in a chroot and see
01:10:08 <Vorpal> ais523, only two needed installing, those installed just fine to home dir
01:10:09 <elliott_> or as a different user
01:10:21 <ais523> as non-root would make sense, I didn't think of that for some reason
01:10:22 <Vorpal> ais523, and they use graphical installers
01:10:26 <ais523> I suspect it wouldn't work inside fakeroot
01:10:38 <Vorpal> ais523, I bought this bundle, so I know more about it than elliott_
01:10:39 <Vorpal> :P
01:10:43 <ais523> also, DRM-free implies you can install as many times as you want on your own computer, presumably
01:10:43 <elliott_> I played one iteration of Crayon Physics at one point and found it amusing but not that fun; fizzie likes VVVVVVVVVVVVVVvvvvvvvvvvvVVVVVVVVvvvvv so it's OBVIOUSLY AWESOME BY DEFINITION
01:10:48 <Vorpal> ais523, indeed
01:10:53 <Vorpal> ais523, on all your computers
01:10:56 <elliott_> Deewiant likes Hammerfight so it PROBABLY SUCKS and I haven't heard of And Yet it Moves or Cogs.
01:10:58 <ais523> elliott_: VVVVVV is mildly awesome, and fun to watch, but a little short
01:11:05 <ais523> also a little unpronounceable
01:11:11 <elliott_> ais523: The downloads are also available in BitTorrent form
01:11:16 <Vorpal> elliott_, VVVVVV is utterly hard, require lightning reflexes
01:11:20 <ais523> meh, I'd prefer HTTP
01:11:22 <elliott_> Vorpal: So easy, then
01:11:26 <elliott_> ais523: And you can download them any number of times, you get a special download link in an email
01:11:31 <Vorpal> elliott_, if you have them, sure
01:11:41 <elliott_> ais523: They also have Steam codes and stuff that you can press a button to get, but you probably don't care about that
01:11:43 <Vorpal> elliott_, And Yet It Moves is quite fun. You rotate the the world around you basically
01:11:56 <elliott_> Vorpal: I have terrible reflexes but come on, you probably think that about every platformer game
01:12:14 <Vorpal> elliott_, no. This is early-nintendo hard
01:12:14 <ais523> elliott_: VVVVVV is pretty reflexy as platformers go, when it isn't pixel-pefect-jumpy instead
01:12:20 <Vorpal> elliott_, NES era nintendo or so
01:12:29 <Vorpal> ais523, yes indeed
01:12:36 <elliott_> ais523: oh well, it sounds fun
01:12:41 <Sgeo_> Vorpal, hmm, I think I played a flash game once that involved rotating the world around you
01:12:43 <ais523> I suspect it is
01:12:48 * Sgeo_ goes to download And Yet It Moves
01:13:00 <Vorpal> Sgeo_, you bought bundle 3?
01:13:00 <elliott_> ais523: haha, it comes with a demo of Minecraft until August
01:13:02 <ais523> the thing is, it doesn't feel unfinished, but it feels like they should have been developing it longer before finishing it
01:13:07 <Sgeo_> Vorpal, yes
01:13:11 <Vorpal> elliott_, yes that appeared like yesterday
01:13:15 <ais523> elliott_: perhaps I should wait until August before downloading it, then
01:13:24 <elliott_> ais523: you sure do hate Minecraft
01:13:29 <elliott_> <Sgeo_> Vorpal, hmm, I think I played a flash game once that involved rotating the world around you
01:13:30 <elliott_> Dot Action [two]
01:13:36 <elliott_> the green blocks did that
01:13:36 <ais523> elliott_: I do
01:13:41 <elliott_> all games are basically pale imitations of Dot Action
01:13:42 <Vorpal> ais523, it is until August 14 iirc
01:13:45 <Sgeo_> elliott_, that's not the one I was thinking of, but sure
01:13:47 <Vorpal> ais523, and the bundle ends before that
01:13:51 <ais523> bleh
01:13:56 <elliott_> ais523: I can't really tell why, is it just the Inception effect?
01:14:08 <ais523> when does the bundle end? I sort-of assumed I'd be able to buy it indefinitely
01:14:14 <elliott_> ten days
01:14:34 <ais523> elliott_: partly that, partly the reason that I don't get why people should like it, it feels rather deficient as a game
01:14:34 <Vorpal> ais523, then you can download it forever, but you can't buy it after that
01:14:43 <ais523> Vorpal: legally?
01:15:00 <elliott_> ais523: It's a flawed game in and of itself, Notch is incompetent, and the auth pseudo-DRM system is inefficient, but it's a fun game, and a creative one, certainly worth the twenty bucks it currently costs (but not the forty bucks it will cost, unless it improves massively)
01:15:04 <Vorpal> ais523, yes you get a code that you can use whenever you like as far as I understood to download it
01:15:31 <elliott_> ais523: It's true that it gives you no "goal" to play for, but then you could argue that any game where people play for something other than to complete it at all costs is like that
01:15:33 <Vorpal> elliott_, bucks being?
01:15:36 <ais523> oh, I thought you meant people who hadn't bought it could download it
01:15:41 <ais523> elliott_: I have nothing against games that don't have a goal
01:15:44 <elliott_> Vorpal: Seriously?
01:15:50 <Vorpal> elliott_, is it GBP?
01:15:53 <ais523> Vorpal: slang name for US dollars
01:15:54 <Sgeo_> elliott_, I like games with no goals. But you should know that already.
01:16:13 <Sgeo_> =P=P
01:16:13 <Vorpal> elliott_, so 13 EUR?
01:16:15 <Vorpal> hm
01:16:19 <madbr> I think minecraft is more a "toy" than a "game"
01:16:21 <ais523> although I think puzzle-creation is probably my favourite sort of gameplay
01:16:21 <elliott_> ais523: Well, why should anyone like Minecraft? Because it's fun and dissimilar to almost every other game.
01:16:33 <ais523> I often enjoy creating levels for games more than playing them
01:16:34 <Vorpal> ais523, then you will probably like the bundle
01:16:36 <elliott_> madbr: that just sounds like gamer posturing
01:16:40 <Vorpal> lots of puzzles
01:16:41 <elliott_> is Bejeweled a game?
01:16:44 <elliott_> (It's a bad game, but is it a game?)
01:16:50 <ais523> elliott_: I'd say yes
01:16:52 <Vorpal> ais523, and crayon is puzzle creation
01:16:56 <madbr> elliott: Well, actually I like minecraft
01:16:56 <elliott_> ais523: with Minecraft, creating the levels is over half of the game
01:17:02 <ais523> elliott_: indeed
01:17:02 <zzo38> elliott_: No it isn't a game, it is a computer game
01:17:10 <elliott_> zzo38: computer games aren't games?
01:17:12 <Vorpal> elliott_, well, we will see where adventure mode goes
01:17:20 <elliott_> madbr: Me too. But it feels like a toy/game division is artificial.
01:17:21 <ais523> but I don't think any part of the game works as well as a game specifically designed for it would
01:17:25 <elliott_> Vorpal: Adventure mode will suck, I'm sure of that.
01:17:30 <zzo38> elliott_: Actually I don't know I just made up that
01:17:31 <madbr> elliott: Hmm, probably is
01:17:35 <Vorpal> elliott_, oh certainly
01:17:36 <ais523> much like, say, adventure mode in Dwarf Fortress sucks compared to most roguelikes
01:17:37 <Sgeo_> `addquote <zzo38> elliott_: No it isn't a game, it is a computer game
01:17:38 <HackEgo> 549) <zzo38> elliott_: No it isn't a game, it is a computer game
01:17:44 <ais523> but fortress mode doesn't, and is the good part of the game
01:17:48 <elliott_> ais523: It's bad to think of redstone as, like... an awkward circuit system, or anything
01:17:50 <Vorpal> elliott_, people have done some great adventure maps before hm
01:17:57 <elliott_> ais523: The thing with Minecraft is, specialising it by taking one part of the game and doing it really well would ruin it.
01:18:08 <ais523> elliott_: it might make a better game overall, though
01:18:15 <elliott_> ais523: It feels like a universe; the fact that every component is loosely coupled but can interact marginally is the charm.
01:18:16 <Vorpal> ais523, I thought you didn't play df?
01:18:19 <ais523> Vorpal: no
01:18:20 <ais523> I don't
01:18:26 <ais523> I can have opinions on games even if I don't play them
01:18:33 <elliott_> You can build a house (one game), and you can give it circuits (another game). Neither of those games would be as good as that combined experience.
01:18:36 <Vorpal> ais523, ah
01:18:44 <Sgeo_> I think I like reading stories about df more than I like df
01:18:45 <Vorpal> elliott_, indeed
01:18:46 <elliott_> You can build a rail network (one game), to connect your houses with circuits (two games).
01:18:57 <evincar> elliott_: Of course. The game isn't about any of its elements. It's about the emergent behaviour that arises from the interaction of those elements.
01:19:01 <elliott_> ais523: Minecraft isn't a good game because any of its parts are an amazing game and the rest is just a lot of fluff.
01:19:03 <Vorpal> elliott_, and you can control a rail network with circuits
01:19:05 * Sgeo_ wonders if he can get Boatmurdered in epub form
01:19:07 <ais523> in terms of actual games, I've been playing Meteos a lot recently
01:19:13 <ais523> trying to hit the score cap
01:19:15 <elliott_> ais523: It's good because it's basically a bunch of games that, by themselves, would be really boring, but when combined, form a compelling sandbox.
01:19:17 <Vorpal> elliott_, is that 3 or 4 games in total now?
01:19:22 <elliott_> It's not nearly a diverse enough sandbox.
01:19:26 <ais523> I got over 9 million on Smogor (the score cap is 10 million - 1)
01:19:27 <elliott_> Vorpal: Ten, probably. :p
01:19:35 <elliott_> ais523: But while it's not a perfect game, it's good enough to be very compelling.
01:19:36 <Vorpal> elliott_, I meant the ones we listed
01:19:41 <Vorpal> elliott_, not all the ones in total
01:19:47 <elliott_> Vorpal: Well, it's ambiguous. That's kind of the point.
01:19:51 <ais523> and it's strange that I like Meteos, because it has basically none of the properties I like in a game
01:19:54 <Vorpal> elliott_, hm true
01:20:00 <elliott_> ais523: I sure hope this tl;dr enlightened you a bit as to why people like Minecraft.
01:20:04 <elliott_> If not my fingers hate you.
01:20:07 <ais523> hmm, I suppose so
01:20:23 <elliott_> ais523: I have a feeling MC is impossible to understand without playing it
01:20:24 <ais523> I still feel free to disagree with them, though, even if I understand their point of view a bit better
01:20:36 <elliott_> well, you can hardly claim that liking a game is wrong
01:20:43 <Vorpal> <elliott_> ais523: I have a feeling MC is impossible to understand without playing it <-- very true
01:20:50 <Vorpal> elliott_, watching videos will be useless too
01:20:58 <elliott_> It seems weird to go beyond "diffrn't strokes for diffrn't folks" into "I hate Minecraft and would like to buy a bundle specifically without an offer about it if I could"
01:20:59 <zzo38> Did you like any of the computer game I made up?
01:21:04 <ais523> elliott_: indeed, but I can claim that liking a game annoys me
01:21:08 <elliott_> Vorpal: Nah, watching videos and reading Towards Dawn made me buy Minecraft
01:21:09 <ais523> which is different from being wrong
01:21:26 <Vorpal> elliott_, I meant useless in making you understand it
01:21:27 <elliott_> ais523: Well... do people who like [insert music you don't like] annoy you?
01:21:35 <elliott_> ais523: Or do you just mean you don't like them ... publicly liking it?
01:21:38 <elliott_> As in saying "MC is great" etc.
01:21:54 <ais523> it's public liking I don't like
01:22:05 <elliott_> ais523: fair enough; I'm not sure how that ties into the bundle though
01:22:07 <ais523> and, I suppose, dedicating time to it that they could be dedicating towards things that would benefit me
01:22:13 <elliott_> is giving you a few weeks of playing a game publicly liking it?
01:22:16 <ais523> oh, the bundle thing is probably just mostly bandwidth
01:22:20 <Vorpal> ais523, how egoistic :P
01:22:21 <elliott_> ais523: umm, you don't have to buy it
01:22:24 <elliott_> ais523: they're separate downloads
01:22:28 <elliott_> s/buy/download/g
01:22:28 <ais523> oh, good
01:22:36 <ais523> then I can retract my objection
01:22:40 <elliott_> ais523: and, anyway, Minecraft's download is just a small .jar file
01:22:41 <Vorpal> ais523, each game is a separate download indeed
01:22:52 <ais523> elliott_: small .jar files exist?
01:22:57 <elliott_> ais523: it downloads the real thing post-authentication from an Amazon S3 server with no protection on the files
01:22:57 <Vorpal> ais523, minecraft uses a tiny .jar that launches and download the rest of the game
01:23:01 <ais523> ah, I see
01:23:01 <elliott_> yes, this means that anyone can download Minecraft's fails
01:23:04 <elliott_> because Notch
01:23:04 <zzo38> Did you like any of the computer game I made up, or any of my ideas related to computer games?
01:23:13 <elliott_> ais523: -rw-r--r-- 1 elliott elliott 88K 2011-02-23 14:07 launcher.jar
01:23:15 <Vorpal> elliott_, does that STILL work?
01:23:17 <elliott_> Tiny enough in comparison to the other games
01:23:22 <elliott_> Vorpal: Last I checked, yes
01:23:23 <ais523> elliott_: you consider 88K small?
01:23:28 <elliott_> ais523: you don't?
01:23:29 <Vorpal> ais523, for a .jar
01:23:31 <Vorpal> it is small
01:23:33 * Sgeo_ wonders if Boatmurdered looks acceptable on a black and white screen
01:23:34 <ais523> Vorpal: indeed
01:23:39 <elliott_> ais523: let me tell you how big the humble bundle two games are...
01:23:46 <Vorpal> $ du -sh /usr/bin/emacs
01:23:46 <Vorpal> 11M/usr/bin/emacs
01:23:50 <Vorpal> ais523, much smaller than emacs
01:23:59 <Vorpal> (yes yes, I know it is a memory image of a running emacs)
01:24:01 <elliott_> ais523: Braid: 114 Mio; Cortex Command: 48.6 Mio; Machinarium: 344 Mio
01:24:12 <ais523> Vorpal: Emacs is huge, and that doesn't surprise me in the least
01:24:12 <elliott_> these are all compressed, I think
01:24:20 <ais523> elliott_: most of which is going to be images and similar content
01:24:21 <ais523> and music
01:24:29 <ais523> those are always huge
01:24:36 <elliott_> Osmos: 19.3 Mio; Revenge of the Titans: 60.6 Mio
01:24:40 <elliott_> World of Goo: 66.5
01:24:42 <elliott_> Mio
01:24:46 <elliott_> Aquaria: 209.5 Mio
01:24:46 <ais523> -rwxr-xr-x 1 ais523 ais523 582406 2011-07-22 00:09 staticcat
01:24:47 <Vorpal> elliott_, 302Mtotal for the files you download for all the bundle 3 games
01:24:48 <elliott_> blah blah blah
01:24:59 <Vorpal> 77MAndYetItMoves-1.2.0_x86_64.tar.gz
01:24:59 <Vorpal> 59MVVVVVV_2.0_Linux3.tar.gz
01:24:59 <Vorpal> 38Mcrayon_release55_2.tar.gz
01:24:59 <Vorpal> 104Mcogs-linux-bin
01:24:59 <Vorpal> 25Mhf-linux-07172011-bin
01:25:00 <Vorpal> 302Mtotal
01:25:00 <ais523> hmm, 582K for cat
01:25:04 <ais523> that's actually quite impressive
01:25:08 <elliott_> ais523: that's terrible
01:25:11 <elliott_> but that's glibc for you
01:25:15 <ais523> indeed
01:25:17 <Vorpal> ais523, I think you would LOVE crayon
01:25:21 <elliott_> ais523: it's more like ten kibioctets with a saner thing
01:25:23 <ais523> I still haven't figured out exactly why it's calling uname
01:25:31 <elliott_> Vorpal: crayon physics is boring, at least the version I played years ago :P
01:25:41 <Vorpal> elliott_, well, I find it fun.
01:25:49 <ais523> in particular, whether it's trying to establish whether it's running on Linux (using a Linux-specific system call number), or whether it's trying to find out what Linux version it has
01:25:53 <ais523> Vorpal: description of the game?
01:25:59 <elliott_> ais523: surely Linux version
01:26:04 <elliott_> glibc warns for some versions, I think
01:26:05 <elliott_> or something
01:26:10 <ais523> elliott_: ah, perhaps
01:26:13 <elliott_> ais523: crayon physics: you can draw arbitrary polygons
01:26:19 <elliott_> and they become two-dimensional objects subject to the physics engine
01:26:24 <Vorpal> ais523, you draw objects on the screen, they react to physics. You use this to push around and make path for a small ball that has to pick up a number of stars on the screen
01:26:24 <elliott_> you have to help a ball roll around properly
01:26:34 -!- lament has joined.
01:26:40 <ais523> ah, hmm, it is the sort of thing I generally like
01:26:47 <Patashu> isn't crayon physics now the subject of Every Flash Game Ever
01:26:52 <elliott_> Vorpal: is there anything that could make e.g. objects drop down and move other objects you created?
01:26:52 <Vorpal> ais523, all drawn a crayony way
01:26:54 <elliott_> that might make it interesting
01:26:54 <Patashu> e.g. Transformice
01:26:58 <elliott_> but it wasn't in the game I played
01:27:06 <ais523> hmm, I'm not sure I've ever played a flash game
01:27:06 <elliott_> i.e., if you actually had to create rudimentary mechanisms
01:27:09 <Patashu> or that one flash game that was something Inventions
01:27:12 <Vorpal> elliott_, sure, I dropped things on other things and had them push things
01:27:16 <Vorpal> you can draw rope too btw
01:27:20 <Vorpal> quite useful
01:27:27 <ais523> there were some people playing Slime Games at school and I joined in sometimes, but I'm not sure if it was a flash game
01:27:27 <Patashu> http://fantasticcontraption.com/ this one
01:27:43 <ais523> oh right, I did occasionally join in in games that were definitely flash games
01:27:47 <Sgeo_> "Click here to play Minecraft for free during the Bundle"
01:27:49 <Patashu> ais those would be flash since they predated webgl
01:27:51 <ais523> I don't think I've played one since, though
01:27:52 <Patashu> and html5
01:28:07 <elliott_> ais523: it pains me greatly that you have not experienced Dot Action 2
01:28:07 <Vorpal> elliott_, draw a shape around the ball, draw a counterweight, add some "pins" to these, and a rope, now you can hoist the ball up!
01:28:08 <ais523> Patashu: something as simple as slime games is entirely doable in html4 or even 3, plus javascript
01:28:11 <elliott_> Sgeo_: oh, I bet it's the applet version
01:28:25 <Vorpal> (after pushing away the counterweight)
01:28:26 <ais523> they don't need anything introduced in html5
01:28:33 <Patashu> ais523: Hmm I suppose you're right
01:28:35 <elliott_> ais523: excuse me, paining
01:28:40 <ais523> why has the entire world decided that what used to be called DHTML only existed as of HTML5?
01:28:42 <Patashu> It'd be html objects being moved around?
01:28:50 <elliott_> ais523: canvas
01:28:56 <ais523> I wrote a program that used a huge number of overlapping <div>s for rendering years ago
01:28:56 <Sgeo_> "Play Minecraft for free until August 14th!
01:28:56 <Sgeo_> Create a key below and then apply it to your Minecraft account by clicking the red link."
01:28:58 <elliott_> ais523: "DHTML" doesn't scale at all
01:29:00 <ais523> and just changed their background colors
01:29:01 <elliott_> because DOM = shit
01:29:15 <ais523> it actually worked, and faster than using Excel for rendering
01:29:23 <elliott_> lol
01:29:26 <ais523> (look, I hadn't heard of proper programming languages back then)
01:29:31 <Vorpal> `addquote <ais523> it actually worked, and faster than using Excel for rendering
01:29:32 <HackEgo> 550) <ais523> it actually worked, and faster than using Excel for rendering
01:29:39 <ais523> it was also possibly the only program ever to be written in Microsoft JScript
01:29:47 <ais523> because I found the documentation for that lying around
01:29:55 <Vorpal> ais523, as opposed to javascript?
01:29:59 <Vorpal> what were the differences
01:30:01 <ais523> although it turned out to be almost valid JavaScript too, I only had to change a few lines to get it working in Firefox
01:30:21 <ais523> mostly, that document.x was equivalent to document.getElementById("x") in JScript
01:30:28 <Vorpal> ah
01:30:32 <ais523> (I hope they've fixed that now, it's almost as bad as PHP's register_globals)
01:30:46 <elliott_> ais523: to expand on what I said about @ and the internet: as far as I'm concerned, if the Internet isn't universally recognised as a human right in a few years, something went wrong; and internet outages will, or at least should be, considered as serious as power outages
01:31:00 <elliott_> or perhaps moreso, considering how common laptops are
01:31:03 <ais523> can avoiding the Internet be a human right too?
01:31:17 <elliott_> ais523: probably, but is avoiding taxes?
01:31:25 <elliott_> you can be a hermit if you want, but you'll still have to pay 'em
01:31:31 <elliott_> and you might even need to fill out a form on the internet
01:31:32 <ais523> I'm not sure of the relevant
01:31:35 <ais523> *relevance
01:31:43 <Vorpal> elliott_, that is hard for old people who never used computers
01:31:46 <elliott_> ais523: it's relevant because you might have to use the internet
01:31:48 <ais523> I suspect the tax office will for at least the next 3/4 decades allow forms to be done by post
01:31:48 <Vorpal> I don't think that is realistic thus
01:31:55 <Vorpal> until many years into the future
01:31:57 <elliott_> Vorpal: no it isn't, teaching people how to use computers is easy, teaching them how to use Windows is hard
01:32:06 <Vorpal> elliott_, fair enough
01:32:13 <elliott_> or at least, most people are bad at teaching them Windows
01:32:17 <elliott_> and practically the definition of old people involves them dying soon anyway :-P
01:32:24 <elliott_> ais523: and?
01:32:27 <Vorpal> elliott_, my blind grandmother would have problems with any computer though
01:32:28 <ais523> elliott_: it'll be much more than 30/40 years into the future before the government can be persuaded to not mandate Windows for everything computer-related they do
01:32:28 <elliott_> ais523: would it be a human rights violation if they stopped doing so?
01:32:35 <elliott_> if the internet was considered a right
01:32:39 <ais523> elliott_: possibly, depending on the circumstances
01:32:51 <elliott_> why? why isn't avoiding post a human right?
01:32:55 <ais523> something being considered a right doesn't necessarily mean that you can assume that people will exercise that righgt
01:32:58 <ais523> *right
01:33:03 <ais523> that would be like feeding children only if they played
01:33:16 <Vorpal> ais523, indeed
01:33:16 <ais523> and saying it wasn't a violation of human rights because playing is a human right for children
01:33:25 <elliott_> why isn't avoiding post a human right?
01:33:45 <Vorpal> elliott_, since when is getting post a human right
01:33:56 <Vorpal> internationally I mean
01:33:57 <ais523> note that in the UK, you don't have to do tax returns at all unless there's something complex about your tax situation
01:34:04 <ais523> you just have to fill in a form when you get a job or change jobs
01:34:10 <ais523> and hand it to your employer
01:34:17 <elliott_> Vorpal: we're talking about forms
01:34:24 <elliott_> ais523: I wasn't talking about forms just for taxes
01:34:40 <ais523> in fact, I have surprisingly few forms to fill in, overall
01:34:50 <elliott_> you still have to fill them in, and send them via post, right?
01:34:57 <quintopia> how do you inform the government of your tax deductions?
01:34:57 <elliott_> well, why isn't avoiding post a human right?
01:35:03 <ais523> I know this, because I use pencil and paper sufficiently rarely that whenever I fill in a paper form, I first have to remember how to use a pen
01:35:35 * elliott_ wonders if ais523 is operating this conversation by replying to every message up until I make my actual point, and then repeating
01:35:46 <ais523> quintopia: there are very few tax deductions in the UK; the main one is for donations to charity, and you let the charity know tax details and they claim the deduction on your behalf
01:36:13 <elliott_> apparently
01:36:17 <quintopia> huh...that's not a good way to attract business
01:36:21 <ais523> elliott_: I'm trying to think of a situation in which post is actually necessary
01:36:31 <ais523> quintopia: tax deductions for business exist, and there are a lot more of them
01:36:31 <elliott_> taxes r bad gold is good
01:36:40 <quintopia> if a company can't write off their expenses, what reason do they have not to move operations to the netherlands...
01:36:41 <elliott_> ais523: well, how do you send in forms?
01:36:45 <ais523> but it's the business that's concerned with them, not the people who interact with them
01:36:45 <elliott_> and why can't avoiding that be a human right?
01:36:46 <quintopia> oh okay
01:36:53 <quintopia> so as a business owner
01:36:57 <quintopia> you have to submit returns?
01:36:58 <ais523> elliott_: the main form I have to fill out atm is the university registration form
01:37:04 <ais523> which can be done over the internet or in person
01:37:30 * elliott_ tries to think of something absolutely unavoidable, legally, for living in the UK
01:37:33 <ais523> in fact, in person is how the majority of forms I fill in work out
01:37:38 <elliott_> so I can ask why avoiding that shouldn't be a human right
01:37:53 <quintopia> avoiding paperwork is the stupidest idea for a human right i've ever heard
01:38:17 <elliott_> quintopia: nah, paperwork is horrible, that's a decent idea
01:38:30 <elliott_> avoiding the internet is the stupidest one I've heard
01:38:46 <ais523> elliott_: the student finances form was legally unavoidable, but that one I /didn't/ do by hand, I went to the education office and gave them the form in person
01:39:01 <quintopia> yes, but you're talking to someone who thinks that there is no right to convenience
01:39:24 <elliott_> quintopia: I suspect you don't think there's a right to many things that there are rights for.
01:39:27 <elliott_> ais523: it was perfectly avoidable, just don't be a student
01:39:30 <ais523> they were a little surprised that I'd bothered, but the post service is a bit unreliable here
01:39:31 <ais523> elliott_: well, OK
01:39:46 <ais523> my parents suggested the census is possibly post- and Internet-only, I have to look that one up
01:39:53 <quintopia> furthermore, there is no such thing as unalienable rights...
01:39:58 <elliott_> ais523: basically as far as I'm concerned, a right to avoid the internet is unnecessary; it's already the easiest way, by far, to do things, and if you want to be stubborn I don't really think society has a right to make your crusade easy
01:40:04 <elliott_> but you can always become a hermit, I suppose
01:40:05 <quintopia> any right can be taken away in the wrong situation
01:41:02 <quintopia> but you're probably right that there are things others consider human rights that i don't
01:41:28 <elliott_> yes. are you planning to try and gain political power anywhere, and if so, where?
01:41:31 <elliott_> and when?
01:42:08 <quintopia> no, but if i do, i'll make sure you don't hear about it
01:42:33 <elliott_> so voting against you is another right you don't believe in
01:42:55 <ais523> bleh, it's hard to find the exact rules for census replies, as they aren't in law; there are just laws allowing the rules to be made (by the Chancellor of the Exchequer with parlimentary approval)
01:43:07 <quintopia> eh, if i'm gonna get anything worthwhile done, i might as well dispatch with democracy right off the bat
01:43:10 <evincar> This all reminds me that the Special Rapporteur to the UN officially recommended that Internet access be considered a basic human right.
01:43:13 <ais523> Wikipedia implies that it was Internet-or-post only, though
01:43:33 <ais523> evincar: governments will find loopholes in that
01:43:45 <ais523> like only allowing access to government approved websites at libraries
01:44:13 <elliott_> evincar: umm, I was just talking about that
01:44:18 <evincar> ais523: Of course, but it is still kinda cool that *something* has made it into the lore of a group that's that high-profile.
01:44:23 <elliott_> quintopia: see, the thing is, I don't even know that you're joking.
01:44:26 <elliott_> evincar: that's how all this started
01:44:28 <evincar> If not actually very useful. :P
01:44:33 <elliott_> well, I was talking about the internet being a right
01:44:35 <evincar> elliott_: Ah, was briefly away.
01:44:40 <elliott_> I don't really care about a gesture like that that will be completely ignored
01:44:42 <ais523> elliott_: aha, I found a loophole: people who don't have addresses (like the homeless and travelers) were given the forms by hand, and handed them back in person
01:44:44 <elliott_> IIRC France recognised the internet as a right though
01:44:46 <elliott_> and Finland are?
01:44:47 <elliott_> I forget
01:44:59 -!- bsmntbombdood has joined.
01:44:59 <elliott_> ais523: they're just not hermit enough
01:45:11 <elliott_> actually, dying is the easiest way to avoid forms
01:45:18 <quintopia> elliott_: if i become dictator of a small island nation, i will wholeheartedly support your right not to live there.
01:46:21 <ais523> also, 2011 was the first year you even could do the census online
01:46:49 <ais523> hmm, I conclude that the requirement to respond to official posted documents, maybe including reply by prepaid post, is incurred by having your own address
01:46:58 <ais523> notably, with multiple people in a house, only one of them has to reply to the census
01:47:03 <ais523> listing the information of the others
01:50:11 <elliott_> edit: Actually, what would be best is to tell yourself to buy Cisco and sell it at the height of the dot-com bubble. Then use the proceeds to buy Apple immediately. You'd be looking well over a 1,000,000% return there.
01:50:15 * elliott_ writes down
01:50:18 <elliott_> <elliott_> actually, dying is the easiest way to avoid forms
01:50:23 <elliott_> disappointed nobody addquoted this
01:50:38 <Vorpal> elliott_, it isn't very funny
01:50:45 <monqy> dying's easy, eh?
01:50:57 <elliott_> Vorpal: said Vorpal
01:52:07 <evincar> elliott_: I was going to respond to it, but it's too simple to be very entertaining. :P
01:52:49 <evincar> Honestly, I'm way less afraid of death than I am of others I know dying.
01:53:20 <evincar> I don't like meeting people that are significantly older than me because I have a reasonable assurance that they'll be dead within my lifetime.
01:54:01 <elliott_> "There tends to be a pretty direct correspondence between "GHC features" and "papers listing SPJ as an author"."
01:54:13 <elliott_> evincar: I take it you dislike meeting your parents
01:54:15 <evincar> elliott_: The man is a machine.
01:54:27 <evincar> Also I never technically met them.
01:54:33 <evincar> Because of how babies' memories work.
01:54:59 <evincar> Also because of how mating works.
01:55:09 <monqy> poor babies
01:55:12 <monqy> poor mating
01:56:25 -!- copumpkin has quit (Ping timeout: 258 seconds).
01:56:50 -!- copumpkin has joined.
01:57:28 <evincar> NB: My parents aren't dead or missing. They're right here in the room with me at the moment.
01:57:35 <evincar> (Thought I'd clarify.)
01:57:45 <monqy> hi evincar's parents
01:57:58 <evincar> They're currently watching a Netflix progress bar.
01:58:05 <monqy> exciting
01:58:20 <ais523> why'd you even need to pay for movies if the progress bar is that interesting?
01:58:49 <monqy> to get the progress bar of course
01:59:20 <evincar> ais523: Beats me. The damn thing doesn't even move very fast. You could replace it with a photo of said bar, stuck terminally at just over 50% to give the illusion of progress.
01:59:37 <ais523> monqy: there is some logic to that
01:59:49 <ais523> would videoing the progress bar and sending the video to someone else count as movie piracy?
02:00:56 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:01:23 <Vorpal> heh
02:03:58 <zzo38> Internet should not be considered a basic right. A lot of people don't even know much about internet.
02:04:37 <evincar> zzo38: Free speech should not be considered a basic right. A lot of people don't even know about free speech.
02:04:59 <ais523> INTERCAL should not be considered a basic right. A lot of people don't even know about INTERCAL.
02:05:34 <zzo38> No free speech should be considered. Whether or not you know about it is not the point. I was simply mentioning it. INTERCAL is not a basic right either. However, note that some thing might be "derived" rights I suppose in certain circumstances, maybe.....
02:08:10 -!- madbr has quit (Read error: Connection reset by peer).
02:09:42 <evincar> zzo38: My point is that many people not knowing (much) about a right isn't justification for not considering it a right.
02:09:50 <evincar> In case that wasn't obvious.
02:10:15 <zzo38> evincar: I actually happen to agree with you. Free speech is a right.
02:10:21 <zzo38> Even if people don't know
02:10:31 <evincar> Besides, the internet helps promote globalism and fight xenophobia, which is a primary tool in causing unnecessary wars.
02:10:34 <zzo38> If some people don't want free speech they can be quiet
02:14:46 -!- aloril has quit (*.net *.split).
02:15:29 -!- cheater_ has joined.
02:15:34 -!- madbr has joined.
02:15:36 -!- madbr has quit (Write error: Connection reset by peer).
02:15:36 <zzo38> evincar: I do agree that internet can help good thing, so can other thing; people can be have a computer, if they have computer, can get internet connection, etc. However, in my opinion it should not be considered a *basic* right.
02:17:22 -!- aloril has joined.
02:21:07 -!- BeholdMyGlory has joined.
02:22:49 -!- madbr has joined.
02:24:15 -!- madbr has quit (Read error: Connection reset by peer).
02:26:54 <evincar> ais523: So I finally decided to do the obvious and pursue a doctorate in computer science.
02:27:16 <ais523> evincar: I'm pursuing it too, and think I have something of a head start
02:27:25 <evincar> I don't know if you were one of the people who was privy to my school troubles a few months back.
02:27:28 <ais523> I hope there's enough for all of us when we catch it
02:27:36 <ais523> also, I don't remember that, so I guess I wasn't
02:27:40 <ais523> or that I have a bad memory
02:27:58 <evincar> Meh. Long story short, school sucks as usual for people like me.
02:29:05 <ais523> what nationality are you? and what do you mean by "school"? the word refers to slightly different educational institutions in different countries
02:29:17 <evincar> Specifically, the fact that I'm skilled and consequently have a huge sense of entitlement, I'm a maverick who can't stand working with others, I don't care about classes that don't teach me anything, etc., etc.
02:29:36 <evincar> Uh, American, college. Rochester Institute of Technology, specifically.
02:29:46 <evincar> I'm entering my fourth year.
02:30:00 <elliott_> is there anyone who self-identifies as a maverick who isn't a huge egotist, i ask this devoid of any context
02:30:16 <ais523> elliott_: I'm not sure
02:30:32 <ais523> although people who self-identify as mavericks are split upon whether they believe themselevs to be huge egotists, I imagine
02:30:34 <ais523> *themselves
02:31:21 -!- madbr has joined.
02:31:46 <evincar> elliott_: I am a huge egotist, but I'm also demonstrably a maverick. I really don't work well with others and I don't think like most of the people around me.
02:32:24 <ais523> you'll need to work with others occasionally even in a PhD
02:32:30 <ais523> I know I've had to
02:32:38 <ais523> part of the problem is finding a good supervisor who fits you well
02:32:41 <evincar> Then again, saying I'm an egotist probably calls into question whether I actually am, according to elliott_ logic.
02:32:52 <elliott_> maverick to me has connotations of being a brilliant jerk
02:32:56 <elliott_> which is a questionable self-identification
02:33:32 <evincar> ais523: Well, I have a good advisor and someone I could work with, and hopefully none of us would find any of the others insufferable jerks.
02:33:52 <ais523> that's a good start
02:33:53 <evincar> elliott_: I'm using it in its literal sense of an unorthodox person.
02:33:55 <ais523> do you have a thesis, too?
02:33:59 <evincar> It's mostly that I'm contrary.
02:34:10 <ais523> as in, something to study towards?
02:34:12 <evincar> Especially in the face of what I percieve to be arbitrary authority.
02:34:25 <elliott_> meh, you're not that unorthodox if you've managed three years of university
02:34:30 <ais523> either you or your supervisor needs to come up with one
02:34:35 <evincar> ais523: Oh yeah, I'm interested in dependent typing for imperative languages.
02:34:47 <ais523> OK, that's possibly niche enough to work
02:34:48 <evincar> There's more to it than that, but that's the gist.
02:34:48 <elliott_> now there's a terrible idea
02:34:59 <evincar> elliott_: I expect you're going to tell me why.
02:35:12 <elliott_> probably not, but it seems like adding any kind of mutability breaks the type system immediately
02:35:17 <ais523> although computer scientists will probably push you into doing it for ML because it's about the most imperative they're willing to consider
02:35:19 <elliott_> without encapsulating it somehow
02:35:21 <elliott_> which stops it being imperative
02:35:27 <ais523> elliott_: that's what makes it an interesting problem
02:35:36 <elliott_> also, imperative languages are a bad idea in general, being a subset of functional ones
02:35:40 <elliott_> and leaving out the most expressive parts
02:35:52 <elliott_> ais523: well, I'd question whether the result could be called dependently-typed. or maybe imperative.
02:36:05 <evincar> There are imperative languages out there with rudimentary dependent type systems, but they're very "researchy" and I want to make something more accessible.
02:36:27 <evincar> Because I consider dependent typing too useful to frame in a language that scares real programmers off.
02:36:29 <elliott_> "I'm going to do a PhD in taking some research and making it friendly to the masses"
02:36:39 <elliott_> evincar: by real programmers, you mean bad programmers, right?
02:36:46 <elliott_> (right)
02:36:47 <evincar> elliott_: Yes.
02:36:49 <ais523> do you mean real programmers as in Mel?
02:36:59 <ais523> or as in undergraduate Java users?
02:37:22 <elliott_> evincar: so you've chosen academia as the vehicle to make a piece of academic research accessible to idiots who dismiss anything from academia as useless?
02:37:23 <evincar> ais523: No, I mean average programmers, the everyday variety.
02:37:24 <elliott_> lemme know how that goes
02:37:26 <Sgeo_> http://www.reddit.com/r/DebateReligion/comments/j2d1x/to_all_religion_vs_morality_an_experimental/ Oh come on, I'd have to argue the viewpoint I agree with? That's boring
02:37:32 <elliott_> who the fuck is an average programmer
02:37:45 <ais523> Sgeo_: the mere existence of /r/DebateReligion worries me
02:37:47 <elliott_> is it someone who has to use java anyway because they're writing a CRUD database interface and it isn't up to them
02:37:56 <evincar> elliott_: Let me know how else to get funding to make what I want.
02:38:00 <ais523> it's like it's a honey pot reddit designed to contain trolls
02:38:02 <elliott_> nobody can give a satisfactory definition of average programmer that doesn't preclude them choosing the tools
02:38:13 <elliott_> evincar: what funding do you need beyond enough to live?
02:38:18 <elliott_> typing doesn't cost money
02:38:53 <elliott_> ais523: it's terrible, it has little tags so you can assure people that you don't REALLY think this, you're just explaining the other side
02:39:05 <ais523> haha, beautiful
02:39:06 <evincar> elliott_: That is the amount of funding that I need. If I get a job, I will have money. Quite a bit, in fact. But I won't have as much time, and time is far more important to me than money.
02:39:13 <ais523> actually implemented in, or just conventional character sequences?
02:39:18 <elliott_> ais523: with CSS formatting
02:39:22 <ais523> by conventional, I mean "have a meaning by convention"
02:39:23 <ais523> elliott_: haha
02:39:45 <elliott_> ais523: "now debates will have much fewer personal insults because we bring your personal views into the discussion!"
02:39:52 <ais523> evincar: I have a job as well as the PhD, 25%/75%
02:39:57 <elliott_> evincar: so how does this imperative dependent typing exactly work
02:40:14 <ais523> elliott_: I think it's so that you can persuade people who share your personal viewpoint that you aren't betraying them
02:40:20 <elliott_> and how long will it take you to realise that the "average programmer" can't actually choose to use your language
02:40:29 <elliott_> ais523: yep, so it makes debates personal
02:40:36 <ais523> elliott_: never ask a PhD student something directly on topic to the subject of their PhD
02:40:42 <elliott_> [](/da)are playing devil's advocate
02:40:42 <elliott_> [](/nmv)are giving information that does not agree with your personal views
02:40:44 <ais523> the answer will continue for years and you won't understand it
02:40:46 <elliott_> Christianity is a religion. [NMV]
02:40:50 <elliott_> ais523: he's not a Ph.D. student
02:40:56 <ais523> not yet, I suppose
02:41:02 <ais523> so you might have a chance at getting out alive
02:41:25 <elliott_> ais523: my secret weapon is knowing I'm the only right-thinking person in any discussion
02:41:54 <ais523> elliott_: but sometimes you change your mind as the result of a discussion
02:42:33 <elliott_> ais523: yes, but only if it's with you
02:42:35 <elliott_> :-P
02:42:49 <elliott_> ais523: anyway, that just means it took a while for my rightness to kick in
02:42:56 <evincar> elliott_: The simplest way to explain it is that the type system is a complete, purely functional, lazy language with no mutability, and the value system is an imperative, eager one with mutability.
02:43:12 <elliott_> wow, an image on prog21; I forgot it existed in the same universe as HTML pages with images on them
02:43:24 <elliott_> evincar: umm, what dependently typed languages do you know, so I can express what I'm about to
02:43:38 <evincar> elliott_: Only Agda.
02:43:41 <elliott_> please don't say none, the force of my facepalm will cause actual devastation to many north-eastern English populations
02:43:49 <elliott_> evincar: ugh
02:43:54 <ais523> elliott_: you're going to shout at me now for not knowing what prog21 is
02:43:54 <evincar> Just wing it.
02:43:58 <elliott_> evincar: can you learn Coq so that I can talk to you without bringing up my character map?
02:44:27 <elliott_> ais523: Programming in the 21st Century; it's a Good Blog About Programming(tm)
02:44:30 <ais523> elliott_: I may end up knowing more Agda than Coq because I'm apparently to work with an Agda fanatic
02:44:40 <elliott_> ais523: you have one more not knowing what prog21 is, then the shouting begins
02:44:45 <evincar> elliott_: I can pick up what's relevant to the discussion.
02:44:46 <ais523> and that has a tendency to rub off on you
02:44:57 <ais523> but then, I doubt you'd be surprised at me not knowing what X is for more or less any X
02:45:02 <elliott_> ais523: you'll hate Agda, I suspect
02:45:11 <ais523> and even when I do know what the X is, I often don't know what it's called
02:45:15 <elliott_> because it uses Unicode everywhere
02:45:18 <evincar> I find it difficult to take a language seriously whose name is "cock".
02:45:20 <elliott_> even for basic syntax
02:45:28 <elliott_> evincar: you realise Agda means that too?
02:45:31 <ais523> elliott_: that seems to be to do with the libraries not the lang itself, but fair enough
02:45:50 <elliott_> I think it's a mutation of Swedish "rooster" or something
02:45:51 <ais523> Unicode everywhere is not that problematic, the difficulty is characters-not-on-my-keyboard everywhere
02:45:52 <elliott_> because of Coq
02:46:03 <elliott_> ais523: umm, unless you consider the function arrow the library
02:46:14 <ais523> oh, haha, it's not ->?
02:46:18 <elliott_> ais523: it's →
02:46:26 <evincar> elliott_: I didn't know that. But I stand by it. I don't take Agda seriously. :P
02:46:27 <elliott_> ais523: and it uses a two-colon char instead of ::
02:46:27 <ais523> anyway, → is on my keyboard
02:46:34 <elliott_> ais523: also forall
02:46:40 <evincar> → is on my compose key...
02:46:41 <elliott_> also lambda
02:46:51 <elliott_> it comes with an emacs mode, though, so you can say \to for →
02:46:53 <elliott_> and the like
02:46:54 <elliott_> but still
02:47:00 <ais523> I know I have to keep explaining what all the backslashes mean in my ICA programs
02:47:08 <ais523> because I'm using \ for lambda Haskell-style
02:47:15 <ais523> (but \a.b not \a -> b)
02:47:16 <elliott_> evincar: anyway
02:48:09 <elliott_> evincar: forall A (xs:List A), is_empty xs -> forall (x:A), ~(list_elem x xs)
02:48:13 <elliott_> now if we say
02:48:21 <elliott_> hmm wait
02:48:25 <elliott_> evincar: vacuous_empty_list : forall A (xs:List A), is_empty xs -> forall (x:A), ~(list_elem x xs)
02:48:26 <elliott_> now if we say
02:48:29 <elliott_> xs := empty_list;
02:48:32 <madbr> Coq is french for rooster
02:48:34 <elliott_> proof := vacuous_empty_list xs;
02:48:44 <elliott_> insert 9 xs;
02:48:52 <elliott_> ermm, list here is mutable
02:49:03 <elliott_> evincar: ...then we can prove ~True, since (list_elem 9 xs)
02:49:49 <zzo38> \to is also the Plain TeX (and maybe also LaTeX and ConTeXt) command for the right arrow in math mode, too
02:50:21 <elliott_> evincar: no?
02:50:46 <evincar> elliott_: You're thinking immutably. In my language, a mutating operation of any kind may change type as well as value.
02:50:49 <elliott_> evincar: And if you can't prove that the vacuous property on all elements of an empty (mutable) list, then you can't prove almost anything about mutable structures
02:51:09 <elliott_> Which means that you just have... a functional language where an IO monad is baked in for no reason
02:51:18 <ais523> zzo38: I think \rightarrow is more common
02:51:27 <ais523> or maybe it's just a case of me not knowing the LaTeX for something
02:51:29 <zzo38> Yes \rightarrow also does that.
02:51:41 <ais523> I used to actually write $a^{\prime}$ rather than $a'$
02:51:44 <elliott_> ais523: yep, but \to is quicker to type in emacs
02:51:46 <ais523> because I didn't know of the abbreviation
02:51:51 <elliott_> and those aren't identical AFAIK
02:51:59 <ais523> no, but they're close enough
02:52:07 <ais523> and the latter is correct
02:52:08 <zzo38> \to and \rightarrow are identical commands; I just checked.
02:52:13 <zzo38> And ' in math mode is a prime.
02:52:18 <elliott_> evincar: Because I'm sure you can encode mutable variables that can change type upon mutation in Coq
02:52:29 <elliott_> And then build a mutable list with that
02:52:37 <zzo38> Since, math code 0 means treat as an active character in math mode.
02:52:46 <elliott_> evincar: Also: How do you avoid this?
02:52:49 <ais523> oh no, I think evincar's trying to add dependent typing to Visual Basic
02:52:55 <zzo38> So, ' has some special macro to check how many prime it is.
02:52:58 <elliott_> evincar: oops : _|_; oops = while true {}
02:53:09 <evincar> elliott_: But of course the point is that mutability is only there if you want it, not encouraged. Values and types are both immutable by default, and there are significant gains to going with the flow.
02:53:12 <ais523> (the first imperative language I could think of offhand with a Variant type)
02:53:23 <zzo38> Since you can do more than one prime, but ^{\prime} multiple times doesn't work.
02:53:25 <elliott_> evincar: OK, so why is the language imperative?
02:53:42 <zzo38> (Really I think it should have been designed so that it works; but it doesn't.)
02:53:44 <evincar> ais523: Ugh. Don't get me started on variants.
02:53:48 <elliott_> evincar: You can encode such mutable variables in any functional, dependently-typed language
02:53:55 <ais523> evincar: do you know of the standard formalization of imperative languages in computer science?
02:54:02 <elliott_> evincar: So IDGI.
02:54:05 -!- TeruFSX has joined.
02:54:06 <evincar> elliott_: The point isn't purity, though. It's utility and accessibility.
02:54:11 <ais523> "the simple imperative language" is the usual name
02:54:20 <elliott_> evincar: FFS, the IO monad is impure.
02:54:35 <zzo38> Do you think THE ROCKET'S TRAP is a stupid card and ROCKET'S SNEAK ATTACK is much better?
02:54:37 <elliott_> You're basically choosing to make the language more complicated because it lets you call it "imperative" and get backs on the back from idiots who are afraid of lambdas.
02:54:42 <ais523> elliott_: I think it can be implemented in a pure way, given the way laziness works
02:55:15 <elliott_> evincar: The interesting part is a dependently-typed language where the values can fail to terminate without making the type system unsound.
02:55:15 <ais523> elliott_: also, would you consider ICA imperative?
02:55:29 <elliott_> evincar: Don't burden it with something you can encode, with no loss at all, into a pure version.
02:55:31 <ais523> it has lots of lambdas, and uses a Y-like fixing operator for recursion, but it also has if, while, and assignable variables
02:55:42 <ais523> (although they have fixed types)
02:55:50 <elliott_> evincar: There is literally no advantage of baking mutable variables in, especially if there are proving-related gains to using immutable values.
02:56:07 <zzo38> But lambdas is very useful things in many programming languages, whether functional or imperative
02:56:18 <elliott_> ais523: imperative is practically impossible to define; it's a non-compositional, impure language
02:56:19 <madbr> zzo: really?
02:56:25 <ais523> elliott_: fair enough
02:56:26 <elliott_> ais523: but only the IO is non-compositional
02:56:31 <elliott_> ais523: OTOH, in ICA, I suspect IO is rather a lot of the program
02:56:44 <zzo38> madbr: Yes, sometimes.
02:56:52 <evincar> elliott_: Why do you think I want dependent typing for its proving capabilities? I simply think it's a useful abstraction for how to organise a type system.
02:57:08 <ais523> atm, the way IO works is that the program is given a function as argument, which, when forced, takes a number as argument and outputs it
02:57:14 <evincar> elliott_: And making an imperative language with a functional type system burdens neither.
02:57:17 <ais523> and there's no input, but it could be implemented in an analogous way
02:57:20 <evincar> There's a false dichotomy here.
02:57:39 <ais523> the language is about as strict as call-by-name gets, which is still pretty lazy
02:57:43 -!- Kerber0s has joined.
02:57:50 <zzo38> Is it ever the case in Haskell sometimes someone will write a program and compile it but what the program does is unimportant, only whether it will compile successfully?
02:58:03 <ais523> zzo38: people normally use Coq or Agda for that
02:58:09 <zzo38> Or in any other programming language?
02:58:31 <elliott_> evincar: Unless you can respond to my true statement that your language would lose absolutely nothing from implementing mutable variables inside the language itself and not having them as a burdensome axiom, I can't continue.
02:58:36 <ais523> in fact, I was wondering why my coworker was bothering to implement Agda at all
02:58:41 <madbr> I thought programming was more for many-to-many problems, rather than many-to-few
02:59:01 <ais523> elliott_: actually, there are advantages to having mutable variables as an axiom, but I can't remember offhand what they are
02:59:16 <ais523> but there's some technical advantage involved
02:59:23 <ais523> probably in operational semantics
02:59:32 -!- Kerber0s has left.
02:59:51 <ais523> whether this is relevant at all in evincar's situation, I don't know
02:59:51 <elliott_> ais523: the burden is on evincar to tell me why baking them in as an axiom that introduces unchecked side-effects is beneficial
02:59:58 <evincar> elliott_: The language wouldn't lose anything, but it wouldn't gain anything either. If a programmer wants to implement a function with local mutable variables because it's the simplest way for the problem to be decomposed, they can go for it.
03:00:19 <elliott_> evincar: You can do that without making it unchecked! You can do that without making it an axiom!
03:00:30 <ais523> evincar: I think you're missing elliott_'s point, which is asking whether mutable variables can more easily be implemented within the language itself rather than as part of it
03:00:34 <evincar> elliott_: And a pure function can do all the mutation it wants to locals and still be referentially transparent.
03:00:41 <elliott_> evincar: have you ever heard of ST?
03:00:43 <ais523> e.g. like State in Haskell
03:00:43 <elliott_> that's EXACTLY that
03:01:18 <elliott_> You are being a broken record; "oh, it's nice to use mutable variables sometimes in localised parts of the program" is such a fucking common argument against "functional languages" vs. "imperative languages" but it's utter rubbish; functional languages _have those things_, the only difference is that imperative languages have unchecked IO
03:01:32 <ais523> elliott_: you might be interested in how variables work in ICA, they're referentially transparent because there's no way to return the equivalent-of-address of a variable from a function (because call-by-name), and are scoped
03:01:41 <elliott_> and that cannot possibly be an advantage, because it is a subset that _omits the most expressive parts of a language_
03:01:57 <elliott_> ais523: heh
03:02:19 <ais523> as in, you can write a function of type, say, exp->var just fine, but what happens is that each time you try to access the variable it asks for the matching expression, then carries out whatever operation you were trying to do to the variable in a lazy way
03:02:34 <evincar> elliott_: So if I were to say that I'm going to implement my nominally imperative language in a purely functional fashion, such that mutating operations are emulated, what does that gain me?
03:02:55 <evincar> elliott_: Other than complicating the implementation.
03:02:58 <ais523> and you can't achieve the same thing with equivalent-of-ST/State, incidentally, because it wouldn't handle parallel computation correctly
03:03:24 <ais523> there's no way in a monad to carry out two monad actions in that monad simultaneously, in general
03:03:35 <elliott_> evincar: Question is dishonest; there is no "emulation" going on, and you have already told me enough to know that your language is not nominally imperative; and it cannot complicate implementation, because the function arrows, etc. that you need for a dependently-typed system like Agda already involve you implementing a functional language, so it can only simplify.
03:04:13 <ais523> new a in (a := 1 || a:= 2); print a
03:04:17 <ais523> umm, that's wrong
03:04:18 <ais523> new a in (a := 1 || a:= 2); print !a
03:04:27 <ais523> always remember to dereference your variables, folks!
03:04:42 <ais523> I don't think that translates into Haskell at all
03:04:52 <madbr> what is that
03:05:01 <ais523> so that's one potential use for evincar's language, assuming it works
03:05:13 <ais523> madbr: declare a variable a, assign 1 and 2 simultaneously to it, print the resulting value
03:05:19 <ais523> which will be either 1 or 2, based on timing
03:05:31 <ais523> || means parallel here, not or
03:05:38 <madbr> mhm
03:05:57 <ais523> (which is | because C operators have too much of a hold on the world's conciousness by now)
03:06:11 <madbr> eh
03:06:15 <elliott_> ais523: so you're breaking it by being unlike C?
03:06:19 <elliott_> or do you actually use bitwise or in C :-)
03:06:24 <evincar> ais523: "||" makes so much more visual sense for "parallel". :(
03:06:24 <ais523> elliott_: heh
03:06:27 <ais523> well, booleans are one-bit values
03:06:37 <ais523> so logical and bitwise or are the same thing
03:06:50 <evincar> ais523: Now *that* sounds like Basic.
03:06:52 <ais523> there's no autocasting of >1-bit integers to booleans, you have to manually compare to 0
03:06:53 <elliott_> <ais523> (which is | because C operators have too much of a hold on the world's conciousness by now)
03:06:56 <elliott_> I still don't understand this
03:07:07 <ais523> elliott_: I mean, I couldn't live with having or as anything but | and ||
03:07:11 <ais523> and || was already taken
03:07:19 <ais523> xor and and are ^ and &
03:07:52 <elliott_> ais523: quick, what's gcd(0,0)
03:07:59 <ais523> elliott_: I don't know
03:08:05 <ais523> I assume +INF
03:08:16 <elliott_> ais523: Euclid's algorithm says 0
03:08:26 <ais523> it couldn't really say anything else, could it?
03:08:42 * elliott_ says because of http://www.haskell.org/pipermail/libraries/2011-June/016450.html
03:08:46 <elliott_> evincar: very well
03:09:03 <zzo38> CWEB also uses | to include C codes in text, the reason is that WEB uses it for Pascal codes in text, because | is not used in Pascal, and then they put the same thing for C and sometimes it doesn't work in case you want to use "or" in C codes in text. But you can still do in other ways. Even many other programming language including Javascript, AWK, etc also uses || for logical or
03:09:03 <ais523> lcm(0,0) is uncontroversially 0, and gcd(a,b)*lcm(a,b) normally equals a*b
03:09:07 <ais523> which gives further evidence for +INF
03:09:28 <elliott_> ais523: umm, it does?
03:09:30 <elliott_> that suggests 0 to me
03:09:34 <ais523> oh, right
03:09:43 <evincar> Yeah, was gonna say, no it does not.
03:09:44 <ais523> wait, no, err, I'm confused
03:09:46 <ais523> it doesn't suggest anything
03:09:52 <ais523> it sets it equal to 0/0
03:09:56 <elliott_> evincar: I take it I should stop expecting a response
03:09:59 <ais523> which is not a useful thing to do
03:10:08 <elliott_> ais523: lcm(0,0) = 0; lcm(0,0)*gcd(0,0) = 0*0 = 0
03:10:09 <ais523> for some reason I calculated it as 1/0
03:10:14 <elliott_> so gcd(0,0) can be anything
03:10:15 <evincar> elliott_: I'm losing track of what the current attack is.
03:10:21 <elliott_> evincar: "Attack"? Seriously?
03:10:31 <ais523> yep, it doesn't force any particular value on gcd(0,0)
03:10:41 <evincar> elliott_: Your style of conversation is notoriously aggressive. ;)
03:10:42 <ais523> elliott_: actually, when your PhD is actually marked, the final stage is a viva
03:10:55 <ais523> where you have to sit in a group with a bunch of professors who try to attack your thesis, and you have to defend it
03:11:07 <ais523> and you pass if they couldn't invalidate your last four years of work
03:11:11 <elliott_> evincar: How am I supposed to respond to a "when-did-you-stop-beating-your-wife" question aside from explaining that it's dishonest? I'm a bit exasperated, I admit, but that's mostly because it's annoying to see someone who knows Agda spout what is essentially the party line on anti-functionalism.
03:11:15 <ais523> (they mark the written part first, I think)
03:11:18 <elliott_> <evincar> elliott_: So if I were to say that I'm going to implement my nominally imperative language in a purely functional fashion, such that mutating operations are emulated, what does that gain me?
03:11:18 <elliott_> <evincar> elliott_: Other than complicating the implementation.
03:11:18 <elliott_> <elliott_> evincar: Question is dishonest; there is no "emulation" going on, and you have already told me enough to know that your language is not nominally imperative; and it cannot complicate implementation, because the function arrows, etc. that you need for a dependently-typed system like Agda already involve you implementing a functional language, so it can only simplify.
03:11:20 <elliott_> is the latest context.
03:11:23 <zzo38> "Attack"? Yes it is attack. Now you are playing pokemon card but you forgot which attack you want, in case there is 2 attack or in case you want to pass even if you can attack
03:11:27 <elliott_> ais523: I know
03:11:40 <ais523> zzo38: it's kind-of rare to pass in that game
03:11:50 <ais523> although I can just-about imagine situations where it might be useful
03:11:52 <elliott_> ais523: See also http://www.mcsweeneys.net/articles/faq-the-snake-fight-portion-of-your-thesis-defense
03:12:00 <elliott_> (you probably won't click that, but the URL is funny enough)
03:12:13 <zzo38> ais523: Actually I find it very useful to pass in many situations
03:12:19 <ais523> elliott_: I did click it, in case it was useful
03:12:24 <elliott_> ais523: haha
03:12:26 <ais523> also, I'd hate to have you marking my PhD
03:12:42 <elliott_> ais523: I'm only angry on the internet
03:13:00 <evincar> elliott_: I do consider it emulation. Just like I can write an interpreter for an imperative language with mutating operations in a language without mutating operations, so too can I write an interpreter for a language with only immutable values on hardware that is fundamentally (though not trivially) imperative.
03:13:28 <elliott_> evincar: If you think your hardware follows a fundamental ordered imperative model, you're stuck in the 90s
03:13:29 <ais523> hmm, it makes a decent metaphor even if it claims not to be
03:13:33 <elliott_> it _emulates_ one
03:13:35 <evincar> elliott_: That aside, I'll ultimately go with whatever implementation strategy seems simplest and best. Ideally the language will be small and implemented largely in terms of itself.
03:13:55 <ais523> elliott_: hardware doesn't follow a functional model either, admittedly
03:13:59 <elliott_> ais523: the part about fighting a snake instead of actually writing a thesis is the best
03:14:02 <elliott_> ais523: Of course it doesn't
03:14:05 <ais523> look at Checkout if you want to know what it actually does
03:14:09 <evincar> elliott_: I don't. That's why I qualified my statement a bit. :P
03:14:10 <elliott_> But who the hell picks programming model based on their hardware model
03:14:19 <elliott_> <evincar> elliott_: That aside, I'll ultimately go with whatever implementation strategy seems simplest and best. Ideally the language will be small and implemented largely in terms of itself.
03:14:28 <ais523> elliott_: me, but admittedly that's a special case
03:14:30 <ais523> and only sometimes
03:14:33 <madbr> elliott: yeah but it emulates one for a good reason
03:14:35 <elliott_> evincar: I don't think you really want this, because you weren't interested in a change to simplify the language incredibly and make implementing it easier, and have it defined more in itself than it was
03:14:50 <evincar> elliott_: I'm not arguing that it's a good idea to pick a programming model based on the hardware. In fact, I'd argue the opposite so long as the hardware doesn't serve the abstractions of the problem domain perfectly.
03:15:02 <elliott_> madbr: please, talking to both evincar and ais523 at once is hard enough, I can't have an anti-functionalism argument with someone whose positions I don't even know at the same time
03:15:07 <ais523> elliott_: part of the reason I haven't started writing Anarchy yet is that I'd really want to implement it in itself
03:15:17 <ais523> elliott_: and I'm not even disagreeing with you!
03:15:24 <ais523> mostly, at least
03:15:34 <evincar> elliott_: I'm just reserving judgement, I guess.
03:15:38 <Patashu> I want to write Democracy. How any function works is determined by all coders of that language voting on its behaviour
03:15:49 <elliott_> Patashu: see: php
03:15:52 <Patashu> LOL
03:16:08 <evincar> elliott_: I am trying to make a language that's highly usable and easy to understand.
03:16:09 <ais523> elliott_: that's a worryingly accurate joke
03:16:23 <elliott_> http://www.econugenics.com/t-our-products.aspx?affiliateID=10100 <-- I read this as "neoEugenics" rather than "ecoNugenics"
03:16:28 <elliott_> thought you all should know
03:16:30 <evincar> elliott_: Not because I'm pursuing some misguided "non-programmers should be able to program" goal.
03:16:42 <elliott_> evincar: Easy to understand for who
03:16:48 <ais523> evincar: it sounds like you're pursuing some misguided "programmers should be able to program" goal
03:16:58 <evincar> But because I don't like using languages that make me conform to them rather than the other way around.
03:17:01 <elliott_> evincar: And really: understanding dependent type systems is not easy for any "average imperative programmer".
03:17:17 <elliott_> You can't go from Java to that without some resistance. That's just a fact.
03:17:36 <ais523> ideally, a dependent type system would not require any input from the programmer at all
03:17:44 <ais523> and just give you really good warning messages
03:17:52 <evincar> elliott_: Sure, but you can tease people in with nifty examples.
03:18:07 <ais523> like "this branch of this if statement is unreachable because the variable never gets the number 4", or whatever
03:18:08 <elliott_> evincar: Anyway if you're a maverick who dislikes working for others and rejects false authority why the hell are you devoting yourself to the false authority of the Average Programmer(tm), why the hell are you watering down your language so that it's easy for the mythical Average Programmer(tm)???
03:18:13 <ais523> but I suspect that isn't what evincar isn't aiming for
03:18:36 <ais523> err, s/n't(.*)n't/n't$1/
03:18:37 <evincar> elliott_: Even trivial ones like defining sequence joining as `+`[a:T[n], b:T[m]]:T[n+m]={...}
03:18:46 <ais523> there's a shorter way to write that regex, but I forget what it is to start with
03:18:57 <elliott_> evincar: that's the least enticing example ever
03:19:05 <elliott_> you're not winning any Java programmers with that syntax, dude
03:19:08 <ais523> aha
03:19:19 <ais523> s/.*\Kn't//
03:19:23 <ais523> thanks, man perlre
03:19:51 <monqy> I must say I'm agreeing with elliott_ here
03:19:54 <ais523> evincar: is the {...} literal, or representing omitted code?
03:20:13 <elliott_> ais523: I think parametricity actually guarantees that function to only have one implementation
03:20:13 <ais523> (shut up this is #esoteric I have to ask that sort of question)
03:20:25 <elliott_> ais523: so a Sufficiently Smart Compiler could actually accept {...} there :-P
03:20:26 <elliott_> oh wait no
03:20:27 <evincar> elliott_: The majority of programmers are not the best programmers out there. I think doing a public service by making power available (conceptually) to people isn't submitting to authority at all, it's doing what all people ought.
03:20:27 <ais523> then why do you need to write the implementation at all?
03:20:30 <elliott_> hmm wait yes
03:20:35 <elliott_> although it needs a type variable
03:20:35 <ais523> also, it could reverse the lists before joining them, couldn't it?
03:20:40 <elliott_> ais523: oh, right
03:20:42 <ais523> and still obey the type signature?
03:20:43 <elliott_> damn
03:20:48 <evincar> ais523: It's a placeholder for an implementation, but it's probably unnecessary in that example.
03:20:50 <elliott_> evincar: so you're making a bad language because of socialism, OK
03:21:04 <elliott_> (bad language = not as good a language as it could be)
03:21:28 <ais523> elliott_: do you live in a country where you can make arbitrary things bad by accusing them of being socialism?
03:21:31 <evincar> elliott_: In your opinion. And I am a socialist, but that's not really the point.
03:21:42 <elliott_> evincar: that's literally what you just said
03:21:44 <elliott_> ais523: Nope
03:21:45 <evincar> elliott_: I simply like making stuff that helps people make stuff, because I like making stuff.
03:21:54 <ais523> (also, does that actually /work/ in the US? might be the easiest way to win arguments ever)
03:21:59 <elliott_> ais523: but I do think "for the good of the people" is the stupidest reason to make a language I can think of
03:22:17 <ais523> elliott_: there have to be even stupider reasons, surely?
03:22:25 <evincar> ais523: And yeah, you could add more type information to make it more correct. :P
03:22:30 <elliott_> evincar: So you'd make a thing that's worse than another thing you could also make, because more closed-minded idiots would like it, and fewer open-minded clever people would like it?
03:22:43 <elliott_> If yes, your priorities need checking.
03:22:56 <ais523> elliott_: well, I care somewhat about people being able to use my stuff as well
03:23:12 <elliott_> ais523: not what I said
03:23:14 <ais523> but I'm doing it along the lines of "this language is pretty easy to use anyway, and you can always compile into it)
03:23:21 <ais523> err, s/\)/"/
03:23:29 <evincar> elliott_: You're assuming that the majority of people are closed-minded idiots, which I challenge.
03:23:34 <elliott_> ais523: presumably, you wouldn't make [generic FPS 999] rather than AceHack just because more people with bad taste would like the former
03:23:35 <ais523> I wasn't looking at what I was typing and forgot what sort of delimeter I had to close
03:23:37 <elliott_> evincar: Nope.
03:23:43 <ais523> further evidence that I'm thinking in stack-based form
03:23:53 <ais523> elliott_: AceHack was actually a response to popular demand
03:24:03 <monqy> evincar: hey evincar is your language going to have goto
03:24:05 <evincar> elliott_: "more closed-minded idiots...fewer open-minded clever people..."
03:24:08 <ais523> and also, there's less competition; probably fewer people would play generic FPS 999 because it would have so much competition
03:24:19 <elliott_> evincar: I'm assuming that the (mythical) Average Programmer who will dismiss a language because it's pure (but not for having a really advanced type system that is a purely-functional language in itself??) is a closed-minded idiot.
03:24:27 <elliott_> Which is true by definition.
03:24:46 <ais523> elliott_: but mostly, I suppose I just like programming, and producing something that other people like out of that is a useful side-effect
03:25:01 <ais523> elliott_: won't Average Programmers dismiss languages for not being Java?
03:25:10 <monqy> evincar: goto is very expressive, you see, and shouldn't an expressive language have it? Average Programmers understand it too!
03:25:10 <elliott_> evincar: let me type something
03:25:16 <elliott_> ais523: yep
03:25:41 <ais523> evincar: your new PhD thesis: retrofitting dependent typing onto Java
03:25:55 <ais523> (gah now I can't decide whether that idea is horrible or awesome)
03:25:59 <elliott_> evincar: you want people to learn a purely-functional programming language (which can already encode all the mutability and IO you want, with no loss in convenience or expressivity, which is simpler, has fewer errors because of unchecked non-local side-efects, and which has more language features described in itself rather than primitive)
03:26:07 <elliott_> evincar: PLUS an impure language which doesn't have those advantages
03:26:10 <elliott_> evincar: ...rather than just both.
03:26:12 <elliott_> erm
03:26:14 <elliott_> evincar: ...rather than just the pure one.
03:26:29 <elliott_> Before you say you don't,
03:26:31 <elliott_> yes you do:
03:26:31 <elliott_> <evincar> elliott_: The simplest way to explain it is that the type system is a complete, purely functional, lazy language with no mutability, and the value system is an imperative, eager one with mutability.
03:26:36 <evincar> monqy: You could make something that is goto in all appearances, but implemented more sanely. I'm not sure what card you're trying to play.
03:26:55 <evincar> elliott_: The simplest way to explain it is not necessarily the best way.
03:26:58 <elliott_> Oh, and you know how you said youcould use functions which had local mutable state but didn't leak it outside? Congratulations, now you can't use those functions in types.
03:27:13 <elliott_> With the ST monad, you can, and it acts identically. And it enforces, with the type system, that you don't leak anything out, rather than leaving it up to not making mistakes.
03:27:18 <monqy> i'm trying to play the demonstrating how it's stupid to add things for the sake of average programmers being expressive with them card
03:27:22 <monqy> if thats ok with you
03:27:23 <evincar> elliott_: Besides, the C++ type system is a complete functional language with no mutability.
03:27:32 <elliott_> lol
03:27:46 <evincar> elliott_: There's an example of my madness working in practice, with a far poorer design.
03:27:53 <elliott_> C++ is also shit
03:27:56 <elliott_> your defence
03:27:57 <elliott_> is C++
03:28:04 <elliott_> I think that means I've won...
03:28:07 <evincar> elliott_: It is a language that exists?
03:28:13 <elliott_> That it is.
03:28:15 <monqy> elliott_: did he ever explain how Average Programmers are supposed to use dependant types? I'm afraid I might have accidentally skipped over it
03:28:21 <zzo38> One of the worse things about Magic Set Editor is they lie. They say it is pure but actually it isn't, because of the random number functions, and the export functions. It is possible to make pure versions of these functions, which can be helpful in some cases.
03:28:22 <madbr> and that lots of ppl use?
03:28:25 <elliott_> monqy: he's going to entice them with a list append function
03:28:35 <evincar> monqy: I did not.
03:28:36 <monqy> very clever
03:28:41 <ais523> evincar: just a note, appealing to C++ in programming forums, unless they're dedicated to games or old-fashioned Windows development, will generally make everyone laugh at you
03:28:43 <elliott_> monqy: then they'll just go to their bosses and say "hey let me stop using java, there's this great language in this thesis..."
03:28:48 <ais523> in fact, it may even Godwin the thread
03:28:50 <elliott_> and the bosses will be all "ok"
03:28:55 <evincar> ais523: I'm well aware. I try not to touch the thing, honestly.
03:28:58 <ais523> although it's not quite the same thing
03:29:22 <atehwa> elliott_: okay, well, it doesn't surprise me that there is a language that is more expressive than primitive recursive functions and less expressive than a TM.
03:29:24 <ais523> zzo38: how do you make a pure version of a random number function? get it to take the seed as argument and return another seed along with the result?
03:29:32 <elliott_> atehwa: right
03:29:41 <ais523> (note, "you" here = "zzo38")
03:29:45 <elliott_> atehwa: you seemed to imply such a language couldn't express Ackermann, though
03:30:09 <ais523> elliott_: I was going to write an Ackermann-bounded-automaton as an esolang at one point
03:30:11 <ais523> but got sidetracked
03:30:13 <atehwa> yes, well, I wasn't aware of such a language.
03:30:20 <elliott_> atehwa: right
03:30:25 <evincar> monqy: The point of having a dependent type system in an imperative language is merely to offer fine control over the contracts that can be expressed over values, to help enforce program correctness.
03:30:41 <elliott_> evincar: oh, so you do want proving?
03:30:42 <zzo38> ais523: Yes. Or, just add to the seed each time, call it with seed=x+1, seed=x+2, seed=x+3, etc
03:30:46 <elliott_> I thought you just wanted it because it was a good way to organise a type system.
03:30:47 <ais523> all I remember is that you had a finite number of values to work with and all operations consumed a value, except finitely many times, you could ackermann two values and get that many values
03:30:49 <elliott_> Well... that's what you said.
03:30:50 <evincar> Make the interface to it pleasant to look at, and the battle is basically won.
03:30:55 <elliott_> <ais523> zzo38: how do you make a pure version of a random number function? get it to take the seed as argument and return another seed along with the result?
03:30:59 <elliott_> see RandomGen
03:31:05 <elliott_> evincar: creating your language won't make me think it's any more of a good idea.
03:31:20 <elliott_> I do hope you realise how difficult it is to prove type systems correct, though
03:31:20 <ais523> elliott_: I was interested in the zzo38 answer in particular, I know about, say, RandomRIO
03:31:20 <evincar> elliott_: Formal correctness, practical correctness, different things.
03:31:23 <elliott_> especially dependent ones
03:31:29 <elliott_> where you have to mingle in the value normalisation proof
03:31:44 <evincar> elliott_: If you write enough type information to make your program a formal proof, bully. But you don't have to.
03:31:56 <elliott_> evincar: what is practical correctness
03:32:01 <ais523> elliott_: way easier than it is to prove hardware implementations of type systems correct (in that after compiling to hardware, the thing still types properly and doesn't end up disobeying the protocol)
03:32:03 <ais523> trust me on this one
03:32:03 <evincar> elliott_: The damn thing works?
03:32:51 <monqy> elliott_: Average Programmers, remember
03:33:24 <elliott_> evincar: how does that respond to anything i say
03:33:27 -!- TeruFSX has quit (Ping timeout: 260 seconds).
03:34:31 <zzo38> MSE has a few functions using random, so whatever way is used you can do it. For certain things (not all things), the script can be called with a random "seed" variable and then there are various ways in which you can have it do different random numbers. For export functions, just have them return lists of export records. If the return value is a list it indicates exporting many files
03:34:31 -!- madbr has quit (Read error: Connection reset by peer).
03:38:55 <evincar> elliott_: And yes, I do realise that type systems aren't simple beasts by any means.
03:39:04 <evincar> At least not the monster I'm getting myself into a fight with.
03:41:48 -!- madbr has joined.
03:44:46 <evincar> I love how thoroughly I get pounced on in here.
03:45:11 <monqy> so uh
03:45:12 <evincar> Even a fairly casual mention of something is going to provoke intense questioning.
03:45:19 <monqy> that sequence joining example or whatever it was
03:45:21 <monqy> what does it mean
03:45:32 <elliott_> monqy: it's just length-indexed vectors
03:46:11 <monqy> im probably just not getting the syntax
03:46:18 <evincar> monqy: Yeah, it's nothing exciting. It just says that the result of joining two vectors of lengths m and n is a vector of length m+n.
03:46:31 <monqy> oh that's the type
03:46:38 <zzo38> I wrote the birdstyle.tex program, it is useful not only for Haskell but can be used with any program that uses Bird style (if any others exists). However, it makes error if the first command in a paragraph is outer command, but you can work around by putting \relax at first
03:47:11 <monqy> you should totally make the type system imperative too
03:47:44 <evincar> monqy: You would need an implementation, obviously, but you could put enough information in the type signature to obviate the need for one.
03:47:59 <elliott_> wait
03:48:07 <elliott_> you're actually planning to make it automatically generate functions based on the type?
03:48:09 <elliott_> haha
03:48:19 <evincar> elliott_: No?
03:48:28 <elliott_> "you could put enough information in the type signature to obviate the need for one"
03:48:37 <ais523> elliott_: then just add good enough type inference, and you don't need to write anything at all!
03:48:38 <monqy> "obviate the need for one" is a bit bizarre of a thing to say
03:48:42 <evincar> elliott_: Yes, because you could express the implementation in the type system, functionally.
03:48:49 <ais523> (oh please let that be possible in some esolangish way)
03:48:52 <elliott_> evincar: show me an Agda function without any implementation
03:48:57 <evincar> elliott_: Poor choice of words, that's all.
03:48:58 <elliott_> just defined in the type system
03:49:02 <elliott_> because what you said makes no sense at all
03:49:28 <monqy> so uh
03:49:39 <ais523> elliott_: more commonly, Agda functions don't have a return value (or well, they return something that's commonly called <character that isn't on my keyboard>), and exist only to make the thing type
03:49:42 <monqy> is this thing actually going to infer implementation from the type?
03:49:45 <evincar> elliott_: There is a functional subset and an imperative subset. You can implement a particular function in a mix of either.
03:49:56 <evincar> elliott_: The functional subset happens to be the type system.
03:50:11 <elliott_> evincar: that doesn't mean you can define a function and just give it a cool enough type that you can leave out the value
03:50:35 <evincar> elliott_: Not in those terms, no.
03:50:43 <monqy> so what are your terms
03:50:50 <monqy> and not those ones
03:51:16 <elliott_> evincar: how is what you said possible, give me an example of a function where you put enough information in the type system and express the implementation in the type system, functionally, thus obviating the need of an implementation
03:51:35 <evincar> You can declare a detailed relationship between types, rather than declaring a simple relationship between types that includes an imperative implementation.
03:51:46 <zzo38> In fact you can make any program use Bird style with a simple AWK program: /^> /&&sub(/> /,"")
03:52:01 <evincar> You could also remove types from the signature entirely and perform no type checking, or perform type checking manually within the imperative part.
03:52:13 <elliott_> evincar: that's not an example
03:52:45 <evincar> elliott_: I know, I'm just offering more explanation. But what do you want? I'll just be pulling syntax out of my arse.
03:53:05 <zzo38> Do you like AWK?
03:53:19 <monqy> evincar: wait so you can not only infer implementation from type, but also just bypass type checking?
03:53:29 <zzo38> Do you like AWK programming?
03:53:38 <elliott_> evincar: an example of
03:53:40 <elliott_> <elliott_> evincar: how is what you said possible, give me an example of a function where you put enough information in the type system and express the implementation in the type system, functionally, thus obviating the need of an implementation
03:53:46 <evincar> monqy: You can't infer implementation from type. You can implement a function as a type relation.
03:53:48 <elliott_> which I have carefully constructed using only quotes from you
03:53:59 <monqy> evincar: and how does that work?
03:56:59 <evincar> monqy: The type system is a language in which you can express functions. If I pass 3 and 5 to such a function, I can treat them as "int", I can treat them as ">0", or I can treat them as instances of the types "3" and "5" whose only instances are those values.
03:57:08 <evincar> I really don't know how to explain it any more clearly.
03:57:21 <elliott_> evincar: subtyping is not in any standard dependently-typed language that I know of
03:57:24 <elliott_> it _vastly_ complicates such things
03:58:03 <evincar> elliott_: That's why I have a set of fundamental types that have representations, to keep things moderately sane.
03:58:09 <elliott_> what?
03:58:13 <evincar> elliott_: From there, everything else is relations and predicates.
03:58:28 <elliott_> out of curiosity how much of the literature on dependent typing have you read
03:58:39 <evincar> elliott_: Some types in the type system have concrete representations, for the sake of sanity.
03:59:10 <evincar> elliott_: A few papers, not terribly much.
03:59:18 <ais523> evincar: I think you may need a type system /for/ your type system
03:59:38 <elliott_> nothing you said about fundamental types with representations actually made any sense, but ok
03:59:44 <elliott_> I'm going to go code mcmap
04:00:44 <evincar> ais523: Maybe so? I hate to bring up C++ again, but templates do distinguish between "typename", "int", etc. as parameters.
04:01:06 <evincar> Is it a terrible idea to have rudimentary introspection or whatever you want to call it?
04:01:28 <elliott_> you've stopped actually making sense
04:01:46 <elliott_> what are concrete representations, what is a fundamental type, how is your subtyping done, how is this related to introspection, and how is C++ relevant
04:02:30 <monqy> and pardon my ignorance but what does subtyping have to do with obviating the need of implementing sequence sticktogethering
04:02:45 -!- MSleep has joined.
04:03:49 <evincar> elliott_: A concrete representation (though there could be a better term for it) would be something naturally serialised in memory. A 32-bit unsigned integer. A 64-bit IEEE-754 float.
04:03:50 -!- madbr has quit (Read error: Connection reset by peer).
04:04:36 <evincar> elliott_: Fundamental types consist of all such directly representable types, plus their natural extensions such as tuples/arrays.
04:04:50 <monqy> or do you mean that you can implement sequencesticktogethering in the type system and then magically have it in the object language too?
04:05:14 <evincar> elliott_: They aren't special except in the sense that they provide a basis from which to derive other types in a finite way.
04:05:23 <evincar> monqy: I'm not sure what you mean.
04:05:48 <monqy> evincar: help i'm confused because of what you said about need obviation
04:06:19 <evincar> monqy: If I write a function "foo" with an implementation but no type signature, no type checking is performed and the implementation is evaluated.
04:06:29 <monqy> :(
04:07:12 <monqy> veering on a tangent here but how does foo mingle with typed things then, and how is letting people get away with untyped stuff a good idea
04:07:14 <evincar> If I write that same function with a type signature but no implementation, it's a declaration of a type relation which may or may not be fully evaluable. If I try to evaluate it, I find out.
04:08:05 <evincar> If I write both, then type checking and conversion *as well as* evaluation are performed.
04:08:07 <elliott_> mingleingle
04:09:34 <evincar> monqy: You can say there are basically two classes of types: those you care about and those you don't. If I write a function which takes arguments of any type and returns a value of any type, it's entirely up to the types involved to make sure that the operations performed on their instances are legal.
04:09:46 <evincar> If they're not, it's just a type error.
04:09:56 <evincar> Duck-typing.
04:10:01 <monqy> im dead
04:11:03 <monqy> and so is this ever a good thing or is it just
04:11:06 -!- madbr has joined.
04:11:11 <elliott_> how is this dependently-typed exactly, i've been making all my statements under the assumption that it was a strongly-typed language with a dependent type system, but it appears you just said dependent because it's a nice word
04:11:12 <monqy> Average Programmer laziness
04:11:24 <monqy> oh right and what elliott_ said
04:12:33 <evincar> elliott_: Types depend on values and other types, and there isn't any real distinction between a type and a value.
04:12:53 <elliott_> except that values can do io and change variables
04:13:36 <evincar> No, imperative portions can. You can use types imperatively and you can use values declaratively.
04:14:44 <monqy> ????
04:14:48 <evincar> I could easily say x = int; if (y) x = float; z = x(); # Create an instance of whatever x is.
04:15:28 <elliott_> this sounds like a total mess
04:15:34 <monqy> I agree with elliott_
04:15:46 <monqy> it uh
04:16:05 <monqy> why is mutability a good thing?
04:16:06 <elliott_> why don't you just pick one idea and run with it rather than making a language that gels five thousand concepts together in a way you cannot explain in a satisfactory manner
04:16:09 <monqy> it just looks like a
04:16:10 <monqy> huge mess
04:16:31 <Patashu> ?_?
04:16:35 <zzo38> Invent the INTERCAL card game.
04:16:37 <quintopia> what is the easiest way to wipe an ssd so that it is, say, one tenth scrambled/overwritten
04:16:45 <quintopia> in a laptop
04:16:52 <evincar> elliott_: By five thousand, you mean two?
04:17:02 <elliott_> evincar: nope
04:17:08 <monqy> oh no there are more than two concepts in there
04:17:13 <monqy> at least three
04:17:19 <monqy> and uh
04:17:25 <monqy> what does the () in x() mean
04:17:26 <evincar> Also, I'm not explaining myself well because I've been awake for a while.
04:17:34 <evincar> monqy: Instantiation.
04:17:47 <zzo38> Invent the INTERCAL card game, please. Do you know how?
04:17:48 <evincar> x contains a type, so you can instantiate that type.
04:18:15 <evincar> zzo38: It sounds like UNO but with a COME FROM card.
04:18:33 <monqy> and what does instantiation do
04:18:49 <Patashu> hahaha a 'come from' card
04:18:50 <evincar> monqy: Produces a value of a given type...
04:19:09 <Patashu> MINGLE: shuffle the deck and the playing field into each other
04:19:20 <ais523> hmm, surely at least in /this/ channel an INTERCAL discussion can manage to avoid devolving into "hahaha COME FROM"
04:19:50 <zzo38> evincar: It does? I don't know about UNO but maybe figure out how to make something like that, type the rules or whatever else you would do instead. Including, MINGLE card, and so on
04:20:18 <monqy> evincar: so you just assign z to a value of x? Doesn't it do anything else?
04:20:51 <madbr> up to now it sounds feasible in like, javascript, no?
04:20:53 <monqy> evincar: for example, what happens if i then try to, say, z = float();
04:21:31 <monqy> evincar: are you conflating type declaration with instantiation? are you asking for trouble?
04:22:56 -!- madbr has quit (Read error: Connection reset by peer).
04:24:26 -!- madbr has joined.
04:24:28 <madbr> is there a use for bool variable types in non performance related stuff btw?
04:25:16 <elliott_> bool variable types?
04:25:42 <Patashu> bools for performance?
04:25:49 <madbr> the "bool" type
04:25:51 <evincar> monqy: Saying z = float() is the same as saying z = <uninitialised value of type float> or possibly z = 0.0.
04:26:02 <madbr> is it useful
04:26:13 <evincar> And given x = float, z = x() is the same as z = float().
04:26:18 <Patashu> bool is useful
04:26:19 <Patashu> ?_?
04:26:31 <Patashu> you don't need it for performance though
04:26:36 <Patashu> since it's using 1 bit every 32/64
04:26:40 <Patashu> you use it for understanding
04:26:57 <madbr> then it's syntactic sugar
04:27:04 <Patashu> Everything is syntactic sugar
04:27:06 <Patashu> What's your point
04:27:15 <monqy> evincar: any reason why you don't declare the types of stuff in one place and then provide them with values (without this uninitialized value nonsense) in another?
04:28:29 <madbr> then unless your system is performance oriented there's no point to types other than double, strings and agregates/arrays/objects/hashes/etc... of those
04:28:53 <monqy> you did that with your sequence mush together thing right? put the type over in one place and the value in another?
04:28:57 <madbr> and I guess functions
04:29:14 <monqy> rather than initailizing and then reassigning
04:29:16 <Patashu> madbr: If I'm not after performance I can code everything I want in just brainfuck, but I don't because brainfuck is difficult to understand
04:29:19 <monqy> because ew ew ew e we w e w e we we ew
04:29:22 <evincar> monqy: It's essentially the same thing though. If I say "x is a float", what value does "x" have before I give it a value?
04:29:25 <Patashu> Similarly, bools are used over ints because bools provide understanding
04:30:01 <monqy> evincar: it doesn't have one. it's an error to use it before you give it a value. you could even force giving an initial value in the declaration syntax.
04:30:21 <madbr> patashu: I'm not convinced it's a big gain
04:30:47 <monqy> not only understanding, but type checking
04:30:54 <elliott_> madbr: what's the point of using structures, let's just use lists
04:31:00 <monqy> yes that
04:31:02 <elliott_> i don't see the relevance of performance
04:31:10 <elliott_> madbr: in fact, let's just use a brainfuck tape
04:31:11 <evincar> monqy: Then there's no point to having a declaration. Saying "x = 0.0" or "x = float()" is no more or less clear than "float x = 0.0", and the latter is redundant.
04:31:40 <monqy> madbr: and why have types at all. just make everything byte arrays.
04:32:27 <monqy> evincar: the "x = float()" one is just full of bad ideas
04:32:42 <evincar> monqy: You wouldn't typically do that, of course.
04:32:50 <monqy> make it illegal
04:32:50 <madbr> well, there's no point to char and short except for specifically saving RAM and specific arrays
04:32:55 <monqy> it's just clutter
04:33:05 <madbr> bool is sugar
04:33:15 <elliott_> madbr: what isn't sugar
04:33:25 <elliott_> sugar makes things sweeter
04:33:28 <elliott_> bool conveys your intentions
04:33:31 <monqy> madbr: are type systems sugar
04:33:32 <elliott_> "this is a boolean, false or true"
04:33:35 <elliott_> int doesn't convey this
04:33:39 <elliott_> madbr: bool is not an integer in all languages
04:33:40 <evincar> monqy: Also I fail to see the difference between "float x;" (x is of type float but is either uninitialised or zero) and "x = float();".
04:33:47 <elliott_> in Haskell, False and True are booleans; 0 isn't a boolean
04:34:08 <monqy> evincar: the former is not what I said at all
04:34:11 <ais523> wow, you're reminding me that I got into an argument about whether boolean should be sugar for 1-bit integer in my compiler, or a different type
04:34:29 <madbr> int has no point either except as an array index
04:34:31 <ais523> I was arguing that people rarely used 1-bit integers for arithmetic purposes, so that they may as well be the same as booleans
04:35:09 <evincar> monqy: What do you mean, then? What value does an explicit declaration have?
04:35:44 <elliott_> madbr: you realise types exist to make the programmer's life easier, right?
04:35:51 <elliott_> it isn't all about performance, and types don't affect performance at all
04:35:55 <elliott_> well, mostly
04:36:09 <elliott_> madbr: knowing information about what a function wants to receive, and what it returns, is useful.
04:36:16 <elliott_> knowing what type of data a variable is, is useful.
04:36:21 <elliott_> having the compiler tell you when you mix that up, is useful.
04:36:24 <elliott_> bool conveys a useful intention.
04:36:55 <evincar> What elliott_ said.
04:37:08 <ais523> in particular, you can have a type like bool or SQLEscapedString to convey an intention, then erase it into int or string respectively after you've done typechecking
04:37:23 <madbr> but then you could just declare your variable as whateverFlag instead of just whatever
04:37:49 <evincar> madbr: That's Hungarian, and even its good uses are now frowned upon.
04:37:59 <elliott_> madbr: seriously?
04:38:02 <Patashu> But renaming the variable won't make the compiler (or runtime) catch mistakes
04:38:05 <elliott_> madbr: what advantages does that have over bool?
04:38:08 <evincar> If you have a type system to check things for you, why rely on convention?
04:38:13 <elliott_> madbr: the compiler doesn't stop you putting the wrong type of value in
04:38:17 <Patashu> I can do int myFlag = 2; but I can't do bool my = 2;
04:38:18 <elliott_> madbr: you have to type Flag each time you use it
04:38:21 <elliott_> instead of taht being encoded in the type
04:38:25 <elliott_> Patashu: you can in C, but that's C's fault
04:38:26 <madbr> so what, it's a bool
04:38:34 <ais523> awful eso idea: (good) hungarian notation enforced by the compiler
04:38:35 <madbr> it's not like you're going to mess that up
04:38:39 <Patashu> elliott ssh!
04:38:44 <monqy> evincar: it's not that an explicit declaration is good; it's that initializers are bad
04:38:45 <elliott_> madbr: "So what if my system is more painful to use, and causes more errors?"
04:38:47 <ais523> it's like a good type system, but with annoying boilerplaye enforced for no reason
04:38:51 <Patashu> madbr, you only have approximately 7 slots for short term memory
04:38:56 <elliott_> madbr: Yours has negative advantages over a bool type.
04:38:57 <elliott_> Negative.
04:38:58 <Patashu> You WILL forget things even if you think they're trivial
04:39:02 <ais523> *boilerplate
04:40:27 <madbr> eh
04:40:39 <elliott_> madbr: but seriously, so what if you wouldn't mess it up?
04:40:47 <elliott_> your solution is still inferior: more typing.
04:41:04 <elliott_> why be inconsistent, and leave bools able to be messed up, when you wouldn't for a more complicated structure which you /can/ mess up?
04:41:36 <evincar> monqy: Could you elaborate? If a type is instantiable with no arguments (such as float might be), then why is it bad to instantiate it as such? I know you'd be more likely to say "x = 0.0" than "x = float()", but having the "T()" syntax (or whatever it turns out to be) for instantiation seems wholly innocuous to me.
04:42:22 <Patashu> It's fine for things like list() or dict() since those have a 'natural' state, empty
04:42:24 <evincar> elliott_: I think we can sum this up as "typing is not a replacement for typing".
04:42:25 <Patashu> What is the 'natural' state of a number?
04:42:29 <monqy> evincar: (1) bloat (2) reassignment is icky (3) giving something a value but hiding that value is icky (4) weird
04:42:53 <elliott_> evincar: ++... to that one statement, your language is still gross.
04:42:56 <ais523> elliott_: very minor advantage for boolish ints over bools: you can retrofit a third value onto your booleans without breaking memory layout compatibility
04:42:57 <elliott_> WE ARE STILL AT WAR.
04:43:07 <elliott_> ais523: you have a strange definition of advantage
04:43:21 <Patashu> what's the third value of booleans?
04:43:23 <Patashu> FILE_NOT_FOUND?
04:43:31 <ais523> Patashu: "not created by the player in a bones file"
04:43:38 <evincar> Patashu: So you're saying numeric types should not be instantiable without an explicit value.
04:43:41 <Patashu> so you want an enum then
04:43:43 <Patashu> evincar yes
04:43:46 <ais523> it was how they retrofitted a bugfix onto NetHack without changing the bones file layout
04:44:06 <Patashu> ais aah
04:44:07 <evincar> Okay, that's fair. It also doesn't play terribly nicely with generic programming, but it's sensible.
04:44:11 <Patashu> so it's like the empty fields in ip packets
04:44:13 <Patashu> future expansion space
04:44:30 <ais523> Patashu: it's also an awful fix to the problem in general
04:44:33 <elliott_> evincar: why doesn't it
04:44:40 <elliott_> Haskell has plenty of generic libraries, and no "default value" because not every type has a value
04:44:44 <elliott_> and not every type has a sensible default value
04:44:46 <ais523> if you need future expansion space, add it separately rather than randomly fitting it into booleans and only booleans
04:45:58 <monqy> oh right (3) on my list of ick should also include something about default values being icky :)
04:46:36 <madbr> I'm not sure about that
04:46:49 <evincar> elliott_: Alright, fair enough. I just like zero-initialisation, for immutable values anyway, because, well, you've got to initialise them to something.
04:47:10 <elliott_> not everything has a zero.
04:47:17 <monqy> evincar: you make initial value explicit
04:47:30 <monqy> evincar: want 0-initialization? thing = 0. bam.
04:47:35 <evincar> No, not everything does, but ints and floats do, which is what I'm talking about. :P
04:47:49 <madbr> why have ints
04:47:52 <evincar> monqy: And that is what you would do in almost all circumstances.
04:47:55 <ais523> wouldn't NaN make a more sensible default for floats?
04:48:00 <monqy> evincar: what about the other ones?
04:48:01 <madbr> ais: no
04:48:04 <lament> everything has a zero
04:48:05 <elliott_> madbr: what, exactly, do you use instead of ints
04:48:06 <monqy> evincar: why even have syntax for those other ones?
04:48:11 <lament> depending on how you define everything
04:48:13 <ais523> signalling NaN, at that
04:48:16 <madbr> ais: NaN propagates and turns more values into NaN
04:48:18 <ais523> so you get an error if you try to use it
04:48:26 <elliott_> madbr: what do you use instead of ints
04:48:26 <ais523> madbr: that's exactly what you want, isn't it?
04:48:43 <ais523> VHDL initialises signals to U, which propagates and turns other things into Us
04:48:43 <madbr> ais: you want to keep NaNs out of your floating point system
04:48:56 <ais523> madbr: yes, you do, which means that it'd be obvious if you failed to initialise properly
04:49:06 <monqy> madbr: you want to keep uninitialized values out of your programs
04:49:52 <madbr> it's like arguing over whether /0 should explode or not I guess
04:50:29 <madbr> ais: NaNs are also particularly slow to process ofc
04:50:46 <monqy> just force programmers to supply an initial value
04:50:52 <monqy> everything solved
04:51:23 <madbr> half of the time it's going to be 0
04:51:40 <monqy> then people can make it 0 half the time :)
04:51:53 <monqy> it's not like it's even more typing than float()
04:51:59 <elliott_> madbr: you don't _want_ to process uninitialised values
04:52:26 <madbr> true, they could end up being NaNs
04:53:08 <elliott_> umm, as in not explicitly initialised
04:53:15 <elliott_> so signalling NaN is a good default value for a float
04:53:19 <elliott_> so that it complains if you use it
04:54:13 <evincar> I'm a firm believer in not paying for things you don't use, though. If a programmer wants to create an uninitialised (mutable) value of some type, I think they should be allowed.
04:54:31 <monqy> then it should be undefined
04:54:40 <evincar> That counts as initialisation.
04:54:43 <monqy> rather than 0-initialized or what-have-you
04:54:48 <madbr> I think normally you either want to initialize to 0, or it doesn't matter cause you're going to overwrite it, or you want to initialize to a specific value and you're going to remember to initialize it
04:54:52 <evincar> It is undefined in the sense of "could be anything".
04:54:56 <monqy> yes
04:55:07 <evincar> It's not undefined in the sense of "this is a special undef value that will trap if you use it".
04:55:16 <monqy> yes I know
04:55:19 <elliott_> int x; return x // RNG in evincar's language
04:55:24 <madbr> in my philosophy I want to keep NaNs and other "exploding values" out of my program as much as possible
04:56:02 <madbr> so I'm not sold on "default to NaN"
04:56:02 <monqy> madbr: even if it makes them incorrect?
04:56:13 <monqy> madbr: it would only be NaN if you made an error
04:56:15 <ais523> madbr: do you prefer programs to fail noisily, or try to recover?
04:56:25 <Patashu> it should be a compile time error to use something not yet initialized
04:56:31 <ais523> evincar: actually, there are two sorts of NaN, one (which is often unimplemented) does indeed trap if you use it
04:56:34 <madbr> monqy: how could it be more incorrect than exploding the whole program
04:56:48 <ais523> Patashu: if so, I hope the compiler's better at inferring it than gcc
04:56:51 <monqy> madbr: by giving bad values to things that quietly ruin everything
04:56:57 <madbr> guess they could be NaN in debug and 0 in release
04:57:00 <ais523> I have to add =0 on declarations quite a bit just because gcc doesn't realise it's always initialised before use
04:57:10 <elliott_> Patashu: you should not be able to create something initialised, it is by definition useless
04:57:11 <ais523> I know it can't infer it in general, but it could do quite a lot better than it currently does
04:57:16 <evincar> ais523: I was going to add "...at the language level, of course, not like signalling NaN."
04:57:23 <monqy> madbr: say, a bad 0 somewhere cleared all your favourite files. wouldn't exploding be better?
04:57:32 <evincar> But then I was like "nah, no one'll care".
04:57:47 <ais523> I was talking about signalling NaN
04:58:11 <madbr> monqy: but exploding will clear the current thing you were working on 100% time
04:58:21 <ais523> monqy: if it exploded, it'd probably take out not all your files, but the disk they were on, most of the computer, and possibly even some of the table it was resting on
04:58:42 <Patashu> why are we using exploding and not exceptions?
04:59:05 <madbr> at work they turn off exceptions
04:59:14 <Patashu> wat
04:59:17 <monqy> is this why you're crazy
04:59:41 -!- lament has quit (Ping timeout: 276 seconds).
04:59:51 <madbr> patashu: I don't know the reason, but it's probably performance on shoddy Arm platforms
05:00:30 <Patashu> at least use them during development if not during production :o
05:02:12 -!- madbr has quit (Read error: Connection reset by peer).
05:04:21 -!- madbr has joined.
05:04:21 <madbr> the system they have is based on warnings
05:04:26 <madbr> the system they have is based on warnings
05:04:42 <Patashu> it sets a global variable to an error code, right?
05:04:47 <monqy> evincar: on the thing again, I may be confused but, in the case of not assigning a value to something (just declaring it), you're using the var = type() syntax? If that's the case, why use assignment syntax for something that's really just a declaration (not entirely a rhetorical question)
05:04:56 <madbr> prints to an error console
05:05:09 <Patashu> aah
05:06:19 <evincar> monqy: No, it'd be something like "v = mutable T()" if you didn't want initialisation. The point of assignment syntax in the general case is that things are immutable by default and everything is single-assignment, so declaration and assignment can be the same thing.
05:06:20 -!- madbr has quit (Read error: Connection reset by peer).
05:06:51 <ais523> why does everyone think that ignoring exceptions except you print them to stderr / some other error log is at all helpful?
05:06:57 <monqy> evincar: ok, so in what case would you use the =whatever() syntax?
05:07:20 <elliott_> ais523: Average Programmer
05:07:31 <ais523> I don't even see why one of those would think it was useful
05:07:35 <ais523> except that NetBeans does it by default
05:07:36 <elliott_> ais523: because they're bad
05:07:42 <elliott_> err, what
05:07:44 <ais523> I seem to spend half my life deleting Logger imports
05:07:51 <elliott_> bad netbeans, bad
05:08:05 <evincar> monqy: If you wanted a default instance of some specific type that's default-constructible (e.g., dict/list) or if you wanted a default instance of some unknown type that is.
05:08:08 <ais523> elliott_: NetBeans can surround something with a try/catch block for every exception it could throw, which is useful
05:08:12 <ais523> as often you'll want to catch all of them
05:08:21 <ais523> but the default impl it puts in for what to do when caught is to log it
05:08:28 <ais523> and it adds imports for Logger as a result
05:08:37 <ais523> so you have to go and delete the import if you're not using the default impl
05:08:46 <evincar> Say "instantiate(T) = { return T() }".
05:08:53 <ais523> (I'd much prefer a throw NotImplementedException as the default, like it does for methods)
05:10:53 <monqy> evincar: in the former case, I'd think it'd be more useful for each of them to force explicit usage of said value (e.g. 0, empty). In the case of the latter, I guess it's a bit better, but having instantiations working like that is still icky. There was something else I was going to say but I forgot it.
05:12:08 <monqy> evincar: oh right. I can't think of any usages of generic instantiation unless you use something like typeclasses/interfaces
05:12:24 -!- madbr has joined.
05:12:25 <monqy> evincar: e.g. Monoids
05:12:28 <madbr> damn
05:12:34 <elliott_> evincar: how does default initialisation help write generic code again
05:12:42 <madbr> I guess it's really an application thing anyways
05:12:48 <elliott_> madbr: eh?
05:13:15 <evincar> elliott_: It really depends on the types involved, and I can't come up with a good example at the moment.
05:13:19 <madbr> if you're writing for databases, you'd probably rather have your client app explode than corrupt the database
05:13:37 <evincar> elliott_: I just like uniformity and not violating the principle of least surprise.
05:13:51 <elliott_> being able to conjure up a value violates my POLS
05:13:54 <elliott_> POLS is code for "I like it"
05:14:01 <elliott_> how is it uniform?
05:14:08 <elliott_> any more than forcing all types to have exactly one value is uniform
05:14:12 <elliott_> sure, it is, but ... that sucks
05:14:35 -!- TeruFSX has joined.
05:14:37 <madbr> I write sound code and having the app explode is much worse than any wrong sound I could be outputting
05:16:02 <madbr> Like for divide by zero, I don't care if it generates a wrong value, that's much better to me than stopping the whole application, which is pretty much the worst thing that can happen
05:16:11 <evincar> I'm just saying, 0 is a reasonable default for the numeric types I'm providing. It doesn't hurt anything to throw it in.
05:16:20 <monqy> it hurts me
05:16:27 <Patashu> For something that just makes sound I suppose that's alright
05:16:28 <monqy> it hurts people like me
05:16:30 <madbr> I'm fine with default to 0<
05:16:31 <Patashu> For something handling data you don't want it to happen
05:16:33 <elliott_> <madbr> Like for divide by zero, I don't care if it generates a wrong value, that's much better to me than stopping the whole application, which is pretty much the worst thing that can happen
05:16:39 <elliott_> madbr: i don't suppose you write any mission-critical financial applications
05:16:40 <monqy> who see something like float() and don't know if it's 0
05:16:42 <monqy> and have to look it up
05:16:45 <elliott_> please, god, don't say you do
05:16:50 <monqy> and it's needless bloat
05:16:51 <madbr> elliott: I don't!
05:16:53 <Patashu> It doesn't sound like it lol
05:16:54 <monqy> and ughhhh
05:16:58 <elliott_> madbr: ok
05:16:59 <elliott_> then do whateve
05:17:00 <elliott_> r
05:17:04 <evincar> I don't ordinarily go for 0-initialisation, but obviously immutable values are different.
05:17:17 <madbr> I write sound plugins and games
05:17:22 <monqy> this is the what second time you brought up immutable values
05:17:23 <elliott_> why is 0 a good default value evincar
05:17:27 <monqy> but
05:17:27 <elliott_> when is 0 ever a useful value
05:17:30 <elliott_> without giving it explicitly
05:17:32 <monqy> what does 0 have to do with immutable values
05:17:57 <madbr> elliott_: dunno, in megazeux variables default to 0 and it's pretty practical that way
05:18:18 <monqy> what is your favourite language
05:18:23 <monqy> i am curious
05:18:28 <evincar> monqy: When I write "x = mutable T()", I expect an uninitialised mutable T. When I write "x = T()", should I reasonable expect an error or a default?
05:18:32 <evincar> *reasonably
05:18:46 <madbr> haven't used high level languages so atm it's C++
05:18:58 -!- olsner has quit (Ping timeout: 240 seconds).
05:19:01 <madbr> sound code is almost always C++
05:19:22 <elliott_> i keep reading "sound" as "correct" and i start lunging for your throat with a knife
05:19:25 <elliott_> but then I just sit in my hole
05:19:29 <itidus20> madbr: heh.. it's almost like you chose the most mission non-critical things
05:19:38 <monqy> wow i was just about to say what elliott_ said but then elliott_ said it so i said this instead
05:19:49 <itidus20> i mean sounds and games
05:19:50 <madbr> iti: I don't want to work in a fucking bank :D
05:20:16 <monqy> fucking bank eh
05:20:21 <itidus20> madbr: i made an image the other day... which perhaps expresses the non-mission-criticality of music :D
05:20:21 <elliott_> I thought all the talk about indie gamers being universally terrible programmers was hyperbole
05:21:12 <madbr> It's in the nature of the problem
05:21:20 <monqy> madbr: i highly advise learning a nice high-level language
05:21:23 <itidus20> madbr: http://oi56.tinypic.com/xc7kes.jpg
05:21:41 <monqy> madbr: im worry for your programmer mind health
05:22:14 <madbr> monqy: atm I'm programming assembler :o
05:22:39 <ais523> elliott_: you mean people who make indie games, or who play them?
05:22:41 <monqy> itidus20: what does it mean
05:22:54 <itidus20> monqy: it means music isn't mission critical :D
05:23:22 <monqy> itidus20: quite an odd analogy
05:23:30 <madbr> itidus20: in some ways it is
05:23:40 <itidus20> ok well.. the blue thread.. represents the music and represents the programming
05:23:45 <Patashu> lol
05:23:49 <itidus20> so if the thread is in one piece then it has no mistakes
05:24:15 <madbr> musician is using a laptop in a gig
05:24:21 <madbr> the laptop cannot crash
05:24:25 <itidus20> hmm
05:24:29 <itidus20> well...
05:24:33 <elliott_> <ais523> elliott_: you mean people who make indie games, or who play them?
05:24:33 <elliott_> make
05:24:41 <itidus20> when i made that image i had actual music in mind
05:24:51 <itidus20> not sound plugins.
05:24:52 <madbr> if you code a synthesizer plugin for music making programs
05:24:54 <itidus20> so you're right
05:25:05 <monqy> itidus20: for an extreme example, making a minor programming mistake isn't as bad as making tons and tons and tons of musical errors when the mission cares at all about the music
05:25:10 <madbr> if your plugin crashes, it crashes the whole music making program and the musician loses his song
05:25:19 <madbr> corollary: your plugin cannot crash
05:25:28 <itidus20> monqy: the mission never cares about music!
05:25:35 <monqy> itidus20: weird mission there
05:25:55 <monqy> "music isn't mission critical when missions don't care about music": tautological?!?!?!?!??
05:26:01 <itidus20> uhmm
05:26:04 <madbr> can it generate wrong output? sure, whatever
05:26:07 <itidus20> ok lets say a guitar
05:26:15 <itidus20> a guitar can afford to make mistakes
05:26:26 <monqy> what if you make a really big mistake
05:26:29 <monqy> or lots of them
05:26:35 <elliott_> monqy: http://ompldr.org/vOW9wcg me irl in my hole
05:26:37 <itidus20> then you suck..
05:26:38 <madbr> the string can snap
05:26:49 <elliott_> <madbr> if your plugin crashes, it crashes the whole music making program and the musician loses his song
05:26:55 <elliott_> programs crash when the VSTs do?
05:26:57 <elliott_> i think not
05:27:07 <madbr> elliott_: not anymore
05:27:24 <elliott_> monqy: image remains relevant, topical
05:27:25 <madbr> but some early programs did
05:27:32 <itidus20> its like uhh.. video can recover too
05:27:35 <elliott_> monqy: took me whole minutes
05:27:46 <monqy> elliott_: nice hole
05:27:56 <elliott_> monqy: thanks
05:28:19 <itidus20> its an idea i am really curious about...
05:28:30 <monqy> what is?
05:28:44 <itidus20> in programming it is usually the case you need to get every instruction right
05:28:50 <monqy> not really
05:28:54 <itidus20> and that one mistake throws out the whole system
05:28:59 <monqy> not really
05:29:07 <monqy> ever heard of minor bugs?
05:29:12 <monqy> I have.
05:29:14 <monqy> they exist.
05:29:20 <monqy> they wreak minor havoc.
05:29:39 <monqy> but don't throw out the whole system.
05:29:53 <monqy> just a very tiny minor little bit perhaps nobody even cares about
05:30:01 <itidus20> ok.. my postulates are wrong >:)
05:30:33 <madbr> In music, mistakes don't take whe whole thing down no
05:30:39 <madbr> They just stand by themselves
05:30:40 <elliott_> monqy: I coloured it: http://ompldr.org/vOW9wdg
05:30:57 <monqy> squares
05:31:20 <monqy> it looks sadder now
05:31:21 <monqy> somehow
05:32:59 -!- madbr has quit (Read error: Connection reset by peer).
05:33:34 <elliott_> monqy: http://ompldr.org/vOW9weA
05:33:53 <monqy> ashes?
05:33:58 <elliott_> to ashes
05:33:59 <monqy> is that blood
05:34:03 -!- derrik has joined.
05:34:05 <monqy> are you dead
05:34:12 <monqy> is that a statue
05:34:14 <elliott_> http://ompldr.org/vOW9weQ
05:34:16 <monqy> so mjuch mysterys...
05:34:17 -!- madbr has joined.
05:34:24 <monqy> its staring at me
05:34:27 <monqy> and crying
05:34:30 <monqy> tears
05:35:09 <elliott_> oh jesus cufcking christ i made it disturbing
05:35:29 <elliott_> monqy:
05:35:38 <elliott_> monqy: http://ompldr.org/vOW9weg
05:35:45 <monqy> im disturbed
05:35:46 <elliott_> jesus
05:35:51 <monqy> its like chocolate
05:35:51 <elliott_> tell me this makes you scream
05:35:55 <elliott_> lmao
05:35:56 <elliott_> what
05:36:01 <monqy> the uh
05:36:02 <monqy> brown stuff
05:36:05 <monqy> reminded me of chocolate
05:36:09 <monqy> or is that black
05:36:11 <monqy> uhh
05:36:15 <monqy> dark chocolate
05:36:29 <monqy> and the tan stuff looks real creamy and swirly
05:37:01 <elliott_> do you hate chocolate or something
05:37:16 <monqy> the face is disturbing though. maybe dark chocolate chips or currants in some sort of cream or white chocolate filling?
05:37:27 <itidus20> elliott_: i did an edit of it: http://oi51.tinypic.com/34h0z.jpg
05:37:40 <monqy> elliott_ sure looks mad there
05:37:44 <elliott_> itidus20: i...
05:38:33 <evincar> Well, it's about that time.
05:38:45 <evincar> I'll be back tomorrow, I guess.
05:39:15 -!- evincar has quit (Quit: leaving).
05:39:20 <elliott_> http://ompldr.org/vOW9xMQ
05:39:24 <elliott_> monqy: deepness of soul edition
05:39:27 <elliott_> w/ lens flare
05:39:34 <monqy> is that lens flare
05:39:37 <monqy> oh
05:39:39 <monqy> ok
05:39:50 <monqy> its deep
05:39:51 <monqy> and soul
05:39:56 <elliott_> monqy: i call it sweet elliott_ and hella hole
05:40:22 <monqy> wheres your knife is it in the wole too
05:40:37 <elliott_> its inside my heart
05:41:53 <elliott_> monqy: http://i.imgur.com/3brEm.jpg
05:42:25 <monqy> its a maze
05:42:30 <elliott_> ing
05:42:33 <monqy> a soulcrishung maze
05:42:36 <monqy> ing
05:43:47 -!- madbr has quit (Read error: Connection reset by peer).
05:44:15 <elliott_> monqy: http://i.imgur.com/P5iCf.gif
05:44:36 <monqy> whoa a ball
05:44:50 <itidus20> cool... animation
05:45:06 <elliott_> "delay inserted to prevent evil cpu-sucking animation" oh come on gif
05:45:09 <elliott_> erm
05:45:10 <elliott_> gimp
05:45:16 <monqy> subliminal deepness of soul with lens flare messaging
05:46:56 <itidus20> i am seeking a good gif editor on windows
05:47:12 <itidus20> theres not enough i tells ya
05:47:20 <elliott_> gimp
05:47:26 <monqy> gimp "good inough mfor pme"
05:47:35 <monqy> erxcept i use linux....
05:48:17 <itidus20> i recently downloaded gimp but havent really tried it
05:48:28 <monqy> its good inough mfor pme
05:50:55 -!- madbr has joined.
05:53:04 -!- madbr has quit (Read error: Connection reset by peer).
05:56:23 -!- Sgeo has joined.
05:56:33 <monqy> hi Sgeo
05:56:37 <monqy> you missed some good discussion
05:56:41 <monqy> about type systems and uh
05:56:42 <monqy> other stuff
05:57:11 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
05:57:16 <monqy> oh
05:57:24 <monqy> sgeo :(
05:57:32 -!- TeruFSX has quit (Ping timeout: 276 seconds).
05:57:50 <monqy> whens sgeo coming back i miss sgeo
05:59:17 -!- madbr has joined.
06:00:21 <elliott_> lol
06:02:07 <Sgeo> Hi
06:03:15 <monqy> hi
06:03:23 <monqy> i missed you
06:04:45 <Sgeo> ..
06:05:04 * Sgeo has no coherent response other than this one
06:05:09 -!- TeruFSX has joined.
06:07:05 -!- madbr has quit (Read error: Connection reset by peer).
06:07:12 <elliott_> To all flamers: this is my first real texture pack, if you flame, I will report you.
06:07:43 <monqy> whatf slaming
06:07:56 <elliott_> flsaingubdgmg
06:08:07 <monqy> is not praising it.....flaming?
06:08:13 <monqy> or is that trolling
06:08:42 <elliott_> flammable
06:09:30 <elliott_> itidus20: i made you a persent http://ompldr.org/vOW9xNQ
06:10:36 <itidus20> heh
06:10:53 <elliott_> bible.gif
06:11:03 <elliott_> all this and more is possible with gimp
06:11:05 <elliott_> tm
06:12:38 <zzo38> I think ImageMagick is much better than GIMP
06:13:00 <monqy> sometimes I use imagemagick for things.
06:13:06 <elliott_> i imagine itidus20 wants a graphical interface
06:13:25 <itidus20> ;_;
06:13:31 -!- madbr has joined.
06:13:31 <monqy> the most insulting insult
06:13:46 <monqy> offensive offense?
06:13:48 <itidus20> actually I'm wondering if you can make games with gimp
06:13:52 <elliott_> wat
06:13:54 <monqy> what
06:14:10 <itidus20> as in.. opening gimp.. and using no other software... produce some sort of game =))
06:14:19 <elliott_> itidus20: well there's ais523's ms paint tic tac toe
06:14:28 <itidus20> nice
06:14:40 <zzo38> I also happen to like METAFONT and I have made a program to combine METAFONT with ImageMagick.
06:14:52 <elliott_> itidus20: but um that's just using the flood tool's algorithm
06:14:59 <elliott_> there's not really any other algorithms to do :P
06:15:24 <monqy> make gimp scripts
06:15:31 <monqy> turn them into games
06:15:36 <itidus20> im being silly for the most part
06:16:00 <itidus20> but... back in the old days i used spreadsheet macros to try to make interactive fiction
06:16:06 <elliott_> lol
06:16:25 <ais523> I made RPGs with spreadsheet macros
06:16:27 <ais523> not very good ones, though
06:16:51 <ais523> this is what drove me to support open standards
06:16:57 <ais523> because they kept breaking with every new version of Excel
06:17:08 <elliott_> lmao
06:17:11 <itidus20> oh i was using lotus123
06:17:57 <ais523> elliott_: it even removed all the UI elements, to prevent cheating
06:18:07 <ais523> although it was probably possible anyway, say by holding down shift on load
06:18:26 <ais523> also, removing the entire UI gave more screen space for gamy stuff and hid the fact it was Excel, although I suspect it was obvious anyway
06:20:51 -!- madbr has quit (Read error: Connection reset by peer).
06:23:57 <elliott_> i wonder what this java bug thing is
06:24:02 <elliott_> Java 7 GA was released today, but as noted by Uwe Schindler, there are some very frightening bugs in HotSpot Loop optimizations that are enabled by default. In the best case scenario, these bugs cause the JVM to crash. In the worst case scenario, they cause incorrect execution of loops.
06:24:03 <elliott_> haha
06:24:06 <elliott_> good job oracle
06:24:22 <elliott_> "These problems were detected only 5 days before the official Java 7 release,
06:24:23 <elliott_> so Oracle had no time to fix those bugs, affecting also many more
06:24:23 <elliott_> applications."
06:24:23 <ais523> hmm, Java puts crash > incorrect execution
06:24:23 <elliott_> wow
06:24:31 <elliott_> YOU MEAN LOOPS ARE BAD?? SORRY
06:24:33 <elliott_> ONLY FIVE DAYS
06:24:35 <elliott_> CAN'T CHANGE IT
06:24:36 <ais523> /Java/, one of the most enterprisey languages in existence
06:24:48 <elliott_> ais523: umm, isn't that fairly Javay?
06:24:55 <elliott_> Java doesn't let you do ANYTHING loosely
06:25:10 <monqy> is java still cool with typecasting
06:25:13 <monqy> or what have it
06:25:19 <ais523> elliott_: I know, I was taking a potshot at the crashing-is-worse-than-returning-a-random-number opinion
06:25:37 <ais523> monqy: it throws ClassCastException if you try to cast something into a class that can't describe it
06:25:59 <monqy> snazy
06:26:48 -!- madbr has joined.
06:28:18 <elliott_> ais523: now just do it a few seconds later...
06:28:35 <ais523> meh, scrollback exists
06:31:29 -!- madbr has quit (Read error: Connection reset by peer).
06:34:41 <zzo38> Although METAFONT is designed for font making, you can use it to draw other things too.
06:37:30 -!- madbr has joined.
06:39:44 -!- madbr has quit (Read error: Connection reset by peer).
06:42:14 <elliott_> ais523: how long will fib 99999 take to compute naively?
06:42:32 <ais523> elliott_: you mean via the recursive algorithm that's O(2^n)?
06:42:37 <elliott_> :-P
06:42:39 <ais523> O(2^n) where n is 99999
06:42:49 * elliott_ tries 999 instead :-D
06:42:55 <ais523> even that'll take far too long
06:43:10 <elliott_> bah
06:43:16 <elliott_> stupid exponentials
06:43:20 <elliott_> 99 should terminate within my lifetime, right?
06:43:58 <ais523> that's about an octillion
06:44:01 <ais523> so probably not
06:44:13 * elliott_ is trying to test memoisation...
06:44:13 <ais523> I was using 10 to test may naive fibonacci impl
06:44:18 <ais523> and even that took far too long
06:44:18 <elliott_> I'm not sure it's actually memoising
06:44:31 <elliott_> I need a value that the naive fib goes slowly at, but not too slowly :-P
06:44:57 <ais523> memoised 100 is faster than unmemoized 10
06:45:10 <ais523> err, what is up with -ise vs. -ize in that line?
06:45:25 <elliott_> unmemoisation is so american
06:45:49 <elliott_> *Data.Memoization.StableName> fib 19
06:45:49 <elliott_> 4181
06:45:49 <elliott_> *Data.Memoization.StableName> fib' 19
06:45:49 <elliott_> 34
06:45:57 <elliott_> umm, memoisation shouldn't change behaviour, right?
06:46:02 <ais523> no
06:46:14 <ais523> and fib(19) is not 34
06:46:24 <ais523> I don't know offhand if it's 4181, but it wouldn't surprise me
06:46:24 * elliott_ has no idea what happened there
06:46:29 -!- madbr has joined.
06:47:40 <elliott_> well, _something_ is wrong
06:47:55 <ais523> coincidentally, I implemented memoized fibonacci in ICA (and thus VHDL) a few days ago
06:48:05 <ais523> to celebrate the addition of RAM-like arrays
06:48:14 <ais523> (as opposed to tuple-like arrays)
06:48:18 * elliott_ celebrates, can i have the compiler source code now
06:48:34 <elliott_> or at least a picture of the synthesisation result :D
06:48:35 <ais523> heh, it's not ready for release yet, and I don't have permission to release it either
06:48:56 <ais523> and FPGAs look the same no matter what program is on them
06:49:23 -!- zzo38 has quit (Remote host closed the connection).
06:50:51 <elliott_> ais523: surely a synthesiser can draw some kind of graph for you
06:51:15 <ais523> it can, but it basically just always looks like a splodge on the page
06:51:19 <ais523> no matter what the actual circuit
06:51:38 -!- Nisstyre has quit (Ping timeout: 255 seconds).
06:54:15 <elliott_> ais523: hmm, random @ thought: I don't think it can have a "native machine word" type
06:54:42 <ais523> no, but such a type isn't very useful unless you're doing low-level stuff anyway
06:54:53 <elliott_> well, it's useful for smallish integers
06:55:36 <ais523> nah, in practice, (smallest type that holds the integer) will be fastest unless the processor has no instructions for manipulating it
06:55:40 <elliott_> ais523: anyway, you were meant to ask me why; we are no longer friends
06:55:46 <elliott_> also, sure, I guess so
06:55:48 <ais523> elliott_: no, it's obvious
06:55:53 <elliott_> ais523: what's the reason?
06:55:58 <elliott_> because it was non-obvious to me
06:55:58 <ais523> network transparency
06:56:04 <elliott_> :/
06:56:07 <elliott_> you know more about @ than I do
06:56:09 <ais523> the type's size might be different on different computers
06:56:14 <elliott_> ais523: well, that's not the problem
06:56:17 <elliott_> that's perfectly okay
06:56:25 <ais523> yep, you could translate at the boundary, I suppose
06:56:26 <elliott_> ais523: the problem is that the type could change underneath you mid-function
06:56:40 <elliott_> because a program might migrate to another system
06:56:45 <elliott_> note: this is great for writing viruses
06:57:07 <Patashu> just make it 64 bits
06:57:19 <elliott_> Patashu: gross
06:57:33 <elliott_> I'll just offer a few fixed-sized types and pretend they don't exist and tell everyone to use bignums
06:57:37 <Patashu> haha
06:58:11 <elliott_> a large part of @'s core design is me having a weapon sufficient to make people code @ objects however I want
06:58:15 <elliott_> currently, the stern glare will suffice.
06:58:20 <elliott_> if CakeProphet starts using @, I may have to purchase firearms.
06:58:37 <elliott_> if Microsoft starts promoting it, then it's time for tactical nukes
06:58:58 -!- TeruFSX has quit (Ping timeout: 240 seconds).
06:58:59 <elliott_> <ais523> please don't hurt anybody
06:59:37 <elliott_> ais523: i'll just be you from now on
06:59:57 <ais523> heh
07:01:43 <elliott_> I wonder if this "introspection box" model actually makes any sense
07:01:44 -!- madbr has quit (Read error: Connection reset by peer).
07:01:55 <elliott_> hmm, you can't have
07:01:57 <elliott_> box :: a -> Box a
07:02:07 <elliott_> because you can break parametricity like so:
07:02:27 <elliott_> ohNo :: (a -> b) -> (a -> b) -> Bool
07:02:32 <elliott_> ohNo f g = box f == box g
07:02:41 <elliott_> (assuming the box on code compares the ast)
07:02:58 <elliott_> but like
07:03:04 <elliott_> you also can't have
07:03:09 <elliott_> lolGimmeABox :: Box a
07:03:12 <elliott_> because WHAT DOES THE BOX CONTAIN...
07:03:16 <coppro> what is this Box?
07:03:24 <elliott_> the rule is something like... if you create an object you can box it
07:03:28 <elliott_> but it's hard to define create
07:03:31 <elliott_> really hard
07:03:40 <elliott_> coppro: umm, do you know what @ is
07:03:40 <ais523> elliott_: are you sure you can == on boxes like that?
07:03:50 <elliott_> ais523: do you remember what a box is :D
07:03:57 <coppro> elliott_: in what context
07:04:01 <ais523> you look like you're acting like boxing is a monad (perhaps subconciously), and it isn't
07:04:06 <elliott_> coppro: there's only one context
07:04:13 <ais523> also, no, I don't
07:04:22 <elliott_> ais523: ok, well, that's not what a box is in this context
07:04:33 <elliott_> ais523: I was thinking: in @, I want to be able to do things like examine the ASTs of running programs
07:04:37 <elliott_> ais523: and inspect arbitrary objects
07:04:40 <elliott_> and all that jazz
07:04:51 <elliott_> ais523: BUT I don't want code to be able to, say, look at the AST of a function it's passed willy-nilly
07:04:56 <elliott_> because that breaks parametricity, security, and all sorts of things
07:05:04 <Patashu> So a box is like a security checkpoint?
07:05:10 <elliott_> ais523: so I was thinking that (Box a) represents something you can fetch an a out of, and that also encodes... meta-information about it
07:05:14 <elliott_> it's actually an Antibox
07:05:18 <elliott_> it lets you look inside a value
07:05:21 <ais523> hmm, yes
07:05:25 <elliott_> so e.g.
07:05:28 <coppro> elliott_: ok. It's a simple with unknown historical origin often rendered as a letter "a" where the upright protion of the letter extends down and around until it is a near-complete circle, and that is generally taken to mean "at", and is called a "whirlpool" by the INTERCAL manual
07:05:30 <elliott_> ast :: Box a -> LolAST
07:05:33 <elliott_> unbox :: Box a -> a
07:05:33 -!- oerjan has joined.
07:05:34 <ais523> Feather actually has a rebox operation, that you can apply to an unboxed value
07:05:38 <ais523> please don't ask me how it works
07:05:44 <elliott_> that unbox could also be called eval
07:05:45 <elliott_> I suppose
07:05:59 <elliott_> ais523: anyway, the question is just -- how do you actually create a box?
07:06:03 <oerjan> talking about comonads?
07:06:07 <ais523> coppro: when elliott_ refers to @ treating it as a proper noun, it's a placeholder for the eventual name of an as-yet-unnamed OS he's working on
07:06:09 <elliott_> oerjan: not quite
07:06:31 <ais523> I think he's going to retroactively go over glogbot's logs and substitute the name once it's actually decided
07:06:40 <ais523> which will make my last-but-two line seem very confusing
07:06:49 <ais523> (note: I may have been lying)
07:06:50 <elliott_> how do you knowm y s,ecret
07:06:57 <elliott_> it wasprivate,, with Gregor,,
07:06:59 <elliott_> he would create the logbot,,,
07:07:04 <oerjan> ais523: so the suspicion it will involve feather as an essential part is well-founded?
07:07:05 <elliott_> and force tunes to archive all their old logs by emailing them,,,,,
07:07:07 <elliott_> and i would get the sed,,,,,,,
07:07:09 -!- Nisstyre has joined.
07:07:10 <elliott_> WHO
07:07:11 <elliott_> BETRAYED ME
07:07:20 <elliott_> RGAGAARGAUREWIGEIWRIEWRGAWGRIAEWRWIERGAW\
07:07:20 <ais523> elliott_: nobody, I just guessed
07:07:25 <ais523> oerjan: no
07:07:29 * elliott_ smashes individual things to pieces
07:07:32 <ais523> Feather and @ are fundamentally incompatible, as far as I can tell
07:07:33 <elliott_> now everything dies
07:07:37 <ais523> which doesn't surprise me, or even worry me
07:07:38 <elliott_> ais523: really?
07:07:47 <ais523> in fact, I'd be more worried if they meshed together well
07:07:58 <ais523> elliott_: it's the network transparency that really kills it
07:08:01 <ais523> Feather doesn't like I/O
07:08:07 <ais523> even more than Smalltalk doesn't like it
07:08:17 <elliott_> ais523: well, you can model @ as just one big happy machine with way too much computing power
07:08:23 <elliott_> and slow wires, I suppose, but who cares about speed
07:08:32 <ais523> and even if you abstract away the I/O, it'd have to be able to return to a continuation
07:08:37 <elliott_> ais523: hmm, shades of scapegoat (in that every repository could fit together)
07:08:37 <ais523> across the entire network
07:08:43 <elliott_> haha
07:08:45 <ais523> yep, @ reminds me of scapegoat a bit
07:08:45 -!- madbr has joined.
07:09:00 <ais523> I think you've been injecting similar ideas into both projects
07:09:12 <elliott_> I'm not sure how versioning in @ will work, if it'll have a separate VCS for "documents" and just regular objects, or what
07:09:14 <ais523> the two would coexist quite well, at least
07:09:18 <elliott_> I'm trying to avoid thinking about it right now
07:09:23 <oerjan> <HackEgo> 546) <Taneb> Speaking of the CiSRA puzzles, anyone want to form a team <oerjan> i avoid my duties by carefully never registering to anything new
07:09:24 <elliott_> it feels like another Can of Worms
07:09:26 <ais523> yep, versioning is a much more minor problem
07:09:39 <oerjan> you missed the point where someone else mentioned the word "duty"
07:09:41 <ais523> then getting the thing working in the first place
07:09:50 <elliott_> oerjan: fix it :P
07:09:56 <elliott_> ais523: I was about to say "but versioning is a _huge_ problem", but then I realised that there are even bigger problems...
07:10:08 <ais523> indeed
07:10:10 <oerjan> ...you realize that would be inconsistent with the quote, right?
07:10:12 <elliott_> anyway, yes, I'm really unsure how to construct boxes...
07:10:18 <elliott_> hmm, well
07:10:28 <elliott_> obviously if you have a boxed module
07:10:35 <elliott_> you can get a boxed value out of it
07:11:07 <cheater_> elliott_: i know they have, that wasn't the point though.
07:11:18 <elliott_> ais523: moduleLookup :: (m :: Box Module) -> Key m a -> a
07:11:20 <elliott_> ais523: or something.
07:11:30 <elliott_> erm
07:11:32 <elliott_> ais523: moduleLookup :: (m :: Box Module) -> Key m a -> Box a
07:11:35 <elliott_> but that's just another way to refine a box
07:11:42 <elliott_> I suppose that's all you really can do
07:11:46 <elliott_> but it feels like if you have
07:11:49 <elliott_> let f x = ... in ...
07:11:50 <elliott_> in a bit ofcode
07:11:54 <ais523> I think you can't get a box unless you have one to start with
07:11:56 <elliott_> you have the "right" to box it right there and then
07:12:00 <elliott_> ais523: yes, that may be true
07:12:00 <ais523> and that they should be originally created by the compiler
07:12:05 <elliott_> uh oh,boxes are starting to feel fundamental
07:12:12 <elliott_> [asterisk], boxes
07:12:25 <oerjan> and comonadic
07:12:32 <elliott_> oerjan: you really like comonads ;D
07:13:04 <oerjan> i don't actually know comonads, i just know they are easy to unwrap but not wrap
07:13:16 <oerjan> ok, so i know maybe the base definition
07:13:27 <elliott_> ais523: also that moduleLookup frightened me, when did dependent types happen?
07:13:32 <elliott_> but they are probably inevitable...
07:13:56 <elliott_> I have a feeling the design would be impossible to realise without them; as in, it'd turn out to be impossible for the user to create a function, or something
07:14:50 <elliott_> ais523: ah, hmm, there's a problem
07:14:57 <elliott_> ais523: in that, every boxed type has a different API
07:15:03 <elliott_> so it's actually a typeclass of some kind
07:15:26 <elliott_> class Boxable a where { data Box a; unbox :: Box a -> a }
07:15:35 <elliott_> hmm, I need a better name than box
07:15:41 <ais523> I think you may be thinking too Haskell
07:15:42 <elliott_> it's sort of like an xray
07:15:51 <coppro> elliott_: I'm dubbing you King Vaporware
07:15:57 <elliott_> ais523: well, it's obviously not a single unified Box type for every single type
07:15:58 <elliott_> coppro: k
07:16:14 <ais523> elliott_: what did you call those (executable, source) pairs that you used in your Underload compiler?
07:16:15 <elliott_> ais523: so it's a type family of some kind
07:16:21 <elliott_> umm, I didn't
07:16:25 <ais523> bleh
07:16:26 <elliott_> I called the flattened quotations blimps
07:16:30 <elliott_> but that's a separate thing
07:16:30 <ais523> well, give this the same name as those
07:16:34 <ais523> because it's the same concept
07:16:38 <ais523> let's go all Prolog-style with naming
07:16:47 <ais523> and agree that we can unify two names even if we don't know what they are yet
07:16:50 <elliott_> it's more like just source
07:16:52 <elliott_> and unbox is kind of like eva
07:16:54 <elliott_> l
07:17:03 <ais523> meanwhile, I suppose we have to call them _1, _2, etc
07:17:05 <elliott_> ais523: isn't @ already pretty prolog style with naming?
07:17:07 <ais523> or maybe @, @1, @2, etc
07:17:09 <ais523> elliott_: yes
07:17:11 <elliott_> name_of_@(X)
07:17:15 <elliott_> well
07:17:16 <elliott_> name_of_@(@)
07:17:38 <ais523> that's like writing name_of_X(X)
07:17:44 <elliott_> yep :D
07:17:55 <ais523> it should be name_of_future_operating_system(@)
07:18:16 <elliott_> hmm, xray would be a good name if it weren't such an ugly name
07:18:59 <elliott_> what's a nice name for an xray
07:19:14 <ais523> hmm, it's also like stripping the debug info (unxraying, that is)
07:19:16 <oerjan> <elliott_> "millennia" -- are we talking about a programming language called Sanskrit, or Sanskrit itself? :D
07:19:20 <elliott_> ais523: haha
07:19:27 <ais523> but I'm not sure there's a standard name for something with debug info in
07:19:33 <oerjan> we are talking about the closest thing sanskrit has to an official spec
07:19:34 <elliott_> GDB a
07:19:45 <elliott_> oerjan: umm, really? not some programming language based on sanskrit?
07:19:56 <ais523> contrary to what sys/user.h says, GDB is not the only debugger in existence
07:19:56 <oerjan> yes, real sanskrit.
07:19:57 -!- Taneb has joined.
07:20:14 <ais523> people write official specs for non-programming languages?
07:20:17 <elliott_> too much into it. Don't use it for anything other than GDB unless
07:20:17 <elliott_> you know what you are doing. */
07:20:18 <elliott_> heh
07:20:19 <elliott_> umm
07:20:19 <ais523> other than Lojban, I mean?
07:20:22 <elliott_> /* The whole purpose of this file is for GDB and GDB only. Don't read
07:20:22 <elliott_> too much into it. Don't use it for anything other than GDB unless
07:20:22 <elliott_> you know what you are doing. */
07:20:29 <elliott_> ais523: well, French is "strictly controlled" (ha ha)
07:20:30 -!- nisstyre_ has joined.
07:20:31 <Taneb> Hello!
07:20:39 <elliott_> hi Taneb, we're discussing @, run while you still can
07:20:43 -!- Nisstyre has quit (Ping timeout: 258 seconds).
07:20:50 <Taneb> I still don't know what @ is!
07:20:58 <elliott_> lucky
07:21:37 <oerjan> ais523: 400 B.C. at least one person did. mind you iiuc he ignored many parts of the language, concentrating on morphology and inflection.
07:22:16 <Patashu> elliott_: call it heatvision
07:22:34 <Taneb> Isn't that just computational linguistics?
07:22:35 <elliott_> defrost :: Heatvision a -> a
07:22:49 <Patashu> Lol
07:23:55 <elliott_> ais523: hmm, this is definitely getting moe confusing
07:24:05 <Patashu> SO MOE
07:24:17 <Taneb> But what's @!
07:24:29 <elliott_> Taneb: stop it stop it stop it
07:24:43 <Taneb> Either you tell me or I install Haiku
07:24:56 <oerjan> where's it @
07:26:05 -!- nisstyre_ has quit (Quit: Leaving).
07:26:09 <elliott_> Taneb: ok
07:26:45 <Taneb> From an SD card!
07:26:46 -!- Nisstyre has joined.
07:28:05 <ais523> this is one of the less usual threats I've seen
07:28:05 -!- madbr has quit (Read error: Connection reset by peer).
07:28:20 <Taneb> I'm mildly sleep deprived!
07:32:08 <elliott_> ais523: boxes seem to describe the nature of description itself
07:32:17 <elliott_> hmm, interpretation brackets are this
07:32:21 <elliott_> Syn <-> Sem
07:32:27 <elliott_> but more Syn -> Sem than the other way
07:32:35 <ais523> oh, I can't type them, and are not sure if they're in Unicode
07:32:42 <ais523> but they look like [[ ]] but squished-together a bit
07:32:45 <elliott_> yep
07:32:51 <elliott_> <elliott_> but more Syn -> Sem than the other way
07:32:58 <ais523> \llbracket \rrbracket in LaTeX, I think
07:33:00 <elliott_> by that I'm just saying that Sem -> Syn doesn't get back all the information
07:33:01 <ais523> as I've typed them too much
07:33:04 <Taneb> Okay, I need to find a larger memory device
07:33:06 <elliott_> hmm, ah
07:33:13 <elliott_> ais523: there actually _is_ a function (a -> Box a)
07:33:15 <elliott_> for all a
07:33:25 <elliott_> ais523: it simply constructs a pathological box, one consisting of a single object reference
07:33:28 <elliott_> and that reference being the argument
07:34:07 <elliott_> ais523: oh, umm, I suppose not all objects are comparable, as they might contain references to non-comparable objects
07:34:09 <elliott_> that's problematic
07:34:26 <elliott_> but I don't see why you _shouldn't_ be able to do that pathological version
07:34:32 <elliott_> ais523: the analogy being, Sem -> Syn
07:34:35 <elliott_> Syn -> Sem does the actual evaluation
07:34:39 <elliott_> but you can always construct the simple lambda result back
07:35:26 -!- madbr has joined.
07:35:54 <elliott_> ais523: help what does a box do
07:36:03 <ais523> elliott_: haha at the reference
07:38:35 <elliott_> ais523: what have I done :(
07:41:33 -!- madbr has quit (Read error: Connection reset by peer).
07:42:30 <elliott_> ais523: I think you _do_ create boxes by composing them from scratch: that's called programming
07:42:44 <ais523> I suppose so
07:42:56 <elliott_> ais523: it's just manipulating an AST with "more info"
07:43:04 <ais523> in fact, you probably end up with a sort of lazy compile, don't you?
07:43:24 <ais523> I'm beginning to wonder if a box is just the AST, and unboxing it compiles one step
07:43:36 <elliott_> well, you can certainly convert a box to an AST
07:43:43 <elliott_> I'm not sure what differs it
07:43:52 <elliott_> but... the box of, say, a key-value table, isn't an AST
07:43:58 <elliott_> or, hmm
07:43:59 <elliott_> better analogy
07:44:07 <elliott_> the box of a record (Haskell-style) isn't an AST
07:44:11 <elliott_> well, it sort of is, but it's simpler than that
07:44:19 <elliott_> it's just a mapping from boxes of keys to boxes of values
07:44:23 <elliott_> where key is a name
07:44:28 <elliott_> so actually not boxed, just the name
07:44:30 <Taneb> --
07:44:30 <Taneb> +-+-
07:44:57 <Taneb> I've been up and down my house and finally found a bigger memory device
07:46:15 <elliott_> ais523: you've now thoroughly confused me
07:46:21 <elliott_> with only a few lines
07:47:01 <elliott_> "Å ÒÝ Ö
07:47:01 <elliott_> Ö× ̧ ÓÙÖ× ÐÚ × Ò
07:47:01 <elliott_> ÐÙ ̧ Û ÐÐ Ú ÕÙ ×Ý Ð1
07:47:01 <elliott_> Ò Ý Ø × ×Ø o Ï Ø × Ð Ø Ó Ø
07:47:01 <elliott_> ÙØÝ Ó ÙÒ
07:47:02 <elliott_> 1
07:47:04 <elliott_> Ø ÓÒ Ð ÔÖÓ Ö ÑÑ Ò Ý Ø Ø Ñ ÐÐ Ø × ÔÖ Ñ Ø Ú × Ú
07:47:06 <elliott_> Ò
07:47:08 <elliott_> ÀÓÛ
07:47:10 <elliott_> Ò Ø ÙÒ×Ô
07:47:12 <elliott_> ¬
07:47:14 <elliott_> ÔÖÓÓ Ó Ð Ø ÓÒ×
07:47:16 <elliott_> Ó ÙÒ× È Ö ÓÖÑÁÇ
07:47:18 <elliott_> Ö
07:47:20 <elliott_> Ø Ö ×
07:47:22 <elliott_> Ò ÔÖÓÚ
07:47:24 <elliott_> À ×Ø
07:47:28 <elliott_> Ý
07:47:30 <elliott_> Ò Ø ÖÓÛÒ ÓÙØ Û Ø Ø
07:47:32 <elliott_> Ø Û Ø Ö Ì × Ö Ù×1
07:47:34 <elliott_> Ø ¬ Ð
07:47:36 <elliott_> Ö Ø
07:47:38 <elliott_> ×Ñ×o Ì
07:47:40 <elliott_> Ý × Ò
07:47:42 <elliott_> Ò Ò Öo
07:47:44 <elliott_> "
07:47:46 <elliott_> argh
07:47:48 <elliott_> that's not helpful, Evince
07:47:50 <elliott_> if you can't copy it, don't pretend to
07:48:09 -!- madbr has joined.
07:48:46 <Taneb> How do I un-write-protect an SD card?
07:50:07 <ais523> there's normally a little plastic tab on one of the edges
07:50:10 <ais523> you move it to the other position
07:50:11 <Patashu> But if you could un-write-protect it you could write to it and so it wouldn't be very well write protected
07:50:17 <ais523> very small, normally about a millimetre square
07:50:29 <Patashu> Tomorrow's computer viruses will extend robotic arms from your computer to fiddle with the SD card to infect it!!
07:50:33 <Taneb> Got it
07:51:43 -!- madbr has quit (Read error: Connection reset by peer).
07:51:51 <Taneb> Thanks
07:51:58 <Taneb> So, that's what that does
07:53:17 <Taneb> brb, installing Haiku
07:53:48 -!- Taneb has quit (Read error: Connection reset by peer).
07:55:01 <monqy> what happens next???
07:55:07 <elliott_> haiku
07:55:08 <elliott_> an operating system
07:55:10 <elliott_> i can't do haikus
07:55:41 <elliott_> `addquote <Patashu> Tomorrow's computer viruses will extend robotic arms from your computer to fiddle with the SD card to infect it!!
07:55:44 <HackEgo> 551) <Patashu> Tomorrow's computer viruses will extend robotic arms from your computer to fiddle with the SD card to infect it!!
07:55:44 <monqy> 275
07:55:53 <ais523> elliott_: only 12 syllables
07:56:00 <elliott_> haiku syllable
07:56:02 <elliott_> an operating system
07:56:05 <elliott_> i can do haikus??
07:56:15 <elliott_> wow is that actually right haha wow
07:56:19 <elliott_> i didn't even try first time
07:56:21 <elliott_> or second time
07:56:29 <ais523> it also technically needs to mention the name of a season to be a haiku
07:56:31 <Patashu> I'm pretty sure the syllables are a necessary, not sufficient, metric for a haiku
07:56:33 <ais523> but people keep disregarding that
07:56:36 <Patashu> Yeah
07:56:44 <ais523> I think 5/7/5 + season name is sufficient
07:56:48 <ais523> but it might not be a very /good/ haiku
07:57:15 <ais523> you could start off "haiku in summer", then it'd work
07:57:18 <elliott_> haiku syllable
07:57:20 <elliott_> an operating system
07:57:22 <elliott_> i can do haikus??
07:57:24 <elliott_> summer i think
07:57:24 <ais523> just not make whole lot of sense
07:57:28 <elliott_> ais523: yw
07:57:29 <monqy> beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
07:57:37 <Patashu> damnit I laughted
07:57:38 <elliott_> monqy: i laughed, but I'm not sure why
07:57:41 <Patashu> lol you too
07:57:43 <ais523> Patashu: I did too
07:57:57 <ais523> `addquote <monqy> beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
07:57:58 <HackEgo> 552) <monqy> beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
07:58:04 <ais523> three people laughed at it, so by definition it's funny
07:58:27 <Patashu> It's very close to being a skit
07:58:29 <ais523> and probably carries enough context in just that quote for other people to get the joke, too
07:58:57 -!- madbr has joined.
07:59:27 <pikhq> Start book at 8. Finish book and realise it's 2.
07:59:37 <pikhq> I seem to have issues with "sleep".
08:00:02 <elliott_> you read for eighteen hours
08:00:08 <Patashu> wait, which 8?
08:00:14 <elliott_> or minus six hours
08:00:47 <Patashu> 6 works fine for me
08:00:48 -!- Nisstyre has quit (Ping timeout: 260 seconds).
08:00:51 <Patashu> what's your problem with it
08:01:05 <elliott_> Patashu: what
08:01:12 <Patashu> 8 pm, 2 am
08:01:18 <elliott_> just ruin the joke :(
08:01:20 <Patashu> ;_;
08:01:26 <elliott_> obviously pikhq meant twenty four hour times
08:02:49 <elliott_> monqy will now never speak again after that haiku because he can never top it
08:02:50 -!- madbr has quit (Read error: Connection reset by peer).
08:05:29 <elliott_> ais523: you should play EVE Online; you've already mastered the playing of Excel as a game, so EVE can only be a step up in fun from that
08:05:37 <elliott_> if a minor one
08:05:41 <ais523> elliott_: haha
08:05:57 <ais523> I think you have it the wrong way round, though
08:06:09 <ais523> what I wrote was trying to implement a game engine using Excel
08:06:11 <elliott_> you mean experienced EVE players should go for the raw multiplayer Excel experience?
08:06:14 <elliott_> that too
08:06:19 <ais523> whereas EVE Online is trying to implement a spreadsheet in a game engine
08:06:29 <ais523> you'd expect someone who enjoyed one to dislike the other
08:06:41 <Patashu> What is playing EVE Online really like
08:06:48 <elliott_> I gave up on EVE roughly when I realised that not only do you attack ships by right clicking them and choosing an item from a context menu, but you also do everything else by popping up windows and interacting with GUI widgets
08:06:54 <elliott_> it even has a browser window you can use
08:07:00 <elliott_> you could probably use EVE as your only oS
08:07:01 <elliott_> OS
08:07:03 <elliott_> ...in space
08:07:12 <ais523> elliott_: you played it at all?
08:07:19 <ais523> that surprises me and I'm not sure why
08:07:25 <elliott_> ais523: it has a free trial, so I played about five minutes of it
08:07:34 <ais523> I think you just don't strike me as the sort of person to play MMOs, even free trials of them
08:07:44 <elliott_> no, but I do like my spreadsheets
08:07:53 <ais523> also, apparently EVE has a huge bias towards players who joined early
08:08:01 <elliott_> anyway, I /did/ play an MMO regularly a few years ago, I'm too embarrassed to tell you which, though
08:08:06 <elliott_> [asterisk]ago;
08:08:08 -!- cheater_ has quit (Ping timeout: 255 seconds).
08:08:35 <ais523> it's either going to be World of Warcraft or some crazy tie-in to a TV series
08:08:37 -!- cheater_ has joined.
08:08:44 <elliott_> ais523: nope
08:08:52 <ais523> hmm
08:09:02 <ais523> in that case, I probably won't even try to guess
08:09:57 -!- madbr has joined.
08:11:33 <pikhq> Patashu: 20:00 to 02:00. Happy?
08:11:33 -!- madbr has quit (Read error: Connection reset by peer).
08:11:58 <Patashu> You have not given me any new information
08:12:32 <pikhq> elliott_: ^
08:12:33 <pikhq> Sorry.
08:12:39 <elliott_> pikhq: NO
08:12:44 <pikhq> And I *really* should disambiguate — I mean, I'm about as likely to use 24 hour time as 12 hour time, TBH...
08:16:38 <coppro> elliott_: neopets
08:17:07 <elliott_> coppro: does neopets even count as an MMO
08:17:11 <Patashu> yes
08:17:13 <elliott_> I should start playing Neopets ironically
08:17:24 <Patashu> you can't play neopets ironically
08:17:25 <elliott_> I never even knew it existed until I was far too old to be in the target market
08:17:26 <Patashu> you'd get super bored
08:17:34 <elliott_> Patashu: that's just super ironic
08:17:38 <Patashu> oh
08:17:43 <elliott_> note: sufficiently good irony is indistinguishable from sincerity
08:18:20 <pikhq> I actually had a Neopets account. I later gained a second digit in my age.
08:18:55 <Patashu> I have an account
08:19:23 <coppro> I had an account
08:19:24 <coppro> might still do
08:19:26 <coppro> dunno
08:19:26 <elliott_> `addquote <pikhq> I actually had a Neopets account. I later gained a second digit in my age.
08:19:28 <HackEgo> 553) <pikhq> I actually had a Neopets account. I later gained a second digit in my age.
08:19:29 <coppro> cba to find out
08:19:42 <ais523> what is Neopets, anyway
08:19:56 <coppro> ais523: oh you'll love this
08:19:57 <elliott_> ais523: it's Neopets (do you actually not know?)
08:19:57 <coppro> google it
08:20:11 * ais523 tries Wikipedia
08:20:11 -!- madbr has joined.
08:20:20 <elliott_> ais523: they're like pet rocks, except instead of rocks, they're bits. also you can buy them accessories with rockcaret W bit money?
08:20:26 <elliott_> also there are games to win money?
08:20:27 <elliott_> i think.
08:20:28 <elliott_> also it is old.
08:20:32 <elliott_> and i think a scientologist runs it?
08:20:38 <elliott_> Revenue$30 million USD+
08:20:43 <elliott_> that is too much money for pet rocks
08:21:03 <ais523> and you can pay them for a webmail address/
08:21:13 <ais523> this is a pretty random combination of things
08:22:21 <coppro> yeah old is a pretty significant quality
08:22:22 -!- madbr has quit (Read error: Connection reset by peer).
08:22:31 <pikhq> When it got started Tamagotchi was a fresh memory.
08:22:53 <fizzie> "I always knew having a mad wizard design our water distribution plant was a bad idea." (From a Neopets-related "walkthrough"-style thing I hit a week ago while googling for something really completely different.)
08:23:33 <pikhq> ais523: It was the friggin' 90s.
08:23:48 <pikhq> Well. Nearing on 2000.
08:23:50 <pikhq> Still.
08:24:03 <ais523> that'd be before I really knew about the Internet
08:24:05 <pikhq> These were primitive days, and Geocities was still vibrant.
08:24:10 <elliott_> tamagotchis are so great, i had one, i remember fuck all about it
08:24:28 <pikhq> At the time I had been on the Internet for a handful of years.
08:24:40 <coppro> November 15, '99
08:24:43 <oerjan> <ais523> three people laughed at it, so by definition it's funny <-- make that four
08:24:44 <elliott_> what was the internet like in 98, i was on then but i don't recall it
08:24:55 <coppro> according to Our Lord Wikipedia
08:25:03 <pikhq> elliott_: Comically simple.
08:25:08 <ais523> elliott_: heh, you were probably consistently online before me, then
08:25:16 <elliott_> ais523: I'm not exactly surprised
08:25:19 <ais523> I knew of its existence back then, and would even find a way to use it if I needed it
08:25:25 <ais523> but that was rare
08:25:27 <elliott_> ais523: when did you discover the internet, five minutes ago?
08:25:34 <pikhq> elliott_: This predates *CSS*.
08:25:34 <ais523> and mostly, I'd be doing email via someone else's account
08:25:49 <ais523> (with permission, obviously)
08:26:00 <ais523> elliott_: I'm still not entirely convinced it exists
08:26:17 <ais523> I mean, technology that lets you communicate instantly with people in a huge range of places around the world, that's science fiction stuff, right?
08:26:25 <pikhq> elliott_: *Google was not The Search Engine*.
08:26:35 <ais523> (no telephones do not count have you ever tried to make an international phone call that crosses continent boundaries?)
08:26:42 <elliott_> can i have an asterisk?
08:26:47 <pikhq> *****
08:26:49 <elliott_> ais523: what's it like (I haven't ever)
08:26:49 <coppro> Does Neopets still look like a lesson in horrid web design?
08:26:50 <pikhq> Here, have 5.
08:27:04 <pikhq> coppro: Yes.
08:27:11 <coppro> k
08:27:13 <ais523> elliott_: when I tried to phone home from Canada, it took the phone over two minutes to even work out how much a call to the UK would cost
08:27:18 <pikhq> coppro: Also, at the time it was just normal web design.
08:27:33 <ais523> and then quoted an amount that was sufficiently large it'd have been inconvenient to pay with just coins
08:27:34 <ais523> so I had to give up
08:27:47 <elliott_> oh my god what did i do
08:27:51 <ais523> not just because affording it would have been tricky, but because I had no real prospect of finding change
08:28:01 <coppro> yeah international calls suck
08:28:11 <pikhq> The phone network sucks.
08:28:11 <ais523> I'm not sure if that's the fault of Canada in particular, though
08:28:23 <pikhq> It was perfectly sane and well-designed. In 1950.
08:28:26 <ais523> from Hungary, it took about five seconds longer than normal to connect
08:28:32 <ais523> and the price was noticeable but not insane
08:28:59 <ais523> but that's within the EU, that's practically no distance at all
08:28:59 <pikhq> Or 30-odd exponential increases in computing power ago.
08:29:49 <elliott_> dontaddquote <ais523> but that's within the EU, that's practically no distance at all
08:30:29 <pikhq> Really, circuit switching is just sad.
08:31:14 <ais523> hmm, what are international calls from the US like?
08:31:17 <ais523> similar to Canada?
08:31:40 <pikhq> ais523: I literally do not know.
08:31:55 <ais523> I don't blame you for never having tried
08:31:56 <pikhq> I have never had cause to call internationally.
08:32:04 <pikhq> I have rarely had cause to even call long-distance.
08:32:11 <ais523> I suppose you could use a payphone then not put money in it, that would be a relatively simple way to discover the time and cost
08:32:20 <ais523> also, wow, I forgot that long-distance calls existed
08:32:27 <pikhq> I was in the single digits when I started using the Internet.
08:32:42 <ais523> in the UK, they're now sufficiently similar to short-distance calls that most phone companies don't bother to distinguish between them
08:32:56 <ais523> because the UK's quite small in terms of landmass, as countries go
08:32:58 <coppro> the cell phone companies still love doing them
08:33:12 <pikhq> In the US, the phone company believes that you should bend over and take it up the ass without lube.
08:33:23 <coppro> free calling within the continent is not too uncommon in Canadian plans now
08:33:28 <coppro> (landline, of course)
08:33:35 <coppro> pikhq: You think your cell phone companies are bad?
08:33:53 <pikhq> coppro: Okay, yeah, Canada also has that policy.
08:33:56 <ais523> wait, you can make a short distance call on a cellphone?
08:34:09 <ais523> all mobile phone calls are long-distance in the UK
08:34:26 <coppro> pikhq: No. Our companies insist on at least one more hole at the same time.
08:34:37 <fizzie> All mobile phone calls to landlines are "same-distance" in Finland. I don't know if it's a long or short.
08:34:41 <pikhq> In the US, cell phones are assigned entirely normal phone numbers within the area code for where you live in.
08:34:51 <ais523> typically, you get a cheaper price contacting a landline or another mobile phone on the same operator, and a more expensive price contacting a mobile phone with a different operator
08:35:28 <oerjan> <ais523> (no telephones do not count have you ever tried to make an international phone call that crosses continent boundaries?) <-- i phoned in my agora votes once (sadly through an answering machine) in the 90s. it was surprisingly easy.
08:35:42 <coppro> :D
08:35:45 <pikhq> :D
08:35:50 <ais523> oerjan: that's Norway to... New Zealand?
08:36:00 <coppro> oh man
08:36:04 <ais523> I assume Agora doesn't have a international dialling prefix of its own
08:36:05 <coppro> I should try to conference call all agoran players
08:36:07 <ais523> but we should definitely get it one
08:36:14 <ais523> coppro: you live in /Canada/
08:36:27 <coppro> ais523: so?
08:36:39 <ais523> which has crazy telecom companies
08:36:56 <coppro> ais523: I'll call a foreign carrier who does cheap conference calling first :{
08:37:31 <coppro> pikhq: you lied about Neopets and web design btw
08:37:37 <coppro> it's not an example of bad web design
08:37:42 <coppro> it's an example of horrible web design
08:37:48 <pikhq> Probably the worst part about the telephone network is that they have the audacity to charge even *trivial* costs per minute.
08:38:09 <coppro> pikhq: Do landline carriers still do that in the US?
08:38:11 <ais523> pikhq: you think they should charge just line rental?
08:38:16 <pikhq> coppro: Long-distance.
08:38:24 <coppro> pikhq: How far is long-distance, typically
08:38:41 <ais523> the phone situation in the UK, both landline and mobile, is that the tariffs are really complicated and have loads of exceptions
08:38:45 <ais523> making them very hard to compare
08:38:50 <pikhq> coppro: I have no idea. I call maybe 10 times a year.
08:38:59 <coppro> pikhq: well it matters
08:39:07 <ais523> I actually use landlines quite a lot
08:39:09 <pikhq> I am ignorant!
08:39:17 <coppro> ais523: by the way, not only do cell phones have area codes, you get charged extra for being outside your home zone typically
08:39:20 <ais523> relative to most of the people in this channel, anyway, I expect
08:39:28 <pikhq> ais523: But, yes, they really should just charge line rental.
08:39:32 <elliott_> whatar ephones
08:39:36 <elliott_> monqy: help
08:39:50 <pikhq> ais523: The phone call *itself* is just a 56kbps stream over the Internet.
08:39:55 <monqy> whats hapeneng
08:40:00 <monqy> I haven't been paying attention
08:40:08 <ais523> coppro: I'm beginning to wonder if North America's attitude to cellphones is "let's make these work as much like landlines as possible"
08:40:10 <monqy> something about phones and web design?
08:40:10 <elliott_> monqy: whateis a phone
08:40:16 <monqy> i hate hpoens
08:40:22 <monqy> i have one but i keep it off all the time
08:40:27 <oerjan> ais523: wherever steve gardner lived at the time
08:40:29 <elliott_> a man after ais523
08:40:39 <elliott_> oerjan: wat
08:40:49 <pikhq> ais523: North America's attitude to international callling is also "let's make these work as much like intranational callling as possible."
08:40:58 <pikhq> ais523: North America has a unified numbering scheme.
08:41:01 <coppro> ais523: It's moneygrab
08:41:12 <ais523> elliott_: in response to my question about whether he phoned New Zealand from Norway
08:41:28 <ais523> pikhq: international calling from Europe is very like intranational, too
08:41:30 <pikhq> ais523: There's not country prefixes in the North American dialing plan. There's the North America prefix, and area codes.
08:41:40 <ais523> you just dial double 0 then country code then number
08:41:46 <pikhq> And then 7 digit numbers.
08:41:47 <coppro> ais523: People were used to phone service working like X, so they just kept that when cell phones arrived
08:41:51 <pikhq> For all of North America.
08:41:52 <coppro> which was good for them since they made money
08:41:52 <ais523> just like you dial single 0, area code, number for long distance
08:41:56 <ais523> or just number for short distance
08:42:00 <coppro> and there has been insufficient consumer pressure to switch
08:42:02 <elliott_> i love how stupidly close inter and intra are
08:42:04 <ais523> 0's like the ../ of the phone system
08:42:06 <coppro> although in Canada some new pressure is emerging
08:42:12 <coppro> (from foreign companies, no less)
08:42:44 <ais523> hmm, if I phoned myself starting with 0044, I wonder if I'd be charged more?
08:43:06 <ais523> I know you aren't on a mobile, starting UK numbers with +44 is common there
08:43:12 <ais523> just in case you happen to move the phone outside the UK
08:43:19 <ais523> so it doesn't call the number in the wrong country
08:43:27 <coppro> we now actually have a mobile provider that offers unlimited tethering
08:43:40 <ais523> which of the three possible definitions of unlimited are you using?
08:43:50 <ais523> in particular, does it become limited again if you use too much bandwidth?
08:44:02 <elliott_> haha
08:44:02 <coppro> not AFAICT
08:44:04 <ais523> (ah, the joys of phone advertising in the UK)
08:44:20 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
08:44:24 <ais523> elliott_: that's what "fair usage policy" typically means in the small print of communciations advertising
08:44:30 <coppro> it's not cheap, but it doesn't appear to be one-dimensionally unlimited
08:44:47 <ais523> another variation is unlimited except if you do certain things
08:44:58 <ais523> like, say, use Skype
08:45:02 <oerjan> <elliott_> oerjan: wat <-- my agora phone vote
08:45:46 <coppro> They do say they'll throttle you after 5GB/mo though, for the rest of the month, to 256 Kb/s up and 128 down, and you'll get a notice telling you they're doing that
08:46:00 <ais523> coppro: aha
08:46:03 <coppro> 5GB on a mobile connection is a lot though
08:46:04 <elliott_> oerjan: ok
08:46:12 <ais523> that's the "unlimited except if you use too much bandwidth" I was referring to
08:46:19 <ais523> a massive throttle is similar to a cutoff
08:46:28 <coppro> 256 Kb/s is still plenty
08:46:32 <elliott_> zero, one, infinity is so passe. the new thing is: zero, one, five million
08:46:40 <coppro> for simple stuff
08:47:16 <ais523> but that's just 56k
08:47:19 <ais523> with a 2 in front
08:47:24 <elliott_> X-D
08:47:32 <ais523> which only makes a difference of a factor of 5 or so
08:47:39 <fizzie> "So it's just like two dialup modems."
08:47:42 -!- Nisstyre has joined.
08:47:53 <ais523> fizzie: more like five of them, mathematically
08:47:59 <fizzie> Yes, but textually.
08:48:09 <fizzie> Two of fifty-six kay.
08:48:15 <coppro> ais523: I don't know the exact numbers, but I don't expect that's a ridiculously evil slowdown relative to normal
08:48:24 <coppro> oh, and they do throttle P2P traffic
08:48:39 <coppro> but this is semi-normal here, and to be expected on a limited bandwidth network
08:49:01 <ais523> bleh, why is INVISIBLE MULTIPLICATION SIGN not in my Unicode character map thing?
08:49:10 <ais523> I wanted to write 2<INVISIBLE MULTIPLICATION SIGN>56
08:49:11 <coppro> and still way better than you'll get from the major networks
08:49:23 <coppro> ais523: Some only do the BMP
08:49:29 <ais523> this one does more than the BMP
08:49:35 <ais523> but I'm not sure how far beyond it goes
08:49:47 <oerjan> ais523: you're just not seeing it
08:49:58 <coppro> a quick google doesn't show such a symbol at all
08:50:02 <fizzie> There's no INVISIBLE MULTIPLICATION SIGN even in my UnicodeData.txt.
08:50:04 <ais523> also, I perhaps forgot what the symbol's called
08:50:13 <ais523> I'm pretty sure it exists, but I'm not convinced I got the name right
08:50:28 <Patashu> lol 'invisible multiplication sign'
08:50:28 <Patashu> hahaha
08:50:30 <fizzie> Well, the name does not contain the substring "multipli".
08:50:54 <fizzie> Or at least 'grep -i multipli' on UnicodeData.txt gives a lot but nothing that sounds very invisible.
08:51:01 <coppro> U+2062 INVISIBLE TIMES
08:51:07 <oerjan> what about grep -i invisible
08:51:08 <fizzie> Ah, there.
08:51:30 <ais523> Patashu: e.g. for placing between the π and the r in πr²
08:51:30 <oerjan> it was the best of times, it was the of times
08:51:38 <Patashu> yeah I figured but
08:51:38 <Patashu> lmao
08:51:42 <coppro> also U+2061 FUNCTION APPLICATION, U+2063 INVISIBLE SEPARATOR, and U+2064 INVISIBLE PLUS
08:51:49 <Patashu> aren't invisible characters a huge huge threat?
08:51:51 <elliott_> U+2061 FUNCTION APPLICATION? amazing
08:51:55 <Patashu> you can disguise strings as being something else
08:52:02 <ais523> heh, Haskell definitely needs U+2061 between all uses of function and argument
08:52:05 <ais523> even better, /Agda/ needs it
08:52:32 <oerjan> overloaded space defaulting to U+2061
08:52:44 <oerjan> but sometimes you need to disambiguate...
08:53:04 <ais523> 2⁢56kb/s
08:53:05 <oerjan> wasn't there an april fools joke about overloaded space
08:53:07 <ais523> there we go
08:53:18 <coppro> ais523: Also the telecom's site doesn't try too hard to hide the cap
08:53:31 <coppro> http://shop.windmobile.ca/productcatalog/dataplans/plandetails.aspx?id=infinite+laptop+q2+2011+promo(WINDCA) "See our Fair Usage Policy" is pretty highlighted
08:53:35 <ais523> they generally hide it on their street adverts and not anywhere else
08:53:48 <ais523> on the principle that once people start buying something, they generally don't stop
08:53:57 <ais523> budget airlines operate on the same principle
08:55:12 <coppro> also I like this company's approach to terms of service. the words "Make sense?" actually appear in a ToS
08:55:44 <coppro> and I like their "get-a-phone" incentive
08:56:05 <coppro> they'll give you some part of the phone price off, and 10% of your bill goes towards it
08:56:12 -!- elliott_ has quit (Remote host closed the connection).
08:56:13 <coppro> So they don't need to lock you in with a multi-year contract
08:56:17 <ais523> hmm, I wonder why MEDIUM MATHEMATICAL SPACE is defined as 4/18em
08:56:18 <coppro> which is fairly standard among other providers
08:56:21 <ais523> and why the fraction isn't written as 2/9
08:56:35 <ais523> coppro: in the US (and presumably Canada too)
08:56:37 -!- elliott has joined.
08:56:40 <elliott> 08:55:12: <coppro> also I like this company's approach to terms of service. the words "Make sense?" actually appear in a ToS
08:56:45 <elliott> good to know that marketing still works on people
08:56:46 <ais523> it's very far from the norm in the UK, and has only started becoming popular recently
08:57:11 <ais523> multi-year contract in exchange for phone, that is
08:57:17 <coppro> ais523: yeah
08:57:18 <coppro> I know
08:57:20 <ais523> in fact, no contract is more common in the UK
08:57:24 <coppro> elliott: These ones aren'a a hideous mess of legalese
08:57:36 <coppro> ais523: yeah. It's becoming a powerful marketing tool though
08:57:37 <ais523> (instead, the prices go ridiculously high if you don't pay $10 a month, and you have to pay in advance)
08:57:45 <ais523> umm, £10
08:58:00 <coppro> "no contract" is becoming common in some ads
08:58:30 <ais523> just wait until they catch up with some of the gimmicks UK ads have come up with
08:58:45 <ais523> e.g. realising that prepaid credit on a mobile phone was an arbitrary currency separate from real money
08:58:55 <coppro> The only problem is that this particular carrier has rather low coverage
08:58:57 <ais523> and so just advertising that you could pay £10 for £30 credit
08:59:04 <ais523> and people thinking that it gave an advantage
08:59:13 <coppro> because they have to fight tooth and nail for infrastructure
08:59:17 <elliott> wow, I just realised how little sense that makes just now
08:59:29 <ais523> elliott: you saw the adverts too, presumably
08:59:33 <coppro> and the other carriers don't want to rent it out at anything close to reasonable
08:59:43 <elliott> yep, but I turn my brain off for adverts, and usually concentrate on their aesthetic aspects
08:59:49 <elliott> the products are quite irrelevant
08:59:52 <ais523> heh
09:00:09 <ais523> I get bored on the bus sometimes, so I often look at adverts while commuting
09:00:19 <ais523> I'm not sure if any has changed my buying preferences, though
09:00:21 <elliott> oh, I saw them on TV
09:00:27 <elliott> television ads are so weird
09:00:37 <ais523> in either direction; all the adverts bad enough to make me boycott something have been for something I didn't want to buy anyway
09:01:27 <coppro> when WIND actually covers Waterloo, I will like get a phone with them
09:01:49 <coppro> partially just to provide them money, partially just to avoid providing the competitors with money, and partially to get service
09:02:00 <elliott> coppro: how much are you being paid?
09:02:09 <coppro> elliott: At Google? lots
09:02:14 <elliott> whoosh
09:02:21 <coppro> elliott: Of course it all has a mysterious habit of vanishing when I go back to school
09:02:30 <ais523> elliott: I think Tesco Mobile more or less won the advertising war there, because they managed to produce a great-sounding advert to advertise something that didn't cost them anything at all, nor give any advantage to their customers
09:02:57 <ais523> whereas the other mobile phone providers all had to actually provide complicated price breaks that nobody could work out the exact effect of
09:03:05 <ais523> which presumably cost them something
09:03:17 <ais523> but mobile phone network adverts seem to have reduced recently
09:03:34 <ais523> the last big campaign I remember was Orange/T-Mobile each advertising that their customers could use the others' signal
09:04:15 <Sgeo> What was that something?
09:04:37 -!- ais523 has quit (Remote host closed the connection).
09:05:11 -!- Nisstyre has quit (Ping timeout: 276 seconds).
09:06:57 <elliott> http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg01155.html
09:07:01 <elliott> RMS PANIC
09:08:04 <monqy> oh no
09:09:47 -!- monqy has quit (Quit: hello).
09:09:50 <Patashu> what's going on
09:09:53 <Patashu> in that link
09:10:47 <elliott> Patashu: see http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg01085.html onwards
09:10:49 <fizzie> A TRAGEDY is what's going on.
09:11:37 <Patashu> The problem is that they're not releasing source code to emacs or something?
09:11:43 <elliott> fizzie: It is a GPL violation that you are not currently FIXING THOSE COORD MACROS. Or, uh, ADDING THE WATER COLOURING. BASICALLY ANY WAY YOU SLICE IT YOU ARE BAD
09:11:48 <elliott> Patashu: a few source files are missing
09:11:53 <Patashu> which ones?
09:12:10 <elliott> Patashu: read the thread
09:12:21 <Sgeo> Some files that apparently themselves generate C (I think) code
09:12:31 <Patashu> I tried to it's too boring :(
09:13:05 <Patashu> Oh it's some parser thing not having source code
09:13:10 <Sgeo> That is, you can fully compile emacs from what they distributed as is, but it's not as easy to modify... certain things
09:14:03 <elliott> Sgeo: it's a gpl violation for anyone to redistribute
09:19:38 <elliott> buy essays online said...
09:19:38 <elliott> real life is more interesting than virtual
09:19:38 <elliott> 10:00 AM
09:20:25 <itidus20> Warning.. warning.. GNU violation in sector 12
09:20:53 -!- copumpkin has joined.
09:21:12 <oerjan> the gnus are rampaging
09:22:18 -!- Taneb has joined.
09:22:55 <Taneb> Well, I gave up trying to install Haiku
09:23:56 <Taneb> Is brainfuck Turing Complete with unbounced cell size but a tape size of 2?
09:24:18 <Patashu> Sure
09:24:25 <Patashu> You can prime number encode an infinite number of numbers
09:24:28 <Patashu> *prime factor
09:24:32 <elliott> Taneb: see minsky machine
09:24:34 <oerjan> no, i don't think 2 is enough
09:24:37 <elliott> oh wait no
09:24:39 <elliott> bf isn't enough
09:24:40 <Patashu> And use the other cell for condutional constructs
09:24:42 <elliott> Patashu: no
09:24:45 <Patashu> no?
09:24:48 <elliott> bf's operations aren't good enough for that
09:24:51 <elliott> probably
09:24:57 <Patashu> hmm
09:25:10 <Taneb> It's been shown to be turing complete with a tape size of 5
09:25:10 <oerjan> 4 or 5 is enough iirc. it's somewhere on the wiki...
09:25:11 <elliott> oerjan: hmm, can't a minsky machine's registers be done by brainfuck?
09:25:12 <Patashu> for every function you nest you need another for-conditional cell I think
09:25:21 <elliott> hmm, no
09:25:25 <oerjan> elliott: yes, but you need more than one bf cell for one minsky register
09:25:38 <elliott> right
09:25:39 <itidus20> @__ You tried well. But then met failure. Try again. __@
09:26:33 <Patashu> Why are wiki pages caps sensitive
09:26:42 <oerjan> basically you cannot use a bf cell much without clearing it, so you sometimes need to copy information elsewhere
09:26:55 <itidus20> i got the syllable counts wrong
09:28:11 -!- derrik_ has joined.
09:29:08 -!- derrik has quit (Ping timeout: 258 seconds).
09:29:09 -!- derrik_ has changed nick to derrik.
09:29:10 <Patashu> Frans Faase gives a procedure for translating 5-register Universal Register Machines into brainfuck programs using five cells [1].
09:29:11 <Patashu> this?
09:29:11 <oerjan> or hm maybe it's actually the problem of doing conditionals
09:29:16 <Patashu> http://www.iwriteiam.nl/Ha_bf_Turing.html
09:29:27 <oerjan> because you always need to end [...] on a 0
09:29:42 <oerjan> _and_ be in a consistent state
09:30:56 <oerjan> Patashu: mind you you only need 2-register (this is proved by a prime encoding), maybe something more efficient than 5 bf cells can do it.
09:31:15 <oerjan> 3 might be too tricky
09:31:39 <itidus20> Start with "Frans". Swap n with s "Frasn". Change r to a "Faasn". Change n to e "Faase".
09:33:06 <oerjan> ^scramble frans
09:33:06 <fungot> fasnr
09:35:54 <oerjan> the 2-register thing was mentioned in wikipedia's articles on counter machines
09:36:44 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]).
09:36:48 <itidus20> or in other words
09:36:55 <itidus20> "Frans". Swap cell 4 with cell 5. Load "a" into cell 2. Load "e" into cell 5. "Faase".
09:37:21 <oerjan> itidus20: you're just a few steps from a Smetana derivative there.
09:39:23 <oerjan> maybe you _could_ do it with only 3, hm.
09:40:02 <itidus20> another take on it is
09:40:41 <itidus20> "Frans". Copy cell 5 into cell 4. Copy cell 3 into cell 2. Load "e" into cell 5. "Faase".
09:41:47 <oerjan> by using that one-register with constant multiplication/division that is part of the proof that 2 with inc/dec suffice
09:44:24 -!- derrik has joined.
09:47:44 <oerjan> in other words, doing this with 3 bf cells instead of 2 minsky registers: http://en.wikipedia.org/wiki/Counter_machine#Step_3:_Four_counters_can_be_simulated_by_two_counters.
09:48:10 <oerjan> Taneb: ^
09:48:25 <Taneb> So, the answer's... yes?
09:48:52 <oerjan> no, it's "maybe". i haven't worked out if it actually works...
09:48:58 <Taneb> Okay
09:49:04 <Taneb> I'll stick to five cells for now
09:49:06 <oerjan> also, i don't think 2 bf cells is enough.
09:51:40 <oerjan> because there is simply not enough room then to leave the essential data unscathed, extract the conditional information you need _and_ end a [...] at the same time.
09:52:12 <oerjan> unless, hm...
09:53:43 -!- MigoMipo has joined.
09:54:10 <oerjan> perhaps if you did it as an enormously branching tree of []'s, where you only end a loop after packing all the information _back_ into the main register, so you can keep the second register 0 while returning to top level of the bf program...
09:55:10 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]).
09:55:48 <elliott> this is like :caret() :D
09:55:59 <oerjan> MAYBE :P
09:59:02 <oerjan> the "make a conjecture that something is impossible, then get an idea why it's possible after all, repeatedly" part certainly seems familiar.
10:09:06 <Taneb> Stupid Python lambda
10:09:12 <Taneb> Not doing what I want it ot
10:09:14 <Taneb> *to
10:09:32 <elliott> try not using python
10:11:31 <oerjan> doing if (n % const == 0) { n /= const; ... } else { ... } with just 2 registers _does_ seem rather hard
10:11:54 <coppro> darn, asi523 is gone
10:12:03 <Patashu> you need at least one more register for that
10:12:08 <Patashu> however many register mult, div and mod require...
10:12:55 <oerjan> *2 cells
10:13:33 <elliott> I think you could do it with an infinite AST :-)
10:14:06 <oerjan> elliott: yeah, the tricky part is doing unbounded subtraction looping without that :P
10:16:33 <elliott> oerjan: maybe aim for four cells to start with? :P
10:16:48 <oerjan> or three.
10:16:59 <elliott> oerjan: UNDERLOAD MINIMALISATION WASN'T BUILT IN A DAY
10:17:04 <oerjan> indeed.
10:18:17 <oerjan> with three you should have somewhere to put both the quotient and the remainder, and then you can clean things up afterward, maybe.
10:18:36 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
10:19:00 <oerjan> for a minsky machine 2 registers is no problem because the remainder can be incorporated into the state.
10:19:07 <elliott> oerjan: three or four wouldbe an upsetting number.
10:19:09 <elliott> why three. why four.
10:19:11 <elliott> why not two.
10:19:16 <elliott> (as the minmum)
10:20:37 <oerjan> well as i said, with two you have the trouble that whenever you exit a loop, all your information beyond program position has to be in just one cell.
10:20:51 <oerjan> *as i implied,
10:21:56 <elliott> WHY SO FAR NOT THOU.
10:23:20 <oerjan> which means you cannot really use a loop for calculating divmod, unless you manage to somehow avoid exiting it before making some computational progress.
10:24:21 <elliott> three would be okay i guess
10:24:22 <elliott> cuz like
10:24:22 <elliott> two minksy
10:24:24 <elliott> one scratch
10:24:30 <elliott> but FOUR is unholy against god as a minimum,
10:24:38 <oerjan> i seem to have a disturbing tendency to split infinitives
10:34:53 <coppro> oerjan: *I seem to disturbingly have a tendency to split infinitives
10:34:53 <itidus20> oerjan: splitting infinitives is not illegal
10:35:23 <Taneb> Unless you weaponize it
10:35:45 <coppro> agree with itidus20
10:35:47 <itidus20> i was on the split infinitives wikipedia page once
10:35:52 <coppro> splitting infinitives is fine
10:36:03 <itidus20> apparen't theres a big mix up about it
10:36:16 <itidus20> ^apparently
10:36:43 <oerjan> yes but i seem to be doing it all the time recently.
10:37:15 <itidus20> you're just winning... it's fine
10:37:25 <Taneb> Oerjan desires to boldly split infitives where no infinitives have been split before
10:37:44 -!- Lymee has quit (Ping timeout: 240 seconds).
10:38:10 -!- oerjan has quit (Quit: Yes, you should.).
10:44:33 -!- elliott has quit (Ping timeout: 260 seconds).
11:08:09 -!- olsner has joined.
11:13:11 -!- immibis has joined.
11:29:49 -!- olsner has quit (Quit: Leaving).
11:35:44 -!- olsner has joined.
11:38:04 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
11:43:25 <Sgeo> Are there any good reasons that I should _not_ return the Nook and get a Kindle?
11:43:35 <Sgeo> I like the idea of the synced annotations
11:44:36 -!- cheater_ has quit (Ping timeout: 255 seconds).
11:44:40 <Sgeo> I've kind of been excludng "Kindle" mentally from my "What ereaders am I checking out" list before
11:50:07 <Sgeo> Well, hmm, I wouldn't be able to buy from most online ebookstores
11:57:12 -!- cheater_ has joined.
12:06:08 -!- FireFly has joined.
12:06:41 <Sgeo> Well, that's just great. Just taught a creepy idiot in #jesus about the existence of notice, now he's asking me how I did it
12:06:57 <Taneb> notice?
12:07:24 <Sgeo> You've never used IRC notice?
12:07:30 <Taneb> No
12:07:35 <Sgeo> Looks like this to the channel
12:07:48 <oklopol> elliott: yes
12:08:36 <Taneb> Hmm.
12:08:39 <Taneb> Interesting.
12:09:03 <oklopol> gayest.
12:09:39 <olsner> Sgeo: why are you in #jesus teaching people about notice?
12:09:54 <Taneb> Because he's that awesome
12:10:18 <Sgeo> Because creepy dude was talking about some "hacker" sending messages to him, and that's why he always seemed to talk to himself in channel
12:10:30 <Sgeo> I was curious if the "hacker" was just using notice
12:10:51 <Sgeo> oklopol, you missed the awesome context for that line
12:16:28 <oklopol> umm, so if someone tells me "please pay to our paypal account: paypal@(ourcompany).com", am i supposed to send another email in that address to ask for their paypal account stuff, or are paypal accounts just somehow registered to email addresses
12:16:56 <Taneb> The second one
12:17:28 <Sgeo> Must stop accidentally fuelling paranoid guy's paranoia
12:17:44 <oklopol> thanks, now if only i knew how to actually pay to one
12:18:09 <oklopol> ordering a mail order bride/secretary/assassin
12:18:26 <Taneb> Like in Kill Bill?
12:18:47 <oklopol> i haven't seen kill bill
12:18:52 <Taneb> Neither have I
12:18:54 <Taneb> https://www.paypal-marketing.co.uk/sendmoney/index.htm
12:18:55 <oklopol> i know there's a girl
12:18:59 <Taneb> I think that's it
12:19:07 <oklopol> no i think there's more than a girl
12:19:08 <oklopol> hahaha
12:19:29 <oklopol> so err does anyone know latin here
12:19:35 <Taneb> I know a little
12:19:46 <oklopol> or wait which languages are philias in
12:19:55 <oklopol> i need to know what the term is for people who like to fuck houses
12:20:04 <Taneb> Hippophile
12:20:08 <Taneb> It's Greek
12:20:18 <oklopol> hippo as in... hippo?
12:20:28 <Taneb> Yes
12:20:40 <oklopol> why
12:20:48 <Taneb> Hippopotamus litteraly means horse of the river
12:20:56 <oklopol> ...
12:20:59 <oklopol> not horses
12:21:04 <oklopol> who the fuck would want to fuck a horse
12:21:11 <Taneb> Oh
12:21:15 <Taneb> Misread, sorry
12:21:17 <oklopol> pervert
12:21:17 <Taneb> Hang on
12:21:49 <oklopol> i thought you meant because hippos are really big
12:22:07 <Taneb> oikiaphile
12:25:24 <oklopol> thank you
12:25:43 <fizzie> I think I also misread "horses", but maybe it was just the context when reading the lines backwards.
12:26:17 <oklopol> do i need to make a gaypal account to be able to pay to one?
12:26:29 <Taneb> I don't think so
12:26:34 <fizzie> I don't think so either.
12:26:47 <oklopol> blah
12:26:49 <oklopol> too hard
12:27:13 <fizzie> "How much does this house weigh?" is a traditional obligatory question asked after presentations on all CS student body organized company excursion visit sort of things.
12:27:24 <fizzie> Or "paljonko tämä talo painaa?" in Finnish.
12:27:35 <fizzie> It's some sort of a nonsense-joke.
12:36:29 -!- olsner has quit (Ping timeout: 240 seconds).
12:39:51 <oklopol> how much do houses weigh?
12:39:57 <oklopol> i have absolutely no idea
12:40:08 <Taneb> Depends on their size and material
12:40:14 <oklopol> it does?!?
12:40:38 <oklopol> i've never fucked a house
12:41:16 <oklopol> some people fuck cars but i haven't heard of a house lover
12:44:12 <fizzie> "house lover": About 250,000 results (0.23 seconds)
12:44:21 <fizzie> Rather irrelevant results.
12:44:38 <fizzie> There's a "Tiny House Lover", but I doubt it's about fucking tiny houses.
12:44:43 <fizzie> At least when "fucking" is a verb.
12:44:59 <Taneb> It could be a dwarf oikiaphile
12:45:12 <fizzie> It could be when it's an adverb or something.
12:45:28 <oklopol> i wouldn't fuck a house that was bigger than me
12:45:30 <oklopol> maybe like a doghouse
12:46:05 <fizzie> I've heard that the whole "tiny house" is a sort of a trendy thing; the new iteration of the "minimalism" stuff.
12:46:42 <oklopol> well as long as they are big on the inside
12:46:48 <fizzie> http://www.tumbleweedhouses.com/houses/
12:46:59 <fizzie> I'm not sure there's any that are smaller than you.
12:47:45 <fizzie> Somebody had parked a modern-looking glass-wall on-wheels sauna on a grass field in Otaniemi.
12:48:06 <oklopol> i guess i have to build one myself or i'm gonna be alone forever
12:48:36 <fizzie> Not the old well-known "made out of a car" one -- http://farm2.static.flickr.com/1171/1433982857_c28fbee6fe.jpg -- but a more stylish affair.
12:48:57 <oklopol> that thing
12:49:03 <oklopol> is possibly the best
12:49:13 <fizzie> oklopol: It appeals both to the car fuckers and the house fuckers.
12:49:35 <oklopol> well i don't know which side of me it's appealing to, but i'm very appealed
12:49:41 -!- olsner has joined.
12:49:51 <fizzie> http://www.saunasessions.ca/mobilesaunas/index.php?n=MobileSaunas.Lehti <- some rather more smutty pictures of it, doors open and all.
12:50:43 <oklopol> Kuvaaja ylltt heidt takaluukun kautta. Milt tuntuu?
12:50:58 <fizzie> Yes.
12:54:03 -!- derrik has joined.
13:16:44 <quintopia> finns are weird
13:19:32 -!- cheater_ has quit (Ping timeout: 255 seconds).
13:20:01 -!- copumpkin has joined.
13:20:02 -!- copumpkin has quit (Changing host).
13:20:02 -!- copumpkin has joined.
13:50:09 <Taneb> Now to wait 12-24 working days!
13:54:17 -!- Lymee has joined.
14:03:53 -!- immibis2 has joined.
14:03:54 -!- immibis has quit (Read error: Connection reset by peer).
14:09:22 -!- immibis2 has quit (Ping timeout: 246 seconds).
14:11:25 <Taneb> brb
14:11:35 -!- Taneb has changed nick to TanebIsAWay47.
14:14:18 <quintopia> what is a cirno-chan
14:14:57 <quintopia> i know what a cirno is...she is stupidest
14:16:18 -!- TanebIsAWay47 has quit (Ping timeout: 260 seconds).
14:29:14 -!- invariable has joined.
14:33:58 -!- TeruFSX has joined.
14:36:22 -!- lament has joined.
14:38:50 -!- MigoMipo has quit (Read error: Connection reset by peer).
14:39:26 -!- olsner has quit (Quit: Leaving).
14:49:25 <Sgeo> I found an answer: The library books will be Kindle format, so I still wouldn't be able to purchase DRM ebooks from other sellers
14:51:42 <itidus20> so I just had another idea
14:52:54 <itidus20> this ones sort of playful and hopefully fun
14:54:12 <itidus20> There is a genre of video games about creating. Crayon physics, MineCraft, Terraria, Lemmings, Sim City.. i don't have an exhaustive list
14:58:41 <itidus20> just as I typed this I looked in wikipedia on SimCity and found an amusing comment "In Space Quest IV, in the Software Excess Store, a game called Sim Sim is available. It is described as a "simulated simulator specially designed for creating simulated simulators" and that "you can create a simulated environment in which you can create any simulated environment you want"."
15:05:47 -!- Nisstyre has joined.
15:05:47 -!- Nisstyre has quit (Excess Flood).
15:06:31 -!- Nisstyre has joined.
15:07:11 -!- Taneb has joined.
15:07:24 <Taneb> Hello
15:07:34 <itidus20> wow... .. my creative juices are really flowing now
15:08:04 <Taneb> In what way?
15:08:27 <itidus20> i'll go make a coffee and return with an answer of this fucking sweet idea i just had
15:08:35 <Taneb> Write it down first
15:08:42 <Taneb> So you don't forget
15:08:49 <oklopol> you can't forget an idea
15:12:42 <itidus20> wow .. oklo is right
15:12:45 <itidus20> anyway ok
15:12:50 <itidus20> back with coffee
15:13:02 <Taneb> Idea?
15:13:08 <itidus20> the idea is directed towards game development.. but let me explain in the context of say, visual basic
15:13:24 <itidus20> suppose you are editing a visual basic thing right?
15:13:31 <Taneb> Okay
15:13:57 <itidus20> you make a form.. you throw some buttons on it, ok?
15:14:05 <Taneb> Okay
15:14:15 <itidus20> then you "run" it.. following so far?
15:14:19 <Taneb> Yeah
15:14:21 <Taneb> Hang on
15:14:30 <Taneb> Am I supposed to be doing this as you talk
15:14:35 <itidus20> hahahaha no no
15:14:38 <itidus20> only in your head
15:14:43 <Taneb> Okay
15:14:52 <itidus20> now, what happens if you click on one of these buttons?
15:15:00 <Taneb> Not much
15:15:18 <itidus20> essentially nothing, right?
15:15:23 <Taneb> Yeah
15:15:55 -!- MSleep has changed nick to MDude.
15:16:01 <itidus20> now, my idea is... that.. if you right click on one of these buttons... a box pops up for you to enter a script on how to react to a right button click
15:16:34 <itidus20> oops i mean left click i think
15:17:27 <itidus20> or... (and now we are reminded of a spell checker) whether it should ignore the right click
15:17:44 <itidus20> ^left click
15:19:03 <itidus20> so basically, reacting to events by prompting for some code of how to react to the event
15:19:17 -!- BeholdMyGlory has quit (Remote host closed the connection).
15:19:21 <Taneb> So like,
15:19:21 <itidus20> or perhaps some kind of dialog box with checkboxes
15:19:40 <Taneb> Interesting
15:20:14 <itidus20> yeah.. although some crazy guy out there is probably already doing it, what matters is that it's low key and we haven't really heard ofit
15:21:27 <itidus20> maybe it's already being done.. but it probably still exists only in white papers and expensive apps
15:21:55 <itidus20> but i've never heard of it
15:22:40 <itidus20> ok so.. suppose theres a game right?
15:22:45 -!- Taneb has quit (Read error: Connection reset by peer).
15:23:26 <itidus20> ok so.. suppose theres a game right? now.. when 2 objects in the game collide.. it could prompt for you to create an event handler (either a script or a dialog box with checkboxes etc)
15:23:37 <itidus20> (i know he's gone)
15:25:23 -!- soupe has joined.
15:29:10 <oklopol> i like the idea
15:29:59 <oklopol> but maybe you could have something like ctrl+whatever = prompt for what to do when whatever is done, so you could test and program at the same time, and correct mistakes easily
15:30:11 <oklopol> but yeah i would certainly like to do gui programming that way
15:30:20 -!- soupe has quit (Quit: ~{AtlanTis-Script}~ par Jack Disponible sur http://Atlantisteam.xooit.fr).
15:30:32 <itidus20> oklopol: hmm so you mean like a toggle :D
15:30:35 -!- soupe has joined.
15:30:46 -!- soupe has left.
15:30:55 <itidus20> oh maybe ctrl + foo would be better
15:31:05 <itidus20> one of the big problems with this idea is the event flood
15:31:14 <itidus20> and how exactly to filter it
15:31:27 <oklopol> THE MOUSE JUST MOVED TO (620, 39), WOULD YOU LIKE TO ADD AN EVENT FOR THIS
15:31:51 <itidus20> so then i got the idea of being like a spell checker.. the way it lets you ignoer something, or add it to dictionary etc
15:32:22 <itidus20> oklopol: i have a harsh internal critic who expects nothing but the very best ideas
15:32:37 <itidus20> slowly working on my neuroses
15:32:50 <MDude> WOuld it check the mouse at all times, or would it be just specific object checking if the mosue is over them?
15:33:06 -!- olsner has joined.
15:33:34 <MDude> Since even if you wanted an invisible spot that reacts to being hovered over, you could still make that with an invisible object.
15:34:37 <oklopol> itidus20: i think ctrl+whatever mostly solves the event flood problem as well, just press ctrl just before whatever event you want to catch
15:34:41 -!- Taneb has joined.
15:34:47 <oklopol> plus what MDude said
15:35:35 <MDude> It would probably be nice to have a timer so you can have things just perform an action periodically.
15:35:36 <oklopol> i have a harsh internal critic that usually tells me i suck and shouldn't even try when i try to solve a problem
15:36:26 <Taneb> Sorry I lost connection
15:39:12 -!- sebbu2 has changed nick to sebbu.
15:41:41 <lament> oklopol: you suck
15:43:43 <itidus20> MDude: well good point.. it could be configured to look for "mouse over object"
15:43:49 <itidus20> rather than "mouse at x,y"
15:44:13 <itidus20> because the kinds of events that it catches are supposed to be generalized ones
15:44:56 <itidus20> Taneb: ill pastebin what you missed
15:45:05 <Taneb> No need
15:45:07 <Taneb> I read the log
15:45:11 <itidus20> oh ahh ok
15:45:25 <itidus20> so nice little idea i had eh
15:46:14 <itidus20> one benefit is you don't have to "think" of which events will occur
15:46:19 <itidus20> only have to wait for them
15:46:28 <itidus20> that would seem to be the idea
15:46:33 <oklopol> sorry *external
15:47:09 <itidus20> MDude: hmm the details are sketchy
15:47:23 <itidus20> the seed of the idea was..
15:47:49 <itidus20> "<itidus20> There is a genre of video games about creating. Crayon physics, MineCraft, Terraria, Lemmings, Sim City.. i don't have an exhaustive list"
15:48:02 <itidus20> <itidus20> just as I typed this I looked in wikipedia on SimCity and found an amusing comment "In Space Quest IV, in the Software Excess Store, a game called Sim Sim is available. It is described as a "simulated simulator specially designed for creating simulated simulators" and that "you can create a simulated environment in which you can create any simulated environment you want"."
15:48:31 <itidus20> now with all these games about creating i thought, what about if you had a game about creating that could bootstrap itself.
15:49:09 <itidus20> I.... suppose thats what secondlife does >.<
15:49:21 <MDude> Well not really.
15:49:24 <itidus20> but secondlife doesn't really do it in a pure way
15:49:26 <itidus20> hehehe
15:49:31 <itidus20> MDude: thanks
15:49:43 <itidus20> so this is oneupmanship on secondlife
15:49:56 <MDude> It's not like you can script a little room with avatars in it.
15:50:06 <itidus20> yeah.. this is like secondlife++
15:50:27 <itidus20> minecraft was on my mind when i thought of it
15:50:49 <itidus20> but secondlife is also related in that people sort of make stuff in the game
15:51:22 <MDude> I was actually tihnking of WarioWare: D.I.Y.
15:51:26 <Taneb> g2g
15:51:33 <itidus20> ya see... i downloaded a whole bunch of game makers the other day
15:51:47 <itidus20> and so i have their limitations in my mind
15:51:53 <itidus20> cool.. i haven't tried warioware
15:51:59 <itidus20> i have heard of it though
15:52:15 <MDude> I didn't know there were that many.
15:52:16 <itidus20> i may have subconciously got the idea from warioware
15:52:38 <MDude> The scripting in it is a bit simple.
15:52:59 <MDude> Since it's made for making games that only last a few seconds.
15:53:34 <itidus20> GameMaker, M.U.G.E.N, IndieGame-Maker, RPGMaker2003, FighterMaker 95, FighterMaker 2002, Construct, Construct 2
15:53:57 <itidus20> most of them are by ASCII/Enterbrain
15:54:11 <itidus20> with dodgy levels of legality
15:54:42 <itidus20> oh and I downloaded BYOB
15:55:00 <MDude> Build Your Own Bear?
15:55:48 <itidus20> Build your own blocks
15:56:00 <itidus20> someone here mentioned it to me
15:56:03 -!- Taneb has quit (Ping timeout: 260 seconds).
15:57:21 <itidus20> So yeah.. I was thinking, what if I could build the game from within the game
15:57:22 -!- Taneb has joined.
15:57:52 <Taneb> Back
15:57:52 <itidus20> It wouldn't surprise me if whatever you see in warioware is a hint at how nintendo operates internally
15:58:23 <itidus20> Taneb: back for your g2g?
15:58:31 <Taneb> Indeed
15:58:41 <Taneb> I sorta have g2g and brb backward in my mind
15:58:51 <itidus20> oh now im confused
15:59:11 <Taneb> Like, to me, a g2g is shorter than a brb
15:59:13 <oklopol> i used to play with games factory
15:59:30 <Taneb> I tried to learn Inform 7
15:59:57 -!- Nisstyre has quit (Ping timeout: 252 seconds).
16:00:00 <oklopol> the nice thing about games factory is you don't need to learn it
16:00:16 <itidus20> So I stole indie game maker
16:00:18 <oklopol> you just have to not be a blind retard
16:00:19 <itidus20> i admit it
16:00:33 <itidus20> but i had to work hard at it
16:00:44 -!- Taneb has quit (Read error: Connection reset by peer).
16:01:06 <itidus20> oklopol: i should get that too then if its free
16:01:13 -!- Taneb has joined.
16:01:33 <oklopol> i'm not sure i'd enjoy it as much nowadays
16:01:35 <Taneb> I really need a better internet connection
16:01:38 <oklopol> making that sorta games i mean
16:02:07 <oklopol> you can't really do anything that interesting with those things
16:02:54 <itidus20> so, I have a big ego.. (always an awkward statement) .. but i do.. so I like to think up these grandoise ideas
16:03:00 <itidus20> i like to keep ahead of the game
16:03:43 <itidus20> theres this new phenomenon in game AI called behaviour trees someone recently told me about
16:04:15 <oklopol> my programming related ideas are usually so gradoise they could never actually be implemented
16:04:34 <oklopol> and what are behavior trees
16:04:54 <itidus20> uhmm.. sort of a tree with scripts attached to it
16:05:32 <MDude> Is it basically case statements within case statements?
16:05:55 <itidus20> i don't know much about them... its more the structure which makes them special
16:06:16 <oklopol> to me, behavior tree sounds like a fancy way to say prescripted stuff with a few branches
16:06:16 -!- zzo38 has joined.
16:06:19 <itidus20> MDude: apparently they can be linked together in a useful way to build up complex behaviours
16:07:22 <itidus20> i dunno what they are exactly
16:07:23 <MDude> SOunds a bit like a more controlled version of subsumption then.
16:08:50 <itidus20> anyway, i am great at independant discovery
16:09:08 <itidus20> but I can't seem to actually think of anything which hasn't been thought of before
16:09:17 <MDude> That's fine, really.
16:09:46 <itidus20> I just have a 1% divergence from how everyone else would do it
16:10:12 <MDude> Well sometimes that small divergance can make a big difference.
16:10:28 <itidus20> so its a bitter moment whenever i google an idea i got to find out who else has it
16:10:35 <Taneb> But that's chaos theory
16:10:44 <oklopol> have you considered having more detailed ideas
16:10:48 <MDude> Also, form what I know, msot experts are too concened with purity to even want to understand more than one method.
16:10:58 <oklopol> specific i mean
16:10:59 <zzo38> itidus20: I have heard that being called the "Bob Proffitt Principle"
16:11:11 <MDude> Not really chaos.
16:11:34 <MDude> Well, maybe.
16:11:57 <MDude> If you scale up data structures enough, the problems with them tend to compound themselves a lot.
16:12:25 <MDude> It depends onw hat you call a small difference, I guess.
16:12:27 <itidus20> yeah.. ideas are like trees a bit.. so .. when i get independant discoveries its like passing checkpoints
16:12:30 -!- olsner has quit (Remote host closed the connection).
16:12:34 <itidus20> telling me that i'm on the right path
16:13:32 <oklopol> great
16:13:40 <itidus20> by independant discovery i mean something i thought up on my own that someone else has gone to the effort of writing about on the web
16:13:48 <zzo38> And I too have sometimes came up with ideas similar to others that I did not know of yet.
16:15:16 <oklopol> most of my ideas are unprecedented
16:15:24 <oklopol> because they are so great no one else could've come up with them
16:15:29 <Taneb> Most of my ideas are stupid
16:15:34 <Taneb> And probably been done before
16:16:03 <zzo38> I have different kind of ideas. Some are good and some are stupid, some are new, some are independent but same as others, some are very similar to others I don't know of but is still a bit different.
16:16:29 <itidus20> yeah.. theres always a kind of unique tack you can have on an idea that the other person didn't
16:17:46 -!- olsner has joined.
16:19:44 <itidus20> theres always someone who would either... love to be your boss and control your genius.. or who would like to have you serving them at mcdonalds
16:20:48 <itidus20> uh.. which is good cos it balances things
16:21:05 -!- Nisstyre has joined.
16:23:16 -!- derrik has quit (Ping timeout: 264 seconds).
16:23:29 -!- pikhq has quit (Ping timeout: 240 seconds).
16:23:34 -!- pikhq has joined.
16:23:57 <itidus20> talk is cheap.. it all comes down to whether i can deliver
16:24:18 <oklopol> what do you mean
16:24:36 <itidus20> Well.. if i didnt get any ideas then this speech of mine would be kind of hollow
16:25:19 <oklopol> if you were talking about an idea of yours but it didn't exist, then yeah i suppose that would be kind of hollow
16:25:52 <itidus20> i independantly discovered the idea of fairy chess pieces
16:26:05 <oklopol> but you could also talk about something else and have neither ideas nor hollowness
16:26:07 <oklopol> and what are those
16:26:18 <itidus20> non-standard chess pieces
16:26:31 <oklopol> you had the idea of adding other pieces to chess?
16:26:40 <itidus20> yup
16:26:44 <oklopol> yeah i liked doing that when i was 7
16:26:56 <oklopol> fun little activity
16:27:13 <itidus20> i worked out that each piece was defined by vectors
16:27:24 <oklopol> defined by vectors?
16:27:32 <oklopol> you mean a set of allowed movements?
16:27:36 <itidus20> yup
16:27:52 <itidus20> and i realized on my own that i could define a set of alternative allowed movements
16:27:57 <zzo38> Some of fairy chess pieces are more complicated than that, though
16:28:03 <itidus20> based on these vectors
16:28:15 <oklopol> i probably didn't know the term vector when i was seven
16:28:31 <itidus20> i created a set of rules sufficient to explain all the pieces in regular chess
16:28:39 <oklopol> i had to come up with the idea independently
16:29:00 <oklopol> you made some kind of formal language in which you described the rules or what?
16:29:09 <oklopol> i liked doing that stuff in elementary school
16:29:14 <itidus20> uhmm.. well i used a spreadsheet
16:29:32 <itidus20> and found the variables necessary to describe a piece
16:29:51 <oklopol> isn't that called learning the rules of chess
16:30:02 <oklopol> i learned them when i was 4
16:30:11 <itidus20> :P
16:30:17 <zzo38> There are many classes of chess pieces and some combine different ones, some in normal chess, or in others. Knight = (1,2) leaper. Rook = (1,0) rider. Queen = Rook + Bishop.
16:30:38 * oklopol tries to set a record in being an annoying asshole
16:30:40 <itidus20> anyway.. i was quite happy with my achievement.. but kinda "oh..." when i actually googled it
16:30:45 <oklopol> *fpr
16:30:47 <oklopol> *for
16:31:00 <itidus20> but... chess for me.. itself.. is not enough
16:31:15 <itidus20> i never wanted to play such a chess..
16:31:32 <itidus20> i want to make it realtime
16:31:52 <itidus20> and not just by using timers on a chessboard
16:32:11 <itidus20> it needs another layer of complexity
16:32:16 <oklopol> "<itidus20> but... chess for me.. itself.. is not enough" <<< maybe because it sucks ass?
16:32:30 <oklopol> just a guess
16:32:56 <itidus20> i noticed that those games called tactical rpgs are going in htat direction kinda
16:34:29 <lament> chess is kinda like go, but sucky
16:35:21 <oklopol> taking an abstract thing like chess and making it into something realtime is the opposite of an intelligent idea, chess is already way too complicated to be interesting, why would you complicate it further
16:35:34 <Taneb> And it's been done
16:35:42 <Taneb> As I said last time you brought this up
16:35:45 <oklopol> yeah we've all read harry potter
16:35:48 <itidus20> another idea i had is a piece whose movement space is defined by axis-aligned lines intersecting the enemy pieces
16:36:03 <oklopol> lemme try to understand that
16:36:35 <oklopol> so err you move like a queen, but starting from any enemy piece you like?
16:36:48 <itidus20> i worded it kinda bad
16:37:02 <itidus20> suppose that you drew a vertical and horizontal line through each enemy piece
16:37:06 <itidus20> crossing the board
16:37:07 <oklopol> okay
16:37:14 <itidus20> and that.. these lines formed walls
16:37:18 <oklopol> oaky
16:37:39 <itidus20> and a piece who could move anywhere within the 'rooms' created by these walls
16:37:47 <oklopol> lament: is chess really like go?
16:37:57 <oklopol> because i'm not sure i want to learn go if chess is anything like it
16:39:25 <itidus20> so 1 enemy piece in the middle of the board would divide the board into 4 rooms
16:40:03 <itidus20> and these other pieces could teleport around within these 'rooms'
16:40:10 <zzo38> Chess has some similarities to go but it is a different game with many differences
16:40:24 <lament> oklopol: it's like go in that you have to use the brain a lot to win
16:40:41 <itidus20> its an idea i had when waiting at a busstop feeling overtired
16:40:44 <lament> and there's a board and pieces and turns
16:40:56 <oklopol> i guess i just never saw how one could apply the brain to chess
16:41:01 <zzo38> (Go does not even have a well-defined ending condition, actually. But once you know when to end, you can easily count points who wins is well defined)
16:41:11 <fizzie> oklopol: You just beat your opponents with the chessboard, right?
16:41:17 <lament> oklopol: it's called 'minimax'
16:41:24 <lament> (in both go and chess)
16:41:31 <oklopol> lament: i can't do that in my head
16:41:37 <oklopol> not to any relevant depth
16:41:55 <zzo38> Have you learned any of the Gipf Project games?
16:42:16 <lament> oklopol: relevant depth = deeper than your opponent
16:42:22 <lament> so just find a stupid enough opponent
16:42:28 <lament> which may be difficult of course
16:42:30 <oklopol> in go, i never found it useful to minimax
16:42:37 <oklopol> but then again i suck at it so maybe i should.
16:43:46 <oklopol> i suppose if you were really really smart you could formulate some kind of plans in chess and it might become interesting
16:44:22 <itidus20> chess is a trivial subset of reality though ------ or... is.. it? :P
16:44:25 <oklopol> but i'm hundreds and hundreds of hours away from that and since playing is about as much fun as mental calculation, i don't really want to spend those hours
16:44:53 <Taneb> I like chess
16:45:04 <oklopol> maybe you're just really really smart
16:45:11 <lament> i hate chess and go
16:45:17 <lament> too much thinking
16:45:21 <Taneb> I never figured out go
16:45:25 <itidus20> turn coal into gold if you want a tough game :P
16:45:26 <lament> and too competitive
16:45:32 <lament> it's all about proving you're better than your opponent
16:45:55 <oklopol> i like competing but only if i can cheat
16:46:02 <zzo38> There are also variants that involve chance and/or hidden information too
16:47:06 <oklopol> lament: what do you like?
16:47:48 * Sgeo likes Go, but I'm bad at it
16:50:05 <oklopol> i've only played go against a computer on easy
16:50:11 <oklopol> but that was kind of pointless
16:50:18 <oklopol> because it was way too hard
16:52:56 <lament> oklopol: lying on a couch doing nothing
16:57:01 <oklopol> ditto
16:57:25 <oklopol> one of my favorites
16:57:38 <Taneb> I was never much good at the endgame
16:58:57 <oklopol> hey ditto again
16:59:32 <oklopol> but what i'm really bad at is the rest of the game, especially the endgame and the other parts
17:00:34 <zzo38> I also know Xiangqi and Shogi.
17:01:12 <Taneb> I know Rummy
17:02:05 * Sgeo likes Barbu
17:02:14 <Sgeo> I'm not good at it, but I like it
17:02:28 <Sgeo> This may be a common theme with me
17:02:56 <zzo38> Do you know Mahjong?
17:03:02 <Sgeo> No
17:06:18 <zzo38> Mahjong is played with 4 players. Each player gets 13 tiles. On your turn you pick one from the wall, so you have 14. If you have a complete hand (four sets of three tiles, either a sequence or three of a kind, and one pair) you win, and can count points. Otherwise you must discard one.
17:06:46 <Taneb> So it's like... Rummy mixed with... breakout?
17:07:01 <zzo38> Any time one is discarded, another player can pick it up to make a set or complete their hand. Sequences can be taken only from the previous player unless you win. If you make a set by taking a discarded tile, you must reveal it.
17:07:18 <zzo38> If you have three of a kind and one more tile, you can make "kan" and pick up a spare tile.
17:07:46 <zzo38> Taneb: It is a bit like Rummy. But the tiles are really just used like cards. Nothing to do with breakout.
17:08:13 <zzo38> But there are many significant differences from Rummy.
17:08:25 <Taneb> Just like with baseball.
17:08:58 <zzo38> Is baseball anything like rummy? I don't think so.
17:09:08 <Taneb> There are many significant differences
17:09:12 <zzo38> Baseball is played with ball, not with cards!
17:09:34 <Taneb> But if you imagine the cards are like players
17:09:58 <Taneb> It makes perfect sense
17:10:32 <zzo38> I don't know how to play baseball but still it doesn't seem like the cards are like players to me
17:10:49 <zzo38> Also in mahjong, at the start you flip a dora tile. If you have the next number after that one, and you win, then you earn extra points.
17:11:24 <zzo38> If you win by self draw, all other three players pay you. If you win by someone else's discard, they have to pay you three times and the other players pay you nothing.
17:12:02 <zzo38> If you want, you can bet 1000 points to call riichi. If you called riichi, then you cannot adjust your hand anymore. But, if you win, you win extra points.
17:12:35 <zzo38> You also earn points depending on the patterns of your hand, such as all concealed, no sequences, all same suit, etc
17:13:49 -!- derrik has joined.
17:23:26 <zzo38> Or, maybe, you want to play pokemon card.
17:23:44 -!- myndzi\ has joined.
17:27:00 -!- myndzi has quit (Ping timeout: 276 seconds).
17:27:29 -!- oerjan has joined.
17:33:45 <oerjan> 06:55:30 <quintopia> what is a cirno-chan
17:33:45 <oerjan> 06:56:09 <quintopia> i know what a cirno is...she is stupidest
17:34:05 <oerjan> i think -chan is the female japanese honorific suffix similar to -san
17:34:21 <Taneb> I thought chan is diminuative
17:34:27 <Taneb> to emphasize cuteness
17:34:41 <oerjan> hm maybe. or perhaps both. pikhq?
17:36:52 <fizzie> While we're waiting for a proper human reply, here's the MACHINE GOD answer from 'pedia: "Chan (ちゃん?) is a diminutive suffix; it expresses that the speaker finds a person endearing. Thus, using chan with a superior's name would be condescending and rude. In general, chan is used for babies, young children, grandparents and teenage girls. It may also be used towards cute animals, lovers, close friends, or any youthful woman."
17:37:00 <oerjan> "In general, chan is used for babies, young children, grandparents and teenage girls. It may also be used towards cute animals, lovers, close friends, or any youthful woman.
17:37:06 <fizzie> TOO LATE
17:37:08 <oerjan> darn
17:37:21 <Taneb> So, I was rightish?
17:37:28 <oerjan> NEVAR
17:37:37 <oerjan> well, POSSIBLY
17:39:26 <pikhq> Taneb: Pretty much.
17:39:32 <oklopol> and certain numbers
17:39:38 <oklopol> erm
17:39:52 <oklopol> to what fizzie said, seems my pagedown key is wrongative atm
17:45:15 <oerjan> the wrongative case
17:46:24 <Taneb> The wrongative of servus, -i is serves
17:49:49 <oerjan> serves you wrong?
17:50:05 <Taneb> Quite.
17:53:39 <Taneb> Imagine something like Minecraft as a text adventure
17:54:24 <Taneb> >You are on a beach. You can see far out to see. To the north, there is a forest. To the east, there is a cave.
17:54:29 <Taneb> >>North
17:54:35 <zzo38> Make up like a text adventure
17:55:29 <Taneb> What?
18:01:51 <Taneb> I don't recognize that, try "help" for help
18:01:53 <zzo38> I like text adventure game
18:02:12 <zzo38> I also like to use the rule of "overmate" when playing pokemon card
18:08:04 -!- CakeProphet has quit (Ping timeout: 246 seconds).
18:09:34 -!- CakeProphet has joined.
18:09:34 -!- CakeProphet has quit (Changing host).
18:09:34 -!- CakeProphet has joined.
18:13:36 <zzo38> Can you make a chess variant that as well as the normal chess pieces, there are also hourglasses (with different lengths of time) movable on the board?
18:14:19 -!- MigoMipo has joined.
18:14:31 <Taneb> Possibly
18:14:56 <Taneb> The hourglasses move like queens until they run out, when they are taken off the board
18:15:29 <Taneb> Checking your opponent turns all their hourglasses over
18:15:36 <Taneb> With that idea I dissappear
18:15:41 -!- Taneb has quit (Quit: He's a big quitter he is.).
18:21:05 -!- CakeProphet has quit (Ping timeout: 240 seconds).
18:23:14 -!- CakeProphet has joined.
18:23:14 -!- CakeProphet has quit (Changing host).
18:23:14 -!- CakeProphet has joined.
18:28:06 -!- Taneb has joined.
18:28:38 <Taneb> That vowels language that has been mysteriously added to the language list from an anonymous user seems kind of boring
18:32:41 <oklopol> how do you add a language mysteriously?
18:34:05 <oerjan> you need to follow the untrodden path of the lost elders
18:34:25 <MDude> Or add a link that goes to a blank page.
18:35:53 -!- Taneb has quit (Ping timeout: 260 seconds).
18:37:22 -!- pumpkin has joined.
18:37:56 -!- pumpkin has changed nick to copumpkin_.
18:38:05 -!- CakeProphet has quit (Ping timeout: 258 seconds).
18:40:00 -!- copumpkin has quit (Ping timeout: 258 seconds).
18:40:08 -!- copumpkin_ has changed nick to copumpkin.
18:52:39 -!- derrik has quit (Quit: gone).
18:57:29 -!- pumpkin has joined.
18:58:28 -!- pikhq_ has joined.
18:58:40 -!- pikhq has quit (Ping timeout: 264 seconds).
18:59:16 -!- copumpkin has quit (Ping timeout: 264 seconds).
19:17:39 -!- pikhq has joined.
19:19:03 -!- pikhq_ has quit (Ping timeout: 252 seconds).
19:19:23 -!- monqy has joined.
19:23:28 -!- copumpkin has joined.
19:25:28 -!- pumpkin has quit (Ping timeout: 260 seconds).
19:44:21 -!- evincar has joined.
19:47:11 -!- evincar has quit (Client Quit).
20:03:30 -!- BeholdMyGlory has joined.
20:03:33 -!- pumpkin has joined.
20:06:54 -!- copumpkin has quit (Ping timeout: 250 seconds).
20:08:43 <oklopol> how do you add a language mysteriously?
20:08:46 <oklopol> ...
20:08:49 <oklopol> oooooopsie
20:09:51 <fizzie> How do you shot web, isn't that what they ask?
20:19:02 -!- Taneb has joined.
20:19:19 <Taneb> Hello
20:20:12 <Taneb> Who's talking?
20:20:28 <fizzie> You.
20:20:33 <oklopol> fizzie as well
20:20:45 <fizzie> And okokokoklopol.
20:20:56 <Taneb> Crazy
20:20:59 <oklopol> and another line from fizzie
20:21:07 <oklopol> Taneb joining in with an insult
20:22:15 <fizzie> You sound like one of those sports announcers.
20:29:08 <zzo38> Is there any program I can learn how to make compiling rulebooks like Inform 7 does?
20:30:42 <Taneb> Not as far as I know
20:40:06 <zzo38> Do you know anything about compiling rulebooks like that?
20:40:24 <Taneb> No
20:40:35 <Taneb> I have a vague idea how they work
20:41:45 <zzo38> How much idea do you have?
20:41:57 <Taneb> Very little
20:42:11 <Taneb> They're a series of translations
20:44:10 <Taneb> Like "Go north" becomes "change state to current state(x), current state(y)+1
20:44:41 <zzo38> There are also procedural rulebooks (a feature which is marked as deprecated)
20:50:02 <zzo38> I read the document, you can use procedural rulebooks to have conditions to ignore or override other rules, and so on.
20:50:07 <zzo38> How would such things be implemented?
20:50:30 <Taneb> I do not know
20:51:10 <oklopol> are you asking how to make a programming language
20:51:23 <oklopol> that's not very hard, but it's rather hard to explain how to do it
20:53:30 <zzo38> Not quite. I am asking about other specific things, such as procedural rulebooks. And, some way of converting them to imperative form.
20:54:00 <oerjan> i would imagine zzo38 knows how to make a programming language...
20:55:01 <zzo38> I know how to make programming language, in various ways. I even have books about it. But it is not quite what I am asking.
20:55:06 <oerjan> otherwise large parts of the wiki would seem rather unexplainable.
20:55:15 <zzo38> (I even invented many programming languages for various uses)
20:57:38 <oklopol> well yeah i guess if you want to make a rule programming language in a specific genre, it's not that obvious how to do it.
21:00:14 <zzo38> That is why I ask.
21:03:20 <Taneb> Is there a word for a language that is of a lower computational class to another, but has more features such as networking or file I/O
21:03:21 <zzo38> I would like to figure out how to make one that has not only rulebooks but other features too, and also can be used as a module in a larger program with other programming languages, and has templates and preprocessor, and is also a format that TeXnicard can produce as output.
21:04:45 <oerjan> Taneb: SQL
21:04:48 * oerjan runs away
21:05:04 <Taneb> That's an example rather than a word
21:21:13 <lament> the word is 'fragnlium'
21:21:25 <Taneb> 'Tis a good word
21:27:35 -!- copumpkin has joined.
21:29:13 -!- pumpkin has quit (Ping timeout: 252 seconds).
21:38:54 -!- BeholdMyGlory has quit (Remote host closed the connection).
21:47:26 -!- Taneb has quit (Read error: Connection reset by peer).
22:24:40 -!- pumpkin has joined.
22:27:28 -!- copumpkin has quit (Ping timeout: 264 seconds).
22:29:27 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:34:40 -!- copumpkin has joined.
22:37:15 -!- pumpkin has quit (Ping timeout: 276 seconds).
23:09:54 <Vorpal> <Taneb> Is there a word for a language that is of a lower computational class to another, but has more features such as networking or file I/O <-- C vs. P'', C is not TC
23:10:05 <Vorpal> no idea about a name for it
23:12:23 <Sgeo> A feature request I made is getting attention
23:12:29 <Sgeo> But... I made it in 2004
23:12:30 <Sgeo> http://sourceforge.net/tracker/?func=detail&atid=353248&aid=930097&group_id=3248
23:13:07 <Vorpal> hah
23:13:59 <oerjan> conclusion: Sgeo lives not only in the past, but sometimes in the future
23:15:26 -!- GreaseMonkey has joined.
23:27:59 -!- oerjan has quit (Quit: Good night).
23:32:32 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:49:59 -!- CakeProphet has joined.
23:50:03 -!- CakeProphet has quit (Changing host).
23:50:03 -!- CakeProphet has joined.
23:59:50 -!- FireFly has quit (Quit: swatted to death).
←2011-07-29 2011-07-30 2011-07-31→ ↑2011 ↑all