←2012-10-19 2012-10-20 2012-10-21→ ↑2012 ↑all
00:05:09 <shachaf> "Therefore if F' is right-Lobachevsky then |Σ| ≅ ℵ₀. By Newton's theorem, if Darboux's criterion applies then I < Γ'. So ζ is conditionally Erdős."
00:05:41 <ion> ok
00:05:50 <shachaf> http://thatsmathematics.com/blog/archives/102
00:08:40 <ion> hah
00:09:04 -!- Nisstyre-laptop has quit (Ping timeout: 246 seconds).
00:15:56 -!- Nisstyre-laptop has joined.
00:39:59 -!- DHeadshot has joined.
00:55:01 <Sgeo> My program needs to run efficiently. My program is running more efficiently than I expect with my algorithm, which is horribly inefficient. My program is giving wrong results some, but not most, of the time.
00:55:47 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:00:18 -!- Vorpal has quit (Ping timeout: 276 seconds).
01:06:21 <Sgeo> Fixed the code to be in line with my mental algorith,
01:06:24 <Sgeo> algorithm
01:06:29 <Sgeo> Getting out of memory errors
01:11:27 -!- DHeadshot has quit (Read error: Connection reset by peer).
01:12:58 <Sgeo> Figured out a new algorithm
01:13:09 <kmc> perhaps bonghits will fix your out of memory errors
01:16:03 * shachaf must be missing something there.
01:19:03 <Gregor> The Looney Tunes Show 1x22 finally gets to Looney Tunes levels of drag.
01:21:21 <kmc> missing what
01:21:26 <kmc> why does Gregor have voice
01:21:32 <kmc> i thought #esoteric was a classless society
01:21:48 <shachaf> kmc: Looks like it's a reference to a git commit involving Radeon?
01:22:20 <kmc> it's a reference to http://www.jerkcity.com/jerkcity490.html
01:22:56 <Gregor> kmc: I have +v because I'm SPECIAL.
01:23:07 <Sgeo> Dangit, it's not fast enough, I think
01:25:25 <Sgeo> It's annoying that using an iterable in Python permanently mutates/consumes it
01:27:51 <kmc> http://goatkcd.com/1123/sfw nsfw
01:29:28 <shachaf> kmc: I've yet to click on any of these links.
01:29:45 <shachaf> I'm vaguely curious what happens to a one-panel comic, but not enough to click.
01:30:09 <kmc> what happens in what sense
01:30:33 <shachaf> I don't really know!
01:30:49 <shachaf> http://blog.ezyang.com/2012/10/duality-for-haskellers/
01:32:23 <kmc> Sgeo: it is annoying; on the other hand, reasoning about space usage would be harder were it not the case, I think
01:33:04 <shachaf> It's already harder with lists in Haskell!
01:33:43 <Sgeo> writing... code... is harder
01:34:13 <Sgeo> I think I may have screwed up my ability to write imperative code.
01:34:53 <kmc> that sucks
01:35:01 <kmc> writing imperative code is an important skill in any language
01:35:27 <elliott> not necessarily any
01:35:47 <kmc> whether it's important depends not on the language but on the problem you're trying to solve
01:36:38 <Sgeo> The problem I'm trying to solve tends to be the language not supporting functional idioms sufficiently
01:36:38 <elliott> that's tautological
01:38:09 <shachaf> Tautologies tend to be.
01:44:00 <kmc> i don't believe you
01:44:26 <kmc> unless you are just doing toy functional programming exercises, you will need imperative style some of the time
01:44:57 <kmc> i like Haskell not because it's OMG HARDCORE PURE FP, but because it actually supports imperative programming in a good way, a way which makes sense to people who understand FP too
01:45:26 <kmc> but you know for every person who understands the IO monad there are 50 beginners talking about how pure the factorial function is and how it's going to destroy imperative programming next year
01:45:30 * kmc semi-coherent rant
01:45:48 <elliott> i don't understand why you are making lots of assumptions about what i meant
01:46:30 <kmc> i'm not assuming
01:46:36 <kmc> i'm ranting off what Sgeo said
01:46:40 <shachaf> Isn't "coalgebroid" a great word?
01:46:46 <kmc> no
01:46:52 <elliott> oh
01:46:56 <elliott> i thought you were replying to my statement
01:47:07 <shachaf> kmc: What about "iggrammatical"?
01:47:09 <kmc> that the only reason he needs imperative programming is "the language not supporting functional idioms sufficiently"
01:47:12 <elliott> anyway I disagree with "<kmc> unless you are just doing toy functional programming exercises, you will need imperative style some of the time", at least philosophically
01:47:28 <kmc> well it is a pragmatic statement, not a philosophical one
01:47:48 <elliott> well i sort of disagree with it pragmatically too
01:47:49 <kmc> see also: FRP still doesn't work
01:47:58 <elliott> there are FRP libs that are mature enough for doing fairly involved stuff
01:48:00 <shachaf> A pragmatist in our midst!
01:48:02 <kmc> well maybe it started working in the past year and nobody told me
01:48:08 <elliott> depends what you mean by "doesn't work"
01:48:09 <Sgeo> kmc, well, I don't have an issue when I need to write imperative code to handle imperative things, it's just imperative code when I know more functional languages have function idioms for those htings
01:48:11 <Sgeo> *things
01:48:15 <elliott> do you know of any major problems with reactive-banana/reactive-banana-wx?
01:48:15 <kmc> ah, i see
01:48:21 <kmc> that makes more snense
01:48:24 <Sgeo> (And I understand those idioms and their use sufficiently well)
01:48:25 <kmc> elliott: no, i haven't used them at all
01:48:29 <elliott> I don't know of any semantic glitches it has, performance seems good...
01:48:38 <kmc> i never tried doing FRP because everyone talked about how half-baked it was
01:48:41 <kmc> but that may be out of date
01:48:42 <elliott> what *doesn't* work is one frp framewotk to rule them all, yet
01:48:44 <elliott> *framework
01:48:50 <elliott> there are tradeoffs still
01:49:04 <Sgeo> Not entirely comfortable with the idea of monad transformers to represent an entire running program's state+everything
01:49:10 <elliott> but, I still think you can write a good amount of stuff without resorting to imperative programming right now
01:49:15 <Sgeo> So more willing to do that stuff imperatively
01:49:19 <shachaf> elliott: You know who's "cool"?
01:50:23 <shachaf> I think part of kmc's point is that "resorting to imperative programming" assumes that "imperative" is always the worst way to express something.
01:50:33 <shachaf> Whereas in practice it can the clearest way to express your intent.
01:50:47 <shachaf> (But I'm not kmc so I shouldn't say what his point is.)
01:51:39 * elliott likes to be militantly anti-imperative as a general policy; that means I have to try hard to show to myself that imperative programming *isn't* the best way to express any given thing.
01:51:44 <elliott> Which is good, because the results are sometimes insightful.
01:51:48 <elliott> (Okay, only occasionally.)
01:52:30 <shachaf> elliott: Right, sometimes "your intent" is the thing that's misguided, and learning to "figure out what your intent really is" is one of the values of learning Haskell and such things.
01:52:40 <shachaf> But sometimes not.
01:53:41 <kmc> i think "functional" and "imperative" is a bad choice of terms
01:53:45 <elliott> shachaf: I think imperative programming often seems like the right choice just because of the baggage of the systems we use (like Unix)... obviously that means it *is* the right choice in practice, but I think it tends to not be inherent to the problem.
01:53:51 <kmc> i think things should be more "denotational"
01:53:56 <elliott> See also: strings as a nearly-useless data type.
01:53:56 <kmc> and maybe "declarative"
01:53:58 <elliott> (Booleans too, to some degree.)
01:54:05 <kmc> imperative programming could be made more denotational and declarative
01:54:07 <elliott> kmc: Conal, is that you?
01:54:12 <kmc> haskell is a small step in that direction
01:54:28 <elliott> I forget if I decided strings have any value.
01:54:30 <elliott> But I think I didn't.
01:54:35 <kmc> @quote stark
01:54:35 <lambdabot> AlanPerlis says: The string is a stark data structure and everywhere it is passed there is much duplication of process. It is a perfect vehicle for hiding information.
01:54:47 <Sgeo> elliott, what's wrong with strings and booleans?
01:55:03 <shachaf> @google boolean blindness
01:55:04 <lambdabot> http://existentialtype.wordpress.com/2011/03/15/boolean-blindness/
01:55:05 <lambdabot> Title: Boolean Blindness « Existential Type
01:55:07 <shachaf> @google string sightlessness
01:55:08 <lambdabot> http://legal-dictionary.thefreedictionary.com/strike+sightless
01:55:08 <lambdabot> Title: strike sightless legal definition of strike sightless. strike sightless synonyms ...
01:55:09 <elliott> Sgeo: The former is useless; the latter is harmless.
01:55:12 <elliott> er.
01:55:14 <elliott> Sgeo: The former is useless; the latter is harmful.
01:55:18 <elliott> Also the former is often harmful too.
01:55:26 <shachaf> elliott: Is [Bool] useless or harmful?
01:55:29 <elliott> http://existentialtype.wordpress.com/2011/03/15/boolean-blindness/ is a good description of the problems with booleans, yes.
01:55:35 <elliott> shachaf: Yarmful.
01:58:02 <elliott> Anyway I guess booleans are better than strings.
01:58:10 <elliott> You can take them as configuration and that's not as bad as it could be.
01:58:12 <elliott> Though it's still bad.
01:58:21 <elliott> And even configuration usually wants its own types.
01:58:43 <shachaf> elliott: I prefer the strings "true" and "false".
01:59:51 <shachaf> kmc: Did you see the lens slides?
01:59:56 <shachaf> Or elliott, or whoever else.
02:00:05 <shachaf> Sgeo: Does Clojure have lenses?
02:00:08 -!- Nisstyre-laptop has quit (Quit: Leaving).
02:00:28 <elliott> What slides?
02:00:46 <Sgeo> Erm. I wanted to write a lens library once. But whenever I try to describe them to #clojure, they don't see the value.
02:00:48 <shachaf> https://groups.google.com/d/msg/bahaskell/YifnIpEu2OY/kddoyuvdCOMJ
02:01:18 <shachaf> Oops.
02:01:28 <shachaf> Er, no oops.
02:01:31 <shachaf> noops
02:01:45 <elliott> no operations
02:01:58 <shachaf> no ooperations
02:02:28 <shachaf> Phantom_____Hoover: I define a new language as follows:
02:02:40 <shachaf> A program is composed of the character < > - + [ ] , .
02:02:44 <shachaf> Any other character is illegal.
02:02:52 <shachaf> The characters < > - + [ ] , . are all nops.
02:08:53 <Jafet> An interpreter in your new language: ++[->.<<[-,<+>++]]
02:09:01 <Jafet> A quine:
02:09:34 -!- copumpkin has quit (Ping timeout: 240 seconds).
02:09:59 <shachaf> Jafet: I guess I should introduce v2.0 of the language.
02:10:06 -!- copumpkin has joined.
02:10:08 <shachaf> v2.0 disallows the []s to be balanced.
02:11:46 <elliott> <shachaf> A program is composed of the character < > - + [ ] , .
02:11:50 <elliott> that's not a character
02:11:50 <Jafet> Is my quine legal in v2.0?
02:12:22 <Jafet> I met < > - + [ ] , . once. Great character.
02:12:50 <shachaf> elliott: It is in UNICODE VERSION 7
02:13:55 <Jafet> They should make a unicode glyph that consists of a table of all unicode glyphs.
02:18:20 <Sgeo> Including itself, obviously.
02:21:03 <zzo38> An idea is programming using the linear logic, with additive conjunction, multiplicative conjunction, additive dusjunction, multiplicative dusjunction, and other stuff like "!" and so on, you can encode intuitionistic logic in linear logic using "!" so perhaps if you have a category, you can make "!" like a comonad for using ordinary functions? (Like you use "Cont" monad in Haskell to make continuations)
02:21:30 <shachaf> zzo38: cmccann in #haskell is all about linear logic, I hear.
02:25:55 -!- Max00355 has quit (Read error: Connection reset by peer).
02:37:22 -!- copumpkin has quit (Ping timeout: 245 seconds).
02:37:56 -!- copumpkin has joined.
02:42:17 -!- augur has quit (Remote host closed the connection).
03:14:42 -!- augur has joined.
03:27:48 <Sgeo> https://www.destroyallsoftware.com/talks/wat
03:27:54 <Sgeo> I'm lolling
03:28:11 <ion> Yeah, that talk is brilliant.
03:32:00 <elliott> pikhq: do you know how wayland+xwayland compares in binary size to x11 right now
03:32:04 <elliott> i have actual reasons for asking this
03:35:27 <ion> I wonder what causes the overhead when running OpenGL programs with Compiz? They run much smoother without compositing. One would think a single extra pass through render-to-texture wouldn’t cause anything noticeable by itself.
03:36:00 <ion> I suppose Wayland is more efficient at that.
03:39:09 -!- ogrom has joined.
03:41:53 <Jafet> Because compiz
03:42:45 <ion> jafet: Another OpenGL compositor on X.org might not have the issue?
03:43:58 <Jafet> Is there any other?
03:44:31 <ion> A hypothetical one
03:44:51 <ion> I.e. are you saying the problem is in Compiz, not X.org?
03:46:41 <Jafet> I don't know. Compiz has many problems.
04:00:57 <zzo38> How do you tell Mozilla to load the entire text first before loading images and CSS?
04:48:36 -!- Nisstyre-laptop has joined.
04:52:58 <kmc> colon colon one y'all
04:53:09 <shachaf> kmc: lolcathost?
04:53:14 <kmc> yessss
04:53:42 <kmc> - if ((request.META['REMOTE_ADDR'] != '')
04:53:42 <kmc> + if ((request.META['REMOTE_ADDR'] not in ('', '::1'))
04:53:56 <shachaf> what if it's
04:54:12 <shachaf> kmc: Did you know you can drop octets from an IP address and it fills them in according to some complicated pattern?
04:54:29 <shachaf> a.b.d -> a.b.0.d
04:55:21 <shachaf> (d can be a number up to 256^2, in which case it also works for c.)
04:55:45 <shachaf> Also you can use 0x or 0 for any octet.
04:58:43 <myndzi> anybody happen to know what a "two-way server" is?
04:59:03 <myndzi> far as i can tell it's an obscure term for either dual core or dual processor
04:59:05 <shachaf> \o/
04:59:09 <shachaf> |O|
04:59:14 <shachaf> How do you do it?
04:59:24 <shachaf> \ o /
05:01:04 <myndzi> ahh, it's offline still
05:01:06 <myndzi> sorry :(
05:05:16 <kmc> yeah people say "four-way SMP" and such
05:05:28 <kmc> it probably does not distinguish dual core and dual socket
05:05:36 <myndzi> mk
05:05:45 <myndzi> i'm pretty sure he meant multi processor specifically
05:05:53 <myndzi> the usage was real weird
05:06:03 <kmc> well in some cases "multi processor" might also include multi core
05:06:06 <myndzi> also apparently if you replace a dual-core system you should get a new dual-core system
05:06:09 <myndzi> :facepalm:
05:06:13 <kmc> ?
05:06:29 <kmc> when you first said "two-way server" i thought of http://www.supermicro.com/products/nfo/1UTwin.cfm
05:06:53 <myndzi> ah, just editing some technical articles
05:06:59 <shachaf> m o m
05:07:00 <kmc> which is two independent servers in a 1U case
05:07:06 <shachaf> /o/
05:07:08 <myndzi> unfortunately the guy doing the writing here ... apparently doesn't know jack
05:07:11 <shachaf> How do you do it, myndzi?
05:07:11 <kmc> and they also have 4 servers in a 2U case
05:07:17 <myndzi> like i said.. it's offline, sorry
05:07:24 <shachaf> Oh, that's what you meant.
05:07:25 <myndzi> kmc: thanks :)
05:07:32 <shachaf> :-(
05:07:35 <myndzi> shachaf: yeah, my work comp and laptop are up atm
05:07:36 <myndzi> lol
05:07:39 <myndzi> but not my home desktop
05:07:45 <shachaf> hesktop
05:10:18 <kmc> that's not quite as dense as blades, but it's probably a better deal if you only need a few of them
05:13:33 <kmc> according to smartctl, my hard drive has spent 20 billion years with the head flying
05:14:44 <shachaf> That's a lot of years.
05:14:56 <shachaf> 20 billion years isn't cool, though.
05:15:18 <kmc> what about 20 trillion years?
05:15:23 <shachaf> Now *that's* cool.
05:15:28 <kmc> apparently seagate drives just report nonsense to smartctl for fun
05:15:29 <kmc> http://www.users.on.net/~fzabkar/HDD/Seagate_SER_RRER_HEC.html
05:15:40 <shachaf> I,I 32-bit integers aren't cool. You know what's cool? 42-bit integers.
05:16:48 <pikhq> Bah. N-bit integers where N is a non-integer computable is cool.
05:17:04 <elliott> kmc: i think you could get a good 3 to 4 rants out of this tweet https://twitter.com/ryah/status/258634435161899009
05:17:19 <elliott> good to know node.js has such a sound engineer behind it
05:17:30 -!- monqy has joined.
05:17:36 <elliott> (haha @ implication that "C/C++" (haha @ that too) isn't "legacy bullshit" also)
05:17:43 <shachaf> (haha @ @)
05:17:44 <pikhq> Sweet fuck.
05:17:47 <Sgeo> Uh. By "interesting" do they mean "interesting + likely to be widely used"?
05:17:55 <pikhq> elliott: Well, technically C++ is "interesting".
05:18:01 <monqy> hi
05:18:12 <kmc> C/C++
05:18:15 <elliott> & then:
05:18:16 <elliott> https://twitter.com/ryah/status/258635644681728000
05:18:17 <pikhq> It teaches how not to design a programming language by example.
05:18:26 <elliott> https://twitter.com/ryah/status/258635662587199489
05:18:26 <elliott> https://twitter.com/ryah/status/258635676726218752
05:18:44 * Sgeo sads
05:18:52 <Sgeo> No reason given. At all.
05:18:54 <elliott> monqy: hello
05:18:58 <monqy> hey sgeo how's your clojure without lexical scoping going
05:19:02 <kmc> yeah this is such transparent trolling
05:19:05 <pikhq> I'll give him a very slight bit of credit: Rust actually appears interesting.
05:19:13 <kmc> i can't really work myself up over it
05:19:32 <kmc> elliott: i heard C++ is for fat people
05:19:36 <Sgeo> monqy, on hold while I try to determine if it actually would be better than Kernel
05:19:41 <monqy> ok
05:20:08 <Sgeo> You could accomplish more or less the same thing with Kernel's eval, I think
05:20:15 <kmc> i hope that sometime near the end of The Office (US), the characters suddenly become aware of the fact that Kevin has gradually developed a severe cognitive impairment over the past decade, and find this profoundly disturbing
05:20:24 <Sgeo> Well, not the same exact thing, but similarish enough, I think
05:20:54 <Sgeo> kmc, does Kernel have quasiquoting? I vaguely remember "no", but not sure.
05:21:10 <kmc> i don't remember
05:21:14 <Sgeo> And if the answer is "no", who do I have to slap
05:21:17 <kmc> are you asking about the `(a b) concrete syntax
05:21:33 <kmc> or about the quasiquote special form
05:21:34 <kmc> or what
05:21:46 <kmc> presumably quasiquote wouldn't be a sepecial form, just an operative you can define yourself
05:21:57 <kmc> and it's not super useful for the kernel way of doing things
05:21:59 <Sgeo> Well, `(a b) concrete syntax would be nice, preferably translating into a particular set of operatives
05:22:12 <kmc> i assume `x would be sugar for (quasiquote x) as in scheme
05:22:17 <kmc> and ,x for (unquote x)
05:22:21 <Sgeo> Yes
05:22:33 <shachaf> `,@x
05:22:38 <Sgeo> Distinctly different from the Common Lisp style things of not actually having a concrete translation
05:22:42 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ,@x: not found
05:22:52 <kmc> anyway quasiquote is not that useful for writing operatives, but it might sometimes be useful to use traditional lisp-ish macros in kernel
05:23:01 <kmc> i think it should be easy to implement defmacro as an operative
05:23:15 <kmc> i wonder if there is some kind of "quasieval" syntax you could define, to make writing operatives nicer
05:24:12 <Sgeo> kmc, well, I more wanted to emulate Tcl-style commands, but with quasiquoting, since Tcl doesn't have nice quasiquoting syntax built-in and that sucks
05:24:46 <kmc> (define list (vau xs env (if (nil? xs) nil (quasieval env (cons ,(car xs) ,(cdr xs))))))
05:25:09 <kmc> => (define list (vau xs env (if (nil? xs) nil (cons (eval env (car xs)) (eval env (cdr xs))))))
05:25:29 <kmc> awkward to use ` because you need to put the env parameter somewhere
05:27:34 <elliott> http://twitter.com/ryah/status/258665167934611457
05:27:41 <elliott> mmmmmmmmmmmmmmm
05:27:55 <elliott> good to know his problem is uninteresting
05:29:13 <elliott> monqy: ais523: you might like: http://www.ioccc.org/2012/tromp/hint.html
05:29:23 <Sgeo> He could at least acknowledge that without PL research, he'd be stuck writing code in .... I'm not even sure
05:29:24 <kmc> elliott: stop trolling by proxy
05:29:45 <shachaf> kmc: My friend said that trolling by proxy is fun but I don't believe him.
05:29:45 <Sgeo> COBOL?
05:29:45 <kmc> hey guys my cousin's barber says haskell causes aids
05:29:51 <shachaf> How can I show him the error of his ways?
05:30:27 <Sgeo> Machine code.
05:30:41 <Sgeo> He should write all his code in 0s and 1s from now on.
05:31:00 <elliott> kmc: what is #esoteric fo rthen
05:31:08 <elliott> if not crap
05:31:16 <shachaf> Silly elliott. #esoteric is for trolling directly, not by proxy.
05:31:23 <shachaf> But we shouldn't troll kmc, or he might leave. :-(
05:31:30 <kmc> programming community full of anti-intellectual blowhards; film at 11
05:31:31 <elliott> come on
05:31:41 <kmc> actually though i have violated my own rule about the word 'community'
05:31:42 <elliott> it is art to dismiss list but talk about scheme-relative JS as interesting and innovative and not legacy crap
05:31:44 <elliott> *lisp
05:31:45 <kmc> i'm not sure what to call that community
05:31:59 <elliott> if i was trying to rile plt people up i couldn't do it so well
05:32:01 <kmc> hacker news jackoff community
05:32:23 <shachaf> Then I'll be stuck either looking for bugs in Mosh or not talk to kmc!
05:32:47 <kmc> i dread the day when the startup i'm working for now gets posted to hacker news
05:33:04 <shachaf> kmc: Is it still a secret what it does?
05:33:09 <kmc> yeah
05:33:17 <kmc> but it's not the interesting kind of secret
05:33:17 <kmc> sorry
05:33:25 <elliott> kmc is working on bombs
05:33:37 <kmc> we're making a useful product, but it's not like ksplice where it's going to blow your mind that it's even possible
05:33:44 <shachaf> kmc is working on stealth bombers.
05:33:47 <kmc> clearly
05:33:55 <shachaf> That's why his startup is in Stealth Mode.
05:33:57 <elliott> kmc: ksplice didn't really surprise me
05:34:00 <elliott> sorry
05:34:03 <elliott> i am too ... anti-jaded
05:34:09 <kmc> haha
05:34:29 <kmc> i'm not really surprised that it worked as a research project
05:34:42 <elliott> well that's the hard part
05:34:45 <elliott> then you send it off to the engineers
05:34:47 <elliott> and they ruin it
05:34:56 <kmc> but i am very impressed that they managed to make a commercial product that was deployed on 200,000+ machines and crashed almost none of them
05:35:13 <kmc> of course there were 2 years of work in between those two stages
05:35:43 <shachaf> I,I deployed on ℵ₁ machines and crashed almost none of them
05:35:47 <kmc> hehe
05:35:52 <shachaf> Only a countable number!
05:35:54 <kmc> is that alef or math alef?
05:36:00 <shachaf> 2135 ALEF SYMBOL [ℵ]
05:36:10 <shachaf> The other one puts you in RTL mode, which is annoying.
05:36:13 <kmc> or blackboard bold script italic math alef
05:36:13 <kmc> hehe
05:36:36 <shachaf> (But on the other hand I have to type in the codepoint instead of switching my keyboard to Hebrew mode.)
05:36:51 <shachaf> kmc: whoa, dude, Unicode has codepoints for letters + nikud!
05:36:56 <shachaf> I thought it just had combining nikud.
05:36:57 <zzo38> I want to make up a chess variant having googolplex number of kind of pieces. I already wrote of some idea of such things.
05:37:13 <zzo38> shachaf: There are various things I dislike about Unicode
05:37:15 <kmc> is there continuouschess
05:37:23 <kmc> continuous chess*
05:37:27 * kmc should get a new spacebar
05:37:29 <elliott> continuous chess got made up in here once
05:37:30 <elliott> it went badly
05:37:35 <Sgeo> kmc, "almost"?
05:37:38 <kmc> what was continuous
05:37:42 <kmc> piece position or also identity?
05:37:44 <elliott> kmc: the board
05:37:52 <elliott> mostly the problem is that you can't express the moves you want to make
05:37:54 * Sgeo should try continuous chess
05:37:56 <shachaf> 1EE00 ARABIC MATHEMATICAL ALEF [<U+1EE00>]
05:38:02 <elliott> kmc: i think the pieces might have been continuous too
05:38:05 <elliott> honestly i do not remember
05:38:19 <elliott> mathematical elf
05:38:29 <kmc> did rooks and bishops have a facing direction
05:38:38 <zzo38> Another idea is to make up a description of googolplex number of variants all at once
05:38:43 <Sgeo> This isn't it, is it?
05:38:43 <Sgeo> http://www.chessvariants.org/other.dir/continuouschess.html
05:38:45 <shachaf> kmc: Do you know Gess?
05:38:47 <Sgeo> It says created 2001
05:38:49 <kmc> no
05:38:51 <shachaf> "Chess" played on a Go board.
05:38:58 <elliott> yes Sgeo we made up continuous chess in this channel in 2001
05:38:59 <shachaf> It's kind of neat.
05:39:02 <elliott> then put it on some random chess variants website
05:39:04 <elliott> how did you guess
05:39:24 <Sgeo> Hence me thinking that that isn't it.
05:39:25 <shachaf> A "piece" is any 3×3 square that contains at least one of your Go pieces and none of the enemy's.
05:39:35 <shachaf> Stones.
05:39:41 <zzo38> I do know Gess too
05:39:46 <shachaf> The 8 outer stones are bits that decide in which direction your "piece" can go.
05:40:02 <shachaf> The inner stone says whether it can move just one step or as far as it wants.
05:40:21 <shachaf> Your "queen" is 9 pieces, and your "king" is a ring. You lose when you have no ring.
05:40:30 <shachaf> (You can make additional kings if you're careful.)
05:40:31 <kmc> weird
05:40:48 <kmc> and moves are by 1 rather than 3?
05:40:50 <shachaf> You can make strange new pieces that can only move in a particular direction.
05:41:07 <kmc> this is like go + chess + game of life
05:41:18 <shachaf> Hmm, I'm not sure...
05:41:32 <shachaf> Ah, there's a Wikipedia article. https://en.wikipedia.org/wiki/Gess
05:41:36 <shachaf> It says it can move up to 3.
05:41:53 <kmc> in that it depends on identifying and cataloguing formations that are bigger than the 'physics' of the game, and can form out of other things
05:42:06 <shachaf> Right.
05:42:11 <elliott> kmc: going to "troll" you with this too https://plus.google.com/u/0/115212051037621986145/posts/HajXHPGN752
05:42:26 <elliott> "abstractions are slow in python so if you want to write fast python don't use them" -- gvr
05:42:51 <shachaf> elliott: Did you see bos's slides?
05:43:03 <zzo38> What if you make continuous chess where your moves are limited to rational numbers, or to algebraic numbers, or allowing rationals and quadratic surds
05:43:08 <shachaf> http://bos.github.com/reaktor-dev-day-2012/reaktor-talk-slides.html
05:43:25 <zzo38> And have a minimum movement
05:43:52 <shachaf> elliott: Guido was at ekmett's lens talk yesterday.
05:44:21 <elliott> that's ok
05:44:28 <elliott> I can make fun of people even if they attend edwardk talks
05:44:32 <elliott> that's my superpower
05:44:53 <shachaf> Python's going to get lenses now, that's all I'm sayin'.
05:45:32 <Jafet> A go variant where you can't see the opponent's stones
05:45:54 <Jafet> And if you place a stone on an occupied place, the stone disappears
05:46:23 <kmc> i'm just so burnt out on caring about people being wrong on the internet about programming languages
05:46:31 <kmc> i did a tour of duty in /r/programming and two in #haskell
05:46:39 <shachaf> kmc: It's a sign you're getting old.
05:46:43 <kmc> haha
05:46:43 <shachaf> (And wise?)
05:46:45 <kmc> probably
05:46:48 <kmc> maybe not that one
05:47:00 <elliott> kmc: you should join #haskell again for the good times
05:47:08 <kmc> is it good now
05:47:11 <elliott> kmc: heck no
05:47:16 <shachaf> They were arguing about whether Lisp has syntax an hour ago.
05:47:26 <shachaf> (To be fair, you get that in here too.)
05:47:40 <Jafet> Someone linked to paulgraham.com an hour ago
05:47:44 <shachaf> Also someone was asking whether Haskell was used in any real-world projects and refusing to read any links.
05:48:23 <elliott> more like poorgraham imo
05:48:54 <shachaf> Is there a channel that's like #haskell, except for all the bad parts?
05:48:59 <elliott> <shachaf> Also someone was asking whether Haskell was used in any real-world projects and refusing to read any links.
05:49:02 <elliott> who was this i wanna read it in the logs
05:49:07 <shachaf> elliott: No one.
05:49:20 <elliott> that's not helpful
05:50:00 <Jafet> You can find it quickly by searching for "real-world", because that phrases comes up infrequently there
05:50:08 <shachaf> kmc: I went to a talk about graph coloring and the birthday problem and variations.
05:50:43 <elliott> Jafet: There's only one result for "real-world" and one for "real world" in today's log. :(
05:50:44 <shachaf> Did you know that a pretty good approximation for "number of people you need in a room to have a 50% chance that two share the same birthday" is 1.2√c, where c is the number of days in a year?
05:51:02 <kmc> no
05:51:53 <shachaf> Also coloring graphs is hard. :-(
05:54:37 <Jafet> I knew all those children's books had sinister intentions.
05:57:06 <shachaf> whoa, dude
05:57:06 <shachaf> Orwell did not invent the term "two minutes hate"; it was already in use in the First World War.[1] At that time, British writers satirised the German campaign of hatred against the English, and imagined a Prussian family sitting around the kitchen table having its "morning hate".[2]
05:59:29 <Sgeo> Hmm. Well, if using a field and using getter/setter had the exact same syntax, with no oddities, I don't see any problems with using fields directly.
05:59:54 <Sgeo> C# that's not the case, fields can be used in ways that properties (getter/setter combinations) cannot
06:00:08 <zzo38> There is also leap years though
06:00:24 <Sgeo> So better to start off with properties rather than using fields, then needing to convert to getter/setter and finding that it breaks some code.
06:00:54 <shachaf> zzo38: Leap years don't influence it much.
06:01:03 <shachaf> In fact, even actual birth statistics don't influence it much.
06:01:45 <shachaf> Did you know that in the US, there are 20% fewer births on weekends?
06:01:47 <shachaf> (So I hear.)
06:03:35 <shachaf> kmc: Did you know that Compose v / makes √?
06:03:40 <shachaf> Radical, man.
06:03:44 <kmc> nice
06:03:56 <zzo38> No, I didn't know that there are 20% fewer birth on weekend in US.
06:06:18 <kmc> why is it
06:06:37 <shachaf> 20% of labor is induced and doctors don't like to work on weekends, or something along those lines.
06:07:28 <shachaf> Cæsarean sections, too, I guess.
06:11:58 <kmc> makes sense
06:13:09 <ion> 20 % of labor is mathematically induced.
06:13:28 <shachaf> mathematical induct ion
06:14:10 <kmc> A friend who's in liquor production
06:14:10 <kmc> Owns a still of astounding construction.
06:14:11 <kmc> The alcohol boils
06:14:11 <kmc> Through old magnet coils;
06:14:11 <kmc> She says that it's "proof by induction."
06:14:24 <ion> > cycle "HA"
06:16:33 <kmc> not a true limerick as it lacks a dirty joke
06:16:40 <kmc> that's like a haiku without a seasonal reference
06:17:24 <ion> I have an incomplete song with a (5+7+5)/8 rhythm.
06:18:52 <shachaf> kmc: Have you read some of Lear's limericks?
06:19:20 <shachaf> I don't really get them.
06:20:13 <kmc> no
06:20:18 <ion> Preview from a crappy General MIDI export http://codu.org/webmidi/gen/924563928975/924563928975.ogg
06:20:33 <shachaf> elliott: Have you seen the way edwardk "overloads function application"?
06:21:46 <zzo38> Did you write this music?
06:21:50 <ion> yeah
06:22:05 <ion> It’s unfinished.
06:22:13 <shachaf> kmc: I changed some scenery but it didn't really help.
06:22:14 <zzo38> When, and what software?
06:22:25 <shachaf> Do you have more advice?
06:23:26 <kmc> for what problem?
06:23:31 <kmc> and which scenery?
06:23:45 <zzo38> I wonder the same thing
06:23:46 <ion> zzo38: I made a score in Lilypond (<http://johan.kiviniemi.name/music/haiku.pdf>) in 2011-01. You also get a crappy General MIDI file out of it almost for free.
06:25:12 <zzo38> OK
06:28:40 <elliott> <shachaf> elliott: Have you seen the way edwardk "overloads function application"?
06:28:41 <elliott> ?
06:28:41 <zzo38> Are there any simpler versions of Lilypond which will generate DVI output and do not require so many source files and that stuff?
06:28:43 <elliott> You mean a ($) class?
06:29:03 <shachaf> elliott: I mean isomorphism.
06:29:23 <shachaf> inc :: Num a => a -> a <-> a; inc = isomorphic (+1) (subtract 1)
06:29:29 <zzo38> Lilypond even requires Python and Scheme and all that stuff too
06:29:31 <shachaf> inc 4 -- 5
06:29:37 <shachaf> from inc 5 -- 4
06:30:10 <ion> zzo38: You generally use just one source file with Lilypond.
06:31:14 <elliott> shachaf: I don't get it.
06:32:07 <Sgeo> Hmm
06:32:18 <Sgeo> How is that <-> legal? Language extension?
06:32:38 <Sgeo> I think I get it but I don't get the types
06:35:31 <shachaf> elliott: Oh, maybe I got the type wrong?
06:35:35 <zzo38> And the syntax sometimes changes.
06:36:00 <shachaf> elliott: Anyway, inc acts like a function when you apply it, but you can also get the other part of the isomorphism from it.
06:36:12 <zzo38> For example it requires Unicode
06:37:12 <FreeFull> Which encoding of unicode?
06:37:17 <FreeFull> UTF-8?
06:37:31 <shachaf> Who said anything about encodings?
06:37:58 <Sgeo> shachaf, I should note that I didn't look at the type that closely
06:39:18 <elliott> <shachaf> elliott: Anyway, inc acts like a function when you apply it, but you can also get the other part of the isomorphism from it.
06:39:19 <elliott> How?
06:39:55 <FreeFull> > (\x -> x x) (\x -> x x)
06:39:57 <lambdabot> Occurs check: cannot construct the infinite type: t = t -> t1
06:39:59 <shachaf> class Category k => Isomorphic k where isomorphic :: (a -> b) -> (b -> a) -> k a b
06:40:07 <shachaf> isntance Isomorphic (->) where isomorphic = const
06:40:36 <shachaf> data Isomorphism a b = Isomorphism (a -> b) (b -> a); instance Category Isomorphism; instance Isomoprhic Isomorphism
06:40:45 <shachaf> type a <-> b = forall k. Isomorphic k => k a b
06:40:51 <shachaf> from (Isomorphism a b) = isomorphic b a
06:42:54 <shachaf> elliott: "pretty crazy huh"
06:44:06 <elliott> oh
06:44:07 <elliott> typeclasses
06:44:08 <elliott> they don't count
06:45:07 <FreeFull> > (\x -> x) (\x -> x)
06:45:09 <lambdabot> Overlapping instances for GHC.Show.Show (t -> t)
06:45:09 <lambdabot> arising from a use of `...
06:45:18 <FreeFull> > (\x -> x) 4
06:45:19 <lambdabot> 4
06:45:22 <FreeFull> > (\x -> x) id
06:45:23 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
06:45:23 <lambdabot> arising from a use of `...
06:45:27 <FreeFull> > id id
06:45:29 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
06:45:29 <lambdabot> arising from a use of `...
06:45:52 <shachaf> FreudFull
06:46:02 <FreeFull> > ego
06:46:03 <lambdabot> Not in scope: `ego'
06:46:07 <FreeFull> > superego
06:46:08 <lambdabot> Not in scope: `superego'
06:50:42 <zzo38> Is there a version of LilyPond which generates DVI output and does not require Freetype, Ghostscript, Guile, Python, Pango, Unicode, etc?
07:00:03 <zzo38> Or similar program?
07:18:48 <ion> Depends on how you define similar. The major feature of Lilypond is how much they have made effort over the years to make the output look non-computer-ish.
07:19:08 <ion> Is your floppy disk running out of space?
07:21:33 <zzo38> No, I am using a hard disk.
07:23:03 <FreeFull> 5GB one?
07:24:26 <zzo38> Couldn't it be done with just one source-file (other than fonts), and then use ATLAST for extensions (also just one source file), and have macro files (just one for standard notation; others for specialized), use MCK-like syntax, output to DVI?
07:25:20 <zzo38> FreeFull: No, it is 200GB
07:29:05 <zzo38> I can understand why they would make effort over the years to make the output look non-computer-ish it is good idea. However, I don't think they should need many source files and all that other stuff to do that.
08:00:26 <zzo38> How difficult would it be to take the LilyPond source files, remove half of the stuff, change some of the stuff, and have it compile without anything more than the C++ compiler and no extra libraries?
08:01:05 <elliott> try it
08:04:39 <zzo38> I looked at the source files and it appears to be way too complicated.
08:05:38 <FreeFull> Most source does on first look
08:09:27 <zzo38> Many source files are not very large, but there are a lot of them, in a big mess, in multiple programming languages (including PostScript), a huge number of other files, too many external files needed, etc
08:10:49 <zzo38> Ideally nothing else should be needed except a DVI driver, and METAFONT (if you want to compile the fonts).
08:15:41 <zzo38> It even has a lot of makefiles, many files in Scheme, C++, Python, why does it need to be????
08:16:34 -!- epicmonkey has joined.
08:24:32 <zzo38> Even if there is one that does not make the output look non-computer-ish, is there one which will make DVI format output and which does not use Unicode?
08:25:07 <ion> I sincerely don’t see what’s wrong with Unicode.
08:25:28 <ion> A score-writing system that heavily restricts the languages you can use for the lyrics would be strange.
08:25:49 <zzo38> And which requires only one programming language instead of five?
08:26:22 <ion> I don’t think using only one programming language prevents you from using Unicode.
08:27:43 <zzo38> ion: You don't need to restrict the languages you can use for the lyrics just because Unicode won't work. Just do it the way TeX does it
08:28:17 <ion> Yeah, writing Chinese in the variants of TeX that don’t support UTF-8 is nice.
08:29:43 -!- mekeor has joined.
08:30:02 <zzo38> Actually it is possible to write a macro in Plain TeX which will parse UTF-8 or other encodings you might use; I have done this. So you can write macros for the encoding you want.
08:30:52 <ion> I thought the goal was to be simple, with just a couple of files of source code. Now we’re going to have turing-complete macros?
08:31:32 <zzo38> Well, you should have some extension engine whatever it is; I suggested ATLAST.
08:31:57 <zzo38> (Which is a single C source file and a header file, as far as I can tell)
08:32:55 <zzo38> Problem with Unicode (for any uses, really) is the complicated stuff like character properties, changing text directions, and various other things
08:33:34 -!- monqy has quit (Quit: hello).
08:34:06 -!- mekeor has quit (Remote host closed the connection).
08:37:03 -!- monqy has joined.
08:41:41 <zzo38> Even if you do use Unicode, it shouldn't need to use a list of character properties and that stuff.
09:02:59 <zzo38> Program such as TeX works fine with just one source file, one macro file, and a few fonts. Same with METAFONT, LodePNG, TeXnicard, Famitile, and others.
09:04:32 -!- zzo38 has quit (Remote host closed the connection).
09:17:41 -!- MoALTz has joined.
09:52:48 -!- copumpkin has quit (Ping timeout: 244 seconds).
09:53:23 -!- copumpkin has joined.
09:56:50 -!- monqy has quit (Quit: hello).
09:58:50 -!- elliott has quit (Ping timeout: 255 seconds).
10:39:16 -!- barts has joined.
10:39:21 <barts> hi
10:49:52 -!- Vorpal has joined.
11:00:27 -!- Phantom_Hoover has joined.
11:11:06 -!- MoALTz has quit (Quit: Leaving).
11:43:55 -!- ogrom has quit (Quit: Left).
12:02:52 -!- carado has joined.
12:09:46 -!- hagb4rd has quit (Read error: Operation timed out).
12:20:11 -!- coppro has quit (Read error: Operation timed out).
12:20:18 -!- coppro has joined.
12:20:30 -!- mindlessDrone has joined.
12:50:14 -!- copumpkin has quit (Ping timeout: 240 seconds).
12:50:49 -!- copumpkin has joined.
13:18:11 -!- atriq has joined.
13:47:38 <atriq> Well, I have new shoes
13:54:45 <fizzie> The new shoes! Is it the 2012 model?
13:55:06 <mindlessDrone> is it the green model?
13:55:27 <mindlessDrone> can you walk with 'em?
13:56:13 <atriq> Blue model
13:56:29 <atriq> I think they're the 2012 model
13:57:37 <olsner> how fast are they?
13:59:05 <mindlessDrone> which OS?
14:00:50 -!- Frooxius has joined.
14:01:59 <atriq> olsner, I dunno, other factors are holding it back
14:02:03 <atriq> mindlessDrone, Nike
14:02:08 -!- carado has quit (Ping timeout: 252 seconds).
14:07:31 -!- atriq has quit (Ping timeout: 244 seconds).
14:09:34 -!- jix has quit (Ping timeout: 240 seconds).
14:23:08 -!- ogrom has joined.
14:28:18 -!- ogrom has quit (Quit: Left).
14:48:11 -!- hagb4rd has joined.
15:24:40 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
15:27:17 -!- TheJimmyJames has joined.
15:30:45 -!- TheJimmyJames has quit (Client Quit).
15:37:56 -!- Phantom_Hoover has joined.
15:40:48 -!- AnotherTest has joined.
15:40:53 <AnotherTest> Hello
15:41:25 <FreeFull> Hi
16:03:51 <Vorpal> hi
16:04:59 <olsner> `? hi
16:05:10 <HackEgo> hi? ¯\(°_o)/¯
16:09:06 -!- atriq has joined.
16:09:07 <hagb4rd> `log iterate
16:09:38 <HackEgo> 2010-07-04.txt:14:15:08: <alise> please obliterate this feature
16:09:43 <atriq> > iterate (<|> " Hello!") mempty
16:09:44 <lambdabot> [""," Hello!"," Hello! Hello!"," Hello! Hello! Hello!"," Hello! Hello! Hell...
16:12:29 -!- impomatic has joined.
16:21:20 -!- epicmonkey has quit (Remote host closed the connection).
16:21:36 -!- epicmonkey has joined.
16:35:36 <fizzie> Obliterate literate iterators.
16:42:11 -!- impomatic has quit (Quit: http://BASICcomic.com).
16:42:20 -!- ogrom has joined.
16:42:36 -!- ogrom has quit (Client Quit).
16:43:15 <FreeFull> > iterate (id)
16:43:16 <lambdabot> Overlapping instances for GHC.Show.Show (a -> [a])
16:43:16 <lambdabot> arising from a use of...
16:43:21 <FreeFull> > iterate (id) 0
16:43:23 <lambdabot> [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,...
16:53:47 -!- elliott has joined.
17:13:19 <Vorpal> elliott, \o/ Hi!
17:13:32 <Vorpal> why didn't myndzi react to that?
17:13:34 <Vorpal> \o/
17:13:37 <Vorpal> weird
17:13:52 <Sgeo> http://www.reddit.com/r/ProgrammerHumor/comments/11rcrl/google_has_their_own_version_of_chuck_norris_joke/
17:14:20 <elliott> is there any conceivable reason why i would click that link
17:15:18 <Sgeo> Because they're slightly humorous?
17:15:33 <kmc> oh boy /r/ProgrammerHumor
17:15:43 <kmc> i'm sure this won't at all make me want to murder everyone
17:17:03 <Phantom_Hoover> hey guys there's this little-known comic called xkcd, it's really funny
17:17:07 <Phantom_Hoover> anyone else like it
17:17:49 <ais523> Phantom_Hoover: actually, I find xkcd more insightful than funny
17:17:55 <ais523> although some of the side material is hilarious
17:18:43 <ais523> and randall munroe seems to be really good at apocalyptic overthinking
17:19:17 <elliott> kmc: something called /r/programmerhumor is one thing
17:19:22 <elliott> kmc: the chuck norris part worries me more about that url though
17:19:24 <kmc> Phantom_Hoover: i only like obscure nerdy things, like video games, and movies based on superhero comics
17:19:24 <Phantom_Hoover> his only weakness is his inability to draw 3-a-week comics
17:20:30 <ais523> he's also good at aggregating data into vaguely surprising results
17:21:25 <atriq> ais523, have you seen the tumblr insane theory that Randall Munroe is Andrew Hussie?
17:22:51 <atriq> On the basis that they don't seem to know eachother and they are both friends with Ryan North
17:23:03 <pikhq> whatif.xkcd.com is actually fairly entertaining.
17:23:11 <kmc> yeah
17:23:20 <kmc> a lot of people have been saying for a long time that he should do something like whatif
17:23:32 <pikhq> Yeah. It plays very well to his strengths.
17:23:37 <kmc> unclear if he can make money off it though
17:23:52 <pikhq> In "recent" xkcd, the various info things are all that have been more than "meh".
17:24:11 <kmc> i like a few of the jokes from recent years
17:24:13 <kmc> but not that many
17:24:22 <elliott> kmc: can't he just make money off it the same way he's been doing
17:24:24 <kmc> people don't generally agree on which of the jokes are funny
17:24:39 <atriq> http://kawaii-yaois.tumblr.com/post/26879203396/a-case-study-randall-munroe-andrew-hussie
17:24:43 <kmc> elliott: well he makes money off the comic by making one huge poster comic per month
17:24:46 <elliott> i feel like xkcd might be gradually transitioning into a state of being underrated
17:24:53 <elliott> since it seems to have been getting consistently better for a while now
17:24:56 <kmc> which every nerd is then contractually obligated to buy for their dorm room
17:24:57 <pikhq> I'm pretty sure the plural of "yaoi" is "yaoi".
17:24:59 <elliott> well
17:25:05 <elliott> i guess it's impossible for it to be underrated
17:25:06 <kmc> and then he phones in the other 11 comics for that month
17:25:08 <elliott> since it has a huge fanbase
17:25:10 <elliott> but they don't count
17:25:21 <kmc> elliott: do you think the comic is getting better, or just side projects?
17:25:45 <kmc> i think the comic has reached a very consistent level of mediocrity
17:25:50 <atriq> pikhq, I'm pretty sure that isn't relevant
17:25:53 <elliott> the comic; i think if you look back to how it was fairly recently (like a year or so) it's been improving
17:26:02 <pikhq> atriq: :P
17:26:04 <elliott> obviously it is not as good as it once was but i think it is getting less bad than it became
17:26:17 <kmc> every new joke is a rehash of some joke he's already done, but worse
17:26:46 <kmc> it is rarely offensively terrible, but it's hitting the same dozen themes over and over and wringing all the funny out of them
17:26:48 <atriq> http://xkcd.com/7/ was the last actually funny one
17:26:53 <pikhq> kmc: Which is still better than "insert nerdy reference here" sadly.
17:26:53 <kmc> lol
17:27:18 <pikhq> Man. It's really funny his art quality has gone *down* over the years.
17:27:40 <elliott> ugh arch upgrade fucked with my stuff
17:27:44 <elliott> why are links opening in firefox now
17:27:51 <kmc> arch deluxe
17:27:54 <elliott> i am desirous of a refund
17:27:56 <pikhq> Firefox is best browser
17:28:39 <atriq> One of my friends upgraded from Safari to Internet Explorer and the speed increase was so great he's too afraid to go to any quicker browser
17:29:43 <Phantom_Hoover> i left my computer for 3 weeks and now pacman scares me
17:29:43 <elliott> "upgraded"
17:30:03 <atriq> elliott, apparently, Safari is really awful?
17:30:15 <elliott> i guess on windows modern ie > safari
17:30:25 <pikhq> Doesn't it include a partial port of Cocoa on Windows?
17:30:28 <elliott> Phantom_Hoover: i will derive intense satisfaction from your inability to handle the systemd transition and subsequent breaking of your installation
17:31:09 <kmc> i can't really fault xkcd's art style
17:31:34 <kmc> i mean nobody is reading it for the amazing art, but it's a consistent and recognizable look which is not terrible
17:31:36 <elliott> Sugar. Javascript Sweetened. (sugarjs.com)
17:31:38 <elliott> programmers
17:31:40 <elliott> can we please stop
17:31:44 <elliott> trying to imitate apple marketing
17:31:46 <elliott> with slogans
17:31:51 <elliott> thank you
17:31:55 <kmc> compared to other stick figure comics on the internet which mostly look like they were drawn using the ellipse tool in ms paint
17:32:04 <elliott> AND ALSO: programmers can we stop talking about JS
17:32:08 <elliott> like, forever
17:32:10 <atriq> kmc, it's better than most of MegaTokyo's art style, which I think is cluttered
17:32:18 <kmc> stop imitating apple? then we would have to, like, think of original ideas
17:32:33 <kmc> a more relevant criticism of xkcd is that most of the jokes just don't need to be visual
17:32:42 <kmc> the prototypical bad xkcd strip is two unmoving stick figures exchanging dialogue
17:32:50 <elliott> "Is Sugar available for Node.js? Yes!"
17:32:53 <elliott> oh boy oh boy!!
17:32:59 <elliott> but if this thing extends javascript does it count as an interesting language??
17:33:02 <atriq> I liked the latest xkcd's art
17:33:03 <elliott> sounds like it might be legacy garbage
17:33:07 <kmc> panel 1: setup line which nobody would possibly ever say in real life
17:33:14 <kmc> panel 2: mildly amusing tweet-worthy observation
17:33:16 <pikhq> Javascript: the new C.
17:33:49 <kmc> panel 3: unnecessary post-punchline dialogue (e.g. "we live in the future", "<anything> is weird, man", "i like science a whole lot can i please be in your club guys")
17:34:35 <kmc> i wonder if any people at MIT hate RM on appropriationist grounds
17:34:44 <kmc> most of the people i've talked to who know him seem to like him
17:35:13 <pikhq> RM = ?
17:36:11 <kmc> randall munroe
17:36:23 <elliott> guys should i play adom
17:37:03 <pikhq> Ah.
17:37:24 <pikhq> Yeah, my experience with him (admittedly limited and via IRC) suggests he's a decent guy.
17:37:31 <elliott> kmc: maaan
17:37:37 <elliott> kmc: did you know i've been on an old version of mosh for MONTHS???
17:37:40 <elliott> because the AUR package got renamed
17:37:42 <elliott> and nobody told me
17:37:50 <elliott> this is offset by the fact that I don't use mosh though
17:37:54 <kmc> heh
17:37:58 <kmc> you should upgrade to the just-released 1.2.3
17:38:09 <elliott> kmc: afaict there's only mosh-git
17:38:14 <elliott> gotta live on the bleeding edge
17:38:14 <kmc> oh
17:38:20 <elliott> oh!
17:38:23 <elliott> there is mosh in the community repos
17:38:28 <elliott> you're Officially a Program now
17:38:51 <elliott> here by "you" I mean "mosh"
17:39:09 <elliott> the package is 1.2.3 too
17:39:09 <elliott> huray
17:39:55 <kmc> yay
17:41:09 <kmc> https://github.com/keithw/mosh/commit/029e8bbde5e53b2e3454241143050cef27705cbe#L0R1018
17:41:12 <kmc> security is hard :(
17:41:34 <kmc> before anyone starts ranting about "rolling your own crypto", this is a third party crypto library bundled with mosh and written by professional cryptographers
17:42:35 <elliott> i think it's really interesting how "optimisations" like memcmp bailing out early are insecure
17:42:55 <elliott> and also, really worrying
17:43:14 <kmc> i also think a Sufficiently Smart compiler would be allowed to optimize my constant_time_memcmp into something that bails out early anyway
17:43:36 <elliott> right
17:43:43 <elliott> current infrastructure is just totally fucked for writing secure programs
17:43:46 <elliott> it seems basically futile
17:43:49 <kmc> yep
17:43:57 <elliott> but what secure programs want is so at odds with what you want in general
17:44:04 <elliott> like my regular programs would like memcmp to be fast pls
17:44:08 <kmc> writing programs without timing side channel leaks probalby requires a domain specific language
17:44:19 <kmc> and even then you will have to be careful about cache effects, etc
17:44:23 <elliott> right
17:44:40 <elliott> I guess in the end the ideal would be having all security code packaged up in libraries written in languages that are very precise about timing and so on
17:44:52 <kmc> yeah
17:45:08 <kmc> written by a small number of experts, exposing APIs which are hard to mis-use
17:45:22 <kmc> which is how we saw ocb.c
17:45:27 <elliott> ha, an API is that is hard to mis-use
17:45:35 <kmc> a very self-contained "decrypt this packet and tell me if it's authentic" function
17:45:38 <kmc> but even experts make mistakes
17:46:35 <kmc> and yeah, it will always be possible to misuse APIs
17:46:45 <kmc> especially when we have preconditions like "never use the same nonce twice"
17:47:04 <kmc> but there is also a lot that can be done to improve this
17:47:42 <elliott> clearly linearly-typed nonces
17:48:55 <kmc> yes
17:49:01 <kmc> perhaps linearly-typed nonces will fix my crypto API
17:49:37 <elliott> don't talk noncense, kmc
17:49:42 <kmc> wompwomp
17:50:45 <atriq> What's mosh?
17:50:46 <kmc> <KeithW> As the saying goes, Britain and America are two nations divided by a common charset.
17:50:52 <kmc> atriq: http://mosh.mit.edu/
17:51:08 <FreeFull> Mosh is food
17:51:20 <kmc> that's nosh
17:51:31 <kmc> now he's telling users who can't get it to run to read his academic paper
17:51:36 <kmc> you'd think this was haskell software or something
17:51:38 * kmc rimshot
17:51:47 <FreeFull> nfood then
17:52:03 <atriq> That reminds me
17:52:14 <atriq> I need to find a way of running Skype from the command line
17:53:46 <hagb4rd> have some hard times trying to get these knockout.js observables to work with jquery based plugins.. thousand lines of workaround-js-code.. a nightmare
17:54:01 <kmc> atriq: yeah
17:54:11 <kmc> i switched to command line irc and aim/xmpp clients because of mosh
17:54:29 <kmc> i run them on ec2 and my sessions follow me wherever i go
17:56:25 <kmc> also it works on a lot of very marginal connections where the IRC protocol (or anything else TCP-based) is completely unusable
17:57:25 <pikhq> Spiffy.
17:57:46 <elliott> okay so who wants to tell me how to fix links opening in firefox thanks
17:58:03 <elliott> like i am not picky
17:58:06 <elliott> it could be anyone
17:58:07 <atriq> Change your default browser
17:58:07 <elliott> could be you
17:58:19 <elliott> which file
17:58:41 <atriq> Who knows?
17:59:10 <atriq> Maybe you open your browser of choice and click the button that says "make this your default browser"
17:59:41 <elliott> Default browser
17:59:42 <elliott> Chromium cannot determine or set the default browser.
18:00:01 <atriq> Then you're using an obscure operating system
18:00:05 <elliott> also does anyone have email client recommendations
18:00:41 <pikhq> I personally am using Claws ATM, but I'll note that it's a little rough. And if you find something better let me know.
18:01:01 <kmc> use gmail like a normal human being
18:02:05 <pikhq> My university's email is on fucking outlook.com. I'm not using that straight.
18:02:08 <elliott> kmc: i do and am vaguely sick of it
18:02:32 <elliott> maybe i should just use mutt, 10 billion linux nerds can't be wrong
18:02:43 <elliott> even if threaded discussion sort of sucks
18:03:02 <kmc> http://twitter.com/1990sLinuxUser
18:03:13 <kmc> wish this was still updating
18:04:55 <pikhq> *grin*
18:05:13 <pikhq> "Why has systemd deprecated support for /usr on a different filesystem!!"
18:05:43 <pikhq> My sensibilities run vaguely close to "90's Linux User", but I applaud that of systemd. Except that it didn't go far enough.
18:05:56 <pikhq> ln -s / /usr is the only right way
18:06:01 <kmc> haha
18:06:06 <kmc> what. could. go. wrong.
18:06:16 <pikhq> In my testing, nothing at all.
18:06:20 <kmc> seriously?
18:06:23 <pikhq> Yeah.
18:06:27 <kmc> wow
18:06:34 <kmc> you a crazy motherfucker
18:06:36 <pikhq> And it's even FHS conformant.
18:07:07 <pikhq> About the only weirdness is you get a few more directories in /
18:07:14 <pikhq> e.g. /x86_64-unknown-linux-musl
18:08:05 <elliott> i have come to prefer separate /usr
18:08:12 <elliott> to some degree
18:08:29 <kmc> i guess anything that traverses directories already needs to understand symlink loops
18:08:37 <elliott> there seems to be enough semantic distinction between what is in /usr and e.g. the stuff in /var
18:08:48 <elliott> and i don't think having a read-only /usr is inherently an unreasonable idea
18:09:07 <pikhq> Also, I see nothing wrong with /run at all.
18:09:22 <kmc> i kind of want to compress /usr
18:09:26 <atriq> I see nothing.
18:09:30 <kmc> for my ssd
18:09:32 <atriq> Because I AM BLIND ALL ALONG
18:09:36 <atriq> :O
18:09:41 <elliott> hm
18:09:45 <elliott> speaking of 1990s linux users
18:09:45 <pikhq> Makes perfect sense to merge run-time transient state into a single dir.
18:09:46 <atriq> (disclaimer: I'm not blind)
18:09:49 <elliott> did I ever get X11 working on that floppy linux distro
18:09:51 <elliott> i think i didn't :(
18:09:56 <elliott> i should try that again!
18:10:03 <pikhq> Awesome. :)
18:10:18 <atriq> pikhq, what's you're reaction to me, elliott, and Phantom_Hoover all being from the 90's
18:10:20 <elliott> i managed to get the latest kernel and a crappy shell and some vaguely crappy standard utilities (written in asm) working, I know that much
18:10:22 <elliott> in <1.4 megs
18:10:27 <olsner> kmc: all modern file systems have transparent compression
18:10:30 <elliott> uh i think pikhq was born in the 90s too
18:10:36 <atriq> THE MYSTERY DEEPENS
18:10:37 <elliott> oh and by "working " I mean "in qemu"
18:10:38 <pikhq> I was born in 1990, so yes.
18:10:59 <atriq> I'm 18 in two weeksz
18:11:00 -!- atriq has quit (Quit: Leaving).
18:11:09 <pikhq> elliott: You're not getting a (recent-ish) build system in that space, sadly.
18:11:09 <elliott> oh right that's why i asked thingy
18:11:13 <kmc> olsner: really?
18:11:13 <elliott> pikhq: you know about wayland right
18:11:23 <pikhq> Best I was able to do was an 11M squashfs.
18:11:30 <pikhq> elliott: Only vaguely.
18:11:30 <kmc> olsner: do you mean automatically or with some command per-file
18:11:40 <pikhq> I have no idea if it + xwayland is larger or smaller than X11.
18:11:52 <kmc> http://en.wikipedia.org/wiki/Ext4 says "no" for ext4
18:11:53 <elliott> oh did you answer that
18:11:54 <olsner> btrfs has a mount flag for compression, zfs lets you set it per file system
18:11:54 <pikhq> Though, bootstrap-linux currently static links all the binaries.
18:11:56 <elliott> i fell asleep at one point so if you did
18:12:02 <pikhq> elliott: I didn't.
18:12:06 <elliott> ok
18:12:08 <kmc> http://www.ohloh.net/p/e4z
18:12:11 <elliott> i suspect it'd probably be larger
18:12:20 <elliott> just because wayland depends on fancy kernel graphical stuff that i turned off
18:12:22 <elliott> probably
18:12:31 <kmc> btrfs has it though
18:12:38 <pikhq> (I'm just too lazy to get the crosscompiler build scheme done "right", so it can actually do dynamic linking)
18:12:39 <elliott> anyway maybe i would be satisfied with two floppies
18:12:43 <elliott> one with X and a build chain and one with everything else
18:12:58 <pikhq> GCC's fucking huge.
18:13:03 <elliott> but I think it'd be really cool if you could get a Linux system that's fully "bootstrapped" in that it comes with everything you need to download and rebuild itself in a graphical environment in 1.4 megs
18:13:04 <kmc> (bak later)
18:13:16 <elliott> with some ridiculous compression and brutal feature trimming
18:13:30 <elliott> pikhq: are the patches to compile the kernel with tcc kept up-to-date
18:13:39 <pikhq> No.
18:13:43 <pikhq> bootstrap-linux is currently 31M...
18:14:21 <pikhq> At some point in the next year I anticipate landley actually getting tcc (well, more like qcc) functional, at least.
18:14:34 <pikhq> Though toybox probably comes first.
18:14:54 <elliott> <pikhq> bootstrap-linux is currently 31M...
18:14:57 <elliott> how big is your kernel
18:15:03 <elliott> I think I got my kernel down to like 300-500 kilobytes compressed
18:15:11 <elliott> as in, it actually booted in qemu and ran the stuff
18:15:19 -!- zzo38 has joined.
18:15:27 <pikhq> 3.1M but I have *not* cleaned up the kernel config at all.
18:15:30 <elliott> also I had no filesystems except in ram
18:15:42 <elliott> i just used the embed-a-directory-tree-directly-into-the-kernel stuff
18:15:48 <elliott> so it got compressed with the kernel image and loaded into ram
18:16:01 <elliott> in fact I think the kernel had no idea how to load floppies at all
18:16:09 <elliott> it just relied on the bootloader loading everything it needed or whatever
18:16:33 <elliott> arguably it would be better to try and stuff floppy support into the kernel
18:16:46 <elliott> so that you could boot it, recompile the sources from scratch (given a copy of them), and then write a new floppy with it
18:17:50 <pikhq> Hmm, the cpio.xz is a mere 7.9M...
18:18:24 <elliott> "mere"
18:18:34 <elliott> it gets something like exponentially harder to get things smaller as you go
18:18:46 <elliott> IME
18:19:27 <pikhq> I'd probably do well to switch on dynamic linking.
18:19:33 <elliott> pikhq: do you think the basic X11 protocol is simple enough that I could implement a tiny X server that outputs to the framebuffer without wanting to kill myself or spending a year on it
18:19:47 <pikhq> In a word, no.
18:19:55 <elliott> not sure dynamic linking would help... you'd include unused library functions, and compression should already handle most of the redundancy, right
18:20:04 <pikhq> Removing the kernel from the cpio and some documentation got it down to 4.3M
18:21:23 <elliott> anyway probably this would be a lot easier with some like 2.4 kernel
18:21:25 <elliott> but that is cheating
18:21:53 <pikhq> Major benefit of dynamic linking is that binutils has a *lot* of programs which use libbfd...
18:25:41 <olsner> are there no smaller alternatives for binutils?
18:25:51 <Sgeo> I think I found my singing voice
18:26:32 <pikhq> olsner: Not really.
18:26:43 <pikhq> And I even went and beat a lot of bloat out of it with a giant stick.
18:27:03 <pikhq> -ffunction-sections -fdata-sections -Wl,--gc-sections
18:27:20 <Sgeo> Why does elliott need a tiny X server?
18:28:28 -!- epicmonkey has quit (Remote host closed the connection).
18:28:44 -!- epicmonkey has joined.
18:28:56 -!- epicmonkey has quit (Remote host closed the connection).
18:29:24 -!- epicmonkey has joined.
18:29:30 -!- epicmonkey has quit (Remote host closed the connection).
18:30:50 -!- epicmonkey has joined.
18:36:46 <olsner> pikhq: I'm not sure that's the "giant" stick, but definitely a start
18:37:05 <pikhq> olsner: From some binutils binaries it removes nearly a meg.
18:40:32 <pikhq> Also did some more autoconf fighting to convince it not to install libiberty.
18:40:48 <pikhq> Or libbfd.
18:41:05 <pikhq> (if you don't install the headers, you don't get to install the damned library!)
18:41:50 <pikhq> (libiberty is only installed as a .a anyways, meaning you don't even get the excuse of "it's a utility library all binutils needs")
18:44:26 -!- jix has joined.
18:58:26 <elliott> pikhq: imo rewrite binutils
19:00:54 <pikhq> GCC's a bit more important to rewrite IMO.
19:01:09 <pikhq> binutils is bloated. GCC is bloated and stupidly fragile.
19:01:25 <FreeFull> Or you could use a different compiler
19:01:29 -!- atriq has joined.
19:01:36 <pikhq> Name one that builds Linux.
19:01:51 <barts> ungcc
19:04:30 <elliott> clearly minix time
19:08:50 <fizzie> Hasn't clang been used to compile a "working" kernel already?
19:09:00 <olsner> does clang fit on a floppy?
19:09:27 <elliott> fizzie: Needs patching, I think. Like icc.
19:10:04 <zzo38> GNU stuff tends to be bloated
19:13:18 -!- monqy has joined.
19:13:45 <fizzie> There's a BOM in my UTF-8 file.
19:14:47 <elliott> fizzie: ew
19:16:15 <pikhq> clang's *larger* than GCC.
19:16:22 <barts> olsner: depends how you define "to flop"
19:16:32 <pikhq> Though GCC will probably catch up, and that quickly.
19:17:03 <pikhq> The only advantage GCC has over clang in binary size is that GCC is in C, and GCC isn't in C anymore.
19:17:34 <pikhq> And clang has the (decent) excuse of being a full on C static analysis tool that happens to have a code generator attached.
19:17:46 <olsner> anyway, is the whole compiler and toolchain required to be on the floppy as well?
19:17:47 <zzo38> GCC isn't in C anymore?
19:18:03 <pikhq> zzo38: They switched to requiring C++ in git recently.
19:18:19 <pikhq> GCC 4.8 will be C++.
19:18:45 <zzo38> OK, but they should still compile C codes as well as C++ codes too
19:19:01 <pikhq> It does still function as a C compiler.
19:19:07 <pikhq> It's just written *in* C++ now.
19:19:17 <zzo38> OK
19:19:28 <zzo38> GCC also supports some targets that LLVM does not support, though, such as MMIX
19:21:13 -!- AnotherTest has quit (Quit: Leaving.).
19:25:38 -!- heroux has quit (Read error: Operation timed out).
19:30:21 -!- heroux has joined.
19:35:48 -!- shubshub has joined.
19:35:50 <shubshub> hi
19:36:03 <monqy> hi
19:39:36 <elliott> pikhq: do you know anything about ncurses
19:40:29 -!- hagb4rd has quit (Read error: Operation timed out).
19:41:55 <fizzie> Nwitches cast ncurses.
19:42:35 -!- hagb4rd has joined.
19:42:36 <kmc> the BOM is also a zero-width non-breaking space
19:42:45 <kmc> though there's now a different codepoint you're supposed to use for that
19:45:56 <fizzie> Well, it's immediately at the start of the file, there's no real reason for a zwnbsp, and (I think; haven't verified) it's confusing mplayer's srt subtitle parser because it expects "1", not "\ufeff1", at start. (Or possibly it's not autoloaded for some other reason.)
19:46:21 <kmc> heh
19:46:41 <pikhq> All Microsoft's fault.
19:47:32 <pikhq> (Notepad expects and emits a UTF-8 BOM for UTF-8 text)
19:48:03 <fizzie> "Failed to open subtitle demuxer", it says, if I explicitly -subfile it. (VLC is happy with it though.)
19:51:20 <fizzie> This was from the Finnisn national broadcasting company's web thing (YLE Areena), though I'm really not sure if it's their fault, or the YLE-specific rtmpdump script+plugin's fault.
19:51:35 <fizzie> urllib.urlretrieve(url, subtitlefile.encode(enc, 'replace'))
19:51:38 <fizzie> self.add_BOM(subtitlefile)
19:51:44 <fizzie> Okay, that's quite clear.
19:52:21 <fizzie> I'm assuming some player or another is using the BOM to go all "hey, these subs are in UTF-8 and not in our legacy 8-bit encoding".
19:54:58 <Sgeo> pikhq, Microsoft has done some good though. Isn't XMLHttpRequest from IE?
19:54:59 <fizzie> Also I think the web thing used to have burned-in subtitles in the RTMP video stream, it's kind of nice that they've switched it to an external SRT file presumably loaded by the official Flash player.
19:55:09 <kmc> heh, that seems likely
19:55:39 <kmc> btw python urllib sucks ass
19:55:43 <kmc> 'requests' is a much nicer library
19:55:53 <Sgeo> Aren't you supposed to use urllib2?
19:56:10 <kmc> someone probably thinks so
19:56:14 <kmc> but requests is nicer than urllib2
19:56:30 <Sgeo> I meant over urllib
19:59:48 <fizzie> Sgeo: It imports urllib and urllib2.
20:00:34 <fizzie> I seem to recall you used some things from the old one. But I haven't used it much. (It wasn't a nice library.)
20:02:27 -!- shubshub has quit (Remote host closed the connection).
20:03:30 <fizzie> yle-dl changelog, 1.99.7: "Add byte order mark into subtitle files. Some players don't show umlaut characters correctly without it."
20:04:44 <zzo38> How fast would CPU having an internal memory and an external memory, where the internal memory is partially ROM and partially RAM and also includes the external address bus and data bus as locations in the internal memory, it execute instructions from the internal memory using VLIW instructions and those are used like microcodes to execute external instructions?
20:37:37 -!- MoALTz has joined.
20:37:44 * Sgeo is poking a giant gaping hole in the Clojure bot's sandbox in #clojure
20:37:52 <Sgeo> Although someone else discovered the hole, I'm exploring it
20:39:26 <elliott> have fun
20:42:34 -!- epicmonkey has quit (Ping timeout: 240 seconds).
20:46:06 -!- carado has joined.
20:50:38 <zzo38> Now I figured out how to beat the demon in Dungeons&Dragons game, I think, although we need to beat the chancellor first just because it is more important.
20:50:50 <zzo38> We need to somehow tilt the demon's castle.
20:51:37 <zzo38> Like how Kaiji managed to tilt the entire casino in order to win at a pachinko game.
20:52:27 <atriq> Like in New Super Mario Bros Wii?
20:52:41 <atriq> It may or may not have happend in New Super Mario Bros Wii
20:52:45 <atriq> I'm only on world 2
20:53:14 <zzo38> I don't know if it happens in New Super Mario Bros Wii, I have not played that game.
20:53:53 <elliott> `:t foldr
20:53:55 <elliott> :t foldr
20:53:56 <lambdabot> forall a b. (a -> b -> b) -> b -> [a] -> b
20:54:02 -!- carado has quit (Ping timeout: 255 seconds).
20:54:03 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: :t: not found
20:59:16 <zzo38> When I was in the castle last time, I found that it was not tilted, and there is also water on the ceiling. If I use anti-magic in there (I know where to get such a device), the water might fall down and flood everything. Or maybe it is even artificial gravity and something will go wrong with that too...
21:00:47 <atriq> Do you have any manipulate water spells?
21:01:03 <zzo38> I can't use those in a anti-magic field!
21:01:16 <atriq> ...manupulate water prayers?
21:01:30 <zzo38> I can't use those in a anti-magic field either!
21:01:43 <atriq> A very large sponge?
21:01:54 <olsner> erect an anti anti-magic field field
21:02:23 <zzo38> No, my plan was to tilt the building so that all the water would go to one side
21:02:35 <zzo38> So that it is shallow on one side and deep on one side
21:02:40 <atriq> One day I may actually play D&D
21:03:12 <zzo38> What character do you prefer to play?
21:03:26 <atriq> I dunno
21:03:31 <atriq> Probably a cleric type
21:03:39 <elliott> kmc:
21:03:40 <elliott> *Main> :kind! Foldr Pair Unit (Map Show '[Int, String])
21:03:40 <elliott> Foldr Pair Unit (Map Show '[Int, String]) :: Constraint
21:03:40 <elliott> = Pair (Show Int) (Pair (Show [Char]) ())
21:03:54 <zzo38> I do happen to know the demon's age if that ever becomes important (I know by psychic impressions on a chancellor's guard's sword)
21:03:59 <elliott> (class (a, b) => Pair a b; instance (a, b) => Pair a b); type family Unit :: Constraint; type instance Unit = ())
21:04:10 <elliott> kmc: real world haskell
21:04:39 <zzo38> atriq: There are different versions of D&D game; I am playing D&D 3.5 edition. One day I may complete the writing of Icosahedral RPG rules; much of what I have in my mind I have not typed.
21:04:56 <atriq> I've got the 4th ed player's handbook
21:05:18 <zzo38> I don't really like 4th edition, many other people also don't like it
21:05:42 <atriq> I dunno, I've never actually played it
21:05:49 <atriq> Or 3.5 or any other D&D
21:06:00 <atriq> I've also got the Diana: Warrior Princess book
21:06:53 <zzo38> I also happen to know that the demon's magic powers are less powerful the farther away he is from his castle (I know this from the illithid savant's "lore" class feature); my idea initially was to try to lure the demon to the opposite side of the Earth.
21:07:15 <atriq> That'd take a while
21:07:26 <atriq> It might be quicker to move his castle
21:07:28 <zzo38> Yes I know, that is one reason why I won't do it
21:08:27 <elliott> http://sprunge.us/jTUh
21:08:31 <elliott> good ghc errors
21:08:41 <elliott> (while trying to write mapElimH :: (All c ts) => (forall a. (c a) => a -> r) -> HList ts -> [r])
21:09:45 <zzo38> I know a shortcut to the inside of the castle, which only works at nighttime, though. I may need a team to come in this way, exit through the door or something, and weaken the foundation, to tilt the castle.
21:14:42 <zzo38> But at first I need to get rid of the assassins, and I have some plan related to the phase of the moon and pretending to be trapped by the illithid haters society and miscast a spell intending to communicate with someone else, so they will believe me and try to kill me, but it is a illusion so that way I can trap them.
21:14:58 <zzo38> And then after that, I somehow need to trap the chancellor too, and rescue the king.
21:16:08 <zzo38> I cannot enter the king's castle because only the chancellor's guards are seen at the entrances; the king's guards are no where to be seen. So instead we just try something else, such as, sending messages secretly to the royal scribes and so on.
21:16:26 <zzo38> Hopefully the chancellor's guards have not infiltrated them too!
21:20:05 <atriq> How much do you know about the Chancellor?
21:20:15 <atriq> And how much does he know about you?
21:21:34 <elliott> allThrough :: (All p (x ': xs)) => (forall ys. (All p ys) => rep ys -> r) -> rep xs -> r
21:21:34 <elliott> allThrough k = k
21:21:36 <elliott> even this isn't helping :(
21:32:19 -!- mindlessDrone1 has joined.
21:33:40 -!- mindlessDrone has quit (Ping timeout: 268 seconds).
21:33:51 -!- nys has joined.
21:36:26 <zzo38> I know a few things about the chancellor and he knows a few things about me. I do happen to know the chancellor is evil and I know his age too, but I do not know his location. The chancellor probably knows a few things about me or at least his guards do; they hired an assassin to kill me.
21:36:37 <zzo38> And I know exactly how much money they got paid for that job, too.
21:37:09 <atriq> Could you outbid the assassin?
21:37:24 <kmc> shachaf: Did you get your Stripe web CTF shirt yet?
21:38:45 <shachaf> kmc: Nope.
21:38:48 <shachaf> Did you?
21:38:52 <kmc> nope
21:39:03 <shachaf> I was thinking it was just me, since they never managed to get it to me last time.
21:39:09 <kmc> yeah, not just you
21:39:14 <kmc> i should bug gdb about it
21:39:24 <kmc> or perhaps i could... de-bug gdb?!?!?
21:39:50 -!- mindlessDrone1 has left.
21:41:06 <shachaf> Occasionally I go to their various events, so I might bug him then.
21:45:33 <zzo38> atriq: I have not enough money to outbid the assassin.
21:45:37 <atriq> :(
21:45:57 * kmc is currently mashing four potatoes
21:46:01 <kmc> shachaf: what are their events like?
21:46:01 <zzo38> Even if I did have enough, I do not know where the assassin's guid is.
21:46:09 <zzo38> s/guid/guild/
21:46:50 <olsner> kmc: four potatoes!
21:46:58 <atriq> Do you know where there's a thieves' guild?
21:49:11 <elliott> *Main> mapElimH' showTo (HCons 1 (HCons "abc" HNil))
21:49:11 <elliott> ["1","\"abc\""]
21:49:12 <elliott> aww yeah
21:49:44 -!- atriq has quit (Remote host closed the connection).
21:50:20 <zzo38> I don't know a thieves' guild either but I don't think I need one of those.
21:50:53 <FreeFull> elliott: is HCons like Lisp's cons?
21:51:00 <elliott> depends what that means
21:51:11 <elliott> sort of and no
21:51:18 <FreeFull> Is there a HCar and HCdr
21:51:19 <kmc> whatever it is, i'm sure lisp's is better because it's lisp
21:51:39 <kmc> these are type level lists right
21:51:47 <kmc> except that you've used some insane GHC 7.4 black magic
21:51:54 <kmc> or am i totally off base
21:52:31 <elliott> it's actually 7.6 black magic at this point
21:52:57 <elliott> kmc: http://sprunge.us/BJHh
21:53:10 <elliott> took the Show thing from an SO answer and modified it and am trying to get it to use mapElimH
21:54:52 -!- Nickname_ has joined.
21:55:40 <elliott> next up: toListH :: (Homogeneous ts a) => HList ts -> [a]
21:56:11 -!- MoALTz has quit (Quit: Leaving).
21:56:11 <kmc> that is my experience as well
21:56:14 <kmc> it is a matter of when, not if
21:56:14 <elliott> actually hm
21:56:16 <elliott> maybe i want something more like
21:56:22 <kmc> but all things decay Sgeo
21:56:34 <zzo38> If atriq is ever come back on let them to read the recent text on my Dungeons&Dragons game if interested, or anyone else read if interesting perhaps you comment on my plans too
21:56:38 <elliott> toListH :: HList ts -> Maybe () [] (Homogeneous ts)
21:56:44 <elliott> hmmmmmm
21:56:46 <Sgeo> Oh, I think it was the video, not the headphones
21:56:53 <elliott> oh I actually do want a typeclass I think
21:56:54 <zzo38> Or even complain about spelling and grammatical errors if you want to
21:56:55 <elliott> just one with an ATF
21:57:00 <zzo38> What is ATF?
21:57:32 <elliott> associated type family
21:57:59 <kmc> alcohol tobacco and firearms
21:58:05 <elliott> uhh what's the simplest way of writing a foldr that checks all elements of a list are equal
21:58:05 <kmc> essential ingredients for haskell programming
21:58:08 <elliott> on the value level
21:58:12 <elliott> shachaf: help
21:58:12 <olsner> kmc: ... and explosives, nowadays
21:58:26 <olsner> http://en.wikipedia.org/wiki/Bureau_of_Alcohol,_Tobacco,_Firearms_and_Explosives
21:58:29 <kmc> yeah
21:59:02 <zzo38> What type family do you need?
21:59:47 <elliott> something along the lines of toListH :: (Homogeneous ts) => HList ts -> [Elem ts]
22:00:17 <elliott> oh hm
22:00:29 <elliott> that doesn't work because HNil is polymorphic
22:00:31 <elliott> interesting
22:01:24 -!- Nickname_ has quit (Quit: Alt-F4).
22:02:06 <elliott> aha
22:02:07 <elliott> toListH :: (All ((~) a) ts) => HList ts -> [a]
22:02:34 <elliott> toListH :: (All ((~) a) ts) => HList ts -> [a]
22:02:34 <elliott> toListH = mapElimH' cast
22:02:34 <elliott> cast :: To ((~) a) a
22:02:34 <elliott> cast = To id
22:03:02 <elliott> so now just to separate mapElimH' and toListH
22:03:56 <elliott> toListH :: (All ((~) a) ts) => HList ts -> [a]
22:03:56 <elliott> toListH HNil = []
22:03:56 <elliott> toListH (HCons x xs) = x : toListH xs
22:03:57 <zzo38> One thing Haskell doesn't have but would be like is classes with automatic instances, you cannot define your own instances you can only use the instances made automatically. Typeable should be made into such a class. But I have wanted to make other classes having this feature too.
22:04:02 <elliott> *Main> :t toListH
22:04:02 <elliott> toListH
22:04:03 <elliott> :: (Foldr
22:04:03 <elliott> Constraint Constraint Pair () (Map Constraint * (* ~ a) ts)) =>
22:04:03 <elliott> HList ts -> [a]
22:04:10 <elliott> kmc: i am enterprising
22:07:05 <shachaf> kmc: You were at one of them, weren't you?
22:07:06 <lambdabot> shachaf: You have 1 new message. '/msg lambdabot @messages' to read it.
22:07:24 <shachaf> elliott: help
22:15:13 <kmc> at what?
22:15:15 <kmc> oh
22:15:20 <kmc> yeah i was at the first ctf wrapup
22:24:47 <mroman> zzo38: Why would you want that?
22:29:00 <zzo38> mroman: It would be useful sometimes, when you want to indicate that certain features of the type are available, as part of a constraint, Typeable is one example of such thing, although there are others, such as types belonging to another class but without exposing its methods, etc
22:30:53 <olsner> "Seriously, what moron in this day and age is not familiar with the limitations of aclocal and the best practices to use system-wide m4 macros?" :D
22:31:42 <kmc> http://www.nytimes.com/2012/10/20/us/in-silicon-valley-perks-now-begin-at-home.html
22:31:58 <kmc> let's feed our programmers and do their laundry and clean their rooms and make sure they don't have to be capable of functioning as adults in any way
22:32:44 <kmc> programmers are children right, it would be crazy to just give them money and expect them to spend that money in ways they see fit
22:33:12 <zzo38> Not all programmers are children. Some may be.
22:34:15 <elliott> oh no
22:34:18 <elliott> I need a way to eliminate via iso here
22:34:31 <elliott> this sux
22:34:32 <kmc> i think there is a learned helplessness aspect too
22:34:55 <kmc> when all your daily needs are met by The Company and all your friends and housemates work for The Company and all your social events are organized by The Company, it makes it that much harder to quit
22:36:57 <zzo38> That is why you need to quit.
22:37:11 <Sgeo> elliott, Phantom_Hoover monqy mapdate
22:49:45 -!- ais523 has quit.
23:30:41 -!- Vorpal has quit (Read error: Operation timed out).
23:36:25 -!- Nisstyre-laptop has quit (Ping timeout: 246 seconds).
23:38:35 -!- Nisstyre-laptop has joined.
23:40:27 -!- monqy has quit (Quit: hello).
23:41:51 -!- monqy has joined.
23:51:57 <shachaf> kmc: Have you had strawberries with balsamic vinegar?
23:53:44 <copumpkin> OM NOM NOM
23:53:45 <copumpkin> also, bacon
23:54:03 <shachaf> copumpkin: I don't think I've had that.
23:54:22 <copumpkin> bacon with balsamic is good
23:54:35 <kmc> everything is good with balsamic
23:54:40 <shachaf> Everyth -- that.
23:58:17 <elliott> test :: ((forall a. (Show a) => a -> String) ~ (Int -> String)) => ()
23:58:19 <elliott> why is this not ok
23:58:21 <elliott> is there a ~ that means
23:58:23 <elliott> "can unify with"
23:58:25 <elliott> so i can do
23:58:30 <elliott> (a ~ String -> String, a ~ Int -> String)
23:58:38 <elliott> and a = forall a. (Show a) => a -> String
23:58:39 <elliott> works
←2012-10-19 2012-10-20 2012-10-21→ ↑2012 ↑all