2013-10-01 00:19 jdhartley has quit [Ping timeout: 245 seconds] 2013-10-01 00:34 jdhartley has joined #elliottcable 2013-10-01 00:48 so whitequark will like this 2013-10-01 00:48 I got the VM test process for our main app down from 66 minutes to 11 2013-10-01 00:58 Sgeo has joined #elliottcable 2013-10-01 01:45 ELLIOTTCABLE: was thinking perhaps you and I are that? 2013-10-01 01:45 ELLIOTTCABLE: lolol 2013-10-01 01:45 lolol 2013-10-01 02:05 ELLIOTTCABLE: micah.yreality plspls?:o 2013-10-01 02:35 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-01 03:27 i just noticed mythbusters is on netflix 2013-10-01 03:28 anyone want to sync group stream it? 2013-10-01 03:30 eeh 2013-10-01 03:31 i can only watch it in the background 2013-10-01 03:32 fwg_ has joined #elliottcable 2013-10-01 03:35 fwg has quit [Ping timeout: 256 seconds] 2013-10-01 03:36 ELLIOTTCABLE: oh apparently jekyll has a cool BASE_PATH thing so it works fine with /micah so it's not as urgent 2013-10-01 03:36 ELLIOTTCABLE: not sure which one I want now :p 2013-10-01 03:47 Determinist has joined #elliottcable 2013-10-01 03:58 Sorella has quit [Quit: Ex-Chat] 2013-10-01 05:26 ELLIOTTCABLE: help git sucks 2013-10-01 05:57 Determinist has quit [Quit: Textual IRC Client: www.textualapp.com] 2013-10-01 06:26 eligrey has quit [Quit: Leaving] 2013-10-01 06:36 PragCypher has joined #elliottcable 2013-10-01 07:03 cuttle: wat 2013-10-01 07:03 cuttle: lemme know if you still need re-config 2013-10-01 07:49 ELLIOTTCABLE: now the problem is that git hooks fucking suck 2013-10-01 07:49 ELLIOTTCABLE: so it's fucking up my path 2013-10-01 07:50 ELLIOTTCABLE: anyway it'd be cool if you could make it micah.yreality.net 2013-10-01 07:50 when you can 2013-10-01 08:11 ELLIOTTCABLE: never mind, I am now just using scp, so no more git problems 2013-10-01 08:12 ELLIOTTCABLE: anyway though eayh 2013-10-01 08:12 ELLIOTTCABLE: :3 2013-10-01 10:07 whitequark has left #elliottcable [#elliottcable] 2013-10-01 10:39 fwg_ has quit [Changing host] 2013-10-01 10:39 fwg_ has joined #elliottcable 2013-10-01 10:39 fwg_ is now known as fwg 2013-10-01 11:31 Sgeo has quit [Read error: Connection reset by peer] 2013-10-01 11:40 cloudhead has joined #elliottcable 2013-10-01 12:08 jvulc has quit [Ping timeout: 245 seconds] 2013-10-01 12:08 ELLIOTTCABLE has quit [Ping timeout: 245 seconds] 2013-10-01 12:09 jvulc has joined #elliottcable 2013-10-01 12:15 Sorella has joined #elliottcable 2013-10-01 12:31 Kapone has joined #elliottcable 2013-10-01 13:07 yorick has joined #elliottcable 2013-10-01 13:15 sharkbot has quit [Remote host closed the connection] 2013-10-01 13:15 sharkbot has joined #elliottcable 2013-10-01 14:08 ELLIOTTCABLE has joined #elliottcable 2013-10-01 14:15 jdhartley has quit [Ping timeout: 245 seconds] 2013-10-01 14:16 gozala has quit [Read error: Operation timed out] 2013-10-01 14:16 gazoombo has quit [Ping timeout: 260 seconds] 2013-10-01 14:16 chellio has quit [Ping timeout: 245 seconds] 2013-10-01 14:16 dskuza has quit [Ping timeout: 268 seconds] 2013-10-01 14:16 upgrayeddd has quit [Ping timeout: 268 seconds] 2013-10-01 14:16 cuttle has quit [Ping timeout: 240 seconds] 2013-10-01 14:17 ELLIOTTCABLE has quit [Ping timeout: 240 seconds] 2013-10-01 14:17 jvulc has quit [Ping timeout: 248 seconds] 2013-10-01 15:05 fwg is now known as oldskirt 2013-10-01 15:12 oldskirt is now known as fwg 2013-10-01 15:34 alexgordon has joined #elliottcable 2013-10-01 15:39 cuttle has joined #elliottcable 2013-10-01 16:13 dskuza has joined #elliottcable 2013-10-01 16:14 jvulc has joined #elliottcable 2013-10-01 16:14 ELLIOTTCABLE has joined #elliottcable 2013-10-01 16:17 gazoombo has joined #elliottcable 2013-10-01 16:18 upgrayeddd has joined #elliottcable 2013-10-01 16:40 niggler has joined #elliottcable 2013-10-01 17:07 gozala has joined #elliottcable 2013-10-01 17:35 ELLIOTTCABLE: 2013-10-01 17:35 alexgordon: 2013-10-01 17:35 hi 2013-10-01 17:35 cuttle: hi! 2013-10-01 17:38 cuttle: hi 2013-10-01 17:38 bye 2013-10-01 17:38 back soon 2013-10-01 17:38 aw 2013-10-01 17:38 :p 2013-10-01 17:39 cuttle: I want to apply at jane street 2013-10-01 17:39 apparently they have the most difficult interviews anywhere 2013-10-01 17:39 alexgordon: what's that? 2013-10-01 17:39 what does jane street do 2013-10-01 17:39 trading firm 2013-10-01 17:39 do you make bank there 2013-10-01 17:39 serious bank 2013-10-01 17:39 ha ha 2013-10-01 17:39 huh 2013-10-01 17:40 janestreet.com 2013-10-01 17:40 yeah, i've often wondered about what it's like to work in finance 2013-10-01 17:40 because they make absolute buttloads of money 2013-10-01 17:40 they're like the only thing keeping ocaml alive 2013-10-01 17:40 but I dunno whether the stress would be worth it 2013-10-01 17:40 nyc, london and hong kong 2013-10-01 17:40 (brb) 2013-10-01 17:40 makes sense 2013-10-01 17:40 i'm not in any of those places 2013-10-01 17:43 joelteon: you could be 2013-10-01 17:43 yeah 2013-10-01 17:43 do you know how much you make working there 2013-10-01 17:43 as a software developer 2013-10-01 18:00 joelteon: not sure, presumably a lot 2013-10-01 18:16 cuttle: I think I've found my ideal job. http://hire.jobvite.com/Jobvite/Job.aspx?j=oIsbXfw2&c=qSa9VfwQ 2013-10-01 18:16 MOTHERFUCKING PARSERS 2013-10-01 18:16 Kapone has quit [Quit: Leaving] 2013-10-01 18:16 I wonder how much they pay 2013-10-01 18:19 damn it's removed. why the hell show it then! -_- 2013-10-01 18:22 -_- 2013-10-01 18:27 Hi, all 2013-10-01 18:27 hello elliott 2013-10-01 18:28 hi ELLIOTTCABLE 2013-10-01 18:44 hi, prophile, cuttle 2013-10-01 18:52 hi ELLIOTTCABLE 2013-10-01 18:52 hi prophile, cuttle, alexgordon 2013-10-01 18:52 hi ELLIOTTCABLE, prophile, cuttle, joelteon and alexgordon 2013-10-01 18:52 hi prophile, cuttle, alexgordon, and purr 2013-10-01 18:52 ELLIOTTCABLE: hi! 2013-10-01 19:10 yrashk_ has joined #elliottcable 2013-10-01 19:13 yrashk has quit [Read error: Connection reset by peer] 2013-10-01 19:26 _whitelogger____ has joined #elliottcable 2013-10-01 19:27 brr has quit [*.net *.split] 2013-10-01 19:27 _whitelogger___ has quit [*.net *.split] 2013-10-01 19:27 duckinator has quit [*.net *.split] 2013-10-01 19:27 sammcd has quit [*.net *.split] 2013-10-01 19:31 duckinator has joined #elliottcable 2013-10-01 19:38 ok 2013-10-01 19:38 so the provision process is down from 66 minutes to 2013-10-01 19:39 19 2013-10-01 19:39 valve time^-1 2013-10-01 19:39 time to speed it up more 2013-10-01 19:39 i think git clone --depth 1 still takes 5 minutes or more 2013-10-01 19:39 but i don't know why 2013-10-01 19:40 man it's good to actually be doing something useful for once 2013-10-01 19:41 hiiiii allll 2013-10-01 19:41 hi 2013-10-01 19:41 joelteon: hi! 2013-10-01 19:41 hi purr how's things 2013-10-01 19:41 joelteon: hi! 2013-10-01 19:41 joelteon: can you centrally provision from somewhere? 2013-10-01 19:41 that's not an answer 2013-10-01 19:41 i.e. move the git data local to the provisioned machines, and then provision them all from there? 2013-10-01 19:41 ELLIOTTCABLE: the two longest steps are the git checkout and yum-makecache 2013-10-01 19:42 well, if I provision a new server, we still have to download the source from somewhere 2013-10-01 19:42 what I could do is create a release on github 2013-10-01 19:42 and download the whole thing as a tarfile instead 2013-10-01 19:43 git checkout shouldn't take long. 2013-10-01 19:43 and if it does, there's lots of ways to make it faster. 2013-10-01 19:43 these machines only need the *HEAD*, or at least, mostly just that, right? 2013-10-01 19:43 yeah 2013-10-01 19:43 shallow copy 2013-10-01 19:43 i'll check how long it takes to clone it 2013-10-01 19:44 2927 objects to receive 2013-10-01 19:44 git clone --depth 10. 2013-10-01 19:44 reasonable download speed 2013-10-01 19:44 or similar. 2013-10-01 19:44 i'm using --depth 1 2013-10-01 19:44 --single-branch? 2013-10-01 19:44 looks like it should be going a lot faster than five minutes 2013-10-01 19:44 watf 2013-10-01 19:44 hang on 2013-10-01 19:44 almost done 2013-10-01 19:44 how many submodules are there? 2013-10-01 19:44 it took 42 seconds 2013-10-01 19:44 no submodules 2013-10-01 19:44 the submodules probably aren't depth/single-branch'd 2013-10-01 19:44 oh 2013-10-01 19:44 why --recursive then? 2013-10-01 19:45 there's no --recursive 2013-10-01 19:45 when did i say recursive 2013-10-01 19:45 oh, mis-read 2013-10-01 19:45 >elliott 2013-10-01 19:45 what the *fuck* is in your repo, that it takes five minutes to clone a single revision over the local network 2013-10-01 19:45 it doesn't 2013-10-01 19:45 a shallow clone is 17.2MB 2013-10-01 19:45 and takes 42 seconds 2013-10-01 19:45 but takes SIGNIFICANTLY longer on the test machine 2013-10-01 19:46 is clone time mostly dependent on network speed or what 2013-10-01 19:46 oh, hang on 2013-10-01 19:46 I was cloning master, but vendored is the branch I need 2013-10-01 19:46 because bundle install with no gems on a 256MB RAM VM takes 36 minutes 2013-10-01 19:47 bundle package takes that down to about 30 seconds 2013-10-01 19:47 vendored looks like it might be going pretty slow 2013-10-01 19:48 vendored is 42MB and takes 124 seconds to clone 2013-10-01 19:48 the clone on the VM takes waaaaaaay longer 2013-10-01 19:48 why is taht 2013-10-01 19:49 need better output 2013-10-01 19:52 does git clone need significant ram 2013-10-01 19:53 that clone took 7 minutes 2013-10-01 19:56 man, even just downloading takes 3m+ 2013-10-01 19:57 clone seems to do better compression than a naive tar and gzip 2013-10-01 19:58 w/w 71 2013-10-01 20:21 sammcd_ is now known as sammcd 2013-10-01 20:35 hi 2013-10-01 20:35 cuttle: hi! 2013-10-01 20:35 ELLIOTTCABLE: i do not understand the duck water keyboard rebus 2013-10-01 20:36 “duck typing” 2013-10-01 20:36 (with its feet) 2013-10-01 20:36 cuttle: /srv/http/sites/micah.yreality.net <3 2013-10-01 20:36 but that's boring. 2013-10-01 20:36 I'll buy you a domain, if you like. 2013-10-01 20:36 cuttle-something 2013-10-01 20:36 ha ha ha duck typing 2013-10-01 20:36 hmm i will have to think about 2013-10-01 20:36 what i want 2013-10-01 20:37 cuttle: http://cut.tl 2013-10-01 20:37 lol cuttlebone.com is squatted 2013-10-01 20:37 lol 2013-10-01 20:37 available. want it? 2013-10-01 20:37 hmmm i like it 2013-10-01 20:37 hmmmmmmm 2013-10-01 20:37 cut.tl/micah 2013-10-01 20:37 imo 2013-10-01 20:38 always want to have your *name* in your domain / urls, somewhere 2013-10-01 20:38 haha http://en.wikipedia.org/wiki/.ne is dead 2013-10-01 20:38 hm hm hm 2013-10-01 20:39 i should have ti be 2013-10-01 20:39 cut.tl/e 2013-10-01 20:39 haha 2013-10-01 20:41 sweet let's do it 2013-10-01 20:41 thxthxthx <3 2013-10-01 20:48 ugh, zerigo is so insecure 2013-10-01 20:48 at least there's no password restrictions 2013-10-01 20:49 is it like bulk domains 2013-10-01 20:56 ELLIOTTCABLE: oh I thought that was going to be the old soviet one 2013-10-01 20:56 erm 2013-10-01 20:56 cuttle 2013-10-01 20:57 alexgordon: 2013-10-01 20:57 cuttle: https://en.wikipedia.org/wiki/.su 2013-10-01 20:57 what? 2013-10-01 20:57 no, zerigo is my DNS service 2013-10-01 20:58 alexgordon: oh haha wow 2013-10-01 20:59 what's that crazy russian language again? 2013-10-01 20:59 I always forget -_- 2013-10-01 20:59 which one. LOL. 2013-10-01 20:59 LOL 2013-10-01 21:00 ELLIOTTCABLE: the crazy one 2013-10-01 21:00 man there's no fucking git 1.8 rpm ANYWHERE 2013-10-01 21:00 FUCK 2013-10-01 21:02 alexgordon: programming or real life? 2013-10-01 21:03 cuttle: lol russian the language is crazy 2013-10-01 21:03 lol 2013-10-01 21:03 cuttle: programming 2013-10-01 21:06 alexgordon: rebol? 2013-10-01 21:06 not rebol 2013-10-01 21:06 alexgordon: refal? 2013-10-01 21:08 cuttle: yeah refal 2013-10-01 21:08 or something like that 2013-10-01 21:08 yeah refal it is 2013-10-01 21:08 http://www.refal.net/ 2013-10-01 21:08 JESUS FUCKING CHRIST 2013-10-01 21:08 someone submit that to HN 2013-10-01 21:08 why 2013-10-01 21:09 it's actually: 2013-10-01 21:09 not that crafzy 2013-10-01 21:09 really interesting 2013-10-01 21:09 the website is crazy 2013-10-01 21:09 also i believe the wikipedia page was submitted to hn once 2013-10-01 21:10 cuttle: cut.tl is bought, and the DNS is propagating. Try in ~48 hours. it's a slow TLD. 2013-10-01 21:11 ELLIOTTCABLE: :3 thxthxthx 2013-10-01 21:11 <3 2013-10-01 21:15 the country it's from is 134th on the HDI 2013-10-01 21:15 though 6th fastest growing GDP in 2013 2013-10-01 21:21 tl? 2013-10-01 21:22 yeah 2013-10-01 21:22 east timor 2013-10-01 21:22 oh east timor 2013-10-01 21:22 or, timor leste 2013-10-01 21:22 well it's a new country 2013-10-01 21:22 so cut them some slack cuttle 2013-10-01 21:23 yeah they were fighting for indepenence from indonesia for a while 2013-10-01 21:23 :p 2013-10-01 21:23 hi guys 2013-10-01 21:23 hi mr evans 2013-10-01 21:23 oh sweet url cuttle 2013-10-01 21:23 thx 2013-10-01 21:24 I really need to get on finding a good one 2013-10-01 21:24 ELLIOTTCABLE: CAN I HAVE ONE TOO? 2013-10-01 21:24 no. 2013-10-01 21:24 :( 2013-10-01 21:24 because some day I might have free time again 2013-10-01 21:24 you're not working with me on things. 2013-10-01 21:24 pleaaaaaaaaaase 2013-10-01 21:25 cuttle: so I'm making a big database of piano solos 2013-10-01 21:25 like a scrapbook :P 2013-10-01 21:25 I've decided that the relevant part of your name is lexgor. 2013-10-01 21:25 alexgordon: haha sweet 2013-10-01 21:25 lexgor.io? 2013-10-01 21:25 lol 2013-10-01 21:25 lol 2013-10-01 21:26 actually, nah, that's 49$, I don't care *that* much about youy 2013-10-01 21:26 but seriously, /nick lexgor 2013-10-01 21:26 that's such an excellent name. 2013-10-01 21:26 alexgordon is now known as lexgor 2013-10-01 21:26 'lexgor 2013-10-01 21:26 need an apostrophe 2013-10-01 21:26 it's foreshortened 2013-10-01 21:26 can you do that? 2013-10-01 21:26 'sup, 'lexgor? 2013-10-01 21:26 * ELLIOTTCABLE laughs 2013-10-01 21:26 no 2013-10-01 21:27 it sounds like gore tex 2013-10-01 21:27 gorlex? 2013-10-01 21:27 that sounds like my name but drunk 2013-10-01 21:27 lol 2013-10-01 21:27 ARREX GORLEX!!KJ@ 2013-10-01 21:28 HOW RERR UEW 2013-10-01 21:28 either that or no teeth 2013-10-01 21:28 kexgor 2013-10-01 21:29 I think your name should be kexgor. 2013-10-01 21:29 it sounds cool. 2013-10-01 21:29 also, it's available on Twitter. ;) 2013-10-01 21:31 ELLIOTTCABLE: how about 2013-10-01 21:31 lexgor is now known as algor 2013-10-01 21:31 lol. 2013-10-01 21:31 lol 2013-10-01 21:31 it does sound a bit like al gore 2013-10-01 21:31 but on the other hand, algorithms baby 2013-10-01 21:40 algor is now known as alexgordon 2013-10-01 21:47 i don't know how the myth that diet soda is bad for you gained so much traction 2013-10-01 21:47 because there's basically zero amounts of evidence for it ever at all 2013-10-01 21:48 cuttle: erm, isn't it full of sugar? 2013-10-01 21:48 alexgordon: um no, that's why it's called *diet* soda 2013-10-01 21:48 usually has 0-10 calories a bottle 2013-10-01 21:48 cuttle: I thought diet coke had sugar in it, coke zero has very little 2013-10-01 21:49 no, diet coke has 0 calories 2013-10-01 21:49 how many calories are in it anyway? 2013-10-01 21:49 errr 2013-10-01 21:49 diet coke and coke zero both have 0 calories, they're just different flavors 2013-10-01 21:49 coke zero tastes as similar to normal coke as possible while having no sugar 2013-10-01 21:50 whereas diet coke is a distinct flavor that a lot of people prefer 2013-10-01 21:50 oh I see 2013-10-01 21:50 but yeah basically all people have to say about how it's bad is: 2013-10-01 21:50 aspartame causes cancer in rats in one incredibly shitty study one time 2013-10-01 21:51 overweight people drink more diet soda, so obviously it caused their overweightness 2013-10-01 21:51 then it's probably ok, except that I don't think there's much evidence about the effect of sweetners on the body to say either way 2013-10-01 21:51 * cuttle nods 2013-10-01 21:52 does it affect your blood sugar at all? 2013-10-01 21:52 or any other processes 2013-10-01 21:55 `dig cut.tl @a.ns.elliottcable.name` 2013-10-01 21:55 still won't be available on the open web 2013-10-01 21:55 but hey, it's there 2013-10-01 21:57 yorick has quit [Remote host closed the connection] 2013-10-01 22:03 cuttle: got an instagram or anything? 2013-10-01 22:03 copying the configuration I use for chelsea and I 2013-10-01 22:03 ELLIOTTCABLE: never got around to getting one 2013-10-01 22:03 so it's got cut.tl/twitter and cut.tl/facebook 2013-10-01 22:03 oh cool 2013-10-01 22:03 maybe not facebook 2013-10-01 22:04 alexgordon: i think there's no solid evidence on anything like that 2013-10-01 22:04 droplr or anything for uploading screenshots? 2013-10-01 22:04 cuttle: I thought the diet sodas used aspartame, which is Bad For You™. 2013-10-01 22:04 even Splenda is suspect. 2013-10-01 22:04 hence why stevia. 2013-10-01 22:05 ELLIOTTCABLE: i found out why 2013-10-01 22:05 this is all things I was told by my father, so I trust them. ;) 2013-10-01 22:05 ELLIOTTCABLE: the evidence that asparatame is bad for you is like nonexistent 2013-10-01 22:05 git 1.8's clone algorithm is orderns of magnitude faster than 1.7's 2013-10-01 22:05 like, one study on rats one time 2013-10-01 22:05 1.7 fetches 40,000 objects 2013-10-01 22:05 1.8 fetches 5000 2013-10-01 22:05 I love DC w/ splenda 2013-10-01 22:05 sooooo delicious 2013-10-01 22:05 the problem with splenda is 2013-10-01 22:06 sugar packets taste good by themselves 2013-10-01 22:06 but splenda does not 2013-10-01 22:06 it tastes like laundry detergent smells 2013-10-01 22:06 :p 2013-10-01 22:06 i actually don't really like soda at all really 2013-10-01 22:06 but i'm drinking it more now because we can easily get large quantities of it with our meal plans and my roommate is a fan of diet coke 2013-10-01 22:06 :p 2013-10-01 22:07 ELLIOTTCABLE: what should i do 2013-10-01 22:07 what day is today D: 2013-10-01 22:08 tuesday 2013-10-01 22:08 do you not know 2013-10-01 22:08 do I *look* like I know things 2013-10-01 22:08 I don't know *any* of the things 2013-10-01 22:09 oh god i need to do things 2013-10-01 22:09 calc midterm tomorrow 2013-10-01 22:09 physics midterm friday 2013-10-01 22:10 make a website for my uncle 2013-10-01 22:10 do laundry 2013-10-01 22:10 go running this evening 2013-10-01 22:10 make hip hop beats 2013-10-01 22:10 write blog posts 2013-10-01 22:10 practice drawing 2013-10-01 22:10 i hate running 2013-10-01 22:10 <3 running 2013-10-01 22:10 Let it be known that cuttle hearts running. 2013-10-01 22:10 if i had some gyakosou lunaspiders i would consider it 2013-10-01 22:10 lol 2013-10-01 22:10 lol 2013-10-01 22:12 the problem might be that git clones at 33kb/s 2013-10-01 22:13 joelteon: what is special about gyakosou lunarspiders? 2013-10-01 22:13 it's in one of those /fa/ memes about running 2013-10-01 22:16 i don't know /fa/ 2013-10-01 22:16 heh 2013-10-01 22:16 i'll see if I can find it 2013-10-01 22:16 but i doubt it 2013-10-01 22:23 <3 the national 2013-10-01 22:23 Let it be known that cuttle hearts the national. 2013-10-01 22:42 cuttle: iirc the problem with sugar substitutions is that they prime your body for sugar which never actually arrives 2013-10-01 22:42 and nobody really knows if that's bad for you in the long term 2013-10-01 22:42 alexgordon: well i mean what evidence do we have for that? do we have data about like insulin levels and stuff? 2013-10-01 22:43 cuttle: not sure, I'm not an expert 2013-10-01 22:43 aight 2013-10-01 22:44 obviously sugar substitutes excite your sweet tastebuds 2013-10-01 22:44 which sends a signal to your brain 2013-10-01 22:45 yeah but i mean how significant is that 2013-10-01 22:46 like do we have evidence that your metabolism is specifically triggered by taste buds? 2013-10-01 22:46 rather than say 2013-10-01 22:46 the presence of things in your stomach 2013-10-01 22:46 or 2013-10-01 22:46 presence of actual sugar in your bloodstream 2013-10-01 22:46 etc. 2013-10-01 22:46 like 2013-10-01 22:46 you can't just state that without lots of quantitative evidence 2013-10-01 22:47 cuttle: I half-remember an experiment in a documentary a few years ago (E numbers an edible adventure) which was a blind test 2013-10-01 22:47 ok 2013-10-01 22:48 cuttle: some people ate sugar-sweetened, some ate artificially sweetened, and iirc the people eating the artificially sweetened food ate more, even though they didn't know which was which 2013-10-01 22:48 ok hm 2013-10-01 22:49 artificially sweetened *does* taste different, so it could be as simple as that 2013-10-01 22:49 i don't even know 2013-10-01 22:49 * cuttle will continue to drink diet soda because of its much lower calorie count :p 2013-10-01 22:49 cuttle: yeah you'd have to ask people which they thought was which 2013-10-01 22:49 mhm 2013-10-01 22:49 then get equal numbers of right/wrong 2013-10-01 22:50 though actually, I'm not sure if that was actually the experiment 2013-10-01 22:51 maybe it was they got people to drink sugar soda vs artificially sweetened soda 2013-10-01 22:51 THEN to eat 2013-10-01 22:51 (normal sugary food) 2013-10-01 22:51 then the people who drank the zero-calorie soda ate more sugary food to compensate 2013-10-01 22:51 that would make more sense as an experiment 2013-10-01 22:53 cuttle: if that was it, then the point is that even if you drink artificially sweetened soda, it may be no better for you, since you'll just dose up on more sugar later 2013-10-01 23:12 * ELLIOTTCABLE @JoshHelfferich: Okay, so remember t.A.T.u.? Their lead singer went solo, and I just cut her latest video: http://t.co/Kk7BB9KpVx 2013-10-01 23:12 why the fuck does it do that 2013-10-01 23:13 * ELLIOTTCABLE test 2013-10-01 23:13 ahhhhhh 2013-10-01 23:13 cool 2013-10-01 23:16 Sorella has quit [Quit: Ex-Chat] 2013-10-01 23:18 alexgordon: yeah that's interesting 2013-10-01 23:19 alexgordon: i read stuff about studies that said people eat more to compensate, but they were just like big ol reviews of statistics, so like the people who ate more sugary food were the ones who drank diet soda, but that very well could be the opposite causation, like they do recognize they are unhealthy so they drink specifically diet to take a step to fix 2013-10-01 23:19 it 2013-10-01 23:19 et.c 2013-10-01 23:19 like 2013-10-01 23:19 statistics r hard 2013-10-01 23:19 :p 2013-10-01 23:19 ELLIOTTCABLE: my voice has way improved since the last time i uploaded me singing something here 2013-10-01 23:19 i want to put up some acoustic guitar covers on youtube 2013-10-01 23:34 PragCypher has quit [Quit: Leaving] 2013-10-02 00:09 alexgordon: DAVE HOLAND 2013-10-02 00:09 HOLLAND* 2013-10-02 00:09 this is my fucking jam 2013-10-02 00:09 cuttle: dave holland is the deity I worship 2013-10-02 00:09 prismsmssmsmsm 2013-10-02 00:09 though i will have to go back through everything else he's done 2013-10-02 00:09 after listening to this a lot 2013-10-02 00:10 :p 2013-10-02 00:10 cuttle: they're playing here in november http://www.ronniescotts.co.uk/performances/view/1559-dave-holland-prism 2013-10-02 00:10 aw manannannnn 2013-10-02 00:10 I should buy a ticket 2013-10-02 00:11 yeah you should 2013-10-02 00:11 :p 2013-10-02 00:11 I should! 2013-10-02 00:11 do it for me 2013-10-02 00:11 haha 2013-10-02 00:13 jazz trio 2013-10-02 00:13 is the best thing 2013-10-02 00:13 in existence 2013-10-02 00:17 Sgeo has joined #elliottcable 2013-10-02 00:22 alexgordon: you see that chris potter underground thing from locks? 2013-10-02 00:23 cuttle: yeah 2013-10-02 00:23 SO GOOD 2013-10-02 00:25 cuttle: eh, no bass :P 2013-10-02 00:25 haha 2013-10-02 00:25 well 2013-10-02 00:25 i love bass, a ton 2013-10-02 00:25 but 2013-10-02 00:25 this is like the best thing ever 2013-10-02 00:30 fwg has quit [Quit: gone] 2013-10-02 00:30 cuttle: well as I was saying to locks, I prefer his stuff with dave holland 2013-10-02 00:31 ah ok 2013-10-02 00:31 recommend me some albums 2013-10-02 00:31 Dave Holland Extended Play is my favourite album ever 2013-10-02 00:32 also, the monterey quartet http://www.youtube.com/watch?v=eC0Ov6PwFiI 2013-10-02 00:32 dave holland the bass player? 2013-10-02 00:32 not available in my coutnryyyyy :/ 2013-10-02 00:32 prophile: yeah 2013-10-02 00:32 cuttle -_- 2013-10-02 00:32 found it on spotify though 2013-10-02 00:32 and kenny wheeler what now: http://www.youtube.com/watch?v=4grOslnm4nE 2013-10-02 00:34 third one is so relaxing 2013-10-02 00:34 why I'm falling asleep already 2013-10-02 00:37 so much jazz to listen to 2013-10-02 00:37 :D 2013-10-02 00:38 yeah 2013-10-02 00:39 hey alexgordon so i had an idea 2013-10-02 00:39 about a cpu architecture 2013-10-02 00:39 wanted to know what you think 2013-10-02 00:39 it's vague and probably awful 2013-10-02 00:39 does it involve dave holland? 2013-10-02 00:39 haha no 2013-10-02 00:40 so the idea is for like 2013-10-02 00:40 a 2013-10-02 00:40 dataflow processor 2013-10-02 00:40 i don't know how those have been made in the past 2013-10-02 00:40 something about content-addressable memory 2013-10-02 00:40 i don't want to do that 2013-10-02 00:40 i want it to be very asynchronous 2013-10-02 00:40 so that it scales upwards indefinitely to like 2013-10-02 00:41 multiple processors communicating 2013-10-02 00:41 so it's more like 2013-10-02 00:41 paws: now in architecture form 2013-10-02 00:41 a bunch of processor 2013-10-02 00:41 rather than 2013-10-02 00:41 *a* processor 2013-10-02 00:41 so like a gpu but way more general purpose 2013-10-02 00:41 so like it'd be hierarchical 2013-10-02 00:41 like little locales 2013-10-02 00:42 and each little cell can look at the other cells in its locale 2013-10-02 00:42 and like compute a result, or be data 2013-10-02 00:42 so data and functions are exactly the same, just arbitrary directed graphs of cells 2013-10-02 00:42 prophile is obviously more awake than I am 2013-10-02 00:42 but there's no problem with garbage collection of cycles because it is not like a global addressable space 2013-10-02 00:43 everything is really local 2013-10-02 00:43 cuttle: so you're trying to build... a brain? 2013-10-02 00:43 hahahahaa 2013-10-02 00:43 loads of little processors communicating 2013-10-02 00:43 yeah 2013-10-02 00:43 it's more similar to a brain than von neumann architectures are, yes 2013-10-02 00:43 cool 2013-10-02 00:43 I've always thought computers should be more like brains 2013-10-02 00:43 yeah 2013-10-02 00:43 definitely 2013-10-02 00:43 bullshit 2013-10-02 00:43 brains are more powerful than computers at many tasks 2013-10-02 00:43 brains are unpredictable and buggy 2013-10-02 00:43 this is way more organized than a brain though, though it'd probalby be really suited to like adaptation and stuff 2013-10-02 00:43 like 2013-10-02 00:43 neural network shit 2013-10-02 00:43 for the same power budget anyway 2013-10-02 00:44 also they have tentacles 2013-10-02 00:44 like, it'd probably be easy to implement them on top of it 2013-10-02 00:44 can a computer beat a top chess player using the same number of watts as a human brain? 2013-10-02 00:44 but like this would be able to deterministically lay out a whole thing in 2013-10-02 00:44 alexgordon++ 2013-10-02 00:44 Let it be known that cuttle loves alexgordon. 2013-10-02 00:44 there should be a competition for that 2013-10-02 00:45 apparently it uses around 20W 2013-10-02 00:45 alexgordon: anyway, this is the architecture corresponding to the idea i was trying to explain earlier 2013-10-02 00:45 your brain uses like a 3rd of your calories 2013-10-02 00:45 prophile: and computers are not? 2013-10-02 00:45 it seems weird to me that computers and brains use energy at all 2013-10-02 00:45 cuttle: I thought the liver used the most power 2013-10-02 00:45 yknow? 2013-10-02 00:45 like i mean obviously they do 2013-10-02 00:45 but like they're just doing stuff with information, not moving big ol heavy things around 2013-10-02 00:45 haha 2013-10-02 00:46 alexgordon: no, they're generally very predictable and they can't tie themselves in knots in normal operation 2013-10-02 00:46 computers segfault, they don't get depressed 2013-10-02 00:46 or schizophrenic 2013-10-02 00:46 prophile: you've obviously not used iTunes 2013-10-02 00:46 haha 2013-10-02 00:46 obviously brains and computers are good at different things 2013-10-02 00:46 right 2013-10-02 00:46 okay 2013-10-02 00:46 fuck iTunes 2013-10-02 00:46 and everything about it 2013-10-02 00:46 it's so crazy 2013-10-02 00:46 I tried to rent a movie from iTunes 2013-10-02 00:46 that we build an ecosystem of a bunch of things running simultaneously 2013-10-02 00:47 on top of like 2013-10-02 00:47 I don't expect to have to wrestle the fucking thing to play it 2013-10-02 00:47 one instruction at a time 2013-10-02 00:47 one part of memory read at a time 2013-10-02 00:47 I'm angry now alexgordon 2013-10-02 00:47 I hope you're proud of yourself 2013-10-02 00:47 lol 2013-10-02 00:47 lol 2013-10-02 00:47 itunes was pissing me off earlier 2013-10-02 00:47 took 20 minutes to buy a fucking album 2013-10-02 00:48 alexgordon: we should talk about this in more detail sometime later 2013-10-02 00:48 i gtg pretty soon 2013-10-02 00:48 but i want to flesh it out 2013-10-02 00:48 cuttle: yeah maybe later tomorrow 2013-10-02 00:49 cool 2013-10-02 00:51 cloudhead has quit [Ping timeout: 240 seconds] 2013-10-02 00:53 going running 2013-10-02 00:53 bye all 2013-10-02 00:53 o7 2013-10-02 00:53 hi, all 2013-10-02 00:53 aw you just missed me :p 2013-10-02 00:53 want to discuss this with you too ELLIOTTCABLE 2013-10-02 00:53 when i get back 2013-10-02 00:54 hi el 2013-10-02 00:56 discuss what with me 2013-10-02 00:59 ELLIOTTCABLE: cuttle is building a human brain 2013-10-02 00:59 from scratch 2013-10-02 00:59 wat. 2013-10-02 00:59 That feel when you go into #ELLIOTTCABLE, and hear some new batshit for the first time, 2013-10-02 01:00 and *don't* discount it, 'cause it's in #ELLIOTTCABLE. 2013-10-02 01:00 hahaha 2013-10-02 01:00 ELLIOTTCABLE: cuttle has this idea for a processor design which is lots of little interconnected cores 2013-10-02 01:00 like a brain 2013-10-02 01:00 i can do that 2013-10-02 01:00 just give me a girl and 9 months 2013-10-02 01:00 * ELLIOTTCABLE pats joelteon 2013-10-02 01:03 joelteon: technically wouldn't the girl be doing that? 2013-10-02 01:03 yeah but i had a hand in it 2013-10-02 01:03 joelteon: kinky 2013-10-02 01:03 is cuttle gonna build this thing himself from scratch 2013-10-02 01:03 or will he use manufactured parts 2013-10-02 01:03 nah it's just a design, cuttle doesn't own a fab (yet) 2013-10-02 01:04 (yet) 2013-10-02 01:04 why isn't cuttle rich yet 2013-10-02 01:04 he will be 2013-10-02 01:04 cuttle, go solve getting-rich. it's a problem, you shouldn't have a hard time. 2013-10-02 01:04 it's certainly simpler than an optimizing compiler, 2013-10-02 01:04 ELLIOTTCABLE: well gay marriage is legal now 2013-10-02 01:04 so 2013-10-02 01:04 1. Marry ELLIOTTCABLE 2013-10-02 01:04 LOL 2013-10-02 01:04 LOL 2013-10-02 01:04 gods, no 2013-10-02 01:05 if cuttle isn't running a small country in 5 years I'm going to be so disappointed 2013-10-02 01:06 riiiiight 2013-10-02 01:06 and that country better be in space. 2013-10-02 01:06 otherwise I'll definitely be all ‘ಠ_ಠ.’ at him. 2013-10-02 01:06 "cuttle, first president of the moon" 2013-10-02 01:06 at 23 2013-10-02 01:07 i'd be hurt you guys don't think i'll be president of the moon 2013-10-02 01:07 but i'm still gonna be busy trying to fix this provision by then 2013-10-02 01:07 joelteon: you might be high, but you're not THAT high 2013-10-02 01:08 ): 2013-10-02 01:08 Please welcome His Excellence Micah Johnston, the Premier of MarsColony! 2013-10-02 01:08 oh is that who cuttle is 2013-10-02 01:08 alexgordon: wat. 2013-10-02 01:08 beep. 2013-10-02 01:08 LOL joelteon 2013-10-02 01:08 LOL 2013-10-02 01:09 well nobody told me 2013-10-02 02:06 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-02 04:20 hi 2013-10-02 04:20 cuttle: hi! 2013-10-02 04:20 hi ELLIOTTCABLE 2013-10-02 04:20 i am currently on mars 2013-10-02 04:20 did what you wanted 2013-10-02 04:20 now what 2013-10-02 04:22 ELLIOTTCABLE: also when cut.tl goes through, how will I get to it? 2013-10-02 04:22 OOH A FOLDER 2013-10-02 04:22 IN /SRV 2013-10-02 04:22 :3 2013-10-02 04:23 :3 2013-10-02 04:25 todd is the creepiest motherfucker 2013-10-02 04:33 joelteon: i know right 2013-10-02 04:47 niggler has quit [Ping timeout: 256 seconds] 2013-10-02 05:14 ELLIOTTCABLE: CUT.TL IS UP CUT.TL IS UP 2013-10-02 05:14 UPUPUP 2013-10-02 05:14 UP 2013-10-02 05:14 UP 2013-10-02 05:14 UP 2013-10-02 05:14 :>>>> 2013-10-02 05:14 WTF micah 2013-10-02 05:14 cuttle: Why are you cuttle now? 2013-10-02 05:15 Nuck: because 2013-10-02 05:15 Nuck: i like cuttlefish 2013-10-02 05:15 Nuck: and cephalopods in general 2013-10-02 05:15 I swear, I leave and the people get crazier 2013-10-02 05:15 WTF 2013-10-02 05:17 http://cut.tl/e 2013-10-02 05:17 neat 2013-10-02 05:18 ELLIOTTCABLE: how to redirect cut.tl to cut.tl/e 2013-10-02 05:18 nginx 2013-10-02 05:18 location / { return 301 /e } 2013-10-02 05:19 i don't think i have access to this 2013-10-02 05:19 i just put things in directories 2013-10-02 05:22 brry is now known as brr 2013-10-02 05:27 todd is creepy but 2013-10-02 05:27 lydia 2013-10-02 05:27 would smash/10 2013-10-02 05:36 haha 2013-10-02 05:36 joelteon: you've seen the finale, right? just wondering 2013-10-02 05:38 i'm seeing it right now 2013-10-02 05:38 oh sweet 2013-10-02 05:38 enjoy! 2013-10-02 06:02 ok all done with breaking bad 2013-10-02 06:30 Me too 2013-10-02 06:43 eligrey has quit [Quit: Leaving] 2013-10-02 06:57 joelteon: how do you feel 2013-10-02 07:00 ELLIOTTCABLE: <3 2013-10-02 07:00 gnight each 2013-10-02 07:00 haha i just realized that's paws 2013-10-02 07:00 gnight(each) 2013-10-02 07:02 o7 2013-10-02 07:15 alexgordon has joined #elliottcable 2013-10-02 07:21 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-02 09:47 fwg has joined #elliottcable 2013-10-02 09:53 jvulc has quit [Ping timeout: 260 seconds] 2013-10-02 09:53 ELLIOTTCABLE has quit [Ping timeout: 240 seconds] 2013-10-02 12:03 cloudhead has joined #elliottcable 2013-10-02 12:04 Sgeo has quit [Read error: Connection reset by peer] 2013-10-02 12:12 jvulc has joined #elliottcable 2013-10-02 12:12 jvulc has quit [Changing host] 2013-10-02 12:12 jvulc has joined #elliottcable 2013-10-02 12:12 jvulc has joined #elliottcable 2013-10-02 12:14 ELLIOTTCABLE has joined #elliottcable 2013-10-02 12:33 PragCypher has joined #elliottcable 2013-10-02 12:36 Sorella has joined #elliottcable 2013-10-02 12:36 Sorella has joined #elliottcable 2013-10-02 12:36 Sorella has quit [Changing host] 2013-10-02 13:12 PragCypher has quit [Remote host closed the connection] 2013-10-02 13:13 PragCypher has joined #elliottcable 2013-10-02 13:32 yorick has joined #elliottcable 2013-10-02 13:43 sharkbot has quit [Remote host closed the connection] 2013-10-02 13:43 sharkbot has joined #elliottcable 2013-10-02 15:01 cloudhead has quit [Read error: No route to host] 2013-10-02 15:02 fwg has quit [Ping timeout: 248 seconds] 2013-10-02 15:21 alexgordon has joined #elliottcable 2013-10-02 15:52 PragCypher has quit [Quit: Leaving] 2013-10-02 15:56 fwg has joined #elliottcable 2013-10-02 16:56 hu 2013-10-02 16:56 hi 2013-10-02 16:56 cuttle: hi! 2013-10-02 16:56 alexgordon: 2013-10-02 16:56 ELLIOTTCABLE: 2013-10-02 16:57 cuttle 2013-10-02 16:57 ! 2013-10-02 16:57 ! 2013-10-02 16:58 how's it goin 2013-10-02 16:58 g 2013-10-02 16:59 alexgordon: not jazz and all but some very nice bass http://www.youtube.com/watch?v=plhnSptU9tg 2013-10-02 17:04 shit 2013-10-02 17:04 silk road got fucked 2013-10-02 17:04 tor is compromised 2013-10-02 17:04 nothing is safe anymore 2013-10-02 17:04 where will i get my designer drugs 2013-10-02 17:13 man, it really isn't fun to use super old versions of stuff 2013-10-02 17:15 cuttle: tor is a good idea with a stupid implementation 2013-10-02 17:24 what's the implementation 2013-10-02 17:24 ? 2013-10-02 17:24 bbiab lunch 2013-10-02 17:26 cuttle: using browsers 2013-10-02 17:26 cuttle: with regular html 2013-10-02 17:26 haha yeah 2013-10-02 17:26 browers are shite 2013-10-02 17:26 they should have used a restricted subset of XHTML 2013-10-02 17:26 and specialist browsers 2013-10-02 17:26 * cuttle nods 2013-10-02 17:27 bye lunch 2013-10-02 17:27 o7 2013-10-02 17:27 alexgordon has quit [Quit: ["Textual IRC Client: www.textualapp.com"]] 2013-10-02 17:37 hi 2013-10-02 17:37 cuttle: hi! 2013-10-02 17:42 unfortunately, the guy only new PHP 2013-10-02 17:42 (http://stackoverflow.com/questions/15445285/how-can-i-connect-to-a-tor-hidden-service-using-curl-in-php) 2013-10-02 17:44 eligrey has joined #elliottcable 2013-10-02 17:46 alexgordon has joined #elliottcable 2013-10-02 18:23 fwg: haha yeah 2013-10-02 18:26 ok 2013-10-02 18:26 ok i am here 2013-10-02 18:26 cloudhead has joined #elliottcable 2013-10-02 18:26 i'm the only sysadmin at work for the rest of the week 2013-10-02 18:41 syphon off documents, leave for Hong Kong 2013-10-02 18:48 haha 2013-10-02 18:58 so my new approach for learning languages 2013-10-02 18:58 take a book (something well known, harry potter is a good one) 2013-10-02 18:59 then take out all the nouns and other content words you can translate easily 2013-10-02 18:59 leaving in the function words 2013-10-02 18:59 read that 2013-10-02 19:00 the content words in english should provide enough context to work out what's happening, but the foreign function words ensure you're thinking in the language 2013-10-02 19:22 alexgordon: that's a good point 2013-10-02 19:23 yeah function words are the ones you have to have on a more unconscious level 2013-10-02 20:02 cuttle: yeah for sure 2013-10-02 20:02 function words ARE language 2013-10-02 20:02 since no one person knows ALL content words in any language 2013-10-02 20:02 but any fluent speaker must know all function words 2013-10-02 20:59 yeah 2013-10-02 21:00 cuttle: booking my ticket! 2013-10-02 21:07 vil has quit [Ping timeout: 264 seconds] 2013-10-02 21:10 cuttle: awwwww yeaaaaah http://chocolatapp.com/snaps/notthensa.png 2013-10-02 21:14 wuzzat 2013-10-02 21:20 alexgordon: oh shit nice 2013-10-02 21:20 joelteon: sweet jazz concert 2013-10-02 21:23 guys, i want to draw a nice bar graph 2013-10-02 21:23 what should I use 2013-10-02 21:25 joelteon: with what data? 2013-10-02 21:34 six numbers 2013-10-02 21:35 joelteon: photoshop? 2013-10-02 21:35 nah, that's a lot of work 2013-10-02 21:35 maybe i'll use d3 2013-10-02 21:47 mathematica 2013-10-02 21:49 good idea 2013-10-02 21:49 why didn't I think of that 2013-10-02 21:50 i need mathematica though 2013-10-02 21:50 -_- 2013-10-02 21:50 joelteon: excel? 2013-10-02 21:51 google docs? 2013-10-02 21:52 google docs! 2013-10-02 21:52 of course 2013-10-02 21:52 brilliant 2013-10-02 21:53 looks like numpy has good stuff 2013-10-02 21:53 http://jack.minardi.org/software/computational-synesthesia/ 2013-10-02 21:53 cloudhead has quit [Ping timeout: 264 seconds] 2013-10-02 21:53 or whatever he's using to visualize 2013-10-02 21:53 idk 2013-10-02 21:56 ate too much lunch -_- 2013-10-02 21:57 google docs does REALLY nice graphs 2013-10-02 21:59 oh i didn't know that 2013-10-02 22:00 they tend to have not nice things so that's surprising/good to know 2013-10-02 22:00 :p 2013-10-02 22:00 :| 2013-10-02 22:07 yorick has quit [Remote host closed the connection] 2013-10-03 00:26 Sgeo has joined #elliottcable 2013-10-03 00:30 guys 2013-10-03 00:30 help me think of a halloween twitter name 2013-10-03 00:33 no 2013-10-03 00:50 cuttle: how about 2013-10-03 00:50 elliottcable 2013-10-03 00:50 prophile: hahahaha 2013-10-03 00:51 ? 2013-10-03 00:51 Omg 2013-10-03 00:51 Micah: you go as me for Halloween, on the internet 2013-10-03 00:52 I'll go as you :D 2013-10-03 00:52 dude WHY ARE PEOPLE SO BAD 2013-10-03 00:52 at STUFF 2013-10-03 00:52 so fedex tried to deliver, right 2013-10-03 00:52 nobody was home so they left a tag on my door 2013-10-03 00:52 so i read it 2013-10-03 00:53 it says go to fedex.com/delivery to tell them to hold it at the fedex place so i can go pick it up 2013-10-03 00:53 so i got there 2013-10-03 00:53 and i have to 2013-10-03 00:53 create an account 2013-10-03 00:53 to request them to hold it at the fedex place 2013-10-03 00:53 rather than them just giving me a deliver UUID or something 2013-10-03 00:53 so i enter in all my personal information, name of every pet i've ever owned, age of every person i've met 2013-10-03 00:53 and then 2013-10-03 00:53 after all that 2013-10-03 00:53 "We were unable to verify you with the information provided." 2013-10-03 00:54 like wtf does that even mean, it's a goddamn street address 2013-10-03 00:54 who are you "verifying" me with 2013-10-03 00:54 it took me 8 tries to buy this stupid fucking sweater from h&m because they need the 4 digits after your zip code as well but they don't tell you that 2013-10-03 00:54 i want to die 2013-10-03 00:54 This is why you use phones, honey. 2013-10-03 00:55 no ugh 2013-10-03 00:55 Stay away from the Internet, except for with Internet-based companies. Excellent rule of thumb. 2013-10-03 00:57 * prophile tears out jugulars 2013-10-03 00:57 cuttle: /nick ELLIOTTCABLE on Halloween ('= 2013-10-03 00:57 ELLIOTTCABLE: hhahahaahahaha 2013-10-03 00:57 let's do it 2013-10-03 00:57 ok switch on twitter 2013-10-03 00:58 Yeah :D 2013-10-03 00:59 SWITCHED 2013-10-03 00:59 6:55 PM <•ELLIOTTCABLE> Stay away from the Internet, except for with Internet-based companies. Excellent rule of thumb. 2013-10-03 00:59 joelteon: dude yeah that's bullshit 2013-10-03 01:00 Nonono not right now 2013-10-03 01:00 *on Halloween* 2013-10-03 01:00 awwww 2013-10-03 01:00 well 2013-10-03 01:00 ynow 2013-10-03 01:00 people 2013-10-03 01:00 change their names to hallowen names 2013-10-03 01:00 like 2013-10-03 01:00 in october 2013-10-03 01:00 @bathsmusic 2013-10-03 01:01 Wat really? 2013-10-03 01:01 changed from WILL WIESENDFELD TO 2013-10-03 01:01 KILL WIESENFELD 2013-10-03 01:01 Ohhhhhh, their *names* 2013-10-03 01:01 @zoequinnzel 2013-10-03 01:01 changed from zoe "buttass" quinnzel to zoe "ghostass" quinnzel 2013-10-03 01:04 @bluesweatshirt changed from lule blue to lulu boo 2013-10-03 01:11 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-03 01:54 Sgeo_ has joined #elliottcable 2013-10-03 01:56 Sgeo has quit [Ping timeout: 260 seconds] 2013-10-03 03:27 Sorella has quit [Quit: Ex-Chat] 2013-10-03 03:32 fwg has quit [Ping timeout: 256 seconds] 2013-10-03 03:33 fwg has joined #elliottcable 2013-10-03 06:41 eligrey has quit [Quit: Leaving] 2013-10-03 10:58 fwg has quit [Ping timeout: 260 seconds] 2013-10-03 10:58 fwg has joined #elliottcable 2013-10-03 11:28 Sgeo_ has quit [Read error: Connection reset by peer] 2013-10-03 12:16 cloudhead has joined #elliottcable 2013-10-03 12:17 alexgordon has joined #elliottcable 2013-10-03 12:53 yorick has joined #elliottcable 2013-10-03 13:03 yorick_ has joined #elliottcable 2013-10-03 13:06 yorick has quit [Ping timeout: 264 seconds] 2013-10-03 13:07 PragCypher has joined #elliottcable 2013-10-03 13:34 yorick_ is now known as yorick 2013-10-03 13:59 vil has joined #elliottcable 2013-10-03 14:09 sharkbot has quit [Remote host closed the connection] 2013-10-03 14:09 sharkbot has joined #elliottcable 2013-10-03 14:15 yorick has quit [Read error: Connection reset by peer] 2013-10-03 14:19 yorick has joined #elliottcable 2013-10-03 15:21 cloudhead has quit [Ping timeout: 245 seconds] 2013-10-03 15:36 cloudhead has joined #elliottcable 2013-10-03 16:02 cloudhead has quit [Ping timeout: 248 seconds] 2013-10-03 16:18 cloudhead has joined #elliottcable 2013-10-03 16:46 fwg has quit [Ping timeout: 240 seconds] 2013-10-03 16:58 o7, all 2013-10-03 16:58 that was a good year 2013-10-03 16:59 Sorella has joined #elliottcable 2013-10-03 17:27 hi ELLIOTTCABLE 2013-10-03 17:31 eligrey has joined #elliottcable 2013-10-03 17:36 fwg has joined #elliottcable 2013-10-03 17:37 hi, alexgordon 2013-10-03 17:39 ELLIOTTCABLE: what you up to? 2013-10-03 17:39 errgha 2013-10-03 17:39 actions-triage 2013-10-03 17:39 lol 2013-10-03 17:39 lol 2013-10-03 17:39 I'm at Inbox 40 in Things.app. 2013-10-03 17:39 which is the highest I've been in a *long* time, because I'm pretty goddamn anal about my Things. 2013-10-03 17:40 you're pretty goddamn anal about everything 2013-10-03 17:40 he's pretty goddamn anal 2013-10-03 17:40 not sure if i have a cavity or what 2013-10-03 17:40 my teeth hurt 2013-10-03 17:40 but i'm not fond of dentists 2013-10-03 17:41 oh really? how's that? 2013-10-03 17:41 it'd be cool if we could just replace our teeth with titanium or something 2013-10-03 17:41 some of the bottom molars on the right side are aching a bit when i eat 2013-10-03 17:41 i should probably ask my roommate where a dentist is 2013-10-03 17:44 joelteon: probably at a dental surgery? 2013-10-03 17:44 just guessing here 2013-10-03 17:44 good joke 2013-10-03 17:54 [13woof] 15ELLIOTTCABLE opened issue #3: Expand data that disappears ‘under the fold.’ 02https://github.com/ELLIOTTCABLE/woof/issues/3 2013-10-03 18:00 [13woof] 15ELLIOTTCABLE opened issue #4: Track API-consumer's own escape-codes 02https://github.com/ELLIOTTCABLE/woof/issues/4 2013-10-03 18:08 Esailija has joined #elliottcable 2013-10-03 18:11 PragCypher has quit [Quit: Leaving] 2013-10-03 18:13 Esailija has quit [Quit: Lähdössä] 2013-10-03 19:12 alexgordon: how do I learn about networking and p2p and stuff? 2013-10-03 19:37 _whitelogger has joined #elliottcable 2013-10-03 19:39 niggler has joined #elliottcable 2013-10-03 19:57 cuttle: trial and error 2013-10-03 19:58 cuttle: also zmq 2013-10-03 19:58 I'm so pissed I didn't find out about it sooner 2013-10-03 20:09 ELLIOTTCABLE: trolololo 2013-10-03 20:09 trolololo 2013-10-03 20:09 hahaha 2013-10-03 20:09 yeeah purr gets it 2013-10-03 20:17 ELLIOTTCABLE: RTC tickets are still available?? 2013-10-03 20:17 ELLIOTTCABLE: isn't RTC in like a week? 2013-10-03 20:17 jesusabdullah: yes. And I can get you 100$ off. COME WITH US. 2013-10-03 20:17 and it's in three weeks. 2013-10-03 20:17 they're almost out of tickets; only a couple left, as I understand it. 2013-10-03 20:17 but that's a flight 2013-10-03 20:18 and I kinda do wanna go, just squirrely in terms of timing 2013-10-03 20:39 * ELLIOTTCABLE laughs 2013-10-03 20:39 yep 2013-10-03 20:40 I'm totes-fucked 2013-10-03 20:41 1. my move-in date, for my new place, is *the day we're flying back*. And I *have* to deliver some important paperwork (details on my criminal record, 'cause all of it's court-sealed, and they won't let me move in until they have unsealed hardcopy.), 2013-10-03 20:41 2. my dogs are currently being cared for by a close family of mine, and they're flying off into the Wild Blue Yonder for some big trip, the same day Chelsea and I are flying *to* the conference. So I have to make new arrangements for my dogs for those four more days. 2013-10-03 20:42 3. I've got three *other* places to be in the United States, within the twelve days circumscribing the conference (Minnesota, North Carolina, and Chicago), for various reasons; and now I have to schedule the travel for those places *around* the Portland tickets I've already bought 2013-10-03 20:43 4. I *just realized* what a ‘significant other’ track is. It's some patronizing girly bullshit that doesn't involve them even going into the conf's venue. So now, I have to talk them into giving me *actual* conf-tickets for Chelsea. 2013-10-03 20:55 PragCypher has joined #elliottcable 2013-10-03 21:03 Sorella has quit [Quit: Ex-Chat] 2013-10-03 21:10 ELLIOTTCABLE: criminal record?? 2013-10-03 21:11 ELLIOTTCABLE: also wow you are a busy socialite 2013-10-03 21:11 :p 2013-10-03 21:11 lololol 2013-10-03 21:11 lololol 2013-10-03 21:11 how long have you known me, and yet it's a surprise to you that I have a record? 2013-10-03 21:11 and I can't tell if that's sarcasm. I *am* busy. Disgustingly-so. 2013-10-03 21:12 Inbox mostly-zero! Yay. 2013-10-03 21:12 not sarcasm really 2013-10-03 21:12 just some percentage tongue in cheek word choice 2013-10-03 21:12 is the record like 2013-10-03 21:12 mass scale drug distribution 2013-10-03 21:12 or like 2013-10-03 21:12 trespassing 2013-10-03 21:13 alexgordon: i want to know from like the bottom up 2013-10-03 21:13 alexgordon: so i can incorporate it into my brain cells idea 2013-10-03 21:13 cuttle: wat 2013-10-03 21:14 know what? 2013-10-03 21:14 networks 2013-10-03 21:14 and p2p 2013-10-03 21:14 err 2013-10-03 21:14 well it starts with your network card 2013-10-03 21:14 :P 2013-10-03 21:14 :p 2013-10-03 21:15 I dunno, it seems pretty trivial to me 2013-10-03 21:15 cuttle: I thought I knew quite a bit about sockets, the IP protocol, routing, etceteras 2013-10-03 21:15 all seems boring, but I'd had reason to learn quite a bit about it in the past, 2013-10-03 21:15 hahahaha, from the zmq intro: 2013-10-03 21:16 “Code has to run like the human brain, trillions of individual neurons firing off messages to each other, a massively parallel network with no central control, no single point of failure, yet able to solve immensely difficult problems.” 2013-10-03 21:16 and then there was a talk at SecondConf about “mapping the Internet” 2013-10-03 21:16 (look up the video, it was a great talk, very very cool stuff) 2013-10-03 21:16 and I learned about layers of “the Internet” that i'd never even CONSIDERED. 2013-10-03 21:16 like, BGP. What the *fuck* is that. 2013-10-03 21:16 huh. 2013-10-03 21:16 It turns out that there's a lot more to “the Internet”, below even the most basic packet-level protocols. 2013-10-03 21:16 ELLIOTTCABLE: oh cool 2013-10-03 21:16 yeah I read about this before, but had forgotten 2013-10-03 21:17 dumb argument: “And it's no accident that the future of code looks like the human brain, because the endpoints of every network are, at some level, human brains.” 2013-10-03 21:17 lol yeah but still it's *cool* 2013-10-03 21:17 lol 2013-10-03 21:17 on a visceral level of ‘coolness’ 2013-10-03 21:17 nothing to do with accuracy or meaningfulness 2013-10-03 21:17 just g'damn cool, like battleships and rocket launchers are cool. 2013-10-03 21:18 well yeah but i mean 2013-10-03 21:18 it could be cool without being obviously fallacious 2013-10-03 21:18 on a basic level 2013-10-03 21:18 like the previous sentence was 2013-10-03 21:18 but yeah 2013-10-03 21:18 cuttle: you talking about zmq? 2013-10-03 21:18 alexgordon: yeah 2013-10-03 21:18 they mean the whole network is a brain 2013-10-03 21:18 fred brooks' "no silver bullet" is dumb 2013-10-03 21:18 alexgordon: yes I know 2013-10-03 21:18 with zmq as the synapses 2013-10-03 21:18 alexgordon: of course of course 2013-10-03 21:18 but one particular sentence said "of course it's like a brain because human brains are at the endpoints" 2013-10-03 21:18 which is dumb 2013-10-03 21:19 anyway the point is that zmq is just waaaaay better than stupid fucking sockets 2013-10-03 21:19 sure i am not disputing that haha 2013-10-03 21:20 zmq looks neat but i have no use for it 2013-10-03 21:20 PragCypher has quit [Remote host closed the connection] 2013-10-03 21:20 not yet 2013-10-03 21:21 i should make something distributed with zeromq 2013-10-03 21:24 alexgordon: reasoning? 2013-10-03 21:24 I've never used a “messaging queue” system like that. 2013-10-03 21:24 ELLIOTTCABLE: it's not a messaging queue, it's a networking library 2013-10-03 21:24 it's got a stupid name 2013-10-03 21:24 PragCypher has joined #elliottcable 2013-10-03 21:25 ELLIOTTCABLE: it's an alternative (or at least, a wrapper) for regular unix sockets, with some nice features 2013-10-03 21:25 A wrapper for UNIX sockets. Hm. 2013-10-03 21:25 you just tell it your topology 2013-10-03 21:26 then the rest is pretty simple. it has lots of knobs to adjust and it's very very fast 2013-10-03 21:27 also, the new one has an experimental crypto library (should be more secure than SSL in a few years) 2013-10-03 21:29 for zmq's dream of a big ol brain to come true 2013-10-03 21:29 we need to stop having 2013-10-03 21:29 computers are this big ol monolithic blog 2013-10-03 21:29 blob 2013-10-03 21:30 and then the networking stuff is between them 2013-10-03 21:30 just think about how fucking ridiculous it is that like dozens of processes take turns and maybe 4 of them at once can add two numbers together at a time 2013-10-03 21:35 trying to set up 1Password for the first time. 2013-10-03 21:35 New release finally looks secure enough to satisfy my paranoia. 2013-10-03 21:44 wait they weren't using a MAC before? 2013-10-03 21:44 amateurs 2013-10-03 21:45 I feel like I should do something with zmq 2013-10-03 21:45 joelteon: make a p2p network 2013-10-03 21:45 that does what 2013-10-03 21:46 not sure, porn? 2013-10-03 21:46 huh 2013-10-03 21:47 how does p2p work 2013-10-03 21:56 cuttle: you have a network of computers, they talk to each other 2013-10-03 21:56 lol 2013-10-03 21:56 lol 2013-10-03 21:56 lol thanks got that part 2013-10-03 21:57 this channel. jesus. 2013-10-03 21:57 well what more do you want lol 2013-10-03 21:57 it depends on the network 2013-10-03 21:57 bitcoin's p2p network is very different to bittorrent's 2013-10-03 21:57 that's about the only thing they have in common 2013-10-03 21:57 fwg has quit [Ping timeout: 260 seconds] 2013-10-03 22:57 yeah i get that 2013-10-03 22:57 i kinda get how bitcoin works 2013-10-03 22:57 i want to know like 2013-10-03 22:57 how computers find all the other computesr 2013-10-03 22:57 do they just refer each other? 2013-10-03 22:57 and then with like bittorrents how do you find any in the first place? 2013-10-03 23:02 bbl u all suk 2013-10-03 23:09 ELLIOTTCABLE: :c 2013-10-03 23:33 Sgeo has joined #elliottcable 2013-10-03 23:47 jvulc|znc has joined #elliottcable 2013-10-03 23:50 cuttle: well that's an interesting problem 2013-10-03 23:50 cuttle: but yeah 2013-10-03 23:50 cuttle: you always need seed IPs 2013-10-03 23:50 that can refer to other IPs 2013-10-03 23:51 otherwise who would you call! 2013-10-03 23:51 (ghostbusters) 2013-10-03 23:58 busters 2013-10-03 23:58 of ghosts 2013-10-03 23:58 they like to 2013-10-03 23:58 find ghosts 2013-10-03 23:58 and bust them 2013-10-04 00:07 cloudhead has quit [Ping timeout: 248 seconds] 2013-10-04 00:12 busting' makes me feel good 2013-10-04 00:21 o_o 2013-10-04 00:26 fwg has joined #elliottcable 2013-10-04 00:28 joelteon: busting white stuff 2013-10-04 00:28 joelteon: ectoplasm 2013-10-04 00:30 sploosh 2013-10-04 00:38 yorick has quit [Remote host closed the connection] 2013-10-04 03:20 niggler has quit [Quit: Computer has gone to sleep.] 2013-10-04 03:29 fwg_ has joined #elliottcable 2013-10-04 03:29 fwg has quit [Ping timeout: 246 seconds] 2013-10-04 03:33 ..._. 2013-10-04 03:34 hi cuttle 2013-10-04 03:44 ._____________. 2013-10-04 04:01 ._____________________________________________________________________ 2013-10-04 04:03 .. 2013-10-04 04:08 rckts has joined #elliottcable 2013-10-04 04:08 rckts has left #elliottcable [#elliottcable] 2013-10-04 04:39 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-04 06:12 eligrey has quit [Quit: Leaving] 2013-10-04 06:22 well I am excessively discouraged 2013-10-04 06:22 wanted to go into the nether and find a fortress 2013-10-04 06:22 went through my portal, destroyed it, carried it through the nether 2013-10-04 06:22 found a fortress 2013-10-04 06:23 set up shop inside 2013-10-04 06:23 only THEN 2013-10-04 06:23 did i realize 2013-10-04 06:23 i didn't bring a flint and steel 2013-10-04 06:23 found some lava, built my portal next to it 2013-10-04 06:23 while trying to light my portal using lava, i set myself on fire and burned to death 2013-10-04 06:23 my diamond pickaxe, sword, and 10 blocks of obsidian are in the nether 2013-10-04 07:40 hi al 2013-10-04 07:41 exgordon 2013-10-04 07:41 :( 2013-10-04 07:41 joelteon: oh man :( 2013-10-04 07:41 :p 2013-10-04 07:42 haaaapns 2013-10-04 07:42 just gotta mine more obsidian 2013-10-04 07:42 it's such a pain in the ass 2013-10-04 07:43 yeah 2013-10-04 07:44 well 2013-10-04 07:44 gnight each 2013-10-04 07:44 o7 2013-10-04 07:44 apparently with Efficiency V it takes--ohh 2013-10-04 07:44 ok 2013-10-04 07:44 gn 2013-10-04 08:15 fwg_ is now known as fwg 2013-10-04 08:15 fwg has quit [Changing host] 2013-10-04 08:15 fwg has joined #elliottcable 2013-10-04 09:28 jvulc|znc has quit [Ping timeout: 264 seconds] 2013-10-04 09:45 jvulc|znc has joined #elliottcable 2013-10-04 10:01 fwg has quit [Read error: Connection timed out] 2013-10-04 10:02 fwg has joined #elliottcable 2013-10-04 11:02 fwg_ has joined #elliottcable 2013-10-04 11:05 fwg has quit [Ping timeout: 252 seconds] 2013-10-04 11:41 Sgeo has quit [Ping timeout: 240 seconds] 2013-10-04 11:53 alexgordon has joined #elliottcable 2013-10-04 12:15 cloudhead has joined #elliottcable 2013-10-04 12:23 Cypher has joined #elliottcable 2013-10-04 12:23 Cypher is now known as Guest61033 2013-10-04 12:29 yorick has joined #elliottcable 2013-10-04 12:30 Guest61033 has quit [Quit: Leaving] 2013-10-04 12:37 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-04 12:54 Sorella has joined #elliottcable 2013-10-04 13:00 fwg_ is now known as fwg 2013-10-04 13:00 fwg has joined #elliottcable 2013-10-04 13:00 fwg has quit [Changing host] 2013-10-04 14:17 whitequark has joined #elliottcable 2013-10-04 14:28 sharkbot has quit [Remote host closed the connection] 2013-10-04 14:29 sharkbot has joined #elliottcable 2013-10-04 15:04 fwg has quit [Ping timeout: 256 seconds] 2013-10-04 15:12 fwg has joined #elliottcable 2013-10-04 17:12 Nuck has quit [Ping timeout: 268 seconds] 2013-10-04 17:13 PLejeck has joined #elliottcable 2013-10-04 17:33 alexgordon has joined #elliottcable 2013-10-04 17:55 eligrey has joined #elliottcable 2013-10-04 18:02 eligrey has quit [Ping timeout: 245 seconds] 2013-10-04 18:57 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-04 19:29 eligrey has joined #elliottcable 2013-10-04 19:38 fwg_ has joined #elliottcable 2013-10-04 19:41 fwg has quit [Ping timeout: 252 seconds] 2013-10-04 20:12 alexgordon has joined #elliottcable 2013-10-04 20:59 fwg has joined #elliottcable 2013-10-04 21:01 fwg_ has quit [Ping timeout: 245 seconds] 2013-10-04 21:13 PLejeck is now known as Nuck 2013-10-04 21:13 Nuck has quit [Changing host] 2013-10-04 21:13 Nuck has joined #elliottcable 2013-10-04 22:26 fwg has quit [Quit: gone] 2013-10-04 22:39 whitequark: give me something crazy to say in russian 2013-10-04 22:42 alexgordon: um 2013-10-04 22:42 define crazy 2013-10-04 22:43 whitequark: I dunno someone just @mentioned me on twitter in russian 2013-10-04 22:45 whitequark: https://twitter.com/dumbanalytics/status/386258919251001344 2013-10-04 22:45 alexgordon: i have twitter blocked lol 2013-10-04 22:45 lol 2013-10-04 22:47 so basically he recommends chocolatapp over emacs because chocolatapp won't cause hair to grow on her legs in abundance 2013-10-04 22:47 this sounds exactly as dumb as it is 2013-10-04 22:48 :D 2013-10-04 22:48 whose legs 2013-10-04 22:50 joelteon: her legs 2013-10-04 22:51 oh 2013-10-04 22:51 ok 2013-10-04 23:50 urgh 2013-10-04 23:50 I just watched the last episode of Railgun II 2013-10-04 23:50 why 2013-10-04 23:51 i felt dumber with each minute passing 2013-10-04 23:58 whitequark: I stalled halfway railgun I, should I be happy? 2013-10-05 00:00 yorick: well. the entire series is cute, dumb, and nicely drawn. it will continue to excel in all these qualities. 2013-10-05 00:01 whitequark: well index I wasn't quite cute or dumb 2013-10-05 00:02 * whitequark . o O ( I will overcome you by lecturing you my black-and-white moral ideals ) 2013-10-05 00:02 please do 2013-10-05 00:02 cuteness is more railgun's trait, sure 2013-10-05 00:02 index I was only dumb in the sense that everyone kept underestimating the guy 2013-10-05 00:04 ehhh, that's not at all what I mean; let me elaborate 2013-10-05 00:07 the entire raildex seems to exist in some kind of alternate universe where the only thing that ever matters is drama. it's not like anime is well-known for having correct physics, or sane representation of relationships, or making any sense at all, but TKnR/TMnI really takes this up to eleven 2013-10-05 00:08 yeah, I figured that would become a plot-point somewhere 2013-10-05 00:08 haha nope 2013-10-05 00:08 that would actually be awesome 2013-10-05 00:08 by the way, I wondered if light novels are worth it 2013-10-05 00:09 figured out two things. first, no, they're exactly the same 2013-10-05 00:09 second, they're *exactly* the same. the light novels (so far as I've read; it was not very entertaining) have an 1:1 correspondence with the anime. sentence for sentence. 2013-10-05 00:10 which is on one hand very impressive, and on the other one incredibly boring. 2013-10-05 00:10 the language was also rather bland, and I suspect this was not a translation issue. 2013-10-05 00:10 did the light novels come first? 2013-10-05 00:10 as far as I know, yes 2013-10-05 00:11 light novels, 2004; manga, 2007; anime, 2008 2013-10-05 00:11 impressive. I've heard of a shakespeare movie doing that (sticking to the original script), that was quite impressive 2013-10-05 00:11 whitequark: what's the meaning of . o O ()? 2013-10-05 00:11 cuttle: "thinking" 2013-10-05 00:12 yorick: yeah i like when they do modern day setting but stick to the original script 2013-10-05 00:12 cuttle: that wasnt what I meant 2013-10-05 00:12 yorick: on a side note I think shakugan no shana is incredibly good 2013-10-05 00:12 whitequark: also, kuroko needs to stfu. 2013-10-05 00:12 romeo + juliet used the original script in a modern setting 2013-10-05 00:13 right down to guns with the brand name 'sword' 2013-10-05 00:13 tell me she dies somewhere along railgun I 2013-10-05 00:13 it was a shit film 2013-10-05 00:13 yorick: haha nope 2013-10-05 00:13 dammit. 2013-10-05 00:13 also her voice actress is amazing 2013-10-05 00:14 one of few things I still genuinely enjoy 2013-10-05 00:14 ... she uses all of the amazingness for pure anoyance 2013-10-05 00:15 do you know japanese? 2013-10-05 00:15 no 2013-10-05 00:15 then you can just listen to her monologues 2013-10-05 00:15 thanks, shakugan no shana is now on my list 2013-10-05 00:15 index and railgun specials have quite a few 2013-10-05 00:17 whitequark: if you're ever looking for a superhumans story with a sane physics implementation I can recommend Worm (parahumans.wordpress.com) 2013-10-05 00:17 http://www.nyaa.eu/?page=download&tid=226974, around 7:30 2013-10-05 00:18 yorick: (parahumans) not quite my cup of tea 2013-10-05 00:18 I'll take a look maybe 2013-10-05 00:18 yeah it does consist of 1.5 million words :P 2013-10-05 00:19 that's over a million 2013-10-05 00:19 eh, length doesn't quite scare me 2013-10-05 00:19 prophile: good counting 2013-10-05 00:19 whitequark: at 300wpm that's 90 hours of reading fun 2013-10-05 00:21 yorick: things I like most about shana is that it's mostly devoid of stock scenery and fillers (eg no hot springs or beach episodes in three seasons), it has an okay plot, and represents relationships well enough I could imagine real people behaving like that. also, there's a *lot* of them, all different. 2013-10-05 00:23 also, don't watch the movie, it's just the first season cut by a blind idiot. 2013-10-05 00:23 prophile: oh haha sword-brand guns 2013-10-05 00:23 Sgeo has joined #elliottcable 2013-10-05 00:25 whitequark: parahumans not quite your cup of tea, you watched 4 seasons of them :P 2013-10-05 00:26 ... twice 2013-10-05 00:26 to the present day I'm not sure why 2013-10-05 00:27 also not sure why exactly I'm watching the index movie right now 2013-10-05 00:38 yorick has quit [Ping timeout: 240 seconds] 2013-10-05 02:26 cloudhead has quit [Read error: Operation timed out] 2013-10-05 02:48 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-05 03:28 PragCypher has quit [Remote host closed the connection] 2013-10-05 03:59 Sorella has quit [Quit: Ex-Chat] 2013-10-05 05:00 Sgeo has quit [Read error: Connection reset by peer] 2013-10-05 05:03 Sgeo has joined #elliottcable 2013-10-05 05:21 eligrey has quit [Quit: Leaving] 2013-10-05 05:41 eligrey has joined #elliottcable 2013-10-05 06:35 eligrey has quit [Quit: Leaving] 2013-10-05 06:35 Navarr has quit [Ping timeout: 248 seconds] 2013-10-05 06:35 Navarr has joined #elliottcable 2013-10-05 06:36 niggler has joined #elliottcable 2013-10-05 07:11 niggler has quit [Ping timeout: 252 seconds] 2013-10-05 11:05 fwg has joined #elliottcable 2013-10-05 11:35 alexgordon has joined #elliottcable 2013-10-05 12:04 yorick has joined #elliottcable 2013-10-05 12:28 cloudhead has joined #elliottcable 2013-10-05 12:33 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-05 12:42 cloudhead has quit [Ping timeout: 245 seconds] 2013-10-05 14:33 alexgordon has joined #elliottcable 2013-10-05 14:36 alexgordon has quit [Client Quit] 2013-10-05 14:45 sharkbot has quit [Remote host closed the connection] 2013-10-05 14:45 sharkbot has joined #elliottcable 2013-10-05 15:48 _whitelogger has joined #elliottcable 2013-10-05 15:53 alexgordon has joined #elliottcable 2013-10-05 16:28 fwg has quit [Ping timeout: 264 seconds] 2013-10-05 16:30 fwg has joined #elliottcable 2013-10-05 16:50 yorick has quit [Remote host closed the connection] 2013-10-05 16:52 eligrey has joined #elliottcable 2013-10-05 16:55 Determinist has joined #elliottcable 2013-10-05 16:56 i have arrived 2013-10-05 17:06 PragCypher has quit [Remote host closed the connection] 2013-10-05 17:07 PragCypher has joined #elliottcable 2013-10-05 17:22 cloudhead has joined #elliottcable 2013-10-05 17:26 hi Determinist 2013-10-05 17:26 where have you arrived? 2013-10-05 17:28 alexgordon: here, obviously :P 2013-10-05 17:28 here is an excellent place to have arrived 2013-10-05 17:31 yes, definitely 2013-10-05 17:50 PragCypher has quit [Quit: Leaving] 2013-10-05 18:22 Is there a cure for procrastinating? 2013-10-05 18:29 jvulc: I have a tv tropes article that may help you 2013-10-05 18:29 I'm a lost cause ... but alright, sure. 2013-10-05 18:31 jvulc: but seriously, I found the solution on HN (of all places) 2013-10-05 18:31 have two computers 2013-10-05 18:31 one for working, one for IRC/chat/web browsing/email/whatever 2013-10-05 18:51 Determinist has quit [Ping timeout: 246 seconds] 2013-10-05 18:52 Determinist has joined #elliottcable 2013-10-05 19:04 yorick has joined #elliottcable 2013-10-05 19:15 PragCypher has joined #elliottcable 2013-10-05 19:20 PragCypher has quit [Remote host closed the connection] 2013-10-05 19:22 PragCypher has joined #elliottcable 2013-10-05 19:57 hm 2013-10-05 19:57 what if working includes browsing 2013-10-05 19:57 say, for documentation 2013-10-05 20:02 god i'm SO DUMB 2013-10-05 20:03 I got EVERYTHING 2013-10-05 20:03 diamond pickaxe, food, torches, a bed, a map 2013-10-05 20:03 then when i've been in the nether for 15 minutes I realize I forgot to chop down the portal and take it with me 2013-10-05 20:23 fwg: I have a browser on both computers :P 2013-10-05 20:24 alexgordon: so how does that keep you from procrastinating again? 2013-10-05 20:24 fwg: I use safari on my working computer ;) 2013-10-05 20:24 hehe 2013-10-05 20:25 I dunno it doesn't have any of my settings or anything 2013-10-05 20:25 so I don't really use it for that 2013-10-05 20:25 actually I find the progression usually goes 2013-10-05 20:26 get twitter/irc notification -> click link -> go to reddit or whatever 2013-10-05 20:26 because I'm not getting notifications on my working computer, I stay in flow 2013-10-05 20:26 -> ??? -> PROFIT 2013-10-05 20:27 alexgordon: there's an easier solution 2013-10-05 20:27 echo 127.0.0.1 twitter.com reddit.com >>/etc/hosts 2013-10-05 20:27 heh doesn't work 2013-10-05 20:27 I can disable that in 5 seconds 2013-10-05 20:27 it totally does. I now have so much fucking free time I've no idea what to do with it 2013-10-05 20:27 it's not really about disabling 2013-10-05 20:28 whitequark: I tried that, it just didn't work for me 2013-10-05 20:28 see, if you actually *want* to go to twitter, then sure--I disable it once in a few weeks to do something important 2013-10-05 20:28 but it guards you from *accidental* slips. 2013-10-05 20:28 actually I find what works a bit better is to blank out the whole site with adblock 2013-10-05 20:28 then if I want to visit it I have to turn adblock off 2013-10-05 20:28 click link, get 403, remember "oh right I'm supposed to be working" 2013-10-05 20:28 yeah true 2013-10-05 20:28 well, that's exactly same thing 2013-10-05 20:29 anyway the reason I originally started using computers was because my laptop was going really slowly 2013-10-05 20:29 so I thought I'd have a separate computer just for working, then it would be fast 2013-10-05 20:29 laptop is a computer you know 2013-10-05 20:29 :p 2013-10-05 20:29 *two computers 2013-10-05 20:29 but it helps with procrastination a lot too 2013-10-05 20:29 actually slowness is a big cause of procrastination too 2013-10-05 20:30 if a build takes 20 seconds, I don't want to sit there for 20 seconds 2013-10-05 20:30 true dat 2013-10-05 20:30 if it's a different computer, it's easier since at least I don't have to switch 2013-10-05 20:30 all about building obstacles for your lizard brain :P 2013-10-05 20:34 Determinist has quit [Ping timeout: 252 seconds] 2013-10-05 20:36 Determinist has joined #elliottcable 2013-10-05 21:22 ok 2013-10-05 21:22 i'm gonna try mavericks 2013-10-05 21:22 even if i can't have tranquil 2013-10-05 21:22 i mean xnomad 2013-10-05 21:22 brb 2013-10-05 23:13 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-05 23:27 Sgeo has quit [Read error: Connection reset by peer] 2013-10-05 23:32 Sgeo has joined #elliottcable 2013-10-06 00:06 yorick has quit [Read error: Connection reset by peer] 2013-10-06 00:08 PragCypher has quit [Quit: Leaving] 2013-10-06 00:41 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 00:43 Determinist has joined #elliottcable 2013-10-06 00:48 Determinist has quit [Ping timeout: 252 seconds] 2013-10-06 00:49 Determinist has joined #elliottcable 2013-10-06 01:33 cloudhead has quit [Read error: Operation timed out] 2013-10-06 01:42 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 01:43 Determinist has joined #elliottcable 2013-10-06 01:56 fwg has quit [Ping timeout: 264 seconds] 2013-10-06 02:06 Determinist has quit [Ping timeout: 253 seconds] 2013-10-06 02:07 Determinist has joined #elliottcable 2013-10-06 02:17 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 02:19 Determinist has joined #elliottcable 2013-10-06 03:32 Determinist has quit [Ping timeout: 252 seconds] 2013-10-06 03:33 Determinist has joined #elliottcable 2013-10-06 04:03 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 04:04 Determinist has joined #elliottcable 2013-10-06 04:14 Determinist has quit [Ping timeout: 252 seconds] 2013-10-06 04:15 Determinist has joined #elliottcable 2013-10-06 04:31 so I'm watching highschool of the dead 2013-10-06 04:31 it's just like your typical zombie movie, except it's ridiculously long (4 hours total) and nicely drawn instead of crappily shoot 2013-10-06 04:35 not sure why would anyone do that, really 2013-10-06 04:44 lol 2013-10-06 04:44 lol 2013-10-06 04:56 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 04:56 today I learned about `sudo -e` 2013-10-06 04:57 it's on some real good drugs though. case in point: http://www.youtube.com/watch?v=fSUcJIHdsis and http://www.youtube.com/watch?v=cNtlMjRqfQs 2013-10-06 04:57 sudo -e copies the file to a temporary file, changes ownership to the user, opens it in $EDITOR, and upon exit of the editor, if the tempfile changed, copies it back 2013-10-06 04:57 devyn: you mean visudo? :] 2013-10-06 04:58 oh, that's a different thing 2013-10-06 04:58 TIL, also thanks 2013-10-06 04:58 no, visudo only edits /etc/sudoers 2013-10-06 04:58 eligrey has quit [Quit: Leaving] 2013-10-06 04:58 and has special syntax checking and stuff 2013-10-06 04:58 :p 2013-10-06 04:58 sudo -e can edit any file as another user 2013-10-06 04:58 so it's pretty useful 2013-10-06 04:58 Determinist has joined #elliottcable 2013-10-06 04:59 btw, the other day, I saw someone do `sudo su user -c ...` 2013-10-06 04:59 lol 2013-10-06 04:59 lol 2013-10-06 04:59 lol 2013-10-06 04:59 Y U NO sudo -u 2013-10-06 05:00 sudo is a pretty complex program 2013-10-06 05:00 with some pretty nice functions 2013-10-06 05:03 devyn: I use sudo su user quite a bit, generally with debian vagrant VMs, because the default user has permission to sudo commands but not to sudo to other users 2013-10-06 05:04 huh. why would anyone set sudo up that way? 2013-10-06 05:04 beats me 2013-10-06 05:04 I mean if you have superuser access, obviously you have access to other users 2013-10-06 05:04 by accident, i'd assume 2013-10-06 05:04 yeah 2013-10-06 05:04 prophile: but this person had no excuse; they were running arch 2013-10-06 05:04 ignorance :p 2013-10-06 05:06 well, arch is like gentoo, if you don't understand every single program on that machine in intimate detail you're doing it wrong 2013-10-06 05:06 exactly! 2013-10-06 05:06 :) 2013-10-06 05:07 (but seriously, people have to set up sudo themselves, and the default /etc/sudoers has examples in it, the foremost and most recommended being %wheel ALL=(ALL) ALL 2013-10-06 05:07 ) 2013-10-06 05:07 which just means in group wheel, any command as any user 2013-10-06 05:09 that's one of the things I like about Arch... it rarely actually sets anything up for you ready to go out of the box unless it's very simple, 2013-10-06 05:09 but it always gives you lots of examples in the default config files 2013-10-06 05:12 dude 2013-10-06 05:12 the arch wiki is amaaaazing 2013-10-06 05:12 that too. I use it for other distros just because it's such a good resource 2013-10-06 05:12 i just learned about sudo -e 2013-10-06 05:12 just now 2013-10-06 05:12 i'll be using that 2013-10-06 05:12 do. it solves the whole "root doesn't have my editor config" issue 2013-10-06 05:13 it's like sudo.vim, but better 2013-10-06 05:15 yeah arch wiki is just a guide to $program 2013-10-06 05:15 very detailed 2013-10-06 05:20 it's not always that much... but it's generally at least enough to get up and running 2013-10-06 05:20 sometimes it is that much though, hehe 2013-10-06 05:20 no but it's good 2013-10-06 05:22 this makes such a nice wallpaper http://i.imgur.com/TPMTX.jpg 2013-10-06 05:22 i have a picture like that 2013-10-06 05:22 mandarin ducks, man, how do they work 2013-10-06 05:22 like seriously how do you get that many layers of color on a bird 2013-10-06 05:23 i dunno 2013-10-06 05:23 i wasn't in charge 2013-10-06 05:24 lol 2013-10-06 05:24 lol 2013-10-06 05:32 Determinist has quit [Ping timeout: 252 seconds] 2013-10-06 05:34 Determinist has joined #elliottcable 2013-10-06 05:39 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 05:41 Determinist has joined #elliottcable 2013-10-06 06:26 Determinist has quit [Ping timeout: 260 seconds] 2013-10-06 06:27 Determinist has joined #elliottcable 2013-10-06 06:41 Determinist has quit [Ping timeout: 252 seconds] 2013-10-06 06:42 Determinist has joined #elliottcable 2013-10-06 06:47 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 06:48 Determinist has joined #elliottcable 2013-10-06 06:55 ELLIOTTCABLE: In Rust, there is nothing special about creating tasks: a task is not a concept that appears in the language semantics. Instead, Rust's type system provides all the tools necessary to implement safe concurrency: particularly, owned types. The language leaves the implementation details to the standard library. 2013-10-06 07:22 owned types? 2013-10-06 07:23 "Objects allocated in the exchange heap have ownership semantics, meaning that there is only a single variable that refers to them. For this reason, they are referred to as owned boxes." 2013-10-06 07:23 that looks a lot like linear types 2013-10-06 07:28 Determinist has quit [Ping timeout: 252 seconds] 2013-10-06 07:30 Determinist has joined #elliottcable 2013-10-06 07:31 prophile: right, in the tutorial it says "sometimes these are called affine or linear types" 2013-10-06 07:31 prophile: so yeah exactly 2013-10-06 07:39 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 07:42 Determinist has joined #elliottcable 2013-10-06 07:51 Nuck has quit [Ping timeout: 264 seconds] 2013-10-06 07:52 PLejeck has joined #elliottcable 2013-10-06 08:04 PLejeck is now known as Nuck 2013-10-06 08:04 Nuck has quit [Changing host] 2013-10-06 08:04 Nuck has joined #elliottcable 2013-10-06 08:13 Determinist has quit [Ping timeout: 252 seconds] 2013-10-06 08:15 Determinist has joined #elliottcable 2013-10-06 08:22 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 08:23 Determinist has joined #elliottcable 2013-10-06 08:55 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 08:57 Determinist has joined #elliottcable 2013-10-06 09:01 <3 rust 2013-10-06 09:01 Let it be known that cuttle hearts rust. 2013-10-06 09:01 HEY EVERYONE GUESS WHAT 2013-10-06 09:01 RUST IS FUCKING GREAT 2013-10-06 09:24 Determinist has quit [Ping timeout: 252 seconds] 2013-10-06 09:25 Determinist has joined #elliottcable 2013-10-06 09:38 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 09:39 Determinist has joined #elliottcable 2013-10-06 10:07 Determinist has quit [Ping timeout: 252 seconds] 2013-10-06 10:08 Determinist has joined #elliottcable 2013-10-06 11:47 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 11:48 Determinist has joined #elliottcable 2013-10-06 11:53 Determinist has quit [Ping timeout: 252 seconds] 2013-10-06 11:56 Determinist has joined #elliottcable 2013-10-06 12:07 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 12:08 Determinist has joined #elliottcable 2013-10-06 12:11 fwg has joined #elliottcable 2013-10-06 12:24 Determinist has quit [Ping timeout: 252 seconds] 2013-10-06 12:26 Determinist has joined #elliottcable 2013-10-06 12:41 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 12:43 Determinist has joined #elliottcable 2013-10-06 12:48 Determinist has quit [Ping timeout: 252 seconds] 2013-10-06 12:51 Determinist has joined #elliottcable 2013-10-06 13:00 cloudhead has joined #elliottcable 2013-10-06 13:04 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 13:06 Determinist has joined #elliottcable 2013-10-06 13:40 yorick has joined #elliottcable 2013-10-06 14:37 Determinist has quit [Ping timeout: 251 seconds] 2013-10-06 14:38 Determinist has joined #elliottcable 2013-10-06 15:00 sharkbot has quit [Remote host closed the connection] 2013-10-06 15:00 sharkbot has joined #elliottcable 2013-10-06 15:04 cuttle: … this is news? 2013-10-06 15:19 cuttle: man rust is just the best 2013-10-06 16:02 dangit ELLIOTTCABLE you are not micah stop this rite naow 2013-10-06 16:28 Determinist has quit [Ping timeout: 246 seconds] 2013-10-06 16:29 Determinist has joined #elliottcable 2013-10-06 16:50 jesusabdullah: ;) 2013-10-06 16:50 jesusabdullah: say what, Alex? 2013-10-06 16:50 daingert madelyn 2013-10-06 17:04 stahp 2013-10-06 17:04 madelyn huh? 2013-10-06 17:06 it's from a captchart 2013-10-06 17:07 alexgordon has joined #elliottcable 2013-10-06 17:12 eligrey has joined #elliottcable 2013-10-06 17:28 eligrey has quit [Quit: Leaving] 2013-10-06 17:29 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-06 17:58 Determinist has quit [Ping timeout: 252 seconds] 2013-10-06 18:00 Determinist has joined #elliottcable 2013-10-06 18:59 ELLIOTTCABLE: well the news is that I'm actually using it instead of saying it's cool from a distance 2013-10-06 19:44 idk, I tried to use it once and was put off by the ugly syntax 2013-10-06 19:56 ok actually 2013-10-06 19:56 trying to write a lexer with string iterators is being really frustrating 2013-10-06 19:57 devyn: the syntax is not even ugly 2013-10-06 19:58 I mostly don't like how the sigils have to do with how the memory is managed 2013-10-06 19:58 it's imperfect but several hundred times better than c's system 2013-10-06 19:58 and I'd *much* rather it be sigils than keywords 2013-10-06 19:59 you think so? with keywords you wouldn't have to repeat them, presumably; they'd just be included at declaration 2013-10-06 19:59 uh, you don't have to repeat sigils 2013-10-06 19:59 no? 2013-10-06 19:59 ok 2013-10-06 19:59 well 2013-10-06 19:59 idk 2013-10-06 19:59 they're just shorter keywords 2013-10-06 19:59 lol 2013-10-06 19:59 lol 2013-10-06 19:59 yeah they're not sigils at all really 2013-10-06 19:59 you don't keep them on the variable name 2013-10-06 19:59 you use them on literals 2013-10-06 19:59 and as operators 2013-10-06 19:59 and in types 2013-10-06 19:59 and on the type 2013-10-06 19:59 yeah 2013-10-06 20:00 ohey 2013-10-06 20:00 http://www.rustforrubyists.com/book/book.html 2013-10-06 20:00 that looks promising 2013-10-06 20:00 yeah 2013-10-06 20:00 rust still doesn't have comm adapters 2013-10-06 20:00 so i can't finish my project 2013-10-06 20:00 but until then 2013-10-06 20:00 joelteon: comm adapters? 2013-10-06 20:01 TCP sockets into pipes 2013-10-06 20:01 or whatever they're called 2013-10-06 20:01 TCP sockets directly into rust IPC structures 2013-10-06 20:01 or inter-thread-communication 2013-10-06 20:01 network concurrency is what i'm trying to say 2013-10-06 20:01 oh cool 2013-10-06 20:01 yeah but it's not implemenetd yet 2013-10-06 20:01 yeah that will be very cool to have 2013-10-06 20:01 and nobody's working on it 2013-10-06 20:02 I'm using comm to make my lexer emit tokens one by one 2013-10-06 20:02 concurrent parsing!!! 2013-10-06 20:02 I kind of wish that iterators and task communication were the same mechanism 2013-10-06 20:02 but I guess that's something for a higher-level language like python (generators) 2013-10-06 20:04 so the bengals beat the packers, lost to the browns, and then beat the patriots 2013-10-06 20:04 in 3 consecutive games 2013-10-06 20:05 jvulc|znc is now known as jedivulcan 2013-10-06 20:05 who are bengals 2013-10-06 20:05 and browns 2013-10-06 20:06 cincinnati apparently 2013-10-06 20:06 and cleveland 2013-10-06 20:06 cincinnati bengals 2013-10-06 20:06 i am from cincinnati 2013-10-06 20:06 kk 2013-10-06 20:06 the browns are considered the worst team in the nfl 2013-10-06 20:06 oh haha 2013-10-06 20:06 packers and patriots are two of the best in case you don't follow nfl 2013-10-06 20:06 I don't follow nfl 2013-10-06 20:06 I'm canadian 2013-10-06 20:06 ok 2013-10-06 20:06 :p 2013-10-06 20:14 you know what's the problem with using tcp sockets as ipc? 2013-10-06 20:14 ipc is assumed to be reliable, and tcp is ont 2013-10-06 20:14 *not 2013-10-06 20:15 so you have tons of funky failure modes which you aren't prepared to handle; even less so for 3rd-party code 2013-10-06 20:15 it's like, try to copy file on NFS and then yank the cable. this shit NEVER fails gracefully 2013-10-06 20:15 ↑ 2013-10-06 20:16 i think it's a canonical example of a leaky abstraction. trope-namer^W^W 2013-10-06 20:18 yeah I think joel, who basically named "leaky abstractions", used tcp as his example 2013-10-06 20:18 * whitequark nods 2013-10-06 20:18 nfs even, or whatever windows uses for that 2013-10-06 20:29 alexgordon has joined #elliottcable 2013-10-06 21:05 cloudhead has quit [Ping timeout: 264 seconds] 2013-10-06 21:12 your MOM's a leaky abstraction 2013-10-06 21:16 eligrey has joined #elliottcable 2013-10-06 23:01 cloudhead has joined #elliottcable 2013-10-06 23:58 cloudhead has quit [Ping timeout: 245 seconds] 2013-10-07 00:20 fwg has quit [Ping timeout: 245 seconds] 2013-10-07 00:20 whitequark: well Windows uses SMB for network file access 2013-10-07 00:26 yorick has quit [Remote host closed the connection] 2013-10-07 00:46 devyn: that was it 2013-10-07 00:48 apparently it's called CIFS now because Microsoft has to put "common" in everything so that they can make it a standard 2013-10-07 00:48 lol 2013-10-07 00:48 lol 2013-10-07 00:48 microsoft doesn't need standards 2013-10-07 00:48 i thought they hated standards 2013-10-07 00:48 they do. they make their own and then extinguish the existing standard and replace it with theirs 2013-10-07 00:49 there's so much NIH syndrome up in that place 2013-10-07 00:50 granted, when you're the size of microsoft, you have pretty good excuses for quite some nih 2013-10-07 00:51 except that what they end up creating usually has way more feature creep and bloat than the original 2013-10-07 00:51 the problem is that microsoft does not or cannot hire good programmers 2013-10-07 00:52 like apple apparently can 2013-10-07 00:52 I don't think that's the problem 2013-10-07 00:52 I think the problem is the way they measure performance 2013-10-07 00:52 and then are so draconian about enforcing it 2013-10-07 00:52 apple's open source code is really nicely written, microsoft's... not so much (excluding stuff that comes out of microsoft research) 2013-10-07 00:53 then again, apple's example code is crap 2013-10-07 00:53 I reeeeally don't think it's necessarily because they're bad programmers, though 2013-10-07 00:53 well if they weren't bad programmers, it wouldn't be so bad 2013-10-07 00:53 like, I wouldn't mind MS implementing their own C++ compiler if it was any good! 2013-10-07 00:53 the feature creep doesn't come from incompetent programmers but from incompetent management 2013-10-07 00:54 but VC++ is crap (ok so it predates clang by a long time, so this isn't exactly fair) 2013-10-07 00:54 and the feature creep, I'm sure, prevents them from being so thorough about each feature 2013-10-07 00:55 MS research shares just about only the name with MS 2013-10-07 00:56 at work I'm doing stuff with Microsoft Dynamics CRM's OData API 2013-10-07 00:56 huh, HOTD has a surprisingly accurate portrayal of a nuclear EMP strike 2013-10-07 00:56 OData is REST-like, while the alternative is SOAP (ew) 2013-10-07 00:56 except that even though Microsoft itself created OData 2013-10-07 00:56 I really wonder how would that play out with present-day electronics 2013-10-07 00:56 MSCRM doesn't implement it properly 2013-10-07 00:56 like, for real 2013-10-07 00:56 I think there wasn't any tests since the ban treaty 2013-10-07 00:57 oh huh I didn't know MS research was based in the REAL cambridge 2013-10-07 00:57 I thought it was in the fake one 2013-10-07 00:57 though apparently they have a small outpost there too 2013-10-07 00:57 haha 2013-10-07 00:57 Determinist has quit [Ping timeout: 268 seconds] 2013-10-07 00:57 also, the MSCRM API's documentation on MSDN is mostly autogenerated with no content whatsoever 2013-10-07 00:58 devyn: apple has some stuff like that 2013-10-07 00:58 lots of APIs have no documentation, just headers, or the documentation is autogenerated 2013-10-07 00:59 alexgordon: I'm sure they don't improperly implement *their own company's goddamn specification* though 2013-10-07 00:59 you want a bet? ;) 2013-10-07 00:59 ok they probably do 2013-10-07 00:59 :p 2013-10-07 00:59 but still MS is evil blah blah blah 2013-10-07 00:59 yep 2013-10-07 01:00 Determinist has joined #elliottcable 2013-10-07 01:00 the only reason OData exists is because Microsoft went "hey, SOAP is a crock of shit, people are using REST for HTTP APIs now, let's do that" but then said "oh but we can't expect people to use it any differently than SOAP so we'll have to make a SOAP-like abstraction" 2013-10-07 01:01 whitequark: there have been tests since then ban treaty I think 2013-10-07 01:02 also there are labs that test electronics with EMPs... they do not fare well 2013-10-07 01:02 actually, I dunno if it's accurate 2013-10-07 01:03 there's very little openly available material 2013-10-07 01:04 also I'm not sure if realistic portrayal of HEMP is that important for a series about essentially zombies 2013-10-07 01:04 * whitequark shrugs 2013-10-07 01:04 ¯\(º_o)/¯ 2013-10-07 01:05 lol 2013-10-07 01:05 lol 2013-10-07 01:05 it's also too far from usual for any back-of-the-envelope calculations to make any sense 2013-10-07 01:06 * whitequark sighs 2013-10-07 01:06 i probably should stop obsessing over it, but that would take all fun from it!! 2013-10-07 01:39 Determinist has quit [Quit: Textual IRC Client: www.textualapp.com] 2013-10-07 01:40 Determinist has joined #elliottcable 2013-10-07 02:13 Determinist has quit [Ping timeout: 240 seconds] 2013-10-07 02:14 Determinist has joined #elliottcable 2013-10-07 02:19 Determinist has quit [Ping timeout: 256 seconds] 2013-10-07 02:21 Determinist has joined #elliottcable 2013-10-07 02:25 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-07 02:50 Determinist has quit [Ping timeout: 240 seconds] 2013-10-07 02:51 Determinist has joined #elliottcable 2013-10-07 02:59 Determinist has quit [Ping timeout: 256 seconds] 2013-10-07 03:00 Determinist has joined #elliottcable 2013-10-07 03:25 Determinist has quit [Ping timeout: 256 seconds] 2013-10-07 03:26 Determinist has joined #elliottcable 2013-10-07 04:27 Determinist has quit [Ping timeout: 240 seconds] 2013-10-07 04:29 Determinist has joined #elliottcable 2013-10-07 04:33 Determinist has quit [Ping timeout: 256 seconds] 2013-10-07 04:36 Determinist has joined #elliottcable 2013-10-07 04:48 Determinist has quit [Ping timeout: 240 seconds] 2013-10-07 04:49 Determinist has joined #elliottcable 2013-10-07 04:49 http://tvtropes.org/pmwiki/pmwiki.php/UsefulNotes/SuicidePrevention 2013-10-07 04:49 is there something *not* on tvtropes?! 2013-10-07 04:51 http://tvtropes.org/pmwiki/pmwiki.php/UsefulNotes/Lua 2013-10-07 04:52 http://tvtropes.org/pmwiki/pmwiki.php/UsefulNotes/Python 2013-10-07 04:52 http://tvtropes.org/pmwiki/pmwiki.php/UsefulNotes/UNIX 2013-10-07 04:52 http://tvtropes.org/pmwiki/pmwiki.php/Main/NASA 2013-10-07 04:52 what the hell exactly 2013-10-07 04:54 Determinist has quit [Ping timeout: 256 seconds] 2013-10-07 04:55 Determinist has joined #elliottcable 2013-10-07 05:26 whitequark: wat. 2013-10-07 05:26 beep. 2013-10-07 05:36 Determinist has quit [Ping timeout: 240 seconds] 2013-10-07 05:38 Determinist has joined #elliottcable 2013-10-07 05:45 Determinist has quit [Ping timeout: 256 seconds] 2013-10-07 05:46 Determinist has joined #elliottcable 2013-10-07 05:54 eligrey has quit [Quit: Leaving] 2013-10-07 05:54 not what I meant, purr 2013-10-07 06:37 ELLIOTTCABLE: WORKING LEXER IN RUST 2013-10-07 06:37 ON TO THE PARSER 2013-10-07 06:43 cuttle: you're parsing Rust code in Rust? 2013-10-07 06:43 ELLIOTTCABLE: no, parsing *paws* code in rust 2013-10-07 06:43 :OOO 2013-10-07 06:43 oh! 2013-10-07 06:43 cool! 2013-10-07 06:43 :D 2013-10-07 06:43 so weird, that to you people, parsing is the go-to task “so easy that you use it to learn a new environment” 2013-10-07 06:43 hahahah 2013-10-07 06:43 yeah 2013-10-07 06:43 it's literally how i've been learning rust though 2013-10-07 06:43 i know most of rust now 2013-10-07 06:43 a little spotty on the pointer types 2013-10-07 06:44 but mostly get them 2013-10-07 06:44 it's really fucking cool 2013-10-07 06:44 static verification of no null pointers 2013-10-07 06:44 or memory leaks 2013-10-07 06:44 anyway i figured i'd embrace the spirit of paws and do the lexing/parsing all async/concurrently 2013-10-07 06:45 so the lexer and the parser and the main function are separate tasks 2013-10-07 06:45 and the main function feeds the lexer chars, and the lexer feeds the parser tokens 2013-10-07 06:46 ooooo 2013-10-07 06:47 async ('= 2013-10-07 06:47 hmmmm 2013-10-07 06:47 since I said just go-ahead with semicolons, that means actual asynch scheduling/evaluation alongside parsing 2013-10-07 06:47 which means, waaaaaay faster IPP 2013-10-07 06:47 which means happy-things for obvious reasons 2013-10-07 06:47 hm 2013-10-07 06:47 wait what? 2013-10-07 06:48 like 2013-10-07 06:48 halfway through parsing you're already executing? 2013-10-07 06:48 is that what you mean? 2013-10-07 06:48 mmhmm 2013-10-07 06:48 which is beneficial when you're probably™ going to be throwing away that execution *anyway*, re-parsing, and starting over 2013-10-07 06:48 if, for instance, the first line of the file defines everything the IPP needs to know to preform a transformation, then it can learn-about and preform that transformation without even finishing parsing the entire file. 2013-10-07 06:49 and short-circuit that parsing. 2013-10-07 06:49 makes the IPP much more realistic for large codebases, I'd wager 2013-10-07 06:49 oh ipp 2013-10-07 06:49 ok 2013-10-07 06:49 though you meant 2013-10-07 06:49 inter-process communcation 2013-10-07 06:50 which is what i have been doing in rust 2013-10-07 06:50 which is what paws is built on 2013-10-07 06:50 which is the established Computer Science™ acronym 2013-10-07 06:50 lol 2013-10-07 06:50 lol 2013-10-07 06:50 ELLIOTTCABLE: parsing is more like 2013-10-07 06:50 IPC? 2013-10-07 06:50 what? 2013-10-07 06:50 it's the part which sort of stresses the target language really well and makes it show you all its worth 2013-10-07 06:50 ELLIOTTCABLE: yeah lol idk 2013-10-07 06:50 what's IPC got to do with the parsing stuff we're chatting about 2013-10-07 06:50 works in reverse too 2013-10-07 06:50 ELLIOTTCABLE: nothing 2013-10-07 06:50 :p 2013-10-07 06:50 lol. 2013-10-07 06:50 look, no more in-caps lol 2013-10-07 06:50 I exorcised my demons 2013-10-07 06:51 and/or girlfriends 2013-10-07 06:51 waithwat 2013-10-07 06:51 I'm working on a stupidly-ambitious, yak-farming-y pretty-printer in node 2013-10-07 06:51 and talking to you makes me want to stop that, slap myself, and build something insane 2013-10-07 06:51 this is entirely too sane for me ;_; 2013-10-07 06:52 haha 2013-10-07 06:52 i think honestly 2013-10-07 06:52 that there is a better way to do things than the ipp 2013-10-07 06:52 somehow 2013-10-07 06:53 probably. needs chatting about. 2013-10-07 06:53 the problem is, trying to find better solutions, starts delving into computer-science territory I don't care about. 2013-10-07 06:53 or at least, don't-care-about *yet.* 2013-10-07 06:53 http://www.liveleak.com/view?i=c37_1380787459 2013-10-07 06:53 leidenfrost maze. it's amazing 2013-10-07 06:53 you could probably do some *really* neat stuff, far beyond lisp macros, with static analysis and a dynamic parser kinda thing. 2013-10-07 06:54 so, here's what I'd prefer: 2013-10-07 06:54 a language design that isn't *dependant*, in any way, on the existence of an IPP 2013-10-07 06:54 and then an IPP as the slow, elliott-solution. 2013-10-07 06:54 then, perhaps, we can design some sort of fairly conservative *API* for the IPP, 2013-10-07 06:55 and then somebody else can reverse-engineer from that API to a static solution, something mostly (or fully) code-compatible with the code-systems running on top of the slow-elliottcable-ipp. 2013-10-07 06:55 * cuttle nods 2013-10-07 06:56 lol what even the fuck, whitequark 2013-10-07 06:56 lol 2013-10-07 06:57 cuttle: fairly obviously, I've already been working towards something like that 2013-10-07 06:57 I'm trying to put off too much thought about the IPP until *after* the important, in-language stuff, the stuff that *can* change the design 2013-10-07 06:57 and then I want to dive into designing my IPP with flipped goals: this time, *not* changing the design being the primary goal, instead of making the interface pretty/happy being the primary goal (and changing the design happily if necessary), as I have been with everything else 2013-10-07 07:03 haha whitequark that's way cool 2013-10-07 07:03 someone should implement befunge as a leidenfrost maze 2013-10-07 07:03 ELLIOTTCABLE: we need to get working satisfactory non turing tarpit paws 2013-10-07 07:04 which is my current goal with paws.rs 2013-10-07 07:04 and then 2013-10-07 07:04 we will make: 2013-10-07 07:04 insanities 2013-10-07 07:04 federation/distribution 2013-10-07 07:04 micahjohnston: "someone should implement befunge as a leidenfrost maze" wat. 2013-10-07 07:04 beep. 2013-10-07 07:04 macros 2013-10-07 07:05 go for it. 2013-10-07 07:05 let me know how I can help. 2013-10-07 07:07 cool 2013-10-07 07:09 mmmm 2013-10-07 07:17 ok done for the night 2013-10-07 07:17 class tomorrow 2013-10-07 07:17 but you best believe a working paws.rs is in the near future 2013-10-07 07:17 night 2013-10-07 07:24 * ELLIOTTCABLE grins 2013-10-07 07:24 glad you're enjoying the fuck out of rust. 2013-10-07 07:25 I need to learn it. Hm. I may even dive in, if you keep your code clean. <3 2013-10-07 08:06 Jesus, what have I gotten myself into 2013-10-07 08:06 http://en.wikifur.com/wiki/TinySex 2013-10-07 08:06 SOMEBODY CAST ME A LINE AND PULL ME OUT, I APPEAR TO BE LOST 2013-10-07 08:06 AND I DON'T MUCH LIKE THE LOOKS OF THIS PART OF TOWN D: 2013-10-07 08:13 Hm. Apparently, I'm in the http://wit.ai beta. This looks pretty neat. 2013-10-07 08:13 https://wit.ai/docs/intro 2013-10-07 08:28 https://botbot.me/mozilla/rust/msg/5545069/ 2013-10-07 08:40 01[13woof01] 15ELLIOTTCABLE created 06Master+ (+6 new commits): 02https://github.com/ELLIOTTCABLE/woof/compare/acf51fbecdb3^...8afd5aa8c0ee 2013-10-07 08:40 13woof/06Master+ 1437aa378 15elliottcable: (new meta) Vendoring in some CoffeeScript helpers of mine... 2013-10-07 08:40 13woof/06Master+ 14c75f8c3 15elliottcable: + adding jshashtable 2013-10-07 08:40 13woof/06Master+ 14acf51fb 15elliottcable: (new meta module) Writing in CoffeeScript, publishing compiled JS 2013-10-07 08:55 fwg has joined #elliottcable 2013-10-07 09:17 wudofyr has quit [Ping timeout: 245 seconds] 2013-10-07 09:23 wudofyr has joined #elliottcable 2013-10-07 10:21 6:21 AM yeah, you’ve been a bit of a dick when you came in, but this is our first encounter, so I will try to convert you :) 2013-10-07 10:21 oh, the poor thing. he's got no idea. 2013-10-07 10:27 Everyone in this channel is too nice. I can't handle it. I put up with it to try, to try *so hard*, to convey my point (which I considered important enough to join *somebody else's IRC channel*, to argue on *their home turf*, against *their project* and *their philosophies* … so yeah, that was obviously pretty important to me), 2013-10-07 10:27 and managed, swallowing SO MUCH bile, to reach a reasonable outcome where the primary person I was talking to understood maybe ten percent of what I was trying to say, 2013-10-07 10:27 but I'm done. so, very, very done. 2013-10-07 10:27 joelteon: COME CURSE ME OUT, PLEASE 2013-10-07 10:27 joelteon: or just talk about waffles or something, whatever it is you do. 2013-10-07 11:19 cloudhead has joined #elliottcable 2013-10-07 11:22 Sgeo has quit [Read error: Connection reset by peer] 2013-10-07 11:25 alexgordon has joined #elliottcable 2013-10-07 11:36 yorick has joined #elliottcable 2013-10-07 11:37 cloudhead has quit [Quit: leaving] 2013-10-07 11:39 cloudhead has joined #elliottcable 2013-10-07 12:06 PragCypher has joined #elliottcable 2013-10-07 12:36 Sorella has joined #elliottcable 2013-10-07 12:36 Sorella has quit [Changing host] 2013-10-07 12:36 Sorella has joined #elliottcable 2013-10-07 13:09 Sorella has quit [Quit: Ex-Chat] 2013-10-07 13:09 Sorella has joined #elliottcable 2013-10-07 13:18 Sorella has quit [Remote host closed the connection] 2013-10-07 13:18 Sorella has joined #elliottcable 2013-10-07 13:37 Determinist has quit [Ping timeout: 240 seconds] 2013-10-07 13:38 Determinist has joined #elliottcable 2013-10-07 13:47 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-07 13:50 alexgordon has joined #elliottcable 2013-10-07 14:11 ELLIOTTCABLE: wait what community, irc channel, home turf, project, etc. 2013-10-07 14:11 ? 2013-10-07 14:19 Determinist has quit [Ping timeout: 256 seconds] 2013-10-07 15:15 sharkbot has quit [Remote host closed the connection] 2013-10-07 15:16 sharkbot has joined #elliottcable 2013-10-07 15:36 dude so it turns out i'm a big dumb stupid idiot 2013-10-07 15:37 ELLIOTTCABLE: suck a dick bro 2013-10-07 15:55 fwg has quit [Ping timeout: 246 seconds] 2013-10-07 16:22 niggler has joined #elliottcable 2013-10-07 16:48 fwg has joined #elliottcable 2013-10-07 16:49 wow 2013-10-07 16:49 oh, wait, was that last night 2013-10-07 17:00 damn 2013-10-07 17:16 lol 2013-10-07 17:16 lol 2013-10-07 17:22 dude 2013-10-07 17:22 how do you figure out if you have a concussion 2013-10-07 17:23 webmd 2013-10-07 17:23 good idea 2013-10-07 17:25 warning: webmd will also let you know that you are dying from about 20 different conditions. 2013-10-07 17:25 that's the joke, isn't it 2013-10-07 17:42 yrashk_ has quit [Ping timeout: 248 seconds] 2013-10-07 17:45 yrashk has joined #elliottcable 2013-10-07 17:46 joelteon: did you hit your head? 2013-10-07 17:47 i fell off my bike and one of the handlebars hit me in the temple 2013-10-07 17:47 joelteon: do you still feel strange an hour afterwards? 2013-10-07 17:47 sort of 2013-10-07 17:47 i'm an intense hypochondriac 2013-10-07 17:47 yeah 2013-10-07 17:48 it still hurts where it hit my head 2013-10-07 17:48 probably ok if you don't have any symptoms 2013-10-07 17:48 my pupils are the same size, i can balance properly/walk 2013-10-07 17:48 except for bruising 2013-10-07 17:48 yeah, there's gonna be bruising 2013-10-07 17:56 yrashk has quit [Ping timeout: 245 seconds] 2013-10-07 18:02 yrashk has joined #elliottcable 2013-10-07 18:15 PragCypher has quit [Quit: Leaving] 2013-10-07 19:10 joelteon: yeah if it just hurts but you don't have like weird pupils or balance you're probably ok 2013-10-07 19:10 (trust me i know everything about medicine) 2013-10-07 19:11 cuttle: lol 2013-10-07 19:11 lol 2013-10-07 19:11 cuttle: so what are you going to be when you grow up? 2013-10-07 19:11 :P 2013-10-07 19:11 a doctor? a bus driver? particle physicist? 2013-10-07 19:18 PragCypher has joined #elliottcable 2013-10-07 19:39 eligrey has joined #elliottcable 2013-10-07 19:53 devyn: my first use of sudo -e today 2013-10-07 19:53 i am so happy 2013-10-07 21:02 easy to please 2013-10-07 21:31 whitequa1k has joined #elliottcable 2013-10-07 21:34 whitequark has quit [Ping timeout: 245 seconds] 2013-10-07 21:49 god why does haskell-src-exts take so long to compile? 2013-10-07 21:49 removing it takes my build from 7 and a half minutes to 2 and a half minutes 2013-10-07 22:17 fwg has quit [Ping timeout: 264 seconds] 2013-10-07 22:44 joelteon: presumably because it has TH magic in it 2013-10-07 22:50 whitequa1k is now known as whitequark 2013-10-07 23:27 alexgordon: 2013-10-07 23:27 not sure. i want to do things about brains 2013-10-07 23:27 neuroscience 2013-10-07 23:28 but math and physics are also really cool 2013-10-07 23:28 you know what's really cool 2013-10-07 23:28 rust 2013-10-07 23:28 and i mean it would also be amazing to make a career out of creating things, like music or video games 2013-10-07 23:28 joelteon: yeah 2013-10-07 23:28 alexgordon: so yeah one of those things 2013-10-07 23:28 or all 2013-10-07 23:28 :p 2013-10-07 23:29 joelteon: rust has many similar design choices to the ones i made for ♞ 2013-10-07 23:29 really 2013-10-07 23:29 yeah 2013-10-07 23:30 it feels like ♞ felt when i was iting examples 2013-10-07 23:30 *writing 2013-10-07 23:30 in as far as a programming language can feel like something 2013-10-07 23:30 i might have to start using rust 2013-10-07 23:30 assuming i can find an excuse project for it 2013-10-07 23:30 yeah, it's really neat 2013-10-07 23:30 i think there's finally a decent alternative to the current state of compiled affairs 2013-10-07 23:31 if you don't care about speed, you use whatever language you want, and if you do, you use C++ 2013-10-07 23:31 but linear types are clever 2013-10-07 23:31 do they actually call them linear types? 2013-10-07 23:31 no 2013-10-07 23:31 they used to 2013-10-07 23:32 because i read about them and immediately thought of linear types 2013-10-07 23:32 i think that was the original design idea, but there was some reason it couldn't be implemented 2013-10-07 23:32 prophile: what's the state of ♞? 2013-10-07 23:32 is there a question mark in there 2013-10-07 23:33 ♞? 2013-10-07 23:33 the rust stdlib is moving faster than 2013-10-07 23:34 uh 2013-10-07 23:34 Sgeo has joined #elliottcable 2013-10-07 23:39 cuttle: I haven't touched it in over a year 2013-10-07 23:39 alexgordon: it was the programming language i was designing 2013-10-07 23:40 yorick has quit [Remote host closed the connection] 2013-10-07 23:55 cuttle: #Hoodie 2013-10-08 00:01 wtf is #hoodie 2013-10-08 00:09 i honestly think paws can actually be something special re async 2013-10-08 00:09 and concurrency 2013-10-08 00:34 I like to think so. 2013-10-08 00:35 alexgordon: hoodie is a noBackend implementation, apparently 2013-10-08 00:35 http://nobackend.org 2013-10-08 01:00 hm wonder if mathematica can do a frequency analysis of an mp3 file 2013-10-08 01:00 spectral analysis, that's the word I wanted 2013-10-08 01:21 man 2013-10-08 01:22 how do you "find all valid paths" 2013-10-08 01:22 because they can fork at any time 2013-10-08 01:22 and you have to collect all the results 2013-10-08 01:22 or do you use like a rose tree 2013-10-08 01:30 dude 2013-10-08 01:30 that's the fucking solution 2013-10-08 01:30 a rose tree 2013-10-08 01:32 cloudhead has quit [Ping timeout: 248 seconds] 2013-10-08 01:32 joelteon: are you on substances? 2013-10-08 01:35 no, why 2013-10-08 01:41 joelteon: just seemed that way 2013-10-08 01:44 huh 2013-10-08 01:44 that's weird 2013-10-08 01:44 alexgordon: do you know how to convert a rose tree into a list of every possible path? 2013-10-08 01:44 from the top to each end node 2013-10-08 01:48 joelteon: wtf is a rose tree 2013-10-08 01:48 a tree with an arbitrary number of children for each node 2013-10-08 01:48 so, a tree? 2013-10-08 01:49 yup 2013-10-08 01:49 lol 2013-10-08 01:49 lol 2013-10-08 01:49 joelteon: wouldn't that use a lot of memory? why not just walk it? 2013-10-08 01:50 paths Nil = []; paths (Node x children) = do { child <- children; path <- paths child; return (x:path); } 2013-10-08 01:51 ok, that too 2013-10-08 01:52 ok, a tree 2013-10-08 01:53 haskell people call it a rose tree a lot, i dunno why 2013-10-08 01:54 ok, the problem is you can't solve it with only one function 2013-10-08 01:54 because you'll just get a flat nondelineated list 2013-10-08 01:56 oh, no, you can 2013-10-08 01:57 alexgordon: i think laziness means this is walking it 2013-10-08 01:57 man, I'm really stupid 2013-10-08 01:57 what's wrong with me today 2013-10-08 01:57 maybe that blow to my head did something 2013-10-08 01:57 i forgot how to spell delineate 2013-10-08 02:03 man i cannot concentrate at all 2013-10-08 02:28 Okay, I just lost a few points on this C++ quiz 2013-10-08 02:28 So I need somebody who knows at least some C++: do the arithmetic operators not have varying precedence to make multiplication happen before division? 2013-10-08 02:28 My professor is saying it doesn't o_o 2013-10-08 02:29 (which seems odd, I've never seen a language where math didn't group like in math) 2013-10-08 02:29 Am I going crazy or should I punch this professor in the face? 2013-10-08 02:31 I think he's right? 2013-10-08 02:31 lemme check 2013-10-08 02:31 yeah, that's how it works in python at least 2013-10-08 02:31 http://docs.python.org/2/reference/expressions.html 2013-10-08 02:32 I think I figured it out. He was mixing up operator precedence with order of execution, it seems. I guess I should email him. 2013-10-08 02:33 uh, what do you mean by order of execution? 2013-10-08 02:33 http://alastair.hovercatsw.com/C99.pdf says the same thing 2013-10-08 02:33 same situation in lua 2013-10-08 02:33 http://www.lua.org/manual/5.2/manual.html#3.4.7 2013-10-08 02:34 Well, the question was asking whether an expression with no parens would be evaluated from left to right, and I said no, since multiplication had to be evaluated first 2013-10-08 02:34 And according to all my sources, C++ does in fact follow PEMDAS 2013-10-08 02:35 java too http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.17 2013-10-08 02:35 yes, that's associativity not precedence 2013-10-08 02:35 PEMDAS/BEDMAS is bollocks 2013-10-08 02:35 Is it? 2013-10-08 02:35 addition and subtraction have the same level of predecence 2013-10-08 02:35 I don't even know, this is just annoying that this professor is never there at class to explain this shit ._. 2013-10-08 02:36 so do multiplication and division 2013-10-08 02:36 I'm debating whether to approach our dean and ask to be dropped without a fail, simply because the professor is a complete waste of space 2013-10-08 02:36 as you point out too, it only specifies the predecence, not which way they associate 2013-10-08 02:36 what's the structure as far as that goes? 2013-10-08 02:36 if there's someone lower down you can go to, might be wiser 2013-10-08 02:37 that being said, places of education shit themselves over this kind of thing, so you probably wouldn't have any trouble being dropped without a fail 2013-10-08 02:37 Our only structure is parttime < fultime < dean 2013-10-08 02:37 He's fulltime 2013-10-08 02:38 And I think only hte dept dean can do stuff like drop w/o fail this late 2013-10-08 02:38 k 2013-10-08 02:38 that's a bit different to the british structure then 2013-10-08 02:39 This'd be easier if blackboard at least *worked* 2013-10-08 02:39 hah 2013-10-08 02:39 Nuck: c++ *definitely* has math grouping. Io and Smalltalk and APL/J/K are examples of languages which do not group 2013-10-08 02:39 blackboard 2013-10-08 02:39 But nooooooo quizzes are in the fine print on quizes 2013-10-08 02:39 there's your problem 2013-10-08 02:39 lol yeah 2013-10-08 02:39 lol 2013-10-08 02:39 They're piloting canvas right now apparently 2013-10-08 02:39 All the pilot professors are in love 2013-10-08 02:40 at least it isn't fucking moodle 2013-10-08 02:40 haha my middle school did that 2013-10-08 02:40 Nuck: multiplication before division? wat 2013-10-08 02:40 My high school did eChalk 2013-10-08 02:40 one of my classes is moodle 2013-10-08 02:40 and two are canvas 2013-10-08 02:40 At least yo uhave any that are canvas 2013-10-08 02:41 OMG 2013-10-08 02:42 yes, joelteon, that's called a penis 2013-10-08 02:42 now please put it away 2013-10-08 02:42 it's not for using in public 2013-10-08 02:43 Nuck: multiplication/division, and addition/subtraction always have equal precedence (I even remember my maths teacher explaining this in year 7) 2013-10-08 02:43 alexgordon: Yeah 2013-10-08 02:43 dude 2013-10-08 02:43 in 2003 2013-10-08 02:43 the saints made one of the best plays in history to score a touchdown on the last play of the game 2013-10-08 02:43 to get into the playoffs 2013-10-08 02:43 I figured that one out I think, it's just a professor who sucks at things 2013-10-08 02:43 then their kicker missed the extra point 2013-10-08 02:43 holy shit 2013-10-08 02:43 i cannot imagine doing that 2013-10-08 02:44 http://balthasar.plejeck.com/up/2013-10-07-19:19:32-6616.png Where do you think assignments are in this sidebar? 2013-10-08 02:44 The answer? NOWHERE. 2013-10-08 02:44 How about quizzes? Underquizzes right? NOPE. Under a tiny link at the bottom of the Start Here page 2013-10-08 02:44 THANKS BLACKBOARD 2013-10-08 02:45 Nuck: I don't get it, you seem to be saying that multiplication happens before division 2013-10-08 02:45 yeah you'd think at least one online class thing didn't completely suck 2013-10-08 02:45 alexgordon: Nah, I'm saying that mult/division happen before addition/subtraction, thus saying that "any mathematical expression with no parens is eval'd left->right" is false 2013-10-08 02:46 At least that's my logic there 2013-10-08 02:46 oh ok 2013-10-08 02:46 I think h was expecting us to just regurgitate what the book says ._. 2013-10-08 02:47 (which is bad because I haven't actually opened the book) 2013-10-08 02:48 * Nuck sighs 2013-10-08 02:48 Somebody please get me out of here 2013-10-08 02:57 so today I learned that a "rose tree" is called "a tree" 2013-10-08 02:57 i feel pretty smart 2013-10-08 03:03 joelteon: lol I've never heard of "rose tree" before 2013-10-08 03:03 lol 2013-10-08 03:03 haskellers use it a lot 2013-10-08 03:03 well that's not entirely true 2013-10-08 03:03 seems that way 2013-10-08 03:03 at least one haskeller has used it at least once 2013-10-08 03:04 that's a considerably weaker assertion 2013-10-08 03:08 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-08 03:33 Nuck: oh my god, memories 2013-10-08 03:33 ELLIOTTCABLE: what 2013-10-08 03:33 Blackboard 2013-10-08 03:33 Of me being a dumbass or of college? 2013-10-08 03:33 Oh 2013-10-08 03:33 Yeah blackboard is hatred 2013-10-08 03:33 Pure loathing 2013-10-08 03:33 Death 2013-10-08 03:44 ok, i rewrote my finder 2013-10-08 03:47 rose tree isn't an uncommon term 2013-10-08 03:47 9:03 PM <•joelteon> at least one haskeller has used it at least once 2013-10-08 03:47 9:04 PM <•alexgordon> that's a considerably weaker assertion 2013-10-08 03:48 joelteon: well i mean it's useful in contrast to say binary tree or w/e 2013-10-08 03:48 it's a tree with arbitrary numbers of children and data at every node 2013-10-08 03:48 also the cofree comonad on lists 2013-10-08 03:50 man i wish weechat's output was easy to copy and paste 2013-10-08 04:03 Nuck: by the way 2013-10-08 04:03 multiplication and division have same precedence 2013-10-08 04:04 and in C-langs, regardless of precedence, order of execution is only defined across sequence points 2013-10-08 04:04 so even for a + b * c, you may never know what the order is. 2013-10-08 04:06 it usually happens ltr or rtl; gcc and clang are ltr. however, more advanced compilers, such as icc or armcc, may shuffle things more heavily 2013-10-08 04:06 impossibru 2013-10-08 04:17 http://www.bbc.co.uk/news/science-environment-24429621 2013-10-08 04:18 whitequark: both gcc and clang will shuffle them liberally 2013-10-08 04:18 prophile: hrm. last time I asked, I got an explicit reply that clang did not take advantage of sequence points 2013-10-08 04:18 of course, I'm talking about side-effecting operations, not just arithmetics 2013-10-08 04:22 Sorella has quit [Quit: Ex-Chat] 2013-10-08 04:26 fwg has joined #elliottcable 2013-10-08 04:29 whitequark: precisely 2013-10-08 04:29 integer + and * are not side-effecting operations 2013-10-08 04:29 malia has joined #elliottcable 2013-10-08 04:30 .. 2013-10-08 04:31 ... 2013-10-08 04:31 hello prophile 2013-10-08 04:31 hello 2013-10-08 04:32 fwg has quit [Ping timeout: 248 seconds] 2013-10-08 04:35 prophile: well, it's not interesting at all with non-side-effecting ones 2013-10-08 04:36 since you can't observe it anyway 2013-10-08 04:36 er. what I mean is that even in a language without a notion of sequence points, the compiler is free to reorder arithmetics. 2013-10-08 04:36 actually you can with snans 2013-10-08 04:37 but i know what you mean 2013-10-08 04:37 oh let's not talk about floating point 2013-10-08 04:37 or division by zero I think? 2013-10-08 04:37 you can't even do arithmetically equivalent transformations on them 2013-10-08 04:37 division by zero is UB 2013-10-08 04:37 therefore, it never happens 2013-10-08 04:37 true 2013-10-08 04:38 signed int overflow too, which catches a lot of people out 2013-10-08 04:38 and shifting 1 into sign bit 2013-10-08 04:38 and shifting more bits than the width 2013-10-08 04:38 and null pointer dereference 2013-10-08 04:38 I can rant about this for hours 2013-10-08 04:39 i'd forgotten about 1 into the sign bit 2013-10-08 04:39 yes to the others 2013-10-08 04:39 unaligned access too i think 2013-10-08 04:40 it's less of an issue now 2013-10-08 04:40 what is? 2013-10-08 04:41 unaligned access, since cpus handle it transparently, and compilers never assumed codepaths are unreachable based on unaligned access 2013-10-08 04:41 "cpus" 2013-10-08 04:41 well, I'm not aware of any ones which did 2013-10-08 04:41 prophile: what? 2013-10-08 04:41 oh you lucky, sheltered man 2013-10-08 04:41 arm since v7 translates it into several bus cycles, just as x86 does 2013-10-08 04:41 the embedded devices world is not so lucky 2013-10-08 04:41 and the rest of the gang is hardly relevant in the big picture 2013-10-08 04:41 hah 2013-10-08 04:42 my own personal nemesis, the msp430, has bitten me on that one 2013-10-08 04:42 if you truly get into embedded territory, then C breaks down hard 2013-10-08 04:42 try 16-bit chars 2013-10-08 04:42 which is, I believe, a plain out violation of the standard 2013-10-08 04:42 that's perfectly valid unless you've made the assumption that sizeof returns a value in octets 2013-10-08 04:43 I don't really think C is a good low-level language 2013-10-08 04:43 it both requires a set of wrong things, and omits from the standard another set of wrong things 2013-10-08 04:43 all based on petty wishes of committee members 2013-10-08 04:43 C is the worst language for this sort of thing apart from every other language 2013-10-08 04:44 exactly 2013-10-08 04:44 it's the democracy of the programming family 2013-10-08 04:45 prophile: "C is the democracy of the programming family" wat. 2013-10-08 04:45 beep. 2013-10-08 04:46 "it has been said that democracy is the worst form of government except all those other forms that have been tried from time to time." 2013-10-08 04:46 winston churchill 2013-10-08 04:46 http://hansard.millbanksystems.com/commons/1947/nov/11/parliament-bill#column_207 2013-10-08 04:47 i assumed it was another famous quote which he didn't actually say 2013-10-08 04:47 but there it is in hansard 2013-10-08 04:47 I know that, yeah 2013-10-08 04:47 except you can actually do better than C 2013-10-08 04:47 easily 2013-10-08 04:47 just not easily make others adopt it. 2013-10-08 04:48 FORTRAAAAN 2013-10-08 04:48 prophile: wat. 2013-10-08 04:48 beep. 2013-10-08 04:48 now the actual one 2013-10-08 04:48 man, FORTRAN is a great language 2013-10-08 04:48 moving away from it to C was a mistake 2013-10-08 04:49 ALGOL is a great language, sorta 2013-10-08 04:49 FORTRAN is... um... er... 2013-10-08 04:49 FORTRAN 77 even makes it current 2013-10-08 04:50 and FORTRAN 90 is downright wonderful 2013-10-08 04:50 i'd take it over C any day 2013-10-08 04:50 besides, it's the same committee shit. I think the latest fortran (was that fortran 2012?..) even has object-orientedness and closures and crap 2013-10-08 04:50 prophile: yeah, what about compilers? 2013-10-08 04:50 (I'm not actually serious) 2013-10-08 04:50 there's gf77 and... and what? 2013-10-08 04:50 http://hackage.haskell.org/package/atom 2013-10-08 04:50 clearly the future of embedded :) 2013-10-08 04:51 * whitequark facepalms 2013-10-08 04:51 I'M SORRY 2013-10-08 04:51 when 6am rolls around i forget how to do anything but troll :( 2013-10-08 04:52 it's not really about you 2013-10-08 04:52 btw 2013-10-08 04:52 http://irclog.whitequark.org/qi-hardware/2013-09-18#1379512966-1379513838; 2013-10-08 04:53 COBOL.Net is a thing 2013-10-08 04:53 a friend of mine works on an IDE for it in his day job 2013-10-08 04:54 hngg 2013-10-08 04:54 does it offer MUMPS interoperability? 2013-10-08 04:55 no idea what MUMPS is 2013-10-08 04:55 oh, just looked up his company on wikipedia 2013-10-08 04:55 they do borland as well 2013-10-08 04:56 MUMPS is a completely ridiculous language which is endemic to healthcare 2013-10-08 04:56 like COBOL is to banking 2013-10-08 04:56 aka, having mumps is better than using MUMPS :p 2013-10-08 04:56 ouch 2013-10-08 04:57 http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx 2013-10-08 05:04 yeah, i've read that a bunch of times 2013-10-08 05:27 lol 2013-10-08 05:27 lol 2013-10-08 05:28 malia has left #elliottcable [#elliottcable] 2013-10-08 05:47 malia has joined #elliottcable 2013-10-08 05:49 malia has quit [Client Quit] 2013-10-08 06:41 eligrey has quit [Quit: Leaving] 2013-10-08 06:57 so I just watched Baccano!! 2013-10-08 06:57 what the hell 2013-10-08 06:57 why does none of it make any fucking sense 2013-10-08 06:58 more importantly, why is it so that I seem to only ever be attracted to series which make completely zero sense. 2013-10-08 06:59 I mean, they all manage to not make sense in various amusing and/or interesting ways, but 2013-10-08 06:59 oh 2013-10-08 06:59 that may be it. 2013-10-08 06:59 it's still ridiculous though 2013-10-08 06:59 I should find and watch more of it. 2013-10-08 07:04 malia has joined #elliottcable 2013-10-08 07:04 malia has quit [Client Quit] 2013-10-08 07:12 prophile_ has joined #elliottcable 2013-10-08 07:12 sammcd_ has joined #elliottcable 2013-10-08 07:16 PLejeck has joined #elliottcable 2013-10-08 07:17 Nuck has quit [*.net *.split] 2013-10-08 07:17 jvulc has quit [*.net *.split] 2013-10-08 07:17 sammcd has quit [*.net *.split] 2013-10-08 07:17 prophile has quit [*.net *.split] 2013-10-08 07:17 dskuza has quit [*.net *.split] 2013-10-08 07:41 fwg has joined #elliottcable 2013-10-08 07:59 cuttle: no paws.rs on GitHub? I was gonna take a look. 2013-10-08 08:51 fwg has quit [Ping timeout: 256 seconds] 2013-10-08 08:54 fwg has joined #elliottcable 2013-10-08 09:05 jvulc has joined #elliottcable 2013-10-08 09:05 PLejeck has quit [Changing host] 2013-10-08 09:05 PLejeck has joined #elliottcable 2013-10-08 09:07 dskuza has joined #elliottcable 2013-10-08 09:07 PLejeck is now known as Nuck 2013-10-08 09:30 jvulc! hi. 2013-10-08 10:14 wudofyr has quit [Remote host closed the connection] 2013-10-08 10:15 wudofyr has joined #elliottcable 2013-10-08 11:37 Sgeo has quit [Read error: Connection reset by peer] 2013-10-08 12:36 Kapone has joined #elliottcable 2013-10-08 12:42 Sorella has joined #elliottcable 2013-10-08 12:45 … who's Kapone? 2013-10-08 12:46 friend of Cloudhead 2013-10-08 12:46 pragcypher 2013-10-08 12:46 Kapone has quit [Quit: Leaving] 2013-10-08 12:49 Hihi 2013-10-08 13:15 jvulc: (= 2013-10-08 13:17 yorick has joined #elliottcable 2013-10-08 13:46 alexgordon has joined #elliottcable 2013-10-08 13:48 alexgordon! 2013-10-08 13:49 ELLIOTTCABLE! 2013-10-08 13:53 ELLIOTTCABLE: moving to stripe 2013-10-08 13:53 rewriting the whole website basically! 2013-10-08 13:53 now, first I need an SSL cert 2013-10-08 13:58 cool 2013-10-08 13:58 feel like rewriting the whole thing 2013-10-08 13:58 currently its a big mess of PHP 2013-10-08 13:59 I should use Flask 2013-10-08 14:01 oh gods 2013-10-08 14:01 and what's flask 2013-10-08 14:03 ELLIOTTCABLE: like sinatra for python 2013-10-08 14:04 cloudhead has joined #elliottcable 2013-10-08 14:45 cloudhead! 2013-10-08 15:17 sharkbot has quit [Remote host closed the connection] 2013-10-08 15:18 sharkbot has joined #elliottcable 2013-10-08 15:23 cloudhead has quit [Ping timeout: 256 seconds] 2013-10-08 15:44 sammcd_ is now known as sammcd 2013-10-08 15:44 you know what makes me feel dumb, is when there's an executable called foo and a file called foo.hs and i'm trying to cat foo.hs and i forget there's an executable 2013-10-08 15:45 so i type in "foo" and tab complete and it completes to "foo" and I hit enter anyway 2013-10-08 15:45 ELLIOTTCABLE: ah ok i will put it up 2013-10-08 15:46 and then i have to wait 2 and a half minutes and when it finally ends, my window title is like 150 characters long 2013-10-08 15:47 * cuttle ELLIOTTCABLE: https://github.com/micahjohnston/paws.rs 2013-10-08 15:48 joelteon: hahah yeah i've done that 2013-10-08 15:48 joelteon: not as bad, i wanted to test my lexer, so i was running it on main.hs, but tabcompleted to main, and it printed out a buncha gobbledygook 2013-10-08 15:48 yeah 2013-10-08 15:48 ELLIOTTCABLE: rust is far from perfect at this point, so there's the occasional ugly workaround 2013-10-08 15:48 i wish cat would refuse to cat files that appear to be binary 2013-10-08 16:02 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-08 16:25 man, rust's performance is really not very remarkable 2013-10-08 16:28 hi, all 2013-10-08 16:38 hi ec 2013-10-08 16:39 hi joelteon 2013-10-08 16:39 this code is the most terrible code 2013-10-08 16:39 the most terrible of all the terribles 2013-10-08 16:40 how bad 2013-10-08 16:48 i'm compiling GCC now 2013-10-08 16:48 this should be done pretty soon 2013-10-08 16:48 ELLIOTTCABLE: what coe? 2013-10-08 16:48 code* 2013-10-08 16:48 Thinking of ordering a Tessel or three. 2013-10-08 16:48 Node.js “embedded” development-fun? Sounds neat. 2013-10-08 16:48 Worried about their custom interpreter, though. Sounds painfully slow. 2013-10-08 16:49 cuttle: what do you think about writing a VHDL FPGA ‘program’ for a Paws interpreter? 2013-10-08 16:49 that is, an actual ‘Paws machine.’ 2013-10-08 16:50 that would be fuckin sweet 2013-10-08 16:50 like, paws is more nonlocal than tempus, so it doesn't map to compiling down to fpgas as well, but due to ownership, it's way more local than basically everything else 2013-10-08 16:50 and also you mean a machine, not a thing that compiles it to machines 2013-10-08 16:50 so yeah perfect fit 2013-10-08 16:50 huh? 2013-10-08 16:51 idk just rambling 2013-10-08 16:51 not a compiler, no 2013-10-08 16:51 yeah i know 2013-10-08 16:51 I mean an interpreter, basically, if I understand myself right? 2013-10-08 16:51 yeah 2013-10-08 16:51 idfk fpgas. 2013-10-08 16:51 yeah i getcha 2013-10-08 16:51 brb twitter-bio. “idfkfpgas.” 2013-10-08 16:51 tessel sounds fuckin dumb if you're running javascript on embedded hardware 2013-10-08 16:51 fuck javascript 2013-10-08 16:51 i mean 2013-10-08 16:51 it's actually pretty neat. 2013-10-08 16:51 I'm a huge Node fan. 2013-10-08 16:51 the concept of tessel looks way cool 2013-10-08 16:51 like, not *just* because it works well for things I want to do, I also like it, conceptually. 2013-10-08 16:51 with like the modules and shit 2013-10-08 16:52 but like 2013-10-08 16:52 npm for ‘embedded development?’ yes please. 2013-10-08 16:52 I mean, sure, it's shit. 2013-10-08 16:52 is js *really* the best we can do 2013-10-08 16:52 but it's *accessible* shit. 2013-10-08 16:52 sure 2013-10-08 16:52 impossible to: debug, optimize 2013-10-08 16:52 well, you've whitequark's factory. 2013-10-08 16:52 :p 2013-10-08 16:52 or whatever it's called; unfortunately, I can't remember. 2013-10-08 16:52 oh um 2013-10-08 16:52 foundry 2013-10-08 16:52 yeah well i mean foundry is really fuckin cool 2013-10-08 16:52 but also build on ruby syntax :p 2013-10-08 16:53 but yeah 2013-10-08 16:53 but idfk anything about that. looks like Tessel gives me an existing set of libraries; a language I already understand, that's great for networked/connected-stuff; and, most importantly, *a connection* to use all that on. 2013-10-08 16:54 yeah sure 2013-10-08 16:54 so yeah it is cool 2013-10-08 16:55 but just from a technical standpoint 2013-10-08 16:55 from a people standpoint it is cool 2013-10-08 16:55 from a technical standpoint it is very much worse is better i guess 2013-10-08 16:55 makes me sad at how much we could have something that is easy for people, and also takes way more advantage of performance opportunities 2013-10-08 16:55 like, that's the goal of both paws and tempus 2013-10-08 16:55 make massive parallelism the natural-to-humans thing to do 2013-10-08 16:55 rather than fuckin dumb sequential bottleneck 2013-10-08 16:57 guys it takes awhile to build gcc 2013-10-08 16:57 i don't know if you knew 2013-10-08 16:58 joelteon: haha 2013-10-08 17:02 * ELLIOTTCABLE nods 2013-10-08 17:02 so. 2013-10-08 17:03 would love to get alex in here. happy to do some Paws chat. 2013-10-08 17:03 WORST CODE WORST CODE WORST CODE 2013-10-08 17:03 ELLIOTTCABLE: whatcodewhatcode 2013-10-08 17:03 err 2013-10-08 17:05 ↓ that 2013-10-08 17:05 01[13woof01] 15ELLIOTTCABLE pushed 7 new commits to 06Master+: 02https://github.com/ELLIOTTCABLE/woof/compare/8afd5aa8c0ee...733a92d4cfe8 2013-10-08 17:05 13woof/06Master+ 141f1c1f3 15elliottcable: + filled out the `Lens` documentation 2013-10-08 17:05 13woof/06Master+ 14b9e7bb8 15elliottcable: + starting on Lens#call 2013-10-08 17:05 13woof/06Master+ 14acbc683 15elliottcable: + one-line -> one_line 2013-10-08 17:06 trying to pump out a shitty, but powerful, terminal-printing library 2013-10-08 17:06 for some things I Want™ for Paws. 2013-10-08 17:06 ah 2013-10-08 17:06 the pretty printing code 2013-10-08 17:07 ELLIOTTCABLE: i would have written a little paws.c except that c's memory management paralyzes me when i want to write a parser 2013-10-08 17:07 nah, do rs, that's neat 2013-10-08 17:07 good chance to learn it with something we all know well 2013-10-08 17:07 Paws being so simple right now, and all 2013-10-08 17:07 yeah i'm definitely sticking with this 2013-10-08 17:07 but just for the future 2013-10-08 17:08 i want to know better c memory techniques :p 2013-10-08 17:08 Paws.c is something we can collaborate on, then 2013-10-08 17:08 like, reading input string buffer shit 2013-10-08 17:08 because Paws.c is *supposed* to be a light-weight, universally-embeddable Paws interpreter with an *excellent* API 2013-10-08 17:08 what are best practices there? 2013-10-08 17:08 yeah 2013-10-08 17:08 i want to optimize the fuck out of it too 2013-10-08 17:08 and ‘excellent-API’ plus ‘interpreter’ plus ‘lightweight’ equals excellent change to learn good C practices at a simple level 2013-10-08 17:08 was planning on making a stream-based reentrant lexer and parser 2013-10-08 17:08 nah, code-weight is more important than optimization to me in that implementation 2013-10-08 17:08 which would dovetail nicely with your plans for executing things 2013-10-08 17:08 well i mean we can have both 2013-10-08 17:09 optimizations which cost much in cognitive-overhead for unskilled programmers reading the code are a non-starter in my intended implementation 2013-10-08 17:09 perhaps could do a binary-API compatible JIT compiler? 2013-10-08 17:09 well yeah we're not going to do like twisty bullshit 2013-10-08 17:09 just like really efficient architecture 2013-10-08 17:09 drop the interpreter in, replace it with the more-complex JIT compiler when the API-consumer's project would benefit from that 2013-10-08 17:09 * ELLIOTTCABLE nods 2013-10-08 17:09 need to talk about the IPP a bit 2013-10-08 17:09 yeah 2013-10-08 17:10 i think that the whole runnign it multiple times is a mistake 2013-10-08 17:10 I mean, nothing important right now; as previously ascertained, it shouldn't affect the VM/language design *anyway* 2013-10-08 17:10 like i think we should just have like directives 2013-10-08 17:10 like 2013-10-08 17:10 #ipp [ paws code ] 2013-10-08 17:10 that gets run 2013-10-08 17:10 yknowwhaimean 2013-10-08 17:10 nonono the entire point is to have one language that modifies itself 2013-10-08 17:10 but *other* ways of modifying itself, than unbounded infinite multiple-runs, I'm definitely open to /= 2013-10-08 17:10 ok 2013-10-08 17:10 well i mean 2013-10-08 17:10 or, to put it another way: 2013-10-08 17:10 in j 2013-10-08 17:10 I may never make an IPP. 2013-10-08 17:10 functions are lexed but not parsed until execution 2013-10-08 17:10 There's always M4, or even the CPP. 2013-10-08 17:11 could just run the CPP or M4 *on Paws code*, for simple translations. 2013-10-08 17:11 because parsing is context-senstive; you have to know whether a given identifier is a function, because all functions can be infix 2013-10-08 17:11 fuck no cpp 2013-10-08 17:11 we can have a simple beautiful two-tier macro system 2013-10-08 17:11 and the macros can even affect each other 2013-10-08 17:11 and be full paws 2013-10-08 17:11 what if the macros are more declarative rules 2013-10-08 17:11 like 2013-10-08 17:11 full paws in the expansions 2013-10-08 17:12 just compile and run it as C and then interpret the output as paws 2013-10-08 17:12 hahaha 2013-10-08 17:12 perfect 2013-10-08 17:12 what if macros can modify the entire syntax tree 2013-10-08 17:12 joelteon: that's the idea :p 2013-10-08 17:12 oh 2013-10-08 17:12 I'm not going to *write* a macro system, no matter what. 2013-10-08 17:13 you were going to write the ipp 2013-10-08 17:13 which is quite literally a macro system 2013-10-08 17:13 If there's going to be anything other than full, language-level inhabiting mutation of the code, then I'm just going to choose some external binary / external system, and declare it as “the official preprocessor of Paw!11!1!s” 2013-10-08 17:13 ok well here's the problem 2013-10-08 17:13 what you want 2013-10-08 17:13 does not get the user anything more useful or fun 2013-10-08 17:13 paw 2013-10-08 17:13 I've never seen anything called a ‘macro system’ that didn't differentiate between code-modifying-code and executing-code. 2013-10-08 17:13 makes jit or anything efficient infinitely harder 2013-10-08 17:14 I'd disagree re: useful/fun; 2013-10-08 17:14 ELLIOTTCABLE: what do you mean by that? 2013-10-08 17:14 it allows for a richer library. 2013-10-08 17:14 because libraries for X purpose, can modify the syntax; 2013-10-08 17:14 you should be able to have full paws code in the macros 2013-10-08 17:14 and the code modifying the syntax, can use libraries for X purpose. 2013-10-08 17:14 there's just an execution-phase-separation between the two 2013-10-08 17:14 i.e. it works both ways. 2013-10-08 17:15 how about macros can use other paws execution units 2013-10-08 17:15 but not the current one 2013-10-08 17:15 whatcha mean two-tier macro system? 2013-10-08 17:15 like 2013-10-08 17:15 (just now reading up above) 2013-10-08 17:15 because paws is all about very granular execution units 2013-10-08 17:15 tiny ones 2013-10-08 17:15 * ELLIOTTCABLE nods 2013-10-08 17:15 thought about this, in the past. 2013-10-08 17:15 like, here's the problem 2013-10-08 17:15 couple observations: 2013-10-08 17:16 you should not have macros in the compiled-to-bytecode execution units 2013-10-08 17:16 first off, although I'm not *truly* dead-set on it, I *really* like the idea of changing the syntax, half-way down a single file. 2013-10-08 17:16 all macro info should be *gone* already 2013-10-08 17:16 when it's bytecode and being passed around on the network 2013-10-08 17:16 macros should only be relevant when parsing and compiling a new execution unit 2013-10-08 17:16 that is, not having to open up a second file, if you're throwing out a quick one-file script/library (I want Paws to be like Node, where “modules” or “libraries” tend to be so fucking simple and granular, that they're like 100 lines or less in a single file, and then published.) 2013-10-08 17:16 … and want that script/library to have some custom syntax. 2013-10-08 17:16 right 2013-10-08 17:17 second, 2013-10-08 17:17 i agree with that 2013-10-08 17:17 that means that you can't *dynamically* decide on which syntaxes/extensions to use, in your code: the, er, whatever you want to call it, compiler or whatever, needs to know *before-hand* which external libraries you're going to use (because it needs to know which ones to get new rules/macros/whatever from) 2013-10-08 17:18 so, at that point, “including libraries” becomes a matter of passing flags to the compiler … 2013-10-08 17:18 … not `foo = require('bar')`. 2013-10-08 17:18 another of my much-loved idioms from Ruby days, and now npm/node, is: 2013-10-08 17:18 (on line 300 of a one-page, one-day, one-off hackodule) 2013-10-08 17:18 return require('markdown').parse(text) 2013-10-08 17:19 not even bothering to scroll to the top of the file to add a new little dependency, and add all of the features that dependency might provide, to your current efforts. 2013-10-08 17:19 (of course, I want to expand that to not even needing to *download a library*, or even *look up a library name* for that matter. more on that at another point, when we get around to discussing my plans for library-support.) 2013-10-08 17:20 ELLIOTTCABLE: ok, ideas: 2013-10-08 17:20 now, when you get to Paws, and the desires for dynamic syntax; what if that happens deep in some sort of conditional-guarded block? some code that may not execute, or even won't *usually* execute? what if the syntax-changes relevant to, idk, markdown parsing (let's say it provides an inline “markdown-string” format, with included syntax for literals), 2013-10-08 17:20 happens after that inclusion, but only *if* it was included? 2013-10-08 17:21 yeah. very contrived example. I know. 2013-10-08 17:21 just bringing up issues, here. 2013-10-08 17:21 you should *not* be able to use runtime-dependent conditions to determine which macros to include 2013-10-08 17:21 that should be deterministic at parse/compile-time 2013-10-08 17:21 and 2013-10-08 17:21 so basically you should be able to use arbitrary paws code to decide which syntax extensions to include, and to write those extensions themselves, but they should all be like pure-paws, no i/o, yknow 2013-10-08 17:22 which we can verify in our dynamic way with like the whole insanity/causality-graph system 2013-10-08 17:22 but anyway 2013-10-08 17:22 so here's an example: 2013-10-08 17:22 suppose you have a cool library for manipulating lists 2013-10-08 17:22 and you want to manipulate syntax, using that library 2013-10-08 17:22 so you import the library 2013-10-08 17:22 and use it in macros elsewhere 2013-10-08 17:22 that's totally fine 2013-10-08 17:22 i'm thinking 2013-10-08 17:22 what if you want to write macros, using it, in the same library 2013-10-08 17:23 that's when the whole multiple-runs thing comes into play 2013-10-08 17:23 and probably we should allow that, and do the whole multiple-runs-find-a-fixed-point thing 2013-10-08 17:23 I am onboard with that 2013-10-08 17:23 but we do need a phase separation 2013-10-08 17:23 like 2013-10-08 17:23 #[ macro code ] 2013-10-08 17:23 not married to that syntax but just as an example 2013-10-08 17:24 wow i am still fucking hopped up on that single extra espresso shot in my coffee this morning 2013-10-08 17:24 -clouds 2013-10-08 17:24 ELLIOTTCABLE: is stuck up in the clouds; hilight 'em if you want 'em. 2013-10-08 17:24 ELLIOTTCABLE: i finally have a happy image of the macro system in my head 2013-10-08 17:24 paws is fucking beautiful 2013-10-08 17:25 hold on hold on reading 2013-10-08 17:25 I got up to take a shit, took off my pants, and have been leaning on the bed with my laptop, standing next to the bathroom, ever since. 2013-10-08 17:25 this happens *way* more often than I'd like to admit. 2013-10-08 17:25 (getting distracted from a planned poo, 'cause code. or 'cause IRC.) 2013-10-08 17:26 I talk about these things, because it is my firm and unshakable belief that one cannot help another design programming languages, unless they fully grok the other's poo. 2013-10-08 17:26 ._. 2013-10-08 17:26 .-. 2013-10-08 17:26 okay. 2013-10-08 17:26 so if I understand you correctly, you want IPP-style execution to be *optional*? 2013-10-08 17:27 i.e. have a second mode, of some sort, where your code is never given access to syntax APIs? 2013-10-08 17:27 that sounds reasonable. 2013-10-08 17:27 but why the mode-seperation *in syntax*? (i.e. #[]) 2013-10-08 17:27 also: 2013-10-08 17:27 your hit-and-run mention of insanities for discovering syntax modification is genius. 2013-10-08 17:27 I'm curious how to go about it, exactly, I see issues, but I *never* thought of that. 2013-10-08 17:28 like, instead of [ syntax-run, syntax-run, syntax-run, syntax-run, IO-run ], 2013-10-08 17:28 you'd have [ IO-run , syntax-run, syntax-run, syntax-run, IO-run ] 2013-10-08 17:28 hm 2013-10-08 17:28 obvious issues 2013-10-08 17:28 but I wonder if there's an interesting way around them. 2013-10-08 17:29 well it's like 2013-10-08 17:29 paws is all about doing things at runtime 2013-10-08 17:29 but still having 100% safety about them 2013-10-08 17:29 so you can for instance run in a mode where all I/O operations are neutered 2013-10-08 17:30 basically, you don't know exactly what operations will happen until they are queued up 2013-10-08 17:30 but you can have a middleman who says "nop you cannot do that action" standing in front of the queue 2013-10-08 17:30 I don't have an *exact* plan for that, yet. 2013-10-08 17:30 AND I JUST REALIZED YOU CAN FUCKING WRITE THAT IN PAWS 2013-10-08 17:30 FUCK YES I FUCKING LOVE PAWS 2013-10-08 17:30 or rather, my plan 'tis a silly plan. 2013-10-08 17:30 extraneous use of 'tis when is would suffice 2013-10-08 17:30 ;p 2013-10-08 17:31 a silly plan of simply never doing them, and thus never returning from them. 2013-10-08 17:31 I'm sure there's a smarter way. 2013-10-08 17:31 need more concrete insanities specification, first. 2013-10-08 17:31 well you should immediately return not-doing them 2013-10-08 17:31 because never returning is indistinguishable from doing 2013-10-08 17:31 yah, that's the point :D 2013-10-08 17:32 why is that a good thing 2013-10-08 17:32 oh because it stops the graph from flowing upwards? 2013-10-08 17:32 the rest of the code following/depending-on (we need to talk more about your dependencies ideas. I know you've had them queued up for ages) 2013-10-08 17:32 not-returning is contagious? 2013-10-08 17:32 will just not-happen, *because* it can't. 2013-10-08 17:32 yeah uhuh 2013-10-08 17:32 so, let's wrap up chat about IPP. 2013-10-08 17:32 that is good 2013-10-08 17:32 i was just thinking of 2013-10-08 17:32 we need to go back to using Wave. 2013-10-08 17:32 some sort of contagion 2013-10-08 17:32 and i mean paws is all about contagion on the graph 2013-10-08 17:32 so we could have a reified not-returning that also spreads 2013-10-08 17:32 too many interconnected, independant streams of thought; that really need to be more persistent than IRC can make them, but more flowing and dynamic than mailing-lists can 2013-10-08 17:32 rather than just not-returning 2013-10-08 17:32 but i like the idea 2013-10-08 17:33 problems I have with Wave: 2013-10-08 17:33 yeah wave sucks for desinging languages 2013-10-08 17:33 topics are a tree, not a graph. 2013-10-08 17:33 evrything does 2013-10-08 17:33 it's GREAT that you can diverge and split at any point 2013-10-08 17:33 anyway though i love paws 2013-10-08 17:33 and it's gonna be fuckin great 2013-10-08 17:33 it's GREAT that responses naturally gravitate towards small and flowing when synchronously discussing, and long-and-in-depth when asynch 2013-10-08 17:33 > have a furious irc conversation 2013-10-08 17:33 but it's NOT-GREAT that you can have two, completely separate, trees in the *same thread*, about the *same thing*, and they aren't connected. 2013-10-08 17:33 > look up to rest of linguistics class being silent 2013-10-08 17:34 (because irc is segregated from Real Life) 2013-10-08 17:34 I want something where we start talking about statement-dependencies, and it can be synched up with all previous discussions about statement-dependencies 2013-10-08 17:34 right 2013-10-08 17:34 a *graph* of discussion-trends 2013-10-08 17:34 that, like wave, is “ordered-chronological-list-like” at its leaves 2013-10-08 17:34 well maybe we can make that in mu *after* we make paws 2013-10-08 17:34 ;) 2013-10-08 17:35 yep. 2013-10-08 17:35 deal. 2013-10-08 17:35 * ELLIOTTCABLE laughs 2013-10-08 17:35 okay. well, this *isn't* wave, and important stuff has scrolled off the top, which would normally, since this *isn't* wave, would mean it never gets talked about, soooo ... 2013-10-08 17:36 … why the syntax for seperation of concerns? 2013-10-08 17:37 as I understand, from a quick read, we seem to mostly agree. but I still don't see a reason to *explicitly* separate code that is non-runnable without syntax-APIs, and code that is non-runnable without I/O APIs, 2013-10-08 17:37 not to mention at all universal code that is applicable-to / reference-able-within *both* 2013-10-08 17:38 well it's like 2013-10-08 17:38 *after* compilation, all that code will be gone 2013-10-08 17:38 *before* compilation, it's all you want to be executed unless it depends on the rest of the unit 2013-10-08 17:38 hmmm 2013-10-08 17:38 and also it's given access that the rest of the code is't 2013-10-08 17:39 hmmm well maybe that can be handled by the dynamic thing 2013-10-08 17:39 huh, impresive 2013-10-08 17:39 impressive 2013-10-08 17:39 so I started with String and [], with this solver 2013-10-08 17:39 in compilation, you track all the graphs that use syntax modification and kill them 2013-10-08 17:39 and now I'm using ByteString and Array, and it's down to 0.25 seconds 2013-10-08 17:39 so there is some static graphey stuff you can do too 2013-10-08 17:39 fuck yeah paws 2013-10-08 17:39 hmmmm 2013-10-08 17:39 joelteon: nice 2013-10-08 17:39 ELLIOTTCABLE: so yeah maybe no separation 2013-10-08 17:39 how do you track them? 2013-10-08 17:39 but also i'm concerned about clarity of code 2013-10-08 17:39 oh, me too 2013-10-08 17:39 and it's searching /usr/share/dict/words which is like 2013-10-08 17:40 hiding it halfway down the page makes it possibly pathological 2013-10-08 17:40 but remember, a *huge huge huge* tenet of Paws is, 2013-10-08 17:40 236,000 words 2013-10-08 17:40 sure sure sure 2013-10-08 17:40 “Give them all of the guns and all of the rope.” 2013-10-08 17:40 and it finds every match in 250ms 2013-10-08 17:40 let things be dangerous sure 2013-10-08 17:40 :p 2013-10-08 17:40 i wonder how fast c++ can do it 2013-10-08 17:40 I want to enforce sanity with community, and documentation, and tooling, and MINASWANETHDWP; not with linguistic restrictions. 2013-10-08 17:41 so, of *course* it's fucking insane to majorly change the syntax halfway down the file. But there's a conceivable reason to; and given the *other* goals (one-file libraries, two-way interaction between functionality-libraries and syntax-modification), it's easy and sane to allow for it, even if it sounds insane to use it. 2013-10-08 17:41 so, allow for it. and then tell people, you'd damn well better know what you're doing, and you don't, so don't. 2013-10-08 17:42 oh cool 2013-10-08 17:42 ELLIOTTCABLE: sure 2013-10-08 17:42 yeah i'm thinking with graphey stuff it's totally fine 2013-10-08 17:42 your IPP idea is now sound in my mind 2013-10-08 17:43 idk i just want to like 2013-10-08 17:43 have all the syntaxey stuff run first 2013-10-08 17:43 well that's all optimization 2013-10-08 17:43 you can have a slightly better compiler that ignores all non-syntax-modifying code until you have run the syntax-modifying code first, or until it's depending on it 2013-10-08 17:44 and I mean if we have string-to-symbol functions that's impossible in the pathological case 2013-10-08 17:44 ugh 2013-10-08 17:44 i guess it's fine 2013-10-08 17:45 to run code in neutered mode, including macros 2013-10-08 17:45 hmmmmm 2013-10-08 17:45 and then compile-and-run code in macro-neutered mode, actually applying the macros you set up 2013-10-08 17:45 which pathological case? 2013-10-08 17:45 ELLIOTTCABLE: like, locals[random_number().to_string().to_symbol() 2013-10-08 17:45 this is all making some sort of dependencies-tracking sound like a better and better idea. 2013-10-08 17:45 realistically: 2013-10-08 17:45 ELLIOTTCABLE: like, locals[random_number().to_string().to_symbol()] = 1234 2013-10-08 17:46 yknow 2013-10-08 17:46 I'm not excited for Paws, except as a small-scale “I'm excited to make this and play with it and interact with cool software developers in the process.”, way 2013-10-08 17:46 what I'm goddamn excited for, is what follows Paws. 2013-10-08 17:46 the Ruby and Haskell and JavaScripts of Paws, instead of Lisp/C 2013-10-08 17:46 I want to see things that take from Paws as Ruby takes from Smalltalk: take the awesome shit, but make it more accessible. 2013-10-08 17:47 there's no string-to-symbol, by the way 2013-10-08 17:48 can only “create” symbols that correspond to a single Unicode unit, at runtime; and then, only once (when exploding the first symbol that comprises that unit) 2013-10-08 17:48 unless I mistake your meaning. 2013-10-08 17:48 but, what I was saying. 2013-10-08 17:48 I don't think I see an elegant way to fit statement-dependencies, or diagonal execution, or whatever you want to call it, into the design I like for Paws, everything we have so far. 2013-10-08 17:49 needs to start from the bottom, and needs to throw away a lot of other marginally interesting, but not crucial, stuff. 2013-10-08 17:49 but the Next Language, something that *does* build on this, with static-analysis capabilities, with some sort of type-inference, with a *bit* less (but not much less) dynamism … 2013-10-08 17:49 dependency tracking can be done at runtime using ghosts 2013-10-08 17:49 and that's fine 2013-10-08 17:49 … while keeping all of the asynch CPS sexiness, and insanities, but insanities-on-meth (static-analysis leveraging insanities!), 2013-10-08 17:49 yeah. 2013-10-08 17:50 but yeah it does eliminate some static analysis re macros 2013-10-08 17:50 which is why i think we should have a separation thing for macros 2013-10-08 17:50 i think we just need to accept that there isn't a good way to make 2-way dependencies for macros 2013-10-08 17:50 you can have macros that depend on pure paws code 2013-10-08 17:50 and you can have paws code that depends on macros 2013-10-08 17:50 eligrey has joined #elliottcable 2013-10-08 17:51 look, it's sephr 2013-10-08 17:51 brb. 2013-10-08 17:52 cloudhead has joined #elliottcable 2013-10-08 17:56 whee 2013-10-08 17:57 I FUCKING LOVE EVERYTHING 2013-10-08 17:59 ELLIOTTCABLE: about to make my first contribution to the rust stdlib 2013-10-08 17:59 * ELLIOTTCABLE grins 2013-10-08 17:59 oh really? what is it? 2013-10-08 17:59 also bbiab 2013-10-08 17:59 ELLIOTTCABLE: well, a function isn't as polymoprhic as it can bre 2013-10-08 17:59 be* 2013-10-08 18:00 polymorphic* :p 2013-10-08 18:00 on the Option type, which is like Haskell's Maybe 2013-10-08 18:00 i'll explain from my next class 2013-10-08 18:00 bye 2013-10-08 18:01 aww k 2013-10-08 18:01 critical hit 2013-10-08 18:18 back 2013-10-08 18:18 in CS 2013-10-08 18:18 :p 2013-10-08 18:19 oh jesus cloning rust takes a while 2013-10-08 18:19 :p 2013-10-08 18:19 not *that* long really 2013-10-08 18:19 :u 2013-10-08 18:19 actually pretty fast 2013-10-08 18:19 cloning llvm takes a long time 2013-10-08 18:19 :p 2013-10-08 18:20 yeah it does 2013-10-08 18:23 laziness is neato 2013-10-08 18:26 ELLIOTTCABLE: made a pull request! 2013-10-08 18:26 :D 2013-10-08 18:27 you matter 2013-10-08 18:28 literally my first pull request of all time 2013-10-08 18:28 besides maybe like making a game with friends or some shit that doesn't count 2013-10-08 18:28 word 2013-10-08 18:31 ELLIOTTCABLE: often about to take a shower and end up leaning over chair typing in chat or code, but never ever pants-off to shit, because i abide by a strict rule that the pants only come off after the bathroom door is locked 2013-10-08 18:35 fwg has quit [Ping timeout: 245 seconds] 2013-10-08 18:40 ok, so i'm writing C++ for the first time ever 2013-10-08 18:40 this is really weird 2013-10-08 18:40 REALLY weird 2013-10-08 18:41 joelteon: haha finally popped yr cherry eh? 2013-10-08 18:41 what're you writing? 2013-10-08 18:41 i'm writing my solver in c++ now 2013-10-08 18:41 because haskell is 22 times faster than rust 2013-10-08 18:41 i want to see how fast cpp is 2013-10-08 18:42 probs pretty fast 2013-10-08 18:43 haskell is just so intuitive and c++ feels really weird 2013-10-08 18:44 joelteon: agreed 2013-10-08 18:44 REALLY weird 2013-10-08 18:45 haha yeah 2013-10-08 18:45 oh well 2013-10-08 18:45 and no type inference 2013-10-08 18:45 learning haskell to the point where it's what your brain thinks in 2013-10-08 18:45 is *great* 2013-10-08 18:45 well i mean there is 2013-10-08 18:45 in the new c++ 2013-10-08 18:45 well it's because function definition is so easy 2013-10-08 18:45 auto x = 3; 2013-10-08 18:45 it doesn't even feel like function definition 2013-10-08 18:46 it feels like writing a spec 2013-10-08 18:49 your first pull-request evaaarrr? 2013-10-08 18:49 impressive :D 2013-10-08 18:49 wish I understood haskell ddis 2013-10-08 18:52 ELLIOTTCABLE: srsly let me teach u haskl 2013-10-08 18:52 ddis? 2013-10-08 18:53 and it kinda feels like C anyway 2013-10-08 18:53 while(!myfile.eof()) { getline(myfile, line); lines.push_back(line); } 2013-10-08 18:53 like wtf 2013-10-08 18:53 why is there an "out" param in getline 2013-10-08 18:53 who designed this 2013-10-08 18:54 joelteon: well, if it returned a value, getline would have to allocate memory 2013-10-08 18:54 yeah 2013-10-08 18:54 ok 2013-10-08 18:54 :( 2013-10-08 18:54 joelteon: this way, you can manage your own memory, which is paramount 2013-10-08 18:54 computers are stupid 2013-10-08 18:54 yeah :( 2013-10-08 18:54 well, use cin 2013-10-08 18:55 it's much funner even though iostreams are kinda bullshit 2013-10-08 18:55 i'm reading a file stream 2013-10-08 18:55 watching http://vimeo.com/68470326 2013-10-08 18:55 all the same 2013-10-08 18:55 don't use getline 2013-10-08 18:55 not stdin 2013-10-08 18:55 use a stream 2013-10-08 18:55 they work on fiels 2013-10-08 18:55 files 2013-10-08 18:56 how do you make a stream 2013-10-08 18:57 http://www.cplusplus.com/doc/tutorial/files/ 2013-10-08 18:57 ifstream file; 2013-10-08 18:57 i'm USING an ifstream 2013-10-08 18:57 ifstream.open("file.txt"); 2013-10-08 18:57 am i retarded 2013-10-08 18:57 wait file.open :p 2013-10-08 18:57 file >> variable 2013-10-08 18:57 i don't see how to read a line 2013-10-08 18:57 http://www.cplusplus.com/reference/istream/istream/operator%3E%3E/ 2013-10-08 18:58 oh lord 2013-10-08 18:58 wait i guess just use getline 2013-10-08 18:58 but use std::strings 2013-10-08 18:58 >> doesn't do strings 2013-10-08 18:58 joelteon: SyntaxError: Unexpected token ILLEGAL 2013-10-08 18:58 but i guess you probably are 2013-10-08 18:58 and I'm using std::string 2013-10-08 18:59 oh god 2013-10-08 18:59 fuck c++ 2013-10-08 18:59 anyway 2013-10-08 18:59 this video. 2013-10-08 18:59 right in the feels. 2013-10-08 18:59 THIS. all of THIS. 2013-10-08 19:03 what? 2013-10-08 19:03 how do you make a thing printable 2013-10-08 19:03 in Haskell I'd make it an instance of Show 2013-10-08 19:05 joelteon: just give it a to_string method and call it yourself 2013-10-08 19:05 joelteon: or you can overload operator<< on ostream for your specific type 2013-10-08 19:06 eithe rway 2013-10-08 19:11 hi 2013-10-08 19:11 ELLIOTTCABLE: hi! 2013-10-08 19:11 hi 2013-10-08 19:11 cuttle: hi! 2013-10-08 19:12 quite honestly, rust's reference system is really becoming frustrating 2013-10-08 19:15 so, where were we 2013-10-08 19:16 paws? 2013-10-08 19:19 prophile_ is now known as prophile 2013-10-08 19:21 yes. 2013-10-08 19:21 prophile: hi! 2013-10-08 19:21 vil! 2013-10-08 19:21 vil: hi. 2013-10-08 19:21 * ELLIOTTCABLE cuttle: yes. 2013-10-08 19:21 let's. do this. 2013-10-08 19:21 hi! 2013-10-08 19:21 since I'm here, and my mind is well-and-thoroughly on Paws-related stuff, 2013-10-08 19:21 any big issues to bring up? something we can chat about at a high-level right now? 2013-10-08 19:22 I feel like there's a bunch of things I've told y'all to hold off on bringing up, or arguing for. wish I'd kept a list. 2013-10-08 19:27 I really don't have anything 2013-10-08 19:27 I've been so in-and-out the whole time that I can barely remember the state of things 2013-10-08 19:28 that's unfortunate 2013-10-08 19:28 was asking cuttle, mostly, since we're on the topic 2013-10-08 19:28 vil: you should re-learn things. work with alexgordon and I on the spec? I'd love some more eyes. 2013-10-08 19:29 I really don't have time to do anything meaningful 2013-10-08 19:29 I want to 2013-10-08 19:29 but school and Conduit 2013-10-08 19:29 mostly school 2013-10-08 19:29 aw 2013-10-08 19:29 Conduit? 2013-10-08 19:29 my app 2013-10-08 19:30 I want it released by Christmas so that I have a source of income 2013-10-08 19:30 it's been a month since I even had time to work on it 2013-10-08 19:30 did some whiteboard work last night finally 2013-10-08 19:31 it's actually functional, I just have to put it in a prettier box 2013-10-08 19:31 and clean up the plugin structure a bit 2013-10-08 19:35 jesus this code is getting really fucking ugly 2013-10-08 19:35 cuttle: which code? 2013-10-08 19:35 paws.rs parser 2013-10-08 19:35 * ELLIOTTCABLE laugh 2013-10-08 19:35 ick. 2013-10-08 19:35 going half-measure on parser combinators is not fun in rust like it is in js 2013-10-08 19:35 i need to either go full-measure or not at all 2013-10-08 19:35 ELLIOTTCABLE: how far are you in brba again? 2013-10-08 19:40 what? 2013-10-08 19:40 brba? 2013-10-08 19:40 oh. idfk. behind. 2013-10-08 19:40 starting over and watching from the start, probably. 2013-10-08 19:42 ah ok 2013-10-08 19:43 ugh. 2013-10-08 19:43 I'm so bad at computer. 2013-10-08 19:43 done with this shit, re: woof. 2013-10-08 19:47 know that feel 2013-10-08 19:53 cuttle: right, but can you make something printable automatically 2013-10-08 19:56 guess not 2013-10-08 19:56 jesus i'm spoiled 2013-10-08 20:18 what 2013-10-08 20:18 when did this happen 2013-10-08 20:18 *why* did this happen 2013-10-08 20:18 https://github.com/ELLIOTTCABLE/Paws.js/blob/Master/Executables/paws.js 2013-10-08 20:20 joelteon: well, overloading operator<< is about the best you can do 2013-10-08 20:20 it does it for a lot of different places 2013-10-08 20:21 any streams, which is c++'s way of handling strings 2013-10-08 20:21 there's stringstream for concatenation and iostream for i/o 2013-10-08 20:21 also, there's no option type 2013-10-08 20:21 in the stdlib 2013-10-08 20:21 that really grinds my gears 2013-10-08 20:22 just gonna admit it 2013-10-08 20:22 yeah, you have null pointers instead 2013-10-08 20:22 ;) 2013-10-08 20:22 yeah 2013-10-08 20:22 i sure do 2013-10-08 20:22 also there's boost::optional but do you really want to use boost 2013-10-08 20:22 no? 2013-10-08 20:22 probably not 2013-10-08 20:23 probably not :p 2013-10-08 20:23 is there a vector append operation 2013-10-08 20:24 push_back 2013-10-08 20:24 yeah, but for another vectorrrrr 2013-10-08 20:25 oh 2013-10-08 20:26 use insert and iterators 2013-10-08 20:26 http://stackoverflow.com/questions/201718/concatenating-two-stl-vectors 2013-10-08 20:28 oh ofc 2013-10-08 20:28 easy 2013-10-08 20:29 lol c++ sucks 2013-10-08 20:29 lol 2013-10-08 20:29 is there a map function for vector 2013-10-08 20:30 can I add methods to vector 2013-10-08 20:30 you use a for loop and iterators 2013-10-08 20:30 you cannot add methods 2013-10-08 20:30 jesus 2013-10-08 20:30 this language sucks 2013-10-08 20:30 actually 2013-10-08 20:30 in c++0x 2013-10-08 20:30 there are lambdas and map 2013-10-08 20:31 and also type inference 2013-10-08 20:31 c++11* 2013-10-08 20:31 are you using that? 2013-10-08 20:31 it's just a compiler flag 2013-10-08 20:31 yeah, i am 2013-10-08 20:32 ok then yeah you have map and lambdas and stuff 2013-10-08 20:32 where's map 2013-10-08 20:32 how to documentations 2013-10-08 20:32 if I google map it returns std::map 2013-10-08 20:34 oh that's a data structure haha 2013-10-08 20:34 yeah 2013-10-08 20:34 i know 2013-10-08 20:34 that's why i'm asking 2013-10-08 20:39 oh I guess there isn't a map function 2013-10-08 20:39 there are ways to do it pretty concisely though 2013-10-08 20:39 like transform() 2013-10-08 20:39 I guess 2013-10-08 20:39 everything has its downsides though 2013-10-08 20:41 like everything in c++ :p 2013-10-08 20:41 "candidate template ignored: failed template argument deduction" 2013-10-08 20:42 cuttle: https://gist.github.com/6891278 2013-10-08 20:42 take a gander at that 2013-10-08 20:42 is this the right way to write it? function)> 2013-10-08 20:42 no idea 2013-10-08 20:42 it's not complaining 2013-10-08 20:42 shouldn't it be 2013-10-08 20:42 function> 2013-10-08 20:43 try that 2013-10-08 20:43 "too many template arguments for class template 'function'" 2013-10-08 20:43 oh never mind you had it right 2013-10-08 20:43 ugh 2013-10-08 20:43 oh noooo 2013-10-08 20:43 i had it backwards 2013-10-08 20:43 but yeah 2013-10-08 20:43 you did 2013-10-08 20:44 it should be V(vector) 2013-10-08 20:44 wait no 2013-10-08 20:44 shouldn't it be vector(T) 2013-10-08 20:44 vector(v) 2013-10-08 20:44 but the return type is vector 2013-10-08 20:44 uggghg no yeah you're right 2013-10-08 20:44 vector(T) 2013-10-08 20:45 https://gist.github.com/joelteon/6891278 2013-10-08 20:45 why is the argument deduction failing 2013-10-08 20:46 i'll ask ##c++ 2013-10-08 20:46 this is gonna be a lot of fun 2013-10-08 20:50 well they're not happy 2013-10-08 20:55 wow 2013-10-08 20:55 either C++ type inference is really hard, or clang and gcc are really dumb 2013-10-08 20:56 this is a complicated language 2013-10-08 20:56 ughghghghhhhh 2013-10-08 20:56 going through µpaws.js, figuring out what isn't copied, yet. 2013-10-08 20:56 hi, cuttle, hi, cuttle, hi, cuttle 2013-10-08 20:57 hi ELLIOTTCABLE 2013-10-08 20:59 hi cuttle 2013-10-08 20:59 help me paws.js 2013-10-08 20:59 aight 2013-10-08 20:59 going through, figuring out what I haven't done on the copy-types+ g-branch 2013-10-08 20:59 then I've gotta squash-down, merge into master. 2013-10-08 20:59 so, that's nearly done, I think. 2013-10-08 21:00 depending on if there's anything massive I missed. 2013-10-08 21:00 what I need, soon: 2013-10-08 21:00 - flesh out test-coverage for the code I've been copying from µPaws. 2013-10-08 21:00 I've been thoroughly testing all the *important* stuff, but coverage is far from complete. Simple but complete tests for all the untested little aspects would be excellent. 2013-10-08 21:00 - moving in on the reactor 2013-10-08 21:01 all I've copied is the *types*, I've stayed away from anything doing executing, because I vaguely want to rearchitect what µPaws does, slightly. 2013-10-08 21:04 cuttle: is my code remotely approachable for you? it's reallllly simple coffeescript. Or I've tried to keep it thus. 2013-10-08 21:04 ELLIOTTCABLE: where? 2013-10-08 21:05 er, 2013-10-08 21:05 * ELLIOTTCABLE ell.io/tt$Paws.js 2013-10-08 21:10 oh, no advance() yet 2013-10-08 21:10 but I'm wanting that to be a part of the reactor 2013-10-08 21:13 83% coverage, not bad, I suppose 2013-10-08 21:13 https://coveralls.io/r/ELLIOTTCABLE/Paws.js 2013-10-08 21:14 aight 2013-10-08 21:15 mmmm 2013-10-08 21:32 12:53 #elliottcable: <+joelteon> devyn: my first use of sudo -e today 2013-10-08 21:32 because these things must be announced, right? 2013-10-08 21:32 hi, devyn 2013-10-08 21:32 hola 2013-10-08 21:34 yeah, they must be 2013-10-08 21:36 ELLIOTTCABLE: how are you 2013-10-08 21:36 I am good. Ish. You? 2013-10-08 21:36 I'm working on paws.js. 2013-10-08 21:36 micah's successfully gotten me excited for Paws again, which is cool. 2013-10-08 21:36 that's good :) 2013-10-08 21:38 I get to use gdb today 2013-10-08 21:40 devyn: Paws with me. Paws with me. Paws with me. I want friends, I want excitement, I want to *finish* something.-feels. 2013-10-08 21:46 man I'm so behind on Paws it probably wouldn't be worth it 2013-10-08 21:46 I also have a three hour class in about an hour 2013-10-08 21:49 01[13Paws.js01] 15ELLIOTTCABLE pushed 8 new commits to 06copy-types+: 02https://github.com/ELLIOTTCABLE/Paws.js/compare/4da663d099e4...7bdddb974e4d 2013-10-08 21:49 13Paws.js/06copy-types+ 143bb6fab 15elliottcable: + Label#clone tests 2013-10-08 21:49 13Paws.js/06copy-types+ 14a2bb150 15elliottcable: (- meta fix) Excluding additional.coffee from test-coverage 2013-10-08 21:49 13Paws.js/06copy-types+ 145d9cea6 15elliottcable: + Thing#compare test 2013-10-08 21:49 devyn: then not right this minute. but let me catch you up? :D 2013-10-08 21:50 devyn: i could explain paws to you very simply 2013-10-08 21:52 it's been pretty distilled into what makes it special 2013-10-08 21:55 * ELLIOTTCABLE nods 2013-10-08 21:55 cuttle says it well. there's not a lot left to Paws, anymore. 2013-10-08 21:55 or rather, not a lot left that's not been either A) deferred into some section of the language “that we'll deal with later” (insanities/error-handling, distribution, syntax/IPP), B) cut out entirely, or C) distilled down into something extremely simple 2013-10-08 21:57 PragCypher has quit [Quit: Leaving] 2013-10-08 21:57 01[13Paws.js01] 15ELLIOTTCABLE 04force-pushed 06copy-types from 149fbcbcd to 14a76b14a: 02https://github.com/ELLIOTTCABLE/Paws.js/commits/copy-types 2013-10-08 21:57 ELLIOTTCABLE: and i mean the deferred stuff is all pretty simple too 2013-10-08 21:57 distribution is by far the most vague 2013-10-08 21:57 cool. types are now fully merged into master. 2013-10-08 21:58 now I'm gonn start on a little refactor that takes into account a lot of what alexgordon and I have done, as well as a couple things from you. 2013-10-08 21:58 (basically, re-naming things to not be confusing, as much as possible. Thing -> PawsObject, Execution -> Continuation, Label -> Symbol …) 2013-10-08 21:58 do not call execution continuation 2013-10-08 21:58 that is a misuse of continuation 2013-10-08 21:59 naaaaaaaah, distribution is by far the least *vague* 2013-10-08 21:59 it's just the most *difficult* 2013-10-08 21:59 well yeah i mean it's the one we've least worked on :p 2013-10-08 21:59 distribution isn't something where I can be all “I'm Elliott! Preformance doesn't matter! Hahahah MAGIC!” 2013-10-08 21:59 call execution function or method or block or whatever 2013-10-08 21:59 but not continuation 2013-10-08 21:59 or “This is Paws! I can just make it *cool*, and it won't *matter* if it's good! Hahahaha MAGIC!” 2013-10-08 21:59 because, whenever you *have* continuations, they're not a *thing*. they're a *role* a function plays 2013-10-08 21:59 I'll have to actually learn hardcore networking optimization stuff, and figure out how to optimize the data-types for over-the-wire transfer. 2013-10-08 21:59 so calling a data type Continuation is very much not in line with established terminology 2013-10-08 22:00 the only *interesting*, and undefined stuff, is *still* mostly of the stuff-Elliott-doesn't-know, but-needs-to-learn variety 2013-10-08 22:00 hm, k 2013-10-08 22:00 block doesn't work very well /= 2013-10-08 22:00 will figure out later. 2013-10-08 22:01 distribution is pretty easy to cover, verbally. implementing it, integrating it into the design, less-so: 2013-10-08 22:01 implementations provide ‘extensions.’ 2013-10-08 22:01 for instance, uhhhh, `string clone` might be an extension. 2013-10-08 22:02 if other implementations connected to the network ‘running’ a Paws program *don't* have that extension, then they connect to that instance that *does* have it. that instance becomes a static point in the graph. 2013-10-08 22:02 well i mean we should be careful about merging scopds 2013-10-08 22:02 scopes 2013-10-08 22:03 because a big benefit of both ownership and distribution is that it separates what can affect what 2013-10-08 22:03 now, some sort of computery-sciency-magicy-overy-elliott'sy-heady magic, we grade various executions as they are cloned over and over (this only matters for tight-loop stuff), finding out what interfaces they continually require access too, 2013-10-08 22:03 and then we try to ‘move’ those executions to a home on an implementation/instance “closer” to the implementation/instance that has the APIs they need. 2013-10-08 22:03 that's the only *interesting* aspect of distribution in my head. 2013-10-08 22:03 * cuttle nods 2013-10-08 22:04 that's more operational 2013-10-08 22:04 other than that, it's just a matter of sending inter-Unit requests over-the-wire in the most efficient way possible. 2013-10-08 22:04 we should define what paws code itself sees as a result of distribution 2013-10-08 22:04 boring, already-solved stuff that probably just needs me to learn a lot. 2013-10-08 22:04 oh, nothing, by definition. 2013-10-08 22:05 I've always intended that distribution be indistinguishable from a program running in a single, massively parallel, implementation that has *all* of the APIs that *any* of the implementations provide. 2013-10-08 22:05 meaning, as soon as a browser running Paws joins the federation, *all* code running on that federation of implementations has a DOM-extension of APIs available to it, transparently. 2013-10-08 22:06 whether the code is actually *running* in the browser, or on an HTTP server, or in a database interface, must be invisible to the code. otherwise what's the point of distributing the code across those implementations? 2013-10-08 22:07 well it's a very leaky abstraction 2013-10-08 22:07 you need to be able to see *some* of it 2013-10-08 22:07 i mean it should all be in behind the scenes hooks 2013-10-08 22:07 so you can write beautiful code and then write separate hook code to improve it 2013-10-08 22:07 but like it shouldn't be hermetically sealed away 2013-10-08 22:08 hm 2013-10-08 22:08 the only reason I could ever think of to allow *any* way of differentiating, 2013-10-08 22:08 was security-stuff. 2013-10-08 22:08 i.e. ensuring that secured data never leaves a particular secure environment in an insecure fashion 2013-10-08 22:09 “keep the unencrypted form of password X stored in the secure-implementation; *always* make requests to the function that provides an encrypted version of it travel over the wire” 2013-10-08 22:09 well also 2013-10-08 22:09 broken connections 2013-10-08 22:09 ELLIOTTCABLE: well that's good 2013-10-08 22:09 that's obv an issue 2013-10-08 22:09 but I want to solve that at the networking layer, not the linguistic layer. 2013-10-08 22:10 i.e. a combination of redundancy-of-data, caching, and reconciling with insanitie 2013-10-08 22:10 insanities* 2013-10-08 22:10 if connection is lost, in the huge majority of cases, I don't want the code to know/care. 2013-10-08 22:10 like i mean if the plug is pulled from the wall 2013-10-08 22:10 hm? 2013-10-08 22:10 there is no way to solve it and you want to obviously minimize data loss etc. 2013-10-08 22:12 er, confus™ 2013-10-08 22:12 elaborate 2013-10-08 22:12 like 2013-10-08 22:12 you want the code to be able to know if the connection is irrepairably lost 2013-10-08 22:13 liek 2013-10-08 22:13 erlang's philosophy 2013-10-08 22:13 is all about knowing when something fails, and making that as much of a non-event as possible. 2013-10-08 22:13 by restarting shit 2013-10-08 22:13 so like you should be able to know about failures 2013-10-08 22:15 it's the same reason you want hashes instead of functions 2013-10-08 22:15 you don't want hermetically sealed abstractions if they can fail 2013-10-08 22:15 hm 2013-10-08 22:17 jedivulcan has quit [Ping timeout: 240 seconds] 2013-10-08 22:18 well, that's another thing that's easy enough to change at a later date. 2013-10-08 22:18 one of those things that doesn't affect the language-design, the way Paws is set up. Just whether or not we open up particular APIs. Unless I'm missing something. 2013-10-08 22:19 jvulc|znc has joined #elliottcable 2013-10-08 22:20 yeah pretty much 2013-10-08 22:21 ok, i think i'm an idiot 2013-10-08 22:21 the C++ version of my pathfinding algorithm takes 0.81s 2013-10-08 22:21 that was a waste of several hours 2013-10-08 22:22 joelteon: well i mean c++ is not automatically faster than haskell 2013-10-08 22:22 right 2013-10-08 22:22 joelteon: like, c++ just has the potential to be automatically faster 2013-10-08 22:22 but it's 3x slower 2013-10-08 22:22 and not in the case of parallelization either 2013-10-08 22:22 it's much harder to parallelize 2013-10-08 22:22 and you have to work to get to fast 2013-10-08 22:22 sometimes letting ghc do it for you is way easier 2013-10-08 22:24 yeah i'm trying to figure out how i could improve the performance 2013-10-08 22:29 well are you using flatmap 2013-10-08 22:29 because stop that 2013-10-08 22:29 haskell does it pretty well 2013-10-08 22:30 well c++ doesn't 2013-10-08 22:31 there's a reason everyone in ##c++'s first reaction to that was disapproval :p 2013-10-08 22:32 because c++ is bad for type inference 2013-10-08 22:32 :V 2013-10-08 22:35 well also because you're doing lots of slow things 2013-10-08 22:35 oh 2013-10-08 22:35 like copying to a vector and then copying from that vector to another vector 2013-10-08 22:36 do things in-place in c++ as much as you can 2013-10-08 22:37 oh 2013-10-08 22:42 hi 2013-10-08 22:42 ELLIOTTCABLE: hi! 2013-10-08 22:56 hi 2013-10-08 22:56 cuttle: hi! 2013-10-08 23:26 joelteon: what's the freaking vec length function in rust 2013-10-08 23:41 cuttle: len() maybe 2013-10-08 23:51 fwg has joined #elliottcable 2013-10-08 23:51 fwg has quit [Changing host] 2013-10-08 23:51 fwg has joined #elliottcable 2013-10-08 23:55 cuttle: did that work 2013-10-08 23:56 16:56:03 -!- joelteon [~joel@unaffiliated/otters] has left #oftn ["bye"] 2013-10-08 23:56 y 2013-10-08 23:56 -.- 2013-10-08 23:56 because 2013-10-08 23:56 cloudhead has quit [Ping timeout: 248 seconds] 2013-10-08 23:56 the last 25 lines in my scrollback 2013-10-08 23:56 are the channel information, from me parting and joining 2013-10-08 23:57 and i never close weechat excep when i'm rebooting 2013-10-08 23:57 fwg has quit [Ping timeout: 240 seconds] 2013-10-08 23:57 that's why 2013-10-08 23:57 yeah it's not active at the moment because everyone's busy with school 2013-10-08 23:57 the entire channel is well under 30; what do you expect 2013-10-08 23:57 well, it's just like this place, but with more sephr and less ec 2013-10-08 23:57 that's not like 2013-10-08 23:57 very alluring 2013-10-08 23:58 I don't pay attention to it much either but I'm still in it just in case there actually is something interesting 2013-10-08 23:58 but if you insist 2013-10-08 23:58 and not just sephr jerking over the technological singularity 2013-10-08 23:58 is it ever not sephr jerking 2013-10-08 23:58 at the moment, not really 2013-10-08 23:58 and he's jerking to an empty audience too 2013-10-08 23:58 lol 2013-10-08 23:58 lol 2013-10-08 23:58 yeah 2013-10-08 23:59 I need to push my commits more often 2013-10-08 23:59 yeah 2013-10-08 23:59 wanted to work on something and realized that I hadn't pushed about 6 commits and therefore didn't have them on my laptop 2013-10-09 00:00 you know what i hate is forgetting to push it to github and accidentally wiping the entire directory 2013-10-09 00:00 granted it doesn't happen oten 2013-10-09 00:00 often 2013-10-09 00:00 I've… never done that 2013-10-09 00:00 ._. 2013-10-09 00:01 do you not keep all of your projects organized or something? 2013-10-09 00:01 no 2013-10-09 00:01 my structure is ~/Projects// 2013-10-09 00:01 across all of my systems 2013-10-09 00:01 mine is in ~/.dev 2013-10-09 00:01 wait, you organize by username? 2013-10-09 00:01 da fuk 2013-10-09 00:02 keeps all of the random shit I git clone from mixing in with actually important projects 2013-10-09 00:02 huh, ok 2013-10-09 00:02 it works really well 2013-10-09 00:02 :p 2013-10-09 00:02 brb 2013-10-09 00:02 haxg ame 2013-10-09 00:02 lol 2013-10-09 00:02 lol 2013-10-09 00:03 fwg has joined #elliottcable 2013-10-09 00:15 ok back 2013-10-09 00:15 that was the shittiest game i've ever played 2013-10-09 00:15 alexgordon has joined #elliottcable 2013-10-09 00:17 yorick has quit [Read error: Connection reset by peer] 2013-10-09 00:18 god damn it 2013-10-09 00:19 fwg has quit [Ping timeout: 264 seconds] 2013-10-09 00:42 Sgeo has joined #elliottcable 2013-10-09 00:45 you know 2013-10-09 00:45 it might be an idea to index my projects by username 2013-10-09 00:48 devyn: so you don't index by language? 2013-10-09 02:08 Sorella has quit [Quit: Ex-Chat] 2013-10-09 03:22 sharkbot has quit [*.net *.split] 2013-10-09 03:22 ELLIOTTCABLE has quit [*.net *.split] 2013-10-09 03:50 ELLIOTTCABLE has joined #elliottcable 2013-10-09 04:05 jvulc has quit [Ping timeout: 248 seconds] 2013-10-09 04:09 devyn: oftn is like, 100% silly 2013-10-09 04:15 cuttle! 2013-10-09 04:15 alexgordon: how do I add a commit to a pull request? 2013-10-09 04:15 no idea 2013-10-09 04:19 ELLIOTTCABLE: jeannicolas says you can come up with a sleep schedule for me 2013-10-09 04:21 got damnit my first pull request was bad 2013-10-09 04:21 I have to fix it 2013-10-09 04:23 ok fixed it 2013-10-09 04:40 ok 2013-10-09 04:40 so 2013-10-09 04:40 there are specifically 2013-10-09 04:40 5949 characters that can be a haskell operator 2013-10-09 04:44 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-09 04:58 alexgordon has joined #elliottcable 2013-10-09 05:02 alexgordon has quit [Client Quit] 2013-10-09 05:03 haha 2013-10-09 05:03 joelteon: does it support unicode like agda? 2013-10-09 05:14 yeah 2013-10-09 05:15 cuttle: here's a vim regex that matches any valid haskell operator: https://gist.github.com/anonymous/b9481edc443aa2efcda6/raw/692217f2c9aa99b320e3e4b4ffd2b18dfb3d491c/vim.txt 2013-10-09 05:15 sweet 2013-10-09 05:16 well, I mean, that's not including qualified names 2013-10-09 05:16 ohshit 2013-10-09 05:16 but that's a different issue 2013-10-09 05:16 right 2013-10-09 05:16 here's a better version https://gist.github.com/anonymous/4de97508c9362384f19d/raw/0bce8768c75392f9eb123441a648ee7ed70fe85a/vim.txt 2013-10-09 05:26 eligrey has quit [Quit: Leaving] 2013-10-09 05:28 PAJAMA SAAAAAAM 2013-10-09 05:36 okay 2013-10-09 05:36 sooooo 2013-10-09 05:36 operators with qualified names 2013-10-09 05:36 the regex is 17,000 characters long 2013-10-09 06:01 jvulc has joined #elliottcable 2013-10-09 06:05 oh, it's only 15000 characters now 2013-10-09 07:14 joelteon: discover unicode character groups 2013-10-09 07:14 http://www.geocities.jp/kosako3/oniguruma/doc/RE.txt 2013-10-09 07:15 \p{P} or something 2013-10-09 07:56 ELLIOTTCABLE: you've said several days ago something along the lines of "programmers mustn't design languages; UI designers should" 2013-10-09 07:58 my initial knee-jerk reaction would be "just fuck off", because I realized that quite likely that would lead to a bad case of iPhone: a product which does basics very well, and non-basics doesn't. 2013-10-09 07:59 but then I understood that this peculiarity, which I despise, certainly was an express goal (which then was cargo-culted where it belonged and where it didn't) 2013-10-09 08:00 I think you know it already, though 2013-10-09 08:00 I wonder if it's possible to describe X in "X to languages is what Sublime Text is to editors" 2013-10-09 08:00 does that even make any sense 2013-10-09 08:07 fwg has joined #elliottcable 2013-10-09 08:14 alexgordon: oh really? 2013-10-09 08:39 whitequark: well sublime text just seems like a kinda nice editor, not like something revolutionary or anything 2013-10-09 08:41 whitequark: I'm glad we understand eachother well (= 2013-10-09 08:45 hi, cuttle 2013-10-09 08:46 devyn, joelteon: I have a ~/Code folder, with ~/Code/Source being where all the shit I contribute less than two patches to goes, and ~/Code being where anything I contribute more than two patches to, goes 2013-10-09 08:47 ie. ~/Code's code I'm making, ~/Code/Source's code I'm using. 2013-10-09 08:47 other than that, the only organization is A) by modification-time, and B) a special ~/Code/Paws folder, in which are a dozen or so Paws projects 2013-10-09 08:49 _whitelogger has joined #elliottcable 2013-10-09 08:51 ELLIOTTCABLE: sarcasm? :) 2013-10-09 08:51 Nope. 2013-10-09 08:51 cuttle: I think it hits a local optimum 2013-10-09 08:51 which is not something you do accidentally. 2013-10-09 08:51 I disagree mildly with the premise, but nonetheless, you've pretty much nailed me, and what I care about, on the cuff. 2013-10-09 08:51 You're just wrong in your assumption that it's silly, or doesn't matter. 2013-10-09 08:52 As, you know, evidenced by the insane popularity of the iPhone, and how much it's changed each and every owners' life. 2013-10-09 08:52 uh, I totally did not mean that it doesn't matter 2013-10-09 08:52 fwg has quit [Ping timeout: 240 seconds] 2013-10-09 08:52 you just said exactly why 2013-10-09 08:52 * ELLIOTTCABLE nods 2013-10-09 08:52 sorry, s/doesn't matter/despise/, then. 2013-10-09 08:52 We're very similar, you and I. Just *opposite*. 2013-10-09 08:52 If you graphed us out and mirrored us, we'd probably be the same person. 2013-10-09 08:52 well 2013-10-09 08:53 I don't despise design, or UI design, per se. 2013-10-09 08:53 I despise a particular flavor of it, made (and excellently so) to appeal to a mass consumer. 2013-10-09 08:53 it's a problem which was solved very well, it simply was a wrong (if you ask me) problem. 2013-10-09 08:53 which is so very, very backwards. All that should matter is whether or not a product helps the mass consumer. 2013-10-09 08:54 fwg has joined #elliottcable 2013-10-09 08:54 quantity over quality, sort of 2013-10-09 08:54 not at all. 2013-10-09 08:54 Can't get quantity *without* quality. 2013-10-09 08:55 It may not be quality that *you care about*, but it's definitely got bags 'n fuckin' bags of quality. 2013-10-09 08:55 It's got quality oozing out its anus and eardrums. 2013-10-09 08:55 and I agree with that? 2013-10-09 08:56 what I don't agree with, is yours/Apple's definition of "helps", and that quantity, as itself, is something to be attracted to. 2013-10-09 08:56 you'll have to elaborate on that 2013-10-09 08:56 as in, "it helps consumer" is not the same as "makes consumer give you shitloads of money" 2013-10-09 08:57 or, said another way 2013-10-09 08:57 a consumer is happy when a product solves his problems, so on one hand, a product which solves the problems very well is good 2013-10-09 08:58 but what's better is to avoid problems in the first place 2013-10-09 08:59 This article is oh-so-interesting. 2013-10-09 08:59 as per the other part 2013-10-09 08:59 I love this guy *so much*. He takes topics that are inherently boring (at least, to me) and makes them so very accessible and downright interesting. 2013-10-09 08:59 http://acko.net/blog/animate-your-way-to-glory/ 2013-10-09 08:59 “Then we interpolate linearly between the last two values until we run out of physics again.” 2013-10-09 09:00 until we run out of physics :D 2013-10-09 09:01 if you're a publicly traded company, it makes sense to have a product appealing to as much people as possible as your top priority 2013-10-09 09:01 but it doesn't have any intrinsic value 2013-10-09 09:04 What the *fuck* is “Verlet integration.” 2013-10-09 09:04 Like, he calls it magical, and it damn-well seems like it is. 2013-10-09 09:04 alexgordon WAKE UP AND TEACH ME MATSH. 2013-10-09 09:05 I think your problem is in your concept of intrinsic value, whitequark 2013-10-09 09:05 A product that is worth X dollars to A person, is generally worth X dollars because it's X-dollars-of-useful to them. 2013-10-09 09:05 (We can argue all day about marketing and what the fuck ever, not going there.) 2013-10-09 09:06 I didn't say that intrinsic value exists at all 2013-10-09 09:06 An iPhone useful to your grandmother because it has a half-arsed voice-activation service, *that nonetheless works for her*, is better than an awesomePhone that has a Grand Time/Space Differentiator that can Teleport her to China™, 2013-10-09 09:06 very well 2013-10-09 09:07 is better than an awesomePhone with a *perfect* voice-activation service that nonetheless doesn't have a U/X inherently simple and understandable for her to use, 2013-10-09 09:07 is better than an awesomePhone with an unbeatable amazing perfect U/X that doesn't have a family-member to walk her through her first days with it ... 2013-10-09 09:07 … etcetcetcetcetc 2013-10-09 09:07 that's phones, though. 2013-10-09 09:07 no, that's everything. 2013-10-09 09:08 we have specialization for a reason 2013-10-09 09:08 you are not a plumber. your grandmother is not, and should not, be a programmer 2013-10-09 09:08 product M is worth X dollars to person A, because it is of α usefulness to person A. 2013-10-09 09:08 and the important insight here is that α is *directly correspondant* to X. 2013-10-09 09:08 thus, a product worth $100 to 1,000,000 people, has more *intrinisic value* as you put it, in the world, to our society, to our species, 2013-10-09 09:09 than a product so amazing and excellent that it's worth $10,000,000 to one person. 2013-10-09 09:09 for a product to be worth something to a person, that person need not buy the product directly. 2013-10-09 09:09 or, more realistically, a product worth $5,000, to 10,000 people. 2013-10-09 09:10 and that, is exactly where I disagree. 2013-10-09 09:10 the argument that works for plumbers absolutely does not work for programmers, 2013-10-09 09:10 because your grandmother is *already* a programmer. 2013-10-09 09:10 she logs in and manipulates her Facebook privacy settings. 2013-10-09 09:10 she arranges mail-forwarding between her old Hotmail, and her Gmail accounts. 2013-10-09 09:11 she configures her iPhone to switch to do-not-disturb automatically at 11:00PM. 2013-10-09 09:11 (probably not, lol, but it doesn't matter) 2013-10-09 09:11 lol 2013-10-09 09:11 This is 2013, computers are *everywhere*, and **everybody is a programmer**. 2013-10-09 09:11 Anybody who is *not* a programmer, is the equivalent of somebody who is not literate: they are, while sadly, *very realistically*, pointless in the modern world. 2013-10-09 09:12 They are fit, *maybe*, to milk some cows. Preform the equivalent of what, two centuries ago, they would have termed ‘menial labour.’ 2013-10-09 09:12 Everybody who touches a computer or swipes on a smartphone; everyone who *drives a modern car* or *changes the family's thermostat* is a programmer. 2013-10-09 09:12 yes yes, enough with that rhetoric, I get it 2013-10-09 09:12 And what we do, in making computers easier to control, is The Only Thing That Matters, except A) teaching people the steps to *get* here, and B) getting into space. 2013-10-09 09:13 * ELLIOTTCABLE shrugs 2013-10-09 09:13 ¯\(º_o)/¯ 2013-10-09 09:13 it's still wrong though, because it's just stretching the terminology, or, if you want 2013-10-09 09:13 because "programmers", as you treat them, is an incredibly wide group of people, much, much wider than the group of people using phones (I'll elaborate on that), 2013-10-09 09:13 and it doesn't really make sense to judge them as a single group, at all. 2013-10-09 09:14 you have to divide this spectrum into lesser, more useful chunks. 2013-10-09 09:15 the lowest end of it is, arguably, pretty well-researched and known. does the rules established there apply further up? I don't really know, I think no, and I'm very certainly not taking it for granted. 2013-10-09 09:15 … just as phone-users divides into everyday smartphone users, power-smartphone-users, grandma-smartphone-users … 2013-10-09 09:15 yorick has joined #elliottcable 2013-10-09 09:16 the complexity of what you can do with a phone is limited by, well, it being a phone. the complexity of programming, in general, is not limited at all. 2013-10-09 09:17 it's like saying that we know such-and-such rules of making good metal bars, and extending that to entirety of the engineering. 2013-10-09 09:17 it's *not* limited. 2013-10-09 09:17 it's only limited by what *needs* to be done. 2013-10-09 09:17 And I argue that the subset of the population that *needs* a phone capable of launching rockets to the moon is very very small, 2013-10-09 09:17 and a subset that is currently unfilled. 2013-10-09 09:17 someday, it will probably be filled. 2013-10-09 09:18 the biggest problem with programming as a whole (as I was treating it earlier, in terms of *interactions with computers*, by Humans™, that use these wonderful machines to provide *leverage* in their lives, make them more useful and productive Humans™), is that it is unbalanced. 2013-10-09 09:18 unbalanced, unfortunately, in the *opposite* direction from phones. 2013-10-09 09:19 That ridiculously small group of people who need phones which can launch space-ships? 2013-10-09 09:19 yeah, *we've* got all the amazing theory, and tools, and advanced-ified technology and mathematical magic and development-time that you can imagine. 2013-10-09 09:20 I actually think that you yourself highlighted the gap 2013-10-09 09:20 but we're the 1%. And we're *ignoring* the 99%, except to give them Facebook privacy settings (if you presume the 99% to only be fucking cishet white American males), or alternatively, to give them NOTHING AT ALL (if you actually take the unleveraged, illiterate third world, full of Humans™ who can't leverage their lives into excellence with computers *at 2013-10-09 09:20 all*, into account.) 2013-10-09 09:21 on one side, you have Facebook privacy settings and silent mode after 23:00, and so on. on other side, you have... turing-complete stuff, generally. 2013-10-09 09:21 ‘programming’ shouldn't be divided into A) Facebook's privacy settings and my father's iPhone's ability to schedule sleep patterns, and B) MotherFucking Haskell, Bitch™ 2013-10-09 09:21 for *both* cases, your most important ever thing to do is: 2013-10-09 09:22 make it easier for humans to argue about dynamic behavior as locally as possible. 2013-10-09 09:22 aka, good design. 2013-10-09 09:22 with the only attempt at something in the middle being a horribly-executed, nobody-really-put-any-care-into-it visual copy of the ‘MotherFucking Programming Languages’ from 2006. 2013-10-09 09:22 yes, that is what I was going to say 2013-10-09 09:22 anyway. need to go eat. 2013-10-09 09:23 you can really, easily summarize *me*, and what I care about or will argue for online, as: 2013-10-09 09:23 ‘Wants that graph to be a bell-curve.’ 2013-10-09 09:23 or ‘Wants to *make* that graph more of a bell-curve.’ 2013-10-09 09:23 I think the problem here is more fundamental 2013-10-09 09:23 Whether that's taking blind stabs at the completely unpopulated middle, 2013-10-09 09:24 ELLIOTTCABLE: wouldn't you rather want just any kind of binomial distribution? 2013-10-09 09:24 or pumping up the anemic low-end (making Facebook's privacy settings more usable, for instance), 2013-10-09 09:24 or shoving some of the over-hyped high-end downwards to fill in the middle-high. 2013-10-09 09:25 well 2013-10-09 09:25 then we just agree 2013-10-09 09:26 if you actually insist on research instead of cargo-culting some existing UI testaments onto the new field. 2013-10-09 09:26 I think a lot of what we disagree about, is whether people ‘know what's best for them’ 2013-10-09 09:26 they don't? 2013-10-09 09:26 You don't think they do. 2013-10-09 09:26 i.e., I don't think they do. 2013-10-09 09:26 yes. 2013-10-09 09:26 whereas I think what *they* think, is all that matters. 2013-10-09 09:26 (by the way, isn't that, like, Apple motto?) 2013-10-09 09:27 I see this feeling in the programming-capable, atheistic, liberal community a lot: “It's all marketing.” “Anything marketed is a lie.” 2013-10-09 09:27 (which they execute with great success. do something cool, shove it into throats, everyone thinks it's crap, then it's all amazing.) 2013-10-09 09:28 Marketing's hugely important to *leverage* what you have, but marketing, across all categories, is an equal. You can *under-*market your idea or product, but you can't over-market it. You *actually do* have to change people's lives. 2013-10-09 09:28 ELLIOTTCABLE changed the topic of #elliottcable to: — do something cool, shove it into throats, everyone thinks it's crap, then it's all amazing. 2013-10-09 09:28 ELLIOTTCABLE changed the topic of #elliottcable to: #ELLIOTTCABLE — do something cool, shove it into throats, everyone thinks it's crap, then it's all amazing. 2013-10-09 09:29 need to run get food. 2013-10-09 09:29 sure 2013-10-09 09:29 excellent topic. would love to chat more when I get back. 2013-10-09 09:29 then explain what the hell did you mean 2013-10-09 09:29 yeah 2013-10-09 09:31 what the hell did I mean about what? 2013-10-09 09:59 “These are signs that calculus is hiding somewhere.” 2013-10-09 09:59 BEST THING 2013-10-09 10:03 “Surprise, physics!” 2013-10-09 10:04 offtopic: you said "atheist", and I just realized: there's a third option, it's called "I do not identify myself with a group of people based on my religious beliefs or lack thereof", and that's how you stay sane 2013-10-09 10:05 "x-ist" is sold to you as "I agree with dictionary definition of x-ism", but actually that is "I agree and belong to a group of people callign themselves x-ists", and the two have literally nothing in common. 2013-10-09 10:05 I think there was a bunch of essays about this on feminism, lately, but it's applicable in general. 2013-10-09 10:05 also, sort of obvious. 2013-10-09 10:06 (what the hell did you mean) well, just continue 2013-10-09 10:08 evaryont has joined #elliottcable 2013-10-09 10:08 ELLIOTTCABLE: 'sup 2013-10-09 10:14 Hi! Web-gateway? Really? 2013-10-09 10:14 evaryont: I've got irccloud invites, if you'd like one. 2013-10-09 10:20 ooh, interesting 2013-10-09 10:20 not sure if I would use it much though 2013-10-09 10:21 I'm just too lazy to open my laptop which has a bouncer 2013-10-09 10:26 * whitequark pokes ELLIOTTCABLE 2013-10-09 10:29 hi 2013-10-09 10:29 ELLIOTTCABLE: hi! 2013-10-09 10:29 what 2013-10-09 10:30 ELLIOTTCABLE: 13:29 <+ELLIOTTCABLE> excellent topic. would love to chat more when I get back. 2013-10-09 10:30 so 2013-10-09 10:31 you seemingly contradict yourself 2013-10-09 10:31 on one hand, "people know what they want". on other one, "shove it into their throats". 2013-10-09 10:31 elaborate? 2013-10-09 10:35 bbl, I must sleep and drive and work and be boring. 2013-10-09 10:35 evaryont has quit [Quit: work work work] 2013-10-09 10:43 by the way, FEZ is fucking awesome 2013-10-09 10:44 both from the view of a programmer and a player. 2013-10-09 11:20 hi! 2013-10-09 11:20 was out eating. 2013-10-09 11:21 staring on the second graph-set of http://acko.net/blog/animate-your-way-to-glory/ 2013-10-09 11:21 LOVE IT 2013-10-09 11:21 Sgeo has quit [Read error: Connection reset by peer] 2013-10-09 11:23 omg this animation of convolving 2013-10-09 11:24 but I don't understand, I don't understand ;_; 2013-10-09 11:28 “At certain points, the lag is close to 0, when the resonance frequency matches and slides into phase. When applied to animation, resonant filters can create jelly-like motions. When applied to electronic music at about 220 Hz, you get Acid House.” 2013-10-09 11:43 wudofyr: hi! 2013-10-09 12:00 yorick: is @YorikPeterse you? 2013-10-09 12:01 ELLIOTTCABLE: nope 2013-10-09 12:01 have heard of the guy 2013-10-09 12:01 but he writes ruby :D 2013-10-09 12:02 LOL 2013-10-09 12:02 LOL 2013-10-09 12:03 right? 2013-10-09 12:05 ELLIOTTCABLE: I'm @yorickvp 2013-10-09 12:06 * ELLIOTTCABLE nods 2013-10-09 12:17 01[13Paws.js01] 15ELLIOTTCABLE created 06copy-reactor from 06Master (+0 new commits): 02https://github.com/ELLIOTTCABLE/Paws.js/commits/copy-reactor 2013-10-09 12:17 01[13Paws.js01] 15ELLIOTTCABLE created 06copy-reactor+ from 06Master (+0 new commits): 02https://github.com/ELLIOTTCABLE/Paws.js/commits/copy-reactor+ 2013-10-09 12:20 yorickpeterse has joined #elliottcable 2013-10-09 12:20 WHAT THE FUCK IS THIS TWITTER THING 2013-10-09 12:20 I'm literally so confused right now 2013-10-09 12:20 yorick: AND WHO ARE YOU? 2013-10-09 12:21 yorickpeterse: WHAT DID YOU DO 2013-10-09 12:21 ELLIOTTCABLE: I BLAME YOU! 2013-10-09 12:21 for what 2013-10-09 12:21 what the shit, this isn't even an imposter 2013-10-09 12:21 this is pretty weird 2013-10-09 12:21 what isn't even an imposter? 2013-10-09 12:22 yorick 2013-10-09 12:22 (heh) 2013-10-09 12:22 Oh, no, yorick is yorick. Who are *you*? 2013-10-09 12:22 I figured it was whitequark or judofyr being funny 2013-10-09 12:22 Is this a Halloween thing, again? 2013-10-09 12:22 PragCypher has joined #elliottcable 2013-10-09 12:22 no ELLIOTTCABLE's actually elliott cable 2013-10-09 12:23 (probably.) 2013-10-09 12:23 yorick: so yeah, first time I bump into somebody with the same name (still suspicious here) 2013-10-09 12:23 yorickpeterse: I know a couple others :/ 2013-10-09 12:23 You're all Saiks to me. 2013-10-09 12:23 yorick: do you also get "alas poor yorick" jokes? 2013-10-09 12:24 yes, I got two yesterday 2013-10-09 12:24 (hehehehe ) 2013-10-09 12:24 yorick: I feel your pain 2013-10-09 12:24 ELLIOTTCABLE: it's probably lame anyways 2013-10-09 12:24 ohsna 2013-10-09 12:24 yorickpeterse: I feel yours :P 2013-10-09 12:24 hi, yorickpeterse. Welcome to my villainous lab. What is it that you do? 2013-10-09 12:25 You seem to already know whitequark *and* wudofyr, so you've got points in my book. 2013-10-09 12:25 I rant about things mostly 2013-10-09 12:25 and that apparently tends to annoy people 2013-10-09 12:25 I think he writes ruby 2013-10-09 12:26 sounds like you'll get along well with whitequark. 2013-10-09 12:26 hah 2013-10-09 12:26 shaddup, purr 2013-10-09 12:26 yah, whitequark talks more though 2013-10-09 12:26 yorickpeterse: for some reason most all of the yoricks I know are dutch (and I know a jorick who's belgian but that's just wrong) 2013-10-09 12:26 http://downloads.yorickpeterse.com/irc-stats/ruby-lang.html proof 2013-10-09 12:26 yorick: wait you're fucking Dutch too? 2013-10-09 12:27 I don't #ruby-lang. 2013-10-09 12:27 Been banned from there for years. 2013-10-09 12:27 Used to #ruby a lot, though. 2013-10-09 12:27 yorickpeterse: yeh 2013-10-09 12:27 oh gods, whitequark *does* talk a lot in there. News to me, never knew that. 2013-10-09 12:27 yorick: WHAT THE 2013-10-09 12:27 oh my god, so many names I recognize. This is bringing back memories. o_o 2013-10-09 12:28 Hm, according to Google this yorick is totally legit 2013-10-09 12:28 shevy still exists!? 2013-10-09 12:28 banisterfiend <3 2013-10-09 12:28 I think there's another fucking yorick who has my surname too, at least on facebook there is one, hope he never discovers the internet 2013-10-09 12:29 yorick: there's some doctor nerd or w/e 2013-10-09 12:29 He messes up my Google search results 2013-10-09 12:29 “whitequark is a very aggressive person. He/She attacked others 12 times.” 2013-10-09 12:29 pisg? 2013-10-09 12:29 http://uk.linkedin.com/in/yorickpeterse this one 2013-10-09 12:29 prophile: yah 2013-10-09 12:29 prophile: yeah 2013-10-09 12:29 same. fucking. name 2013-10-09 12:30 and also dutch 2013-10-09 12:30 yah 2013-10-09 12:30 alas, cloned yorick 2013-10-09 12:30 apeiros_ is either insane or just a fair op, kicking a total of 11 people! 2013-10-09 12:30 apeiros_'s faithful follower, zenspider, kicked about 6 people. 2013-10-09 12:30 LOL. no. 2013-10-09 12:30 LOL 2013-10-09 12:30 goddammit prophile 2013-10-09 12:30 prophile: well-played. 2013-10-09 12:30 i'm sure you've never heard that one before 2013-10-09 12:30 not today, actually 2013-10-09 12:31 it's my revenge on the world for the approaching infinite times I've received "lol, I read your nick as 'paedophile'" 2013-10-09 12:31 My whole life I've been lied to that "Yorick" wasn't a very common Dutch name 2013-10-09 12:31 LIES 2013-10-09 12:31 there's like 80 people born each year being called yorick 2013-10-09 12:31 proof 2013-10-09 12:31 I just go with my actual name, and nobody gets it wrong, or compares it to anything. 2013-10-09 12:32 Worst I get is either A) misspellings, or B) ‘Like from E.T.?’ 2013-10-09 12:32 acquiring proof 2013-10-09 12:32 this better not be some stats from Maurice de Hond 2013-10-09 12:32 yorickpeterse: http://www.svb.nl/Images/SVB-kindernamen-2012-jongens-populariteit.pdf I'm sorry it was 14 2013-10-09 12:32 ha 2013-10-09 12:32 Daan is the most common? Huh 2013-10-09 12:33 but it's pretty legit proof 2013-10-09 12:33 true 2013-10-09 12:33 dutch is just english with the vowels doubled 2013-10-09 12:33 and a lot more vulgar 2013-10-09 12:34 well, you are foreign 2013-10-09 12:34 no 2013-10-09 12:35 yorick: don't tell me you also do Ruby 2013-10-09 12:35 that would be too scray 2013-10-09 12:35 * scary 2013-10-09 12:35 no but I do javascript :P 2013-10-09 12:35 Oh jesus 2013-10-09 12:35 yorickpeterse: http://yori.cc/ 2013-10-09 12:35 heh 2013-10-09 12:37 * ELLIOTTCABLE laughs 2013-10-09 12:37 everybody in here does either Ruby, JavaScript, or Haskell. 2013-10-09 12:38 with lots of other languages mixed in, but every single person writes at least one of those commonly. 2013-10-09 12:38 Granted the first two are pretty popular so that's not that surprising 2013-10-09 12:40 delicious Haskell 2013-10-09 12:41 * yorick has been meaning to do ruby and haskell 2013-10-09 12:48 I think I have to adjust my highlights 2013-10-09 12:57 ddis 2013-10-09 12:57 still banned from ruby-lang. 2013-10-09 12:57 kik 2013-10-09 12:58 yorickpeterse: (yorikp)eterse? 2013-10-09 12:58 er 2013-10-09 12:58 backwards 2013-10-09 12:58 but, no. channel-specific? 2013-10-09 12:58 que? 2013-10-09 12:58 oh, the highlight? 2013-10-09 12:58 I set it up to highlight my nick and "yorick" 2013-10-09 12:59 so you can still enjoy all of the alas poor yorick jokes 2013-10-09 12:59 yeah 2013-10-09 13:00 there's also a character called "Yorick" in League of Legends 2013-10-09 13:00 yeah, I know league of legends because of that 2013-10-09 13:00 Which is a bit funny if I play the game and people go like "K I'M PLAYING AS YORICK" 2013-10-09 13:01 :D 2013-10-09 13:02 “Afraid,” The Neighbourhood. Great song. http://rd.io/x/QUA-pzdenWfF/ 2013-10-09 13:03 yorick (the original, not our new friend): did you ever get taught Paws? 2013-10-09 13:03 no 2013-10-09 13:05 yorick is now known as yorickvp 2013-10-09 13:05 yorickpeterse: look at what you made me do 2013-10-09 13:05 heh 2013-10-09 13:05 yorickpeterse is now known as yorick 2013-10-09 13:06 yorick has quit [Disconnected by services] 2013-10-09 13:06 :) 2013-10-09 13:06 I thought it would rename him 2013-10-09 13:06 Guest54955 has joined #elliottcable 2013-10-09 13:06 ganymede :D 2013-10-09 13:06 Guest54955 has quit [Client Quit] 2013-10-09 13:06 Guest54955: I'm sorry 2013-10-09 13:06 yorickvp: and yet you work in Node? 2013-10-09 13:06 yorickpeterse has joined #elliottcable 2013-10-09 13:06 yorickpeterse: I'm sorry :P 2013-10-09 13:07 motherfucker 2013-10-09 13:07 ELLIOTTCABLE: yes 2013-10-09 13:07 let's solve that. 2013-10-09 13:07 yorickpeterse: I thought it would rename you 2013-10-09 13:07 heh no, ghost just flat out kicks you off the server 2013-10-09 13:07 dammit freenode 2013-10-09 13:08 ouch. 2013-10-09 13:09 makes sense though, otherwise you'll end up with a lot of copies of yourself when the network goes bonkers 2013-10-09 13:29 new RJD2. 2013-10-09 13:33 cuttle: RJD2, “Behold, Numbers!” makes me think of you. 2013-10-09 13:33 cuttle: music, electronic, and the title. just perfect. 2013-10-09 13:36 Sorella has joined #elliottcable 2013-10-09 13:36 Sorella has joined #elliottcable 2013-10-09 13:36 Sorella has quit [Changing host] 2013-10-09 13:39 What's the best data-structure to map something to sub-graphs of a larger graph? 2013-10-09 13:40 alexgordon has joined #elliottcable 2013-10-09 13:40 i.e. given a directed graph, map to one particular sub-graph thereof, and to another sub-graph. 2013-10-09 13:40 multiple entries for , possible (even likely), overlapping sub-graphs correspondingly, likely. 2013-10-09 13:46 wat the fuck 2013-10-09 13:47 µPaws.js has no mention, whatsoever, of a differentiation between write-access and read-access. Did I miss something, here? 2013-10-09 13:47 have I forgotten my own programming language? D: 2013-10-09 13:47 somebody wake cuttle the fuck up to teach me my own design. 2013-10-09 13:47 also, mornin', alexgordon 2013-10-09 13:49 -spec 2013-10-09 13:49 ELLIOTTCABLE: Paws' half-arsed Version 10 specification 2013-10-09 13:52 hi ELLIOTTCABLE 2013-10-09 13:52 hi alexgordon 2013-10-09 13:52 ELLIOTTCABLE: too busy to paws :( 2013-10-09 13:52 whatcha up to 2013-10-09 13:53 ELLIOTTCABLE: trying to make money 2013-10-09 13:53 that's unfortunate 2013-10-09 13:53 optimizing the hell out of chocolat's conversion rate 2013-10-09 13:53 busy with Chocolat? 2013-10-09 13:53 ah, the website 2013-10-09 13:53 yeah 2013-10-09 13:53 anything I can do to help? (= 2013-10-09 13:53 sure 2013-10-09 13:53 vil: stop listening to Deadmau5, and start listening to RJD2's new album. 2013-10-09 13:53 ^ it's not particularly interesting but it's gotta be done 2013-10-09 13:55 ELLIOTTCABLE: I'm making a whole new site 2013-10-09 13:55 switching to stripe 2013-10-09 13:55 going to install mixpanel hooks everywhere 2013-10-09 13:55 * ELLIOTTCABLE nods 2013-10-09 13:55 add bitcoin payments 2013-10-09 13:55 what's mixpanel? 2013-10-09 13:55 and why bitcoin? is that really a profit avenue for you? 2013-10-09 13:55 hm, it's evented analytics 2013-10-09 13:56 ELLIOTTCABLE: nah I just think it's cool 2013-10-09 13:56 oh also I have to make a screencast 2013-10-09 13:56 showing how I use chocolat, which is... like a fucking jedi 2013-10-09 13:57 I know every damn little feature 2013-10-09 13:57 forget vim customization, if you want to be fast build your own text editor ;) 2013-10-09 14:05 halp I don't understand Paws 2013-10-09 14:06 neither the spec, nor the working implementation, contains any reference or concept of write vs. read permissions. 2013-10-09 14:07 lol 2013-10-09 14:07 lol 2013-10-09 14:08 if YOU don't understand it then we're all doomed 2013-10-09 14:16 but srsly 2013-10-09 14:49 cloudhead has joined #elliottcable 2013-10-09 14:57 http://www.radicalcourse.com/uploads/iphone-smartphones-warning-label.jpg *g* 2013-10-09 14:59 whitequark: hahaha 2013-10-09 15:00 whitequark: sure, math is great, but 50% of computer science is math and the other 50% is people, and there is no point in ignoring people 2013-10-09 15:01 whitequark: like, being all virtuous and refusing to make things fit the structure of the human brain 2013-10-09 15:01 humans are the only things in the universe that can decide what matters 2013-10-09 15:01 so basically making things fit the human brain is all that matters 2013-10-09 15:01 like, that's not exactly how i meant to say it 2013-10-09 15:02 but like, you're not appeasing hyper-logical aliens who will kill us if we're too wishy-washy and user-friendly. all you're doing is just hurting the quality of life of everyone everywhere if you insist on not making things fit human cognition 2013-10-09 15:04 whitequark: yeah fez is just so so so polished 2013-10-09 15:04 so much care went into every detail 2013-10-09 15:04 cuttle: re cognition 2013-10-09 15:04 I explicitly support the opposite 2013-10-09 15:04 13:21 <+whitequark> for *both* cases, your most important ever thing to do is: 2013-10-09 15:04 13:22 <+whitequark> make it easier for humans to argue about dynamic behavior as locally as possible. 2013-10-09 15:04 13:22 <+whitequark> aka, good design. 2013-10-09 15:04 math doesn't even come into the big picture. 2013-10-09 15:04 math is how you *implement* things. 2013-10-09 15:05 math is hard 2013-10-09 15:05 whitequark: there's no reason you can't do both 2013-10-09 15:05 cuttle: I don't see why 2013-10-09 15:05 why would I want that. 2013-10-09 15:06 ...because your'e a human 2013-10-09 15:06 and everyone else is a human 2013-10-09 15:06 and you want your tools to gain usage in the market, and you want to improve yours and everyone else's quality of life 2013-10-09 15:06 um, what? 2013-10-09 15:06 did you understand what I just wrote? 2013-10-09 15:08 I never *ignored* people. Quite the opposite. 2013-10-09 15:08 What I was saying (earlier) is that there is a difference between making a good instrument for people and making an instrument anyone could use. 2013-10-09 15:09 * cuttle nods 2013-10-09 15:09 but you dislike the iphone/UI design 2013-10-09 15:10 I dislike iphone design, and the fact that for far too much people, iphone design = ui design in general. 2013-10-09 15:11 it's not even fair to compare it to literacy 2013-10-09 15:12 iphone is a tool for communication. talking, if you wish. for centuries, pretty much anyone could talk to anyone. 2013-10-09 15:13 grmpf, too sleepy to explain myself coherently 2013-10-09 15:17 iphone is *so* much more than a tool for talking 2013-10-09 15:18 ._. 2013-10-09 15:18 god 2013-10-09 15:18 * cuttle skips class again because i'm too sick to feel like going anywhere 2013-10-09 15:20 cuttle: the rest follows naturally 2013-10-09 15:20 isn't the iPhone also a way for the NSA/Apple to track you wherever you go? 2013-10-09 15:20 all cellular phones are 2013-10-09 15:21 Mine isn't, Firefox OS is too buggy for that 2013-10-09 15:21 whitequark: not at all. we had phones for talking for decades before we had phones that let us text, and again before we had "phones" that let us play games and read the news and listen to music and shit 2013-10-09 15:22 whitequark: I kind of agree 2013-10-09 15:22 cuttle: the iphone's primary function is communication 2013-10-09 15:22 whether that be by phone, email, text message, facetime, whatever 2013-10-09 15:22 alexgordon: look at ipod touches 2013-10-09 15:23 much less communication 2013-10-09 15:23 right, they're not iphones 2013-10-09 15:23 but all the other stuff that is part of an iphone 2013-10-09 15:23 cuttle: ok but just taking the communication part of the iphone 2013-10-09 15:23 they demonstrate that communication isn't the *primary* function, since there's a market for the iphone minus communication 2013-10-09 15:23 yeah yeah ok, it's a major function then 2013-10-09 15:23 if not primary 2013-10-09 15:23 alexgordon: ok, just taking the communication part, I would agree the primary function of that is to communicate 2013-10-09 15:23 :P 2013-10-09 15:23 :P 2013-10-09 15:24 I meant, if we could just talk about the design of it for communication, which is a major use of a phone 2013-10-09 15:24 it's not that great 2013-10-09 15:24 there's all these different "apps" for communication in different mediums 2013-10-09 15:24 with different identities 2013-10-09 15:24 it doesn't feel unified 2013-10-09 15:24 yeah 2013-10-09 15:24 but i mean that's probably good 2013-10-09 15:25 we communicate just fine and i don't think we'd communicate any better if it were unified 2013-10-09 15:25 you still have to think *how* you are going to communicate using, instead of what you want to say 2013-10-09 15:25 well that will *always* be true 2013-10-09 15:25 need it be? 2013-10-09 15:25 we do it on a very unconscious level 2013-10-09 15:25 like we have forever 2013-10-09 15:25 the fact that you have all of sms, facebook and email is more due to corporate interests 2013-10-09 15:25 we adapt to communications media 2013-10-09 15:25 it's the same shit basically 2013-10-09 15:25 whitequark: not really 2013-10-09 15:25 it doesn't seem as futuristic as I'd like 2013-10-09 15:25 cuttle: how so? 2013-10-09 15:25 I want to say "send this photo to mum" 2013-10-09 15:26 twitter and facebook are *very* different in purpose from sms and email 2013-10-09 15:26 and sms and email are built on entirely different communications infrastructures 2013-10-09 15:26 twitter, yes. facebook messages? nope 2013-10-09 15:26 so you can't realistically talk about merging them 2013-10-09 15:26 beyond what's already been done 2013-10-09 15:26 infrastructure? fuck that 2013-10-09 15:26 not "take a photo, click the share button, type in mum's email address, type in a subject, send the email" 2013-10-09 15:26 apart from that mms = email, pretty much 2013-10-09 15:26 sure facebook *messages*, but faceboo as a whole 2013-10-09 15:26 so no 2013-10-09 15:26 whitequark: uh infrastrcture is how things are in the *real world* 2013-10-09 15:26 cuttle: hence "corporate interests" 2013-10-09 15:27 if you want to define 2013-10-09 15:27 and as I've said: mms already pretty much is email. it's not a problem. 2013-10-09 15:27 constraints on physics and physical resources 2013-10-09 15:27 as corporate interests 2013-10-09 15:27 then sure 2013-10-09 15:27 um, nope 2013-10-09 15:27 cuttle: but I'm just saying, the app design is indeed flexible, but it still feels a step away from how it ought to be 2013-10-09 15:27 there is no physical constraint which would require using sms for communication between people, today 2013-10-09 15:28 maybe google glass will be better 2013-10-09 15:28 whitequark: to set up a system for billions of people to send messages to each other 2013-10-09 15:28 you need a lot of money 2013-10-09 15:28 there's no avoiding that 2013-10-09 15:28 cuttle: what? 2013-10-09 15:28 time and physical resources 2013-10-09 15:28 one of the problems with the iphone is that it has so much resources that programmers aren't constrained 2013-10-09 15:28 programmers are best when they're resource-constrained ;) 2013-10-09 15:28 you can't just snap your fingers and now you have merged sms and email 2013-10-09 15:29 money, yes 2013-10-09 15:29 physical resources? which ones? 2013-10-09 15:29 they devote their attention to optimization and simplification, instead of adding features and bugs 2013-10-09 15:30 if we were talking about a realistic migration plan, even 2013-10-09 15:30 whitequark: cell phone towers, for instance 2013-10-09 15:30 start with a shift to MMS. 2013-10-09 15:30 cuttle: yes, what about them? 2013-10-09 15:30 egh i'm tired of this conversation :p 2013-10-09 15:31 you already have all the capacity you need for email, everywhere it matters. 2013-10-09 15:31 the only reason sms for consumers still exists *at all* is because operators can bill you literally higher than it costs to send data to hubble 2013-10-09 15:32 SMS is still carrier and device agnostic though. 2013-10-09 15:32 which is not to say that sms costs them *anything*, per se. it's sent over the system channel in GSM, meaning they don't even need to allocate spectrum for it. 2013-10-09 15:32 jvulc: email is carrier agnostic. 2013-10-09 15:33 you could argue that email is not device-agnostic, but 1) an overwhelming majority of phones today is smartphones 2013-10-09 15:34 2) *if* anyone wanted to migrate from sms, see above, it is not technically complex to implement email in dumbphones. you already have 50% of it done. 2013-10-09 15:55 sharkbot has joined #elliottcable 2013-10-09 16:41 well whitequark's been arrested http://www.bbc.co.uk/news/technology-24456988 2013-10-09 16:42 syntax highlighting is harder than I thought 2013-10-09 16:43 alexgordon: hahaha 2013-10-09 16:44 fwg has quit [Ping timeout: 252 seconds] 2013-10-09 16:45 meh 2013-10-09 16:47 christ 2013-10-09 16:47 so this pattern that matches hsOperator in vim is 15299 characters including // delimiters 2013-10-09 16:48 and since vim doesn't have a facility for determining whether some group contains *entire* token it highlights, 2013-10-09 16:48 a correct pattern for concealing /= as ≠ is over 25,000 characters 2013-10-09 16:48 cmon 2013-10-09 16:52 you're doing it wrong. 2013-10-09 16:53 it's not possible to do it *right* 2013-10-09 16:53 that's why everybody else has half-assed it 2013-10-09 16:53 because it can't be full-assed 2013-10-09 16:54 it is; your syntax highlighter should allow execution of arbitrary code 2013-10-09 16:54 it's not my fault it sucks. 2013-10-09 16:54 http://www.smbc-comics.com/?id=3127#comic 2013-10-09 16:55 you what mate 2013-10-09 16:55 hey, it does look like a peace sign 2013-10-09 16:56 it's vim's 2013-10-09 16:56 code is hard 2013-10-09 17:25 ELLIOTTCABLE who runs the bot in ##javascript and #node.js? 2013-10-09 18:01 PragCypher has quit [Quit: Leaving] 2013-10-09 18:10 eligrey has joined #elliottcable 2013-10-09 19:48 http://www.picturecorrect.com/news/man-achieves-breakthrough-in-the-pursuit-of-perfect-image-stabilization/ lol 2013-10-09 19:48 lol 2013-10-09 19:50 ELLIOTTCABLE: but deadmau5 tho 2013-10-09 20:09 vil: haha 2013-10-09 20:09 u wot m8 2013-10-09 20:13 he's been releasing some crazy good stuff on soundcloud lately 2013-10-09 20:13 cuttle: https://soundcloud.com/fuckmylife/silent-picture 2013-10-09 20:14 fwg has joined #elliottcable 2013-10-09 20:14 https://soundcloud.com/fuckmylife/creep-2k13 2013-10-09 20:14 https://soundcloud.com/fuckmylife/avaritia-final 2013-10-09 20:33 fwg has quit [Ping timeout: 252 seconds] 2013-10-09 20:36 fwg has joined #elliottcable 2013-10-09 20:56 yrashk has quit [Remote host closed the connection] 2013-10-09 21:23 yorickvp has quit [Quit: No Ping reply in 180 seconds.] 2013-10-09 21:24 yorick has joined #elliottcable 2013-10-09 21:38 niggler: me, why? 2013-10-09 21:39 Sorella has quit [Quit: Ex-Chat] 2013-10-09 22:12 ELLIOTTCABLE any way to add an npm serch 2013-10-09 22:12 *search 2013-10-09 22:12 id like to do something like !npm kue 2013-10-09 22:13 and have it produce a link to npm.im/kue along with the description 2013-10-09 22:22 where did that entire conversation between whitequark, cuttle, and alexgordon come from? It appears to have just started out of nowhere at 11:25. 2013-10-09 22:22 or did my client fuck-up, somehow? 2013-10-09 22:23 ELLIOTTCABLE: http://irclog.whitequark.org/elliottcable/2013-10-09 2013-10-09 22:23 ahhah! it did! 2013-10-09 22:26 cuttle: re: iPod touch vs iPhone … I know several people who can't afford an iPhone, or at least not the plan that comes with the iPhone. They all communicate *heavily* with iMessages, or at least Facebook Messenger, on it, even heavilier than others I know with actual iPhones. They are all suuuuuuuper-obsessive about finding WiFi wherever they can, so 2013-10-09 22:26 they can continue their conversations, and interact. 2013-10-09 22:27 cuttle: which kind of defeats that point; because that means the concept of an iOS touch device is *so rooted* in communication, that it still comes out as primarily a communication device, *even without a SIM card*. 2013-10-09 22:27 iPod touch + cell phone isn't that much cheaper than iphone 2013-10-09 22:29 niggler: most of them don't have cell-phones. 2013-10-09 22:29 niggler: absolutely, re: npm search. don't have time now. remind me later? and I will. 2013-10-09 22:30 no rush 2013-10-09 22:37 yrashk has joined #elliottcable 2013-10-09 22:38 yrashk! 2013-10-09 22:38 ELLIOTTCABLE! 2013-10-09 22:50 yrashk. 2013-10-09 22:52 ELLIOTTCABLE. 2013-10-09 22:53 what's up! 2013-10-09 22:53 a lot 2013-10-09 22:53 busy days! 2013-10-09 22:53 for the path... umm many months 2013-10-09 22:53 past* 2013-10-09 23:37 this is neat 2013-10-09 23:37 a⃝ 2013-10-09 23:41 yorick has quit [Read error: Connection reset by peer] 2013-10-09 23:43 cloudhead has quit [Ping timeout: 240 seconds] 2013-10-09 23:59 fwg has quit [Ping timeout: 264 seconds] 2013-10-10 00:08 I conjecture that the Lisp-school essayists — Raymond, Graham, and Yegge — have not “needed mathematics” because they spend their time worrying about how to make code more abstract. 2013-10-10 00:08 http://www.evanmiller.org/mathematical-hacker.html 2013-10-10 00:13 “One gets the impression reading Raymond, Graham, and Yegge (all self-styled Lisp hackers) that the ultimate goal of programming is to make a program that is more powerful than whatever program preceded it, usually by adding layers of abstraction. Call this the “Lisp school of programming.”” 2013-10-10 00:14 “In contrast to the Fortran tradition [...], the culture of Lisp is almost willfully ignorant of mathematics. This ignorance is disguised by all the talk of formalism and the instinctive genuflection before the Lambda Calculus, which, not unlike the Summa Theologica, is a closed computational universe that sheds little light on the observed world.” 2013-10-10 00:14 interesting idea 2013-10-10 00:14 I disagree, but interesting 2013-10-10 00:15 mathematicians need to learn that not all of mathematics is as important as they think it is ;) 2013-10-10 00:19 most programmers are generalists. it's our job to piece together libraries written by specialists 2013-10-10 00:19 I don't know how to do video encoding. I bet if I spent 10 years learning I still wouldn't be able to do video encoding as well as ffmpeg does 2013-10-10 00:20 I'm sure there's a lot of maths in ffmpeg, but that is totally irrelevant to me if I'm trying to encode videos 2013-10-10 00:21 Sgeo has joined #elliottcable 2013-10-10 00:22 if I'm a generalist, better ways of piecing things together is far more useful than any amount of mathematics ever could be 2013-10-10 00:29 fairly astute point. 2013-10-10 00:29 bbl chili's. 2013-10-10 00:52 alexgordon: well yeah but everyone who does something *important* knows math 2013-10-10 00:52 alexgordon: like, writing a video codec 2013-10-10 00:52 alexgordon: or something on that level 2013-10-10 00:53 cuttle: sure, but do we need to use the same language for both? 2013-10-10 00:53 alexgordon: like, all the punctuations in the punctuated equilibrium of the programming world come from someone who knows math bringing it in 2013-10-10 00:53 not saying ffmpeg would be better written in lisp or smaltalk 2013-10-10 00:53 but I don't think instagram would be better written in fortran 2013-10-10 00:54 alexgordon: did you read the article? you're not really arguing with it 2013-10-10 00:54 I am! 2013-10-10 00:54 just what you think it is based on the quote i posted 2013-10-10 00:54 unless you have read it in which case i apologize 2013-10-10 00:54 I read all of it 2013-10-10 00:54 :P 2013-10-10 00:54 ok 2013-10-10 00:54 :p 2013-10-10 00:55 the article is saying that maths can be more important than abstractions, which is true 2013-10-10 00:55 but the reverse is ALSO true 2013-10-10 00:55 people don't generally implement fibonacci, they connect to databases and generate html, or they put buttons on a screen and display alerts 2013-10-10 00:56 like I said, generalist programming vs specialist programming 2013-10-10 00:58 guess so 2013-10-10 00:58 help me think of a halloween twitter name 2013-10-10 00:58 :p 2013-10-10 01:00 cuttle: Mormon Micah 2013-10-10 01:00 lol 2013-10-10 01:00 lol 2013-10-10 01:00 ain't nothing scarier than mormons! 2013-10-10 01:00 some irl people follow me and the joke would not be the same to them :p 2013-10-10 01:01 cuttle: do mormons celebrate halloween anyway? 2013-10-10 01:02 alexgordon: yeah 2013-10-10 01:02 alexgordon: you're thinking of jehovah's witnesses 2013-10-10 01:02 well they don't celebrate christmas 2013-10-10 01:03 cuttle: just thought, might be seen as a secularization of a christian festival 2013-10-10 01:04 jehovah's witnesses don't celebrate anything 2013-10-10 01:04 not even birthdays 2013-10-10 01:04 not celebrating halloween would make a lot more sense than not drinking coffee! 2013-10-10 01:04 sure 2013-10-10 01:04 :p 2013-10-10 01:04 I suppose religion isn't about making sense 2013-10-10 01:04 not believing in translation from gold plates joseph smith angels blah blah blah would make more sense than believing in it... 2013-10-10 01:07 cuttle: that said, it's very hard to reconcile for me because mormons are a lot nicer than regular people 2013-10-10 01:07 at least the mormons I know 2013-10-10 01:08 * cuttle nods 2013-10-10 01:08 yeah that is somethin 2013-10-10 01:08 g 2013-10-10 01:08 probably more true outside of utah than it is inside of utah 2013-10-10 01:08 although still somewhat true 2013-10-10 01:08 but like 2013-10-10 01:08 try becoming fully steeped in mormon culture 2013-10-10 01:08 I've stopped seeing religion in terms of the text and now I just see it in terms of the reality 2013-10-10 01:08 and you will probably disagree 2013-10-10 01:09 yeah I'm sure 2013-10-10 01:14 god i hate everything 2013-10-10 01:14 :< 2013-10-10 01:15 cuttle: everything? even puppies? 2013-10-10 01:15 idk probably not specifically things like puppies 2013-10-10 01:15 just feeling very frustrated right now 2013-10-10 01:16 have you tried taking it out on a puppie 2013-10-10 01:16 erm puppy 2013-10-10 01:18 i have not 2013-10-10 01:18 don't know where any puppies are around here 2013-10-10 02:34 alexgordon has quit [Quit: ["Textual IRC Client: www.textualapp.com"]] 2013-10-10 03:53 GUYS 2013-10-10 03:53 I have Manchu font support now 2013-10-10 03:53 http://i4.minus.com/i4qLHEaeHGlpo.png 2013-10-10 03:54 vertical font rendering is horribly broken :D 2013-10-10 03:54 lol 2013-10-10 03:54 lol 2013-10-10 03:54 Manchu script looks more like this... http://en.wikipedia.org/wiki/File:The_locations_of_Jurchen_tribes_in_1600s.jpg 2013-10-10 04:47 wth 2013-10-10 04:47 that's crazy that those are words 2013-10-10 04:48 ohhh 2013-10-10 04:48 it's vertical cursive 2013-10-10 04:48 neato 2013-10-10 04:55 are you using linux 2013-10-10 04:56 you poopy fart 2013-10-10 04:57 no 2013-10-10 04:57 $work gave me a mbp 2013-10-10 04:58 and honestly I'm pretty bad at living on more than one computer at a time 2013-10-10 05:01 no i mean devyn 2013-10-10 05:05 so are the squat characters supposed to be taller? 2013-10-10 05:05 are they getting skooshed? 2013-10-10 05:05 or do your fonts just look crappy? 2013-10-10 05:05 idk anything about manchu 2013-10-10 05:07 some people are NEVER happy 2013-10-10 05:07 why am i reading rate your music 2013-10-10 05:08 idk dude 2013-10-10 05:27 eligrey has quit [Quit: Leaving] 2013-10-10 07:08 fwg has joined #elliottcable 2013-10-10 07:37 malia has joined #elliottcable 2013-10-10 07:41 fwg has quit [Ping timeout: 248 seconds] 2013-10-10 07:50 malia has left #elliottcable [#elliottcable] 2013-10-10 08:09 fwg has joined #elliottcable 2013-10-10 08:28 https://npmjs.org/doc/files/package.json.html lol JS 2013-10-10 08:28 lol 2013-10-10 08:28 lol? 2013-10-10 08:28 not sure if bot 2013-10-10 09:51 i'm pretty sure purr is a bot 2013-10-10 09:51 prophile: i respectfully disagree 2013-10-10 09:52 prophile has quit [Changing host] 2013-10-10 09:52 prophile has joined #elliottcable 2013-10-10 09:52 how very dare you 2013-10-10 09:52 i challenge you to tiddlywinks at dawn 2013-10-10 09:52 * prophile throws down gauntlet 2013-10-10 10:10 right... british :S 2013-10-10 10:10 ooooooooooh 2013-10-10 10:10 dude 2013-10-10 10:11 after about 12 years of wondering, I now know what the fuck was that set of a small disks from my childhood 2013-10-10 10:11 I fucking love you 2013-10-10 10:12 it might or might not have looked literally like this: http://en.wikipedia.org/wiki/File:Flohspiel_hg.jpg 2013-10-10 10:12 as in, I think it did, but that's probably false memory. 2013-10-10 10:19 that's just why i'm here 2013-10-10 10:50 what. http://en.wikipedia.org/wiki/Blood_types_in_Japanese_culture 2013-10-10 10:52 though now that I think of it 2013-10-10 10:52 the russian facebook clone totally has a "zodiac sign" field shown by default 2013-10-10 11:09 cloudhead has joined #elliottcable 2013-10-10 11:43 yorick has joined #elliottcable 2013-10-10 11:47 Sgeo has quit [Read error: Connection reset by peer] 2013-10-10 12:13 PragCypher has joined #elliottcable 2013-10-10 12:35 alexgordon has joined #elliottcable 2013-10-10 13:10 PragCypher has quit [Remote host closed the connection] 2013-10-10 13:10 PragCypher has joined #elliottcable 2013-10-10 13:41 Sorella has joined #elliottcable 2013-10-10 13:52 yorickpeterse is now known as yorick-cowboy 2013-10-10 14:06 yorick-cowboy is now known as yorickpeterse 2013-10-10 14:12 fuck ME 2013-10-10 14:12 maybe 2013-10-10 14:13 what do you look like? 2013-10-10 14:13 like this 2013-10-10 14:13 ok, so i booked an amtrak train to cincinnati 2013-10-10 14:13 because i'm afraid of flying 2013-10-10 14:13 but it looks like i should've just sucked it up and went 2013-10-10 14:13 because this is gonna be a massive waste of both time and money 2013-10-10 14:20 ELLIOTTCABLE: huh, you remember that thing in freefall where robots need to sleep to move memories from short-term to long-term storage? 2013-10-10 14:20 I thought it was a gimmick, nope: actual human brain works that way 2013-10-10 14:20 humans need to do that right 2013-10-10 14:20 oh 2013-10-10 14:26 whitequark: I'm not sure that anybody actually has a clue about that 2013-10-10 14:29 anybody know if there's a unix command that shows the name of a unicode character 2013-10-10 14:31 grep 2013-10-10 14:32 does it really? 2013-10-10 14:32 if you have the right file 2013-10-10 14:33 you mean, a list of all unicode characters and their names? 2013-10-10 14:34 yes 2013-10-10 14:34 classic whitequark 2013-10-10 14:41 if it's not obvious 2013-10-10 14:41 you can download it from unicode.org 2013-10-10 14:42 well, i'd just google it, but my browser won't connect to anything 2013-10-10 14:46 Determinist has joined #elliottcable 2013-10-10 14:46 wow i get a decent download speed from 3g 2013-10-10 14:47 all i really want is the ability to google stuff 2013-10-10 14:48 use lynx 2013-10-10 15:28 gazoombo has quit [Ping timeout: 264 seconds] 2013-10-10 15:31 ELLIOTTCABLE has quit [Ping timeout: 264 seconds] 2013-10-10 16:11 fwg has quit [Ping timeout: 245 seconds] 2013-10-10 16:30 cloudhead has quit [Ping timeout: 264 seconds] 2013-10-10 16:33 malia has joined #elliottcable 2013-10-10 16:33 malia has quit [Client Quit] 2013-10-10 16:46 fwg has joined #elliottcable 2013-10-10 16:54 yrashk has quit [Remote host closed the connection] 2013-10-10 16:57 sharkbot has quit [Remote host closed the connection] 2013-10-10 16:58 sharkbot has joined #elliottcable 2013-10-10 17:10 eligrey has joined #elliottcable 2013-10-10 17:24 gazoombo has joined #elliottcable 2013-10-10 17:29 ELLIOTTCABLE has joined #elliottcable 2013-10-10 17:48 PragCypher has quit [Remote host closed the connection] 2013-10-10 17:53 Determinist has quit [Ping timeout: 264 seconds] 2013-10-10 17:55 Determinist has joined #elliottcable 2013-10-10 17:56 PragCypher has joined #elliottcable 2013-10-10 17:58 PragCypher has quit [Remote host closed the connection] 2013-10-10 18:00 PragCypher has joined #elliottcable 2013-10-10 18:14 PragCypher has quit [Remote host closed the connection] 2013-10-10 18:15 PragCypher has joined #elliottcable 2013-10-10 18:16 PragCypher has quit [Client Quit] 2013-10-10 19:06 Determinist has quit [Ping timeout: 248 seconds] 2013-10-10 19:07 Determinist has joined #elliottcable 2013-10-10 19:27 fwg has quit [Ping timeout: 265 seconds] 2013-10-10 19:28 fwg has joined #elliottcable 2013-10-10 19:28 fwg has quit [Changing host] 2013-10-10 19:28 fwg has joined #elliottcable 2013-10-10 19:50 yrashk has joined #elliottcable 2013-10-10 20:32 gkatsev has quit [Ping timeout: 240 seconds] 2013-10-10 20:48 alexgordon has quit [Remote host closed the connection] 2013-10-10 20:49 alexgordon has joined #elliottcable 2013-10-10 22:52 Determinist has quit [Quit: Textual IRC Client: www.textualapp.com] 2013-10-10 23:00 cloudhead has joined #elliottcable 2013-10-10 23:04 yorickpeterse: got two more alas jokes, how about you? :) 2013-10-10 23:31 cuttle: https://gist.github.com/fileability/bccb5223635b91e06dd9 2013-10-10 23:31 work in progress 2013-10-11 00:10 yorick: hahaha 2013-10-11 00:11 alexgordon: oh so you have auto mapping of / on tuples? 2013-10-11 00:12 cuttle: it's just an overload 2013-10-11 00:12 yeah i should've read a bit further 2013-10-11 00:12 yeah 2013-10-11 00:12 but yeah 2013-10-11 00:12 :: (Real, Real) -> (Real, Real) 2013-10-11 00:13 divide((a, b), c) = (a/c, b/c) 2013-10-11 00:13 cool 2013-10-11 00:14 and now it's up to 3 2013-10-11 00:14 cuttle: I'm a little uncomfortable about implicit conversion of data structures to tuples (thinking about C's enum), but I think it's for the greater good 2013-10-11 00:14 * cuttle nods 2013-10-11 00:14 yeah i was a bit uneasy about that 2013-10-11 00:15 highly useful though 2013-10-11 00:16 means you can define a function on (A, B) and pass any data structure into it 2013-10-11 00:16 yeah 2013-10-11 00:16 and . flip makes it more versatile? 2013-10-11 00:16 I suppose the problem is that data structures are more like sets than tuples from a type theoretical POV 2013-10-11 00:17 erm 2013-10-11 00:17 some of them anyway 2013-10-11 00:17 Vector is a great candidate for implicit conversion 2013-10-11 00:17 cloudhead has quit [Ping timeout: 264 seconds] 2013-10-11 00:18 like if you had Vec2, it maps nicely to (Real, Real) 2013-10-11 00:18 Sgeo has joined #elliottcable 2013-10-11 00:18 but the ones like in the example don't really map that well 2013-10-11 00:21 yrashk has quit [Ping timeout: 248 seconds] 2013-10-11 00:25 gkatsev has joined #elliottcable 2013-10-11 00:27 alexgordon: what about sum types? the conversion could fail quite a bit 2013-10-11 00:27 or do you not have sum types 2013-10-11 00:27 "data" in furrow is like "struct" in C or record types in haskell 2013-10-11 00:27 * cuttle wants to make a kinda-dependently-typed array language 2013-10-11 00:28 verifying stuff about array lengths 2013-10-11 00:28 no sum types right now, I haven't decided whether I want them or not 2013-10-11 00:28 ok 2013-10-11 00:29 I can't help but feel I don't like how they're implemented in any language :P 2013-10-11 00:29 like tagged unions 2013-10-11 00:29 i bet 2013-10-11 00:31 implemented was the wrong word 2013-10-11 00:31 I mean just how they're exposed in the language 2013-10-11 00:31 there's so many different ways and all of them suck :P 2013-10-11 00:32 like in java you have inheritance 2013-10-11 00:32 which creates sort of sum types 2013-10-11 00:32 in C you have good old union+struct+enum 2013-10-11 00:32 or just struct+enum 2013-10-11 00:33 in C++ you have virtual member functions 2013-10-11 00:34 haskell has data declarations, which are great for building ASTs, but not much else 2013-10-11 00:34 I dunno, it all sucks 2013-10-11 00:35 oh then there's traits in Scala and interfaces in Go 2013-10-11 00:44 alexgordon: i like when they're all decoupled 2013-10-11 00:44 like 2013-10-11 00:44 adding new constructors and adding methods can both be done like from another module 2013-10-11 00:45 OOP is so fucking dumb when you can't add even like util methods 2013-10-11 00:45 cuttle: yeah objc is great in this department 2013-10-11 00:45 oh yeah 2013-10-11 00:45 subclasses and 2013-10-11 00:45 you have an excellent point 2013-10-11 00:45 what're they called? 2013-10-11 00:45 being able to overload -init in objc MAKES it 2013-10-11 00:45 java's idea of constructors is absolute shite 2013-10-11 00:46 and C++ even more so 2013-10-11 00:46 yeah 2013-10-11 00:46 definitely 2013-10-11 00:46 initWith and stuff is nice 2013-10-11 00:46 lots of typing 2013-10-11 00:46 but lots less heartache 2013-10-11 01:11 fwg has quit [Quit: gone] 2013-10-11 02:00 yea tbh i don't like C++ at all 2013-10-11 02:00 really, i thought it would be fancier 2013-10-11 02:00 it's just a wrapped C 2013-10-11 02:14 Sorella has quit [Quit: Ex-Chat] 2013-10-11 02:32 joelteon: I've learnt to like it 2013-10-11 02:32 with my insanely restricted subset 2013-10-11 02:33 eh 2013-10-11 02:33 i mean i usually kinda like almost every language i try 2013-10-11 02:33 just because there's something exciting about learning a new language 2013-10-11 02:33 and finding out how the concepts i understand apply to the new language 2013-10-11 02:33 but it wasn't fun at ALL 2013-10-11 02:33 joelteon: well C++ is certainly *exciting* 2013-10-11 02:33 it's not even fun like C because it's not low level enough 2013-10-11 02:33 just not in a good way 2013-10-11 02:33 joelteon: wat 2013-10-11 02:33 depends on your definition 2013-10-11 02:34 of exciting 2013-10-11 02:34 I feel like you're writing C++ code the wrong way if you think it's not low level enough 2013-10-11 02:34 no 2013-10-11 02:34 i mean 2013-10-11 02:34 manual memory management is fun, and c++ doesn't 2013-10-11 02:34 do that 2013-10-11 02:35 eh you've seen one dangling pointer, you've seen them all 2013-10-11 02:35 heh, dangling pointer 2013-10-11 02:44 sammcd has quit [*.net *.split] 2013-10-11 02:44 sammcd has joined #elliottcable 2013-10-11 03:00 yorick has quit [Remote host closed the connection] 2013-10-11 03:18 alexgordon has quit [Quit: ["Textual IRC Client: www.textualapp.com"]] 2013-10-11 04:32 "your misplaced faith in humanity is adorable" is my new favorite phrase. 2013-10-11 06:32 eligrey has quit [Quit: Leaving] 2013-10-11 09:11 fwg has joined #elliottcable 2013-10-11 10:17 alexgordon has joined #elliottcable 2013-10-11 11:33 Sgeo has quit [Read error: Connection reset by peer] 2013-10-11 11:50 yorick has joined #elliottcable 2013-10-11 12:21 book` has joined #elliottcable 2013-10-11 12:22 book` has left #elliottcable [#elliottcable] 2013-10-11 12:43 PragCypher has joined #elliottcable 2013-10-11 12:51 yorickpeterse is now known as yorick-cowboy 2013-10-11 13:14 Sorella has joined #elliottcable 2013-10-11 13:19 yorick-cowboy is now known as yorickpeterse 2013-10-11 13:39 prophile has quit [Ping timeout: 256 seconds] 2013-10-11 13:45 cloudhead has joined #elliottcable 2013-10-11 13:45 prophile has joined #elliottcable 2013-10-11 14:25 wudofyr has quit [Ping timeout: 246 seconds] 2013-10-11 15:55 fwg has quit [Ping timeout: 264 seconds] 2013-10-11 16:40 cloudhead has quit [Ping timeout: 265 seconds] 2013-10-11 16:43 cuttle, alexgordon: would love to talk to both of you for a moment 2013-10-11 16:43 ELLIOTTCABLE: sure 2013-10-11 16:45 cuttle: you too. Here? 2013-10-11 16:46 seems not 2013-10-11 16:46 probably out converting people 2013-10-11 16:47 What's your life look like in the near future? Specifically, the month of November, as a whole. 2013-10-11 16:47 Chocolat work, etc. 2013-10-11 16:48 oh I have so much stuff going on it's not even funny :P 2013-10-11 16:48 but what is it 2013-10-11 16:48 Can you take a break, and/or postpone it? 2013-10-11 16:49 I'm at a point where a couple of things are coming together: 2013-10-11 16:49 I'll be in my new home, and still salaried-job-less; I'll be finished with this time-consuming move / travel; 2013-10-11 16:51 and Paws' work has amassed a nice collection of “delineated” work to be done. (We're finishing up a nice, workable specification of the currently-fully-designer points; we're at a nice ‘stopping point’ before diving into the next unspecified/undesigned parts) 2013-10-11 16:51 I'd like to make a big push, and at the end of November, have three big milestones completed: 2013-10-11 16:52 - two, separate, codebases, implemented up to or beyond the point that muPaws is (two, because that helps us triangulate any wishy-washy unspecified parts of the design) 2013-10-11 16:52 well 2013-10-11 16:52 - everything required for those, well-specified in a clean document, 2013-10-11 16:52 the spec was about the only thing that was helping me 2013-10-11 16:52 and - a website. 2013-10-11 16:53 spec needs to be done if you expect me to help 2013-10-11 16:53 So. I want to hire both of you, as contractors, to work through all that. 2013-10-11 16:53 Yeah. Spec is a part of, the first part of, all of that. 2013-10-11 16:53 MONEY?! why didn't you say 2013-10-11 16:53 :P 2013-10-11 16:53 ^ since we never got to the important stuff in the spec really 2013-10-11 16:53 (We can talk more about scheduling later, but I'd suspect we can work through the second half of the spec in less than the first week, of Nov.) 2013-10-11 16:54 So. I'm worried about cuttle's school-load. I need to talk to him about how many classes he's taking, etc. 2013-10-11 16:54 well I can make time (just less redditing right?) 2013-10-11 16:55 lol, you should teach Paws as a class 2013-10-11 16:55 lol 2013-10-11 16:55 god no that's a terrible idea 2013-10-11 16:55 Not just make time; I'd want the balance of your time (basically, I'm completely understanding of your commitments to ongoing product work; *and* I refuse to dig into anyone's Life Time if there's money exhanging hands … but I'd definitely want something like 70% of your work-time for the duration) 2013-10-11 16:56 If you're swamped right now, and cuttle's busy with class, I can put it off. 2013-10-11 16:56 well you get what you pay for 2013-10-11 16:56 But, long story short, this is exactly why I've been stockpiling Bitcoin. (= 2013-10-11 16:56 I think it'd be cool to fund an entire language design, with only BTC. 2013-10-11 16:56 if you want 70% of my time, then it'll cost you like... $10 a week 2013-10-11 16:57 fwg has joined #elliottcable 2013-10-11 16:58 driving 2013-10-11 16:58 k 2013-10-11 17:02 eligrey-space has joined #elliottcable 2013-10-11 17:03 eligrey-space has quit [Remote host closed the connection] 2013-10-11 17:09 Ohai 2013-10-11 17:11 Man, cuttle needs to come back from class. 2013-10-11 17:13 Anyway. Let's figure out when the best timing is. I've got several other plans in December, more traveling, more than I do in nov. But if that works out better for you n cuttle, I can work that out 2013-10-11 17:14 Then I'll want to sit down and schedule exactly how much there is to do, and how we can parallelize it. 2013-10-11 17:19 sharkbot has quit [Remote host closed the connection] 2013-10-11 17:19 ELLIOTTCABLE: alright 2013-10-11 17:19 sharkbot has joined #elliottcable 2013-10-11 17:27 By the end of November, I'd like to have a "presence" for Paws. Website, specification, and working implementation *for what we have so far*. 2013-10-11 17:28 I'd rather have a complete design/spec/impl for half of a language, than half of a design for a full language. 2013-10-11 17:30 hi bb 2013-10-11 17:30 Read backlog, brb 2013-10-11 17:30 ELLIOTTCABLE: FALL BREAK IS NEXT WEKE 2013-10-11 17:31 WEEK 2013-10-11 17:32 Mmmm. I'd rather figure out your workload, and have you some of the time, reliably, for a whole month; than have all of your time, for a week straight. 2013-10-11 17:32 cuttle: 2013-10-11 17:32 aight 2013-10-11 17:34 ELLIOTTCABLE: so the real question of all of our minds is, how many bitcoins? 2013-10-11 17:36 heh. Happy to discuss payment once I've got some more specifics down, and have a good period of time figured out. 2013-10-11 17:36 cuttle: so,which week is break; and then when is the semester entirely over, for you? 2013-10-11 17:37 oh. my. god 2013-10-11 17:37 just realize I've never plugged anything into this USB port 2013-10-11 17:37 should've put a towel down or something 2013-10-11 17:37 Wat 2013-10-11 17:38 I just popped a USB port's cherry (!) 2013-10-11 17:38 starting monday 2013-10-11 17:38 is fall break 2013-10-11 17:38 semester is over sometime in december 2013-10-11 17:38 alexgordon: lolol 2013-10-11 17:38 lolol 2013-10-11 17:40 Him. I'm traveling mid-November. Maybe a month, starting then, ending mid-December? Leaves time for various December plans, and snags cuttle's free-er time 2013-10-11 17:41 ELLIOTTCABLE: I feel like we should just camp out in a cabin in alaska xD 2013-10-11 17:41 Paws Conf 2013 2013-10-11 17:41 I'm sure you could arrange that 2013-10-11 17:42 bring cloudhead along and kidnap whitequark 2013-10-11 17:44 that'd be cool 2013-10-11 17:47 well i mean, first half of december is ramping up to finals 2013-10-11 17:47 second half of december is off school 2013-10-11 17:47 november is not as busy 2013-10-11 17:48 i'm down for alaska pawsconf 2013-10-11 17:48 i remember elliott saying if he ever made a pawsconf it'd be in alaska to punish eveyrone for having conferences where he had to travel a long way 2013-10-11 17:48 :p 2013-10-11 17:49 Of course I could arrange that 2013-10-11 17:49 But cuttle has class, and the rest of you have jobs. 2013-10-11 17:51 Well. If you can wrangle up at least three more of Devyn, prophile, cloudhead, judofyr, jeannicolas, whitequark, and inimino … I'd probs 2013-10-11 17:51 be willing to pitch in on some tickets. 2013-10-11 17:51 But that's a consideration for another time. 2013-10-11 17:52 “No conf without spec,” that's *my* motto. 2013-10-11 17:52 ELLIOTTCABLE: I agree already 2013-10-11 17:52 so, two more 2013-10-11 17:52 What we *should* do, more realistically, is have a Paws Day *after* another conf that's suitably related! or suitably interesting. 2013-10-11 17:53 What about that big PLT conference? I forget the name. 2013-10-11 17:53 Alternatively, I'm personally very interested in both RobotsConf in Florida in December, and of course the next JSconf. 2013-10-11 17:54 jsconf? over my dead body 2013-10-11 17:54 robotsconf sounds neat though 2013-10-11 17:54 idfk conference-scene in Europe, but that could work too, since like all of the relevant people except cuttle, me, and Devon are already there 2013-10-11 17:54 STOPITSTOPITSTOPIT IOS HIS NAME IS NOT DEVYON 2013-10-11 17:55 THAT SOUNDS LIKE TREYVON WITH A D AND HE IS VERY-NOT-BLACK 2013-10-11 17:55 11:52 AM <•ELLIOTTCABLE> “No conf without spec,” that's *my* motto. 2013-10-11 17:56 strange loop conf? 2013-10-11 17:56 Well. Anyway. Sounds cool to me. I'd consider going in part-way on tickets, for people who've contributed a lot to Paws over the years. Cuttle I'd definitely cover, to most anywhere; and halfsies at least for Alex. 2013-10-11 18:00 how much would a ticket be? 2013-10-11 18:05 PragCypher has quit [Quit: Leaving] 2013-10-11 18:14 I couldn't wade through that book. People kept telling me things about it that just rubbed me the wrong way. Seemed too washy-washy-ick. /= 2013-10-11 18:14 So many intelligent people rave about it, though. 2013-10-11 18:15 Whitequark: obviously depends on where we decide to do this. 2013-10-11 18:15 Oh, like, confer 2013-10-11 18:15 I suggest the article circle 2013-10-11 18:15 erm 2013-10-11 18:15 arctic 2013-10-11 18:15 itself? lol free. I'm not talking about anything big. Venue would probably literally be a cabin. Maybe we could go camping with laptops. (= 2013-10-11 18:15 lol 2013-10-11 18:15 Backpacking trip? 2013-10-11 18:16 Alaska is, of course, cool by me. :D 2013-10-11 18:18 U.S. visas are probably a problem, no? 2013-10-11 18:18 I hear that shit's a bitch. 2013-10-11 18:19 ELLIOTTCABLE: us tourist visas? 2013-10-11 18:19 Are they easy? I wouldn't know. 2013-10-11 18:21 I've never heard of a first-world country where tourist visas were hard to get 2013-10-11 18:22 you generally provide them a proof that you have enough money to live there 2013-10-11 18:22 and you're good to go. 2013-10-11 18:23 whitequark: first world? 2013-10-11 18:23 do you mean third world 2013-10-11 18:24 because, you've never tried to get a UK tourist visa :P 2013-10-11 18:24 hrm, no schengen for uk 2013-10-11 18:24 UK visas are more bureaucratic than russia, and *that's* saying something 2013-10-11 18:25 you tried to get a russian visa? why? 2013-10-11 18:25 nah never tried, I looked up the process 2013-10-11 18:25 said NOPE 2013-10-11 18:25 ELLIOTTCABLE: what book? 2013-10-11 18:26 whitequark: we have a common travel area with ireland 2013-10-11 18:26 because illegal immigrants 2013-10-11 18:27 I suppose that must be the definition of "first world problem" - when people want to get IN to your country instead of out of it 2013-10-11 18:27 lol exactly 2013-10-11 18:27 lol 2013-10-11 18:27 also you're said it exactly like someone from russia would 2013-10-11 18:27 *you've 2013-10-11 18:27 Cuttle: G.E.B. 2013-10-11 18:28 Strange loops? Goedel, Escher, Bach 2013-10-11 18:28 ELLIOTTCABLE: fucking love that book 2013-10-11 18:28 ELLIOTTCABLE: not wish washy ick at all 2013-10-11 18:28 got it sitting up on my shelf right now 2013-10-11 18:31 So, unrelated: alexgordon, cuttle, up for some spec work tonight? Need something on my mind that isn't packing, jesusihateeverything 2013-10-11 18:33 I wish I could join 2013-10-11 18:34 fucking timezones 2013-10-11 18:34 ELLIOTTCABLE: maybe in ~2 hours 2013-10-11 18:34 busy trying to get this to work 2013-10-11 18:34 I'm busy here, as well. Probably won't be home until 2:30+ from now. 2013-10-11 18:50 ELLIOTTCABLE: then it's settled. break out the wine and dim the lights, we're conceiving a language 2013-10-11 18:56 ELLIOTTCABLE: parser is done 2013-10-11 19:00 actually no still has bugs 2013-10-11 19:06 cloudhead has joined #elliottcable 2013-10-11 19:09 ok fixed bugs 2013-10-11 19:09 time to add error messages 2013-10-11 19:09 the most important part 2013-10-11 19:10 but first lunch 2013-10-11 19:52 hi, all 2013-10-11 19:55 just got back to the hotel. 2013-10-11 19:55 alexgordon: let me know when you're getting towards being free. I'm gonna drink my unreasonably large latte (five goddamn shots, because I'm so exhausted), and play Minecraft, until I feel a little more human. 2013-10-11 19:59 ELLIOTTCABLE: gimme 30 mins 2013-10-11 20:37 ELLIOTTCABLE: did you get eaten by a grue? 2013-10-11 20:39 hi! 2013-10-11 20:39 waiting on a call. 2013-10-11 20:39 also, elliottcable is clearly grueproof. 2013-10-11 20:40 'k 2013-10-11 20:40 heh 2013-10-11 20:41 I'm just having a bite to eat 2013-10-11 20:41 did we lose cuttle? 2013-10-11 20:47 have you guys ever tried D 2013-10-11 20:49 joelteon: yeah, don't like it 2013-10-11 20:49 C++11 has really put D out of business IMO 2013-10-11 20:49 it's a way superior programming model 2013-10-11 20:49 huh, really 2013-10-11 20:49 I don't like c++11 at all 2013-10-11 20:52 joelteon: then you'll love D! 2013-10-11 20:52 D is very 2000's in its design 2013-10-11 20:52 i.e. very Java 2013-10-11 20:53 there were quite a few languages after Java that take a lot of inspiration from it 2013-10-11 20:53 like C# 2013-10-11 20:53 ughghghthghrhgh 2013-10-11 20:53 there was a time when people thought the best way to design a language was: static typing, garbage collection, virtual methods 2013-10-11 20:54 Go is sort of the end of that line of languages 2013-10-11 20:54 well static typing is the best way 2013-10-11 20:54 Rust is the start of the new revolution 2013-10-11 20:56 niggler has quit [Quit: Computer has gone to sleep.] 2013-10-11 20:57 I like rust too 2013-10-11 20:57 it's immensely slow right now but it should get much faster hopefully 2013-10-11 21:09 eligrey has joined #elliottcable 2013-10-11 21:39 hi, all 2013-10-11 21:39 * ELLIOTTCABLE rubs his face 2013-10-11 21:39 hi ELLIOTTCABLE 2013-10-11 21:47 ughghghrghhg 2013-10-11 21:47 just can't justify this ddis 2013-10-11 21:47 ? 2013-10-11 21:49 cuttle: I have something you'd be interested in 2013-10-11 21:52 hi. 2013-10-11 21:52 okay. finally. jesus. 2013-10-11 21:52 god, moving is expensive. 2013-10-11 21:52 I've wasted SO MUCH on this shit. 2013-10-11 21:53 I wanna grab some food. alexgordon: how much longer you planning to be up? 2013-10-11 21:53 ELLIOTTCABLE: it's only 11pm 2013-10-11 21:53 * ELLIOTTCABLE nods 2013-10-11 21:53 I'm crashing soon *myself*, anyway. 'cause pretty fucking exhausted. 2013-10-11 21:53 I dunno a few hours at least 2013-10-11 21:53 yeah, same. 2013-10-11 22:00 restarting 2013-10-11 22:02 alexgordon has quit [Quit: ["Textual IRC Client: www.textualapp.com"]] 2013-10-11 22:05 Sorella has quit [Quit: Ex-Chat] 2013-10-11 22:09 so, I have this über, über, über-nice bathrobe I bought recently 2013-10-11 22:09 (matching ones for myself and Chelsea; made by Ugg, it's extreeeeeemly compfy) 2013-10-11 22:09 I meant to bring it with me. but ran out of room, shrugged, and left it. 2013-10-11 22:09 regret that IMMENSELY. 2013-10-11 22:10 all I want in the world, right now, is to be cuddled up in that amazing bathrobe, on my hotel bed, with my laptop; warm, compfy, happy; and brainstorming Paws. 2013-10-11 22:18 cuttle: been thinking about ‘insanities’ a bit. 2013-10-11 22:18 can make them a little more definite than I previously could. 2013-10-11 22:18 maybe all we need to do to achieve the sort of user-experience I was wanting, 2013-10-11 22:19 is A) figure out a healthy stratification of errors (think ‘classes of errors’ a lá Ruby, only without an object-system/inheritance behind it), 2013-10-11 22:19 alexgordon has joined #elliottcable 2013-10-11 22:19 B) have erroneous situations involve some sort of comparable severity-level, some way of saying “ is more or less severe than ”, 2013-10-11 22:20 and C) have a hard-core mindset, that we convey through to library devs and all the core tools, that ‘Partial results are better than no results’ 2013-10-11 22:20 eh 2013-10-11 22:20 not sold. 2013-10-11 22:20 mmmmmm. 2013-10-11 22:20 hello, alexgordon 2013-10-11 22:21 gonna run pick up food, after I dry off (mmmmhotshowerhappies). Then. Going to try to move forward on the spec. 2013-10-11 22:21 re-read what's there while I'm gone, see if you can recall where we were; 2013-10-11 22:21 and stack up some questions on the (many, obvious) unfinished parts. 2013-10-11 22:21 brb <3 2013-10-11 22:23 k 2013-10-11 22:48 and two more in the past hour 2013-10-11 22:54 yorick: Hm? 2013-10-11 22:54 ELLIOTTCABLE: counting the alas jokes 2013-10-11 22:56 hi 2013-10-11 22:56 ELLIOTTCABLE: hi! 2013-10-11 22:56 cuttlecuttlecuttlecuttle 2013-10-11 23:02 alexalexalexalex 2013-10-11 23:02 alexgordon: oh? 2013-10-11 23:02 ELLIOTTCABLE: sweet, 5 shots 2013-10-11 23:02 hiiiiii cuttle 2013-10-11 23:03 I want to solve programming. 2013-10-11 23:03 * cuttle just took a 2 and a half hour name 2013-10-11 23:03 nap* 2013-10-11 23:03 here's the problem: 2013-10-11 23:03 still coming up from it 2013-10-11 23:03 as you can see from me typing "name" instead of "nap" 2013-10-11 23:03 cuttle: http://chocolatapp.com/snaps/me_vs_hitchens.png 2013-10-11 23:03 there's only two situations in which a program can handle errors 2013-10-11 23:04 ELLIOTTCABLE: ddis? 2013-10-11 23:04 A) the action-site *and* the call-site(s) *both* have special code to handle the error 2013-10-11 23:05 what we need is a way for values to bubble 2013-10-11 23:05 (i.e. in traditional exception-style error handling, there's a ‘throw’ statement somewhere, and a ‘catch’ block somewhere else) 2013-10-11 23:05 OR, 2013-10-11 23:05 cuttle: I wondered why christopher hitchens had such a soothing and seductive voice, so I did a frequency analysis on it... 2013-10-11 23:05 and not-returning does bubble, but carries precisely no info 2013-10-11 23:05 B) the action-site has special code to handle the error, and it needs no information from the call-site to recover 2013-10-11 23:05 alexgordon: hahahahahaha 2013-10-11 23:05 cuttle: turns out it's not just because it's *deep*, but because it has an even distribution of frequencies 2013-10-11 23:05 alexgordon: well i mean mic and recording environment shape frequency distribution quite a bit too 2013-10-11 23:05 in a bell shape 2013-10-11 23:05 (i.e. traditional “use a good-enough value since the call-site fucked up.” such as type-coercion, or whatever.) 2013-10-11 23:06 cuttle: yeah true but I have a good mic now :P 2013-10-11 23:06 alexgordon: i would say it's more just that it has a lot of presence in the deep end :p[ 2013-10-11 23:06 cuttle: hitchens is on the right btw 2013-10-11 23:06 * cuttle nods 2013-10-11 23:06 ELLIOTTCABLE: we should do lots of just restart on fail like erlang 2013-10-11 23:07 to test it better I should say the same words he's saying 2013-10-11 23:07 hol' on 2013-10-11 23:07 but you know *exactly* what to restart becuase you track it with the dep graph 2013-10-11 23:07 not talking solutions yet 2013-10-11 23:07 flavouring the problem. 2013-10-11 23:07 alexgordon: yeah like how long of a sample is each one 2013-10-11 23:07 so. 2013-10-11 23:08 cuttle: 4 minutes for hitchens 2013-10-11 23:08 either both-have-knowledge, or one-has-knowledge-AND-doesn't-need-extra-data, are solved. 2013-10-11 23:08 what I want, is the impossible: 2013-10-11 23:08 it's quite amazing how *perfect* that distribution is 2013-10-11 23:08 I want the action-site to be able to recover, *no matter what*, without the call-site having further information. 2013-10-11 23:08 I suppose you could say, I want error-handling, without catch-blocks. 2013-10-11 23:09 alexgordon: see that would also fill it out a lot more 2013-10-11 23:09 for sure 2013-10-11 23:09 alexgordon: also i suspect the peak ~10hz for you comes from like, a nearby factory 2013-10-11 23:10 ;p 2013-10-11 23:10 ha nah no factories in titsandham anymore :P 2013-10-11 23:10 could be like a distant washing machine 2013-10-11 23:10 or just interface noise 2013-10-11 23:11 … tits and ham? 2013-10-11 23:11 ELLIOTTCABLE: http://tnh.ytmnd.com/ 2013-10-11 23:17 wat. 2013-10-11 23:17 alexgordon: solve this mathematical formulae: 2013-10-11 23:17 alexgordon: https://twitter.com/ELLIOTTCABLE/status/388805357386366977 2013-10-11 23:18 ELLIOTTCABLE: the answer to the second one is clearly {52, 11, 44} 2013-10-11 23:19 noe, it is horse 2013-10-11 23:19 you have to solve for horse 2013-10-11 23:19 which is non-trivial because horse is already on a side by itself, but it is clearly not yet solved 2013-10-11 23:20 ELLIOTTCABLE: the answer is findus 2013-10-11 23:23 alexgordon: what is titsandham a nickname for :p 2013-10-11 23:23 tit, sand ham 2013-10-11 23:23 ELLIOTTCABLE: no emoji :( 2013-10-11 23:24 cuttle: https://en.wikipedia.org/wiki/Twickenham 2013-10-11 23:24 wait wtf right clicking on it shows it correctly in the "search for" 2013-10-11 23:25 Bubonic plague spread to the town in 1665 and 67 deaths were recorded. It appears that Twickenham had a pest house (short for "pestilence") in the 17th century, although the location is not known. 2013-10-11 23:25 There was also a Watch House in the middle of the town, with stocks, a pillory and a whipping post whose owner was charged to "ward within and about this Parish and to keep all Beggars and Vagabonds that shall lye abide or lurk about the Towne and to give correction to such...". 2013-10-11 23:26 hey the ferry has its own wikipedia article! https://en.wikipedia.org/wiki/Hammerton%27s_Ferry 2013-10-11 23:26 lol this counts as a "terminal" https://upload.wikimedia.org/wikipedia/commons/1/1c/Hammerton%27s_Ferry_south_pier.jpg 2013-10-11 23:26 lol 2013-10-11 23:27 alexgordon: LOL 2013-10-11 23:30 alexgordon: hahah 2013-10-11 23:33 i love like 2013-10-11 23:33 british isles folk music 2013-10-11 23:36 cuttle: that exists? 2013-10-11 23:37 alexgordon: like songs like scarborough fair lol 2013-10-11 23:37 lol 2013-10-11 23:37 alexgordon: of course it exists 2013-10-11 23:37 http://www.amazon.com/Watching-White-Wheat-British-Singers/dp/B000002ROI 2013-10-11 23:38 you seem to know a lot more about this than me :P 2013-10-11 23:38 haha 2013-10-11 23:38 some more 2013-10-11 23:39 http://www.amazon.co.uk/If-Winters-Night-Gatefold-Cover/dp/B002H3F7F6 2013-10-11 23:43 riverdance? 2013-10-11 23:54 whe? 2013-10-11 23:54 sorry folks gtg 2013-10-11 23:54 talk to you soon 2013-10-11 23:55 noooo 2013-10-12 00:21 Sgeo has joined #elliottcable 2013-10-12 00:29 fwg has quit [Ping timeout: 272 seconds] 2013-10-12 01:49 badfeels 2013-10-12 01:58 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-12 02:03 cloudhead has quit [Ping timeout: 272 seconds] 2013-10-12 02:06 niggler has joined #elliottcable 2013-10-12 03:01 yorick has quit [Read error: Connection reset by peer] 2013-10-12 06:16 eligrey has quit [Quit: Leaving] 2013-10-12 11:19 cloudhead has joined #elliottcable 2013-10-12 12:22 jez0990 has quit [Remote host closed the connection] 2013-10-12 12:24 jez0990 has joined #elliottcable 2013-10-12 12:28 jez0990 has quit [Read error: Connection reset by peer] 2013-10-12 13:01 cloudhead has quit [Ping timeout: 272 seconds] 2013-10-12 14:01 fwg has joined #elliottcable 2013-10-12 14:03 PragCypher has joined #elliottcable 2013-10-12 14:18 yorick has joined #elliottcable 2013-10-12 15:06 alexgordon has joined #elliottcable 2013-10-12 16:49 niggler has quit [Read error: Connection reset by peer] 2013-10-12 17:04 cloudhead has joined #elliottcable 2013-10-12 17:11 eligrey has joined #elliottcable 2013-10-12 17:12 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-12 17:29 sharkbot has quit [Remote host closed the connection] 2013-10-12 17:30 sharkbot has joined #elliottcable 2013-10-12 18:03 niggler has joined #elliottcable 2013-10-12 18:13 alexgordon has joined #elliottcable 2013-10-12 18:14 PragCypher has quit [Quit: Leaving] 2013-10-12 18:51 this has gotta be one of the best things i've ever read 2013-10-12 18:51 http://www.reddit.com/r/science/comments/6nz1k/got_six_weeks_try_the_hundred_push_ups_training/c04ehte 2013-10-12 18:53 this is good too http://www.reddit.com/r/AskReddit/comments/cfbkx/im_85_certain_that_there_is_an_adult_actress_in/c0s5w6t 2013-10-12 21:28 hi 2013-10-12 21:28 cuttle: hi! 2013-10-12 21:29 hi cuttle 2013-10-12 21:30 i'm in chicago union station 2013-10-12 21:34 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-12 22:14 alexgordon has joined #elliottcable 2013-10-12 23:17 alexgordon: 2013-10-12 23:17 ELLIOTTCABLE: 2013-10-12 23:18 cuttle: 2013-10-12 23:18 ELLIOTTCABLE 2013-10-12 23:20 ??? 2013-10-12 23:20 Joelteon: WAt 2013-10-12 23:20 WAt 2013-10-12 23:20 i found this library on hackage that provides a way to encode monadic operations on the type level 2013-10-12 23:20 joelteon: YOU'RE LIKE A COUPLE BLOCKS FROM MY PLACE, AND DIDNT TELL ME?! 2013-10-12 23:21 yeah 2013-10-12 23:21 oh, whoops 2013-10-12 23:23 >,< 2013-10-12 23:23 I thought you lived in Alaska 2013-10-12 23:25 joelteon: ELLIOTTCABLE is omnipresent 2013-10-12 23:26 oh right 2013-10-12 23:38 yorick has quit [Remote host closed the connection] 2013-10-13 00:14 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-13 00:19 fwg has quit [Ping timeout: 272 seconds] 2013-10-13 00:42 Elliott is nomadic. He does it so the machines from the future can't find him. 2013-10-13 00:43 Plot twist: Paws is Skynet. 2013-10-13 01:05 cloudhead has quit [Ping timeout: 240 seconds] 2013-10-13 02:06 brr has quit [Ping timeout: 260 seconds] 2013-10-13 02:08 brr has joined #elliottcable 2013-10-13 02:45 guys check out this neat definition of liftM2 I wrote 2013-10-13 02:46 liftM2 = flip ((<$>)<$>(join<$>)<$>(<$>)<$>flip(<$>))<$>(<$>) 2013-10-13 05:45 PragCypher has joined #elliottcable 2013-10-13 06:01 eligrey has quit [Quit: Leaving] 2013-10-13 06:28 Sgeo_ has joined #elliottcable 2013-10-13 06:30 Sgeo has quit [Ping timeout: 240 seconds] 2013-10-13 08:54 joelteon: lol 2013-10-13 08:54 lol 2013-10-13 09:28 wudofyr has joined #elliottcable 2013-10-13 10:01 fwg has joined #elliottcable 2013-10-13 12:42 cloudhead has joined #elliottcable 2013-10-13 14:03 niggler has quit [Quit: Computer has gone to sleep.] 2013-10-13 14:16 cloudhead has quit [Ping timeout: 245 seconds] 2013-10-13 15:04 fwg has quit [Ping timeout: 246 seconds] 2013-10-13 16:53 eligrey has joined #elliottcable 2013-10-13 17:11 cloudhead has joined #elliottcable 2013-10-13 17:31 fwg has joined #elliottcable 2013-10-13 17:47 sharkbot has quit [Remote host closed the connection] 2013-10-13 17:47 sharkbot has joined #elliottcable 2013-10-13 20:24 yorick has joined #elliottcable 2013-10-13 21:01 silentbicycle has joined #elliottcable 2013-10-13 21:05 silentbicycle: cool, cool. I'll be around for the first half of this coming week rather a lot, probably. 2013-10-13 21:06 but I'll be in Portland come the end of the week. heading to @RealtimeConf. 2013-10-13 21:06 all right 2013-10-13 21:07 mcc has joined #elliottcable 2013-10-13 21:07 Now, technically, shouldn't this be ##elliottcable? :P 2013-10-13 21:07 nope! 2013-10-13 21:07 Are you open source? 2013-10-13 21:07 It's a channel officially dedicated to my products. 2013-10-13 21:07 Oh! OK. 2013-10-13 21:07 So, it's like, say, #GitHub. 2013-10-13 21:07 ELLIOTTCABLE is an organization. ;) 2013-10-13 21:08 but, more usefully, and unofficially, it's a channel dedicated to discussing programming-language development, 2013-10-13 21:08 and less usefully and even *less* officially, it's dedicated to discussing changing the world with our magical super-powers. 2013-10-13 21:09 that sounds within the bounds of the open source project 2013-10-13 21:09 sorry, I'm pseudo-not-here. Wheels up from Philly to Chicago in about thirty minutes, and I'm neck-deep in researching feminist mores. 2013-10-13 21:10 mcc: also: followed you through Melissa, and super-happy with what I've seen so far. 2013-10-13 21:11 Yours is quickly becoming one of my top-ten Twitter streams. 2013-10-13 21:12 haha ok thank you 2013-10-13 21:12 0xabad1dea melissa? I don't think she follows me 2013-10-13 21:15 * ELLIOTTCABLE eyebrow 2013-10-13 21:15 I definitely know I followed you through her; perhaps she'd just retweeted you one time too many through somebody else, then. 2013-10-13 21:16 haha could have happened :) or I @ed her or somehing. 2013-10-13 21:16 something 2013-10-13 21:18 man, where'd the damn post go … 2013-10-13 21:19 lessee. consistency and replication in distributed systems, lua coroutines (thanks, silentbicycle), IRC, a whitepaper on CRDTs, 2013-10-13 21:20 ahhah! 2013-10-13 21:20 * ELLIOTTCABLE http://iangent.blogspot.co.uk/2013/10/the-petrie-multiplier-why-attack-on.html 2013-10-13 21:20 what an enlightening post. 2013-10-13 21:21 mcc: what're your go-to languages, if not JS or Ruby? 2013-10-13 21:21 heh 2013-10-13 21:22 Elliottcable: In order of preference, Lua, Python, C++, Objective C. 2013-10-13 21:22 Python or C++ are a toss-up which I'd prefer. 2013-10-13 21:22 mmm, fuck C++, but I like the rest. 2013-10-13 21:22 Heh 2013-10-13 21:22 If you restrict yourself to a particular part of the language 2013-10-13 21:22 dabble much in anything more interesting? (Although I might actually argue that lua counts as interesting, nowadays.) 2013-10-13 21:22 You can do some very nice things in it. 2013-10-13 21:22 mmmm. I've always found it, the people who develop with it, the conventions used thereby, and the APIs available to developers using it, too revolting to learn it well. 2013-10-13 21:23 Yeah you want to avoid many of those APIs/conventions like the plague 2013-10-13 21:23 ObjC or C99, when I need to be that low, thankyewverymuch. 2013-10-13 21:23 So assuming we have the same definition of "Interesting", and I think we do, I think Lua is itself quite Interesting, and no, I actually avoid "Interesting" languages these days 2013-10-13 21:23 mmm why's that? 2013-10-13 21:23 What i want these days is languages with a wide install base and broad set of support software. 2013-10-13 21:24 mmmm. something I can understand, for some tasks. 2013-10-13 21:24 I find PL design really fascinating, but I want to apply things to solve problems and I think the self-limiting nature of a lot of "interesting" PL means that that will get in the way 2013-10-13 21:24 but that applies to what one might call “work” tasks. What about your ‘off-time,’ or hobby-time? Great times to play with new tooling. 2013-10-13 21:24 Taste the waters, figure out what's coming five, ten years down the line. 2013-10-13 21:25 I'll be able to solve really neat problems within a file, then I'll need to like… decode a PNG, or run on Android, and suddenly I'm fucked. 2013-10-13 21:25 My off-time coding is about as structured as my "on the clock" coding :) 2013-10-13 21:25 that's unfortunate! D: 2013-10-13 21:25 Nope, it's the way I want things. 2013-10-13 21:25 okay, gotta pack up and go board a flying deathtrap. 2013-10-13 21:25 I'll be back on in a couple hours. hearts. 2013-10-13 21:25 More to the point, my off-time coding tends toward games ( http://runhello.com/ ) which comes with… interesting challenges 2013-10-13 21:26 If I want to make video games which are *portable* 2013-10-13 21:26 Then I have an entire unusual set of challenges 2013-10-13 21:26 mcc: meet cuttle (@micahrjohnston) 2013-10-13 21:26 Erlang looks super cool but I doubt it's deployable 2013-10-13 21:26 cuttle: meet mcc (@mcclure111) 2013-10-13 21:26 elliotcable: ah ok. have fun 2013-10-13 21:26 he's a games-dev nut, as well. 2013-10-13 21:27 bbl! 2013-10-13 21:28 heh 2013-10-13 21:44 cloudhead has quit [Ping timeout: 252 seconds] 2013-10-13 21:45 alexgordon has joined #elliottcable 2013-10-13 22:47 alexgordon! 2013-10-13 22:47 I'm on a plane! I'm also a snake! 2013-10-13 22:47 omg 2013-10-13 22:47 you're on a plane 2013-10-13 22:47 internet on planes is the most mindblowing shit ever 2013-10-13 22:50 A little bit. 2013-10-13 22:56 ELLIOTTCABLE: so when can we paws? 2013-10-13 22:57 mmm. shit's kinda, come up. 2013-10-13 22:57 in the worst way. /= 2013-10-13 22:57 I miiiiight, I guess, have a lot of time on the computer over the next few days 2013-10-13 22:57 but I'll also likely be waaaaay too depressed to focus well 2013-10-13 22:57 proposal to drop call/cc from scheme. mind blown. 2013-10-13 22:58 * ELLIOTTCABLE http://lists.scheme-reports.org/pipermail/scheme-reports/2012-February/001824.html 2013-10-13 23:00 ELLIOTTCABLE: :( 2013-10-13 23:00 we can talk Paws now, if you like 2013-10-13 23:00 wonder if mcc and silentbicycle are still around? 2013-10-13 23:02 mcc: related: Where do you live? (++ cheeseburgers with egg; discovered those this year, and am in love. and ++ strawberry/cheesecake/both/either.) 2013-10-13 23:07 alexgordon: 'round? 2013-10-13 23:07 yeah 2013-10-13 23:07 meh, landing in 35m, apparently. 2013-10-13 23:07 so maybe not start anything. 2013-10-13 23:07 tonight's, gonna, suck. somebody wish me luck. plzplzplz. 2013-10-13 23:08 ELLIOTTCABLE: good luck, whatever it is 2013-10-13 23:10 * mcc is around and is in the san francisco bay area. 2013-10-13 23:11 fwg has quit [Ping timeout: 240 seconds] 2013-10-13 23:13 thanks alexgordon 2013-10-13 23:13 love you <3 2013-10-13 23:14 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-13 23:14 eligrey has quit [Ping timeout: 245 seconds] 2013-10-14 01:28 alexgordon has joined #elliottcable 2013-10-14 01:40 ELLIOTTCABLE: IDEA IDEA 2013-10-14 01:44 4:47 PM <•alexgordon> omg 2013-10-14 01:44 4:47 PM <•alexgordon> internet on planes is the most mindblowing shit ever 2013-10-14 01:44 4:47 PM <•alexgordon> you're on a plane 2013-10-14 01:44 mcc: hi 2013-10-14 01:44 hi cut 2013-10-14 01:44 ELLIOTTCABLE: :( 2013-10-14 01:45 hi alexgordon 2013-10-14 01:45 alexgordon: how much of "insanities" do you know? 2013-10-14 01:46 cuttle: you mean other than ec? 2013-10-14 01:46 alexgordon: i mean the paws error recovery mechanism thing 2013-10-14 01:46 nothing 2013-10-14 01:47 niggler has joined #elliottcable 2013-10-14 01:48 cuttle: go 2013-10-14 01:49 alexgordon: listen 2013-10-14 01:49 ok i'll tell alexgordon about insanities on a high level, because that's how in-depth they've been designed :p then go on to my idea 2013-10-14 01:49 so paws programs are basically a big old dependency graph 2013-10-14 01:49 with lots of stuff running independent of each other 2013-10-14 01:50 and the ownership system is what keeps you safe from inconsistencies 2013-10-14 01:50 so, since it's a big ol graph, you can define the exact "light cone"/area of the graph which a particular event has affected at a particular point in time 2013-10-14 01:51 so wrongness can be tracked 2013-10-14 01:51 "insanity" 2013-10-14 01:51 is what we called it 2013-10-14 01:51 so you track it, stop it from reaching certain areas, know what you have to redo to fix things, etc. 2013-10-14 01:52 so my idea: 2013-10-14 01:52 insanities imply some sort of mechanism for allowing more than just plain values to propagate through the network, without having to explicitly add support for that in all your code 2013-10-14 01:52 a thing I didn't realize was similar until just now: 2013-10-14 01:53 if you have implicit distribution over a network, you also have metadata invisibly accompanying values, this time things like IP headers and shit 2013-10-14 01:53 so: unify those two mechanisms 2013-10-14 01:53 Slow down 2013-10-14 01:53 Re-explain 2013-10-14 01:53 Implies some sort of … 2013-10-14 01:54 so like 2013-10-14 01:54 you just write x <- 3 + 3 2013-10-14 01:54 and then if one of the 3s is wrong 2013-10-14 01:54 x is wrong 2013-10-14 01:54 yknow 2013-10-14 01:54 but you didn't write that when you defined x 2013-10-14 01:55 Hm. There'll have to be *some* definition mehanism, with same defaults 2013-10-14 01:55 cloudhead has joined #elliottcable 2013-10-14 01:55 " can tolerate ” 2013-10-14 01:55 is currently broken, and spawns ” 2013-10-14 01:56 well we could have ways to like seal off parts of the program 2013-10-14 01:56 OH OH WORKS FOR SECURITY TOO 2013-10-14 01:56 remember how you don't pass plaintext password over network 2013-10-14 01:56 so you seal off parts of the program from certain wrongness 2013-10-14 01:56 and also from insecurity 2013-10-14 01:56 and also from unsanitized user input 2013-10-14 01:56 Hm. I'm *really* afraid to use the word security. 2013-10-14 01:56 not security 2013-10-14 01:56 but like 2013-10-14 01:56 Call it partitioning or seperation of concerns, not security 2013-10-14 01:56 yeah 2013-10-14 01:56 partitioning 2013-10-14 01:56 Hmmm. Slow down. 2013-10-14 01:57 More communication, less ideas, would be a good phrase of thumb for you, young Padawan ;P 2013-10-14 01:57 So. Interesting relation to plaintext network. 2013-10-14 01:57 lol k 2013-10-14 01:57 lol 2013-10-14 01:57 Starting to triangulate lower-level specifics now. 2013-10-14 01:58 Your unified system, definitely very paws. 2013-10-14 01:58 Generalize, abstract, remove, repeat. 2013-10-14 01:58 Hm. 2013-10-14 01:58 -_- 2013-10-14 01:58 I'd rather not open it up directly, though. 2013-10-14 01:59 this turned into a lot of jargon very quickly 2013-10-14 01:59 we need to finish the spec 2013-10-14 01:59 But *the language design*, if not the user, can definitely leverage this approach in multiple ways. 2013-10-14 01:59 so I can understand half of what you to talk about 2013-10-14 01:59 *two 2013-10-14 01:59 Alex: no way in hell this is going in the spec. Obviously very errrrrr nebulous right now 2013-10-14 02:00 ELLIOTTCABLE: but I don't understand what any of it means 2013-10-14 02:00 … you say that as if you're under the misapprehension that *we* understand more than half of what we mean. 2013-10-14 02:00 ELLIOTTCABLE: no i honestly think we should expose it 2013-10-14 02:00 let people hook into it 2013-10-14 02:00 and use it everywhere for things like user input sanitization and stuff 2013-10-14 02:00 alexgordon: don't worry, we do understand what we mean 2013-10-14 02:01 alexgordon: i need to just sit down and explain paws to you in terms you know 2013-10-14 02:01 Sorry. Micah got distracted into conveying his idea to me, instead of explaining insanity at a high level 2013-10-14 02:01 cuttle: yes... a spec 2013-10-14 02:01 Re: input sanitization … 2013-10-14 02:01 You know Ruby's safety-level? 2013-10-14 02:01 That. 2013-10-14 02:01 i do not know it 2013-10-14 02:01 It's super fucking simple. 2013-10-14 02:01 Iirc, there's like three integer values for $SAFE, or something 2013-10-14 02:02 Higher levels disable, *provably*, particular aspects of the language. Like writing to disk or processes. 2013-10-14 02:02 You can make $SAFE global a bigger number, but not a smaller one. 2013-10-14 02:02 ELLIOTTCABLE: USE THIS FOR IPP QUARANTINE AS WELL 2013-10-14 02:02 So once something, somewhere, says “I'VE GOT UNSAFE DATA COMING IN,” 2013-10-14 02:03 then the rest of the program forever, WHATEVER that data does, is quarantined 2013-10-14 02:03 so. 2013-10-14 02:03 We're talking about: 2013-10-14 02:03 Generalizing that, and then making it smarter (that is, building it on top of our inherent graph-knowledgeable was.) 2013-10-14 02:03 knowledgeableness+ 2013-10-14 02:04 Here's the mild plans I've got formulating: 2013-10-14 02:04 ELLIOTTCABLE: AND UNIFY WITH OWNERSHIP 2013-10-14 02:04 eligrey has joined #elliottcable 2013-10-14 02:04 The equivalent of $SAFE, but inherited with the tree. Immutable once set. An API to associate a particular Thing (probably, usually, a symbol) with a particular Execution. 2013-10-14 02:05 Then, that Thing is forever associated with every Execution that is affected by that. 2013-10-14 02:05 I.e. The association-with this particular key-Thing, cascades / infects through the code-graph. 2013-10-14 02:05 Could have: this-code-is-insane key 2013-10-14 02:06 or user-input key 2013-10-14 02:06 or this-data-never-leaves-this-Unit key 2013-10-14 02:06 well i mean you should be able to propagate un-wrong-ness 2013-10-14 02:06 yknow 2013-10-14 02:06 like 2013-10-14 02:06 boom. federation-sanitation solved. 2013-10-14 02:06 fix a problem at the root 2013-10-14 02:06 and correct outwards 2013-10-14 02:06 Hm. Disagree. At least, until you have a good argument. 2013-10-14 02:06 Here's why;: 2013-10-14 02:07 Better to fix the thing you did wrong, so to speak, and then re-call the thing that went insane. 2013-10-14 02:07 well yeah 2013-10-14 02:07 That way, sanity progresses through the same tree as the insanity did. 2013-10-14 02:07 the only way things propagate is through calling 2013-10-14 02:07 Yeah. It's Paws. No going back, or undoing, or changing you mind, 2013-10-14 02:07 EXCEPT through timetravel 2013-10-14 02:07 Which is exactly the undo mechanism you want, anyway. 2013-10-14 02:08 if you want to propagate sanity, time-travel back to a point before the insanity surfaced, fix, and re-crawl from that point 2013-10-14 02:08 ok i want alex up to speed with us 2013-10-14 02:08 alexgordon: 2013-10-14 02:08 time to learn paws 2013-10-14 02:08 lol 2013-10-14 02:08 lol 2013-10-14 02:08 I have to go. So that works out. I'll be reading on and off, though. 2013-10-14 02:08 ok cool 2013-10-14 02:08 ELLIOTTCABLE: fly safe o7 :x ;_; 2013-10-14 02:09 Wish me happies, guys. Wish me so many happies. 2013-10-14 02:09 ELLIOTTCABLE: *happy* 2013-10-14 02:10 (did you get the joke i was stealing all your emoticons and phrases) 2013-10-14 02:11 alexgordon: here is the concrete part of paws: 2013-10-14 02:11 data types: 2013-10-14 02:11 -spec @ cuttle 2013-10-14 02:11 cuttle: Paws' half-arsed Version 10 specification 2013-10-14 02:11 this is where we got to 2013-10-14 02:11 ok 2013-10-14 02:11 i want to do a furrow-one-page spec 2013-10-14 02:13 A4! 2013-10-14 02:13 ! 2013-10-14 02:13 cuttle: one sheet, two pages :P 2013-10-14 02:13 No you got hit by a car typing that 2013-10-14 02:13 haha aight 2013-10-14 02:13 Idea: turn A4 into a PLT competition. 2013-10-14 02:14 “Express your latest cool idea in a fully-functional language. Must fit in , on two pages.” 2013-10-14 02:14 ELLIOTTCABLE: already happened 2013-10-14 02:14 “Steal promiscuously. Slice, dice, and reduce.” 2013-10-14 02:14 ELLIOTTCABLE: alan kay wrote the kernel smalltalk in like a screenful of code, on a bet 2013-10-14 02:15 kernel of* 2013-10-14 02:15 Yes but ongoing 2013-10-14 02:15 yeah for sure 2013-10-14 02:15 As a teaching-PLT thing 2013-10-14 02:16 ok going to write an a4 gist 2013-10-14 02:28 ELLIOTTCABLE: the whole hidden-system-data thing, where everything is overtly a list, and numbers, symbols, etc. just have hidden impl data, makes me slightly nervous for network-transport. every value should be network-sendable 2013-10-14 02:29 alexgordon: keep in mind this a4 is not the grand vision of paws, but a pale implementable shadow thereof 2013-10-14 02:29 k 2013-10-14 02:32 alexgordon: what do you feel about the name "procedure" 2013-10-14 02:32 instead of execution 2013-10-14 02:33 yorick has quit [Remote host closed the connection] 2013-10-14 02:34 cuttle: eh 2013-10-14 02:34 I feel like executions have more baggage than mere procedures 2013-10-14 02:43 cuttle: hm? 2013-10-14 02:44 procedures are what I'm doing in the higher-level language. 2013-10-14 02:44 Fullness has *actual* procedures (more function-like, single entrance single exit) 2013-10-14 02:45 oh well i've been calling em procedures in this A4 2013-10-14 02:45 it's chill 2013-10-14 02:45 I need to sleep 2013-10-14 02:46 cuttle: ping me tomorrow ya? 2013-10-14 02:46 aawwww almmost donenoeneone 2013-10-14 02:46 :(:(((::((( 2013-10-14 02:46 alexgordon: ok fine 2013-10-14 02:46 :< 2013-10-14 02:46 ok 5 minutes :P 2013-10-14 02:46 cool 2013-10-14 02:47 mcc: hi 2013-10-14 02:47 mcc: since alexgordon is leaving, we should teach *you* Paws. 2013-10-14 02:47 or at least, I can tell you about it, until things go down over here. 2013-10-14 02:51 ughighgugh 2013-10-14 02:51 sentence on the internet just inspired micahjohnston-level rage in me 2013-10-14 02:51 * alexgordon zzzzzzzzzzzzz 2013-10-14 02:51 “I have a strong "do no harm" ethic, but confusing students doesn't count as harm. :-)” 2013-10-14 02:51 WORST LIES WORST LIES OMG LIES 2013-10-14 02:51 alexgordon has quit [Quit: ["Textual IRC Client: www.textualapp.com"]] 2013-10-14 02:53 ok getting a bit messy 2013-10-14 02:53 ELLIOTTCABLE: hm where 2013-10-14 02:53 aw ok alexgordon is gone 2013-10-14 02:53 ltu 2013-10-14 02:53 :( 2013-10-14 02:54 oh 2013-10-14 02:54 yeah 2013-10-14 02:54 Paws isn't a4'able 2013-10-14 02:54 not in any sane state 2013-10-14 02:54 yea 2013-10-14 02:54 more what I meant, than, 2013-10-14 02:54 “reduce your language work to a single page,” 2013-10-14 02:54 this is exposing all sorts of vagueness :p 2013-10-14 02:54 is “take out the single coolest thing of your language work, trash everything else, and embed that single cool thing in the Ruttiest framework possible, so you can fit it on a single page.” 2013-10-14 02:54 so, Tempus <-> reactive values in a rutty framework, 2013-10-14 02:55 Paws <-> CPS VM with a bunch of rutty bullshit thrown in to make it program-in-able. 2013-10-14 02:55 yeah :p 2013-10-14 02:55 paws and tempus are sort-of kind-of converging in my head 2013-10-14 02:57 so i think maybe i should make 2013-10-14 02:57 tempus be 100% non-rut aspirations, and dial back the non-rut aspirations of Paws in my head 2013-10-14 03:02 like right now paws is very much patterned after dynamic languages where objects are property-lists with pointer-identity that exist on a heap and stuff 2013-10-14 03:33 cloudhead has quit [Ping timeout: 265 seconds] 2013-10-14 05:38 cuttle: also, hi 2013-10-14 05:38 mcc: hi 2013-10-14 06:09 eligrey has quit [Quit: Leaving] 2013-10-14 06:13 hi! 2013-10-14 06:13 cuttle: yeah, absolutely 2013-10-14 06:13 Paws is hugely a compromise. 2013-10-14 06:13 everything went better than expected, by the way. 2013-10-14 06:13 I'm actually alive. 2013-10-14 06:13 oh that's great 2013-10-14 06:14 don't know what could have gone wrong but 2013-10-14 06:14 great anyway :p 2013-10-14 06:14 I feel like there's a substantial chance that I wasn't going to come out of that with all my limbs x: 2013-10-14 06:14 paws, tomorrow. sleep, and unpacking, now. 2013-10-14 06:14 so, so happy. 2013-10-14 06:14 everybody give me happy faces. HAPPYFACES, GO 2013-10-14 06:16 ELLIOTTCABLE: : 2013-10-14 06:16 ELLIOTTCABLE: 3 2013-10-14 06:16 yessssss 2013-10-14 06:16 this kick drum is huuuge 2013-10-14 06:16 :D 2013-10-14 06:17 <3 layering 2013-10-14 06:17 Let it be known that cuttle hearts layering. 2013-10-14 06:22 ugh this is turning out to be complete shit 2013-10-14 06:23 music is hard 2013-10-14 06:23 should i get coffee 2013-10-14 06:23 or nap 2013-10-14 07:33 ELLIOTTCABLE: Ruby safety level is also one big security hole 2013-10-14 07:34 and it got partially killed even in MRI, and rbx/jruby won't support it at all, because it's pointless. 2013-10-14 07:35 mcc has quit [Quit: This computer has gone to sleep] 2013-10-14 07:40 fwg has joined #elliottcable 2013-10-14 07:40 fwg has joined #elliottcable 2013-10-14 07:40 fwg has quit [Changing host] 2013-10-14 07:42 by the way, you were going to teach paws me, and did not! 2013-10-14 07:42 at least, non-rutty parts. 2013-10-14 11:23 Sgeo_ has quit [Read error: Connection reset by peer] 2013-10-14 12:03 cloudhead has joined #elliottcable 2013-10-14 12:29 what was 2013-10-14 12:29 the thing 2013-10-14 12:29 which fixes syscall results and thread interleavings 2013-10-14 12:58 Cypher has joined #elliottcable 2013-10-14 12:58 Cypher is now known as Guest42202 2013-10-14 12:59 Guest42202 has quit [Client Quit] 2013-10-14 13:06 prophile: scribe, the deterministic record-replay engine ? 2013-10-14 13:06 the domain was something about violet but my history only suggests ShrinkingViolet from tvtropes. 2013-10-14 13:06 velvetpulse.com. 2013-10-14 13:10 cloudhead has quit [Ping timeout: 248 seconds] 2013-10-14 13:12 dskuza has quit [Ping timeout: 246 seconds] 2013-10-14 13:12 silentbicycle has quit [Ping timeout: 246 seconds] 2013-10-14 13:29 yorick has joined #elliottcable 2013-10-14 13:34 silentbicycle has joined #elliottcable 2013-10-14 15:18 dskuza has joined #elliottcable 2013-10-14 15:58 eligrey has joined #elliottcable 2013-10-14 16:45 fwg has quit [Ping timeout: 252 seconds] 2013-10-14 17:25 niggler has quit [Ping timeout: 240 seconds] 2013-10-14 17:25 cloudhead has joined #elliottcable 2013-10-14 17:28 niggler has joined #elliottcable 2013-10-14 17:43 fwg has joined #elliottcable 2013-10-14 18:21 sharkbot has quit [Remote host closed the connection] 2013-10-14 18:21 sharkbot has joined #elliottcable 2013-10-14 19:19 wudofyr has quit [Ping timeout: 272 seconds] 2013-10-14 19:22 fwg has quit [Ping timeout: 272 seconds] 2013-10-14 19:25 whitequark: i can teach you 2013-10-14 19:25 fwg has joined #elliottcable 2013-10-14 19:25 12 hours later :P 2013-10-14 19:27 ELLIOTTCABLE: I honestly think, though, that the *most* special thing about Paws can be the whole invisibly-plumbed-along data thing. It gets us a cool IPP system, it gets us quarantining stuff like plaintext passwords and unsanitized user input, it gets us the ability to transparently send things over the network and yet reach in and fix things that go 2013-10-14 19:27 wrong there, and it gets us insanities themselves for error handling 2013-10-14 19:27 ELLIOTTCABLE: I mean, on top of the already special execution model 2013-10-14 19:27 ELLIOTTCABLE: not to mention it also gets us ownership as part of the same system 2013-10-14 19:27 and this is not a turing-tarpit reduction, this doesn't make things harder to write 2013-10-14 19:27 just more unified 2013-10-14 19:31 bah, I don't like it how in Vim it still shows a bunch of default colours even after clearing your color scheme 2013-10-14 19:33 wudofyr has joined #elliottcable 2013-10-14 19:44 ELLIOTTCABLE: ok and no problem with having lots of explicitly interpreter-defined procedures, we just want to make sure that *every* datatype is serializable 2013-10-14 21:01 Wat 2013-10-14 21:01 cuttle: wat? 2013-10-14 21:01 And how does this give us ownership? 2013-10-14 21:07 fwg has quit [Ping timeout: 272 seconds] 2013-10-14 21:13 ELLIOTTCABLE: because ownership is like quarantining 2013-10-14 21:14 No no not at all 2013-10-14 21:14 It's important that A) ownership be undoable in the later times, 2013-10-14 21:14 and B) that it be associated *with an execution*, not with a code-path. 2013-10-14 21:15 say foo()'a got a reference to X inside its body. 2013-10-14 21:15 foo()'s gonna MSR against X, so it takes ownership. 2013-10-14 21:17 With Past (my tentative paws-y name for the immutable infectious code-path metadata thing), if we tagged the code-path with X at that point, then *anything foo caused*, could unsafely screw up foos planned sequential-read. 2013-10-14 21:18 ELLIOTTCABLE: based on the 'distributed metadata' thing you and cuttle were talking about earlier, you should really take a look at Radul's diss 2013-10-14 21:18 not to mention that it could then never *release* ownership. 2013-10-14 21:18 Sure, hit me 2013-10-14 21:18 ELLIOTTCABLE: where did you get the idea that metadata should be irrevocable 2013-10-14 21:18 it's not useful anywhere 2013-10-14 21:18 How so? 2013-10-14 21:18 silentbicycle: yeah link us up 2013-10-14 21:19 cuttle http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.150.2893&rank=1 2013-10-14 21:19 Quarantine, infectious insanity, all the primary use-cases we're considering designing this to handle, they all work best with it being immutable 2013-10-14 21:19 fwg has joined #elliottcable 2013-10-14 21:19 cuttle I spent some time yesterday working through it, unfortunately the code samples aren't arranged topologically so to run the example code you need to cherry-pick stuff out of the next several chapters 2013-10-14 21:19 silentbicycle: that's actually exactly where I got a lot of the inspiration! 2013-10-14 21:19 and I have linked ELLIOTTCABLE before, though I don't think he read it 2013-10-14 21:20 fwg has quit [Changing host] 2013-10-14 21:20 fwg has joined #elliottcable 2013-10-14 21:20 it seems like there's an elegant combination of constraint logic programming and FRP in there, but I haven't entirely figured out the implementation yet 2013-10-14 21:20 the frp thing is kind of separate from the constraints part 2013-10-14 21:20 they have constraint networks, and then they repurpose them later in the paper to be frp networks 2013-10-14 21:21 ELLIOTTCABLE: well, the inspiration was to handle network packets 2013-10-14 21:21 the metadata being packet headers, etc. 2013-10-14 21:22 Also, I kinda forgot, insanity (and obviously quarantine) have to affect data-graph as well as code-graph 2013-10-14 21:23 If you just took an insane datum, and threw it somewhere downwind of a structure that was then handled by a sane algorithm, that algorithm needs to become insane. 2013-10-14 21:24 fwg has quit [Ping timeout: 265 seconds] 2013-10-14 21:25 ELLIOTTCABLE: I forget, did you have a question about coroutines or somesuch? 2013-10-14 21:26 silentbicycle: nope, I'd like to tell you about Paws. 2013-10-14 21:26 fwg has joined #elliottcable 2013-10-14 21:26 ELLIOTTCABLE: okay. I'm working on other stuff, but will check back from time to time 2013-10-14 21:26 Saw you and mcc talking about continuations, coroutines, PLT, and a synchronicity, and that's all pretty relevant (= 2013-10-14 21:26 * ELLIOTTCABLE laughs 2013-10-14 21:26 'k 2013-10-14 21:27 when you have a couple hours' free time, come say hi <3 2013-10-14 21:28 idek we need some concrete stuff to discuss this 2013-10-14 21:29 cuttle not a fan of intellectual masturbation? 2013-10-14 21:30 well, I have a bit of context, and I'm mucking about with PLT stuff right now too 2013-10-14 21:30 so probably one of the better times I guess 2013-10-14 21:30 (working on a VM for an APL-ish thing) 2013-10-14 21:35 silentbicycle: oh really? neat! 2013-10-14 21:35 I have a soft spot for array based languages 2013-10-14 21:36 cuttle it's sort of an offshoot of http://github.com/kevinlawler/kona, but I want to see what happens if you add Erlang's actor/supervision hierarchy/etc. stuff to a ragged array language 2013-10-14 21:36 silentbicycle: oh wow, sounds interesting 2013-10-14 21:36 cuttle may be useful, though I'll settle for interesting 2013-10-14 21:36 and messing with various algorithmic and implementation trade-offs. 2013-10-14 21:37 cuttle I think I mostly like implementing generational garbage collectors and then throwing the code away 2013-10-14 21:37 cuttle at least, that's what the evidence suggests :) 2013-10-14 21:37 haha 2013-10-14 21:42 niggler has quit [Quit: Textual IRC Client: www.textualapp.com] 2013-10-14 21:44 Ragged array lang? Never heard of that. 2013-10-14 21:44 Don't know much (read: anything) about APL, though. 2013-10-14 21:47 cuttle: what sort of concrete? 2013-10-14 21:48 ELLIOTTCABLE: "ragged array" means that the arrays aren't "square" on dimensions; instead of a 4x3x2 matrix it can be an array of 4 arrays with different lengths, or something. k is like that, J is not. 2013-10-14 21:51 ELLIOTTCABLE: idk 2013-10-14 21:52 I want to brb:food. 2013-10-14 21:52 Somebody acquire me a gods 2013-10-14 21:52 damned 2013-10-14 21:53 alexgordon 2013-10-14 21:53 and we'll teach him all about my ideas for insanity when I get back :D 2013-10-14 21:53 And maybe tell silentbicycle about Paws, too. 2013-10-14 21:53 (= 2013-10-14 21:56 yeah 2013-10-14 21:56 yorickpeterse: http://www.reddit.com/r/AskReddit/comments/1of7ww/hey_reddit_whats_a_big_social_issue_in_your/ccrlk3q 2013-10-14 22:19 Hotel. Internet. Won't. Work. 2013-10-14 22:19 Pissed. Off. 2013-10-14 22:19 so ELLIOTTCABLE is telling me that I should be rambling about skiplists on channel instead of in msgs 2013-10-14 22:20 nooo! I take that back. 2013-10-14 22:20 Internet, BITCHES. 2013-10-14 22:20 silentbicycle: reading, now. 2013-10-14 22:20 skiplists: http://en.wikipedia.org/wiki/Skiplist 2013-10-14 22:21 one of my favorite data structures. they have approximately the same asymptotic behavior as a balanced binary tree, but all of the decisions they make are very localized, so you can have multiple threads adding / deleting nodes without stepping on each other very much 2013-10-14 22:22 so what makes skip list distribution so very local? 2013-10-14 22:22 when you add a new node, instead of looking at the structure as a whole, you just randomly generate the height with a known probability distribution 2013-10-14 22:22 ah, with comparison to b-trees 2013-10-14 22:22 less confused now 2013-10-14 22:22 half the node are 1 tall, 1/4 are 2 tall, 1/8 are 3 tall, etc. 2013-10-14 22:23 e.g. you can generate a uint32_t and count the number of consecutive 1 bits from the bottom up 2013-10-14 22:23 and then you update the forward pointers on the preceding node(s) to link in the new node, and that's in 2013-10-14 22:23 it 2013-10-14 22:24 it's like a linked list with express lanes that jump farther and farther ahead as it gets more members 2013-10-14 22:24 if that makes sense 2013-10-14 22:25 there's a good diagram on the wikipedia page 2013-10-14 22:26 to look stuff up, you zoom along the uppermost level until you overshoot, then descend 1 level and repeat until you reach the value or you're at the lowest level and it isn't there 2013-10-14 22:26 * ELLIOTTCABLE nods 2013-10-14 22:26 I remember this. 2013-10-14 22:26 cuttle: hey, have alexgordon tweet at me if he logs on, 'k? I'm headed out to eat with the girlfriend. 2013-10-14 22:26 then back to this hotel for NIGHT O' PAWS. 2013-10-14 22:26 silentbicycle: three second coverage of why I brought you here. 2013-10-14 22:26 ELLIOTTCABLE: aight 2013-10-14 22:27 working on a programming language I conceived a few years back. 2013-10-14 22:27 in particular, I think it's fascinating how it can work w/ only local context, yet that global order emerges 2013-10-14 22:27 long story short, it's the first *inherently asynchronous* (at a low level) programming language. 2013-10-14 22:27 think Node.js, at the VM level, instead of at the I/O-framework level. 2013-10-14 22:27 ELLIOTTCABLE okay. and I'll be in and out of the channel most of the week, probably 2013-10-14 22:27 longer story, even shorter, it's pervasive CPS at the VM level, and working up from there. 2013-10-14 22:27 except not-quite-CPS, but whatever. 2013-10-14 22:28 emergence as a whole is Motherfucking Fascinating™ 2013-10-14 22:28 any relation to dataflow-oriented / "flow-based programming" / etc. kind of stuff? 2013-10-14 22:28 nah 2013-10-14 22:28 yeah. fascinating™ 2013-10-14 22:28 but cuttle has more insights in that direction :D 2013-10-14 22:28 he's working on a neat reactive lang 2013-10-14 22:28 basically everybody in this room has at least one pet eso-lang 2013-10-14 22:28 but we discourage turing tarpits. 2013-10-14 22:28 if you're not actually doing something *usefully cool*, you're wasting everybody's time, imo. 2013-10-14 22:28 okay, cool. I am very interested in that stuff too, though for the last year and a half I've mostly been learning about hardware / embedded 2013-10-14 22:28 meet whitequark. 2013-10-14 22:29 ELLIOTTCABLE I've talked with whitequark before :) 2013-10-14 22:29 he's got a really, really neat variant upon Ruby, for embedded development. seems fairly mature, as these pet-projects go, too. 2013-10-14 22:29 ah, excellent. 2013-10-14 22:29 he can be difficult, but I love him <3 2013-10-14 22:29 silentbicycle: i like hardware/embedded, and recently want to make my reactive thing extend down to a processor architecture :p 2013-10-14 22:29 silentbicycle: also, paws is kinda-reactive 2013-10-14 22:29 yeah, foundry 2013-10-14 22:31 micah can tell you more. bbl, brushing teeth. 2013-10-14 22:49 alexgordon has joined #elliottcable 2013-10-14 22:50 hi ELLIOTTCABLE 2013-10-14 22:57 fwg has quit [Ping timeout: 246 seconds] 2013-10-14 23:02 hi alexgordon 2013-10-14 23:02 alexgordon: ELLIOTTCABLE said to tweet him when you get in 2013-10-14 23:03 k 2013-10-14 23:13 https://twitter.com/HardSciFiMovies is awesome. 2013-10-14 23:15 https://twitter.com/HardSciFiMovies/status/387591700303986688 2013-10-14 23:15 I would watch this so, uh 2013-10-14 23:15 how do you intensely watch something 2013-10-14 23:22 whitequark: haha those are awesome 2013-10-14 23:22 whitequark: "i would watch that so hard" 2013-10-14 23:25 but yeah 2013-10-14 23:25 :p 2013-10-14 23:26 wow. linux 3.0.100 2013-10-14 23:38 bye everyone 2013-10-14 23:38 shower and food 2013-10-14 23:55 yorick has quit [Read error: Connection reset by peer] 2013-10-15 00:11 Sgeo has joined #elliottcable 2013-10-15 00:28 PragCypher has quit [Quit: Leaving] 2013-10-15 00:42 hi 2013-10-15 00:42 cuttle: hi! 2013-10-15 00:52 cuttle: hi! 2013-10-15 00:52 alexgordon: here? 2013-10-15 00:52 ELLIOTTCABLE: yep 2013-10-15 00:53 whitequark: how's it one big security hole? 2013-10-15 00:53 whitequark: (mind you, I think it's *obvious* that it's not a real, or robust, security measure.) 2013-10-15 00:54 whitequark: I'm just curious about the specifics that you're aware of, since you're buried deep in Ruby implementation specifics. 2013-10-15 00:54 alexgordon: hi! (= 2013-10-15 00:55 what's one big security hole? 2013-10-15 00:55 alexgordon: Ruby's $SAFE 2013-10-15 00:55 don't know what that is 2013-10-15 00:55 oh wow that's horrible 2013-10-15 00:57 yep 2013-10-15 00:57 never run untrusted code unless: 1. you don't have a choice, 2. it's in a VM, 3. it's so simple that it's conceivable to interpret it safely, 3. it's in Chrome 2013-10-15 00:57 *4 2013-10-15 01:04 Chrome :D 2013-10-15 01:04 rather, V8. 2013-10-15 01:08 ELLIOTTCABLE: nah not V8 on its own 2013-10-15 01:09 e.g. chrome has sandboxed subprocesses 2013-10-15 01:09 idk, v8's got some sickeningly awesome sandboxing / security features, as well. 2013-10-15 01:09 dived into them *wayyyy* back when, when I was trying to get ryan dahl to include *actual* sandboxing in Node. 2013-10-15 01:10 it was totally possible. easy, even. Didn't require much in the way of changes to Node's core, at the time. 2013-10-15 01:10 but oh noooooes we had to have fucking revolting CommonJS compatibility bullshit. 2013-10-15 01:10 god forbid we sandbox evaluation of modules. god forbid that an_object !instanceof Object. 2013-10-15 01:14 alexgordon: hi! 2013-10-15 01:15 hi 2013-10-15 01:15 alexgordon: hi! 2013-10-15 01:15 -spec @ alexgordon 2013-10-15 01:15 alexgordon: Paws' half-arsed Version 10 specification 2013-10-15 01:18 m'kay 2013-10-15 01:18 alexgordon: what do you remember? 2013-10-15 01:19 (cuttle: might wanna wake up, if you're around) 2013-10-15 01:19 * ELLIOTTCABLE breathes 2013-10-15 01:19 been a while since I looked at this doc. lol. 2013-10-15 01:19 lol 2013-10-15 01:19 ELLIOTTCABLE: what was really helping me was that I was implementing it in C++ as I went along 2013-10-15 01:21 lost your imll? 2013-10-15 01:21 impl*? 2013-10-15 01:21 hold on lemme spotlight it 2013-10-15 01:21 okay. the types are easy. let's see if you remember the *framework* we'd built up, to discuss executions. 2013-10-15 01:21 you remember our graph masks? 2013-10-15 01:22 in Paws, all manipulable information in the program (data, as opposed to code) is stored in one big graph. Nodes are objects, and edges are relationships between objects. It's all homogenous. 2013-10-15 01:22 you remember that much, yes? 2013-10-15 01:22 yeah 2013-10-15 01:23 m'kay 2013-10-15 01:23 masks are exactly what (I hope) they sound like: a mask against that entire graph. 2013-10-15 01:23 i.e., they are a way of describing a *particular* sub-graph thereof. 2013-10-15 01:24 ah found it 2013-10-15 01:24 given foo: {bar: {a: 123, b: 456}} for instance, a mask might be able to describe foo: {bar: {a: 123 …}} (with the 456 node not being included in the masked-out sub-graph.) 2013-10-15 01:24 with me? 2013-10-15 01:27 cuttle: just discovered Gold Panda. Fan? 2013-10-15 01:27 cloudhead has quit [Ping timeout: 264 seconds] 2013-10-15 01:27 ELLIOTTCABLE: that's not what I have in my implementation 2013-10-15 01:28 I just have struct Mask { Expr* expr; } 2013-10-15 01:28 ; 2013-10-15 01:28 but alright 2013-10-15 01:33 wat 2013-10-15 01:33 no, masks have nothing to do with expressions 2013-10-15 01:34 ELLIOTTCABLE: FTFA 2013-10-15 01:34 wasn't done, sorry, was waiting for you to read your old impl, and got distracted 2013-10-15 01:34 interface Mask 2013-10-15 01:34 readonly attribute Expression root 2013-10-15 01:34 your own words! 2013-10-15 01:34 hm, root should be an *object*, a piece of data 2013-10-15 01:34 ahhhhhh that's because I copy-pasted and fucked it up 2013-10-15 01:34 thanks D: 2013-10-15 01:34 haha 2013-10-15 01:35 yeah. 2013-10-15 01:35 okay. 2013-10-15 01:35 so. 2013-10-15 01:35 ok but that still doesn't explain how it can represent set operations 2013-10-15 01:35 instead of, for instance, storing every object that is within the Mask, 2013-10-15 01:35 since it's just one node instead of like... a mask 2013-10-15 01:35 (getting there) 2013-10-15 01:35 or, even storing the *boundaries* of a sub-graph, with anything within that graph being known-good, 2013-10-15 01:35 our masks are actually sort of ‘light’ masks. 2013-10-15 01:35 specifically, we leave describing the boundaries up to *the object graph itself*. 2013-10-15 01:36 how 2013-10-15 01:36 ? 2013-10-15 01:36 a given mask has a particular root-location in the graph, a node it “starts at”; 2013-10-15 01:36 and since the object graph is directed, it then implicitly flows outward to encompass all nodes it touches … 2013-10-15 01:36 … until it reaches the boundaries explicitly defined *in the data*. 2013-10-15 01:37 these boundaries are stored as “ownership.” 2013-10-15 01:37 https://docs.google.com/a/ell.io/document/d/18EvzybClWHurBPyiUpHbv0UcyeAXHjwET2rDL1PuvII/edit#heading=h.6e3ljra8gdw0 2013-10-15 01:37 clickyclicky. the Ownership heading. 2013-10-15 01:37 ick. hold n. 2013-10-15 01:37 was in the middle of re-naming EVERYTHING IN PAWS last time we stopped working. 2013-10-15 01:37 lol 2013-10-15 01:37 lol 2013-10-15 01:37 was giving things clearer names. 2013-10-15 01:38 uh oh 2013-10-15 01:38 as clear as stratum? 2013-10-15 01:38 so, I'd like to replace the messy ownership/responsibility names with more alexgordon-familiar terms. 2013-10-15 01:38 remember Thing instead of Object, and whatnot? 2013-10-15 01:38 anyway. 2013-10-15 01:38 for now, ownership. 2013-10-15 01:38 I liked object though 2013-10-15 01:38 no, it *used* to be Thing. 2013-10-15 01:38 we changed it to Object, 'cause alexgordon. 2013-10-15 01:38 there's a bunch of stuff like that. 2013-10-15 01:38 ELLIOTTCABLE: depends on what the replacement is. sometimes a completely unrelated name can be good if it's a new concept 2013-10-15 01:38 ownership just hasn't been changed yet. 2013-10-15 01:38 less baggage 2013-10-15 01:38 yes! 2013-10-15 01:38 like execution. 2013-10-15 01:39 micah saved me from switching to “Continuation.” 2013-10-15 01:39 anyway. 2013-10-15 01:39 anyway. GOING ON. 2013-10-15 01:39 right 2013-10-15 01:39 I'm happy now that I have my C++ file 2013-10-15 01:39 so, these masks *start* somewhere, cascade through the directed edges of the graph. 2013-10-15 01:39 it has spinlock! 2013-10-15 01:39 and the other boundaries are described by not-responsible edges. 2013-10-15 01:39 (oh did I mention, I'm also trying to make it efficient and thread safe) 2013-10-15 01:39 (wait on that.) 2013-10-15 01:39 so. all edges in this graph are *annotated* with this concept of ownership. 2013-10-15 01:39 if has a directed link to in the graph, 2013-10-15 01:40 then knows *whether it owns* . 2013-10-15 01:40 in the spec text right now, that's called `isResponsible: true` 2013-10-15 01:40 man you know what this feels like? 2013-10-15 01:40 it feels like I've trained to be a lawyer 2013-10-15 01:40 passed my exams 2013-10-15 01:40 these masks of ours, describe a sub-graph by crawling the data-graph, and stopping at places where the edge is isResponsible: False 2013-10-15 01:40 then gone off for a year 2013-10-15 01:41 now I'm trying to read this alien script, that I used to *understand* 2013-10-15 01:41 stupid legalese. ;) 2013-10-15 01:41 cablelang 2013-10-15 01:41 esoliott 2013-10-15 01:41 ESOLIOTT! 2013-10-15 01:41 that's it 2013-10-15 01:42 ELLIOTTCABLE: I'm really itching to get to the bit where I GCD all the things 2013-10-15 01:42 GCD ALLLLL OF THE THINGS 2013-10-15 01:42 okay. 2013-10-15 01:42 moving forward, then! 2013-10-15 01:42 so. 2013-10-15 01:42 now that you understand the how, let's talk about the what. 2013-10-15 01:43 Basically, a mask is A Data Structure™. 2013-10-15 01:43 think `struct` in C. 2013-10-15 01:43 a mask might describe a whole Person. 2013-10-15 01:43 or, if Person has a Dog, then if we wanted, we could mask *down* to just the Dog. 2013-10-15 01:43 all depends on the root. 2013-10-15 01:43 but whether we're masking out the whole Person, or the person's Dog, or the dog's Name, 2013-10-15 01:43 our mask will *never* include the Person's Dog's Name's first-name-String, 2013-10-15 01:44 because the String *object* is not a part of that data-structure. 2013-10-15 01:44 understand? 2013-10-15 01:44 right ok 2013-10-15 01:44 so Masks, and the “ownership” of these graph-edges that define their boundaries, are a sort of dynamic “map” of the data-graph, showing the mutable boundaries between countries. 2013-10-15 01:45 between spheres of influence and interest. 2013-10-15 01:45 as long as a mask can be entirely described by its root object... 2013-10-15 01:45 as in it doesn't need additional information in the mask itself 2013-10-15 01:45 thus far, we've avoided having to do that. 2013-10-15 01:45 but that's why there's a Mask type. might need to make them a little more information-heavy later. *shrug* 2013-10-15 01:45 ¯\(º_o)/¯ 2013-10-15 01:45 k 2013-10-15 01:45 the original implementation allows multiple root-objects per Mask 2013-10-15 01:46 but there was never a situation where that was actually *usable*, so I've removed it from the spec. 2013-10-15 01:46 anyway. 2013-10-15 01:46 now. that's the how, and then the what. 2013-10-15 01:46 let's do the ‘why.’ 2013-10-15 01:46 which is where we start to get into Paws' execution mode;. 2013-10-15 01:46 so this reactor stuff at the bottom, don't think I've implemented that yet 2013-10-15 01:46 (we're coming up on the beginning of new stuff, now; I'd only *partially* covered this last time we talked, from my skimming of what the spec has) 2013-10-15 01:46 yeah. 2013-10-15 01:46 that's what we were actively discussing. 2013-10-15 01:46 so, the ‘why’ of masks. 2013-10-15 01:46 Masks are our data-locking system for parallelism. 2013-10-15 01:47 when a given procedure (avoiding the term `execution` until we can talk about what that IS), 2013-10-15 01:47 when a given procedure is going to work with some data, it locks up that data so other parallelly-running procedures can't muck about with its series of operations. 2013-10-15 01:48 more specifically, we allow either: A) “multiple-sequential-read” (or MSR) reservations (NEW WORD NEW WORD IT'S PERFECT WHEEEE), or B) write reservations. 2013-10-15 01:48 (all pretty mundane stuff, I know.) 2013-10-15 01:49 when a procedure says it needs a write-reservation for a particular Mask, it's saying “I need to modify in the data-graph.” 2013-10-15 01:49 k 2013-10-15 01:50 and then we can see which *other* procedures may have multiple-sequential-read reservations (i.e., are in the middle of preforming some sort of manipulation of *multiple, interdependent parts* of that data-structure), and we can avoid executing the procedure that needs to write, until that data-structure, that mask, is freed up again. 2013-10-15 01:50 pretty clear stuff, I hope? 2013-10-15 01:50 there's a really, really important note, hovering implicitly behind all of this: 2013-10-15 01:50 NONE of this has to do with concurrency. ALL of this is important in a fully single-threaded implementation of Paws. 2013-10-15 01:50 'cause coroutines. 2013-10-15 01:51 (really, executions, but I'm gonna lie for a moment to explain it.) 2013-10-15 01:51 eligrey has quit [Quit: Leaving] 2013-10-15 01:51 is my terminology okay? anything particularly confusing? please let me know, if so. trying to work on that. okay? okay. 2013-10-15 01:51 nope I think I get it 2013-10-15 01:51 once a procedure takes out a multiple-sequential-read reservation on a particular sub-graph, *because* we're an asynchronous language … or, to put it another way, because they're inherently coroutine-ish …, 2013-10-15 01:52 then they might get paused. I think it's called yielding with traditional coroutines. 2013-10-15 01:52 still trying to load all of this stuff back into my brain 2013-10-15 01:52 why oh why can't brains be like computers 2013-10-15 01:52 fopen for your noggin' 2013-10-15 01:52 if they *yield* in the middle of their manipulation of the data-structure, and thus get paused, 2013-10-15 01:52 then they might continue to hold that MSR reservation for an indeterminate period of time. 2013-10-15 01:52 that means that *no writes may happen*, even if that means hours of real-time. 2013-10-15 01:53 Paws' locks, then, are not ephemeral millisecond things, like concurrency locks are. 2013-10-15 01:53 instead of being concurrency constructs, they're *order of operations* constructs, for us. 2013-10-15 01:53 'k. 2013-10-15 01:54 hold that in your head, if you can. 2013-10-15 01:54 yeah 2013-10-15 01:54 procedures that last over long periods of real-life time, having reservations on sub-graphs of the big 'ol all-pervasive DATAGRAPH™. 2013-10-15 01:54 that's a great picture of Paws. A little bit wrong, but we're getting very close. 2013-10-15 01:56 eligrey has joined #elliottcable 2013-10-15 01:58 sorry, skimming the spec 2013-10-15 01:58 seeing what's there, what's missing. 2013-10-15 01:58 looks like I'll need to do some renaming up in this bitch 2013-10-15 02:00 okay, reservations, aaaaand … 2013-10-15 02:00 might just call that ownership. 2013-10-15 02:00 confusing if you know old-world paws, but clear if you don't, I think. 2013-10-15 02:01 need to get this in git, soon 2013-10-15 02:01 lazy, though. docs is working for the moment, and don't want to yak-shave until this is more complete. 2013-10-15 02:02 ELLIOTTCABLE: so Execution has changed a lot 2013-10-15 02:02 your implementation-type, you mean? 2013-10-15 02:02 don't worry. it'll change more, we haven't really discussed what it *is* yet. 2013-10-15 02:03 sorry, spec-work, keep talking, but I'm taking a break to multitask here before we talk more. 2013-10-15 02:03 (I like this pattern. Talk about things so you understand then, then take what I *learn* from teaching it, and use that to improve the spec. Rinse, wash, repeat.) 2013-10-15 02:04 it's gained a lot of new ivars 2013-10-15 02:05 root and stack, and now programCounter is a Node 2013-10-15 02:05 hm, it might be useful to Floobits this while you work, so I can see visually if you're coding up something that demonstrates a lack of understanding of some sort 2013-10-15 02:05 LOL 2013-10-15 02:05 LOL 2013-10-15 02:07 keep trying to use vim controls. 2013-10-15 02:09 hi. 2013-10-15 02:09 er so 2013-10-15 02:10 I need to implement advance() 2013-10-15 02:11 questions arising that the spec doesn't answer? 2013-10-15 02:11 probably lots. lol. 2013-10-15 02:11 lol 2013-10-15 02:11 -stop 2013-10-15 02:12 ELLIOTTCABLE: I think I asked this before but when it says 2013-10-15 02:12 "then we may presume that the Execution has been completed, and sort-circuit this algorithm with no result." 2013-10-15 02:12 what does no result mean 2013-10-15 02:13 returning NULL I presume 2013-10-15 02:14 link? 2013-10-15 02:14 ELLIOTTCABLE: not sure how to 2013-10-15 02:14 it's in advance() 2013-10-15 02:14 If the pc and the stack are both non-existant, then we may presume that the Execution has been completed, and sort-circuit this algorithm with no result. 2013-10-15 02:15 reading 2013-10-15 02:16 it's *meaningless* to advance a completed execution. 2013-10-15 02:16 so the return value can be whatever you want it to be in your implementation, as long as the only consumer of advance() can ascertain that that value *means* no-result. 2013-10-15 02:16 so yes, in a C++ impl, NULL is appropriate, I believe. 2013-10-15 02:16 ok but is it meaningless in that I should assert() it? 2013-10-15 02:16 no, it's not an error. 2013-10-15 02:16 advance() is not a public API. 2013-10-15 02:16 k 2013-10-15 02:17 it's a *part* of the reactor, but it's specified *outside of* the reactor. 2013-10-15 02:17 actually, 2013-10-15 02:17 yes. 2013-10-15 02:17 assert it. 2013-10-15 02:17 because the reactor should be checking if an execution is completed *prior* to advancing() it, and should never get around to doing so. 2013-10-15 02:17 that sounds reasonable to me. 2013-10-15 02:17 ELLIOTTCABLE: and another question: what happens if there's a stack but no pc? 2013-10-15 02:17 or can that never happen 2013-10-15 02:18 assert that as well, because that *definitely* shouldn't happen. 2013-10-15 02:18 here's why: 2013-10-15 02:18 that algo basically says, “move the PC forward until it's exhausted the procedure's code-block,” 2013-10-15 02:18 and *as the code-block deepens* (that is, within layers of parenthesis, I guess you can say), the stack gains unfinished work 2013-10-15 02:19 but as it exits the layers of parenthesis, it should *use up* items from that stack again. 2013-10-15 02:20 if the Script is remotely sane (i.e. it has the encoded-equivalent of balanced parenthesis … I guess, it has balanced depth,) then you'll never complete the Script (and thus have an empty pc) without having already previously emptied the stack. 2013-10-15 02:21 so in other words I can assert that there's a PC 2013-10-15 02:21 yep 2013-10-15 02:21 wat 2013-10-15 02:21 hm. 2013-10-15 02:21 and all that matters is whether there's a stack 2013-10-15 02:21 hm. you're right, implementation-wise. spec-wise, though, gotta handle that situation. 2013-10-15 02:21 Sgeo has quit [Read error: Connection reset by peer] 2013-10-15 02:23 basically, it *makes sense* for an Execution to have an empty pc. 2013-10-15 02:23 but advance(), specifically, doesn't need to handle that situation, because nothing should ever be trying to advance() an empty Execution. 2013-10-15 02:23 anyway. 2013-10-15 02:23 not linguistic stuff, so moving on. 2013-10-15 02:25 okaaay next line 2013-10-15 02:25 "We'll define next as the Node after the pc within its immediately-superior Expression" 2013-10-15 02:25 so expressions need to keep track of parents too? 2013-10-15 02:26 I presume that's what you mean by "immediately superior" 2013-10-15 02:26 yes, but you don't need to keep track of the expression *in other expressions* 2013-10-15 02:26 unless you're doing so for performance reasons 2013-10-15 02:26 the simplest way is to crawl the Script again, because you implicitly have a reference to that 2013-10-15 02:27 ah k 2013-10-15 02:38 okay. 2013-10-15 02:38 Relations now have isChild, 2013-10-15 02:38 and the only term every used to refer to that, is “ownership.” 2013-10-15 02:38 a lot simpler nomenclature. 2013-10-15 02:39 structure A ‘owns’ structure B, if structure A has a `Relation` member that points to `B`, that is moreover annotated with `isChild: true`. 2013-10-15 02:39 cool. simple, I hope. 2013-10-15 02:40 I think it's getting late 2013-10-15 02:40 )'= 2013-10-15 02:40 aww 2013-10-15 02:40 can't decode 3c at all 2013-10-15 02:40 c. Now if, and as long as, the next refers to an Expression expr, we repeat the following until it no longer does: 2013-10-15 02:40 i. increase the length of the stack (leaving the new slot at the top of the stack ‘empty.’) 2013-10-15 02:40 ii. ‘increment’ next, such that it now pointing at the first word of expr 2013-10-15 02:40 reading it 2013-10-15 02:41 don't need to copy-paste, I have it open too ;) 2013-10-15 02:41 hm. well, ignoring i and ii, can you understand the loop being described 2013-10-15 02:41 we're repeating this until `next` is no longer nested, basically. 2013-10-15 02:42 i.e. diving as deeply “down” as we can, in one step. 2013-10-15 02:42 or, to re-phrase: the overall algorithm of (3) can only operate on *actual values*. If it reaches a sub-expression, it needs to dive into that sub-expression and operate on the first *value* in it, instead. 2013-10-15 02:43 (3.c) is a *loop*, because sub-expressions can be nested … that first-value inside the subexpression, may still be another expression. 2013-10-15 02:43 so we keep looking until we come to something that *isn't*. 2013-10-15 02:43 nah I still don't understand 2013-10-15 02:43 okay. code-time. 2013-10-15 02:43 `foo bar baz` 2013-10-15 02:43 what does increment mean? 2013-10-15 02:43 representing pc with a period 2013-10-15 02:44 adding an element to the stack. 2013-10-15 02:44 i.e., I guess, in C++, copying the stack to a new, one-element-longer, array. 2013-10-15 02:44 the last element, the new one, will be null-ish, still. ‘empty’ as the spec puts it. 2013-10-15 02:45 so. example code. 2013-10-15 02:45 `foo bar baz`, is our Script at first. 2013-10-15 02:45 pc is a period, so, 2013-10-15 02:45 `foo .bar baz` 2013-10-15 02:45 actually, will use v-bars 2013-10-15 02:45 `foo |bar| baz` 2013-10-15 02:45 advance(): 2013-10-15 02:46 decide that `next` is |baz|, 2013-10-15 02:46 |baz| is neither an empty Expr, nor any Expr, so we use (3.d). 2013-10-15 02:46 okay. simple. now, let's wrap that up in an expression. 2013-10-15 02:46 `foo (bar baz)`. 2013-10-15 02:46 errr 2013-10-15 02:46 `foo bar (baz)`. 2013-10-15 02:46 we're at: 2013-10-15 02:46 `foo |bar| (baz)` 2013-10-15 02:47 let's evaluate advance() 2013-10-15 02:47 (3.a), `next` is |(baz)| 2013-10-15 02:47 (3.b) `next` is an expression, but it is not empty 2013-10-15 02:47 (3.c) `next` is an expression. so we need to *de-expression-ify* it. 2013-10-15 02:48 (3.c.i), our (currently empty) `stack` becomes an empty one-element array 2013-10-15 02:48 (that indicates that we're one sub-expression deep right now) 2013-10-15 02:48 (3.c.ii), `next` becomes |baz| instead of |(baz)| (we've “dived into” the expression). 2013-10-15 02:48 now, it's no longer an expression, so we don't need to loop. now it's an Object-type node, an actual value. 2013-10-15 02:49 so we break out of the loop and continue on to (3.d), with |baz| as our `next`. 2013-10-15 02:49 with me? 2013-10-15 02:49 yeah I think I get it 2013-10-15 02:51 but I need sleep 2013-10-15 02:51 o7 ELLIOTTCABLE 2013-10-15 02:52 kk 2013-10-15 02:52 sleep well 2013-10-15 02:52 unlikely! 2013-10-15 02:52 alexgordon has quit [Quit: ["Textual IRC Client: www.textualapp.com"]] 2013-10-15 02:55 Sgeo has joined #elliottcable 2013-10-15 03:29 NIXON'S BACK 2013-10-15 03:46 mcc has joined #elliottcable 2013-10-15 03:47 prophile: wat 2013-10-15 03:47 cuttle: you around and awake? 2013-10-15 03:47 oh! hey! mcc! :D 2013-10-15 03:47 ELLIOTTCABLE: yyyyyup 2013-10-15 03:47 -spec @ cuttle 2013-10-15 03:47 cuttle: Paws' half-arsed Version 10 specification 2013-10-15 03:48 help me review this and clean up the mess that it is. It's a little out of sync, especially because I dumped a lot of paws-y-horrible terminology in the middle of writing it, and tried to re-write the entire thing in new terminology. 2013-10-15 03:48 so it's got a lot of bugs where the text is suuuuuper unclear, because it uses two sets of words to refer to the same concept. :x 2013-10-15 03:48 b 2013-10-15 03:48 silentbicycle: hi. 2013-10-15 03:49 so, as you were saying... 2013-10-15 03:49 * ELLIOTTCABLE grins 2013-10-15 03:49 Paws. It's been my primary project (on and off, due to traveling a lot, but still) for the last three years or so. 2013-10-15 03:50 basically, I wanted to take pervasive continuations (almost, I'll explain in a second) and use them to design a programming language that was asynchronous, as Node was for networking stuff, but *inherently*. 2013-10-15 03:50 i.e. instead of callbacks, I wanted *every* procedure-call to be ‘asynchronous.’ Which, I know, doesn't make a lot of sense. 2013-10-15 03:51 *listening* 2013-10-15 03:51 so. in the same way that undelimited continuations, when masquerading as functions (in R5RS Scheme, for instance), don't return, *all* ‘functions’ in Paws never return. 2013-10-15 03:51 which is such an ass-backwards solution by any standard in the plt community right now, I know. but I wanted to see where I could take it. 2013-10-15 03:51 actually having everything in CPS isn't that uncommon 2013-10-15 03:52 ELLIOTTCABLE (not to interrupt, but I don't entirely understand delimited continuations. I have an inkling about what they're good for, enough to convince me that I should learn more, but haven't gotten to it yet.) 2013-10-15 03:52 chicken scheme's implementation works like that 2013-10-15 03:52 right 2013-10-15 03:52 silentbicycle: I just finally grokked 'em the other night. It's not important here, because our continuations are explicitly *undelimited*. 2013-10-15 03:53 I think what chicken does is a really cute trick, taking two tricky scheme implementation problems and using them to cancel each other out 2013-10-15 03:53 okay 2013-10-15 03:53 but I'd be happy to chat about 'em with you, if you like. It's helpful to ignore the stupid-ass syntax that everybody, everywhere uses. It's also helpful to ignore the precise Computer Science™-y wording that everybody tends to use. They're really quite a easy concept. 2013-10-15 03:53 In fact, I'd say that I'd have an easier time teaching *delimited* continuations to a newbie, and showing them how to use them, than I would have teaching them traditional continuations. 2013-10-15 03:53 I have a decent idea what delimited continuations are *used for* / why they're significant, but as it stands I couldn't implement them in C or something 2013-10-15 03:53 silentbicycle: oh? how so? 2013-10-15 03:53 I have a tab open about that, actually. 2013-10-15 03:54 the Cheney on the MTA thing? 2013-10-15 03:54 ltu/4313 2013-10-15 03:54 which has two nice results: 2013-10-15 03:54 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.8645&rep=rep1&type=pdf 2013-10-15 03:54 (Monadic Framework for DelConts) 2013-10-15 03:54 (famous) 2013-10-15 03:54 scheme is supposed to have tail call optimization, and it's supposed to have garbage collection, and if you compile to C and make it so that every function is CPS-transformed 2013-10-15 03:55 and a talk from ICFO '09 2013-10-15 03:55 anyway. paws. 2013-10-15 03:55 C, not having TCO, will eventually overrun the call stack. you intercept that, copy the values that are still live to the heap, and longjmp, and hey presto, you have TCO and you're using the C call stack as the first generation of a generational GC. 2013-10-15 03:55 essentially. 2013-10-15 03:55 wat. that works? 2013-10-15 03:55 that's the chicken approach 2013-10-15 03:55 it's quite clever 2013-10-15 03:55 that's a hack of pretty *awesome* proportions. 2013-10-15 03:55 there are a few bits that need to be adapted (it's not 100% portable) but it's quite clever, indeed 2013-10-15 03:55 yeah! 2013-10-15 03:55 okay. I'm really, really bad at multi-tasking. 2013-10-15 03:56 psh, nobody is good at it 2013-10-15 03:56 so delconts, and then you teaching me about CHICKEN, because I know nothing and wish to, are now on our stack. 2013-10-15 03:56 beware i live 2013-10-15 03:56 back to Paws. 2013-10-15 03:56 yes. 2013-10-15 03:56 (and there are a few other implementation details w/ chicken, but that's the gist) 2013-10-15 03:56 so. 2013-10-15 03:57 I've got a thing I call an “execution.” 2013-10-15 03:57 continuations are, at the highest level, best construed as “first-class representations of the call-stack at a particular point in the program,” I suppose. 2013-10-15 03:57 at least, that's close 'buff. 2013-10-15 03:57 right 2013-10-15 03:58 if it helps skip ahead, I feel like I've got a pretty good understanding of continuations, in the call/cc sense 2013-10-15 03:58 Executions, conversely, are “first-class representations of *a particular realization* of a procedure.” 2013-10-15 03:58 there's two important distinctions from normal conts: 2013-10-15 03:58 A), there's no concept of the call stack, or any *environment* at all, for that matter (which doesn't matter for us, because we never ‘return’ anyway.) 2013-10-15 03:58 and B), they *aren't immutable*. 2013-10-15 03:59 when you run some code via an execution, *since* that execution represents that code being run-through (what we call ‘realization’, being realized), that execution moves forward *with* the code. 2013-10-15 03:59 if the code completes without somehow being paused again, then the execution is no longer valid. the execution (of the code) is *over*. 2013-10-15 03:59 easy enough to grok, so far? 2013-10-15 04:00 laptop dying in a sec. gonna head up to my hotel room and plug it in. 2013-10-15 04:01 … yeah, that happened way sooner than I expected. Phone-IRCing while I finish my Bell's Best Brown. 2013-10-15 04:02 I think so 2013-10-15 04:02 yay Bell's 2013-10-15 04:02 So. Every running block of code in Paws, has a reference to itself. 2013-10-15 04:03 Not to the block, but to the *current execution of that block*. 2013-10-15 04:03 It can pass itself when calling other code; thus allowing that other code to resume it when it becomes paused. 2013-10-15 04:03 okay... 2013-10-15 04:04 This is the only mechanism in Paws for "returning" results: CPS-y “resume this block with this result.” 2013-10-15 04:05 this has a bunch of interesting side-effects 2013-10-15 04:05 but so, you have one primary thread of control, everything is just able to suspend and resume asynchronously on demand? 2013-10-15 04:06 actually, not necessarily. In a (rare) single-threaded implementation of Paws, pretty much; but Paws is designed to be massively-concurrent, as well. 2013-10-15 04:07 In general, most (or all) executions that *can* be realized, *will* be being realized simultaneously. 2013-10-15 04:07 More on that in a moment. 2013-10-15 04:08 There's some other aspects of the language that come into play here (our concurrency model and data-locking, and the tightly-integrated data-model that all this operates on) 2013-10-15 04:08 But: executions can be resumed multiple times, meaning that a procedure can have multiple "results" 2013-10-15 04:08 A common example of this would look something like; 2013-10-15 04:09 print(a_list.each) 2013-10-15 04:09 (To be compared with the more common explicit-CPS style of a_list.for_each {|item| print(item) } ) 2013-10-15 04:10 backtracking? is there a defined order? 2013-10-15 04:10 How d'y'mean? 2013-10-15 04:13 multiple results 2013-10-15 04:13 is there a defined order, like in Prolog (if only because of the implementation), or is it inherently nondeterministic? 2013-10-15 04:16 ELLIOTTCABLE: u r makin it 2 complicat 2013-10-15 04:16 sorry, back 2013-10-15 04:17 cuttle: how so? 2013-10-15 04:17 cuttle: well, lemme finish. multiple cooks spoil the student, to mix some metaphors. 2013-10-15 04:17 okay yeah sorry, don't let me sidetrack you, you were getting to the advantages of this approach 2013-10-15 04:17 not sure how you mean a defined order, beyond “the order that the copies of the execution are resumed” 2013-10-15 04:17 if A calls B, and B generates results, it can co-produce those results back to A, one at a time. 2013-10-15 04:18 and I'm derailing you with "wait a minute, does this land near my mental map of how the Warren Abstract Machine works" which is not important 2013-10-15 04:18 or, to look at it another way, B can provide results as they come in, asynchronously, so to speak. 2013-10-15 04:18 right 2013-10-15 04:18 generator/iterator stuff 2013-10-15 04:18 re-ask later when I've explained more? yeah. that. 2013-10-15 04:18 mmhmm. 2013-10-15 04:18 everything is inherently a generator. 2013-10-15 04:18 okay 2013-10-15 04:18 anyway. 2013-10-15 04:18 much briefer derail: how familiar are you with 1) erlang 2) logic programming 2013-10-15 04:19 1) none, and 2) very little. 2013-10-15 04:19 prolog is in my Next Three. 2013-10-15 04:19 ELLIOTTCABLE: prolog is like 2013-10-15 04:19 ELLIOTTCABLE: really really fucking simple, learn it in 20 minutes 2013-10-15 04:19 i'm curious about whether you could get erlangy concurrency/ message passing in a non-erlang language. 2013-10-15 04:19 Erlang, too, but not because of interesting-ness (as you put it yesterday, “This will be useful. Or, at the very least, interesting, and that's Good Enough for me.”) 2013-10-15 04:19 i was lucky enough to hear the erlang inventor guy give a talk a few months back 2013-10-15 04:20 cuttle: that's really good to know. Maybe I'll promote it to “Next after learning Haskell.” 2013-10-15 04:20 except, I want to learn APL/K. 2013-10-15 04:20 anyway. 2013-10-15 04:20 learning erlang is very much not about erlang itself, but about the techniques and conventions and stuff that it encourages 2013-10-15 04:20 and the ideas in it sounded really cool 2013-10-15 04:20 so you have to immerse yourself in erlang to benefit from learning it 2013-10-15 04:20 so, some of the common patterns for executions, you can guess. 2013-10-15 04:20 the thing he said that was mostly interesting to me was kind of 2013-10-15 04:20 whereas prolog, you nod at it for an afternoon 2013-10-15 04:20 obviously, you can implement coroutines laughably easily. 2013-10-15 04:20 talking about the idea of the model of message-passing concurrency vs memory sharing concurrency 2013-10-15 04:21 then there's aping “returning,” which is also easy. although it's silently asynchronous to the caller; there's no way to force a synchronous form of calling 2013-10-15 04:21 and i was just like geez, it never occurred to me to think of memory sharing concurrency as a "model" and not just The Natural Way Of Things 2013-10-15 04:21 mcc hah, yes 2013-10-15 04:21 mcc: haha yeah 2013-10-15 04:21 there's returning-multiple, which is a really common alternative to the way you would iterate things in a more Rutty language. 2013-10-15 04:22 then, and this one is fairly important, there's “falseness.” 2013-10-15 04:22 mcc except I think the whole "message passing / lots of little state machines" feels like The Natural Way of Things to me 2013-10-15 04:22 this language is still under design, and a lot of people are telling me not to do this, sooooo, consider it a big “maybe/probably” at the moment, 2013-10-15 04:22 mcc: it's *ridiculous* how much people say concurrency is fundamentally a difficult thing, when they're assuming that the only way to do it is pthreads 2013-10-15 04:22 but in paws, falsehood is conveyed by non-execution. 2013-10-15 04:22 well i'm mostly thinking about 2013-10-15 04:22 ok so i'm trying to do EVERYTHING in lua these days 2013-10-15 04:22 lua has a problem 2013-10-15 04:22 it's like, generally incompatible iwth threading 2013-10-15 04:23 mcc it has more than one problem, certainly 2013-10-15 04:23 but what if i could have a world like lua, where i have tons of little lua microprograms and pass tables between them… 2013-10-15 04:23 lua <3 2013-10-15 04:23 lua's so inspiring. 2013-10-15 04:23 so small, but such an excellent D/X. 2013-10-15 04:23 mcc I think, in most cases, its design is very upfront about what it does poorly 2013-10-15 04:23 luau's what lisp never was or will be. 2013-10-15 04:23 ELLIOTTCABLE: NO WE NEED TO HAVE A MORE VERSATILE WAY 2013-10-15 04:23 ELLIOTTCABLE: BECAUSE BEING-DONE-AND-FALSE IS DIFFERENT FROM BEING-HALFWAY-DONE 2013-10-15 04:24 ELLIOTTCABLE: AND BUBBLING IS FUNDAMENTAL IN PAWS SO WE CAN SOLVE IT LIKE THAT 2013-10-15 04:24 i don't like lua because since it doesn't privilege one way of doing OO, etc., literally every library has a different class system 2013-10-15 04:24 mcc look at lua lanes and a couple other extensions that do message-passing between different lua_States 2013-10-15 04:25 cuttle: bubbling? I'm still unclear with your definition of that. 2013-10-15 04:25 mcc I'd rather use Erlang or something else in that situation, but I've got different trade-offs than you seem to 2013-10-15 04:25 ELLIOTTCABLE: learn prolog *right now*, it will take you 10 minutes 2013-10-15 04:25 let's multi-thread these conversations. 2013-10-15 04:25 cuttle -> #Paws.Nucleus, 2013-10-15 04:25 silentbicycle: here. 2013-10-15 04:26 ELLIOTTCABLE: I second learning Prolog, when you have the time and mind for it. it's really, really good at a few things, and really interesting 2013-10-15 04:26 * ELLIOTTCABLE nods 2013-10-15 04:26 unfortunately, I've got about a thousand things to learn that are really, really interesting. 2013-10-15 04:26 but. I'll get there. 2013-10-15 04:26 very tippy-top of my list is finally fucking grokking Haskell. 2013-10-15 04:27 ELLIOTTCABLE: I suspect it's most practical as a subset, either constraint/logic programming, or a database query language like datalog, or as something like Erlang, but mashing those all together leads to problems. but other people disagree with me there, and have reasons. 2013-10-15 04:27 ELLIOTTCABLE: no, just ##paws 2013-10-15 04:27 Unfortunately, *learning* it, or a significant portion of the basics, did fuckall for me, there. I never understand any conversation that dives into Haskell, and that's half of the conversations I find myself involved in. 2013-10-15 04:27 so, time to waste a couple weeks of my life *making* things in it. ಠ_ಠ 2013-10-15 04:27 cuttle and I like lua *because* it isn't opinionated about stuff 2013-10-15 04:27 cuttle: ##paws doesn't exist anymore, it redirects here 2013-10-15 04:28 silentbicycle: well it doesn't make for a very fun experience 2013-10-15 04:28 silentbicycle: obj:method is kind of ugly 2013-10-15 04:28 cuttle I would rather have a language hand me the plumbing to make object systems and stuff, "see? there was never any magic to it" 2013-10-15 04:28 cuttle: that's one of the problems I'm trying to solve with Paws, rather obviously. We should talk more in-depth about that, some day 2013-10-15 04:28 prolog is less of a programming language and more of just like a utility 2013-10-15 04:29 cuttle: I'm kind of indifferent to that. I like the prototype / __index style of OO, or multimethods as in CLOS 2013-10-15 04:29 silentbicycle: i like multimethods too 2013-10-15 04:29 multimethods <'3 2013-10-15 04:29 for better and worse, prolog seems to treat EVERYTHING from the perspective of a search query 2013-10-15 04:29 i think __index is a brittle hacky way of doing single dispatch 2013-10-15 04:30 like, the way js and python and stuff do it, dispatch-as-lookups 2013-10-15 04:30 which is really, really useful for certain things, and gets really, really freaking weird when things like IO come into the pictuer 2013-10-15 04:30 on the object properties 2013-10-15 04:30 picture 2013-10-15 04:30 a hybrid of prototypes and multimethods is my favourite flavour of OO 2013-10-15 04:30 silentbicycle: yeah, IO is very ugly in prolog 2013-10-15 04:30 basically because the only IO that was meant to be is questions and answers 2013-10-15 04:30 ELLIOTTCABLE: look at atomo and slate 2013-10-15 04:30 cuttle one thing I think lua does well is having all the semantic hooks in a "metatable" rather than __get__ / method_missing / yada yada on the objects themselves 2013-10-15 04:30 silentbicycle: yeah that is cleaner 2013-10-15 04:31 atomo was alex's language, right? 2013-10-15 04:31 no nono 2013-10-15 04:31 not alexgordon. suraci. yeah. just checked. 2013-10-15 04:31 (uh, anyway, not trying to dominate the conversation here) 2013-10-15 04:31 I think I recall talking to him about this before he started on it … hem … 2013-10-15 04:32 maybe I'm mixing that up with somebody else's prag-lang 2013-10-15 04:32 silentbicycle: nah don't worry :p 2013-10-15 04:33 but I think one thing particularly interesting with Erlang's concurrency model is how the mailbox / receive / actors thing allows scheduling around dataflow 2013-10-15 04:33 we tend to be all over the map. 2013-10-15 04:33 and there are some smart hacks there, like, the cost to send a message to a process is proportional to how big its message backlog is, so there's automatic counterpressure 2013-10-15 04:34 flow control like that is crucial, but usually such an afterthought. and their whole design assumes that message sends can fail. the whole design is about explicitly acknowledging the possibility of failure in the platform design, not just bolting on exceptions or something 2013-10-15 04:35 okay. back to Paws, 'cause girlfriend wants my attention in a bit. 2013-10-15 04:35 (there are also a lot of Prolog-isms in Erlang; I learned Prolog first, and that helped me get familiar with the syntax that seems to really irritate some people. though in all fairness, ruby's syntax really bugs me.) 2013-10-15 04:35 so, that's our ‘code’ type. basically, first-class program counters. 2013-10-15 04:36 data-types are pretty boring. 2013-10-15 04:36 we don't really provide much structure here: a bit like lua's tables, but with ordered-lists instead of object-maps being the inspiration for the core datatype. 2013-10-15 04:37 silentbicycle: yeah paws is all about that too 2013-10-15 04:37 we've Objects, which are ordered-lists (à la JavaScript arrays, but without the fake-key-ness of indices) of references 2013-10-15 04:37 silentbicycle: the failure system is gonna be deeply integrated and beautiful 2013-10-15 04:37 fuck exceptions ಠ_ಠ 2013-10-15 04:37 a good knuckle tattooo 2013-10-15 04:37 silentbicycle: whatever "lua lanes" is sounds promising… 2013-10-15 04:37 silentbicycle: i really just … god damn it i want thread pools or some shit 2013-10-15 04:37 actually, our Objects might be best described as inside-out-JavaScript-Objects. 2013-10-15 04:38 i wanna be able to just start a long-running process 2013-10-15 04:38 instead of implementing arrays as faux-dictionaries, 2013-10-15 04:38 we implement dictionaries in arrays. 2013-10-15 04:38 mcc also luaproc, I think there's a paper by Ierusalimschy on making multi-thread/process parallelism work with lua, they just don't want it in the core language. I can dig up the paper if you want 2013-10-15 04:38 ELLIOTTCABLE: i feel like we should make that abstracted 2013-10-15 04:38 keys and values are simply another ordered-list; but the tooling to *treat* lists-of-key-value-pairs as dictionaries is built-in. 2013-10-15 04:38 and the reason i'm not interested in using erlang is i'm already writing software! concurrrency is one of several problems i need solved, i'm unlikely to switch languages to solve this one problem 2013-10-15 04:38 ELLIOTTCABLE: if we *require* exposure of the ordered-list-ness to paws itself, that limits implementation opportunities for no reason 2013-10-15 04:38 thanks 2013-10-15 04:39 you want to make them unordered? 2013-10-15 04:39 the problem is I'm pretty dead-set on ordered-versioned-data being A Thing™. 2013-10-15 04:39 mcc either this is it, or it's in the bibliography certainly: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.139.1000 2013-10-15 04:39 Like, it's not something I've talked about in here *at all*, because I'm also dead-set on not implementing any part of it in the Nucleus, 2013-10-15 04:39 but it's definitely going to be in the very first layers of Core. 2013-10-15 04:40 mcc yeah, that's it. I couldn't get the luaproc lib to build, but I use weird platforms like OpenBSD and that's my problem :) 2013-10-15 04:40 i.e. `previous foo blahblahblah` instead of `foo blahblahblah` to work on the current-minus-1 value of `foo`. 2013-10-15 04:40 ELLIOTTCABLE: well i mean that should be integrated with time travel and insanities 2013-10-15 04:40 hm 2013-10-15 04:40 we can talk about it, for sure. 2013-10-15 04:40 but. more importantly, none of this is stuff to discuss here. make an issue for it. 2013-10-15 04:40 mcc erlang makes a lot more sense if you're primarily writing *servers*. for locally installed games or something it's an awkward fit 2013-10-15 04:41 when I'm talking about Paws to somebody who's new to it, I want a *consistent* feature-set to explain, even if it has bugs or considerations we haven't come to a consensus on, yet. 2013-10-15 04:41 so, I'm teaching silent bicycle Design-10. If you're right, and I kinda see your point re: insanities, that's something for a later iteration. 2013-10-15 04:41 mcc Erlang feels like an embedded / telecom platform to me. which means it's a great fit for me personally, but I get why people don't like it. 2013-10-15 04:41 god, I hate having systematic autocomplete in my IRC. Worst part of switching to IRCcloud is having my IRC client try to “spelling-fix” somebody's goddamn nickname. 2013-10-15 04:42 'k. 2013-10-15 04:42 so, Object == ordered-list of Relation. 2013-10-15 04:42 Relation references another Object. 2013-10-15 04:42 usually, you get ordered-lists that look like [ , [key, value], [key, value], [key, value] ] 2013-10-15 04:42 ELLIOTTCABLE assuming ordered lists seems like a very useful property, but are sub O(n) collections fine? like, red-black trees / AVL trees / B+ trees / skiplists / etc? or are linked lists/arrays inherent? 2013-10-15 04:43 those are *treated* as dictionaries. (That is, you can look-up keys against them.) 2013-10-15 04:43 I don't discuss performance. It's a personal rule. 2013-10-15 04:43 There's plenty of *other* languages out there trying to iterate on our ability to have *fast* systems, as a whole. 2013-10-15 04:43 Nobody, anywhere, is putting enough effort into making languages that allow us to *develop* faster, though. 2013-10-15 04:43 ELLIOTTCABLE okay, "treated as dictionaries" is the answer I was looking for. less about performance than general collection semantics. 2013-10-15 04:43 Big philosophy point of me. Drives plenty of people off. 2013-10-15 04:43 heh! 2013-10-15 04:44 basically: 2013-10-15 04:44 we're *designing a language* right now. 2013-10-15 04:44 ELLIOTTCABLE I think pinning THAT down in important, and generally you can swap out a couple implementations unless you've painted yourself into a corner 2013-10-15 04:44 I won't remove any feature that adds *even the slightest bit* of ease-of-use due to vague performance concerns related to me, 2013-10-15 04:44 ELLIOTTCABLE besides, focusing on performance first seems to get one stuck in local maxima designwise 2013-10-15 04:44 unless there are provable, *serious* (i.e. language-usefulness-impacting) effects to my desired design decision. 2013-10-15 04:45 I'd rather get a pretty specific design down, 2013-10-15 04:45 where all the design aspects are well-integrated for ease-of-use, something *coherent*, 2013-10-15 04:45 ELLIOTTCABLE there's a really good quote I wish I'd saved verbatim w/ citation by Joe Armstrong (of Erlang), essentially saying, "I must program less efficiently, I must program less efficiently, that way I find real solutions" or somesuch 2013-10-15 04:45 and *then* we can begin trashing up the ease-of-use in carefully restrained ways, for performance concerns. 2013-10-15 04:45 right 2013-10-15 04:45 sorry. I'm pretty dogmatic about a couple things. It's something people slowly learn to live with, I guess. )'= 2013-10-15 04:46 so. dictionary-ish ordered-lists. 2013-10-15 04:46 I mean, there's certainly a case where if you include dynamism willy-nilly you can get stuck supporting the wackiness in Javascript or Ruby that makes efficiency hard, but you're still feeling out the design and I don't anticipate Browser Wars™ freezing your prototype 2013-10-15 04:46 *every* piece of data that you can deal with in-language, is that. 2013-10-15 04:46 okay, cool 2013-10-15 04:46 if you get, say, a string-ish thing, it's still, from your point of view, an empty dictionary. 2013-10-15 04:46 with a content attribute? or what? 2013-10-15 04:47 basically, yes. 2013-10-15 04:47 if you pass it to a native procedure that you've somehow acquired a handle on that *cares* whether things are strings, then *it* can know whether or not that's a string, 2013-10-15 04:47 but *you* can't, except by whether or not that fails. 2013-10-15 04:47 another controversial thing, so consider it a maybe for the moment. 2013-10-15 04:47 (basically, it comes down to “I don't want JavaScript typeofs, but I will put it in if I absolutely have to.”) 2013-10-15 04:47 so. 2013-10-15 04:47 really, really, really, core-to-Paws-philosophy/design observation here, 2013-10-15 04:48 is that the entire space of data/information/code relevant to a given program is one big graph, about which we are all-knowing. 2013-10-15 04:48 it's all homogenous, kinda lisp-y. 2013-10-15 04:49 and that brings us to the parallelism mechanisms (in fact, they're parallelism, concurrency, and control-flow, all in one mechanism.) 2013-10-15 04:49 ELLIOTTCABLE (do you have much familiarity with escape analysis and other static analysis stuff, btw?) 2013-10-15 04:49 nope! 2013-10-15 04:49 I'm pretty easy to understand: I know nothing, and depend heavily upon a bunch of people smarter than me that I've pulled into my personal gravity-well to tell me when I'm wrong. 2013-10-15 04:50 smells a bit like perl's typing 2013-10-15 04:50 (I mean, I don't want to shut you down with death-by-bibliography, but you'll probably find a lot of useful techniques there) 2013-10-15 04:50 cf. cuttle, alexgordon, prophile, cloudhead, inimino, whitequark … 2013-10-15 04:50 silentbicycle: well so first off i'm actually kinda interested in eventually writing my servers and clients in the same language… i a couple times very briefly got to do this with python and it's lovely 2013-10-15 04:50 silentbicycle: and yeah erlang was very much designed for a single purpose 2013-10-15 04:50 as i understand 2013-10-15 04:51 mcc erlang is designed for systems that need to outlive the physical hardware they're running on, and need to be upgraded without interruptions to service. everything else is just details. 2013-10-15 04:52 erlang's single purpose is fault-tolerant computing 2013-10-15 04:52 exactly 2013-10-15 04:52 everything else is just a side effect 2013-10-15 04:52 a means to an end, yeah 2013-10-15 04:52 ELLIOTTCABLE changed the topic of #elliottcable to: #ELLIOTTCABLE — “do something cool, shove it into throats, everyone thinks it's crap, then it's all amazing.” “everything else is just details.” 2013-10-15 04:52 and it's this weird prolog-flavored distributed platform 2013-10-15 04:52 just it turns out fault tolerant systems are by necessessity scalable 2013-10-15 04:52 as what'shisface would argue 2013-10-15 04:53 the erlang guy 2013-10-15 04:53 that I happen to find tremendously appealing 2013-10-15 04:53 armstrong, that's the guy 2013-10-15 04:53 joe armstrong 2013-10-15 04:53 Erlang'd make a great Paws server, actually. 2013-10-15 04:53 erlang and lua both make very sharp trade-offs that fit the kind of problem domains I care about 2013-10-15 04:53 ELLIOTTCABLE well, and there's Elixir and such that run on the BEAM VM 2013-10-15 04:54 Elixir certainly looks nice. Syntax-wise alone, I could lick it. 2013-10-15 04:54 CloudHaskell apparently exists 2013-10-15 04:54 no idea how well it actually works 2013-10-15 04:54 cuttle: just discovered EPROM 2013-10-15 04:54 prophile the thing with Haskell is that it's based around the whole concept of there being a single "static" time, 2013-10-15 04:55 ick. Just got a 20-minute warning. 2013-10-15 04:55 prophile like, "the typechecking runs with complete information, the program is accepted or rejected with (hopefully very meaningful!) errors" 2013-10-15 04:55 yeah 2013-10-15 04:55 silentbicycle: lemme cover this real quick, then I'll be gone for half an hour or so's 2013-10-15 04:55 prophile which works brilliantly in many cases, but in a program that's distributed and being upgraded incrementally, it's inherently dealing with multiple "static" times 2013-10-15 04:55 ELLIOTTCABLE okay sorry 2013-10-15 04:55 basically, Paws' entire trick is encoding concurrency information into the data, instead of into the code 2013-10-15 04:56 silentbicycle: oh I see 2013-10-15 04:56 it makes some trade-offs there, but it turns out to be fairly elegant 2013-10-15 04:56 I wasn't including the incremental code loading with CloudHaskell 2013-10-15 04:56 but there are papers on doing that sort of thing 2013-10-15 04:56 prophile I wouldn't put it past them to have smart solution for this, they're certainly a clever group, but it's a hard problem 2013-10-15 04:57 I could listen to SPJ talks all day 2013-10-15 04:57 in that graph of data, we encode ‘ownership’ information into the edges between objects; 2013-10-15 04:57 basically, saying whether “this object we're relating ourself to, is a part of the same overall data-structure as us.” 2013-10-15 04:58 really generic example being { {'Elliott', 'Cable'}, 24, {'Chicago', {'Illinois'}} } 2013-10-15 04:58 the ‘name’ object is, generally speaking, a “part” of the overall data structure, so we annotate the edge between that top-level object and the name-object to say “this owns that.” 2013-10-15 04:59 and it's unidirectional? 2013-10-15 04:59 then executions can preform basic locking tasks on sub-graphs of the overall program's data-graph, and gain *ordered* access to that data 2013-10-15 04:59 yep 2013-10-15 05:00 that's the only ordering system in place, at all. If you don't tell the language the relationships between your data, it'll assume there's no sharing of concerns amongst the sub-objects, and it won't meaningfully order operations happening to that data. 2013-10-15 05:00 (think that's something you brought up earlier; sorry, a little scattered) 2013-10-15 05:00 the locking I mentioned is really, really basic. 2013-10-15 05:01 if you pour acid on it 2013-10-15 05:01 it becomes salty 2013-10-15 05:01 * ELLIOTTCABLE past prophile 2013-10-15 05:01 … pats. pats. 2013-10-15 05:01 we call it reservations: you can either ‘sequential-read’ reserve, or ‘write’ reserve. 2013-10-15 05:02 as long as you've got a write reservation on a sub-graph, nothing else can sequentially-read from that sub-graph. 2013-10-15 05:02 would making it copy-on-write be advantageous? 2013-10-15 05:02 an important note is since this is our *ordering* system, and most tasks in Paws are very asynchronous by nature, these aren't ‘locks’ that last for milliseconds: they can easily last for hours. 2013-10-15 05:02 I'm not sure I'm tracking you 2013-10-15 05:03 (i.e. in a server, if something is modifying a data-structure and is depending on a network-request's result to finish that modification, then nothing else can sequentially-read from that structure until the request completes.) 2013-10-15 05:03 mmmmm. what sounds confusing? 2013-10-15 05:03 cuttle: I need to ark D: 2013-10-15 05:03 afk* 2013-10-15 05:03 chellio demanding me. 2013-10-15 05:03 cuttle: can you repair all the damage this cook has done? ;) 2013-10-15 05:05 mmm. be back soon, ish. if cuttle's around, he can often explain my own design work better than I can. 2013-10-15 05:05 long story short, procedures operating on unrelated parts of the data-graph are automatically parallelized (‘automatically’ not even really being the right word, because that implies there's some sort of hard computation going on to determine how to do so. it's trivially parallelized.) 2013-10-15 05:06 ELLIOTTCABLE I wonder if using persistent data structures and COW would mitigate some of the long locks. it sounds like you're setting yourself up for loooong, uncontrollable delays while things settle out. 2013-10-15 05:07 well, I like dynamism. a lot. 2013-10-15 05:07 dynamism of structure and interaction is a higher goal to me, than speeding up operations in the edge-cases where they *might* be able to operate safely on parts of a data-structure, while it's elsewhere reserved. 2013-10-15 05:08 cuttle: opinion on that? you've the knowledge-base here. I feel like making Paws' data-structures copy-on-write would trash up a lot of the dynamic interactions. 2013-10-15 05:11 it is ... a point to carefully design around 2013-10-15 05:11 I guess I'm morbidly fascinated by how systems break down, rather than how they operate under normal circumstances 2013-10-15 05:11 look at me ending up working in embedded. somehow. 2013-10-15 05:11 and liking erlang. surprise surprise. 2013-10-15 05:12 hah 2013-10-15 05:12 that's an excellent viewpoint to work from, though. 2013-10-15 05:13 I'm similar, but with the design and developer-experience of systems. 2013-10-15 05:16 ...which is also to say, I hope I'm not coming across as overly critical, I'm just trying to feel out the edge cases 2013-10-15 05:16 nope. it's entirely appreciated. 2013-10-15 05:17 “Criticism, pull-req's, and issues, joyously appreciated.” 2013-10-15 05:17 'k. brb. 2013-10-15 05:17 do you have an implementation anywhere public? or is it still in the "you have to be familiar with the internals to use it" phase? 2013-10-15 05:46 eligrey has quit [Quit: Leaving] 2013-10-15 05:46 silentbicycle: that's an interesting question, because it brings us to an important point about the project. 2013-10-15 05:47 silentbicycle: to illustrate, here's some “paws code.” 2013-10-15 05:47 https://gist.github.com/ELLIOTTCABLE/6500555 2013-10-15 05:47 *all of that code*, barely even ‘defines a procedure’ and ‘saves it to a variable’ 2013-10-15 05:48 Paws, or at least what we've been talking about as “Paws,” isn't actually much of a user-facing programming language. it's more like a VM. 2013-10-15 05:48 but, unusually, it's a VM you target by *abstraction*, not compilation. 2013-10-15 05:49 this has nothing to do with the interesting-asynch stuff, though. 2013-10-15 05:49 Paws as a project is a combination of a couple philosophies. 2013-10-15 05:49 chiefly among which is zionism 2013-10-15 05:49 - minimalism. The core *language* has gone through a ton of “remove a feature we want, and re-implement it *in* the other features already provided” cycles. 2013-10-15 05:50 the core language contains absolutely no gentiles 2013-10-15 05:50 wudofyr has quit [Remote host closed the connection] 2013-10-15 05:50 - dynamism / flexibility. Anywhere I can let you do things your own way, instead of the way *I* intend for you to, and that doesn't detract from the language's ability to cleanly/happily do it the way I intend for you to, then I'd rather leave you to do it that way. 2013-10-15 05:51 - zionism. There is one true god, and that god is ELLIOTTCABLE. 2013-10-15 05:51 /ht prophile 2013-10-15 05:52 so, what we've been talking about, the ‘Nucleus,’ is a high-level VM targeted by “languages,” or rather, groups of iterative abstractions. 2013-10-15 05:52 (of note, there's no syntax; that, too, is dynamic.) 2013-10-15 05:53 so. There's a working, but ugly, implementation of much of the stable parts of the Nucleus design. 2013-10-15 05:54 https://github.com/ELLIOTTCABLE/upaws.js/blob/Master/µpaws.js 2013-10-15 05:54 there's a couple other implementations underway. 2013-10-15 05:54 I believe cuttle has two, a partial one in haskell, and a partial one in Rust 2013-10-15 05:54 alexgordon is working in C++ as a learning exercise, as he's always had a bit of trouble wrapping his head around working in Paws' concepts 2013-10-15 05:54 and I'm working on one in (forgive me,) CoffeeScript. 2013-10-15 05:55 I like toast 2013-10-15 05:55 CoffeeScript isn't too bad 2013-10-15 05:55 I much prefer working in it to JS 2013-10-15 05:55 I'm also pretty dead-set on providing a Very Small, Very Portable implementation in ISO C. Have a lot of work on one, as a matter of fact, but it got put on hold a couple of years ago, and no longer cleanly conforms to the consensus of Paws' design. 2013-10-15 05:56 https://github.com/ELLIOTTCABLE/Paws.js is my new implementation, as of the last few months (not that I've had a lot of time for it, unfortunately.) 2013-10-15 05:56 *catches up* 2013-10-15 05:56 silentbicycle: (in here, we call that -clouds) 2013-10-15 05:56 ;) 2013-10-15 05:57 ah, okay 2013-10-15 05:58 -clouds, when you're reading scrollback, and -ground when you're caught up. 2013-10-15 05:58 relevant, because we have a mildly sentient bot. 2013-10-15 05:59 that's me! 2013-10-15 05:59 prophile: I don't “much” prefer it, but I do use it at the moment by choice 2013-10-15 06:00 prophile: if nothing else, it prevents me from making my code too Elliott™ 2013-10-15 06:00 lolwat, floating-point error in the Testling conformance graphic 2013-10-15 06:01 it seems to think Paws.js fails on Opera version 11.6000000001 2013-10-15 06:02 ELLIOTTCABLE: what, no right-aligned code and eldritch unknowable rules on newlines? 2013-10-15 06:02 prophile: Eldritch Newlines. 2013-10-15 06:02 prophile: only *ocassionally*. damn you, CoffeeScript. ;) 2013-10-15 06:03 this is pretty knowable code, yes? 2013-10-15 06:03 https://github.com/ELLIOTTCABLE/Paws.js/blob/Master/Source/Paws.coffee 2013-10-15 06:03 see, only *one* eldritch newline! 2013-10-15 06:03 surprisingly nice 2013-10-15 06:03 have you tried literate coffeescript at all? 2013-10-15 06:03 yep 2013-10-15 06:03 love the idea 2013-10-15 06:04 I want to do something very, very neat 2013-10-15 06:04 at the conjunction of docco-style documentation, litcoffee-style Literate Programming, and Paws' dynamic syntax. 2013-10-15 06:04 someday soon. (= 2013-10-15 06:15 I'm still mostly tracking, though I'm not very familiar with node as a platform 2013-10-15 06:16 for better and worse, I usually prototype this sort of thing in either lua, scheme (chicken or scheme48), or c 2013-10-15 06:22 silentbicycle: got distracted. what were we talking about? 2013-10-15 06:22 didn't even realize anyone was still talking in here (= 2013-10-15 06:23 nobody even knows 2013-10-15 06:23 I asked about implementation(s), there were pauses 2013-10-15 06:28 mcc has quit [Quit: This computer has gone to sleep] 2013-10-15 06:45 niggler has joined #elliottcable 2013-10-15 06:48 silentbicycle: re: where we were, 2013-10-15 06:48 no, there's no useful implementations. Only ones that exist to help further the design, basically. 2013-10-15 06:49 the only *fully operable* implementation is A) unreadable/uniterable, due to having evilly terrible code, and B) has no IPP, making it untenable for Real World Usage™ 2013-10-15 06:57 "IPP"? 2013-10-15 07:00 silentbicycle: interpretive preprocessor 2013-10-15 08:16 whitequark: re Reddit link, that's pretty accurate 2013-10-15 08:48 fwg has joined #elliottcable 2013-10-15 08:58 wudofyr has joined #elliottcable 2013-10-15 09:42 fwg has quit [Ping timeout: 264 seconds] 2013-10-15 10:19 sorry was marathoning dark knight trilogy 2013-10-15 10:22 fwg has joined #elliottcable 2013-10-15 10:27 -unclouds 2013-10-15 10:27 cuttle: is no longer stuck up in the clouds. 2013-10-15 10:29 ELLIOTTCABLE: i feel very strongly that we could make some huge leaps in usability in paws by: 2013-10-15 10:29 simplifying the core data model to just sets of key-value pairs + hidden data 2013-10-15 10:29 among other things, but that's the one on my mind 2013-10-15 10:30 On phone 2013-10-15 10:30 “Hm.” 2013-10-15 10:30 irccloud needs regular refreshes so it doesn't get so laggy :p 2013-10-15 10:30 Hidden data? 2013-10-15 10:30 ELLIOTTCABLE: as in ints and executions 2013-10-15 10:30 It's terrible in safari. Try chrome. 2013-10-15 10:30 egh dark knight rises is starting 2013-10-15 10:30 be back in 2 hours haha 2013-10-15 10:30 Oh )'= 2013-10-15 10:30 I'll be asleep 2013-10-15 10:30 aw 2013-10-15 10:30 :( 2013-10-15 10:31 ok say things and i'll intermittently reply 2013-10-15 10:31 No 2013-10-15 10:31 Phone 2013-10-15 10:31 YOU say, 2013-10-15 10:31 I red and think 2013-10-15 10:31 ;) 2013-10-15 10:49 cuttle: I have an idea. 2013-10-15 10:49 cuttle: an idea you'll really, *really* like. 2013-10-15 10:50 Not really Paws. But, neat. Maybe a new tiny esolang based on this? 2013-10-15 10:50 idk. 2013-10-15 10:50 cuttle: hit me when you're here. 2013-10-15 10:57 ELLIOTTCABLE: tell me idea :) 2013-10-15 11:00 ELLIOTTCABLE: (also fact: lua tables use numerical indices to make arrays, and they are super optimized at it too) 2013-10-15 11:00 I care nothing for optimization, and everything for clarity. 2013-10-15 11:00 Anyway: 2013-10-15 11:01 We've been discussing adding information to the *code path*, for insanities obviously, and possibly for other purposes. 2013-10-15 11:01 Well, one of the original innovations of Paws, was making an execution of some code, first-class. deferrable. 2013-10-15 11:02 referrable* 2013-10-15 11:02 what if we did it again? 2013-10-15 11:02 make code-paths first-class. 2013-10-15 11:02 Have a duality of reference, two ways to refer to Where I Am: 2013-10-15 11:03 A) by the series of choices taken to get this code, into this state. ("Vertical" history, what are currently Executions.) 2013-10-15 11:04 B) by the series of code-paths that led to the current *set* of choices (“Horizontal” history.) 2013-10-15 11:04 If it becomes first-class, then it becomes exposed, and it obviously becomes *trivial* to an is-insane member to that structure, or an is-tainted 2013-10-15 11:04 Not to mention 2013-10-15 11:05 passing it around, and this abstracting on that 2013-10-15 11:22 Sgeo has quit [Read error: Connection reset by peer] 2013-10-15 11:31 ELLIOTTCABLE: not quite sure i understand 2013-10-15 11:31 then again i really need to sleep :p 2013-10-15 11:31 talk to you after sleep? :p 2013-10-15 11:31 sounds like an interesting idea 2013-10-15 12:09 yorick has joined #elliottcable 2013-10-15 12:45 yorick has quit [Read error: Connection reset by peer] 2013-10-15 12:48 yorick has joined #elliottcable 2013-10-15 13:02 fwg has quit [Ping timeout: 264 seconds] 2013-10-15 13:04 fwg has joined #elliottcable 2013-10-15 13:07 PragCypher has joined #elliottcable 2013-10-15 13:23 fwg has quit [Ping timeout: 264 seconds] 2013-10-15 13:24 cloudhead has joined #elliottcable 2013-10-15 13:27 fwg has joined #elliottcable 2013-10-15 13:33 fwg has quit [Ping timeout: 240 seconds] 2013-10-15 13:34 fwg has joined #elliottcable 2013-10-15 13:42 fwg has quit [Ping timeout: 241 seconds] 2013-10-15 14:55 PragCypher has quit [Quit: Leaving] 2013-10-15 15:02 alexgordon has joined #elliottcable 2013-10-15 15:02 vil has quit [Ping timeout: 260 seconds] 2013-10-15 15:09 vil has joined #elliottcable 2013-10-15 15:13 vil has quit [Ping timeout: 240 seconds] 2013-10-15 15:14 vil has joined #elliottcable 2013-10-15 15:19 vil has quit [Ping timeout: 260 seconds] 2013-10-15 15:26 cloudhead has quit [Ping timeout: 260 seconds] 2013-10-15 15:30 vil has joined #elliottcable 2013-10-15 16:48 there was a really good youtube app for mac around somewhere 2013-10-15 16:48 i feel like it had a french name 2013-10-15 16:49 anybody know what i'm talking about 2013-10-15 17:10 fwg has joined #elliottcable 2013-10-15 17:53 Nope. 2013-10-15 17:53 Hi, all. 2013-10-15 18:03 fwg has quit [Quit: gone] 2013-10-15 18:06 cloudhead has joined #elliottcable 2013-10-15 18:30 niggler has quit [Quit: Computer has gone to sleep.] 2013-10-15 18:48 sharkbot has quit [Remote host closed the connection] 2013-10-15 18:49 sharkbot has joined #elliottcable 2013-10-15 18:50 cloudhead has quit [Quit: Lost terminal] 2013-10-15 18:52 cloudhead has joined #elliottcable 2013-10-15 18:57 eligrey has joined #elliottcable 2013-10-15 18:59 alexgordon has quit [Quit: Computer has gone to sleep.] 2013-10-15 19:04 hi ELLIOTTCABLE 2013-10-15 19:04 ELLIOTTCABLE: the optimization thing about lua numerical indices was neither here nor there; i just remember that they had really fast only-numbers-for-keys tables 2013-10-15 19:05 ELLIOTTCABLE: but yeah the point is they do the whole numbers as keys thing 2013-10-15 19:05 and it's great 2013-10-15 19:31 ELLIOTTCABLE: so regarding your idea of first-class code-paths/call-stacks: I know smalltalk has a first-class call-stack that lets you do some cool stuff from within the language 2013-10-15 19:31 ELLIOTTCABLE: but I think that the whole contagion system would be more elegant if we simply describe the way particular things bubble 2013-10-15 19:31 and then let it happen 2013-10-15 19:33 so we need to like, really concretely enumerate every way things can spread 2013-10-15 19:34 this is another reason I want to have a way to specify dependencies without values, or maybe with void-values like empty lists of return values 2013-10-15 19:34 for like 2013-10-15 19:34 something happens when an operation is finished but has no return value 2013-10-15 19:34 we also need to track that contagion 2013-10-15 19:47 idek actually though 2013-10-15 19:48 but yeah let's have void-values that represent doneness, and then they can bubble contagion just like anything else 2013-10-15 20:27 alexgordon has joined #elliottcable 2013-10-15 20:29 are you guys talking about paws again 2013-10-15 20:32 niggler has joined #elliottcable 2013-10-15 21:01 yes they are 2013-10-15 21:04 hi 2013-10-15 21:05 cuttle: stilllllll not understanding what the fuck you mean when you use the word ‘bubble’ 2013-10-15 21:05 joelteon: always. 2013-10-15 21:05 devyn: hi! 2013-10-15 21:05 ELLIOTTCABLE: bubble up 2013-10-15 21:05 ELLIOTTCABLE: contage 2013-10-15 21:05 ELLIOTTCABLE: spread 2013-10-15 21:05 hi devyn 2013-10-15 21:05 that seems backwards. 2013-10-15 21:05 ._. 2013-10-15 21:06 to me, ‘bubbling up’ means something like the Node.js term, wherein it goes to *earlier* code 2013-10-15 21:06 i.e. bubbling an error ‘back up’ through callers' call-backs/catches 2013-10-15 21:06 VIM!: coffeeRegex is linked to rubySymbol 2013-10-15 21:06 whereas infection spreads to *later* code 2013-10-15 21:06 MAKES TOTAL SENSE 2013-10-15 21:06 yorickpeterse: oh hi. 2013-10-15 21:07 hai 2013-10-15 21:07 hi 2013-10-15 21:07 ELLIOTTCABLE: ok well then don't call it bubbling 2013-10-15 21:07 yorick: hai 2013-10-15 21:10 joelteon: does your thingy have graphite for me yet 2013-10-15 21:10 no 2013-10-15 21:10 i wasn't supposed to tell you there's a free graphite server 2013-10-15 21:11 because there isn't. 2013-10-15 21:11 well it's not released yet 2013-10-15 21:11 and it won't be free? 2013-10-15 21:11 not sure if it will or not 2013-10-15 21:11 but it's not "done" 2013-10-15 21:11 i'm not a dev, idk 2013-10-15 21:12 I pressed the cancel my account button but it also didn't work. 2013-10-15 21:12 huh 2013-10-15 21:14 graphite? what? 2013-10-15 21:15 cuttle: re-reading up above 2013-10-15 21:15 An-ten-nae. 2013-10-15 21:15 music :D 2013-10-15 21:15 http://rd.io/x/QUA-pzde5UUv/ 2013-10-15 21:48 nicoou has joined #elliottcable 2013-10-15 21:48 hihihi 2013-10-15 21:50 hihihi 2013-10-15 21:50 jdhartley has joined #elliottcable 2013-10-15 21:50 hihihihihihihiihihi 2013-10-15 21:50 mmm 2013-10-15 21:50 so what do you know of JS already? 2013-10-15 21:50 i figured you guys moved in here after people stopped asking me to make more jokes 2013-10-15 21:50 better yet, what *else* do you know already? 2013-10-15 21:50 honestly 2013-10-15 21:50 barely anything 2013-10-15 21:50 we never asked you to make jokes, jdhartley 2013-10-15 21:50 html css 2013-10-15 21:50 you just made them anyway. 2013-10-15 21:51 LOL 2013-10-15 21:51 need to cut my toenails, and go get my haircut. meh. 2013-10-15 21:51 purr do you love me 2013-10-15 21:51 and do laundry. so much shit. 2013-10-15 21:52 okay like today my teacher gave me an assignment to style a WP blog 2013-10-15 21:52 and use sass 2013-10-15 21:52 but she didnt actually teach us how to use sass 2013-10-15 21:52 what is a nicoou 2013-10-15 21:52 SASS (if you're doing the SCSS syntax) is exactly like vanilla CSS but with extra cool stuff 2013-10-15 21:53 yeah that's what i figured 2013-10-15 21:53 i kinda tried to teach myself some stuff while we were supposed to be working 2013-10-15 21:54 fuck sass 2013-10-15 21:54 LESS <'3 2013-10-15 21:54 but: a teacher that makes you uses SASS? What world is this!? 2013-10-15 21:55 ahahaha 2013-10-15 21:55 like, that's suuuuuuper forward-looking and edgy for a university 2013-10-15 21:55 LESS < SCSS to be honest 2013-10-15 21:55 jdhartley: cloudhead now hates you 2013-10-15 21:55 she's good for being up to date with trends 2013-10-15 21:55 alexgordon: LOL 2013-10-15 21:55 she just doesn't properly teach them and i end up googling and trying to learn them myself 2013-10-15 21:56 but there's the other teacher who is trying to teach us yahoo pipes 2013-10-15 21:57 lol 2013-10-15 21:57 jesus, really? 2013-10-15 21:57 hey they had revenue this quarter 2013-10-15 21:57 I thought that died. 2013-10-15 21:57 lol 2013-10-15 21:57 well he's trying to bring it back 2013-10-15 21:58 so. 2013-10-15 21:58 what *did* you learn about JS, then. 2013-10-15 21:59 tell me things that you learned, and remember, and think you understood. 2013-10-15 21:59 you don't have to sound smart, or remember perfectly. just give me your impressions from the class. 2013-10-15 21:59 literally nothing that i can remember 2013-10-15 22:00 there's some things that when i see, i kinda recognize but i have basically no real knowledge of it 2013-10-15 22:00 k. gimmie a min. 2013-10-15 22:00 I'm guessing almost everything you did was DOM stuff, or maybe even jQuery 2013-10-15 22:00 some jquery 2013-10-15 22:00 im finding my old notes or whatever just to see what he did "teach" 2013-10-15 22:03 https://twitter.com/jdhartley/status/385156173764108288 2013-10-15 22:03 https://twitter.com/jdhartley/status/385161170002264064 2013-10-15 22:03 https://twitter.com/jdhartley/status/385157762788761601 2013-10-15 22:03 thats all you need to know about JavaScript 2013-10-15 22:05 LOL 2013-10-15 22:07 oh yes these notes are golden http://d.pr/n/AvtW 2013-10-15 22:07 haven't the slightest idea, jdhartley, why any of those are weird to you. 2013-10-15 22:08 JS's got an object linked to the global context that you can index as any other object. And? 2013-10-15 22:08 it is recursive and fun 2013-10-15 22:08 as for the first, lol well? what's so strange about that? when a method returns identity, you can call the method on it again. 2013-10-15 22:09 lol nicoou 2013-10-15 22:09 oh gods. (= 2013-10-15 22:09 nicoou: well, luckily, we have a nice bot in here to help! 2013-10-15 22:09 purr: hi 2013-10-15 22:09 oh god what 2013-10-15 22:09 >> console.log('hi') 2013-10-15 22:10 well, correction, then, we *sometimes* have a *sometimes*-nice bot in here, to *sometimes* help. ಠ_ಠ 2013-10-15 22:10 -start 2013-10-15 22:10 hi 2013-10-15 22:10 ELLIOTTCABLE: hi! 2013-10-15 22:10 >> console.log('hi') 2013-10-15 22:10 who broke purr, damnit 2013-10-15 22:10 ahaha 2013-10-15 22:10 purr hi 2013-10-15 22:10 jdhartley: hi! 2013-10-15 22:10 purr: i love you 2013-10-15 22:10 ELLIOTTCABLE: thank you! ^_^ 2013-10-15 22:10 >> console.log('purr can you log this for me') 2013-10-15 22:10 jdhartley: undefined; Console: 'purr can you log this for me' 2013-10-15 22:11 wow. wat. 2013-10-15 22:11 >> window 2013-10-15 22:11 jdhartley: ReferenceError: window is not defined 2013-10-15 22:11 >> console.log('fuck') 2013-10-15 22:11 so, purr won't listen to me, but he'll listen to jdhartley 2013-10-15 22:11 can't say I saw that one coming. 2013-10-15 22:11 >> var x = 0; x++; console.log(x) 2013-10-15 22:11 jdhartley: undefined; Console: 1 2013-10-15 22:11 >> alert('JD IS GOD') 2013-10-15 22:11 jdhartley: undefined; Console: 'JD IS GOD' 2013-10-15 22:11 oh my 2013-10-15 22:11 okay, stop confusing nicoou. 2013-10-15 22:11 sorry 2013-10-15 22:11 ill let you handle this. im going to get eat tacos with ellie 2013-10-15 22:11 nicoou: type some javascript code after ">> " to execute it. (= 2013-10-15 22:11 im just sitting here giggling its ok 2013-10-15 22:11 jdhartley: o7 2013-10-15 22:11 so. 2013-10-15 22:12 l8r guys miss you already <3 2013-10-15 22:12 bye jd 2013-10-15 22:12 first off, is there any other programming language you've learned anything about? 2013-10-15 22:12 does html and css count 2013-10-15 22:12 and no, html isn't a programming language. it's what we call markup. 2013-10-15 22:12 LOL 2013-10-15 22:12 LOL 2013-10-15 22:12 ok 2013-10-15 22:12 i didnt think so 2013-10-15 22:12 then nope 2013-10-15 22:12 well, how well do you remember variables from algebra class? 2013-10-15 22:12 solve for x, and all that. 2013-10-15 22:12 somewhat well 2013-10-15 22:14 okay. Well, in math, variables don't have *time*, so it's not a perfect analogy (everything is presumably instantaneous in math … X just *is* 123, forever, it doesn't *become* 123 at some point.) … but we can start with that. 2013-10-15 22:14 okay 2013-10-15 22:14 nicoou: so \ doesn't literally do that, it's an 'escape code' 2013-10-15 22:14 a *variable*, in a programming language like JavaScript or Ruby is basically a box. 2013-10-15 22:14 yorick: oh shush, don't spoil my nicole-soup 2013-10-15 22:14 the char after it determines the meaning 2013-10-15 22:14 okay 2013-10-15 22:14 at any given point, a program has a big garage-wall with racks upon racks of boxes, and each box has a name that you've given it. 2013-10-15 22:14 ELLIOTTCABLE: it was wrong! 2013-10-15 22:15 in javascript, you create a new box, and give it a name, with what we call a “keyword.” (Keywords are special words that you type into the code, and have to type *exactly* right. Don't worry too much about that, right now, just copy what I show you verbatim.) 2013-10-15 22:15 the keyword to create a variable-box, is `var` 2013-10-15 22:15 for instance, `var name` or `var number_of_feet` 2013-10-15 22:16 that won't do anything for our nice little bot here, because it doesn't actually have any direct result. You're telling the program you'll need another box, but there's really no pretty way for you and I to look at that wall of boxes, and see that there's a new one. 2013-10-15 22:16 nonetheless, you can try it: `>> var name` 2013-10-15 22:17 >> var name 2013-10-15 22:17 nicoou: undefined 2013-10-15 22:17 there ya go 2013-10-15 22:17 :D 2013-10-15 22:17 for our purposes, right now, undefined means “That's cool. I did that, and it was okay.” 2013-10-15 22:17 it also means “whatever you asked me to do, although it happened okay, it didn't cause any *results*.” 2013-10-15 22:17 okay 2013-10-15 22:17 a bit like telling a friend it's your birthday. That's different from asking him for a gift; all he can say is “That's nice. Now I know!” 2013-10-15 22:18 so. 2013-10-15 22:18 haha ok 2013-10-15 22:19 a box is rather useless without something in it. Just like in math, we're going to put numbers in boxes. You can do that with another ‘keyword,’ the equals-mark. `=` 2013-10-15 22:19 you put that *between* the name of the box, and what you're putting into the box. 2013-10-15 22:20 now, remember: programs have *time*, unlike math. In the code that runs *before* that line, where we fill the box, the box will still be empty. But in the code *after* that line, the box will be full, and we can look at the value in it. 2013-10-15 22:20 so, as an example, `number_of_feet = 2` 2013-10-15 22:20 (remember, you've gotta create the box, first.) 2013-10-15 22:20 can you combine those two, for me? 2013-10-15 22:20 ELLIOTTCABLE: it doesn't mean that :( 2013-10-15 22:20 yorick: shush, I'm teaching. 2013-10-15 22:20 soo 2013-10-15 22:21 do i need the var? 2013-10-15 22:21 (yorick: better to be well-understood and wrong, then right and *mis*understood.) 2013-10-15 22:21 or just the ' = ' 2013-10-15 22:21 just the latter, for now. 2013-10-15 22:21 but you need both lines of code. 2013-10-15 22:21 ELLIOTTCABLE: better be well-understood and right 2013-10-15 22:21 one tells the computer to create a box, and the next tells it to put a value in it. 2013-10-15 22:21 oh ok 2013-10-15 22:21 duh that makes sense 2013-10-15 22:22 (yorick: well-understood and right comes with time.) 2013-10-15 22:22 >> number_of_feet = 2 2013-10-15 22:22 nicoou: (number) 2 2013-10-15 22:22 you forgot the line where we tell the computer to make a box! 2013-10-15 22:22 oops :x 2013-10-15 22:22 >> print "which language is this?" 2013-10-15 22:22 alexgordon: SyntaxError: Unexpected string 2013-10-15 22:22 >> puts "which language is this?" 2013-10-15 22:22 alexgordon: SyntaxError: Unexpected string 2013-10-15 22:22 >> console.log("which language is this?") 2013-10-15 22:22 alexgordon: undefined; Console: 'which language is this?' 2013-10-15 22:22 unfortunately, in JavaScript, your code still worked. that's bad, though, because it did secret sneaky things that you don't understand, and that have *bad* consequences. 2013-10-15 22:23 oh no 2013-10-15 22:23 ELLIOTTCABLE: put it in strict mode 2013-10-15 22:23 >> 2013-10-15 22:23 oops 2013-10-15 22:23 or, to put it another way: remember how I told you that “undefined” was the computer saying ‘Okay, I got it. <3’ 2013-10-15 22:23 yeah 2013-10-15 22:23 well, you're now learning the hard way, that sometimes the computer lies about that. 2013-10-15 22:24 lovely 2013-10-15 22:24 if the computer was smarter, it would say ERROR ERROR, THERE'S NO BOX FOR NUMBER_OF_SHOES 2013-10-15 22:24 but the computer isn't smarter. it's dumb, and it's going to work very, very hard to confuse you. 2013-10-15 22:24 so it's up to *you* to remember to make that box, first, every single time. 2013-10-15 22:24 (I'll get to an explanation of what actually happened there, and why it's bad, later on =) 2013-10-15 22:25 okay 2013-10-15 22:25 so. here's the ‘correct’ answer, that won't confuse the computer: 2013-10-15 22:25 || var number_of_feet 2013-10-15 22:25 >> number_of_feet = 2 2013-10-15 22:25 ELLIOTTCABLE: 2 2013-10-15 22:25 (you can put multiple lines in here, if you put two v-bars before them: || like, || this, || whee) 2013-10-15 22:25 (you can also use the >> on the last line, if you want. you don't have to.) 2013-10-15 22:26 oh okay i wasnt sure how to do that! 2013-10-15 22:26 it's okay. you didn't need to be. (= 2013-10-15 22:26 so. we talked a little about the left-hand side of that equals-mark, the boxes we put things into. 2013-10-15 22:26 it's a really good time to talk about the *right* hand side of that line, the stuff we *put* in boxes. 2013-10-15 22:27 yes yes 2013-10-15 22:27 some of these are obvious: numbers, for instance. 2013-10-15 22:28 (I'm going to teach you *about programming*, as much as I can … but remember that *some* of this stuff is JavaScript-specific. For instance, the specific rules of what you type [we call that ‘syntax’] and some of the arcane, specific rules about how certain things work … that might all be slightly different in another language.) 2013-10-15 22:29 okay 2013-10-15 22:30 in JavaScript, we really only have one kind of number. This isn't very compatible with the real world, where there's actually several *different* types of numbers that we deal with on a regular basis, not to mention many more flavours of numbers in more advanced mathematics. 2013-10-15 22:31 the type we have available to us is what programmers call a floating-point, or float. Mathematics calls similar stuff ‘the reals.’ I'll just call it a decimal. 2013-10-15 22:31 it can look like this: 1234 2013-10-15 22:31 or it can look like this: 42.8888 2013-10-15 22:31 okay 2013-10-15 22:32 it can even look like several other things, such as -1.1e-10 2013-10-15 22:32 but that's besides our point, right now. 2013-10-15 22:32 those numbers are a thing that we can put in boxes. 2013-10-15 22:32 we call those things, “values.” 2013-10-15 22:33 so, we have, in our programs, as we've described them right now: 2013-10-15 22:33 omg ELLIOTTCABLE is going all teacher 2013-10-15 22:33 this is fantastic, shhhhhh 2013-10-15 22:33 ‘variables,’ that we can create more of, and give names to; and then ‘values,’ that we can, at a particular point in time, store *into* a variable 2013-10-15 22:34 now, for a little side-track (we're still talking about values! I like values! there's lots more fun, useful types of values! so, we'll come back. believe me.), 2013-10-15 22:34 I want to tell you that I lied to you earlier. 2013-10-15 22:34 the answer when you asked if you needed the `var` keyword *and* the ` = ` keyword, both, 2013-10-15 22:34 is actually: “Both yes and no.” (whee! confusing!) 2013-10-15 22:34 oh great 2013-10-15 22:35 as it turns out, you can *combine* the box-creation, and box-filling, stages. into a single line of code. 2013-10-15 22:35 so `var number_of_feet = 2`, all put together like that, is a perfectly sane way to both *create* a box, and put a variable in it, all at once. 2013-10-15 22:35 but it's very, very important to remember that you're doing two things, there. 2013-10-15 22:35 and only to do both at once, when you *need* both. 2013-10-15 22:35 there's plenty of situations where you'll want to create a box, but not put anything in it yet … 2013-10-15 22:36 … or, put a new value into a box you created earlier. 2013-10-15 22:36 so don't go all woozy on me, become lazy, and start typing out the whole thing every single time you put a value into a variable. You'll *always* want to remember, to keep those two steps separate in your head. 2013-10-15 22:36 (That's possibly the single most common, and single most confusing when it trips you up, mistake amongst JavaScript newcomers.) 2013-10-15 22:37 okay 2013-10-15 22:37 so. try that, a couple times. define two different variables, and put useful decimal values in them. 2013-10-15 22:38 separately? 2013-10-15 22:38 do whatever you think. I'll tell you if there's another way. (= 2013-10-15 22:38 >> var box = 4 2013-10-15 22:39 nicoou: undefined 2013-10-15 22:39 || var pen || pen = 4.5 2013-10-15 22:39 oops 2013-10-15 22:39 >> || var pen || pen = 4.5 2013-10-15 22:39 nicoou: SyntaxError: Unexpected token || 2013-10-15 22:40 :( 2013-10-15 22:41 hahaha 2013-10-15 22:41 don't worry, I didn't actually sit down and explain the bot to you. It's largely irrelevant, because it's not real JavaScript. 2013-10-15 22:42 lol okay 2013-10-15 22:42 lol 2013-10-15 22:42 the way i got taught this kind of stuff was with alerts 2013-10-15 22:42 but, unfortunately, because I am a lazy-ass programmer and didn't take time to make it very accommodating, you *have* to put the || at the start of the message, and put each line in a new message 2013-10-15 22:42 * ELLIOTTCABLE nods 2013-10-15 22:43 so, here's how you could make the bot understand what you just typed: 2013-10-15 22:43 || var box = 4 2013-10-15 22:43 || var pen = 4.5 2013-10-15 22:43 ohhhhh okay 2013-10-15 22:43 (the bot waits a while before executing code, if it doesn't see the >>; so you can use that if you want to speed it up, like this:) 2013-10-15 22:43 >> 2013-10-15 22:43 >> 2013-10-15 22:43 bah 2013-10-15 22:43 >> ; 2013-10-15 22:43 oh, I forgot, the bot doesn't like me today 2013-10-15 22:43 well, it'll work for you. (= 2013-10-15 22:43 hahaha 2013-10-15 22:43 anyway! you're on the right track. 2013-10-15 22:44 what you did, will work. 2013-10-15 22:44 but, again, there's a slightly easier way, for convenience. 2013-10-15 22:44 if you want to create a bunch of new boxes, all at once, you can put them on one line, separated by commas: 2013-10-15 22:44 var name, age, city, dogs_name 2013-10-15 22:44 okay i think i knew that haha 2013-10-15 22:45 * ELLIOTTCABLE nods 2013-10-15 22:45 I'm covering things you hopefully already know, even if you ‘learned them with alerts’ ;) 2013-10-15 22:45 but I'd like to cover it all in detail. 2013-10-15 22:45 make sure you know what's going on. 2013-10-15 22:45 i appreciate it 2013-10-15 22:45 so, you can add alllll that up together, to make and fill a bunch of boxes very quickly, fairly easily: 2013-10-15 22:46 var height = 4, width = 3, depth = 0.25 2013-10-15 22:46 finally, I'll iterate one more time (and then leave it alone and assume you're a smart girl, and can remember it. lol.), that that's *two steps*: it's both creating new variables *and* then filling them, for each of those names. 2013-10-15 22:46 lol 2013-10-15 22:47 yes 2013-10-15 22:47 if you forget the `var` keyword, then you're only filling *existing* boxes … and as I mentioned before (but didn't remotely explain and thus probably confused you a lot), that's very very very bad. 2013-10-15 22:47 so remember that the first time you put stuff in a box, you need to make sure you're creating it … and then later, when you put *new* stuff in the box, you can reference it without creating a new one. 2013-10-15 22:47 so, 2013-10-15 22:48 || height = 4, width = 3, depth = 0.25 2013-10-15 22:48 is bad, 2013-10-15 22:48 but 2013-10-15 22:48 || var height = 4, width = 3, depth = 0.25 2013-10-15 22:48 || depth = 0.5 2013-10-15 22:48 is okay. 2013-10-15 22:48 okay 2013-10-15 22:48 by the way yorick, this room is reduced-moderation, so *I* and the *bot* can see you in-channel. 2013-10-15 22:49 it only prevents other members from seeing unvoiced members; or, to put it another way, normal members only see voices and ops 2013-10-15 22:49 yep! (= 2013-10-15 22:49 SO. 2013-10-15 22:49 we're done with that side-track. back to values! 2013-10-15 22:49 numbers are easy. let's talk about something more fun, because we don't like math. 2013-10-15 22:49 -unununclouds 2013-10-15 22:49 words. english. 2013-10-15 22:49 haha okay 2013-10-15 22:49 you can put words into a program, as long as you put them between quotes: 2013-10-15 22:49 "like this" 2013-10-15 22:50 it's very important that you never forget the quotes, because computers are terrible at everything ever, and might not notice or might do really terrible things, if they think your words are actually code. 2013-10-15 22:50 cloudhead has quit [Read error: Operation timed out] 2013-10-15 22:51 you might be noticing a pattern here: there's a couple things about *how you write down* code, that are very important. We call these things syntax, and they're so very stupid and horrible, but so very important, that you have to learn them PERFECTLY and EXACTLY, very early on. Which kind of sucks. 2013-10-15 22:51 yeah i noticed that 2013-10-15 22:51 But, that being said, it's a good habit to get into: typing exactly the number of spaces that I type in something; not adding even a single extra character or letter even if it seems obvious … but more importantly, just paying *attention* to that stuff is a very important skill to have. 2013-10-15 22:51 stuff like not forgetting the word `var` before some boxes you're defining, 2013-10-15 22:51 or not forgetting to put the *second* quote-mark *after* your words. 2013-10-15 22:52 so. words. 2013-10-15 22:52 programmers call a series of words like that, inside quote-marks, a ‘string.’ 2013-10-15 22:52 i knew that! 2013-10-15 22:52 in a computer, that's just like a number. 2013-10-15 22:52 in fact, if you'd like, I can tell you *how* it's stored, in the real world, as a bunch of numbers. 2013-10-15 22:52 but the important point, is that it's a value that we're putting into a box. 2013-10-15 22:53 `name = "Elliott"` 2013-10-15 22:53 (you have probably figured this out by now, but I use `backticks` like `this`, to show you when I'm writing syntax … that is, when I'm writing exact characters that you have to pay special attention to, and type *exactly* how I typed them.) 2013-10-15 22:53 yes 2013-10-15 22:54 just like numbers, there's really only one type of string in JavaScript, despite there being lots of types of words in real-life. Again, this is a huge failure of the language, and one that will eventually bite you. It's unfortunate. 2013-10-15 22:54 what you need to know right now, is that JavaScript's words are what we call “Unicode.” 2013-10-15 22:54 okay 2013-10-15 22:55 that means there's a particular selection of possible words that you can write into them, a little bit like how you can store 3.3333 and 1597274 in a box, as a number, but you cannot store the square root of two, or pi. (those are irrational, and transcendent, numbers respectively, incase you're curious.) 2013-10-15 22:56 okay 2013-10-15 22:56 for instance, I can store the letters A and E, and the digits 2 and 9, and even the kanji radical for dog, ⽝ 2013-10-15 22:56 just like writing 3.3333, I can put all of those things between quotes, and they become a value: 2013-10-15 22:57 "A and E, 2 and 9, and my dog, ⽝" 2013-10-15 22:57 okay 2013-10-15 22:57 there's one, important, and rather obvious, rule: 2013-10-15 22:57 I *can't* put the punctuation-mark for double-quote, itself, in there. 2013-10-15 22:58 because what's "Hi, I'm "Elliott Cable"!" mean to the computer? 2013-10-15 22:58 it doesn't know if the string is "Hi, I'm " 2013-10-15 22:58 or "Hi, I'm "Elliott Cable" 2013-10-15 22:58 or the whole thing, even with the exclamation point. 2013-10-15 22:59 this is where those escape-marks you wrote in your notes come in. 2013-10-15 22:59 but, fortunately for you, I'm not going to talk about them, because they're *really* unimportant. 2013-10-15 22:59 just write your strings without quotes inside of them, for now. (= 2013-10-15 22:59 moving on. 2013-10-15 22:59 quick pause before we get into more important stuff: anything remotely confusing, thus far? I hope not, but … 2013-10-15 22:59 okay haha 2013-10-15 22:59 nooo 2013-10-15 22:59 good, all easy. 2013-10-15 23:00 yes 2013-10-15 23:00 I want to revisit something very, very important that I snuck in there. 2013-10-15 23:00 okay.. 2013-10-15 23:01 I said this, earlier. 2013-10-15 23:01 “just like writing 3.3333, I can put all of those things between quotes, and they become a value …” 2013-10-15 23:01 at the moment, the first half of the sentence was more important. But now, I want to talk about the second half. 2013-10-15 23:01 “… and they become a value …” 2013-10-15 23:01 this is another important thing to understand: 2013-10-15 23:01 just as the *variables* have time to them (that is, they don't exist , and they do exist ), the same is true of the values themselves. 2013-10-15 23:02 okay 2013-10-15 23:02 kinda seems like common sense 2013-10-15 23:02 before the program runs the line of code that says “Put 1895 in box X,” the number 1895 doesn't exist. 2013-10-15 23:02 during that line, it's created. 2013-10-15 23:02 that creation, arising from a line of code like that, is called “a literal” 2013-10-15 23:03 (coming from the fact that you literally typed the digits of the number, into the code; and when it ran that line, the digits became a number, so that it could be stored.) 2013-10-15 23:03 ok 2013-10-15 23:03 so now, we've gotten to the point where you can understand that there's *three, separate actions* happening in this line of code: 2013-10-15 23:03 >> var name = "Elliott Cable" 2013-10-15 23:03 First, a new variable is created, and labeled ‘name’ 2013-10-15 23:04 Second, a new string is created, to hold the words “Elliott Cable” 2013-10-15 23:04 Thirdly, *that string*, that value, is stored in that new variable, that box. 2013-10-15 23:04 it helps, at these early stages, to think of this in non-code. Let's talk about shoes. Programs can't have shoes, so it's easy to lie about them. 2013-10-15 23:04 haha okay 2013-10-15 23:05 We've got our garage-wall, covered in boxes. I want to make my own shoes, as a shoe-making hobbyist. 2013-10-15 23:05 cloudhead has joined #elliottcable 2013-10-15 23:05 The very first step, is adding a new box, and labeling it 'my new shoes' 2013-10-15 23:05 the next step, is gluing together a piece of cardboard and some cloth, to make the most basic possible pair of shoes, 2013-10-15 23:05 and the final step, is putting those brand new barely-shoes-yet, into that box. 2013-10-15 23:06 okay 2013-10-15 23:06 keep that analogy in your mind, we'll revisit it later. 2013-10-15 23:06 now, we're about to take a huge leap, and get exponentially more intellectually difficult. 2013-10-15 23:07 uh oh 2013-10-15 23:07 it's still, hopefully, child's-play, for someone smart like you, 2013-10-15 23:07 i guess we'll see haha 2013-10-15 23:07 but if you were lulled into a sense of security by the simplicity above, now's a good time to wake up ;) 2013-10-15 23:08 no no that seemed to easy :p 2013-10-15 23:08 too * 2013-10-15 23:08 let's ignore the boxes on the garage-wall, with their nice organized arrangement and their easily-identified labels, for a moment … and talk about a Thing™, with a capital T, some unidentified blob of stuffness, hovering in the middle of the garage. Just one Thing. The only Thing we care about in the world, right now. 2013-10-15 23:08 we're going to call a Thing like that, “an Object.” 2013-10-15 23:09 okay 2013-10-15 23:09 the most useful property of an Object, is that it's very sticky. We can stick stuff to it, like glue. In fact, we stick stuff to it, and we give *that* a label, too, just like we were labeling boxes. (we programmers like naming things.) 2013-10-15 23:10 for instance, I can take this amorphous mass of Objectness, and stick a number to it. 2013-10-15 23:10 the same kind of numbers we were discussing earlier, these number-values that the computer has made out of our text. 2013-10-15 23:10 okaay 2013-10-15 23:11 we can say that “On this blob, there's a slot named 'age', with 42 in it.” 2013-10-15 23:11 (a little bit like variables, right? don't be too sure, just yet.) 2013-10-15 23:12 but, those sticky blobs, with the named-slots you can stick things into, these Objects of ours, are *also* values. 2013-10-15 23:12 just like a number, (at least, like a number once it's actually been *created* by the computer), we can put that blob, in a box. ^)^ 2013-10-15 23:12 ^_^* 2013-10-15 23:12 okay.. 2013-10-15 23:12 so, here's some more syntax for you, so, stuff you have to type exactly right: 2013-10-15 23:13 you list all of the things stuck to an Object, with the label you're giving them, inside two curly-brackets: `{ }` 2013-10-15 23:13 the label goes *before* a colon, and the value stuck to it goes *after* it: 2013-10-15 23:13 `{ age: 42 }` 2013-10-15 23:13 okay 2013-10-15 23:13 that's called an “Object literal.” 2013-10-15 23:14 just like the string literals we were discussing above, the sticky blob gets *created*, only when that line of code is run. it doesn't exist until then. 2013-10-15 23:14 so, type me up a line of code that creates an Object, just like that. 2013-10-15 23:14 curly brackets, colons, a label, and a value of some sort. 2013-10-15 23:15 >> { name: nicole } 2013-10-15 23:15 nicoou: ReferenceError: nicole is not defined 2013-10-15 23:15 ohhoh 2013-10-15 23:15 you forgot your double-quotes :D 2013-10-15 23:15 :x 2013-10-15 23:15 oops 2013-10-15 23:15 tol' you that'd confuse the computer! ;) 2013-10-15 23:15 i shouldve known that! 2013-10-15 23:15 also that would interpret as a statement 2013-10-15 23:15 wouldn't work 2013-10-15 23:16 >> { javascript: 'is evil' } 2013-10-15 23:16 yorick: (string) 'is evil' 2013-10-15 23:16 >> { name: "nicole" } 2013-10-15 23:16 nicoou: (string) 'nicole' 2013-10-15 23:16 yay 2013-10-15 23:16 explain that and good luck. 2013-10-15 23:16 hm. bot's got a hack to special-case object-literals, for teaching purposes, but it seems to be deactivated 2013-10-15 23:17 we were wrapping any code that didn't have a semicolon in it into an arbitrary expression. 2013-10-15 23:17 (can't be arsed to re-activate it, because doesn't matter right now) 2013-10-15 23:17 okay. back to nicoou. 2013-10-15 23:18 so, since these blobs are data, values, like numeric data or string data, we can store them in variables. 2013-10-15 23:18 can you figure that out? 2013-10-15 23:18 i think so 2013-10-15 23:19 the fact you're making them into literal *physical* objects is kinda helping 2013-10-15 23:19 * ELLIOTTCABLE nods 2013-10-15 23:19 remember, you're *making these things*. 2013-10-15 23:19 yes yes 2013-10-15 23:19 it's harder to explain with numbers, but it works really well with Objects, 'cause sticky blobs. 2013-10-15 23:19 haha yes! 2013-10-15 23:19 you turn around, use your hands, put together a blob, and stick labeled-slots onto it one at a time, and *then* you turn around and put that whole lot into a box. 2013-10-15 23:19 and maybe wash your hands. 2013-10-15 23:20 'cause nobody specified *what* made the blob sticky. >,> 2013-10-15 23:20 LOL 2013-10-15 23:20 LOL 2013-10-15 23:21 m'kay 2013-10-15 23:21 two quick iterations on what we've discussed, little new things: 2013-10-15 23:21 first off, you can stick more than one slot onto an object-literal at once 2013-10-15 23:21 again, commas … but this time *inside* the brackets. 2013-10-15 23:21 { name: "Elliott", age: 24 } 2013-10-15 23:22 so it goes { label: , label: , label: } 2013-10-15 23:22 that will syntax error the bot 2013-10-15 23:22 okay 2013-10-15 23:22 so, make an Object about *yourself*, and put it into a variable. 2013-10-15 23:22 go 2013-10-15 23:22 remember to be super-anal about syntax. look at every character you type, and wonder if you forgot something about the rules for using that character. 2013-10-15 23:23 >> { name: "Nicole", age: 20 } 2013-10-15 23:23 nicoou: SyntaxError: Unexpected token : 2013-10-15 23:23 heh 2013-10-15 23:23 you didn't make a box for it. 2013-10-15 23:23 oh 2013-10-15 23:23 derp 2013-10-15 23:24 notice that what the computer tells you is *never* relevant to what's actually going wrong. This is an excellent life-lesson for an aspiring programmer. ;) 2013-10-15 23:24 i learned that when i tried to learn js the first time around haha 2013-10-15 23:24 riiiiight!? 2013-10-15 23:25 ugh 2013-10-15 23:25 so, gogogo try again 2013-10-15 23:25 make a box and put that blob into it. 2013-10-15 23:25 * yorick twitches 2013-10-15 23:25 so id have to make a var, then put the object in it 2013-10-15 23:25 mmhmm! 2013-10-15 23:25 || var box 2013-10-15 23:26 >> || var box 2013-10-15 23:26 nicoou: SyntaxError: Unexpected token || 2013-10-15 23:26 oh 2013-10-15 23:26 no, you had it right 2013-10-15 23:26 okay 2013-10-15 23:26 i wasnt sure 2013-10-15 23:26 the bot doesn't say anything until you're done (= 2013-10-15 23:26 ooohohoohohooh 2013-10-15 23:26 (and if it doesn't know if you're done, it just waits a while.) 2013-10-15 23:26 okay 2013-10-15 23:26 (and then throws your input away unless you changed that too) 2013-10-15 23:26 || var box 2013-10-15 23:27 || { name:"nicole, age:20 } 2013-10-15 23:27 yorick: actually, each user gets an execution-environment that's saved for a while. 2013-10-15 23:27 oop spaces 2013-10-15 23:27 actually, I think that may be currently disabled, too. idk. 2013-10-15 23:27 did it do that right? 2013-10-15 23:27 i * wow words 2013-10-15 23:27 close, but no cigar, you made a box, and made an object, but never put the object *in* the box. 2013-10-15 23:27 oh 2013-10-15 23:27 i need the = 2013-10-15 23:27 * ELLIOTTCABLE nods 2013-10-15 23:27 i geeettt ittt 2013-10-15 23:27 so 2013-10-15 23:28 >> var box = { name: "Nicole", age:20 } 2013-10-15 23:28 nicoou: SyntaxError: Unexpected token ILLEGAL 2013-10-15 23:28 oh no its illegal :C 2013-10-15 23:29 okay, what. 2013-10-15 23:29 oh the upper input is still saved 2013-10-15 23:29 does it HAVE to be multiple lines 2013-10-15 23:29 try it again 2013-10-15 23:29 hehehehe 2013-10-15 23:29 what yorick said. 2013-10-15 23:29 try it again. 2013-10-15 23:29 i cant see what hes saying 2013-10-15 23:29 * ELLIOTTCABLE nods 2013-10-15 23:29 but no, you did it exactly right. 2013-10-15 23:30 try it again so you can see the output properly. Just my bot's fault, that time. (= 2013-10-15 23:30 the output will be undefined because var statements don't return things 2013-10-15 23:30 >> var box = { name: "Nicole", age: 20 } 2013-10-15 23:30 nicoou: undefined 2013-10-15 23:30 * ELLIOTTCABLE grins 2013-10-15 23:30 .... 2013-10-15 23:30 (yorick: already explained that to her, remember? ‘That means everything went okay.’) 2013-10-15 23:30 so, great. 2013-10-15 23:31 that's... not... what it means :'( 2013-10-15 23:31 now that you've got all that percolating, let's step back to trivially easy stuff for a moment, and talk a little more about A) numbers, and B) values. 2013-10-15 23:31 so, we've been giving names to boxes, but not doing anything else with them. 2013-10-15 23:31 okay 2013-10-15 23:31 (actually, statements can return something: with(box) name; will actually return something but it still can't be an expression) 2013-10-15 23:32 but the *point* of boxes, is that we can use the name of the box, and the *value* will be the stuff *inside* the box. 2013-10-15 23:32 okay 2013-10-15 23:32 yorick: I'd bet ten bucks that I know more about JavaScript than you. so omigod PLZ, there's no need to correct what looks like I don't know what I'm talking about. I'm simplifying to teach the stuff she really needs to knowwwwwwwwwwwww ;_; 2013-10-15 23:32 i can't see anything that he's saying anyways :p 2013-10-15 23:33 sorry. that was a bit assholeish of me. just irl stressed. 2013-10-15 23:33 luckily, teaching is über-calming. 2013-10-15 23:33 hooray 2013-10-15 23:33 using the name of the variable, *means* the value inside the box. 2013-10-15 23:33 so if I've previously created a variable `name`, and it's got a value inside of it, 2013-10-15 23:34 then `var a_box_whee = name` will store … what, into a_box_whee? 2013-10-15 23:34 ELLIOTTCABLE: okay I didn't mean to correct you sir, I really have no idea why statements would return anything, too. 2013-10-15 23:34 name 2013-10-15 23:34 ? 2013-10-15 23:34 elaborate. use more words to say the same thing. (= 2013-10-15 23:34 the value of name 2013-10-15 23:34 the value *currently in* name, but yes. 2013-10-15 23:35 excellent. 2013-10-15 23:35 oh okay 2013-10-15 23:35 because it can be changed 2013-10-15 23:35 yep! 2013-10-15 23:35 k :D 2013-10-15 23:35 here's a couple new ones for you in quick succession. 2013-10-15 23:35 we're going to dive into the meaning of ‘an expression’ later, but for now, it's just some big words for “some stuff you type that *has a value*.” 2013-10-15 23:36 for instance, even though `name` is the label of a variable, it's *also* “an expression.” 2013-10-15 23:36 okay 2013-10-15 23:36 also I challenge thee to a javascript duel? :D (but we leave out E4X.) 2013-10-15 23:36 the literal `1895` is *also* “an expression”, because that series of digits has a value (the number eighteen-hundred and ninety-five.) 2013-10-15 23:36 heh! someday, then :D 2013-10-15 23:36 (@yorick, not you, nicoou) 2013-10-15 23:36 i figured 2013-10-15 23:37 the important thing, is that expressions *can be put together*, into more complex expressions 2013-10-15 23:37 so as long as its got a value, then it is an expression..? 2013-10-15 23:37 and the entire mess, all together, still *has a value*. 2013-10-15 23:37 mmhmm 2013-10-15 23:37 here's a really simple example: 2013-10-15 23:37 2 + 2. 2013-10-15 23:37 so putting them together is like adding them 2013-10-15 23:37 ` + ` is a keyword, like ` = ` was … meaning you have to type it following particular rules 2013-10-15 23:38 but for this one, the rules are really easy. 2013-10-15 23:38 you put “an expression” (remember: anything having a value!) on both sides, 2013-10-15 23:38 okay 2013-10-15 23:38 and the whole result, is a new expression. 2013-10-15 23:38 so kinda like x+y = xy 2013-10-15 23:38 so, to put all of that into a succinct textual representation, I'm going to use some vertical bars to wrap up every “expression” in that example. 2013-10-15 23:39 (important note: this is NOT syntax. This is stuff I'm doing, to illustrate. It's like drawing on a whiteboard, but in text. You would never type this stuff into a JavaScript computer.) 2013-10-15 23:39 | |2| + |2| | 2013-10-15 23:39 thus, there's three whole expressions, there. 2013-10-15 23:39 okay 2013-10-15 23:39 still moving forward … 2013-10-15 23:40 every time I've said you use a value, somewhere, before? What I actually meant, now that you know the words for it, was to use an *expression*. 2013-10-15 23:40 two places, in particular: 2013-10-15 23:40 A) the right-hand side of an ` = `, the part going *into* a box, can be any expression, 2013-10-15 23:40 and B) the data you're stuffing *into* a slot on a sticky-Object 2013-10-15 23:40 or, to put it in syntax, 2013-10-15 23:41 `number_of_feet = ` works for any expression you can think up, 2013-10-15 23:41 and `{ name: "Elliott", age: }` works for any expression you can think up. 2013-10-15 23:42 now. 2013-10-15 23:42 got all that under your belt, a little bit? 2013-10-15 23:42 i think so 2013-10-15 23:43 okay. I want to see if you can walk me through, in intimate detail, what the computer does, to run this line of code. 2013-10-15 23:43 (at least, given everything I've taught you so far.) 2013-10-15 23:43 don't be afraid, I guarantee you'll forget a few steps, but I'll prompt you. (= 2013-10-15 23:44 oh man 2013-10-15 23:44 okay 2013-10-15 23:44 var person = { name: "Elliott Cable", age: 21 + 3 } 2013-10-15 23:45 so first the computer creates the variable, then it creates the object 2013-10-15 23:45 break down ‘creates the object’ for me. 2013-10-15 23:45 give me a few ‘sub-steps’ that it has to go through before it can put that sticky-blob into the box. 2013-10-15 23:45 i was just typing it! 2013-10-15 23:45 (; 2013-10-15 23:46 it creates the expressions "Elliott Cable," as well as the two values for age? 2013-10-15 23:46 then adds up the age values? 2013-10-15 23:47 then puts them in the object.. 2013-10-15 23:47 you're on the right track! 2013-10-15 23:47 here's what you basically said, put another way: 2013-10-15 23:47 then the object is put into the variable 2013-10-15 23:47 okay 2013-10-15 23:48 it creates **five** values: First, the string-y value for |"Elliott Cable"|, then, the numerics for |21| and |23|, 2013-10-15 23:48 then, in ‘evaluating’ (the word we use for ‘figuring out the result of’ … see? e-VALUE-ating, or, ‘turning into a value!’) 2013-10-15 23:49 (er, |21| and |3|, typo above, my bad) 2013-10-15 23:49 okay 2013-10-15 23:49 you confused me for second lol 2013-10-15 23:49 lol 2013-10-15 23:49 then, in ‘evaluating’ |21 + 3|, it has to create a new numeric value, for 25 (the fourth value it's created here) 2013-10-15 23:49 and finally, it creates an Object, and sticks two of those values to it: 25, and "Elliott Cable". 2013-10-15 23:50 so, try running my line of code. 2013-10-15 23:50 ]>> var person = { name: "Elliott Cable", age: 21 + 3 } 2013-10-15 23:50 >:C 2013-10-15 23:50 typo'd :x 2013-10-15 23:50 >> var person = { name: "Elliott Cable", age: 21 + 3 } 2013-10-15 23:50 nicoou: undefined 2013-10-15 23:50 okay! 2013-10-15 23:51 time to show you a neat little trick. 2013-10-15 23:51 okay 2013-10-15 23:51 if you put *an expression* (remember, anything with a value) all by itself on the last line, and wrap it in parentheses, my bot will tell you *what that value is*. 2013-10-15 23:51 meaning, it will ‘evaluate’ that expression, and show you the final value. 2013-10-15 23:51 remember that a variable's *label* has a value? 2013-10-15 23:52 that means variable-labels are, themselves, expressions. so, that means we can do this: 2013-10-15 23:52 || var person = { name: "Elliott Cable", age: 21 + 3 } 2013-10-15 23:52 >> (person) 2013-10-15 23:52 ELLIOTTCABLE: TypeError: object is not a function 2013-10-15 23:52 you have to do it, I can't; bot is broken for me today, as I mentioned. 2013-10-15 23:52 || var person = { name: "Elliott Cable", age: 21 + 3 } 2013-10-15 23:53 >> (person) 2013-10-15 23:53 nicoou: TypeError: object is not a function 2013-10-15 23:53 okay, this one's on me, I guess. )'= 2013-10-15 23:53 :o 2013-10-15 23:53 time for me to grab my USB key and SSH into the server. 2013-10-15 23:53 he's fucking up too much to be useful, give me a quick moment. 2013-10-15 23:54 okie 2013-10-15 23:54 for the moment, while I deal with that, we're going to take a new tack. 2013-10-15 23:54 What kind of computer are you on? 2013-10-15 23:54 macbook pro 2013-10-15 23:54 and what browser(s) do you use? 2013-10-15 23:54 chrome safarai ff 2013-10-15 23:55 okay. have you used the Terminal before? 2013-10-15 23:55 (don't have to be an expert. Just knowing how to open it is enough for me.) 2013-10-15 23:55 once or twice 2013-10-15 23:55 excellent. 2013-10-15 23:55 Open it now, and type the following. 2013-10-15 23:55 (any time I prefix a line with a standalone dollar-sign, it means “type this into the Terminal”) 2013-10-15 23:55 $ brew 2013-10-15 23:55 what does it say? 2013-10-15 23:56 command not found 2013-10-15 23:56 or specifically -bash: $: command not found 2013-10-15 23:56 mkay 2013-10-15 23:56 copy-paste the following in, exactly 2013-10-15 23:56 ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" 2013-10-15 23:57 hit enter? 2013-10-15 23:57 yep 2013-10-15 23:57 it'll ask you some questions. Answers should be pretty straight-forward; if they're not, ask me. 2013-10-15 23:58 all it asked was for my pw 2013-10-15 23:58 m'kay, good 2013-10-15 23:59 installed line tools for xcode and then said to type brew help? 2013-10-15 23:59 im sure you knew it would do this though haha 2013-10-15 23:59 okay, why does it give that error, that's really weird 2013-10-15 23:59 mmhmm 2013-10-15 23:59 yorick: hm? why does what give which error? 2013-10-15 23:59 ELLIOTTCABLE: the object is not a function error, oh ASI 2013-10-16 00:00 actually the lack of asi on lines that start with ( 2013-10-16 00:00 in this case because it's not a syntax error 2013-10-16 00:01 mmhmm 2013-10-16 00:01 nicoou: yorick nailed it, and I have to bow to him, because I *should* have known better. 2013-10-16 00:02 nicoou: you have to type exactly `;(EXPRESSION)`, with the semicolon. 2013-10-16 00:02 weird, I know. But that's one of the more arcane JavaScript whidjetifiers. 2013-10-16 00:02 ah 2013-10-16 00:02 so, try exactly what you typed earlier, with that as well. (= 2013-10-16 00:03 so it'd have to be `;(person)` ? 2013-10-16 00:03 or the whole bit 2013-10-16 00:03 || var person = { name: "Elliott Cable", age: 21 + 3 } 2013-10-16 00:03 >> ;(person) 2013-10-16 00:03 ELLIOTTCABLE: {age: 24, name: 'Elliott Cable'} 2013-10-16 00:03 ah 2013-10-16 00:03 man, why're you suddenly listening to me again, purr ;_; 2013-10-16 00:03 such an unreliable little bitch. 2013-10-16 00:03 anyway. 2013-10-16 00:03 hahaha 2013-10-16 00:04 so! we've gotten kinda side-tracked here. but! we've covered a lot! 2013-10-16 00:04 let's talk about a couple more operators. 2013-10-16 00:04 i've seriously learned more than i did over a whole term of school 2013-10-16 00:04 they all work in pretty much the same way: put an expression on either side of them. 2013-10-16 00:04 okay 2013-10-16 00:04 + - / * 2013-10-16 00:05 all do what they sound like they would do, for the most part. (there's a lot of caveats here, having to do with that fact that i mentioned earlier … that JavaScript has *only one* kind of number … which means some of these do strange things, in edge-cases … but you'll be fine for 42 + 3*3, and such.) 2013-10-16 00:05 in addition, + works on *strings*, as well, meaning you can add two strings together, which makes the computer create a new string that has all their words mashed up together. 2013-10-16 00:06 >> "Nicole" + "Chavda" 2013-10-16 00:06 ELLIOTTCABLE: 'NicoleChavda' 2013-10-16 00:06 dfjsghdflkjghdflg; 2013-10-16 00:06 notice, it doesn't magically add anything that *wasn't* already in the strings, even if it would make sense. Rather obviously, for instance, there's no space between the words. 2013-10-16 00:06 ELLIOTT 2013-10-16 00:07 BROWN LITTLE SHITES 2013-10-16 00:07 DOZENS OF THEM 2013-10-16 00:07 er sorry what anyway, 2013-10-16 00:07 YOURE A LITTLE SHIT 2013-10-16 00:07 go on though haha 2013-10-16 00:07 those keywords are what we call “operators.” 2013-10-16 00:08 this rule sounds a little arcane, but it's worth remembering: an ‘operator’ is a bit of syntax, that *goes with an expression* 2013-10-16 00:08 (or more than one expression) 2013-10-16 00:08 since ` + ` goes with two expressions on either side, it's an ‘operator.’ 2013-10-16 00:08 that is, it operates, on the values of those expressions. 2013-10-16 00:08 makes sense 2013-10-16 00:08 * ELLIOTTCABLE nods 2013-10-16 00:08 there's other operators, that only have a *single* expression in them. 2013-10-16 00:08 for instance, `!` (yes, that's an exclamation point. 2013-10-16 00:08 it works like this: `! ` 2013-10-16 00:09 crap! I haven't explained booleans yet! 2013-10-16 00:09 :O 2013-10-16 00:09 ive heard that word before 2013-10-16 00:09 well, ! turns true into false … and false into true. it inverts truth/falsehood. If you know what the logical operators are (AND, NOT, OR … the kind of stuff you can type into Gmail or Google), it means the NOT operator. 2013-10-16 00:10 if that was all greek to you, don't worry. 2013-10-16 00:10 let's cover booleans real quick. (= 2013-10-16 00:10 no that kinda made sense :) 2013-10-16 00:10 a boolean is another “type” of data. Just like numerics are a type of data, that represents real-numbers, 2013-10-16 00:10 and strings are a type of data that represents English (and sometimes other) characters, strung together into words or sentences 2013-10-16 00:10 booleans are a type of data, and they represent truth and falsehood. 2013-10-16 00:11 okay 2013-10-16 00:11 there's a near infinitude of possible numerics (1895, 42.2, 0.000001, 23e-172 …), 2013-10-16 00:11 and an even larger set of possible strings, 2013-10-16 00:11 but there's exactly two possible booleans values. 2013-10-16 00:11 `true`, and `false`. 2013-10-16 00:11 easy 2013-10-16 00:12 both are keywords, meaning you can't use them as variable names, or change them, or anything. 2013-10-16 00:12 and both are also expressions, meaning you can use them anywhere you could use a variable name. 2013-10-16 00:12 for instance, 2013-10-16 00:12 here, you do it. 2013-10-16 00:12 let's review again, and add this in: 2013-10-16 00:12 wait wait 2013-10-16 00:12 make me a *new* object, describing yourself … but add a boolean to a slot on your nicole-object. 2013-10-16 00:12 a boolean conveying your marital status. 2013-10-16 00:12 you can't use them as variable names, but you can use them in place of a variable? 2013-10-16 00:13 you can use them in the place of an *expression*. 2013-10-16 00:13 variable-labels are just one of the possible expressions. 2013-10-16 00:13 so, for example, 2013-10-16 00:13 `var