←2015-04-27 2015-04-28 2015-04-29→ ↑2015 ↑all
00:00:18 -!- bb010g has quit (Quit: Connection closed for inactivity).
00:04:05 -!- hjulle has joined.
00:21:30 <FireFly> ;5uv-o
00:21:32 <FireFly> oops
00:24:48 <ais523> you may have to change your password
00:41:16 <spatterworthy> help
00:41:24 <spatterworthy> damn doesn't exist
01:03:20 <int-e> `help
01:03:20 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
01:07:14 -!- bb010g has joined.
01:16:39 -!- trout has quit (Ping timeout: 265 seconds).
01:19:34 -!- hamrove has joined.
01:39:58 -!- MDude has changed nick to MDream.
02:00:10 -!- Phantom_Hoover has quit (Quit: Leaving).
02:40:32 -!- hjulle has quit (Ping timeout: 245 seconds).
03:00:54 -!- variable has joined.
03:18:57 -!- spatterworthy has quit (Ping timeout: 246 seconds).
03:26:59 -!- Sprocklem has joined.
03:31:18 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
03:43:29 -!- hamrove has quit (Quit: hamrove).
04:33:37 -!- variable has changed nick to trout.
04:48:18 -!- trout has quit (Ping timeout: 264 seconds).
05:15:51 -!- zzo38 has joined.
05:20:30 <zzo38> Another way to do color codes in cells is to use the PC memory format, so there is a color code in each cell
05:30:25 <orin> color codes for text or graphics?
05:33:17 <zzo38> Color codes for text is what I meant
05:34:14 <orin> Ah
05:34:56 <orin> Yeah ncurses does that IIRC, you | the color into the character you write
05:35:21 <orin> whcih implies the higher bits are used for color
05:37:26 <zzo38> I don't mean ncurses though, I mean poking the data directly into the memory; such a thing is only for PC though
05:37:51 <zzo38> PC color codes are also different numbers than ANSI color codes.
05:38:52 <orin> yah, i would think so, curses was invented on some mainframe architecture, i think.
05:40:33 <orin> also I remember on windows you can instead use conio.h
05:41:22 -!- Sprocklem has quit (Ping timeout: 245 seconds).
05:49:50 <zzo38> How would you make a transform from one program to a program which on alternating steps runs the original program and tries to figure out a proof that the original program does not halt? Now is it the new kind of halting problem? (Well, not quite the new kind)
05:52:36 <orin> I suppose, you could simply chack whether the state of the program is one that it was in before?
05:53:12 <orin> (wait, that only works if the memory doesn't grow)
05:53:20 <oerjan> @tell int-e <int-e> Ah, finally the cake is working. I was worried... <-- wait this means you shouted "cake!" *without* having read the latest comic tdnh
05:53:20 <lambdabot> Consider it noted.
05:53:36 <zzo38> Yes, that is one case, at least, but there are other cases too
05:53:55 <oerjan> @tell int-e wait scratch that i'm getting confused about the age of logs i'm reading
05:53:55 <lambdabot> Consider it noted.
05:54:44 <oerjan> that's what happens when i don't log off before going to bed
05:55:31 <orin> oerjan: well that's better than me. without school or work I was recently corrected about the day of the week from thinking itwas friday to monday
05:55:48 <oerjan> OKAY
05:56:35 <orin> The day of the week is pretty arbitrary isn't it
05:56:58 <oerjan> yeah. but very traditional.
05:57:28 <oerjan> we've probably not skipped a single one since the ancient jews.
05:58:16 <oerjan> although the french tried.
05:58:36 <ais523> suppose the 7-day cycle had existed since the first humans
05:58:41 <orin> The chinese apparently had a 10 day week (reading wiipedia)
05:58:51 <orin> s/ii/iki/
05:59:02 <oerjan> ais523: WELL OF COURSE DON'T YOU READ THE BIBLE
05:59:02 <ais523> how few humans would there have to be to have a decent chance of all of them forgetting what day of the week it was simultaneously, amd being unable to reconstruct?
05:59:32 <ais523> oerjan: that doesn't imply that the seven days cycled, did it?
05:59:34 <oerjan> one too big party
05:59:48 <oerjan> ais523: hm
05:59:49 <orin> if they were programmers, 100
05:59:50 <ais523> I think the Romans had a 9-day cycle, anyway
05:59:55 <orin> nones
05:59:58 <orin> and ides
06:00:01 <oerjan> i vaguely thought it was 8...
06:00:08 <ais523> nones and ides happened once a monht
06:00:12 <ais523> and calends, too
06:00:28 <ais523> so each month was separated into three pieces, each of which was numbered separately
06:00:34 <ais523> I guess it seemed like a good idea at the time?
06:01:06 <oerjan> zzo38: your transform sounds sort of trivial, once you've selected a formal proof system
06:02:44 <orin> I think I would prefer a 9 day system. then we can have 2 days work, one day off
06:03:04 <ais523> don't some jobs have a 2 on, 1 off, 2 on, 2 off system?
06:03:16 <ais523> that seems even better
06:03:20 <oerjan> ais523: except some parts of the year didn't have months originally
06:03:35 <zzo38> oerjan: What kind of formal proof system is it though?
06:03:39 <ais523> oerjan: I think they did in the Roman calendar
06:03:42 <ais523> perhaps not in the early days, thoguh
06:03:53 <orin> right, that would help sync with the moon
06:04:08 <oerjan> zzo38: i assume gödel implies you cannot really select a "best" one.
06:04:27 <oerjan> so you could go with ZFC, or homotopic type theory, or whatever.
06:04:43 <oerjan> (i hear the latter is all the rage)
06:05:47 <oerjan> ais523: well i'm talking about the roman calendar, from when someone here(?) pointed at a good site explaining its evolution.
06:05:52 <zzo38> OK I looked it up a few information in Wikipedia
06:07:42 <zzo38> Is it ever possible that applying such a transformation twice makes a difference (if the transformation method does something unusual)?
06:07:50 -!- zadock has joined.
06:08:22 <oerjan> lots of things are possible
06:09:08 <oerjan> zzo38: well your transform never makes the program _less_ halting.
06:09:20 <zzo38> oerjan: I do see that at least yes
06:10:42 <ais523> I don't think that, if your proof system is correct, it's possible to prove that you can prove something, but not prove it
06:10:44 <ais523> perhaps I'm wrong though
06:11:04 <ais523> actually I think this is a property of proof systems that has a name and gets discussed by logicians
06:11:32 <ais523> perhaps I should go find my copy of Forever Undecided, it has a lot of discussion about that sort of thing
06:11:37 <oerjan> argh bloody tonsils or whatever it hurts when i swallow
06:11:44 <zzo38> I thought that too but also am unsure, even if a proof system can make up a proof system somehow
06:12:34 <oerjan> <ais523> I don't think that, if your proof system is correct, it's possible to prove that you can prove something, but not prove it <-- i refuse to believe you're not garbling whatever what was supposed to mean.
06:12:55 <oerjan> oh wait
06:13:00 <oerjan> missed a negation
06:13:09 * oerjan fails at refusal
06:13:26 <oerjan> ais523: in fact i think there's such a theorem but i cannot remember who it's named after
06:13:43 <ais523> from what I remember reading about this stuff
06:13:57 <ais523> it's a property a system can have, which is useful in some proofs, and which is implied via various other plausible groups of properties
06:14:15 <ais523> so the theorem you're vaguely remembering is probably along the lines of "if a proof system has properties X, Y, and Z, it has that one too"
06:14:47 <oerjan> hm löb's theorem is sort of the wrong way
06:17:49 <zzo38> Can a formal system make up its own new kind of formal system by adding "this statement cannot prove itself" as a new axiom?
06:18:15 <oerjan> dunno
06:18:37 <ais523> zzo38: well, if you take Gödel's counterexample "this statement is not provable"
06:18:57 <ais523> you know that statement is not provable in a correct system (if it were, it would be false)
06:19:19 <ais523> and its negation is not provable either (its negation is "the negation of this statement is provable", and if it were, you'd again be proving a false statement)
06:19:30 <ais523> thus you can add either it or its negation as an axiom
06:19:34 <ais523> and still have an internally consistent system
06:19:36 <zzo38> Yes, I read about that too
06:19:51 <ais523> IMO it wouldn't be a very useful axiom though
06:23:27 <oerjan> <J_Arcane> http://blog.fogus.me/2015/04/27/six-works-of-computer-science-fiction/ <-- way for a link to make me feel cheated the second i open it tdnh
07:24:20 -!- TodPunk has quit (Read error: Connection reset by peer).
07:37:38 -!- llue has quit (Quit: That's what she said).
07:37:48 -!- lleu has joined.
07:57:22 -!- jameseb has quit (Ping timeout: 276 seconds).
07:57:39 -!- TodPunk has joined.
07:59:23 -!- jameseb has joined.
08:11:56 <orin> Hmm ed's ! command doesn't appear to allow cd to work properly
08:12:22 <ais523> that's because cd is a shell builtin
08:12:35 <orin> WOT?
08:12:35 <ais523> you're changing the current directory of the spell you spawned, not the editor that spawned it
08:12:54 <HackEgo> [wiki] [[CalScript]] M http://esolangs.org/w/index.php?diff=42773&oldid=42764 * Vriskanon * (+100) Added tokens and memory info.
08:13:10 <ais523> I have shown #esoteric /bin/cd before, I doubt it'd work with ed directly
08:13:15 <ais523> but you could probably tweak it to do so
08:13:32 <ais523> (it works by attaching a debugger to the parent process and forcibly getting that process to call the change-directory syscall itself)
08:14:05 <orin> Hmm... Maybe I should download the source code for ed and add filsytem stuff to it
08:14:52 <orin> Ed is written in C, almost certainly, so it shouldn't be hard
08:23:30 -!- idris-bot has quit (Ping timeout: 250 seconds).
08:23:51 -!- mroman has quit (Ping timeout: 256 seconds).
08:24:05 -!- mroman has joined.
08:24:17 -!- idris-bot has joined.
08:24:19 <oerjan> orin: that's called ex hth
08:24:35 <orin> does ex have a cd
08:24:47 <oerjan> yes, at least the vim based one
08:25:14 <oerjan> ex is simply a different mode of running vim (you can switch from inside)
08:25:21 <mroman> fungot: morning.
08:25:21 <fungot> mroman: what's this " it doesn't compile
08:25:24 <orin> oh it's chdir
08:25:48 <mroman> fungot: That's a start of a string.
08:25:48 <fungot> mroman: i don't think anyone but me's ever used intercal quotes to parens when there are fnord
08:25:54 <oerjan> vim help says cd
08:26:03 <mroman> fungot: Ow. " in intercal? I don't know intercal.
08:26:03 <fungot> mroman: ( define subset? ' ( a) ab acdafg ( b) think long and hard about the concept of code being outstanding... right?
08:26:12 <oerjan> chdir means the same thing
08:26:18 <ais523> mroman: in INTERCAL, parens are ' to ' or " to "
08:26:42 <ais523> or well, INTERCAL '' and "" do the same thing as parens in most languages
08:26:50 <ais523> with the benefit of occasionally being ambiguous in weird ways
08:27:41 <orin> ex is not full backward compatible to ed
08:28:06 <orin> specifically ex uses q! while ed uses Q
08:29:18 <oerjan> hm
08:29:54 -!- Patashu has joined.
08:34:59 <orin> I think strings should be 5"hello
08:35:14 <orin> and/or [hello]
08:36:11 <orin> Ideally it would support hollerith for auto-generated code, and matching delimiters for humnas
08:36:40 <orin> hollerith means the generator doesn't have to translate escapes
08:49:51 -!- lleu has quit (Quit: That's what she said).
09:06:28 -!- idris-bot has quit (Quit: Terminated).
09:06:45 -!- idris-bot has joined.
09:09:45 <orin> Holy crap. The ed source contains the following line: if( errno == ERANGE || li > INT_MAX || li < INT_MIN )
09:09:48 <orin> {
09:09:51 <orin> set_error_msg( "Numerical result out of range" );
09:10:16 <orin> Which assumes that li, a long, has a lager range than an int
09:10:34 <orin> which it doesn't, on most 32 bit systems
09:11:35 <ais523> that would have made sense in the days of 16-bit systems
09:11:41 <ais523> which is where I learned to program
09:11:52 <ais523> or, well, it was Windows 3.1 code but running on Windows 95
09:12:02 <orin> yeah, that makes sense as the origin
09:12:03 <ais523> err, where I learned to program C and C++, I should say
09:12:42 <ais523> I learned BASIC and Pascal earlier than that (and eventually got a computer with BASIC in the ROM of my own; it was obsolete at the time and its owners were trying to get rid of it, so it only cost £20 IIRC)
09:13:07 * Taneb never actually learnt to program
09:13:32 <ais523> Taneb: can you program, though?
09:13:44 <Taneb> ais523, I can pretend to program very well
09:14:13 <orin> Is long a 64 bit integer on 64 bit systems?
09:14:21 <ais523> orin: yes on Linux, no on Windows, typically
09:14:28 <orin> Ah.
09:14:44 <Taneb> More seriously, I sort of just picked stuff up, I did learn Haskell at some point, and I get lost very easily in any program of any appreciable size
09:14:51 <ais523> this is apparently because on Linux 32-bit programs, "long is pointer-sized" is a more common assumption than "long is 32 bits"; on Windows, it's the other way round
09:15:04 <ais523> oh, Haskell, right
09:15:15 <ais523> given how little it has in common with anything else
09:15:27 <ais523> I can imagine knowing that quite well and still having not that much contact with the rest of the programming world
09:15:35 <Taneb> I had a little Python and JavaScript before I started Haskell, but not much at all
09:15:40 <ais523> (although, my day job is in OCaml, so)
09:15:47 <ais523> actually I'm not even sure why I wrote this thing in OCaml
09:15:50 <orin> I can program in imperative languages. I can write toy programs in functional languagaes
09:16:01 <ais523> I can't remember if I was asked to, or if I chose it, and if I chose it, why
09:16:25 <ais523> it's not like I was good at OCaml at the time (I'm much better at it now, after working in it for 3-4 years)
09:16:45 <orin> I once wrote a program inFortran 77 for no good reason
09:17:07 <orin> other than i was reading a book that had examples in fortran
09:17:27 <ais523> I once wrote a program in Prolog with no way to run it
09:17:31 <ais523> no idea if I still have it or if it would have worked
09:17:36 <ais523> that was based entirely on reading manuals
09:17:44 <Taneb> Really, I think I'm a maths student who likes computer science more than anything else
09:17:58 <ais523> (strangely enough, I remembered enough Prolog from back then to actually write in it once I had an impl)
09:18:22 <orin> I had a course in prolog where I never actually ran any prolog programs, just wrote and analyzed them
09:18:54 <ais523> to be fair, actually running Prolog programs doesn't give much insight into what they do or whether it's working
09:19:27 <Taneb> I think my uni course will take me about as close to Eodermdrome as to Prolog :/
09:19:53 -!- hjulle has joined.
09:20:18 <ais523> the amazing thing about Prolog is that I don't think there's another language like it (apart from uncomputable vaporware esolangs)
09:20:46 <ais523> (I have the working name "Proud" for a language which is Prolog minus the arbitrary restrictions needed to make it computable, and have no idea why I chose that name any more)
09:21:02 -!- Phantom_Hoover has joined.
09:21:07 <orin> why is Perl called perl?
09:21:26 <orin> I don't know why anything is called anything
09:21:27 <Taneb> ais523, "PROlog UnDecidable"?
09:21:36 <ais523> orin: I know that one
09:21:47 <ais523> Larry Wall read through all the three- and four-letter words in the dictionary
09:21:52 <ais523> didn't find any he liked
09:22:05 <ais523> and then went through the five-letter words until he finally found a name he thought was acceptable
09:22:12 <ais523> then he discovered it was already taken, so had to misspell it
09:23:49 <mroman> orin: Perfect emacs rewriting language
09:23:51 <mroman> obviously.
09:23:53 <mroman> `? perl
09:23:55 <HackEgo> perl? ¯\(°​_o)/¯
09:24:05 <mroman> `learn Perl is the Perfect Emacs Rewriting Language
09:24:12 <HackEgo> Learned 'perl': Perl is the Perfect Emacs Rewriting Language
09:24:45 <orin> Anyway if your professor says, you can write the program in any language so long as it works, that is an excuse to use Fortran or PL/I or any other ancient and forbidden tongue.
09:25:19 <ais523> orin: they said that in my Systems and Control GCSE
09:25:25 <ais523> and I had a huge urge to write it in assembler
09:25:46 <ais523> but given that that was an exam that I wanted to do really well at and I had a feeling I shouldn't annoy the examiner, I wrote it in pseudo-BASIC instead
09:26:37 <mroman> but without -ffree-form
09:26:42 <mroman> free-form is for whimps.
09:26:50 <orin> Yeah that's what I did
09:27:14 -!- ais523 has left ("<fungot> fizzie: it makes demons fly out of my window, washing the windows api").
09:27:18 -!- ais523 has joined.
09:27:20 <orin> I used the line numbers and the weird three number goto and everythinmg
09:27:28 <ais523> what does -ffree-form do?
09:27:55 <ais523> (also, I did do well at that exam, I got a letter back from the exam board saying I had one of the top 5 marks in the country on that exam)
09:28:11 <ais523> (then the school stopped teaching the subject altogether a few years later)
09:28:29 <orin> it means you don't have to put the line numbers aon particular columns and begin the statement at charcter number 7 and put a C in character 1 for commnets
09:29:25 <ais523> oh, I was assuming BASIC, not Fortran
09:29:45 <ais523> actually this gives me an evil idea
09:29:50 <ais523> fixed-form BASIC
09:30:09 <ais523> line numbers in particular columns, REM has to be in column 1, etc.
09:30:43 <oerjan> i don't think REM in column 1 is backward compatible
09:31:03 <oerjan> unless you're satisfied with 9 comment lines
09:31:32 <oerjan> or wait is this 0 or 1 indexing
09:32:07 <oerjan> or wait you mean REM doesn't get a line number
09:32:22 * oerjan learned BASIC too long ago
09:32:29 <ais523> I was wondering about that myself
09:32:33 <ais523> I can see a few potential solutions
09:32:43 <ais523> one is to use fancy Unicode line numbers that let you fit larger numberes into one column
09:32:54 <ais523> I guess, failing that, you could put the number at the end of the previous line
09:34:19 <orin> What if a lanuage used Roman line numbers
09:34:38 <ais523> I'm surprised that hasn't been done yet
09:34:42 <ais523> if it hasn't
09:34:48 <ais523> I can believe it happening in something INTERCAL-related
09:35:00 <orin> I. WRITE HELLO WORLD
09:35:09 <orin> II. END
09:35:25 <ais523> meanwhile, I'm reading a paper on how to do a FizzBuzz in Haskell without checking /anything/ twice, O(n) in program size in the number of "fizz"/"buzz" keywords
09:35:27 <ais523> oh, I remember
09:35:33 <ais523> it's QVICKBasic
09:35:40 <ais523> from the ICFP contest a few years ago
09:35:43 <ais523> if you haven't seen that, you should
09:35:50 <ais523> it is one of the most amazing esoprogramming projects ever
09:35:57 <ais523> (not QVICKBasic, the contest as a whole)
09:36:32 <ais523> orin: http://boundvariable.org/task.shtml
09:36:35 <myname> ais523: show me that paper
09:37:01 <ais523> myname: https://themonadreader.files.wordpress.com/2014/04/fizzbuzz.pdf
09:37:01 <myname> i don't quite get where the problem is
09:37:11 <ais523> this doesn't look very submitted, as papers go
09:37:14 <ais523> but it's in the form of a paper
09:37:22 <myname> at least every third number is a fizz
09:37:45 <myname> number of fizz is in O(numbers)
09:38:01 <ais523> myname: no
09:38:09 <myname> huh?
09:38:14 <ais523> as in, if you add more pairs than just (3, "fizz"), (5, "buzz")
09:38:24 <ais523> say you add in more primes and more humorous noises
09:38:36 <ais523> the size of your program needs to be O(n) in that
09:38:47 <ais523> anyway, the reason I mentioned this is that it reminded me of yacc
09:38:57 <ais523> and now I'm trying to figure out if a yacc fizzbuzz is even a meaningful problem
09:40:27 <ais523> hmm, this thing has just two references; one to Dijkstra, the other to Wikipedia
09:42:59 <orin> Why not just do struct {char*s,int i} noises[]={{"fizz",3},{"buzz",5}};
09:43:19 <ais523> and then write an interpreter?
09:43:23 <orin> yeah
09:43:33 <ais523> you may still end up checking something twice
09:43:45 <orin> what?
09:43:58 <orin> I don't think so...
09:44:36 <ais523> depends on how your interp works
09:44:45 <mroman> Is 'capital punishment' == 'death sentence'?
09:44:49 <ais523> I think it might work if you have an accumulator variable
09:44:55 <ais523> mroman: pretty much, they're used in different contexts
09:45:02 <orin> yeah.
09:45:15 <ais523> "capital punishment" = "this countries' laws allow for execution of people committing certain crimes"
09:45:25 <ais523> "death sentence" = "a ruling that a specific person should be executed"
09:45:31 <mroman> I see.
09:45:38 <ais523> but they're close enough in meaning for people to use them interchangeably
09:45:56 <mroman> Susan-Anne White has quite a manifesto.
09:46:45 -!- zadock has quit (Quit: Leaving).
09:47:42 <orin> for(i=0;i<MAX;i++)for(j=0;j<sizeof(noises)/sizeof(noises[0]);j++)if(i%noises[j].i==0)fputs(noises[j].s,stdout);putchar();
09:47:46 <orin> for(i=0;i<MAX;i++)for(j=0;j<sizeof(noises)/sizeof(noises[0]);j++)if(i%noises[j].i==0)fputs(noises[j].s,stdout);putchar('\n');
09:47:49 <ais523> hmm, westernish europe
09:47:54 <ais523> what country is this?
09:48:24 <ais523> orin: where does that print the number itself if none of them match?
09:48:48 <orin> oh, right. you need to have a boolean for that...
09:49:50 <mroman> "westernish europe"?
09:49:51 <ais523> also you're missing a pair of braces, meaning that you'll only print one newline at the end of the program
09:49:53 <mroman> Portugal?
09:50:02 <ais523> mroman: UTC+2
09:50:05 -!- hjulle has quit (Ping timeout: 248 seconds).
09:50:15 <ais523> which given that it's summer time, means western but not as far west as the UK
09:50:16 <orin> for(i=0;i<MAX;i++){f=1;for(j=0;j<sizeof(noises)/sizeof(noises[0]);j++)if(i%noises[j].i==0)fputs(noises[j].s,stdout),f=0;if(f)printf("%n",i);putchar('\n');}
09:50:22 <ais523> although if you are in Portugal, it's using some weird DST rules
09:50:31 <ais523> either that or my clock is wrong or your clock is wrong
09:50:36 <ais523> `time
09:50:37 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: time: not found
09:50:44 <ais523> `` time
09:50:47 <HackEgo> real: 0m1.575s, user: 0m0.000s, sys: 0m0.000s
09:50:49 <ais523> oh right
09:50:51 <ais523> `date
09:50:54 <HackEgo> Tue Apr 28 09:50:53 UTC 2015
09:51:13 <ais523> somehow, even nowadays I slip that I grew up on DOS
09:51:42 <orin> yeah. so I think it's trivial to do it, if you store the numbers and words in a data structure separately
09:54:52 <orin> although, it's not necessary to test if i%4==0 if i%2==1
09:55:10 <orin> so there are still uneccary tests
09:56:28 <ais523> I think it's probably more efficient to just check anyway, than to write extra logic to detect that case
09:56:35 <ais523> although arguably that violates the rules
09:56:44 <ais523> it didn't really make the details of the rules clear
09:57:18 <ais523> so, it turns out there's no fizzbuzz in INTERCAL
09:57:58 <oerjan> wat
09:58:10 <oerjan> oh you mean no one wrote one
09:58:44 <b_jonas> what? let me check Rosetta Code
09:58:59 <ais523> oerjan: not in the Pit, anyway
09:59:03 <b_jonas> http://rosettacode.org/wiki/FizzBuzz
09:59:04 <b_jonas> indeed
09:59:07 <ais523> which claims to be a repository of all known INTERCAL programs
09:59:08 <b_jonas> no intercal
09:59:11 <ais523> it may, however, be lying
09:59:18 <b_jonas> but there's a Chef implementation
09:59:35 <ais523> actually INTERCAL is a really hard language to write this in
09:59:42 <ais523> especially if you don't use the standard library
10:00:04 <b_jonas> yeah, the problem is that it's hard to write even a BF interpreter in intercal
10:00:23 <ais523> BF interp is easier, I think
10:00:29 <ais523> no modulo, no string handling other than single chars
10:00:37 <b_jonas> is there an easy way to remap array indexes so that they're easy to increment and decrement in intercal?
10:01:01 <b_jonas> I mean, remap integers to other integers that way, and then you use them as array indices
10:01:04 <ais523> b_jonas: there's a one-statement increment in INTERCAL that isn't too awful that's been known for a while now
10:01:06 <b_jonas> to implement bf
10:01:22 <b_jonas> ais523: is there a decrement too?
10:01:34 <ais523> I have been considering the "some formula which cycles through 2^n possible values in an arbitrary order" thing, but didn't come up with a solution
10:01:34 <b_jonas> just increment isn't enough
10:01:46 <b_jonas> ais523: it needn't be 2**n values
10:01:46 <ais523> and yes, to decrement you can complement then increment then complement, among other things
10:02:06 <b_jonas> hmm
10:02:25 <ais523> DO .1 <- "?'"'"'"'"'"'"'"'"'".1~.1"~.1'~.1"~.1' ~.1"~.1'~.1"~.1' ~.1"~.1'~.1"~.1' ~.1"~.1'~.1"~.1' $#1"~"#32767$#1"'$.1"~"#0$#65535"
10:02:32 <ais523> sorry for the gratuitous whitespace
10:02:56 <ais523> DO .1 <- "?'"'"'"'"'"'"'"'"'".1~.1"~.1'~.1"~.1'~.1"~.1'~.1"~.1'~.1"~.1'~.1"~.1'~.1"~.1'~.1"~.1'$#1"~"#32767$#1"'$.1"~"#0$#65535"
10:02:58 <ais523> that's better
10:03:55 <ais523> IIRC, if you remove one of the "…~.1" repetitions, it works for all numbers but 65534
10:03:59 <b_jonas> I mean, I certainly prefer languages that have a large selection of arithmetic built in, but if you're using intercal, there's really no reason to use numbers in their original meaning, is there?
10:04:09 <ais523> indeed
10:04:13 <b_jonas> Maybe there is some little reason for that, like if arrays are stored continuously
10:04:57 <ais523> (((((#65535 $ #65535) ~ ((?32 ((((V32 ((&32 (.4 $ .2) ~ (#0 $ #65535)) $ .9) (#0 $ #65535)) $ #0) ~ (#32767 $ #1)) $ .2) ~ (#0 $ #65535)) $ #65535)) $ .4) ~ (#0 $ #65535)) $ .9) <- (#435 $ #72)
10:05:00 <b_jonas> or... can you give computed percentages?
10:05:17 <ais523> this one was the culmination of literally years of work
10:05:20 <ais523> and isn't in INTERCAL syntax yet
10:05:24 <ais523> and has the input operands hardcoded
10:05:36 <ais523> and no, not in C-INTERCAL I don't think (you probably can in CLC-INTERCAL)
10:05:38 <b_jonas> what does it do?
10:05:59 <ais523> addition
10:06:03 <b_jonas> ah
10:06:18 <ais523> specifically, you give it the bitwise-AND and bitwise-XOR of two numbers
10:06:42 <ais523> and it returns the bitwise-XOR of a specific one of those numbers and their sum
10:07:11 <ais523> so a little extra code allows you to convert it to an addition routine
10:07:15 <ais523> no loops, no threading, it's great
10:07:24 <ais523> it takes violin a little under 2 minutes to run on this laptop
10:07:29 <b_jonas> _threading_?
10:07:30 <b_jonas> that scares me
10:07:48 <b_jonas> threading to do addition
10:07:50 <ais523> yeah, that's my Slashdot sig, I managed to golf it to fit it within the size limits
10:07:52 <ais523> give me a moment
10:08:54 <ais523> (1)DOCOMEFROM!2~.2'~#1WHILE:1<-"'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"
10:09:09 <ais523> that's way more efficient than the reverse assignment method
10:09:13 <b_jonas> That looks way scarier than my GF(128) obfu, because that only has to compute an inconvenient operation from convenient primitives. in intercal, you have to go backwards, computing convenient operations from crazy primitives.
10:09:57 <ais523> the reason to use threading is simply that x WHILE y runs y for as long as x is running
10:10:02 <ais523> and thus is a convenient way to do a loop
10:10:19 <b_jonas> GF(128) obfu => http://www.perlmonks.com/?node_id=863110
10:10:51 <ais523> that algorithm there is actually incredibly conventional, it basically starts with two numbers, adds them bitwise to produce a value and a carry, then uses the value and shifted carry as inputs to the next round
10:10:56 <ais523> and repeats until there are no carries left
10:11:02 <ais523> the violin code is a little more unconventional
10:11:28 <b_jonas> though maybe a better analog would be http://www.perlmonks.com/?node_id=989716 which does implement useful operation (addition) from inconvenient ones (indexing and amending bits in the Zeckendorf representation)
10:11:45 <b_jonas> I see
10:12:23 <ais523> <my notes on violin> `carry` = (`a` bitwise-OR (`x` bitwise-AND `carry`)) leftshifted 1
10:12:29 <b_jonas> (zzo38 has implemented even more useful stuff in zeckendorf)
10:12:37 <ais523> `a` and `x` are the and and xor of the original numbers
10:12:39 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: a`: not found
10:12:44 <ais523> based on that, we then define the carry in terms of itself
10:13:32 <b_jonas> yeah
10:13:47 <b_jonas> and it's only about 16 steps to stabilize
10:13:58 <b_jonas> not, say, 65536 steps which some formulas could do
10:14:08 <ais523> b_jonas: oh, you don't understand
10:14:13 <ais523> it's not an iterative algorithm
10:14:14 <ais523> it's a constraint
10:14:22 <ais523> violin has to use a SAT solver to solve it
10:14:27 <b_jonas> oh
10:14:27 <ais523> which is why it's so slow
10:14:31 <b_jonas> whoa
10:14:37 <b_jonas> a sat solver?
10:14:43 <b_jonas> that's even scarier
10:15:00 -!- TodPunk has quit (Read error: Connection reset by peer).
10:15:15 <ais523> INTERCAL expression syntax is now NP-complete, you can write arbitrary boolean satisfaction problems in it
10:15:29 -!- TodPunk has joined.
10:15:31 <b_jonas> what
10:15:37 <b_jonas> how does it achieve that?
10:16:26 <ais523> basically you write them on the left of the arrow
10:16:47 <b_jonas> hmm
10:16:49 <ais523> all compilers agree that it's legal to select 16 bits from a 32-bit number, then mingle that with something
10:17:10 <ais523> also, all compilers agree that it's illegal to selec 17 or more bits from a 32-bit number, producing a value greater than 65535, then mingle that with something
10:17:10 <b_jonas> and it can contain indexing on the left and right hand side of the arrow?
10:17:31 <b_jonas> how does it even determine which variables to modify?
10:17:38 <ais523> (there's some grey area if you select 17 or more bits but the value is less than 65536 bits, but you can easily avoid that case)
10:17:45 <ais523> and, ugh, I didn't think of array indexing on the left of the arrow
10:18:25 -!- MauBot has joined.
10:19:10 <b_jonas> like, if you say DO.1~.2<-.3 how does it know whether to modify .1 or .2 ?
10:19:57 <ais523> oh, it modifies everything mentioned to the left of the arrow
10:20:00 <ais523> including the constants, in some mpls
10:20:04 <ais523> *impls
10:20:06 <b_jonas> uh
10:20:08 <ais523> although rather predictably in most
10:20:10 <b_jonas> ok
10:20:21 <ais523> violin will find each possible solution with nonzero probability
10:20:22 <oerjan> <ais523> I have been considering the "some formula which cycles through 2^n possible values in an arbitrary order" thing, but didn't come up with a solution <-- if you make that 2^n-1, it's what i did for the unlambda interpreter gc
10:20:38 <b_jonas> and is there a way to force it to keep some values constant when searching for a solution?
10:20:40 <ais523> oerjan: oh good
10:20:50 <ais523> also the unlambda interp has a gc? or was it just refcounting?
10:21:10 <ais523> b_jonas: currently no, for violin integration I'm planning a "don't modify constants unless you have to" approach
10:21:25 -!- MDream has changed nick to MDude.
10:21:40 <b_jonas> ais523: ok, but how about non-constants? like if I want to search a solution where .1 doesn't change but .2 does
10:22:12 <b_jonas> hmm, is there a multiple assignment syntax so you can give more than one condition by the way?
10:22:16 <ais523> b_jonas: then you have to pass in the value indirectly on the right of the arrow
10:22:18 <orin> I read that as integrating an actual violin, before realizing there could be a language called violin
10:22:22 -!- Wazza has joined.
10:22:30 <ais523> also, you can't directly do a multiple assignment
10:22:37 <ais523> but you can just write DO .1$.2 <- .3$.4
10:22:47 <b_jonas> um yes, for two values
10:22:47 -!- Wazza has left ("Textual IRC Client: www.textualapp.com").
10:22:54 <b_jonas> that won't work for two dwords or three words
10:23:07 <ais523> you can only do 32 bits atm, yes
10:23:26 <b_jonas> ok
10:23:40 <b_jonas> I guess too much generality would make it too easy to program
10:23:53 <ais523> it's not INTERCAL without arbitrary restrictions
10:24:00 <ais523> although I have been considering bignum mingle as a usefulish operation
10:27:23 <oerjan> ais523: ok refcounting it was
10:28:10 -!- boily has joined.
10:32:41 -!- iamevn_ has joined.
10:34:53 -!- nortti has quit (Ping timeout: 265 seconds).
10:35:01 -!- nortti has joined.
10:35:32 -!- iamevn has quit (Ping timeout: 245 seconds).
10:43:36 -!- AnotherTest has joined.
10:44:05 -!- MauBot has quit (Remote host closed the connection).
10:48:24 <orin> Ok, I added a 'C' command to ed that changes direcotry
10:49:22 <orin> As long as I'm mangling GNU software, anything else I shouold add?
10:49:58 <b_jonas> orin: why don't you just use ex instead?
10:50:10 <orin> because that's not as fun
10:51:30 <orin> Maybe I can add syntax highlighting
10:51:35 <orin> lol
10:52:04 <b_jonas> orin: doesn't it already have that via w|your-syntax-highlighter-executable
10:52:09 <b_jonas> or maybe with a ! instead of |
10:52:52 <orin> Good point. Maybe I whould just add a command to set an executable to pass all output through
10:54:32 <orin> Well technically that doesn't do exactly what I mean, but I see the value in externalizing the highlighting
10:56:00 <boily> hellorin. what kind of atrocities are you commiting to ed?
10:56:15 <ais523> boily: it's a saner method than /bin/cd at least
10:56:37 <orin> I added a 'C' command, and now I think i'll add syntax highlighting
10:57:04 <ais523> apparently early UNIX had a /bin/goto that exploited the fact that the shell of the time, pre-sh, read the file back from disk after every command was executed
10:57:08 <ais523> so it manually moved bits of the shellscript around
10:57:32 <boily> /clear
10:57:36 <boily> /flush
10:57:39 <boily> /aaaaaaaaaaaaaaaargh!
10:58:24 <orin> http://ctrlv.in/565704
11:00:37 <orin> *strchr(*ibufpp,'\n')=0;
11:00:46 <orin> beacuse i'm awful.
11:01:57 <boily> remind me to mapole you when I won't be having a cold and have a little bit more muscular strength twh
11:02:39 <b_jonas> scary
11:02:51 -!- ais523 has quit (Ping timeout: 264 seconds).
11:03:27 <orin> well it seems that there is always a newline at the end
11:03:46 <orin> (based on the lack of egfaulting)
11:05:15 <oerjan> boily: hey have you been infecting me
11:05:26 <oerjan> oh i was supposed to eat
11:05:51 <boily> hellørjan. I don't think so hth
11:06:07 <oerjan> i recommend not having a throat that hurts when you swallow hth
11:08:02 <boily> my sinuses are blocked, coughing light green extraterrestrial radioactive stuff, but at least my throat doesn't hurt.
11:08:12 <oerjan> yay!
11:08:35 <oerjan> now i can think "at least my sinuses aren't blocked"
11:10:38 <orin> So I think I'll add an F [command] command, which causes ed to pass all output of 'p' and 'n' through the command.
11:11:08 <orin> and maybe an option to set this from the command line
11:11:24 <orin> 'F' for 'formatter'
11:12:20 <b_jonas> orin: um, at that point you might want to add some escape code for multibyte commands before you use up all letters for insignificant commands
11:12:36 <b_jonas> that could hurt you later if you find more useful commands you'd want to put on the single letters
11:12:53 <b_jonas> you know, like the way the vanilla nethack key layout is messed up
11:13:23 <orin> Nah, I'll just start using é and æ
11:13:44 <b_jonas> orin: in what encoding?
11:13:50 <orin> whatever
11:14:08 <orin> probably utf-8
11:14:24 <b_jonas> you'll just run out of all 256 bytes. many are already used up for ranges or commands.
11:15:07 <orin> I mean, all i'd need to do is check for a byte above 128, and in that case read the next byte
11:15:20 <orin> and check what it is.
11:16:08 -!- f|`-`|f has quit (Ping timeout: 240 seconds).
11:16:56 <orin> But I dunno if I'll add more than 2 commands. I'll get bored pretty fast
11:17:31 <orin> apparently people used to modify the local versions of commands a lot in the old world
11:22:25 <oerjan> the haskell libraries list seems severely infested with top posters
11:23:12 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
11:24:01 <boily> oerjan: what do you mean?
11:24:37 <oerjan> people who quote the message they're replying to, _never_ removing anything, regardless of thread depth
11:24:48 <oerjan> and put their own answer at the top
11:25:03 <boily> oh. mailing lists.
11:25:37 <orin> I usually do that, but put my reply at the bottom
11:26:04 -!- ChanServ has set channel mode: +o oerjan.
11:26:13 -!- oerjan has kicked orin Crimes against humanity.
11:26:18 -!- oerjan has set channel mode: -o oerjan.
11:26:27 -!- orin has joined.
11:26:30 <orin> lol
11:26:55 <orin> 'Crimes against humanity'
11:27:46 <orin> logically I think the reply shuld be at the bottom, but only if your software doewsn't automatically display the post your repling to
11:28:12 <orin> e.g. email
11:28:38 <oerjan> logically i think it's the sender's responsibility to be non-annoying to a large fraction of recipients.
11:28:58 <orin> I guess....
11:29:45 <oerjan> in this case i'm browsing the mailing list from a web archive. it
11:30:01 <orin> Hm.. could you not write a script to go through your emails and cut out lines that consist of />>>>>>>>>>>>>>>*/
11:30:02 <oerjan> why was there a return key there.
11:30:20 <oerjan> orin: it's not my emails, i'm reading it on the web.
11:30:28 <orin> ooooo
11:30:59 <orin> Actually that could also cut out lines with brainfuck code in them
11:31:07 <orin> that's a problem
11:32:03 -!- boily has quit (Quit: REPLICATING CHICKEN).
11:32:22 <oerjan> does that mean we'll have two boilys next time
11:34:02 <orin> no, it means there was never one boily. the boily we get each time is a duplicate of the original boily, whowe've never met.
11:35:04 <oerjan> aha
11:36:16 <orin> Does garnierite have anythign to do with the shampoo?
11:37:19 <orin> apparently they're both named after french people
11:38:05 <orin> garnyayite
11:48:20 -!- AnotherTest has quit (Ping timeout: 244 seconds).
12:10:50 -!- AnotherTest has joined.
12:32:46 -!- Patashu has quit (Ping timeout: 244 seconds).
12:59:42 <b_jonas> wtf
13:02:21 <orin> wwtf?
13:02:47 -!- nortti has quit (Ping timeout: 265 seconds).
13:05:26 -!- nortti has joined.
13:09:13 <orin> SUCCESS
13:09:40 <orin> http://ctrlv.in/565759
13:14:01 <orin> +
13:14:35 <orin> is it a problem if it passes the line numbers into the highlighter?
13:16:10 <orin> I suppose I could fork again and add the line numbers at the end of the pipeline
13:17:46 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
13:18:21 <orin> eh, for now it's ok
13:21:34 -!- hamrove has joined.
13:22:56 <orin> hello
13:29:03 <orin> I'm adding new features to the ed editor, what features do you think it needs?
13:30:48 <lifthrasiir> shred.
13:31:18 <orin> what would that do?
13:39:12 <lifthrasiir> some kind of "wipe" solution?
13:39:28 -!- AnotherTest has quit (Ping timeout: 256 seconds).
13:39:38 <orin> oh, like destory the data on disk?
13:40:13 <orin> thats probably beyond my programmign porwess
13:53:42 -!- e_svedang has joined.
14:14:59 -!- e_svedang has quit (Ping timeout: 255 seconds).
14:17:12 -!- variable has joined.
14:30:01 -!- f|`-`|f has joined.
14:30:12 -!- Sgeo__ has joined.
14:31:28 -!- Vorpal has quit (Ping timeout: 240 seconds).
14:32:48 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
14:33:08 -!- spiette has quit (Ping timeout: 240 seconds).
14:33:32 -!- spiette has joined.
14:33:57 -!- Vorpal has joined.
14:33:57 -!- Vorpal has quit (Changing host).
14:33:57 -!- Vorpal has joined.
14:50:55 <mroman> can ed execute shell commands?
14:50:59 <mroman> and collect the output?
14:51:08 <mroman> that would be a feature
14:51:26 <orin> https://github.com/orenwatson/orens-fun-ed
14:51:41 <orin> yes it does do that: for example
14:51:47 <orin> e !ls
14:52:11 <mroman> neat
14:52:29 <mroman> I'm working on an editor in java
14:52:45 <mroman> using lanterna
14:52:55 <orin> what kind of editor
14:52:59 <mroman> text editor
14:53:16 <mroman> with support for 2D languages
14:53:33 <mroman> i.e. you can type normalle and it'll write it backwards or downwards and that stuff.
14:53:36 <mroman> *normally
14:53:50 <orin> Oh, cool! that would really help
14:54:03 <mroman> and you can configure letters that change directions
14:54:14 <mroman> so it automatically switches after typing a ^ for example
14:54:53 <mroman> orin: I'll let you know once I have a decently working version.
14:59:17 -!- GeekDude has joined.
14:59:51 <orin> I suppose it is much easier to hack stuff that was already written...
15:04:38 -!- GeekDude has quit (Ping timeout: 252 seconds).
15:04:54 -!- variable has quit (Quit: 1 found in /dev/zero).
15:08:30 -!- variable has joined.
15:14:07 -!- Sprocklem has joined.
15:14:23 -!- orin has quit (Ping timeout: 255 seconds).
15:15:56 -!- GeekDude has joined.
15:16:08 -!- orin has joined.
15:17:11 -!- hamrove has quit (Quit: hamrove).
15:20:35 <int-e> orin: I certainly feel that way.
15:21:33 <int-e> oerjan: wait scratch that i'm getting confused about the age of logs <-- I forgive you
15:21:52 * int-e is in a benevolent mood
15:37:04 -!- variable has quit (Ping timeout: 250 seconds).
15:40:50 <orin> int-e: about the difficulty of writing versus modifying a program, or about replies should be at the bottom
15:43:00 -!- Jafet has quit (Ping timeout: 256 seconds).
15:43:26 -!- Jafet has joined.
15:44:08 -!- jix has quit (Ping timeout: 256 seconds).
15:44:16 -!- jix has joined.
15:50:21 -!- Jafet has left.
15:50:28 <int-e> orin: I meant the former, but I also feel the same way about top-posting.
15:51:10 -!- Jafet has joined.
15:51:30 <int-e> A: Because it upsets the natural flow of reading.
15:51:30 <int-e> Q: Why is top posting so rude?
16:09:38 <oerjan> int-e: yay
16:12:06 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
16:20:18 -!- bb010g has quit (Quit: Connection closed for inactivity).
16:21:53 <oerjan> int-e: that was to the forgiveness, i find the "don't cut away anything" part of posting more annoying than the actual top posting part
16:22:01 <oerjan> *top posting
16:23:43 <int-e> oerjan: I thought so, but I replied to orin.
16:30:44 <int-e> oerjan: The two issues are related though: inline replies encourage people to cut down the context.
16:32:00 <oerjan> hm
16:32:16 -!- hamrove has joined.
16:58:30 -!- e_svedang has joined.
16:58:46 <oerjan> `relcome e_svedang
16:58:48 <HackEgo> e_svedang: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
17:01:14 -!- hamrove has quit (Quit: hamrove).
17:08:48 -!- AnotherTest has joined.
17:10:24 -!- HackEgo has quit (Ping timeout: 252 seconds).
17:11:45 -!- hamrove has joined.
17:12:30 -!- orin has quit (Quit: Lost terminal).
17:13:27 -!- variable has joined.
17:17:07 -!- oren has joined.
17:17:35 <oerjan> Gregor: HackEgo ran away
17:18:06 <oren> blah now DF is hanging my computer? god damn it 2GB of memory used to be a megaton!
17:18:18 -!- e_svedang has left ("Using Circe, the loveliest of all IRC clients").
17:19:07 <oerjan> argh too much drooling
17:19:27 <oren> um. wat
17:20:33 <Taneb> oren, DF as in Dwarf Fortress?
17:20:49 <oren> yeah
17:21:00 <oerjan> i've got an infection such that it hurts to swallow, but never swallowing doesn't really work either. thus drooling.
17:21:33 <oerjan> oren: i think 2GB was about the _disk space_ on the first computer i installed linux on, back in 1999
17:22:04 <quintopia> oerjan: be more masochistic hth
17:22:16 <oerjan> quintopia: sorry no can do
17:22:43 <quintopia> what about throat numbing medicine? what about soaking up drool with crackers?
17:23:53 <oerjan> i don't have crackers. i do have plenty of paper tissue.
17:23:57 <oren> hmm try swallowing lots of tiny ice cubes
17:24:42 <oren> I think an eggo would work as a tray to make tiny ice cubes
17:24:44 <oerjan> i don't have ice cubes, and i don't see why that should help.
17:24:54 <oerjan> what's an eggo
17:25:01 <oerjan> (i don't think i have one)
17:25:03 <quintopia> toaster waffle
17:25:08 <oren> @google leggo my egoo
17:25:08 <oerjan> fancy
17:25:09 <lambdabot> https://www.leggomyeggo.com/
17:26:39 <oren> eggos were my lunch every day in middle school
17:28:46 <oerjan> isn't ridiculously detailed simulation like the point of DF, obviously it will always want to use as much resources as you have.
17:29:07 <oerjan> just be glad it's not 3d graphics on top
17:29:33 <quintopia> one day it will be
17:30:06 <quintopia> (i don't know that it would add that much load since the simulation would be cpu-bound and the graphics gpu-bound)
17:31:28 <b_jonas> debian installer CDs now boot with grub-2 instead of isolinux?
17:33:30 <int-e> heh, I don't even know what an installer CD is anymore... I guess I have one for Windows XP somewhere...
17:33:51 <oren> I use an installer SD usually
17:34:30 <int-e> (For the last few installations of Linux I've used debootstrap from Knoppix, which I find convenient because Knoppix can access an existing network.)
17:34:30 <b_jonas> int-e: I don't boot from the CD either, I just load the kernel and initrd on the tiny netboot installer CD from a boot loader instead
17:34:38 <b_jonas> so this change isn't really relevant to me
17:34:41 <b_jonas> I'm just surprised
17:35:12 <int-e> but what's the problem with using grub 2 anyway?
17:35:20 <b_jonas> int-e: no problem
17:35:42 <b_jonas> but I don't burn a CD, and don't install a bootloader just to run an installer image
17:36:13 <b_jonas> I just download the files to hard disk, and load them from my already installed grub-l bootloader or from a cd that has a grub-l bootloader
17:36:48 <b_jonas> I have a script here to convert between boot loader config files => http://www.perlmonks.com/?node_id=928102
17:37:04 <b_jonas> but I don't use that, I just type the command manually because I know what the debian installer expects
17:38:15 -!- Sprocklem has quit (Ping timeout: 264 seconds).
17:39:41 <b_jonas> I'll probably start to use grub2 when I'm forced to because I get hard disks larger than 2 tebibytes and so can't use a dos partition table
17:39:53 <b_jonas> and not before that
17:40:41 <b_jonas> how common are such hard disks now?
17:40:50 <b_jonas> not that I'll be buying any soon
17:43:44 <oren> mine is 64 GB
17:44:22 <oren> Hence why I have so many SD cards
17:46:32 <b_jonas> I love having lots of disk space
17:46:45 <b_jonas> but currently the big hard disks seem to be 2 terrabytes size
17:47:20 <int-e> Right, 1TB seems to be the standard size for a new desktop pc, 500GB is also still a thing.
17:47:23 <oren> terrabytes: the data standard for all of Holy Terra
17:48:01 <int-e> nobody said anything about holyness...
17:48:29 <oren> int-e: its a 40K refrence.
17:48:38 <int-e> Ah. (And welcome to the bianual smartass competition!)
17:49:15 <oren> oh, I'm up against some terrifying competition
17:49:41 <oren> I hope I can do well!
17:50:48 <oren> anyway the disk space you get depends on how much you spend
17:51:09 <b_jonas> sure
17:51:23 -!- Vorpal has joined.
17:51:23 -!- Vorpal has quit (Changing host).
17:51:23 -!- Vorpal has joined.
17:58:37 <Vorpal> hi
17:58:43 <oren> hai
17:59:48 <Vorpal> I need a hostname for a new RPi. I already have a RPi, but this new RPi 2 needs a name
18:00:12 <Vorpal> Hm
18:00:20 <oren> patrick
18:00:49 <Vorpal> oren, doesn't fit my theme. Which is mythological beasts. The existing RPi is cerberus. The laptop I'm typing on is dragon.
18:01:43 <oren> veela
18:02:03 <oren> wait did rowling invent them
18:02:24 <Vorpal> Never heard of them, what are they?
18:03:30 <Vorpal> oren, also plus points if the name fits the device. The RPi acts as a VPN and ssh endpoint. So Cerberus, the gatekeeper of the underworld is a fitting name.
18:03:49 <Vorpal> And phoenix is an old Pentium 3, reborn from various spare parts
18:05:58 <oren> guardians. gargoyles
18:06:17 <oerjan> Vorpal: chimera hth
18:06:25 <oerjan> (courtesy of the yafgc character)
18:06:38 <Vorpal> oren, yes that would fit the new RPi too, since it will be a ssh end point in a new location
18:06:45 <Vorpal> Also runs RADIUS
18:07:52 <Vorpal> god, this memory card in this older RPi is slow, it previously ran on an external hdd, but I switched that over to the new RPi
18:10:54 -!- oerjan has set topic: Vǫwël Cøntınùům | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/ | http://esolangs.org/.
18:23:26 -!- hamrove_ has joined.
18:26:18 -!- hamrove has quit (Ping timeout: 252 seconds).
18:31:06 -!- hamrove has joined.
18:34:08 -!- hamrove_ has quit (Ping timeout: 256 seconds).
18:44:41 <tswett> If I flip a fair coin until the number of heads exceeds the number of tails, or vice versa, by 50, then what's the expected value of the total number of flips?
18:46:16 <MDude> 2500
18:47:08 <MDude> Based on a random walk moving, on average, the square root away from the center line after a given distance.
18:49:09 <paul2520> neat
18:51:42 -!- variable has quit (Ping timeout: 256 seconds).
19:00:53 -!- fractal has quit (Changing host).
19:00:54 -!- fractal has joined.
19:18:48 <oerjan> MDude: i find the argument lacking, although simulation seems to confirm the answer.
19:21:15 -!- Sprocklem has joined.
19:31:58 <tromp> it's not exactly 2500, but on the order of that
19:38:22 -!- zzo38 has quit (Remote host closed the connection).
19:47:11 -!- Sprocklem has quit (Ping timeout: 245 seconds).
20:04:01 -!- hamrove has quit (Quit: hamrove).
20:05:44 <oerjan> tromp: it actually _is_ exactly 2500
20:09:49 <coppro> oerjan: proof?
20:11:07 <oerjan> @let rwStep l = 0:zipWith((+)`on`(/2))l(drop 2 l)++[0]
20:11:08 <lambdabot> Defined.
20:12:34 <oerjan> @let rwe = map toInteger (iterate rwStep (replicate 101 0) !! 100000)
20:12:35 <lambdabot> .L.hs:143:11:
20:12:35 <lambdabot> No instance for (Integral a0) arising from a use of ‘toInteger’
20:12:35 <lambdabot> The type variable ‘a0’ is ambiguous
20:12:40 <oerjan> eep
20:12:55 <oerjan> @let rwe = map round (iterate rwStep (replicate 101 0) !! 100000) :: [Integer]
20:12:56 <lambdabot> Defined.
20:13:08 <oerjan> > rwe !! 50
20:13:09 <lambdabot> *Exception: stack overflow
20:13:12 <coppro> oerjan: that's not a proof
20:13:37 <oerjan> coppro: it's a proof if i can get lambdabot to calculate it, but it's a little heavy
20:14:04 <oerjan> but lambdabot doesn't cache anything does it...
20:14:26 <oerjan> too much laziness.
20:14:35 <oerjan> oh whatever.
20:15:23 <oerjan> @let fp = [0,99,196,291,384,475,564,651,736,819,900,979,1056,1131,1204,1275,1344,1411,1476,1539,1600,1659,1716,1771,1824,1875,1924,1971,2016,2059,2100,2139,2176,2211,2244,2275,2304,2331,2356,2379,2400,2419,2436,2451,2464,2475,2484,2491,2496,2499]
20:15:25 <lambdabot> Defined.
20:16:11 <oerjan> > let tab = fp ++ 2500 : reverse fp in tab == rwStep tab
20:16:13 <lambdabot> False
20:16:23 <oerjan> wait what
20:17:48 <oerjan> that gives True in GHCi :(
20:18:32 <oerjan> > length fp
20:18:33 <lambdabot> 50
20:18:40 <oerjan> :t fp
20:18:41 <lambdabot> Num t => [t]
20:19:11 <oerjan> perhaps a rounding error. hm how can i make it exact... aha!
20:19:30 <oerjan> > let tab = fp ++ 2500 : reverse fp :: [CReal] in tab == rwStep tab
20:19:31 <lambdabot> False
20:20:52 <oerjan> @let rwSum l = 0:zipWith((+))l(drop 2 l)++[0]
20:20:53 <lambdabot> Defined.
20:21:13 <coppro> oerjan: it's not a proof, it's just a simulation
20:21:43 <oerjan> coppro: the simulation is to find the answer. once you have the answer you can make a proof.
20:21:50 <coppro> right
20:22:05 <oerjan> all i need to show is that the answer is a fixpoint of rwStep
20:22:50 <oerjan> hm wait how can there possibly by round-off error whan all i'm doing is half-integers
20:23:23 <oerjan> @let tab = fp ++ 2500 : reverse fp
20:23:24 <lambdabot> Defined.
20:23:31 <oerjan> :t tab
20:23:32 <lambdabot> Num a => [a]
20:24:00 <oerjan> > map (*2) tab == rwSum tab
20:24:02 <lambdabot> <no location info>: can't find file: L.hs
20:24:05 <oerjan> > map (*2) tab == rwSum tab
20:24:06 <lambdabot> <no location info>: can't find file: L.hs
20:24:13 <oerjan> fffffffff
20:24:16 <oerjan> > map (*2) tab == rwSum tab
20:24:19 <lambdabot> False
20:28:23 <oerjan> oh wait duh
20:28:33 <oerjan> i copied the wrong version
20:28:49 <oerjan> @let rwStep l = 0:zipWith((+)`on`(/2).(+1))l(drop 2 l)++[0]
20:28:49 <lambdabot> Parse failed: Ambiguous infix expression
20:28:59 <oerjan> :t on
20:29:00 <lambdabot> (b -> b -> c) -> (a -> b) -> a -> a -> c
20:29:16 <oerjan> > (0$0`on`)
20:29:17 <lambdabot> The operator ‘on’ [infixl 0] of a section
20:29:17 <lambdabot> must have lower precedence than that of the operand,
20:29:17 <lambdabot> namely ‘$’ [infixr 0]
20:29:49 <oerjan> wtf is happening
20:30:04 <oerjan> @let rwStep l = 0:zipWith((+)`on`(/2).(+1))l(drop 2 l)++[0]
20:30:04 <lambdabot> Parse failed: Ambiguous infix expression
20:30:16 <oerjan> @let rwStep l = 0:zipWith((+)`on`((/2).(+1)))l(drop 2 l)++[0]
20:30:17 <lambdabot> .L.hs:159:1: Warning:
20:30:17 <lambdabot> Pattern match(es) are overlapped
20:30:17 <lambdabot> In an equation for ‘rwStep’: rwStep l = ...
20:30:28 <oerjan> argh
20:30:35 <oerjan> @let rwStep2 l = 0:zipWith((+)`on`((/2).(+1)))l(drop 2 l)++[0]
20:30:36 <lambdabot> Defined.
20:30:44 <oerjan> > tab == rwStep2 tab
20:30:45 <lambdabot> True
20:30:47 <oerjan> finally
20:30:51 <oerjan> > tab !! 50
20:30:53 <lambdabot> 2500
20:31:00 <oerjan> coppro: that counts as a proof hth
20:33:10 <coppro> oerjan: I do not have the time right now to determine if it does
20:33:20 <coppro> that's rather esoterically dense code
20:36:06 <oerjan> ok but all it does is calculate the expected time to escape at this time given the expected time to escape after one step.
20:38:43 <oerjan> also, the stepping function is contracting in l^1 norm, thus has a unique fixpoint.
20:41:06 <oerjan> at least in nonnegative values.
20:41:35 <oerjan> *thus converges to
20:48:30 <paul2520> quintopia: the original author of the blog post weighs in on reddit: http://www.reddit.com/r/math/comments/341ugi/a_radical_new_look_for_logarithms_interesting/cqrurrt?context=3
20:49:57 -!- S0lll0s has joined.
20:50:10 <S0lll0s> hey
20:50:28 <S0lll0s> so I made something: https://github.com/S0lll0s/zunscript
20:50:56 <S0lll0s> first time I do anything meta-programming-ish
20:58:42 <HackEgo> [wiki] [[Talk:Al Dente]] http://esolangs.org/w/index.php?diff=42774&oldid=41877 * Tanner Swett * (+746) Responses
21:04:04 -!- Patashu has joined.
21:08:12 <tromp> oerjan: isn't the answer infinity?
21:10:22 <tromp> i think we were confused with the expected number of steps until *either* #heads or #tails leads by 50, which is indeed exactly 2500
21:10:51 <tromp> but the one sided expectations are infinite
21:14:00 <oerjan> the original question was the former
21:14:45 <oerjan> tromp: ^
21:14:49 -!- AnotherTest has quit (Remote host closed the connection).
21:15:46 <tromp> oops; missed the vice-versa:(
21:16:30 <oren> S0lll0s: clicked on link, thought it had to do with 東方.
21:17:21 <oren> i am disapint
21:20:20 <oren> s/pint/point/
21:21:02 <oren> actually this is cool even if it doesn't have yukkuris in it
21:29:22 -!- Patashu has quit (Ping timeout: 256 seconds).
21:33:58 <S0lll0s> the hell are yukkuris?
21:35:51 <oren> http://yukkuri.wikia.com/wiki/Yukkuri
21:37:40 <oren> heads filled with delicious bean paste
21:38:38 <oren> from a subculture of a subculture within japanese otaku subculture
21:41:21 <oren> the creator of Touhou is named (well, pseudonamed) "ZUN"
21:58:09 -!- spatterworthy has joined.
22:02:05 -!- spatterworthy_ has joined.
22:04:32 -!- spatterworthy has quit (Ping timeout: 246 seconds).
22:08:44 -!- ent0nces has joined.
22:19:24 -!- Phantom_Hoover has joined.
22:28:27 -!- ent0nces has quit.
22:43:01 -!- boily has joined.
22:44:15 -!- hjulle has joined.
22:58:47 -!- spatterworthy_ has quit (Ping timeout: 246 seconds).
←2015-04-27 2015-04-28 2015-04-29→ ↑2015 ↑all