00:02:29 <kmc> we need to A/B-test that shit
00:02:39 <kmc> who wants the title of #esoteric growth hacker
00:03:08 <HackEgo> rm: cannot remove `bin/*elcom*': No such file or directory
00:03:49 -!- tertu has joined.
00:04:05 <Bike> for a/b testing we're gonna need two hack egos, and which one a given person commands has to be random
00:05:10 <kmc> two hacks ego
00:23:12 -!- Phantom_Hoover has quit (Quit: Leaving).
00:33:59 -!- Sgeo has joined.
00:36:21 <Sgeo> `homestarrunnerlist
00:36:22 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: homestarrunnerlist: not found
00:38:50 <HackEgo> battscoin exedcoin anicecoin metalcoin toucoin lcourbelcoin rocumcoin mannahcoin this=thagoncoin mercoin epicoin sootcoin entectncoin smarcoin shwhaltritcoin madrainfucker)coin attacoin befuncorcoin reraturcoin smncoin
00:41:29 -!- shikhout has joined.
00:44:27 -!- shikhin has quit (Ping timeout: 255 seconds).
00:44:33 -!- shikhout has changed nick to shikhin.
01:17:23 -!- shikhin has quit (Remote host closed the connection).
01:23:01 -!- ^v has quit (Read error: Connection reset by peer).
01:23:29 -!- ^v has joined.
02:40:10 -!- xpte has joined.
02:42:14 -!- Sorella has quit (Quit: It is tiem!).
02:57:47 -!- darwin has joined.
02:57:50 -!- darwin has left ("Leaving").
02:58:35 -!- darwin has joined.
02:58:48 -!- darwin has left ("Leaving").
03:43:11 <HackEgo> timinuschecoin watecoin haffe7coin enamoucaleverixcoin sbancoin grofcoin nicecoin braintegdcoin nyboxcoin infalcatcoin ctorcoin laziacoin bf-rlecoin frackcoin thumbercoin elogiccoin loadcoin shructioncoin domcoin supecoin
03:43:54 <ion> `run cat /home/hackbot/hackbot.hg/multibot_cmds/lib/limits
03:43:54 <HackEgo> #!/bin/bash \ ulimit -f 10240 \ ulimit -l 0 \ ulimit -u 128 \ exec -- "$@"
03:46:09 <kmc> `dis86 4daf5f1e95
03:46:09 <HackEgo> scasq; pop rdi; invalid; xchg ebp, eax;
04:04:06 <Sgeo> Does... sdelete not like me trying to delete directories that ... have files?
04:09:24 -!- conehead has quit (Quit: Computer has gone to sleep).
04:18:36 <Bike> `run file $(which dis86)
04:18:37 <HackEgo> /hackenv/bin/dis86: ASCII text
04:18:48 <Bike> `cat /hackenv/bin/dis86
04:18:48 <HackEgo> bin="$1"; shift; unhex "$bin" | udcli -noff -nohex -64 "$@" | perl -pe 's/^ *//; s/ *\n/; /;'
04:38:35 -!- conehead has joined.
05:09:42 -!- tromp_ has quit (Remote host closed the connection).
05:10:18 -!- tromp has joined.
05:14:27 -!- tromp has quit (Ping timeout: 255 seconds).
05:29:33 -!- conehead has quit (Quit: Computer has gone to sleep).
05:32:02 -!- tertu has quit (Ping timeout: 246 seconds).
05:42:37 <kmc> `cat /hackenv/bin/as86
05:42:38 <HackEgo> as="$1"; shift; echo ".intel_syntax noprefix; $as" | gcc "$@" -c -x assembler /dev/stdin -o /tmp/as86.o && objcopy -O binary /tmp/as86.{o,bin} && xxd -p /tmp/as86.bin
05:44:33 <Jafet> Love the hardcoded tmpnams
05:45:16 -!- password2 has joined.
05:48:02 <kmc> `run as86 ret & as86 nop; wait
05:48:42 <kmc> aha i got a c3 \ c3 after some tries
05:49:22 <Jafet> `run for i in `seq 8 15`; do as86 r$i &; done; wait
05:49:23 <HackEgo> bash: -c: line 0: syntax error near unexpected token `;' \ bash: -c: line 0: `for i in `seq 8 15`; do as86 r$i &; done; wait'
05:51:20 <Jafet> `run for i in `seq 8 15`; do (as86 r$i &); done; wait
05:51:21 <HackEgo> /dev/stdin: Assembler messages: \ /dev/stdin:1: Error: no such instruction: `r12' \ /dev/stdin: Assembler messages: \ /dev/stdin:1: Error: no such instruction: `r11'
05:51:38 <Jafet> `run for i in `seq 8 15`; do (as86 'push r'$i &); done; wait
05:51:39 <HackEgo> objcopy: error: the input file '/tmp/as86.o' is empty
05:51:56 <Jafet> Also awesome bash syntax
05:52:47 <kmc> i think "& done" will also work
05:52:49 <fizzie> You don't need a subshell; for ...; do foo & done is valid.
06:01:31 -!- nisstyre has quit (Quit: WeeChat 0.4.3).
06:03:20 -!- olsner has joined.
06:05:01 <ion> I just lost the game.
06:05:54 <kmc> yeah, that one
06:08:55 -!- password2 has quit (Ping timeout: 264 seconds).
06:11:19 -!- nisstyre has joined.
06:25:33 -!- password2 has joined.
07:13:22 -!- EgoBot has quit (Ping timeout: 265 seconds).
07:13:54 -!- EgoBot has joined.
07:24:52 -!- Sprocklem has quit (Quit: leaving).
07:29:30 -!- ^v has quit (Quit: http://i.imgur.com/DrFFzea.png).
07:37:41 -!- S1 has joined.
07:38:19 <HackEgo> fractioncarandrijcoin ortacoin minicoin braincoin singtoniimtitiicoin easepolicoin highcoin bracoin brackcoin shakencalcoin minecoin starcoin timicoin eplieycoin smucoin easepolcoin concacoin filosophycoin ortcoin 0x25coin
08:06:34 <Sgeo> So, the three big Haskell frameworks are each moving to use different streaming solutions
08:06:38 <Sgeo> *web frameworks
08:07:53 <kmc> what do you mean by streaming solutions
08:09:10 <Sgeo> conduits/pipes/io-streams
08:09:45 <kmc> unfortunate that the haskell community has still not converged on one of those
08:09:59 <kmc> haskell has lots of ecosystem fragmentation
08:10:09 <kmc> or whatever the hell you would call that
08:15:15 -!- Tritonio has joined.
08:29:16 -!- S1 has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
08:30:24 <Sgeo> http://jaspervdj.be/posts/2013-10-22-websockets-0.8.html
08:30:29 <Sgeo> Interesting appendix
08:31:03 <Sgeo> (essentially: wondering if io-streams may be better for libraries as a lower-level thing that may work well with higher-level things like conduits and pipes, I think)
08:33:11 -!- Frooxius has quit (Read error: Connection reset by peer).
08:35:39 -!- Frooxius has joined.
08:37:21 -!- oerjan has joined.
08:43:51 <olsner> hmm, if I'm reading this right rust emits a stack check using TLS at the start of every function, and this can't be disabled because something about memory safety
08:44:16 <olsner> or maybe it can, but I'm reading the wrong series of closed bugs
08:51:14 <olsner> (that the stack check is 37 extra bytes for every function is great too)
08:51:59 -!- olsner has quit (Quit: Leaving).
10:00:40 -!- yorick has joined.
10:16:38 -!- boily has joined.
10:52:18 -!- maurer has quit (Ping timeout: 240 seconds).
10:53:25 -!- maurer has joined.
11:02:11 -!- boily has quit (Quit: Poulet!).
11:44:21 -!- MindlessDrone has joined.
12:18:48 -!- oerjan has quit (Quit: leaving).
12:35:04 <Jafet> Is it wrong to be amused at the name of Ludwig Bieberbach
12:50:09 <quintopia> i was going to add another line to that, but I can Nazi a way to make it rhyme
12:51:25 <quintopia> but yeah, no one was as schlicht as that guy
13:00:12 -!- spiette has joined.
13:01:21 -!- xpte has quit (Quit: Connection closed for inactivity).
13:06:12 <int-e> kmc: I had an explicit request (from mm_freak) for removing lambdabot from ##crypto. Can you please sort this out? I don't want to be part of that fight.
13:07:42 -!- Sgeo has quit (Read error: Connection reset by peer).
13:18:17 -!- spiette has quit (Ping timeout: 265 seconds).
13:27:44 -!- spiette has joined.
13:28:05 -!- `^_^v has quit (Quit: This computer has gone to sleep).
13:29:21 -!- `^_^v has joined.
13:50:11 <elliott> does it collide with an existing prefix there or something?
13:51:01 <elliott> according to chanserv, kmc is an op of ##crypto and mm_freak is not
13:53:02 <Jafet> I wonder if they discuss actual cryptography there now
13:53:29 -!- Giannos_Gr has joined.
13:53:43 <int-e> elliott: I want to avoid going back and forth on this.
13:54:00 <elliott> ok, I don't know if there's history or anything, just providing data
13:54:18 <int-e> yes, I appreciate that
13:55:03 <elliott> residual #haskell-ops instincts :)
13:59:47 -!- Giannos_Gr has left.
14:34:14 -!- TodPunk has quit (Ping timeout: 265 seconds).
15:02:22 -!- xpte has joined.
15:07:20 -!- TodPunk has joined.
15:08:32 * int-e ponders "<Taneb> Also I regret giving #cs-york lambdabot"
15:18:46 <Taneb> int-e, lambdabot's been kicked now
15:52:26 -!- Phantom_Hoover has joined.
16:03:58 <Taneb> And now I am doing scary Python programming
16:04:30 <Taneb> (for one reason or another I'm restricted to one file and it's up to 500 lines)
16:23:00 <Jafet> Make sure to use as many different classes as you can
16:23:11 <Jafet> It enhances maintainability
16:27:42 <Jafet> Ok when did applybot break 1500 lines
16:27:53 <Jafet> I don't remember this happening
16:33:32 <coppro> Jafet: Ludwig Bieberbach doesn't make much sense to me.
16:33:44 <coppro> would be funnier to combine only one classical composer with bieber
16:37:02 <Jafet> I was going to say that Bach was not a classical composer, but forgot about Carl
16:38:36 -!- Tritonio has quit (Ping timeout: 252 seconds).
16:40:27 <Jafet> I've heard a theory that python is a good language because you can write ~10^3 lines in it before your code becomes unmaintainable, compared to perl where it's ~10^2 lines
16:48:21 <Phantom_Hoover> <Taneb> (for one reason or another I'm restricted to one file and it's up to 500 lines)
16:48:52 <Taneb> Phantom_Hoover, I'm writing it with someone who insists max 80 characters
16:49:47 <Taneb> This is Python, not Perl
16:49:50 <newsham> jafet: "unmaintainable" is a strong word.
16:50:19 <newsham> python code is pretty maintainable even at scale.. but you just have lots of low hanging bugs that arent easily shaken out by a type checker.
16:50:53 <newsham> also 10^3 and 10^2 are harder to type than 1000 and 100 :)
16:53:08 <Jafet> In this context, 10^3 does not mean the same thing as 1000.
16:55:24 <Jafet> ~10^3 implies a range somewhere between 10^2 and 10^4. ~1000 implies a range somewhere between a few hundred and 2000.
16:56:34 <quintopia> when i see ~10^3 i think "3 digits"
16:57:39 <Jafet> Personally, I have not seen good python code past 10^3 lines or so. There is little documentation (docstrings don't count), no type system, and no confidence that anything that is documented does work as documented
16:58:15 <Jafet> Then I refer to the source code and it invariably looks like java without the type checking.
16:59:11 <newsham> perhaps you should read more python code?
16:59:55 <newsham> how about https://github.com/trevp/tlslite ?
17:00:59 <Jafet> Why should I read that?
17:02:51 <Jafet> Reading a TLS stack written in python doesn't sound very enjoyful.
17:03:20 <Jafet> I would guess that the authors derived enjoyment from writing it.
17:05:43 <newsham> mind you most my published python codeis around 500loc, beautiful, bug free, and well documented ;-)
17:07:08 <Jafet> They don't seem to have negative tests, though this isn't that surprising any more.
17:08:03 -!- ^v has joined.
17:09:11 <kmc> int-e: sigh, then it stays out of ##crypto I guess
17:11:00 <kmc> <int-e> kmc: I had an explicit request (from mm_freak) for removing lambdabot from ##crypto. Can you please sort this out? I don't want to be part of that fight.
17:12:05 <kmc> i don't care that much if lambdabot is in ##crypto
17:14:35 <newsham> > -- because it might conflict with another bot?
17:14:36 <lambdabot> not an expression: `-- because it might conflict with another bot?'
17:15:45 <newsham> also she is no longer a vixen
17:17:54 <kmc> haha this again
17:17:58 <kmc> newsham: I think it's good
17:18:12 <kmc> well mm_freak kickbanned lambdabot when he left the channel
17:18:33 <lambdabot> I don't want to see this country to go that way. You know what happened to the Greeks. Homosexuality destroyed them. Sure, Aristotle was a homo, we all know that, so was Socrates.
17:18:46 <newsham> is it just doing random quotes for vixen now?
17:18:53 <kmc> vixen -> nixon
17:19:03 <lambdabot> Don't put all your ducks in one barrel.
17:19:27 <kmc> mm_freak left because of my "anti-haskell crusade" wherein I claim that Haskell is a capable, practical programming language rather than a perfect object of mathematical beauty which will solve all of humanity's problems
17:19:46 <elliott> wait, why is mm_freak involved in whether lambdabot is in ##crypto if he is not in the channel?
17:19:51 <newsham> a little birdy told me that haskell is not math.
17:19:56 <kmc> beats me elliott
17:20:10 <newsham> its funny that all the programmers think haskell is math, and all the math people think it is not.
17:20:19 <zzo38> I am sure it won't solve all of humanity's (or anyone else's) problems, any more than, another programming language
17:20:25 <kmc> on the (substantial) list of interpersonal drama I can get involved with, this has a pretty fucking low priority
17:20:52 <kmc> newsham: well I'm a programmer and I don't think Haskell is math, although it obviously has connections to math, as do other programming langugaes or most things really
17:20:52 <newsham> zzo38: not until it can be compiled to javascript, at least. ;-)
17:21:33 <kmc> newsham: I think it's funny how Haskell detractors and Haskell zealots believe the same set of falsehoods about the language
17:21:34 <zzo38> newsham: Compiling it to JavaScript isn't really all that good either, but at least it is another possible target.
17:22:00 <newsham> zzo38: javascript is for solving the worlds problems!@#
17:22:03 <kmc> most recently mm_freak was trying to claim that GHC Haskell doesn't have shared-memory concurrency
17:22:05 <zzo38> Haskell has a lot of mathematical stuff on it but only computable (or partially computable) and it can't be ideal like mathematics can be, any more than any other computer program can be !
17:22:18 <zzo38> newsham: No it can't solve the world's problems very well either!
17:22:43 <newsham> zzo38: sure it can! see the facebooks! and the tweets! and the goog pluses!@#!@#
17:22:44 <kmc> because someone else was talking about how Rust doesn't have shared memory concurrency, and that this is a good thing, and if another language has a good thing then Haskell obviously has it but better, never mind what the facts are
17:23:03 <kmc> (not really true that Rust doesn't have shared-memory concurrency, either, but more true than for GHC Haskell)
17:23:05 <lambdabot> ghc need to have plugin that allow copy paste in xp
17:23:31 <zzo38> newsham: O, it is bad because Hitler did it.
17:24:23 <elliott> I mean I don't really want #esoteric to be feud central, I was just confused.
17:25:17 -!- olsner has joined.
17:26:23 <int-e> elliott: it's an interesting bit of information.
17:27:28 <int-e> kmc: I can easily add ##crypto back; the real question is whether it annoys people on the channel or not.
17:28:21 <kmc> also it is there at the moment
17:28:38 <kmc> the entirety of what's been said about lambdabot since lambdabot rejoined is
17:28:39 <kmc> 15:38 -!- lambdabot [~lambdabot@silicon.int-e.eu] has joined ##crypto
17:28:39 <kmc> 15:40 < kmc> lambdabot: welcome back!
17:28:39 <kmc> 15:41 < sarnold> lambdabot: botsnack!
17:29:48 <elliott> I could understand if the channel had hate speech or whatever, but this seems like deliberate troublemaking.
17:30:29 <elliott> I mean, trying to get lambdabot out of a channel you're not in
17:30:53 <kmc> he used to be an op there, but not anymore I guess
17:31:17 <int-e> That was a month ago. I dunno.
17:31:38 <kmc> yeah so it happened when he quit the channel
17:39:06 <lexande> is math a perfect object of mathematical beauty which will solve all of humanity's problems?
17:39:17 <lexande> maybe in some vacuous sense
17:39:25 <lexande> but maybe it can only have metamathematical beauty
17:40:28 <int-e> lexande: you can define the can of beans as open. this easily generalizes to larger real world problems.
17:42:49 <zzo38> Don't expect, that humanity is the only thing having a problem, and that furthermore, one thing can solve all of them. Both things are impossible...
17:43:11 <Bike> way to be anti-haskell zzo
17:43:33 <int-e> . o O ( humanity is part of the problem space )
17:44:22 <Bike> if you're not part of the solution you're part of the noxious acidic gas rising from it
17:44:44 <olsner> is that the precipitate?
17:49:17 <lexande> i think that's a precipitate
17:53:31 <Jafet> Acidic precipitation
17:57:26 -!- nisstyre has quit (Quit: WeeChat 0.4.3).
17:58:09 <newsham> math can solve humanities problems. most notably subtraction of certain people and addition of others.
17:59:45 -!- oerjan has joined.
18:02:03 <Jafet> What about multiplication
18:02:33 <newsham> multiplication has lead to a lot of problems, but does underly a lot of our current economic strategies
18:04:23 <quintopia> george washington has warned us about division, however
18:05:21 <newsham> but only after he divided the british empire. so perhaps he didnt mean it generally
18:05:45 <quintopia> lexande: i belief math, to the extent it is economics, has the potential to solve a lot more problems than "social consciousness"
18:06:37 <newsham> unfortunately a lot of economics is based on math that is untethered from any physical reality.
18:06:53 <newsham> maybe someday we'll figure out how to fix that
18:07:22 <quintopia> economics is a relatively young field of study
18:07:35 <Jafet> There seems to be this bizarre popular misconception that if you generate a probable prime and it turns out to be not actually prime, your cryptosystem will instantly break
18:08:41 <Jafet> (#programmersarestoopid)
18:09:09 <quintopia> "psychology" has now gone two directions: there's cognitive neuroscience, which is where neuroscience met computer science, and there's economics, which is what behaviorism has evolved into.
18:10:22 <quintopia> Jafet: if your composite "probable prime" has lots of small factors, then any data encrypted with it is definitely insecure
18:11:45 <newsham> though i'm pretty sure crypto libs do a sieve against small primes after generation
18:12:30 <int-e> it's also very unlikely that it will qualify as a probable prime.
18:13:08 <newsham> but you know.. when 1/2^100 eventually happens, you wanna be safe ;-)
18:13:11 <quintopia> it's very unlikely that any composite will...that's the whole point
18:13:55 <quintopia> i wish they'd just hurry up and prove the riemann hypothesis already so we can have the dang miller test
18:14:14 <int-e> when the probability is lower than that of a hardware failure, that may be a good point to stop worrying.
18:14:54 <quintopia> i've had enough hardware failures in my life to keep worrying
18:15:48 * Bike vomits all over the channel
18:16:07 <int-e> quintopia: I meant to stop worrying about the primality of the probably prime and start worrying about hardware failures instead.
18:16:15 <Bike> stop saying things like economics evolving out of behaviorism then!
18:17:05 * int-e agrees with Bike there; just because there is an overlap (once you give up the "rational agent" simplification doesn't mean one evolved into the other)
18:17:39 <Jafet> The thing that people don't get is that if there was any cryptosystem that would break if you handed it a fake prime, you would instantly get a primality test
18:17:58 <int-e> well, primality is in P
18:18:14 <Bike> there's nothing much to say, i don't know where the hell you get your idea of psychology and its history but what you're saying has nothing to do with reality
18:18:17 <Bike> anyawy https://twitter.com/BuzzFeedAndrew/status/451410960519938048/photo/1
18:19:54 <int-e> twitter makes those URLs useless without javascript.
18:20:03 <quintopia> Bike: have you looked at economics research lately? it bares little resemblance to what it was back before modern psychology. that old-school stuff has been shoved aside (not completely...there's room for everyone i guess)
18:20:35 <Bike> that doesn't mean psychologists started becoming economists!
18:21:06 <Jafet> Shoved into schools
18:21:18 <Bike> that's what you said. "psychology" has now gone two directions...
18:21:35 <Bike> also, plenty of economic research is unrelated to the psychological states of actors.
18:21:38 <quintopia> more the other way around really. or maybe more like people who decided to become "economists" lately end up looking more like psychologists of old
18:22:17 <quintopia> i didn't say ALL of economics was subsumed by psychology
18:22:38 <quintopia> you are extrapolating way too much in the wrong directions
18:23:04 <zzo38> I read somewhere, someone who said, astrology is no good, and psychology is even worse.
18:23:13 <quintopia> in tracking philosophies and paradigms through time, it makes sense to say that many of those originating in psychology are now held by those calling themselves economists
18:23:37 <Bike> you said "that old-school stuff has been shoved aside" and the thing you said earlier pretty clearly looked like psychologists became x
18:23:59 <quintopia> i never used the word psychologists
18:24:20 <int-e> zzo38: Well, messing with people's heads works. It's much harder to influence the trajectories of planets.
18:24:35 <quintopia> and if something i say can be misinterpreted to your dislike, please ask what i mean before vomiting on me
18:25:41 <Bike> you said "psychology". i don't think i'm being weird by interpreting «"psychology" has now gone two directions» as meaning psychology became something.
18:26:05 <Bike> i'm more vomiting because it sure looks like the channel is doing this thing where computer nerds start talking shit about soft sciences they don't know anything about.
18:26:26 <quintopia> humans evolved from primates, but we're not the only primates. psychology has become more than two things, but i'm only concerned with two of them here
18:26:54 <elliott> oh come on, you're loopholing, there is no way your statement can be reasonably interpreted that way
18:27:55 <quintopia> elliott: but why would you even think that i was talking about clinical psychology or abnormal psychology or all that stuff? do i have to add a whole long list of qualifications to every damn thing i say?
18:28:45 <quintopia> i mispoke, but that doesn't mean you need to go accusing me of holding beliefs i don't hold
18:28:45 <int-e> because "psychology" encompasses all of those
18:28:58 <elliott> no, but saying things that clearly strongly imply something and then getting pedantic when someone disagrees with it just makes you really annoying to talk to...
18:29:04 <elliott> I should know because I used to do it constantly.
18:29:21 <elliott> it's permitted to just say you misspoke and take it back.
18:29:51 <quintopia> i'm not trying to get pedantic here. i'm trying to clarify. i know what i mean, but i don't know how to put it across so that i'm not misinterpreted
18:30:32 <Bike> "modern economics has a lot more psychological realism than it used to"
18:31:09 <quintopia> that works for part of it i suppose
18:31:28 <Bike> well what's the other part. what's the cognitive neuroscience thing even mean
18:32:57 -!- spiette has quit (Ping timeout: 265 seconds).
18:34:07 <quintopia> well that part you rephrased was supposed to convey more about economics adopting the principles of behaviorism, looking at what people actually do and treating them sort of like black boxes. (which is to say, they haven't quite gotten to the point of using actual neuroscience in their models)
18:35:09 <quintopia> and the other part means exactly what it says. cognitive neuroscience combines behavioral psychology with neuroscience with computer science models and other things
18:38:35 <Bike> so i'm supposed to interpret half of the sentence as meaning 'economics incorporated psychology' and the other half as 'psychology became cognitive neuroscience'?
18:39:53 <Bike> or am i supposed to interpret them both as meaning something incorporated psychology, despite cognitive neuroscience not being mentioned before and seeming kind of random, or what. i'm confused
18:42:29 -!- MindlessDrone has quit (Quit: MindlessDrone).
18:44:03 <quintopia> Bike: if you are having trouble interpreting my original statement, you should forget i ever said it, and ask about the things i said afterwards instead
18:44:22 -!- spiette has joined.
18:48:20 <Bike> how about before, can i complain about whatever weird thing you were complaining about as 'social consciousness'
18:49:24 <quintopia> that wasn't a complaint, but commentary on its inherent ephemerality. i don't think it's a bad thing to have, just that it won't stand throughout time.
18:53:54 <Phantom_Hoover> http://www.reddit.com/r/math/comments/21zdln/the_common_core_is_corrupting_school_mathematics/ holy shit this is awful
18:54:19 <Phantom_Hoover> http://i.imgur.com/0TDJAcR.jpg i mean for christ's sake the 'new' way is the way i learnt multiplication, it's far more sensible than the 'old' one
18:55:48 <Bike> um is this a j- right.
18:56:12 <Phantom_Hoover> i was confused on account of the fact that when it was posted it was 4 in the morning of april 2 when i saw it?
18:56:37 <Bike> «You heard it here first from the Reform Math lobby: the "easy" way to divide is using a square root.»
18:56:53 <oklopol> i wonder if that guy really has a phd in math
18:57:27 <Bike> http://imgur.com/cYBLWpZ hahaha
18:58:03 <Bike> "This was a simple, straightforward process that required only basic fraction sense, understanding of whole-number addition, and a first-semester course in undergraduate number theory."
18:58:47 <Bike> «The Common Core is introducing all of this "problem solving" that relies on sudden insight and creative thinking and getting math away from what children should be doing: learning to operate on numbers according to pre-specified routines and instructions to produce a simple numerical output - you know, the sort of work that will position our kids for jobs that will exist well into the 21st century.» this is a good post
19:03:10 <olsner> to be fair, it looks like both methods did give the same answer, just written differently
19:03:14 <kmc> I realized that Rust Objective-C bindings could support syntax like let string = objc![[NSString alloc] initWithCString: "Hello,
19:03:38 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
19:03:48 <Bike> olsner: part of the joke is the writer not knowing anything yeah
19:03:58 <Bike> kmc: is the newline intentional
19:04:12 -!- w00tles has joined.
19:04:31 <olsner> Objective-Rust, sounds great
19:04:38 <kmc> I'm just saying you can shoehorn Objective C method call syntax into Rust as a macro, which is pretty amusing
19:04:44 <kmc> olsner: yep yep
19:05:05 <quintopia> Bike: completing the square really is quite easy, and it is, in fact, the first method ever discovered to solve such problems, as well as the method by which the quadratic formula is derived. i definitely prefer it to the quadratic formula (but not to factoring if the problem is reducible)
19:05:55 <olsner> btw, I found the magic attribute to disable the ridiculous stack check, but it seems to be a *function* attribute
19:06:12 <Bike> completing the square is fine but that's not what the image is doing, is it?
19:06:45 <kmc> olsner: that's right
19:06:57 <Bike> if you wanted to complete the square you'd add, uh... 5/2 or something? man it's been too long -_-
19:07:15 <kmc> olsner: I don't think it's ridiculous; stack overflow would be a memory saftey violation
19:07:38 <kmc> but there should be better tools for turning off the check, and also it should probably use a guard page instead for functions with a stack frame smaller than one page
19:08:03 <Bike> oh is it 25/4 you add
19:08:13 <Bike> and that gives you (x + 5/2)², right
19:09:10 <Bike> as for the quadratic formula it's useful for whenever i want to solve a quadratic based on empirical data, because completing the square of 2.7x² + 5.3819x sounds p. annoying
19:09:23 <Bike> (in actuality i make the computer do it but w/e)
19:09:23 <quintopia> Bike: look near the end of the one he solved there. he adds 25/4 to both sides. it's completing the square...encrypted :P
19:09:28 <kmc> olsner: there are real-world examples of exploiting stack overflow in C programs for arbitrary code execution
19:09:38 <kmc> that's the kind of thing Rust is supposed to prevent absolutely, modulo unsafe code
19:09:55 <kmc> in practice it can't catch stack overflow in C code called from Rust code, unless the C was specially compiled
19:10:27 <Bike> having students derive the quadratic formula from square-completion would be nice for sure, i don't rmeember doing that in class
19:10:34 <quintopia> Bike: but i like his method too. it still requires less memorization than the quadratic formula, and more number sense as well :D
19:10:36 <Bike> "and then, you can jump into galois theory"
19:10:41 <fizzie> @tell Vorpal You've seen most of these already, but here they are all grouped together: http://zem.fi/2014-04-02-tl2
19:10:55 <Bike> quintopia: i'm honestly not sure i get where the substitution comes from
19:11:43 <quintopia> Bike: the substitution will always be (x+b/2)=u
19:12:08 <Bike> i think i'd rather complete the square
19:13:19 <quintopia> however, students who plan on eventually taking calculus might benefit from being able to make substitutions like tht
19:13:31 <quintopia> it also makes some trig identities a lot easier to solve
19:14:21 <Bike> for trig identities they oughta just teach euler's formula.
19:14:36 <Bike> the fact i iddn't learn it in high school is one of my great griefs against the educational system
19:16:02 <Taneb> Oooh! Today I ate a burrito
19:16:11 <Jafet> Schools teach integrals the same way that the reddit post teaches substitutions. You grab a magic term and substitute it for u and somehow it all works
19:16:31 <kmc> Taneb: congratulations
19:16:34 <kmc> what was in it?
19:16:37 <Bike> i'm still bad at integral substitutions
19:16:59 <olsner> Taneb: did it make you think about monads?
19:17:14 <Jafet> I actually don't care that I can't evaluate any integrals because I know you can write arbitrarily hard problems as integrals
19:17:17 <Taneb> Other than the "this is not much like a monad"
19:17:37 <Jafet> Try eating it in a spacesuit
19:17:41 <kmc> ceci n'est pas une monad
19:19:04 <quintopia> Bike: yes. i bet they also didn't teach you the geometric intuition for all of the trig functions, which i find /more/ useful than the complex analysis connection
19:19:19 <Taneb> I'm a little worried as the only player whose character is aligned good in my D&D party
19:19:53 <Taneb> We're going to bring down a major bank. At level 2.
19:20:33 <Jafet> Why not start a D&D hedge trading guild
19:21:35 <Taneb> Jafet, that's part of the plan
19:21:55 <Taneb> We're only doing this because one of the characters owes the bank money
19:23:34 <kmc> apparently GNU C has destructors: http://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html#index-g_t_0040code_007bcleanup_007d-attribute-3022
19:27:19 -!- Tritonio has joined.
19:28:51 <fizzie> It also has a "destructor" function attribute to complement "constructor", but that's different.
19:30:27 <kmc> those run when an object file is loaded/unloaded right?
19:30:58 <kmc> I once did a "return to libdl" attack where the payload was in a constructor function
19:32:30 <fizzie> It says "after main () completes or exit () is called". I'm not entirely certain on what happens if you have a destructor function in a shared object that is dlclose'd.
19:32:49 -!- augur_ has quit (Remote host closed the connection).
19:32:50 <fizzie> "Destructor routines are executed before dlclose() returns" okay, that.
19:35:50 <fizzie> Something I once idly wondered but didn't take the time to find out: if you put an __attribute__ ((constructor)) function in a .so, will that get run based on an ELF dynamic section DT_INIT entry?
19:36:20 <oerjan> ( the Int (10 `xor` 3)
19:36:20 <idris-ircslave> (input):1:5:When elaborating argument x to function Prelude.Basics.the:
19:36:48 <oerjan> ( the (Bits 16) (10 `xor` 3)
19:37:28 <oerjan> ok wtf don't they have a Num instance for that
19:37:52 -!- nooodl has joined.
19:39:52 <elliott> because would it be big or little endian, for one?
19:40:22 <elliott> what are the constructors?
19:40:33 <oerjan> that's what i was trying to find with :info
19:40:54 <oerjan> but i must have misremembered the command
19:42:39 <lambdabot> <hint>:1:1: parse error on input `:'
19:44:27 <zzo38> I have not recently played the Dungeons&Dragons, but may be able to, this week, however.
19:44:51 <Taneb> I won't be able to until after Easter
19:44:53 <zzo38> I don't expect to ever need to take down any bank.
19:45:15 <Taneb> As I play it with friends at uni and it's the Easter holiday at the moment
19:45:20 <Taneb> So we're all spread all voer
19:49:20 <zzo38> There are currently no other player characters, in the game I am playing.
19:50:10 <zzo38> (Which means, that our best fighter is gone, making it more difficult in the situation where combat becomes necessary or especially helpful, but so far we have been able to do stuff without much of that anyways)
19:55:33 <Melvar> ( the (Bits 16) (cast 10 `xor` cast 3)
19:57:54 -!- augur has joined.
19:58:12 <oerjan> just make Num a superclass of Cast Integer and make fromInteger a synonym for cast, i guess
20:00:38 <oerjan> ( the (Bits 16) MkBits (-1)
20:00:38 <idris-ircslave> (input):1:5:When elaborating argument x to function Prelude.Basics.the:
20:00:38 <idris-ircslave> (machineTy (nextPow2 (case block in divCeil n 8 (Prelude.Nat.modNat, mod' n 7 n n 7)))) -> Bits n
20:01:06 <oerjan> ( the (Bits 16) (MkBits (-1))
20:01:06 <idris-ircslave> When elaborating argument x to function Prelude.Basics.the:
20:01:14 <Bike> bits doesn't include two's comp? :(
20:01:46 <idris-ircslave> Data.Bits.MkBits : (machineTy (nextPow2 (case block in divCeil n 8 (Prelude.Nat.modNat, mod' n 7 n n 7)))) -> Bits n
20:01:46 <oerjan> ( the (Bits 16) (cast (-1))
20:02:15 <oerjan> Bike: MkBits is a constructor, so presumably it can't do canonicalization
20:03:19 <Bike> wow that's a scary type
20:03:21 <Melvar> The thing is actually that the function to compute what type you pass to MkBits is private to Data.Bits.
20:04:22 <nooodl> mmmm http://en.wikipedia.org/wiki/Dynamic_programming#History
20:04:39 <nooodl> dynamic programming called dynamic programming because: that sounded cool
20:04:44 <Melvar> So you get a nosuchvariable when trying to apply MkBits.
20:05:08 <Bike> "and because it sounded impressive" my life
20:14:38 <Bike> here's kind of a neat thing https://www.crowdsupply.com/kosagi/novena-open-laptop
20:16:06 <Melvar> ( the (Bits 12) (cast (-1))
20:17:41 <oerjan> clearly Bits should take a transfinite ordinal instead of just a Nat
20:20:20 <Melvar> Currently, it doesn’t even go over 64 bits.
20:21:04 <Melvar> ( (Bits8, Bits16, Bits32, Bits64)
20:21:05 <idris-ircslave> (Bits8, Bits16, Bits32, Bits64) : (Type, Type, Type, Type)
20:21:48 <Melvar> It just wraps one of these primitives according to its parameter.
20:22:37 <Jafet> oerjan: we have an isabelle theory of arrays where the arrays are typeclass-constrained to be at most 8192 elements long
20:22:45 <Melvar> We also still don’t have well-supported bytearrays.
20:23:01 <Jafet> The typeclass is named something like fourThousand
20:29:16 -!- tertu has joined.
20:31:24 <elliott> Bike: why would they pick Debian if it's a purity thing...?
20:31:36 <elliott> I'd expect one of the GNU-approved distributions nobody knows about.
20:31:47 <Bike> i don't care, i just like fpgas >_>
20:31:49 <elliott> that said, I wonder if Stallman will buy one.
20:32:10 <Bike> course xilinx isn't exactly an open source paradigm either
20:32:31 <elliott> yeah... I guess there's no way to change what the FPGA runs without proprietary software
20:32:49 <elliott> so the open laptop gimmick is kinda silly, though I suppose you could just ignore the FPGA if it does nothing by default and is just an add-on? I dunno
20:33:08 <Jafet> Laptops are a lost cause
20:33:31 <elliott> well, it's not exactly a laptop
20:33:48 <elliott> the case literally comes open when you lift up the screen and it has no keyboard.
20:33:54 <elliott> but they call it a laptop.
20:34:22 <fizzie> (I don't know if that's current.)
20:34:47 <elliott> fizzie: yes, plus Trisquel, Dragora, BLAG, dynebolic, and some others I'm forgetting
20:35:06 <elliott> I forgot Musix, Parabola, and LibreWRT.
20:35:17 <Jafet> Why not fab your own CPU while you're at it
20:35:23 <elliott> and BLAG is no longer recommended, apparently?
20:36:07 <fizzie> Is LibreWRT an OpenWRT-kinda thing?
20:37:05 <elliott> http://librewrt.org/index.php?title=Main_Page yeah (dunno if it's based on OpenWRT)
20:37:54 <Bike> fiiiiine i'll just get a PCI FPGA somewhere ya nerds
20:38:28 <elliott> "Lets Free Your Ben Nanonote!" this is some weird Chinese pocket computer that ships with OpenWRT and it's still not enough for these people
20:38:53 <zzo38> If it has no keyboard, then it isn't very good
20:39:03 <fizzie> http://librewrt.org/index.php?title=Hardware_Support you can kind of notice the must-be-free constraints in the hardware support page.
20:40:08 <Jafet> "If you have a hardware that is free, in the sense that no proprietary software is required to run it"
20:42:47 <fizzie> Makes me wonder if their WZR-HP-G300NH firmware actually replaces all bootloaders and such on the device.
20:43:34 <Jafet> Probably hard to replace anything in ROM.
20:44:17 <zzo38> If I have a C code such as function_module_vtab*vt=*sqlite3_user_data(cxt); then it is error dereferencing (void*) but the compiler ought to figure it out in this case.
20:45:48 <fizzie> Soon you'll start asking for modern C++-style "auto" type inference features in C, too.
20:46:06 <elliott> fizzie: it might run a free bootloader out of the box
20:46:41 <Jafet> Even auto doesn't solve that; the right operand of = is not well-typed by itself.
20:47:59 <Jafet> You can, however, implement type inference by having sqlite3_user_data return a template with an operator* that returns a template that automatically converts to the correct contextual type
20:48:19 <Jafet> s/template/template class object unicorn/
20:48:23 -!- olsner has quit (Quit: Leaving).
20:48:41 <Jafet> Now I'm thinking about U-boat loaders
20:51:57 <fizzie> "SanDisk drive in the photos is a throw-away for our dev purposes only, we would not subject end users to such a drive" so much 'tude
20:53:23 <Jafet> Oversized SD cards
20:53:42 -!- password2 has quit (Ping timeout: 255 seconds).
20:54:24 -!- conehead has joined.
20:56:57 -!- augur has quit (Read error: Connection reset by peer).
20:57:06 <zzo38> Jafet: In this case it isn't even exactly a ordinary = operator; it is a declaration.
20:57:21 -!- augur has joined.
21:02:17 <Jafet> That is true, but having a special rule for initializers is odd.
21:04:52 <fizzie> They're already quite special, to be fair. Like, there's no analogue to aggregate initialization for assignment.
21:05:12 <Jafet> Maybe there should be.
21:06:08 <fizzie> Maybe you could make it support a multiple assignment thing while you're at it.
21:06:29 <fizzie> int a; struct { int x, y; } b; { a, b } = { 1, { 2, 3 } };
21:06:59 <Jafet> That's getting dangerously close to making C a usable language, and we should have none of that.
21:07:00 -!- tertu_ has joined.
21:07:35 <Jafet> Though, I wonder why C++11 didn't just add initializer_list literals. I don't see a grammatical conflict there.
21:07:59 <Jafet> (as exemplified by the existence of http://gcc.gnu.org/onlinedocs/gcc/Compound-Literals.html)
21:08:15 <fizzie> You could have int a, b; { a, b } = { b, a }; have undefined behavior -- like it naturally would -- to keep it sufficiently C-like.
21:08:51 -!- tertu has quit (Read error: Connection reset by peer).
21:10:19 <Jafet> The semantics should be easy to define, the left operand is treated as a temporary structure whose new contents are then assigned to a,b
21:11:12 <fizzie> No, that would Preclude Optimization Opportunities and would never do. Clearly the only thing is to consider that the same as "a = b, b = a" except without the sequence point implied by the comma operator.
21:12:06 <Jafet> Also another problem, people will then want their { any lvalue-expr, ... } = ...
21:12:08 <zzo38> Jafet: Why should we have none of making C a usable language?
21:12:47 <Jafet> On further thought, that may not actually be a big problem
21:13:43 <fizzie> It does make it somewhat hard to define the resulting type of that = expression. (Perhaps an untagged structure with the corresponding member types could do?)
21:14:19 <zzo38> However I think that thing like { a, b } = { 1, { 2, 3 } } isn't needed and shouldn't be have in C, anyways, unless you could do something like int a; int b; struct { int x; int y; } c; { a, b } = c; which would be slightly more meaningful, but probably that isn't needed either.
21:14:36 <Jafet> The conclusion I am compelled to draw from all this is that the following should be made legal C: {{a, b} = {b, a}, {b, *f(a, b)}} = {{b, a}, {a, b}}
21:15:22 <fizzie> Jafet: That would be p. weird, since the normal result of = is not an lvalue.
21:15:54 -!- Phantom_Hoover has joined.
21:16:02 <Jafet> Arrr, me seaplus be leakin'
21:16:50 <fizzie> I don't have any problems with e.g. {({a, b} = {b, a}, a), {b, *f(a, b)}} = {{b, a}, {a, b}} though.
21:17:15 <Jafet> Sad: "In C++, a compound literal designates a temporary object, which only lives until the end of its full-expression [...] As a result, the C++ compiler now rejects the conversion of a temporary array to a pointer."
21:17:25 <fizzie> (Er, assuming a is an aggregate type with at least two members to fix my thinko.)
21:17:44 <Jafet> Wonder if they will take a patch that makes you a std::array instead
21:17:52 <Bike> wait is *f(a,b) an lvalue
21:18:06 <Jafet> Of course, how else can you assign to it
21:18:11 <elliott> int x; int *f(int a, int b) { return &x; }
21:18:15 <Bike> isn't it a dereference of a function call
21:18:22 <elliott> no, it's a dereference of the result
21:18:29 <elliott> like int *p = f(a, b); *p = ...
21:18:40 <Jafet> Some pretty great macro libraries have been written this way
21:19:35 <Jafet> Well, a library which defines macros to dereferenced function calls
21:19:48 <fizzie> Where did I recently read something about a crafty lifetime difference between two things.
21:20:46 <fizzie> There should be some convenient way to run a full-text search on the subset of pages in browser history for the last couple of days.
21:20:50 <Jafet> There are some more pedestrian uses, like errno is usually a dereferenced function call that grabs the thread-local errno
21:20:53 -!- impomatic has quit (Ping timeout: 246 seconds).
21:22:00 <Bike> fizzie: i'm pretty sure you can do that in chrome?
21:22:54 <zzo38> fizzie: I think Mozilla uses SQLite, which includes full-text search. However, I do not know how to tell Mozilla to run SQL statements.
21:23:34 <fizzie> Bike: As far as I can tell, the "search history" button in (this) Chrome's history view only searches metadata like title and URL, not page contents.
21:24:07 <fizzie> (Also it won't show history for other devices than the local device if sync encryption is on.)
21:25:01 <Jafet> You can always hook up the sqlite command line utility to the mozilla database, once you figure out where they've moved the database files this week.
21:26:32 -!- impomatic has joined.
21:26:55 <Jafet> fizzie: is it the const& return values
21:28:00 <Jafet> http://herbsutter.com/2008/01/01/gotw-88-a-candidate-for-the-most-important-const
21:40:30 <fizzie> It wasn't that. I think it might've been something related to a macro.
22:00:01 -!- Tritonio has quit (Ping timeout: 240 seconds).
22:45:00 -!- zzo38 has quit (Remote host closed the connection).
22:47:00 -!- augur has quit (Remote host closed the connection).
22:47:34 -!- augur has joined.
22:51:51 -!- augur has quit (Ping timeout: 252 seconds).
23:00:25 -!- ^v has quit (Read error: Connection reset by peer).
23:00:54 -!- ^v has joined.
23:01:26 -!- oerjan has quit (Quit: leaving).
23:15:52 -!- yorick has quit (Remote host closed the connection).
23:18:24 <^v> Phantom_Hoover, he left :<
23:22:41 -!- Sgeo has joined.
23:33:42 -!- nooodl has quit (Quit: Ik ga weg).
23:39:14 -!- augur has joined.
23:40:22 -!- augur has quit (Remote host closed the connection).
23:42:08 -!- augur has joined.
23:56:30 -!- Koen_ has joined.