00:02:29 we need to A/B-test that shit 00:02:39 who wants the title of #esoteric growth hacker 00:03:08 `rm bin/*elcom* 00:03:08 rm: cannot remove `bin/*elcom*': No such file or directory 00:03:12 `run rm bin/*elcom* 00:03:13 No output. 00:03:16 consider your aim hecked 00:03:49 -!- tertu has joined. 00:04:05 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 two hacks ego 00:06:48 good point 00:23:12 -!- Phantom_Hoover has quit (Quit: Leaving). 00:33:59 -!- Sgeo has joined. 00:36:21 `homestarrunnerlist 00:36:22 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: homestarrunnerlist: not found 00:38:48 `coins 00:38:50 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. 00:51:59 wtf @ this=thagocoin 01:08:28 sootcoin 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:10 `coins 03:43:11 timinuschecoin watecoin haffe7coin enamoucaleverixcoin sbancoin grofcoin nicecoin braintegdcoin nyboxcoin infalcatcoin ctorcoin laziacoin bf-rlecoin frackcoin thumbercoin elogiccoin loadcoin shructioncoin domcoin supecoin 03:43:54 `run cat /home/hackbot/hackbot.hg/multibot_cmds/lib/limits 03:43:54 ​#!/bin/bash \ ulimit -f 10240 \ ulimit -l 0 \ ulimit -u 128 \ exec -- "$@" 03:45:52 `as86 nop 03:45:53 90 03:45:58 `dis86 90 03:45:59 nop; 03:46:09 `dis86 4daf5f1e95 03:46:09 scasq; pop rdi; invalid; xchg ebp, eax; 04:04:06 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:17:58 that's handy 04:18:13 is it just using objdump? 04:18:36 `run file $(which dis86) 04:18:37 ​/hackenv/bin/dis86: ASCII text 04:18:48 `cat /hackenv/bin/dis86 04:18:48 bin="$1"; shift; unhex "$bin" | udcli -noff -nohex -64 "$@" | perl -pe 's/^ *//; s/ *\n/; /;' 04:21:47 ah 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 `cat /hackenv/bin/as86 05:42:38 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 Love the hardcoded tmpnams 05:45:16 -!- password2 has joined. 05:45:55 yolo 05:48:02 `run as86 ret & as86 nop; wait 05:48:03 90 \ c3 05:48:42 aha i got a c3 \ c3 after some tries 05:49:22 `run for i in `seq 8 15`; do as86 r$i &; done; wait 05:49:23 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 `run for i in `seq 8 15`; do (as86 r$i &); done; wait 05:51:21 ​/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:29 oops 05:51:38 `run for i in `seq 8 15`; do (as86 'push r'$i &); done; wait 05:51:39 objcopy: error: the input file '/tmp/as86.o' is empty 05:51:56 Also awesome bash syntax 05:52:47 i think "& done" will also work 05:52:49 You don't need a subshell; for ...; do foo & done is valid. 05:52:58 I lost. :/ 05:53:10 I lost 05:55:06 lost? 06:01:31 -!- nisstyre has quit (Quit: WeeChat 0.4.3). 06:03:20 -!- olsner has joined. 06:05:01 I just lost the game. 06:05:54 yeah, that one 06:06:20 oh. 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:17 `coins 07:38:19 fractioncarandrijcoin ortacoin minicoin braincoin singtoniimtitiicoin easepolicoin highcoin bracoin brackcoin shakencalcoin minecoin starcoin timicoin eplieycoin smucoin easepolcoin concacoin filosophycoin ortcoin 0x25coin 08:06:34 So, the three big Haskell frameworks are each moving to use different streaming solutions 08:06:38 *web frameworks 08:07:53 what do you mean by streaming solutions 08:09:10 conduits/pipes/io-streams 08:09:32 ok 08:09:45 unfortunate that the haskell community has still not converged on one of those 08:09:59 haskell has lots of ecosystem fragmentation 08:10:09 or whatever the hell you would call that 08:11:55 * kmc -> bed 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 http://jaspervdj.be/posts/2013-10-22-websockets-0.8.html 08:30:29 Interesting appendix 08:31:03 (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 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 or maybe it can, but I'm reading the wrong series of closed bugs 08:51:14 (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:02:11 :\ 12:18:48 -!- oerjan has quit (Quit: leaving). 12:35:04 Is it wrong to be amused at the name of Ludwig Bieberbach 12:49:53 I'm bringing Bieberbach! (yeah!) 12:50:09 i was going to add another line to that, but I can Nazi a way to make it rhyme 12:51:25 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 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 does it collide with an existing prefix there or something? 13:51:01 according to chanserv, kmc is an op of ##crypto and mm_freak is not 13:53:02 I wonder if they discuss actual cryptography there now 13:53:29 -!- Giannos_Gr has joined. 13:53:43 elliott: I want to avoid going back and forth on this. 13:54:00 ok, I don't know if there's history or anything, just providing data 13:54:18 yes, I appreciate that 13:55:03 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 " Also I regret giving #cs-york lambdabot" 15:18:46 int-e, lambdabot's been kicked now 15:40:45 @botsnack 15:40:45 :) 15:42:19 @botcrack 15:42:19 :) 15:42:53 @botsuck 15:42:53 :) 15:52:26 -!- Phantom_Hoover has joined. 16:03:58 And now I am doing scary Python programming 16:04:30 (for one reason or another I'm restricted to one file and it's up to 500 lines) 16:23:00 Make sure to use as many different classes as you can 16:23:11 It enhances maintainability 16:27:42 Ok when did applybot break 1500 lines 16:27:53 I don't remember this happening 16:33:32 Jafet: Ludwig Bieberbach doesn't make much sense to me. 16:33:44 would be funnier to combine only one classical composer with bieber 16:36:35 mmmm scary python 16:37:02 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 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 (for one reason or another I'm restricted to one file and it's up to 500 lines) 16:48:27 write very long lines? 16:48:52 Phantom_Hoover, I'm writing it with someone who insists max 80 characters 16:49:06 write very dense lines 16:49:47 This is Python, not Perl 16:49:50 jafet: "unmaintainable" is a strong word. 16:50:19 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 also 10^3 and 10^2 are harder to type than 1000 and 100 :) 16:53:08 In this context, 10^3 does not mean the same thing as 1000. 16:54:20 what does 10^3 mean? 16:54:26 > 10 `xor` 3 16:54:27 Can't resolve type class Num (Bits n) 16:54:28 9 16:55:24 ~10^3 implies a range somewhere between 10^2 and 10^4. ~1000 implies a range somewhere between a few hundred and 2000. 16:55:53 if you say so 16:56:34 when i see ~10^3 i think "3 digits" 16:56:56 well 16:56:57 okay 16:57:01 i'm kinda with Jafet here 16:57:39 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 Then I refer to the source code and it invariably looks like java without the type checking. 16:59:11 perhaps you should read more python code? 16:59:55 how about https://github.com/trevp/tlslite ? 17:00:59 Why should I read that? 17:02:00 for enjoyment? 17:02:51 Reading a TLS stack written in python doesn't sound very enjoyful. 17:03:04 suit yourself 17:03:20 I would guess that the authors derived enjoyment from writing it. 17:05:43 mind you most my published python codeis around 500loc, beautiful, bug free, and well documented ;-) 17:07:08 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 int-e: sigh, then it stays out of ##crypto I guess 17:10:41 kmc, what are you replying to? 17:11:00 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:11:25 ah 17:12:05 i don't care that much if lambdabot is in ##crypto 17:13:28 is ##crypto any good? 17:14:12 why would you not want lambdabot 17:14:35 > -- because it might conflict with another bot? 17:14:35 command not recognized or not supported 17:14:36 not an expression: `-- because it might conflict with another bot?' 17:15:45 also she is no longer a vixen 17:15:49 ?vixen right dear? 17:15:50 The press is the enemy. 17:17:54 haha this again 17:17:58 newsham: I think it's good 17:18:12 well mm_freak kickbanned lambdabot when he left the channel 17:18:33 ?vixen a/s/l? 17:18:33 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 is it just doing random quotes for vixen now? 17:18:53 vixen -> nixon 17:18:55 oh, its doing nixon 17:19:03 ?farber 17:19:03 Don't put all your ducks in one barrel. 17:19:27 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 wait, why is mm_freak involved in whether lambdabot is in ##crypto if he is not in the channel? 17:19:51 a little birdy told me that haskell is not math. 17:19:56 beats me elliott 17:20:10 its funny that all the programmers think haskell is math, and all the math people think it is not. 17:20:19 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 on the (substantial) list of interpersonal drama I can get involved with, this has a pretty fucking low priority 17:20:52 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 zzo38: not until it can be compiled to javascript, at least. ;-) 17:21:33 newsham: I think it's funny how Haskell detractors and Haskell zealots believe the same set of falsehoods about the language 17:21:34 newsham: Compiling it to JavaScript isn't really all that good either, but at least it is another possible target. 17:21:42 kmc++ 17:22:00 zzo38: javascript is for solving the worlds problems!@# 17:22:03 most recently mm_freak was trying to claim that GHC Haskell doesn't have shared-memory concurrency 17:22:05 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 newsham: No it can't solve the world's problems very well either! 17:22:43 zzo38: sure it can! see the facebooks! and the tweets! and the goog pluses!@#!@# 17:22:44 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:22:50 problem solved! utopia! 17:23:03 (not really true that Rust doesn't have shared-memory concurrency, either, but more true than for GHC Haskell) 17:23:05 ?keal 17:23:05 ghc need to have plugin that allow copy paste in xp 17:23:22 ?mm_freak 17:23:23 Unknown command, try @list 17:23:23 ^_^ 17:23:31 newsham: O, it is bad because Hitler did it. 17:23:39 zzo38: touche 17:23:43 haha 17:24:23 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 elliott: it's an interesting bit of information. 17:27:28 kmc: I can easily add ##crypto back; the real question is whether it annoys people on the channel or not. 17:28:21 also it is there at the moment 17:28:38 the entirety of what's been said about lambdabot since lambdabot rejoined is 17:28:39 15:38 -!- lambdabot [~lambdabot@silicon.int-e.eu] has joined ##crypto 17:28:39 15:40 < kmc> lambdabot: welcome back! 17:28:39 15:41 < sarnold> lambdabot: botsnack! 17:29:18 :I 17:29:48 I could understand if the channel had hate speech or whatever, but this seems like deliberate troublemaking. 17:30:00 which? 17:30:29 I mean, trying to get lambdabot out of a channel you're not in 17:30:33 it's just weird. 17:30:46 yeah 17:30:53 he used to be an op there, but not anymore I guess 17:31:17 That was a month ago. I dunno. 17:31:25 oh 17:31:38 yeah so it happened when he quit the channel 17:39:06 is math a perfect object of mathematical beauty which will solve all of humanity's problems? 17:39:17 maybe in some vacuous sense 17:39:25 but maybe it can only have metamathematical beauty 17:40:28 lexande: you can define the can of beans as open. this easily generalizes to larger real world problems. 17:41:10 God no 17:42:49 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 way to be anti-haskell zzo 17:43:33 . o O ( humanity is part of the problem space ) 17:43:42 zingle zign-on 38 17:44:22 if you're not part of the solution you're part of the noxious acidic gas rising from it 17:44:44 is that the precipitate? 17:45:08 no 17:49:17 i think that's a precipitate 17:50:14 i guess not 17:53:31 Acidic precipitation 17:57:26 -!- nisstyre has quit (Quit: WeeChat 0.4.3). 17:58:09 math can solve humanities problems. most notably subtraction of certain people and addition of others. 17:59:45 -!- oerjan has joined. 18:02:03 What about multiplication 18:02:33 multiplication has lead to a lot of problems, but does underly a lot of our current economic strategies 18:04:23 george washington has warned us about division, however 18:04:48 good point 18:05:21 but only after he divided the british empire. so perhaps he didnt mean it generally 18:05:45 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 unfortunately a lot of economics is based on math that is untethered from any physical reality. 18:06:53 maybe someday we'll figure out how to fix that 18:07:13 we're already on our way 18:07:22 economics is a relatively young field of study 18:07:35 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 (#programmersarestoopid) 18:09:09 "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 Jafet: if your composite "probable prime" has lots of small factors, then any data encrypted with it is definitely insecure 18:11:20 what quintopia said 18:11:45 though i'm pretty sure crypto libs do a sieve against small primes after generation 18:12:04 right 18:12:30 it's also very unlikely that it will qualify as a probable prime. 18:13:08 but you know.. when 1/2^100 eventually happens, you wanna be safe ;-) 18:13:11 it's very unlikely that any composite will...that's the whole point 18:13:55 i wish they'd just hurry up and prove the riemann hypothesis already so we can have the dang miller test 18:14:14 when the probability is lower than that of a hardware failure, that may be a good point to stop worrying. 18:14:54 i've had enough hardware failures in my life to keep worrying 18:15:39 ah, I misspoke 18:15:48 * Bike vomits all over the channel 18:15:55 ew 18:15:57 stop that 18:16:07 quintopia: I meant to stop worrying about the primality of the probably prime and start worrying about hardware failures instead. 18:16:15 stop saying things like economics evolving out of behaviorism then! 18:16:43 okay. say your peace 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:19 err, misplaced ). 18:17:39 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 well, primality is in P 18:18:14 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 anyawy https://twitter.com/BuzzFeedAndrew/status/451410960519938048/photo/1 18:19:54 twitter makes those URLs useless without javascript. 18:20:03 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 that doesn't mean psychologists started becoming economists! 18:21:04 of course not 18:21:06 Shoved into schools 18:21:18 that's what you said. "psychology" has now gone two directions... 18:21:35 also, plenty of economic research is unrelated to the psychological states of actors. 18:21:38 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 i didn't say ALL of economics was subsumed by psychology 18:22:38 you are extrapolating way too much in the wrong directions 18:23:04 I read somewhere, someone who said, astrology is no good, and psychology is even worse. 18:23:13 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 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 i never used the word psychologists 18:24:20 zzo38: Well, messing with people's heads works. It's much harder to influence the trajectories of planets. 18:24:35 and if something i say can be misinterpreted to your dislike, please ask what i mean before vomiting on me 18:24:38 it's just rude 18:25:41 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 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 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 oh come on, you're loopholing, there is no way your statement can be reasonably interpreted that way 18:26:56 and that sounds elitist 18:27:55 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 i mispoke, but that doesn't mean you need to go accusing me of holding beliefs i don't hold 18:28:45 because "psychology" encompasses all of those 18:28:58 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 I should know because I used to do it constantly. 18:29:21 it's permitted to just say you misspoke and take it back. 18:29:51 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 "modern economics has a lot more psychological realism than it used to" 18:31:09 that works for part of it i suppose 18:31:28 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 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 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 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 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 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 how about before, can i complain about whatever weird thing you were complaining about as 'social consciousness' 18:49:24 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 http://www.reddit.com/r/math/comments/21zdln/the_common_core_is_corrupting_school_mathematics/ holy shit this is awful 18:54:19 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:43 aaaaargh it's an april fool's 18:55:48 um is this a j- right. 18:56:12 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 «You heard it here first from the Reform Math lobby: the "easy" way to divide is using a square root.» 18:56:53 i wonder if that guy really has a phd in math 18:57:01 oh 18:57:27 http://imgur.com/cYBLWpZ hahaha 18:58:03 "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 «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 to be fair, it looks like both methods did give the same answer, just written differently 19:03:14 I realized that Rust Objective-C bindings could support syntax like let string = objc![[NSString alloc] initWithCString: "Hello, 19:03:17 world!"]; 19:03:38 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 19:03:48 olsner: part of the joke is the writer not knowing anything yeah 19:03:54 Bike: ok 19:03:58 kmc: is the newline intentional 19:04:12 -!- w00tles has joined. 19:04:21 no 19:04:23 mispaste 19:04:31 Objective-Rust, sounds great 19:04:38 I'm just saying you can shoehorn Objective C method call syntax into Rust as a macro, which is pretty amusing 19:04:44 olsner: yep yep 19:05:05 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 btw, I found the magic attribute to disable the ridiculous stack check, but it seems to be a *function* attribute 19:06:12 completing the square is fine but that's not what the image is doing, is it? 19:06:45 olsner: that's right 19:06:57 if you wanted to complete the square you'd add, uh... 5/2 or something? man it's been too long -_- 19:07:15 olsner: I don't think it's ridiculous; stack overflow would be a memory saftey violation 19:07:38 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 oh is it 25/4 you add 19:08:13 and that gives you (x + 5/2)², right 19:09:10 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 (in actuality i make the computer do it but w/e) 19:09:23 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 olsner: there are real-world examples of exploiting stack overflow in C programs for arbitrary code execution 19:09:30 :o 19:09:38 that's the kind of thing Rust is supposed to prevent absolutely, modulo unsafe code 19:09:55 in practice it can't catch stack overflow in C code called from Rust code, unless the C was specially compiled 19:10:27 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 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 "and then, you can jump into galois theory" 19:10:41 @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:42 Consider it noted. 19:10:55 quintopia: i'm honestly not sure i get where the substitution comes from 19:11:43 Bike: the substitution will always be (x+b/2)=u 19:12:08 i think i'd rather complete the square 19:12:51 yes it is slightly more intuitive 19:13:19 however, students who plan on eventually taking calculus might benefit from being able to make substitutions like tht 19:13:31 it also makes some trig identities a lot easier to solve 19:14:19 i don't like long division... 19:14:21 for trig identities they oughta just teach euler's formula. 19:14:36 the fact i iddn't learn it in high school is one of my great griefs against the educational system 19:16:02 Oooh! Today I ate a burrito 19:16:11 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 yes :( 19:16:31 Taneb: congratulations 19:16:34 what was in it? 19:16:37 i'm still bad at integral substitutions 19:16:38 Beef 19:16:59 Taneb: did it make you think about monads? 19:17:10 Not particularly 19:17:14 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 Other than the "this is not much like a monad" 19:17:37 Try eating it in a spacesuit 19:17:41 ceci n'est pas une monad 19:19:04 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 I'm a little worried as the only player whose character is aligned good in my D&D party 19:19:53 We're going to bring down a major bank. At level 2. 19:20:33 Why not start a D&D hedge trading guild 19:21:35 Jafet, that's part of the plan 19:21:55 We're only doing this because one of the characters owes the bank money 19:23:34 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 It also has a "destructor" function attribute to complement "constructor", but that's different. 19:30:27 those run when an object file is loaded/unloaded right? 19:30:58 I once did a "return to libdl" attack where the payload was in a constructor function 19:32:30 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 "Destructor routines are executed before dlclose() returns" okay, that. 19:35:50 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 ( the Int (10 `xor` 3) 19:36:20 (input):1:5:When elaborating argument x to function Prelude.Basics.the: 19:36:20 Can't unify 19:36:20 Bits n 19:36:20 with 19:36:20 Int↵… 19:36:27 huh 19:36:48 ( the (Bits 16) (10 `xor` 3) 19:36:49 Can't resolve type class Num (Bits (fromInteger 16)) 19:37:02 ( :t xor 19:37:02 Data.Bits.xor : (Bits n) -> (Bits n) -> Bits n 19:37:28 ok wtf don't they have a Num instance for that 19:37:52 -!- nooodl has joined. 19:38:36 ( :info Bits 19:38:37 Not a class 19:38:51 ( :t Bits 19:38:51 Data.Bits.Bits : Nat -> Type 19:39:52 because would it be big or little endian, for one? 19:40:03 wat 19:40:08 sheesh 19:40:14 ( :t Bits 19:40:15 Data.Bits.Bits : Nat -> Type 19:40:22 what are the constructors? 19:40:26 ( :i Bits 19:40:27 Not a class 19:40:33 that's what i was trying to find with :info 19:40:54 but i must have misremembered the command 19:41:02 ( :help Bits 19:41:03 Command not permitted 19:41:14 Not permitted. 19:42:15 ( :i Nat 19:42:15 Not a class 19:42:38 > :i Nat 19:42:39 Not a class 19:42:39 :1:1: parse error on input `:' 19:42:59 ( :help 19:42:59 Command not permitted 19:44:02 ( :t Bits 10 19:44:02 Bits (fromInteger 10) : Type 19:44:18 ( :i Bits 10 19:44:18 (input):1:1: error: expected: end of input, 19:44:18 operator 19:44:18 :i Bits 10 19:44:18 ^ 19:44:27 I have not recently played the Dungeons&Dragons, but may be able to, this week, however. 19:44:51 I won't be able to until after Easter 19:44:53 I don't expect to ever need to take down any bank. 19:45:15 As I play it with friends at uni and it's the Easter holiday at the moment 19:45:20 So we're all spread all voer 19:45:23 *over 19:49:20 There are currently no other player characters, in the game I am playing. 19:50:10 (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 ( the (Bits 16) (cast 10 `xor` cast 3) 19:55:34 MkBits 9 : Bits 16 19:56:10 ( :t cast 19:56:10 Prelude.Cast.cast : Cast from to => from -> to 19:57:54 -!- augur has joined. 19:58:12 just make Num a superclass of Cast Integer and make fromInteger a synonym for cast, i guess 19:58:34 er *subclass 19:59:34 ( 3+3 19:59:36 6 : Integer 20:00:38 ( the (Bits 16) MkBits (-1) 20:00:38 (input):1:5:When elaborating argument x to function Prelude.Basics.the: 20:00:38 Can't unify 20:00:38 (machineTy (nextPow2 (case block in divCeil n 8 (Prelude.Nat.modNat, mod' n 7 n n 7)))) -> Bits n 20:00:38 with 20:00:38 Bits (fromInteger 16)↵… 20:00:50 fancy 20:00:59 oh wait 20:01:06 ( the (Bits 16) (MkBits (-1)) 20:01:06 When elaborating argument x to function Prelude.Basics.the: 20:01:06 No such variable Data.Bits.machineTy 20:01:14 bits doesn't include two's comp? :( 20:01:46 ( :t MkBits 20:01:46 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 ( the (Bits 16) (cast (-1)) 20:01:46 MkBits 65535 : Bits 16 20:02:15 Bike: MkBits is a constructor, so presumably it can't do canonicalization 20:02:17 nice type 20:03:19 wow that's a scary type 20:03:21 The thing is actually that the function to compute what type you pass to MkBits is private to Data.Bits. 20:04:22 mmmm http://en.wikipedia.org/wiki/Dynamic_programming#History 20:04:39 dynamic programming called dynamic programming because: that sounded cool 20:04:44 So you get a nosuchvariable when trying to apply MkBits. 20:05:08 "and because it sounded impressive" my life 20:08:11 Melvar: ugh. 20:14:38 here's kind of a neat thing https://www.crowdsupply.com/kosagi/novena-open-laptop 20:16:06 ( the (Bits 12) (cast (-1)) 20:16:07 MkBits 4095 : Bits 12 20:17:41 clearly Bits should take a transfinite ordinal instead of just a Nat 20:20:20 Currently, it doesn’t even go over 64 bits. 20:20:30 wat 20:21:04 ( (Bits8, Bits16, Bits32, Bits64) 20:21:05 (Bits8, Bits16, Bits32, Bits64) : (Type, Type, Type, Type) 20:21:48 It just wraps one of these primitives according to its parameter. 20:22:18 shocking 20:22:37 oerjan: we have an isabelle theory of arrays where the arrays are typeclass-constrained to be at most 8192 elements long 20:22:45 We also still don’t have well-supported bytearrays. 20:23:01 The typeclass is named something like fourThousand 20:23:23 O KAY 20:29:16 -!- tertu has joined. 20:31:24 Bike: why would they pick Debian if it's a purity thing...? 20:31:36 I'd expect one of the GNU-approved distributions nobody knows about. 20:31:47 i don't care, i just like fpgas >_> 20:31:49 that said, I wonder if Stallman will buy one. 20:32:10 course xilinx isn't exactly an open source paradigm either 20:32:31 yeah... I guess there's no way to change what the FPGA runs without proprietary software 20:32:49 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 Laptops are a lost cause 20:33:31 well, it's not exactly a laptop 20:33:48 the case literally comes open when you lift up the screen and it has no keyboard. 20:33:54 but they call it a laptop. 20:34:01 gNewSense. 20:34:22 (I don't know if that's current.) 20:34:47 fizzie: yes, plus Trisquel, Dragora, BLAG, dynebolic, and some others I'm forgetting 20:35:06 I forgot Musix, Parabola, and LibreWRT. 20:35:17 Why not fab your own CPU while you're at it 20:35:23 and BLAG is no longer recommended, apparently? 20:36:07 Is LibreWRT an OpenWRT-kinda thing? 20:37:05 http://librewrt.org/index.php?title=Main_Page yeah (dunno if it's based on OpenWRT) 20:37:54 fiiiiine i'll just get a PCI FPGA somewhere ya nerds 20:38:28 "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 If it has no keyboard, then it isn't very good 20:39:03 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 "If you have a hardware that is free, in the sense that no proprietary software is required to run it" 20:40:13 Good definition 20:42:47 Makes me wonder if their WZR-HP-G300NH firmware actually replaces all bootloaders and such on the device. 20:43:34 Probably hard to replace anything in ROM. 20:44:17 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 Soon you'll start asking for modern C++-style "auto" type inference features in C, too. 20:46:06 fizzie: it might run a free bootloader out of the box 20:46:18 like U-Boot 20:46:41 Even auto doesn't solve that; the right operand of = is not well-typed by itself. 20:47:59 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 s/template/template class object unicorn/ 20:48:22 g 20:48:23 -!- olsner has quit (Quit: Leaving). 20:48:41 Now I'm thinking about U-boat loaders 20:51:57 "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 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 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 That is true, but having a special rule for initializers is odd. 21:04:52 They're already quite special, to be fair. Like, there's no analogue to aggregate initialization for assignment. 21:05:12 Maybe there should be. 21:06:08 Maybe you could make it support a multiple assignment thing while you're at it. 21:06:29 int a; struct { int x, y; } b; { a, b } = { 1, { 2, 3 } }; 21:06:59 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 Though, I wonder why C++11 didn't just add initializer_list literals. I don't see a grammatical conflict there. 21:07:59 (as exemplified by the existence of http://gcc.gnu.org/onlinedocs/gcc/Compound-Literals.html) 21:08:15 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 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 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 Also another problem, people will then want their { any lvalue-expr, ... } = ... 21:12:08 Jafet: Why should we have none of making C a usable language? 21:12:47 On further thought, that may not actually be a big problem 21:13:43 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 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 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:14:50 i like it 21:15:22 Jafet: That would be p. weird, since the normal result of = is not an lvalue. 21:15:54 -!- Phantom_Hoover has joined. 21:16:00 it should be. 21:16:02 Arrr, me seaplus be leakin' 21:16:50 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 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 (Er, assuming a is an aggregate type with at least two members to fix my thinko.) 21:17:44 Wonder if they will take a patch that makes you a std::array instead 21:17:52 wait is *f(a,b) an lvalue 21:18:01 Bike: sure 21:18:06 Of course, how else can you assign to it 21:18:11 int x; int *f(int a, int b) { return &x; } 21:18:12 *p = ... 21:18:15 isn't it a dereference of a function call 21:18:19 oh. 21:18:22 no, it's a dereference of the result 21:18:24 well. great 21:18:29 like int *p = f(a, b); *p = ... 21:18:40 Some pretty great macro libraries have been written this way 21:18:50 macro libraries? 21:19:35 Well, a library which defines macros to dereferenced function calls 21:19:48 Where did I recently read something about a crafty lifetime difference between two things. 21:20:46 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 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 fizzie: i'm pretty sure you can do that in chrome? 21:22:54 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 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 (Also it won't show history for other devices than the local device if sync encryption is on.) 21:25:01 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 fizzie: is it the const& return values 21:28:00 http://herbsutter.com/2008/01/01/gotw-88-a-candidate-for-the-most-important-const 21:40:30 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:14:37 <^v> D: oerjan 23:15:52 -!- yorick has quit (Remote host closed the connection). 23:18:06 ^v, what? 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.